VIM:略读视觉选择

时间:2012-03-20 09:52:04

标签: vim selection

自从发现VIM以来,我发现以小写字母输入SQL然后使我需要大写的单词更简单。有没有办法在可视模式下跳过一个单词,这样它就不会成为选择的一部分,这样我就可以选择所有MySQL关键字,然后对它们执行U?例如,假设这个SQL查询:

select a.name, b.userid from someTable a inner join anotherTable b on a.someField=b.someOtherField group by a.randomField sort on b.yetAnotherField desc;

我想选择第一个单词(选择),跳过两个单词,选择另一个单词(从),跳过两个单词,选择两个单词(内连接),依此类推。

我确实将Ctrl-6映射到大写字母(以避免在正常模式下激活Caps Lock),但我确实更喜欢先用小写字母输出SQL,然后再“修复”它。我也知道小写SQL是有效的,但是编码实践要求它在代码中都应该是大写的。

我尝试编写一个遍历当前行的函数,并将所有MySQL关键字大写。然而,即使我确实走了那条路,我仍然想知道在视觉模式中跳过单词的解决方案,因为我也看到了它的其他用途。

2 个答案:

答案 0 :(得分:3)

您是否在视觉模式中选择是否可以选择多个不相交的区域?

如果是这样,这不能在普通的Vim中完成,但Multiselect plugin声称要做到这一点。 (免责声明:我自己没有使用过这个插件。)

如果这个工作流程是您经常发生的事情,那么我认为功能性解决方案更有效。 (一旦足够强大,你甚至可以在文件保存时自动触发它。)

答案 1 :(得分:3)

如果您要沿整行移动光标,另一条路线就是不使用 visual 模式:

  1. 将光标放在select上,输入gUiw将其变为SELECT
  2. 移至from多个w(可能是inneficient)或/fr<CR>(更快,更少打字,也许)。
  3. 点击.重复上一次修改,然后将from变为FROM
  4. REPEAT ...