Да. подстановка команды удаляет все завершающие символы новой строки 1 .
Чтобы обойти это:
var=$(xsel --clipboard; echo .)
var=${var%?}
То есть добавьте . \ N
к этому выходу. Затем удалите точку с помощью $ {var%?}
( \ n
позаботится о замене команды).
Обратите внимание, что, за исключением zsh
, переменные оболочки не могут содержать байты NUL.
Если вы хотите сохранить статус выхода:
var=$(xsel --clipboard; ret=$?; echo .; exit "$ret")
ret=$?
var=${var%?}
Не забудьте процитировать $ var
при его расширении:
printf %s "$var"
Вспомогательная функция:
cmdsubst() {
_var=$1; shift
eval "$_var="'$("$@"; ret=$?; echo .; exit "$ret")
_ret=$?
'"$_var=\${$_var%?}"
return "$_ret"
}
Используется как:
cmdsubst var xsel --clipboard
Чтобы сохранить жирным шрифтом"...Некоторые инструменты экспортируют выделение CLIPBOARD как text / html в дополнение к простой строке UTF8. В этом случае (с последними версиями xclip
) вы можете сделать:
cmdsubst html xclip -sel c -o -t text/html
См. Вывод xclip -sel c -o -t TARGETS
, чтобы увидеть, какой выбор нацелен на текущий Владелец БУФЕРЫ ОБМЕНА предоставляет.
Пример после копирования части моего комментария к Микелю выше в iceweasel:
$ xclip -sel c -o -t TARGETS
TIMESTAMP
TARGETS
MULTIPLE
SAVE_TARGETS
text/html
text/_moz_htmlcontext
text/_moz_htmlinfo
UTF8_STRING
COMPOUND_TEXT
TEXT
STRING
text/x-moz-url-priv
$ xclip -sel c -o -t text/html
<span class="comment-copy"><i>should</i> remove <i>only one</i> trailing newline</span>
$ xclip -sel c -o -t TEXT
should remove only one trailing newline
1 Исключением являются оболочки семейства rc
, где вы можете сказать, что не хотите любая постобработка с синтаксисом var = `` () {xsel --clipboard}
.
Добавьте следующее в конфигурацию sway:
input <identifier> {
xkb_options caps:ctrl_modifier
}
где <identifier>
— идентификатор вашего устройства ввода с клавиатуры, который можно получить, запустив swaymsg -t get_inputs
.
Источник:https://github.com/swaywm/sway/wiki#keyboard-layout
ОБНОВЛЕНИЕ :OP спрашивает: «Caps Lock является Escape, но при удерживании является элементом управления». Оказывается, здесь есть простая программа , которая делает именно это на уровне libevdev (, поэтому работает с любым сервером отображения, Wayland или нет, и приведенная выше конфигурация влияния не нужна ).
Связанная ветка обсуждения:https://github.com/swaywm/sway/issues/719