【问题标题】:What is wrong with Emacs' indentation in shell scripts?Emacs 在 shell 脚本中的缩进有什么问题?
【发布时间】:2013-08-15 17:18:35
【问题描述】:

当我输入一个函数时,我得到如下缩进:

function bla {
    if []; then
        echo
        fi

函数标题后的第一行缩进 4 个文字空格,然后在 if 行之后,我得到一个 8 个空格长的文字制表符。真正的问题是,当我尝试删除fi 之前的选项卡时,Emacs 会将选项卡转换为空格,并且只删除第一个空格。

顺便说一句,我在每个缩进行的开头按 Tab,因为不知何故 Enter 不会自动缩进。

编辑:我想我必须接受 Emacs 中的缩进有点“特殊”。

【问题讨论】:

  • 不确定您认为哪一部分是错误的。 W.r.t space-vs-tab,Emacs 只是尽可能使用 TAB 字符(作为优化)。如果您不喜欢这种优化,请相应地设置indent-tabs-mode。但实际上,生活中还有比担心制表符与空格更好的事情。

标签: shell emacs tabs indentation spaces


【解决方案1】:

您可以在输入fi 后按Tab,光标仍位于行尾。它应该修复当前行的缩进。所以,学会在每一行的末尾按Tab,而不是在开头。

【讨论】:

  • @bug:您可以配置tab 的功能。您可以让它插入空格并自定义其宽度。
  • @bug:你期望什么行为?
  • @bug:这是一个特性,而不是一个错误!这个问题属于 superuser.com,但祝你好运!
  • @bug Emacs 拥有数百万用户。他们都很好地使用 Emacs 的缩进。您认为这里的问题可能不是真正的编辑器吗?
  • @bug Stackoverflow 不适合进行扩展讨论。不过,我建议按照“我如何实现以下行为?”来改写您的问题,描述您希望 Emacs 做什么。我想这样你就会有更高的机会得到满意的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 2012-05-31
  • 1970-01-01
相关资源
最近更新 更多