2015-01-17 9 views
15

El arabasında dize değeri olarak arabelleğin geçerli çizgisini nasıl toplayabilirim? iElisp'de bir dize olarak arabellekte mevcut satırı yakala

(let (p1 p2 myLine) 
(setq p1 (line-beginning-position)) 
    (setq p2 (line-end-position)) 
    (setq myLine (buffer-substring-no-properties p1 p2)) 
) 

bunu ama ben olarak tek satırda yapabiliriz zaten var,

(with-current-buffer get-current-line) 
+0

Anladığımdan emin değilim. Bunu 'p1' ve 'p2' olmadan yapmak ister misin, yani tüm satır içi mi yoksa özel bir şey mi arıyorsunuz? – Wintermute

+1

'Sadece bir değişken beyan etmiyoruz, aynı zamanda bir de değer veriyor. Bu yüzden kodunuz vars yaratıyor, onlara 'nil' değeri veriyor ve onları hemen başka bir şeye ayarlıyor. Orta adımı atlayıp daha iyi yapın: '(let * ((p1 (satır başlangıç ​​konumu)) (p2 (satır sonu konumu)) (myLine (arabellek-substring-no-properties p1 p2))) .. .) ' – Stefan

cevap

24

kullanın thing-at-point edebilirsiniz:

(thing-at-point 'line t) 

ama bu aynı zamanda herhangi bir yeni satır döndüren unutmayın satırın sonunda.

+0

çok teşekkür ederim! –

İlgili konular