自从发现了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;我想选择第一个单词( select ),跳过两个单词,选择另一个单词(from),跳过两个单词,选择两个单词(inner ),依此类推。
我确实将Ctrl-6映射为大写字母(以避免在正常模式下激活Caps Lock ),但我确实更喜欢先键入小写的SQL,然后再“修复”它。我也知道小写的SQL是有效的,但是编码实践要求它在代码中应该全部大写。
我试图编写一个遍历当前行并将所有MySQL关键字大写的函数。然而,即使我真的走了这条路,我仍然想知道在视觉模式下跳过单词的解决方案,因为我也看到了它的其他用途。
发布于 2012-03-20 18:26:13
如果您要沿整行移动光标,另一种方法是根本不使用视觉模式:
将光标放在代码上时,键入
w (可能无效)或/fr<CR> (可能更快,键入更少)的 to from。单击<w>d12select >重复上一次编辑并将<select>d13转换为
发布于 2012-03-20 18:06:53
你是在问可视模式下是否可以选择多个不相交的区域?
如果是这样的话,这不可能在普通的Vim中完成,但是Multiselect plugin声称可以做到这一点。(免责声明:我自己没有使用过这个插件。)
如果您发现自己经常执行此工作流程,那么我认为函数式解决方案更有效率。(您甚至可以在文件保存时自动触发它,只要它足够健壮。)
https://stackoverflow.com/questions/9784502
复制相似问题