ما هو الأكثر إنتاجية الاختصار مع همة?

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

  •  10-07-2019
  •  | 
  •  

سؤال

لقد سمعت الكثير عن همة, سواء إيجابيات وسلبيات.يبدو حقا يجب أن تكون (كمطور) أسرع مع همة من أي محرر آخر.أنا باستخدام همة أن تفعل بعض الأشياء الأساسية و أنا في أفضل 10 مرات أقل إنتاجية ، مع همة.

اثنين فقط من الأشياء التي يجب أن نهتم عندما تتحدث عن السرعة (قد لا يهتم بها, ولكن يجب أن) هي:

  1. باستخدام بدلا من اليمين واليسار الأيدي هو أسرع طريقة استخدام لوحة المفاتيح.
  2. أبدا لمس الماوس هو الطريقة الثانية أن تكون في أسرع وقت ممكن.فإنه يأخذ الأعمار عليك تحريك يدك ، الاستيلاء على الماوس ، نقله ، وجعله العودة إلى لوحة المفاتيح (و غالبا ما لديك أن ننظر في لوحة المفاتيح للتأكد من أنك عاد يدك بشكل صحيح في المكان الصحيح)

هنا نوعان من الأمثلة التي تبين لماذا أنا الآن أقل إنتاجية مع همة.

نسخ/قص و لصق. أفعل ذلك في كل وقت.مع جميع المعاصرة المحررين اضغط التحول مع اليد اليسرى ، حرك المؤشر مع يدك اليمنى لتحديد النص.ثم Ctrl+ج النسخ عند تحريك المؤشر ، Ctrl+V المعاجين.

مع همة انها الرهيبة:

  • yy نسخ سطر واحد (كنت تقريبا لا أريد خط كامل!)
  • [number xx]yy نسخ xx خطوط في المخزن المؤقت.ولكن كنت لا تعرف بالضبط إذا كنت قد حددت ما تريد.أنا غالبا ما يكون القيام به [number xx]dd ثم u إلى التراجع!

مثال آخر ؟ بحث واستبدال.

  • في PSPad: Ctrl+f ثم اكتب ما تريد البحث عنه ثم اضغط أدخل.
  • في همة: /, ثم اكتب ما تريد البحث عنه ثم إذا كان هناك بعض الأحرف الخاصة وضعت \ قبل كل طابع خاص ، ثم اضغط أدخل.

و كل شيء مع همة مثل هذا:يبدو أنني لا أعرف كيفية التعامل معها بالطريقة الصحيحة.

ملحوظة:: لقد قرأت بالفعل همة الغش ورقة :)

سؤالي هو:

ما هي طريقة استخدام Vim أن يجعلك أكثر إنتاجية من معاصر المحرر ؟

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

المحلول

مشكلتك مع همة هو أنك لا جروك السادس.

كنت أذكر القطع مع yy ويشكون من أن ما تريد قطع كل الخطوط.في الواقع المبرمجين تحرير التعليمات البرمجية المصدر ، في كثير من الأحيان ترغب في العمل على كامل خطوط يتراوح من خطوط كتل من التعليمات البرمجية.ومع ذلك ، yy هو واحد فقط من العديد من طريقة نثر النص إلى المجهول نسخ العازلة (أو "تسجيل" كما يطلق عليه في السادس).

"زين" من السادس هو أنك تتحدث لغة.الأولي y هو الفعل.بيان yy مرادف y_.على y هو مضاعفة لتسهيل نوع, بما أنه عملية مشتركة.

هذا ويمكن أيضا أن أعرب عن dd P (حذف السطر الحالي ولصق نسخة مرة أخرى إلى المكان ؛ ترك نسخة في المجهول سجل كأثر جانبي).على y و d "الأفعال" اتخاذ أي الحركة بأنها "الموضوع". وهكذا yW هو "نثر من هنا (المؤشر) إلى نهاية العام الحالي/التالي (الكبير) كلمة" ، y'a هو "نثر من هنا إلى السطر الذي يحتوي على علامة اسمه 'a'."

إذا كنت لا يفهمون إلا الأساسية ، الأسفل ، اليسار ، والحق حركات المؤشر ثم السادس سوف يكون هناك أكثر إنتاجية من نسخة من "المفكرة" بالنسبة لك.(حسنا, سوف لا يزال لديك تسليط الضوء على بناء الجملة و القدرة على التعامل مع ملفات أكبر من تافه ~45KB أو نحو ذلك ؛ ولكن العمل معي هنا).

السادس 26 "علامات" 26 "السجلات." علامة يتم تعيين أي المؤشر الموقع باستخدام m الأوامر.كل علامة يعينه واحد أقل من حالة الرسالة.وهكذا ma مجموعات 'a'مارك إلى الموقع الحالي ، mz مجموعات 'z'مارك.يمكنك الانتقال إلى السطر الذي يحتوي على علامة باستخدام ' (اقتباس مفردة) الأمر.وهكذا 'a ينتقل إلى بداية السطر الذي يتضمن 'a'مارك.يمكنك الانتقال إلى الموقع الدقيق أي علامة باستخدام ` (backquote) الأمر.وهكذا `z سوف تنتقل مباشرة إلى الموقع الدقيق 'z'مارك.

لأن هذه "الحركات" أنها يمكن أن تستخدم أيضا مواضيع أخرى "التصريحات".

