Vim基础命令
这两天闲着没事,发现了一个好玩的工具Vim,在终端界面里编辑文本,初学还不怎么习惯,于是找了一些资料总结了一些常用的基础指令。个人觉得这个工具虽然上手有点慢,需要长时间的练习熟悉,但之后用起来是非常便捷的。使用大量的指令,相比传统的鼠标+键盘的操作模式要方便很多,工作效率也会提高不少。
以下的指令至包含基础的,像自定义配置,宏定义,自定义配色不包含。
Vi 命令
x 删除一个字符
dd 删除一行
J 合并两行(第一行开头)
按[Esc]退出至普通模式或终止命令(大部分)
普通模式输入 :进入命令模式
q 退出
! 强制命令修饰符
u、U、 [Ctrl]+[R] 回撤操作
a 选中字体之后添加输入
i 选择字体之前添加输入
o 在下一行新增一行
O 在上一行新增一行
9h/j/k/l 移动九次(左,下,上,右)
9a![Esc] 输入九个!
ZZ 保存退出
:q! 不保存退出
:e! 放弃修改,重新装载原来的文件
:help+标签 寻求标签帮助
|help| 为一个超链接
Ctrl+] 跳转超链接
Ctrl + T/O 回到前一个链接
移动
[数字]w 向后移动到词首(词为单位)
[数字]b 向前移动到词首
[数字]e 向后移动到词末
[数字]ge 向前移动到词末
gE E B W 以大单词为单位移动
$ 移动到行尾
[数字]$ 移动下第几行尾
^ 移动到当前行的第一个非空字符
0 移动到当前行的第一个字符
f+字符 (支持数字前缀) 向右查找字符
F+字符 (支持数字前缀) 向左查找字符
T+字符 向左跳转至前一个字符前
t+字符 向右跳转至后一个字符前
F f T t 都可以输入 ; 来重复执行
% 移动到匹配的括号 [,],(,),{,}
[数字]% 跳转至文章的百分制多少
[数字]G 跳转至固定行,不加数字移动到文末
gg 移动至文首
H 移动可见界面的首部
M 移动可见界面的中部
L 移动可见界面的尾部
确认当前位置
[Ctrl]+G 显示当前行信息
:set number 左侧显示行号
:set nonumber 取消显示左侧行号
:set ruler 显示光标位置
滚屏
[Ctrl]+u 向上滚半屏
[Ctrl]+d 向下滚半屏
[Ctrl]+e 向下滚一行
[Ctrl]+y 向上滚一行
[Ctrl]+f 向下滚一整屏
[Ctrl]+b 向上滚一整屏
zt 把光标所在行移动到屏幕的顶部
zz 把光标所在行移动到屏幕的中部
zb 把光标所在行移动到屏幕的底部
查找
/[需要查找的字符串] 查找字符串(向下),按[数字]n移动到下一个
/^[需要查找的字符串] 查找处于行首的字符串
/[需要查找的字符串]$ 查找处于行尾的字符串
/i.s 使用.替换具体的字符,ihs,tiks都会被搜索
搜索匹配的特殊字符加 /
?[需要查找的字符串] 查找字符串(向上),按[数字]n移动到上一个
N 为执行反方向查找
:set ignorecase 忽略大小写查找
移动到单词按 * 向下查找该单词(可加数字前缀)
移动到单词按 # 向上查找该单词(可加数字前缀)
查找方式设置
/查找使用 < 强制约束单词头部
/查找使用 > 强制约束单词尾部
:set hlsearch 查找匹配的高亮
:set incsearch 输入过程中显示匹配点
:set nowrapscan 查找到结尾停止查找
:scriptnames 显示配置文件位置
标记,跳转
跳转之后,会留下标记,使用 " ` " ," ‘ " , " ” " 来跳转回去。
[Ctrl]+O 跳转至比较老的地方
[Ctrl]+I 跳转至比较新的地方
:jumps 输出一个你可以跳往的位置的列表
使用m+字符(a~z) 自定义标记
使用 `+标记(自定义) 跳转至该行该列
使用 ‘+标记(自定义) 跳转至该行首列
:marks 列出所有的标记
标记列表符号如下
' 跳转前的位置
" 最后编辑的位置
[ 最后修改的位置的开头
] 最后修改的位置的结尾
修正与移动文本
操作符(如d,c)+动作
d[n]w 删除一(n)个单词
d$ 从当前位置删除到行尾
c+动作+修改语句 修改,之后进入插入模式,例cwhi[Esc]
cc 修改一整行
c$ 修改到行尾
快捷键
x 表示 dl (删除当前光标下的字符)
X 表示 dh (删除光标左边的字符)
D 表示 d$ (删除到行尾)
C 表示 c$ (修改到行尾)
s 表示 cl (修改一个字符)
S 表示 cc (修改一整行)
r 替换(不进入插入模式)
. 执行最后一次的修改操作
v 进入可视化模式(列),[Esc]退出
V 进入可视化模式(行),[Esc]退出
[Ctrl]+v 块区域选择,配合 h,j,k,l 使用
o 块区域选择时进入另一角(同对角线)
O 块区域选择时进入另一角(同行)
被删除的文字会先寄存在寄存器中,可以使用p粘贴出来
p 粘贴文字(光标之后另起一行)
P 粘贴文字(光标之前另起一行)
y 拷贝(配合p使用)
yy / Y 拷贝一整行(配合p使用)
y$ 拷贝到行尾(配合p使用)
“*yy 拷贝进剪切版
“*p 粘贴回来
文本对象
a 文本对象(例如 daw )
aw 一个单词作为一个文本
is 一句话作为文本(不包含空格)
as 一句话作为文本(包含空格)
替换模式
R 开启替换模式
BS 返回替换的文本
删除文本
x 删除光标下的字符("dl"的缩写)
X 删除光标前的字符("dh"的缩写)
D 从当前位置删除到行尾("d$"的缩写)
dw 从当前位置删除到下一个单词开头
db 从当前位置删除到前一个单词的开头
diw 删除光标上的单词(不包括空白字符)
daw 删除光标上的单词(包括空白字符)
dG 删除到文末
dgg 删除到文首
特殊常见命令
~ 修改光标下字符的大小写,并移动到下一个字符
I 移到当前行的第一个非空字符并启动插入模式
A 移动到行尾并启动插入模式
增加插件,宏定义
把设置写到一个叫 vimrc 的文件中,自定义配置
键盘映射
载入插件:把插件放到你 Vim 的 plugin 目录中就可以使它生效
配色