Как сделать редактирование столбцов в vim? - PullRequest
50 голосов
/ 07 августа 2011

Vim довольно мощный при редактировании построчно - инструменты поиска / замены смоделированы так, чтобы работать аналогично.

Но что, если я хочу изменить определенный столбец во всех строках?Например, как я могу легко изменить 80-й столбец в моем файле на #?

Ответы [ 5 ]

112 голосов
/ 07 августа 2011

Чтобы редактировать столбец, выполните следующие действия:

  1. Стенд в начале колонны
  2. Нажмите Ctrl + Shift + v , затем отметьте столбец, который вы хотите редактировать.
  3. Нажмите Shift + i , чтобы вставить текст в начало столбца, Shift + a , чтобы добавить текст, r для замены выделенного текста, d для удаления, c для изменения ... и т. д.
  4. Нажмите ESC , когда закончите.

Я думаю, что люди (я) иногда сопоставляют клавиши редактирования столбца с Ctrl + Q , поэтому они не будут сталкиваться с визуальной строкой выбора (V) или вставкой текста, если вы сопоставил его как таковой.

37 голосов
/ 07 августа 2011

Вы можете использовать замену , где шаблон соответствует определенному столбцу (\%c):

:%s/\%80c/#/<CR>

Или вы можете использовать блок визуальный режим :

г г 8 0 | CTRL + v G r #

'virtualedit*Опцию 1037 * можно использовать для позиционирования курсора в позиции, где нет действительного символа:

:set virtualedit
32 голосов
/ 14 января 2016

... Я не мог выполнить шаги sa125 (лицевая сторона лица), поэтому я посмотрел куда-то еще и нашел кое-что более простое: https://blog.pivotal.io/labs/labs/column-edit-mode-in-vi

  1. Ctrl + v [и выберите то, что вы хотите]
  2. Shift + i [и напишите что угодно ... (см. * Ниже)]
  3. Esc

* !!Внимание Не обескураживайте тем фактом, что изменяется только первая строка, когда «пишите все что угодно» !!

Надеюсь, это поможет!

1 голос
/ 13 августа 2015

Для редактирования по столбцам vis.vim действительно полезно. Вы можете блокировать выбор интересующего вас столбца и манипулировать им с помощью обычных команд и даже произвольных команд Ex. Из примера на этой странице я часто использовал шаблон:

:'<,'>B s/abc/ABC/g

Вы можете установить Vundle / Pathogen vis.vim из github :

Плагин 'taku-o / vim-vis'

1 голос
/ 16 августа 2011

Я могу быть совершенно не в теме, но если вы хотите избежать длинных строк, вы можете взглянуть на параметр colorcolumn в vim 7.3.

...