Питання Як вийти з редактора Vim?


Я застряг і не можу втекти. Він говорить:

"type :quit<Enter> to quit VIM"

Але коли я набираю, що він просто з'являється в тілі об'єкта.


2719
2017-08-06 12:25


походження


Ви просто намагаєтесь вийти з VIM? Якщо це так, натисніть "Escape", а потім введіть ': q' - Pop
Не забувайте про це кишка! Ви повинні набрати :quit а потім натисніть на [ENTER] ключ - Farahmand
Це дуже легко вивчити основи vim, і він побудований прямо в вашу систему. У терміналі типу "vimtutor". Через 25 хвилин ви будете йти швидше, ніж ваш звичайний текстовий редактор! - Mark Robson
Запобігати git commit відправляючи вас в майбутнє: git config --global core.editor="nano" - Tom Kelly
посилання на SO статтю блогів для потомків - Hong Ooi


Відповіді:


Вдарте вихід ключ для введення в "нормальний режим". Тоді ти можеш набрати : щоб увійти в "режим командного рядка". Товста кишка (:) з'явиться в нижній частині екрана, і ви можете ввести одну з наступних команд. Щоб виконати команду, натисніть кнопку Введіть ключ

  • :q  кинути (коротко для :quit)
  • :q! кинути без збереження (короткий для :quit!)
  • :wq написати і вийти
  • :wq! писати і вийти, навіть якщо файл має лише читання дозволу (якщо файл не має права на запис: force write)
  • :x  писати і кинути (подібно до :wq, але тільки напиши, якщо є зміни)
  • :exit написати і вийти (як і :x)
  • :qa кинути всіх (короткий для :quitall)
  • :cq кинути без збереження і зробити Vim повернути ненульову помилку (тобто вийти з помилкою)

Ви також можете вийти з Vim безпосередньо з "Командного режиму", набравши ZZ зберегти і кинути (так само, як :x) або ZQ просто кинути (так само, як :q!) (Зверніть увагу, що справа тут важлива. ZZ і zz не означає те саме.)

Vim має велику допомогу - що ви можете отримати доступ до :help команда - де ви можете знайти відповіді на всі ваші питання та підручник для початківців.


3762
2017-08-06 12:46



Якщо ви не перезаписали ESC або не має дивного відображення у вашому .vimrc, то це обов'язково має бути. Якщо на linux типу xev і переконайтеся, що escape є ключовим типом, який ви отримуєте, коли ви натискаєте біг. - dirvine
Пам'ятайте, що ви не можете використовувати Esc (наприклад, мені, оскільки моя оболонка в загальному терміналі), ви можете використовувати ctrl + c. vim.wikia.com/wiki/Avoid_the_escape_key - dotnetCarpenter
:x == ZZ але :x ! = :wq. :x писати файл iff файл змінився, :wq писати файл завжди (це важливо, наприклад, при використанні inotify) - Hauleth
Чесно кажучи, у мене важче працювати з допомогою системи допомоги vim, ніж за допомогою самого vim, і в основному покладатися на швидкі картки та онлайн документацію. - bgvaughan
якщо у вас немає дозволів на файл, але у вас є дозволи судо :w ! sudo tee % - tvlooy


Перш ніж вводити команду, вдарив вихід ключ. Після того, як ви введете його, натисніть на Повернення підтвердити.

вихід Завершує поточну команду і вимикає Vim до нормальний режим. Тепер, якщо натиснути :, the : з'явиться на дно на екрані Це підтверджує, що ви насправді набираєте команду, а не редагуєте файл.

Більшість команд мають абревіатури, з необов'язковою частиною вкладені в квадратні дужки: c[ommand].

Команди, позначені "*", є Vim-only (не втілюються в Vi).

Safe-quit (не вдається, якщо є незбережені зміни):

  • :q[uit]  Вийти з поточного вікно. Вийти з Vim, якщо це останнє вікно. Це не вдається, коли зміни були внесені в поточний буфер.
  • :qa[ll]* Закрити всі вікна та Vim, якщо не існує деяких буферів, які були змінені.

Підказка-кинути (підказки, якщо є незбережені зміни)

  • :conf[irm] q[uit]* Quit, але дайте швидку, коли є деякі буфери, які були змінені.
  • :conf[irm] xa[ll]* Напишіть всі змінені буфери та вийдіть з Vim. Підкажіть, коли деякі буфери не можуть бути написані.

Напишіть (збережіть) зміни та вийдіть:

  • :wq Напишіть поточний файл (навіть якщо його не було змінено) та завершити роботу. Запис не вдається, коли файл є тільки для читання або буфер не має імені. :wqa[ll]* для всіх вікон.
  • :wq! Той же, але пише навіть файли лише для читання. :wqa[ll]!* для всіх вікон.
  • :x[it], ZZподробиці) Напишіть лише файл якщо це було змінено і кинути :xa[ll]* для всіх вікон.

Відхилити зміни та вийти:

  • :q[uit]!  ZQ* Виходьте без написання, також коли змінюються видимі буфери. Не виходить при зміні схованих буферів.
  • :qa[ll]!*, :quita[ll][!]* Вийти з Vim, всі зміни в буферах (включаючи приховані) втрачаються.

