Як я можу використовувати ярлики Readline у ​​командному рядку vim?


15

Редагуючи команду Vim, я хотів би використовувати ті самі ярлики, що й у Bash та будь-який інший REPL: M-bповернути слово назад, M-Backspaceвидалити попереднє слово, M-uперетворити слово у великі регістри, C-kскоротити до кінця рядок і т. д. Мені вдалося налаштувати деякі команди, використовуючи :cmap, але не всі.

Чи є плагін або налаштування, що це забезпечує?

Я знаю про це cedit, але мені здається громіздким, коли все, що мені потрібно - це ввести швидку команду.


Waitaminute, ви кажете, що ви використовуєте Bash в режимі Emacs, хоча ви використовуєте Vim як редактор?
Кайл Странд

3
@KyleStrand Я ще не бачив когось, хто використовував Bash у режимі vi. Здається, більшість переваг модальних редакторів зникають, коли ви обмежені лише одним рядком.
Міхай

1
Цікаво. Я коли-небудь використовую Bash у режимі Vi, хоча здається, що режим Emacs підтримує деякі речі, яких у режимі Vi немає. Мені просто трапляється знати клавіатурні вкладиші Vi, залишаючись майже повністю обізнаними про прив’язки Emacs, і я ніколи не думав, що це досить нагальна проблема, щоб дізнатися про типові налаштування.
Кайл Странд

Відповіді:


11

Чи є плагін або налаштування, що це забезпечує?

Так, плагін rsi.vim :

Особливості

  • Зображення читання рядків надаються у режимі вставки та командному рядку. Нормальний режим навмисно опущений.
  • Важливі прив'язки клавіш Vim (наприклад, завершення режиму вставки Cn та Cp) не перекриваються.
  • Мета прив'язки ключів забезпечуються таким чином, що працює в терміналі без небезпеки перезавантаження втечі.
  • Cd, Ce та Cf відображаються таким чином, що вони виконують поведінку Readline в середині рядка та поведінку Vim в кінці. (Подумай над цим.)

1

Чи є плагін або налаштування, що це забезпечує?

Є також readline.vim .

Це новіший плагін, який фокусується виключно на командному рядку. Він також реалізує більшу підмножину ярликів Readline і має за мету реалізувати кожен ярлик точно так само, як у Readline.

Що відрізняє цей плагін від аналогічних плагінів, це те, що він реалізує більший підмножина відображень Readline, і що він робить кращу роботу, імітуючи поведінку Readline для кожної команди.

Команди руху та видалення слів мають різну поведінку між Vim та Readline. Найбільша відмінність полягає в тому, що в Readline розділові знаки завжди пропускаються під час пошуку межі слова. Ще одна відмінність полягає в тому, що _ (підкреслення) трактується як роздільник слова. Цей плагін реалізує поведінку Readline для команд руху та видалення слів.


1
Я здивований, що хтось шукає подібні речі. Настільки простий у використанні режим vim readline, що я думаю, що кожен звичайний користувач vim зробив би це. (Я не знаходжу зайвих команд в режимі emacs все, що є переконливим.) Але, можливо, "як" - це не так широко відомо (... і, можливо, мені пощастило, що найперший башерк, який я побачив / скопіював ... набагато більше років тому, ніж я хочу визнати ... мав set -o vim:)
B Layer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.