سؤال

وأنا استخدم ما يلي defun التبويب الذكية في .emacs بلدي لأي إنجاز على كلمة واحدة أو لمجرد القيام التبويب قياسي:

(global-set-key [(tab)] 'smart-tab)
(defun smart-tab ()
  "This smart tab is minibuffer compliant: it acts as usual in
    the minibuffer. Else, if mark is active, indents region. Else if
    point is at the end of a symbol, expands it. Else indents the
    current line."
  (interactive)
  (if (minibufferp)
      (unless (minibuffer-complete)
        (dabbrev-expand nil))
    (if mark-active
        (indent-region (region-beginning)
                       (region-end))
      (if (looking-at "\\_>")
          (dabbrev-expand nil)
        (indent-for-tab-command)))))

ولكن عندما أنا باستخدام magit-status للتكامل بوابة بوابة، ويمكنني أن سبق حدد الملف الذي تمت زيارتها تعديل، علامة التبويب ضرب، ونرى على الفور فرق على هذا الملف لمعرفة ما تم تعديلها. ومع ذلك، كلما أحاول علامة تبويب الآن، أحصل على الخطأ التالي في بلدي صغير العازلة.

وindent-relative: Buffer is read-only: #<buffer *magit: my_project*

وأية أفكار حول اقتراب هذا وتطبيق التبويب الذكية أعلاه للأوضاع معينة ربما فقط؟

وشكرا!

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

المحلول

وأنا معيل من التبويب الذكية، من جيثب . أحدث نسخة يحدد وضع القاصر الذي يتحول من تلقاء نفسه في قراءة فقط العازلة أو المنظم الصغير، مما يسمح للأشياء مثل ايدو وضع وmagit للعمل بشكل صحيح. بل هو أيضا أفضل في التعامل مع الحالات التي تريد على المدى رئيسيا أمر مختلف عن indent-for-tab-command، مثل التنظيمية للوضع. أنا أوصي لكم استخدام الإصدار جيثب، كما أنه يتجنب الكثير من الصداع من النسخة الأساسية مع ربط المفاتيح العام.

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