كيف يمكنني إعداد محرر للعمل مع Git على نظام التشغيل Windows؟

StackOverflow https://stackoverflow.com/questions/10564

  •  08-06-2019
  •  | 
  •  

سؤال

أنا أحاول جيت على ويندوز.لقد وصلت إلى حد تجربة "git Commit" وحصلت على هذا الخطأ:

المحطة غبية ولكن لا يوجد محرر بصري أو محرر.يرجى تقديم الرسالة باستخدام خيار -M أو -F.

لذلك اكتشفت أنني بحاجة إلى متغير بيئة يسمى EDITOR.لا مشكلة.لقد قمت بتعيينه للإشارة إلى المفكرة.لقد نجح ذلك تقريبًا.يتم فتح رسالة الالتزام الافتراضية في المفكرة.لكن برنامج "المفكرة" لا يدعم خلاصات الخطوط العارية.خرجت وحصلت المفكرة ++, ، لكن لا يمكنني معرفة كيفية إعداد برنامج Notepad++ باعتباره %EDITOR% بطريقة تعمل مع Git كما هو متوقع.

أنا لست متزوجا من المفكرة ++.في هذه المرحلة، لا أمانع في استخدام المحرر.أريد فقط أن أكون قادرًا على ذلك اكتب رسائل الالتزام في المحرر بدلاً من سطر الأوامر (مع -m).

أولئك منكم الذين يستخدمون Git على نظام التشغيل Windows:ما الأداة التي تستخدمها لتحرير رسائل الالتزام الخاصة بك، وما الذي عليك فعله لإنجاحها؟

هل كانت مفيدة؟

المحلول

تحديث سبتمبر 2015 (بعد 6 سنوات)

ال الإصدار الأخير من git-for-Windows (2.5.3) يتضمن الآن:

عن طريق التكوين git config core.editor notepad, المستخدمين يمكن الآن استخدامها notepad.exe كمحرر افتراضي.
تكوين git config format.commitMessageColumns 72 سيتم التقاطها بواسطة غلاف المفكرة ولف رسالة الالتزام بعد أن يقوم المستخدم بتحريرها.

يرى ارتكاب 69b301b بواسطة يوهانس شندلين (dscho).

وسيعرض GIT 2.16 (Q1 2018) رسالة لإخبار المستخدم بأنه ينتظر أن ينهي المستخدم التحرير عند وضع محرر ، في حالة افتتاح المحرر على نافذة مخفية أو في مكان غامض ويضيع المستخدم.

يرى ارتكاب abfb04d (07 ديسمبر 2017)، و ارتكاب a64f213 (29 نوفمبر 2017) بواسطة لارس شنايدر (larsxschneider).
بمساعدة: جونيو سي هامانو (gitster).
(تم الدمج بواسطة جونيو سي هامانو -- gitster -- في ارتكاب 0c69a13, ، 19 ديسمبر 2017)

launch_editor():تشير إلى أن Git ينتظر إدخال المستخدم

عندما رسومية GIT_EDITOR يتم إنتاجه بواسطة أمر GIT الذي يفتح وينتظر إدخال المستخدم (على سبيل المثال"git rebase -i") ، ثم قد تحجب نافذة المحرر بواسطة النوافذ الأخرى.
قد يترك المستخدم يحدق في نافذة Git Terminal الأصلية دون أن يدرك أنه يحتاج إلى التفاعل مع نافذة أخرى قبل أن تتمكن 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، ولكن ليس من قذيفة بوابة.
(ليس ذلك مع آلية التكوين 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.


كان الحل الفعلي (مع البرنامج النصي) هو إدراك ما يلي:
ما تشير إليه في ملف التكوين هو في الواقع Shell (/bin/sh) النصي, ، وليس برنامج نصي DOS.

إذن ما العمل هو:

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 المضمنة)

حقيقة أن غلاف المفكرة ++ يسمى .bat ليس مهمًا.
سيكون من الأفضل تسميته "npp.sh" ووضعه في ملف [git]\cmd الدليل بالرغم من ذلك (أو في أي دليل يشير إليه متغير بيئة PATH الخاص بك).


أنظر أيضا:


lightfire228 يضيف في التعليقات:

بالنسبة لأي شخص يواجه مشكلة حيث يقوم N++ بفتح ملف فارغ فقط، ولا يتلقى git رسالة الالتزام الخاصة بك، راجع "إحباط الالتزام بسبب رسالة فارغة":تغيير الخاص بك .bat أو .sh الملف ليقول:

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

