vim - tmux 将选择从复制模式发送到其他 Pane (xargs 加入?)

我的 tmux.conf 中有以下代码,它以复制模式复制选择并将其发送到我打开 vim 的另一个 Pane 。

bind-key -t vi-copy o copy-selection
bind-key -t vi-copy o copy-pipe "xclip -sel clip -i"
bind-key -t vi-copy o copy-pipe "xargs -I{} tmux send-keys -t 1 ';call OpenTestFile(\"{}\")' Enter && tmux select-pane -t 1"

我认为,xargs -I{} 命令会触发,将所选内容的每一行都一一发送到该 Pane 。因此,如果我选择 6 行,tmux 会将这 6 行发送到包含 vim 的 Pane 。

但我只想调用一次发送键并将整个选定字符串发送到 Pane 。

那么,是否有另一种工具可以读取标准输入并将其发送到 tmux send-keys 或者我可以修改 xargs -I{} 部分,即它只对所有选定的行执行一次?

最佳答案

有一个 -J 标志类似于 -I,但它不会拆分输入。这几乎就是您想要的,除了 -J 不适用于带引号的字符串。

所以经过一番探索之后,有一个 -L 标志告诉 xargs 要读取多少非空行。如果您将 -L 设置为高于您发送的参数的数字,则它们应该立即发送,例如

bind-key -t vi-copy o copy-pipe "xargs -I{} -L 10000 tmux send-keys -t 1 ';call OpenTestFile(\"{}\")' 输入 && tmux选择 Pane -t 1"

我怀疑如果您的选择之一是空行,这会中断。

https://stackoverflow.com/questions/35463874/

相关文章:

turing-machines - PCP 可以识别吗?

angularjs - UI-Grid 分页模板可编辑

sql - Knex 原始查询不工作 postgresql

oracle - 安装 Oracle ODAC 12c 第 4 版 (12.1.0.2.4) 时出现

makefile - 使用 GNU Make 处理带空格的文件名

html-table - 在单个表格行 中混合表格标题 和表格数据 单

amazon-web-services - 更新和部署 Elastic Beanstalk 应用程序

visual-studio - 如何在 Google Chrome 扩展程序中创建侧边栏?

python - 使用 gensim 库进行内存高效 LDA 训练

asp.net-mvc - ASP.net MVC : Identity and drop auth