我尝试了各种方法让vim将新建文件(在新标签页中)的filetype设置为“txt”,但都无效。以下是我在网上阅读到的一些内容:
然而,这并没有起作用。请问有人可以帮忙吗?
au BufRead,BufNewFile *.txt setlocal ft=txt
(放入 _vimrc 文件中)然而,这并没有起作用。请问有人可以帮忙吗?
au BufRead,BufNewFile *.txt setlocal ft=txt
(放入 _vimrc 文件中).vimrc
中,如果尚未设置,则会将filetype
设置为text
。autocmd BufEnter * if &filetype == "" | setlocal ft=text | endif
test.py
,则文件类型仍将保持为txt
。 我如何确保新文件的类型为txt
,除非它显式保存为另一种类型? - charlaxBufWrite
(或BufWritePost
)而不是BufEnter
会确保文件类型仅在保存时设置,而不是在加载时设置。 - undefined除非您开启了文件类型检测或明确设置了文件类型,否则所有文件都被视为纯文本。但是,Vim允许您将文件类型设置为任何旧文本,因此您确定它不起作用吗?
:set filetype=banana
:set filetype?
filetype=banana
设置文件类型不会有任何明显的效果,除非在ftplugin
Vim目录中有相应的文件,并且Vim没有提供txt.vim
文件类型文件。当然,您可以在此处添加txt.vim
,但我不确定这将为您带来什么优势,因为对于文本文件,您想要什么特殊行为而不是默认行为呢?
(如果您想要语法突出显示(无论这对于文本文件意味着什么!),则还必须在syntax
Vim目录中创建一个txt.vim
文件。)
您想要实现什么效果?
syntax/syntax.vim
),只要自动检测文件类型成功。因此,我猜测语法失败是因为缺少 ftplugin\txt.vim
— 尝试添加一个空白文件。(此外,请确保你已经打开了语法:在你的 .vimrc
/_vimrc
中输入 syntax on
)。 - Paul Ruaneau
命令,即使没有ftplugin\txt.vim
,语法也被正确设置为txt
。我现在最好的猜测是你在.vimrc
中没有打开语法。 - Paul Ruanesyntax/cs.vim
复制到syntax/txt.vim
,重新打开了Vim,在您的au
命令中运行,然后打开了一个.txt
文件,语法完美地工作。所以肯定是你的.vimrc
中没有包含syntax on
。您可以在编辑器中运行:syntax on
来确认这一点。 - Paul Ruaneau
命令。这相当于从 .vimrc
中加载它。问题是你创建了一个没有扩展名的新文件,因此它不符合文件类型检测规则。要么在创建后将文件保存为 .txt
扩展名,要么使用名称创建新文件,例如 new fred.txt
。 - Paul Ruane.vimrc
文件中的第一行即可。set ft=txt
text
文件类型而不是你的txt
文件类型。text
文件类型是在 Vim 7.3.388(2011-12-30)中添加的。 - Flux