vi简介
vi是一种文本编辑器,而vim具有程序编辑功能
三种模式:
一般指令模式 (command mode)
以 vi 打开一个文件就直接进入一般指令模式(这是默认的模式,也简称为一般模式)。在这个模式中可以使用“上下左右”按键来移动光标,可以使用“删除字符”或“删除整列”来处理文件内容, 也可以使用“复制、贴上”处理你的文件数据。
编辑模式 (insert mode)
在一般指令模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下“i, I, o, O, a, A, r, R”等任何一个字母之后才会进入编辑模式。注意了!通常在Linux 中,按下这些按键时,在画面的左下方会出现“ INSERT 或 REPLACE ”的字样,此时才可以进行编辑。而如果要回到一般指令模式时, 则必须要按下“Esc”这个按键即可退出编辑模式。
命令行命令模式 (command-line mode)
在一般模式当中,输入“ : / ? ”三个中的任何一个按钮,就可以将光标移动到最下面那一列。在这个模式当中, 可以提供你“搜寻数据”的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!
常用命令:
编辑相关:
a, A ,i
进入插入模式(Insert mode):a为“从目前光标所在的下一个字符处开始插入”, A 为“从光标所在列的最后一个字符处开始插入”。
[Esc]
退出编辑模式,回到一般指令模式中
退出与保存:
:q
离开vi
:q!
若曾修改过文件,又不想储存,使用 ! 为强制离开不储存盘。
:wq
储存后离开,若为 :wq! 则为强制储存后离开 (常用)
查找相关:
在一般指令模式下按下/
即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。
按下n
查找下一个,按下N
查找上一个。
/guanjianci\c 大小写不敏感
/guanjianci\C 大小写敏感
过滤:
在一般指令模式模式输入
:%!grep xxx
这样,所有含有xxx的行才会被保留下来,其它行都不见了。。
或者,你想干掉所有包含xxx的行,用下面这句。
:%!grep -v xxx
删除、复制、黏贴等:
dd
删除一行
ndd
删除以当前行开始的n行
dw
删除以当前字符开始的一个字符
ndw
删除以当前字符开始的n个字符
复制一行:yy
复制多行:
光标移动到结束行,ma
光标移动到起始行,输入y'a
光标移动到需要复制的行,输入p,行前复制则输入大写P
全部复制:
全部复制:按esc后,然后ggyG
全部删除:按esc后,然后dG
p:黏贴
行号相关:
在一般指令模式下按下:
后输入数字可进入对应行;
显示行号:
在一般指令模式下,可输入“: set nu”,点击回车可显示行号。
取消显示:在vim命令行模式下输入: set nonu
关键词匹配或补全:
Ctrl + p
撤销:
一般指令模式下按下u
参考书籍:
《Linux私房菜,基础学习篇》