考虑下面这行 Python 代码:
print("\nHello, world!")
要将单词改为 ,Hello
可能Hola
只需 即可ciw
。但是,这个简单的命令也会替换n
of \n
。如果在单词前面紧接着发现字符 ,如何配置 VIM 以忽略单词的前导字符\
?
请注意,VIM 突出显示确实将前导识别n
为属于\n
,因此也许可以基于此找到解决方案。
答案1
Vim 中的单词动作是通用的(或者如您所说是“简单”),并且仅由设置控制'iskeyword'
。这通常是一件好事,因为它们已被证明适用于各种文本和大多数编程语言。
你想要的是专门的文本对象;你可以通过重新映射默认iw
文本对象(可能还有相关的动作,如w
、e
等,以保持一致性)来实现这一点。我还没有见过这样的实现,但在 Vimscript 中肯定是可行的。textobj-用户插件可能有帮助。
或者,您可以先在可视模式下应用文本对象,然后更正前导n
字符的选择:viwolc
。o
转到选择的另一侧,l
将其缩小一次,最后c
悬停选择。
...或者直接重新输入已删除的n
;毕竟,它只是一个字符,而且操作很快。我可能会这么做。