2010-09-03 20 views

cevap

15

İşte benim sevgili arkadaşımsın.

(defun align-to-equals (begin end) 
    "Align region to equal signs" 
    (interactive "r") 
    (align-regexp begin end "\\(\\s-*\\)=" 1 1)) 
(\s-*) önek align.el

(list (concat "\\(\\s-*\\)" 

John Wiegley sadece belgelemek için ihmal itibaren hizalamak-regexp tarafından dahili

kullanılır

ve çoğu insan sadece etkileşimli hizalama-Regexp'i kullanmak tahmin ya da sadece bir makroyu kaydedin ve kaydedin!

+0

Ah yumruk için dövüldü ... – ocodo

+0

Ama daha iyi bir açıklama! – qrest

+0

Size bir +1 olsa :) vereceğim ... bu \ s- * öneki çok tuhaf. – ocodo

0

ben align-regexp (debian emacs23-el yükleme) kaynağını ayrı aldı ve bu geldi: #emacs Çözmedim dan

(local-set-key (kbd "C-c a =") 
    (lambda() (interactive) 
    (align-region (region-beginning) 
        (region-end) 
        'entire 
        (list (list nil 
           (cons 'regexp "\\(\\s-*\\)=") 
           (cons 'group 1) 
           (cons 'bogus nil) 
           (cons 'spacing 1))) 
        nil 
        nil))) 
+0

Ancak, mutlaka bu komutu hizalama komutunun gizemlerini kazmadan yapmak mümkündür? – qrest

+0

Ben öyle düşünürdüm, ama ben '' align.el' tüm bunları iyi anlamıyorum. –

2

"düşünebilirdi":

(local-set-key (kbd "C-c a =") 
    (lambda() (interactive) 
    (align-regexp (region-beginning) (region-end) "\\(\\s-*\\)=" 1 1 nil))) 

Birisi bakımı açıklamak "=" için garip önek?

+0

Son nil'in isteğe bağlı olduğunu ve 1 1'in olmadığını unutmayın. Align.el belgelerinin düzenli bir şekilde toplanması gerekiyor. – ocodo