Git के लिए Default Editor के रूप में Visual Studio कोड का उपयोग कैसे करें


363

कमांड लाइन पर गिट का उपयोग करते समय, मैं सोच रहा हूं कि क्या विज़ुअल स्टूडियो कोड को डिफ़ॉल्ट संपादक के रूप में उपयोग करना संभव है, अर्थात जब कमेंट क्रिएट करें, और कमांड लाइन से फाइल के एक अलग भाग को देखें।

मैं समझता हूं कि मर्ज करने के लिए इसका इस्तेमाल करना संभव नहीं होगा (कम से कम मिनट में), लेकिन क्या किसी को पता है कि क्या इसका इस्तेमाल डिफरेंस देखने के लिए करना संभव है, और यदि हां, तो कमांड लाइन विकल्प की आवश्यकता क्या होगी .Itconfig फ़ाइल को ऐसा करने के लिए?

अद्यतन 1:

मैं एक दृष्टिकोण है कि मैं क्या करने के लिए किया है के लिए इसी तरह की कोशिश की है ++ अतीत में नोटपैड , यानी

#!/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 टिप्पणी के लिए धन्यवाद, मैं वीएस कोड प्राप्त करने में सक्षम रहा हूं, जो कि प्रतिबद्ध टिप्पणियों, रिबेस, आदि के लिए डिफ़ॉल्ट संपादक के रूप में काम कर रहा है, मैं अभी भी यह देखना चाहूंगा कि क्या यह संभव है कि इसे अलग टूल के रूप में भी उपयोग किया जाए।

अद्यतन 5:

प्रश्न के स्वीकृत उत्तर के अनुसार, अब V1.0 कोड जारी करना संभव है।

जवाबों:


672

सबसे हालिया रिलीज़ (v1.0, मार्च 2016 में जारी ) में, अब आप वीएस कोड का उपयोग डिफ़ॉल्ट गिट कमिट / डिफरेंट टूल के रूप में कर सकते हैं । दस्तावेजों से उद्धृत:

  1. सुनिश्चित करें कि आप code --helpकमांड लाइन से चल सकते हैं और आपको मदद मिलती है।

    • यदि आपको सहायता नहीं दिखती है, तो कृपया इन चरणों का पालन करें:

      • Mac: शेल कमांड चुनें : कमांड पैलेट से पथ में 'कोड' कमांड इंस्टॉल करें

        • जब आप दबाते हैं तो कमांड पैलेट ऊपर होता है जब आप वीएस कोड के अंदर shift+ + दबाते हैं P। ( shift+ ctrl+ Pविंडोज में)
      • Windows: सुनिश्चित करें कि आपने स्थापना के दौरान PATH में चयन किया है।
      • लिनक्स: सुनिश्चित करें कि आपने हमारे नए .deb या .rpm पैकेज के माध्यम से कोड इंस्टॉल किया है।
  2. कमांड लाइन से, भागो git config --global core.editor "code --wait"

अब आप चला सकते हैं git config --global -eऔर Git को कॉन्फ़िगर करने के लिए संपादक के रूप में VS कोड का उपयोग कर सकते हैं । यहां छवि विवरण दर्ज करें वीएस कोड को अलग उपकरण के रूप में उपयोग करने के लिए समर्थन सक्षम करने के लिए निम्नलिखित जोड़ें:

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --diff $LOCAL $REMOTE

यह नए --diffविकल्प का लाभ उठाता है, जो आप वी.एस. कोड में दो फाइलों के साथ-साथ तुलना कर सकते हैं।

संक्षेप में, यहाँ कुछ उदाहरण दिए गए हैं जहाँ आप VS कोड के साथ Git का उपयोग कर सकते हैं:

  • git rebase HEAD~3 -i वीएस कोड का उपयोग करके इंटरएक्टिव रिबेस करने की अनुमति देता है
  • git commit प्रतिबद्ध संदेश के लिए वीएस कोड का उपयोग करने की अनुमति देता है
  • git add -pइसके बाद eइंटरैक्टिव ऐड के लिए
  • git difftool <commit>^ <commit> परिवर्तनों के लिए अलग संपादक के रूप में वीएस कोड का उपयोग करने की अनुमति देता है

