我通常希望始终使用四个空格来缩进代码。不幸的是,例如 Makefiles 强制使用制表符作为分隔符。
我现在的想法是将制表键设置为四个空格,并为真正的制表符设置一些额外的键(例如制表符+移位)。
我该如何设置这样的东西?
目前我的 ~/.vimrc 看起来像:
syntax on
:set tabstop=4
:set cindent
:set autoindent
你可能也喜欢这样的东西:
set expandtab
autocmd FileType make setlocal noexpandtab
这将始终将制表符转换为空格,除非您正在编辑 Makefile。
您需要使用 shiftwidth,例如,
:set shiftwidth=4
:set expandtab
您可能还需要使用此命令将现有制表符转换为空格:
:retab
Ctrl+V Tab将插入一个文字选项卡,即使expandtab
已设置。如果您愿意,可以将其映射到Shift+ Tabwith :inoremap <s-tab> <c-v><tab>
。
:filetype plugin on
应该足以让 tab 键始终在 makefile 中插入真正的选项卡,使用文件类型检测。见:help vimrc-filetype
。
虽然我通常更喜欢将所有内容都转换为空格,但我在 .vimrc 中有一个特定的命令来防止在 makefile 中这样做。首先我激活 expandtab 并设置 shiftwidth,然后我关闭了 makefile 的 expandtab。顺序在这里很重要。
set shiftwidth=4
set expandtab
if has('autocmd')
autocmd FileType make set noexpandtab
endif
我还推荐以下内容,因为它们有些相关并且可能有帮助:
set softtabstop=4
set shiftwidth=4
set smarttab
set autoindent