我的一位朋友正在考慮從TextMate切換到Emacs。他習慣了TextMate的默認HTML編輯模式,該模式具有4個空格製表位並插入製表符(即默認情況下不會自動縮進)。它還允許使用「Cmd-Shift->
」完成打開的HTML標記。有任何想法嗎?如何配置Emacs html模式以像TextMate的默認HTML包那樣工作?
回答
我覺得這些設置應該做的伎倆:
(defun my-html-mode-hook()
(setq tab-width 4)
(setq indent-tabs-mode t)
(define-key html-mode-map (kbd "<tab>") 'my-insert-tab)
(define-key html-mode-map (kbd "C->") 'sgml-close-tag))
(defun my-insert-tab (&optional arg)
(interactive "P")
(insert-tab arg))
(add-hook 'html-mode-hook 'my-html-mode-hook)
的設置在'my-html-mode-hook
的解釋如下:
- 設置標籤寬度4
- 力的標籤是插入(相對於空格)
- 強制
TAB
鍵插入一個選項卡(默認情況下它會綁定進行縮進,而不僅僅是插入標籤 'sgml-close-tag
是插入結束標記爲你的命令,這個設置得到你想要的
我有一個有點腦凍的和無法弄清楚簡單的鍵綁定如何讓TAB
鍵插入TAB字符,所以我寫了我自己的。我不知道爲什麼綁定到'self-insert-command
不起作用(這是正常的鍵綁定)。
最後一行只是將設置功能添加到'html-mode-hook
。鍵綁定確實只需要運行一次(而不是每次啓用html模式),但這比使用'eval-after-load
要容易一些。它的用途是作爲練習給讀者的。
我使用ctrl-z和meta-z來滾動/滾動/向下單行。 (這是標準的,我認爲在像80年代的emacs中。)我不得不在XEmacs 21.5.29中將其添加到我的custom.el中,但隨後發現定製被HTML主模式所覆蓋。 Trey的機制正是我所需要的,讓它再次運作。布拉沃特雷。沒有什麼能讓你在滾動的時候消失窗口來消滅你的流量...... – 2016-04-20 15:43:56
我不知道的Emacs的HTML模式具體,但我可以回答關於一般編輯:
在默認情況下,Emacs將不進行自動縮進,所以沒有在這裏做。
Emacs保留製表符,除非您明確要求將它們更改(檢查出
tabify
和untabify
)。它們的寬度由緩衝區本地變量tab-width
決定。M-x set-variable
,(setq...)
,隨意自定義。,你應該能夠通過設置
indent-line-function
到tab-to-tab-stop
,設置tab-stop-list
到(4 8 12 16...)
和indent-tabs-mode
到t
得到你想要用tab鍵的行爲。
設置indent-tabs-mode
允許Emacs在縮進時插入製表符。 tab-to-tab-stop
是縮進的一種形式,它只在特定位置行,我們通過將tab-stop-list
設置爲4的倍數來設置匹配製表符的預期行爲。
關於完成,我唯一的肌肉記憶告訴我是「C-c C-e
」,但我不確定它應該使用哪種主要模式。在列表中我看到的最接近的是sgml-close-tag
,勢必C-c /
政治的一點:不要使用製表符,特別是如果你使用寬度不等於8.只會導致不可預測的結果
- 1. 如何配置emacs以編輯包含Javascript的HTML文件?
- 2. 擺脫默認的html標題樣式?
- 3. 默認情況下在Aquamacs中禁用HTML輔助模式以編輯HTML
- 4. html選擇壓縮默認樣式
- 5. 如何在HTML幫助工作間設置默認頁面
- 6. 工作簿的Apache POI默認樣式
- 7. Textmate的HTML和CSS包
- 8. 使用鉛筆樣機工具編輯默認HTML模板?
- 9. 在emacs和Textmate中工作
- 10. 如何刪除HTML 5表單元素的默認樣式?
- 11. 如何定義HTML呈現的「默認樣式」?
- 12. HTML默認圖像尺寸
- 13. HTML模式匹配不工作
- 14. 如何配置Bespin嵌入式那樣?
- 15. HTML淨化器 - 更改默認允許的HTML標籤配置
- 16. 如何在emacs中更改haskell模式的默認工作目錄
- 17. CSS不工作在默認jekyll HTML
- 18. 如何配置html日期輸入的默認值
- 19. 默認圖像樣式
- 20. Symfony如何擴展默認包配置?
- 21. HTML(網絡模式)的Emacs縮進無法正常工作
- 22. HTML敏捷包不像預期的那樣運行
- 23. 如何爲C#模式配置Emacs speedbar?
- 24. 默認配置IPython爲交互模式
- 25. Qt庫中控件的默認HTML樣式
- 26. 有沒有像HTML模板API那樣的東西?
- 27. 讓NSComboBox像HTML組合一樣工作
- 28. 爲什麼CakePHP的Html :: link()沒有像我期望的那樣工作?
- 29. HTML默認邊距
- 30. 默認CSS ovveriden的樣式在HTML應用
確認,我上面不準確。我不是指實際的製表符,而是4個空格代替製表符。爲此道歉。 – 2009-06-18 16:38:06