В очень удобной программе построения графиков Gnuplot не работает автодополнение. По крайней мере, в сборке Debian Lenny.
> gnuplot --version gnuplot 4.2 patchlevel 2
Очень непросто набивать полные названия файлов в интерактивном режиме без дополнения по TAB. Конечно, их можно копировать из вывода !ls с помощью мыши, но это весьма неудобно. Судя по всему, причина лежит в том, что gnuplot собран без поддержки readline.
Поскольку из сорцов пересобирать gnuplot не хотелось, надо было найти альтернативный путь. Оказалось, что существует такая замечательная программа rlwrap, которая позволяет связать readline с программами, в которой нет поддержки readline. Таким образом, программы, в которых не реализованы функции автодополнения, истории команд и т.п., начинают обладать таким функционалом.
Устанавливается эта прога в Debian стандартно:
> sudo aptitude install rlwrap
Запуск осуществляется, как следует из мана, таким образом:
> rlwrap [options] command
В нашем случае command есть gnuplot.
Если взглянуть на man-страницу, то следует обратить внимание на опцию -a, —always-readline. Что она делает более или менее ясно из её названия. Значит, будет использоваться readline независимо от настроек command. Для обеспечения автодополнения имён файлов есть опция -c, —complete-filenames.
Таким образом, запустив gnuplot следующим образом:
> rlwrap -a -c gnuplotполучим gnuplot с автодополнением.
Чтобы каждый раз не писать такую команду, имеет смысл сделать алиас, например, записав в файл ~/.bash_aliases:
alias gnuplot='rlwrap -a -c gnuplot'
Также rlwrap позволяет менять размер истории (см. опцию -s, —histsize), исключать из истории дубликаты (см. опцию -D, —history-no-dupes).
Описанное решение нашёл здесь, за что автору большое спасибо!
Копируете статью - поставьте ссылку на оригинал!
Комментариев нет:
Отправить комментарий