Как использовать код 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 по умолчанию. Цитируется из документации:

  1. Убедитесь, что вы можете запустить code --help из командной строки, и вы получите помощь.

    • Если вы не видите справку, выполните следующие действия:

      • Mac: выберите команду "Shell": установите команду "Code" в пути из палитры команд.

        • Палитра команд - это то, что появляется, когда вы нажимаете shift + + P внутри кода VS. (shift + ctrl + P в Windows)
      • Windows: Убедитесь, что вы выбрали " Добавить в PATH" во время установки.
      • Linux: убедитесь, что вы установили код с помощью наших новых пакетов .deb или .rpm.
  2. Из командной строки запустите git config --global core.editor "code --wait"

Теперь вы можете запустить git config --global -e и использовать VS Code в качестве редактора для настройки Git. enter image description here Добавьте следующее, чтобы включить поддержку использования 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. Смотрите этот вопрос для получения дополнительных возможностей.