使用文本编辑器——vim编辑器
1. vim操作模式
命令模式(Command mode)
:输入的任何字符都作为命令(指令)处理。
插入模式或输入模式(Insert mode)
:输入的任何字符都作为插入字符处理。
末行模式(Last line mode)
:执行文件级或全局性操作,如保存文件、退出编辑器,设置编辑环境等。
从插入模式切换到命令模式,至需按<Esc>键。
命令模式下输入“:”切换到末行模式,从末行模式切换到命令模式也需要按<Esc>键。
如果不知道处于那种模式,可以直接按<Esc>键确认进入命令模式。
2. 打开/启动vi编辑器
命令:
①vi filename
说明:打开或新建文件(没有文件会新建一个文件),并将光标置于第一行首。
②vi +n filename
说明:打开文件,并将光标置于第n行首。
③vi + filename
说明:打开文件,并将光标置于最后一行首。
④vi -r filename
说明:在上次正用vi编辑时发生系统崩溃,恢复filename。
⑤vi filename
1
filename2
…… filenamen
说明:打开多个文件,依次进行编辑。
3. 编辑文件
(1) 编辑文件 (文本输入模式)
- 命令模式下,可以输入相应的命令进入文本输入模式。
命令:
①i
说明:从当前光标所在位置前插入文本。
②I
说明:从当前光标所在行的行首插入文本。
③a
说明:从当前光标所在位置之后插入文本。
④A
说明:从当前光标所在行的行尾插入文本。
⑤o
说明:从当前光标所在行的下面新开一行。
⑥O
说明:从当前光标所在行的上面新开一行。
(2) 编辑文件 (光标移动和屏幕命令)
命令:
①四个方向键或h、j、k、l四个键(正规的vim用法)
说明:可以上下左右移动光标。
②数字0
说明:将光标移至当前行的行首。
③$
说明:将光标移至当前行的行尾。
④G
说明:将光标移至文件最后一行。
⑤nG
说明:将光标移至指定行号对应行的行的行首。
⑥Ctrl+b
说明:向上翻一页。
⑦Ctrl+f
说明:向下翻一页。
⑧Ctrl+g
说明:显示vi状态行上的状态信息。(文件名、当前行号等)
(3) 编辑文件 (删除)
命令:
①x
说明:删除光标处的单个字符。
②nx
说明:删除从光标所在位置开始向右的n个字符。
③X
说明:删除光标前面的那个字符。
④nX
说明:删除从光标前面那个字符开始的向左n个字符。
⑤dd
说明:删除光标所在的整行。
⑥ndd
说明:删除当前行开始向下n行。
⑦d0
说明:删除从光标前一个字符开始到行首的内容。
⑧d$
说明:删除从光标所在处开始到行尾的内容。
⑨dw
说明:删除一个单词。
⑩ndw
说明:删除n个指定的单词。
(4) 编辑文件 (复制、粘贴、撤销、重复)
命令:
①yy
说明:复制光标所在行。
②nyy
说明:复制从光标所在行开始向下n行。
③yw
说明:复制一个字。
④p
说明:将缓存区的内容(
删除或复制
操作的结果)粘贴到光标所在位置。⑤u
说明:恢复上一次操作。
⑥.
说明:重复执行上一次操作。
(5) 编辑文件 (搜索/查找)
命令:
①/
说明:在文本中从上向下搜索字符串。
②?
说明:在文本中从下向上搜索字符串。
③n
说明:显示搜索命令定位到下一个字符串。
④N
说明:显示搜索命令定位到上一个字符串。
4. 末行模式
命令:
①:set nu
说明:显示行号。
②:set nonu
说明:不显示行号。
③:n
说明:跳转到数字指定的行。
④:m,ns/字符串1/字符串2/g
例如 :1,9s/sum/mysum/g(从1行到9行范围,将sum替换成mysum,且默认全部替换,不作任何提示)
说明:(1)从m行到n行(指定范围),将字符串1替换成字符串2;
(范围使用“m,ns”的形式表示从m行到n行(s必须写,语法要求))
(2)对于整个文件,可以表示为1,$s或%s;
(3)若g改为c,表示在替换过程中要求确认是否替换。
(每一个都会提示:replace with mysum (y/n/a/q/l/E/Y)?)
(
注:
g:表示替换不必确认;c:表示在替换过程中要求确认是否替换)⑤:w
说明:保存文件并继续编辑。
⑥:w filename
说明:将当前文件保存为指定的文件名filename。
⑦:wq
说明:保存并退出vi编辑器。
⑧:wq!
说明:强制保存退出。
⑨:q
说明:退出。
⑩:q!
说明:不保存文件强行退出。
5. 多文件操作
- 要将某个文件内容复制粘贴到另一个文件中当前光标处,可在末行模式下执行命令:r filename, filename的内容将粘贴进来。
- 要同时打开多个文件,启动时加上多个文件名作为参数,如:vi filename1 filename2。打开多个文件之后,在末行模式下可以执行命令:next和:previous在文件之间切换。