├── .gitignore ├── MANIFEST ├── META ├── Makefile ├── README ├── README.md ├── addon-info.json ├── autoload └── vim_dev_plugin.vim ├── doc └── vim-dev-plugin.txt ├── ftplugin ├── vim.vim └── vim │ └── eval.vim ├── plugin └── vim_dev_plugin.vim └── spell └── en.utf-8.add /.gitignore: -------------------------------------------------------------------------------- 1 | doc/tags 2 | .netrwhist 3 | en.utf-8.add.spl 4 | -------------------------------------------------------------------------------- /MANIFEST: -------------------------------------------------------------------------------- 1 | ftplugin/vim/omni.vim 2 | Makefile 3 | MANIFEST 4 | MANIFEST.SKIP 5 | META 6 | README.md 7 | test.vim 8 | VIMMETA.yml 9 | -------------------------------------------------------------------------------- /META: -------------------------------------------------------------------------------- 1 | 2 | =name vimomni.vim 3 | 4 | =author Cornelius 5 | 6 | =email cornelius.howl@gmail.com 7 | 8 | =type ftplugin 9 | 10 | =version_from ftplugin/vim/omni.vim 11 | 12 | =vim_version >= 7.2 13 | 14 | =libpath . 15 | 16 | =script_id 2922 17 | 18 | =repository git://....../ 19 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # vim:filetype=make:foldmethod=marker:fdl=0: 2 | # 3 | # 4 | # Look at the stars, Look how they shine for you, And everything you do, 5 | # Yeah they were all yellow, 6 | # 7 | # I came along, I wrote a song for you, And all the things you do And it was 8 | # called yellow. 9 | # 10 | # So then I took my turn. Oh all the things I've done And it was all yellow 11 | # 12 | # - Coldplay 13 | # 14 | # 15 | # Makefile: install/uninstall/link vim plugin files. 16 | # Author: Cornelius 17 | # Date: 一 3/15 22:49:26 2010 18 | # Version: 1.0 19 | # 20 | # PLEASE DO NOT EDIT THIS FILE. THIS FILE IS AUTO-GENERATED FROM Makefile.tpl 21 | # LICENSE {{{ 22 | # Copyright (c) 2010 23 | # 24 | # Permission is hereby granted, free of charge, to any person 25 | # obtaining a copy of this software and associated documentation 26 | # files (the "Software"), to deal in the Software without 27 | # restriction, including without limitation the rights to use, 28 | # copy, modify, merge, publish, distribute, sublicense, and/or sell 29 | # copies of the Software, and to permit persons to whom the 30 | # Software is furnished to do so, subject to the following 31 | # conditions: 32 | # 33 | # The above copyright notice and this permission notice shall be 34 | # included in all copies or substantial portions of the Software. 35 | # 36 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 | # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 | # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 | # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 | # OTHER DEALINGS IN THE SOFTWARE. 44 | # }}} 45 | # VIM RECORD FORMAT: {{{ 46 | # { 47 | # version => 0.2, # record spec version 48 | # generated_by => 'Vimana-' . $Vimana::VERSION, 49 | # install_type => 'auto', # auto , make , rake ... etc 50 | # package => $self->package_name, 51 | # files => \@e, 52 | # } 53 | # }}} 54 | 55 | # INTERNAL VARIABLES {{{ 56 | 57 | RECORD_FILE=.record 58 | PWD=`pwd` 59 | README_FILES=`ls -1 | grep -i readme` 60 | WGET_OPT=-c -nv 61 | CURL_OPT= 62 | RECORD_SCRIPT=.mkrecord 63 | TAR=tar czvf 64 | 65 | GIT_SOURCES= 66 | 67 | # INTERNAL FUNCTIONS {{{ 68 | record_file = \ 69 | PTYPE=`cat $(1) | perl -nle 'print $$1 if /^"\s*script\s*type:\s*(\S*)$$/i'` ;\ 70 | echo $(VIMRUNTIME)/$$PTYPE/$(1) >> $(2) 71 | 72 | # }}} 73 | 74 | # PUBLIC FUNCTIONS {{{ 75 | 76 | GIT_SOURCES= 77 | DEPEND_DIR=/tmp/vim-deps 78 | 79 | # Usage: 80 | # 81 | # $(call install_git_sources) 82 | # 83 | 84 | install_git_source = \ 85 | PWD=$(PWD) ; \ 86 | mkdir -p $(DEPEND_DIR) ; \ 87 | cd $(DEPEND_DIR) ; \ 88 | for git_uri in $(GIT_SOURCES) ; do \ 89 | OUTDIR=$$(echo $$git_uri | perl -pe 's{^.*/}{}') ;\ 90 | echo $$OUTDIR ; \ 91 | if [[ -e $$OUTDIR ]] ; then \ 92 | cd $$OUTDIR ; \ 93 | git pull origin master && \ 94 | make install && cd .. ; \ 95 | else \ 96 | git clone $$git_uri $$OUTDIR && \ 97 | cd $$OUTDIR && \ 98 | make install && cd .. ; \ 99 | fi; \ 100 | done ; 101 | 102 | 103 | 104 | 105 | # install file by inspecting content 106 | install_file = \ 107 | PTYPE=`cat $(1) | perl -nle 'print $$1 if /^"\s*script\s*type:\s*(\S*)$$/i'` ;\ 108 | cp -v $(1) $(VIMRUNTIME)/$$PTYPE/$(1) 109 | 110 | link_file = \ 111 | PTYPE=`cat $(1) | perl -nle 'print $$1 if /^"\s*script\s*type:\s*(\S*)$$/i'` ;\ 112 | cp -v $(1) $(VIMRUNTIME)/$$PTYPE/$(1) 113 | 114 | unlink_file = \ 115 | PTYPE=`cat $(1) | perl -nle 'print $$1 if /^"\s*script\s*type:\s*(\S*)$$/i'` ;\ 116 | rm -fv $(VIMRUNTIME)/$$PTYPE/$(1) 117 | 118 | # fetch script from an url 119 | fetch_url = \ 120 | @if [[ -e $(2) ]] ; then \ 121 | exit \ 122 | ; fi \ 123 | ; echo " => $(2)" \ 124 | ; if [[ ! -z `which curl` ]] ; then \ 125 | curl $(CURL_OPT) $(1) -o $(2) ; \ 126 | ; elif [[ ! -z `which wget` ]] ; then \ 127 | wget $(WGET_OPT) $(1) -O $(2) \ 128 | ; fi \ 129 | ; echo $(2) >> .bundlefiles 130 | 131 | 132 | install_source = \ 133 | for git_uri in $(GIT_SOURCES) ; do \ 134 | OUTDIR=$$(echo $$git_uri | perl -pe 's{^.*/}{}') ;\ 135 | echo $$OUTDIR ; \ 136 | done 137 | 138 | # fetch script from github 139 | fetch_github = \ 140 | @if [[ -e $(5) ]] ; then \ 141 | exit \ 142 | ; fi \ 143 | ; echo " => $(5)" \ 144 | ; if [[ ! -z `which curl` ]] ; then \ 145 | curl $(CURL_OPT) http://github.com/$(1)/$(2)/raw/$(3)/$(4) -o $(5) \ 146 | ; elif [[ ! -z `which wget` ]] ; then \ 147 | wget $(WGET_OPT) http://github.com/$(1)/$(2)/raw/$(3)/$(4) -O $(5) \ 148 | ; fi \ 149 | ; echo $(5) >> .bundlefiles 150 | 151 | # fetch script from local file 152 | fetch_local = @cp -v $(1) $(2) \ 153 | ; @echo $(2) >> .bundlefiles 154 | 155 | # 1: NAME , 2: URI 156 | dep_from_git = \ 157 | D=/tmp/$(1)-$$RANDOM ; git clone $(2) $$D ; cd $$D ; make install ; 158 | 159 | dep_from_svn = \ 160 | D=/tmp/$(1)-$$RANDOM ; svn checkout $(2) $$D ; cd $$D ; make install ; 161 | 162 | # }}} 163 | # }}} 164 | # ======= DEFAULT CONFIG ======= {{{ 165 | 166 | # Default plugin name 167 | NAME=`basename \`pwd\`` 168 | VERSION=0.1 169 | 170 | # Files to add to tarball: 171 | DIRS=`ls -1F | grep / | sed -e 's/\///'` 172 | 173 | # Runtime path to install: 174 | VIMRUNTIME=~/.vim 175 | 176 | # Other Files to be added: 177 | FILES=`ls -1 | grep '.vim$$'` 178 | MKFILES=Makefile `ls -1 | grep '.mk$$'` 179 | 180 | # ======== USER CONFIG ======= {{{ 181 | # please write config in config.mk 182 | # this will override default config 183 | # 184 | # Custom Name: 185 | # 186 | # NAME=[plugin name] 187 | # 188 | # Custom dir list: 189 | # 190 | # DIRS=autoload after doc syntax plugin 191 | # 192 | # Files to add to tarball: 193 | # 194 | # FILES= 195 | # 196 | # Bundle dependent scripts: 197 | # 198 | # bundle-deps: 199 | # $(call fetch_github,[account id],[project],[branch],[source path],[target path]) 200 | # $(call fetch_url,[file url],[target path]) 201 | # $(call fetch_local,[from],[to]) 202 | 203 | SHELL=bash 204 | 205 | CONFIG_FILE=config.mk 206 | -include ~/.vimauthor.mk 207 | -include $(CONFIG_FILE) 208 | 209 | # }}} 210 | # }}} 211 | # ======= SECTIONS ======= {{{ 212 | -include ext.mk 213 | 214 | all: install-deps install 215 | 216 | install-deps: 217 | # check required binaries 218 | [[ -n $$(which git) ]] 219 | [[ -n $$(which bash) ]] 220 | [[ -n $$(which vim) ]] 221 | [[ -n $$(which wget) || -n $$(which curl) ]] 222 | $(call install_git_sources) 223 | 224 | check-require: 225 | @if [[ -n `which wget` || -n `which curl` || -n `which fetch` ]]; then echo "wget|curl|fetch: OK" ; else echo "wget|curl|fetch: NOT OK" ; fi 226 | @if [[ -n `which vim` ]] ; then echo "vim: OK" ; else echo "vim: NOT OK" ; fi 227 | 228 | config: 229 | @rm -f $(CONFIG_FILE) 230 | @echo "NAME=" >> $(CONFIG_FILE) 231 | @echo "VERSION=" >> $(CONFIG_FILE) 232 | @echo "#DIRS=" 233 | @echo "#FILES=" 234 | @echo "" >> $(CONFIG_FILE) 235 | @echo "bundle-deps:" >> $(CONFIG_FILE) 236 | @echo "\t\t\$$(call fetch_github,ID,REPOSITORY,BRANCH,PATH,TARGET_PATH)" >> $(CONFIG_FILE) 237 | @echo "\t\t\$$(call fetch_url,FILE_URL,TARGET_PATH)" >> $(CONFIG_FILE) 238 | 239 | 240 | init-author: 241 | @echo "AUTHOR=" > ~/.vimauthor.mk 242 | 243 | bundle-deps: 244 | 245 | bundle: bundle-deps 246 | 247 | dist: bundle mkfilelist 248 | @$(TAR) $(NAME)-$(VERSION).tar.gz --exclude '*.svn' --exclude '.git' $(DIRS) $(README_FILES) $(FILES) $(MKFILES) 249 | @echo "$(NAME)-$(VERSION).tar.gz is ready." 250 | 251 | init-runtime: 252 | @mkdir -vp $(VIMRUNTIME) 253 | @mkdir -vp $(VIMRUNTIME)/record 254 | @if [[ -n "$(DIRS)" ]] ; then find $(DIRS) -type d | while read dir ; do \ 255 | mkdir -vp $(VIMRUNTIME)/$$dir ; done ; fi 256 | 257 | release: 258 | if [[ -n `which vimup` ]] ; then \ 259 | fi 260 | 261 | pure-install: 262 | @echo "Using Shell:" $(SHELL) 263 | @echo "Installing" 264 | @if [[ -n "$(DIRS)" ]] ; then find $(DIRS) -type f | while read file ; do \ 265 | cp -v $$file $(VIMRUNTIME)/$$file ; done ; fi 266 | @echo "$(FILES)" | while read vimfile ; do \ 267 | if [[ -n $$vimfile ]] ; then \ 268 | $(call install_file,$$vimfile) ; fi ; done 269 | 270 | install: init-runtime bundle pure-install record 271 | 272 | 273 | uninstall-files: 274 | @echo "Uninstalling" 275 | @if [[ -n "$(DIRS)" ]] ; then find $(DIRS) -type f | while read file ; do \ 276 | rm -fv $(VIMRUNTIME)/$$file ; done ; fi 277 | @echo "$(FILES)" | while read vimfile ; do \ 278 | if [[ -n $$vimfile ]] ; then \ 279 | $(call unlink_file,$$vimfile) ; fi ; done 280 | 281 | uninstall: uninstall-files rmrecord 282 | 283 | link: init-runtime 284 | @echo "Linking" 285 | @if [[ -n "$(DIRS)" ]]; then find $(DIRS) -type f | while read file ; do \ 286 | ln -sfv $(PWD)/$$file $(VIMRUNTIME)/$$file ; done ; fi 287 | @echo "$(FILES)" | while read vimfile ; do \ 288 | if [[ -n $$vimfile ]] ; then \ 289 | $(call link_file,$$vimfile) ; fi ; done 290 | 291 | mkfilelist: 292 | @echo $(NAME) > $(RECORD_FILE) 293 | @echo $(VERSION) >> $(RECORD_FILE) 294 | @if [[ -n "$(DIRS)" ]] ; then find $(DIRS) -type f | while read file ; do \ 295 | echo $(VIMRUNTIME)/$$file >> $(RECORD_FILE) ; done ; fi 296 | @echo "$(FILES)" | while read vimfile ; do \ 297 | if [[ -n $$vimfile ]] ; then \ 298 | $(call record_file,$$vimfile,$(RECORD_FILE)) ; fi ; done 299 | 300 | vimball-edit: 301 | find $(DIRS) -type f > .tmp_list 302 | vim .tmp_list 303 | vim .tmp_list -c ":MkVimball $(NAME)-$(VERSION) ." -c "q" 304 | @rm -vf .tmp_list 305 | @echo "$(NAME)-$(VERSION).vba is ready." 306 | 307 | vimball: 308 | find $(DIRS) -type f > .tmp_list 309 | vim .tmp_list -c ":MkVimball $(NAME)-$(VERSION) ." -c "q" 310 | @rm -vf .tmp_list 311 | @echo "$(NAME)-$(VERSION).vba is ready." 312 | 313 | mkrecordscript: 314 | @echo "" > $(RECORD_SCRIPT) 315 | @echo "fun! s:mkmd5(file)" >> $(RECORD_SCRIPT) 316 | @echo " if executable('md5')" >> $(RECORD_SCRIPT) 317 | @echo " return system('cat ' . a:file . ' | md5')" >> $(RECORD_SCRIPT) 318 | @echo " else" >> $(RECORD_SCRIPT) 319 | @echo " return \"\"" >> $(RECORD_SCRIPT) 320 | @echo " endif" >> $(RECORD_SCRIPT) 321 | @echo "endf" >> $(RECORD_SCRIPT) 322 | @echo "let files = readfile('.record')" >> $(RECORD_SCRIPT) 323 | @echo "let package_name = remove(files,0)" >> $(RECORD_SCRIPT) 324 | @echo "let script_version = remove(files,0)" >> $(RECORD_SCRIPT) 325 | @echo "let record = { 'version' : 0.3 , 'generated_by': 'Vim-Makefile' , 'script_version': script_version , 'install_type' : 'makefile' , 'package' : package_name , 'files': [ ] }" >> $(RECORD_SCRIPT) 326 | @echo "for file in files " >> $(RECORD_SCRIPT) 327 | @echo " let md5 = s:mkmd5(file)" >> $(RECORD_SCRIPT) 328 | @echo " cal add( record.files , { 'checksum': md5 , 'file': file } )" >> $(RECORD_SCRIPT) 329 | @echo "endfor" >> $(RECORD_SCRIPT) 330 | @echo "redir => output" >> $(RECORD_SCRIPT) 331 | @echo "silent echon record" >> $(RECORD_SCRIPT) 332 | @echo "redir END" >> $(RECORD_SCRIPT) 333 | @echo "let content = join(split(output,\"\\\\n\"),'')" >> $(RECORD_SCRIPT) 334 | @echo "let record_file = expand('~/.vim/record/' . package_name )" >> $(RECORD_SCRIPT) 335 | @echo "cal writefile( [content] , record_file )" >> $(RECORD_SCRIPT) 336 | @echo "cal delete('.record')" >> $(RECORD_SCRIPT) 337 | @echo "echo \"Done\"" >> $(RECORD_SCRIPT) 338 | 339 | 340 | record: mkfilelist mkrecordscript 341 | vim --noplugin -V10install.log -c "so $(RECORD_SCRIPT)" -c "q" 342 | @echo "Vim script record making log: install.log" 343 | # @rm -vf $(RECORD_FILE) 344 | 345 | rmrecord: 346 | @echo "Removing Record" 347 | @rm -vf $(VIMRUNTIME)/record/$(NAME) 348 | 349 | clean: clean-bundle-deps 350 | @rm -vf $(RECORD_FILE) 351 | @rm -vf $(RECORD_SCRIPT) 352 | @rm -vf install.log 353 | @rm -vf *.tar.gz 354 | 355 | clean-bundle-deps: 356 | @echo "Removing Bundled scripts..." 357 | @if [[ -e .bundlefiles ]] ; then \ 358 | rm -fv `echo \`cat .bundlefiles\``; \ 359 | fi 360 | @rm -fv .bundlefiles 361 | 362 | update: 363 | @echo "Updating Makefile..." 364 | @URL=http://github.com/c9s/vim-makefile/raw/master/Makefile ; \ 365 | if [[ -n `which curl` ]]; then \ 366 | curl $$URL -o Makefile ; \ 367 | if [[ -n `which wget` ]]; then \ 368 | wget -c $$URL ; \ 369 | elif [[ -n `which fetch` ]]; then \ 370 | fetch $$URL ; \ 371 | fi 372 | 373 | version: 374 | @echo version - $(MAKEFILE_VERSION) 375 | 376 | # }}} 377 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c9s/vim-dev-plugin/1dced68adc2d0873ea5cdf1780f7351c31a964d3/README -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Vim plugin for developing vim script. 3 | 4 | 5 | ## Eval 6 | 7 | ## Vim Omni Completion 8 | 9 | although vim has its own completion (C-x C-v), but it''s leak of something 10 | 11 | vim omni supports: 12 | 13 | * builtin command name completion. 14 | * builtin function name completion. 15 | * runtime command completion. 16 | * runtime function name completion. 17 | * g:,s:.. scope completion. 18 | * option name completion. 19 | * autocommand event name completion 20 | * feature name completion. 21 | * &option 22 | 23 | 24 | INSTALL 25 | ======= 26 | 27 | copy `ftplugin/vim/omni.vim` to your `~/.vim/ftplugin/vim/omni.vim` 28 | Dependencies see addon-info.json 29 | 30 | vim-addon-manager plugin will install all dependencies for you automatically. 31 | vim-addon- can be found on github.com/MarcWeber tlib is easy to find. 32 | 33 | 34 | USE 35 | ====== 36 | 37 | function name: 38 | cal 39 | 40 | command name: 41 | com! 42 | 43 | var name: 44 | let g: 45 | 46 | autocmd event: 47 | autocmd 48 | 49 | option name: 50 | set 51 | 52 | feature name: 53 | if has( 54 | 55 | SCREENSHOT 56 | ========== 57 | 58 | ![](http://cloud.github.com/downloads/c9s/vimomni.vim/Screen_shot_2010-01-10_at_10.44.58_AM.png) 59 | ![](http://cloud.github.com/downloads/c9s/vimomni.vim/Screen_shot_2010-01-10_at_10.44.45_AM.png) 60 | ![](http://cloud.github.com/downloads/c9s/vimomni.vim/Screen_shot_2010-01-10_at_10.44.30_AM.png) 61 | 62 | GOTO function 63 | ============ 64 | vim-addon-goto-thing-at-cursor remaps gf. By typing gf on a function Vim will 65 | attempt to jump to its definition. This implementation is not using tags - so 66 | its always up to date. 67 | 68 | 69 | CUSTOMIZATION: 70 | =============== 71 | If you dislike camel case matching see vim-addon-ocmpletion how to override the default 72 | 73 | recommended additional plugins 74 | ============================== 75 | You may find reload useful which reloads syntax and .vim files. 76 | You still want to restart Vim to get rid of old definititions etc. 77 | 78 | How to debug VimL ? 79 | =================== 80 | use :debug a-command then (c)ontinue (r)eturn (n)ext (s)tep .. 81 | if you get stackt traces of dict functions you can find the hints about the 82 | declaration by :function {77} or such. 83 | 84 | output var contents: 85 | 86 | 87 | echoe string(x) 88 | echo x 89 | 90 | messages will redisplay everything printed by echoe 91 | 92 | 93 | or the like 94 | 95 | How to debug all calls of a function F? 96 | 97 | change 98 | 99 | 100 | 101 | fun F() 102 | " do something 103 | endf 104 | 105 | 106 | 107 | to 108 | 109 | 110 | 111 | fun F(...) 112 | debug return call(function('F2'), a:000) 113 | endf 114 | 115 | fun F2() 116 | " do something 117 | endf 118 | 119 | 120 | 121 | 122 | then you can use viml debugger: 123 | 124 | (c)ontinue, (s)tep, (n)ext 125 | 126 | and of course you can just type any viml code such as echo to debug vars 127 | 128 | And of course you can always vim -V20/tmp/log to see all VimL lines being 129 | executed. 130 | 131 | Also see :h breaka etc 132 | 133 | If you get error messages suchas 23.34.23 134 | line 3 This mean that the methods 23 34 23 are memebers of dictionaries. 135 | You can view the code by :function{23} 136 | (TODO: Add this to VimLGotoLastError) 137 | 138 | If you get traces VimLGotoLastError tries to find the location where the error happened 139 | adding the error message. It often works - but not aways 140 | 141 | How to debug syntax scripts ? 142 | ============================= 143 | 144 | Note: echo lines are ignored by Vim. However you can run an indentation 145 | function manually and read them: 146 | 147 | fun MyIndent(lnum) 148 | echo 'debug ..' 149 | return 1 150 | endfun 151 | 152 | Then you can debug indentation of current line .. 153 | :echo MyIndent(line('.')) 154 | ^ here you can use debug etc. 155 | 156 | Howto write a good Vim plugin ? 157 | =============================== 158 | Hard question. There are different styles. I like the following: 159 | 160 | - Don't start from scratch if you can also join an existing project. 161 | So do some research or ask on #vim 162 | 163 | - Try reusing code. vim-addon-manager allows to install dependencies easily. 164 | 165 | - Consider using a VCS (eg git) so that other devs can join and help you more 166 | easily (or continue your project if you lost interest). 167 | 168 | - put code which is not run on every startup into autoload/ files 169 | Thus the plugin/ files ideally only contain the setup and user interface. 170 | 171 | - If you need configurations try binding a global dict the user can set in its 172 | .vimrc to a short buffer local var. Set settings if they have not been set by 173 | the user. An example can be seen in autoload/vim_dev_plugin.vim which allows 174 | the user to overwrite vim_scan_func in his .vimrc in this way: 175 | let g:vim_dev = { 'vim_scan_func' : ... } 176 | 177 | - If you want to let the user set configurations but provide defaults first 178 | put all your setup code into an autoload function setting up defaults. Example: 179 | 180 | plugin/foo.vim: 181 | call foo_setup#Setup() 182 | 183 | autoload/foo_setup.vim: 184 | let s:did_setup = 0 185 | fun! foo_setup#Setup() 186 | " do this once only: 187 | if s:did_setup | return | endif 188 | let s:did_setup = 1 189 | 190 | setup mappings etc 191 | endf 192 | 193 | 194 | Then user or other plugins can patch anywhere (.vimrc, au commands): 195 | 196 | call foo_setup#Setup() 197 | " do the patching 198 | -------------------------------------------------------------------------------- /addon-info.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "vim-dev", 3 | "version" : "0.1", 4 | "author" : "Marc Weber and Cornelius Howl ", 5 | "maintainer" : "see author", 6 | "repository" : {"type": "git", "url": "git://github.com/c9s/vim-dev-plugin.git"}, 7 | "dependencies" : { 8 | "tlib": {}, 9 | "vim-addon-mw-utils": {}, 10 | "vim-addon-completion": {}, 11 | "vim-addon-goto-thing-at-cursor": {} 12 | }, 13 | "description" : "vim omni completion and more" 14 | } 15 | 16 | -------------------------------------------------------------------------------- /autoload/vim_dev_plugin.vim: -------------------------------------------------------------------------------- 1 | " vim:fdm=marker: 2 | " Plugin: Vim Omni Completion 3 | " Version: 0.22 4 | " Author: Cornelius (林佑安) 5 | " Contributor: Marc Weber (marco-oweber@gmx.de) 6 | " Email: cornelius.howl@gmail.com 7 | 8 | if !exists('g:vim_dev') | let g:vim_dev = {} | endif | let s:c = g:vim_dev 9 | let s:c['vim_scan_func'] = get(s:c, 'vim_scan_func', {'func' : funcref#Function('vim_dev_plugin#ScanFunc'), 'version': 11, 'use_file_cache':1} ) 10 | 11 | let s:debug = 0 12 | 13 | " builtin function {{{ 14 | " let s:builtin_function_list = [ 15 | " \"abs(", "add(", "append(", "argc(", "argidx(", 16 | " \"argv(", "atan(", "browse(", "browsedir(", "bufexists(", "buflisted(", "bufloaded(", 17 | " \"bufname(", "bufnr(", "bufwinnr(", "byte2line(", "byteidx(", "call(", "ceil(", 18 | " \"changenr(", "char2nr(", "cindent(", "clearmatches(", "col(", "complete(", 19 | " \"complete_add(", "complete_check(", "confirm(", "copy(", "cos(", "count(", 20 | " \"cscope_connection(", "cursor(", "deepcopy(", "delete(", "did_filetype(", 21 | " \"diff_filler(", "diff_hlID(", "empty(", "escape(", "eval(", "eventhandler(", 22 | " \"executable(", "exists(", "expand(", "extend(", "feedkeys(", "filereadable(", 23 | " \"filewritable(", "filter(", "finddir(", "findfile(", "float2nr(", "floor(", 24 | " \"fnameescape(", "fnamemodify(", "foldclosed(", "foldclosedend(", "foldlevel(", 25 | " \"foldtext(", "foldtextresult(", "foreground(", "function(", "garbagecollect(", 26 | " \"get(", "getbufline(", "getbufvar(", "getchar(", "getcharmod(", "getcmdline(", 27 | " \"getcmdpos(", "getcmdtype(", "getcwd(", "getfontname(", "getfperm(", "getfsize(", 28 | " \"getftime(", "getftype(", "getline(", "getloclist(", "getmatches(", "getpid(", 29 | " \"getpos(", "getqflist(", "getreg(", "getregtype(", "gettabwinvar(", "getwinposx(", 30 | " \"getwinposy(", "getwinvar(", "glob(", "globpath(", "has(", "has_key(", 31 | " \"haslocaldir(", "hasmapto(", "histadd(", "histdel(", "histget(", "histnr(", "hlID(", 32 | " \"hlexists(", "hostname(", "iconv(", "indent(", "index(", "input(", "inputdialog(", 33 | " \"inputlist(", "inputrestore(", "inputsave(", "inputsecret(", "insert(", 34 | " \"isdirectory(", "islocked(", "items(", "join(", "keys(", "len(", "libcall(", 35 | " \"libcallnr(", "line(", "line2byte(", "lispindent(", "localtime(", "log10(", "map(", 36 | " \"maparg(", "mapcheck(", "match(", "matchadd(", "matcharg(", "matchdelete(", 37 | " \"matchend(", "matchlist(", "matchstr(", "max(", "min(", "mkdir(", "mode(", 38 | " \"nextnonblank(", "nr2char(", "pathshorten(", "pow(", "prevnonblank(", "printf(", 39 | " \"pumvisible(", "range(", "readfile(", "reltime(", "reltimestr(", "remote_expr(", 40 | " \"remote_foreground(", "remote_peek(", "remote_read(", "remote_send(", "remove(", 41 | " \"rename(", "repeat(", "resolve(", "reverse(", "round(", "search(", "searchdecl(", 42 | " \"searchpair(", "searchpairpos(", "searchpos(", "server2client(", "serverlist(", 43 | " \"setbufvar(", "setcmdpos(", "setline(", "setloclist(", "setmatches(", "setpos(", 44 | " \"setqflist(", "setreg(", "settabwinvar(", "setwinvar(", "shellescape(", "simplify(", 45 | " \"sin(", "sort(", "soundfold(", "spellbadword(", "spellsuggest(", "split(", "sqrt(", 46 | " \"str2float(", "str2nr(", "strftime(", "stridx(", "string(", "strlen(", "strpart(", 47 | " \"strridx(", "strtrans(", "submatch(", "substitute(", "synID(", "synIDattr(", 48 | " \"synIDtrans(", "synstack(", "system(", "tabpagebuflist(", "tabpagenr(", 49 | " \"tabpagewinnr(", "tagfiles(", "taglist(", "tempname(", "tolower(", "toupper(", "tr(", 50 | " \"trunc(", "type(", "values(", "virtcol(", "visualmode(", "winbufnr(", "wincol(", 51 | " \"winheight(", "winline(", "winnr(", "winrestcmd(", "winrestview(", "winsaveview(", 52 | " \"winwidth(", "writefile("]"}}} 53 | " builtin commands {{{ 54 | let s:builtin_command_list = [ 55 | \"abclear", "argdo", "argument", "belowright", 56 | \"bNext", "breakdel", "buffer", "caddbuffer", "cbuffer", "cexpr", "cgetfile", 57 | \"checktime", "cnewer", "colder", "continue", "cquit", "delcommand", "diffoff", 58 | \"diffupdate", "drop", "echomsg", "emenu", "endtry", "exusage", "find", 59 | \"foldclose", "function", "hardcopy", "helptags", "if", "isearch", "jumps", 60 | \"keepmarks", "language", "lcd", "leftabove", "lgetbuffer", "lgrepadd", 61 | \"llast", "lmapclear", "lnfile", "lockmarks", "lpfile", "ltag", "make", 62 | \"menutranslate", "mkview", "mzfile", "next", "number", "options", "perldo", 63 | \"ppop", "Print", "promptrepl", "ptjump", "ptprevious", "pwd", "quit", "redir", 64 | \"registers", "rewind", "rubydo", "sall", "sball", "sbnext", "sbuffer", 65 | \"setfiletype", "sfirst", "simalt", "smap", "snext", "snoremap", "source", 66 | \"spellrepall", "sprevious", "startinsert", "stopinsert", "sunmenu", "t", 67 | \"tabedit", "tabmove", "tabonly", "tag", "tclfile", "tjump", "tnext", 68 | \"trewind", "tunmenu", "undolist", "verbose", "vimgrep", "vmapclear", "while", 69 | \"winsize", "wq", "wviminfo", "xmap", "XMLent", "xnoremenu", "aboveleft", 70 | \"argedit", "ascii", "bfirst", "botright", "breaklist", "buffers", "caddexpr", 71 | \"cc", "cfile", "change", "clast", "cnext", "colorscheme", "copen", "crewind", 72 | \"delete", "diffpatch", "digraphs", "dsearch", "echon", "emenu*", "endwhile", 73 | \"file", "finish", "folddoclosed", "goto", "help", "hide", "ijump", "isplit", 74 | \"k", "laddbuffer", "last", "lchdir", "lexpr", "lgetexpr", "lhelpgrep", 75 | \"llist", "lnewer", "lNfile", "lockvar", "lprevious", "lvimgrep", "mark", 76 | \"mkexrc", "mkvimrc", "mzscheme", "Next", "omapclear", "pclose", "pop", 77 | \"preserve", "profdel", "psearch", "ptlast", "ptrewind", "pyfile", "quitall", 78 | \"redo", "resize", "right", "rubyfile", "sandbox", "sbfirst", "sbNext", 79 | \"scriptencoding", "setglobal", "shell", "slast", "smapclear", "sNext", 80 | \"snoreme", "spelldump", "spellundo", "srewind", "startreplace", "stselect", 81 | \"suspend", "tab", "tabfind", "tabnew", "tabprevious", "tags", "tearoff", 82 | \"tlast", "tNext", "try", "unabbreviate", "unhide", "version", "vimgrepadd", 83 | \"vnew", "wincmd", "wnext", "wqall", "X", "xmapclear", "XMLns", "xunme", "all", 84 | \"argglobal", "badd", "blast", "bprevious", "brewind", "bunload", "caddfile", 85 | \"cclose", "cfirst", "changes", "clist", "cNext", "comclear", "copy", 86 | \"cunabbrev", "delfunction", "diffput", "display", "dsplit", "edit", "endfor", 87 | \"enew", "files", "first", "folddoopen", "grep", "helpfind", "history", 88 | \"ilist", "iunabbrev", "keepalt", "laddexpr", "later", "lclose", "lfile", 89 | \"lgetfile", "list", "lmake", "lnext", "lnoremap", "lolder", "lrewind", 90 | \"lvimgrepadd", "marks", "mksession", "mode", "nbkey", "nmapclear", "only", 91 | \"pedit", "popu", "previous", "profile", "ptag", "ptnext", "ptselect", 92 | \"python", "read", "redraw", "retab", "rightbelow", "runtime", "sargument", 93 | \"sblast", "sbprevious", "scriptnames", "setlocal", "sign", "sleep", "sme", 94 | \"sniff", "snoremenu", "spellgood", "spellwrong", "stag", "stjump", "sunhide", 95 | \"sview", "tabclose", "tabfirst", "tabnext", "tabrewind", "tcl", "tfirst", 96 | \"tm", "topleft", "tselect", "undo", "unlockvar", "vertical", "visual", 97 | \"vsplit", "windo", "wNext", "write", "xall", "xme", "xnoremap", "xunmenu", 98 | \"argadd", "arglocal", "ball", "bmodified", "break", "browse", "bwipeout", 99 | \"call", "cd", "cgetbuffer", "chdir", "close", "cnfile", "compiler", "cpfile", 100 | \"cwindow", "delmarks", "diffsplit", "djump", "earlier", "else", "endfunction", 101 | \"ex", "filetype", "fixdel", "foldopen", "grepadd", "helpgrep", "iabclear", 102 | \"imapclear", "join", "keepjumps", "laddfile", "lbuffer", "left", "lfirst", 103 | \"lgrep", "ll", "lmap", "lNext", "loadview", "lopen", "ls", "lwindow", "match", 104 | \"mkspell", "move", "new", "nohlsearch", "open", "perl", "popup", "print", 105 | \"promptfind", "ptfirst", "ptNext", "put", "qall", "recover", "redrawstatus", 106 | \"return", "ruby", "rviminfo", "saveas", "sbmodified", "sbrewind", "set", 107 | \"sfind", "silent", "smagic", "smenu", "snomagic", "sort", "spellinfo", 108 | \"split", "startgreplace", "stop", "sunme", "syncbind", "tabdo", "tablast", 109 | \"tabNext", "tabs", "tcldo", "throw", "tmenu", "tprevious", "tu", "undojoin", 110 | \"update", "view", "viusage", "wall", "winpos", "wprevious", "wsverb", "xit", 111 | \"xmenu", "xnoreme", "yank", "argdelete", "args", "bdelete", "bnext", 112 | \"breakadd", "bufdo", "cabclear", "catch", "center", "cgetexpr", "checkpath", 113 | \"cmapclear", "cNfile", "confirm", "cprevious", "debuggreedy", "diffget", 114 | \"diffthis", "dlist", "echoerr", "elseif", "endif", "exit", "finally", "fold", 115 | \"for" ] 116 | "}}} 117 | " options {{{ 118 | " TODO: complete vim_dev_plugin#OptionList() and use its result instead 119 | let s:builtin_option_list = [ 120 | \"acd", "ambiwidth", "arabicshape", 121 | \"autowriteall", "backupdir", "bdlay", "binary", "breakat", "bufhidden", 122 | \"cdpath", "cin", "cinwords", "columns", "completeopt", "cpo", 123 | \"cscopetagorder", "csverb", "deco", "dictionary", "directory", "ed", 124 | \"encoding", "errorfile", "exrc", "fdls", "fencs", "fileformats", "fmr", 125 | \"foldlevel", "foldtext", "fsync", "gfs", "gtl", "guioptions", "hf", "hk", 126 | \"hlsearch", "imak", "ims", "indentexpr", "is", "isp", "keywordprg", 127 | \"lazyredraw", "lispwords", "ls", "makeef", "maxmapdepth", "mfd", "mmd", 128 | \"modified", "mousemodel", "msm", "numberwidth", "operatorfunc", "pastetoggle", 129 | \"pexpr", "pmbfn", "printexpr", "pt", "readonly", "rightleft", "rtp", "sb", 130 | \"scroll", "sect", "sessionoptions", "shellpipe", "shellxquote", "showbreak", 131 | \"shq", "slm", "smd", "spc", "spf", "sr", "sta", "sts", "swapfile", "sxq", 132 | \"tabpagemax", "tags", "tbis", "terse", "thesaurus", "titleold", 133 | \"toolbariconsize", "tsr", "ttyfast", "tx", "ut", "verbosefile", "virtualedit", 134 | \"wb", "wfw", "wildcharm", "winaltkeys", "winminwidth", "wmnu", "write", 135 | \"ai", "ambw", "ari", "aw", "backupext", "beval", "biosk", "brk", "buflisted", 136 | \"cedit", "cindent", "clipboard", "com", "confirm", "cpoptions", 137 | \"cscopeverbose", "cuc", "def", "diff", "display", "edcompatible", "endofline", 138 | \"errorformat", "fcl", "fdm", "fex", "filetype", "fo", "foldlevelstart", 139 | \"formatexpr", "ft", "gfw", "gtt", "guipty", "hh", "hkmap", "ic", "imc", 140 | \"imsearch", "indentkeys", "isf", "isprint", "km", "lbr", "list", "lsp", 141 | \"makeprg", "maxmem", "mh", "mmp", "more", "mouses", "mzq", "nuw", "opfunc", 142 | \"patchexpr", "pfn", "popt", "printfont", "pumheight", "redrawtime", 143 | \"rightleftcmd", "ru", "sbo", "scrollbind", "sections", "sft", "shellquote", 144 | \"shiftround", "showcmd", "si", "sm", "sn", "spell", "spl", "srr", "stal", 145 | \"su", "swapsync", "syn", "tabstop", "tagstack", "tbs", "textauto", "tildeop", 146 | \"titlestring", "top", "ttimeout", "ttym", "uc", "vb", "vfile", "visualbell", 147 | \"wc", "wh", "wildignore", "window", "winwidth", "wmw", "writeany", 148 | \"anti", "arshape", "awa", "backupskip", "bex", "bioskey", "browsedir", 149 | \"buftype", "cf", "cink", "cmdheight", "comments", "consk", "cpt", "cspc", 150 | \"cul", "define", "diffexpr", "dy", "ef", "eol", "esckeys", "fcs", "fdn", 151 | \"ff", "fillchars", "foldclose", "foldmarker", "formatlistpat", "gcr", "ghr", 152 | \"guicursor", "guitablabel", "hi", "hkmapp", "icon", "imcmdline", "inc", 153 | \"indk", "isfname", "joinspaces", "kmp", "lcs", "listchars", "lw", "mat", 154 | \"maxmempattern", "mis", "mmt", "mouse", "mouseshape", "mzquantum", "odev", 155 | \"osfiletype", "patchmode", "ph", "preserveindent", "printheader", "pvh", 156 | \"remap", "rl", "ruf", "sbr", "scrolljump", "secure", "sh", "shellredir", 157 | \"shiftwidth", "showfulltag", "sidescroll", "smartcase", "so", "spellcapcheck", 158 | \"splitbelow", "ss", "startofline", "sua", "swb", "synmaxcol", "tag", "tal", 159 | \"tenc", "textmode", "timeout", "tl", "tpm", "ttimeoutlen", "ttymouse", "ul", 160 | \"vbs", "vi", "vop", "wcm", "whichwrap", "wildmenu", "winfixheight", "wiv", 161 | \"wop", "writebackup", "al", "antialias", "autochdir", "background", 162 | \"balloondelay", "bexpr", "bk", "bs", "casemap", "cfu", "cinkeys", 163 | \"cmdwinheight", "commentstring", "conskey", "cscopepathcomp", "csprg", 164 | \"cursorcolumn", "delcombine", "diffopt", "ea", "efm", "ep", "et", "fdc", 165 | \"fdo", "ffs", "fk", "foldcolumn", "foldmethod", "formatoptions", "gd", "go", 166 | \"guifont", "guitabtooltip", "hid", "hkp", "iconstring", "imd", "include", 167 | \"inex", "isi", "js", "kp", "linebreak", "lm", "lz", "matchpairs", "maxmemtot", 168 | \"mkspellmem", "mod", "mousef", "mouset", "nf", "oft", "pa", "path", 169 | \"pheader", "previewheight", "printmbcharset", "pvw", "report", "rlc", "ruler", 170 | \"sc", "scrolloff", "sel", "shcf", "shellslash", "shm", "showmatch", 171 | \"sidescrolloff", "smartindent", "softtabstop", "spellfile", "splitright", 172 | \"ssl", "statusline", "suffixes", "swf", "syntax", "tagbsearch", "tb", "term", 173 | \"textwidth", "timeoutlen", "tm", "tr", "ttm", "ttyscroll", "undolevels", 174 | \"vdir", "viewdir", "wa", "wd", "wi", "wildmode", "winfixwidth", "wiw", 175 | \"wrap", "writedelay", "ar", "autoindent", "backspace", "ballooneval", 176 | \"bg", "bkc", "bsdir", "cb", "ch", "cino", "cmp", "compatible", "copyindent", 177 | \"cscopeprg", "csqf", "cursorline", "dex", "digraph", "ead", "ei", 178 | \"equalalways", "eventignore", "fde", "fdt", "fileencoding", "fkmap", 179 | \"foldenable", "foldminlines", "formatprg", "gdefault", "gp", "guifontset", 180 | \"helpfile", "hidden", "hl", "ignorecase", "imdisable", "includeexpr", "inf", 181 | \"isident", "key", "langmap", "lines", "lmap", "ma", "matchtime", "mco", "ml", 182 | \"modeline", "mousefocus", "mousetime", "nrformats", "ofu", "para", "pdev", 183 | \"pi", "previewwindow", "printmbfont", "qe", "restorescreen", "ro", 184 | \"rulerformat", "scb", "scrollopt", "selection", "shell", "shelltemp", 185 | \"shortmess", "showmode", "siso", "smarttab", "sol", "spelllang", "spr", 186 | \"ssop", "stl", "suffixesadd", "switchbuf", "ta", "taglength", "tbi", 187 | \"termbidi", "tf", "title", "to", "ts", "tty", "ttytype", "updatecount", "ve", 188 | \"viewoptions", "wak", "weirdinvert", "wig", "wildoptions", "winheight", "wm", 189 | \"wrapmargin", "ws", "arab", "autoread", "backup", "balloonexpr", 190 | \"bh", "bl", "bsk", "ccv", "charconvert", "cinoptions", "cms", "complete", 191 | \"cot", "cscopequickfix", "cst", "cwh", "dg", "dip", "eadirection", "ek", 192 | \"equalprg", "ex", "fdi", "fen", "fileencodings", "flp", "foldexpr", 193 | \"foldnestmax", "fp", "gfm", "grepformat", "guifontwide", "helpheight", 194 | \"highlight", "hlg", "im", "imi", "incsearch", "infercase", "isk", "keymap", 195 | \"langmenu", "linespace", "loadplugins", "macatsui", "maxcombine", "mef", 196 | \"mls", "modelines", "mousehide", "mp", "nu", "omnifunc", "paragraphs", 197 | \"penc", "pm", "printdevice", "printoptions", "quoteescape", "revins", "rs", 198 | \"runtimepath", "scr", "scs", "selectmode", "shellcmdflag", "shelltype", 199 | \"shortname", "showtabline", "sj", "smc", "sp", "spellsuggest", "sps", "st", 200 | \"stmp", "sw", "sws", "tabline", "tagrelative", "tbidi", "termencoding", 201 | \"tgst", "titlelen", "toolbar", "tsl", "ttybuiltin", "tw", "updatetime", 202 | \"verbose", "viminfo", "warn", "wfh", "wildchar", "wim", "winminheight", 203 | \"wmh", "wrapscan", "ww", "altkeymap", "arabic", "autowrite", "backupcopy", 204 | \"bdir", "bin", "bomb", "bt", "cd", "ci", "cinw", "co", "completefunc", "cp", 205 | \"cscopetag", "csto", "debug", "dict", "dir", "eb", "enc", "errorbells", 206 | \"expandtab", "fdl", "fenc", "fileformat", "fml", "foldignore", "foldopen", 207 | \"fs", "gfn", "grepprg", "guiheadroom", "helplang", "history", "hls", 208 | \"imactivatekey", "iminsert", "inde", "insertmode", "iskeyword", "keymodel", 209 | \"laststatus", "lisp", "lpl", "magic", "maxfuncdepth", "menuitems", "mm", 210 | \"modifiable", "mousem", "mps", "number", "opendevice", "paste", "pex", 211 | \"pmbcs", "printencoding", "prompt", "rdt", "ri", "noacd", "noallowrevins", 212 | \"noantialias", "noarabic", "noarshape", "noautoread", "noaw", 213 | \"noballooneval", "nobinary", "nobk", "nobuflisted", "nocin", "noconfirm", 214 | \"nocopyindent", "nocscopeverbose", "nocuc", "nocursorline", "nodg", 215 | \"nodisable", "noeb", "noedcompatible", "noendofline", "noequalalways", 216 | \"noesckeys", "noex", "noexrc", "nofk", "nofoldenable", "nogdefault", "nohid", 217 | \"nohk", "nohkmapp", "nohls", "noic", "noignorecase", "noimc", "noimd", 218 | \"noinf", "noinsertmode", "nojoinspaces", "nolazyredraw", "nolinebreak", 219 | \"nolist", "nolpl", "noma", "nomagic", "noml", "nomodeline", "nomodified", 220 | \"nomousef", "nomousehide", "nonumber", "noopendevice", "nopi", 221 | \"nopreviewwindow", "nopvw", "noremap", "norevins", "norightleft", "norl", 222 | \"noro", "noru", "nosb", "noscb", "noscs", "nosft", "noshelltemp", 223 | \"noshortname", "noshowfulltag", "noshowmode", "nosm", "nosmartindent", 224 | \"nosmd", "nosol", "nosplitbelow", "nospr", "nossl", "nostartofline", 225 | \"noswapfile", "nota", "notagrelative", "notbi", "notbs", "noterse", 226 | \"notextmode", "notgst", "notimeout", "noto", "notr", "nottybuiltin", "notx", 227 | \"novisualbell", "nowarn", "noweirdinvert", "nowfw", "nowinfixheight", "nowiv", 228 | \"nowrap", "nowrite", "nowritebackup", "noai", "noaltkeymap", "noar", 229 | \"noarabicshape", "noautochdir", "noautowrite", "noawa", "nobeval", "nobiosk", 230 | \"nobl", "nocf", "nocindent", "noconsk", "nocp", "nocst", "nocul", "nodeco", 231 | \"nodiff", "noea", "noed", "noek", "noeol", "noerrorbells", "noet", 232 | \"noexpandtab", "nofen", "nofkmap", "nogd", "noguipty", "nohidden", "nohkmap", 233 | \"nohkp", "nohlsearch", "noicon", "noim", "noimcmdline", "noincsearch", 234 | \"noinfercase", "nois", "nojs", "nolbr", "nolisp", "noloadplugins", "nolz", 235 | \"nomacatsui", "nomh", "nomod", "nomodifiable", "nomore", "nomousefocus", 236 | \"nonu", "noodev", "nopaste", "nopreserveindent", "noprompt", "noreadonly", 237 | \"norestorescreen", "nori", "norightleftcmd", "norlc", "nors", "noruler", 238 | \"nosc", "noscrollbind", "nosecure", "noshellslash", "noshiftround", 239 | \"noshowcmd", "noshowmatch", "nosi", "nosmartcase", "nosmarttab", "nosn", 240 | \"nospell", "nosplitright", "nosr", "nosta", "nostmp", "noswf", 241 | \"notagbsearch", "notagstack", "notbidi", "notermbidi", "notextauto", "notf", 242 | \"notildeop", "notitle", "notop", "nottimeout", "nottyfast", "novb", "nowa", 243 | \"nowb", "nowfh", "nowildmenu", "nowinfixwidth", "nowmnu", "nowrapscan", 244 | \"nowriteany", "nows" ,"noakm", "noanti", "noarab", "noari", "noautoindent", 245 | \"noautowriteall", "nobackup", "nobin", "nobioskey", "nobomb", "noci", 246 | \"nocompatible", "noconskey", "nocscopetag", "nocsverb", "nocursorcolumn", 247 | \"nodelcombine", "nodigraph", "invacd", "invallowrevins", "invantialias", 248 | \"invarabic", "invarshape", "invautoread", "invaw", "invballooneval", 249 | \"invbinary", "invbk", "invbuflisted", "invcin", "invconfirm", "invcopyindent", 250 | \"invcscopeverbose", "invcuc", "invcursorline", "invdg", "invdisable", 251 | \"inveb", "invedcompatible", "invendofline", "invequalalways", "invesckeys", 252 | \"invex", "invexrc", "invfk", "invfoldenable", "invgdefault", "invhid", 253 | \"invhk", "invhkmapp", "invhls", "invic", "invignorecase", "invimc", "invimd", 254 | \"invinf", "invinsertmode", "invjoinspaces", "invlazyredraw", "invlinebreak", 255 | \"invlist", "invlpl", "invma", "invmagic", "invml", "invmodeline", 256 | \"invmodified", "invmousef", "invmousehide", "invnumber", "invopendevice", 257 | \"invpi", "invpreviewwindow", "invpvw", "invremap", "invrevins", 258 | \"invrightleft", "invrl", "invro", "invru", "invsb", "invscb", "invscs", 259 | \"invsft", "invshelltemp", "invshortname", "invshowfulltag", "invshowmode", 260 | \"invsm", "invsmartindent", "invsmd", "invsol", "invsplitbelow", "invspr", 261 | \"invssl", "invstartofline", "invswapfile", "invta", "invtagrelative", 262 | \"invtbi", "invtbs", "invterse", "invtextmode", "invtgst", "invtimeout", 263 | \"invto", "invtr", "invttybuiltin", "invtx", "invvisualbell", "invwarn", 264 | \"invweirdinvert", "invwfw", "invwinfixheight", "invwiv", "invwrap", 265 | \"invwrite", "invwritebackup", "invai", "invaltkeymap", "invar", 266 | \"invarabicshape", "invautochdir", "invautowrite", "invawa", "invbeval", 267 | \"invbiosk", "invbl", "invcf", "invcindent", "invconsk", "invcp", "invcst", 268 | \"invcul", "invdeco", "invdiff", "invea", "inved", "invek", "inveol", 269 | \"inverrorbells", "invet", "invexpandtab", "invfen", "invfkmap", "invgd", 270 | \"invguipty", "invhidden", "invhkmap", "invhkp", "invhlsearch", "invicon", 271 | \"invim", "invimcmdline", "invincsearch", "invinfercase", "invis", "invjs", 272 | \"invlbr", "invlisp", "invloadplugins", "invlz", "invmacatsui", "invmh", 273 | \"invmod", "invmodifiable", "invmore", "invmousefocus", "invnu", "invodev", 274 | \"invpaste", "invpreserveindent", "invprompt", "invreadonly", 275 | \"invrestorescreen", "invri", "invrightleftcmd", "invrlc", "invrs", "invruler", 276 | \"invsc", "invscrollbind", "invsecure", "invshellslash", "invshiftround", 277 | \"invshowcmd", "invshowmatch", "invsi", "invsmartcase", "invsmarttab", "invsn", 278 | \"invspell", "invsplitright", "invsr", "invsta", "invstmp", "invswf", 279 | \"invtagbsearch", "invtagstack", "invtbidi", "invtermbidi", "invtextauto", 280 | \"invtf", "invtildeop", "invtitle", "invtop", "invttimeout", "invttyfast", 281 | \"invvb", "invwa", "invwb", "invwfh", "invwildmenu", "invwinfixwidth", 282 | \"invwmnu", "invwrapscan", "invwriteany", "invws", "invakm", "invanti", 283 | \"invarab", "invari", "invautoindent", "invautowriteall", "invbackup", 284 | \"invbin", "invbioskey", "invbomb", "invci", "invcompatible", "invconskey", 285 | \"invcscopetag", "invcsverb", "invcursorcolumn", "invdelcombine", "invdigraph", 286 | \"t_AB", "t_al", "t_bc", "t_ce", "t_cl", "t_Co", "t_cs", "t_Cs", "t_CS", 287 | \"t_CV", "t_da", "t_db", "t_dl", "t_DL", "t_EI", "t_F1", "t_F2", "t_F3", 288 | \"t_F4", "t_F5", "t_F6", "t_F7", "t_F8", "t_F9", "t_fs", "t_IE", "t_IS", 289 | \"t_k1", "t_K1", "t_k2", "t_k3", "t_K3", "t_k4", "t_K4", "t_k5", "t_K5", 290 | \"t_k6", "t_K6", "t_k7", "t_K7", "t_k8", "t_K8", "t_k9", "t_K9", "t_KA", 291 | \"t_kb", "t_kB", "t_KB", "t_KC", "t_kd", "t_kD", "t_KD", "t_ke", "t_KE", 292 | \"t_KF", "t_KG", "t_kh", "t_KH", "t_kI", "t_KI", "t_KJ", "t_KK", "t_kl", 293 | \"t_KL", "t_kN", "t_kP", "t_kr", "t_ks", "t_ku", "t_le", "t_mb", "t_md", 294 | \"t_me", "t_mr", "t_ms", "t_nd", "t_op", "t_RI", "t_RV", "t_Sb", "t_se", 295 | \"t_Sf", "t_SI", "t_so", "t_sr", "t_te", "t_ti", "t_ts", "t_ue", "t_us", 296 | \"t_ut", "t_vb", "t_ve", "t_vi", "t_vs", "t_WP", "t_WS", "t_xs", "t_ZH", "t_ZR", 297 | \"t_AF", "t_AL", "t_cd", "t_Ce", "t_cm"] 298 | "}}} 299 | 300 | let s:mapargments = [ "", "", "", "