اختيار النطاق الداخلي الأكبر في C/C ++

أود أن أكون قادرًا على تحديد نطاق المنع الحالي. بمعنى آخر ، يتم إعطاء بعض الرموز مثل:

...
if (1) {
  ...
}
...

إذا كانت المؤشرات الخاصة بي تجلس في مكان ما داخل if-body ، فإن ذلك سيشير إلى تلك المنطقة من التعليمات البرمجية. أعتقد أن الحل السريع والقذر سيكون فقط إجراء مسح نصي للموجة المتعرجة السابقة وتحديد كل شيء بينها وبين نظيرتها.

إذا لم يكن هناك أمر حالي لهذا ، فهل سيعرف شخص ما كيفية تنفيذه؟

2

2 إجابة

الطريقة التي أقوم بها هي: M-C-u M-C-SPC : أول تحرك up-list والثاني يختار sexp التالي.

1
وأضاف

هل يقوم M-x mark-defun أو c-mark-function ( C-M-h في الإعداد الخاص بي) بما تريده؟

إذا لم يكن الأمر كذلك ، فإن expand-region هو خيار آخر جيد جدًا ( يمكن العثور على عرض توضيحي للفيديو هنا ). مع تثبيت هذه الحزمة (وهي متاحة من خلال MELPA) ، يمكنك استخدام الأمر er/expand-region لتوسيع المنطقة المحددة من خلال الوحدات الدلالية. قد لا يحدد المنطقة التي تريدها عند أول استدعاء ، ولكن الدعوات المتكررة ستحصل بالتأكيد على ما تريد. هذه الحزمة مذهلة ، وسوف تعمل بذكاء مع العديد من الأساليب المختلفة (أي ما يعتبر "وحدة دلالية" ستختلف من وضع إلى آخر).

1
وأضاف