Emacs’te kısayollar bakımından haylice kötü bir araç1
Bu durumun böyle olmasının sebebi, vi gibi STATE kavramının olmamasıdır. Yani pratikte sürekli insert mod‘da çalışmaktadır.
Hal böyle olunca, tasarımsal olarak, C-x ile başlayan window, buffer, editleme temel sistem için, C-c ile başlayan kısa yollar ise modlarda bulunan komutlar için ayrılmıştır.
Yapı böyle olunca, bazen çakışmalar oluyor. Her ne kadar, yeni ayarlamak istediğiniz kısayolu set etsenizde, bir minor veya major mod diğer moda göre daha baskın gelip, şu an sebebini tam olarak bilmediğim durumdan dolayı yeni ayarladığımız kısayolun çalışmamasına sebep oluyor.
Örnek vermek gerekiyrse;
winner-mode kullanıyorsanız, Yeni ayarlamak istediğiniz keyi
1 |
(global-set-key (kbd "C-c <left>") 'org-capture) |
olarak set etseniz, bile hala winner-undo komutu çalışmaya devam edecektir.
Bunu çözmek için
1 |
M-x describe-key |
Yapıp değiştirmeye çalıştığınız kısayolu yaptığınızda
1 2 3 4 5 6 7 8 9 10 11 |
C-c <left> runs the command winner-undo (found in winner-mode-map), which is an interactive compiled Lisp function in ‘winner.el’. It is bound to M-m w u, C-c <left>. (winner-undo) Switch back to an earlier window configuration saved by Winner mode. In other words, "undo" changes in window configuration. [back] |
Not:2
Benzeri bir çıktı ile karşılaşırsınız. Burada found in winner-mode-map bilgisi, bizim işimize yarayacaktır. Gerekli Yapmanız gereken artık.
1 |
(define-key winner-mode-map (kbd "C-c <left>") nil) |
Dedikten sonra kendi komutunuzu atayabilirsiniz.
Umarım işinize yarar.
Son bir bilgilendirme daha.
Eğer kısayolların kötü olmasına artık hiç dert yanmaya gerek yok. Emacs’in birkaç temel kısayolunu bildikten sonra. Hydra paketi ile kısayol atamalarını yaparsanız bir çok probleminizi çözmüş olursunuz.
O yüzden
Emacs’in kısayoları çok kötü yeaaa o yüzden Vi/M
goygoyunu bir kenara bırakıp işimize bakmaya devam 🙂