سيؤدي ذلك إلى مطالبة برنامج notepad++ بفتح ملف الالتزام المؤقت، بدلاً من ملف جديد فارغ.

نصائح أخرى

بناء على الجواب دارين, ، لاستخدام برنامج 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 .

وتعمل مثل السحر بالنسبة لي.

على أي حال، لقد كنت ألعب مع هذا للتو ووجدت ما يلي يعمل بشكل جيد بالنسبة لي:

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

لا أعتقد أن CMD يحب علامات الاقتباس المفردة لذا يجب عليك استخدام علامات الاقتباس المزدوجة "لتحديد وسيطة السلسلة المضمنة بالمسافة".

من ناحية أخرى، فإن Cygwin (الذي أعتقد أنه النظام الأساسي لـ Git's Bash) يحب كليهما ' و ";يمكنك تحديد مسارات تشبه CMD باستخدام / بدلاً من \, ، طالما أن السلسلة مقتبسة، على سبيل المثال.في هذه الحالة، باستخدام علامات الاقتباس المفردة.

ال -m يتجاوز/يشير إلى استخدام محررين متعددين وليست هناك حاجة لـ %* علق في النهاية.

يحرر: بعد التحديث إلى vim 7.3، توصلت إلى نتيجة مفادها أن الطريقة الأنظف والأسهل للقيام بذلك هي:

  1. أضف مجلد Vim الرئيسي إلى المسار الخاص بك (انقر بزر الماوس الأيمن على جهاز الكمبيوتر -> خصائص -> خيارات متقدمة -> متغيرات البيئة)

  2. تشغيل هذا: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، بل هي خطوط مائلة عادية للأمام.

يعمل برنامج Notepad++ بشكل جيد، على الرغم من أنني اخترت الاستمرار في استخدام برنامج Notepad أو -m أو حتى في بعض الأحيان "التحرير" المدمج.

تتعلق المشكلة التي تواجهها في استخدام برنامج Notepad++ بكيفية قيام git بتشغيل المحرر القابل للتنفيذ.الحل الذي أقترحه هو تعيين EDITOR على ملف دفعي، بدلاً من المحرر الفعلي القابل للتنفيذ، والذي يقوم بما يلي:

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

/ WAIT يخبر جلسة سطر الأوامر بالتوقف حتى خروج التطبيق، وبالتالي ستتمكن من تعديل المحتوى الذي تفضله بينما ينتظرك git بكل سرور.يقوم %* بتمرير كافة الوسائط إلى الملف الدفعي عبر Notepad++.

c:\src>echo %EDITOR%
c:\tools\runeditor.bat

الدفتر!

أنا سعيد باستخدام vim، ولكن بما أنني أحاول تقديم Git إلى الشركة، فقد أردت شيئًا نمتلكه جميعًا، ووجدت أن Wordpad يبدو أنه يعمل بشكل جيد (على سبيل المثال.ينتظر Git حتى تنتهي من التحرير ويغلق النافذة).

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

هذا يستخدم Git Bash على msysgit؛لم أحاول من موجه أوامر Windows (إذا كان ذلك يحدث أي فرق).

أستخدم أيضًا Cygwin على نظام التشغيل Windows، ولكن مع gvim (على عكس المحطة الطرفية vim).

ولإتمام هذا العمل قمت بما يلي:

  1. تم إنشاء ملف دفعي من سطر واحد (يسمى git_editor.bat) والتي تحتوي على ما يلي:
    "C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
  2. وضعت git_editor.bat في بلدي PATH.
  3. تعيين GIT_EDITOR=git_editor.bat

وبهذا تم، git commit, ، إلخ.سوف يستدعي الملف القابل للتنفيذ gvim بشكل صحيح.

ملاحظة 1:ال --nofork يضمن خيار gvim حظره حتى تتم كتابة رسالة الالتزام.

ملاحظة 2:علامات الاقتباس حول المسار إلى gvim مطلوبة إذا كان لديك مسافات في المسار.

ملاحظة 3:علامات الاقتباس حول "%*" مطلوبة فقط في حالة قيام git بتمرير مسار ملف بمسافات.

شكرا لمجتمع SO...وبقليل من البحث تمكنت من الحصول على المحرر المفضل لدي، تحريرPadPro، للعمل كمحرر أساسي مع Msysgit 1.7.5.git و Tortoisegit v1.7.3.0 على Winxp SP3 ...

باتباع النصيحة أعلاه أضفت المسار إلى برنامج نصي bash لمحرر الكود ...

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

ولكن بعد عدة محاولات فاشلة للحلول المذكورة أعلاه ...لقد تمكنت أخيرا من الحصول على هذا العمل.وفقًا لوثائق EditPadPro، فإن إضافة علامة "/newinstance" ستسمح لـ Shell بانتظار إدخال المحرر ....

ال '/newinstance"كان العلم هو المفتاح في حالتي ...

#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"

هذا هو العرض الأول لمشاكل أكبر.والجدير بالذكر أن لديك شيئًا ما يضبط 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 as موجه في هذا التعليق على تقرير الأخطاء msysgit.

لوحة التحكم/النظام/المتغيرات المتقدمة/البيئة ...(أو ما شابه ، اعتمادًا على إصدار Windows الخاص بك) حيث يتم تعيين متغيرات البيئة اللاصقة على Windows.بشكل افتراضي ، لم يتم تعيين المصطلح.إذا تم تعيين المصطلح هناك ، فأنت (أو أحد البرامج التي قمت بتثبيتها - على سبيل المثال.الفراولة بيرل) وضعها.احذف هذا الإعداد ، ويجب أن تكون بخير.

وبالمثل، إذا كنت تستخدم Strawberry Perl وتهتم بعميل CPAN أو شيء من هذا القبيل، فيمكنك ترك TERM=dumb وحده واستخدامه unset TERM في ملف ~/.bashrc الخاص بك والذي سيكون له تأثير مماثل لتعيين مصطلح صريح على النحو الوارد أعلاه.

بالطبع جميع الحلول الأخرى صحيحة والتي يمكنك استخدامها git config --global core.editor $MYFAVORITEEDITOR للتأكد من أن git يستخدم محررك المفضل عندما يحتاج إلى تشغيل محرر لك.

ل ذرة يمكنك ان تفعل

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

وما شابه ذلك ل VSCode

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

والتي سوف تفتح ذرة أو VSCode نافذة يمكنك الالتزام من خلالها،

أو ل سامية

git config --global core.editor "subl -n -w"

قم بتحرير ملف .gitconfig في المجلد c:\Users\YourUser وأضف:

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

فيم/جفيم يعمل بشكل جيد بالنسبة لي.

>echo %EDITOR%

c:\Vim\Vim71\vim.exe

كان لدي PortableGit 1.6 يعمل بشكل جيد ولكن بعد الترقية إلى إصدار Windows PortableGit-1.7 واجهت مشاكل.تفتح بعض أوامر git برنامج Notepad++.exe بشكل جيد ولكن البعض الآخر لا يفتحها، خاصة جيت rebase يتصرف بشكل مختلف.

المشكلة هي أن بعض الأوامر تقوم بتشغيل عملية Windows cmd وبعضها يستخدم عملية Unix cmd.أرغب في إعطاء سمات بدء التشغيل لمحرر Notepad ++، لذا أحتاج إلى برنامج نصي مخصص.الحل الخاص بي هو هذا.

1) قم بإنشاء برنامج نصي لتشغيل محرر النصوص المناسب.يبدو البرنامج النصي غريبًا ولكنه يتعامل مع كل من Windows و Unix.ج:/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) تم حفظ Set Global Core.Editor Variable Script إلى مجلد GIT/CMD بحيث يكون بالفعل في مسار Gitconsole ، وهذا إلزامي لأن المسار الكامل قد لا يعمل بشكل صحيح.

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

