2

我真的很喜欢在 windows 中使用Ctrl- V( Ctrl- Q) 来修改视觉块的想法。此处解释了该技术:在 Vim 中,如何有效地将相同的字符插入多行?

出于某种原因,这在 VIM 7.2.411 中对我不起作用。

我按Ctrl- V,它显示视觉块,然后按J几次以扩大我的选择。然后我按Shift-I插入,放置我的文本,当我按时Esc,它只修改了选择的顶行。我很难弄清楚为什么这在我的 linux 机器上不起作用。同样的技术对 Windows 中的 gvim 非常有效。

是什么阻止了它的工作,或者我应该尝试什么不同的方法?

4

3 回答 3

4

问题的根源是缺乏编译支持(感谢我的共享主机提供商)。对于其他遇到类似问题的人,请检查 vim 中的 +visualextra 选项。您可以从正常模式检查:

:echo has('visualextra')

如果确实如此,它将返回一个“1”。否则,您可以使用:

:version

或者通过从命令行调用 --version 选项:

vim --version | grep visualextra
于 2013-03-09T19:43:02.980 回答
3

它可能就像没有安装正确的软件包一样简单。不包括可视块模式,vim-minimal这通常是 vi 的默认版本。如果你这样做:

rpm -qa | grep vim

而你看到vim-minimal却没有vim-enhanced,那么你必须安装vim-enhanced。这将为您提供视觉块模式以及许多其他附加功能。

于 2014-04-01T20:19:59.797 回答
2

您在 Windows 上使用 gvim 描述的行为非常出乎意料。我希望插入的文本只出现在第一行之前。如果您确实想在当前选定的可视块的所有行之前插入一个字符串,那么很自然的做法是:

:s/^/inserted text

(注意当你输入 时:,vim 会自动设置地址:'<,'>,所以实际的命令是:'<,'>s/^/inserted text

于 2013-03-09T05:40:06.353 回答