84
मैं भी मददगार --new-windowहोने के लिए कमांड में addinng पाया । इस तरह गिट ऑपरेशन एक नई विंडो में खुलेगा।
जटरेलो

2
जब हम कमांड लाइन के बारे में बात करते हैं तो हमारा मतलब है Ctrl+Shift+P? मेरा काम नहीं कर रहा है ( code --helpउपलब्ध नहीं है) और मुझे समझ में नहीं आ रहा है कि इसका क्या मतलब है: "सुनिश्चित करें कि आपने स्थापना के दौरान पेट में जोड़ें" मुझे इसे जांचने के लिए क्या करना चाहिए? क्या कोई मेरी सहायता कर सकता है?
पाओलो फाल्मो

2
V1.1 के रूप में ध्यान दें आपको "हॉट एग्जिट" को निष्क्रिय करने की आवश्यकता है या vscode से बाहर निकलने से पहले फ़ाइल को स्पष्ट रूप से सहेजना याद रखें अन्यथा गिट में आपके परिवर्तन नहीं दिखाई देंगे। यदि आप बाहर निकलने पर बचाने के लिए याद "files.hotExit": "off"
दिलाना

6
मुझे git config core.editor "code -n --wait"वीएस कोड 1.17.2 के साथ उपयोग करना था , बाहरी कमांड लाइन से चल रहा था। दोनों codeऔर code --waitमुझे "खाली प्रतिबद्ध संदेश के कारण गर्भपात करने की प्रतिबद्धता" मिली।
रॉबर्ट कैलहॉन

3
और मर्ज अब उपलब्ध है: [मर्ज] उपकरण = vscode [mergetool "vscode"] cmd = कोड
स्टिंग

31

जो मैं समझता हूं, VSCode अब AppData में नहीं है।

तो कमांड प्रॉम्प्ट विंडो में उस कमांड को निष्पादित करके डिफ़ॉल्ट git एडिटर सेट करें:

git config --global core.editor "'C:\Program Files (x86)\Microsoft VS Code\code.exe' -w"

पैरामीटर -w, --waitलौटने से पहले खिड़की बंद होने का इंतजार करना है। Visual Studio Code Atom Editor पर बेस है। अगर आपके पास भी atom इंस्टॉल है तो कमांड को निष्पादित करें atom --help। आप देखेंगे कि सहायता में अंतिम तर्क प्रतीक्षा है।

अगली बार जब आप ऐसा git rebase -i HEAD~3करेंगे तो यह विजुअल स्टूडियो कोड को पॉपअप कर देगा। एक बार VSCode बंद हो गया तो Git वापस ले लेगा।

नोट: VSCode का मेरा वर्तमान संस्करण 0.9.2 है

मुझे उम्मीद है कि मदद


धन्यवाद! इसका क्या महत्व है -wऔर आपने उस दस्तावेज को कहां पाया है?
गैरी इवान पार्क

1
अच्छी बात। यह एटम से आ रहा है -w प्रतीक्षा के लिए है। मैंने अपना उत्तर संपादित किया।
फ्रैंक बाउचर

मैंने इसे स्थापित किया है, और मुझे यह कहते हुए खुशी हो रही है कि यह काम कर रहा है। अगर मुझे यह अब विजुअल स्टूडियो कोड के रूप में काम करने के लिए मिल सकता है और साथ ही फाइलों को अलग-अलग करने में भी, तो यह बहुत अच्छा होगा! :-)
गैरी इवान पार्क

10
अब यह वीएस कोड के नवीनतम अद्यतन के साथ काम नहीं करता है। आपके पास कोई विचार है? धन्यवाद!
गैरी इवान पार्क

2
@GaryEwanPark: आपको कमांड लाइन विकल्प काम करने के लिए, बिन सबडायरेक्ट से code.cmd (या * nix पर कोड ) लॉन्च करने की आवश्यकता है । आदर्श रूप से आप बिन उपनिर्देशिका को अपने% PATH% पर्यावरण चर में जोड़ देंगे (इंस्टॉलर ऐसा आपके लिए भी करता है), और चल रहे संपादक को कॉन्फ़िगर करें । git config --global core.editor "code --wait"
IInspectable

13

आपको कमांड का उपयोग करने की आवश्यकता है:

