vim是高级版的vi,vim不但可以用不同的颜色显示文字内容,还能够进行诸如shell脚本,C等程序编辑功能,你可以将vim视为一种程序编辑器。在vi里面,【tab】和【space】所得到的结果是不一样的。
移动光标 | |
h或← | 光标向左移动一个字符 |
j或↓ | 光标向下移动一行 |
k或↑ | 光标向上移动一行 |
l或→ | 光标向右移动一个字符 |
【ctrl+f】 | 相当于【Page Down】 |
【ctrl+b】 | 相当于【Page Up】 |
【ctrl+d】 | 屏幕向下移动半页 |
【ctrl+u】 | 屏幕向上移动半页 |
【ctrl+e】 | 向下移动一行 |
【ctrl+y】 | 向上移动一行 |
+ | 光标移动到上一行的第一个非空字符处 |
- | 光标移动到下一行的第一个非空字符处 |
n<space> | 光标向后移动n个字符 |
0或【home】 | 光标移到该行第一个非空字符处 |
$或【end】 | 光标移到该行最后一个非空字符处 |
H | 光标移动到第一行的第一个非空字符处 |
M | 光标移动到中央一行的第一个非空字符处 |
L | 光标移动到最后一行的第一个非空字符处 |
G | 光标移动到最后一行 |
nG | 光标移动到第n行 |
gg | 光标移动到第一行,相当于1G |
n【enter】 | 光标向下移动n行 |
查找和替换 | |
/word | 向下寻找名称为word的字符串 |
?word | 向上寻找名称为word的字符串 |
:n1,n2 s/word1/word2/g | 将n1到n2行间的word1替换为word2 |
:1,$ s/word1/word2/gc | 将整个文件中的word1替换为word2,并且在替换前显示提示字符给用户确认是否替换 |
:n1,n2 s/^/#/g | 注释n1到n2行 |
:1,$ s/^/#/g(:%s s/^/#/g) | 注释整个文档 |
:n1,n2 s/#/^/g | 将n1到n2行解注释 |
删除、复制与粘贴 | |
X,x | X向前删除一个字符;x向后删除一个字符 |
nx | 连续向后删除n个字符 |
dd | 删除光标所在行 |
ndd | 从当前行开始向下删除n行 |
d1G | 删除当前行到第一行的所有数据 |
dG | 删除当前行到最后一行的所有数据 |
d$ | 删除从光标到该行末尾的所有数据 |
d0 | 删除从光标到该行行首的所有数据 |
dh | 删除前一个字符 |
dl | 删除后一个字符 |
dk | 删除上一行 |
dj | 删除下一行 |
yy | 复制当前行 |
nyy | 从当前行开始向下复制n行 |
y1G | 复制当前行到第一行的所有数据 |
yG | 复制当前行到最后一行的所有数据 |
y$ | 复制从光标到该行末尾的所有数据 |
y0 | 复制从光标到该行行首的所有数据 |
P,p | P在光标的上一行粘贴;p在光标的下一行粘贴 |
J | 将光标所在行与下一行的数据结合成同一行 |
c | 重复删除多个数据(10ck向上删除10行) |
u | 前撤,相当于【ctrl+z】 |
U | 撤销对整行的操作 |
【ctrl+r】 | 后撤 |
. | 重复前一次操作 |
:n1,n2 co n3 | 将n1到n2行数据复制到第n3行下一行 |
:n1,n2 m n3 | 将n1到n2行数据剪切到第n3行下一行 |
进入插入或替换的编辑模式 | |
I,i | i在光标所在处插入;I在当前行第一个非空字符前插入 |
A,a | a在光标的下一个字符处插入;A在当前行最后一个字符处插入 |
O,o | O在当前行前插入新行;o在当前行后插入新行 |
R,r | R一直替换光标所在的字符,直到按下【esc】;r只替换光标所在处的一个字符,替换后进入普通模式 |
命令行命令 | |
ZZ | 保存并退出 |
:w [filename] | 将编辑的数据保存到另一个文件(相当于另存为) |
:n1,n2 w [filename] | 将n1到n2的内容保存到另一个文件 |
:r [filename] | 在编辑的数据中,读入另一个文件中的数据 |
:! command | 暂时离开vim到命令行模式下执行command命令 |
vim环境的更改 | |
:set nu :set nonu | 显示行号 取消显示行号 |
:set hlsearch :set nohlsearch | 设置高亮查找 取消高亮查找 |
:set autoindent :set noautoindent | 设置自动缩进 取消自动缩进 |
:set (no)backup | 设置自动保存备份文件(当文件方式更改时,原文件会被另存为文件名为filename~的文件) |
:set (no)ruler | 显示右下角的状态栏 |
:set (no)showmode | 显示左下角的状态栏 |
:set backspace=(0,1,2) | backspace为2时,可以删除任意值;backspace为0或1时,仅能删除刚才输入的字符,无法删除原本已经保存的字符 |
:syntab on/off | 打开/关闭语法检查(高亮显示) |
:set bg=(dark,light) | 设置颜色背景 |
块选择 | |
v | 字符选择,会将光标经过的地方反白选择 |
V | 行选择,会将光标经过的地方反白选择 |
【ctrl+v】 | 块选择,可以用长方形的方式选择数据 |
y | 复制反白区域 |
d | 删除反白区域 |
文件命令 | |
vim file1 file2 file3 …… | 同时打开多个文件 |
:open file | 在vim中打开一个新文件 |
:e ftp://192.168.59.129/file | 打开远程文件 |
args(files) | 查看vim打开的所有文件 |
:[b]n | 换到下一个文件 |
:[b]N | 换到上一个文件 |
多窗口功能 | |
:split file(:sp file) | 在新窗口中打开文件 |
【ctrl+ww】 | 移动到下一个窗口 |
【ctrl+w+j】(【ctrl+w+↓】) | 移动到下方窗口 |
【ctrl+w+k】(【ctrl+w+↑】) | 移动到上方窗口 |
在/etc/vimrc中修改设置(针对系统的所有用户有效)。
在~/.vimrc中修改设置(只针当前用户有效)。