إيماكس لصناعة السيارات في انقاذ على عازلة التبديل

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

  •  06-07-2019
  •  | 
  •  

سؤال

واتصل بي عرجاء، ولكن أنا تعبت من بلدي C-x C-s اللاوعي نشل العصبي. أنا تبديل مخازن في كثير من الأحيان ما يكفي، وأعتقد أنني أود أن حفظ عازلة معين في أقرب وقت يمكنني أن أتحول إلى آخر. لم تتح لي الوقت بعد لمعرفة إيماكس اللثغة-الأساسيات.

وأي تلميحات حول كيفية القيام بذلك، أو حلول أفضل؟

و(على صعيد ذات صلة، وجدت الحفظ التلقائي الحل التي يمكن أن تنقذ المخزن المؤقت الحالي، قريبا كما كنت خاملا لفترة معينة من الزمن.)

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

المحلول

لتوسيع في سيث الصورة <لأ href = "https://stackoverflow.com/questions/1413837/ ايماكس لصناعة السيارات في حفظ على التحول العازلة / 1413883 # 1413883 "> الجواب ، كنت تفعل هذا:

(defadvice switch-to-buffer (before save-buffer-now activate)
  (when buffer-file-name (save-buffer)))
(defadvice other-window (before other-window-now activate)
  (when buffer-file-name (save-buffer)))
(defadvice other-frame (before other-frame-now activate)
  (when buffer-file-name (save-buffer)))

والاختيار لbuffer-file-name يتجنب توفير مخازن ث / من الملفات. كنت بحاجة لمعرفة كل نقاط الدخول التي تستخدمها لمخازن أنك تهتم التحول (فما استقاموا لكم فاستقيموا أيضا تقديم المشورة other-window).

نصائح أخرى

وانا من النوع الجديد لايماكس اللثغة نفسي ولكن هذا يعمل في بلدي التجارب:

(defadvice switch-to-buffer (before save-buffer-now)
  (save-buffer))

(ad-activate 'switch-to-buffer)

وانها نوع من مزعج على الرغم من أنه كان يسمى بعد EVERY عازلة (مثل الصفر ). لذلك، والنظر في هذه الإجابة تلميحا.

وعندما تريد تعطيله، ستحتاج إلى الاتصال على:

(ad-disable-advice 'switch-to-buffer 'before 'save-buffer-now)
(ad-activate 'switch-to-buffer)

وزوجان من الأفكار.

أولا، إذا كنت تجد نفسك استدعاء أمر مثل حفظ بتردد عال بما فيه الكفاية، قد تفكر في مفتاح أقصر ملزمة للأمر. على سبيل المثال، كما أنني وجدت نفسي مضطرا نفسه "نشل"، حتى الآن أنا استخدم f2 بدلا من C-x C-s لحفظ التعديلات.

والدالة التي I ربط f2 يحفظ كل عازلة لم يتم حفظها دون قيد أو شرط. قد تجد أنه من المفيد:

(defun force-save-all ()
    "Unconditionally saves all unsaved buffers."
    (interactive)
    (save-some-buffers t))

(global-set-key [f2] 'force-save-all)

والآن، على أن القضية الرئيسية. قد تتمكن من محاولة شيء من هذا القبيل (لاحظ أن يسمى force-save-all):

(defun my-switch-to-buffer (buffer)
    (interactive (list (read-buffer "Switch to buffer: " (cadr buffer-name-history) nil)))
    (force-save-all)
    (switch-to-buffer buffer))

(global-set-key "\C-xb" 'my-switch-to-buffer)

وبطبيعة الحال، يمكن أيضا ربط وظيفة عازلة التحول إلى مفتاح آخر، مثل مفتاح وظيفة، بحيث انها عملية بضغطة واحدة.

وأعتقد أن seth كان فكرة عظيمة حول استخدام المشورة، لكني لاحظت أن الدليل ELisp تشير إلى أن < وأ href = "http://www.gnu.org/software/emacs/manual/html_mono/elisp.html.gz#Advising-Functions" يختلط = "نوفولو noreferrer"> استشارات ألا تستخدم لربط مفتاح . لست متأكدا تماما لماذا هذا هو الحال، ولكن هذا ما يوحي دليل لمعلوماتك.

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