إعداد ملف/exe ملف AutoHotkey لمضاهاة VIM.
Vim.ahk هو ملف الإعداد لـ AutoHotkey (AutoHotkey_L).
Vim.exe هو تطبيق مستقل مصنوع من Vim.ahk (متوفر في صفحة الإصدارات).
هذا هو مضاهاة VIM لنظام التشغيل Windows. إذا كنت مهتمًا بنفس الإعدادات لنظام التشغيل Mac ، فحاول مضاهاة VIM لـ Karabiner - برنامج MacOS: قواعد Karabiner -Elements Complex_Modifications بواسطة RCMDNK.
هذا النص مخصص لـ AutoHotkey V2.
إذا كنت تستخدم AutoHotkey V1 ، فيرجى استخدام الإصدار V0.13.2 (أو فرع AHK_V1).
إذا كنت قد قمت بالفعل بتثبيت AutoHotkey ، فما عليك سوى فتح vim.ahk مع AutoHotkey.
إذا كنت تقوم بتشغيل AutoHotkey مع برنامج نصي آخر ، فيمكنك تضمينه في البرنامج النصي باستخدام AutoHotkey ... يرجى نسخ vim.ahk و lib دليل في Users%username%Documents أو أين يوجد البرنامج النصي ، وإضافة السطر التالي في autohotkey.ahk أو البرنامج النصي الخاص بك:
#Include %A_LineFile%..vim.ahk
في نهاية قسم التنفيذ التلقائي.
يمكنك أيضًا استخدام vim_ahk.exe ، والتي يمكن أن تعمل بذاتها مع AutoHotkey.
للحصول على تنفيذ ، انتقل إلى صفحة الإصدارات وقم بتنزيل أحدث ملف zip.
قم بفك ضغط ملف zip ، ووضع مجلد VIM_AHK المستخرج حيث تريد ، ثم قم بتشغيل vim_ahk.exe .
ملحوظة
ضع مجلد VIM_AHK_ICONS في نفس المجلد مع vim_ahk.exe ، وإلا ، فإن ميزة أيقونة قائمة الدرج لا تعمل.
Clone vim_ahk و GO VIM_AHK ، وقم بتشغيل Build.Bat .
.build.bat على PowerShell أو موجه الأوامر.ستجد مجلد vim_ahk الذي يحتوي على vim_ahk.exe و vim_ahk_icons .
يتيح الإعداد الافتراضي وضع VIM للتطبيقات التالية:
يمكنك تغييرها من قائمة النقر بزر الماوس الأيمن لرمز علبة المهمة (ابحث عن Settings VimMenu في القائمة) ، أو قم بتشغيل نافذة الإعداد بواسطة Ctrl-Alt-Shift-v .
إذا كنت ترغب في تغيير التطبيقات مباشرة في البرنامج النصي ، فأضف متغير VimGroup قبل Vim := new VimAhk() في vim.ahk (يمكن التحقق
خط مثال:
VimGroup := "ahk_exe chrome.exe,ahk_exe firefox.exe"
يمكن كتابة تطبيقات متعددة بواسطة فاصلة مفصولة.
ملحوظة
هذا سوف يكتب التطبيقات الافتراضية. إذا كنت ترغب في إضافة هذه التطبيقات إلى التطبيقات الافتراضية ، أضف التطبيقات التالية بعد تطبيقاتك:
ahk_exe notepad.exe,ahk_exe explorer.exe,ahk_exe wordpad.exe,ahk_exe TeraPad.exe,作成,Write:,ahk_exe POWERPNT.exe,ahk_exe WINWORD.exe,ahk_exe Evernote.exe,ahk_exe Code.exe,ahk_exe onenote.exe,OneNote,ahk_exe texworks.exe,ahk_exe texstudio.exe
أو يمكنك استخدام قائمة إعداد خيار واجهة المستخدم الرسومية الموضحة أدناه.
الإعداد الافتراضي لـ VimSetTitleMatchMode هو 2 ، مما يجعل طرق المطابقة كما Contain .
إذا قمت بتعيين OneNote ، فسيتم تضمين جميع النوافذ التي تحتوي على عنوان يحتوي على OneNote (على سبيل المثال XXX's OneNote ). إذا قمت بتعيين VimSetTitleMatchMode كـ 3 ، فسيتم تضمين العنوان الدقيق لـ OneNote .
قد لا تعمل على Onenote. قد يكون لـ OneNote اسم نافذة مثل دفتر المستخدم - OneNote ، بدلاً من OneNote .
في هذه الحالة ، تحتاج إلى التحقق من عنوان نافذة OneNote مع Spy Window.
سوف يمنحك Window Spy عن عنوان النافذة والفئة والعملية مثل:
User's Notebook - OneNote
ahk_class ApplicationFrameWindow
ahk_exe ApplicationFrameHost.exe
إذا قمت بإضافة أي من الخطوط المذكورة أعلاه إلى Vimgroup ، يعمل VIM_AHK على OneNote. ولكن إذا قمت بتعيين ahk_class ApplicationFrameWindow أو ahk_exe ApplicationFrameHost.exe ، يعمل VIM_AHK أيضًا على تطبيقات أخرى تستخدم أسماء الفئة/العمليات (معظم التطبيقات المثبتة من Microsoft Store).
أمثلة على التطبيقات:
ahk_exe chrome.exeahk_exe firefox.exeahk_exe EXCEL.EXEahk_exe soffice.bin (لجميع تطبيقات libreoffice) بالإضافة إلى VimGroup ، هناك الخيارات التالية التي يمكنك تعيينها في البرنامج النصي الخاص بك. كل هذه يمكن تغييرها من قائمة الإعداد أيضًا.
| خيار | وصف | تقصير |
|---|---|---|
| vimescnormal | إذا كان 1 ، اضغط على ESC القصيرة على تعيين الوضع العادي ، في حين أن الضغط على ESC طويل يرسل ESC. | 1 |
| vimsendescnormal | إذا كان 1 ، اضغط على ESC القصير إرسال ESC في الوضع العادي. | 0 |
| vimlongescnormal | إذا تم تبديل 1 ، يتم تبديل الصحافة القصيرة والضغط الطويل لسلوكيات ESC. | 0 |
| vimctrlbrackettoesc | إذا كان 1 ، Ctrl- [يتصرف مثل ESC. إذا كان vimctrlbracketnormal هو 0 ، ctrl- [يرسل ESC. إذا كان vimctrlbracketnormal هو 1 ، اضغط على Ctrl- [يرسل ESC. | 0 |
| vimctrlbracketnormal | إذا كان 1 ، دفع Ctrl- [يعين الوضع العادي ، بينما اضغط لفترة طويلة على Ctrl- [يرسل Ctrl- [. | 1 |
| vimsendctrlbracketnormal | إذا كان 1 ، اضغط على Ctrl- [إرسال Ctrl- [في الوضع العادي. | 0 |
| vimlongctrlbracketnormal | إذا كان 1 ، الضغط القصير والضغط الطويل لـ Ctrl- [يتم تبديل السلوكيات. | 0 |
| VimChangeCaretWidth | إذا 1 ، تحقق من الحرف تحت المؤشر قبل إجراء ما. يتم استخدام هذا في الوقت الحالي: a في الوضع العادي (تحقق مما إذا كان المؤشر موجودًا في نهاية الخط). | 0 |
| Vimrestoreime | إذا تم استعادة حالة IME عند إدخال وضع الإدراج. | 1 |
| vimjj | إذا كان 1 ، قام jj بتغيير الوضع إلى الوضع العادي من وضع الإدراج. | 0 |
| vimtwoletteresc | قائمة أزواج الأحرف للضغط معًا أثناء وضع الإدراج للوصول إلى الوضع العادي. على سبيل المثال ، تعني قيمة jf الضغط على j و f في نفس الوقت إلى الوضع العادي.يمكن تعيين مجموعة متعددة عن طريق فصلها , . (على سبيل المثال jf,jk,sd ) | |
| vimdisableUnused | تعطيل مستوى المفاتيح غير المستخدمة في غير وضع إدراج:
| 3 |
| vimsettitlematchmode | SettitleMatchMode:
| 2 |
| vimsettitlematchmodefs | SettitleMatchMode:
| سريع |
| Vimiconcheckinterval | الفاصل الزمني للتحقق من حالة VIM_AHK (MS) وتغيير أيقونة الدرج (انظر الصورة أدناه). إذا تم تعيينه على 0 ، يتم تعيين أيقونة AHK الأصلية ولم يتم تغييرها. | 1000 |
| vimverbose | مستوى المطالبة:
| 1 |
| vimapplist | استخدام قائمة التطبيق:
| السماح بقائمة |
| Vimgroup | يتم تمكين تطبيقات على الساحرة VIM_AHK. | انظر قسم التطبيقات |
يمكنك إضافة خياراتك قبل تضمين vim.ahk في البرنامج النصي الخاص بك في قسم التنفيذ التلقائي مثل:
VimVerbose := 2
#Include pathtovim.ahk
إذا كنت ترغب في تغييرها مباشرة في البرنامج النصي vim.ahk ، أضف هذا المتغير قبل Vim := new VimAhk() .
ملحوظة
ستؤدي متغيرات VIM إلى الكتابة فوق القيم الافتراضية والقيم الأولية. بعد التحقق من هذه المتغيرات ، تتم قراءة ملف التكوين. إذا كنت قد قمت بالفعل بتشغيل vim_ahk ، فقد تم إنشاء ملف التكوين وحفظ جميع الإعدادات. لتعكس الإعدادات الجديدة ، حاول Reset في نافذة إعداد خيار واجهة المستخدم الرسومية.
ملحوظة
مثال Vimiconcheckinterval
إذا قمت بتعيين vimiconcheckinterval على أنه غير صفري ، يتم تغيير أيقونة الدرج عند تغيير الوضع أو تغيير التطبيقات إلى VIM_AHK الممكّن أو عدم تمكينها.
تحذير
VimChangeCaretWidth
لا يمكن تغيير عرض Caret إلا على تطبيقات محددة: WordPad أو Word أو OneNote. على المفكرة أو المستكشف ، يتم الاحتفاظ بعرض الذرة ولكن لا يتغير.
بالنسبة لمعظم التطبيقات الأخرى ، يتم الاحتفاظ بعرض الذاكرة على العرض الأصلي.
عند تمكين هذا الخيار ، تفقد النافذة الحالية التركيز لفترة وجيزة عند تغيير الوضع.
إذا قمت بتمكين هذا الخيار وقمت بتغيير سميك عرض الإلكترونية في الوضع العادي ، وتعطيل الخيار ، يتم الاحتفاظ بعرض المؤشر على أنه سميك. لعكس عرض الذبائح ، إعادة تمكين الخيار وأدخل وضع الإدراج في WordPad أو شيء ما لإرجاع عرض الذاكرة ، ثم تعطيل الخيار.
يمكنك تغيير هذه الخيارات من قائمة النقر بزر الماوس الأيمن لرمز علبة المهمة (البحث عن Settings VimMenu في القائمة) ، أو قم بتشغيل نافذة الإعداد بواسطة Ctrl-Alt-Shift-v .
هنا ، يمكنك إضافة التطبيقات ، أو تغيير مفتاح تغيير الوضع ، أو تغيير مستوى المطول.
إذا قمت بالضغط على Reset ، فسيتم عرض الإعدادات الافتراضية في النافذة. سيتم تمكين هذه الإعدادات فقط إذا قمت بضغط زر OK .
يتم كتابة هذه الإعدادات الافتراضية هذه بواسطة خيارات VimXXX في البرنامج النصي الموضح أعلاه. (أي Reset إعادة تعيين خياراتك في البرنامج النصي بالإضافة إلى الإعدادات الافتراضية لـ VIM_AHK.)
| مفتاح | وظيفة |
|---|---|
| ctrl-alt-shift-v | إطلاق نافذة إعداد خيار واجهة المستخدم الرسومية. |
| ctrl-alt-shift-s | تعليق/إعادة تشغيل vim_ahk. |
| ctrl-alt-thift-c | إظهار نافذة فحص الحالة. (فقط على تطبيقات Vimgroup.) |
فيما يلي الأوضاع الرئيسية.
| وضع | وصف |
|---|---|
| إدراج وضع | حالة Windows الأصلية |
| الوضع العادي | كما هو الحال في VIM ، يتم تحريك المؤشر بواسطة hjkl ، w ، إلخ ... وبعض الأوامر التي تشبه VIM متوفرة. |
| الوضع المرئي | هناك ثلاثة أوضاع مرئية: الحرف الحكيمة ، الحكيمة ، وكتلة الحكمة. الوضع المرئي الحكيمة صالح فقط للتطبيقات التي تدعم اختيار كتلة (مثل Terapad). |
| وضع الأوامر | يمكن استخدامها لحفظ الملف/الإقلاع عن التدخين. |
الحالة الأولية هي وضع الإدراج ، ثم ESC أو Ctrl-[ يقودك إلى الوضع العادي.
في الوضع العادي ، i مفتاح العودة إلى وضع الإدراج.
v و V و Ctrl-v هي مفتاح الحرف ، والوضع المرئي الحكيمة ، والوضع المرئي الحكيمة ، على التوالي.
بعد الضغط على : ، تتوفر بعض الأوامر لحفظ/الإقلاع.
| المفتاح/الأوامر | وظيفة |
|---|---|
| ESC/CTRL- [ | أدخل الوضع العادي. عقد (0.5s) هذه المفاتيح تحاكي ESC/CTRL- [. |
| JJ | أدخل الوضع العادي ، إذا تم تمكينه. |
| مخصص رسالتين | إذا تم تعيين رسم خرائط من حرفين. |
ESC/CTRL- [إيقاف تشغيل IME إذا كان IME قيد التشغيل. يعمل ESC كـ ESC عندما يكون IME على التعليمات وتحويلها. CTRL- [إيقاف تشغيل IME ويدخل الوضع العادي حتى لو كان IME قيد التشغيل.
سترسل Long Press ESC (Ctrl- [) هذه المفاتيح الأصلية ، إذا لم يتم تمكين VimLongEscNormal ( VimLongCtrlBracketNormal (0).
إذا تم تمكين VimLongEscNormal ( VimLongCtrlBracketNormal ) ، فستقوم الصحافة الواحدة بإرسال مفاتيح أصلية وستقوم الصحافة الطويلة بتغيير الوضع إلى الوضع العادي.
إذا كنت تستخدم مفتاح Hotkey مخصص من أحرف لدخول الوضع العادي ، فيجب أن تكون الحروفان مختلفة.
تحذير
يمكن استخدام شخصية فقط لمفتاح Hotkey واحد من حرفي. إذا قمت بتحديد ab و bc ، ba (دفع b أولاً ثم a ) لا يعمل. إذا دفعت a ، فستعمل ab ، رغم ذلك.
| المفتاح/الأوامر | وظيفة |
|---|---|
| I/I/A/A/O/O. | أدخل وضع الإدراج أسفل المؤشر/بداية السطر/بجانب المؤشر/نهاية السطر/السطر التالي/السطر السابق. |
| v/v/ctrl-v | أدخل الوضع المرئي لحرف الحرف/الحكمة/الحظر. |
| : | أدخل وضع سطر الأوامر |
| المفتاح/الأوامر | وظيفة |
|---|---|
| H/J/K/L. | يسار/لأسفل/أعلى/يمين. |
| 0/$ | انتقل إلى بداية/نهاية الخط. |
| Ctrl-A/Ctrl-E | انتقل إلى بداية/نهاية الخط (emacs مثل). |
| ^ | انتقل إلى الطابع غير المسبق للخط. |
| ث/ث | انتقل إلى بداية الكلمة التالية. |
| ه/ه | انتقل إلى نهاية الكلمة. (في الواقع ، انتقل إلى بداية الكلمة التالية وحرك حرفًا واحدًا متبقيًا.) |
| ب/ب | انتقل إلى بداية الكلمة السابقة. |
| Ctrl-u/ctrl-d | صعود/أسفل 10 خط. |
| CTRL-B/CTRL-F | pageup/pagedown. |
| GG/G. | انتقل إلى أعلى/أسفل الملف |
| فضاء | يمين. |
| يدخل | انتقل إلى بداية السطر التالي. |
ملحوظة
أدخل الأعمال فقط لتطبيقات المحرر (لخلاف غير المستكشف ، Q-DIR ، تعمل كما تدخل حتى في الوضع العادي).
بالإضافة إلى ذلك ، يتوفر Repeat أيضًا لبعض الأوامر.
| أوامر مثال | فعل |
|---|---|
| 4J | أسفل 4 خطوط |
| 3W | تحريك 3 كلمات للأمام |
| 100J | أسفل 100 خط |
| المفتاح/الأوامر | وظيفة |
|---|---|
| نعم ، ذ | انسخ الخط. |
| DD | قطع الخط. |
| د | قطع من هنا إلى نهاية الخط. |
| نسخة | قم بتغيير الخط (أدخل وضع الإدراج). |
| ج | قطع من هنا إلى نهاية الخط وأدخل وضع الإدراج. |
| x/x | احذف حرفًا تحت/قبل المؤشر (غير مسجل في الحافظة). |
| ص/ص | لصق إلى المكان التالي/الحالي. إذا تم إجراء نسخ/قطع باستخدام الوضع المرئي الحكيمة ، فإنه يتعارض مع السطر التالي/الحالي. بعض الأوامر (مثل yy/dd) تجبر أيضًا على لصق الخط. |
| yiw/diw/ciw | نسخ/قطع/تغيير الكلمة الحالية. |
يمكن استخدام أمر Y/D/C+Move أيضًا.
yw -> نسخ كلمة واحدة التالية.d3w -> حذف 3 كلمات التالية.| المفتاح/الأوامر | وظيفة |
|---|---|
| u/ctrl-r | التراجع عن/إعادة. |
| ص/ص | استبدال حرف واحد/شخصيات متعددة. |
| ي | الجمع بين سطرين. |
| . | تم إصلاحه: Replace the following word with a clipboard (مفيدة للاستخدام مع البحث). |
| ~ | تغيير القضية. |
| / | ابدأ البحث (سيتم فتح مربع البحث) |
| ن/ن | البحث التالي/السابق (بعض التطبيقات تدعم البحث التالي فقط) |
| * | ابحث في الكلمة تحت المؤشر. |
| ZZ/ZQ | حفظ وتوقف/الإقلاع. |
| المفتاح/الأوامر | وظيفة |
|---|---|
| ESC/CTRL- [ | أدخل الوضع العادي. |
| نقل الأمر | تتوفر معظم أوامر Move في الوضع العادي. |
| y/d/x/c | نسخ/قطع/قطع/قطع وإدراج ( d = x ) |
| y/d/x/c | انتقل إلى نهاية السطر ، ثم نسخ/قطع/قطع/قطع ووضع الإدراج ( D = X ) |
| أنا | حدد الكلمة الحالية. |
| * | ابحث في الكلمة المحددة. |
| المفتاح/الأوامر | وظيفة |
|---|---|
| ESC/CTRL- [ | أدخل الوضع العادي. |
| W + العودة | يحفظ |
| W + الفضاء | حفظ كما |
| W + Q. | حفظ وتوقف |
| س | يترك |
| ح | مساعدة مفتوحة للتطبيق |
قم بإحالة Ranger وهو مدير ملفات وحدة التحكم مع روابط مفتاح VI.
| المفتاح/الأوامر | وظيفة |
|---|---|
| H/J/K/L. | Space Backspace (يعود إلى الدليل الأصل)/Down/Up/Enter (يدخل الدليل المحدد أو يفتح ملفًا) |
| alt+u/i/j/k | التبديل بين الرباعي |
| ' | قائمة روابط سريعة |
يتم تشغيل الاختبارات عن طريق تنفيذ tests/run_vimahk_tests.ahk . يتم فتح نافذة المفكرة و VIM ، وبدأ VIM_AHK.
نظام الاختبار المستخدم هو سلسلة من حالات الاختبار في tests/testcases.txt التي تمثل ضغطات المفاتيح لإرسالها إلى VIM_AHK. يتم إرسالها إلى نوافذ VIM و Notepad المفتوحة ، ويتم مقارنة النص الناتج.
يمكن أن تكون الاختبارات مميتة للغاية ، لذلك يجب استخدامها كدليل ولتنفيذ مسارات التعليمات البرمجية للتحقق من وجود أخطاء. يجب إجراء الاختبارات مع INI الافتراضي.