vimtutor
命令可以打开教程文档
原文特别提示 ⬇⬇⬇
特别提示:切记您要在使用中学习,而不是在记忆中学习
:
起手,可以使用比正常模式更加复杂的命令进行操作Crtl组合键
无需区分大小写
表示某个按键:
命令都需要以
结束operator [number] motion
:操作符 [数字] 移动
命令表示对number
次motion
所扫过的区域进行operator
操作,number
可选,例如d4w
、c2e
vim file_name
:编辑文件
h
、j
、k
、l
:分别用于向左、向下、向上、向右移动光标,方向键
与hjkl
具有相同功能,3j
表示光标向下移动3行
:q!
:放弃所有修改并强制退出编辑器
x
:用于将光标所在位置字符删除,3x
表示删除光标位置及其之后的共3个字符
i
:切换为插入模式
A
:用于向该行末尾追加内容,会自动转为编辑模式并将光标置于光标所在行末尾
:wq
:用于保存并退出编辑器
:将切换为正常模式,并撤销一个不想输入或部分完整的命令
数字 + 方向键或hjkl
:将光标向某个方向移动n次
w
:从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符
e
:从当前光标当前位置直到单词末尾,包括最后一个字符
0
:从当前光标当前位置移动到行首
$
:从当前光标当前位置直到当前行末
2w
:光标向后移动到第二个单词首字符
3e
:光标向后移动到第三个单词末尾
4$
:光标向后移动到第四行行尾
dw
:将光标所在位置的单词删除
d2w
:删除两个单词
d$
:将光标所在位置及该位置至所在行末尾的所有字符删除
de
:将光标所在位置及该位置至所在单词末尾的所有字符删除
d0
:将光标所在位置及该位置至所在行首字符的所有字符删除
dd
:删除整行
2dd
:删除两行
U
:撤销上次对某一行的修改(不包括整行删除、整行插入),U
会撤销U
本身,U
只能撤销最新一次修改
u
:撤销上一次编辑命令,包括U
但不包括u
和Ctrl r
Ctrl r
:重做上一次命令,包括U
但不包括u
和Ctrl r
粘贴
p
:将最后一次删除的内容粘贴至光标之后,若为d$
等非完整行内容,以字符为单位直接粘贴在光标之后,若为dd
等完整行内容,以行为单位向下粘贴在新的行
替换
rc
:c为任意字符,r会替换光标所在位置字符,c为指定的替换后的内容
修改
cw
:删除光标至单词末尾字符,并切换为插入模式
c$
:删除光标至行末尾字符
c4l
:删除光标及其右边紧邻的共计4个字符,并切换为插入模式
光标移动
gg
:光标跳转至第一行
G
:光标跳转至最后一行
5G
:光标跳转至第5行
文件状态
Ctrl G
:在最下方显示文件状态信息以及当前光标所在位置
查找
/str
:自上而下查找字符串,str
为要搜索的任意字符串
/str\c
:自上而下查找字符串,str
为要搜索的任意字符串,查找时忽略大小写
?str
:自下而上查找字符串,str
为要搜索的任意字符串
n
:查找下一个满足条件的字符串
N
:查找上一个满足条件的字符串
Ctrl O
:返回到上一个查找位置
Ctrl I
:返回下一个查找位置
%
:配对括号查找,对光标所在位置的(
、)
、[
、]
、{
、}
使用该命令可以将光标跳到与之配对括号的的位置,可以用于在程序调试时查找不配对括号
替换
:s/old/new
:将光标所在行的第一个old
字符串替换为new
:s/old/new/g
:将光标所在行所有的old
字符串替换为new
:n1,n2/old/new/g
:将[n1, n2]
间的所有的old
字符串替换为new
%s/old/new/g
:将整个文件中所有的old
字符串替换为new
:%s/old/new/gc
:将整个文件中的old
字符串替换为new
,且每次替换前要确认(confirm)是否进行替换
执行外部命令
:!command
:在VIM内执行外部命令需要以:!
为开头,command
为任意外部命令,包括带命令行参数的命令,支持空命令:!
保存
:w filename
:保存为filename
文件。filename
为文件名,若省略文件名则保存文件到当前
v motion :w FILENAME
:部分保存,使用v
切换为可视模式,以光标所在位置为起始位置,使用光标移动选择要保存的部分内容,直到下次使用:
会触发:'<,'>
,继续输入w filename
可以保存为filename
文件
可视模式
v
:进入可视模式,移动光标可以选中内容,可以对选中的高亮内容进行操作,如d
可以删除选中内容,c
可以删除选中内容并切换为插入模式
提取与合并
:r filename
:将filename
文件的内容以行为单位粘贴至光标下方
:r !command
:将command
命令的结果以行为单位粘贴至光标下方,如:r !ls
插入
o
:在光标下方新开一行,并将光标移动至新开行行首,切换模式为插入模式
O
:在光标上方新开一行,并将光标移动至新开行行首,切换模式为插入模式
i
:保持光标不动,切换至插入模式
a
:将光标向后移动一个字符,并切换至插入模式
A
:将光标移动至行尾,并切换至插入模式
注:使用
退出插入模式时光标会在本行向左移动一个字符,若已在第一个字符则不会移动
替换
R
:切换至替换模式,替换模式与插入模式类似,区别在于插入模式中每个输入的字符都会替换光标原本所在位置的字符
复制
y
:将内容以字符为单位进行复制,使用p
可以粘贴到光标位置之后,例如yw
,或者切换至可视模式复制高亮内容
设置
:set ic
、:set ignorecase
:ignore case,设置查找或者替换忽略大小写
:set noic
:not ingore case,设置查找或者替换不忽略大小写
:set hls
、:set hlsearch
:高亮显示所有的匹配短语
:set is
、:set incsearch
:增量搜索
注:在选项前加no
可以关闭设置
帮助
、
、:help
:使用在线帮助系统
:help w
:help c_CTRL-D
:help insert-index
:help user-manual
:help vimrc-intro
补全功能
首先确保VIm不是在以兼容模式运行:set nocp
,在命令模式下输入部分命令:command
,例如部分:!ls /root
、:!dir
、set number
:自动选取一个补全命令
Ctrl D
:列出补全备选向
Vim启动脚本
使用vimrc文件自定义VIm配置,下面是Vim风格的文件编辑方式:
:edit ~/.vimrc 这是 Unix 系统所使用的命令
:edit $VIM/_vimrc 这是 MS-Windows 系统所使用的命令
vimrc_example.vim
通常位于/usr/share/vim/vimXXX
文件夹下
:r $VIMRUNTIME/vimrc_example.vim
:write