Skip to content

Настройка консоли FreeBSD для комфортной работы

31/05/2010

Мне часто приходится общаться по ssh с одним FreeBSD-сервером, на котором была неправильно сконфигурирована консоль (кроме того, там отсутствовал и до сих пор отсутствует vim :)) Сегодня мне это надоело, и т.к. с общение с этим сервером предстоит ещё длительное, я решил что нибудь сделать с консолью.

Итак, начальный список претензий к серверу выглядел так:

  • В консоли не работают кнопки Home и End (просто печатают ~)
  • В консоли не работают сочетания Ctrl+влево, Ctrl+вправо для перемещения по словам
  • В vi нет подсветки синтаксиса и вообще цвета
  • В vi странно работают кнопки Backspace и Delete
  • Цвета ls по умолчанию неудачные (тёмно-синий практически не виден)

Из препятствий было отсутствие привычного vim и рутового доступа. Вместо vim пришлось пользоваться vi (вполне сносно получилось). Отсутствие рута означало невозможность установки «лучших» пакетов типа vim или gnuls.

Клавиши

Я помнил что где то читал о подобных проблемах с клавишами: они получаются когда тип терминала указан неправильно. Покопавшись я узнал что у меня с этим вроде порядок — терминалом является xterm. Стало быть, что то не так с его внутренней настройкой. Я запостил вопрос на Superuser и в то же время принялся искать самостоятельно. На вот этом сайте нашёл решение. Надо было создать файл ~/.inputrc и вписать в него следующее:

"\e[3~": delete-char
# this is actually equivalent to "\C-?": delete-char
# VT
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# kvt
"\e[H":beginning-of-line
"\e[F":end-of-line
# rxvt and konsole (i.e. the KDE-app...)
"\e[7~":beginning-of-line
"\e[8~":end-of-line

Это помогло разобраться с home/end в bash, теперь они работали как надо. После непродолжительных поисков нашёл решение для Ctrl+стрелок. В том же файле:

"\e[1;5C": forward-word     # Ctrl+right  => forward word
"\e[1;5D": backward-word    # Ctrl+left   => backward word

Цвета в LS

Цвета, используемые ls, задаются переменной окружения LSCOLORS. Формат у неё вроде такого: di=1:fi=0:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=35:*.rpm=90, поэтому я просто нашёл готовую схему, более-менее напоминающую стандартную раскраску ls в Debian:

CLICOLOR="YES";    export CLICOLOR
LSCOLORS="ExGxFxdxCxDxDxhbadExEx";    export LSCOLORS

Это отправилось в ~/.profile. Теперь не нужно было ломать глаза, чтобы понять что за файлы я вижу в ls.

С подсветкой синтаксиса в vi ничего не получилось — судя по всему, она поддерживается только в vim начиная с определённой версии. Также осталось странное поведение backspace/delete в режиме редактирования (иногда). Ну да ладно, и так пока сойдёт.

10 комментариев
  1. Ewg permalink

    Скрины забыли

    • Скрины чего – консоли? ) Не вижу смысла, честно говоря. Ну поменялся один цвет на другой.

  2. Я всегда использую Ctrl+A, Ctrl+E вместо Home/End

    • Ну это дело привычки, полагаю ) У меня Ctrl+A ассоциируется исключительно с «выделить всё» )

  3. ainu permalink

    Спасибо, вечно на неё плевался…
    У меня, кстати, в vi есть подсветка (FreeBSD 8), всегда сама стояла.

  4. Простите, но судя по выводу команды read, «\e[1;5C» и «\e[1;5D» — это alt+left/right.
    кстати с помошью этой камнды и $ man bash — можно неплохо «заточить» консоль под себя.

    • За read спасибо🙂 Правда у меня она показывает 1;5C для Ctrl+стрелки как раз, для Alt+стрелки комбинации начинаются с 1;3.

      • Хм, видимо эти эскейп-последовательности зависят от эмулятора терминала. У меня в urxvt — так, у вас — по другому. Так ведь еще придется под разные терминалы бинды предусматривать…

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: