You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim中.txt文件对应的text.vim ftplugin配置的缩写与语法高亮不生效

问题原因

Vim 打开文件的配置加载顺序为:文件类型检测 → 加载 ftplugin 配置 → 加载 indent 配置 → 加载 syntax 语法配置。你在 ftplugin 中设置的 syntax=html 会被后续加载的 text 类型默认语法配置覆盖,同时全局缩写也可能被后续文件类型相关配置重置,加上你没有使用缓冲区局部属性,全局配置容易被其他文件类型的设置覆盖,也会污染非 txt 文件的编辑环境。

解决方案

步骤1:修改 ftplugin 配置

编辑 ~/mydotfiles/vim/after/ftplugin/text.vim,将所有缩写改为缓冲区局部,所有 set 命令改为 setlocal:

" 为Anki笔记插入HTML标签的缩写
iab <buffer> it      <i></i><Left><Left><Left><Left>
iab <buffer> bd      <b></b><Left><Left><Left><Left>
iab <buffer> br      <br>
iab <buffer> cd      <code></code><Left><Left><Left><Left><Left><Left><Left>

" 有序/无序列表
iab <buffer> ol      <ol></ol><Left><Left><Left><Left><Left>
iab <buffer> ul      <ul></ul><Left><Left><Left><Left><Left>
" 列表项
iab <buffer> li      <li></li><Left><Left><Left><Left><Left>
iab <buffer> dt      <detail><summary>Read more</summary><p></p></details><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left>

" 保留tab原始格式
setlocal noexpandtab 

步骤2:添加语法高亮 autocmd

编辑 ~/.vim/vimrc,在 filetype plugin indent on 配置行之后添加以下内容,确保语法设置在语法配置加载完成后生效:

" 针对txt文件启用HTML语法高亮
autocmd FileType text ++after syntax setlocal syntax=html

验证方法

修改完成后重新打开 txt 文件,执行:abbr可以看到带 <buffer> 标记的自定义缩写,执行:set syntax?返回 html 就说明配置已生效。

内容的提问来源于stack exchange,提问作者sudhir h

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:15:00