Vim documentation: vital/Vim/ScriptLocal

main help file
vital/Vim/ScriptLocal.txt     Get script-local things

Maintainer: haya14busa <hayabusa1419@gmail.com>

==============================================================================
CONTENTS                                Vital.Vim.ScriptLocal-contents

INTRODUCTION                    Vital.Vim.ScriptLocal-introduction
INTERFACE                       Vital.Vim.ScriptLocal-interface
  Functions                       Vital.Vim.ScriptLocal-functions

==============================================================================
INTRODUCTION                            Vital.Vim.ScriptLocal-introduction

Vital.Vim.ScriptLocal provides a way to get script local things.

        let s:V = vital#{plugin-name}#new()
        let s:S = s:V.import('Vim.ScriptLocal')

        "" Get <SID> with relative path to &runtimepath
        " e.g. starts with autoload/, plugin/, etc...
        " (autoload/**/*.vim, plugin/**/*.vim)

        echo s:S.sid('test/_testdata/Vim/ScriptLocal/test.vim')
        " => <SID>

        "" Get the dict which contains script local functions with absolute
        " path
        let bundle = '~/.vim/bundle/'
        let p = 'vital.vim/test/_testdata/Vim/ScriptLocal/test.vim'
        let absolute_path = bundle . p
        let sf = s:S.sfuncs(absolute_path)
        echo sf
        " =>
        "  {
        "   'double': function('<SNR>439_double'),
        "   '_square': function('<SNR>439__square')
        "  }
        echo sf.double(3)  | " => 6
        echo sf._square(3) | " => 9

==============================================================================
INTERFACE                               Vital.Vim.ScriptLocal-interface
------------------------------------------------------------------------------
FUNCTIONS                               Vital.Vim.ScriptLocal-functions

sid({path})                             Vital.Vim.ScriptLocal.sid()
        Returns <SID> with given path. {path} could be relative to
        'runtimepath' or absolute path.

                                        Vital.Vim.ScriptLocal-path
        {path} example
        1. /home/haya14busa/.vim/bundle/incsearch.vim/autoload/incsearch.vim
        2. ~/.vim/bundle/incsearch.vim/autoload/incsearch.vim
        3. autoload/incsearch.vim
        4. plugin/incsearch.vim

        You can pass paths which start with autoload/, plugin/, etc... as a
        relative path (relative to 'runtimepath').
        NOTE: _relative_ doesn't mean relative to current file, but relative
        to 'runtimepath'.

        "" Get <SID> with relative path to &runtimepath
        " e.g. starts with autoload/, plugin/, etc...
        " (autoload/**/.vim, plugin/**/.vim)
        echo s:S.sid('test/_testdata/Vim/ScriptLocal/test.vim')
        " => <SID>

sid2path(<SID>)                         Vital.Vim.ScriptLocal.sid2path()
        Returns the sourced script path which has the given <SID>.
        echo s:S.sid2path(1) | " => '~/.vimrc'

sfuncs({path})                          Vital.Vim.ScriptLocal.sfuncs()
        Returns a dict which contains script-local functions with {path}
        (See Vital.Vim.ScriptLocal-path).

        "" Get the dict which contains script local functions
        let sf = s:S.sfuncs('test/_testdata/Vim/ScriptLocal/test.vim')
        echo sf
        " =>
        "  {
        "   'double': function('<SNR>439_double'),
        "   '_square': function('<SNR>439__square')
        "  }
        echo sf.double(3)  | " => 6
        echo sf._square(3) | " => 9

sid2sfuncs(<SID>)                       Vital.Vim.ScriptLocal.sid2sfuncs()
        Returns a dict which contains script-local functions with <SID>.

        echo s:S.sid2sfuncs(1)
        " => { 'fname1': funcref1, 'fname2': funcref2, ...}
        " The file whose SID is 1 may be your vimrc

svars({path})                           Vital.Vim.ScriptLocal.svars()
        Returns a dict which contains script-variable with {path}.
        (See Vital.Vim.ScriptLocal-path).

        let s = s:S.svars('test/_testdata/Vim/ScriptLocal/test.vim')
        echo s | " => { 'i': 1 }

        CAUTION: svars() will temporarily overwrite the target file and
        restore the file, so please be careful if you want to use it.

sid2svars(<SID>)                        Vital.Vim.ScriptLocal.sid2svars()
        Returns a dict which contains script-variable with <SID>.

        let s = s:S.sid2svars(1)
        echo s | " => { ... } (Maybe this is s:var in your vimrc)

        CAUTION: sid2svars() will temporarily overwrite the target file and
        restore the file, so please be careful if you want to use it.

scriptnames()                           Vital.Vim.ScriptLocal.scriptnames()
        Returns a dict of :scriptnames. The keys are <SID> and the values
        are paths.
        " { <SID>: path/to/the/file }
          {'1': path1, '2': path2, '3': path3, ... }


==============================================================================
vim:tw=78:ts=8:ft=help:norl:noet:fen:fdl=0:fdm=marker:

top - main help file - tag index