Назад | Перейти на главную страницу

Завершение 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. Любое нажатие клавиши возвращает панели обратно

Есть ли способ исправить и это?

Спасибо!

Хорошо. Оказывается, решение было глупым и простым. Ключ был - в mc нет интерактивной оболочки.

Ответ здесь: http://www.ibiblio.org/mc/FAQ

6.6 Когда я использую Ctrl-O, я не получаю подоболочку. Как это исправить?

В качестве подоболочки можно использовать только bash, tcsh и zsh. Используйте одну из этих оболочек в качестве оболочки по умолчанию, и она будет использоваться как подоболочка в GNU Midnight Commander.

Вот и решил сменить оболочку:

> 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

Обратите внимание на / bin / bash в конце файла passwd. Это означает, что оболочка теперь изменена.

После того, как я вышел из системы, а затем снова вошел в систему - вуаля, все работает!

Причина вашей первой проблемы в том, что вы используете / bin / sh в качестве оболочки. Даже когда это связано с bash, завершение не работает.

Измените оболочку на bash: chsh -s / bin / bash и выполните повторный вход.

Вы .bashrc ищет /etc/bash_completion кто использует compgen go сгенерировать завершение для нескольких известных команд (например, cd и vi) но не nano.

По какой-то причине compgen возникла проблема с заполнением файлов и каталогов в вашей домашней папке. Один из быстрых способов исправить это - закомментировать следующие строки в вашем .bashrc.

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

Похоже, что-то не так с вашим домашним каталогом. Вы можете сделать ls ~ и расскажи нам, что случилось?