最新版本的Emacs(例如24.3.93.1
)附带python.el
。如何为给定块循环不同级别的缩进?
例如在代码中:
for ix in range(10);
line1
line2 # <- two possible values of indentation for this line
EmacsWiki似乎没有提供相关信息,我无法在C-h m
上找到任何内容。是否支持此功能?
答案 0 :(得分:3)
两种python模式都使用 TAB 进行循环。如果 TAB 不循环,请检查您的init resp。考虑提交错误报告。
顺便说一句,它完成的方式略有不同:从最外面的位置python.el将立即dedent,而第一次击中python-mode.el从正确的最外位置什么都不做。 python-mode.el中的第二个 TAB 将跳转到第0列,然后通过缩进逐步缩进。 Python.el执行逆操作,通过缩进逐步缩进,但从列零开始跳转到最右边。答案 1 :(得分:2)
使用 C-h m 以了解这一点。它调用describe-mode
函数。
您还可以查看python.el文件并查找define-key
:
;; Indent specific
(define-key map "\177" 'python-indent-dedent-line-backspace)
(define-key map (kbd "<backtab>") 'python-indent-dedent-line)
(define-key map "\C-c<" 'python-indent-shift-left)
(define-key map "\C-c>" 'python-indent-shift-right)
(define-key map ":" 'python-indent-electric-colon)
或indent
;; Indentation: Automatic indentation with indentation cycling is
;; provided, it allows you to navigate different available levels of
;; indentation by hitting <tab> several times. Also when inserting a
;; colon the `python-indent-electric-colon' command is invoked and
;; causes the current line to be dedented automatically if needed.