Как использовать код Visual Studio в качестве редактора по умолчанию для Git
При использовании git в командной строке мне интересно, можно ли использовать Visual Studio Code в качестве редактора по умолчанию, т.е. при создании комментариев коммита, и глядя на diff файла из командной строки.
Я понимаю, что использовать его для выполнения слияний (по крайней мере, в минуту) не удастся, но кто-нибудь знает, можно ли использовать его для поиска diff, и если да, то какие параметры командной строки требуется в файле .gitconfig, чтобы это произошло?
ОБНОВЛЕНИЕ 1:
Я пробовал подход, подобный тому, что я сделал для Notepad ++ в прошлом, т.е.
#!/bin/sh
"c:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
И используется:
#!/bin/sh
"C:\Users\gep13\AppData\Local\Code\app-0.1.0\Code.exe" "$*"
Но это приводит к сообщению об ошибке:
C:\temp\testrepo [master +1 ~0 -0]> git commit
[8660:0504/084217:ERROR:crash_reporter_win.cc(70)] Cannot initialize out-of-process crash handler
Aborting commit due to empty commit message.
C:\temp\testrepo [master +1 ~0 -0]>
Код открывается правильно, с ожидаемым контентом, но он не ждет ответа, т.е. нажав сохранение и закрытие окна, чтобы вернуться к приглашению.
ОБНОВЛЕНИЕ 2:
Я только что услышал от одного из разработчиков, работающих на VSCode. Похоже, что эта функциональность в настоящее время не поддерживается: - (
https://twitter.com/IsidorN/status/595501573880553472
Если вам интересно, чтобы эта функция была добавлена, вы можете подумать о добавлении голосов здесь:
http://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/7756482-support-git-configure-diff-and-merge-tools
ОБНОВЛЕНИЕ 3:
Я был надёжно проинформирован, что эта функция была подобрана командой VSCode, поэтому я с нетерпением жду будущей версии, которая будет включите его.
ОБНОВЛЕНИЕ 4:
Благодаря комментарию @f-boucheros ниже, мне удалось заставить VS Code работать редактором по умолчанию для комментирования комментариев, rebase и т.д. Мне все же хотелось бы посмотреть, можно ли использовать его в качестве инструмента diff также.
ОБНОВЛЕНИЕ 5:
В соответствии с принятым ответом на вопрос, теперь это возможно с использованием версии V1.0 кода.
Ответы
Ответ 1
В последнем выпуске (v1.0, выпущенном в марте 2016 г.) вы теперь можете использовать VS Code в качестве инструмента git commit/diff по умолчанию. Цитируется из документации:
-
Убедитесь, что вы можете запустить code --help
из командной строки, и вы получите помощь.
- Из командной строки запустите
git config --global core.editor "code --wait"
Теперь вы можете запустить git config --global -e
и использовать VS Code в качестве редактора для настройки Git.
Добавьте следующее, чтобы включить поддержку использования VS Code в качестве инструмента сравнения:
[diff]
tool = default-difftool
[difftool "default-difftool"]
cmd = code --wait --diff $LOCAL $REMOTE
Это использует новую --diff
вы можете передать VS Code для сравнения двух файлов рядом.
Подводя итог, вот несколько примеров, где вы можете использовать Git с VS Code:
-
git rebase HEAD~3 -i
позволяет интерактивно перебазировать, используя VS Code -
git commit
позволяет использовать VS Code для сообщения коммита -
git add -p
и e
для интерактивного добавления -
git difftool <commit>^ <commit>
позволяет использовать VS Code в качестве редактора diff для изменений
Ответ 2
Для того, что я понимаю, VSCode больше не находится в AppData.
Итак, установите редактор по умолчанию git, выполнив эту команду в окне командной строки:
git config --global core.editor "'C:\Program Files (x86)\Microsoft VS Code\code.exe' -w"
Параметр -w
, --wait
должен ждать, пока окно будет закрыто перед возвратом. Код Visual Studio основан на редакторе Atom. если у вас также установлен атом, выполните команду atom --help
. Вы увидите, что последний аргумент в справке - это ждать.
В следующий раз, когда вы выполните git rebase -i HEAD~3
, появится всплывающее окно Visual Studio Code. Когда VSCode близок, тогда git вернет лидерство.
Примечание. Моя текущая версия VSCode равна 0.9.2
Я надеюсь, что помощь.
Ответ 3
Вам нужно использовать команду:
git config --global core.editor "'C:\Program Files\Microsoft VS Code\code.exe' -n -w"
Убедитесь, что вы можете запустить свой редактор из Git Bash
Если вы хотите использовать Code.exe с коротким путем, вы можете сделать это, добавив следующую строку в ваш.bash_profile:
alias vscode="C:/Program\ Files/Microsoft\ VS\ Code/Code.exe"
И теперь вы можете вызвать его, используя только команду vscode
(или как вы ее назвали)
Некоторая дополнительная информация:
Программа установки добавит код Visual Studio в ваш% PATH%, поэтому в консоли вы можете ввести "код", чтобы открыть VS Code в этой папке. Вам нужно будет перезапустить консоль после установки, чтобы изменение переменной среды% PATH% вступило в силу.
Ответ 4
Я открыл свой .gitconfig
и внеся изменения:
[core]
editor = 'C:/Users/miqid/AppData/Local/Code/app-0.1.0/Code.exe'
Это сделало это для меня (я нахожусь в Windows 8).
Однако я заметил, что после того, как я попробовал произвольное git commit
, которое в моей консоли Git Bash, я вижу следующее сообщение:
[9168:0504/160114:INFO:renderer_main.cc(212)] Renderer process started
Не уверен, что это может быть.
Ответ 5
GitPad устанавливает ваш текущий текстовый редактор как редактор по умолчанию для Git.
Мой редактор по умолчанию для .txt
файлов в Windows 10 - это код Visual Studio, а запуск GitPad однажды стал редактором по умолчанию для Git. Я не испытывал проблем, упомянутых в вопросе (Git ждет, пока окно VS-кода не будет закрыто в моем случае).
(Ссылка для файла .exe
не работает для меня, вам, возможно, придется самому скомпилировать исходный код.)
Ответ 6
Хорошие новости! На момент написания этой функции эта функция уже реализована в выпуске 0,10.12-инсайдеров и реализована через 0.10.14-инсайдеры. Следовательно, мы будем иметь его в следующей версии 1.0 Release VS Code.
Реализация Ref: Внедрить -w/- wait command line arg
Ответ 7
Запустите эту команду в приложении Mac Terminal
git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"
Ответ 8
Просто хочу добавить эти косые черты к предыдущим ответам, я нахожусь на Windows 10 CMD, и это не работает без косых черт перед пробелами.
git config --global core.editor "C:\\Users\\your_user_name\\AppData\\Local\\Programs\\Microsoft\ VS\ Code\\Code.exe"
Ответ 9
Я не уверен, что вы можете это сделать, однако вы можете попробовать эти дополнения в файле gitconfig.
Попробуйте заменить kdiff3 на эти значения, чтобы указать на исполняемый код визуального студийного кода.
[merge]
tool = kdiff3
[mergetool "kdiff3"]
path = C:/Program Files/KDiff3/kdiff3.exe
keepBackup = false
trustExitCode = false
Ответ 10
Я установил Visual Studio Code по умолчанию, чтобы открыть файл .txt. И затем я использовал простую команду: git config --global core.editor "'C:\Users\UserName\AppData\Local\Code\app-0.7.10\Code.exe\'"
. И все работает очень хорошо.
Ответ 11
в Windows 10 с использованием 64-битной инсайдерской версии команда должна быть:
git config --global core.editor "'C:\Program Files\Microsoft VS Code Инсайдеры\Bin\код-insiders.cmd '"
вы также можете переименовать "code-insiders.cmd" в "code.cmd" в каталоге "Program Files",
таким образом вы теперь можете использовать команду "code". для начала редактирования файлов на. Каталог
Ответ 12
Я пытаюсь запустить ту же команду, но я получаю этот вывод:
username ~ $ git config --global core.editor "code - wait" username ~ $ git config --global -e подсказка: ожидание закрытия редактором файла... code - wait: code: команда не найдена ошибка: возникла проблема с редактором 'code - wait'.
Но я понятия не имею, как это исправить... Вы знаете, как это сделать?
Спасибо!!
Ответ 13
Еще одна полезная опция - установить EDITOR
окружения EDITOR
. Эта переменная окружения используется многими утилитами, чтобы узнать, какой редактор использовать. Git также использует его, если не установлен core.editor
.
Вы можете установить его для текущей сессии, используя:
export EDITOR=code --wait
Таким образом, не только git
, но и многие другие приложения будут использовать VS Code в качестве редактора.
Чтобы сделать это изменение постоянным, добавьте его, например, в ~/.profile
. Смотрите этот вопрос для получения дополнительных возможностей.