Как я могу настроить редактор для работы с Git в Windows? - PullRequest
532 голосов
/ 14 августа 2008

Я пробую Git на Windows . Я дошел до попытки "git commit" и получил эту ошибку:

Терминал тупой, но не визуальный, ни РЕДАКТОР определен. Пожалуйста, предоставьте сообщение с использованием опции -m или -F.

Итак, я понял, что мне нужна переменная окружения с именем EDITOR. Нет проблем. Я установил это, чтобы указать на Блокнот. Это сработало почти. Сообщение о фиксации по умолчанию открывается в Блокноте. Но Блокнот не поддерживает прямые переводы строк. Я вышел и получил Notepad ++ , но я не могу понять, как настроить Notepad ++ как %EDITOR% таким образом, чтобы он работал с Git, как и ожидалось.

Я не женат на Notepad ++. На данный момент я не против, какой редактор я использую. Я просто хочу иметь возможность вводить сообщения коммита в редакторе , а не в командной строке (с -m).

Те из вас, кто использует Git в Windows: Какой инструмент вы используете для редактирования сообщений коммита и что вам нужно было сделать, чтобы он работал?

Ответы [ 32 ]

6 голосов
/ 08 июля 2011

Это 1 признак больших проблем. Примечательно, что у вас есть что-то, устанавливающее TERM = тупой Другие вещи, которые не работают должным образом, это команда less, которая говорит, что у вас нет полнофункционального терминала. Похоже, что это чаще всего вызвано тем, что в ваших глобальных переменных среды Windows установлено значение TERM. Для меня проблема возникла, когда я установил Strawberry Perl, некоторая информация об этом находится в ошибке msysgit для этой проблемы , а также в нескольких решениях.

Первое решение - исправить это в вашем ~ / .bashrc, добавив:

export TERM=msys

Вы можете сделать это из приглашения Git BASH следующим образом:

echo "export TERM=msys" >> ~/.bashrc

Другое решение, которое, в конечном счете, и есть то, что я сделал, потому что меня не волнует причина, по которой Strawberry Perl для добавления TERM = немой в мои настройки среды, состоит в том, чтобы пойти и удалить TERM = немой, как указано в 1011 * Сообщение об ошибке msysgit .

Контроль Панель / System / Advanced / Окружающая среда Переменные ... (или аналогичные, в зависимости от ваша версия Windows) где липкие переменные среды установлены на винде. По умолчанию TERM не задавать. Если там установлен TERM, то вы (или одна из ваших программ установлен - например. Клубника Perl) имеет установить его. Удалите этот параметр, и вы должно быть хорошо.

Аналогичным образом, если вы используете Strawberry Perl и заботитесь о клиенте CPAN или о чем-то подобном, вы можете оставить TERM=dumb в покое и использовать unset TERM в вашем файле ~ / .bashrc, что будет иметь эффект, аналогичный настройке явного срок, как указано выше.

Конечно, все остальные решения верны, вы можете использовать git config --global core.editor $MYFAVORITEEDITOR, чтобы убедиться, что git использует ваш любимый редактор, когда ему нужно запустить его для вас.

5 голосов
/ 14 августа 2008

Vim / Gvim хорошо работает для меня.

>echo %EDITOR%

c:\Vim\Vim71\vim.exe
4 голосов
/ 10 июня 2013

Я использую git на нескольких платформах, и мне нравится использовать одинаковые настройки git на всех них. (На самом деле, все мои конфигурационные файлы находятся под контролем релиза с помощью git, и я поставил клон репозитория git на каждую машину.) Решение, которое я придумал, таково:

Я установил редактор на giteditor

git config --global core.editor giteditor

Затем я создаю символическую ссылку под названием giteditor , которая находится в моем PATH . (У меня есть личный каталог bin , но в любом месте в PATH работает.) Эта ссылка указывает на мой текущий выбор редактора. На разных машинах и разных платформах я использую разные редакторы, так что это означает, что мне не нужно менять свою универсальную конфигурацию git ( .gitconfig ), только ссылку, на которую указывает giteditor к.

Символические ссылки обрабатываются каждой операционной системой, о которой я знаю, хотя они могут использовать разные команды. Для Linux вы используете ln -s . Для Windows вы используете встроенный cmd mklink . У них разные синтаксисы (которые вы должны искать), но на самом деле все работает одинаково.

