Doom-emacs: كيف يمكن تحريك نافذة REPL؟

تم إنشاؤها على ٨ أغسطس ٢٠١٧  ·  3تعليقات  ·  مصدر: hlissner/doom-emacs

عندما أفتح REPL باستخدام C-c C-l ، تبدو النافذة التي ينشئها مميزة (خلفية داكنة ، تخرج من العملية عند إغلاقها ، ...).

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

هل يمكن أن تعطيني مؤشرات حول كيفية التعامل مع هذا المخزن المؤقت الخاص وكيف يتم عرضه؟ :(

شكرا!

discussion

التعليق الأكثر فائدة

حسنًا ، هناك الكثير من الأجزاء المتحركة هنا. لست متأكدًا مما لديك C-c C-l مرتبط به. إذا كنت لا تستخدم الأمر +eval/repl لبدء إعادة الوضع ، فسيعامل Doom المخزن المؤقت للإعادة مثل مخزن مؤقت خاص شائع.

في هذه الحالة ، فإن المتغيرين الملائمين هما shackle-default-alignment و shackle-rules ، اللذان يخبران Emacs بكيفية التعامل مع النوافذ التي تفي بمعايير معينة.

في نهاية shackle-rules هناك قاعدتان شاملتان:

(set! :popup 
  '("^\\*"  :regexp t :noselect t :autokill t)
  '("^ \\*" :regexp t :size 12 :noselect t :autokill t :autoclose t))))

المشكلتان هنا هما :autokill t (مما يضمن قتل المخزن المؤقت والعمليات المرتبطة به معًا) وبما أنه لم يتم تحديد :align ، فإنه يلجأ إلى shackle-default-alignment ، والذي يتم تعيينه افتراضيًا إلى 'below .

اذن كيف نصلح هذا؟

فيما يلي ثلاث طرق:

  1. ما عليك سوى تحديد قاعدة تجاوز للإجابة على وجه الخصوص:

    (set! :popup "*my-repl-buffer*" :align 'left :noesc t)
    

    راجع M-x doom/describe-setting RET :popup للحصول على التفاصيل.

  2. قم بتمكين الوضع الصغير +eval-repl-mode في الرد الخاص بك:

    (add-hook 'inferior-python-mode-hook #'+eval-repl-mode)

    ستجد هذه القاعدة المنبثقة في الوحدات النمطية / feature / EVAL / config.el :

    (set! :popup
     '(:custom (lambda (b &rest _) (buffer-local-value '+eval-repl-mode b)))
     :size 16 :noesc t)
    
  3. اربط C-c C-l بـ +eval/repl واستخدم ذلك بدلاً من ذلك لاستدعاء الرد الخاص بك. معظم الأوضاع لديها افتراضات معقولة. إذا لم يتم فتح الرد الذي تريده ، فيمكنك تغيير الوضع الرئيسي-> اقتران الرد بالإعداد :repl ، على سبيل المثال

    (set! :repl 'python-mode #'+python/repl)

    الوظيفة: يجب أن يعيد رد يريد مخزنًا مؤقتًا يحتوي على رد.


امل ان يساعد!

ال 3 كومينتر

حسنًا ، هناك الكثير من الأجزاء المتحركة هنا. لست متأكدًا مما لديك C-c C-l مرتبط به. إذا كنت لا تستخدم الأمر +eval/repl لبدء إعادة الوضع ، فسيعامل Doom المخزن المؤقت للإعادة مثل مخزن مؤقت خاص شائع.

في هذه الحالة ، فإن المتغيرين الملائمين هما shackle-default-alignment و shackle-rules ، اللذان يخبران Emacs بكيفية التعامل مع النوافذ التي تفي بمعايير معينة.

في نهاية shackle-rules هناك قاعدتان شاملتان:

(set! :popup 
  '("^\\*"  :regexp t :noselect t :autokill t)
  '("^ \\*" :regexp t :size 12 :noselect t :autokill t :autoclose t))))

المشكلتان هنا هما :autokill t (مما يضمن قتل المخزن المؤقت والعمليات المرتبطة به معًا) وبما أنه لم يتم تحديد :align ، فإنه يلجأ إلى shackle-default-alignment ، والذي يتم تعيينه افتراضيًا إلى 'below .

اذن كيف نصلح هذا؟

فيما يلي ثلاث طرق:

  1. ما عليك سوى تحديد قاعدة تجاوز للإجابة على وجه الخصوص:

    (set! :popup "*my-repl-buffer*" :align 'left :noesc t)
    

    راجع M-x doom/describe-setting RET :popup للحصول على التفاصيل.

  2. قم بتمكين الوضع الصغير +eval-repl-mode في الرد الخاص بك:

    (add-hook 'inferior-python-mode-hook #'+eval-repl-mode)

    ستجد هذه القاعدة المنبثقة في الوحدات النمطية / feature / EVAL / config.el :

    (set! :popup
     '(:custom (lambda (b &rest _) (buffer-local-value '+eval-repl-mode b)))
     :size 16 :noesc t)
    
  3. اربط C-c C-l بـ +eval/repl واستخدم ذلك بدلاً من ذلك لاستدعاء الرد الخاص بك. معظم الأوضاع لديها افتراضات معقولة. إذا لم يتم فتح الرد الذي تريده ، فيمكنك تغيير الوضع الرئيسي-> اقتران الرد بالإعداد :repl ، على سبيل المثال

    (set! :repl 'python-mode #'+python/repl)

    الوظيفة: يجب أن يعيد رد يريد مخزنًا مؤقتًا يحتوي على رد.


امل ان يساعد!

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

يبدو أن كل المساعدة التي احتاجها!

لكي أكون أكثر تحديدًا ، كنت أتحدث بالفعل عن intero REPL ، الذي بدأ بأمر يسمى intero-repl-load . لا أعرف ما هي الآليات التي تستخدمها بعد ذلك.

انتهى بي الأمر مع:

(set! :popup "^\\*intero:" :regexp t :align 'right :size 80)

في modules/private/ptival/init.el ، عملت مثل السحر!

شكرا لأخذ الوقت لشرح كل هذا لي! لا أعتقد أنني كنت سأفهم هذا بمفردي في أي فترة زمنية معقولة! 👍

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات