كيف يمكنك تحريك المؤشر لأعلى أو لأسفل خطوط متعددة مع emacs؟
-
27-09-2019 - |
سؤال
يمكنني تحريك مؤشر بلدي لأعلى ولأسفل سطر واحد مع مفتاح السهم الخاص بي على ما يرام في 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