2018-09-24 vim命令详解
2018-09-26 本文已影响0人
凤凰_0949
vim:文本编辑器
vi:visual interface
vim: VI improved
全屏编辑器,模式化编辑器
- vim打开文件 vim /path/to/somefile
如果文件存在就表示打开文件,如果不存在就表示新建文件,并且编辑文件。
vim +12 inittab
打开文件并且光标在12行
vim + inittab
打开文件,光标在文件最下方
vim +/PATTERN
vim +/mul inittab
打开文件并在模式第一次匹配到的行的行首 - 关闭文件
vim模式:
编辑模式 :所有命令都理解为编辑整个文档的(例如:粘贴,复制,删除)
输入模式:所有命令当作输入内容保存在文档(被当作输入内容保存在文件中)
末行模式:可以输入很多文档管理命令(除了编辑命令的更多管理命令) - 默认是处于编辑模式的
模式转换
编辑模式--> 输入模式
i:在当前光标所有字符的前面,转为输入模式
a:在当前光标所在字符的后面,转输入模式
o:在当前光标所在行的下方,新建一行并转输入模式
I:在当前光标所在行的行首转输入模式
A:在当前光标所在行的行尾转输入模式
O:在当前光标所在行的上一行转输入模式
输入模式--> 编辑模式
ESC:还原为编辑模式
编辑模式 --> 末行模式
:
:10,20d 删除10-20行
:set nu 每一行显示行号
:! 可以直接执行shell命令
末行模式 --> 编辑模式
:ESC
关闭文件:
1.在末行模式下关闭文件
:wq(保存并退出)
:q!(不保存并退出)
:w!(管理员对只读文件强行保存)
:x(保存退出)
2.编辑模下式退出
ZZ: (保存退出) - 移动光标
1.逐字符移动
h:向左
l:向右
j:向下
k:向上
5h:移动指定数目的字符,5h向左移动5个字符,在编辑模式下
2.逐单词移动
w:移至下一个单词的词首
e:跳到当前单词的词尾,或下一个单词的词尾
b:跳至当前或前一个单词的词首
以上均支持前面加数字,表示跳n个单词
3.以行为单位
0:快速跳至行首(绝对行首)
^ : 行首(非空白字符行首)
$:绝对行尾
4.行间跳转
G:5G直接跳转至5行,G最后1行
末行模式下,直接给出行号,回车即可 - 翻屏操作(编辑模式下)
Ctrl+f:向文件尾部翻屏
Ctrl+b:向上翻屏
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏 - 删除单个字符
x:删除光标所在处的单个字符,7x删除7个字符 - 删除命令d
d命令与跳转命令组合使用,指定删除部分
3dw:删除跳转符所指示范围得3个
4de:
dd:删除当前光标所在行
4dd:删除当前光标所在行开始得4行 - 末行模式下:
10,20d:删除10到20行
起始行,结尾行d
.:表示当前行
$:最后一行
+n:向下的n行 - 粘贴命令p
p:如果删除的或复制的为整行内容,则粘贴至光标所在行的下方,如果删除的或复制的为非整行内容,则粘贴至光标所在字符后面。
P :如果删除的或复制的为整行内容,则粘贴至光标所在行的前方,如果删除的或复制的为非整行内容,则粘贴至光标所在字符前面。 - 复制命令 y
用法同d命令 - 修改:先删除内容,再转换为输入模式
c:用法同d命令 - 替换:r
R:替换模式 - 撤销编辑操作 u
u:撤销前一次的编辑操作
连续u命令可以撤销此前的n次编辑操作
nu:撤销近n次编辑操作
撤销最近一次操作:Ctrl+r - 重复前一次编辑操作
. - 可视化模式
v:按字符选取
V:按矩形选取 - 查找
/PATTERN
?PATTERN - 查找并替换:在末行模式下使用s命令(sed)