كيف يمكنك تحريك المؤشر لأعلى أو لأسفل خطوط متعددة مع emacs؟

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

سؤال

يمكنني تحريك مؤشر بلدي لأعلى ولأسفل سطر واحد مع مفتاح السهم الخاص بي على ما يرام في emacs ، لذلك أود إعادة تعريف CN و CP للتحرك لأعلى ولأسفل 5 خطوط في كل مرة.

لقد بدأت للتو في تعلم كيفية استخدام emacs ، و Elisp غريبة جدًا بالنسبة لي. حاولت استخدام GNU EMACS LISP Reference, ، لكنني لم أتمكن من العثور على كيفية ربط ضغط المفاتيح بأوامر متعددة.

إليك ما لدي حتى الآن (ركز على تعريف التحريك):

(global-set-key "\C-p"  '(loop for i in '(1 2 3 4 5) do ('previous-line))) 

لكن هذا يثير رسالة خطأ عندما أضغط على CP ، "وسيطة النوع الخاطئ".

أي اقتراحات؟

شكرًا!

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

المحلول

هذه الوظيفة (على ما أظن next-line و previous-line) قبول حجة خيار مع CU ، لذلك أعتقد ذلك (next-line 5) ستفعل ما تريد.

تحرير: لذلك حاولت للتو وسيكون ذلك

(global-set-key (kbd "C-n")
    (lambda () (interactive) (next-line 5)))

ونفس الشيء مع CP و previous-line.

(Fiew ليس بسيطًا لكتابة التعليمات البرمجية في Textarea مع لوحة مفاتيح الهاتف ^^)

نصائح أخرى

وفقًا للتحذير في تكوين Emacs الخاص بي ، والتعليق من Peter Ajtai ، أقترح الإصدار الذي يستخدم forward-line من وجهة نظري init.el

(global-set-key (kbd "C-n")
    (lambda () (interactive) (forward-line  5)))
(global-set-key (kbd "C-p")
    (lambda () (interactive) (forward-line -5)))

بالطبع هناك أيضا forward-char, ، يعمل بنفس الشيء ، فقط في اتجاه مختلف.

الشيء الوحيد المفقود هو أ complex-forward يتطلب ذلك رقمًا معقدًا كوسيطة ، ويمكن استخدامه للتنقل في جميع الاتجاهات الأربعة: P

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