web-dev-qa-db-ja.com

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を実行して、パネルを非表示にし、シェルで作業します。私の場合:

  1. Ctrl + Oはパネルを非表示にします
  2. キーを押すとパネルが元に戻ります

それを修正する方法もありますか?

ありがとうございました!

4
Mamut

OK。解決策はばかげていて単純だったことがわかりました。重要なのは—mcにインタラクティブなシェルがないことです。

答えはここにあります: http://www.ibiblio.org/mc/FAQ

6.6 Ctrl-Oを使用すると、サブシェルが取得されません。これを修正するにはどうすればよいですか?

サブシェルとして使用できるのは、bash、tcsh、およびzshのみです。これらのシェルの1つをデフォルトのシェルとして使用すると、GNU MidnightCommanderでサブシェルとして使用されます。

そこで、シェルを変更することにしました。

> 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に注意してください。これは、シェルが変更されたことを意味します。

ログアウトしてから再度ログインした後—出来上がり、すべてが機能します!

3
Mamut

最初の問題の理由は、/ bin/shをシェルとして使用することです。これがbashにリンクされている場合でも、完了は機能しません。

シェルをbashに変更します:chsh -s/bin/bashそして再ログインします。

0
j13r

あなたは.bashrccompgenを使用する/etc/bash_completionを調達していますが、cdviなどのいくつかの既知のコマンドの補完を生成しますが、nano

何らかの理由で、compgenはホームフォルダ内のファイルとディレクトリを完成させるのに問題があります。これを修正する簡単なオプションの1つは、.bashrcの次の行をコメントアウトすることです。

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
 fi
0
lazy1

ホームディレクトリに問題があるようです。 ls ~を実行して、何が起きているのか教えていただけますか?

0
Rory