覆盖 Vim 的八度文件类型设置

覆盖 Vim 的八度文件类型设置

GNU Octave 和 Matlab 共享.m后缀,但 Octave 的语法略有不同,例如允许#作为注释。

我创建了一个scripts.vim,但由于文件类型已设置为 Matlab,因此它不会被调用。

这是我使用的代码片段,它可以工作,但它永远不会被执行,~/.vim/scripts.vim或者如果我把它放入~/.vim/ftdetect/octave.vim

if getline(1) =~ '^#!/.*octave'                                        
    set filetype=octave
endif

我可以在哪里设置这个代码?

答案1

我现在就可以使用它了filetype.vim

" ~/.vim/filetype.vim

if exists("did_load_filetypes")
    finish
endif

function! DetectOctave()
    echom getline(1)
    if getline(1) =~ '^#!/.*octave.*'                                        
        set filetype=octave
    endif
endfunction

augroup filetypedetect
    au! BufRead,BufNewFile *.m  call DetectOctave()
augroup END

相关内容