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

474

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

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

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

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

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

  • 7
    TLDR: ставьте одинарные кавычки вокруг пути к исполняемому файлу редактора
  • 0
    Наверное, не полезно, но FWIW, я просто использую обычный блокнот. Я ничего не сделал, чтобы это сработало. Он просто работал из коробки по умолчанию ...
Показать ещё 4 комментария
Теги:
editor
cygwin

31 ответ

424
Лучший ответ

Обновление сентябрь 2015 года (6 лет спустя)

последняя версия git -for-Windows (2.5.3) теперь включает в себя:

Конфигурируя git config core.editor notepad, пользователи теперь могут использовать notepad.exe в качестве своего редактора по умолчанию.
Конфигурирование git config format.commitMessageColumns 72 будет подхвачено оболочкой блокнота и обматывает сообщение об окончании после того, как пользователь отредактирует его.

См. commit 69b301b Йоханнес Шинделин (dscho).


Оригинальный ответ

Я только что протестировал его с помощью git версии 1.6.2.msysgit.0.186.gf7512 и Notepad ++ 5.3.1

Я предпочитаю не устанавливать переменную EDITOR, поэтому я попробовал:

git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"

Это всегда дает:

C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.

Если я определяю npp.bat, включая:

"c:\Program Files\Notepad++\notepad++.exe" %*

и я печатаю:

C:\prog\git>git config --global core.editor C:\prog\git\npp.bat

Он работает только с сеанса DOS, , но не из git оболочки.
(не то, что с помощью механизма конфигурации core.editor, script с "start /WAIT..." в нем не работает, а только открывает новое окно DOS)


Bennett answer упоминает о возможности избежать добавления script, но напрямую ссылаться на самую программу между простыми кавычками:

git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Или, если вы находитесь в 64-битной системе:

git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Но я предпочитаю использовать script (см. ниже): таким образом я могу играть с разными путями или разными опциями, не регистрируясь снова git config.


Фактическое решение (с script) состояло в том, чтобы понять, что:
то, что вы называете в конфигурационном файле, на самом деле является оболочкой (/bin/sh) script, а не DOS script.

Итак, что работает:

C:\prog\git>git config --global core.editor C:/prog/git/npp.bat

с C:/prog/git/npp.bat:

#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"

или

#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"

С помощью этой настройки я могу сделать "git config --global --edit" из DOS или git Shell, или я могу сделать "git rebase -i ..." из DOS или git Shell.
Команды Bot вызовут новый экземпляр notepad ++ (отсюда опция -multiInst) и дождитесь, пока этот экземпляр будет закрыт, прежде чем продолжить.

Обратите внимание, что я использую только '/', а не \ '. И я установил msysgit, используя опцию 2. (добавьте каталог git\bin в переменную среды PATH, но без переопределения некоторых встроенных инструментов Windows)

Тот факт, что оболочка notepad ++ называется .bat не имеет значения.
Было бы лучше назвать его "npp.sh" и поместить его в каталог [git]\cmd, хотя (или в любой каталог, на который ссылается ваша переменная среды PATH).


См. также:


lightfire228 добавляет в комментариях:

Для тех, у кого есть проблема, когда N ++ просто открывает пустой файл, а git не принимает ваше сообщение о фиксации, см. "Отменить фиксацию из-за пустого сообщения": измените файл .bat или .sh, чтобы сказать:

"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>. 

Это будет означать, что notepad ++ открывает файл temp commit, а не пустой новый.

  • 0
    В вашем сценарии оболочки вам нужны двойные кавычки около $ *, иначе он не будет работать правильно для путей с пробелами в них. Спасибо за подробное объяснение - я устанавливаю git (и кучу других вещей) в Windows для начинающих программистов, и командную строку достаточно сложно взломать, не заставляя их изучать команды vi.
  • 0
    Этот метод отлично работает под PowerShell. Спасибо!
Показать ещё 15 комментариев
248

На основе Darren answer, чтобы использовать Notepad ++, вы можете просто сделать это (все в одной строке):

В 32-разрядной ОС: git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

В 64-битной ОС git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Очевидно, что часть C:/Program Files/Notepad++/notepad++.exe должна быть путь к исполняемому файлу Notepad ++ в вашей системе. Например, в Windows 7 это будет C:/Program Files (x86)/Notepad++/notepad++.exe. Спасибо комментаторам за указание на это.

Работает как прелесть для меня.

  • 9
    Я тоже! Кстати, эти переключатели описаны в C: / Program Files / Notepad ++ / user.manual / Documentation / notepad-user-manual / command-line.html
  • 22
    Следите за тем, чтобы Notepad ++ находился в `C: \ Program Files (x86)`
