我目前正在使用(Neo)vim处理多种不同的文件类型。我有一个可以使用所有文件的整体init.vim,但是对于某些文件,例如MarkDown(.md)和LaTeX,我想添加一些其他的重映射。例如,我想设置Neovim在每个。!?之后使用来在Undo树中记录一个新事件。但是,我只希望将其应用于我的Markdown和LaTeX文件。同样,我希望我的.md文件启用选项set wrap
,并将j
重映射到gj
,并将k
重映射到gk
。我知道如何在常规配置文件中执行此操作,但是有一种方法只能将配置应用于这些特定的文件扩展名吗?
答案 0 :(得分:3)
您的命令必须是本地缓冲区。即setlocal
而非set
; nnoremap <buffer> ...
而不是简单的nnoremap ...
等。
在该特定缓冲区处于活动状态时,您的命令必须运行一次。最干净的方法是遵守ftplugin
。也就是说,将您的命令放入~/.vim/after/ftplugin/[filetype].vim
中。例如,
〜/ .vim / after / ftplugin / markdown.vim
setlocal wrap
nnoremap <buffer>j gj
nnoremap <buffer>k gk