VIM: пропустить слово для визуального выбора - PullRequest
1 голос
/ 20 марта 2012

С тех пор как я обнаружил 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 ]

3 голосов
/ 20 марта 2012

Если вы собираетесь перемещать курсор по всей линии, другой маршрут вообще не должен использовать режим visual :

  1. С курсором на select,наберите gUiw, чтобы превратить его в SELECT.
  2. Перейдите к from с несколькими w (возможно, неэффективно) или с /fr<CR> (быстрее, возможно, меньше наберете).
  3. Нажмите ., чтобы повторить последнее редактирование, и включите from в FROM.
  4. Повтор ...
3 голосов
/ 20 марта 2012

Вы спрашиваете, возможно ли выделить несколько непересекающихся областей в визуальном режиме?

Если это так, это не может быть сделано в простом Vim, но плагин Multiselect заявляет, что именно так и поступает. (Отказ от ответственности: я не использовал этот плагин сам.)

Если этот рабочий процесс является чем-то, что вы делаете регулярно, то я думаю, что функциональное решение более эффективно. (Вы даже можете запустить его автоматически при сохранении файла, как только он станет достаточно надежным.)

...