Показать ещё 15 комментариев
42

Во всяком случае, я просто играл с этим и нашел следующее, чтобы хорошо работать для меня:

git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"

Я не думаю, что CMD любит одиночные кавычки, поэтому вы должны использовать двойные кавычки "для указания встроенного аргумента строки".

Cygwin (который, я считаю, является базовой платформой для Git Bash), с другой стороны, любит как ', так и "; вы можете указать пути, похожие на CMD, используя / вместо \, если строка цитируется, то есть в этом случае, используя одиночные кавычки.

-m переопределяет/указывает на использование нескольких редакторов, и нет необходимости в %*, прикрепленном к концу.

  • 0
    Спасибо за объяснение одинарной / двойной кавычки, теперь имеет смысл!
  • 3
    git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -m" работает для меня как git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -m" .
Показать ещё 2 комментария
22

Изменить: После обновления до vim 7.3 я пришел к выводу, что самый простой и простой способ сделать это:

  • Добавьте главную папку Vim на свой путь (щелкните правой кнопкой мыши Мой компьютер → Свойства → Дополнительно → Переменные среды)

  • Запустите это: git config --global core.editor "gvim --nofork '%*'"

Если вы сделаете это так, я уверен, что он будет работать и с cygwin.

Оригинальный ответ:

Даже с несколькими ответами, связанными с vim, у меня возникли проблемы с тем, чтобы это работало с gvim под Windows (не используя пакетный файл или% EDITOR% или cygwin).

То, что я в итоге прибыл, красиво и чисто, и опирается на несколько решений здесь:

git config --global core.editor \
"'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'"

Один из них, который занял у меня некоторое время, - это не обратные косые черты в стиле Windows, они являются нормальными косыми чертами.

  • 0
    это работает, спасибо за редактирование
  • 1
    Если vim установлен в Program Files(x86) , вам, очевидно, нужно изменить путь.
13

Notepad ++ работает отлично, хотя я предпочитаю придерживаться Notepad, -m или даже иногда встроенного "edit".

Проблема, с которой вы сталкиваетесь с помощью Notepad ++, связана с тем, как git запускает исполняемый файл редактора. Мое решение состоит в том, чтобы установить EDITOR в пакетный файл, а не на исполняемый файл редактора, который выполняет следующие действия:

start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*

/WAIT сообщает сеансу командной строки останавливаться, пока приложение не выйдет, поэтому вы сможете редактировать свой сердечный контент, пока git с радостью ждет вас. % * передает все аргументы в пакетный файл через Notepad ++.

c:\src>echo %EDITOR%
c:\tools\runeditor.bat
  • 0
    У меня были проблемы с тем, чтобы заставить это работать под PowerShell. Этот метод ( stackoverflow.com/questions/10564/… ) работал нормально, хотя.
10

Wordpad!

Я счастлив использовать vim, но, поскольку я пытаюсь представить Git компании, я хотел что-то, что у всех было бы, и обнаружил, что Wordpad, похоже, работает нормально (т.е. Git ждет вы закончите редактирование и закройте окно).

git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'

Это использование Git Bash на msysgit; Я не пробовал из командной строки Windows (если это имеет значение).

  • 0
    Мне понравилась простота этого, но он не работал для меня из коробки. Вот что я попробовал. Я получаю следующее сообщение об ошибке: ошибка: возникла проблема с редактором «C: \ Program Files \ Windows NT \ Accessories \ wordpad.exe».
  • 3
    Цитаты неверны. Вы должны поместить двойные кавычки вне одинарных кавычек . То есть используйте «C: \ Program Files \ Windows NT \ Accessories \ wordpad.exe», и тогда он будет работать.
Показать ещё 3 комментария
9

Я также использую Cygwin в Windows, но с gvim (в отличие от терминального vim).

Чтобы выполнить эту работу, я сделал следующее:

  • Создал однострочный командный файл (с именем git_editor.bat), который содержит следующее:
    "C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
  • Размещено git_editor.bat в моем PATH.
  • Установить GIT_EDITOR=git_editor.bat

При этом git commit и т.д. будут правильно запускать исполняемый файл gvim.

ПРИМЕЧАНИЕ 1. Параметр --nofork для gvim гарантирует, что он блокируется до тех пор, пока сообщение фиксации не будет записано.

ПРИМЕЧАНИЕ 2. Кавычки вокруг пути к gvim требуются, если в пути есть пробелы.

ПРИМЕЧАНИЕ 3. Кавычки вокруг "% *" необходимы только в случае, если git передает путь к файлу с пробелами.

  • 0
    Для людей, которые используют msysgit (не git cygwin), я смог немного упростить это. stackoverflow.com/questions/10564/...
  • 0
    Если подумать, это может работать и с Cygwin, я не совсем уверен
