【发布时间】:2017-07-03 09:52:48
【问题描述】:
我认为这是常见的操作,但找不到任何相关信息。当处于复制模式时 (Ctrl + [) 是否有快捷方式复制光标下的单词而无需手动创建选择?
我尝试切换到 vi 模式并使用 yw,但它看起来不起作用(事实上,除了将箭头键映射到 hjkl 之外,我并不完全确定 vi 模式的作用) .
知道如何实现吗?
【问题讨论】:
标签: keyboard-shortcuts copy-paste tmux
我认为这是常见的操作,但找不到任何相关信息。当处于复制模式时 (Ctrl + [) 是否有快捷方式复制光标下的单词而无需手动创建选择?
我尝试切换到 vi 模式并使用 yw,但它看起来不起作用(事实上,除了将箭头键映射到 hjkl 之外,我并不完全确定 vi 模式的作用) .
知道如何实现吗?
【问题讨论】:
标签: keyboard-shortcuts copy-paste tmux
编辑:正如@Sebastian Graf 所指出的,tmux 现在有一个本机命令:send-keys -X select-word 用于选择单词。接下来的事情我留给后代......
bind -n -T copy-mode-vi C-d send-keys b \; send -X begin-selection \; send-keys E
我正在使用上述方法至少选择光标下的当前单词。受 Sublime Text 启发,快捷方式是 C-d。您还需要设置set-window-option -g mode-keys vi,但我相信这是默认设置。在 vi 模式下,b 将光标移动到当前单词的开头,然后以 begin-selection 开始选择,然后使用 E 将光标移动到当前单词的末尾。
所以你也可以复制这个词:
bind -n -T copy-mode-vi C-d send-keys b \; send -X begin-selection \; send-keys E \; send -x copy-selection.
我在这里包含了所有的命令,因为我在 Internet 上找不到任何可以很好地格式化它的地方。
Function Vi Emacs
-------------------------------------------
Back to indentation ^ M-m
Bottom of history G M-<
Clear selection Esc C-g
Copy selection Enter M-w
Cursor down j Down
Cursor left h Left
Cursor right l Right
Cursor to bottom line L
Cursor to middle line M M-r
Cursor to top line H M-R
Cursor up k Up
Delete entire line d C-u
Delete/Copy to end of line D C-k
End of line $ C-e
Go to line : g
Half page down C-d M-Down
Half page up C-u M-Up
Jump forward f f
Jump backward F F
Jump again ; ;
Jump again in reverse , ,
Next page C-f PgDown
Next space W
Next space, end of word E
Next word w
Next word end e M-f
Paste buffer p C-y
Previous page C-b PgUp
Previous word b M-b
Previous space B
Quit mode q Esc
Rectangle toggle v R
Scroll down C-Down/C-e C-Down
Scroll up C-Up/C-y C-Up
Search again n n
Search again in reverse N N
Search backward ? C-r
Search forward / C-s
Start of line 0 C-a
Start selection Space C-Space
Top of history g M->
Transpose chars C-t
【讨论】:
send-keys -X select-word,喜欢这里stackoverflow.com/a/46638561/388010