Open chenxiaochun opened 6 years ago
Vim 配置:https://github.com/chenxiaochun/editor-preferences/blob/master/.vimrc
^
$
0
gg
shift+g
ctrl+o
j
k
l
h
w
W
e
E
b
B
ge
:n
nG
10G
n$
1$
2$
{
}
zz
zt
zb
ctrl+b
ctrl+f
ctrl+d
ctrl+u
ctrl+e
ctrl+y
v
j/k/h/l
ctrl+v
j/k
shift+i
esc
v+e
vip
p
vit
t
vat
V
VG
说明:vi命令后面可以接任意你想选择的包裹字符,比如:vi<:选中尖括号之间的内容;vi":选中双引号之间的内容,等等。可以自己探索尝试
vi
vi<
vi"
同一文件:
yw
yy
Y
yG
y
yi'
'
d
di'
P
跨文件:
"+y
"+p
O
o
i
I
a
A
normal 模式:
x
X
dd
dG
D
s
S
cc
:1,10d
J
说明:在 vim 中,.表示当前行,所以1,.表示从第 1 行到当前行,按d表示删除
.
1,.
insert 模式:
ctrl+w
r
R
ESC
ci'
ciw
visual 模式:
c
/
?
#
*
n
N
:vim foo src/** | copen
:%s/foo/bar
:%s/foo/bar/g
:%s/foo/bar/gi
:%s/foo/bar/gI
:%s/foo/bar/gc
在选中相应的文本后:
>>
<<
zf
zM
zo
zR
ZZ
u
ctrl+r
:sp,水平分屏 :vs,垂直分屏 ctrl+w+w,在分屏之间切换 ctrl+w+c或者:q,关闭当前分屏 ctrl+w+r,交换两个左右分屏的位置
:sp
:vs
ctrl+w+w
ctrl+w+c
:q
ctrl+w+r
ctrl+x, ctrl+f
ctrl+z,唤起一个临时 shell fg,退出当前临时shell
ctrl+z
fg
:new filename
:!mkdir name
在安装某些 vim 插件时,如果碰到了以下提示:
requires Vim compiled with Python (2.6+ or 3.3+) support
可以尝试配置一下此参数:
let g:python3_host_prog = '/usr/local/bin/python3'
cst<p>
cst<p
Vim 配置:https://github.com/chenxiaochun/editor-preferences/blob/master/.vimrc
指令列表
移动光标操作
^
,移动到当前行的第一个字符位置$
,移动到当前行的最后一个字符位置0
,移动到当前行首gg
,移动到文件开头shift+g
,移动到文件末尾ctrl+o
,回到上一次光标的位置j
,往下移动一行k
,往上移动一行l
,往后移动一个字符h
,往前移动一个字符w
,向后移动一个单词,光标停留在单词首部W
,向后移动,忽略标点符号e
,向后移动一个单词,光标停留在单词尾部E
,向后移动,忽略标点符号b
,向前移动一个单词,光标停留在单词首部B
,向前移动,忽略标点符号ge
,向前移动一个单词,光标停留在单词尾部:n
,移动到第 n 行nG
,移动到第 n 行的行首。例如:10G
,移动到第 10 行的行首n$
,移动到相对于当前行的第 n 行的行尾。例如:1$
是移动到第当前行的行尾;2$
是移动到下一行的行尾{
和}
,以函数级上下移动zz
,将当前行置于屏幕中间zt
,将当前行置于屏幕顶端zb
,将当前行置于屏幕底端翻页滚动操作
ctrl+b
,往上翻一页ctrl+f
,往下翻一页ctrl+d
,往下滚动半屏ctrl+u
,往上滚动半屏ctrl+e
,往下滚动一行ctrl+y
,往上滚动一行选择操作
v
,进入 visual 模式,使用j/k/h/l
进行文本选择ctrl+v
,进入 visual block 模式,使用j/k
可选中一行或者多行。此时按shift+i
可进入多行编辑模式,完成之后按esc
v+e
,选择一个单词vip
,选中一个上下以空行分隔的段落,p
是段落的意思vit
,用来在类 html 代码中选中标签包裹的内容,不包含标签本身,t
是 tag 标签的意思vat
,用于在类 html 代码中选中标签本身以及它所包裹的内容V
,使用j/k
选择多行VG
,选择从当前光标到文末的所有内容,并高亮显示说明:
vi
命令后面可以接任意你想选择的包裹字符,比如:vi<
:选中尖括号之间的内容;vi"
:选中双引号之间的内容,等等。可以自己探索尝试复制粘贴操作
同一文件:
yw
,复制光标所在位置的单词yy
或者Y
,复制当前行yG
,复制从当前光标到文末的所有内容y
,复制文本yi'
,复制'
之间的字符d
,剪切文本di'
,剪切'
之间的字符p
,粘贴在光标后面P
,粘贴在光标前面跨文件:
"+y
,复制文本"+p
,粘贴文本插入操作
O
,在当前行的前面追加一行o
,在当前行的后面追加一行i
,在光标之前插入字符I
,在行首插入字符a
,在光标之后插入字符A
,在行尾插入字符删除操作
normal 模式:
x
,删除光标所在的字符X
,删除光标左边的字符dd
,删除当前行dG
,删除从光标到文末的所有内容D
,删除从光标到本行末尾的字符s
,删除光标所在的字符并开始插入S
或者cc
,删除光标所在行并开始插入:1,10d
,删除指定行内容,例如删除第 1 至 10 行的内容J
,删除两行之间的换行符说明:在 vim 中,
.
表示当前行,所以1,.
表示从第 1 行到当前行,按d
表示删除insert 模式:
ctrl+w
,删除从当前光标到单词开始位置的所有字符修改字符操作
normal 模式:
r
,修改光标所在位置的字符R
,修改光标所在位置的字符,可以一直修改,直到按下ESC
键ci'
,修改'
之间的字符ciw
,修改光标所在位置的单词visual 模式:
c
,删除当前选择的字符并进入插入状态查找操作
/
,从上往下查找?
,从下往上查找#
,向上查找光标所在的单词*
,向下查找光标所在的单词n
,查找下一个N
,查找上一个:vim foo src/** | copen
查找替换操作
:%s/foo/bar
,将找到的第一个 foo 替换为 bar:%s/foo/bar/g
,全局替换 foo 为bar:%s/foo/bar/gi
,全局替换,i
表示大小写不敏感:%s/foo/bar/gI
,全局替换,I
表示大小写敏感:%s/foo/bar/gc
,全局替换,c
表示需要对每一次替换进行确认批量缩进
在选中相应的文本后:
>>
,往里缩进<<
,往外缩进代码折叠/展开操作
zf
,折叠代码zM
,折叠所有代码zo
,展开代码zR
,展开所有折叠文件保存操作
ZZ
,保存并退出撤消操作
u
,撤消命令ctrl+r
,恢复撤消.
,重复上一次的操作分屏操作
:sp
,水平分屏:vs
,垂直分屏ctrl+w+w
,在分屏之间切换ctrl+w+c
或者:q
,关闭当前分屏ctrl+w+r
,交换两个左右分屏的位置文件路径补全操作
ctrl+x, ctrl+f
,文件路径补全shell 操作
ctrl+z
,唤起一个临时 shellfg
,退出当前临时shell其它命令操作
:new filename
,新建文件:!mkdir name
,新建文件夹异常解决
在安装某些 vim 插件时,如果碰到了以下提示:
可以尝试配置一下此参数:
插件技巧
vim-surround
cst<p>
,将光标所在位置的标签修改为 p 标签,同时会删除原来标签上的所有属性cst<p
,将光标所在位置的标签修改为 p 标签,并保留原来标签上的属性