الآن أستطيع الركض بوابة الالتزام -أ و git rebase -i master الأوامر.جربها إذا كانت لديك مشاكل في أداة Git windows.

أستخدم git على منصات متعددة، وأحب استخدام نفس إعدادات git عليها جميعًا.(في الواقع، لدي جميع ملفات التكوين الخاصة بي تحت التحكم في الإصدار باستخدام git، وأضع نسخة من مستودع git على كل جهاز.) الحل الذي توصلت إليه هو هذا:

قمت بتعيين بلدي محرر ل giteditor

git config --global core.editor giteditor

ثم أقوم بإنشاء رابط رمزي يسمى giteditor الذي هو في بلدي طريق.(لدي شخصية سلة مهملات الدليل، ولكن في أي مكان في طريق يعمل.) يشير هذا الارتباط إلى المحرر الحالي الذي اخترته.على أجهزة مختلفة ومنصات مختلفة، أستخدم محررات مختلفة، وهذا يعني أنني لست مضطرًا إلى تغيير تكوين git العالمي الخاص بي (.gitconfig)، فقط الرابط الذي giteditor نقاط ل.

يتم التعامل مع الروابط الرمزية بواسطة كل نظام تشغيل أعرفه، على الرغم من أنه قد يستخدم أوامر مختلفة.بالنسبة لنظام التشغيل Linux، تستخدمه قانون الجنسية -S.بالنسبة لنظام التشغيل Windows، يمكنك استخدام كمد مدمج com.mklink.لديهم صيغ مختلفة (والتي يجب عليك البحث عنها)، ولكن كل شيء يعمل بنفس الطريقة، حقًا.

