【发布时间】: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 或两者中都遇到了问题?