Tmux 学习摘要4--处理文本和缓冲区

在复制模式下移动

当进行测试或者查看日志文件时,因为内容较多,每每须要进行上下翻滚查找。工具

按下 PREFIX [ 进入复制模式,而后能够在屏幕上使用方向键进行移动了。要想使用 Vim 的各类移动键进行移动,能够在 .tmux.conf 中配置:测试

setw -g mode-keys vi

使用 PREFIX [ 后进入的复制模板,至关于 Vim 中使用 ESC 进入的 Normal 模式,在其中能够用 hjklwbfF, 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

在 Linux 上使用系统粘贴板

在 Ubunut 上,经过 xclip 工具能够将 tmux 缓冲区与系统的粘贴板整合起来,从而使得程序间的文本复制粘贴更加容易。

安装 xclip

$ sudo apt-get install xclip

而后能够将 tmux 的 save-bufferset-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] 将缓冲区的内容保存到文件

参考资源:

tmux: Productive Mouse-Free Development

相关文章
相关标签/搜索