vi的三种模式
2019-01-14 本文已影响5人
望月成三人
vi 三种模式
vi的三种模式为命令模式,编辑模式,尾行模式
命令模式
命令模式(默认),按下esc即可,可以执行移动光标,删除等操作
- 光标移动
- 字符级
- 左(h)
- 下(j)
- 上(k)
- 右(l)
- 单词级
- w word移动到下个单词首字母
- b before上个单词首字母
- e end下个单词结尾
- 行级
- 0 行首
- $ 行尾
- 段落级
- { 上
- }下
- 屏幕级
- H屏首
- L屏尾
- 文档级
- G 文档尾部
- nG 文档第n行
- gg 文档第一行
- crtl+f <--> pagedown向下翻页
- crtl+b <--> pageup向上翻页
- n+enter 向下移动n行
- 内容删除
- dd //删除当前行
- ndd //自当前行向下删除n行
- x //删除当前字符
- cw //删除光标所在字母后面的字符
- 内容复制
- yy //复制光标当前行
- nyy //自当前行复制n行
- p //对(删除)复制的内容进行粘贴
- 相关快捷操作
- u //撤销
- . //重复上次操作
编辑模式
输入a,i,o,s都可以从命令模式进入到编辑模式,编辑模式可以输入任意内容.若想回到命令模式下,按"ESC"键即可
- a 光标向后移动一位
- i 当前位置
- o 另起新行
- s 删除光标所在字符
- r 替换光标所在字符
尾行模式
用于保存内容、查找替换、设置行号等等功能性操作。比如在编辑模式下输入好内容后,需要保存,此时按"ESC"回到命令模式,然后按下":"进入到尾行模式
- :q //quit退出vi编辑器
- :w //write保存修改的内容
- :wq //保存并退出
- :q! //强制退出,当对文本内容作了修改而不想要保存时
- :w! //强制保存,当没有文本的写权限时
- :set number 或 :set nu //显示行号
- :set nonumber 或 :set nonu //取消显示行号
- :n //跳转到第n行
- :/内容/ 或 /内容 //查找指定内容
- :s/targetContent/newContent //替换当前行第一个targetContent为newContent
- :s/targetContent/newContent/g //整行相应内容替换
- :%s/targetContent/newContent <==> :1,$s/word1/word2/g //整个文本相应内容替换
- :n1,n2s/word1/word2/gc <==> //:100,200s/word1/word2/gc 把100行到200行之间的word1替换为word2,并提示是否替换 c->confirm
更多详细资料可以看看这篇文章