我目前的设置是8个空格;我该如何重新定义它呢?


当前回答

永久为所有用户(当你独自在服务器上时):

# echo "set tabstop=4" >> /etc/vim/vimrc

在配置文件中追加设置。 通常在新服务器apt-get清除纳米mc和所有其他节省您的时间。否则,你将在git、crontab等中重新定义编辑器。

其他回答

:set sw=4

参见掌握VI编辑器

将您想要的设置放在~/。vimrc文件——请参阅下面的一些指导方针和最佳实践。

在Vim中使用标签有四种主要方式:

Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4 (or 3 or whatever you prefer) and use 'noexpandtab'. Then Vim will use a mix of tabs and spaces, but typing and will behave like a tab appears every 4 (or 3) characters. Note: Setting 'tabstop' to any other value than 8 can make your file appear wrong in many places (e.g., when printing it). Set 'tabstop' and 'shiftwidth' to whatever you prefer and use 'expandtab'. This way you will always insert spaces. The formatting will never be messed up when 'tabstop' is changed. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a |modeline| to set these values when editing the file again. Only works when using Vim to edit the file. Always set 'tabstop' and 'shiftwidth' to the same value, and 'noexpandtab'. This should then work (for initial indents only) for any tabstop setting that people use. It might be nice to have tabs after the first non-blank inserted as spaces if you do this though. Otherwise aligned comments will be wrong when 'tabstop' ischanged.

来源:

vimdoc.sourceforge.net/htmldoc/options.html #“制表符” :帮助制表符

或者vim modeline的简写:

vim :set ts=4 sw=4 sts=4 et :

我复制并粘贴到我的。vimrc文件:

" size of a hard tabstop
set tabstop=4

" always uses spaces instead of tab characters
set expandtab

" size of an "indent"
set shiftwidth=4

前两个设置意味着当我按Tab键时,我得到4个空格。 第三个设置意味着当我做V>(即视觉和缩进)时,我也得到了4个空格。

不像公认的答案那么全面,但它可能会帮助那些只想复制和粘贴一些东西的人。

我基本的~/。Vimrc评论:

set number " show line number                                                                                           
set tabstop=2 " set display width of tab; 1 tab = x space with                                                           
set expandtab " transform tab to x space (x is tabstop)                                                               
set autoindent " auto indent; new line with number of space at the beginning same as previous                                                                      
set shiftwidth=2 " number of space append to lines when type >>