2012-11-26 55 views
26

如果文件中有太長的行不能顯示在屏幕上,我們可以使用自動換行。現在,長行被分割成屏幕上可見的塊。Emacs:如何保持很長的包裝線的縮進級別

一般的代碼被構造和縮進用於可讀性。如果一行被包裝成兩行(或多行),則只有第一行有正確的縮進,而其他行從行的開始處開始。是否有辦法讓保留所有包裝線具有相同的縮進級別或更一般的不同縮進級別)?

...我已經尋找了很久很久,但還是沒能找到解決的辦法。這個問題類似於vim的帖子,但我沒有找到emacs的帖子或答案。

回答

27

包裝adaptive-wrap,可以通過ELPA包裝系統進行安裝,應該做你想做的。具有安裝的程序包

之後,只需運行下面的命令:

  • 的Mxvisual-line-modeRET(包裹長行)
  • 的Mxadaptive-wrap-prefix-modeRET(使纏繞線很好地縮進)

我也有我的​​文件下面的代碼片段自動激活adaptive-wrap-prefix-modevisual-line-mode一起:

(when (fboundp 'adaptive-wrap-prefix-mode) 
    (defun my-activate-adaptive-wrap-prefix-mode() 
    "Toggle `visual-line-mode' and `adaptive-wrap-prefix-mode' simultaneously." 
    (adaptive-wrap-prefix-mode (if visual-line-mode 1 -1))) 
    (add-hook 'visual-line-mode-hook 'my-activate-adaptive-wrap-prefix-mode)) 
+0

無需一個建議:你可以用'視線模式,而不是hook'。 – Stefan

+0

@Stefan是的,你是對的。我感到困惑,因爲'visual-line-mode-hook'沒有被記錄爲一個變量,不知何故我認爲這個模式沒有設置任何鉤子。我編輯了答案來反映這一點。 – Francesco

+0

謝謝!這很好用! – Chris