مرتكز على فون سي الاقتراح أعلاه, لقد نجح هذا بالنسبة لي (كان يقودني إلى الجنون):

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

الحذف -wait يمكن أن يسبب مشاكل خاصة إذا كنت تعمل مع معرفات gerrit وتغييرها التي يجب نسخها يدويًا إلى أسفل رسالة الالتزام الخاصة بك

هذا هو الإعداد الخاص بي للاستخدام جني كمحرر لبوابة:

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.

أستخدم Cygwin على نظام التشغيل Windows، لذلك أستخدم:

export EDITOR="emacs -nw"

ال -nw هو ل no-windows, ، أي.أخبر Emacs بعدم محاولة استخدام X11.

لا تعمل روابط مفاتيح Emacs بالنسبة لي من Windows Shell، لذا سأستخدمها فقط من Cygwin Shell...(يوصى بـ rxvt.)

أنا أفضل استخدام إيماكس.قد يكون إعداده أمرًا صعبًا بعض الشيء.

  1. قم بتنزيل emacs وفك ضغطه في مكان ما c:\emacs.
  2. يجري c:\emacs\bin\addpm.exe.تحتاج إلى النقر بزر الماوس الأيمن ثم "تشغيل كمسؤول" إذا كنت تستخدم نظام التشغيل Windows Vista أو أعلى.سيؤدي هذا إلى وضع الملفات التنفيذية في طريقك.
  3. يضيف (server-start) في مكان ما في الخاص بك .emacs ملف.انظر الأسئلة الشائعة لنظام إيماكس ويندوز للحصول على المشورة بشأن مكان وضع الخاص بك .emacs ملف.
  4. git config --global core.editor emacsclientw

سيقوم Git الآن بفتح الملفات ضمن عملية emacs الموجودة.سيتعين عليك تشغيل هذه العملية الحالية يدويًا من c:\emacs\bin\runemacs.exe.

لقد واجهت صعوبة في جعل git يتعاون مع Wordpad وKomodoEdit وتقريبًا مع كل المحررين الآخرين الذين أعطيه لهم.الأكثر فتحًا للتحرير، ولكن من الواضح أن git لا ينتظر حدوث الحفظ/الإغلاق.

كعكاز، لقد كنت أفعل ذلك للتو.

git commit -m "Fixed the LoadAll method"

لإبقاء الأمور تتحرك.يميل إلى إبقاء رسائل الالتزام الخاصة بي أقصر قليلاً مما ينبغي، ولكن من الواضح أن هناك بعض العمل الذي يتعين القيام به على إصدار Windows من git.

GitGUI أيضًا ليس بهذا السوء.يستغرق الأمر القليل من التوجيه، ولكن بعد ذلك، يعمل بشكل جيد إلى حد ما.

كنت بحاجة للقيام به كلاهما مما يلي للحصول على git لتشغيل برنامج notepad ++ في windowoze:

-أضف ما يلي إلى .gitconfig:

editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin

- قم بتعديل الاختصار لتشغيل git bash Shell للتشغيل كمسؤول، ثم استخدمه لتشغيل git bash Shell.كنت أظن أن إدخال قائمة السياق "Git Bash here" لم يكن يقوم بتشغيل npp بالأذونات المطلوبة.

بعد القيام بكلا الأمرين أعلاه نجح الأمر.

يبدو كما لو أن Git لن يجد المحرر إذا كانت هناك مسافات في المسار.لذلك سيكون عليك وضع الملف الدفعي المذكور فيه إجابة باتريك في مسار غير المسافة البيضاء.

لقد واجهت نفس المشكلة للتو ووجدت حلاً مختلفًا.كنت أحصل على

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

