vim编辑器
vi/vim编辑器
-
vi是一款很多unix及其延伸系统内置的文本编辑器,具有强大的文本编辑能力。
-
vim是从vi发展出来的一个文本编辑器,可以理解为vi编辑器的增强版。vim中代码补完、编译及错误跳转等方便编程的功能特别丰富。
-
vi/vim编辑器的核心设计思想:让程序员的手指始终保持在键盘的核心区域, 就能完成所有的编辑操作。
-
学习使用vi/vim编辑器最大挑战:万物皆命令。
vi/vim 3种工作模式
-
命令模式(Command mode)
- 命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。
- 此模型下,不能自由进行文本编辑。
-
输入模式(Insert mode)
- 也就是所谓的编辑模式、插入模式。
- 此模式下,可以对文件内容进行自由编辑。
-
底线命令模式(Last line mode)
- 以:开始,通常用于文件的保存、退出。
命令模式<-->输入模式
-
i 进入到编辑输入模式后,定位到当前光标前面
-
o 进入到编辑输入模式后,在当前行的后面添加一行空行(当前行的下一行)
-
输入模式下按ESC退回到命令模式
命令模式<-->底线命令模式
-
在命令模式下,输入:进入底线命令模式。
-
常用的底线命令有:
- :q 退出
- :w保存
- :wq 保存退出
- :wq! 强制保存退出
提示:在命令模式下按下shift + zz,可以实现快速的保存退出
打开与新建文件
vim /path/file
-
如果打开的文件不存在,此时就是新建文件,编辑器左下角会提示new file
-
如果文件已经存在,此时就打开这个文件,进入命令模式
打开时异常处理
-
原因:编辑时非正常退出,数据没有保存,vim编辑器把未保存内容写入一个隐藏的swp文件。
-
现象:下次打开时,提示用户如何处理上次未保存的内容。
-
解决:
- 可以根据提示进行打开、编辑、恢复、删除、退出等操作
- 也可以直接使用rm 删除swp这个隐藏文件。
- O、E、R、D、Q、A分别代表打开、编辑、恢复、删除、退出
光标移动
-
方向键控制移动
-
命令 hjkl移动
-
翻页 pageup pagedown
-
行首(home 0) 行尾(end $)
-
跳到文件的最后一行 G
-
跳到文件的第一行 gg
复制粘贴
-
复制
- yy 复制光标当前所在行内容
- nyy 复制当前行往下n行
-
粘贴
- p(小写) 当前行的下一行粘贴
- P (大写)当前行的上一行粘贴
注意:使用鼠标从window或者其他地方复制内容到vim编辑器粘贴,一定要在输入模式下进行,否则数据会有丢失的风险。
搜索替换(在命令模式下使用)
-
搜索 /待搜索的内容,回车进行搜索,搜索到的结果会高亮显示
- n跳转到下一个搜索到的内容,N跳转上一个
- :noh 清除搜索匹配之后的高亮显示
-
替换
- :2,4s/原内容/替换内容/gc
- 没有g的时候,替换每一行匹配的到的第一个。g表示替换这一行的所有匹配到的
- c表示替换前给用户提示
注意:如果需要进行全局替换 所谓第一行到最后一行
-
:1,$s/原内容/替换内容/gc
-
:%s/原内容/替换内容/gc
删除、撤销操作
-
删除命令
- dd 删除光标所在当前行内容
- ndd 删除当前行往下n行
-
撤销、反撤销
- u 撤销上一步的操作(后悔药)
- ctrl+r 反撤销