Linux

TAB 完成和 mc 問題

  • September 21, 2010
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 中工作。就我而言:

  1. Ctrl + O 隱藏面板
  2. 任何按鍵都會使面板恢復原狀

有沒有辦法解決這個問題?

謝謝!

好的。事實證明,解決方案既愚蠢又簡單。關鍵是——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。這意味著外殼現在已更改。

在我註銷然後重新登錄後——瞧,一切正常!

引用自:https://serverfault.com/questions/47554