【问题标题】:prepend to visual block not working in vim在 vim 中不工作的视觉块之前
【发布时间】:2013-03-08 21:40:20
【问题描述】:

我真的很喜欢在 windows 中使用 Ctrl-V (Ctrl-Q 的想法) 来修改视觉块。该技术在这里解释:In Vim how do I effectively insert the same characters across multiple lines?

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

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

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

【问题讨论】:

  • 如果你以vim --noplugin开头会发生什么?还有vim -u NONE -N?
  • 使用 --noplugin 没有任何变化。使用 vim -u NONE -N 我的语法高亮消失了,但视觉块技术似乎仍然不起作用。
  • 1.将 Vim 更新到更新的版本。 2. 在不同平台上比较 Vim 时,请确保两者版本相同且设置相同。 3. 您是否批量导入了 Windows 配置? 4. 你能告诉我们你的配置吗?
  • 我在linux中的.vimrc文件是:set number, set hlsearch, set ai, set tabstop=4
  • 遇到了同样的问题。我通常使用 shift-v 来选择行,而从不使用 Ctrl-v 来选择块。这似乎只适用于选择块,这是我出错的地方。

标签: linux vim block


【解决方案1】:

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

:echo has('visualextra')

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

:version

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

vim --version | grep visualextra

【讨论】:

  • 我同时有visualextra和这个问题?
  • @LittleBigBot 关注我的问题下的评论线程,看看是否有帮助。
【解决方案2】:

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

rpm -qa | grep vim

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

【讨论】:

    【解决方案3】:

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

    :s/^/inserted text
    

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

    【讨论】:

    • 我应该提到问题孩子是我的共享主机提供商在 linux 上的 vim。
    猜你喜欢
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多