Vim 1000问


1. 替换括号(),引号"",方括号[],大括号{}里面的内容

光标移动到括号内部分,然后直接

ci(

括号里面的内容就会删除,并且进入插入模式,键入你想替换的内容

2. hjkl光标对应的方向

h,l分别位于最左以及最右,所以分别代表光标左移以及光标右移
j类似于一个向下的箭头,因此可以记忆为向下移动;剩下的k是光标向上移动

3. 如何禁用掉光标键,强制使用hjkl

"光标映射关闭
noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>

4. 实际行与屏幕行移动

因为窗口大小的原因,当文本行较长时,超过窗口长度的文本行会被回绕显示,形成屏幕行。
j, k, 0, ^, $ 都是对实际行进行操作,分别表示

j 向下移动一个实际行
k 向上移动一个实际行
0 移动到实际行行首
^ 移动到实际行第一个非空白字符
$ 移动到实际行行尾

当在操作符前面加入g前缀的话,可以转变为对屏幕行进行移动

5. 基于单词的移动

w 正向移动到下一个单词的开头 (foward)
b 反向移动到当前单词/上一个单词的开头 (backward)
e 正向移动到当前单词/下一个单词的结尾
ge 反向移动到上一个单词的结尾

6. 单词与字串的区别

单词由字母、数字下划线或其他非空字符序列组成,以空白字符分隔
字串由非空空白序列组成,字串之间以空白字符分隔
e.g. we’re going too slow
该文本行,包含10个单词(句号以及分号也算一个单词),5个字串
基于单词的移动w,b,e,ge,分别变为大写形式W,B,E,gE就变为了基于字串的移动。

7. 查找字符

f{char} 正向移动到下一个{char}的所在之处
F{char} 反向移动到上一个{char}的所在之处
t{char} 正向移动到下一个{char}所在之处的前一个字符上
T{char} 反向移动到上一个{char}所在之处的后一个字符上
; 重复上次字符查找命令
, 反转方向查找上次的字符查找命令

注意使用字符查找命令的时候,尽量选择出现频率比较低的字母作为目标字符。

8. 查找单词

/单词
可以结合可视模式以及d{motion}操作符,来进行选定区域的删除。

9. 用精确的文本对象选择选区

文本对象允许我们操作括号,被引用的文本,XML标签以及其他文本中的常见结构
进入可视模式,只用光标位于选区就行
Vim的文本对象由两个字符组成,第一字符永远是i或者a,以i开头往往会选择分隔符内部的文本,而以a开头往往选择包含分隔符在内的整个文本,可以理解为inside和around

a) 一对圆括号
i) 圆括号内部
同理对于] }	> " '也是一样的

10. 用文本对象执行操作

上面可视模式下,可以选择文本对象区域,如果结合进motion操作,则可以使之更加强大
常见的包括 d{motion}, c{motion}, y{motion}
即motion操作结合上面的文本选区定位,可以对括号,引号等内容进行删除,修改以及复制
比如 ci" 可以解读为修改引号内部的内容
yi) 可以解读为复制括号内不的内容
da) 可以解读为删除包括括号在内的内容

11. 删除周边,修改内部

Vim的文本对象分为两类,一种是操作分隔符的文本对象,如i), i", i>等
另一类用于操作文本块,如单词,句子以及段落

iw 当前单词
aw 当前单词及一个空格
iW 当前子串
aW 当前字串及一个空格
is 当前句子
as 当前句子及一个空格
ip 当前段落
ap 当前段落及一个空行

记住i表示inside而a表示around就行
在与motion指令结合的过程中,往往d{motion}与aw,as,ap相结合
而c{motion}往往与iw,is,ip相结合,效果更好。(因为删除,往往会把空格一并删掉,否则会有两个连在一起的空格,而修改,往往想要保留原来的空格)

12. 其他删除命令

x 删除当前光标下的字符
dw 删除光标之后的单词剩余部分
d$ 删除光标之后的该行剩余部分
dd 删除当前行

c与d类似,区别在于完成删除操作后进入INSERT MODE,cc表示删除该行并进入插入模式

控制多行整体左移或者右移

:set shiftwidth=4 设置移动的步长,以空格为单位
使用:m,n<或:m,n> 左移或者右移,m是起始行,n是结束行 (:set number)可以显示行号

翻页

ctrl f forward翻整页
ctrl b backward翻整页

常用快捷键

o 新建一行并且插入

VIM多行注释与取消注释

https://blog.csdn.net/step_ma/article/details/76474864

参考:《Vim使用技巧》 Drew Neil著

.命令重复上次修改(注意是修改而不是操作)

a在当前光标后面添加字符

A在当前行的结尾添加内容,等同于$a

s把两个操作合并为一个

cw命令删除从光标开始到单词结尾间的字符,并进入插入模式

用一键移动,另一键执行 —“.范式"

daw命令 delete a word

dap命令 delete a paragraph

使用vim打造自己的python编辑器

https://www.cnblogs.com/linxiyue/p/7834817.html

vim设置tab为4个空格

https://blog.csdn.net/jiang1013nan/article/details/6298727

解决vim粘贴时格式混乱的问题

https://www.cnblogs.com/softwaretesting/archive/2011/09/20/2182177.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猴猴猪猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值