Emacs kullanmanın en güzel yanı herşeyin text olduğunu kabul edip, buna göre işlemler yapmaktır. Bu ortamda sürekli çalışmak, sizi aklınıza gelen her işte Bunu yapmanın daha kolay yolu varmıdır acaba? sorusunu cevaplamaya itiyor.
Tabi çalıştığınız işi yapayım derken, .emacs dosyanızı editlemeye kalkarsanız, o iş her daim gereğinden fazla uzayacaktır. Rutin olmak bana göre değil, bir kere yaptığım işi bir daha yapmam, diyorsanız! Emacs ile düzenli ve sistemli olmanın yolları bulunmakta. Aşağıdaki videolardan bu işlemlerin nasıl yapıldığı hakkında detaylı bilgiler alabilirsiniz.
Kendi adıma kısaca bu işlemleri özet geçmek gerekirse:
Fonksiyonların isimleri | Ne işe yarar | Kısayolu |
---|---|---|
kmacro-start-macro-or-insert-counter | Makroyu kaydetmeye başla | F3 |
kmacro-end-or-call-macro | Makroyu kaydet ve Uygula | F4 |
Yukarıdaki F3 fonksiyonu klavyeden ayarladığınız her işlemi, adeta bir keylogger gibi kaydedip, daha sonra F4 tuşu ile kaydettiğiniz makroyu çalıştırmaya yarar. Ancak Emacs’i yeniden başlatır veya yeni makro kaydetmeye başlarsanız önceki makronuz silinecektir. Bu sıkıntıyı çözmek adına, internette bulduğum ve üzerinde az biraz oynadığım bu fonksiyon ile, en son kaydetmiş olduğunuz makroyu init dosyanıza kaydedip, bir fonksiyonmuş gibi tekrar fonksiyon olarak Emacs üzerinden çağırabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 |
(defun save-current-kbd-macro-to-dot-emacs (name) "Save the current macro as named function definition inside your initialization file so you can reuse it anytime in the future." (interactive "SSave Macro as: ") (kmacro-name-last-macro name) (save-excursion (find-file-literally "~/.emacs.d/init.el") (goto-char (point-max)) (insert "\n\n;; Saved macro\n") (insert-kbd-macro name) (insert "\n"))) |
İşin güzel bu yöntemi kullanmak için, hiç bir şekilde emacs-lisp veya programlama bilgisi kullanmanıza gerek yok. Ama az biraz da Emacs-Lisp ve Regular Expression bilginiz var ise ve kullanmaya niyetlenirseniz, tabiri caiz ise Emacs’e takla attırabilirsiniz.
Yukarıdaki sorunun da cevabını aldınız sanırsam 🙂
Makroyu kaydettikten sonra hydra-mode(favorim) veya keychord ile kendinize kısayol olarak atadığınızda rutin işlerin bir o kadar da kolaylaştığını göreceksiniz.
Umarım işinize yarar.
Daha fazlası için;
- https://github.com/Silex/elmacro
- Yaptığını klayve hareketlerini lisp fonksiyonlarını yazan gayet başarılı bir kütüphane
- Edit 2: çok başarılı 🙂