为何要学vim?
原因:
- 所有的UNIX-like系统都会内置vi文本编辑器,其他的文本编译器则不一定存在;
- 很多软件的编辑接口杜会主动调用vim(例如:crontab,visudo,edquota等命令);
- vim具有程序编译的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;
- 因为程序简单,编译速度非常快;
重点在上述的第2点,因为太多Linux的命令默认使用vi作为数据编辑接口,否则很多命令无法使用。
什么是vim?
vim可以视作为vi的高级版本,vim可以用颜色或下划线的方式来显示一些特殊的信息。
vim的使用?
共3种模式
- 一般命令模式(command mode)
以vim打开一个文件就直接进入一般命令模式了;这是默认模式,简称一般模式。
可以使用【上下左右】按键来移动光标,【删除字符】或【删除整行】,【复制,粘贴】来处理文件内容。 - 编辑模式(insert mode)
在编辑模式中无法进行【删除字符】或【删除整行】,【复制,粘贴】等操作来处理文件内容。要按下【i,I,o,O,a,A,r,R】等任何一个字母之后切换到编辑模式才可操作;如果要回到一般模式按下【Esc】按键可退出编辑模式。 - 命令行模式(command-line mode)
在一般模式中输入【:,/,?】三个中的任意一个,就可以将光标移动到最下面一行。这个模式中可以使用【查找数据】的操作,而读取,保存,批量替换字符,退出vim,显示行号等的操作可在此模式中完成。
注:编辑模式和命令行模式之间不可互相切换。
常用的功能按键说明
一般命令模式下:
移动光标的方法
操作 | 说明 |
---|---|
h或向左箭头键(←) | 光标向左移动一个字符 |
j或向右箭头键(→) | 光标向右移动一个字符 |
k或向上箭头键(↑) | 光标向上移动一个字符 |
l或向下箭头键(↓) | 光标向下移动一个字符 |
【Ctrl】+【f】 | 屏幕向下移动一页,相当于【page down】按键 |
【Ctrl】+【b】 | 屏幕向上移动一页,相当于【page up】按键 |
0或功能键【Home】 | 这是数字0,移动到这一行的最前面字符出 |
$或功能键【End】 | 移动到这一行的最后面字符出 |
G | 移动到这一行的最后面字符出 |
gg | 移动到这个文件的第一行,相当于1G |
n+[Enter] | n为数字,光标向下移动n行 |
查找于替换
操作 | 说明 |
---|---|
/word | 向光标之下寻找一个名称为word的字符串。例如要在文件内查找vbird这个字符串,就输入/vbird即可 |
删除,复制与粘贴
操作 | 说明 |
---|---|
x与X | 在一行当中,x为向后删除一个字符(相当于【del】按键),X为向前删除一个字符(相当于【Backspace】退格键 |
dd | 删除(剪切)光标所在的那一整行 |
yy | 复制光标所在的那一整行 |
nyy | n为数字,复制光标所在的向下n行,例如20yy则复制20行 |
p与P | p为将已复制的数据在光标下一行粘贴,P 则为贴在光标的上一行。例如,目前光标在第20行,且已经复制了10行数据,按下p后,那10行数据会贴在原本的20行之后,即有21行开始贴,但如果按下P,那么原本的第20行会被推到变成30行。 |
u | 恢复前一个操作 |
【Ctrl】+r | 重做上一行操作 |
. | 就是小数点,意思是重复前一个操作的意思。如果你想要重复删除,粘贴等操作,按下小数点就好 |
一般命令模式切换到编辑模式
操作 | 说明 |
---|---|
i与I | 进入插入模式(insert mode); i为从目前光标所在处插入,I为在目前所在行的第一个非空格符处开始插入。 |
a与A | 进入插入模式(insert mode); a为从目前光标所在的下一个字符开始处插入,A为光标所在行的最后一个字符处开始插入。 |
o与O | 进入插入模式(insert mode); o为从目前光标所在的下一行处插入新的一行,O为目前光标所在处的上一行插入新的一行。 |
r与R | 进入替换模式(replace mode); r只会替换光标所在的那一个字符一次,R会一直替换光标所在的文字,直到按下Esc为止。 |
【Esc】 | 退出编辑模式,回到一般命令模式中 |
一般命令模式切换到命令行模式
操作 | 说明 |
---|---|
:q | 退出vim |
:q! | 强制退出不保存 |
:wq | 保存后退出 |
:!wq | 强制保存后退出 |
注意:在vim中,数字是很有意义的,数字通常代表重复做几次的意思,也有可能是代表去到第几个什么什么的意思。