Vim 文本对象指南 (2)
2017-07-22 19:57
134 查看
接 Vim 文本对象指南 (1), 关于插件使用, 可以查看完整配置 space-vim.
成对的标点符号,比如单引号,双引号,反引号。
成对的括号,比如小括号,中括号,大括号。
标记语言标签,它们也是成对的,比如 HTML 的标签,
模式为
举个例子,
使用 a (around) 时,操作的范围包括标点符号,括号,标签本身。使用 i (inner) 时,不包括符号,括号,标签等。动手试一下,很快就能学会了。
i” – inner double quoted string
a’ – a single quoted string
i’ – inner single quoted string
a` – a back quoted string
i` – inner back quoted string
a) – a parenthesized block
i) – inner parenthesized block
i] – inner bracketed block
i} – inner brace block
这些文本对象同样可以通过
it – inner tag block
因为操作后光标并不在
a> – a single tag
i> – inner single tag
这个文本对象也可以被用来快速操作单个标记及其属性.
参考:
[1] Vim Text Objects: The Definitive Guide
编程语言的文本对象
Vim 基于常见编程语言结构提供了几个常见的文本对象. 其实都是一对儿符号,主要可以分为:成对的标点符号,比如单引号,双引号,反引号。
成对的括号,比如小括号,中括号,大括号。
标记语言标签,它们也是成对的,比如 HTML 的标签,
<div></div>。
模式为
操作 + a/i + 符号,这样操作的就是文本对象。不加 a 或者 i 的话就不是一个对文本对象的操作了。对文本对象进行操作时,Vim 不会考虑你的光标位置。而非文本对象操作时,会从当前光标处开始生效。
举个例子,
ci"指的是
change inner ", 改变
""所包含的内容,也就是删除
""里面的内容并进入插入模式。
使用 a (around) 时,操作的范围包括标点符号,括号,标签本身。使用 i (inner) 时,不包括符号,括号,标签等。动手试一下,很快就能学会了。
字符串 (string)
a” – a double quoted stringi” – inner double quoted string
a’ – a single quoted string
i’ – inner single quoted string
a` – a back quoted string
i` – inner back quoted string
puts 'Hello "world"'
ci"
puts 'Hello ""'
圆括号
对于各种括号, 操作时使用前括号或后括号都可以, 比如da(等同于
da).
a) – a parenthesized block
i) – inner parenthesized block
Project.all(:conditions => { :published => true })
da)
Project.all
方括号
a] – a bracketed blocki] – inner bracketed block
(defn sum [x y] (+ x y))
di]
(defn sum [] (+ x y))
大括号
a} – a brace blocki} – inner brace block
puts "Name: #{user.name}"
ci}
puts "Name: #{}"
这些文本对象同样可以通过
aB和
iB来操作, 但是并不如使用
a}和
i}来的直观.
%同样适用于 {}. 但是也有着 () 和 [] 一样的限制性.
标记语言标签
at – a tag blockit – inner tag block
<h2>Sample Title</h2>
cit
<h2></h2>
因为操作后光标并不在
<h2>里面, 所以
cit替换标记里面的内容是非常方便的.
a> – a single tag
i> – inner single tag
<div id="content"></div>
di>
<></div>
这个文本对象也可以被用来快速操作单个标记及其属性.
参考:
[1] Vim Text Objects: The Definitive Guide
相关文章推荐
- Vim 文本对象指南 (1)
- VIM文本对象---非常有用
- vim文本对象
- Vim实战指南(五):文本替换
- 每日vim插件--vim中的文本对象及相关插件
- 原生Ajax的XMLHttpRequest对象使用指南
- 七个高效的文本编辑习惯(以Vim为例)
- Ubuntu下VIM使用指南
- 处理文本的工具sed,vim 编辑器的使用 Linux版
- 把 JSON 文本转换为 JavaScript 对象时可能出现的问题
- vim打开win下文本退出后乱码问题(已解决)
- VIM使用指南
- Matplotlib 中文用户指南 4.2 基本的文本命令
- 处理文本部分内容的TextRange对象应用实例
- 编程更改文本对象示例代码
- 初窥javaScrit权威指南,第六章对象(2)
- 解析Json文本——如何将Json文本转化为Java对象
- OCP认证考试指南(8):管理数据库对象
- Python IDE安装指南(Xcode,Vim,Eclipse)
- XStream将XML转换为JAVA对象快速指南