Debian

是否可以將 tmux.conf 中的命令拆分為多行?

  • August 10, 2020

在 中使用 Tmux 的if-shell命令時tmux.conf,我會得到非常長的命令,如下面的用於在 macOS 和 Linux 上將 Tmux 與系統剪貼板集成的命令:

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是否可以在多行中編寫命令?我嘗試使用\跨越多行,但它不起作用。

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

引用自:https://unix.stackexchange.com/questions/603758