Используйте VIM Visual Block для объединения блоков - PullRequest
0 голосов
/ 30 июня 2010

Я пытаюсь использовать VIM для построения моего SQL-запроса путем объединения блоков строк.Например, у меня есть следующие строки на трех вкладках в VIM:

# block one
 where c = '123'
 where c = '2345'
 ... 

# block two
set b = 12
set b = 345
...

# block three
update myTable set a = 'abc', 
update myTable set a = '23423', 
...

каждый блок содержит 100 строк (фрагменты запроса SQL).Я хотел бы объединить эти блоки в один полный запрос SQL: блок один + блок два + блок три (100 строк) следующим образом:

# sql queries
update myTable set a = 'abc', set b = 12 where c = '123'
update myTable set a = '23423', set b = 345 where c = '2345'
...

Просто игнорируйте первую строку # ..., этопросто для объяснения.Я думаю, что Visual Block может быть использован для этого:

  1. Вырвать все строки на вкладке «блок два»;
  2. Вставить буфер на вкладку «блок три» в начале;
  3. Вырвать все строки на вкладке "блок один";
  4. Вставить буфер в закладку "блок три" в начале.

Однако я попыталсяподсказка в Визуальный режим блокировки (первые два примера y и p), я не смог получить ожидаемый результат.Вставка не объединяет строки буфера с блоком.Не уверен, что я сделал не так.Или любые другие альтернативные способы?

Ответы [ 2 ]

2 голосов
/ 30 июня 2010

Пробовали ли вы Visual-blockwise (ctrl-v)? Они должны быть одинаковой ширины линии, но это работает.

# Yank the lines from the other file
gg V G 
# Add whitespace to the end
:%s/$/  /
# Select the whitespace at the end of the other file, and paste it
gg $ ctrl-v $ p

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

2 голосов
/ 30 июня 2010

Недавно я столкнулся с эпизодом VimCasts , в котором описывается, как выполнять редактирование в режиме визуального блока.Посмотрите видео, я думаю, он описывает, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...