Прес Повернення щоб підтвердити команду.

Ця відповідь не посилається на всі команди Vim і вийти з команд і аргументів. Дійсно, на них посилаються Vim документація.

Vim має велику вбудовану допомогу, тип вихід:helpПовернення щоб його відкрити.

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


140
2018-06-08 13:34





Картинки коштують тисячі Unix-команд і опцій:

Enter image description here

Я роблю це до своїх учнів кожен семестр, і вони, здається, зрозуміють vi після цього.

vi є a машина кінцевого стану з лише трьома штатами.

Після запуску він переходить в режим COMMAND, де ви можете вводити короткі, кілька символьних команд, сліпо. Ви знаєте, що ви робите; це не для любителів.

Якщо ви хочете насправді редагувати текст, вам слід перейти до режиму INSERT з деякою однією комою:

  • i: перейдіть до INSERT у місці курсора
  • I: перейдіть до режиму INSERT на початку рядка
  • а: додати після курсор
  • A: додати в кінці рядка
  • o: ВІДЧИНЕНО нова лінія нижче поточної лінії
  • O: ВІДЧИНЕНО нова рядок в місці поточного рядка

Тепер, відповідаючи на питання: вихід.

Ви можете вийти з режиму EX:

  • q: якщо ви не зробили ніяких змін або зберегли їх заздалегідь
  • q!: ігнорує будь-які модифікації та кинути
  • wq: зберегти і вийти
  • x: це дорівнює wq

w і x прийняти параметр імені файлу. Якщо ви запустили vi з ім'ям файлу, вам не потрібно давати його тут ще раз.

Нарешті, найголовніше: як ви можете досягти EX-режиму?

Режим EX - це довгі команди, які можна побачити в нижній частині екрана. З режиму COMMAND ви натискаєте кишку, :, а в нижній частині з'явиться двокрапка, де ви можете ввести ці команди.

З режиму INSERT потрібно натиснути ESC, тобто кнопку Escape, перейти до режиму COMMAND, а потім: перейти до режиму EX.

Якщо ви не впевнені, натисніть ESC, і це приведе вас до командного режиму.

Отже, надійним методом є ESC -: - x-Enter, який зберігає ваш файл і припиняє роботу.


71
2018-05-26 12:24



Дякую, зображення дуже корисно. Однак для мене w не змінюється з Ex до командного режиму, але Esc робить Що я роблю неправильно? - Nick Volynkin
Якщо ви пишете w-Enter, це зберігає ваш файл і повертається до режиму COMMAND. Я написав це, щоб мати повну картину збереження та виходу з команд. - Gergely
о, так ти маєш на увазі :w. Тоді це має сенс. До речі, чи є команда для перезавантаження з диска (тобто, щоб відновити зміни, але не закривати файл)? Якщо це так, це може бути поруч w на схемі - Nick Volynkin
@Гергелі я просто зрозумів сум'яття! З документів також називається звичайний режим командний режим! Отже, командний режим! = Режим командного рядка. Оце Так! - jpaugh
@NickVolynkin команда перезавантаження з диска є :e (або більш імовірно :e! оскільки він попереджає вас про незбережені зміни без !) - JDS


Якщо ви хочете кинути без збереження в Vim і мати Vim повернути ненульовий код виходу, який ви можете використовувати :cq.

Я використовую це весь час, тому що я не можу турбуватися, щоб pinky зрушення для !. Я часто передаю речі Vim, яких не потрібно зберігати у файлі. У нас також є непарна обгортка SVN на роботі, яка повинна бути виведена з ненульовим значенням, щоб скасувати реєстрацію.


65
2018-01-28 10:59



Я також використовую це для переривання git commit, або visudo, або crontab, ... - Josh Lee


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

Ctrl-cВведітьВведітьviВведітьCtrl- \Ctrl-n:qa!Введіть

Це повинно вивести вас більшу частину часу.

Деякі цікаві випадки, коли вам потрібно щось на зразок цього:

  • iCtrl-оvg (ви вводите режим вставки, потім візуальний режим, а потім режим очікування оператора)

  • QappendВведіть

  • iCtrl-оgQCtrl-r=Ctrl-k (завдяки porges для цього випадку)

  • :set insertmode (це той випадок, коли Ctrl- \Ctrl-n поверне вас у звичайний режим)


Редагувати: ця відповідь була виправлена ​​внаслідок випадків вище. Раніше він був:

вихідвихідвихід:qa!Введіть

Однак це не спрацює, якщо ви ввели Ex режим. У такому випадку вам потрібно буде зробити:

viВведіть:qa!Введіть

Тож повна команда для "Я не хочу знати, що я зробив, і я не хочу нічого зберігати, я просто хочу зараз!" був би

viВведітьвихідвихідвихід:qa!Введіть


38
2018-06-24 13:38



