Vim不是自动发送我正在处理的C源文件,虽然它声称当我输入时,autoindent和cindent选项都被启用了 :组 命令。 当我输入一些代码时,什么也没发生。例如写作
int main()
{
return 0;
}
“返回0;”声明留在左边。 但是,如果我键入“= G”命令,我的文件将缩进。
这是我的配置:
vimrc分为/ etc / vim / vimrc和〜/ .vimrc。连接内容如下:
runtime! debian.vim
if has("syntax")
syntax on
endif
set background=dark
" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
if has("autocmd")
filetype plugin indent on
endif
set showcmd
set showmatch
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
""""""" now this is ~/.vimrc """""
set runtimepath+=,/usr/share/vim-scripts
set autoindent
set noexpandtab
" create ~<file> when saving modifications to <file>
set backup
" preserve source's format when pasting
set paste
" disable mouse usage
set mouse=
" colors
set t_Co=256
colorscheme mustang
set hlsearch
set number
set cursorline
if has("statusline")
hi User1 ctermbg=red cterm=bold,reverse
hi User2 ctermbg=darkblue cterm=bold,reverse
hi User3 ctermbg=darkred cterm=bold,reverse
hi User4 ctermbg=brown cterm=bold,reverse
set laststatus=2
set statusline=%h%f\ %y\ %1*%r%*%1*%m%*%=[col:%2*%c%*]\ [line:%3*%.6l%*/%4*%.6L%*\ -\ %p%%]
endif
set spellsuggest=5
match Error /\s\+$/
你有什么想法吗?
非常感谢你的帮助。
皮尔
答案 0 :(得分:7)
在将:help paste
添加到set paste
之前,您应该先阅读~/.vimrc
:
When the 'paste' option is switched on (also when it was already on):
... skipped ...
- 'autoindent' is reset
... skipped ...
These options keep their value, but their effect is disabled:
... skipped ...
- 'cindent'
'paste'
非常有毒,永远不会添加到~/.vimrc
。请参阅:help pastetoggle
和/或使用p
代替。
答案 1 :(得分:3)
一些信息:
autoindent
只会在开始换行时复制上一行的缩进。它对于结构化文本文件很有用,或者当你想手动控制大部分缩进时,没有Vim干扰。
autoindent
不会干扰其他缩进设置,并且某些基于文件类型的缩进脚本甚至会自动启用它。
smartindent
会自动插入一个额外级别的缩进,并且适用于类似C的文件。 cindent
更具可定制性,但在语法方面也更严格。
smartindent
和cindent
可能会干扰基于文件类型的缩进,并且永远不应与其一起使用。
对于C和C ++,基于文件类型的缩进会自动设置cindent
,因此,无需为此类文件手动设置cindent
。在这些情况下,cinwords
,cinkeys
和cinoptions
选项仍适用。
通常,只有在您对基于文件类型的缩进的工作原理不满意时,才应手动设置smartindent
或cindent
。
如果您打算使用基于文件类型的缩进,请不要设置smartindent
或cindent
。您仍然可以设置autoindent
,因为它不会干扰。