【问题标题】:Vim, setting .el folding has killed syntax highlightingVim,设置 .el 折叠已经杀死了语法高亮
【发布时间】:2014-07-05 08:11:50
【问题描述】:

当我在 Vim 中打开我的 init.el 时,我想在 cmets 上折叠。但是,我为此编写的代码破坏了语法突出显示。这不是预期的结果。

这是我使用的,在我的.vimrc

augroup filetype_el
    autocmd!
    autocmd FileType el setlocal foldmethod=marker foldmarker=;;;,;;+
augroup END
au BufRead,BufNewFile *.el      set filetype=el

这对我来说打破了语法高亮。


解决方案:

根据 Ben 的解释,我意识到我应该使用 lisp 作为文件类型,而不是 el。这是工作代码:

augroup filetype_lisp
    autocmd!
    autocmd FileType lisp setlocal foldmethod=marker foldmarker=;;;,;;+
augroup END

现在我有折叠 语法高亮。


示例文件:

.el 文件中,我希望以下内容在从 Vim 打开时具有折叠和语法高亮显示。

;;; config folding
;;;; outline & outshine

;; when a .el file is opened, use outline-minor-mode
(add-hook 'emacs-lisp-mode-hook 'outline-minor-mode)

;; gives my init.el nice folding and keybinding defaults
(when (locate-library "outshine")
  (autoload 'outshine-hook-function "outshine")
  (add-hook 'emacs-lisp-mode-hook 'outshine-hook-function))
(setq outshine-startup-folded-p t)

;;+
;;;; vimrc mode, hideshow

;; because we sometimes view our .vim and .vimrc files from emacs
(when (locate-library "vimrc-mode")
  (add-to-list 'auto-mode-alist '(".vim\\(rc\\)?$" . vimrc-mode))
  (add-to-list 'hs-special-modes-alist '(vimrc-mode "{{{" "}}}" nil nil))
  (add-hook 'vimrc-mode-hook '(lambda ()
                                (hs-minor-mode)
                                (hs-hide-all)))
  (autoload 'hs-minor-mode "hideshow" nil t)
  (eval-after-load 'hideshow
    '(define-key hs-minor-mode-map (kbd "TAB") 'hs-toggle-hiding)))

;;+
;;+

(我会考虑摆脱;;+s的方法,总有一天。)

编辑:总有一天来了,Vim, foldexpr, like folding in outshine.el effect on init.el - Stack Overflow。我现在可以从我的init.el 中省略;;+

【问题讨论】:

  • 你能澄清你的问题吗?您是否在 Emacs、Vim 或两者中都遇到了问题?

标签: vim emacs file-type


【解决方案1】:

当我编辑 test.el 文件时,Vim 自动将文件类型设置为“lisp”。

您已覆盖此设置,而是将文件类型设置为“el”。

Vim 没有为 "el" 文件类型定义任何语法高亮或任何插件规则。

您需要创建一个“el”文件类型,改为触发“lisp”文件类型,或者完全避开文件类型,只触发文件名。

或者,您可以尝试使用带点的文件类型(例如“lisp.el”),但我不确定它的效果如何。据说 Vim 会尝试同时加载这两种文件类型,但这不是很常见的用法。

【讨论】:

  • 谢谢!我应该将文件扩展名el 称为文件类型,这是一个仓促的假设。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 2013-11-21
  • 2012-08-16
  • 1970-01-01
  • 2014-11-14
  • 2011-04-23
  • 2011-01-19
相关资源
最近更新 更多