2009-08-08 19 views
9

Ben arka arkaya, aşina olduğum ve pencere merkezi, üst, alt ve çok sık C-l (recenter-top-bottom)Ekranı imleç etrafında yatay olarak ortadaki komutlara emacs?

Taşı akım hattına kullanın.

ben arda, pencere merkezine akım sütun, sol ve sağ sınırları taşımak için eşdeğer bir komutu olsun isterim. Ya yerleşik ya da Elisp snippet'i.

+0

'Ch f recenter' (benim sürüm (GNU 22.3) Yakınlaştır-top yok -bottom, hangi sürümü kullanıyorsunuz?) bu işlev emacs c-çekirdeğinde uygulandığını söylüyor, bu yüzden elisp'te yatay davranışı elde etmek önemsiz olmayabilir. Kaynağı yamayı düşünün mü? – dmckee

+1

GNU 23.0.91.1'i ubuntu emacs-snapshot paketi sürüm 1: 20090320-1ubuntu1'den çalıştırıyorum. "Recenter" ve "recenter-top-bottom" arasındaki tek fark, ikincisinin, imleci merkeze, en üste ve en üste koyma arasındaki komut döngülerini tekrar etmesidir. Yatay kaydırma, Cx C- ile zaten var ve sağ kenarlığa yaklaştığınızda normal "Cf" ile, tüm yol boyunca gitmemiz gerektiğini düşünmüyorum. Emacs çekirdeğine. – hsribei

+0

M-x geçiş-kesikli satırlar –

cevap

11

gitmek:

(defun my-horizontal-recenter() 
    "make the point horizontally centered in the window" 
    (interactive) 
    (let ((mid (/ (window-width) 2)) 
     (line-len (save-excursion (end-of-line) (current-column))) 
     (cur (current-column))) 
    (if (< mid cur) 
     (set-window-hscroll (selected-window) 
          (- cur mid))))) 

Ve (obvio171 itibaren) bariz bağlama geçerli:

(global-set-key (kbd "C-S-l") 'my-horizontal-recenter) 
+0

Bu mükemmel! C-S-l'e bağlı, bir cazibe gibi çalışıyor! Çok teşekkürler! :) – hsribei

+0

Güzel! Bu işlevi "Cl" bağdaştırıcısına entegre etmek için ekledim, yalnızca kesik çizgiler modundaysanız: (benimki-recenter() "dikey olarak dikey ve yatay olarak dikey kesim çizgileri modunda" (etkileşimli) (eğer (eşit kesik çizgileri t) (benim yatay-arka yüz)) (alıcı-alt-üst)) (global-set-key "\ Cl") – fredz

3

Seçtiğiniz bir sütuna gidip C-x C-n tuşlarına basarsanız, C-n ve C-p komutları, davranışı kapatmak için C-u C-x C-n tuşlarına basana kadar o sütuna gider.

Aradığınızı bir tür fakir insanın versiyonu. İşte

+0

Bu, yalnızca imlecin bulunduğu sütunu sınırlar, ancak metni yatay olarak hareket ettirmez. İstediğim sütun için imlecin ekranın ortasına "sürüklenecek" olması, yatay bir kaydırma yapması. – hsribei

+0

Böylece "fakir insanın versiyonu" yeterlilik. – Pinochle