vim常用指令

熟悉一些vim常用的指令能提高编辑效率,可以根据github上的一个链接进行学习
https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/vim.txt?utm_source=wechat_session&utm_medium=social&utm_oi=955459577458679808
这个链接介绍了很多指令,我把自己觉得比较常用的单独挪出来。

##############################################################################
# VIM CHEATSHEET (中文速查表)  -  by skywind (created on 2017/10/12)
# Version: 43, Last Modified: 2018/12/26 15:17
# https://github.com/skywind3000/awesome-cheatsheets
##############################################################################


##############################################################################
# 光标移动
##############################################################################

h                   光标左移,同  键
j                   光标下移,同  键
k                   光标上移,同  键
l                   光标右移,同  键
CTRL-F              下一页
CTRL-B              上一页
CTRL-U              上移半屏
CTRL-D              下移半屏
0                   跳到行首(是数字零,不是字母O),效用等同于  键
^                   跳到从行首开始第一个非空白字符
$                   跳到行尾,效用等同于  键
gg                  跳到第一行,效用等同于 CTRL+
G                   跳到最后一行,效用等同于 CTRL+
:n                  跳到第n行,比如 :10<回车> 是移动到第十行
10%                 移动到文件 10% 处
w                   跳到下一个单词开头 (word: 标点或空格分隔的单词)
e                   跳到下一个单词尾部 (word: 标点或空格分隔的单词)
b                   上一个单词头 (word: 标点或空格分隔的单词)
ge                  上一个单词尾
H                   移动到屏幕上部
M                   移动到屏幕中部
L                   移动到屏幕下部
fx                  跳转到下一个为 x 的字符,2f/ 可以找到第二个斜杆
Fx                  跳转到上一个为 x 的字符
;                   跳到下一个 f/t 搜索的结果
,                   跳到上一个 f/t 搜索的结果


##############################################################################
# 插入模式:进入退出
##############################################################################

i                   在光标处进入插入模式
I                   在行首进入插入模式
a                   在光标后进入插入模式
A                   在行尾进入插入模式
o                   在下一行插入新行并进入插入模式
O                   在上一行插入新行并进入插入模式
gi                  进入到上一次插入模式的位置
               退出插入模式
CTRL-[              退出插入模式(同 ESC 等价,但更顺手)j

##############################################################################
# 文本编辑
替换c,删除d,复制y和选中v的原理是一样的,i表示在内部,a表示包括边界。
##############################################################################

r                   替换当前字符
R                   进入替换模式,直至 ESC 离开
s                   替换字符(删除光标处字符,并进入插入模式,前可接数量)
S                   替换行(删除当前行,并进入插入模式,前可接数量)
c^                  改写到行首(第一个非零字符)
c$                  改写到行末
cw                  改写光标开始处的当前单词
ciw                 改写光标所处的单词
ci"                 改写双引号中的内容
ci'                 改写单引号中的内容
ci)                 改写小括号中的内容
ci]                 改写中括号中内容
ci}                 改写大括号中内容
ct(                 改写到小括号前
x                   删除当前字符,前面可以接数字,3x代表删除三个字符
X                   向前删除字符
dd                  删除当前行
d0                  删除到行首
d^                  删除到行首(第一个非零字符)
d$                  删除到行末
dw                  删除当前单词
diw                 删除光标所处的单词
di"                 删除双引号中的内容
di'                 删除单引号中的内容
di)                 删除小括号中的内容
di]                 删除中括号中内容
di}                 删除大括号中内容
dt(                 删除到小括号前
dgg                 删除到文件头部
dG                  删除到文件尾部
u                   撤销
CTRL-R              撤销上一次 u 命令
J                   链接多行为一行
.                   重复上一次操作
~                   替换大小写
gUiw                将单词转成大写
guiw                将当前单词转成小写
guu                 全行转为小写
gUU                 全行转为大写
<<                  减少缩进
>>                  增加缩进
==                  自动缩进
CTRL-A              增加数字
CTRL-X              减少数字

##############################################################################
# 复制粘贴
##############################################################################

p                   粘贴到光标后
v                   开始标记
y                   复制标记内容
V                   开始按行标记
CTRL-V              开始列标记
y$                  复制当前位置到本行结束的内容
yy                  复制当前行
yiw                 复制当前单词
3yy                 复制光标下三行内容
v0                  选中当前位置到行首
v$                  选中当前位置到行末
viw                 选中当前单词
vi)                 选中小括号内的东西
vi]                 选中中括号内的东西
vi}                 选中大括号内的东西
va)                 选中小括号内的东西(包含小括号本身)
va]                 选中中括号内的东西(包含中括号本身)
va}                 选中大括号内的东西(包含大括号本身)
gv                  重新选择上一次选中的文字
:set paste          允许粘贴模式(避免粘贴时自动缩进影响格式)
:set nopaste        禁止粘贴模式
:[range]y           复制范围,比如 :20,30y 是复制20到30行,:10y 是复制第十行
:[range]d           删除范围,比如 :20,30d 是删除20到30行,:10d 是删除第十行
ddp                 交换两行内容:先删除当前行复制到寄存器,并粘贴


