تغيير سلوك Ctrl + Tab للتنقل بين المستندات في Visual Studio
-
09-06-2019 - |
سؤال
هل من الممكن تغيير كيف كنترول + فاتورة غير مدفوعة و يحول + كنترول + فاتورة غير مدفوعة العمل في Visual Studio؟لقد قمت بتعطيل نافذة المتصفح المنبثقة، لأنني أريد فقط التبديل بين العناصر الموجودة في عنصر تحكم علامة التبويب.مشكلتي هي عدم الاتساق بين ما يفعله التبديل إلى المستند التالي والسابق.
لقد رأيت استخدامات لكل برنامج آخر يستخدم عنصر تحكم علامة التبويب للمستند المفتوح كنترول + فاتورة غير مدفوعة للانتقال من اليسار إلى اليمين و يحول + كنترول + فاتورة غير مدفوعة للذهاب من اليمين إلى اليسار.يكسر Visual Studio هذا من خلال الانتقال إلى علامة التبويب الأخيرة المحددة.لا يمكنك أبدًا معرفة الوثيقة التي سينتهي بك الأمر إليها، ولن يحدث الأمر بنفس الطريقة مرتين أبدًا.
إنه أمر غير بديهي للغاية.هل هذه طريقة خفية لتشجيع الجميع على فتح وثيقتين فقط في وقت واحد؟
لنفترض أن لدي بعض الملفات المفتوحة.أنا أعمل في واحدة، وأريد أن أرى ما هو موجود في علامة التبويب التالية على اليمين.في كل تطبيق آخر على وجه الأرض، كنترول + فاتورة غير مدفوعة سوف يحصل لي هناك.لكن في Visual Studio، ليس لدي أي فكرة عن علامات التبويب الأخرى التي ستأخذني إليها.إذا كان لدي وثيقتان مفتوحتان فقط، فهذا يعمل بشكل رائع.بمجرد أن تذهب إلى ثلاثة أو أكثر، يتم إلغاء كل الرهانات على علامة التبويب التي قرر Visual Studio إرسالك إليها.
المشكلة في هذا هي أنه لا ينبغي لي أن أفكر في الأداة، بل يجب أن تتلاشى في الخلفية، ويجب أن أفكر في المهمة.يستمر سلوك علامة التبويب الحالي في إخراجي من المهمة ويجعلني أضطر إلى الاهتمام بالأداة.
المحلول
في Visual Studio 2015 (وكذلك الإصدارات السابقة من VS، ولكن يجب عليك تثبيت أدوات الطاقة الإنتاجية إذا كنت تستخدم VS2013 أو أقل)، فهناك أمران جديدان في Visual Studio:
Window.NextTab ونافذة. علامة التبويب السابقة
اذهبوا لإعادة رسم خريطة لهم من كنترول+بديل+صفحة لأعلى/كنترول+بديل+اسفل الصفحة ل كنترول+فاتورة غير مدفوعة/كنترول+يحول+فاتورة غير مدفوعة في:
قائمة طعام أدوات -> خيارات -> بيئة -> لوحة المفاتيح
ملحوظة:في الإصدارات السابقة مثل Visual Studio 2010، تمت تسمية Window.NextTab وWindow.PreviousTab Window.NextDocumentWellTab وWindow.PreviousDocumentWellTab.
نصائح أخرى
يحتوي Visual Studio 2010 على طريقة مدمجة لحل هذه المشكلة.
بشكل افتراضي، كنترول+فاتورة غير مدفوعة و كنترول+يحول+فاتورة غير مدفوعة تم تعيينهم ل Window.[Previous/Next]..Document
, ، ولكن يمكنك ذلك من خلال
Tools -> Options -> Environment -> Keyboard,
قم بإزالة هذه التعيينات الرئيسية وأعد تعيينها إليها Window.[Next/Previous]Tab
لإضافة السلوك المطلوب.
يمكن تغييره، على الأقل في VS 2012 (أعتقد أنه يجب أن يعمل لعام 2010 أيضًا).
1) TOOLS > Options > Environment > Keyboard
(نعم الأدوات، إنه VS2012!) الآن ثلاثة اختصارات للتحقق.
2) Window.NextDocumentWindow
- يمكنك الوصول إلى هناك بسرعة عن طريق الكتابة في جزء البحث في الأعلى.الآن هذا هو الخاص بك العدو.قم بإزالته إذا كنت لا تحب ذلك.قم بتغييره إلى شيء آخر (ولا تنس تعيين زر) إذا كنت ترغب في الحصول على الخاص بك، لكن تذكر هذا الاختصار مهما كان في النهاية.وسوف يكون مفيدا في وقت لاحق.
(أعني أن هذا هو الاختصار الذي يتذكر علامة التبويب الأخيرة)
3) الآن ابحث عن Window.NextDocumentWindowNav
- هذا هو نفس ما ورد أعلاه ولكنه يعرض معاينة لعلامات التبويب المفتوحة (يمكنك الانتقال إلى النوافذ الأخرى بسرعة كبيرة جدًا باستخدام هذه النافذة المنبثقة).لم أجد هذا مفيدًا أبدًا بالرغم من ذلك.افعل كل ما هو مذكور في الخطوة 2 (لا تنس ذلك يتذكر).
4) Window.NextTab
- جرعتك السحرية.سيتيح لك ذلك التنقل بين علامات التبويب بالترتيب الأمامي.ربما تريد كنترول+فاتورة غير مدفوعة؟مرة أخرى الخطوة 2 و يتذكر.
5) الآن ضع المؤشر في اضغط على مفاتيح الاختصار: مربع النص (لا يهم ما هو محدد حاليًا، فلن تفعل ذلك تعيين هذه المرة)، واكتب أولًا من الاختصارات الثلاثة (أو اثنين أو واحدًا).
سوف ترى الاختصار المستخدم حاليًا بواسطة: المدرجة.تأكد من عدم وجود إدخال مكرر للاختصار.في الصورة، لا توجد إدخالات مكررة.في حال كان لديك (نادرة)، قل X، ثم انتقل إلى X، وقم بإزالة الاختصار.كرر هذه الخطوة للاختصارات الأخرى أيضًا.
6) الآن كرر 1-5 ل Previous
الاختصارات أيضًا (يفضل إضافة يحول).
7) المكافأة:حدد مخطط تعيين VS2005 (في الجزء العلوي من نفس المربع)، وبذلك تحصل الآن على F2 ل إعادة تسمية أعضاء وليس كنترول+ر+ر, ، و F7 ل عرض الرمز و لا كنترول+بديل+0.
أنا من رأي VS قد فهم الأمر بشكل صحيح بشكل افتراضي.أجد أنه من المفيد للغاية أن يتذكر VS ما استخدمته مؤخرًا، ويجعل التبديل أسهل، تمامًا مثلما يفعل نظام التشغيل نفسه (على بديل+فاتورة غير مدفوعة).متصفحي يفعل نفس الشيء أيضًا بشكل افتراضي (Opera)، على الرغم من أنني أعرف أن Firefox يتصرف بشكل مختلف.
في Visual Studio 2012 أو الإصدارات الأحدث (2013، 2015، 2017...):
- تصفح القائمة الأدوات / الخيارات / البيئة / لوحة المفاتيح.
- ابحث عن الأمر "Window.NextTab"، واضبط الاختصار عليه كنترول+فاتورة غير مدفوعة
- ابحث عن الأمر "Window.PreviousTab"، واضبط الاختصار على كنترول+يحول+فاتورة غير مدفوعة
انتقل إلى مشاركة المدونة علامة تبويب Visual Studio لإلغاء ماكرو الغباء والاستفادة من الماكرو.بعد تطبيق الماكرو على تثبيت Visual Studio، يمكنك ربط اختصارات لوحة المفاتيح المفضلة لديك بها.لاحظ أيضًا إصلاح التسجيل في التعليقات لعدم ظهور بالون الماكرو لأنه قد يصبح مزعجًا بعد فترة.
بعد بضع ساعات من البحث وجدت حلاً لكيفية التبديل بين المستندات المفتوحة باستخدام كنترول+فاتورة غير مدفوعة التي تتحرك من اليسار إلى اليمين و يحول+ كنترول+ فاتورة غير مدفوعة للذهاب من اليمين إلى اليسار.
باختصار تحتاج إلى نسخ ولصق هذا الماكرو:
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module TabCtrl
Public Sub TabForward()
Dim i As Integer
Dim activateNext As Boolean = False
For i = 1 To DTE.Windows.Count
If DTE.Windows().Item(i).Kind = "Document" Then
If activateNext Then
DTE.Windows().Item(i).Activate()
GoTo done
End If
If DTE.Windows().Item(i) Is DTE.ActiveWindow Then
activateNext = True
End If
End If
Next
' Was the last window... go back to the first
If activateNext Then
For i = 1 To DTE.Windows.Count
If DTE.Windows().Item(i).Kind = "Document" Then
DTE.Windows().Item(i).Activate()
GoTo done
End If
Next
End If
done:
End Sub
Public Sub TabBackward()
Dim i As Integer
Dim activateNext As Boolean = False
For i = DTE.Windows.Count To 1 Step -1
If DTE.Windows().Item(i).Kind = "Document" Then
If activateNext Then
DTE.Windows().Item(i).Activate()
GoTo done
End If
If DTE.Windows().Item(i) Is DTE.ActiveWindow Then
activateNext = True
End If
End If
Next
' Was the first window... go back to the last
If activateNext Then
For i = DTE.Windows.Count To 1 Step -1
If DTE.Windows().Item(i).Kind = "Document" Then
DTE.Windows().Item(i).Activate()
GoTo done
End If
Next
End If
done:
End Sub
End Module
الماكرو يأتي من:www.mrspeaker.net/2006/10/12/tab-un-stupidifier/
إذا لم تقم مطلقًا بإضافة ماكرو إلى Visual Studio، فهناك رابط مفيد جدًا لكيفية القيام بذلك افعلها.
تعتبر فلسفة ترتيب علامات التبويب في Visual Studio غير بديهية للغاية نظرًا لأن ترتيب علامات التبويب المعروضة يختلف عن منطق تبديل علامات التبويب، مما يؤدي إلى ترتيب علامات التبويب عديمة الفائدة تماما.
لذا، حتى يظهر حل أفضل، قم بتغيير تخطيط النافذة (في البيئة->عام) من المستندات المبوبة إلى المستندات المتعددة؛لن يغير السلوك، ولكنه يقلل من الارتباك الذي تسببه علامات التبويب.
بهذه الطريقة ستجد أيضًا DocumentWindowNav أكثر فائدة!
السيطرة + بديل + صفحة أعلى أو PgDn عملت الاختصارات على تبديل علامة التبويب التالية/السابقة خارج الصندوق بالنسبة لي ...
أنا أتفق مع جيف بنسبة 100%.
لقد عملت على Borland C++ Builder لعدة سنوات وإحدى الميزات التي أفتقدها أكثر هي ترتيب جدولة المستندات "الصحيح" كنترول-فاتورة غير مدفوعة.وكما قال جيف "يستمر سلوك علامة التبويب الحالي في إخراجي من المهمة ويجعلني أضطر إلى الاهتمام بالأداة "هذا هو بالضبط ما أشعر به حيال هذا الأمر، وأنا مندهش للغاية من حقيقة أنه لا يوجد الكثير من الناس يشتكون من هذا.
أظن كنترول-F6 - NextDocumentWindowNav - يتنقل بين المستندات بناءً على وقت آخر تنشيط للمستند.يشبه هذا السلوك إلى حد كبير الطريقة التي كانت تتصرف بها تطبيقات MDI في الأيام الخوالي.
مع أخذ هذا في الاعتبار، عادة ما أستخدم كنترول+F6 للتبديل بين مستندين (وهو أمر مفيد جدًا في التبديل بين ملفات .cpp و.h عند العمل على مشروع c++) حتى في حالة وجود أكثر من مستندين مفتوحين حاليًا.على سبيل المثال، إذا كان لديك 10 مستندات مفتوحة (Tab1، Tab2، Tab3، ....، Tab10)، فإنني أقوم بالنقر فوق Tab1 ثم Tab2.عندما أفعل كنترول+F6 وتحرير المفاتيح، سأنتقل إلى علامة التبويب 1.الضغط كنترول+F6 مرة أخرى سوف يعيدني إلى علامة التبويب 2.
أعتقد أنك تريد ما يسميه VSS Next(Previous)DocumentWindow.بشكل افتراضي، يتم تشغيله السيطرة (-التحول)-F6 على جهاز VSS 8.على Ctrl(-Shift)-علامة التبويب يملكون Next(Previous)DocumentWindowNav
.يمكنك تغيير تعيينات المفاتيح عبر الأدوات/الخيارات/لوحة المفاتيح.
في فرع التسجيل:HKEY_CURRENT_USER software Microsoft VisualStudio 9.0 أضف dword المسمى "UsemRudocording" بقيمة 1.سيتم ترتيب المستندات المستخدمة مؤخرًا بحيث يتم وضعها على اليسار.إنها ليست مثالية ولكنها أفضل من سوء السلوك الافتراضي.
لا أستخدم Visual Studio (نعم، حقاً، أنا لا أستخدمه)، لكن مفتاح التشغيل التلقائي يمكن إعادة تعيين أي مفتاح تشغيل سريع عالميًا أو في تطبيق معين:
#IfWinActive Microsoft Excel (application specific remapping)
; Printing area in Excel (@ Ctrl+Alt+A)
^!a::
Send !ade
return
#IfWinActive
$f4::
; Closes the active window (make double tapping F4 works like ALT+F4)
if f4_cnt > 0
{
f4_cnt += 1
return
}
f4_cnt = 1
SetTimer, f4_Handler, 250
return
f4_Handler:
SetTimer, f4_Handler, off
if (f4_cnt >= 2) ; Pressed more than two times
{
SendInput !{f4}
} else {
; Resend f4 to the application
Send {f4}
}
f4_cnt = 0
return
هذان هما إعادة تعيين لبرنامج AutoHotKey النصي الرئيسي الخاص بي.أعتقد أنها أداة ممتازة لهذا النوع من المهام.