【问题标题】:MSysGit Bash - how to enable Ctrl+Left / Right arrows?MSysGit Bash - 如何启用 Ctrl+左/右箭头?
【发布时间】:2011-05-04 22:27:11
【问题描述】:

有没有办法在安装的 Bash 控制台中启用 Ctrl + / 键盘快捷键(转到上一个/下一个单词)使用 MSysGit?

【问题讨论】:

    标签: bash readline msysgit


    【解决方案1】:

    在 Bash 提示符下,按 Ctrl-v Ctrl-左箭头Ctrl -v Ctrl-Right-Arrow 并记下输出。您应该会看到类似:^[OD^[OC 或类似内容。将以下行添加到您的~/.inputrc

    "\eOC": forward-word
    "\eOD": backward-word
    

    您将在其中将 \e 替换为转义 (^[) 和您获得的其余字符(ODOC 或类似字符)。

    要重新读取文件并立即激活更改,请按 Ctrl-x Ctrl-r.

    【讨论】:

      【解决方案2】:

      我在 AskUbuntu 上找到了 this answer by tan,在这些答案都没有解决之后,这对我有用。我会在这里转发。

      您的~/.inputrc/etc/inputrc 中有什么内容?我认为,让这些键正常工作的最低要求是:

      # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
      "\e[1;5C": forward-word
      "\e[1;5D": backward-word
      "\e[5C": forward-word
      "\e[5D": backward-word
      "\e\e[C": forward-word
      "\e\e[D": backward-word
      

      如果您在/etc/inputrc 中有这些,文件需要从~/.inputrc 中包含,因此请检查它是否包含以下行:

      $include /etc/inputrc
      

      【讨论】:

      • 你用$include /etc/inputrc 完全搞定了。我在~/.inputrc 中创建了一个键盘快捷键(只是为了好玩),从那以后就被搞砸了,因为在我家创建文件时默认跳过了/etc/inputrc。来自未来的感谢。
      • 这也适用于 MINGW64 客户端(Windows 版 Git 中的“Git Bash”)!
      • 这也适用于 macOS(Mojave,不知道算不算)终端,谢谢!
      【解决方案3】:

      没有真正回答您的问题,但您可以尝试 ALT-FALT-B 代替。

      【讨论】:

        【解决方案4】:

        这在 Windows 7 中对我有用:

        将此添加到~/.inputrc 然后重新启动控制台,它应该适合您。

        这样你就可以使用

        CTRL+CTRL+

        或者

        ALT+ALT+

        ## Windows msysgit
        ## Alt + right/left
        "\e\e[C": forward-word     ### Alt + right
        "\e\e[D": backward-word    ### Alt + left
        ## Ctrl + right/left
        "\e[C": forward-word       ### Ctrl + right
        "\e[D": backward-word      ### Ctrl + left
        

        【讨论】:

        • 指向您指定 windows 7 解决方案
        【解决方案5】:

        添加到我的 ~/.inputrc

        "\e[1;5C": forward-word
        "\e[1;5D": backward-word
        

        对我来说已经足够了。

        【讨论】:

          【解决方案6】:

          对于那些对为什么它不适用于 ctrl+左箭头ctrl+右箭头.

          这是因为 Windows 7、可能是其他系统和 msys 的错误导致无法识别 ctrl 键(至少对我而言)。

          要检查您是否处于相同的情况,请按照@Dennis 所说的做:

          • 打开终端
          • 确保 ctrl+v 没有被重新映射到其他东西
          • ctrl+v,然后按ctrl+左键查看按键顺序
          • 查看输出

          重复只按左箭头

          如果它们相同,欢迎来到我的世界。您现在可以使用Autohotkey 重新映射密钥或使用更新的windows git bash

          【讨论】:

          • 我如何“确保 ctrl+v 没有被重新映射到其他东西”?
          【解决方案7】:

          我编辑了文件 /etc/inputrc:

                sudo gedit /etc/inputrc
          

          并评论以下几行:

                $if term=rxvt
                "\e[8~": end-of-line
                "\eOc": forward-word
                "\eOd": backward-word
                $endif
          

          然后我编辑了文件 ~/.bashrc:

                sudo gedit ~/.bashrc
          

          并在底部添加以下行:

                #### enable Ctrl+Left , Ctrl+Right keybindings:
                bind '"\e[1;5C":forward-word'   # Ctrl+Right
                bind '"\e[1;5D":backward-word'  # Ctrl+Left 
          

          它似乎有效,至少到目前为止,没有副作用。

          (在 Ubuntu GnomeShell Remix 12.04 AMD64 上测试)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-01-19
            • 1970-01-01
            • 2018-07-13
            • 1970-01-01
            • 2022-08-19
            • 2013-07-02
            • 2013-10-21
            • 1970-01-01
            相关资源
            最近更新 更多