Ctrl-P не работает в режиме vi редактирования командной строки на терминале mac

#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 и centos No 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, то у вас не может быть нужной функции. Если вам нужна эта функция, исправьте свою систему.