Vim 用黑色格式化 Python 代码,然后强制制表符

Vim format Python code with Black and then force tabs

我正在使用 ALE plugin to format Python code with Black。黑色用空格缩进文件(与 AutoPep8 相同),但我想保留我的制表符。所以我把这个键绑定写到 运行 Black 然后用制表符交换空格:

nnoremap <leader>ff :ALEFix<cr>:%retab!<cr>

当我 运行 时,它有效,但当我再次 运行 时,空格保留在那里,当我再次 运行 时,它有效,依此类推。我工作一次,下一次不工作,依此类推...

我也试过了,但得到了同样的结果:

nnoremap <leader>ff :ALEFix<cr>gg=G

我应该怎么做才能让它总是 运行 正确,运行 黑色,然后总是 returns 返回我的选项卡?

我可以推测您正在使用 Ale保存时自动修复 功能。当您保存文件时,它会将您的制表符变为 space,因为 black 不支持制表符,Autopep8.[=12 也不支持制表符=]

Autopep8 似乎有一些获取标签的方法。看到这个 link.

如果 black and autopep8

,您可以检查 GitHub 关于 space 与制表符的问题