vim备忘
第一讲
hjkl
:移动 h
左 j
下 k
上 l
右
vim 文件名
:打开文件,如果此文件不存在则会新建文件
:q!
:退出编辑不保存
:wq
:保存并退出
x
:删除当前光标下的字
X
:删除当前光标前的字
i
:光标前插入
I
:行首插入
a
:光标后插入
A
:行尾插入
第二讲
dw
:从光标处删除至下个单词的开头 例入光标在is
的i
上 it is my life
->it my life
de
:从光标处删除至本单词的末尾 例入光标在is
的i
上 it is my life
->it my life
,my
前有两个空格
d$
:从光标处删除至行尾 例入光标在is
的i
上 it is my life
->it
其中d
是操作符w,e,$
是动作
d
:删除操作
w
:从光标到下个单词的开头
e
:从光标到本单词的末尾
$
:从光标到行尾
可以在动作前加入数组表示重复次数
d2w
:从光标处删除至第三个单词的开头 例入光标在is
的i
上 it is my life
->it life
dd
:删除当前行
2dd
:删除当前行和下一行
u
:撤销
U
:整行操作撤销
CTRL-R
:撤销撤销,还原之前的操作
dap
:删除一个段落
di(
:删除括号内的内容,可以是(,[,{
da(
:删除括号及内部的内容,可以是(,[,{
dit
:清除标签内部的内容
dat
:清除整个标签
df字母或符号
:向后清除到字母或者符号的内容
dF字母或符号
:向前清除到字母或者符号的内容
dt字母或符号
:向后清除到字母或符号之前的内容
dT字母或符号
:向前清除到字母或符号之后的内容
第三讲
p
:将删除的内容置入光标之后,如果是行的话置入下一行
r
:替换光标当前字符,先输入r
然后输入替换内容
ce
:修改直到单词末尾并进入编辑状态 例入光标在is
的i
上 it is my life
->it my life
,my
前有两个空格
更改类命令c
和删除类命令d
的区别是c
会在更改完之后进入编辑模式
第四讲
CTRL-G
:显示当前文件信息,及当前所在行的位置
G
:跳转到文件的最后一行
gg
:跳转的文件的第一行
输入停留的行号,然后输入G
,可以跳转到按CTRL-G
时所在行
/
:查找
?
:逆向查找
n
:下一项查找匹配结果
N
:上一项查找匹配结果
CTRL-o
:回到之前的位置
CTRL-i
:跳转到较新的位置
%
:查找配对的(,[,{
:s/old/new
:替换old
为new
,只会替换第一个匹配的结果
:s/old/new/g
:替换old
为new
,圈行匹配替换
:#,#s/old/new/g
:指定行匹配替换,其中#,#
为起始行号和结束行号
%s/old/new/g
:全文匹配替换
%s/old/new/gc
:全文匹配替换,并且提示是否替换
第五讲
:!
:可以在:!
后面接外部命令,例如:!ls
与在shell
中ls
的效果一致
:w
:可以在:w
后面接文件名,对当前文件进行另存为操作
wa
:保存所有文件
v
:进入可视化模式进行选取,可以在可是模式下移动光标进行选取,然后按:
对选取的区域进行操作,例如:'<,'>w test.txt
可以对选中的区域进行另存为操作
:r
:当前行插入其他文件内容或外部指令结果,例如:r text.txt
,:r !ls
第六讲
o
:在当前光标行下方插入一行并进入编辑模式
O
:在当前光标行上方插入一行并进入编辑模式
R
:替换,是在原有文字的基础上进行的替换
y
:复制命令,可以结合v
使用,复制指定范围,也可以通过其他的动作,如w
使用,复制一个单词
p
:粘贴
:set ic
:查找是忽略大小写
:set noic
:禁用忽略大小写
:set is
:查找短语时显示部分匹配
:set hls
:高亮显示所有的匹配项
第七讲
:help
:帮助,可以获取指定命令的帮助,如:help w
CTRL-W
:vim
窗口切换
其他
b
:向左移动直到单词开头
CTRL-d
:向下滚动半页
CTRL-u
:向上滚动半页
CTRL-f
:向下滚动一页
CTRL-b
:向上滚动一页
SHIFT-h
:光标移动到顶部
SHIFT-m
:光标移动到中部
SHIFT-l
:光标移动到底部
zz
:当前位置为屏幕中央
zt
:当前位置为屏幕顶端
zb
:当前位子为屏幕底端
gf
:打开光标所在文件
:e <filename>
:打开指定文件,如果没有则新建文件
:Ex
:打开目录数,回车打开对应文件-
返回上一级
*
:向后查找光标当前所在单词
#
:向前查找光标当前所在单词
fa
:查找下一个为a
的单词处,F
方向相反
ta
:查找下一个为a
的单词前,T
方向相反
;
:继续查找
dta
:删除所有内容直到遇到a
yy
:拷贝当前行,与0y$
效果一样
P
:粘贴到当前位置之前
100iabc
:插入abc
100次
.
:重复上次命令
3.
:重复三次上次命令
:ls
:打开缓存区,:buffers
也有同样的效果
:b<N>
:打开缓存的第n个文件
:bd<N>
:删除要关闭的缓存区
J
:将当前行与下一行合并
>>
:向右缩进
<<
:向左缩进
==
:自动排版当前行
gg=G
:当前文档全文自动排版
sp
,CTRL-w s
:上下分屏
vs
,CTRL-w v
:左右分屏
:diffs filename<>
:diff
模式打开一个分屏
CTRL-w w
:激活下个窗口
CTRL-w j
:激活下方窗口
CTRL-w k
:激活上方窗口
CTRL-w h
:激活左侧窗口
CTRL-w l
:激活右侧窗口
CTRL-w =
:平均窗口尺寸
CTRL-w +
:增加高度
CTRL-w -
:缩减高度
CTRL-w _
:最大高度
CTRL-w >
:增加宽度
CTRL-w <
:缩减宽度
CTRL-w |
:最大宽度
:tabe
:打开新标签页,后面可以跟<空格><文件名>
打开指定文件
CTRL-w gf
:在新标签中打开当前光标所在位置的文件名
gt
,:tabn
:下一个标签页
gT
,:tabp
:上一个标签页
gn
:下一个buffer
gp
:上一个buffer
:tabr
:到第一个标签页
:tabl
:到最后一个标签页
:tabc
:关闭当前标签栏
:-tabc
:关闭上一个标签页
:+tabc
:关闭下一个标签页
:tabo
:关闭其他标签页
CTRL-v
:块操作,例如注释n行,可以进入块模式选取n行,shift+i
,输入#
,ESC
,cc
:注释
,cu
:取消注释
zc
:折叠
zo
:打开折叠
zM
:关闭所有折叠
zR
:打开所有折叠
zj
:移动到下个折叠
zk
:移动到上个折叠
:!ctags 文件名
:生成tags
ctrl + ]
:跳转到函数声明
ctrl + t
:返回
7gg4<<
:7到10行整体左移
[[
:到函数头
[{
:到块开始的位置
ctrl + o
:跳转到上一个位置
ctrl + i
:跳转到下一个位置
NerdTree
o
:在已有窗口中打开文件、目录或书签,并跳到该窗口
go
:在已有窗口中打开文件、目录或书签,但不跳到该窗口
t
:在新Tab中打开选中文件/书签,并跳到新Tab
T
:在新Tab中打开选中文件/书签,但不跳到新Tab
i
:split一个新窗口中打开选中文件,并跳转到该窗口
gi
:split一个新窗口中打开选中文件,但不跳到该窗口
s
:vsplit一个新窗口中打开选中文件,并跳到该窗口
gs
:vsplit一个新窗口中打开选中文件,但不跳到该窗口
x
:收起当前打开目录
X
:收起所有打开目录
e
:以文件管理方式打开
p
:跳转到当前根目录
P
:跳转到上一级根目录
K
:跳转到第一个子路径
J
:跳转到最后一个子路径
<C-j> <C-k>
:在同级目录中移动
u
:设置上级目录问根目录
r
:刷新光标所在目录
R
:刷新当前根目录
f
:打开/关闭文件过滤器
m a
:新建文件
vim-easymotion
,,fa
:查找包含字母a的位置
ctrlp
,f
:模糊搜索最近打开的文件
,p
:模糊搜索当前目录及子目录下所有文件
ctrl + j/k
:上下选择
ctrl + x
:在当前文件水平分屏打开文件
crtl + v
:垂直分屏打开文件
ctrl + t
:在tab中打开文件
,fu
:搜索当前文件函数
,fU
:搜索当前光标下单词对应的函数
tabular
:Tabularize /,
:以,为基准对齐
vim-bookmarks
mm
:添加删除mark
mi
:添加删除mark,并添加备注
mn
:下个mark
mp
:上个mark
ma
:显示所有的mark
mc
:清除当前buffer的所有mark
mx
:清除所有buffer的所有mark
python-mode
[[
:跳转到前面的函数或类
]]
:跳转到下一个函数或类
[m
:跳转到前面的方法或类
]m
:跳转到下一个方法或类
aC
:选择一个类
iC
:选择一个类的内部
aM
:选择一个方法
iM
:选择一个方法的内部
leader-r
:运行
leader-b
:插入断点1
2
3
4
5
6
7c:继续执行
l:查看当前行代码段
s:进入函数
r:执行代码直到从当前函数返回
q:退出
n:执行下一行
pp:打印变量名
tagbar
,tt
:打开tagbar
ctrl+]
:跳转到定义
ctrl+t
:跳回上一层
vim-multiple-cursors
ctrl-n
:开始并选中匹配项
ctrl-n
:选中下一个匹配项
ctrl-x
:跳过匹配项
ctrl-p
:取消选中
alt-n
:选择所有匹配项
vim-apathy
gf
:跳转到光标下的头文件
[i,]i
:显示光标下在文件或者引用文件中位置的第一行
[I,]I
:与上个命令类似,不过会显示所有的匹配项
<C-W>i
:与上个命令类似,不过会进行跳转
jedi-vim
<leader>g
:跳转到方法
<leader>d
:跳转到定义
scratch
gs
: 打开scratch
vim-pythonsense
1 | class OneRing(object): -----------------------------+ |
]]
:移动到下个类的开端
][
:移动到当前类的结尾
[[
:移动到当前类的开端
[]
:移动到上个类的结尾
]m
:移动到下个方法的开端
]M
:移动到当前方法的结尾
[m
:移动到当前方法的开端
[M
:移动到上个方法的结尾
vim-choosewin
--
:切换到另一个buffer
-1
:切换到1号buffer
vim-move
alt hjkl
:移动代码
vim-tradewinds
<c-w>gh
: soft move left
<c-w>gj
: soft move down
<c-w>gk
: soft move up
<c-w>gl
: soft move right
vimux
<leader>vp
:运行指定语句在tmux pane中
<leader>vl
:运行上一个命令
vimux-cargo
<leader>rc
:cargo run
<leader>ra
:cargo test all
<leader>rb
:cargo test current file
<leader>rf
:cargo test focus
vim in VS Code
gcc
:注释一行
gc2j
:注释两行
gd
:跳转到注释