1. 跳转光标位置
文本对象 | 选择范围 |
---|---|
w |
下一个单词第一个字符正向跳转
|
b |
本单词的第一个字符反向跳转 (如果光标已经位于单词的第一个字符,则跳转到上一个单词的第一个字符;如果光标位于单词的其他位置,则跳转到本单词的第一个字符) |
e |
本单词的最后一个字符正向跳转 (如果光标已经位于单词的最后一个字符,则跳转到下一个单词的最后一个字符;如果光标位于单词的其他位置,则跳转到本单词的最后一个字符) |
ge |
上一个单词的最后一个字符反向跳转
|
2. 文本选择
本章节以 转载文章 一起来说 Vim 语 为主题进行介绍
语法规则:
[数词] 命令 [数词] [介词] [名词]
[名词]即对应命令操作的对象,称为[对象]也没毛病
动词
动词代表了我们打算对文本进行什么样的操作。例如:
d 表示删除(delete)
r 表示替换(replace)
c 表示修改(change)
y 表示复制(yank)
v 表示选取(visual select)
介词
介词界定了待编辑文本的范围或者位置。例如:
i 表示“在…之内”(inside)
a 表示“环绕…”(around)
t 表示“到…位置前”(to)
f 表示“到…位置上”(forward)
名词
名词代表了我们即将处理的文本。Vim 中有一个专门的术语叫做文本对象(text object),下面是一些文本对象的示例:
w 表示一个单词(word)
s 表示一个句子(sentence)
p 表示一个段落(paragraph)
t 表示一个 HTML 标签(tag)
引号或者各种括号所包含的文本称作一个文本块。
3. 例子
文本选择示例
文本对象 | 选择区域 |
---|---|
aw |
当前单词及其后一个空格。如果单词后边是句号,则选择其前边一个空格和该单词 |
iw |
当前单词 |
aW |
当前字串及其后一个空格 |
iW |
当前字串 |
as |
当前句子及其后一个空格 |
is |
当前句子 |
ap |
当前段落及其后一个空格 |
ip |
当前段落 |
a) |
圆括号及其内容 |
i) |
圆括号内部内容 |
a} |
花括号及其内容 |
i} |
花括号内部内容 |
a] |
方括号及其内容 |
i] |
方括号内部内容 |
a> |
尖括号及其内容 |
i> |
尖括号内部内容 |
a' |
单引号及其内容 |
i' |
单引号内部内容 |
a" |
双引号及其内容 |
i" |
双引号内部内容 |
at |
XML/HTML类似标签(很灵活,只要是对称的标签即可)及其内容,如<abcabc>tags</abcabc> |
it |
XML/HTML类似标签内部内容 |
操作语句示例
操作语句 | 功能 |
---|---|
dip |
删除一个段落: delete inside paragraph |
vis |
选取一个句子: visual select inside sentence |
ciw |
修改一个单词: change inside word |
caw |
修改一个单词: change around word |
dtx |
删除文本直到字符“x”(不包括字符“x”): delete to x |
dfx |
删除文本直到字符“x”(包括字符“x”): delete forward x |
c3w |
修改三个单词:change three words |
d2w |
删除两个单词:delete two words |
2dw |
两次删除单词(等价于删除两个单词): twice delete word |
3x |
三次删除字符(等价于删除三个字符):three times delete character |