1. Tab和Space转换函数,expandtab和rettab的组合运用。命令:ToTab,:ToSpace分别转换当前文件到tab缩进和space缩进。
" -------------------------------------------------- " [空格与制表切换] {{{ " -------------------------------------------------- fu! ToggleTab(t) if a:t == 'tab' setl noet ret! elsei a:t == 'space' setl et ret en endf com! -nargs=0 ToSpace call ToggleTab('space') com! -nargs=0 ToTab call ToggleTab('tab') " }}}
2. Tab键补全,这个是以前网上的配置里面摘出来的。用惯了Tab键补全,C-p、C-n实在不习惯。函数做了简单的判断,在字母后面为补全,其它地方为Tab键。后面了加一个Shift+Tab的强制Tab键映射,在任何情况下都能键入tab。
" -------------------------------------------------- " [自动完成函数] {{{ " -------------------------------------------------- " 自动完成 fu! InsertTabWrapper() let col=col('.')-1 return (!col || getline('.')[col-1] !~ '\k') ? "\<TAB>" : "\<C-P>" endf " 映射键 ino <TAB> <C-R>=InsertTabWrapper()<CR> " 强制TAB键 ino <S-TAB> <C-R>="\<TAB>"<CR> " }}}