لذا طريقة واحدة لخفض التعسفي اختيار النص سيكون إسقاط علامة (وعادة ما تستخدم 'a كما "أول" العلامة ، z'ما العلامة ، ب'، ، 'هـ'بعد آخر (لا أذكر من أي وقت مضى بعد بشكل تفاعلي يستخدم أكثر من أربع علامات في 15 سنوات من استخدام السادس;واحد يخلق المرء الاتفاقيات بشأن كيفية علامات سجلات يتم استخدامها من قبل وحدات الماكرو التي لا تخل واحدة التفاعلية السياق).ثم نذهب إلى الجانب الآخر من المطلوب النص ؛ يمكننا أن نبدأ على حد سواء, لا يهم.ثم يمكننا ببساطة استخدام d`a إلى قطع أو y`a نسخ.وبالتالي فإن العملية برمتها لديه 5 ضغطات المفاتيح العامة (ستة لو بدأنا في "إدراج" وضع في حاجة إلى Esc بها وضع الأوامر).مرة واحدة لقد قص أو نسخ ثم لصق في نسخة بضغطة زر واحدة: p.

أنا أقول أن هذا هو واحد طريقة قص أو نسخ النص.ومع ذلك, أنها ليست سوى واحدة من العديد من.في كثير من الأحيان ونحن يمكن أن تصف بإيجاز مجموعة من النص دون تحريك المؤشر حول إسقاط علامة.على سبيل المثال إذا أنا في فقرة من النص يمكنني استخدام { و } الحركات إلى بداية أو نهاية الفقرة على التوالي.وحتى ننتقل فقرة من النص قطعت باستخدام { d} (3 ضغطات).(إذا كنت يحدث أن يكون بالفعل على أول أو آخر سطر في الفقرة الأولى ثم يمكنك ببساطة استخدام d} أو d{ على التوالي.

مفهوم "الفقرة" التخلف إلى شيء مما هو عادة حدسي معقولة.وبالتالي فإنه غالبا ما يعمل رمز فضلا عن النثر.

كثيرا ما نعرف بعض نمط (التعبير العادي) الذي يصادف نهاية واحدة أو أخرى من النص الذي نحن مهتمون.البحث الأمام أو إلى الوراء هي حركات في السادس.وبالتالي فإنها يمكن أن تستخدم أيضا "الموضوعات" في "البيانات". حتى أتمكن من استخدام d/foo إلى قطع من السطر الحالي إلى السطر التالي يحتوي على السلسلة "فو" ، y?bar نسخ من السطر الحالي إلى آخرها (السابق) خط تحتوي على "شريط". إذا كنت لا تريد كل الخطوط لا يزال يمكنني استخدام البحث حركات (مثل البيانات الخاصة بهم), إسقاط علامة(s) واستخدام `x الأوامر كما هو موضح سابقا.

بالإضافة إلى "الأفعال" و "المواضيع" السادس أيضا "الكائنات" (في المعنى النحوي المصطلح).حتى الآن أنا فقط وصفت استخدام مجهول التسجيل.ومع ذلك ، يمكن استخدام أي من 26 "اسمه" يسجل من قبل التقديم "وجوه" المرجعية مع " (مزدوجة اقتباس التعديل).وبالتالي إذا كنت تستخدم "add أنا قطع السطر الحالي فيa'التسجيل و إذا كنت تستخدم "by/foo ثم أنا اخراج نسخة من النص من هنا إلى السطر التالي يحتوي على "فو" فيب'التسجيل.إلى لصق من سجل أنا ببساطة البادئة العجينة مع نفس معدل التسلسل: "ap يلصق نسخة من 'a'تسجيل محتويات في النص بعد المؤشر ، "bP يلصق نسخة من 'ب'قبل السطر الحالي.

هذا مفهوم "البادئات" يضيف أيضا النظير النحوية "الصفات" و "الاحوال' نص التلاعب "اللغة". معظم الأوامر (الأفعال) والحركة (الأفعال أو الأشياء ، اعتمادا على السياق) يمكن أيضا أن تأخذ رقمي البادئات.وهكذا 3J يعني "الانضمام التالية ثلاثة أسطر" ، d5} يعني "حذف من الخط الحالي من خلال نهاية الفقرة الخامسة من هنا."

هذا هو المستوى المتوسط السادس.لا شيء من هذا همة محددة وهناك أكثر تقدما بكثير من الحيل في السادس إذا كنت على استعداد أن تتعلم منهم.إذا كنت ماستر فقط هذه المتوسطة المفاهيم ثم كنت ربما تجد أنك نادرا ما تحتاج إلى كتابة أي وحدات الماكرو لأن النص التلاعب اللغة بما فيه الكفاية موجزة ومعبرة أن تفعل معظم الأشياء ما يكفي بسهولة باستخدام محرر في "الأم" اللغة.


عينة من أكثر تقدما من الحيل:

هناك عدد من : الأوامر ، أبرزها :% s/foo/bar/g العالمية إحلال التقنية.(هذا ليس تقدما ولكن الأخرى : الأوامر يمكن أن يكون).كله : مجموعة من الأوامر تاريخيا ورثته السادس's التجسيد السابقة كما إد (خط محرر) و في وقت لاحق السابق (تمديد خط محرر) المرافق.في الواقع السادس وسميت بذلك لأنها واجهة بصرية إلى السابق.

: الأوامر تعمل عادة على أسطر من النص. إد و السابق كانت مكتوبة في عصر عند محطة شاشات المألوف العديد من المحطات كانت "المبرقة" (TTY) الأجهزة.حيث كان من الشائع في العمل من النسخ المطبوعة من النص باستخدام الأوامر من خلال للغاية مقتضب واجهة (مشترك سرعات اتصال تم 110 سرعة البث بالباود ، أو تقريبا 11 حرفا في الثانية وهو أبطأ من سرعة الكاتبة;التخلف المشتركة بين متعدد المستخدم التفاعلية الدورات ؛ بالإضافة إلى ذلك كان هناك في كثير من الأحيان بعض الدوافع للحفاظ على الورق).

وبالتالي فإن جملة من معظم : الأوامر يتضمن عنوان أو مجموعة من العناوين (رقم السطر) تليها الأمر.بطبيعة الحال يمكن للمرء أن استخدام الحرفي خط الأعداد: :127,215 s/foo/bar تغيير أول وقوع "فو" إلى "بار" في كل سطر ما بين 127 و 215.يمكن أيضا استخدام بعض الاختصارات مثل . أو $ في الوقت الحالي وفي السطور الأخيرة على التوالي.يمكن أيضا استخدام النسبية البادئات + و - للإشارة إلى إزاحة بعد أو قبل تركيبة الخط ، على التوالي.وبالتالي: :.,$j معنى "الحالية من خط إلى خط آخر, انضم لهم جميعا في خط واحد". :% مرادف :1,$ (جميع الخطوط).

على :... g و :... v الأوامر تحمل بعض التفسير كما هي قوية بشكل لا يصدق. :... g هو اختصار ل "عالميا" تطبيق الأوامر اللاحقة على جميع الخطوط التي تتطابق مع نمط (العادية التعبير) حين :... v ينطبق هذا الأمر على جميع الخطوط التي لا تتطابق مع نمط معين ("v" من "العكس").كما هو الحال مع غيرها السابق أوامر هذه يمكن أن تكون مسبوقة خلال معالجة/مجموعة من المراجع.وهكذا :.,+21g/foo/d يعني "حذف أي الخطوط التي تحتوي على السلسلة "فو" من النظام الحالي من خلال التالي 21 خطوط" في حين :.,$v/bar/d يعني "من هنا إلى نهاية الملف أو حذف أي الخطوط التي لا تحتوي على السلسلة "شريط".

انها مثيرة للاهتمام أن المشترك الأوامر يونكس grep كان في الواقع مستوحاة من هذا السابق الأمر (و هو اسمه بعد الطريقة التي تم توثيقها).على السابق الأمر :g/re/p (grep) كانت الطريقة التي وثقت كيفية "عالميا" "طباعة" التي تحتوي على خطوط منتظمة "التعبير" (إعادة).عندما إد و السابق استخدمت ، :p الأمر كان من الأولى أن أي شخص تعلمها وغالبا ما تكون أول واحد يستخدم عند تحرير أي ملف.وكان كيفية طباعة محتويات الحالية (عادة واحدة فقط صفحة كاملة في وقت واحد باستخدام :.,+25p أو بعض من هذا القبيل).

علما بأن :% g/.../d أو (العكسي/التحدث نظيره: :% v/.../d هي الأكثر شيوعا أنماط الاستخدام.ومع ذلك هناك عدة ex الأوامر التي تستحق التذكر:

يمكننا استخدام m لنقل خطوط حولها ، j للانضمام إلى خطوط.على سبيل المثال إذا كان لديك قائمة و تريد فصل كل الاشياء مطابقة (أو العكس عدم مطابقة بعض نمط) دون حذفها ، ثم يمكنك استخدام شيء من هذا القبيل: :% g/foo/m$ ...و كل "فو" خطوط تم نقلها إلى نهاية الملف.(ملاحظة نصيحة أخرى حول استخدام نهاية الملف كما خدش الفضاء).هذا سوف يكون الحفاظ على النظام النسبي من كل "فو" خطوط حين وجود المستخرجة من بقية القائمة.(هذا من شأنه أن يكون معادلا تفعل شيئا مثل: 1G!GGmap!Ggrep foo<ENTER>1G:1,'a g/foo'/d (نسخ الملف إلى ذيله تصفية الذيل من خلال grep, وحذف كل الاشياء من الرأس).

للانضمام إلى خطوط عادة يمكنني العثور على نمط لجميع الخطوط التي تحتاج إلى أن انضم إلى السلف (جميع الخطوط التي تبدأ مع "^ " بدلا من "^ * " في بعض رصاصة القائمة ، على سبيل المثال).هذا حال كنت تستخدم: :% g/^ /-1j (لكل مطابقة خط ترتفع سطر واحد والانضمام لهم).(راجع للشغل:على قوائم رصاصة في محاولة للبحث عن الرصاصة خطوط والانضمام إلى التالي لا يعمل لعدة أسباب ...يمكنك الانضمام رصاصة واحدة من خط إلى آخر ، لن تنضم إلى أي رصاصة خط كل من متابعات;أنه سوف يعمل فقط البشرى على مباريات).

تقريبا لا داعي أن أذكر يمكنك استخدام صديقنا القديم s (بديل) مع g و v (العالمي/كونفيرس-العالمية) الأوامر.عادة لا تحتاج إلى القيام بذلك.ومع ذلك, النظر في بعض الحالات حيث كنت ترغب في إجراء عملية إحلال فقط على خطوط مطابقة بعض نمط آخر.غالبا ما يمكنك استخدام نمط معقد مع يلتقط استخدام المراجع للحفاظ على أجزاء من الخطوط التي لا تريد أن تتغير.ومع ذلك ، فإنه غالبا ما يكون من الأسهل منفصلة المباراة من الاستبدال: :% g/foo/s/bar/zzz/g - على كل سطر يحتوي على "فو" بديلا عن "بار" مع "zzz." (شيء من هذا القبيل :% s/\(.*foo.*\)bar\(.*\)/\1zzz\2/g سوف تعمل فقط على الحالات تلك الحالات من "بار" التي سبقت "فو" على نفس الخط ؛ إنه صعب المراس بما فيه الكفاية بالفعل ، يجب أن يكون المهترئ أخرى للقبض على جميع الحالات التي يكون فيها "بار" سبق "foo")

وهذه النقطة هي أن هناك أكثر من مجرد p, s, ، d خطوط في ex مجموعة الأوامر.

على : عناوين يمكن أن يشير أيضا إلى علامات.وبالتالي يمكنك استخدامها: :'a,'bg/foo/j للانضمام إلى أي سطر يحتوي على سلسلة فو إلى اللاحقة الخط لو كان يكمن بين السطور بين 'a'و 'ب'علامات.(نعم, كل من السابقة ex أمثلة الأوامر يمكن أن تقتصر على مجموعات فرعية من ملف الخطوط عن طريق التقديم مع هذه الأنواع من معالجة التعبيرات).

هذا غامضة جدا (أنا فقط تستخدم شيئا مثل ذلك بضع مرات في آخر 15 عاما).ومع ذلك, أنا أعترف أنه كثيرا ما كنت قد فعلت الأشياء تكرارا و بشكل تفاعلي يمكن أن ربما قد تم القيام به بشكل أكثر كفاءة إذا كنت قد اتخذت من الوقت للتفكير الصحيح التعويذة.

آخر مفيدة جدا السادس أو السابق الأمر :r قراءة في محتويات ملف آخر.وبالتالي: :r foo إدراج محتويات الملف المسمى "فو" في السطر الحالي.

أكثر قوة :r! الأوامر.هذا يقرأ نتائج الأوامر.انها نفس تعليق السادس دورة تشغيل الأمر إعادة توجيه الإخراج إلى ملف مؤقت ، استئناف الخاص بك السادس جلسة قراءة في محتويات من درجة الحرارة.الملف.

أكثر قوة هي ! (الانفجار) ، :... ! (السابق بانغ) الأوامر.هذه أيضا تنفيذ أوامر خارجية و قراءة النتائج في النص الحالي.إلا أنها أيضا تصفية تشكيلة من النص من خلال الأوامر!هذا يمكننا حل جميع الخطوط في الملف باستخدام 1G!Gsort (G هو السادس "غوتو" الأمر ؛ لأنه تخلف عن الذهاب إلى السطر الأخير من الملف ولكن يمكن أن تكون مسبوقة من قبل خط رقم مثل 1 السطر الأول).هذا هو ما يعادل السابق البديل :1,$!sort.الكتاب غالبا ما تستخدم ! مع Unix fmt أو أضعاف المرافق reformating أو "كلمة التفاف" تشكيلة من النص.شائع جدا الماكرو {!}fmt (إعادة صياغة الفقرة الحالية).المبرمجين في بعض الأحيان استخدامه لتشغيل التعليمات البرمجية الخاصة بهم ، أو مجرد أجزاء منه من خلال indent أو غيرها رمز إعادة تهيئة الأدوات.

باستخدام :r! و ! الأوامر يعني أن الخارجية أي فائدة أو تصفية يمكن أن تعامل على أنها امتداد لدينا محرر.أنا استخدمت أحيانا مع هذه النصوص التي سحب البيانات من قاعدة بيانات أو مع wget أو الوشق الأوامر التي سحبت البيانات من موقع على شبكة الانترنت أو ssh الأوامر التي سحبت البيانات من الأنظمة البعيدة.

أخرى مفيدة السابق الأمر :so (باختصار :source).هذا يقرأ محتويات ملف سلسلة من الأوامر.عند بدء تشغيل السادس فإنه عادة ، ضمنا ، ويؤدي :source على ~/.exinitrc ملف (و همة عادة ما يعني هذا على ~/.vimrc, طبيعي بما فيه الكفاية).استخدام هذا هو أنه يمكنك تغيير إعدادات محرر الشخصي على الطاير ببساطة عن طريق مصادر في مجموعة جديدة من وحدات الماكرو ، الاختصارات ، ورئيس تحرير الإعدادات.إذا كنت متستر يمكنك حتى استخدام هذه الحيلة لتخزين تسلسل السابق أوامر التحرير لتطبيق الملفات على الطلب.

على سبيل المثال لدي سبعة خط الملف (36 حرفا) الذي يدير الملف من خلال wc, و إدراج ج-أسلوب التعليق في الجزء العلوي من الملف التي تحتوي على هذه الكلمة العد البيانات.يمكن تطبيق هذا "ماكرو" إلى ملف باستخدام الأمر مثل: vim +'so mymacro.ex' ./mytarget

(إن + خيار سطر الأوامر إلى السادس و همة يستخدم عادة لبدء جلسة التحرير في إعطاء رقم السطر.ومع انها حقيقة معروفة أن أحد اتباع + أي صالحة السابق قيادة/تعبير مثل "مصدر" القيادة كما فعلت هنا ، على مثال بسيط علي النصوص التي تستشهد: vi +'/foo/d|wq!' ~/.ssh/known_hosts لإزالة إدخال من SSH المعروف تستضيف الملف غير تفاعلي بينما أنا إعادة التصوير مجموعة من الخوادم).

عادة انها أسهل بكثير من كتابة هذه "وحدات الماكرو" باستخدام بيرل ، AWK ، sed (الذي هو ، في الواقع ، مثل grep أداة مستوحاة من إد الأوامر).

على @ الأمر هو على الأرجح الأكثر غموضا السادس الأوامر.في بعض الأحيان التدريس المتقدمة في أنظمة الإدارة دورات يقرب من عقد من الزمان لقد اجتمع عدد قليل جدا من الناس الذين قد استخدمت من أي وقت مضى عليه. @ ينفذ محتويات السجل كما لو كانت السادس أو السابق الأوامر.
على سبيل المثال:أنا غالبا ما تستخدم: :r!locate ... العثور على بعض الملفات على النظام قراءة اسمها في الوثيقة.من حذف أي الدخيلة يضرب ، ولم يتبق سوى المسار الكامل إلى الملف أنا مهتم في.بدلا من بمشقة علامة التبويبجي من خلال كل عنصر من عناصر مسار (أو أسوأ من ذلك ، إذا كنت يحدث أن يكون عالقا على الجهاز بدون علامة التبويب إكمال الدعم في نسخة من السادس) أنا فقط استخدام:

  1. 0i:r (تحويل السطر الحالي في صالح :r الأوامر) ،
  2. "cdd (حذف سطر في "ج" تسجيل) ،
  3. @c تنفيذ هذا الأمر.

هذا فقط 10 ضغطات المفاتيح (والتعبير "cdd @c هو فعليا إصبع الكلي بالنسبة لي حتى أستطيع أن اكتب تقريبا بأسرع أي مشترك ستة أحرف كلمة).


فكرة واقعية

لقد خدش على سطح السادس'ق القوة و لا شيء من ما وصفتها هنا بل هو جزء من "التحسينات" التي همة هو اسمه!كل ما لدي هو موضح هنا يجب أن تعمل على أي نسخة قديمة من السادس من 20 أو 30 عاما.

هناك الناس الذين استخدموا أكثر بكثير من السادس's قوة من أي وقت مضى وسوف.

نصائح أخرى

أنت تتحدث عن اختيار النص نسخ ، أعتقد أنه يجب أن تعطي نظرة إلى همة وضع البصرية.

في وضع البصرية, كنت قادرا على تحديد النص باستخدام همة الأوامر, ثم يمكنك أن تفعل ما تريد مع الاختيار.

النظر في ما يلي السيناريوهات الشائعة:

تحتاج إلى تحديد التالي مطابقة بين قوسين.

هل يمكن أن تفعل:

  • v% إذا كان المؤشر على بدء/إنهاء قوسين
  • vib إذا كان المؤشر داخل قوسين كتلة

كنت تريد تحديد النص بين علامات الاقتباس:

  • السادس" من أجل التنصيص
  • السادس' واحد يقتبس

تحتاج إلى تحديد متعرج كتلة (شائع جدا في ج-نمط اللغات):

  • viB
  • vi{

كنت تريد تحديد الملف بأكمله:

  • ggVG

البصرية اختيار كتلة آخر حقا ميزة مفيدة ، فإنه يسمح لك لتحديد مساحة مستطيلة من نص ، عليك أن اضغط Ctrl-V لبدء تشغيله ، ثم حدد كتلة النص تريد إجراء أي نوع من العمليات مثل نثر, حذف, لصق, تحرير, الخ.انه لشيء رائع أن تحرير عمود الموجهة النص.

بعض نصائح الإنتاجية:

الذكية الحركات

  • * و # البحث عن كلمة تحت المؤشر إلى الأمام/الخلف.
  • w إلى الكلمة التالية
  • W إلى الفضاء القادم-كلمة فصل
  • b / e إلى بدء/نهاية الكلمة الحالية.(B / E الفضاء فصل فقط)
  • gg / G القفز إلى بدء/نهاية الملف.
  • % القفز إلى مطابقة { ..} أو ( ..), الخ..
  • { / } الانتقال إلى الفقرة التالية.
  • '. القفز مرة أخرى إلى التعديل الأخير خط.
  • g; القفز مرة أخرى إلى موقف آخر تحريرها.

تحرير سريع الأوامر

  • I إدراج في البدء.
  • A إلحاق إلى النهاية.
  • o / O فتح خط جديد بعد/قبل الحالية.
  • v / V / Ctrl+V وضع البصرية (لتحديد النص!)
  • Shift+R استبدال النص
  • C تغيير الجزء المتبقي من الخط.

الجمع بين الأوامر

معظم الأوامر قبول المبلغ والتوجيه ، على سبيل المثال:

  • cW = تغيير حتى نهاية كلمة
  • 3cW = تغيير 3 كلمات
  • BcW = أن تبدأ من كلمة كاملة, تغيير كلمة كاملة
  • ciW = تغيير الداخلية كلمة.
  • ci" = تغيير الداخلية بين ".."
  • ci( = تغيير النص بين ( ..)
  • ci< = تغيير النص بين < ..> (يحتاج set matchpairs+=<:> في vimrc)
  • 4dd = حذف 4 خطوط
  • 3x = حذف 3 أحرف.
  • 3s = بديلا 3 أحرف.

مفيدة مبرمج الأوامر

  • r استبدال حرف واحد (مثلا ، rd يستبدل الحالي مع شار d).
  • ~ تغيرات الحالة.
  • J ينضم سطرين
  • Ctrl+A / Ctrl+X الزيادات/decrements عدد.
  • . كرر الأمر الأخير (ماكرو بسيطة)
  • == إصلاح خط indent
  • > indent كتلة (في وضع البصرية)
  • < إزاحة كتلة (في وضع البصرية)

تسجيل الماكرو

  • اضغط q[ key ] لبدء التسجيل.
  • ثم ضرب q لإيقاف التسجيل.
  • الماكرو يمكن أن تقوم مع @[ key ].

باستخدام محددة للغاية الأوامر والحركات همة يمكن اعادتها بنفس الإجراءات السطور القادمة.(مثلا ، عن إلحاق إلى نهاية ، b / e لنقل المؤشر إلى بدء أو نهاية الكلمة على التوالي)

مثال بنيت بشكل جيد الإعدادات

# reset to vim-defaults
if &compatible          # only if not set before:
  set nocompatible      # use vim-defaults instead of vi-defaults (easier, more user friendly)
endif

# display settings
set background=dark     # enable for dark terminals
set nowrap              # dont wrap lines
set scrolloff=2         # 2 lines above/below cursor when scrolling
set number              # show line numbers
set showmatch           # show matching bracket (briefly jump)
set showmode            # show mode in status bar (insert/replace/...)
set showcmd             # show typed command in status bar
set ruler               # show cursor position in status bar
set title               # show file in titlebar
set wildmenu            # completion with menu
set wildignore=*.o,*.obj,*.bak,*.exe,*.py[co],*.swp,*~,*.pyc,.svn
set laststatus=2        # use 2 lines for the status bar
set matchtime=2         # show matching bracket for 0.2 seconds
set matchpairs+=<:>     # specially for html

# editor settings
set esckeys             # map missed escape sequences (enables keypad keys)
set ignorecase          # case insensitive searching
set smartcase           # but become case sensitive if you type uppercase characters
set smartindent         # smart auto indenting
set smarttab            # smart tab handling for indenting
set magic               # change the way backslashes are used in search patterns
set bs=indent,eol,start # Allow backspacing over everything in insert mode

set tabstop=4           # number of spaces a tab counts for
set shiftwidth=4        # spaces for autoindents
#set expandtab           # turn a tabs into spaces

set fileformat=unix     # file mode is unix
#set fileformats=unix,dos    # only detect unix file format, displays that ^M with dos files

# system settings
set lazyredraw          # no redraws in macros
set confirm             # get a dialog when :q, :w, or :wq fails
set nobackup            # no backup~ files.
set viminfo='20,\"500   # remember copy registers after quitting in the .viminfo file -- 20 jump links, regs up to 500 lines'
set hidden              # remember undo after quitting
set history=50          # keep 50 lines of command history
set mouse=v             # use mouse in visual mode (not normal,insert,command,help mode


# color settings (if terminal/gui supports it)
if &t_Co > 2 || has("gui_running")
  syntax on          # enable colors
  set hlsearch       # highlight search (very useful!)
  set incsearch      # search incremently (search while typing)
endif

# paste mode toggle (needed when using autoindent/smartindent)
map <F10> :set paste<CR>
map <F11> :set nopaste<CR>
imap <F10> <C-O>:set paste<CR>
imap <F11> <nop>
set pastetoggle=<F11>

# Use of the filetype plugins, auto completion and indentation support
filetype plugin indent on

# file type specific settings
if has("autocmd")
  # For debugging
  #set verbose=9

  # if bash is sh.
  let bash_is_sh=1

  # change to directory of current file automatically
  autocmd BufEnter * lcd %:p:h

  # Put these in an autocmd group, so that we can delete them easily.
  augroup mysettings
    au FileType xslt,xml,css,html,xhtml,javascript,sh,config,c,cpp,docbook set smartindent shiftwidth=2 softtabstop=2 expandtab
    au FileType tex set wrap shiftwidth=2 softtabstop=2 expandtab

    # Confirm to PEP8
    au FileType python set tabstop=4 softtabstop=4 expandtab shiftwidth=4 cinwords=if,elif,else,for,while,try,except,finally,def,class
  augroup END

  augroup perl
    # reset (disable previous 'augroup perl' settings)
    au!  

    au BufReadPre,BufNewFile
    \ *.pl,*.pm
    \ set formatoptions=croq smartindent shiftwidth=2 softtabstop=2 cindent cinkeys='0{,0},!^F,o,O,e' " tags=./tags,tags,~/devel/tags,~/devel/C
    # formatoption:
    #   t - wrap text using textwidth
    #   c - wrap comments using textwidth (and auto insert comment leader)
    #   r - auto insert comment leader when pressing <return> in insert mode
    #   o - auto insert comment leader when pressing 'o' or 'O'.
    #   q - allow formatting of comments with "gq"
    #   a - auto formatting for paragraphs
    #   n - auto wrap numbered lists
    #   
  augroup END


  # Always jump to the last known cursor position. 
  # Don't do it when the position is invalid or when inside
  # an event handler (happens when dropping a file on gvim). 
  autocmd BufReadPost * 
    \ if line("'\"") > 0 && line("'\"") <= line("$") | 
    \   exe "normal g`\"" | 
    \ endif 

endif # has("autocmd")

الإعدادات التي يمكن تخزينها في ~/.vimrc, أو على نطاق المنظومة في /etc/vimrc.local ثم قراءة من /etc/vimrc ملف باستخدام:

source /etc/vimrc.local

(سوف تضطر إلى استبدال # تعليق شخصية مع " أن تجعل من العمل في همة ، أردت أن تعطي المناسب تسليط الضوء على بناء الجملة هنا).

الأوامر لقد سردت هنا جميلة الأساسية ، أهمها استخدام حتى الآن.أنها بالفعل تجعلني جدا أكثر إنتاجية ، دون الحاجة إلى معرفة كل الأشياء الفاخرة.

على التحكم+R آلية مفيدة جدا :-) إما إدراج الوضعية ، أو وضع الأوامر (أيعلى : الخط عند كتابة الأوامر) ، مع ترقيم أو اسمه السجل:

  • a - z اسمه يسجل
  • " لم يذكر اسمه السجل التي تحتوي على نص آخر أو حذف أو نثر
  • % اسم الملف الحالي
  • # البديل اسم الملف
  • * محتويات الحافظة (X11:اختيار الأولية)
  • + محتويات الحافظة
  • / آخر نمط البحث
  • : آخر سطر الأوامر
  • . آخر إدراج النص
  • - آخر الصغيرة (أقل من خط) حذف
  • =5*5 إدراج 25 في النص (مصغرة آلة حاسبة)

انظر :help i_CTRL-R و :help c_CTRL-R لمزيد من التفاصيل وتحري حول القريبة لمزيد من CTRL-R الخير.

همة الإضافات

هناك الكثير من إجابات جيدة هنا ، واحد مذهلة عن زين السادس.شيء واحد أنا لا أرى ذكر أن همة للغاية الموسعة عبر الإضافات.هناك مخطوطات و الإضافات جعلها تفعل كل أنواع الأشياء المجنونة المؤلف الأصلي لم يعتبر.وهنا بعض الأمثلة من لا يصدق مفيد همة الإضافات:

القضبان.همة

القضبان.همة هو البرنامج المساعد كتبها tpope.إنها أداة لا يصدق للناس القيام القضبان التنمية.فإنه لا السحرية حساسة للسياق الأشياء التي تسمح لك الانتقال بسهولة من طريقة في التحكم المرتبطة بها عرض على نموذج وصولا إلى وحدة الاختبارات لهذا النموذج.فقد أنقذ العشرات إن لم يكن المئات من ساعات القضبان المطور.

جوهر.همة

هذا البرنامج المساعد يسمح لك لتحديد منطقة النص في وضع البصرية و نوع سريع الأمر بعد ذلك إلى gist.github.com.هذا يسمح لسهولة pastebin الوصول التي هي مفيدة للغاية إذا كنت تتعاون مع شخص على IRC أو الدردشة.

الفضاء.همة

هذا البرنامج المساعد يوفر وظائف خاصة إلى مفتاح المسافة.فإنه يتحول على مفتاح المسافة إلى شيء مماثل الفترة, ولكن بدلا من تكرار الإجراءات يكرر حركات.هذا يمكن أن يكون مفيد جدا بالنسبة تتحرك بسرعة من خلال ملف في طريقة تعرف على الطاير.

المحيطي.همة

هذا البرنامج المساعد يمنحك القدرة على العمل مع النص الذي هو محدد في بعض الأزياء.يعطيك الكائنات التي تدل على الأشياء داخل parens الأمور داخل يقتبس, الخ.أنها يمكن أن تأتي في متناول اليدين التلاعب في نص محدد.

supertab.همة

هذا البرنامج النصي يجلب الهوى التبويب الانتهاء وظائف همة.الإكمال التلقائي الاشياء هو موجود بالفعل في صميم همة ، ولكن هذا يجلب علامة تبويب سريعة بدلا من مختلفة متعددة multikey اختصارات.مفيد جدا و بشكل لا يصدق متعة للاستخدام.في حين انها لا VS التحسس ، انها خطوة كبيرة ويجلب قدرا كبيرا من وظائف ترغب نتوقع من علامة التبويب الانتهاء أداة.

syntastic.همة

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

الهارب.همة

الوصول المباشر إلى بوابة من داخل همة.مرة أخرى, أنا لم تستخدم هذا البرنامج المساعد ، ولكن أستطيع أن أرى فائدة.للأسف أنا في ثقافة حيث svn تعتبر "جديدة" لذا لن يحتمل رؤية بوابة في العمل لبعض الوقت.

nerdtree.همة

شجرة متصفح همة.لقد بدأت باستخدام هذا مؤخرا, و هو مفيد حقا.فإنه يتيح لك وضع treeview في الانقسام العمودي و فتح الملفات بسهولة.هذا شيء عظيم بالنسبة المشروع مع الكثير من الملفات المصدر كنت في كثير من الأحيان تقفز بين.

FuzzyFinderTextmate.همة

هذا غير المشرف عليها المساعد, ولكن لا يزال من المفيد بشكل لا يصدق.فإنه يوفر القدرة على فتح الملفات باستخدام "غامض" جملة وصفية.فهذا يعني أن في متفرق شجرة من الملفات التي تحتاج فقط نوع ما يكفي من الشخصيات إلى إزالة الغموض الملفات كنت مهتما في من تبقى من الغبار المتراكم تحت السرير.

الختام

هناك الكثير من لا يصدق الأدوات المتاحة همة.أنا متأكد من أنني فقط خدش السطح هنا انها تستحق البحث عن أدوات تنطبق على المجال الخاص بك.مزيج من التقليدية السادس قوية أدوات, همة التحسينات و الإضافات التي تمتد همة أبعد من ذلك, انها واحدة من أقوى الوسائل إلى تحرير النص تصور أي وقت مضى.همة بسهولة قوية مثل emacs, كسوف, visual studio, و تيكستماتي.

شكرا

شكرا duwanis له همة التكوينات وتعلمت منها الكثير و استعار معظم الإضافات المذكورة هنا.

. تكرار النص الأخير-تغيير القيادة

أنا من توفير الكثير من الوقت مع هذا واحد.

وضع البصرية ذكر سابقا ، ولكن منع وضع البصرية وفرت لي الكثير من الوقت عند تحرير حجم ثابت الأعمدة في ملف نصي.(التي يمكن الوصول إليها Ctrl-V).

gi

الذهاب إلى آخر تحرير موقع (مفيدة جدا إذا كنت قد قمت بإجراء بعض البحث عما تريد العودة إلى تحرير)

^P ^ن

كاملة السابقة (^P) أو (^ن) النص.

^O ^أنا

انتقل إلى السابقة (^O - "O" القديمة) أو الموقع التالي (^I - "I" فقط بالقرب من "O").عند إجراء عمليات البحث ، تحرير الملفات وما إلى ذلك ، يمكنك التنقل من خلال هذه "يقفز" إلى الأمام وإلى الوراء.

كنت مؤخرا (حصلت) اكتشفت هذا الموقع: http://vimcasts.org/

انها جميلة حقا جيدة حقا.الرجل الذي يعمل الموقع تحول من تيكستماتي إلى همة و المضيفين جيدة جدا وموجزة يلقي محددة همة المواضيع.التحقق من ذلك!

CTRL + A بزيادة عدد كنت واقفا على.

كل ما في الوضع العادي:

f<char> للانتقال إلى التالي سبيل المثال معين الحرف على السطر الحالي ، ; إلى تكرار.

F<char> للانتقال إلى المثال السابق معين الحرف على السطر الحالي ، ; إلى تكرار.

إذا ما استخدمت بذكاء المذكورين أعلاه يمكن أن تجعلك القاتل السريع يتحرك في خط.

* في كلمة إلى البحث عن المثيل التالي.

# في كلمة إلى البحث عن المثيل السابق.

الدورة

أ.حفظ الدورة

:mks sessionname

ب.قوة حفظ الدورة

:mks! sessionname

ج.تحميل الدورة

gvim أو همة -S sessionname


جمع وطرح

أ.جمع وطرح

CTRL-A ;إضافة [عد] إلى رقم أو حرف أبجدي في أو بعد المؤشر.{في السادس

CTRL-X ;طرح [عد] عن عدد أو أبجدية الحرف في أو بعد المؤشر.{في السادس}

ب.النافذة الرئيسية unmapping

في النافذة ، Ctrl-A تعيينها بالفعل كله اختيار ملف تحتاج إلى unmap في الملف rc.مارك mswin.همة CTRL-رسم الخرائط كجزء من التعليق أو إضافة ملف rc مع unmap

ج.مع الماكرو

CTRL-أمر مفيد جدا في ماكرو.على سبيل المثال:استخدم الخطوات التالية لجعل قائمة مرقمة.

  1. إنشاء أول دخول القائمة ، تأكد من أنه يبدأ برقم.
  2. qa - بدء التسجيل في المخزن المؤقت 'a'
  3. Y - نثر دخول
  4. p - وضع نسخة من الدخول تحت أول واحد
  5. CTRL-A - زيادة عدد
  6. س - إيقاف التسجيل
  7. @a - كرر نثر ، زيادة مرات

الأسبوع الماضي في العمل مشروعنا ورثت الكثير من الثعبان رمز من مشروع آخر.للأسف القانون لا تنسجم الموجودة لدينا العمارة - كان كل ذلك مع المتغيرات العالمية و الوظائف التي لا تعمل في مجتمع متعدد الخيوط البيئة.

كان لدينا ~80 الملفات التي تحتاج إلى صياغة تكون وجوه المنحى - جميع الوظائف انتقلت إلى حصص المعلمات تغيرت ، استيراد البيانات المضافة ، إلخ.كان لدينا قائمة من 20 أنواع الإصلاح التي تحتاج إلى القيام به كل ملف.وأود أن نقدر أن نفعل ذلك قبل يد شخص واحد يمكن أن تفعله ربما 2-4 في اليوم الواحد.

هكذا فعلت أول واحد باليد ثم كتب همة النصي لأتمتة التغييرات.أكثر من ذلك كانت قائمة همة الأوامر مثلا

" delete an un-needed function "
g/someFunction(/ d

" add wibble parameter to function foo "
%s/foo(/foo( wibble,/

" convert all function calls bar(thing) into method calls thing.bar() "
g/bar(/ normal nmaf(ldi(`aPa.

آخر واحد يستحق قليلا من الشرح:

g/bar(/  executes the following command on every line that contains "bar("
normal   execute the following text as if it was typed in in normal mode
n        goes to the next match of "bar(" (since the :g command leaves the cursor position at the start of the line)
ma       saves the cursor position in mark a
f(       moves forward to the next opening bracket
l        moves right one character, so the cursor is now inside the brackets
di(      delete all the text inside the brackets
`a       go back to the position saved as mark a (i.e. the first character of "bar")
P        paste the deleted text before the current cursor position
a.       go into insert mode and add a "." 

لبضع أكثر تعقيدا التحولات مثل توليد جميع استيراد البيانات جزءا لا يتجزأ من بعض الثعبان في همة النصي.

بعد بضع ساعات من العمل على ذلك كان السيناريو الذي سيتم القيام به على الأقل 95% من التحويل.أنا فقط فتح ملف في همة ثم تشغيل :source fixit.vim الملف تتحول في طرفة عين.

لا يزال لدينا عمل تغيير نسبة الـ 5% المتبقية التي لم تستحق أتمتة اختبار النتائج ، ولكن قبل قضاء يوم كتابة هذا السيناريو تقديري يجب حفظها أسابيع من العمل.

بالطبع كان من الممكن لأتمتة هذا مع لغة البرمجة مثل بايثون او روبي ، ولكن كان قد اتخذ أطول لكتابة وسوف تكون أقل مرونة - المثال الأخير كان صعبا منذ regex وحدها لن تكون قادرة على التعامل مع المتداخلة بين قوسين مثلالتحويل bar(foo(xxx)) إلى foo(xxx).bar().فيم كانت مثالية لهذه المهمة.

استخدام مدمج ملف اكسبلورر!الأمر :Explore وأنه يسمح لك التنقل خلال التعليمات البرمجية المصدر الخاصة بك سريعة جدا جدا.لدي هذه الخرائط في بلدي .vimrc:

map <silent> <F8>   :Explore<CR>
map <silent> <S-F8> :sp +Explore<CR>

المستكشف يسمح لك بإجراء التعديلات الملف أيضا.سوف انشر بعض من بلدي المفضل مفاتيح الضغط <F1> سوف تعطيك القائمة الكاملة:

  • -:الأكثر المفيدة:تغيير العليا الدليل (cd ..)
  • mf:وضع علامة على الملف
  • D:حذف علامة الملفات أو الملف المؤشر على, إذا كان أي شيء ismarked.
  • R:إعادة تسمية الملف المؤشر على.
  • d:إنشاء دليل جديد في الدليل الحالي
  • %:إنشاء ملف جديد في الدليل الحالي

أنا عضو الأمريكية اللازهرية الجمعيات.مجلة نصف شهرية تضم أكثر من 100 ونيت من مختلف الأنواع.ما يقرب من 15 من هذه "cryptarithms" - أنواع مختلفة من المشاكل الحسابية مع الحروف بديلا عن الأرقام.اثنين أو ثلاثة من هذه سودوكو إلا مع الحروف بدلا من الأرقام.عندما الشبكة اكتمال التسعة متميزة الحروف سوف تهجئة كلمة أو كلمات على بعض خط, قطري, دوامة, الخ., في مكان ما في الشبكة.

بدلا من العمل مع قلم رصاص أو الكتابة المشاكل في باليد, تحميل المشاكل من منطقة الأعضاء من موقعه على الانترنت.

عند العمل مع هذه سودوكو, أنا استخدم السادس ، ببساطة لأن أنا باستخدام مرافق السادس أن بعض المحررين الآخرين لها.معظمها في تحويل حروف الشبكة إلى شبكة مرقمة, لأنني أجد أنه من الأسهل إلى حل ، ثم الانتهاء من ترقيم الشبكة مرة أخرى إلى بالحروف الشبكة للعثور على حل كلمة أو كلمات.

مشكلة تنسيق تسع مجموعات من تسعة أحرف ، -s تمثل الفراغات كتبت في سطرين.الخطوة الأولى هي أن شكل هذه إلى تسعة خطوط من تسعة أحرف لكل منهما.لا يوجد شيء خاص حول هذا مجرد إدراج ثمانية linebreaks في الأماكن المناسبة.

النتيجة سوف تبدو مثل هذا:

T-O-----C
-E-----S-
--AT--N-L
---NASO--
---E-T---
--SPCL---
E-T--OS--
-A-----P-
S-----C-T

لذا الخطوة الأولى في تحويل هذه الأرقام إلى تقديم قائمة متميزة من الرسائل.أولا ، أنا نسخة من كتلة.لقد وضع المؤشر في الجزء العلوي من كتلة ، ثم اكتب :y}}p. : يضعني في وضع الأوامر ، y الشماليين في الحركة القادمة الأوامر.منذ } هو الانتقال إلى نهاية الفقرة التالية ، y} الأمريكان الفقرة. } ثم ينتقل المؤشر إلى نهاية الفقرة ، p المعاجين ما كنا قد انتزع بعد المؤشر.لذلك y}}p يخلق نسخة من الفقرة التالية, و ينتهي مع المؤشر بين نسختين.

المقبل, أنا لتحويل واحد من تلك النسخ إلى قائمة متميزة الحروف.هذا الأمر هو قليلا أكثر تعقيدا:

:!}tr -cd A-Z | sed 's/\(.\)/\1\n/g' | sort -u | tr -d '\n'

: مرة أخرى يضعني في وضع الأوامر. ! يشير إلى أن محتوى المقبل نثر يجب أن تكون الأنابيب من خلال سطر الأوامر. } الأمريكان الفقرة التالية سطر الأوامر ثم يستخدم tr الأوامر إلى شريط كل شيء باستثناء رسائل الحالة العلوي ، sed الأمر طباعة كل حرف على سطر واحد ، sort الأمر لفرز تلك الخطوط ، وإزالة التكرارات ثم tr شرائح من أسطر تاركا التسعة متميزة الحروف في خط واحد ، استبدال تسعة الخطوط التي قد تتكون الفقرة أصلا.في هذه الحالة, رسائل هي: ACELNOPST.

