Я бы предпочел написать свои коммит-сообщения в 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