我想在tmux vi-copy模式下有一个命令,它将以下三个步骤合二为一:
它看起来像这样吗?
bind-key -t vi-copy o select-line; copy-selection; copy-pipe "xargs -I{} tmux select-pane -t 1"
我的最后一部分像this link一样运行:
bind -t vi-copy 'y' copy-selection
bind -t vi-copy y copy-pipe "xclip -sel clip -i"
bind -t vi-copy y copy-pipe "xargs -I{} tmux send-keys -t 1 ';call OpenTestFile(\"{}\")' Enter"
如果我在复制模式中选择上述内容,则tmux为:
;call OpenTestFile("SELECTION")
发送到1号窗格(我在那里打开了vim)在vim-function OpenTestFile(input)
我意识到,vim从tmux-line-selection中提取文件路径并打开它进行编辑。
但我不想使用y
密钥,而是想使用o
密钥来执行此操作,并避免必须先选择该行。
似乎无法在模式中绑定多个命令。 link
答案 0 :(得分:3)
原始tmux不允许为“模式”击键绑定多个命令。
幸运的是,有一个允许这样做的mod: http://ershov.github.io/tmux/
例如:
bind-key -t vi-copy o tcl { select-line; copy-selection; copy-pipe "xargs -I{} tmux select-pane -t 1" }
答案 1 :(得分:0)
我没有测试过这个特定的配置,但一般来说,你应该能够通过反斜杠转义=INDEX($H$6:$H$26,MATCH(C6,$G$6:$G$26,0))
分隔符在一个绑定中执行多个命令。你也可以反斜杠转义换行符,所以这样的东西应该有效(假设你引用的例子正在工作):
;