Tmux复制模式:如何创建自己的命令?

我喜欢Tmux和Vi命令的复制模式,但是我真的很烦恼,因为这种模式远没有Vim那么高效。

例如,没有复制一个单词(yw)的键绑定,我必须总是“走到单词的开头”,“开始选择”,“走到单词的末尾”,然后“完成选择”。 当我需要在vim中执行yw时,需要进行很多操作。

我搜索了一种在Tmux复制模式下创建自己的“yw”命令的方法。 链接所有需要的操作是一个不错的主意,但是一个简单的绑定,用命令分隔; 只是不起作用(类似的事情在非复制模式下工作)。 有什么我想念的吗? 或者,Tmux的复制模式仅仅是有限的,而不是像我需要的那样是脚本化的?


我在我的tmux conf中有这个:

# vi-style controls in copy mode
set-option -g status-keys vi
set-window-option -g mode-keys vi

# v and y like vi in copy-mode
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

现在复制模式后,我可以通过以下方式轻松选择单词:

VW

并复制

ÿ

在tmux中,您必须选择要复制的内容。 正如您从通常的vi / vim命令中所知道的那样,在正常模式下没有任何东西可以复制。 不幸的是,每个tmux参数只能使用一个键 (如vy )。

你可以在这里找到更多关于tmux的vi的移动命令:https://superuser.com/a/197272/57890


这似乎是使用-t选项调用bind-key命令时的错误。 我通过https://sourceforge.net/tracker/?func=detail&aid=3533562&group_id=200378&atid=973262提交了错误报告。


在上游(2.4+)tmux版本中,这已经发生了变化,为了创建用于开始选择的绑定,您需要使用-T和带-X发送密钥。

更多关于tmux changelog的信息。

在这里,我以vi复制模式的绑定为例:

# Bind `v` to trigger selection    
bind-key -T copy-mode-vi v send-keys -X begin-selection

# Bind `y` to yank current selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel

# Rebind `mouse click + drag button release` to not jump away from context
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-selection

如果您使用emacs的复制模式,取代copy-mode-vicopy-mode应该是足够的。

链接地址: http://www.djcxy.com/p/86127.html

上一篇: Tmux copy mode: how to create your own command?

下一篇: Howto go to beginning of line in tmux after remapping prefix to CTRL+A?