在 tmux 中,我知道我们可以通过使用 \; 将多个命令链接到一个键。看这里 但是在 vi 模式下,我希望按一次键即可转到当前行的开头、开始选择、转到行尾、复制选择。
在 tmux.conf 中如果我给出以下内容
bind-key -t vi-copy 's' start-of-line \; begin-selection \; end-of-line \; copy-selection \;
它给了我这个: 69: usage: bind-key [-cnr] [-t key-table] key command [arguments]
错误。
或者是否有其他方法可以用单键提取当前行。
答案1
不幸的是,特定于模式的绑定(已完成-t
)目前一次仅支持一个命令。此外,命令必须是特定于模式的命令之一,而不是任何通用的tmux命令。在源代码中,该函数cmd_bind_key_check
在使用时将非选项参数限制为两个-t
:一个键和一个命令;这就是您获得使用消息的原因(尽管该消息不是很有启发性)。
不过,您可以使用调用copy-end-of-line
命令来节省一些击键。在vi-copy
模式下:使用0 D
而不是0 Space $ Enter
。在emacs-copy
模式下:C-a C-k
而不是C-a C-Space C-e C-w
。