| ▲ | normie3000 9 hours ago | |||||||||||||
I'd be interested to understand what modelines are for, and if this is a class of bug that can be disabled via vim settings. Also, are there editors which could not be affected by this class of bug? | ||||||||||||||
| ▲ | Roguelazer 9 hours ago | parent | next [-] | |||||||||||||
modelines allow you to put a special comment in your file (typically on the first or last line of the file, and [for vim] of the format `# vim: set ts=2:`) to configure a subset of editor settings automatically whenever that file is opened in a buffer. They're very common, especially in codebases where there are lots of different styles in different files. Many editors (e.g., Zed (as of https://github.com/zed-industries/zed/pull/49267)) support vim and/or emacs's syntaxes for modelines. Modelines were disabled by default for security reasons for a long time. It's kind of wild to me that they're enabled in some distributions, but there still isn't much restriction on what settings can be configured; I've never seen a modeline in the wild that did anything other than set `filetype`, `fileencoding`, `tabwidth`, `expandtab` (hard tabs vs spaces), and maybe `tabstop` / `softtabstop`. | ||||||||||||||
| ||||||||||||||
| ▲ | normie3000 9 hours ago | parent | prev | next [-] | |||||||||||||
Struggling to find a source, but apparently modelines are disabled by default in debian and perhaps other common distros. | ||||||||||||||
| ▲ | disfadbish 9 hours ago | parent | prev [-] | |||||||||||||
modelines are special lines you can put into files that sets vim options when the file is read by vim. Probably most commonly used to set tab space and tab width. | ||||||||||||||