我在 Windows 10 上使用 Vim 9.0。
我创建了一个名为“项目”的新文件类型,但设置注释的本地选项不起作用。这是我所做的:
我将行
:filetype plugin indent on
添加到我的 vimrc 文件中。
:filetype
命令返回:filetype detection:ON plugin:ON indent:ON
。
然后,我在
project.vim
(ftdetect
) 的第一项中名为 runtimepath
的新目录中创建了一个名为 ~/vimfiles
的文件类型文件。
在
project.vim
文件中,我添加了自动命令行以启用文件类型检测:
au BufNewFile,BufRead *project setf project
然后,我在
project.vim
(~/vimfiles) 第一项中名为 ftplugin
的新目录中创建了一个名为 runtimepath
的文件类型插件文件。在该文件中,我添加了以下 setlocal 选项以供注释:
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
由于目录
ftdetect
或ftplugin
都没有出现在:set runtimepath?
的输出中,我将这一行添加到我的vimrc中:
set rtp+=~/vimfiles/ftdetect,~/vimfiles/ftplugin
执行此操作后,
:set runtimepath?
的输出包括那些先前丢失的目录作为最后列出的项目:
runtimepath=
~/vimfiles,
~\vimfiles\pack\plugins\start\VOoM,
~\vimfiles\pack\plugins\start\vimroom,
~\vimfiles\pack\plugins\start\vim-shell-master,
~\vimfiles\pack\plugins\start\vim-obsession-master,
~\vimfiles\pack\plugins\start\vim-misc-master,
~\vimfiles\pack\plugins\start\vim-addon-mw-utils,
~\vimfiles\pack\plugins\start\utl,
~\vimfiles\pack\plugins\start\tlib_vim,
~\vimfiles\pack\plugins\start\taskpaper.vim-master,
~\vimfiles\pack\plugins\start\tabular,
~\vimfiles\pack\plugins\start\supertab,
~\vimfiles\pack\plugins\start\limelight,
~\vimfiles\pack\plugins\start\goyo,
~\vimfiles\pack\plugins\start\ctrlpcache,
~\vimfiles\pack\plugins\start\ctrlp,
C:\Program Files (x86)\Vim/vimfiles,
C:\Program Files (x86)\Vim\vim90,
~\vimfiles\pack\plugins\start\tabular\after,
C:\Program Files (x86)\Vim/vimfiles/after,
~/vimfiles/after,
~/vimfiles/ftdetect,
~/vimfiles/ftplugin
然后,我创建了一个带有
project
文件类型扩展名的测试文件并输入了一些文本,但没有按照 setlocal 选项对其进行注释(即:以 #
开头的行中的文本应为斜体)。
我在测试文件上运行了命令
:set ft?
,返回了filetype=project
。当我将文件类型更改为 set ft=conf
时,注释会按预期显示。 “conf”的文件类型文件具有相同的 setlocal
注释选项。
我向
setlocal
添加了状态行的 ~/vimfiles/ftplugin/project.vim
选项。相应的状态行出现在测试文件中。运行 :set ft?
命令指示返回 filetype=project
和之前一样。
我现在有点困难,欢迎任何帮助。
(6)和(7)是不需要且无用的。只有“vimfiles”必须位于运行时路径中。 “ftDetect”和“ftplugin”始终是相对于它而言的。
(8) 语法与您设置的选项没有任何关系。相反,您必须创建正则表达式并启用语法支持。如何做到这一点本身就是一个主题,因此建议您从
:h syntax
等开始长篇阅读。