- tmux是用于将终端与窗口分离的工具,即可以再关闭终端(黑框框)的时候,不会连通后台的进程一起关闭,而且tmux提供命令行窗口分屏和同时处理的能力。
- vim 是一个强大的文本编辑器,通常由三种模式,一般命令模式(正常进入时的模式),编辑模式(插入模式,按i进入),命令行模式(按:/?进入)。
-
session: 即会话,可以理解成每一个会话就是一个单独运行的任务。
可使用tmux list-session 命令列出当前的session ,
使用tmux new -s
可以开启一个指定名字的会话。 -
windows: 即窗口,一个会话下可以有多个窗口,但通常也只使用一个会话一个窗口,因为很少会同时查看多个窗口。
-
pane: 即面板,也就是将窗口分屏。
-
tmux的快捷键基本上都是带前缀的组合键,前缀键默认为ctrl+b(以下没有特殊说明均需要前缀键ctrl+b, 即先按下ctrl+b,松开后再按以下键)
快捷键 功能 c/p/n create/previus/next window d detach 将终端和任务分离,即把终端暂时挂起,后台运行 s/w 查看当前的session,window的树状分布,
并通过方向键选择切换z 将当前pane全屏 方向键 在不同的pane间切换 % 左右分屏 “ 上下分屏 数字键 跳到对应序号的窗口(window生成时按序号编排) -
以下几个特殊快捷键是不用 前缀键的
快捷键 功能 ctrl+d 结束这个pane ctrl+a+方向键 调整pane的边界大小
-
一般命令模式下,是可以通过键盘的按键快速实现剪切,复制,粘贴等快速操作。
-
编辑模式,左下角会显示–insert–表示正在插入,退出编辑模式使用[Esc]键。
进入插入模式的三种方式:
键 进入模式 a/A 在光标后/行尾插入字符 i/I 在光标前/所在行的非空行首插入字符 o/O 在下/上方新增一行的行首插入字符 -
命令行模式:当按下”?“是会跳转到下方命令行,输入不同命令,执行不同的命令。
-
命令行相关:
提示,在:命令行中也属于命令行,所以可以使用tab进行提示补全。
键 功能 :w 保存 :w! 强制保存 :q 退出 :q! 强制退出 :wq / ZZ 保存并退出 :w< filenames > 将文件另存为filename的文件 :!< command > 相当于在这个文件的命令行窗口执行命令,
可在最后添加执行的路径
如::!ls /home:set paste 设置成粘贴模式,取消代码自动缩进 :set nopaste 取消粘贴模式,开启代码自动缩进 :set nu 显示行号 :set nonu 隐藏行号 :noh 关闭查找关键词高亮 /word 向光标之下寻找第一个值为word的字符串
后按下n可往下找?word 向光标之上寻找第一个值为word的字符串
后按下n可往上找:n1,n2s/word1/word2/g n1与n2为数字,在第n1行与n2行之间寻找word1这个字符串,并将该字符串替换为word2 :n1,$s/word1/word2/g 将全文的word1替换为word2 :1, $s/word1/word2/gc 将全文的word1替换为word2,且在替换前要求用户确认 :n(n为数字) 跳到对应的行,
但同常使用nG实现:reg 查看剪贴板 -
命令模式下:(支持多中模式组合)
键 功能 nG 跳转到某行开头 nG$ 跳转到某行行末 G 跳转到全文结束 gg 跳转到全文开头 0/[home] 跳转到行首 $[end] 跳转到行末 n[space] (n为数字) 跳转几个字符 v 开启文本选中(vitual) d(dd) 剪切(此行)(删除命令) ndd 向下删除n行 y(yy) 复制(此行) nyy 向下复制n行 p 粘贴 = 格式化该行 >>(<<) 右移(左移)该行 u undo撤销上一步 [Ctrl]+r redo重做上一个操作(与u相对) . 重复前一个操作 -
常用组合键:
键 功能 ggdG (跳到开头删到结束)全文删除<==> ggvGd选中全文再格式化 gg=G 格式化全文<==> ggvG=选中全文再格式化 ggyG 复制全文<==> ggvGy选中全文再格式化 nGvmG 从n行选中到m行(n m 为数字)
选中后可以d/y/=/>>/<<
也可以直接将v替换成d/y/=
-
进入选择模式时,有v,V,[Ctrl]+v三种方式,三种方式的区别如下
可视区块操作 含义 v 字符选择 V 行选择 [Ctrl]+v 用矩阵的方式进行块选择 注意,用矩阵方式的块选择相当有用,即你可以像选择列一样去将这一列复制,剪切,粘贴……
-
打开多文件,vim 后面可以跟多个文件打开多文件,且只有同一个vim的进程打开的文件才能共享vim的剪切板。
命令行操作 作用 :files 列出当前有在编辑打开的文件 :n 打开下一个编辑(已打开)的文件 :N 打开上一个编辑(已打开)的文件 -
多窗口视图
可以使用命令行 :sp
去分割窗口并在新窗口中打开该文件,其中 可不加,直接使用 :sp 会将该窗口分割成两个,两个窗口中都是当前文件。 在一般命令模式下的命令操作
操作 作用 [ctrl] + w then s 分割窗口,相当于:sp [ctrl]+w then ⬆️/j 移动到上面的窗口 [ctrl]+w then ⬇️/k 移动到下面的窗口 [ctrl]+w then q
:close关闭当前窗口
在编辑模式下就可以使用以下组合键,无需进入命令模式。
| 组合键 | 功能 |
|---|---|
| [ctrl]+x then [ctrl]+n | 以该文件中的文字内容作为关键词补全 |
| [ctrl]+x then [ctrl]+f | 以该文件中的文件名作为关键词补全 |
| [ctrl]+x then [ctrl]+o | 以该文件中的后缀名,根据文件类型补全,即语法补全 |
- 当我们在一个终端中打开vim后没有:q(像是tmux直接结束该终端),下次打开时,linux会生成一个.filename.swp的临时文件,此时打开该文件可能会报错。解决方法:通常直接删除该.filename.swp文件或者直接R(ecover)该文件即可
- 可能是东半球最全面易懂的 Tmux 使用教程!( 强烈建议收藏 ) - 云+社区 - 腾讯云 (tencent.com)
- 一文搞懂vim复制粘贴 - huahuayu - 博客园 (cnblogs.com)



