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


当前回答

很少有设置定义是使用空格还是制表符。

这里有一些方便的函数,可以在~/中定义。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来切换设置。

其他回答

确保vartabstop未设置

set vartabstop=

设置tabstop为4

set tabstop=4

或者vim modeline的简写:

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

添加一行 将ts = 4 在 ~ /。每个用户的Vimrc文件 或 /etc/vimrc文件用于整个系统

对于永久的更改,创建文件~/.vim/plugin/tab_expander。用内容进行Vim

set tabstop=4 softtabstop=4 expandtab shiftwidth=4 smarttab

防止碰~/。Vimrc,从而保持其他默认设置不变。

很少有设置定义是使用空格还是制表符。

这里有一些方便的函数,可以在~/中定义。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来切换设置。