git config --global core.editor "'C:\Program Files\Microsoft VS Code\code.exe' -n -w"

सुनिश्चित करें कि आप अपने संपादक को गिट बैश से शुरू कर सकते हैं

यदि आप शॉर्ट पाथ के साथ Code.exe का उपयोग करना चाहते हैं, तो आप निम्न लाइन को अपने .bash_profile में जोड़कर कर सकते हैं:

alias vscode="C:/Program\ Files/Microsoft\ VS\ Code/Code.exe"

और अब, आप इसे केवल vscodeकमांड का उपयोग करके कॉल कर सकते हैं (या आपने जो भी नाम दिया है)

कुछ अतिरिक्त जानकारी:

सेटअप विज़ुअल स्टूडियो कोड को आपके% PATH% में जोड़ देगा, इसलिए कंसोल से आप उस फ़ोल्डर पर VS कोड खोलने के लिए 'कोड' टाइप कर सकते हैं। प्रभावी होने के लिए% PATH% पर्यावरण चर में परिवर्तन के लिए स्थापना के बाद आपको अपने कंसोल को पुनरारंभ करना होगा।


1
-n--new-windowएक नए संपादक विंडो को खोलने के लिए git बनाने के लिए छोटा है , और इसके -wलिए कम है --wait, जिससे आप फिर से विंडो बंद करने के लिए इंतजार कर रहे हैं। यह एकमात्र उत्तर है जो मेरे लिए काम करता है, क्योंकि मैं अगर मेरे पास पहले से वीएस कोड खुला है, तो --waitबिना काम नहीं होगा --new-window
Jan Aagard

11

एक अन्य उपयोगी विकल्प EDITORपर्यावरण चर सेट करना है। इस पर्यावरण चर का उपयोग कई उपयोगिताओं द्वारा यह जानने के लिए किया जाता है कि किस संपादक का उपयोग करना है। अगर core.editorसेट नहीं है तो गिट भी इसका इस्तेमाल करते हैं ।

आप इसे वर्तमान सत्र के लिए सेट कर सकते हैं:

export EDITOR="code --wait"

इस तरह से न केवल git, बल्कि कई अन्य अनुप्रयोग एक संपादक के रूप में वीएस कोड का उपयोग करेंगे।

इस परिवर्तन को स्थायी बनाने के लिए, इसे अपने ~/.profileउदाहरण के लिए जोड़ें । अधिक विकल्पों के लिए यह प्रश्न देखें ।


इस दृष्टिकोण का एक और लाभ यह है कि आप अलग-अलग मामलों के लिए अलग-अलग संपादकों को सेट कर सकते हैं:

  1. जब आप स्थानीय टर्मिनल से काम कर रहे हों।
  2. जब आप SSH सत्र के माध्यम से जुड़े होते हैं।

यह विशेष रूप से वीएस कोड (या किसी अन्य जीयूआई संपादक) के साथ उपयोगी है क्योंकि यह जीयूआई के बिना काम नहीं करता है।

Linux OS पर, इसे अपने में रखें ~/.profile:

# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then # SSH mode
  export EDITOR='vim'
else # Local terminal mode
  export EDITOR='code -w'
fi

इस तरह जब आप एक स्थानीय टर्मिनल का उपयोग करते हैं, तो $SSH_CONNECTIONपर्यावरण चर खाली हो जाएगा, इसलिए code -wसंपादक का उपयोग किया जाएगा, लेकिन जब आप एसएसएच के माध्यम से जुड़े होते हैं, तो $SSH_CONNECTIONपर्यावरण चर एक गैर-रिक्त स्ट्रिंग होगा, इसलिए vimसंपादक का उपयोग किया जाएगा। यह कंसोल एडिटर है, इसलिए यह तब भी काम करेगा जब आप SSH के माध्यम से जुड़े होंगे।


2

मैंने अपना खोला .gitconfigऔर उसमें संशोधन किया:

[core]
    editor = 'C:/Users/miqid/AppData/Local/Code/app-0.1.0/Code.exe'

यह मेरे लिए था (मैं विंडोज 8 पर हूँ)।

हालाँकि, मैंने देखा कि जब मैंने git commitअपने गश बैश कंसोल में एक मनमाना प्रयास किया तो मुझे निम्न संदेश दिखाई दिया:

