- vim相当于vi(Visual Interface,文本编辑器)的升级版。vim是模式编辑器。
- vim基本格式是vim [OPTION] ...FILE...
- vim有三种主要模式:(Normal)命令模式、(Insert)插入模式、(extended command)扩展命令模式。
- 命令模式主要功能是查看,也有剪切粘贴功能
- 插入模式是修改
- 扩展命令模式是保存退出
- 模式之间的转换
- 命令模式 --> 插入模式
- i: insert, 在光标所在处输入
- I:在当前光标所在行的行首输入
- a: append, 在光标所在处后面输入
- A:在当前光标所在行的行尾输入
- o: 在当前光标所在行的下方打开一个新行
- O:在当前光标所在行的上方打开一个新行
- 插入模式 ---ESC--> 命令模式
- 命令模式 ----:---> 扩展命令模式
- 扩展命令模式 ---ESC---> 命令模式
- 关闭文件
- 扩展模式
- q 退出(前提是没有修改文件)
- wq 保存退出
- q! 强制退出,放弃做出的修改
- wq!保存退出
- x 保存退出
- 命令模式
- ZZ 保存退出
- ZQ 不保存退出
各个模式的操作
- 命令模式
- 光标跳转
- 字符之间跳转:
- h:← l:→ k;↑ j;↓
- #cmd:跳转由#指定的个数的字符。按随意数字后再按hjkl
- 单词间跳转
- w:下一个单词的词首
- e:当前或下一个单词的词尾
- b:当前或前一个单词的词首
- #cmd:由#指定一次跳转的单词数
- 当前页跳转
- H:页首
- M:页中间行
- L:页底
- 行首行尾跳转
- ^:跳转至行首的第一个非空白字符
- 0:跳至行首
- $:跳至行尾
- 行间移动
- G:最后一行
- gg或1G:第一行
- 句间移动
- ):下一句
- (:上一句
- 段落间移动
- }:下一段
- {:上一段
- 字符之间跳转:
- 翻屏
- Ctrl+f:向文本尾部翻一屏
- Ctrl+b:向首部翻一屏
- Ctrl+d:向尾部翻半屏
- Ctrl+u:向首部翻半屏
- 字符编辑
- x:删除光标处的字符
- #x:删除光标处起始的#个字符
- xp:交换光标所在处的字符及其后面字符的位置
- ~:转换大小写
- J:删除当前行后的换行符
- 替换命令
- r:替换光标所在处的字符,一次只能替换一个字符。
- R:切换成REPLACE模式,批量替换。emmmmmmmmmm
- 删除命令
- d:结合光标跳转实现范围删除
- d$:删除到行尾
- d^:删到非空行首
- d0:删到行首
- d#cmd:指定次数和命令批量删除
- ...
- dd:删除光标所在的行
- #dd:多行删除
- D:从当前光标位置一直删除到行尾,留空行,等同于d$
- d:结合光标跳转实现范围删除
- 复制和粘贴
- y:复制,行为和d相似
- ye:从当前位置拷贝到最后一个字符
- yy:复制行
- #yy:多行复制
- Y:复制整行
- p:粘贴。
- p(小写):粘贴至当前光标所在处的后面,下一行
- P(大写):粘贴至当前光标所在处的前面,上一行
- dd+p相当于剪切粘贴
- y:复制,行为和d相似
- 改变命令
- c:边删边进入切换模式,,可配合光标移动使用
- c$:从光标处删除到行尾并切换到插入模式
- c^
- c0
- c#cmd
- ...
- cc:删除当前行并输入新内容,相当于S
- C:删除当前光标到行尾,并切换成插入模式
- c:边删边进入切换模式,,可配合光标移动使用
- 撤销更改
- u:撤销最近的更改
- #u:撤销之前的#次更改
- U:撤销光标落在这行后所有此行的更改,针对此行,撤回到没修改的状态。
- .:重复前一个操作
- n.:重复n次前一个操作
- Ctrl+r,取消做出的上一次撤销操作
- 其他操作,命令组合
- 比如100ihuang[ESC]粘贴100次“huang”
- gu变小写
- 可以设定范围,比如gggu10G是将第一行到第十行变小写,以此类推。
- gU变大写,10GgUG是想第十行到最后一行变大写,以此类推。
- g操作也可以换成其它的操作,比如d,比如y...
- 扩展命令模式
- 地址定界
- 格式:开始行,结束行
- #:具体到第#行
- #1,#2:从#1到#2行
- #,+#:从#开始到+#行
- .:当前行
- $:最后一行
- .,-$当前行到倒数第二行
- %:全文。同1,$
- /PAT1/,/PAT2/:从被PAT1匹配到的行开始,到PAT2匹配到的行结束。比如/f/,/t/意思是从以f开头的行开始到以t开头的行结束。
- #,/pat/:从第#行到匹配到的行
- /pat/,$:匹配到的行到最后一行
- 地址定界后可以加操作,比如删除全文:%d。比如3,/^f/ w file,将范围内的行另存到指定文件中。
- 查找
- /PATTERN:从当前光标所在处向文件尾部查找。操作是在扩展命令模式下输入/和要查找的字符按下回车。
- ?PATTREN:从当前光标所在处向文件首部查找。
- n:与命令同方向;N:与命令反方向,这两个操作是用在查找到匹配结果后上下搜索的。
- 查找并替换
- s:在扩展模式下完成查找替换操作
- 格式:s/要查找的内容/替换为的内容/修饰符
- 要查找的内容:可使用模式
- 替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容
- 修饰符
- i:忽略大小写
- g:全局替换(默认情况下每一行指挥替换第一次出现的匹配字符)
- gc:全局替换,每次替换换前询问
- 查找替换中的分隔符/可替换为其它字符,保证格式正确就行。举例
- s@/etc@/var@g
- s#/boot#/#i 加颜色
- 格式:s/要查找的内容/替换为的内容/修饰符
- s:在扩展模式下完成查找替换操作
插入模式,emmmmm,就是增删修改数据。
内容不多,希望有所帮助。