4 голосов
/ 11 мая 2016

На основании VonC предложения выше , это сработало для меня (сводило меня с ума):

git config --global core.editor "'C:/Program Files (x86)/Sublime Text 3/subl.exe' -wait"

Пропуск -wait может вызвать проблемы, особенно если вы работаете с gerrit и меняете идентификаторы, которые необходимо вручную скопировать в конец вашего сообщения о фиксации

4 голосов
/ 06 апреля 2010

У меня PortableGit 1.6 работал нормально, но после обновления до PortableGit-1.7 у Windows были проблемы. Некоторые команды git открывают Notepad ++. Exe нормально, но некоторые нет, особенно git rebase ведет себя по-разному.

Проблема в том, что некоторые команды запускают процесс windows cmd, некоторые используют процесс unix cmd. Я хочу дать атрибуты запуска редактору Notepad ++, поэтому мне нужно иметь собственный скрипт. Мое решение таково.

1) Создайте скрипт для запуска соответствующего текстового редактора. Скрипт выглядит странно, но обрабатывает как Windows, так и Unix-варианты. с: /PortableGit/cmd/git-editor.bat

#!/bin/sh
#open a new instance

function doUnix() {
  "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar $*
  exit
}

doUnix $*

:WINCALL
"c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar %*

2) Установить глобальную переменную core.editor Скрипт был сохранен в папке git / cmd, поэтому он уже находится в пути gitconsole, это обязательно, поскольку полный путь может работать неправильно.

git config --global core.editor "git-editor.bat"

Теперь я могу запускать команды git commit -a и git rebase -i master . Попробуйте, если у вас есть проблемы с инструментом Git Windows.

3 голосов
/ 06 июля 2009

Я использую Cygwin в Windows, поэтому я использую:

export EDITOR="emacs -nw"

-nw предназначено для no-windows, то есть сказать Emacs не пытаться использовать X11.

Привязки клавиш Emacs не работают для меня из оболочки Windows, поэтому я бы использовал это только из оболочки Cygwin ... (рекомендуется rxvt.)

3 голосов
/ 29 сентября 2010

Это мои настройки для использования Geany в качестве редактора для git:

git config --global core.editor C:/path/to/geany.bat

со следующим содержимым в geany.bat:

#!/bin/sh
"C:\Program Files\Geany\bin\Geany.exe" --new-instance "$*"

Работает как в консоли DOS, так и в msysgit.

2 голосов
/ 23 июля 2010

Я предпочитаю использовать emacs. Настройка может быть немного сложнее.

  1. Загрузите emacs и распакуйте его где-нибудь как c:\emacs.
  2. Выполнить c:\emacs\bin\addpm.exe. Вам нужно щелкнуть правой кнопкой мыши и «Запуск от имени администратора», если вы используете Windows Vista или выше. Это поместит исполняемые файлы на ваш путь.
  3. Добавьте (server-start) где-нибудь в вашем файле .emacs. См. FAQ по Emacs для Windows для получения совета о том, куда поместить файл .emacs.
  4. git config --global core.editor emacsclientw

Git теперь будет открывать файлы в рамках существующего процесса emacs. Вам придется запустить этот существующий процесс вручную с c:\emacs\bin\runemacs.exe.

2 голосов
/ 29 октября 2018

Мне нужно было сделать оба из следующего, чтобы получить git для запуска notepad ++ в windoze:

-добавить следующее к .gitconfig:

editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin

- измените ярлык, чтобы запустить оболочку git bash для запуска от имени администратора, а затем используйте ее для запуска оболочки git bash. Я догадывался, что пункт контекстного меню «Git Bash here» не запускал npp с необходимыми разрешениями.

После того как все вышеперечисленное сработало.

2 голосов
/ 14 августа 2008

Мне было трудно заставить git сотрудничать с WordPad, KomodoEdit и почти любым другим редактором, который я им предоставляю. Большинство открыто для редактирования, но git явно не ждет, когда произойдет сохранение / закрытие.

Как костыль, я только что делал, т.е.

git commit -m "Fixed the LoadAll method"

чтобы все было в движении. Имеет тенденцию держать мои сообщения коммита немного короче, чем они, вероятно, должны быть, но ясно, что есть некоторая работа, которую нужно сделать в версии git для Windows

GitGUI тоже не так уж и плох. Требуется немного ориентации, но после этого он работает довольно хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...