tmux和vim
tmux
tmux的功能就是
- 实现Terminal分屏功能
- 同时允许当Terminal断开之后继续运行进程
tmux的结构就是,一个tmux包含多个session(对话),一个session可以包含多个window(窗口),一个window可以包含多个pane(窗格),最后在pane里面打开shell对话框
操作
- tmux:新建一个session,session当中包含一个window,window当中包含一个pane,pane里面打开一个shell对话框
- tmux new -s SESSION_NAME
- tmux ls:查看所有session。
- tmux kill-session -t SESSION_NAME;:删除指定的session。
- 操作前缀键 ctrl+a(一般的操作前缀键是ctrl+b,这里是对配置文件进行了一点修改)
- 按下Ctrl + a后手指松开,然后按==%==:将当前pane左右平分成两个pane。
- 按下Ctrl + a后手指松开,然后按==“==(注意是双引号”):将当前pane上下平分成两个pane。
- Ctrl + d:关闭当前pane;如果当前window的所有pane均已关闭,则自动关闭window;如果当前session的所有window均已关闭,则自动关闭session。
- 鼠标点击可以选pane。
- 按下ctrl + a后手指松开,然后按方向键:选择相邻的pane。(进行不同pane之间的切换)
- 鼠标拖动pane之间的分割线,可以调整分割线的位置。
- 按住ctrl + a的同时按方向键,可以调整pane之间分割线的位置(修改分割线)
- 按下ctrl + a后手指松开,然后按z:将当前pane全屏/取消全屏。
- 按下ctrl + a后手指松开,然后按d:挂起当前session。
- tmux a:打开之前挂起的session
- 按下ctrl + a后手指松开,然后按s:选择其它session。
- 方向键 —— 上:选择上一项 session/window/pane
- 方向键 —— 下:选择下一项 session/window/pane
- 方向键 —— 右:展开当前项 session/window
- 方向键 —— 左:闭合当前项 session/window
- 按下Ctrl + a后手指松开,然后按c:在当前session中创建一个新的window。
- 按下Ctrl + a后手指松开,然后按w:选择其他window。
- 按下Ctrl + a后手指松开,然后按PageUp:翻阅当前pane内的内容。
- 鼠标滚轮:翻阅当前pane内的内容。
- 在tmux中选中文本时,需要按住shift键。
- tmux中复制/粘贴文本的通用方式
- 按下
Ctrl + a
后松开手指,然后按[
- 用鼠标选中文本,被选中的文本会被自动复制到tmux的剪贴板
- 按下
Ctrl + a
后松开手指,然后按]
,会将剪贴板中的内容粘贴到光标处
- 按下
Vim
功能:
- 命令模式下的文本编辑器
- 根据文件拓展名自动判别编程语言,支持代码缩进,代码高亮等功能
- 使用方式:vim 文件名(如果文件存在就会在vim中打开文件,否则就会直接创建这个文件,再通过vim打开)
vim编辑器具有三种模式
-
一般命令模式
是vim的默认模式,可以进行快速移动光标,复制,粘贴,删除文本等功能
-
移动光标
- h 或 左箭头键:光标向左移动一个字符
- j 或 向下箭头:光标向下移动一个字符
- k 或 向上箭头:光标向上移动一个字符
- l 或 向右箭头:光标向右移动一个字符
- n,光标向右移动n个字符,这是移动到第n个字符的后面
- 0 或 功能键[Home]:光标移动到本行开头
- $ 或 功能键[End]:光标移动到本行末尾
- nG,将光标移动到第n行,也可以用==:n==
- G,光标移动到最后一行
- gg,将光标移动到第一行
- n,将光标向下移动n行
- n,字母n,重复前一个查找操作(如果第一个操作是/word,再按n,就会依次向下匹配word,移动光标到下一个word)
- N(shift+n),反向重复前一个查找操作(这两个操作一般结合\word或者?word等查找操作)
-
选中,复制,粘贴文本
- v,选中文本,单击v键,然后就可以通过方向键移动光标进行文本的选择
- d,剪切选中的文本,同时另外一种操作就是先移动光标到一个位置,按d,在移动光标,那么两个光标之间的内容就会被删除,例如ggdG就会将所有内容删除。
- dd,剪切当前行
- y,复制选中的文本
- yy,复制当前行
- p,将复制的文本粘贴到光标的下一行,大写的P,表示复制的文本粘贴到光标的上一行
- u,表示撤销
- Ctrl+r,表示取消撤销(重做)
- >,选中文本之后,再按==>==就能将选中的文本向右移动
- <,选中文本之后,再按==<==就能将选中的文本向左移动
-
其他操作
- Ctrl+q,当vim卡死的时候就能取消当前执行的命令
- gg=G,将全文都格式化
- ==,将当前行格式化
-
-
编辑模式
i,按键i,就能进入文本编辑模式,就能和正常文本编辑器一样对文本进行编辑
ESC,通过按键ESC就能退出文本编辑模式,进入一般命令模式
-
命令行模式
在一般命令模式下,按: / ?中的三个按键中的任意一个就能进入命令行模式,命令行在最下面
通过一些命令,就能实现一些文本的查找替换,编辑器的配置,保存,退出等操作。
- 文本查找
- /word,向光标之下寻找第一个值为word的字符串
- ?word,向光标之上寻找第一个值为word的字符串
- 文本替换
- :n1,n2s/word1/word2/g,表示在第n1行和n2行之间寻找到word1这个字符串,并将该字符串替换成word2
- :1,$s/word1/word2/g,表示将全文中的字符串word1替换成word2
- :1,$s/word1/word2/gc,表示将全文中的字符串word1替换成word2,并且在替换之前要求用户确认,按y表示确认替换,n表示不替换
- 编辑器操作
- :w,保存
- :w!,强制保存
- :q,退出
- :q!,强制退出
- :wq,先保存再退出
- :set paste,设置成为粘贴模式,取消原本可能的“粘贴文本的时候进行代码自动缩进”
- :set nopaste,关闭粘贴模式,开启代码的自动缩进
- :set nu,显示行号
- :set nonu,不显示行号
- :noh,关闭查找关键词的高亮
- vim编辑器的异常处理
每次用vim编辑文件时,会自动创建一个.filename.swp的临时文件。
如果打开某个文件时,该文件的swp文件已存在,则会报错。此时解决办法有两种:
(1) 找到正在打开该文件的程序,并退出
(2) 直接删掉该swp文件即可 rm .filename.swp