这是我.vimrc
所期望的expandtab
,可以处理所有提到的问题
文件类型,make
除外,该文件类型已被明确禁用。 et
曾经用作非文件类型set
命令,但检测文件类型很重要。
" vundle Config
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'vim-syntastic/syntastic'
Plugin 'Shougo/vimproc'
" All of your Plugins must be added before the following line
call vundle#end()
filetype on
filetype plugin on
filetype indent on
" Remove whitespace
autocmd BufWritePre * %s/\s\+$//e
autocmd FileType cpp,html,css set et paste tabstop=4 shiftwidth=4 backspace=2 matchpairs+=<:>
autocmd FileType haskell,go,js,erlang,vim,tex set et paste tabstop=4 shiftwidth=4 backspace=2
autocmd FileType make set noexpandtab paste shiftwidth=8 softtabstop=0
syntax on
我观察到的是设置了某些选项,而没有设置。 expandtab是我无法具体使用的选项卡。这是打开我的:set
文件(.vimrc
)时filetype=vim
的输出。
backspace=2 filetype=vim keywordprg=:help paste shiftwidth=4 tabstop=4 ttymouse=sgr
commentstring="%s helplang=en laststatus=2 scroll=21 syntax=vim ttyfast
答案 0 :(得分:3)
啊,那是一个棘手的问题。看看:help 'paste'
:
启用“粘贴”选项时(也已经启用):
- 在插入模式和命令行模式下的映射被禁用
- 缩写被禁用
- “自动缩进”已重置
- “ expandtab”已重置
- [...]
请注意该选项的引入方式
如果您想从一个窗口中剪切或复制一些文本并将其粘贴到Vim中,这将非常有用。
仅当粘贴到终端中时,该选项才临时启用。通常通过在'pastetoggle'
选项中配置的键。 (GVIM不需要它;它可以检测粘贴。如果启用了X选择和剪贴板功能,则也可以使用*
和+
寄存器代替。)
:filetype
命令可以压缩为一个filetype plugin indent on
。:autocmds
周围,将消除某些插件堵塞它们的风险,并且还可以安全地重新加载您的~/.vimrc
而无需定义重复项: augroup myCustomizations
autocmd!
autocmd ...
augroup END