当进行测试或者查看日志文件时,因为内容较多,每每须要进行上下翻滚查找。工具
按下 PREFIX [
进入复制模式,而后能够在屏幕上使用方向键进行移动了。要想使用 Vim 的各类移动键进行移动,能够在 .tmux.conf 中配置:测试
setw -g mode-keys vi
使用 PREFIX [
后进入的复制模板,至关于 Vim 中使用 ESC
进入的 Normal 模式,在其中能够用 hjkl
,wbfF
, Ctrl-b
等进行移动,使用 ?/
等进行查询等。.net
退出复制模式默认使用回车键。日志
在复制模式下,按下空格键进入文本选取状态,而后使用 Vim 的移动命令进行移动选取,当按下回车键后,所选取的文本将被复制到一个粘贴缓冲区。code
在复制模式下,按 PREFIX ]
将当前粘贴缓冲区中的内容粘贴出来。orm
将一个窗格里可见的全部内容复制到一个粘贴缓冲区中:先按 PREFIX :
进入命令模式,而后运行 capture-pane
命令。htm
显示缓冲区的内容:ip
$ tmux show-buffer
使用 save-buffer 命令将缓冲区中的内容保存到一个文件中,例如,能够先将一个窗格中的全部内容复制到缓冲区,而后将缓冲区的内容保存到文件中:资源
$ tmux capture-pane && tmux save-buffer buffer.txt
或者在 tmux 会话的命令模式下:get
:capture-pane;save-buffer buffer.txt
能够将这两条命令映射成一个快捷键。
tmux 的缓冲区和系统的不一样,它的缓冲区相似一个堆栈,新复制的内容在堆栈的顶部,而不会直接覆盖已存在的缓冲区内容。
当按下 PREFIX ]
时,默认问题粘贴最顶部的缓冲区的内容,即缓冲区 0 的内容,也能够在命令模式下经过 choose-buffer 命令选取要粘贴的缓冲区,选取后按回车键完成粘贴。
这些缓冲区内容在不一样的会话间均可以共享。
将复制粘贴操做参照 Vim 的模式进行改造,如按 ESC
键切换复制模式,使用 y
进行复制,使用 v
开始选取文本,使用 p
进行粘贴:
unbind [ bind Escape copy-mode unbind p bind p paste-buffer bind -t vi-copy 'v' begin-selection bind -t vi-copy 'y' copy-selection
在 Ubunut 上,经过 xclip 工具能够将 tmux 缓冲区与系统的粘贴板整合起来,从而使得程序间的文本复制粘贴更加容易。
安装 xclip :
$ sudo apt-get install xclip
而后能够将 tmux 的 save-buffer 和 set-buffer 命令与 xclip 结合起来。
将当前缓冲区的内容复制到系统的粘贴板,能够在 .tmux.conf 文件中进行绑定:
bind C-c display "Copied" \; run "tmux save-buffer - | xclip -i -sel clipboard"
将系统粘贴板中的内容粘贴到当前位置:
bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer"
快捷键 | 描述 |
---|---|
PjREFIX [ | 进入复制模式 |
PREFIX ] | 粘贴当前缓冲区中的内容 |
PREFIX = | 先列出全部粘贴缓冲区的内容,而后粘贴选中的缓冲区内容 |
命令 | 描述 |
---|---|
show-buffer | 显示当前缓冲区的内容 |
capture-pane | 将当前窗格中的全部可见内容获得最顶部的缓冲区 |
list-buffers | 列出全部缓冲区的内容 |
choose-buffer | 列出全部缓冲区,选取其中一个进行粘贴 |
save-buffer [filename] | 将缓冲区的内容保存到文件 |
参考资源: