首页 > 解决方案 > VIM for Windows:如何编辑到行尾但在 EOL 字符之前

问题描述

我正在尝试做的事情:
例如,我的代码中有一行看起来像这样

something.something()

我想补充print()一下:

print(something.something())

我是怎么做的:
我输入 vim:^c$print()<Esc>P意思是:

  1. 将光标放在行首,
  2. 改变整行,
  3. 输入print(),
  4. 将整行粘贴到print's之前)

问题:
不幸的是,该c$部分也削减了 EOL 字符。因此后续P操作只会将行粘贴到print(). 所以最终结果将如下所示:

something.something()
print()

我的想法:
现在的解决方法是先使用v模式突出显示除 EOL 字符之外的整行,然后执行上述操作。

我正在寻找类似于 的东西ct$ ci$,但它们都不起作用。我的行并不总是以 结尾(),它可能是__dict__或只是纯文本,所以cf)很方便,但我正在寻找更通用的东西。谢谢。

标签: windowsvim

解决方案


当然,它是开箱即用的。

假设您对您正在做的事情的描述是准确的,那么您所做的事情不起作用的原因很可能是由您的配置中的某些内容引起的,因为c$(或其更好的替代方案C)永远不应该拉出 EOL。

这是使用您的问题中描述的方法进行的演示:

^c$print()<Esc>P

以及我会使用的方法:

^Cprint(<C-r>")<Esc>

作品


推荐阅读