Использование 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 - На какой платформе вы работаете, и используете ли вы консоль или графический интерфейс Vim? Разве на стартовом экране нет вводного текста (номер версии, автора и т. Д.)?
Rook

Ответы:


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

Вы можете объединить оба эти действия и сделать, Esc:wqEnterчтобы сохранить фиксацию и выйти из vim.

В качестве альтернативы вышесказанному вы также можете нажать ZZв обычном режиме, что сохранит файл и выйдет из vim. Некоторым это также проще, поскольку одна и та же клавиша нажимается дважды.


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

8
@ Дэвид: Конечно. Многие из этих вопросов возникают из-за того, что люди забывают эту -mопцию, а затем попадают в окно vim и не знают, как выйти.
abcd

3
@yoda: вы также можете перейти в нормальный режим, используя ctrl + c. Кроме того, это Shift + (z + z) для сохранения и выхода (две заглавные Z).
Rocket Hazmat

1
@Rocket: Вы правы. Я не понимал, что вошел zвместо Z.
abcd

5
@EEva: Да, но я бы предпочел не учить этому новичка, как будто они забывают :, затем они начинают удалять символы, и это приводит к панике 2.
abcd

58

Вместо того, чтобы пытаться изучить vim, используйте другой более простой редактор (например, nano). Как бы мне ни нравился vim, я не думаю, что его использование в данном случае является решением. Чтобы овладеть им, нужны целеустремленность и время.

git config core.editor "nano"

52
Забавно; По умолчанию в Ubuntu был nano, и я не мог понять, как его сохранить, поэтому использовал вашу команду, чтобы переключиться на vim.
hyperslug

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?

Есть 2 способа:

  1. :cq или :cquit
  2. Удалите все строки сообщения фиксации, включая комментарии, а затем :wq

В любом случае git выдаст код ошибки, поэтому он не продолжит фиксацию. Это особенно полезно с git commit --amend.


Кстати, я помню это из жаргона радиолюбителей. В начале Контакта , после смерти отца, юная Элли (Джена Мэлоун) говорит Вселенной: «CQ CQ CQ». Это означает «Вызов всех станций».
cdunn2001


1

Для выхода нажмите: q позволит вам выйти.

Если вы хотите выйти без сохранения, нажмите: q!

Поиск в Google по "vim cheatsheet" может предоставить вам справочную информацию, которую следует распечатать, с коллекцией быстрых клавиш.

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

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