قم بإزالة ارتباط اختصار لوحة المفاتيح في Visual Studio باستخدام وحدات الماكرو

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

  •  22-09-2019
  •  | 
  •  

سؤال

لدي الكثير من اختصارات لوحة المفاتيح المخصصة. لتجنب الاضطرار إلى إعدادها في كل مرة أقوم فيها بتثبيت استوديو Visual جديد (يحدث كثيرًا تمامًا ، مع وجود VS2010 في Beta/RC) قمت بإنشاء ماكرو ، يقوم بإعداد جميع أوامري المخصصة ، مثل هذا:

DTE.Commands.Item("ReSharper.ReSharper_UnitTest_RunSolution").Bindings = "Global::Ctrl+T, Ctrl+A"

مشكلتي الرئيسية هي أن CTRL+T يتم إعداده لخريطة خريطة إلى أمر transpose char افتراضيًا. لذلك أريد إزالة هذه القيمة الافتراضية في الماكرو الخاص بي.

لقد جربت الخطين التاليين ، لكن كلاهما يرمي استثناء

DTE.Commands.Item("Edit.CharTranspose").Bindings = ""
DTE.Commands.Item("Edit.CharTranspose").Bindings = Nothing

على الرغم من أنهم نوع من العمل ، لأنهم يزيلون بالفعل الربط ؛) لكنني أفضل الحل الذي لا يرمي استثناء.

كيف يتم ذلك؟

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

المحلول

لقد تعاملت مع نفس المشكلة. يمكنني استخدام ماكرو لتعيين روابط مفاتيح لمجموعة من وحدات الماكرو المحاذاة.

Dim NewBindings() = {"Global::Alt+="}
DTE.Commands.Item("Macros.Dev.AlignUtils.AlignEquals").Bindings = NewBindings
NewBindings(0) = "Global::Alt+Num -"
DTE.Commands.Item("Macros.Dev.AlignUtils.AlignMinus").Bindings = NewBindings
...

ولإزالة روابط المفاتيح ، أستخدم العبارات التالية:

Dim DelBindings() = {} 
DTE.Commands.Item("Macros.Dev.AlignUtils.AlignPlus").Bindings = DelBindings

إنه يعمل بشكل جيد تحت Visual Studio 2005.

نصائح أخرى

لقد تابعت طريقة براغماتية أكثر قليلاً (باستخدام مثالك):

DTE.Commands.Item("ReSharper.ReSharper_UnitTest_RunSolution").Bindings = "Global::Ctrl+T"
DTE.Commands.Item("ReSharper.ReSharper_UnitTest_RunSolution").Bindings = "Global::Ctrl+T, Ctrl+A"

مع المهمة الأولى Ctrl+T غير مُعين من أي وظيفة أخرى ثم يصبح غير محدود مع المهمة الثانية.

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

لا تحتاج إلى تغييره بالماكرو ، فقط انتقل إلى

القائمة> الأدوات> الخيارات - لوحة المفاتيح ثم حدد ما تريد تغيير الاختصار من القائمة المنسدلة وتعيين قصور مختصر

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