自从发现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关键字大写。然而,即使我确实走了那条路,我仍然想知道在视觉模式中跳过单词的解决方案,因为我也看到了它的其他用途。
答案 0 :(得分:3)
您是否在视觉模式中选择是否可以选择多个不相交的区域?
如果是这样,这不能在普通的Vim中完成,但Multiselect plugin声称要做到这一点。 (免责声明:我自己没有使用过这个插件。)
如果这个工作流程是您经常发生的事情,那么我认为功能性解决方案更有效。 (一旦足够强大,你甚至可以在文件保存时自动触发它。)
答案 1 :(得分:3)
如果您要沿整行移动光标,另一条路线就是不使用 visual 模式:
select
上,输入gUiw
将其变为SELECT
。from
多个w
(可能是inneficient)或/fr<CR>
(更快,更少打字,也许)。.
重复上一次修改,然后将from
变为FROM
。