我的一位朋友正在考虑从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