Bash
為什麼 CTRL-r 在 OS X 上的行為怪異(僅顯示命令的一部分)
Ctrl
+r
是一個很棒的小工具,用於搜尋您.bash_history
以前執行的命令。然而,當我在我的 OS X Terminal.app 中使用它時,我看到了奇怪的行為,我想知道是否有其他人看到同樣的事情或知道如何修復它。
Ctrl
+r
- 輸入類似的東西
find
- 哦,酷,看……這是我想要的命令
find . -exec grep -q "hello world" '{}' \; -print
- 我想執行該命令,但將 hello world 更改為其他內容。
- 所以我打
←
或→
- 現在命令在命令行上是 SORTA,但它總是看起來像命令的某個截斷版本,像這樣:
-q "blog_posts_by" '{}' \; -print
,整個命令都在那裡,我可以使用游標鍵在行上移動,但不是全部它被列印出來。行上顯示的內容與終端實際認為我正在編輯的內容之間存在脫節。有誰知道為什麼會發生這種情況?在網上搜尋並不是一件容易的事。
您的提示中可能有未正確分隔的顏色的轉義序列。它們需要包含在
\[
和中\]
。PS1='\[\033[1;36m\]\u\[\033[0m\]@\[\033[1;34m\]\h\[\033[0m\]\$ `
非列印字元序列的長度不包含在提示符的長度中,當它們被包圍時,需要計算先前命令的位置以便在它們換行時正確顯示。
這可能是由於在終端上配置轉義鍵的方式,我通常做的是使用 iTerm 或 Terminal.app 上的左箭頭或右箭頭,因為我不喜歡立即返回,這對你有用嗎?