سؤال

دعنا نقول أن لدينا ما يلي في أجهزة الصراف الآلي VIM:

int main () {
    printf("hello");
    return 0;
}

في VIM، د ينقل كلمة إلى اليمين، ولكن ما يشكل بالضبط "كلمة"؟


على سبيل المثال، إذا كان لدي المؤشر ب من printf, ، الضغط على د يأخذك إلى ( والضغط على آخر د يتخطى " ويضع المؤشر على h من hello. وبعد لماذا كان " تخطى؟

الضغط على آخر د الآن يأخذك إلى الآخر " قبل ) والضغط على آخر w يأخذك إلى السطر التالي. لماذا أين ) و ; تخطى؟

والآن المؤشر على r من return. وبعد الضغط على أ د يأخذ المؤشر على 0 والضغط على آخر د الآن يأخذ المؤشر على ;. وبعد لذلك في هذه الحالة، ; لم يتم تخطيها على عكس السطر السابق. لماذا هذا؟


آمل أن أكون مسؤولا واضحة بما فيه الكفاية ولكني أحاول فقط أن أفهم كيف يعمل هذا كل شيء.

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

المحلول

من عند :help word:

تتكون كلمة من سلسلة من الحروف والأرقام أو السفلات السفلية، أو سلسلة من الأحرف غير الفارغة الأخرى، مفصولة مع مساحة بيضاء (مسافات، علامات تبويب،). يمكن تغيير هذا مع خيار "IskeyWord". كما يعتبر خط فارغ كلمة.

إذا كان استخدام رأس المال الخاص بك بدلا من ذلك:

تتكون كلمة من سلسلة من الأحرف غير الفارغة، مفصولة مع مساحة بيضاء. كما يعتبر خط فارغ كلمة.

في مثالك، w يعامل أي تسلسل من أحرف الكلمات غير الرئيسية ككلمة أيضا.

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

نصائح أخرى

من داخل VIM، النوع

:help word-motions

سوف تحصل على كل التفسير الذي تبحث عنه.

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