الخطوة التالية هي جعل نسخة أخرى من الشبكة.ثم استخدام الحروف لقد فقط تم استبدال كل من تلك الرسائل مع أرقام من 1 إلى 9.هذا هو بسيط: :!}tr ACELNOPST 0-9.والنتيجة هي:

8-5-----1
-2-----7-
--08--4-3
---4075--
---2-8---
--7613---
2-8--57--
-0-----6-
7-----1-8

ثم وهذا يمكن أن يكون حلها بالطريقة المعتادة ، أو دخلت في أي سودوكو حلالا قد تفضل.الانتهاء من حل ومن ثم يمكن تحويلها مرة أخرى إلى الرسائل مع :!}tr 1-9 ACELNOPST.

هناك قوة في السادس أن يقابل من قبل عدد قليل جدا من الآخرين.المشكلة الأكبر هي أنه ليس هناك سوى عدد قليل جدا من السادس التعليمي الكتب, المواقع, مساعدة-ملفات الخ ، تفعل أكثر من بالكاد تلمس سطح ما هو ممكن.

الأكبر النص التلاعب!

إما من خلال وحدات الماكرو:

  • تبدأ مع تسجيل: qq
  • هل الاشياء
  • إيقاف التسجيل: q
  • أكرر: @q (في المرة الأولى) ، @@ بعد ذلك.
  • كرر 20 مرة: 20@@

