{"id":28547076,"url":"https://github.com/skywind3000/yamlvim","last_synced_at":"2026-01-31T17:34:27.889Z","repository":{"id":82864456,"uuid":"233915561","full_name":"skywind3000/yamlvim","owner":"skywind3000","description":"mirror for yamlvim (2.1.1) ","archived":false,"fork":false,"pushed_at":"2020-01-14T19:10:44.000Z","size":173,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-07T07:43:14.747Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.vim.org/scripts/script.php?script_id=3190","language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skywind3000.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-01-14T19:09:12.000Z","updated_at":"2020-01-14T19:11:10.000Z","dependencies_parsed_at":"2023-03-02T04:46:09.904Z","dependency_job_id":null,"html_url":"https://github.com/skywind3000/yamlvim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/skywind3000/yamlvim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skywind3000%2Fyamlvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skywind3000%2Fyamlvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skywind3000%2Fyamlvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skywind3000%2Fyamlvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skywind3000","download_url":"https://codeload.github.com/skywind3000/yamlvim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skywind3000%2Fyamlvim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28948497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T14:26:55.697Z","status":"ssl_error","status_checked_at":"2026-01-31T14:26:52.545Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-10T00:09:15.649Z","updated_at":"2026-01-31T17:34:27.885Z","avatar_url":"https://github.com/skywind3000.png","language":"Vim script","funding_links":[],"categories":[],"sub_categories":[],"readme":"Frawor is a modular vim framework designed to collect some commonly needed \nfunctions.\n\nTo start using the only thing you should do is to add\n\n    execute frawor#Setup('0.0', {})\n\nwhere '0.0' is your plugin version and {} is a dictionary containing plugin \ndependencies (the core frawor module is added to dependencies automatically). \nThere are additional rules you should follow:\n\n1. All script-local functions should be anonymous functions:\n\n        function s:F.somefunc(args)\n\n    In some plugins you may even end with having no non-anonymous function \n    definitions.\n\n2. If function cannot be anonymous (because it is is to be used by `sort()`, for \n    example), then its name should be added to `s:_functions` list.\n\n3. If you define a command, its name should go to `s:_commands` list, same for \n    autocommand groups (`s:_augroups`).\n\n4. All script-local variables whose name starts with `s:_` are reserved and \n    should be used only in a way described in documentation.\n\nAdvantages\n==========\n\n1. Plugin reloading for easier development and updates without vim restart:\n\n        call frawor#Reload('plugin/frawor')\n\n    to reload all plugins (as they all depend on core frawor module).\n\n2. Frawor provides an easier way to mappings customization:\n\n        execute frawor#Setup('0.0', {'@/mappings': '0.0'})\n        \u003c...\u003e\n        call s:_f.mapgroup.add('Foo',\n                \\{'bar': {'lhs': 't', 'rhs': ':Bar\u003cCR\u003e'},\n                \\ 'baz': {'lhs': 'T', 'rhs': s:F.baz}},\n            \\{'leader': '\u003cleader\u003e', 'silent': 1})\n    will define two mappings: `\u003cleader\u003et` which will call command `:Bar` and \n    `\u003cleader\u003eT` which will run `s:F.baz` function. Both mappings are silent. Now \n    pretend that you are the user who does not need to run `s:F.baz` and wants to \n    launch `:Bar` using `,t`. In this case all he needs is to add the following \n    lines to the vimrc:\n\n        let g:frawormap_Foo=','\n\n        let g:frawormap_Foo_bar='t'\n        let g:frawormap_Foo_baz=0\n\n    Replacing `','` with `0` here will lead to disabling the whole mapping \n    group.\n\n3. Options:\n\n        \"plugin/foo.vim:\n        execute frawor#Setup('0.0', {'@/options': '0.0'})\n        let s:_options={'columns': {'default': 80, 'checker': 'range 0 inf'}}\n        \u003c...\u003e\n                    let columns=s:_f.getoption('columns')\n        \u003c...\u003e\n\n        \"vimrc:\n        let g:foo_columns=78\n        autocmd FileType vim  let b:foo_columns=78\n    If you don't want to prefix your options with `foo` (second component after \n    runtimepath of a path to your plugin), define `s:_oprefix`. Note the \n    `checker` key: it saves you from writing code for checking user input (but \n    will instead generate an exception for invalid value).\n\n4. Function argument checks:\n\n        execute frawor#Setup('0.0', {'@/functions': '0.0'})\n        let s:formats={'html': ...,\n                      \\'markdown': ...}\n        function s:F.checkedfunc(format, columns)\n            \u003c...\u003e\n        endfunction\n        let s:F.checkedfunc=s:_f.wrapfunc({'function': s:F.checkedfunc,\n                                          \\'@FWC': ['key formats  '.\n                                          \\         'range 0 inf', 'check'],})\n\n    Here you can see FWC decorator which uses FWC-to-vimscript compiler where FWC \n    is a name of the domain-specific language written exclusively for frawor.\n\n5. Complicated command-line arguments handling:\n\n        execute frawor#Setup('0.0', {'@/commands': '0.0'})\n        let s:formats={'html': ...,\n                      \\'markdown': ...,}\n        function s:F.run_foo(options)\n            \" Here a:options is dictionary containing all prefixed options user\n            \" have given on the command-line\n            let format=a:options.format\n            let columns=a:options.columns\n            if a:options.beatify\n                \u003c...\u003e\n            endif\n        endfunction\n        \"                Prefix  default  Description of\n        \"                         value   the prefix argument\n        let s:foo_args='{columns :=(80)   |earg range 0 inf '.\n                      \\'  format          key formats '.\n                      \\'!beatify :=(0)'}'\n        \" Define a :Foo command\n        call s:_f.command.add('Foo', {'function': s:F.run_foo,\n                                     \\    '@FWC': [s:foo_args, 'filter'],}\n                             \\{'complete': [s:foo_args], 'nargs': '+'})\n        \" \" Example usage:\n        \" Foo col 78 f markdown\n        \" Foo nobeatify f html\n        \" Foo format html beatify c 78\n\n    Note that while command accepts short versions of prefixes, `s:F.run_foo` \n    function will get dictionary with only full names.\n\n6. Portable versions of OS-specific functions: vimscript implementation of some \n    functions from python os module.\n\n7. Vimscript base64 encoder/decoder, fancy table echoing, maparg that returns \n    dictionary for old vim's and more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskywind3000%2Fyamlvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskywind3000%2Fyamlvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskywind3000%2Fyamlvim/lists"}