Linux学习笔记(四) vim程序编辑器
一、常用按键
1.一般模式下的按键
(1)光标移动
Ctrl+f:屏幕向下移动一页,相当于pagedown按钮
Ctrl+b:屏幕向上移动一页,相当于pageup按钮
n+space(空格):n是数字,表示向右移动多少字符。如:20+空格,表示向右移动20个字符
0或者Home:移动到这一行的最前面字符处
$或者End:移动到这一行的最后的字符处
G:移动到文件的最后一行
nG:n为数字,表示移动到文件的第n行,可配合:set nu使用
gg:移动到文件的第一行,相当于1G
N+Enter:表示向下移动n行,注意与nG的区别
(2)查找与替换
/word:向下寻找名称为word的字符,如:/hello,即为查找为"hello"的字符
?word:向上寻找字符
n:n是英文按键,代表重复前一个查找的操作,如输入/hello后,再摁n,则继续向下查找"hello"字符串
N:与n正好相反,如果输入/hello后摁N,则表示向上查找"hello"字符串
:n1,n2s/word1/word2/g:n1,n2是数字,表示在第n1行和n2行之间寻找word1这个字符串,并且将该字符串替换为word2。如:100,200s/hello/HELLO/g,表示在100行到200行之间查找hello并且将它替换为HELLO
:1,$s/word1/word2/g:从第一行到最后一行查找word1,并且替换为word2
:1,$s/word1/word2/gc:从第一行到最后一行查找word1并替换为word2,但是替换前会提示用户确认是否替换
(3)删除、复制、粘贴
x,X:x表示向后删除一个字符(相当于Del键),X表示向前删除一个字符(相当于backspace)
nx:向后删除n个字符
dd:删除光标所在的一整行
ndd:删除光标所在向下n行
yy:复制光标所在的一行
nyy:复制光标所在向下n行
p,P:p是将复制的数据在光标下一行粘贴,P则为粘贴在光标上一行。如:光标在十二行,已经复制一行数据,摁p则数据会粘贴在下一行,即是第十三行,如果摁P,则原本的第十二行会变成第十三行。
u:复原前一个操作,相当于撤销
Ctril+r:重做上一个动作
.(小数点):重做前一个操作,如果想重复删除,重复粘贴,摁下小数点就行。
2.一般模式到可编辑模式
i,I:插入模式,i从目前光标处开始插入,I在目前所在行的第一个非空格符开始插入
a,A:插入模式,a表示从目前光标的下一个字符处开始插入,A表示从光标所在行的最后一个字符处插入
o,O:插入模式,o为在目前光标所在的下一行处插入新的一行,O为在目前光标所在处的上一行插入新的一行
r,R:替换模式,r替换光标所在的那一个字符,R则会一直替换,直到摁下Esc键为止
Esc:退出编辑模式,回到一般模式
3.一般模式到命令行模式
:w:将编辑的数据写入硬盘中,即为保存
:w!:若文件属性为"只读"时,强制写入,但到底能不能写入,要看具体权限
:q:离开vi编辑器
:q!:若修改过文件,又不想存储,使用"!"强制离开不保存文件
:wq:保存后离开,":wq!"则为强制保存后离开
ZZ:文件如果没有改动,则不保存离开,若文件改动过,则保存后离开
:w[filename]:另存为别的文件
:r[filename]:在编辑的数据中,读入另一个文件的数据,即将"filename"这个文件内容加到光标所在行的后面
:n1,n2 w[filename]:将n1到n2的内容保存成filename这个文件
:! command:暂时离开vi到命令行模式下执行command的显示结果,如:":! ls /home"表示在vi中查看/home下面的ls输出
:set nu/:set nonu:显示行号/不显示行号