即使我在其中打开纯emacs -Q
和python文件:
|
- 光标
if smth:
| print("asd") # press TAB and cursor moves to "p" symbol, it's ok
if smth:
|print("asd") # press TAB and I get this:
if smth:
print("asd") # press TAB and I get prev step
因此TAB
会对缩进级别进行循环更改。这是我绝对不想要的。
如果使用smart-tab
问题可以解决。但是yasnippet
(yas-global-mode 1)
再次带来了它
那就是我无法找到原因的地方。
如果你有这个问题(python + yasnippet +正确的缩进) - 请给我一个提示。 或者只是指向工作配置的链接。
最新的Emacs(24.3.50.1)
答案 0 :(得分:1)
使用 TAB 控制循环的一种方法是自定义python-indent-trigger-commands
。
变量的文档字符串
可能触发`python-indent-line'调用的命令。
然而,从文档字符串中不清楚变量是否可以
用来控制骑车(实际上我甚至不确定是否设置了这个
如果控制压痕循环的正确方法,则变量)。该
python-indent-line
的docstring更好地解释了这个变量的用途
当变量last-command'等于其中一个符号时 在python-indent-trigger-commands或FORCE-TOGGLE里面 非零,它循环变量中指示的水平 通过设置当前级别的python-indent-levels 变量`python-indent-current-level'。
因此,(setq python-indent-trigger-commands nil)
(或者您可以从列表中删除indent-for-tab-command
)可用于禁用缩进循环。有
这种方法的一个小缺点就是你不能使用 TAB 缩进代码,如下所示
可以关闭for
或if
。
for ..:
if ..:
...
break
else:
...
您将在else
之前点击退格键以重新启动它
关闭for
(默认情况下,它会缩进以便关闭if
)