سؤال كيف تعيد استخدام اختيار الوضع المرئي؟


في كثير من الأحيان عند تحرير الكود ، سوف أقوم بتحديد كتلة في الوضع المرئي ونقوم بعملية بحث واستبدال فوق الكتلة. بعد أن أقوم بإجراء التغييرات ، فإنها تترك الوضع المرئي. كيف تقوم بعمل بحث جديد واستبداله بنفس الاختيار؟


151
2017-12-10 16:58


الأصل


حسنًا ، وجدت طريقة واحدة ، لكنها مرهقة بعض الشيء:: '<،'> s / old / new / g أي طريقة لفعل ذلك دون الحاجة إلى الكتابة في '<،'>؟ - labyrinth


الأجوبة:


يمكنك إعادة تحديد آخر منطقة مرئية محددة باستخدام gv.


217
2017-12-10 23:59



رائع! Heptite كيفية العثور على هذا الأمر بنفسي w \ o Stackoverflow؟ - skywinder
skywinder: مساعدة gv - Heptite
Heptite: لست متأكدًا مما إذا كنت تتحدث إلى هنا ، ولكن هذا الأمر يوضح لك ما يلي: gv بعد أن تعرفه. ولكن ماذا لو كنت لم؟ تعليم رجل (wo) لصيد السمك وكل ذلك. - Ben Thul
@ بينثول: أعتقد أنني أساءت فهم السؤال. أعرف الكثير عن ميزات Vim ببساطة عن طريق قراءة الجزء الأكبر من الوثائق بمرور الوقت ، بدءًا من ":help". - Heptite
:help select-visual يجب أن تقودك إلى الدليل الصحيح داخل vimskywinder. - nwildner


gv هو بالتأكيد أسرع طريقة (استخدم التحديد الأخير) ، ولكن إذا كنت ترغب في تحديد منطقة تحديد محفوظة (أو عدة) ، فيمكنك دائمًا إنشاء وحدات ماكرو.

لنفترض أنني أريد تخزين مجموعة من طريقي الحالية ، والتي تمتد من السطور 25-35. يمكنني إنشاء ماكرو يحدد الطريقة بالكامل عن طريق الكتابة

q    //start recording
a    //use register a
25G  //Go to line 25
V    //visual-line mode
35G  //Go to line 35
q    // stop recording

يمكنني بعد ذلك الحصول على هذا الاختيار مرة أخرى عن طريق الكتابة @a (تشغيل الماكرو في التسجيل أ). كرر ذلك مع أي سجل أو خطوط أو أقسام من الخطوط التي ترغب فيها. من الواضح أنه إذا قمت بإجراء تغييرات على الملف ، فقد يتغير التحديد أيضًا ، لذا قد ترغب في التفكير في استخدام علامات بدلاً من أرقام الأسطر "hardcoding".


13
2018-03-14 13:26



أدخل zmto أنك بحاجة إلى معرفة أرقام الخطوط. أعتقد أنه من الأفضل تحديد علامتين ومن ثم استخدام: "a" ، أو b للتشغيل على المدى بينهما (أو استبدالها بـ backticks إذا كنت تريد الدقة داخل خط) - sillyMunky
نعم ، كان شيء أرقام الخط البكم - أنا فقط استخدامه كمثال لكيفية إنشاء ماكرو التحديد. استخدام مجموعة من العلامات فكرة مثيرة للاهتمام على الرغم من ... - AlexMA


gv يعمل بشكل جيد لاستعادة التحديد الأخير. لكن في بعض الأحيان يحتاج المرء أكثر قليلا.

إذا كنت في حاجة إلى مزيد من السجل المستمر ، إلقاء نظرة على هذا البرنامج المساعد نحن نعمل حاليا على جيثب.

VisualMarks يسمح لك بحفظ واستعادة المناطق المحددة بصريا مثل حفظ مواقع محددة في ملفاتك ووضع علامة عليها m. بعد التثبيت ، وباستخدام الخيارات الافتراضية ، استخدم:

ma

في الوضع المرئي لحفظ اختيارك الحالي لوضع علامة عليه a، ثم

<a

في الوضع العادي للرجوع إلى هذا التحديد.


6
2017-10-18 17:39



واو ، هذا يبدو رائعًا حقًا. سآخذ لإعطاء هذا البرنامج المساعد في المحاولة! بالمناسبة ، يمكن أن تستمر هذه VisualMarks مع mkview مثل يمكنك مع علامات؟ - labyrinth
labyrinth لا أعرف mkview ولكن أعتقد نعم فعلا حيث يتم حفظ علامات في ملف منفصل و .. أقترح عليك أن تجرب على أي حال :) إذا لم تستمر كما ترغب ، سنكون سعداء لتلقي طلب الميزة الخاص بك على جيثب و try'da عملية ذلك. - iago-lito


لنفترض أنني أردت استبدال Goodbye with Hello وتم تحديد الرمز أدناه:

public static void main(String[] args){
    System.out.println("Goodbye World");
}

أود أن أكتب في :s/Goodbye/Hello/ و vim سوف يحل محل جميع حالات Goodbye مع Hello

إنها ببساطة مجموعة من التعبيرات العادية لـ vim وتحديدات الوضع المرئي. عند تحديد ، يجب أن يتم الملء التلقائي '<,'>


0
2017-12-10 17:20



عذرا ، هذا ليس ما كنت أسأل. ما أطلبه هو كيف يمكنك إعادة استخدام التحديد لإجراء بحث آخر واستبداله بنفس النطاق كما تم تحديده من قبل؟ - labyrinth
بعد الاستبدال ، سوف تخرج من الوضع المرئي. اكتب في gv وسيعود وضعك المرئي إلى حالة التحديد السابقة. - Scott Nguyen