1. vim的基本概念
vim常用的三种模式分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入
:help vim-modes
2. vim三种模式切换
1.[正常模式]切换至[插入模式]
输入i 或 a 或 o
2.[插入模式]切换至[正常模式]
按下esc
3.[正常模式]切换至[末行模式]
输入 :
:w(保存文件)
:wq (退出并保存)
:!q (强制退出)
3. vim正常模式的命令集
3.1移动光标
vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
按「G」:移动到文章的最后
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页
3.2 删除文字
[ x ]:每按一次,删除光标所在位置的一个字符
[ #x ]:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
[ X ] :大写的X,每按一次,删除光标所在位置的“前面”一个字符
[#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
[ dd] :删除光标所在行
[#dd]:从光标所在行开始删除#行
3.3 复制
[yw」:将光标所在之处到字尾的字符复制到缓冲区中。
[#yw」:复制#个字到缓冲区
[yy」:复制光标所在行到缓冲区。
[#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
[ p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
3.4 替换
「r」:替换光标所在处的字符.
「R」:替换光标所到之处的字符,直到按下「ESC」键为止.
3.5 撤销上一次操作
[u]:如果您误执行一个命令,可以马上按下[u],回到上一个操作.按多次u可以执行多次回复。
[ctrl + r]: 撤销的恢复
3.6 跳至指定的行
「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首
4. vim末行模式命令集
4.1列出行号
「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号
4.2 跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,
再回车,就会跳到文章的第15行.
4.3 查找字符
「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按
「n」会往后寻找到您要的关键字为止。
4.4 保存文件 离开vim
[w」: 在冒号输入字母「w」就可以将文件保存起来
[q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
[wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件.
5. 常用技巧
5.1 替换文本内容
:1,5s/old/new/g 替换 1 到 5 行所有 old 为 new(s 表示替换)
:%s/old/new/g 替换整个文件的 old 为 new(% 是一个变量,在这里代表整篇文档)