Здравствуйте.
Как вводить длинные команды в командной оболочке посредством редактора Vim?
Спасибо.
Debian GNU/Linux 6.0.1;
Bash 4.1.5.
Консоль. Ввод длинных команд в Vim
Есть команда `fc`, которая запускает Vim с предыдущей введенной командой. Мне нужно что-то вроде этого, только Vim должен запускаться «пустым».
Разобрался с задачей.
Для ввода команд посредством текстового редактора необходимо в эмуляторе терминала, либо в «голой» консоли набрать комбинацию Ctrl+x,Ctrl+e. После набора откроется окно редактора, позволяющее вводить команды. По завершению их набора и закрытию текстового редактора, все введенные команды будут выполнены.
Для задания текстового редактора по умолчанию, следует использовать переменные $EDITOR или $VISUAL.
Например:
[console]
$ EDITOR=nano
# Ctrl+x,Ctrl+e
# Откроется Nano
$ VISUAL=vim
# Ctrl+x,Ctrl+e
# Откроется Vim
[/console]
Разумеется, что для того, чтобы эта настройка работала при каждом запуске терминала необходимо добавить в файл "~/.bashrc" строку "export EDITOR=<ваш_редактор>"
Для задания комбинации клавиш по умодчанию, необходимо создать файл ~/.inputrc и внести в него конфигурационную декларацию "<комбинация>": edit-and-execute-command.
Например:
[console]
# вызвать текстовый редактор для ввода команд по нажатию ESC-a
"\ea": edit-and-execute-command
[/console]
В декларации можно также использовать значения "\C-<клавиша>" для определения клавиш с зажатым Control'ом и "\M-<клавиша>" для указания клавиш с зажатой метаклавишей.
Можно задавать последовательности из нескольких клавиш. Например, декларация, содержащая "\eedit" запустит текстовый редактор при нажатии ESC и последующем наборе слова "edit", а "\C-e\C-d" откроет редактор при последовательном нажатии клавиш "e" и "d" с зажатым Control'ом.