【问题标题】:Vim called from Git Bash: visual block prepend does not get applied to all lines从 Git Bash 调用的 Vim:视觉块前置不会应用于所有行
【发布时间】:2019-03-17 09:15:18
【问题描述】:

我已经阅读了很多关于 Vim 可视块功能的文章/文档(例如 prepend not working),但是,我仍然无法将可视块前置操作应用于多行 m 使用从 Git Bash 终端调用的 Vim。如果我使用的是 Windows 的 cmd 或 Windows Power Shell,它工作得很好。

需要明确的是,在通过 Git Bash 版本 2.16.windows.1 环境创建的 vim 缓冲区中,我执行以下步骤:

  1. 按 CTRL+V(结果是显示在底部的文本“VISUAL BLOCK”)
  2. 突出显示多行(仅显示每行的第一个字符)
  3. 按 SHIFT+I(结果是“INSERT”显示在底部)
  4. 键入“#”字符(结果是“#”被写入第一行/原始行)
  5. 按ESC(结果我又回到了正常模式)

请注意,只有一行收到了前缀字符。如果我从 cmd 或 powershell 执行相同的步骤,则前缀字符将应用于所有选定的行。

有解决办法吗?这是一个已知的 Vim 错误吗?还是 Git 以某种方式干扰了 Vim 功能?

【问题讨论】:

    标签: vim git-bash


    【解决方案1】:

    您使用的 vim 似乎是随 git-bash 一起安装的 vim,因为 vim 的工作方式与您在 powershell 和 cmd 提示符中所期望的一样。

    按照此处的步骤,查看将 vim 版本更改为您自己的版本是否会使可视块前置功能正常工作。 https://superuser.com/questions/423532/how-do-i-use-installed-vim-in-git-bash-instead-of-the-one-that-came-with-git

    来自“没关系”的最佳答案:

    默认情况下,Git 从 Git\bin\vim 运行 vim。这实际上是一个包含可执行文件本身路径的脚本:

    #!/bin/sh
    exec /share/vim/vim73/vim "$@"
    

    因此,您可以编辑此文件以指向您的 Git 位置。

    可以在 Git\etc\gitconfig 中覆盖默认编辑器:

    [core]
    editor = path_to_your_editor
    

    我希望这会有所帮助!

    【讨论】:

    • 我刚刚注意到添加 'C:\Program Files (x86)\Vim\vim81\vim.exe' 作为我的 path_to_editor 使我的 .gitconfig 文件无效并且我的所有 git 命令都已被禁用。您是否碰巧知道在此文件中指定有效路径的方法?
    • 我继续重命名了 Git 的 vim 文件夹,并将编辑器变量设置回只是 'vim',这样 .gitconfig 文件才有效,并且 Git 会调用我的 PATH 变量中列出的 vim 二进制文件。当我调用 vim 时,Git Bash 报告了一些错误,但一切仍然按预期工作(据我所知,完整的 vim8.1 和 Git 功能)。
    猜你喜欢
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2013-02-24
    • 2019-12-17
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多