É possível dividir um comando no tmux.conf em várias linhas?

É possível dividir um comando no tmux.conf em várias linhas?

Ao usar o comando do Tmux if-shellno tmux.conf, acabo com comandos bem longos, como o abaixo para integração do Tmux com a área de transferência do sistema no macOS e 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\""

É possível escrever comandos em tmux.confvárias linhas? Tentei usar \para abranger várias linhas, mas não funciona.

Responder1

De acordo com man tmux:

Cada comando é finalizado por uma nova linha ou ponto e vírgula (;).

Assim, pode parecer que não é para inserir uma nova linha em um comando.

No entanto, os argumentos do comando podem conter novas linhas, que podem ser usadas para abranger um comando em várias linhas:

' ... \ou " ... \:

 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.  

Exemplo:

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" 
}

informação relacionada