单词动作忽略 `\n` 中的 `n`

单词动作忽略 `\n` 中的 `n`

考虑下面这行 Python 代码:

print("\nHello, world!")

要将单词改为 ,Hello可能Hola只需 即可ciw。但是,这个简单的命令也会替换nof \n。如果在单词前面紧接着发现字符 ,如何配置 VIM 以忽略单词的前导字符\

请注意,VIM 突出显示确实将前导识别n为属于\n,因此也许可以基于此找到解决方案。

答案1

Vim 中的单词动作是通用的(或者如您所说是“简单”),并且仅由设置控制'iskeyword'。这通常是一件好事,因为它们已被证明适用于各种文本和大多数编程语言。

你想要的是专门的文本对象;你可以通过重新映射默认iw文本对象(可能还有相关的动作,如we等,以保持一致性)来实现这一点。我还没有见过这样的实现,但在 Vimscript 中肯定是可行的。textobj-用户插件可能有帮助。

或者,您可以先在可视模式下应用文本对象,然后更正前导n字符的选择:viwolco转到选择的另一侧,l将其缩小一次,最后c悬停选择。

...或者直接重新输入已删除的n;毕竟,它只是一个字符,而且操作很快。我可能会这么做。

相关内容