我正在开发一个项目,其中一些人使用vi,一些人使用emacs和其他一些人(包括gedit).实现(至少是可视化)样式的最简单但全局的方式(尽管不是完美的)是在每个文件的末尾添加以下行:
...
return 0;
}
// Editor modelines - generated by http://www.wireshark.org/tools/modelines.html
// Local variables:
// c-basic-offset: 4
// tab-width: 4
// indent-tabs-mode: t
// truncate-lines: 1
// End:
// vim:set ft=cpp ts=4 sw=4 sts=4 nowrap: cindent:
Run Code Online (Sandbox Code Playgroud)
问题是:如何在"一行"代码中转换emacs部分(如vim可以)?并将其保留在源文件的末尾(不在顶部).
(可能这可以作为Lisp问题重新编写,但我不熟悉它)
目录本地变量可能是一种更好的方法.
单个.dir-locals.el文件将由每个人处理,根本不需要文件局部变量.
vim可能有类似的机制?
您可以使用eval:声明,但Emacs会要求您确认评估是否安全.如果你告诉Emacs永久地接受它,它将不再询问该表达式(它将它存储在safe-local-variable-valuesinit文件的custom-set-variables部分中).
;;; Local Variables:
;;; eval:(setq c-basic-offset 4 tab-width 4 indent-tabs-mode t truncate-lines 1)
;;; End:
Run Code Online (Sandbox Code Playgroud)
您可以将多个表达式包装在progn:
;;; Local Variables:
;;; eval:(progn (setq c-basic-offset 4) (message "hello"))
;;; End:
Run Code Online (Sandbox Code Playgroud)
或者使用任何其他结构(我认为没有任何限制).
| 归档时间: |
|
| 查看次数: |
2348 次 |
| 最近记录: |