文件
vim file1 file2... 同时打开多文件
vimdiff [文件1] [文件2] 比对文件差异
:split 多屏显示(横向)
:vsplit 多屏显示(纵向)
vim -o 文件1 文件 横向分屏打开文件
vim -O 文件1 文件 纵向分屏打开文件
:vs 文件 纵向分屏打开文件
:sp 文件 横向分屏打开文件
:q或:close 关闭当前窗口
:only 关闭除当前窗口之外其他窗口
:qa 关闭所有窗口
ctrl+w 切换窗口
:bn 下一个文件
:bp 上一个文件
:new 文件名.后缀 新建文件
:e 文件名 打开文件
q: 进入命令历史编辑
q/ 类似q:
正常模式
剪切
dd:剪贴当前行
ndd:剪贴n行,,(n是一个数字)
dw:从光标处开始,剪切至一个单词/句子的末尾,包括空格
de:从光标处开始,剪切至一个单词/句子的末尾,不包括空格
d^:从当前光标剪切到“该行”首
d&:从当前光标剪切到“该行”末
d0:从当前光标剪切至行首
dH:剪切从当前行-至所显示屏幕顶部的全部行
dgg:剪切从当前行-至首行
dL:剪切从当前行-至所显示屏幕底的全部行
dG:剪切从当前行-至末尾
x : 剪切一个字符
ggdG:剪切全文
复制
yy:复制当前行
nyy:复制n行,,(n是一个数字)
yw:复制从光标处至一个单词/句子的末尾,包括空格
ye:复制从光标处至一个单词/句子的末尾,不包括空格
y$:从当前光标复制到“该行”末
y0:从当前光标(不包括光标)复制到行首
yH:复制从当前行-至所显示屏幕顶部的全部行
ygg:复制从当前行-至首行
yL:复制从当前行-至所显示屏幕底的全部行
yG:复制从当前行-至末尾
ggyG 复制全文
删除标记:di[标记]
例如:综合(综合有线)
如果要删除括号内容
将光标移至(,按di并按(
其他标记如:“[等
其他
u:撤销
ctrl+r: 反撤销
p:粘贴,光标下一行
P:粘贴,光标上一行
h--j--k--l::光标 左-下-上-右 移动
o:向下插入一行,,直接进入Insert模式
O:向上插入一行,,直接进入Insert模式
w:依次跳至每个单词的词首
e:依次跳至每个单词的词尾
gg:光标移至文档开头
G:光标移至文档末尾
ngg或nG跳到第n行
:n 跳到第n行
Ctrl + u:向文件首翻半屏
Ctrl + d:向文件尾翻半屏
Ctrl + b:向文件首翻一屏
Ctrl + f:向文件尾翻一屏
i:当前光标插入
a:当前光标下一个位置插入
I:快速定位到行首并插入
^:(shift+6)快速移到行首
A:快速定位到行尾并插入
$:(shift+4)快速移到行尾
*:当光标移至某个单词上,按*会在文本中搜索该单词,并标注
.(点):重复上一个命令
ctrl+g:列出光标所在行的行号。
nG:例如:“15G”,移动光标到该文件的第15行行首
命令模式
常用命令
q:退出
wq:保存退出
q!:强制退出
w!:强制写入
e! : 恢复到最初状态
x:保存后离开
write:保存当前文件
/word:搜索,自上而下
?word:搜索,自下而上
set nu:列出行号
set nonu:取消列出行号
##搜索关键词时
n:搜索下一个
N:搜索下一个
替换
○ : s/test/target/ 替换当前行第一个 test 为 target
○ : s/test/target/g 替换当前行所有 test 为 target
○
○ :n,$s/test/target/ 替换从第n行开始到最后一行,每行第一个test为target
○ :n,$s/test/target/g 替换从第n行开始到最后一行,每行所有test为target
○ 如果n为. 则代表从当前行开始到最后一行
○
○ :%s/test/target/ 替换所有行第一个test为target
○ :%s/test/target/g 替换所有行所有test为target
○
○ :g/pattern/s/old/new/g 将会把包含pattern的行中,把所有old替换为new
○
○ :%s/^.*\(\d+\)/\1/ 将^.*\(\d+\)替换成\d+ \1正则组引用
:g/^\s*$/d 删除空白行
:%d 全部删除(普通模式:ggdG)
:%s/word/&/gn 查找统计“word”的个数
其他
:earlier 1m 回退到1分钟之前
:later 1m 和earlier相反
:%TOhtml 转成html显示
:%!xxd 16进制显示
:%!xxd -r 恢复
插入模式
ctrl+shift+c 复制
ctrl+shift+v 粘贴
可视模式
v,V,ctrl+v:进入可视模式