接 Vim 文本对象指南 (1),关于插件使用,可以查看完整配置 space-vim.
编程语言的文本对象
Vim 基于常见编程语言结构提供了几个常见的文本对象. 其实都是一对儿符号,主要可以分为:
模式为 操作 + a/i + 符号
,这样操作的就是文本对象。不加 a 或者 i 的话就不是一个对文本对象的操作了。对文本对象进行操作时,Vim 不会考虑你的光标位置。而非文本对象操作时,会从当前光标处开始生效。
举个例子, ci"
指的是 change inner "
,改变 ""
所包含的内容,也就是删除 ""
里面的内容并进入插入模式。
使用 a (around) 时,操作的范围包括标点符号,括号,标签本身。使用 i (inner) 时,不包括符号,括号,标签等。动手试一下,很快就能学会了。
字符串 (string)
-
@H_301_10@
a” – a double quoted string
@H_301_10@i” – inner double quoted string
@H_301_10@a’ – a single quoted string
@H_301_10@i’ – inner single quoted string
@H_301_10@a` – a back quoted string
@H_301_10@i` – inner back quoted string
puts 'Hello "world"'
ci"
puts 'Hello ""'
圆括号
对于各种括号,操作时使用前括号或后括号都可以,比如 da(
等同于 da)
.
Project.all(:conditions => { :published => true })
da)
Project.all
方括号
(defn sum [x y] (+ x y))
di]
(defn sum [] (+ x y))
大括号
puts "Name: #{user.name}"
ci}
puts "Name: #{}"
这些文本对象同样可以通过 aB
和 iB
来操作,但是并不如使用 a}
和 i}
来的直观.
%
同样适用于 {}. 但是也有着 () 和 [] 一样的限制性.
标记语言标签
标记语言标签分为两类: t 和 >,t 所操作的是标签内包含的内容,比如 <p>content</p>
,<p>
与 </p>
之间包含的内容就是 t 来操作. <
或 >
的内容指的是 <p>
里面的 p. 具体可以看下面的例子。
<h2>Sample Title</h2>
cit
<h2></h2>
因为操作后光标并不在 <h2>
里面,所以 cit
替换标记里面的内容是非常方便的.
<div id="content"></div>
di>
<></div>原文链接:https://www.f2er.com/bash/391918.html