如何沿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/ *$//