如何沿Vim中特定列的所有行插入特定字符? 日期 ======= 姓名|日期 ------------------------------------------------- *亚伯拉罕平原之战| 1759年9月13日 *公告法| 1763年10月7日 *《印花税法》| 1765年3月22日 *盖伊·卡尔顿成为州长| 1766年4月7日 *波士顿茶党| 1773年12月16日 *魁北克法案| *独立宣言|

如何沿Vim中特定列的所有行插入特定字符? 日期 ======= 姓名|日期 ------------------------------------------------- *亚伯拉罕平原之战| 1759年9月13日 *公告法| 1763年10月7日 *《印花税法》| 1765年3月22日 *盖伊·卡尔顿成为州长| 1766年4月7日 *波士顿茶党| 1773年12月16日 *魁北克法案| *独立宣言|,vim,Vim,我只是个初学者,但我做的是: C-v进入可视块(在windows上使用C-q) 选择列(运动键hjkl) I 输入文本 Esc 一些注意事项: 如果您处于vi的正常视觉模式,则需要在每行前面加一个: 或者,您可以将这些命令放在命令文件中,然后键入$ex file

我只是个初学者,但我做的是:

  • C-v
    进入
    可视块
    (在windows上使用
    C-q
  • 选择列(运动键
    hjkl
  • I
  • 输入文本
  • Esc
一些注意事项:

  • 如果您处于vi的正常视觉模式,则需要在每行前面加一个
  • 或者,您可以将这些命令放在命令文件中,然后键入
    $ex file
    ,但在这种情况下,可以添加一个
    x
    作为第四行
  • 这是通过在每一行中添加空格来实现的,对于没有a |的行,将右侧的空格更改为a |,然后删除任何后续空格

对于这个任务,我可能会使用
r
而不是
I
。它将光标下的每个字符替换为下一个键入的字符。我还建议将设置为
block
:set ve=block
),这允许您进行列式选择,以便扩展到行尾字符之后。@nelstrom Cool,将其作为答案发布。我想的是一般情况下,当一个人需要输入多个字符(而不是替换现有的东西)。伟大的答案!实际上我也在考虑做同样的事情,但有一个问题。由于视觉模式需要选择某些内容,并且名称后没有空格或任何内容,因此不会选择该列。我不确定我在那里说的是否有道理。Ninjaedit下面@DigitalRoss的答案正是我想要的。它在解决问题的每一行后面都添加空格/空格,虽然有点长:)@saif-请参阅我之前对VirtualIt的评论。这就解决了视觉块模式必须选择某些东西的问题。只是想澄清一下它是否对任何人都有帮助:那就是“Control-Shift-v”,然后选择列(也可以是箭头键),然后选择“Shift-i”。
 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
%s/$/                                        /
v/|/s/^\(........................................\)/\1|/
%s/  *$//