入门 Zed Industries 2026-09-14 17:42:19 · 0 阅读

第12章 Modeline

Modeline 是位于文件开头或结尾的特殊注释,用于为该文件单独配置编辑器设置。Zed 同时支持 Vim 和 Emacs 两种 modeline 格式,让你可以直接在文件里指定缩进宽度、缩进风格、文件类型等设置。

配置

通过 modeline_lines 设置可以控制 Zed 在文件中搜索 modeline 的行数:

{
  "modeline_lines": 5
}

设为 0 可完全禁用 modeline 解析。

Emacs

Zed 对 Emacs file variables 提供了一定程度的兼容支持。

示例:

# -*- mode: python; tab-width: 4; indent-tabs-mode: nil; -*-

支持的 Emacs 变量

变量 说明 对应的 Zed 设置
mode 主模式/语言 语言检测
tab-width Tab 显示宽度 tab_size
fill-column 自动换行列数 preferred_line_length
indent-tabs-mode nil 用空格,t 用 Tab hard_tabs
electric-indent-mode 自动缩进 auto_indent
require-final-newline 确保文件末尾有换行符 ensure_final_newline_on_save
show-trailing-whitespace 显示行尾空白字符 show_whitespaces

Vim

Zed 支持Vim modeline 的兼容功能。

示例:

# vim: set ft=python ts=4 sw=4 et:

支持的 Vim 选项

选项 别名 说明 Zed 设置
filetype ft 文件类型/语言 语言检测
tabstop ts Tab 键对应的空格数 tab_size
textwidth tw 最大行宽 preferred_line_length
expandtab et 使用空格代替 Tab hard_tabs
noexpandtab noet 使用 Tab 代替空格 hard_tabs
autoindent ai 启用自动缩进 auto_indent
noautoindent noai 禁用自动缩进 auto_indent
endofline eol 确保文件末尾有换行符 ensure_final_newline_on_save
noendofline noeol 禁用末尾换行符 ensure_final_newline_on_save

备注

  • 会在文件的前 1 KB 范围内搜索 modelines。
  • 若 Emacs 和 Vim 的 modelines 同时存在,Emacs 的 modelines 优先级更高。
  • 位于文件开头的 modelines 优先级高于位于文件末尾的。

评论 (0)