2012-06-08 48 views
11

我喜歡Tmux及其Vi命令的複製模式,但我真的很惱火,因爲這種模式與真正的Vim相比效率非常差。Tmux複製模式:如何創建自己的命令?

例如,沒有複製單詞(yw)的鍵綁定,我必須總是「去一個單詞的開頭」,「開始選擇」,「去到單詞的結尾」,然後「完成選擇」。當我需要在vim中執行yw時,需要進行很多操作。

我搜索了一種方法在Tmux複製模式下創建我自己的「yw」命令。鏈接所有需要的操作是一個好主意,但用;分隔的命令的簡單綁定不起作用(類似的事情在非複製模式下工作)。有什麼我想念的嗎?或者,Tmux的複製模式僅僅是有限的,而不是像我需要的那樣是腳本化的?

+0

你對'bind-key'的調用是什麼樣的? – chepner

+2

類似於: bind-key -t vi-copy X previous-word \;開始選擇\;下一個單詞\;複製選擇 – Jooj

回答

4

我有這個在我的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 

現在去複印模式,我可以很容易地通過選擇後話:

v 瓦特

而且隨着

複製

y

在tmux中你必須選擇來複制。正如您從通常的vi/vim命令中所知道的那樣,在正常模式下沒有任何東西可以複製。不幸的是,對於每個tmux參數,您只能使用一鍵(如vy)。

你可以找到更多關於TMUX的VI移動命令的位置:https://superuser.com/a/197272/57890

+0

有沒有一個很酷的tmux技巧來使用綁定的「tartget」,或者這只是你本地的東西? – wonbyte

0

有用於TMUX允許創建過程並綁定任意數量的用於「模式」按鍵操作的補丁:這個得到了改變http://ershov.github.io/tmux/

2

上游(2.4及以上)TMUX版本,以創建開始綁定您需要使用-T-X的發送密鑰。

更多的信息在tmux changelog

這裏我爲六複印模式作爲實例綁定:

# 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更換應該夠了。

相關問題