一、移动类
gg/1G 光标移到首行
G 光标移到尾行
$ 移到行尾
^ 移到行首
w 移到下一个单词
b 移到上一个单词
3j 光标下移3行
2k 光标上移2行
4h 左移4个字符
2l 右移2个字符
H 移到屏幕顶
M 移到屏幕中间
L 移到屏幕底
20% 移动到文章20%处
0/HOME移到行首
END移到行尾
zt 当前行移至屏top
zz 当前行移到屏中
zb 当前行移到屏bottom
二、搜索类
/ 向前搜索
? 向后搜索
n 下一个
N 反方向下一个
f/F? 同行搜索?
t?
f< 找到第一个 <
df> 删除到>处的内容
\<
\>
/\<the\>/ :匹配the这个单词
三、修改类
~ 改变大小写
3~ 将光标位置开始的3个字母改变其大小写
g~~ 改变当前行字母的大小写
* 到与当前单词相同的下一个单词上
# 到与当前单词相同的上一个单词上
'' 到上次光标停靠的行
3x 删除三个字符
3dd 删除三行
3yy 复制三行
3dw/d3w 删除三个单词
3yw/y3w 复制三个单词
yy/Y:复制一行
y$:复制至行尾
cc/S:改变整行
s:修改一个字符
r?:替换一个字符为?,?为任意字符
c$/C:改变至行尾
c2w : change 2 word
p :paste
p放于光标后/下,P放于光标前/上
. : 重复更改命令,和别的命令搭配使用
3dd -> p :移动三行文本
xp:交换两个字母(删掉当前字符,插到新当前字符后面)
d$/D 删至行尾
d2l/d3j/d4h/d2w/d3k : d+位移 能删到光标所到之处
dw 删除自当前光标至下一个word的开头
db 删除自当前光标至前一个word的开始
diw 删除当前光标所在的word(不包括空白字符)
daw 删除当前光标所在的word(包括空白字符)
dG 删除当前行至文件尾的内容
dgg 删除当前行至文件头的内容
用"c"命令代替"d"这些命令就都变成更改命令,使用"y"就是yank命令
J 删除行末换行符,两行合并为一行
u 撤销上一次操作,连续按可撤销多次
U 撤销一行的操作,再U是撤销前一个U的操作
ctrl+r 撤销的撤销
% 配对括号间跳转
:!command 用于执行一个外部命令 command
:!rm FILENAME - 用于删除名为 FILENAME 的文件
:w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中
:#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件FILENAME 中
:r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面
a 则可在光标之后插入文本了
A 则可以直接在行末插入文本
I 将光标置于当前行第一个非空白字符处并进入Insert模式
四、替换类
:s 只作用于本行
%s 作用于全文
在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问确认替换 c 选项,请输入 :%s/old/new/gc
五、模式编辑类
v/V : 虚拟模式,移动光标以覆盖你想操纵的文本范围,同时被选中的文本会以高亮显示。 最后键入操作符命令。
ctrl+v : 虚拟块模式,可以编辑方形块
R : 进入替换模式在此模式下, 每个键入的字符都会替换掉当前光标下的字符,直到你键入<Esc>结束该模式。
但按下回车键并不会把当前字符替换为回车, 而是插入一个回车
六、设置类
set nu
set background=dark
set compatible?
set hlsearch/hls 设置搜索高亮
set incsearch/inc 边输入边匹配
set nowrapscan 搜索到文件结束就停止
set ignorecase/ic 忽略大小写
七、多文件编辑
:edit FILENAME 新打开一个文件
:next 编辑下一个文件
:next! 不保存当前文件编辑下一个文件
:wnext 保存当前文件编辑下一个文件
:previous 编辑上一个文件
:wprevious 保存当前文件编辑上一个文件
:last 编辑最后一个文件
:first 编辑第一个文件
:saveas FILENAME另存为一个新文件
:args 查看编辑文件列表
八、多文件分屏编辑
:split FILENAME 上下分屏编辑
:vsplit FILENAME 左右分屏编辑
ctrl+ww 分屏间切换
:close 关闭分屏
:only 只保留当前屏
:new 新打开一个文件缓冲区
:vnew 左右方向打开一个新文件缓冲区
:wall 保存所有文件
:wqall 保存退出所有文件
:qall! 不保存强制退出所有文件