我习惯了 vim 中的“更改对象”命令:cw、ci”等。
但是,有时我正在使用格式化的文本文件并希望保持间距。例如,在以下示例中
abc123 efg456
我真的想要一个rw
命令,当站在第一个a
字符上并用 just 替换第一个单词时ABC
,将123
用空格替换字符。所以我会得到:
ABC efg456
(这是在rwABC<esc>
光标最初打开a
并处于命令模式时键入之后。
有任何想法吗?
我习惯了 vim 中的“更改对象”命令:cw、ci”等。
但是,有时我正在使用格式化的文本文件并希望保持间距。例如,在以下示例中
abc123 efg456
我真的想要一个rw
命令,当站在第一个a
字符上并用 just 替换第一个单词时ABC
,将123
用空格替换字符。所以我会得到:
ABC efg456
(这是在rwABC<esc>
光标最初打开a
并处于命令模式时键入之后。
有任何想法吗?
我会的vwr<Space>RABC<Esc>
。这将应用运动/文本对象(此处w
:)进行视觉选择,然后将选择空白,然后在其上启动替换模式。
您可以为此创建一个映射,但您的rw
建议会阻止您使用原始r
命令来替换单个字符(或者,如果您只是想要这个w
动作,请不要用字母替换w
)。
这是一个简单的映射(没有经过很好的测试,但它适用于您的示例)。它用空格替换到单词的末尾,并使您处于替换模式。
nnoremap <leader>rw ver <esc>R
要使用它,请键入\rw
。(您可以省略<leader>
which 将允许您按rw
要求键入,但这会干扰默认r
行为。)