Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 视觉块插入/附加不';行不通_Vim - Fatal编程技术网

Vim 视觉块插入/附加不';行不通

Vim 视觉块插入/附加不';行不通,vim,Vim,我使用Ctrl-V选择一个文本块,但当我随后键入Shift-a或Shift-I时,我的vim编辑器仅在我开始视觉块模式的位置进入插入模式 比如说, Here is text 我想要 #Her #is #text 但我得到: #Here is text 确保使用ESC而不是Ctrl C退出可视块 此外,Vim不在可视块模式下实时更新,您必须离开可视块模式以在其他行上显示更改 您将只看到: #Here is text 进入视觉块并插入#后,但一旦按ESC键离开视觉块模式,它应该如下

我使用Ctrl-V选择一个文本块,但当我随后键入Shift-a或Shift-I时,我的vim编辑器仅在我开始视觉块模式的位置进入插入模式

比如说,

Here
is 
text
我想要

#Her 
#is 
#text
但我得到:

#Here
is 
text

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

此外,Vim不在可视块模式下实时更新,您必须离开可视块模式以在其他行上显示更改

您将只看到:

#Here
is 
text
进入视觉块并插入
#
后,但一旦按ESC键离开视觉块模式,它应该如下所示:

#Here
#is 
#text
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. 
视觉块插入*v_b_I*
使用分块选择,I{string}将在开始处插入{string}
块的每一行上的块,前提是该行延伸到块中。

对我来说,问题是我使用的是行视觉模式(即按
V
进入视觉模式),而不是块视觉模式(即使用
Ctrl-V
进入视觉模式)。还要注意的是,您必须使用
退出可视模式(或者在英文键盘上使用
Ctrl-[
)而不是使用
Ctrl-c

,这是非常正常的。我遇到了这个问题。可能是您的Ctrl-V在GUI级别被截获和转换。您的终端程序可能会在vim看到它之前捕获Ctrl-V并将其更改为其他内容。对我来说,这是很久以前我摆弄K时发生的事情onsole快捷键并将Ctrl-V重新映射到Shift+ins以解决兼容性问题。要解决此问题,我转到konsole->settings->configure shortcuts->删除Ctrl-V到Shift+ins的重新映射。证明是否存在这种情况的一种方法是在vimrc中使用vim将不同的击键重新映射到Ctrl-V以绕过拦截。对于我来说,同样的问题是在M上使用zshac,下面的答案都不起作用。我可以很好地使用Ctrl-V,而且经常使用,但Shift-I将我从视觉模式踢到普通(不是多行)插入模式。请确保通过某种移动(移动计数、匹配的移动等)来选择块。如果您使用文本对象突出显示该块,那么我观察到这种行为,它只是恢复为在原始光标位置插入。请注意,Ubuntu 14.04安装的默认vim(安装为
vi
)不包括
visualextra
功能,因此块插入在那里不起作用。
sudo-apt-get-install-vim
带来了一个功能更全的版本,在这个版本上,
visualextra
被激活。你可以检查
vim--version
的输出以查看激活功能的完整列表。
esc
是关键。我已经正在使用C|C退出插入模式。|注意“等待1秒,插入的文本将出现在每一行”我进入
按i(shift+i)
zsh
步骤中,出于某些原因,它似乎只编辑了一行OK它似乎只在我单击
Esc后生效
编辑后,是否仍有vim实时显示多列编辑更改是!如果您看到“--可视行--”底线中的文本将不起作用。也使用CTRL+V代替我,Vim有三种视觉模式
--视觉--
--视觉行--
--视觉块--
,A和I仅用于
--视觉块--
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')