下面是楼主工作中常用的一些操作,有什么写的有问题的地方欢迎大家指出。
vim是linux上最有名的文本编译器,是从vi中发展出来的,下面我们看一下Vim常用的指令。
vim模式有三种:命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
1)命令模式:
刚进去文本,便是命令模式,命令模式都是些基本的命令,常见的是文本的上下移动
2)输入模式:
在命令模式下按下i/a/o/O/A/I就进入了输入模式。常见的使用i在当前光标的前面插入字符
3) 底线命令模式:
在命令模式下按下:(英文冒号)就进入了底线命令模式。
当然,还有一种可视模式 (Visual-mode),在命令模式输入v,V,ctrl+v,可以进入可视模式,一般是对大段的文本进行删除。
vim常用命令:
1、模式转换:
上面已经大概的介绍了模式转换,这里介绍下几种可以转换的字符的差异,
命令模式>底线命令模式,有三种,主要是插入的位置相对光标的位置(一般都是用i)
对于光标位置前后====i/a,i是插入光标前面,a是插入光标后面
对于光标位置所在行首位===I/A,I是光标所在行的前面,A是最后面
对于光标位置所在上的上下行===o/O,o是插入下一行,O是上一行
2、关闭文件(保存/退出)
:q 退出(常用);
:q! 不保存退出(常用);
:w 保存;
:w! 强行保存;
:wq 保存退出(常用)
:wq! 强制保存并退出
e! 放弃所有修改并重新载入该文件的原始内容
注意:在命令模式下可ZZ或者shift zz直接保存退出
3、翻屏(命令模式)
有三种翻屏模式,半屏/全屏/逐行
半屏:ctrl u/d , u是向上翻,d是向下翻;
全屏:ctrl b/f ,b是向前翻一页,f是向后翻;
逐行:ctrl e/y ,e是向下逐行,y是向上
4、光标移动:
1)逐字符移动:h/l/j/k(与箭头功能一致)
左右 h/l :h是向左,l是向右
上下 j/k :j是向下,k是向上
2)以单词为单位移动:w/e/b
w/b : w光标移动到下一个单词的首位,b则是跳至当前或前一个单词的词首
e :跳至当前或下一个单词的词尾;
3)行内跳转:
0:跳至绝对行首
$:跳至绝对行尾
4)行间跳转:
ngg/nG:跳到第n行 gg:跳到第一行 G:跳到最后一行
5)复制字符
复制: 粘贴:
yy:复制当前行 p:粘贴到光标的后面
nyy:复制当前行至下面的n行 P:粘贴到光标的前面
可视模式下,只需要一个y即可
6)删除字符(命令模式)
x: 删除光标所在处的单个字符;
nx: 删除光标所在处及向后的共n个字符;
D:从当前光标处删除至行尾;
dd: 删除当前光标所在行(其实是剪切,下同);
ndd: 删除包括当前光标(向下数)所在行在内的n行;
在输入模式下,可以用Backspace键进行删除光标前面的字符
7)撤销(命令模式):u,可以多次按撤回多次操作
5、拓展:
1>显示行号 : set number 关闭显示:set nonumber
2>语法高亮 :syntax on 关闭:syntax off
3>搜索/查找
高亮搜索结果>>>开启这一功能用":set hlsearch",关闭这一功能:":set nohlsearch"。如果只是想去掉当前的高亮显示,可以使用下面的命令:":nohlsearch"(可以简写为noh)。
/ +字符 >>>搜索字符 n下一个 N上一个
a.b >>>可以搜索到a开头,b结尾的字符
精确查找某个字符(搜索the也会在there里面)>>> /字符\>
ctrl g 显示当前光标所在行的信息