1.VI编辑器的基本使用
1.VI的启动
在系统提示符下输入命令vi,后面接着输入想要创建或编辑的文件名
常用命令::::
后面跟 -R是以只读方式打开
-x对文件进行加密
2.VI的工作模式
VI有三种工作模式:普通模式,编辑模式,命令模式。
1。普通模式
普通模式下没有任何提示符,当输入命令立即执行,不需要按回车 ,和SHELL间切换用ZZ
2. 编辑模式
主要用于文本的输入,在普通模式下,输入a(附加命令)、c(修改命令)、i(插入命令)、o(另起新行)、r(取代命令)以及
s(替换命令)都将进入编辑模式,若要返回普通模式,只需要按esc即可。
3. 命令模式
尽管普通模式下的命令可以完成很多功能,但要执行一些如字符串查找替换等操作还是必须要进入命令模式。
普通模式切换命令模式秩序:即可,回到普通模式,按两次esc或者Backspace。
3.文件的保存和退出
1.保存退出
保存退出是将缓冲区的内容写入文件,可以使用的命令为wq和x。
2.强行退出
是指无条件退出,不把缓冲区中的内容写入文件,所使用的命令为q!。其中感叹号“!”表示不管文件是否被修改,放弃所修改内容强行退出。
3.直接退出
与强行退出的区别是如果文件内容有修改则给出提示。直接退出使用的命令为q。
4.光标移动
vi编辑器中的光标移动全部由键盘完成的。
1.向前移动一个字符
1或可以使用空格键或者右箭头
2.向前移动一个字符
h或space或者←
3.移动到下一行
+、enter键、j、ctrl+n、或↓
4.移动上一行
-、k、ctrl+p或↑
5.移至行首
将光标移到当前行的行首可以使用的命令为0和^,命令0是将光标移到当前行的第一个字符,不管它是否为空白符;而命令^将光标移到第一个非空白符。
6.移至行尾
将光标移到当前行的行尾可以使用的命令为$。如果在命令前加数字,则光标将下移到n-1行的行尾。
7.按词前移
将光标按词向前移动的命令为w和W。
8.按词后移
将光标按词向后移动的命令为b和B,
9.移至词尾
将光标移至当前字符所在单词词尾的命令为e和E.
10.移至指定行
将光标移至指定行的开头可以使用的命令如下:
:行号
行号G
第一个命令在命令模式下才可以,第二个在普通模式下
5.屏幕滚动
在vi编辑器中,尽管可以使用键盘上的page up和page down键来完成这些操作
1.向后滚动一屏ctrl+f
2.向后滚动半屏ctrl+d
3.向前滚动一屏ctrl+b
4.向后滚动半屏ctrl+u
5.屏幕定位
zz屏幕定位正中央,zt当前行置于屏幕顶端,而zb将当前行置于屏幕底端,gg将屏幕定位于第一屏,G定位最后一屏。
6.文本输入、删除与修改
1.插入命令
文本插入的命令为i和I,i是将其后输入的字符插入到当前光标位置之前,光标后的文本相应向后移动,命令I是将其后输入
的字符插入到当前光标所在行的行首。
2.附加命令
附加文本的命令为a和A,其中a是将其后输入的字符插入到当前光标位置之后,而命令A是将其后输入的字符追加到当前光标
所在行的行尾。
3.另起新行
另起新行的命令为o和O,其中命令o是在当前行的下面另起一行,命令O是在当前行的上面另起一行。
4.删除字符
删除字符的命令为x和X,其中x删除光标所在处的字符,而命令X删除光标前面的那个字符,如果前面给出一个数值n,则删除
由光标所在字符开始向右的n个字符。
5.删除文本对象
命令dd删除光标所在的行,命令D删除从光标所在位置开始到行尾的所有字符。
6.修改命令
修改文本的命令为c、C和cc,它们的作用是用新输入的文本代替原来的文本,这等阶于将原来的文本删除后,利用命令i插入
新的文本。
7.取代命令
取代文本的命令为r和R,其中r是用其后输入的单个字符取代光标所在处的字符。
7.复制与粘贴
1.粘贴
粘贴缓冲区文本的命令为p和P,这两个命令之间的区别是:命令p将文件放在当前行之下或当前光标之后,而命令P将文本放在当前行
之上或者光标之前。
2.复制
命名缓冲区是指以字母a~z命名的缓冲区,利用命名缓冲区可很好的
复制文本的命令有两种格式:
yy 复制整行
y<光标移动命令>
3.不使用缓冲区的复制与移动
不使用缓冲区完成文本行复制和移动的命令为co,格式如下:
:<开始行>,<结束行> co <目标行> //必须在命令模式下执行
同样文本的移动可以使用m命令,格式如下:
:<开始行>,<结束行> m <目标行> //必须在命令模式下执行
8.替换与查找
1.查找
按下“/”跳到光标的最后一行,然后输入要查找的字符串,完成后按enter开始搜索,按n向下移动
按下“?”搜索反方向,
如果全字符匹配 例如::/<字符/>
要匹配一行开头和结尾需要使用^和$字符,例如big$
在搜索命令中,不区分大小写查找:
:set ignorecase
:set incsearch
2.替换命令
文本替换的命令为s和S,其中命令s用随后输入的文本替换光标所在处的字符。
命令S将新输入的文本替换当前行,即S命令相当于将原来的文本删除后,重新插入。
3.全局替换
将包含字符串s1的所有行中用字符s2替换s1的首次出现,即如果在当前行中包含两个或更多,只有一个头被替换。
g/s1/s//s2/
如果要将文件中的所有字符s1都替换为s2,则使用如下命令:
g/s1/s//s2/g
9.其他功能
1.还原
命令u和U可以用来撤销刚执行命令的作用
u是单步的撤销
2.重复
重复命令“.”用来重复刚才的插入或删除命令。
3.挂起与恢复
vi编辑器可以使用ctrl+z来挂起回到SHELL,之后用户可以使用fg回到vi编辑器中。
2.VI编辑器之程序编辑
1.括号之间的跳转
命令% 可以实现括号之间的跳转,转到与当前光标下的括号相匹配的哪一个括号上,
2.局部变量和函数名的跳转
命令gd可以在当前文件中对局部变量名或函数名进行搜索,并将光标定位在第一次出现的位置。
3.查找全局标示符
[I 会列出所有包含该标示符的行,不光在当前文件中,也查找当前文件所包含的头文件,以及被头文件所包含的文件。
程序编辑过程中的关键字补全
相应的命令为ctrl+p和ctrl+n,这两个命令之间的差别只是在于搜索的顺序。
源代码的缩进
1.自动缩进
命令模式下输入:set cindent shiftwidth=2
2.手动缩进