Как заставить 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 снова работал нормально.

Другие вопросы по тегам