繁体   English   中英

如何在.vimrc中为特定文件扩展名设置不同的文本宽度?

[英]How can I set different textwidths for specific file extensions in .vimrc?

我希望默认文本宽度为80个字符,除了像txt这样的文件扩展名。 除了第一次编辑(和创建) txt文件时,以下行似乎有效。

setlocal textwidth=80
autocmd bufreadpre *.txt set textwidth=0

这样做的正确方法是什么?

使用setlocal

autocmd bufreadpre *.txt setlocal textwidth=0

而不是set

使用setlocal您可以确保在当前缓冲区中设置要设置的值,而不是所有缓冲区。

首先,你的范围是错误的; use :set为全局默认值, :setlocal用于:autocmd的缓冲区本地覆盖。

其次, BufReadPre仅用于读取现有文件,而不是新文件; 这就是它第一次不起作用的原因。 相反,你应该使用BufNew,BufRead ; 这会捕获这两种情况,并且仅读取文件应用,因此在使用modelines或在filetype插件中设置时它仍然有效。

第三,一旦你有很多自定义, :autocmd解决方案往往变得难以处理。 如果您只想为某些文件类型启用设置,请将相应的:setlocal命令放入~/.vim/after/ftplugin/<filetype>.vim ,其中<filetype>是实际的文件类型(例如java )。 (这要求您具有:filetype plugin on ;使用after目录可以覆盖$VIMRUNTIME/ftplugin/<filetype>.vim完成的任何默认文件类型设置。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM