在 readline/bash 中使用 vi 模式似乎会中断历史搜索
Using vi mode in readline/bash appears to break history-search
我非常喜欢将 readline 的 history-search-forward
和 history-search-backward
与 bash 一起使用。我的 .inpurc
中有以下内容:
# Scroll through matching history with up and down keys
"\e[A":history-search-backward
"\e[B":history-search-forward
并使用向上和向下键滚动浏览历史记录中的匹配命令。
但是,当我启用 vi 模式时,它似乎停止了历史搜索工作。我这样配置了 vi 模式(也在 .inputrc
中):
# Enable vi mode
set editing-mode vi
set keymap vi-command
# insert/command mode indicator:
set show-mode-in-prompt on
# Indicator formatting in prompt:
set vi-cmd-mode-string "\e[0;34m[\e[0mC\e[0;34m]\e[0m "
set vi-ins-mode-string "\e[0;34m[\e[0mI\e[0;34m]\e[0m "
当我从 .inputrc
中删除与 vi 模式相关的行时,历史搜索工作正常。当我把它们放回去时,它坏了。
有没有办法同时启用这两个功能?
我正在使用通过自制程序在 OSX Sierra 上安装的 GNU Bash 4.4.12。
我在 vi-insert
模式下工作:
set editing-mode vi
set keymap vi-insert
"\e[A":history-search-backward
"\e[B":history-search-forward
或者你可以在bashrc
中这样写:
set -o vi
bind -m vi-insert '"\e[A":history-search-backward'
bind -m vi-insert '"\e[B":history-search-forward'
我非常喜欢将 readline 的 history-search-forward
和 history-search-backward
与 bash 一起使用。我的 .inpurc
中有以下内容:
# Scroll through matching history with up and down keys
"\e[A":history-search-backward
"\e[B":history-search-forward
并使用向上和向下键滚动浏览历史记录中的匹配命令。
但是,当我启用 vi 模式时,它似乎停止了历史搜索工作。我这样配置了 vi 模式(也在 .inputrc
中):
# Enable vi mode
set editing-mode vi
set keymap vi-command
# insert/command mode indicator:
set show-mode-in-prompt on
# Indicator formatting in prompt:
set vi-cmd-mode-string "\e[0;34m[\e[0mC\e[0;34m]\e[0m "
set vi-ins-mode-string "\e[0;34m[\e[0mI\e[0;34m]\e[0m "
当我从 .inputrc
中删除与 vi 模式相关的行时,历史搜索工作正常。当我把它们放回去时,它坏了。
有没有办法同时启用这两个功能?
我正在使用通过自制程序在 OSX Sierra 上安装的 GNU Bash 4.4.12。
我在 vi-insert
模式下工作:
set editing-mode vi
set keymap vi-insert
"\e[A":history-search-backward
"\e[B":history-search-forward
或者你可以在bashrc
中这样写:
set -o vi
bind -m vi-insert '"\e[A":history-search-backward'
bind -m vi-insert '"\e[B":history-search-forward'