Editorconfig

Nvim :help 页面,生成源文件,使用 tree-sitter-vimdoc 解析器。


EditorConfig 集成

Nvim 支持 EditorConfig。当打开文件后,在运行 ftpluginFileType 自动命令后,Nvim 会搜索该文件的所有父目录以查找 ".editorconfig" 文件,解析它们,并应用与打开文件匹配的任何属性。将其视为整个(递归)目录的 'modeline'。有关更多信息,请参阅 https://editorconfig.org/
EditorConfig 默认启用。要禁用它,请在您的配置中添加
vim.g.editorconfig = false
(Vimscript: let g:editorconfig = v:false)。也可以通过将 b:editorconfig 缓冲区局部变量设置为 false 来禁用每个缓冲区。
如果 b:editorconfig 不为 false,则 Nvim 会将应用的属性存储在其中。
可以通过向 "properties" 表添加新条目来添加新属性。表键是属性名称,值是回调函数,该函数接受要修改的缓冲区编号、.editorconfig 文件中属性的值,以及(可选)包含所有其他属性及其值的表(对于依赖于其他属性的属性很有用)。该值始终为字符串,如果需要,必须进行强制转换。示例
require('editorconfig').properties.foo = function(bufnr, val, opts)
  if opts.charset and opts.charset ~= "utf-8" then
    error("foo can only be set when charset is utf-8", 0)
  end
  vim.b[bufnr].foo = val
end
默认情况下,支持以下属性
charset editorconfig.charset
"utf-8""utf-8-bom""latin1""utf-16be""utf-16le" 之一。设置 'fileencoding''bomb' 选项。
end_of_line editorconfig.end_of_line
"lf""crlf""cr" 之一。它们分别对应于将 'fileformat' 设置为 "unix"、"dos" 或 "mac"。
indent_size editorconfig.indent_size
表示单个缩进大小的数字。或者,使用值 "tab" 来使用 tab_width 属性的值。设置 'shiftwidth''softtabstop' 选项。如果此值不是 "tab" 且未设置 tab_width 属性,则 'tabstop' 也将设置为此值。
indent_style editorconfig.indent_style
"tab""space" 之一。设置 'expandtab' 选项。
insert_final_newline editorconfig.insert_final_newline
"true""false",以确保文件始终在最后字节处包含尾部换行符。设置 'fixendofline''endofline' 选项。
max_line_length editorconfig.max_line_length
表示单行最大长度的数字。设置 'textwidth' 选项。
root editorconfig.root
如果为 "true",则停止在父目录中搜索 .editorconfig 文件。此属性必须位于 .editorconfig 文件的顶层(即,它不能位于 glob 部分内)。
spelling_language editorconfig.spelling_language
格式为 ss 或 ss-TT 的代码,其中 ss 是 ISO 639 语言代码,TT 是 ISO 3166 地区标识符。设置 'spelllang' 选项。
tab_width editorconfig.tab_width
单个制表符字符的显示大小。设置 'tabstop' 选项。
trim_trailing_whitespace editorconfig.trim_trailing_whitespace
当为 "true" 时,在写入缓冲区时会自动删除尾随空格。
命令索引
快速参考