LinuxForum.Fans
Тема

Консоль. Ввод длинных команд в Vim

Автор: SamuelLinux 3 сообщений 1382 просмотров
#164344

Здравствуйте.

Как вводить длинные команды в командной оболочке посредством редактора Vim?

Спасибо.

Debian GNU/Linux 6.0.1;

Bash 4.1.5.

#164346

Есть команда `fc`, которая запускает Vim с предыдущей введенной командой. Мне нужно что-то вроде этого, только Vim должен запускаться «пустым».

#165565

Разобрался с задачей.

Для ввода команд посредством текстового редактора необходимо в эмуляторе терминала, либо в «голой» консоли набрать комбинацию 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'ом.

Войдите или зарегистрируйтесь, чтобы ответить.