Как вставить конкретный символ по всем строкам в определенном столбце в Vim?

 Dates
=======

 Name                                   | Date
-------------------------------------------------
* Battle of the Plains of Abraham       | September 13, 1759
* Proclamation Act                      | October   07, 1763
* Stamp Act                             | March     22, 1765
* Guy Carleton becomes Governor         | April     07, 1766
* Boston Tea Party                      | December  16, 1773
* Quebec Act                            |
* Declaration of Independance           | <====== # How do I insert this bar character
* Treaty of Paris                                 # along the whole column?
* Constitutional Act                
* French Revolution                 
* War of 1812

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

Ответ 1

Я только новичок, но вот что я делаю:

  • C-v введите Visual Block (используйте C-q на окнах)
  • Выберите столбец (клавиши перемещения hjkl)
  • I
  • Введите текст
  • Esc

Ответ 2

%s/$/                                        /
v/|/s/^\(........................................\)/\1|/
%s/  *$//

Некоторые примечания:

  • Перед каждой строкой вам понадобится :, если вы находитесь в режиме визуальной видимости vi.
  • В качестве альтернативы вы можете поместить эти команды в командный файл и набрать $ ex file < cmds, но в этом случае добавить x в качестве четвертой строки
  • Это работает, добавляя пробелы в каждую строку, а затем меняя правую на | для строк, которые еще не имеют |, а затем удаления любых завершающих пробелов