
При использовании команды Tmux if-shell
в tmux.conf
, у меня получаются очень длинные команды, как, например, приведенная ниже для интеграции Tmux с системным буфером обмена в macOS и Linux:
if-shell "[[ $(uname -s) = Linux ]]" "bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel \"pbcopy\"" "bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel \"xclip -in -selection clipboard\""
Можно ли писать команды в tmux.conf
несколько строк? Я пробовал использовать \
для охвата нескольких строк, но это не работает.
решение1
В соответствии с man tmux
:
Каждая команда завершается символом новой строки или точкой с запятой (;).
Таким образом, может показаться, что в команду не нужно вставлять символ новой строки.
Однако аргументы команды могут содержать символы новой строки, которые можно использовать для распределения команды по нескольким строкам:
' ... \
или " ... \
:
If the last character of a line is \, the line is joined with the following line (the \ and the newline are completely removed).
( { ... }
):
Braces are similar to single quotes in that the text inside is taken literally without any replacements but this also includes line continuation.
Пример:
if-shell '[[ $(uname -s) = Linux ]]' {
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
} {
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
}