أو من خلال التعبيرات العادية:

  • استبدال الاشياء: :%s/[fo]+/bar/g

(ولكن حذر من أن يكون:إذا كنت تفعل هذا الأخير, سيكون لديك 2 مشاكل :).)

اكتشفت مؤخرا q:.يفتح "نافذة الأوامر" ويظهر أحدث السابق وضع (القيادة-وضع أوامر).يمكنك نقل كالمعتاد داخل النافذة و الضغط <CR> ينفذ الأمر.يمكنك تحرير ، إلخ.أيضا.لا تقدر بثمن عندما كنت تعبث مع بعض المعقدة الأوامر أو باستخدام التعابير المنطقية و أنت لا تريد إعادة كتابة كل شيء ، أو إذا المعقدة شيء تريد القيام به هو 3 الأوامر مرة أخرى.انها تقريبا مثل باش set -o vi, لكن بالنسبة همة نفسه (هه!).

انظر :help q: لمزيد من بت مثيرة للاهتمام بالنسبة ذهابا وإيابا.

لقد اكتشفت للتو همة هو omnicompletion اليوم و بينما أنا أعترف أنا غامضة بعض الشيء على ما فيها ، لقد كان من المستغرب نتائج جيدة فقط يهرس إما Ctrl + x Ctrl + u أو Ctrl + n/Ctrl +p في إدراج الوضعية.انها ليست تماما التحسس الذكي, ولكن أنا لا تزال تعلم ذلك.

