vim有三中模式:命令模式,插入模式和末行模式
1.命令模式:
在sell中启动vi时,最初就是进入到命令模式,此时从键盘上输入的任何字符都作为命令来解释,在其他模式下,按<Esc>键,就切换到命令模式。
2.插入模式
插入模式主要用于输入文本,在命令模式下输入i,a等命令就可以进入插入模式。
3.末行模式
在命令模式下,按<: >键就进入末行模式,此时vi在窗口的最后一行显示一个“:”,并等待用户输入命令,在末行模式下,可以进行如:文件保存,退出,查找字符,文本替换,显示行号等操作。一条命令执行完毕,就会返回到命令模式。
4.启动v
- vi :不指定文件名,在保存文件时需要指定文件名。
- vi 文件名 :该文件既可以是已经存在的也可以是新建的。
- vi +n 文件名 :进入vi光标停止在第n行。
- vi + 文件名 :进入vi光标停在文件最后一行开始处。
- vi +/字符串 文件名: 进入vi,光标停在第一个字符串处。
- 5.保存文件和退出vi
- 在命令模式下按两次<Z>键,将保存并退出Vi. 或在末行模式下输入下面命令:
- w :保存当前正在编辑的文件,但不退出Vi.
- w 文件名 :将当前文件的内容保存在新指定的文件中,如果已存在,产生错误,也不会退出Vi.
- w! 文件名 ; 将当前文件的内容保存在新指定的文件中,如果指定的新文件已存在,则覆盖源文件,也不会退出Vi.
- q :不进行保存文件直接退出vi,如果文件改动过而没有保存将产生错误。
- q! :不保存修改后文件,强制退出vi,
- wq :保存并退出vi.
在末行模式下,输入如下命令: - set number 或
- set nu 可以给每一行添加行号。
6.光标的移动
1.在Vi的插入模式下,一般使用键盘的四个方向键来移动光标。
2.在命令模式下,常用的方法有:
- 0: 移动到当前行的行首。
- $:移动到当前行的行尾。
- 1G:移动到文件首行的行首。
- G:移动到文件末行的行首。
- nG:移动到文件第n行的行首。
7.文本的删除
1.在插入模式下,用<Delete>键可以删除光标所在位置的一个字符,用<Backspace>键删除光标所在位置的前一个字符。
2.在命令模式下常有下面的删除方法:
- nx:删除从光标开始的n个字。
- ndb:删除光标开始的前n个字。
- d0:删除光标前一个字符到行首的所有字符。
- d$:删除光标前一个字符到行尾的所有字符。
- dd:删除光标所在的当前行。
- ndd:删除从当前行开始的n行。
- d(:删除从当前字符开始到句首的所有字符。
- d):删除从当前字符开始到句尾的所有字符。
- d{::删除从当前字符开始到段首的所有字符。
- d}::删除从当前字符开始到段尾的所有字符
如果要取消前一次操作,在命令模式下输入字符u即可;
8.文本的查找和替换
在命令模式下,查找文本的方法:
- ?string<Enter>:在命令模式下输入?和要查找的字符串如:string,并回车即可。
- n:向文件头方向重复前一个查找命令。
- N:向文件尾方向重复前一个查找命令。
在命令模式下,替换文本的方法如下:
- :s/oldstr/newstr:在当前行用newstr字符串替换oldstr字符串,只替换一次。
- :s/oldstr/newstr/g:在当前行用newstr字符串替换所有的oldstr字符串。
- :1,10s/oldstr/newstr/g:在第1-10行用newstr字符串替换所有的oldstr字符串。
- :1,$s/oldstr/newstr/g:在整个文件中用newstr字符串替换所有的oldstr字符串。
9.文本的复制和粘帖
复制是把指定内容复制到内存的一块缓冲区中,粘帖是把缓冲区的内容粘帖到光标所在位置。
常用的方法:
- yw:将光标所在位置到字尾的字符复制到缓冲区中。
- nyw:将光标所在位置开始的n个字复制到缓冲区中,n为字数。
- yb:从光标开始向左复制一个字。
- nyb:从光标开始向左复制n个字,n为字数。
- y0:复制从光标前一个字符到行首的所有字符。
- y$:复制从光标开始到行尾的所有字符。
- yy:复制光标所在的行。
- nyy:复制从当前开始的n行,n为行号。
- p:在光标所在位置的后面插入复制文本。
- P:在光标所在位置的前面插入复制文本.
- np:在光标所在位置的后面插入复制文本。共复制n次。
- nP:在光标所在位置的后前插入复制文本。共复制n次。
这些只是Vi的常用功能,需要更多的可以百度。