gpt4 book ai didi

python - 在 vim 中为 python 文件创建 block 时在新行中引入

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:18 24 4
gpt4 key购买 nike

我想在新行中引入一个 tab 字符,以便在 vim 中为 python 文件创建一个新 block 。

示例

当我写作时

if(a < 5): 

然后按 Enter,光标应该在 tab 之后出现在下一行 if 从上面的行垂直对齐。像这样的东西

if(a < 5):  
a = 5

我已经像这样配置了我的 .vimrc 文件

set nu
set autoindent
set tabstop=4
syntax enable
set showmatch
colorscheme gruvbox
set bg=dark

"automatically creates a block after :
autocmd FileType python inoremap :<CR> :<CR><Tab>

注意:
1) 最后一行,我已经按照问题中提到的预期目的写了。
2)设置了自动缩进。
3) 我不想使用任何插件。

我面临的问题:

当我在 : 之后按 Enter 时,除了 tab 之外,还会创建一个额外的空格造成错误的缩进。

在此先感谢您的帮助

最佳答案

您尝试执行此操作的方法很困难。有一个文件类型插件和一个 Python 语法类型,它已经知道要做什么。

filetype plugin indent on

并且不要使用set autoindent。它不是很智能,它只是复制上一行的缩进。这与您想要做的相反。

.py 结尾的文件应该自动获得正确的设置。如果需要在缓冲区中强制使用当前语法类型,可以使用

:set filetype=python

如果您想使用制表符而不是空格,

" Globally
set noexpandtab

" Python only
autocmd FileType python set noexpandtab

但是,我会注意到,不推荐在 Python 中使用选项卡,这违背了已发布的最佳实践(参见 PEP 8)。

最后我会提到“插件”只是一个 Vim 术语。默认情况下,所有这些都与 Vim 一起提供,这不会创建第三方依赖项。

关于python - 在 vim 中为 python 文件创建 block 时在新行中引入 <Tab>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45108986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com