VIM编辑器
什么是VIM编辑器
VIM是从vi发展出来的一个文本编辑器,代码补全,编译,及错误跳转等功能特别丰富。Linux中必须会使用vim
三种使用模式
基本上vim/vi分为三种使用模式,分别是命令模式(Command mode)、输入模式(Insert mode)、底线命令模式(Last Line mode)
命令模式(Command mode)
用户刚刚启动vim,便进入了命令模式
此状态下敲击键盘会被识别为命令,不会输入字符
以下为常用命令:
命令 | 作用 |
---|---|
i | 切换到输入模式 |
: | 切换到底线命令模式 |
k或者上箭头 | 光标向上移 |
j或者下箭头 | 光标向下移 |
h或者左箭头 | 光标向左移 |
l或者右箭头 | 光标向右移 |
Ctrl+f | 向下移动一页,相当于pageDown |
Ctrl+b | 向上移动一页,相当于pageUp |
Ctrl+d | 向下移动半页 |
Ctrl+u | 向上移动半页 |
0/功能键[home] | 将光标移动到该行的开头处 |
$/功能键[end] | 将光标移动到该行的结尾处 |
H | 将光标移动到这个屏幕第一行的第一个字符所在的位置 |
M | 将光标移动到这个屏幕中央的那一行的第一个字符所在的位置 |
L | 将光标移动到这个屏幕最后一行的一个字符所在的位置 |
G | 将光标移动到这个屏幕最后一行的一个字符所在的位置 |
nG | n代表数字,表示移动到该文件的第几行 |
gg | 移动到这个文件的第一行 |
n<回车> | 光标向下移动n个字符(单独摁空格光标向下移动一个字符) |
n<退格键> | 光标向左移动n个字符(单独摁退格键光标向左移动一个字符) |
n<空格> | 光标向右移动n个字符(单独摁空格光标向右移动一个字符) |
替换搜索
命令 | 作用 |
---|---|
/ keyword | 向下查询字符串keyword |
?keyword | 向上查询字符串keyword |
n | 继续当前的查询动作 |
N | 反向进行当前的查询动作 |
删除、复制、黏贴
命令 | 作用 |
---|---|
x ,X | 删除当前光标所在的字符 |
nx | n为数字,连续向后删除n个字符 |
<数字>dd/D | 删除光标所在的那n整行(默认n为1) |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除所在光标到该行最后 |
d0 | 删除所在光标到该行开头 |
<数字>yy | 复制那一整行(默认n为1) |
y1G | 复制光标所在行到第一行的所有数据 |
yG | 复制光标所在行到最后一行的所有数据 |
y0 | 复制光标所在到该行的开始位置 |
y$ | 复制光标所在到该行的结束位置 |
p,P | p将复制的数据在光标的下一行黏贴,P将复制的数据在光标的上一行黏贴 |
J | 将光标所在行与下一行的数据结合成同一行 |
Ctrl+r | 重做 |
u | 撤销 |
从命令模式切换到输入模式的其他命令
命令 | |
---|---|
i、I | i为在当前光标处进入输入模式,I为在当前光标所在行的第一个字符所在处进入输入模式 |
a、A | a为在当前光标的下一个字符处进入输入模式,A为在当前光标所在行的最后一个字符所在处进入输入模式 |
o、O | o为在当前光标所在行的下一行输入一个新的一行,O为在当前光标所在行的上一行输入一个新的一行 |
r、R | 进入取代模式,r为只取代一次,R为一直取代直到按下esc |
esc | 退出到命令模式 |
输入模式(Insert mode)
在此模式下,可以使用以下按键
这些操作和我们平时用的是一样的
底线命令模式(Last Line mode)
在此模式下,我们的光标会移动到最底下,就可以输入一些命令了
命令 | |
---|---|
:w | 保存 |
:w! | 若文件为只读属性,强制写入,跟权限有关 |
:q | 退出vim |
:q! | 不保存退出 |
!在vim中一般表示强制的意思 | |
:wq | 保存退出 |
:ZZ | 如果档案没有改动,则不储存离开,若修改了,则储存后离开 |
:w[filename] | 另存为到另一个文件 |
:r[filename] | 在编辑的数据中,读入另一个档案的数据。亦将filename中的内动追加到光标所在行的后面 |
:n1,n2 w[filename] | 将n1到n2的数据存储到filename这个文件中 |
:!command | 暂时离开vim执行command命令,【例如::! ls /home】 |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |