在 vim 中为 python 文件创建块时在新行中引入 <Tab>
introduce <Tab> in new line while creating a block for python files in vim
我想在新行中引入一个 tab 字符,以便在 vim 中为 python 个文件。
示例
当我写作时
if(a < 5):
然后按Enter,光标应该会出现在下一行tab after 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,还会创建一个额外的 space,这会造成错误的缩进。
在此先感谢您的帮助
您尝试执行此操作的方法很困难。有一个文件类型插件和一个 Python 语法类型,它已经知道要做什么。
filetype plugin indent on
并且不要使用 set autoindent
。它不是很智能,它只是复制上一行的缩进。这与你想要做的相反。
以 .py
结尾的文件应该会自动获得正确的设置。如果需要在缓冲区中强制使用当前语法类型,可以使用
:set filetype=python
如果您想使用制表符而不是空格,
" Globally
set noexpandtab
" Python only
autocmd FileType python set noexpandtab
但是,我会注意到,不推荐在 Python 中使用制表符,这违背了已发布的最佳实践(参见 PEP 8)。
最后我会提到 "plugin" 只是一个 Vim 术语。默认情况下,所有这些都附带 Vim,这不会创建第三方依赖项。
我想在新行中引入一个 tab 字符,以便在 vim 中为 python 个文件。
示例
当我写作时
if(a < 5):
然后按Enter,光标应该会出现在下一行tab after 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,还会创建一个额外的 space,这会造成错误的缩进。
在此先感谢您的帮助
您尝试执行此操作的方法很困难。有一个文件类型插件和一个 Python 语法类型,它已经知道要做什么。
filetype plugin indent on
并且不要使用 set autoindent
。它不是很智能,它只是复制上一行的缩进。这与你想要做的相反。
以 .py
结尾的文件应该会自动获得正确的设置。如果需要在缓冲区中强制使用当前语法类型,可以使用
:set filetype=python
如果您想使用制表符而不是空格,
" Globally
set noexpandtab
" Python only
autocmd FileType python set noexpandtab
但是,我会注意到,不推荐在 Python 中使用制表符,这违背了已发布的最佳实践(参见 PEP 8)。
最后我会提到 "plugin" 只是一个 Vim 术语。默认情况下,所有这些都附带 Vim,这不会创建第三方依赖项。