CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
24.10.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Окружение :: shell

Настройка bash: дополнительные возможности табулятора

Как сделать, чтобы bash при нажатии tab не выводил список возможных вариантов, а сразу подставлял их в командную строку?

Надеюсь, всем знакомо поведение bash по умолчанию, когда после ввода, например

$ pin

и нажатия клавиши tab выводится список возможных вариантов и вновь повторяется командная строка с набранными тремя буквами команды:

$ pin
pinfo ping ping6 pinky
$ pin

У вас список может отличаться.

А было бы совсем неплохо, если бы после нажатия tab в командной строке появилась бы первая из команд (pinfo), повторное нажатие tab заменило бы pinfo на ping, третье - на ping6 и т.д. Замечу здесь, что таким поведением по умолчанию обладает, например, zsh - правда, там первое нажатие табулятора также дает список вариантов, но со второго начинается их перебор. Научить bash данному "трюку" не просто, а очень просто :)

Вариант 1 - для всех пользователей.

Войдя в систему как суперпользователь root, отредактируйте файл /etc/inputrc, добавив в его конце строку:

TAB: menu-complete

Вариант 2 - для одного пользователя.

Если по каким-то причинам вы не можете/не хотите вносить изменения в общесистемный файл /etc/inputrc, можно вышеописанные манипуляции проделать с файлом ~/.inputrc. если такого файла нет в вашем домашнем каталоге - смело создавайте его. Например, таким образом:

$ echo 'TAB: menu-complete' > ~/.inputrc

Следует заметить, что обычно программой readline (которая, собственно, и обрабатывает ввод в командной строке) прочитываются оба инициализационных файла (и /etc/inputrc и ~/.inputrc), но только если не определена переменная окружения INPUTRC. В этом случае считывается только тот файл, на который она (переменная) указывает. узнать, определена ли эта переменная, и что в ней находится, можно с помощью команды

$ echo $INPUTRC

Если вы не администратор системы, а рядовой пользователь (и не имеете возможности получить привилегии root), а администратором установлено значение для INPUTRC, например /etc/inputrc, то можно поступить следующим способом:

отредактируйте ~/.inputrc как описано выше. в конце файла ~/.bash_profile добавьте строку

unset INPUTRC

Есть решение и обратной задачи: чтобы список вариантов выводился по первому же нажатию табулятора, а не по второму: добавить в /etc/inputrc или ~/.inputrc сторку

set show-all-if-ambiguous On

Кстати, при наличии этой строки можно включить еще и такой полезный параметр, как

glob-complete-word

привязанный по умолчанию к комбинации Alt+G. Он позволяет выводить список вариантов по шаблонам типа

$ ls /usr/*o

После этого нажатие упомянутой комбинации дает список всех подкаталогов, содержащих в своем имени символ o:

doc info local

И еще интересный параметр -

print-completions-horizontally

Если он включен (значение On), то список вариантов выводится отсортированным сначала по горизонтали, а потом уже по вертикали, что при большом списке может быть удобнее.




Комментарии

Vertigo, Thu Jun 18 02:20:21 2009:
2 аноним

Гномовый терминал хранит настройки в реестре гнома. Можно полазить по нему в этом направлении: /apps/gnome-terminal/profiles/Default
Сам реестр редактировать Gnome Configuration Editor - он где-то в меню должен быть. А если хочется быстрого решения, можно попробовать просто весь реестр рута грохнуть, чтобы он заново пересоздался. Он должен жить в /root/.gconf
Хотя я всё это не проверял - гнома у меня нет )
аноним, Wed Jun 17 22:10:05 2009:
Может кто ответит, у меня в рутовском гном-терминале (дебиан) "вылетели" все настройки вида этого терминала и не сохраняются как бы не настраивал. Окно настройки вообще не активно. Получаю следующее сообщение: "Произошла ошибка при загрузке или сохранении конфигурационной информации для gnome-terminal. Некоторые из установок могут не функционировать правильно". Где их искать эти настройки и из-за чего это могло произойти. Заранее благодарен.
аноним, Wed Sep 3 12:04:08 2008:
Хорошо

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
Можете узнать сколько стоит доставка бетона по Брянску.
24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds