python 模式自动缩进似乎基于样式做出了很多假设。如何配置在某些情况下缩进的方式,或者使其像 vim 一样缩进。
例如,如果我有以下函数:
def some_function(
arg1,
arg2,
):
pass
Run Code Online (Sandbox Code Playgroud)
如果我转到行尾arg2,按 Enter 键,然后输入arg3,,这就是我将得到的内容:
def some_function(
arg1,
arg2,
arg3,
):
pass
Run Code Online (Sandbox Code Playgroud)
我想要的是:
def some_function(
arg1,
arg2,
arg3,
):
pass
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它做我想做的事呢?
我已经尝试过(setq indent-line-function 'indent-relative),哪一种可以满足我的要求,除非我按两次 Enter 键,光标将位于该行的开头(看起来它只检查最后一行以确定相对论)。
在vim中,我可以输入def some_function(并按回车键,它会自动缩进4个空格。如果我输入两次 Enter,它仍然会缩进 4 个空格。这是我最想要的。
提前致谢!
看起来这解决了我遇到的自动缩进问题。这不是让 emacs 使用 vim 风格缩进的方法。如果我弄清楚了,我会将其添加到这个答案中。
(add-hook 'python-mode-hook
(lambda ()
(setq python-indent-def-block-scale 1)))
Run Code Online (Sandbox Code Playgroud)