2013-02-17 59 views
16

我选择使用按Ctrl文本块 - V,但是当我然后键入 - 一个 - ,我的VIM编辑器仅在开始视觉模块模式的位置进入插入模式。视觉块插入/追加不起作用

例如,

Here 
is 
text 

我想

#Her 
#is 
#text 

,但我得到:

#Here 
is 
text 
+0

这是完全正常的。 – romainl 2013-02-17 21:23:11

+0

我有这个问题。它可能是你的Ctrl-V在GUI级被拦截和转换。你的终端程序可能会陷入Ctrl-V并在vim甚至看到它之前将它改成别的东西。对于我来说,事实证明,很久以前我用Konsole快捷键摆弄,并将Ctrl-V重新映射到Shift + ins以解决兼容性问题。为了解决这个问题,我去了konsole - >设置 - >配置快捷方式 - >删除Ctrl + V的重映射到Shift + ins。证明这种情况的一种方法是使用vim在vimrc中重新映射到Ctrl-V的不同击键以绕过截取。 – 2017-09-12 04:58:55

+0

对我来说同样的问题,在Mac上使用zsh,并且下面的答案都不起作用。我可以使用Ctrl-V,并且经常这样做,但Shift-i将我踢出Visual模式并进入普通(不是多行)插入模式。 – rossdavidh 2018-01-19 15:59:40

回答

16

Ctrl - V - >选择块 - >按 - >型

然后按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. 
+3

请注意,安装Ubuntu 14.04(安装为'vi')的默认vim不包含'visualextra'功能,因此块插入将无法在此工作。'sudo apt-get install vim'引入了一个功能更全的版本,其中'visualextra'被激活。您可以检查'vim --version'的输出以查看激活功能的完整列表。 – 2015-07-15 12:49:15

+0

'esc'是关键。我一直在使用C_c来转义插入模式。 :| – reergymerej 2016-12-28 20:28:48

16

确保你退出视觉块与ESC,不按CtrlÇ 。另外,Vim不会在视觉模块模式下实时更新,您必须离开视觉模块模式才能显示其他行上的更改。

你只会看到:

#Here 
is 
text 

当您输入的视觉块,并插入一个#,但一旦你离开可视块模式中按ESC它应该看起来像:

#Here 
#is 
#text 
0
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')