في محاولة منه! :help ins-completion

هذه ليست اختصارات, لكنها ذات الصلة:

  1. جعل capslock إضافية ESC (أو Ctrl)
  2. خريطة الزعيم "," (فاصلة), مع هذا الأمر:اسمحوا mapleader=","

فإنها تعزز إنتاجية بلدي.

آخر مفيدة السادس "اختصار" أنا في كثير من الأحيان استخدام 'إكس بي'.هذا سوف مبادلة الحرف تحت المؤشر مع الحرف التالي.

<Ctrl> + W, V تقسيم الشاشة عموديا
<Ctrl> + W W للانتقال بين النوافذ

!بيثون % [وسائط] لتشغيل البرنامج النصي أنا التحرير في هذه النافذة

ZF في وضع البصرية إلى أضعاف التعسفي خطوط

وضع البصرية

كما العديد من الآخرين قال: وضع البصرية هو الحل الخاص بك نسخ/قص و لصق المشكلة.همة يعطيك 'v', 'V' ج-v.الحالة الأدنى 'v' في همة هو أساسا نفس المفتاح shift في "المفكرة".الشيء الجميل هو أن لم يكن لديك إلى اضغط عليه.يمكنك استخدام أي حركة تقنية التنقل بكفاءة ابتداء (أو إنهاء) نقطة من اختيارك.ثم ضرب 'v' ، كفاءة استخدام تقنيات الحركة مرة أخرى للانتقال إلى الجانب الآخر من اختيارك.ثم 'd' أو 'y' يسمح لك بقص أو نسخ هذا الاختيار.

