tmux
在普通的终端中,窗口和其中由于session(任务)而启动的进程是连在一起的,关闭窗口,session就结束了,session内部的进程也会终止,不管是否运行完。但是在具体使用中,我们希望当前的session隐藏起来,在终端中做其他事情,但是又不希望session及其进程被关闭。这样就需要用到tmux,对session进行解绑。之后再想继续出来这个session的时候,再次绑定就可以回到之前的工作状态。
1.tmux功能
- 分屏
- 允许断开Terminal连接后,继续运行进程,即将当前的终端关闭后,之后打开还可以恢复之前的程序
2.tmux结构
一个tmux可以同时包含多个session,一个session可以包含多个window,一个window可以包含多个pane 相当于一个树形结构;
3.tmux操作
- tmux:新建一个session,其中包含一个window,widow中包含一个pane
- ctrl + a 后松手,然后按 %:将当前的pane左右平分成两个pane
- ctrl + a 后松手,然后按 " (双引号):将当前的pane上下平分成两个pane
- ctrl + d :关闭当前的pane;如果当前window下所有的pane均已关闭,则自动关闭window,若当前session中所有的window均已关闭,则自动关闭session
- ctrl + a 后松手:然后按方向键,可以选择相邻的pane(鼠标点击可以选择pane)
- 同时按住 ctrl + a 和 方向键,可以调整pane之间的分割线位置(鼠标拖动pane之间的分割线,也可以调整)
- ctrl + a 后松手,然后按 z :可以将当前的pane全屏 / 取消全屏
- ctrl + a 后松手,然后按 d :挂起当前的session
- tmux a :打开之前挂起的session(tmux a 是 tmux attach 的缩写)
- ctrl + a 后松手,然后按 s ,选择其他session
上方向键:选择上一项 session/window/pane 下方向键:选择下一项 session/window/pane 右方向键:展开当前项 session/window 左方向键:闭合当前项 session/window - ctrl + a 后松手,然后按 c :在当前session中创建一个新的window
- ctrl+ a 后松手,然后按 w :选择其他window(操作与10完全一样)
- ctrl + a 后松手,然后按 pgup :翻阅当前pane中的内容(鼠标滚轮也可以翻阅当前pane中的内容)
- 在tmux中选中文本时,需要按住shift键
- 在tmux复制/粘贴文本的通用方式:
①ctrl + a 后松手,然后按 [ ②用鼠标选中文本,被选中的文本会自动复制到tmux的剪贴板中 ③ctrl + a 后松手,然后按 ] ,会将剪贴板中的内容粘贴到光标处
vim
vim功能
- 命令行模式下的文本编辑器
- 根据文件扩展名自动判别编程语言;支持代码缩进、代码高亮等功能
- 使用方式:vim filename;如果已有该文件,则打开它,若没有该文件,则创建一个名字为filename的文件
vim模式
1.一般命令模式:默认模式;命令输入模式,类似于打游戏放技能,按不同字符,即可进行不同操作;可以复制、粘贴、删除文本等; 2.编辑模式:在一般命令模式下按 i ,会进入到编辑模式;按下 esc键会退出编辑模式,返回到一般命令模式 3.命令行模式:在一般命令模式下按 :/ ?三个字母中任意一个,会进入到命令行模式,命令行在最下面;可以查找、替换、保存、退出、配置编辑器等。
vim操作
- i:进入到编辑模式
- esc:进入到一般命令模式
- h 或 左方向键:光标向左移动一个字符
- j 或 下方向键:光标向下移动一个字符
- k 或 上方向键:光标向上移动一个字符
- l 或 右方向键:光标向右移动一个字符
- n:n表示数字,按下数字后再按空格,光标会向右移动这一行的n个字符
- 0 或 功能键[ home ]:光标移动到本行开头
- $ 或 功能键 [ end ]:光标会移动到本行行末
- G:光标移动到最后一行
- : n 或 nG:n为数字,光标移动到第n行
- gg:光标移动到第一行,相当于 1G
- n< Enter >:n为数字,光标向下移动 n 行
- /word:向光标之下寻找第一个值为word的字符串
- ?word:向光标之上寻找第一个值为word的字符串
- n:重复前一个查找操作
- N:反向重复前一个查找操作
- :n1,n2s/word1/word2/g:n1、n2为数字,在第 n1 行与 n2 行之间寻找word1这个字符串,并将该字符串替换为word2
- :1,$s/word1/word2/g:将全文的word1替换为word2
- :1,$s/word1/word2/gc:将全文的word1替换为word2,并且替换前要求用户确认
- v:选中文本
- d:删除选中的文本
- dd:删除当前行(删除整行的时候,我们如果再执行p复制的时候,删除的整行就会被复制到光标的下一行)
- y:复制选中的文本
- yy:复制当前行
- p:将复制的数据在光标的下一行/下一个位置粘贴(如果是yy复制一行,则在光标下一行粘贴)
- u:撤销
- ctrl + r :取消撤销
- 大于号 > :将选中的文本整体向右缩进一次
- 小于号 < :将选中的文本整体向左缩进一次
- :w:保存
- :w!:强制保存
- :q:退出
- :q!:强制退出
- :wq:保存并退出
- :set paste:设置粘贴模式,取消代码自动缩进
- :set nopaste:取消粘贴模式,开启代码自动缩进
- :set nu:显示行号
- :set nonu:隐藏行号
- gg = G:将全文代码格式化
- :noh:关闭查找关键词高亮
- ctrl + q:当vim卡死时,可以取消正在执行的命令
- 异常处理:每次用vim编辑文件时,会自动创建一个 .filename.swp 的临时文件;如果打开某个文件时,改文件的swp文件已存在,则会报错;处理方法:①找到正在打开改文件的程序,并退出;②直接删掉swp文件即可
- delete:删除下一个字符
|