Как выйти из редактора Vi одним нажатием клавиши?

Потому что честно

:wq!

просто слишком много, чтобы печатать.

Обратите внимание, что вопрос касается оригинального Vi (скажем, Vi, поставляемого с FreeBSD), а не Vim.


person dolzenko    schedule 22.01.2009    source источник
comment
Разве закрытие редактора одним нажатием клавиши не немного... гм... небезопасно?   -  person Martin Thurau    schedule 22.01.2009
comment
О, что, если вы выберете Enter как эту одну клавишу, тогда весь код будет в одной строке :/ сарказм   -  person Filip Ekberg    schedule 22.01.2009
comment
Комментарий Филипа должен быть забавным, но он не работает... вы можете очень эффективно использовать Vi, даже не используя Enter в режимах Normal, Visual, Operator-pending или Insert. Только командный режим требует Enter.   -  person ephemient    schedule 28.01.2009


Ответы (7)


Кажется, это работает на старой версии vi для Solaris:

Version SVR4.0, Solaris 2.5.0

$ vi -c "map g ZZ" test

изменить: Кроме того, похоже, это работает:

$ vi -c 'map g :q!^M' test

Где ^M на самом деле, ^V (ctl-v), затем ^M (ctl-m)

person Dan McNevin    schedule 22.01.2009
comment
Да, работает, здорово! На самом деле я уже жалею, что не указал, какую версию я хочу (т.е. с сохранением или без), так есть ли способ поставить символ Enter в отображаемую последовательность? Можно было бы сопоставить g :q!‹Enter›, чтобы выйти без сохранения. - person dolzenko; 22.01.2009
comment
похоже, это тоже работает: $ vi -c 'map g :q!^M' test Где ^M на самом деле, ^V, затем ^M - person Dan McNevin; 22.01.2009

Удерживая нажатой клавишу Shift, дважды нажмите Z.

ZZ (в основном) эквивалентно :wq!.

Если вам действительно нужно решение с одним нажатием клавиши, FreeBSD поставляется с исходным кодом, так что в крайнем случае вы можете изменить его и перекомпилировать. Это немного перебор, но это решит вашу проблему.

person paxdiablo    schedule 22.01.2009
comment
И в назидание Долзенко, ZQ (в основном) эквивалентно :q! Я определенно использую их гораздо чаще, чем :wq/:q. - person ephemient; 28.01.2009

А "ЗЗ"? Он имеет немного другую семантику, чем ":wq!", но также немного короче.

person Daniel Nadasi    schedule 22.01.2009

Сопоставьте свой любимый ключ с :wq! команда.

например поместите это в свой .vimrc:

map <F8> :wq!<CR>

И вуаля.

Изменить: Извините, только vim, пропустил это.

person user34005    schedule 22.01.2009

Работает ли :x на Vi? Хотя в вашем случае, я думаю, это может быть :x!

person user50264    schedule 22.01.2009
comment
вам не нужен последний!, вам просто нужно нажать ESC, ввести: wq и нажать Enter. - person Filip Ekberg; 22.01.2009

Если вы используете gvim, вы можете закрыть его с помощью ALT+F4. Две клавиши, но одно нажатие.

Если вы используете vi в собственном xterm, ALT+F4 должен закрыть xterm, убивая и vi.

person Nathan Fellman    schedule 01.06.2009

Что не так с проверенным временем?

:x

Это не одно нажатие клавиши, но гораздо меньше, чем :wq! это то, что ваш вопрос, кажется, действительно ищет.

Или это только функция ViM? Мои извинения, если так.

person Lytic    schedule 08.10.2016