【发布时间】:2013-01-25 02:21:01
【问题描述】:
是否可以打开缩进 2 个空格的文件,但显示 4 个空格缩进,当我创建 4 个空格时,它会以 2 个空格格式保存?
编辑
事实证明,如果文件混合了制表符、2 个空格和 4 个空格,我还需要能够确保它能够正常工作。
编辑 2
所以,这是我目前的解决方案。我必须重新映射我的(最初映射到:w),以便我可以将光标放回原来的位置(并在我保存时给我一个“历史记录”,直到光标位置。有没有办法这样做不会影响光标位置(也不会将替换添加到历史记录中)?
function! s:ShimSpaces()
nunmap <C-S>
nmap <C-S> ms``mt:w<Cr>`t`s
augroup SeoTabs
autocmd!
autocmd BufReadPost,BufWritePost * set tabstop=4
autocmd BufReadPost,BufWritePost * %substitute/^ \+/&&/e
autocmd BufReadPost * %substitute/ \+$//e
autocmd BufWritePre * %substitute/^\( \+\)\1/\1/e
autocmd BufWritePre * set tabstop=2
autocmd BufWritePre * retab
augroup END
endfunction
command! -n=0 -bar ShimSpaces :call s:ShimSpaces()
【问题讨论】:
-
我希望这对您来说是一个可能的解决方案。 stackoverflow.com/questions/5217058/…
-
感谢您的尝试,苏迪普。不完全的。我在想 Ingo 可能在下面有正确的想法。 (只需要尝试一下。)感谢您的回复!