2015-01-17 9 views
15

Jak mogę pobrać bieżącą linię bufora jako wartość ciągu w elicie? mogę to zrobić,Przejmij bieżącą linię w buforze jako ciąg w elicie

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

ale mimo to można zrobić to w jednym wierszu co

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

Nie jestem pewien, czy rozumiem. Czy po prostu chcesz to zrobić bez 'p1' i' p2', tzn. Czy wszystko to działa w trybie inline, czy szukasz czegoś wyjątkowego? – Wintermute

+1

'let' nie tylko deklaruje zmienną, ale także nadaje jej wartość. Tak więc twój kod tworzy vary, nadając im wartość 'nil', aby natychmiast ustawić je na coś innego. Lepiej pomiń krok pośredni i wykonaj: '(let * ((p1 (pozycja początkowa linii)) (p2 (pozycja końca linii)) (myLine (buforujący podłańcuch-brak właściwości p1 p2))). .) ' – Stefan

Odpowiedz

24

Korzystając thing-at-point:

(thing-at-point 'line t) 

jednak pamiętać, że to również zwraca żadnej nowej linii na końcu linii.

+0

dziękuję bardzo !! –

Powiązane problemy