![412ced19298b659c3c281beba364d07e.png](https://img-blog.csdnimg.cn/img_convert/412ced19298b659c3c281beba364d07e.png)
vi或vim是linux上非常实用的编辑器,很多linux默认安装了vi或vim。vi是 visual interface(可视界面)的缩写,vim是 vi IMproved(增强版的vi)的缩写,vim可以高亮显示文本
vi分为命令模式,底线命令模式和输入模式。使用vi进入命令行模式,在命令行输入a,i,o等插入命令进入输入模式,按下ESC退出输入模式回到命令行模式。在命令行模式输入冒号号进入底线命令模式,命令结束回到命令模式
打开、保存、关闭文件
- vi filename,打开filename文件
- :w,保存文件
- :w filename,另存为filename
- :q,退出
- :q!,强制退出
- :wq,保存并退出
- ZZ,那是大写的ZZ,表示文件如果没有改动则离开,如果改动则保存并离开
移动光标
命令模式下可以实用以下按键,也可以使用上、下、左、右箭头
- 空格,向右
- baskspace,向左
- 回车,跳转到下一行行首
- -,跳转到上一行行首
- 0,零相当于home建,跳转到行首
- $,相当于end建,跳转到行尾
- ctrl + f,向下翻一页
- ctrl + d,向下翻动半页
- ctrl + b,向上翻动一页
- ctrl + u,向上翻动半页
插入文本或行
- i,在光标的左边插入文本
- I,在光标的行首插入文本
- a,在光标的右边插入文本
- A,在光标的行尾插入文本
- o,在光标的下面新建一行
- O,在光标的上面新建一行
- R,将当前字符替换
- J,合并当前行和下一行
删除或恢复
- x,删除当前光标所在的字符
- nx,删除光标所在字符开始的n个字符
- dd,删除当前行
- ndd,删除当前行开始的n行
- d1G,删除光标行到文件开始
- dG,删除光标行到文件结束
- u,撤销
- U,取消撤销
搜索
- /str,向下搜索str字符串
- ?str,向上搜索str字符串
- &str,只显示匹配到str的行
- n,在搜索时匹配下一个
- N,在搜索时匹配上一个
- esc+n,重复上一次搜索内容,向下匹配
- esc+N,重复上一次搜索内容,向上匹配
跳转至某行
- 100+,向下跳转100行
- 100-,向上跳转100行
- 100G,跳转到100行的位置。
- G,跳转到末尾
- gg,跳转到文件开始,相当于1G
设置行号
- :set nu,显示行号
- :set nonu,取消显示行号
复制、粘贴
- [n]yy,复制当前行。n为数字,如果加了数字表示复制n行
- y1G,复制当前行到文件开始
- yG,复制当前行到文件结束
- [n]yw,从光标开始复制到单词结尾。n为数字,如果加了数字则表示从光标开始复制n个单词,注意是单词,不是字符
- y$,从光标开始复制到行尾
- y^,从光标开始复制到行首
- p,在光标后粘贴
- P,在光标前粘贴
替换
- :s/old/new,在当前行中把第一个old替换成new
- :s/old/new/g,在当前行中把所有的old替换成new
- :start,end s/old/new/g,从strart到end行中,所有的old换成new
- :%s/old/new/g[c],将整个文件中的old替换成new,如果出现c则会让用户确认,等同于 :1,$s/old/new
其他
- .,那是小数点,重复上一个动作
- :e otherfilename,编辑另一个文件
- :! commond,暂时退出vi并执行另一个命令,如:!ls /home
- :set fileformat=unix,将文件类型修改为unix下(windows下的文本在linux下会出现^M)
微信搜索赫连小伍关注我的公众号,文章不定期推送