32

Ctrl我使用-选择了一个文本块V,但是当我输入Shift-AShift-I时,我的 vim 编辑器仅在我开始可视块模式的位置进入插入模式。

例如,

Here
is 
text

我想

#Her 
#is 
#text

但我得到:

#Here
is 
text
4

4 回答 4

31

确保使用 退出视觉块ESC,而不是Ctrl C

此外,Vim 不会在可视块模式下实时更新,您必须离开可视块模式才能显示其他行的更改。

你只会看到:

#Here
is 
text

在你进入视觉块并插入一个#之后,但是一旦你离开视觉块模式,按下ESC它应该看起来像:

#Here
#is 
#text
于 2013-02-17T20:56:29.693 回答
25

Ctrl- V-> 选择块 -> 按I-> 输入#

然后按ESC

更多详情:

:h v_b_I

你可以看到:

Visual-block Insert                     *v_b_I* 

With a blockwise selection, I{string}<ESC> will insert {string} at the start 
of block on every line of the block, provided that the line extends into the block. 
于 2013-02-17T20:56:56.053 回答
7

对我来说,问题是我使用的是逐行视觉模式(即通过按 进入视觉模式V),而不是按块视觉模式(即通过使用进入视觉模式Ctrl-v)。另请注意,您必须通过使用<Esc>(或等效地通过Ctrl-[在英文键盘上使用)而不是通过使用来退出可视模式Ctrl-c

于 2018-06-23T18:16:21.917 回答
1
rpm -qa | grep vim

vim-enhanced-7.4.160-1.el7.x86_64
vim-common-7.4.160-1.el7.x86_64
vim-filesystem-7.4.160-1.el7.x86_64

1/just remove vi and use vim instead
or
2/alias vim='vi' in your bashrc
or
3/ln -s $(which vim) $(which vim|sed 's/vim/vi/g')
于 2014-12-14T11:48:44.213 回答