Как заставить Git использовать редактор по моему выбору для коммитов?

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

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

18 ответов


если вы хотите установить редактор только для Git сделайте либо (вам не нужны оба):

  • Set core.editor в вашей конфигурации Git:git config --global core.editor "vim"
  • установить GIT_EDITOR переменные среды: export GIT_EDITOR=vim

если вы хотите установить редактор для Git а также другие программы, установить стандартизированные VISUAL и EDITOR окружающая среда переменные*:

export VISUAL=vim
export EDITOR="$VISUAL"

* настройка обоих не обязательно необходима, но некоторые программы могут не использовать более-correct VISUAL. См.VISUAL и EDITOR.


Для Sublime Текст: Добавьте это в .gitconfig. The --wait важно. (он позволяет вводить текст в sublime и будет ждать события save/close.

[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 / folder и добавил следующую строку с параметром --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. Он откроет Блокнот++.
  • написать свое сообщение в верхней части файла, сохраните и закройте файл. Готово!

и если вы работаете с дизайнерами, используя командную строку, то Pico, и не знаете коротких путей;)

git config --global core.editor "pico"

или

export VISUAL=pico
export EDITOR=pico

чтобы сделать код Visual Studio (vscode) редактором git по умолчанию

git config --global core.editor "code --wait"

установка 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"

Atom как ваш редактор git

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

Atom должен быть настроен для запуска из командной строки для работы выше:

OS X: установка команд оболочки из Atom: строка меню > Atom > Установить Скрипт

Windows: не требуется никаких действий-atom настроен для запуска из командной строки по умолчанию


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

.emacs:

(server-start)

shellrc:

export EDITOR=emacsclient

Windows: установка блокнота в качестве редактора сообщений фиксации по умолчанию

git config --global core.editor notepad.exe

нажмите Ctrl+S чтобы сохранить сообщение. Чтобы отказаться, просто закройте окно Блокнота без сохранения.

Если вы нажмете ярлык для сохранения, а затем решите прервать, перейдите в Файл - >Сохранить как, и в открывшемся диалоговом окне измените "Сохранить как тип" на " все файлы (*.*)". Вы увидите файл с именем "COMMIT_EDITMSG". Удалите его и закройте окно "Блокнот".

Edit: кроме того, и более легко, удалите все содержимое из открытого окна блокнота и нажмите Сохранить. (спасибо mwfearnley за комментарий!)

Я думаю, что для небольших записей, таких как сообщения фиксации Блокнот служит лучше всего, потому что это просто, есть с окнами, открывается в кратчайшие сроки. Даже ваш sublime может занять секунду или две, чтобы воспламениться, когда у вас есть загрузка плагинов и прочее.


лучшие настройки для 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, отредактировав .

Для Linux:

ваша пользовательская копия этого будет расположена в ~/.gitconfig. Откройте этот файл и добавьте следующие строки. обязательно используйте правильное имя пути к проекту git, который вы только что создали выше! я использую ~/.gitconfig.sublime-project.

[core]
    editor = subl --project ~/.gitconfig.sublime-project --wait

на --wait важно, так как это заставляет git ждать, пока вы не закроете файл, прежде чем он продолжится. The --project линия важна чтобы сказать Sublime Text, какой проект вы хотите открыть, когда git открывает Sublime.

в ответ @digitaldreamer выше (https://stackoverflow.com/a/2596835/4561887), "subl может быть заменен полным путем исполняемого файла, но [псевдоним subl] обычно доступен, когда [Sublime] правильно установлен."

Для Windows:

для Windows, сначала прочитайте инструкции Linux для справочной информации. Теперь мы сделаем что-то почти идентичный.

(необязательно: создайте subl псевдоним для использования в Git BASH):

откройте текстовый редактор (например: Notepad, Notepad++, Sublime Text, Geany и т. д.) и создайте файл под названием ".файл" в вашем домашнем каталоге. Поэтому его путь будет: C:\Users\MY_USER_NAME\.bash_profile. Сохраните в нем следующее:

alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"

это создает псевдоним Git BASH под названием subl что теперь мы можем использовать в Git BASH для окон, чтобы легко открыть Sublime. Этот шаг не требуется, но это полезно для общего использования Git BASH. Теперь вы можете позвонить subl ., например, в Git BASH, чтобы открыть новый проект Sublime в вашем текущем каталоге.

(обязательный):

редактировать .gitconfig файл, найденный в вашем домашнем каталоге:C:\Users\MY_USER_NAME\.gitconfig, добавив к нему следующее. Обратите внимание на тонкие изменения из приведенных выше инструкций Linux:

[core]
  editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
  • обратите внимание, что вы должны указать полный путь к возвышенному тексту выполнимый. обратите внимание на направление слешей! использовать / не \ для разделения папок в пути! (Спасибо VonC помогаешь мне увидеть это).
  • наши subl псевдоним, который мы сделали для Git BASH выше, здесь не работает, поэтому вы не можете использовать его, как мы сделали в примере Linux, вместо этого вы должны указать весь путь, как показано выше.
  • на ~ символ, однако, все еще работает здесь, чтобы добраться до вашего домашнего каталога Windows.

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

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

установить пакет: Во-первых, обеспечьте "Управление пакетами" установлено. Далее нажмите 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 символа, что мы установили в параметре "линейки" параметров проекта выше.

теперь сохраните сообщение фиксации с помощью Ctrl + S, и выход (для завершения вашего git commit) С Ctrl + Shift + W.

готово!


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

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

git config --global core.editor "mvim --remote-wait"

просто попробовать EDITOR=vim git commit.

или вы можете установить редактор в vim по export EDITOR=vim в вашем bashrc.


для пользователей TextWrangler из Mac app store:

git config --global core.editor "open -n -W -a TextWrangler"

кроме того, убедитесь, что ваш "TextWrangler > настройки > приложение > когда TextWrangler становится активным:" установка установлена на "ничего не делать"

это работает для меня на OS X 10.11.4 с TextWrangler 5.0.2 из Mac app store.

объяснение:

на - n означает открыть в новом экземпляре.

на - W означает ждать, пока приложение завершает работу перед использованием содержимого отредактированного файла в качестве сообщения фиксации.

на -TextWrangler означает использование приложения TextWrangler для открытия файла.

посмотреть man open в приложении Mac Terminal для получения более подробной информации.


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

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

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


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

откроется редактор текст. сообщ, когда вы хотите изменить свой совершает. Требуется текст. сообщ инструменты командной строки для установки.

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


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

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

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

в подсказке git введите:

git config --global core.editor ~/k.sh