2011-11-13 79 views
2

我想知道如何在vim中使用一个热键映射两个命令。 为exmpale,我已经有了这两个映射如何vim映射两个命令

map <silent> <F7> zM 
map <silent> <F8> zR 

但是,我只是想用F8键ZM和Zr之间切换。 希望任何人都可以给我解决方案。 非常感谢。

回答

10

zA不会做你想做的事吗...?

如果不行,我们需要更深入。 http://www.vim.org/scripts/script.php?script_id=1494告诉你该怎么做,这里的相关的脚本:

map <buffer> F8 :call ToggleFold()<CR> 
let b:folded = 1 
function! ToggleFold() 
    if(b:folded == 0) 
     exec "normal! zM" 
     let b:folded = 1 
    else 
     exec "normal! zR" 
     let b:folded = 0 
    endif 
endfunction 
+0

实际上,ZA已经映射到,但它只是一个切换倍。我的意思是我想切换所有折叠。 (zA不这样做) – lhe

+0

编辑我的回复以适应您的愿望。 – chx

+0

感谢您的回复,此脚本非常棒! – lhe