【Linux学习随笔】二、tmux 和 vim
食用前须知!!!
在下面中可以看到有很多冒号(就是这个符号‘ :’,有的冒号是起说明作用,有的是命令的一部分。怎么区分呢?
①出现在开头的冒号是命令的一部分
②出现在命令和解释之间的冒号起说明作用
目录
1.tmux
2.vim
1.tmux
功能:
(1)分屏。
(2)运行断开终端连接后,继续运行进程(类似单片机脱机运行的或者数据掉电保护。
结构:
一个tmux可以包含多个session,一个session可以包含多个window,一个window可以包含多个pane(可以理解为一颗树,终端是根结点,然后向外延申。
操作:
(1)tmux:新建一个session,其中包含一个window,window中又有一个pane,pane里打开一个shell对话框(我们平常在终端输入命令的地方)。
(2)按下CTRL+a后手指松开,再按%键,实现pane左右分屏。
(3)按下CTRL+a后手指松开,再按”(双引号):将当前pane上下分屏
(4)CTRL+d:关闭当前pane;如果当前window的所有pane都关闭了,则关闭window;如果当前session的所有window都关闭了,则关闭session。
(5)按下CTRL+a后手指松开,然后按方向键:可以选择相邻的pane。(也可以通过鼠标选择)
(6)按住CTRL+a(不要松开)同时按方向键:可以调整pane之间分割线的位置。(也可以通过鼠标拖动)
(7)按下CTRL+a后手指松开,然后按z:将当前pane全屏/取消全屏。
(8)按下CTRL+a后手指松开,然后按d:挂起当前session(回到原终端,后台运行)。
(9)按下CTRL+a后手指松开,然后按s:进入一个选择界面,可以选择其他session,按方向键右键可以详细看每一个session里面的信息。
(10)按下CTRL+a后手指松开,然后按c:在当前session中创建一个window。(感觉不怎么实用,一般一个session开一个window感觉就够用了)。
(11)按下CTRL+a后手指松开,然后按w:选择其他window,操作跟第9个完全一样(感觉没什么区别,就一个是粗略展开,一个是详细展开信息)。
(12)按下CTRL+a后手指松开,然后按pageup:翻阅当前pane内的内容(相当于鼠标滚轮向上滚的作用,顺便试了一下pagedown,发现不能往下翻,不理解)。
(13)在tmux中选中文本,需要按住shift键(不过只支持window和linux,不支持mac)。
(14)在tmux中复制/粘贴的通用方式:
(14.1)按下CTRL+a后松开手指,然后按 [
(14.2)用鼠标选中文本,被选中的文本会被自动复制到tmux的剪贴板
(14.3)按下CTRL+a后松开手指,然后按],会将剪贴板中的内容粘贴到光标处
2.vim
功能:
(1)命令行模式下的文本编辑器(理解为一个强大功能的编辑器)
(2)根据文件拓展名自动判别编程语言。支持代码缩进,代码高亮等功能。(有一说一,代码高亮看着真难受,代码高亮还好,文本高亮看的真无语)
(3)使用方式:vim filename
如果已有该文件,就打开它。
如果没有该文件,就创建它。
模式:
1.一般命令模式(默认模式)
输入各自命令,类似打游戏,按不同的字符,可以进行不同的操作。可以复制,粘贴,删除文本等。(当然了,为什么说像打游戏呢,因为还可以组合操作!!!芜湖)
2.编辑模式
在一般命令模式下按i,会进入编辑模式。(后面我发现按s也可以进入,但会删除光标所在的字符)
3.命令行模式
在一般命令模式里按 :/ ?三个字母中的任意一个,会进入命令行模式。(命令行在最下面,一个长方形框)
操作:
(1)i:进入编辑模式
(2)ESC:退出编辑模式(如果在的话)。也可以说是进入一般命令模式。
(3)h或方向键左:光标向左移动一个字符。
(4)j或方向键下:光标向下移动一个字符。
(5)k或方向键上:光标向上移动一个字符。
(6)l或方向键右:光标向右移动一个字符。
(7)n:n表示数字,按下数字再按下空格,光标会向右移动到这一行的n个字符后面。(刚开始比较难受的是,光标设置的只能移动到最后一个字符的前面,而不是常见的后面)
(8)0或者home键:光标移动到本行开头。
(9)$或end键:光标移动到本行结尾。
(10)G:光标移动到最后一行。
(11):n或nG :n为数字,光标移动到本行末尾。(删除东西定位的话两个都可以,至于选择文本的话,nG是真的舒服)
(12)gg:光标移动到第一行,相当于1G操作。
(13)n:n为数字,光标向下移动n行。
(14)/word:从光标之后寻找第一个word的字符串。(其实应该说是之后的所有word)
(15)?word:从光标之前寻找第一个word的字符串。(同14)
(16)n:重复前一个查找操作。(这个目前不怎么常用)
(17)N:反向重复前一个查找操作。
(18):n1,n2s/word1/word2/g:n1与n2为数字,在第n1行与n2行之间寻找word1这个字符串然后替换成word2 。(s,g是必须打的,我一般是记成start和gameover)
(19):1,$s/word1/word2/g:将全文的word1替换为word2。
(20):1,$/s/word1/word2/gc:作用同上不过区别在于每次替换都会问你要不要替换。
(21)v:选中文本
(22) d:删除选中的文本(其实发现原来跟剪切一样)
(23)dd:删除当前行
(24)y:复制选中的文本
(25)yy:复制当前行
(26)p:将复制的数据在光标的下一行/下一个位置粘贴
(27)u:撤销
(28)CTRL+r:取消撤销(发现挺好玩的,跟递归一样套娃)
(29)>:将选中的文本整体向右缩进一次
(30)<:将选中的文本整体向左缩进一次
(31):w 保存
(32):w! 强制保存(保存还强制,hh)
(33):q 退出
(34) :q! 强制退出
(35):wq 保存并退出
(36):set paste 设置成粘贴模式,取消代码自动缩进,如果不开这个模式的话,之间粘贴过来会格式大变,具体效果自行体会hh
(37):set nopaste 取消粘贴模式,开启代码自动缩进
(38):set nu 显示行号
(39):set nonu 隐藏行号(因为有时候我们要把代码弄出去,但复制过去还会把行号带出去)
(40)gg=G:将全文代码格式化(组合技!!!)
(41):noh 关闭查找关键词高亮
(42)CTRL+q:当vim卡死时,可以取消当前正在执行的命令(救命神技)