Emacs Tramp SSH Hostname Tamamlama

Ssh ile baglandigim makineleri kategorilerine göre farklı dosyalarda tutup ~/.ssh/config dosyasında Include ile tanımlıyorum. Aşağıdaki gibi bir tanımlama güzel oluyor

# ~/.ssh/ssh_config_company1
Host top-secret-prod-host
  Hostname prod.example.com
  User root
  
# ~/.ssh/ssh_config_company2
Host top-secret-dev-host
  Hostname dev.example.com
  User root

# ~/.ssh/config
Include ssh_config_company1
Include ssh_config_company2

Fakat emacs tramp ile sunuculara erişmeye çalıştığım zaman makine isimlerinin otomatik tamamlanmadığını farkettim. İsmi tam yazıp bağlandığımda güzelce çalışıyor, fakat TAB ile tamamlamaya çalıştığımda bir tepki alamıyordum. Biraz araştırdıktan sonra bir sonuç elde edemedim. Ya herkes bunun çözümünü biliyordu ya da ben doğru anahtar kelimeleri kullanmamıştım. Sonunda ilgisizi bir stackoverflow postunda aşağıdaki kod parçasını gördüm. Denediğimde işe yaradı.

(tramp-set-completion-function
 "ssh"
 '((tramp-parse-sconfig "/etc/ssh_config")
   (tramp-parse-sconfig "~/.ssh/config")))

Benzer bir problemde işinizi görebilir.


Emacs Fill Column Indicator

Editörde 80. kolonun nerede bittiğini görmek için Alp Aker tarafından yazılmış olan fill-column-indicator kullanıyordum. Emacs 27.0.90 ile birlikte bu özellik yerleşik gelmeye başladı.

Aşağıdaki kodu .emacs dosyanıza ekleyerek versiyona göre uygun fill-column-indicator kullanabilirsiniz.

(if (version< emacs-version "27.0.90")
    (add-hook 'prog-mode-hook #'fci-mode)
  (global-display-fill-column-indicator-mode))

Eğer 80 karekter yetmiyorsa aşağıdaki kodla 120 karektere çıkartabilirsiniz.

(setq-default fill-column 120)

Fill Column Indicator Preview


Emacs ile identi.ca kullanımı

Identi.ca hesabini emacs ile takip etmek çok basit ve eğlenceli. identica-mode kullanarak identi.ca hesabini takip edebiliyoruz. identica-mode elpa ya da marmalade deposunda bulunmuyor. Bunun için eski yöntemle kurmak gerek. Öncelikle gerekli dosyaları gerekli yerlere indiriyoruz(git deposundan alacağım). cd ~/.elisp git clone http://git.savannah.gnu.org/cgit/identica-mode.git Şimdi .emacs dosyamıza gerekli satırları ekleyelim. (setq load-path (cons "~/.elisp/identica-mode" load-path)) (require 'identica-mode) (setq identica-username "userName") Parolasız giriş yapabilmek için ~/.authinfo adinda bir dosya olusturup içini aşağıdaki gibi dolduralım.

Emacs ile bul değiştir / find and replace

M-x
replace-string RET aranan_string RET yerine_konulacak_string

Bunu regexli yapmak için replace-string yerine replace-regex kullanabilirsiniz. Birde buna kısayol eklesek tadından yenmez.

.emacs dosyamıza aşağıdaki satırı ekliyoruz.

;; Find and Replace
(global-set-key (kbd "C-q") 'replace-string)

C-q kombinasyonuna bastığımıza işlem başlamış oluyor.