Конфигурация режима Bash vi по умолчанию для командного режима


14

Можно ли настроить режим bash vi так, чтобы изначально он находился в командном режиме, а не в режиме вставки ? Я считаю, что мне приходится Escслишком сильно давить . Кажется, что есть возможность указать это в zsh, но я не нашел способ сделать это в bash / readline.

Ответы:


2

Я не думаю, что это возможно, используя стандартную библиотеку GNU Readline .

Тем не менее, вы можете использовать xdotool для простого взлома для достижения того же эффекта. Присоединение к вашей команде .bashrc, имитирующей Escapeнажатие клавиш, гарантирует, что ваш термин открывается в командном режиме:

xdotool key Escape

Возможно, вы захотите использовать небольшую задержку с --delayпереключателем, чтобы он не мог замаскировать ваше приглашение ...

Обратите внимание, что это может вызвать большее разочарование, чем вы ожидаете: терминалы предназначены для приема ввода; нарушение этого (хотя бы немного) может не оказаться такой хорошей идеей ...


1

Я забираю это назад, это не работает с движением курсора. Это работает, но с забавным поведением, если вы уберете их:PS1="$PS1 ^[


Измените ваше PS1приглашение:

PS1="test $ \[^[[s^[^[[u\]"

Где ^[буквальный побег ( Ctrl+ V Esc).

Самостоятельный выход в середине переходит в командный режим, ^[[sа ^[[uэкранирование и сохраняет и восстанавливает позицию курсора; без этого я обнаружил какое-то забавное поведение.



-1

пытаться set +o vi

set -o vi снова перейдет в режим редактирования.

http://tldp.org/LDP/abs/html/options.html


Это не работает: он отключает режим vi ...
jasonwryan

да, я пытался Правильно. Я могу подумать об этом - используя vim, измените cmap (ссылка: справка по переключению режимов в vim) для Escключа. Эквивалентное отображение по умолчанию для EscisCtrl + ]
Nikhil Mulley

На моем ksh88 тоже не работает.
Рахму
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.