Vim 文本对象指南 (2)

作者: liuchengxu | 来源:发表于2017-07-22 19:53 被阅读211次

Vim 文本对象 (1), 关于插件使用, 可以查看完整配置 space-vim.


编程语言的文本对象

Vim 基于常见编程语言结构提供了几个常见的文本对象. 其实都是一对儿符号,主要可以分为:

  • 成对的标点符号,比如单引号,双引号,反引号。
  • 成对的括号,比如小括号,中括号,大括号。
  • 标记语言标签,它们也是成对的,比如 HTML 的标签,<div></div>

模式为 操作 + a/i + 符号,这样操作的就是文本对象。不加 a 或者 i 的话就不是一个对文本对象的操作了。对文本对象进行操作时,Vim 不会考虑你的光标位置。而非文本对象操作时,会从当前光标处开始生效。

举个例子, ci" 指的是 change inner ", 改变 ""所包含的内容,也就是删除 "" 里面的内容并进入插入模式。

使用 a (around) 时,操作的范围包括标点符号,括号,标签本身。使用 i (inner) 时,不包括符号,括号,标签等。动手试一下,很快就能学会了。

字符串 (string)

  • a” – a double quoted string
  • 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
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 block
  • i] – inner bracketed block
(defn sum [x y]
  (+ x y))

di]

(defn sum []
  (+ x y))

大括号

  • a} – a brace block
  • i} – inner brace block
puts "Name: #{user.name}"

ci}

puts "Name: #{}"

这些文本对象同样可以通过 aBiB 来操作, 但是并不如使用 a}i} 来的直观.

% 同样适用于 {}. 但是也有着 () 和 [] 一样的限制性.

标记语言标签

标记语言标签分为两类: t 和 >, t 所操作的是标签内包含的内容, 比如 <p>content</p><p></p> 之间包含的内容就是 t 来操作. <> 的内容指的是 <p> 里面的 p. 具体可以看下面的例子。

  • at – a tag block
  • it – 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 文本对象指南 (2)

    接 Vim 文本对象 (1), 关于插件使用, 可以查看完整配置 space-vim. 编程语言的文本对象 Vim...

  • Vim 文本对象指南 (1)

    本文还是介绍一些基本内容, 关于插件使用, 可以查看完整配置 space-vim. 如果想要在 Vim 里拥有高效...

  • VIM文本选择

    跳转/界定字符位置 文本选择 VIM文本选择采用2位字符定义文本选择对象: 由字母a(around)引导的文本选择...

  • linux文本编辑器vi/vim

    linux文本编辑器vi/vim 超全!VIM 编辑器操作指南[https://zhuanlan.zhihu.co...

  • Vim Text Objects 文本对象

    Plaintext Text Objects Vim provides text objects for the ...

  • Vim 让每一个键都拥有灵魂

    本文 插件 vimrc通用配置 名词简介 范围文本对象 a{symbol}, I{symbol} vim 后台待命...

  • vim使用详细说明

    vim 介绍: vim的前身是 vi(Visual Interface), 文本编辑器。 vi/vim只能编辑文本...

  • vim使用笔记

    vim 介绍: vim的前身是 vi(Visual Interface), 文本编辑器。 vi/vim只能编辑文本...

  • Linux简单的学习记录(五)

    Vim文本编辑工具压缩解压缩 一、Vim文本编辑工具 1.安装与使用,一般都有vim文本工具,如果没有yum in...

  • 我的vim笔记_20170227

    vim 20160607 vim的几种模式 普通模式 插入模式 选择模式 可视模式面向字符文本面向行文本面向块文本...

网友评论

    本文标题:Vim 文本对象指南 (2)

    本文链接:https://www.haomeiwen.com/subject/wptlcxtx.html