您可以使用:h :command
創建:S1
和:S2
命令。將這些命令鍵入功能並確保設置互相取消。例如...
command! S1 call Settings1()
command! S2 call Settings2()
fun! Settings1()
setlocal formatoptions=1
setlocal noexpandtab
silent! unmap <buffer> h
silent! unmap <buffer> l
nnoremap j gj
nnoremap k gk
endfun
fun! Settings2()
setlocal formatoptions=2
setlocal expandtab
silent! unmap <buffer> j
silent! unmap <buffer> k
nnoremap h gj
nnoremap l gk
endfun
如果你不想進行設置抵消,最簡單的解決方案可能是重新啓動VIM有不同的配置文件。您還可以使用set option!
切換選項,並使用mapclear
命令清除映射。但是,您必須針對無法切換的選項(如formatoptions
)進行特定設置。您可以使用set option&
將它們重置爲默認值。
但是,您可以將所有選項重置爲默認值:set all&
。例如,使用此功能,您可以撥打Settings1()
致電:set all&
和source $MYVIMRC
。然後Settings2()
也可以調用它們,然後設置各種選項。例如...
" tons of settings
command! S1 call Settings1()
command! S2 call Settings2()
fun! Settings1()
set all&
mapclear
source $MYVIMRC
endfun
fun! Settings2()
set all&
mapclear
setlocal formatoptions=2
setlocal expandtab
nnoremap h gj
nnoremap l gk
endfun
謝謝!有沒有辦法取消功能而不是個人設置?因爲我的編碼設置太多了,我不得不尋找每一個,並找出如何逐個取消它。 – alexchenco
我不知道沒有重新啓動vim的簡單方法,但我更新了答案以反映這一點。 – Conner
非常感謝!我會試試這個。我想知道colorcheme會發生什麼,我認爲它不會改變? – alexchenco