vim
目录
范围+文本对象
范围
- 内部:
i
,意指 inner - 外部:
a
,英文单词 a,一个的意思
文本对象
(
或)
:一对()
b
:一对()
{
或}
:一对{}
B
:一对{}
[
或]
:一对[]
<
或>
:一对<>
t
:tag (HTML 或 XML)标签'
或'
:一对''
"
或"
:一对""
`
或`
:一对``
w
:一个单词s
:一个句子;以.
!
?
结尾即为一个句子p
:一个段落;以一个换行符间隔即为一个段落(一般用于对函数体操作)
比如i'
代表'
内部,iw
代表光标所在单词
,注意到,加上了范围i
或者a
,则原本的w
含义也发生了变化,注意这是两个东西,原本的w
为一个移动,而这里的w
代表文本对象即单词。
move
some easy
hjkl
,左下上右wbeWBE
,单词级别0和$
,行首和行尾^和g _
,行首和行尾,但不算空白字符H和L
,页面相关,基本就是映射到^和g _
%
括号匹配 ## search- 光标移到要搜索的单词,
*
向下查找,#
向上查找 /
向下模糊搜索,?
向上模糊搜索,配合n
和N
f
+ 字符:自左往右移动光标到下一个匹配的字符中F
+ 字符:自右往左移动光标到下一个匹配的字符中t
+ 字符:自左往右移动光标到下一个匹配的字符的前一个字符中T
+ 字符:自右往左移动光标到下一个匹配的字符的后一个字符中;
:重复执行上一个搜索命令,
: 与上一个命令方向相反地执行上一个搜索命令
动词
some easy
d
: 删除c
: 删除并进入insert模式y
: 复制ys, ds, cs
,vim-surround插件,对应添加括号,删除括号,修改括号.
重复上一个命令u
撤销上条命令p
粘贴剪切板内容r
替换 ## g+?整理g :
定位到上次编辑位置g c
注释g h
弹出变量或者函数的详细信息gu
和gU
小写或大写,g u u
和g U U
整行小写大写g b
多选相同的wordgg
文件首,G
文件尾3G
或3gg
或:3
,跳到第3行
数量词
1234567...
表示命令执行的次数。
结合起来吧
动词 + move
-
d h
,删除前一个字符 -
d w
,删除字符到下一个单词开头 -
d tV
,删除字符到下一个v字符前面 -
d 2fb
,删除字符到第二个b,且包括这个b,等同于2 dfb
## 动词 + (范围) +文本对象 -
ys w'
,给当前到下一个单词前添加'
号 -
ds '
,删除包裹的符号 - cs [(
,将[]修改为() -
yssb
,整行添加括号,重复两次代表对行操作,b在前面介绍说了是文本对象,代表括号。
-
ysiw'
,出现了两个文本对象,第一个与前面的i结合为iw
代表单词,第二个文本对象代表即位要添加的引号,注意和第一条的区别,w
所代表的不同。
-
gUw
,大写直到下一个单词前,是动词+move,gUiw
,大写光标所在单词,是动词+范围+文本对象。