Використання git commit -a з vim


111

Я новачок з git, тому вирішив вивчити git, використовуючи підручники з github. У третьому розділі сказано:

"У цьому першому прикладі ми модифікуємо файл README, щоб додати себе як автор проекту. Тому ми просто редагуємо файл. Тепер ми хочемо здійснити цю зміну, тому запустимо git commit -aкоманду."

Коли я використовую git commit -aкоманду, консоль відкриває vim, і я написав своє повідомлення, але я не знаю, як закрити цей редактор vim з консолі. Як зберегти повідомлення та закрити vim?


9
Цей графічний шпаргалка дуже корисний: viemu.com/vi-vim-cheat-sheet.gif . Я використовую його як шпалери для робочого столу.
yasouser

@Jean - На якій платформі ви працюєте, і ви використовуєте консоль чи GUI Vim? Чи не ви отримуєте вступний текст (номер версії, автор тощо) на початковому екрані?
Грак

Відповіді:


193
  1. In vim ви зберігаєте файл, :wEnterперебуваючи в звичайному режимі (ви переходите до звичайного режиму натисканням Esc).
  2. Ви закриваєте файл, :qперебуваючи в звичайному режимі.

Ви можете комбінувати і ці дії, і робити Esc:wqEnter щоб зберегти команду та вийти з vim.

Як альтернативу вищезазначеному, ви також можете натиснути, ZZперебуваючи у звичайному режимі, що збереже файл та вийде vim. Деяким людям це також простіше, оскільки цю ж клавішу натискають двічі.


24
Ви також можете зробити git commit -a -m "ваше повідомлення тут", що не відображатиме VIM.
Давид Басараб

8
@David: Звичайно. Тут багато таких запитань, тому що люди забувають -mваріант, а потім кидаються всередину vim window і не знають, як вийти.
abcd

3
@yoda: Ви також можете перейти до звичайного режиму, використовуючи ctrl + c. Крім того, це Shift + (z + z), щоб зберегти та вийти (два великих Z).
Ракета Hazmat

1
@Rocket: Ти маєш рацію. Я не здогадувався, що zзамість цього ввійшов Z.
abcd

5
@EEva: Так, але я б краще не навчив цього новачка, ніби вони забули :, то вони починають видаляти символи, і тоді це призводить до паніки 2.
abcd

58

Замість того, щоб намагатися вивчити vim, використовуйте інший простіший редактор (наприклад, nano). Наскільки мені подобається vim, я не думаю, що використання цього в цьому випадку є рішенням. Для її освоєння потрібна відданість і час.

git config core.editor "nano"

52
Забавно; Нано був типовим для Ubuntu, і я не міг зрозуміти, як зберегти, тому я використав вашу команду для переходу на vim.
гіпергуг

11

Пояснення див. У цій темі: VIM для Windows - Що я ввожу для збереження та виходу з файлу?

Як я там писав: щоб дізнатися Vimming, ви можете скористатися однією з швидких довідкових карт:

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

Якщо повідомлення про фіксацію не надто довге, ви також можете ввести

git commit -a -m "your message here"

Ви також можете дотримуватися цієї відповіді, щоб вийти з vim stackoverflow.com/questions/6098742/using-git-commit-a-with-vim/…
Девід Басараб

Хоча це правда, це не доцільно .
Хорхе Лейтао

7

Питання краще: як я перерваю фіксацію, коли вийшов з vim?

Є два способи:

  1. :cq або :cquit
  2. Видаліть усі рядки повідомлення про фіксацію, включаючи коментарі, а потім :wq

Будь-який спосіб дасть git код помилки, тому він не буде продовжувати фіксацію. Це особливо корисно для git commit --amend.


До речі, це я пам’ятаю з радіолінгвіста Ham. На початку Контакту , після помирання батька, молода Еллі (Йена Малоун) каже Всесвіту, "CQ CQ CQ". Це означає: "Виклик усіх станцій".
cdunn2001


1

Щоб вийти з натискання: q дозволить вам вийти.

Якщо ви хочете вийти без збереження, можете натиснути: q!

Пошук у Google на "шаблоні vim" може дати вам посилання, на яке слід роздрукувати колекцію швидких ярликів.

http://www.fprintf.net/vimCheatSheet.html

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.