2015-01-17 9 views
15

Come posso raccogliere la riga corrente del buffer come un valore stringa in elisp? Posso fare questo,Afferrare la riga corrente nel buffer come stringa nell'elite

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

ma c'è qualche cosa che posso farlo in una linea come,

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

Non sono sicuro di aver capito. Vuoi semplicemente farlo senza 'p1' e' p2', cioè fai tutto in linea o stai cercando qualcosa di speciale? – Wintermute

+1

'let' non si limita a dichiarare una variabile, ma fornisce anche un valore. Quindi il tuo codice crea vars, dando loro il valore 'nil' solo per impostarli immediatamente su qualcos'altro. Meglio saltare il passaggio intermedio e fare: '(let * ((p1 (linea-inizio-posizione)) (p2 (linea-fine-posizione)) (myLine (proprietà-substr-buffer-no p1 p2))) .. .) ' – Stefan

risposta

24

Uso thing-at-point:

(thing-at-point 'line t) 

Ma si noti che questo restituisce anche qualsiasi nuova riga alla fine della linea.

+0

grazie mille !! –

Problemi correlati