Я бы предложил использовать твердую библиотеку с открытым исходным кодом в качестве http-клиента. Если вы посмотрите на http client от ASF, вы найдете жизнь намного проще. Это простой в использовании, масштабируемый и надежный клиент для http.
Обновление сентябрь 2015 г. (6 лет спустя)
Последний выпуск git-for-Windows ( 2.5.3) теперь включает:
Путем настройки
git config core.editor notepad
пользователи теперь могут использоватьnotepad.exe
в качестве редактора по умолчанию .
Конфигурированиеgit config format.commitMessageColumns 72
будет получено оболочкой блокнота и переносом строки сообщения о коммите после того, как пользователь его отредактирует.
См. commit 69b301b by Йоханнес Шинделин ( dscho
) .
И Git 2.16 (Q1 2018) покажет пользователю сообщение о том, что он ожидает, когда пользователь закончит редактирование при порождении редактора, в случае, если редактор открывается в скрытое окно или где-то неясное, и пользователь получает потерян.
См. commit abfb04d (07 декабря 2017 г.) и commit a64f213 (29 ноября 2017 г.) автора Lars Schneider ( larsxschneider
) .
При поддержке: Хунио С. Хамано ( Гитстер
) .
(Объединено Хунио С. Хамано - Гитстер
- в commit 0c69a13 , 19 декабря 2017 г.)
launch_editor ()
: указать, что Git ожидает ввода пользователя, когда графический объект
GIT_EDITOR
порождается командой Git, которая Открытие и ожидает ввода пользователя (например, «git rebase -i
»), затем окно редактора может быть скрыт другими окнами.
Пользователь может смотреть на оригинальное окно терминала Git, даже не понимая, что ему / ей нужно взаимодействовать с другим окном, прежде чем Git сможет продолжить. Этому пользователю Git Появляется зависание.Распечатайте сообщение, что Git ждет ввода редактора в оригинале. терминал и избавиться от него, когда редактор возвращается, если терминал поддерживает удаление последней строки
Оригинальный ответ
Я только что проверил его с помощью 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, скрипт с « start /WAIT...
» в нем не будет работать, а только откроет новое окно DOS)
Ответ Беннетта упоминает о возможности избежать добавления скрипта, но напрямую ссылаться на саму программу между простыми кавычками . Обратите внимание на направление косых черт! Используйте /
НЕ \
для разделения папок в имени пути!
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"
Но я предпочитаю использовать скрипт (см. Ниже) : таким образом я могу играть с разными путями или разными вариантами без необходимости заново регистрировать git config
.
Реальным решением (со сценарием) было осознать, что:
то, на что вы ссылаетесь в конфигурационном файле фактически находится сценарий оболочки ( / bin / sh
) ,
Команды бота вызовут новый экземпляр notepad ++ (отсюда опция -multiInst
') и будут ждать закрытия этого экземпляра, прежде чем продолжить.
Обратите внимание, что я использую только' / ', а не \
». И я установил msysgit, используя вариант 2. (Добавьте каталог git \ bin
в переменную среды PATH
, но не переопределяя некоторые встроенные инструменты Windows)
Тот факт, что оболочка notepad ++ называется .bat, не является важно.
Vim/Gvim работает хорошо на меня.
>echo %EDITOR%
c:\Vim\Vim71\vim.exe
Я испытал затруднения, заставив мерзавца сотрудничать с wordpad, KomodoEdit и в значительной степени любым редактором, которого я даю ему. Самый открытый для редактирования, но мерзавца ясно не ожидает сохранения/близко к, происходят.
Как опора, я просто делал т.е.
git commit -m "Fixed the LoadAll method"
, чтобы поддерживать движение вещей. Имеет тенденцию сохранять мои сообщения о фиксации немного короче, чем они, вероятно, должны быть, но ясно существует некоторая работа, которая будет сделана на версии Windows мерзавца.
GitGUI также не это плохо. Требуется определенная ориентация, но после этого, это работает довольно хорошо.
Блокнот ++ работает просто великолепно, хотя я принимаю решение придерживаться Блокнота,-m, или даже иногда встроенного "редактирования".
проблема Вы встречаетесь, Блокнот использования ++ связан с тем, как мерзавец запускает исполняемый файл редактора. Мое решение этого состоит в том, чтобы установить РЕДАКТОРА на пакетный файл, а не фактический исполняемый файл редактора, который делает следующее:
start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*
WAIT / говорит сессии командной строки останавливаться до выходов приложения, таким образом Вы будете в состоянии отредактировать к содержанию своей основы, в то время как мерзавец счастливо ожидает Вас. % * передает все аргументы пакетному файлу до Блокнота ++.
c:\src>echo %EDITOR%
c:\tools\runeditor.bat
Кажется, как будто Мерзавец не найдет редактора, если будут пробелы в пути. Таким образом, необходимо будет поместить пакетный файл, упомянутый в ответ Patrick в непробельный путь.
В любом случае, я только что поигрался с этим и обнаружил, что для меня хорошо работает следующее:
git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"
Я не думаю, что CMD любит одинарные кавычки, поэтому вы должны использовать двойные кавычки «для указания аргумента строки, встроенной в пробел».
Cygwin (который, как я считаю, является базовой платформой для Git Bash), с другой стороны, нравятся и '
, и »
; вы можете укажите пути, подобные CMD, используя /
вместо \
, при условии, что строка заключена в кавычки, то есть в этом случае, используя одинарные кавычки.
- m
отменяет / указывает на использование нескольких редакторов, и нет необходимости в % *
на конце.
Я использую Cygwin в Windows, поэтому я использую:
export EDITOR="emacs -nw"
-nw
предназначен для без окон
, т.е. сказать Emacs не пытаться использовать X Window .
Привязки клавиш Emacs не работают для меня из оболочки Windows, поэтому я бы использовал это только из оболочки Cygwin ... ( rxvt рекомендуется.)
У меня была такая же проблема, но я нашел другое решение. Я получал
error: There was a problem with the editor 'ec'
У меня есть VISUAL = ec
и пакетный файл с именем ec.bat
на моем пути, который содержит одну строку:
c:\emacs\emacs-23.1\bin\emacsclient.exe %*
Это позволяет мне редактировать файлы из командной строки с помощью ec
, а установка VISUAL
означает, что большинство unix-программ также подхватывают его. Git, похоже, ищет путь иначе, чем другие мои команды - когда я посмотрел на git commit
в Process Monitor , я увидел, что он просматривает каждую папку на пути для ec
и для ec.exe
, но не для ec.bat
.
Основываясь на ответе Даррена , чтобы использовать Notepad ++, вы можете просто сделать это (все в одной строке):
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Очевидно, C: / Program Files Часть /Notepad++/notepad++.exe
должна быть путем к исполняемому файлу Notepad ++ в вашей системе. Например, это может быть C: / Program Files (x86) / Notepad ++ / notepad ++. Exe
.
Для меня это работает как шарм.
Я также использую 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 передает путь к файлу с пробелами.
У меня PortableGit 1.6 работал нормально , но после обновления до версии PortableGit 1.7 Windows у меня возникли проблемы. Некоторые команды Git открывают Notepad ++. Exe нормально, но некоторые нет, особенно Git rebase ведет себя иначе.
Проблема в том, что некоторые команды запускают процесс cmd Windows, а некоторые используют процесс cmd Unix. Я хочу дать редактору Notepad ++ атрибуты запуска, поэтому мне нужен настраиваемый скрипт. Мое решение таково.
Создайте сценарий для запуска соответствующего текстового редактора. Скрипт выглядит странно, но он работает как с Windows, так и с Unix.
c: /PortableGit/cmd/git-editor.bat
#! / Bin / sh
# Открыть новый экземпляр
function doUnix () {{ {1}} "c: \ program files \ notepad ++ \ notepad ++. Exe" -multiInst -nosession -notabbar $ *
exit
}
doUnix $ *
: WINCALL
"c: \ program files \ notepad ++ \ notepad ++. Exe" -multiInst -nosession -notabbar% *
Установить глобальное ядро .editor variable
Скрипт был сохранен в папку git / cmd, так что он уже находится в пути gitconsole. Это обязательно, поскольку полный путь может работать некорректно.
git config --global core.editor "git-editor.bat"
Теперь я могу запустить git commit -a и git rebase -i master команды. Попробуйте, если у вас есть проблемы с инструментом Git Windows.
Я предпочитаю использовать Emacs. Настроить его может быть немного сложно.
c: \ emacs
. c: \ emacs \ bin \ addpm.exe
. Вам нужно щелкнуть правой кнопкой мыши и «Запуск от имени администратора», если вы используете Windows Vista или более позднюю версию. Это поместит исполняемые файлы на ваш путь. (запуск сервера)
где-нибудь в вашем файле .emacs
. См. Emacs Windows FAQ , чтобы узнать, где разместить файл .emacs
. git config --global core.editor emacsclientw
Git теперь будет открывать файлы в существующем процессе Emacs. Вам придется запустить этот существующий процесс вручную из c: \ emacs \ bin \ runemacs.exe
.
Я счастлив использовать Vim, но поскольку я пытаюсь внедрить Git в компании, я хотел что-то, что было бы у всех, и обнаружил, что WordPad, кажется, работает нормально (т.е. Git ждет, пока вы закончите редактирование и закроете окно).
git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'
Это при использовании Git Bash на msysgit; я не пробовал из командной строки Windows (если это имеет какое-то значение).