我喜欢Tmux及其使用Vi命令的复制模式,但我真的很生气,因为这种模式远不如真正的Vim那么高效。
例如,没有关键字只能复制一个单词(yw),我必须始终“转到单词的开头”“开始选择”,“转到单词的结尾”然后“完成选择”。当我只需要在vim中做你的时候很多操作。
我搜索了一种在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命令所知,没有什么能像普通模式一样复制。不幸的是你只能使用 一把钥匙 (喜欢 v
要么 y
)对于每个tmux参数。
您可以在此处找到有关tmux的vi移动命令的更多信息: https://superuser.com/a/197272/57890
在上游(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-vi
同 copy-mode
应该够了。
有一个tmux补丁允许创建过程并为“模式”击键绑定任意数量的操作: http://ershov.github.io/tmux/