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中修改设置(只针当前用户有效)。