8

Благодаря сообществу SO... и небольшому исследованию я смог получить мой любимый редактор, EditPadPro, работать в качестве основного редактора с msysgit 1.7.5.GIT и TortoiseGit v1.7.3.0 поверх WinXP SP3...

Следуя приведенному выше совету, я добавил путь к bash script для редактора кода...

git config --global core.editor c:/msysgit/cmd/epp.sh

Однако после нескольких неудачных попыток вышеупомянутых решений... наконец, я смог получить эту работу. В документации EditPadPro добавление флага '/newinstance' позволит оболочке ждать ввода редактора....

Флаг </новый "был ключом в моем случае...

#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"
  • 0
    Да, эта двойная косая черта для параметра newinstance должна быть в документации Editpad. Спасибо, что отметили это здесь!
  • 0
    EditPad Pro требует, чтобы параметры командной строки, такие как /newinstance имели ровно одну косую черту. Это вполне нормально для приложений Windows. Если вы вызываете EditPad из оболочки UNIX, вам нужно будет использовать любой механизм, предлагаемый вашей оболочкой, чтобы избежать прямого слеша, чтобы он не рассматривал переключатель как абсолютный путь и передавал один буквенный слеш в командную строку EditPad.
Показать ещё 2 комментария
6

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

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

export TERM=msys

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

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

Другим решением, которое в конечном итоге является тем, что я сделал, потому что меня не волнуют причины Strawberry Perl для добавления TERM = dumb в настройки моей среды, нужно пойти и удалить TERM = dumb как приведенный в этом комментарии к отчету об ошибке msysgit.

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

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

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

  • 0
    спасибо большое! У меня была эта проблема из-за клубничного Perl, и это сводило меня с ума! спасибо за указание на это
6

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

>echo %EDITOR%

c:\Vim\Vim71\vim.exe
4

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

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

git config --global core.editor giteditor

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

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

  • 0
    На самом деле, я попробовал это на Windows7, и это не работает с MSY GIT. Это говорит error: cannot spawn giteditor: No such file or directory
4

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

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

1) Создайте script для запуска соответствующего текстового редактора. script выглядит странно, но обрабатывает как окна, так и unix. C:/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 Script был сохранен в папке git/cmd, поэтому он уже находится в пути gitconsole, это обязательно, поскольку полный путь может работать неправильно.

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

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

3

Для Atom вы можете сделать

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

и аналогичный для VSCode

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

который откроет окно Atom или VSCode, через которое вы сможете совершить,

или для Sublime

git config --global core.editor "subl -n -w"
  • 0
    Гораздо проще и эффективнее. Спасибо.
3

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

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

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

3

Это моя настройка для использования 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.

  • 0
    Это отличается от принятого ответа VonC?
  • 2
    VonC ответил о notepad ++, мой ответ для Geany?
3

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

export EDITOR="emacs -nw"

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

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

3

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

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

git commit -m "Fixed the LoadAll method"

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

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

2

Измените файл .gitconfig в папке c:\Users\YourUser и добавьте:

[core]
editor = 'C:\\Program files\\path\\to\\editor.exe'
2

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

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

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

2

Кажется, что Git не найдет редактор, если в пути есть пробелы. Таким образом, вам придется поместить пакетный файл, упомянутый в Patrick answer, в путь без пробелов.

  • 3
    Этот формат отлично работает для путей с пробелами: git config --global core.editor "\" c: \ Program Files \ textpad 5 \ textpad.exe \ "", поэтому может оказаться целесообразным избежать создания командного файла
1

ATOM и Windows 10

  • Щелкните правой кнопкой мыши значок Atom на рабочем столе и нажмите на свойства.
  • Скопирован путь "Начать вход"
  • Посмотрел там с помощью проводника Windows и нашел "atom.exe".
  • Набрал это в git bash:

    git config --global core.editor C:/Users/YOURNAMEUSER/AppData/Local/atom/app-1.7.4/atom.exe"

Примечание. Я изменил все \ на /. Я создал .bashrc в своем домашнем каталоге и использовал / для установки моего домашнего каталога, и он работал, поэтому я предположил, что / будет способом.

  • 0
    проверьте этот URL, это будет полезно для повышения качества вашего контента
  • 0
    @Willie Спасибо, я отформатировал текст и добавил несколько тегов. Надеюсь, что это немного улучшит.
1

Воскрешая старую нить, но я нашел aa красиво простое решение, размещенное здесь - хотя может быть ошибка в путь, в котором вам нужно скопировать файл "subl", предоставленный автором. Я запускаю Win 7 x64, и мне пришлось поместить файл подрезов в мою папку /Git/cmd/, чтобы он работал. Это работает как шарм.

