usr_01
检查是否是 vi 兼容模式
:set compatible?
查找配置文件
:scriptnames
运行 vim tutor
>vimtutor
vimtutor 笔记
移动
^
k
< h l >
j
v
不保存退出
:q!<ENTER>
保存退出
:wq<ENTER>
普通模式 删除光标位置的字符
x
普通模式-》插入模式 光标位置插入
i
普通模式-》插入模式 行尾插入
A
普通模式 删除光标位置开始的单词
dw
普通模式 删除光标位置到结尾
d$
许多改变文本的命令由一个操作符和一个动作组成
如删除操作符 d 后面可以跟一个 motion
例如
w
从当前光标位置到下一个单词的起始处,不包含它第一个字符
e
从当前光标到单词末尾,包含最后一个字符
$
从当前位置到行末
动作前输入数字会使动作执行数字次
2w
向右移动 两个单词
3e
向右移动三个单词
0
移动到行首
于是可以使用
d number motion
一次删除多项内容
删除整行
dd
删除多行可以是类似
2dd
也可以是
d2d
撤销类
撤销一步
u
撤销整行
U
重做
<CTRL-R>
置入类
使用 d 删除的内容会保存在 vim 的寄存器中。使用 p 命令会把寄存器中的内容贴到光标位置后面。
dd 删除的内容,使用 p 贴到当前光标位置的下一行。
替换类命令
使用 r
和要替换的字符,替换当前光标位置的字符。
使用 R
可以连续替换多个字符,使用 <ESC>
退出替换。
更改类命令
ce
或者 cw
可以将单词光标到结尾删掉并进入插入模式。
c
的行为和 d
是类似的,后面也可以跟数字和命令。
定位及文件状态
显示当前编辑文件中光标位置及文件状态
<CTRL-G>
跳转到文件最后一行
G
跳转到第一行
gg
跳转到某一行
<NUMBER>G
搜索类命令
普通模式输入 /
和字符串即可查找对应字符串
/<STRING><ENTER>
之后使用 n
正向查找,N
反向查找
或者使用 ?
替换 /
可以直接开始反向查找
可以使用 <CTRL-O>
跳到之前的位置或者使用 <CTRL-I>
跳到较新的位置。
搜索忽略大小写
:set ic
大小写敏感
:set noic
如果只想在某一次搜索忽略大小写则可以使用 \c
/ignore\c<ENTER>
查找时显示部分匹配 incsearch
:set is
查找时高亮 hlsearch
:set hls
移除匹配项的高亮显示
:nohlsearch
::
搜索光标位置括号配对的括号
%
替换命令
将本行第一个 old
替换成 new
:s/<old>/<new><ENTER>
将本行所有 old
替换成 new
:s/<old>/<new>/g<ENTER>
替换 a
行到 b
行的所有匹配
:<a>,<b>s/<old>/<new>/g<ENTER>
替换整个文件所有匹配
:%s/<old>/<new>/g<ENTER>
替换整个文件所有匹配,并对每个匹配串提示是否进行替换
:%s/<old>/<new>/gc<ENTER>
执行外部命令
:!<SHELL/CMD>
注意所有 :
开始的命令都需要 <ENTER>
结尾。
保存文件
:w <FILENAME>
把当前文件保存为 filename。
利用可视模式 v
选中某个范围,然后输入
:w <FILENAME>
将保存选中的部分
注意实际显示的是
:'<,'>w
插入其他文件的内容
:r <FILENAME>
注意 :r
也可以读取外部命令的输出如
:r !ls
下方插入新行并且进入插入模式
o
上方插入新行并且进入插入模式
O
光标后插入
a
可以使用 y
命令复制某些字符或整行,行为与 d
和 c
类似。
使用 HELP
按 <F1>
或者 :help
创建启动脚本
Unix
:edit ~/.vimrc
Windows
:edit $VIM/_vimrc
读取 vimrc 示例文件
:r $VIMRUNTIME/vimrc_example.vim
输入命令时使用 <CTRL-D>
可以查看补全的命令。
Next: [Vim] usr_02