Как мне заставить Git использовать выбранный мной редактор для коммитов? - PullRequest
2237 голосов
/ 08 апреля 2010

Я бы предпочел писать свои сообщения коммита в Vim, но они открываются в Emacs.

Как мне настроить Git так, чтобы он всегда использовал Vim?Обратите внимание, что я хочу сделать это глобально, а не только для одного проекта.

Ответы [ 20 ]

9 голосов
/ 08 апреля 2010

Для пользователей emacs

.emacs * * 1004

(server-start)

shellrc

export EDITOR=emacsclient
7 голосов
/ 11 января 2018

Лучшие настройки для 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 выше (https://stackoverflow.com/a/2596835/4561887), "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.

* +1093 * 2.5. (Необязательно) Установите пакет "Git" в Sublime Text 3.

Это дает вам подсветку синтаксиса для git commit сообщений, а также доступ к другим командам git, таким как git blame (которые я часто использую в Sublime Text) или git commit (которые я не использую в Sublime Textтак как я предпочел бы командную строку для общего потока git, как я уже упоминал в моих комментариях ниже этого ответа).

Чтобы установить пакет: Сначала убедитесь, что установлен «Контроль пакетов».Затем нажмите Ctrl + Shift + P (так же, как Инструменты → Палитра команд) и введите полностью или частично «Управление пакетами: Установить пакет», затем нажмитеВойти.В появившемся окне поиска найдите пакет «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 + Сдвиг + Ш .

Готово!

6 голосов
/ 23 декабря 2018

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

Связанный ресурс, Github , вероятно, будет поддерживатьсяна сегодняшний день, когда редакторы обновляются, даже если ответы на SO (включая этот) отсутствуют.

Связывание текстовых редакторов с git

Пост Github показывает, что именно нужно вводить в командной строке для различных редакторов, включая параметры / флаги, специфичные для каждого редактора, чтобы он лучше всего работал с git.

Блокнот ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Sublime Text:
git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"

Atom:
git config --global core.editor "atom --wait"

Приведенные выше команды предполагают, что ваш редактор был установлен в каталог по умолчанию для компьютера с Windows.

Команды в основном добавляют текст между двойнымикавычки .gitconfig в вашем домашнем каталоге.
На Windows-машине домашний каталог, вероятно, будет C:\Users\your-user-name, где your-user-name - ваше имя для входа.
Из командной строки вы можете перейти в этот каталог.например, набрав cd ~.

, указанная выше команда добавит следующую строку в раздел [core] следующим образом:
[core] editor = 'C:/Program Files/sublime text 3/subl.exe' -w

Если у вас естьдругой редактор, просто замените путь к вашему редактору, используя любой из методов выше.(и надеюсь, что для оптимального использования флаги не нужны.)

3 голосов
/ 12 августа 2015

Mvim в качестве редактора git

Как и все другие приложения с графическим интерфейсом, вы должны запустить mvim с флагом ожидания.

git config --global core.editor "mvim --remote-wait"
2 голосов
/ 07 декабря 2016

Для пользователей Windows, которые хотят использовать neovim с подсистемой Windows для Linux:

git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"

Это не дуранадежное решение, так как оно не справляется с интерактивным перебазированием (например).Улучшения очень приветствуются!

1 голос
/ 26 января 2019

При использовании git-review мне пришлось изменить значение sequence.editor, чтобы можно было сделать интерактивный перебаз (git rebase -i -p):

git config --global sequence.editor "gvim"  # or whatever your prefer

gvim требуется: apt install vim-gtk

Ссылки

1 голос
/ 15 апреля 2016

Для пользователей 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.

1 голос
/ 01 июля 2013

Просто попробуйте EDITOR=vim git commit.

Или вы можете установить свой РЕДАКТОР на vim с помощью export EDITOR=vim в вашем bashrc.

0 голосов
/ 01 июня 2016

Для пользователей Windows, которые хотят использовать Kinesics Text Editor

Создайте файл с именем 'k.sh', добавьте следующий текст и поместите в домашний каталог (~):

winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1

В приглашении git введите:

git config --global core.editor ~/k.sh
0 голосов
/ 29 октября 2013

Для пользователей Textmate

Это открывает редактор Textmate, когда вы хотите редактировать свои коммиты. Требуются инструменты командной строки textmate.

git config --global core.editor "mate -w"

...