我想在新行中引入一个 制表符 字符,以便在 vim 中为 python 文件创建新 block 。
示例
当我写作时
if(a < 5):
并按Enter,光标应进入下一行,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
并且不要使用设置自动缩进
。它不是很智能,它只是复制前一行的缩进。这与您想要做的相反。
以 .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/