#bash #vim #command-line
Вопрос:
https://www.gnu.org/software/bash/manual/html_node/Readline-vi-Mode.html сказал, что мы могли set -o vi
бы использовать режим vi вместо режима emacs для редактирования командной строки.
И help: ex-edit-index
sais
c_CTRL-P CTRL-P after using 'wildchar' with multiple matches:
go to previous match, otherwise: recall older
command-line from history.
Однако, когда я нажимаю CTRL-P
, я только что получил ^P
Могу ли я узнать, почему?
Комментарии:
1. Да, я уверен, что использую bash $ ps -p $$ PID TTY TIME CMD 96846 ttys016 0:00.02 -bash
Ответ №1:
«Режим vi» Readline не является ни vi, ни Vim. Это частичная эмуляция vi, включенная в контекст командной строки.
То, на что <C-p>
вы ссылаетесь, является командой Vim, поэтому нет никаких оснований ожидать, что она что-либо сделает в этом контексте. Документация Vim в этом случае совершенно не имеет значения.
Найдите Vim Mode bindings
в $ man readline
для фактических привязок, имеющихся в вашем распоряжении в этом «режиме».
Комментарии:
1.
man readline
дает мнеNo manual entry for readline
2. Тогда вы не используете readline, что означает, что вы не используете bash и что ссылаться на руководство по bash или руководство по readline совершенно бессмысленно. Или ваша система по какой-то причине сломана, и вам нужно подумать о более насущных вещах, чем включение режима vi в readline.
3. Я не уверен, почему я продолжал получать отрицательное голосование. Я использую bash. Набрав текст
man readline
, я получил тот же результат на mac и centosNo manual entry for readline
, вот и все4. это моя вершина
info
, просто нет вызова строки чтения * ptx: (coreutils)ptx. Создайте переставленные индексы. * pwd: (coreutils) вызов pwd. Распечатать рабочий каталог. * readlink: (coreutils) вызов readlink. Печать ссылки на символическую ссылку. * вызов realpath: (coreutils) вызов realpath. Печать разрешенных имен файлов. * вызов rm: (coreutils) rm. Удалите файлы. * rmdir: (coreutils) вызов rmdir. Удалите пустые каталоги. * runcon: (coreutils) вызов runcon. Запуск в указанном SELinux CTX.5. С чего начать? Требуемый режим vi является функцией readline, а readline используется в bash для обработки ввода-вывода командной строки. Если по какой-то причине у вас нет readline, то у вас не может быть нужной функции. Если вам нужна эта функция, исправьте свою систему.