我目前的设置是8个空格;我该如何重新定义它呢?
当前回答
我复制并粘贴到我的。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个空格。
不像公认的答案那么全面,但它可能会帮助那些只想复制和粘贴一些东西的人。
其他回答
还有一件事,使用 : retab 将现有制表符转换为空格 http://vim.wikia.com/wiki/Converting_tabs_to_spaces
要为当前用户永久地定义此属性,请创建(或编辑).vimrc文件:
$ vim ~/.vimrc
然后,将下面的配置粘贴到文件中。重新启动vim后,将应用选项卡设置。
set tabstop=4 " The width of a TAB is set to 4.
" Still it is a \t. It is just that
" Vim will interpret it to be having
" a width of 4.
set shiftwidth=4 " Indents will have a width of 4
set softtabstop=4 " Sets the number of columns for a TAB
set expandtab " Expand TABs to spaces
确保vartabstop未设置
set vartabstop=
设置tabstop为4
set tabstop=4
或者vim modeline的简写:
vim :set ts=4 sw=4 sts=4 et :
很少有设置定义是使用空格还是制表符。
这里有一些方便的函数,可以在~/中定义。vimrc文件:
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
用法:
:call UseTabs()
:call UseSpaces()
要在每个文件扩展名中使用它,可以使用以下语法(添加到.vimrc):
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
请参见:将制表符转换为空格。
下面是来自Wikia的另一个片段,可用于在制表符和空格之间切换:
" virtual tabstops using spaces
set shiftwidth=4
set softtabstop=4
set expandtab
" allow toggling between local and default mode
function TabToggle()
if &expandtab
set shiftwidth=8
set softtabstop=0
set noexpandtab
else
set shiftwidth=4
set softtabstop=4
set expandtab
endif
endfunction
nmap <F9> mz:execute TabToggle()<CR>'z
它可以为每个选项卡使用4个空格,并映射到F9来切换设置。
推荐文章
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何在vim中自动删除尾随空格
- 为什么Vim使用~扩展名保存文件?
- 如何在Vim或Linux中将空格转换为制表符?
- 我如何使用vimdiff来解决git合并冲突?
- 在Vim中删除当前缓冲区的文件名/路径
- Git在终端提交时打开VIM,但无法返回终端
- 请参阅编辑器中的换行符和回车
- 如何在NERDTree中显示隐藏文件(以句点开始)?
- 如何复制一个选择到OS X剪贴板
- 如何删除(不削减)在Vim?
- Vim:在可视模式下快速选择文本块的方法
- 是否有vim命令来重新定位一个选项卡?
- MacVim和普通Vim有什么区别?
- 有什么方法可以在Vim中查看当前映射的键吗?