Linux
TAB 完成和 mc 問題
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=8.10 DISTRIB_CODENAME=intrepid DISTRIB_DESCRIPTION="Ubuntu 8.10"
這是伺服器版本。
當我 ssh 進入它時,我遇到以下問題:
問題 1
製表符完成的行為很奇怪,以至於無法使用:
> cd ~/<press TAB> -sh: <( compgen -d -- '/home/dmitriid/' ): No such file or directory > vi ~/.<press TAB> <( compgen -d -- '/home/dmitriid/.' ): No such file or directory -sh: <( eval compgen -f -X '*.@(o|so|so.!(conf)|a|rpm|gif|GIF|jp?(e)g| JP?(E)G|mp3|MP3|mp?(e)g|MPG|avi|AVI|asf|ASF|ogg|OGG|class|CLASS)' -- $(quote_readline $cur) ): No such file or directory > nano ~/.<press TAB> ./ .bash_logout .mc/ .viminfo ../ .bashrc .mysql_history .aptitude/ .erlang.cookie .profile .bash_history .gitconfig .ssh/
有沒有辦法解決這個問題?
問題 2
我經常使用mc。我經常使用 Ctrl+O 來隱藏面板並在 shell 中工作。就我而言:
- Ctrl + O 隱藏面板
- 任何按鍵都會使面板恢復原狀
有沒有辦法解決這個問題?
謝謝!
好的。事實證明,解決方案既愚蠢又簡單。關鍵是——mc 中沒有互動式 shell。
答案就在這裡:http ://www.ibiblio.org/mc/FAQ
6.6 當我使用 Ctrl-O 時,我沒有得到子shell。我該如何解決?
只有 bash、tcsh 和 zsh 可以用作子 shell。使用其中一個 shell 作為您的預設 shell,它將在 GNU Midnight Commander 中用作子 shell。
所以我決定換殼:
> which bash /bin/bash > sudo chsh -s /bin/bash my_user_name > grep ^my_user_name /etc/password my_user_name:x:1002:1002::/home/my_user_name:/bin/bash
請注意 passwd 文件末尾的 /bin/bash。這意味著外殼現在已更改。
在我註銷然後重新登錄後——瞧,一切正常!