VimL: Checking if function exists

前端 未结 3 1725
梦如初夏
梦如初夏 2021-02-12 04:16

right now I\'m cleaning up my .vimrc file to make sure it\'s compatible on most systems.

In my statusline I use a function that another plugin sets, the

相关标签:
3条回答
  • 2021-02-12 04:46

    The currently selected answer doesn't work for me (using Vim 7.4 / Ubuntu). I believe that's because:

    .vimrc is sourced before any plugins are loaded

    As @ZyX noted this in a comment.

    My preferred method is just to check for the existence of the plugin file. I find this cleaner than writing a separate function in an external file.

    if !empty(glob("path/to/plugin.vim"))
       echo "File exists."
    endif
    
    0 讨论(0)
  • 2021-02-12 05:00

    Just as an alternative you may also use a regexp to decide if the plugin at hand is in your runtimepath:

    if &rtp =~ 'plugin-name'
        ...
    endif
    

    This has the advantage that it works with plugins that only have vimscript code in the autoload directory, which in turn can't be detected when .vimrc is initially parsed since the autoload snippets are loaded at the time of a function call.

    0 讨论(0)
  • 2021-02-12 05:04

    Use

    if exists("*GitBranchInfoString")
        " do stuff here
    endif
    
    0 讨论(0)
提交回复
热议问题