Linux 中 Vi 编辑器的简单操作
Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式。3种模式彼此需要切换。
一、进入 Vi 编辑器的的命令
vi filename //打开或新建文件,并将光标置于第一行首
vi +n filename //打开文件,并将光标置于第n行首
vi + filename //打开文件,并将光标置于最后一行首
vi +/pattern filename //打开文件,并将光标置于第一个与 pattern 匹配处
vi -r filename //在上次使用 vi 编辑时发生系统崩溃,恢复 filename
二、Vi 3种模式的切换
一)、从命令模式到编辑模式
在命令模式下按以下命令将进入到编辑模式
1、a 在光标后进入编辑模式
2、i 在光标前进入编辑模式
3、A 在当前行尾进入编辑模式
4、I 在当前行首进入编辑模式
5、o 在当前行之下新开一行
6、O 在当前行之上新开一行
7、s 删除光标所对应的字符,进入编辑模式
8、ns //删除 n 个字符后进入编辑模式
9、S 删除光标所在的行,然后进入编辑模式
10、nS //删除 n 行后,进入编辑模式
三、命令模式下的操作
一)、光标的移动
1、j 光标向下移动一行
2、k 光标向上移动一行
3、h 光标向左移动一个字符
4、l 光标向右移动一个字符
5、ctrl + b //光标向上移动一屏,向后翻页
6、ctrl + f //光标向下移动一屏,向前翻页
7、$ //光标移动至行尾
8、0(数字) //光标移动至行首
9、gg //光标移动至文档开始处
10、G //光标移动至文档尾部
11、nG //光标移动到第 n 行
12、w //移动到下个单词的首字母
13、b //移动到本单词或者上个单词的首字母
14、e //移动到本单词或者下个单词的尾字母
15、{ //光标移动到段落首部
16、} //光标移动到段落尾部
17、L //光标移动到当前屏幕尾部(不会走到下一屏)
18、H //光标移动到当前屏幕首部
19、M //光标移动至当前屏幕中间行
20、space //光标向前移动一个字符
21、Backspace //光标向后移动一个字符
22、n+ //光标下移 n 行
23、n- //光标上移 n 行
24、n$ //光标移动至第 n 行尾
二)、文本内容的删除
1、x //删除光标所在位置的一个字符
2、nx //删除光标所在位置起 n个字符
3、dx //从当前字符删除到下个单词前,包括空格
4、ndx //从当前字符(单词)起,删除n个单词,包括最后一个空格后面的空格
5、dd //删除当前行
6、ndd //删除当前行起向下 n 行
7、J //删除光标所在行与下一行之间的空格,把光标行和下一行接在一起
通用删除:d+光标移动距离
8、d$ //删除光标到行尾的内容
9、d0 //删除光标到行首的内容
10、d} //删除从光标到段落尾部的内容
11、d{ //删除从光标到段落首部的内容
12、dL //删除当前行至屏幕尾部的内容
13、dH //删除当前行至屏幕首部的内容
14、dG //删除当前行至文档尾部的内容
15、d1G //删除当前行至文档首部的内容
16、dnG //删除当前行至文档的第 n 行
三)、文本内容的复制与粘帖
1、yy 复制当前行
2、nyy 复制从当前行开始向下的n行
3、y+光标移动的距离,可以进行灵活复制 (可以参考删除命令)
3、p 在光标之后粘贴(光标当前行的下一行进行粘贴)
4、P(大写) 在光标之前粘贴
三)、其他命令模式下的操作
1、u //撤销修改或删除操作
2、r+字符 //对光标当前单个字符进行替换
3、R //替换当前字符及其后的字符,直至按 ESC 键
3、. //重复执行上个命令
四、尾行模式下的操作
一)、文件的保存与退出
1、:w //保存
2、:w filename //另存为到 filename 文件
3、:wq //保存退出
4、:q //退出
5、:wq! //强制保存退出
6、:q! //不保存强制退出
7、:x //保存并退出 ,应该和 wq! 功能一样
二)、查找与替换
1)、/search 正向查找字符串 search,按 n 键查找下一个,按 N 键查找上一个
2)、?search 反向查找字符串 search
3)、s /search/replace 替换当前行首次出现的 search
4)、s /search/replace/g 把当前光标所在行中的 search 替换成 replace,并把文档中其余的 search 高亮显示
5)、%s /search/replace 把文档中所有的 search 替换成 replace
6)、m,n s /search/replace/g 把文档中从第m行到第n行中的 search 替换成 replace ,将把文档中其余的 search 高亮显示
三)、尾行模式下的文本编辑(复制,删除)
1)、n1,n2 co n3 //将 n1 行到 n2 行的内容复制到 n3 行下
2)、n1,n2 m n3 //将 n1 行到 n2 行的内容移动至 n3 行下
3)、n1,n2 d //将 n1 行到 n2 行之间的内容删除
:set nu/number //给文件每行内容设置编号
:set nonu/nonumber //取消设置编号
:n 光标跳转到第 n 行位置
五、编辑模式下的操作
1、ctrl+u //删除编辑模式下输入的文本内容