Vim 将多个vi复制模式命令合并为一个命令

Vim 将多个vi复制模式命令合并为一个命令,vim,vi,tmux,Vim,Vi,Tmux,我希望在tmux vi copy模式下有一个命令,它将以下三个步骤合并为一个步骤: 选择当前行 复制在步骤1中所做的选择 将复制的选择复制到xargs 它会像这样吗 bind key-t vi copy o选择行;拷贝选择;复制管道“xargs-I{}tmux选择窗格-t1” 我的最后一部分是这样运行的: bind-t vi拷贝'y'拷贝选择 绑定-t vi复制y复制管道“xclip-sel clip-i” bind-t vi copy y y copy pipe“xargs-I{}tmux发

我希望在tmux vi copy模式下有一个命令,它将以下三个步骤合并为一个步骤:

  • 选择当前行
  • 复制在步骤1中所做的选择
  • 将复制的选择复制到xargs
  • 它会像这样吗

    bind key-t vi copy o选择行;拷贝选择;复制管道“xargs-I{}tmux选择窗格-t1”
    
    我的最后一部分是这样运行的:

    bind-t vi拷贝'y'拷贝选择
    绑定-t vi复制y复制管道“xclip-sel clip-i”
    bind-t vi copy y y copy pipe“xargs-I{}tmux发送键-t1';调用OpenTestFile(\“{}\”)Enter”
    
    如果我在复制模式下使用上述选项选择某个内容,则tmux为:

  • 复制所选内容
  • 发送密钥:
    ;调用OpenTestFile(“SELECTION”)
    到1号窗格(我在那里打开了vim)
  • 切换到该窗格
  • 在vim函数
    OpenTestFile(input)
    中,我意识到vim从tmux行选择中提取一个文件路径,并打开它进行编辑

    但是我不想使用
    y
    键,而是想使用
    o
    键,这样做可以避免之前必须选择行

    更新1
    似乎不可能在一个模式中绑定多个命令

    我没有测试这个特定的配置,但是一般来说,通过反斜杠转义
    ,您应该能够在一个绑定内执行多个命令分隔符。您还可以使用反斜杠转义换行符,因此类似的方法应该有效(假设您引用的示例有效):

    bind-t vi拷贝y\
    复制选择\\
    复制管道“xclip-sel clip-i”\\
    复制管道“xargs-I{}tmux发送键-t1';调用OpenTestFile(\“{}\”)Enter”
    
    原始tmux不允许为“模式”按键绑定多个命令

    幸运的是,有一个mod允许这样做:

    例如:

    bind-key -t vi-copy o tcl { select-line; copy-selection; copy-pipe "xargs -I{} tmux select-pane -t 1" }
    

    嘿,谢谢你的回复。但我需要这样:
    bind-t vi copy o select line\;复制选择
    如果我这样写,我会收到一条消息:
    .tmux.conf:132:参数不够