我發現了一個命令幾個月前,使我的bash歷史自動完成上按向上箭頭時什麼是已經上線:如何更改bash歷史記錄完成以完成已有的內容?
$ vim fi
按↑
$ vim file.py
我我想在我的新電腦上設置它,因爲它在保存大量歷史記錄時節省了大量時間。問題是,我不能爲了我的生活記住它被提及的地方,並且通過閱讀無盡的bash參考資料和教程不幸也沒有幫助。
有人知道命令嗎?
我發現了一個命令幾個月前,使我的bash歷史自動完成上按向上箭頭時什麼是已經上線:如何更改bash歷史記錄完成以完成已有的內容?
$ vim fi
按↑
$ vim file.py
我我想在我的新電腦上設置它,因爲它在保存大量歷史記錄時節省了大量時間。問題是,我不能爲了我的生活記住它被提及的地方,並且通過閱讀無盡的bash參考資料和教程不幸也沒有幫助。
有人知道命令嗎?
大概就像
# ~/.inputrc "\e[A": history-search-backward "\e[B": history-search-forward
或者等價地,
# ~/.bashrc if [[ $- == *i* ]] then bind '"\e[A": history-search-backward' bind '"\e[B": history-search-forward' fi
(if語句檢查交互模式)
通常情況下,上下都綁定到的ReadLine功能previous-history
和分別爲。我寧願將PgUp/PgDn綁定到這些函數,而不是取代Up/Down的正常操作。
# ~/.inputrc "\e[5~": history-search-backward "\e[6~": history-search-forward
修改~/.inputrc
,重新啓動您的外殼或使用按Ctrl +X,按Ctrl +[R告訴它之後重新讀取~/.inputrc
。
順便說一句,如果你正在尋找相關文件:
Bash使用The GNU Readline Library的shell提示符和歷史。
您可能需要啓用bash完成。
檢查
/etc/profile
/etc/bash.bashrc
~/.bashrc
,看是否有上述文件的源/etc/bash_completion
的。即
. /etc/bash_completion
如果/etc/bash___completion
沒有被任何你需要將它添加到其中的一個上述文件的來源。
如果您希望機器上的所有bash用戶都有bash完成,請從/etc/bash.bashrc
獲取源/etc/bash_completion
。
如果只是你想要bash完成,請從你的~/.bashrc
來源/etc/bash_completion
。
隨着ohmyzsh,在你的.zshrc使用:
bindkey '^[OA' history-search-backward
bindkey '^[OB' history-search-forward
重裝,source ~/.zshrc
或重新啓動終端。
更新.inputrc文件有以下幾點:
"\C-[OA": history-search-backward
"\C-[[A": history-search-backward
"\C-[OB": history-search-forward
"\C-[[B": history-search-forward
如果set enable-keypad on
在你~/.inputrc
一些ST(suckless simple terminal)用戶可能,要知道,箭頭鍵在鍵盤模式。 Ubuntu的附帶這個有用/usr/share/doc/bash/inputrc.arrows
:
# This file controls the behaviour of line input editing for
# programs that use the Gnu Readline library.
#
# Arrow keys in keypad mode
#
"\C-[OD" backward-char
"\C-[OC" forward-char
"\C-[OA" previous-history
"\C-[OB" next-history
#
# Arrow keys in ANSI mode
#
"\C-[[D" backward-char
"\C-[[C" forward-char
"\C-[[A" previous-history
"\C-[[B" next-history
#
# Arrow keys in 8 bit keypad mode
#
"\C-M-OD" backward-char
"\C-M-OC" forward-char
"\C-M-OA" previous-history
"\C-M-OB" next-history
#
# Arrow keys in 8 bit ANSI mode
#
"\C-M-[D" backward-char
"\C-M-[C" forward-char
"\C-M-[A" previous-history
"\C-M-[B" next-history
所以我不知道,如果你需要的所有,但它可能不會傷害到在你的~/.inputrc
:
# Arrow keys in keypad mode
"\C-[OA": history-search-backward
"\C-[OB": history-search-forward
"\C-[OC": forward-char
"\C-[OD": backward-char
# Arrow keys in ANSI mode
"\C-[[A": history-search-backward
"\C-[[B": history-search-forward
"\C-[[C": forward-char
"\C-[[D": backward-char
這也是對同一主題:My cursor keys do not work也是這樣的xterm: special keys
感謝您的回答。這聽起來很熟悉,但不幸的是不適合我。將它放入.inputrc中並不會改變任何內容,並將其放入.bashrc中,以阻止箭頭執行任何操作。有任何想法嗎? – blokkie 2009-06-23 01:31:12
沒關係。 history-complete- *不存在;只有歷史搜索功能存在。謝謝! – blokkie 2009-06-23 01:32:59
啊,我明顯錯誤地列出了前兩個例子......但最後一個是正確的。我會解決這個問題。 – ephemient 2009-06-23 01:34:18