ميزة همة البصرية وضع أكثر من جيم دينيس وصف قص/نسخ/لصق في السادس أن لم يكن لديك للحصول على موقع على حق تماما.في بعض الأحيان أنها أكثر كفاءة في استخدام حركة سريعة للوصول إلى المناطق المجاورة حيث تريد أن تذهب ثم صقل أنه مع الحركات الأخرى من التفكير أكثر تعقيدا حركة واحدة الأمر الذي يحصل لك بالضبط حيث تريد أن تذهب.

الجانب السلبي لاستخدام وضع البصرية على نطاق واسع في هذه الطريقة هو أنه يمكن أن تصبح عكاز التي تستخدمها في كل وقت الذي يمنعك من التعلم الجديدة السادس(م) الأوامر التي قد تسمح لك أن تفعل الأشياء بشكل أكثر كفاءة.ومع ذلك ، إذا كنت استباقية جدا عن التعلم جوانب جديدة من السادس(م) ، ثم هذا ربما لن تؤثر عليك كثيرا.

أنا أيضا إعادة التأكيد على أن المرئي خط البصرية وسائط كتلة تعطيك الاختلافات حول هذا الموضوع التي يمكن أن تكون قوية جدا...وخاصة البصرية وضع كتلة.

على كفاءة استخدام لوحة المفاتيح

