【发布时间】:2019-11-25 19:49:34
【问题描述】:
通常我想以相同的方式编辑文本块中的每一行,所以我会输入
<C-V>}
这实现了选择整个块,但不幸的是超过了块的最后一行并改变了光标位置。因此,我必须按 k ,然后按顺序更正光标位置。通常我发现在我到达最后一行之前按j 会更容易。有没有更简单的方法来实现这一点?
示例:我想更改以下内容
std::cerr << "abc::blah " << std::endl;
std::cerr << "def::text " << std::endl;
std::cerr << "ggg::something " << std::endl;
std::cerr << "xyz::else " << std::endl;
std::cerr << "qrs::random " << std::endl;
到:
std::cerr << "Foo::blah " << std::endl;
std::cerr << "Foo::text " << std::endl;
std::cerr << "Foo::something " << std::endl;
std::cerr << "Foo::else " << std::endl;
std::cerr << "Foo::random " << std::endl;
所以我发现自己将光标放在第一行的第一个 a 上,然后输入<C-V>jjjjecFoo<ESC>
有没有办法将光标向下移动到块的末尾而不经过它或更改列,即相当于按 j 直到块的最后一行?
【问题讨论】:
-
插件github.com/vim-utils/vim-vertical-move 似乎可以满足您的需求(虽然我没有亲自尝试过)。不幸的是,现在想不出没有插件的方法(不使用/计算行号,这几乎是您的解决方案,但使用
4j而不是jjjj)。 -
是的,这看起来就是我要找的东西!
标签: vim