Как заставить Git использовать редактор по своему выбору для коммитов?
Я бы предпочел написать свои коммит-сообщения в Vim, но он открывает их в Emacs.
Как мне настроить Git, чтобы он всегда использовал Vim? Обратите внимание, что я хочу сделать это глобально, а не только для одного проекта.
34 ответа
Если вы хотите установить редактор только для Git, сделайте либо (вам не нужны оба):
- Задавать
core.editor
в вашем конфиге Git:git config --global core.editor "vim"
- Установить
GIT_EDITOR
переменная окружения:export GIT_EDITOR=vim
Если вы хотите установить редактор для Git и других программ, установите стандартизированный VISUAL
а также EDITOR
переменные среды *:
export VISUAL=vim
export EDITOR="$VISUAL"
* Установка обоих не обязательна, но некоторые программы могут не использовать более корректный VISUAL
, Увидеть VISUAL
против EDITOR
,
Для возвышенного текста: добавьте это к .gitconfig
, --wait
это важно. (это позволяет набирать текст в возвышенном и будет ждать события сохранения / закрытия.
[core]
editor = 'subl' --wait
'subl' может быть заменен полным путем к исполняемому файлу, но обычно доступен при правильной установке.
Скопируйте и вставьте это:
git config --global core.editor "vim"
В случае, если вы хотите знать, что вы делаете. От man git-commit
:
ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ И КОНФИГУРАЦИИ
Редактор, используемый для редактирования сообщения журнала фиксации, будет выбран из
GIT_EDITOR
переменная среды,core.editor
переменная конфигурации,VISUAL
переменная среды, илиEDITOR
переменная окружения (в таком порядке).
В Ubuntu, а также в Debian (спасибо @MichielB) изменение редактора по умолчанию также возможно с помощью команды:
sudo update-alternatives --config editor
Который подскажет следующее:
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
* 3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number:
В Windows 7 при добавлении редактора "Sublime" он по-прежнему выдавал ошибку:
Отмена коммита из-за пустого сообщения коммита.
Возвышенный не смог удержать фокус.
Чтобы это исправить, я открыл файл.gitconfig в папке c:/users/username/ и добавил следующую строку с параметром --wait вне двойных кавычек.
[core]
editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
Надеюсь, что это полезно для тех, кто сталкивается с подобной проблемой с Sublime.
В Windows 7 установка редактора в Notepad++
- Откройте любой текстовый редактор.
- Откройте этот файл:
C:\Users\YOUR_USERNAME\.gitconfig
- Добавьте этот раздел внизу:
[core]
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe'
- Сохраните и закройте файл.
- Когда вы делаете коммит с git, просто пишите
git commit
и нажмитеEnter
, Откроется Notepad++. - Напишите ваше сообщение о фиксации вверху файла, сохраните и закройте файл. Готово!
Сделать Visual Studio Code (vscode) вашим редактором git по умолчанию
git config --global core.editor "code --wait"
А если вы работаете с дизайнерами, использующими командную строку, то Pico и не знаете коротких путей;)
git config --global core.editor "pico"
Или же
export VISUAL=pico
export EDITOR=pico
Atom как ваш редактор git
git config --global core.editor "atom --wait"
Atom должен быть настроен для запуска из командной строки, чтобы вышеуказанное работало:
OS X: установить команды оболочки из Atom: строка меню> Atom > Установить команды оболочки
Windows: никаких действий не требуется - по умолчанию Atom настроен на запуск из командной строки
Установка Sublime Text 2 в качестве редактора Git commit в Mac OSX 10
Запустите эту команду:
$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
Или просто:
$ git config --global core.editor "subl -w"
Чтобы сделать vim редактором по умолчанию для git в ubuntu 20:04, выполните следующую команду:
git config --global core.editor vim
Вы можете:
git config --global core.editor "vim"
Или в вашем.gitconfig
:
[core]
editor = vim
Это дает ответ людям, которые пришли к этому Вопросу и могут захотеть связать редактор, кроме vim.
Связанный ресурс от Github, вероятно, будет обновляться, когда редакторы обновляются, даже если ответы на SO (включая этот) нет.
Ассоциирование текстовых редакторов с git
Пост Github показывает, что именно нужно вводить в командной строке для различных редакторов, включая параметры / флаги, специфичные для каждого редактора, чтобы он лучше всего работал с git.
Notepad ++:git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Возвышенный текст:git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"
Атом:git config --global core.editor "atom --wait"
Приведенные выше команды предполагают, что ваш редактор был установлен в каталог по умолчанию для компьютера с Windows.
Команды в основном добавляют текст между двойными кавычками в .gitconfig
в вашем домашнем каталоге.
На окнах машина дома скорее всего будет C:\Users\your-user-name
где your-user-name - это ваше имя для входа.
Из командной строки вы можете добраться до этого каталога, набрав cd ~
,
например, приведенная выше команда добавит следующую строку под [core]
раздел вроде так:[core]
editor = 'C:/Program Files/sublime text 3/subl.exe' -w
Если у вас другой редактор, просто замените путь к вашему редактору, используя любой из указанных выше методов. (и надеюсь, что для оптимального использования флаги не нужны.)
Windows: установка блокнота в качестве редактора сообщений о фиксации по умолчанию
git config --global core.editor notepad.exe
Нажмите Ctrl+S, чтобы сохранить сообщение о коммите. Чтобы отказаться, просто закройте окно блокнота без сохранения.
Если вы нажали на ярлык для сохранения, затем решили прервать, перейдите в Файл-> Сохранить как, и в открывшемся диалоговом окне измените "Сохранить как тип" на "Все файлы (*.*)". Вы увидите файл с именем "COMMIT_EDITMSG". Удалите его и закройте окно блокнота.
Редактировать: В качестве альтернативы, и более просто, удалите все содержимое из открытого окна блокнота и нажмите Сохранить. (спасибо mwfearnley за комментарий!)
Я думаю, что для небольших записей, таких как фиксация сообщений, блокнот подходит лучше всего, потому что он прост, есть с окнами, открывается в кратчайшие сроки. Даже ваш возвышенный может занять секунду или две, чтобы вспыхнуть, когда у вас есть множество плагинов и прочее.
Для пользователей Emacs
.emacs
:
(server-start)
shellrc
:
export EDITOR=emacsclient
Лучшие настройки для Sublime Text 3 в качестве вашего редактора git (инструкции для Windows и Linux):
Чтобы следовать этим инструкциям в Windows, убедитесь, что у вас установлен git для Windows. В Windows мне нравится использовать Git BASH, чтобы он больше походил на Linux.
Во-первых, мы хотим создать специальный проект Sublime Text, чтобы мы могли указать специальные настройки проекта, которые мы хотим установить всякий раз, когда git вызывает редактор, чтобы упростить процесс редактирования в git. Например, я обычно устанавливаю свою линейку на 120 символов в большинстве проектов, но для сообщений git commit я хочу, чтобы она составляла 72 символа, чтобы она хорошо вписывалась в терминал при вызове git log
или же git lg
,
1. Создайте Sublime Text проект с настройками, которые мы хотим использовать для редактирования сообщений git commit
Откройте Sublime Text и перейдите в "Файл" -> "Новое окно", чтобы создать новый анонимный проект. Перейдите в "Проект" -> "Сохранить проект как..." и выберите место для его сохранения.В Linux я сохранил его в своем домашнем каталоге Linux с именем файла .gitconfig.sublime-project
, Это путь, следовательно:~/.gitconfig.sublime-project
, В Windows также сохраните его в своем домашнем каталоге, например: C:\Users\MY_USER_NAME\.gitconfig.sublime-project
Теперь перейдите в "Проект" -> "Редактировать проект", чтобы редактировать настройки проекта. Вставьте следующее и сохраните настройки. При необходимости внесите любые изменения в настройки вашего проекта.
{
//For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html
"folders":
[
],
"settings":
{
// Disables horizontal scrolling if enabled.
// May be set to true, false, or "auto", where it will be disabled for
// source code, and otherwise enabled.
"word_wrap": false,
// Set to a value other than 0 to force wrapping at that column rather than the
// window width
"wrap_width": 0,
// Columns in which to display vertical rulers
"rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles
// The number of spaces a tab is considered equal to
"tab_size": 4,
// Set to true to insert spaces when tab is pressed
"translate_tabs_to_spaces": true,
},
"build_systems":
[
]
}
2. Установите редактор, который будет использоваться git
Теперь нам нужно установить редактор, который будет использоваться git, отредактировав.gitconfig
файл.
Для Linux:
Ваша пользовательская копия этого будет находиться в~/.gitconfig
, Откройте этот файл и добавьте следующие строки.Обязательно используйте правильный путь к проекту git, который вы только что создали! я использую ~/.gitconfig.sublime-project
,
[core]
editor = subl --project ~/.gitconfig.sublime-project --wait
--wait
Это важно, так как заставляет git ждать, пока вы не закроете файл, прежде чем продолжить.--project
Строка важна, чтобы сообщить Sublime Text, какой проект вы хотите открыть, когда git открывает Sublime.
За ответ @digitaldreamer выше ( /questions/20120432/kak-zastavit-git-ispolzovat-redaktor-po-svoemu-vyiboru-dlya-kommitov/20120481#20120481) "subl
можно заменить полным путем к исполняемому файлу, но [псевдонимsubl
] обычно доступен, когда [Sublime is] правильно установлен. "
Для Windows:
Для Windows сначала прочитайте инструкции Linux для справочной информации. Теперь мы будем делать что-то практически идентичное.
(ДОПОЛНИТЕЛЬНО: создайтеsubl
псевдоним для использования в Git BASH):
Откройте текстовый редактор (например, "Блокнот", "Блокнот ++", "Sublime Text", "Geany" и т. Д.) И создайте файл с именем ".bash_profile" в своем домашнем каталоге. Поэтому его путь будет таким: C:\Users\MY_USER_NAME\.bash_profile
, Сохраните в нем следующее:
alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
Это создает псевдоним Git BASH под названием subl
что мы можем теперь использовать в Git BASH для Windows, чтобы легко открыть Sublime. Этот шаг не обязателен, но он полезен для общего использования Git BASH. Теперь вы можете позвонить subl .
Например, в Git BASH, чтобы открыть новый Sublime Project в вашем текущем каталоге.
(ОБЯЗАТЕЛЬНЫЙ):
Изменить .gitconfig
файл найден в вашем домашнем каталоге: C:\Users\MY_USER_NAME\.gitconfig
, добавив к нему следующее. Обратите внимание на тонкие изменения по сравнению с инструкциями Linux выше:
[core]
editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
- Обратите внимание, что вы должны указать полный путь к исполняемому файлу Sublime Text. Обратите внимание на направление косых черт! использование
/
НЕ\
для разделения папок в пути! (Спасибо VonC за помощь в этом). - наш
subl
псевдоним, который мы создали для Git BASH выше, здесь не работает, поэтому вы не можете использовать его, как мы это делали в примере с Linux, вместо этого вы должны указать весь путь, как показано выше. ~
символ, однако, все еще работает здесь, чтобы добраться до вашего домашнего каталога Windows.
2.5. (Необязательно) Установите пакет "Git" в Sublime Text 3.
Это дает вам подсветку синтаксиса для git commit
сообщения, а также доступ к другим командам git, таким как git blame
(который я часто использую в Sublime Text) или git commit
(который я не использую в Sublime Text, так как я предпочел бы командную строку для общего потока git, как я уже упоминал в моих комментариях ниже этого ответа).
Чтобы установить пакет: Сначала убедитесь, что "Контроль пакетов" установлен. Затем нажмите Ctrl + Shift + P (так же, как "Инструменты" → "Палитра команд") и введите "Управление пакетами: Установить пакет" полностью или частично, затем нажмите Enter. В появившемся окне поиска найдите пакет "Git" и нажмите "Enter" на нем или нажмите на него, чтобы автоматически установить.
После установки Ctrl + Shift + P, а затем поиск "git" вызовет команды git, которые вы теперь можете использовать внутри Sublime Text, такие как git blame
,
3. Используйте это
Теперь, когда вы звоните git commit
например, как обычно из командной строки, Sublime Text откроется в .gitconfig.sublime-project
мы создали выше, с настройками этого проекта! Когда вы набираете абзац, вы заметите, что он простирается за установленную нами линейку, поскольку мягкая переноска слов отключена. Для принудительного переноса через автоматически вставленные возвраты в конце каждой строки, поместите курсор на длинную строку, которую вы хотите, автоматически обернуть и нажмите Alt + Q. Теперь он будет "жестко завернут / сложен" с 72 символами, что мы и установили в параметре "rulers" настроек проекта выше.
Теперь сохраните сообщение коммита с помощью Ctrl + S и выйдите (чтобы завершить git commit
) с помощью Ctrl + Shift + W.
Готово!
есть список команд, которые вы можете использовать, но для кода vs используйте это
git config --global core.editor "code --wait"
это ссылка для всех редакторов:https://git-scm.com/book/en/v2/Appendix-C%3A-Git-Commands-Setup-and-Config
Установите core.editor в вашей конфигурации Git:
git config --global core.editor "nano"
Установите переменную среды GIT_EDITOR:
export GIT_EDITOR=nano
git config --global core.editor "code --wait"
Чтобы отменить изменения, внесенные в конфигурацию Git, и восстановить редактор по умолчанию, вы можете использовать следующие команды:
git config --global --unset core.editor
Для Mac OS X с помощью TextEdit или редактора естественной среды для текста:
git config --global core.editor "open -W -n"
Mvim как твой редактор git
Как и все другие приложения с графическим интерфейсом, вы должны запустить mvim с флагом ожидания.
git config --global core.editor "mvim --remote-wait"
Для пользователей Windows, которые хотят использовать neovim с подсистемой Windows для Linux:
git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"
Это не надежное решение, так как оно не поддерживает интерактивный перебазирование (например). Улучшения очень приветствуются!
Самый простой способ сделать Neovim редактором Git по умолчанию в Linux
git config --global core.editor "nvim"
Сделанный
Просто потому, что я пришел сюда в поисках одноразового решения (в моем случае я обычно использую vim
но в этот раз я хотел использовать VS Code) для одной команды, и другие тоже могут захотеть узнать:
GIT_EDITOR='code -w' git rebase -i …
Вот мой git
/hub
версия только для контекста:
git version 2.24.2 (Apple Git-127)
hub version 2.14.1
Для пользователей TextWrangler из магазина приложений Mac:
git config --global core.editor "open -n -W -a TextWrangler"
Также убедитесь, что ваш "TextWrangler > Настройки> Приложение> Когда TextWrangler становится активным:" установлен на "Ничего не делать"
Это работает для меня на OS X 10.11.4 с TextWrangler 5.0.2 из магазина приложений Mac.
Объяснение:
-N означает открыть в новом экземпляре.
-W означает ожидание выхода из приложения, прежде чем использовать содержимое отредактированного файла в качестве сообщения фиксации.
-A TextWrangler означает использовать приложение TextWrangler, чтобы открыть файл.
Увидеть man open
в вашем приложении Mac Terminal для более подробной информации.
Просто попробуй EDITOR=vim git commit
,
Или вы можете установить ваш редактор для VIM export EDITOR=vim
в вашем башрч.
Для Windows, Neovim:
# .gitconfig
[core]
editor='C:/tools/neovim/Neovim/bin/nvim-qt.exe'
В бета-версии macOS Big Sur (11.0) для TextMate: ни один из параметров переменной среды не работал. (Установите все три: GIT_EDITOR, VISUAL и EDITOR.)
Наконец, установите глобальный core.editor в git, и это сработало:git config --global core.editor "~/bin/mate -w"
Когда используешь git-review
Я должен был изменить sequence.editor
значение, чтобы иметь возможность сделать интерактивный ребаз (git rebase -i -p
):
git config --global sequence.editor "gvim" # or whatever your prefer
gvim
требуется: apt install vim-gtk
Рекомендации
Для MAC, BBEdit:
Сначала откройте BBEdit, щелкните логотип BBEdit и выберите "Установить инструменты командной строки".
Затем из командной строки
git config --global core.editor "BBEdit -w"
Для пользователей IntelliJ
Когда я пытался выполнить git rebase, я получал следующую ошибку: 'подсказка: ожидание, пока ваш редактор закроет файл... code -n -w: code: command not found error: Возникла проблема с кодом редактора -n -w'.'
Та же ошибка появилась, когда я пытался связать IntelliJ с Git:
Проблема заключалась в том, что у меня не было кода команды, добавленного в переменную PATH моей среды. И я не хотел использовать Visual Studio Code со своего терминала. Вот почему он запросил "команда не найдена". Я решил это, удалив
редактор = код -n -w
из основного раздела моего файла.gitconfig. Git снова работал нормально.