vim中有“一般模式”,“编辑模式”,“命令模式“三种模式,其作用分别为:
命令 | 说明 |
---|---|
h,← | 光标左移一个字符 |
j,↓ | 光标下移一个字符 |
k,↑ | 光标上移一个字符 |
l,→ | 光标右移一个字符 |
n[h,j,k,l] | n表示数字,再按下按键key可以向指定方向移动n个字符 |
aa | a |
Ctrl + f,[PgDn] | 屏幕向下移动一页 |
Ctrl + b,[PgUp] | 屏幕向上移动一页 |
Ctrl + d | 屏幕向下移动半页 |
Crtl + u | 屏幕向上移动半页 |
+ | 光标移动到非空格符的下一列 |
- | 光标移动到非空格符的上一列 |
n<space> | n表示数字,再按下空格键光标向右移动n个字符 |
0,[Home] | 光标移动到第一个字符 |
$,[End] | 光标移动到最后一个字符 |
H | 光标移动到屏幕第一行第一个字符 |
M | 光标移动到屏幕中央一行的第一个字符 |
L | 光标移动到屏幕最后一行的第一个字符 |
G | 光标移动到文件最后一行 |
nG | n为数字,光标移动到文件第n行 |
gg | 光标移动到文件第一行,相当于1G |
n<Enter> | n为数字,光标下移n行 |
命令 | 说明 |
---|---|
/word | 向光标之后查找”word“ |
?word | 向光标之前查找”word“ |
n | 重复前一个查找的动作 |
N | 反向重复前一个查找的动作 |
:n1,n2s/word1/word2/g | n1和n2为数字在n1行和n2行之间查找word1,并替换为word2 |
:1, $s/word1/word2/g | 全文查找word1并替换为word2 |
:1, $s/word1/word2/gc | 全文查找word1并替换为word2,且在替换前确认 |
命令 | 说明 |
---|---|
x,【Del】 | 向后删除一个字符 |
X,【Backspace】 | 向前删除一个字符 |
nx | n为数字,向后删除n个字符 |
nX | n为数字,向前删除n个字符 |
dd | 删除光标所在行 |
ndd | n为数字,删除光标所在的向下n行 |
dnG | n为数字,删除光标所在行到第n行 |
dG | 删除光标所在行到最后一行 |
0G | 删除光标所在位置到该行第一个字符 |
yy | 复制光标所在行 |
nyy | n为数字,复制光标所在的向下n行 |
ynG | n为数字,复制光标所在行到第n行 |
yG | 复制光标所在行到最后一行 |
y0 | 复制光标所在字符到该行行首 |
y$ | 复制光标所在行到该行行尾 |
p | 将复制的数据粘贴在光标下一行 |
P | 将复制的数据粘贴在光标上一行 |
J | 将光标所在行与下一行的数据合并成一行 |
C,c$ | 删除当前行光标后面的字符,并进入编辑状态 |
c0,c^ | 删除当前行光标前面的字符,并进入编辑状态 |
cc,S | 删除当前行,并进入编辑状态 |
cw | 删除光标到该单词结束位置,并进入编辑状态 |
cfx | x为任意字符删除光标到下一个x字符之间的文本,并进入编辑状态 |
cFx | x为任意字符删除光标到上一个x字符之间的文本,并进入编辑状态 |
cnG | n为数字,删除光标所在行到第n行,并进入编辑状态 |
cG | 删除光标所在行到末行,并进入编辑状态 |
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> | 退出编辑模式,回到一般模式 |
命令 | 说明 |
---|---|
:w | 将编辑的数据写入硬盘 |
:w! | 强制写入文件,即使文件属性为“只读”需要对文件有写的权限 |
:q | 离开vim |
:q! | 强制离开文件,不保存 |
:wq | 保存并离开 |
:wq! | 强制保存并离开 |
ZZ | 若文件没有改动,则不保存离开,如果文件有改动,则保存后离开 |
:w[filename] | 将文件另存为filename |
:r[filename] | 在光标处插入另一个文件的数据 |
:n1,n2 w [filename] | 将n1到n2行之间的内容保存为filename |
:! command | 暂时离开vim查看command的执行结果 |
命令 | 说明 |
---|---|
v | 字符选择,选择光标经过的字符 |
V | 行选择,选择光标经过的行 |
<Ctrl> + v | 区块选择,选择光标经过的区块 |
y | 复制选择的部分 |
d | 删除选择的部分 |
命令 | 说明 |
---|---|
:n | 编辑下一个文件 |
:N | 编辑下一上文件 |
:files | 列出当前vim打开的所有文件 |
命令 | 说明 |
---|---|
:sp [filename] | 开启新窗口如果有文件名参数,在新窗口中打开该文件如果没有文件名参数,打开同一个文件(同步显示) |
<Ctrl + w> + j<Ctrl + w> + ↓ | 光标下移一个窗口 |
<Ctrl + w> + k<Ctrl + w> + ↑ | 光标上移一个窗口 |
<Ctrl + w> + q | 离开窗口 |
vim配置文件包括~/.vimrc,~/.viminfo
命令 | 说明 |
---|---|
:set all | 显示所有环境参数设定值 |
:set | 显示所有与系统默认值不同的环境参数设定值 |
:set nu:set nonu | 显示行号取消显示行号 |
:set hlsearch:set nohlsearch | 高亮显示查询结果取消高亮显示查询结果 |
:set autoindent:set noautoindent | 自动缩进取消自动缩进 |
:set backup:set nobackup | 自动保存备份文件取消自动保存备份文件自动保存的话,源文件会被另存为filename~ |
:set ruler:set noruler | 显示状态栏说明取消显示状态栏说明 |
:set showmode:set noshowmode | 显示所处模式取消显示所处模式 |
:sytax on:syntax off | 是否根相关语法显示不同的颜色 |
:set bg=dark:set bg=light | 设置主题颜色 |