2015-01-17 26 views
15

如何在elisp中將緩衝區的當前行作爲字符串值進行收集?我能做到這一點,在elisp中獲取緩衝區中的當前行作爲字符串

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

但有反正我可以用一個行做到這一點,

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

我不知道我明白。你是否只想在沒有「p1」和「p2」的情況下做到這一點,即全部內聯,還是在尋找特別的東西? – Wintermute

+1

'let'不只是聲明一個變量,它也給它一個值。所以你的代碼創建了變量,給它們賦值'nil'只是爲了立即將它們設置爲別的。更好地跳過中間步驟並執行:'(let *((p1(line-beginning-position))(p2(line-end-position))(myLine(buffer-substring-no-properties p1 p2))).. )' – Stefan

回答

24

使用thing-at-point

(thing-at-point 'line t) 

但請注意,這也將返回任何換行符在行末。

+0

非常感謝你! –

相關問題