أنا أيضا أختلف مع التأكيد على أن بالتناوب اليدين هو أسرع طريقة استخدام لوحة المفاتيح.وقد عنصر من الحقيقة في ذلك.يتحدث جدا عموما ، تكرار استخدام نفس الشيء بطيء.هذا أهم مثال على هذا المبدأ أنه متتالية ضربات المفاتيح المطبوعة مع نفس الإصبع بطيئة جدا.قولك ربما ينبع من الميل الطبيعي إلى استخدام s/الأصابع/اليد/ التحول على هذا النمط.إلى حد ما صحيح ولكن في نهاية عالية للغاية من كفاءة الطيف انها غير صحيحة.

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

أكثر صعوبة المشكلة هو الأمثل هذا.فإنه من السهل جدا لتحسين المطلق المسافة على لوحة المفاتيح.همة يفعل ذلك.انها اصعب بكثير من تحسين في "تشغيل" مستوى السادس(م) مع انه مشروط تحرير يتيح لك فرصة أفضل في كونها قادرة على القيام بذلك من أي غير مشروط النهج (مهم, emacs) يمكن أن أي وقت مضى.

على Emacs

لئلا emacs المتعصبين تجاهل تماما بلدي كله منصب على حساب آخر قوسين التعليق, أشعر أنني يجب أن وصف جذر الفرق بين emacs و همة الأديان.أنا لم تحدث حتى في المحرر الحروب و ربما لن تفعل ذلك مرة أخرى ، ولكن لم أسمع أي شخص لوصف الاختلافات بهذه الطريقة ، حتى هنا يذهب.الفرق هو المقايضة التالية:

