如何設置 shell 為長命令換行?
我連接到 Slackware 伺服器。當命令比膩子視窗的大小長時,該行繼續在同一行中,並且命令的開頭消失了,因為我繼續添加到同一命令,只是在行的開頭放了一個“<”。
當我在 Red Hat 伺服器上工作時,我可以看到整個命令,因為控制台只是根據需要添加行。
我不知道我在哪裡打開自動換行。我可以在哪裡設置 Slackware 伺服器來像我的 Red Hat 伺服器那樣換行?PS:對不起,我的英語。
這可能是因為您正在使用
bash
(或其他使用 readline 的 shell)並且在您的~/.inputrc
(或 global/etc/inputrc
)中set horizontal-scroll-mode On
來自
man readline
:
horizontal-scroll-mode
(Off
)當設置為 時
On
,使 readline 使用單行顯示,當輸入長於螢幕寬度而不是換行時,在單個螢幕行上水平滾動輸入。解決方案:刪除該行(預設設置為
Off
)或將選項顯式設置為Off
:set horizontal-scroll-mode Off
Readline
/etc/inputrc
僅在~/.inputrc
不存在或無法讀取(~/.inputrc
也可以$include /etc/inputrc
)時使用,因此即使存在On
並且/etc/inputrc
您不能或不想更改它,您也可以隨時通過編輯覆蓋設置~/.inputrc
。更改不會自動影響已經執行的 shell。您可以使用重新載入配置
bind -f ~/.inputrc
(請參閱this),或僅更改該設置
bind 'set horizontal-scroll-mode off'
horizontal-scroll-mode
如果TERM
環境變數設置為在 terminfo 數據庫中找不到的終端名稱,readline 庫也將回退;您可以使用命令檢查是否是這種情況infocmp
。請參閱此處了解如何補救這種情況。類似的界面(但
<
在行的右端顯示標記)用於一些不使用 readline 的 pdksh 派生的 shell(特別是mksh
Android 上的預設值)。對於這種情況,沒有可能的解決方法。