【发布时间】:2016-10-02 19:15:15
【问题描述】:
因为我有
(setq python-indent-offset 4)
在我的 .emacs 中,当我开始使用诸如
之类的代码时def fn():
foo = bar()
if bar1 == bar2:
if blah1 == blah2:
return yay
和mark-whole-buffer (C-x h) 然后是缩进区域(C-M-\),我期望得到:
def fn():
foo = bar()
if bar1 == bar2:
if blah1 == blah2:
return yay
但我得到了:
def fn():
foo = bar()
if bar1 == bar2:
if blah1 == blah2:
return yay
但是 indent-region 可以很好地与花括号分隔的语言一起使用。有没有办法让它与 Python 等基于缩进的语言一起工作?
请注意:
- 我是 aware 的 Reindent,但我想留在 Emacs。
- 我对 string-rectangle (C-x r t) and python-indent-shift-right/left (C-c >) 很熟悉,但这些及其变体都不能满足我的要求。
【问题讨论】:
-
问题似乎是在
python-indent-region中,检查该行是否在块开始。如果它在块开始(例如 if 语句中的 if),它将跳过该行并且不更改缩进。你应该把它作为一个错误提出来。