1、tmux教程
1.1 功能
- 分屏。
- 允许断开
Terminal
连接后,继续运行进程。
1.2 结构
一个tmux
可以包含多个session
,一个session
可以包含多个window
,一个window
可以包含多个pane
。
实例:
tmux:
session 0:
window 0:
pane 0
pane 1
pane 2
...
window 1
window 2
...
session 1
session 2
...
1.3 操作
-
tmux
:新建一个session
,其中包含一个window
,window
中包含一个pane
,pane
里打开了一个shell
对话框。 -
tmux界面切分
(1) 按下ctrl + a
后手指松开,然后按%
:将当前pane
左右平分为两个pane
。
(2) 按下ctrl + a
后手指松开,然后按"
:将当前pane
上下平分为两个pane
。 -
关闭当前pane
ctrl + d
:关闭当前pane
;如果当前window
的所有pane
均已关闭,则自动关闭window
;如果当前session
的所有window
均已关闭,则自动关闭session
。 -
选择pane
(1) 鼠标点击可以选择pane
。
(2) 按下ctrl + a
后手指松开,然后按方向键:选择相邻的pane
。 -
调整pane之间的分割线
(1) 鼠标拖动pane
之间的分割线,可以调整pane
之间分割线的位置。
(2) 按住ctrl + a
的同时按方向键,可以调整pane
之间分割线的位置。 -
将当前pane全屏/取消全屏:按下
ctrl + a
后手指松开,然后按z
。 -
挂起当前session:按下
ctrl + a
后手指松开,然后按d
。 -
打开之前挂起的session:
tmux a
。 -
选择其他session
按下ctrl + a
后手指松开,然后按s
,可选择其他的session
。- 方向键上
↑
:选择上一项session/window/pane
- 方向键下
↓
:选择下一项session/window/pane
- 方向键右
→
:展开当前项session/window
- 方向键左
←
:闭合当前项session/window
- 方向键上
-
选择其他window
按下ctrl + a
后手指松开,然后按w
,操作方法与9中完全相同。 -
在当前session中创建一个新的window
按下ctrl + a
后手指松开,然后按c
。 -
翻阅当前pane内的内容
(1) 按下ctrl + a
后手指松开,然后按PageUp
唤醒,Pageup
向上翻,PageDown
向下翻
(2) 鼠标滚轮 -
tmux中复制/粘贴文本的通用方式
(1) 按下Ctrl + a
后松开手指,然后按[
(2) 用鼠标选中文本,被选中的文本会被自动复制到tmux
的剪贴板
(3) 按下Ctrl + a
后松开手指,然后按]
,会将剪贴板中的内容粘贴到光标处 -
从tmux中复制文本
- 按住shift键选择文本
- Windows/Linux电脑
复制:ctrl+insert
粘贴:shift+insert
- mac电脑
复制:command+c
粘贴:command+v
2、vim教程
2.1 功能
- 命令行模式下的文本编辑器。
- 根据文件扩展名自动判别编程语言,同时支持代码缩进、代码高亮等功能。
- 使用方式:
vim filename
如果存在该文件,则打开它;
如果该文件不存在,则创建一个新的文件并打开它,命名为filename
。
2.2 模式
- 一般命令模式
默认模式。
命令输入方式:可以复制、粘贴、删除文本等,类似于打游戏放技能,按不同字符,即可进行不同操作。 - 编辑模式
在一般命令模式里按下i
,进入编辑模式;
按下ESC
会退出编辑模式,返回到一般命令模式。 - 命令行模式
在一般命令模式里按下: / ?
三个字母中的任意一个,会进入命令行模式,命令行模式在窗口最下方。
可以用于查找、替换、保存、退出、配置编辑器等。
2.3 操作
- 进入编辑模式:按下
i
- 进入一般命令模式:按下
ESC
- 光标的移动操作
(1)按方向键可使光标按不同方向移动一个字符,也可通过h j k l
实现向左、下、上、右移动一个字符
注意⚠️:
在一般命令模式下,光标向右可移动至最后一个字符的前面;
在编辑模式下,光标向右可移动到最后一个字符后。
(2)光标向右移动n个字符
n<Space>
:n
表示数字,按下数字后再按空格,光标会向右移动这一行的n
个字符
(3)光标移到到本行开头:0
或者功能键[Home]
(4)光标移动到本行末尾:$
或者功能键[End]
(5)光标移动到最后一行:G
(6)光标移动到第n行:nG
或者:n
,n
为数字
(7)光标移动到第一行:gg
或者1G
(8)光标向下移动n行:n<Enter>
- 字符串查找操作
(1)寻找光标之后第一个值为word的字符串:/word
(2)寻找光标之前第一个值为word的字符串:?word
(3)重复前一次查找操作:n
(4)反向重复前一次查找操作:N
- 字符串替换操作
(1):n1,n2s/word1/word2/g
:n1
与n2
为数字,将第n1
行与第n2
行之间的word1
字符串替换为word2
;
(2):1,$s/word1/word2/g
:将全文的word1
替换为word2
;
(3):1,$s/word1/word2/gc
:将全文的word1
替换为word2
,且在替换前要求用户确认。 - 选中文本:
v
- 删除选择的文本:
d
- 删除/剪切当前行:
dd
- 复制选中的文本:
y
- 复制当前行:
yy
- 粘贴文本:
p
将复制的数据在光标的下一行/下一个位置粘贴 - 撤销:
u
- 取消撤销:
ctrl + r
- 文本缩进
(1)将选中的文本整体向右缩进一次:>
(2)将选中的文本整体向左缩进一次:<
- 保存/退出
(1)保存::w
(2)强制保存::w!
(3)退出::q
(4)强制退出::q!
(5)保存并退出::wq
- 设置/取消粘贴模式
(1)设置成粘贴模式::set paste
取消代码自动缩进
(2)取消粘贴模式::set nopaste
开启代码自动缩进 - 显示/隐藏行号
(1)显示行号::set nu
(2)隐藏行号::set nonu
- 关闭查找关键词高亮:
:noh
- 组合键操作
(1)删除当前文本内容:ggdG
(2)将全文代码格式化:gg=G
- 强制取消当前正在执行的命令:当
vim
卡死时,使用ctrl + q
可以取消当前正在执行的命令
2.4 异常处理
每次用vim
编辑文件时,会自动创建一个.filename.swp
的临时文件
如果打开某个文件时,该文件的swp
文件已存在,则会报错。
也就是说如果某个文件已经在一个pane
中被打开,这时在另一个pane
通过vim
命令无法打开该文件。
解决方法:
(1)找到正在打开该文件的程序,并退出;
(2)直接删除该swp
文件即可