【发布时间】:2011-06-06 07:19:18
【问题描述】:
在这里完成 emacs 新手。
我在 Ubuntu 上使用 emacs 23.1.1 和 emacs starter kit。我主要在 lua 模式下工作(使用package-install lua-mode 安装)。
我需要调整缩进的工作方式,使其符合我的编码指南。
指导方针是:
- 制表符到空格;
- 每个缩进两个空格;
- 每行最多 80 个字符,没有尾随空格。
例子:
本地 foo = 函数() print("你好,世界!") 结尾如果我不尝试与它的自动缩进作斗争,我会用 emacs 得到什么:
本地 foo = 函数() 打印(“你好,世界”) 结尾更新:
(这属于注释,但由于需要额外的格式,所以我必须放在这里。)
如果我尝试 Thomas 的解决方案,我会得到:
本地 foo = 函数() 打印(“你好,世界”) 结尾请注意,end 以 制表符 和四个空格缩进。
不太好用……
更新 2:
这件事也以错误的方式缩进:
本地酒吧 = foo( “一”, “二”, baz(), -- 注意三个空格 “现状” )应该是:
本地酒吧 = foo( “一”, “二”, 巴兹(), “现状” )更新 3:
错误缩进的第三种情况:
本地酒吧 = foo( “一”, “二” ) local t = 5 -- 此行不应缩进, -- 还要注意 local 和 t 之间的选项卡。更新 4:
这是我从 Thomas 那里得到的当前版本:
本地 foo = 函数() 打印(“你好,世界”) 结尾 local bar = 5 -- Emacs 把 \t 放在 5 之前 local zzz = foo( -- Emacs 把 \t 放在 foo 之前 "one", -- 在此处按 TAB 两次 “二”, 三(), “四” )除了明确指出,我没有做任何缩进,只是输入代码并在每一行的末尾按 RETURN。我实际上并没有输入任何 cmets。
它应该如下所示:
本地 foo = 函数() 打印(“你好,世界”) 结尾 当地酒吧 = 5 本地 zzz = foo( “一”, “二”, 三(), “四” )更新 5:
还有一个错误的缩进情况:
本地富= { 酒吧(); -- 在这里按了一个 TAB,但右括号杀死了它 巴兹; }应该是:
本地富= { 酒吧(); 巴兹; }更新 6:
为了完整起见,这是我使用 current Git HEAD of lua-mode 得到的,没有 Thomas 的配置调整:
本地 foo = 函数() print("你好,世界!") 结尾 当地酒吧 = 5 本地 foo = bar( 酒吧, 巴兹(), 现状(), 啊啊啊 ) 本地 t = { “一”, 二(), }调整:
本地 foo = 函数() print("你好,世界!") 结尾 当地酒吧 = 5 本地 foo = bar( 酒吧, 巴兹(), 现状(), 啊啊啊 ) 本地 t = { “一”, 二(), }为了符合我的编码指南,它应该如下所示:
本地 foo = 函数() print("你好,世界!") 结尾 当地酒吧 = 5 本地 foo = bar( 酒吧, 巴兹(), 现状(), 啊啊啊 ) 本地 t = { “一”, 二(), }【问题讨论】:
-
@Alexander Gladysh:当您编辑 lua 文件时,您是否处于 lua 模式?模式行(缓冲区底部的灰线)是否显示
(Lua ...)? -
@Alexander Gladysh:请注意,您的更新 2(“应该是”)不符合您自己的上述规范/指南,其中您声明缩进应该是 2 个空格:在更新 2 , foo 的参数缩进为 4 个空格。
-
@Thomas:
-UU-:**--F1 test.lua Top L41 (Lua Abbrev) -
@Thomas:不,那是函数参数的两个缩进(一个右括号)。
-
@Alexander Gladysh:好的,那很好。
indent-line-function的值是多少?您可以通过输入C-h v来查找,然后输入“indent-line-function”回车。