##############################################################################
# 查找替换
##############################################################################

/pattern            从光标处向文件尾搜索 pattern
?pattern            从光标处向文件头搜索 pattern
n                   向同一方向执行上一次搜索
N                   向相反方向执行上一次搜索
*                   向前搜索光标下的单词
#                   向后搜索光标下的单词
:s/p1/p2/g          将当前行中全替换p1为p2
:%s/p1/p2/g         将当前文件中全替换p1为p2
:%s/p1/p2/gc        将当前文件中全替换p1为p2,并且每处询问你是否替换
:10,20s/p1/p2/g     将第10到20行中所有p1替换为p2
:%s/1\\2\/3/123/g   将“1\2/3” 替换为 “123”(特殊字符使用反斜杠标注)
:%s/\r//g           删除 DOS 换行符 ^M

##############################################################################
# VISUAL MODE - 由 v, V, CTRL-V 进入的可视模式
##############################################################################

>                   增加缩进
<                   减少缩进
d                   删除高亮选中的文字
c                   改写文字,即删除高亮选中的文字并进入插入模式
y                   拷贝文字
~                   转换大小写
u                   标记区转换为小写
U                   标记区转换为大写
g CTRL-G            显示所选择区域的统计信息
               退出可视模式

##############################################################################
# 位置跳转
##############################################################################

CTRL-O              跳转到上一个位置
CTRL-I              跳转到下一个位置
%                   跳转到 {} () [] 的匹配

##############################################################################
# 已打开文件操作
##############################################################################

:ls                 查案缓存列表
:bd                 删除缓存
:b 1                切换到1号缓存
:b abc              切换到文件名为 abc 开头的缓存

##############################################################################
# 窗口操作
##############################################################################

:sp       上下切分窗口并在新窗口打开文件 filename
:vs       左右切分窗口并在新窗口打开文件 filename
CTRL-W w            循环切换到下一个窗口
CTRL-W W            循环切换到上一个窗口
CTRL-W h            跳到左边的窗口
CTRL-W j            跳到下边的窗口
CTRL-W k            跳到上边的窗口
CTRL-W l            跳到右边的窗口
CTRL-W x            交换窗口
CTRL-W +            增加当前窗口的行高,前面可以加数字
CTRL-W -            减少当前窗口的行高,前面可以加数字
CTRL-W <            减少当前窗口的列宽,前面可以加数字
CTRL-W >            增加当前窗口的列宽,前面可以加数字


##############################################################################
# 代码折叠
##############################################################################

zo                  打开一层代码

##############################################################################
# 其他命令
##############################################################################

CTRL-E              向上滚屏
CTRL-Y              向下滚屏
CTRL-G              显示正在编辑的文件名,以及大小和位置信息
g CTRL-G            显示文件的:大小,字符数,单词数和行数,可视模式下也可用
zz                  调整光标所在行到屏幕中央
ga                  显示光标下字符的 ascii 码或者 unicode 编码
g8                  显示光标下字符的 utf-8 编码字节序
gi                  回到上次进入插入的地方,并切换到插入模式
ZZ                  保存文件(如果有改动的话),并关闭窗口
:%!xxd              开始二进制编辑
:%!xxd -r           保存二进制编辑
:g/^\s*$/d          删除空行
:g/green/d          删除所有包含 green 的行
:v/green/d          删除所有不包含 green 的行
:g/gladiolli/#      搜索单词打印结果,并在结果前加上行号
:g/ab.*cd.*efg/#    搜索包含 ab,cd 和 efg 的行,打印结果以及行号
/fred\|joe          搜索 fred 或者 joe
/\<\d\d\d\d\>       精确搜索四个数字
/^\n\{3}            搜索连续三个空行

你可能感兴趣的:(vim常用指令)