2014-01-14 85 views
4

是否存在一個次要模式,我可以將它與Emacs-Lisp模式結合使用,以便每個函數定義可以方便地打開或關閉,而無需在文本文件中插入特殊代碼?用於編輯Emacs Lisp代碼的輪廓或摺疊模式

例如

(defun test1() 
    (message "Hi!")) 

(defun test2() 
    (message "Bye")) 

F1將每個函數定義摺疊成頂行/標頭,如

+ (defun test1() 
+ (defun test2() 

按前面的+符號將展開一個給定的功能,並使其可編輯.. 衝壓F2將展開所有定義..

回答

4

這裏是我的設置:

(require 'hideshow) 
(global-set-key (kbd "C-M-h") 'hs-toggle-hiding) 
(global-set-key (kbd "<f2> h h") 'hs-hide-all) 
(global-set-key (kbd "<f2> h j") 'hs-show-all) 
+0

謝謝!似乎也工作得很好。它看起來類似於'outline-minor-mode'。 'hs-minor-mode'和'outline-minor-mode'之間的區別究竟是什麼? –

+0

hs是隱藏和顯示,大綱也是導航 –

1

outline-minor-mode這樣做。看看它的菜單。 而不是+ - 您會得到典型的省略號...。這不應該傷害。你可以爲自己做鍵盤綁定。 (我知道你很聰明!)

+0

謝謝!用C-c @ C-t隱藏所有內容後,你如何擴展一個特定的函數def?我嘗試過'C-c @',但是我無法完成它的工作.. –

+0

Outline->顯示綁定到'C-c @ C-e'的條目。這是一個綁定! – Tobias

+0

謝謝,看起來不錯:)我會在這裏查看其他答案。 –

1

outshineoutline-minor-mode的變化,讓您使用org-mode語法,這比普通的outline-mode更強大。

+0

謝謝,這看起來很有趣..我已經下載它。但我在哪裏可以找到關於哪些鍵綁定可用的信息? –

+0

如果您已經使用該模式,則可以使用C-m或C-b獲取綁定。如果沒有,他們在outshine.el的源頭,1500行左右。 –

+0

我嘗試過'C-m'和'C-b',它們不起作用。 (似乎被綁定到'newline'和'backward-char')。在'hs-minor-mode'中是否有任何等價的命令到'C-C @ C-M-h'? –