usr_04 作小改动
04.1 操作符与动作
Vim 只删除从当前位置到”动作“把光标移动到的位置的前一个位置。是否包括光标所在的字符取决于你使用的移动命令。包括当前字符在参考手册中称为 inclusive
、否则成为 exclusive
。
04.2 修改文本
修改 change
c<MOTION>
但这里 cw
的行为会与 dw
不同,它会保留下个单词前面的空格。
cc
会修改整行,但是会保留前面的缩进。
快捷键
有些操作符命令组合很常用于是就有了单字符的命令
x -> dl
X -> dh
D -> d$
C -> c$
s -> cl
S -> cc
计数前缀可以放在这个命令前或者动作前。
替换单个字符
把光标位置替换成字符 <C>
r<C>
但注意这个命令不会改变模式。同时 r
不是操作符,但我们可以通过在命令前加入计数前缀同时将多个字符改为单个字符。
特别的对于
<NUM>r<ENTER>
会把 <NUM>
个空格替换成一个 <ENTER>
。
04.3 重复一个修改
.
是 Vim 中的重要命令,它可以重复最后一次的”修改“操作。它可以重复任何除 u
,<CTRL-R>
和冒号命令外的修改。
04.4 可视模式
v
可以进入可视模式框选一些内容,然后后面加入某些命令。
按行选择
如果希望按整行选择
V
列块选择
对于一个表格形式的文档,可以用
<CTRL-V>
选择一些列块。
移动到另一端
在可视模式下使用
o
可以将光标移动到选择文字的另一端 (other end)。
当使用列块模式,选择区域会有四个角,o
将移动到对角,而 O
可以移动到同一行的另一个角。
04.5 移动文本
d
或 x
删除文本时,这些删除的文本 Vim 会保存起来。可以使用 (put)
p
命令插入这些保存的内容
可以使用 x
命令配合 p
命令微调一些 typo。
04.6 拷贝文本
可以使用
y
(抽出 yank
) 来拷贝内容,行为类似于删除命令 d
。
这里注意 yw
是附带了单词后的空格的,不要空格则要使用 ye
。
一个小区别是 D
删除到行尾,而 Y
复制整行,y$
则是复制到行尾 。
04.7 使用剪贴板
在 gvim 中可以在 Edit 菜单中找到 Copy 和 Paste。这样可以在 vim 和其他程序之间拷贝。
如果不是 GUI 版本,则拷贝到剪贴板
”*y<MOTION>
从剪贴板粘贴
“*p
需要 Vim 版本支持剪贴板 (clipboard)。
04.8 文本对象
除了 <操作符><动作>
方法还有 <操作符><文本对象>
。
例如删除一个单词可以
daw
其中 aw 就是一个文本对象表示一个单词(a word)。
完整的文本对象见 text-objects
。
04.9 替换模式
R
命令会启动替换模式直到 <ESC>
。
注意替换模式下,如果超出行范围,会自动进行行扩展而不是替换到下一行。
替换模式下 <BS>
会还原替换前的字符。
可以通过 <INSERT>
在插入模式和替换模式之间切换。
04.10 结论
操作符列表见 operator
。
一些其他修改命令
修改光标下字符的大小写,并移动到下个位置
~
注意这不是一个操作符,除非设置了 tildeop
。在可视模式会改变被选中所有文本的大小写。
移动到当前行第一个非空白字符并进入插入模式
I
移动到行尾并启动插入模式
A
Next: [Vim] usr_05