[Vim 精粹] :文本对象: 从 1 到 N

2018-10-05 21:17:34 +08:00
 banxi1988

Vim 精粹开篇词

一直以来想写一个关于 Vim 精粹的文章。 但是本系统文章并不是入门指引,而是精粹总结。 同时本系列文章主要参考自《 Vim 实用技巧》一书。

文本对象: 从 1 到 N

以前我的编辑对象主要是 字符。 当打错一个单词,我们有两种选择。 1 )狂按退格键,以删除输入的单词。 2 )用鼠标选中要删除单词,然后删除。

不管第一种选择还是第二种选择都不够优雅。导致这种问题的根本原因是,我们编辑对象的基本元素是 字符. 为了扩大编辑对象的范围,我们不得不求助于鼠标。而使用鼠标,则意味着中断放在键盘上的右手。选中要编辑的范围然后再操作。

文本对象

基本文本对象

Vim 之所以能极大的提高编辑效率,基本一点就是因为 Vim 的编辑的基本元素不仅仅是 字符 ,而是文本对象。当然字符也是一个文本对象。 Vim 中文本对象,正是我们一般所认为的文本元素的划分。也就是如下文本块。

面向程序员的文本对象

Vim 提供了基于代码块的文本对象。主要是以匹配如下符号对 (){}、[]<><tagname></tagname>` 的文本对象。

文本对象的里和外。

<tagName></tagName> 文本对象为例。

<blockquote> Vim is the *光标* best editor</blockquote>

当我们的光标在 <blockquote> 元素块的中间时,我们想删除元素块的内容。我们可以使用,

其中 i 可以理解为 inside, a 可以理解为 aroundall

而对于基本的文本对象来说,比如

3341 次点击
所在节点    Vim
7 条回复
shuperjolly
2018-10-06 08:18:17 +08:00
收藏先,养肥了看
qinfensky
2018-10-06 08:19:05 +08:00
目前在使用 VSCode,有什么优点能吸引人切换到 Vim 吗?对这个的了解不多。
banxi1988
2018-10-06 08:21:56 +08:00
@qinfensky 事实上我也是用 VS Code 的。VS Code 上用 Vim 插件即可。
所以我这里的 Vim 主要是指其背后代表的一种高效的编辑方式,逻辑思想,或者说思想。
Vim 编辑思想,嗯。
iwfan
2018-10-06 09:01:02 +08:00
写的很好,收藏了。什么时候讲讲寄存器 呢。
yujincheng08
2018-10-06 11:45:49 +08:00
马克
feelinglucky
2018-10-06 22:52:23 +08:00
搞个 github 的项目呗,一起写
SpaceVim
2018-12-25 08:34:37 +08:00
收藏一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/495087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX