从vim的命令行调用hjkl键

nun*_*nos 5 vim fold

每当我在vim中浏览折叠代码并按下l键时,我希望它以递归方式打开该折叠.为此,我做了以下事情:nmap l lzO.哪个工作正常,除了E490: No fold found每当我不按l一个折叠时得到一个这样的事实.我用这个借口来学习Vimscript并为此编写函数并避免错误.

现在,我缺少的一部分我怎么能叫一个Vim命令状llzO从一个函数里?

function! OpenFoldOrNot()
    if foldclosed(line(".")) == -1
        echo "just l"
        l # TODO
    else
        echo "open fold"
        lzO # TODO
    endif
endfunction

nmap l :call OpenFoldOrNot()<CR>
Run Code Online (Sandbox Code Playgroud)

mMo*_*ntu 3

尝试一下normal命令。对于这种情况,您需要normal!避免函数的递归执行。