Visual block (ctrl + v)
- 选中多行I : multicursor行首 i行尾 ii 全选行尾
退出
-
:q
to quit -
:q!
quit without saving -
:wq
write and quit -
:wq!
to write and quit if file has only read permission -
:x
to write and quit -
:exit
same as :x -
:qa
quit all -
:cq
quit without saving and return non-zero error
文件和窗口
-
:write filePath
指定文件路径保存
多窗口
-
:sp
水平分屏ctrl+w s
-
:vs
垂直分屏ctrl+w v
-
new {file}
水平分屏 -
:clo
关闭当前窗口 -
ctrl+w h/j/k/l
切换窗口
多标签
-
:tabnew
[++opt选项] [+cmd] 文件 -
:tabc
关闭当前的 tab -
:tabo
关闭所有其他的 tab -
:tabs
查看所有打开的 tab -
:tabp
前一个 tab -
:tabn
后一个 tab
标准模式下:
-
gT
前一个 tab -
gt
后一个 tab
Normal: 命令模式
跳跃
- 跳到屏幕顶部/底部/中间
: + H / L / M
- 跳到文件百分之50:
50%
- 复制第n-m行到第k行
:n, m copy k / n, m co k
- A 跳到行尾并可以编辑
- 0移到行尾,$移到行首
删除
- S 清除一行内容
- x 删除光标所在处字符
- X 删除光标所在前字符
- dw 删除到下一个单词开头
- d 删除一行
- de 删除到本单词末尾
- dE 删除到本单词末尾包括标点在内
- db 删除到前一个单词
- dB 删除到前一个单词包括标点在内
- dd 删除并复制一整行
- D d$ 删除光标位置到本行结尾
- d0 删除光标位置到本行开头
其他
- u 撤销
- :tabp / :tabn 上一个/下一个标签页
- 搜索
/
,不想搜索了输入:noh - yy 复制当前行 nyy复制n行 m,ny
- p 粘贴剪切板
- :e 打开一个文件
- y5G:将当前行(包括当前行)至第5行(不包括它)复制
鼠标移动
-
ctrl e
逐行下滚ctrl y
逐行上滚 -
ctrl f
向下翻页ctrl b
向上翻页 - 跳到文件首 / 尾
gg / G
- 段落开头 / 结尾
} / {
- 跳到文件百分之50:
50%
- 跳到指定行n
:nG / ngg / :n
- w移动光标到下一个单词的词首,b移动光标到上一个单词的词首;e移动光标到下一个单词的结尾,ge移动光标到上一个单词的结尾。
复制粘贴
- 全部删除:按esc键后,先按gg(到达顶部),然后dG
- 全部复制:按esc键后,先按gg,然后ggyG
- 全选高亮显示:按esc键后,先按gg,然后ggvG或者ggVG
Insert: 可以输入的模式
Command: 正常情况下按下:进入
Else
vim有 12 个粘贴板,分别是 0、1、2、...、9、a、“、+;用:reg 命令可以查看各个粘贴板里的内容。
NERDTree
`
ctrl + w + h 光标 focus 左侧树形目录
ctrl + w + l 光标 focus 右侧文件显示窗口
ctrl + w + w 光标自动在左右侧窗口切换
ctrl + w + r 移动当前窗口的布局位置
o 在已有窗口中打开文件、目录或书签,并跳到该窗口
go 在已有窗口 中打开文件、目录或书签,但不跳到该窗口
t 在新 Tab 中打开选中文件/书签,并跳到新 Tab
T 在新 Tab 中打开选中文件/书签,但不跳到新 Tab
i split 一个新窗口打开选中文件,并跳到该窗口
gi split 一个新窗口打开选中文件,但不跳到该窗口
s vsplit 一个新窗口打开选中文件,并跳到该窗口
gs vsplit 一个新 窗口打开选中文件,但不跳到该窗口
! 执行当前文件
O 递归打开选中 结点下的所有目录
x 合拢选中结点的父目录
X 递归 合拢选中结点下的所有目录
e Edit the current dif
双击 相当于 NERDTree-o
中键 对文件相当于 NERDTree-i,对目录相当于 NERDTree-e
D 删除当前书签
P 跳到根结点
p 跳到父结点
K 跳到当前目录下同级的第一个结点
J 跳到当前目录下同级的最后一个结点
k 跳到当前目录下同级的前一个结点
j 跳到当前目录下同级的后一个结点
C 将选中目录或选中文件的父目录设为根结点
u 将当前根结点的父目录设为根目录,并变成合拢原根结点
U 将当前根结点的父目录设为根目录,但保持展开原根结点
r 递归刷新选中目录
R 递归刷新根结点
m 显示文件系统菜单
cd 将 CWD 设为选中目录
`
Vim中执行shell命令
:!zsh {cmd}
-
c-z
挂起当前进程 然后fg