[9168:0504/160114:INFO:renderer_main.cc(212)] Renderer process started

यह क्या हो सकता है की अनिश्चितता।


मैंने यह भी कोशिश की थी, हालांकि, मुझे C: \ Users \ gep13 / .gitconfig में "घातक: खराब कॉन्फिग फाइल लाइन 14 मिल रही थी" तो मैंने देखा कि मेरे पास बैकस्लैश थे, जहां आपके पास स्लैश हैं। उन दौर को बदलते हुए यह काम कर गया, लेकिन आप जैसे मैं देख रहा हूं "रेंडरर प्रक्रिया शुरू हुई" आउटपुट, जो वास्तव में मेरे लिए दो बार आउटपुट करता है, और फिर दिखाता है: "[11956: 0504/091108: ERROR: ipc_changer_win.cc (136)] पाइप त्रुटि: 109 "लेकिन प्रतिबद्ध वास्तव में काम किया है लगता है।
गैरी इवान पार्क

आह, दिलचस्प है। ऐसा प्रतीत होता है कि मेरा सुझाव केवल तभी काम करता है जब आपको कमिट करने से पहले कोड पूरी तरह से बंद हो गया हो (बहुत सुविधाजनक नहीं!) । यदि कोड खुला है, तो मैंने आपके अपडेट में उसी त्रुटि का सामना किया है।
miqh

वास्तव में दिलचस्प है। मुझे लगता है कि जहां नोटपैड ++ के लिए -MultiInst झंडा खेलने में आ जाएगा। मुझे आश्चर्य है कि अगर VSCode के लिए कुछ समान है।
गैरी इवान पार्क

सिर्फ FYI करें, app-0.1.0/resources/app/env.jsकुछ कमांड-लाइन झंडे शामिल करने के लिए प्रतीत होता है जो कोड निष्पादन योग्य लेता है। कोई भी व्यवहार के अनुरूप सुझाव नहीं देता है -multiInst
miqh

आपको --waitध्वज जोड़ने की आवश्यकता है , और --new-windowध्वज भी अत्यधिक अनुशंसित है, ताकि प्रतिबद्ध msg / diff / जो पहले से ही खुले संपादक में एक नए टैब के रूप में दिखाई नहीं देता है, आपको फ़ाइलों को बंद करने की आवश्यकता होती है जो आप अभी भी हो सकते हैं आप संपादन कर रहे हैं कि गिट को संकेत करने के लिए काम कर रहे हैं।
Isochronous

1

GitPad आपके वर्तमान पाठ संपादक को Git के डिफ़ॉल्ट संपादक के रूप में सेट करता है।

.txtविंडोज़ 10 में फ़ाइलों के लिए मेरा डिफ़ॉल्ट संपादक विजुअल स्टूडियो कोड है और GitPad चलाने के बाद इसे Git के लिए डिफ़ॉल्ट संपादक बना दिया। मैंने प्रश्न में वर्णित समस्याओं का अनुभव नहीं किया है (जब तक वीएस कोड विंडो मेरे मामले में बंद नहीं हो जाती है तब तक प्रतीक्षा करता है)।

( .exeफ़ाइल के लिए लिंक मेरे लिए काम नहीं किया, आपको स्रोत स्वयं संकलन करने की आवश्यकता हो सकती है।)


आपने डिफ़ॉल्ट संपादक के रूप में क्या इंगित किया? मैंने यहाँ जो वर्णन किया है उसका उपयोग करने की कोशिश की है: donovanbrown.com/post/2015/07/07/… लेकिन वह काम नहीं करना चाहता। वास्तव में एक विशिष्ट exe पर इंगित नहीं करना चाहते हैं, क्योंकि कोड अपडेट होते ही बदल जाएगा।
गैरी इवान पार्क

1
जब मैंने किया था @Gary, मैं एक विशिष्ट फ़ाइल बात करने के लिए नहीं था, कोड सूची में था Right click> Open with> Chose another app। मैं उम्मीद करूंगा कि यह सेटअप पर खुद को पंजीकृत करेगा (और हर अपडेट के साथ रजिस्ट्री को अपडेट कर सकता है ताकि शेल इसे पा सके) लेकिन मुझे रजिस्ट्री में "ओपन विद कोड" संदर्भ मेनू आइटम के अलावा कुछ भी नहीं मिला। इसलिए मेरे पास इसके लिए कोई स्पष्ट जवाब नहीं है, क्षमा करें।
फाक गेर

