Emacs Richard Stallman ve Guy L. Steele, Jr. tarafından yazılmış bir metin editörüdür(?)
Denilebilirdi ancak Emacs kesinlikle daha fazlası…
1. Metin editörüdür 🙂
Normal editörlere göre farklı olan özellikleri
2. Web Browserdir. (eww: çokta kullanılacak bir yapısı yok bence linkleri direk Firefox’a yollama işini iyi yapıyor)
3. Çoğu dil için syntax açısından desteği vardır (Python, Java, Ruby, Bash, C/C++, Go, Lisp, Javascript ve daha fazlası )
4. Derleme ve debug işlemleri yapılabilir (debug işlerinde diğer İDE’ler kadar kullanışlı olduğu söylenemez)
5. Github ile çalışmayı daha efektif hale getirir Magit
6. Yazdıklarınızı hiç bir şekilde kaybetmeyeceğiniz bir editör ortamı sağlar. Aslına bakarsanız en kullanışlı eklentilerden biridir. Eklentinin temel özelliği dosyanın herhangi bir yerinde yaptığınız değişikliğin, dosyayı kaydetmiş olsanız bile eski haline getirebilmesidir Undo Tree
7. Müzik dinlenebilir soundcloud.el
8. Twittere girilebilir Twittering mode
Not gayet güzel bir not alma sistemi vardır Org Mode
e hali ile IDE olarak kullanılabilir Python, Java
8 .Terminal içinden çalışabilir emacs -nw
9.
cd
rm
ls işlemlerini daha hızlı yapmanızı sağlar dired+
10. Bazı linux komutlarını daha iyi şekilde kullanabilirsiniz(
diff
locate ) diff-hl-mode
11.Git kullanmayı daha efektif hale getirir.
Dosyada yeşil, kırmızı ve mavi yerler git sistemine initialize edilmiş fakat henüz commit yapılmamış alanları gösterir
12. İstediğiniz her tuşu istediğiniz her iş için hatta sizin yazdığınız fonksiyonlar için bile kısayol vs atayabilirsiniz.
1 2 3 |
(global-set-key "\M-g" 'goto-line) ;; This is better than C-x 1 (key-chord-define-global "11" 'delete-other-windows) |
13.Macro yazımı.
Sürekli yaptığınız bir işi tek butonda yapmak için bir otomatik yapı ayarlayabilirsiniz.
14. Çok meşhur rakibi olan vi/vim editörünün temel özelliklerini kullanabilmesi
- evil
- space-emacs
Ve siz daha ne istiyorsanız o.
Genel Özellikler ve Arka Plan
Unutmayın Emacs’in gücü genişletilebilir(Extensible) ve Özelleştirilebilir(Customizable) olmasından gelmektedir
Bir program bunların hepsini nasıl yapıyor diyorsanız
Emacs yapısının arkasında Emacs Lisp(Elisp) diye Lisp tabanlı bir dil bulunduruyor
Geliştirilebilir yapısı ile lisp ile yazdığınız her fonksiyon artık editörünüze eklenmiş bir özelliktir. Bir sonraki versiyonu beklenemize gerek yoktur.
Lisp dilinin biraz yapısına bakacak olursak dil görünüş itibari ile korkutucu derecede parantez içeren fonksiyonel bir dil
1 2 3 |
(defun factorial (n) (if (= n 0) 1 (* n (factorial (- n 1))))) |
Evet sadece faktöriyel hesaplıyor! 🙂
Koda bakarsanız Veri Yapıları dersindeki prefix yapılar boşuna değilmiş anlaşılan.
1 2 3 4 5 6 7 |
int factorial(int n) { if (n == 0) return 1; else return(n * factorial(n-1)); } |
Aynı işi yapan C fonksiyonuda yukarıda, çokta korkmamak lazım aslında
Konu ile ilgilenmek isteyenlere aslında bu teknolojininde insanlar için olduğunu inanmak için:
- How to Read Emacs Lisp
- It’s not hard to read Emacs Lisp
- Diğerine göre daha başlangıç seviye
Kısayollar
Öncelikle bu editörü kullanmak için biraz çalışma gerektiriyor çünkü alışıla gelmiş yapıdan biraz farklı mesela kendi varsayılan kopyala yapıştır kısayolları
ctrl-v —> C-y
ctrl-c —> M-w
ctrl-x —> C-w
tabi bunları cua-mode ile direk değiştirilebiliyoruz şahsen bende bu modu kullanıyorum şimdiye kadarda pek fazla problem çıkmadı.(2 yıl sonra gelen edit
(cua-mode nil)) Hata Etmişiz 🙂
Diğerleri —->
Yeni dosya açma | Ctrl-X, Ctrl-F |
Farklı Kaydet | Ctrl-X, Ctrl-W |
Kaydet | Ctrl-X, Ctrl-S |
Çıkış | Ctrl-X, Ctrl-C |
Seçimi başlatma | Ctrl-space |
Seçimi kesme | Ctrl-W |
Seçimi kopyalama | M-W |
Seçimi Kes | Ctrl-K |
Seçimi yapıştır | Ctrl-Y |
Arama | Ctrl-S aranan metin RET |
Bul ve Değiştir¹ | M-x replace-string RET aranan metin RET yerine konulacak metin |
Satıra git | M-g gidilmek istenen satır numarasını yazıp ENTER tuşuna basıyoruz |
İşin güzeli bu kısayolların çoğunu Linux’ta terminalde de kullanabiliyorsunuz
Ürünü bu kadar övdükten sonra kuruluma geçmenin vakti geldi
Emacs Linuxta apt-get, yum gibi bir çok konsol komutu ile indirmenin yolu var fakat sizde benim gibi daha güncel olanı indirmek istiyorsanız git VCS yolunu kullanmanız daha iyidir. Bunun için bilgisayarınızda git yok ise ilk öncelikle git kurulumunu yapmanız lazım.
Kurulum
Debian türevleri için git kurulumu
1 |
apt-get install git |
Kaynak kod ile Emacs kurulumu ise
1 2 3 4 5 6 7 8 9 10 |
sudo aptitude install git-core libxaw7-dev libxpm-dev libpng12-dev libtiff5-dev libgif-dev libjpeg8-dev libgtk2.0-dev libncurses5-dev autoconf automake texinfo sudo apt-get build-dep emacs git clone git://git.savannah.gnu.org/emacs.git cd emacs/ git checkout emacs-24.4 # 25 e geçtik haberiniz olsun git checkout -b custom_branch ./autogen.sh ./configure --prefix=/opt/emacs24 make --jobs=2 sudo make install |
1 |
/opt/emacs24/bin/emacs |
Windows bilgisayarlar içinde emacs yansısı(mirror)
http://ftp.gnu.org/gnu/emacs/windows/
Eğer hakikatten Linux komutlarını fazlaca kullanan bir kişiseniz ve bu komutları Emacs üzerinde daha efektif şekilde kullanabilmeniz sizi bir hayli mutlu edecektir.
Daha fazlası için
https://github.com/pierre-lecocq/emacs4developers —> Güzel bir kaynak
http://www.gnu.org/software/emacs/
http://tuhdo.github.io/emacs-tutor.html
http://tuhdo.github.io/emacs-tutor3.html
http://www.youtube.com/watch?v=0kuCeS-mfyc —> python severler için güzel Emacs ayarları
Emacs kısayolları
http://www.shortcutworld.com/en/linux/Emacs_23.2.1.html