همة يعطيك مثيل لها من الخام تحرير النص الكفاءة Emacs يعطيك مثيل لها القدرة على تخصيص برنامج محرر

الأعمى همة المتعصبين يدعون أن همة لديه لغة البرمجة.لكنه غامض, المخصص اللغة التي تم تصميمها لخدمة المحرر.Emacs اللثغة!وقال بما فيه الكفاية.إذا كنت لا نقدر أهمية تلك الجملتين الأخيرتين أو لديهم الرغبة في تعلم ما يكفي عن البرمجة الوظيفية واللثغة لتطوير هذا التقدير, ثم يجب عليك استخدام vim.

Emacs المتعصبين يدعون أن emacs فايبر واسطة ، و لذلك هو مجموعة شاملة من همة.ولكن الافعى ليس وضع المعيار.ما أفهمه هو أن أفعى وضع لا يستخدم من قبل الغالبية العظمى من emacs المستخدمين.لأنه ليس الافتراضي معظم emacs المستخدمين ربما لا تنمية حقيقية تقدير فوائد نموذج مشروط.

في رأيي هذه الاختلافات متعامد.أعتقد فوائد همة و emacs كما ذكرت لهم على حد سواء صالحة.هذا يعني أنه في نهاية المطاف المحرر لا وجود له حتى الآن.انها على الارجح صحيح أن emacs سيكون أسهل منصة على أساسها في نهاية المطاف محرر.ولكن مشروط التحرير ليست راسخة في emacs عقلية.Emacs المجتمع يمكن أن تتحرك بهذه الطريقة في المستقبل, ولكن هذا لا يبدو من المرجح جدا.

حتى إذا كنت تريد التحرير الخام كفاءة استخدام vim.إذا كنت تريد في نهاية المطاف بيئة البرمجة و البرمجة الخاصة بك استخدام محرر emacs.إذا كنت تريد بعض على حد سواء مع التركيز على البرمجة واستخدام emacs مع الافعى الوضعية (أو البرنامج الخاص بك الوضعية).إذا كنت تريد أفضل من كلا العالمين ، وكنت من الحظ الآن.

قضاء 30 دقيقة في القيام همة التعليمي (تشغيل vimtutor بدلا من همة في المحطة).سوف تعلم الحركات الأساسية و بعض المفاتيح هذه سوف تجعلك على الأقل إنتاجية مع همة كما هو الحال مع محرر النص استخدمته من قبل.بعد ذلك, حسنا, قراءة جيم دنيس' الجواب مرة أخرى :)

ما هي طريقة استخدام Vim أن يجعل كنت أكثر إنتاجية من المعاصرة المحرر ؟

أن تكون قادرة على تنفيذ مجمع التعديلات المتكررة مع عدد قليل جدا من المفاتيح (في كثير من الأحيان باستخدام وحدات الماكرو).نلقي نظرة على VimGolf أن تشهد قوة همة!

بعد أكثر من عشر سنوات تقريبا من الاستخدام اليومي ، فإنه من الصعب أن نتصور باستخدام أي محرر آخر.

استخدام \c في أي مكان في البحث تجاهل القضية (تجاوز الخاص بك ignorecase أو smartcase إعدادات).E. g. /\cfoo أو /foo\c ستكون مباراة foo, Foo, fOO, FOO, ، وما إلى ذلك.

استخدام \C في أي مكان في البحث لفرض حالة مطابقة.E. g. /\Cfoo أو /foo\C فقط مباراة فو.

فوجئت بأن لا أحد يذكر t الحركة.أنا كثيرا ما تستخدم مع المعلمة القوائم في شكل dt, أو yt,

الغريب لا أحد ذكر ctags.تحميل "مندفعا ctags" ووضعها قبل كربي مسبقا النسخة لديك بالفعل في مسار البحث.Cd إلى جذر مهما كنت تعمل على ، على سبيل المثال الروبوت نواة التوزيع.نوع "ctags -R ." لبناء فهرس الملفات المصدر في أي مكان تحت هذا dir في ملف اسمه "العلامات".هذا يحتوي على جميع الكلمات ، nomatter اللغة ولا مكان في دير في ملف واحد ، وذلك عبر لغة العمل سهلا.

ثم فتح همة في هذا المجلد و قراءة :مساعدة ctags لبعض الأوامر.عدد قليل كنت تستخدم في كثير من الأحيان:

  • ضع المؤشر على استدعاء الأسلوب و نوع CTRL-] أن تذهب إلى طريقة تعريف.

  • نوع :تا اسم للذهاب إلى تعريف اسم.

أوتوماتيك المسافة البادئة:

gg (اذهب إلى بداية الوثيقة)
= (indent الوقت!)
shift-g (الانتقال إلى نهاية المستند)

سوف تحتاج 'نوع الملف المساعد indent على' في .vimrc ملف, وربما المناسب 'shiftwidth" و "expandtab' إعدادات.

أنت سألت عن الإنتاجية اختصارات, ولكن أعتقد أن السؤال الحقيقي هو:هو همة يستحق ؟ الجواب على هذا ستاكوفيرفلوو السؤال هو -> "نعم"

يجب أن كنت قد لاحظت شيئين.همة قوية و همة من الصعب معرفة.الكثير من قوته تكمن في انها التوسعة التي لا نهاية لها مجموعة من الأوامر.لا يشعر بالإرهاق.تذهب بطيئة.أمر واحد, البرنامج المساعد واحد في وقت واحد.لا تبالغي.

كل ذلك الاستثمار وضعت في همة سوف تدفع مرة أخرى ألف مرة.ستكون داخل محرر نص لساعات عديدة قبل أن تموت.همة يكون صاحبك.

مخازن متعددة ، وخاصة سريع القفز بين لهم لمقارنة ملفين مع :bp و :bn (صحيح إعادة تعيين إلى واحد التحول + p أو التحول + n)

vimdiff وضع (انشقاقات في اثنين العمودي المخازن ، مع الألوان لإظهار الاختلافات)

منطقة-نسخة مع Ctrl + v

و أخيرا, علامة التبويب الانتهاء من معرفات (البحث عن "mosh_tab_or_complete").هذا مغير الحياة.

اتفق مع أعلى الملصق على :r! الأمر جدا مفيدا.

في معظم الأحيان استخدام الأمر "لصق" الأشياء:

:r!cat
**Ctrl-V to paste from the OS clipboard**
^D

هذه الطريقة لا كمان مع :set paste.

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