हम्म, यह अजीब है, मेरे पास सूची में एक प्रविष्टि के रूप में कोड नहीं है जो तब दिखाई देता है जब मैं ऐसा करता हूं।
गैरी इवान पार्क

1

खुशखबरी! लेखन के समय, यह सुविधा पहले से ही में लागू किया गया 0.10.12-अंदरूनी सूत्रों जारी है और के माध्यम से किया 0.10.14-अंदरूनी सूत्रों । इसलिए हम इसे वीएस कोड के आगामी संस्करण 1.0 रिलीज में शामिल करने जा रहे हैं ।

कार्यान्वयन रेफरी: कार्यान्वयन -w / - प्रतीक्षा कमांड लाइन arg


क्या आप इस बारे में टिप्पणी कर सकते हैं कि मैं कैसे GSC में अंतर देखने के लिए VSCode के भीतर मौजूद दर्शक का उपयोग कर पाऊंगा?
गैरी इवान पार्क

1

बस पिछले उत्तरों में इन बैक स्लैश को जोड़ना चाहते हैं, मैं विंडोज 10 सीएमडी पर हूं, और यह रिक्त स्थान से पहले बैक स्लैश के बिना काम नहीं करता है।

git config --global core.editor "C:\\Users\\your_user_name\\AppData\\Local\\Programs\\Microsoft\ VS\ Code\\Code.exe"

मैं इसके साथ जोड़ने में सक्षम था: git config --global core.editor "'C: \ Users \ cbre_admin \ AppData \ Local \ Programs \ Microsoft VS कोड \ Code.exe' -w"
rjt011000

0

मुझे यकीन नहीं है कि आप ऐसा कर सकते हैं, हालांकि आप अपनी gitconfig फ़ाइल में इन परिवर्धन की कोशिश कर सकते हैं।

इन मानों से kdiff3 को बदलने की कोशिश करें ताकि दृश्य स्टूडियो कोड निष्पादन योग्य हो सके।

[merge] tool = kdiff3 [mergetool "kdiff3"] path = C:/Program Files/KDiff3/kdiff3.exe keepBackup = false trustExitCode = false


जैसा कि मैंने अपने प्रश्न में उल्लेख किया है, मुझे नहीं लगता कि विलय का समर्थन किया जाएगा, क्योंकि मुझे नहीं लगता कि विज़ुअल स्टूडियो कोड जानता है कि यह कैसे करना है, मुझे संदेह है कि यह केवल अंतर करने और संदेश भेजने में सक्षम होगा।
गैरी इवान पार्क

0

मैं .txt फ़ाइल को खोलने के लिए डिफ़ॉल्ट के रूप में Visual Studio कोड सेट करता हूं। और अगले मैंने साधारण कमांड का उपयोग किया git config --global core.editor "'C:\Users\UserName\AppData\Local\Code\app-0.7.10\Code.exe\'":। और सब कुछ बहुत अच्छा काम करता है।


0

इस आदेश को अपने मैक टर्मिनल ऐप में चलाएं

git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"

2
जब आप त्रुटि संदेश प्राप्त करते हैं, तो यह काफी काम नहीं करता है: खाली प्रतिबद्ध संदेश के कारण प्रतिबद्ध करना। एक प्रतीक्षा ध्वज को जोड़ना होगा। उदाहरण के लिए - प्रतीक्षा करें।
बेलफिल्ड

0

64 बिट अंदरूनी सूत्र संस्करण का उपयोग करते हुए विंडोज़ 10 पर कमांड होनी चाहिए:

git config --global core.editor "'C: \ Program Files \ Microsoft VS कोड अंदरूनी सूत्र \ bin \ code-insiders.cmd'"

आप 'प्रोग्राम फाइल्स' डायरेक्टरी में 'code-insiders.cmd' का नाम बदलकर 'code.cmd' भी कर सकते हैं, इस तरह से अब आप 'code' कोड का उपयोग कर सकते हैं। ' पर फ़ाइलों का संपादन शुरू करने के लिए। निर्देशिका

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.