Ах, яка чудова ефективність. Я маю на увазі, це лише 7 клавіш для виконання часто необхідних дій - cavalcade
@cavalcade Це надзвичайно загальний спосіб забезпечення того, щоб редактор знаходився в нормальному режимі, після чого безпечно виходив з роботи. У звичайному використанні все, що вам потрібно, це :qабо :wq - Dan Passaro
Не досить загальний! А як, якщо я (початківець) набрав i<Ctrl-O>gQ<Ctrl-R>=<Ctrl-K>? - porges
Легше дізнатися, як працюють vim режими, ніж запам'ятовувати цю послідовність. - jwg
@jwg Зачекайте, доки ви не навчитеся писати цю ключову послідовність у буфері a la ^V, і yанк у макро! ;-) - jpaugh


У випадку, якщо вам потрібно вийти з Vim в легкий режим (при використанні -y опція) ви можете ввести нормальний режим Vim, натискаючи Ctrl + Л і тоді буде працювати будь-який із звичайних вихідних параметрів.


32
2017-07-18 13:48



Ще один варіант: можна використовувати Ctrl+O Щоб тимчасово залишити режим INSERT, введіть :q. Трюк із цією комбінацією корисний у звичайному вімі також для виконання однієї команди та повернення до режиму INSERT. - Andrey Starodubtsev


Після удару ВИХІД (або cmd + С на моєму комп'ютері) треба потрапити : для появи командного рядка. Тоді ви можете ввести quit.

Ви можете виявити, що машина не дозволить вам закрити, тому що ваша інформація не була збережена. Якщо ви все-таки хочете залишитись, введіть ! безпосередньо після виходу (тобто :quit!)


23
2017-11-28 15:25





Vim має три режими роботи: режим введення, режим команд та режим Ex.

Режим введення - все, що ви набираєте, всі натискання клавіш повторюються на екрані.

Режим команд або Escape mode - все, що ви вводите в цьому режимі, інтерпретується як команда.

Ex режим - це ще один редактор, ex. Це лінійний редактор. Він працює на рядок або за певним рядком. У цьому режимі a : з'явиться внизу екрана. Це екс редактор.

Щоб вийти з Vim, ви можете вийти, поки ви перебуваєте в режимі ex або в командному режимі. Ви не можете вийти з Vim, коли ви перебуваєте в режимі введення.

Вихід із режиму ex

  1. Ви повинні бути впевнені, що ви перебуваєте в режимі команд. Для цього просто натисніть кнопку вихід ключ

  2. Перейдіть до режиму EX, натиснувши кнопку : ключ

  3. Для виходу використовуйте будь-яку з наступних комбінацій в ex mode:

    :q - кинути :q! - кинути без збереження :wq - зберегти & вийти або написати і вийти :wq! - Той же, що й wq, але сила написується, якщо права доступу до файлу читаються лише для читання :x - писати і кинути :qa - киньте все. корисно при відкритті декількох файлів, таких як: vim abc.txt xyz.txt

Вихід із командного режиму

  1. Натисніть клавішу Escape. Ви, напевно, вже зробили це, якщо ви перебуваєте в командному режимі.

  2. Прес-центр ZZ (shift zz) - зберегти і вийти

  3. Прес-центр ZQ (shift zq) - вийти без збереження.


22
2018-05-24 02:46



Те, що ви телефонуєте "ex mode", насправді називається режим командного рядка. Це дозволяє вводити колишні команди, але з деякими важливі відмінності. - jpaugh
Дякую @ jpaugh. Ці посилання в даний час хоча. Але я вашу точку зору. - tovishalck


Я отримав Vim, встановивши клієнт Git на Windows. :q не вийде з Віму для мене. :exit все ж таки ...


14
2018-02-05 11:30



Точно так само для віму, що робить GIT на Macintosh, це спрацювало. - Joel
@Joel просто перевірив це на моєму Mac, обидві команди legit (vim -version 7.3). - Nick Volynkin
Для Git Bash на вікнах, в Vim іноді ESC не працює. використовувати CTRL + [ замість цього. - Val


Я хотів би додати мого два цента на цьому. Питання задано тут.

The q команда з номером закриває даний розкол у цій позиції.

:q<split position>або :<split position>q закриє розкол у цьому положенні.

Скажімо, ваш макет вікна Vim виглядає наступним чином:

-------------------------------------------------
|               |               |               |
-------------------------------------------------
|               |               |               |
|               |               |               |
|    Split 1    |    Split 2    |     Split 3   |
|               |               |               |
-------------------------------------------------

Якщо ви запустите q1 команда, вона закриє перший спліт. q2 закриє другий спліт і навпаки.

Порядок розподілу позиції в команді виходу не має значення. :2qабо :q2 закриє другий спліт.

Якщо розбита позиція, яку ви передаєте команді, перевищує кількість поточних розколів, вона просто закриє останній розділ.

Наприклад, якщо запустити q100 на наведеному вище вікні налаштування, де є лише три розбиття, він закриє останній спліт (Спліт 3).


2
2018-02-12 23:41





Ось як ви можете вийти з Vim. Натисніть Ctrl і 'Z', потім 'X' та 'C'.

Ctrl -> +Z -> +X -> +C

0
2018-05-31 06:46