لقد حصلت VISUAL=ec, وملف دفعي يسمى ec.bat على طريقي الذي يحتوي على سطر واحد:

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

يتيح لي هذا تحرير الملفات من سطر الأوامر باستخدام ec <filename>, ، ووجود مجموعة مرئية يعني أن معظم البرامج غير التقليدية تلتقطها أيضًا.يبدو أن Git يبحث في المسار بشكل مختلف عن أوامري الأخرى - عندما نظرت إلى ملف git commit في ProcMon رأيته يبحث في كل مجلد على الطريق ل ec ولل ec.exe, ولكن ليس من أجل ec.bat.أضفت متغير بيئة آخر (GIT_EDITOR=ec.bat) وكان كل شيء على ما يرام.

تمكنت من تشغيل إصدار البيئة عن طريق تعيين متغير EDITOR باستخدام علامات الاقتباس و /:

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

أنا أستخدم GitHub لنظام التشغيل Windows وهو خيار مرئي رائع.لكنني أفضل أيضًا سطر الأوامر، لذا لكي أجعله يعمل عندما أقوم بفتح الريبو في Git Shell، قمت فقط بتعيين ما يلي:

git config --global core.editor vim

الذي يعمل بشكل رائع.

يعمل هذا مع Powershell وcmder-1.2 (عند استخدامه مع Powershell).في ~/.gitconfig

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

كيف يمكنني جعل Sublime Text هو المحرر الافتراضي لـ Git؟

إحياء موضوع قديم، ولكن وجدت حلاً بسيطًا وجميلًا هنا - على الرغم من أنه قد يكون هناك خطأ في المسار الذي يتعين عليك النسخ فيه فوق الملف "subl" الذي قدمه المؤلف.أنا أقوم بتشغيل Win 7 x64 واضطررت إلى وضع الملف "subl" في ملفي /Git/cmd/ المجلد لجعله يعمل.على الرغم من أنه يعمل مثل السحر.

أتوم وويندوز 10

  1. انقر بزر الماوس الأيمن على أيقونة Atom على سطح المكتب ثم انقر على الخصائص.
  2. نسخ مسار الموقع "البدء في".
  3. بحثت هناك باستخدام مستكشف Windows ووجدت "atom.exe".
  4. كتبت هذا في git bash:

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

ملحوظة:لقد غيرت كل شيء \ ل / .لقد قمت بإنشاء .bashrc في دليل منزلي واستخدمته / لتعيين الدليل الرئيسي الخاص بي وقد نجح، لذلك افترضت / سيكون الطريق للذهاب.

عند استخدام محرك أقراص منزلي مثبت عن بعد (مشاركة Samba، NFS، ...) ~/.git تتم مشاركة المجلد عبر جميع الأنظمة مما قد يؤدي إلى العديد من المشكلات.وبالتالي أفضل البرنامج النصي لتحديد المحرر المناسب للنظام المناسب:

#!/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";

قد يفكر المرء في برنامج نصي عادي ولكني استخدمت Perl حيث يتم شحن Perl مع msysgit وستوفر أنظمة Unixoid الخاصة بك واحدًا أيضًا.وضع البرنامج النصي في /home/username/bin, ، والتي ينبغي إضافتها PATH في .bashrc أو .profile.بمجرد إضافتها مع git config --global core.editor giteditor.pl لديك المحرر المناسب، أينما كنت.

هذا يعمل بالنسبة لي باستخدام Cygwin وTextpad 6 (تحرير:العمل أيضًا مع Textpad 5 طالما قمت بإجراء التغيير الواضح على البرنامج النصي)، ويفترض أنه يمكن استخدام النموذج للمحررين الآخرين أيضًا:

~/.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`"

لقد نجح هذا بالنسبة لي:

  1. أضف الدليل الذي يحتوي على الملف القابل للتنفيذ للمحرر إلى ملفك طريق عامل.(على سبيل المثال "C:\ملفات البرنامج\نص سامية 3\")
  2. أعد تشغيل جهاز الكمبيوتر الخاص بك.
  3. غير ال محرر الأساسية متغير git العمومي لاسم المحرر القابل للتنفيذ دون التمديد '.إملف تنفيذى' (على سبيل المثالتكوين git - محرر core.editor العالمي sublime_text)

هذا كل شيء!

ملحوظة: Sublime Text 3 هو المحرر الذي استخدمته في هذا المثال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top