1

Это работает для Powershell и cmder-1.2 (при использовании с powershell). В ~/.gitconfig

[core]
    editor = 'c:/program files/sublime text 3/subl.exe' -w

Как сделать Sublime Text редактором по умолчанию для Git?

1

Я использую GitHub для Windows, который является приятным визуальным вариантом. Но я также предпочитаю командную строку, поэтому, чтобы заставить ее работать, когда я открываю репо в оболочке Git, я просто установил следующее:

git config --global core.editor vim

который отлично работает.

1

Мне удалось получить версию среды, установив переменную EDITOR с помощью кавычек и /:

EDITOR="c:/Program Files (x86)/Notepad++/notepad++.exe"
1

У меня была такая же проблема, и я нашел другое решение. Я получал

error: There was a problem with the editor 'ec'

У меня есть VISUAL=ec и командный файл с именем ec.bat на моем пути, который содержит одну строку:

c:\emacs\emacs-23.1\bin\emacsclient.exe %*

Это позволяет мне редактировать файлы из командной строки с помощью ec <filename>, а наличие визуального набора означает, что большинство программ unixy тоже подбирают его. Git похоже, ищет путь по-разному к моим другим командам, хотя - когда я посмотрел на git commit в ProcMon, я увидел, что он выглядит каждую папку на пути для ec и для ec.exe, но не для ec.bat. Я добавил еще одну переменную среды (GIT_EDITOR=ec.bat), и все было в порядке.

0

Вот решение с Cygwin:

#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
  • Если нет пути, не пропустите путь

  • Если путь пуст, пропустите пустой путь

  • Если путь не пуст, перейдите в формат Windows.

Затем я устанавливаю эти переменные:

export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'

Источник

0

Это сработало для меня:

  • Добавьте каталог, в который будет вписываться исполняемый файл редактора, в переменную PATH. (например, "C:\Program Files\Sublime Text 3 \" )
  • Перезагрузите компьютер.
  • Измените переменную core.editor global git на имя исполняемого файла редактора без расширения.exe '(например, git config --global core.editor sublime_text)

Что это!

ПРИМЕЧАНИЕ. Sublime Text 3 - это редактор, который я использовал для этого примера.

  • 0
    При такой настройке Sublime Text 3 открывает несколько экземпляров или обрабатывает тот факт, что git нужен для закрытия, чтобы сигнализировать об окончании редактирования?
  • 1
    Я думаю, что это откроет новое окно. Вы можете добавить параметр --wait ( sublimetext.com/forum/viewtopic.php?f=3&t=3257 )
0

Это работает для меня с помощью Cygwin и Textpad 6 (EDIT: также работа с Textpad 5 до тех пор, пока вы сделаете очевидное изменение в script), и, предположительно, модель может быть использована и для других редакторов:

~/.gitconfig:

[core]
    editor = ~/script/textpad.sh

~/script/textpad.sh

#!/bin/bash

APP_PATH=`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`
FILE_PATH=`cygpath -w $1`

"$APP_PATH" -m "$FILE_PATH"

Этот однострочный лайнер также работает:

~/script/textpad.sh(вариант 2):

"`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`" -m "`cygpath -w $1`"
0

Я просто использую TortoiseGit прямо из коробки. Интеграция красиво с моими открытыми ключами PuTTY. Имеет идеальный редактор для фиксации сообщений.

0

При использовании удаленно смонтированного homedrive (samba share, nfs,...) ваша папка ~/.git является общей для всех систем, что может привести к нескольким проблемам. Поэтому я предпочитаю script определить правильный редактор для правильной системы:

#!/usr/bin/perl
# Detect which system I'm on and choose the right editor
$unamea = `uname -a`;
if($unamea =~ /mingw/i){
    if($unamea =~ /devsystem/i){#Check hostname
        exec('C:\Program Files (x86)\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
    }
    if($unamea =~ /testsystem/i){
        exec('C:\Program Files\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
    }
}
$MCEDIT=`which mcedit`;
if($MCEDIT =~ /mcedit/){
    exec($MCEDIT, @ARGV);
}
$NANO=`which nano`;
if($NANO =~ /nano/){
    exec($NANO, @ARGV);
}
die "You don't have a suitable editor!\n";

Можно подумать о простой оболочке script, но я использовал perl, так как Perl поставляется с msysgit, и ваши unixoid-системы также предоставят один. Поместите script в /home/username/bin, который следует добавить в PATH в .bashrc или .profile. После добавления git config --global core.editor giteditor.pl у вас есть правильный редактор, где бы вы ни находились.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню