我对Markdown文件使用以下设置:
autocmd Filetype mkd call SetMarkdownOptions()
function SetMarkdownOptions()
highlight NonText ctermfg=white " Match the tildes to your background
set background=light
call lexical#init()
"call textobj#sentence#init()
set foldcolumn=12 " Add a left margin
set guifont=Fantasque\ Sans\ Mono\ 12
set formatoptions+=t
highlight! link FoldColumn Normal " Make it the background colour
set laststatus=0 " No statusbar
set linespace=3
set nonumber " No line numbering
colorscheme pencil
set showtabline=0 " don't show the tab bar
set textwidth=63
map <leader>s dwwP
noremap Q gqap
nnoremap <leader>t :OnlineThesaurusCurrentWord<CR>
endfunction
但是如果我打开另一种文件类型,设置仍然存在。是否有一种简单的方法可以撤消/恢复autocmd Filetype
调用?
答案 0 :(得分:2)
特定于文件类型的选项和映射必须尽可能为 local ,以防止它们泄漏&#34;:
setlocal foldcolumn=12
nnoremap <buffer> <leader>s dwwP
请参阅:help 'option'
以查看该选项是全局还是本地。
我建议将这些设置放在~/.vim/after/ftplugin/markdown.vim
。
答案 1 :(得分:1)
b:undo_ftplugin
变量在所有标准分布式文件类型插件中设置,Vim将在切换文件类型时执行该变量,以撤消插件中的所有内容。
因此,除了使用全局 - 本地选项的“本地”版本(如果可用)之外,您还可以绑定该变量以恢复您正在修改的设置。
例如,标准降价ftplugin具有:
if exists('b:undo_ftplugin')
let b:undo_ftplugin .= "|setl cms< com< fo< flp<"
else
let b:undo_ftplugin = "setl cms< com< fo< flp<"
endif
你可以做类似的事情。请注意,如果变量已经存在,命令如何追加到变量,使用|
将变量链接在一起。