Я бы предпочел написать свои коммит-сообщения в Vim, но он открывает их в Emacs.
Как мне настроить Git, чтобы он всегда использовал Vim? Обратите внимание, что я хочу сделать это глобально, а не только для одного проекта.
Я бы предпочел написать свои коммит-сообщения в Vim, но он открывает их в Emacs.
Как мне настроить Git, чтобы он всегда использовал Vim? Обратите внимание, что я хочу сделать это глобально, а не только для одного проекта.
Ответы:
Если вы хотите установить редактор только для 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что запись в ваш личный (для пользователя) файл конфигурации git. На Unices это так ~/.gitconfig. Так что это настроит его для всех ваших репозиториев.
git commit --amend
-wне нужен; -w {scriptout}сохраняет все символы, которые вы вводите при редактировании, чтобы воспроизвести позже. Возможно , вы путаете его с -f, что является необходимым при вызове с графическим интерфейсом Vim. То есть, если вы используете mvim, то указанный вами редактор должен быть, mvim -fа не mvim.
Скопируйте и вставьте это:
git config --global core.editor "vim"
В случае, если вы хотите знать, что вы делаете. От man git-commit:
ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ И КОНФИГУРАЦИИ
Редактор, используемый для редактирования сообщения журнала фиксации, будет выбран из
GIT_EDITORпеременной среды, переменнойcore.editorконфигурации, переменнойVISUALсреды илиEDITORпеременной среды (в этом порядке).
VISUALили EDITOR, но они, конечно, не используют GIT_EDITORили core.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:
alternativesСистема Debian - намного более простой способ управления значениями по умолчанию для поддерживаемых типов программ. Для справки: debian-administration.org/article/91/…
GIT_EDITORа EDITOR не работает --ubuntu
update-alternativesпокажет все редакторы, которые были установлены. Коен просто не имеет установленного Emacs.
В Windows 7 при добавлении редактора «Sublime» он по-прежнему выдавал ошибку:
Отмена коммита из-за пустого сообщения коммита.
Возвышенный не смог удержать фокус.
Чтобы это исправить, я открыл файл .gitconfig в папке c: / users / username / и добавил следующую строку с параметром --wait вне двойных кавычек.
[core]
editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
Надеюсь, что это полезно для тех, кто сталкивается с подобной проблемой с Sublime.
git config --global core.editor "'C:/Program Files/Sublime Text 3/subl.exe' --wait"
C:\Users\YOUR_USERNAME\.gitconfig[core]
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe'
git commitи нажмите Enter. Откроется Notepad ++.-multiInstкачестве параметра в Notepad ++ и , возможно -notabbar. Сделайте это, если git, кажется, не знает, когда вы закончили редактирование файла, и либо ждет вечно, либо вообще не ждет.
>git config --global core.editor '"C:/Program Files (x86)/Notepad++/notepad++.exe"'
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar- то есть, параметры вне ограничивающих одинарных кавычек
Чтобы сделать код Visual Studio (vscode) вашим редактором git по умолчанию
git config --global core.editor "code --wait"
А если вы работаете с дизайнерами, использующими командную строку, то Pico и не знаете коротких путей;)
git config --global core.editor "pico"
Или
export VISUAL=pico
export EDITOR=pico
git config --global core.editor "atom --wait"
Atom должен быть настроен для запуска из командной строки, чтобы вышеуказанное работало:
OS X : установить команды оболочки из Atom: строка меню> Atom> Установить команды оболочки
Windows : никаких действий не требуется - по умолчанию Atom настроен на запуск из командной строки
Запустите эту команду:
$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
Или просто:
$ git config --global core.editor "subl -w"
-wпараметр. Например. $ git config --global core.editor "code -w", Аккуратные вещи
git config --global core.editor notepad.exe
Хит Ctrl+S чтобы сохранить сообщение о коммите. Чтобы отказаться, просто закройте окно блокнота без сохранения.
Если вы нажмете ярлык для сохранения, затем решите прервать, перейдите в File-> Save as и в открывшемся диалоговом окне измените «Сохранить как тип» на «Все файлы (*. *)». Вы увидите файл с именем «COMMIT_EDITMSG». Удалите его и закройте окно блокнота.
Редактировать: В качестве альтернативы, и более просто, удалите все содержимое из открытого окна блокнота и нажмите Сохранить. (спасибо mwfearnley за комментарий!)
Я думаю, что для небольших записей, таких как фиксация сообщений, блокнот подходит лучше всего, потому что он прост, есть с окнами, открывается в кратчайшие сроки. Даже ваш возвышенный может занять секунду или две, чтобы вспыхнуть, когда у вас есть множество плагинов и прочее.
\r\n(новая строка в Windows) и \n(новая строка в Linux, также по умолчанию для Git).
core.editor = 'notepad' .git/COMMIT_EDITMSG --waitчтобы она открывала и сохраняла сообщение для редактирования по умолчанию, и вам не нужно «сохранять как»
Это дает ответ людям, которые пришли к этому Вопросу и могут захотеть связать редактор, кроме 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в вашем домашнем каталоге.
На машине с Windows, скорее всего, дом C:\Users\your-user-name, где your-user-name - это ваш логин.
Из командной строки вы можете добраться до этого каталога, набравcd ~ .
например, указанная выше команда добавит следующую строку в [core]раздел следующим образом:
[core]
editor = 'C:/Program Files/sublime text 3/subl.exe' -w
Если у вас другой редактор, просто замените путь к вашему редактору, используя любой из указанных выше методов. (и надеюсь, что для оптимального использования флаги не нужны.)
Для пользователей Emacs
.emacs:
(server-start)
shellrc:
export EDITOR=emacsclient
git config --global core.editor "emacs -nw"
git config --global core.editor "emacs -nw -q", где -qпропускает файлы инициализации.
Чтобы следовать этим инструкциям в Windows, убедитесь, что вы установили Git для Windows . В Windows мне нравится использовать Git Bash, чтобы он больше походил на Linux.
Во-первых, мы хотим создать специальный проект Sublime Text, чтобы мы могли указать специальные настройки проекта, которые мы хотим установить всякий раз, когда Git вызывает редактор, чтобы упростить процесс редактирования в Git. Например, я обычно устанавливаю свою линейку на 120 символов в большинстве проектов, но для сообщений коммитов Git я хочу, чтобы она была 72 символа, чтобы она хорошо вписывалась в терминал при вызове git logили git lg.
Откройте 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":
[
]
}
Теперь нам нужно установить редактор, который будет использоваться Git, путем редактирования .gitconfigфайла.
Ваша пользовательская копия этого будет находиться в ~/.gitconfig. Откройте этот файл и добавьте следующие строки. Обязательно используйте правильный путь к проекту Git, который вы только что создали! Я использую ~/.gitconfig.sublime-project.
[core]
editor = subl --project ~/.gitconfig.sublime-project --wait
Это --waitважно, так как заставляет Git ждать, пока вы не закроете файл, прежде чем продолжить. --projectЛиния важна сообщить Sublime Text , какой проект вы хотите открыты , когда Git открывает Sublime Text.
Согласно приведенному выше ответу @ digitaldreamer ( https://stackoverflow.com/a/2596835/4561887 ), « sublможет быть заменен полным путем к исполняемому файлу, но [псевдоним subl] обычно доступен, когда [Sublime is] правильно установлен».
Для 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 Text. Этот шаг не обязателен, но он полезен для общего использования Git Bash. Теперь вы можете позвонить subl ., например, в Git Bash, чтобы открыть новый проект Sublime Text в вашем текущем каталоге.
(ОБЯЗАТЕЛЬНОЕ):
Отредактируйте .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.Это дает вам подсветку синтаксиса для 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.
Теперь, когда вы вызываете git commit, например, как обычно из командной строки, Sublime Text откроется в .gitconfig.sublime-projectсозданный нами выше, с настройками этого проекта! Когда вы набираете абзац, вы заметите, что он простирается за установленную нами линейку, поскольку мягкая переноска слов отключена. Для принудительного переноса с помощью автоматически вставляемых жестких возвратов в конце каждой строки наведите курсор на длинную строку, которую вы хотите автоматически перенести, и нажмите Alt+ Q. Теперь он будет «жестко завернут / сложен» с 72 символами, что мы и установили в параметре «rulers» в настройках проекта выше.
Теперь сохраните сообщение коммита с помощью Ctrl+ Sи выйдите (чтобы завершить git commit) с помощью Ctrl+ Shift+W .
Выполнено!
Git Commitсинтаксический тип. Теперь вы можете пропустить пользовательский шаг «Sublime-text project».
sublimeс , gitа также использовать trim_trailing_white_space_on_saveдля добавления псевдонима для пластыря , добавив , потому что удаление завершающих пробелов брейки патча изменение , где это очень значимым. Это может быть достигнуто с помощью чего-то вроде этого:git config --global alias.patch "-c core.editor=vim add --patch"
Как и все другие приложения с графическим интерфейсом, вы должны запустить mvim с флагом ожидания.
git config --global core.editor "mvim --remote-wait"
--remote-wait-silentчтобы избежать ужасного сообщения об ошибке :)
Для пользователей Windows, которые хотят использовать neovim с подсистемой Windows для Linux:
git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"
Это не надежное решение, так как оно не обрабатывает интерактивный перебазирование (например). Улучшения очень приветствуются!
Просто попробуй EDITOR=vim git commit .
Или вы можете установить свой РЕДАКТОР на vim с помощью export EDITOR=vimвашего bashrc.
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 приложение для более подробной информации.
git config --global core.editor "edit -w". Это откроет сообщение фиксации в текущем экземпляре, и как только вы закроете только этот документ сообщения фиксации, фиксация продолжится.
При использовании git-reviewмне пришлось изменить sequence.editorзначение, чтобы иметь возможность сделать интерактивный rebase ( git rebase -i -p):
git config --global sequence.editor "gvim" # or whatever your prefer
gvim требуется: apt install vim-gtk
Для Mac OS X, используя TextEdit или естественный редактор среды для текста:
git config --global core.editor "open -W -n"
Просто потому, что я пришел сюда в поисках одноразового решения (в моем случае я обычно использую, 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
Для пользователей IntelliJ
Когда я пытался выполнить git rebase, я получал следующую ошибку: 'подсказка: ожидание закрытия редактором файла ... code -n -w: code: команда не найдена ошибка: возникла проблема с кодом редактора -n -w '.'
Та же самая ошибка обнаружилась, когда я пытался связать IntelliJ с Git:

Проблема заключалась в том, что у меня не было кода команды, добавленного в переменную окружения PATH. И я не хотел использовать Visual Studio Code из моего терминала. Вот почему он вызвал «команда не найдена». Я решил это, удалив
редактор = код -n -w
из основного раздела в моем файле .gitconfig. Git снова работал правильно.
Это открывает редактор Textmate, когда вы хотите редактировать свои коммиты. Требуются инструменты командной строки textmate.
git config --global core.editor "mate -w"
git config --global core.editor "/usr/local/bin/mate -w"
Создайте файл с именем «k.sh», добавьте следующий текст и поместите в свой домашний каталог (~):
winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1
В командной строке git введите:
git config --global core.editor ~/k.sh