如何缩进2个字符并将shiftwidth保持不变为1个字符?

时间:2012-05-11 13:25:07

标签: vim indentation

我注意到 shiftwidth 用于缩进文字。

这是我在_vimrc中的shiftwidth设置:

set shiftwidth=1

我不想改变它。我将它用于其他功能。

但是......我希望 缩进 ,有两个这样的空格:

--function-myfunction()
----1st-block
------2nd-block
--------3rd-block
--------end3rd-block
------end2nd-block
----end1st-block
--endfunction

- = 1 space

这可能吗?

这是我在_vimrc中的缩进设置:

set autoindent  
set cindent  
set cinkeys=!^F  

2 个答案:

答案 0 :(得分:1)

您可以setlocal,例如:

:setl sw=2

它不会改变全局设置。

答案 1 :(得分:1)

这不是一个非常优雅的解决方案。但是你可以将它添加到.vimrc并使用,>>向右缩进2. >>仍然应该缩进你期望的法线(1)。

com! SpecialIndent call SpecialInd()
nmap <silent> ,>> :SpecialInd<CR>
function! SpecialInd(...)
    let s:special_indent=&sw
    setl sw=2
    silent exec "normal! >>"
    silent exec "setl sw=".s:special_indent
endfunction