是否可以为不同的文件类型使用特定的init.vim命令?

时间:2020-07-29 18:49:10

标签: vim neovim

我目前正在使用(Neo)vim处理多种不同的文件类型。我有一个可以使用所有文件的整体init.vim,但是对于某些文件,例如MarkDown(.md)和LaTeX,我想添加一些其他的重映射。例如,我想设置Neovim在每个。!?之后使用来在Undo树中记录一个新事件。但是,我只希望将其应用于我的Markdown和LaTeX文件。同样,我希望我的.md文件启用选项set wrap,并将j重映射到gj,并将k重映射到gk。我知道如何在常规配置文件中执行此操作,但是有一种方法只能将配置应用于这些特定的文件扩展名吗?

1 个答案:

答案 0 :(得分:3)

  1. 您的命令必须是本地缓冲区。即setlocal而非setnnoremap <buffer> ...而不是简单的nnoremap ...等。

  2. 在该特定缓冲区处于活动状态时,您的命令必须运行一次。最干净的方法是遵守ftplugin。也就是说,将您的命令放入~/.vim/after/ftplugin/[filetype].vim中。例如,

〜/ .vim / after / ftplugin / markdown.vim

setlocal wrap
nnoremap <buffer>j gj
nnoremap <buffer>k gk