/
usr
/
share
/
vim
/
vim82
/
ftplugin
/
/usr/share/vim/vim82/ftplugin
mkdir
upload
Name
Size
Mode
Actions
8th.vim
733
0644
edit
dl
rm
a2ps.vim
470
0644
edit
dl
rm
aap.vim
716
0644
edit
dl
rm
abap.vim
800
0644
edit
dl
rm
abaqus.vim
3391
0644
edit
dl
rm
ada.vim
6502
0644
edit
dl
rm
alsaconf.vim
438
0644
edit
dl
rm
ant.vim
1341
0644
edit
dl
rm
arch.vim
431
0644
edit
dl
rm
art.vim
410
0644
edit
dl
rm
asm.vim
271
0644
edit
dl
rm
aspvbs.vim
1916
0644
edit
dl
rm
automake.vim
337
0644
edit
dl
rm
awk.vim
1503
0644
edit
dl
rm
bash.vim
474
0644
edit
dl
rm
basic.vim
625
0644
edit
dl
rm
bdf.vim
449
0644
edit
dl
rm
bst.vim
333
0644
edit
dl
rm
btm.vim
316
0644
edit
dl
rm
bzl.vim
3106
0644
edit
dl
rm
c.vim
2113
0644
edit
dl
rm
calendar.vim
462
0644
edit
dl
rm
cdrdaoconf.vim
383
0644
edit
dl
rm
cfg.vim
388
0644
edit
dl
rm
ch.vim
472
0644
edit
dl
rm
changelog.vim
8891
0644
edit
dl
rm
chicken.vim
1663
0644
edit
dl
rm
clojure.vim
3396
0644
edit
dl
rm
cmake.vim
867
0644
edit
dl
rm
cobol.vim
9570
0644
edit
dl
rm
conf.vim
434
0644
edit
dl
rm
config.vim
1274
0644
edit
dl
rm
context.vim
4364
0644
edit
dl
rm
cpp.vim
468
0644
edit
dl
rm
crm.vim
414
0644
edit
dl
rm
cs.vim
802
0644
edit
dl
rm
csc.vim
734
0644
edit
dl
rm
csh.vim
1633
0644
edit
dl
rm
css.vim
586
0644
edit
dl
rm
cucumber.vim
5115
0644
edit
dl
rm
cvsrc.vim
399
0644
edit
dl
rm
debchangelog.vim
11445
0644
edit
dl
rm
debcontrol.vim
1845
0644
edit
dl
rm
denyhosts.vim
383
0644
edit
dl
rm
dictconf.vim
434
0644
edit
dl
rm
dictdconf.vim
435
0644
edit
dl
rm
diff.vim
426
0644
edit
dl
rm
dircolors.vim
431
0644
edit
dl
rm
docbk.vim
530
0644
edit
dl
rm
dockerfile.vim
356
0644
edit
dl
rm
dosbatch.vim
1011
0644
edit
dl
rm
dosini.vim
458
0644
edit
dl
rm
dtd.vim
1123
0644
edit
dl
rm
dtrace.vim
1151
0644
edit
dl
rm
dune.vim
502
0644
edit
dl
rm
eiffel.vim
4088
0644
edit
dl
rm
elinks.vim
436
0644
edit
dl
rm
elm.vim
329
0644
edit
dl
rm
erlang.vim
2078
0644
edit
dl
rm
eruby.vim
4711
0644
edit
dl
rm
eterm.vim
470
0644
edit
dl
rm
falcon.vim
1353
0644
edit
dl
rm
fetchmail.vim
428
0644
edit
dl
rm
flexwiki.vim
1876
0644
edit
dl
rm
fortran.vim
4856
0644
edit
dl
rm
framescript.vim
780
0644
edit
dl
rm
freebasic.vim
234
0644
edit
dl
rm
fstab.vim
426
0644
edit
dl
rm
fvwm.vim
390
0644
edit
dl
rm
gdb.vim
293
0644
edit
dl
rm
git.vim
1371
0644
edit
dl
rm
gitcommit.vim
2314
0644
edit
dl
rm
gitconfig.vim
376
0644
edit
dl
rm
gitrebase.vim
1946
0644
edit
dl
rm
gitsendemail.vim
157
0644
edit
dl
rm
go.vim
365
0644
edit
dl
rm
gpg.vim
433
0644
edit
dl
rm
gprof.vim
939
0644
edit
dl
rm
groovy.vim
343
0644
edit
dl
rm
group.vim
425
0644
edit
dl
rm
grub.vim
434
0644
edit
dl
rm
haml.vim
1983
0644
edit
dl
rm
hamster.vim
1962
0644
edit
dl
rm
haskell.vim
551
0644
edit
dl
rm
help.vim
471
0644
edit
dl
rm
hgcommit.vim
363
0644
edit
dl
rm
hog.vim
1394
0644
edit
dl
rm
hostconf.vim
383
0644
edit
dl
rm
hostsaccess.vim
436
0644
edit
dl
rm
html.vim
1625
0644
edit
dl
rm
htmldjango.vim
331
0644
edit
dl
rm
indent.vim
454
0644
edit
dl
rm
initex.vim
1005
0644
edit
dl
rm
ishd.vim
1264
0644
edit
dl
rm
j.vim
3393
0644
edit
dl
rm
java.vim
1686
0644
edit
dl
rm
javascript.vim
2605
0644
edit
dl
rm
javascriptreact.vim
244
0644
edit
dl
rm
jproperties.vim
292
0644
edit
dl
rm
json.vim
360
0644
edit
dl
rm
jsp.vim
2011
0644
edit
dl
rm
kconfig.vim
703
0644
edit
dl
rm
kwt.vim
851
0644
edit
dl
rm
ld.vim
470
0644
edit
dl
rm
less.vim
502
0644
edit
dl
rm
lftp.vim
434
0644
edit
dl
rm
libao.vim
440
0644
edit
dl
rm
limits.vim
436
0644
edit
dl
rm
liquid.vim
1897
0644
edit
dl
rm
lisp.vim
759
0644
edit
dl
rm
logcheck.vim
453
0644
edit
dl
rm
loginaccess.vim
442
0644
edit
dl
rm
logindefs.vim
440
0644
edit
dl
rm
logtalk.dict
3096
0644
edit
dl
rm
logtalk.vim
416
0644
edit
dl
rm
lprolog.vim
1279
0644
edit
dl
rm
lua.vim
973
0644
edit
dl
rm
m4.vim
426
0644
edit
dl
rm
mail.vim
1107
0644
edit
dl
rm
mailaliases.vim
383
0644
edit
dl
rm
mailcap.vim
434
0644
edit
dl
rm
make.vim
1059
0644
edit
dl
rm
man.vim
6578
0644
edit
dl
rm
manconf.vim
444
0644
edit
dl
rm
markdown.vim
1967
0644
edit
dl
rm
masm.vim
390
0644
edit
dl
rm
matlab.vim
798
0644
edit
dl
rm
meson.vim
404
0644
edit
dl
rm
mf.vim
3249
0644
edit
dl
rm
mma.vim
366
0644
edit
dl
rm
modconf.vim
477
0644
edit
dl
rm
mp.vim
3712
0644
edit
dl
rm
mplayerconf.vim
472
0644
edit
dl
rm
mrxvtrc.vim
798
0644
edit
dl
rm
msmessages.vim
1141
0644
edit
dl
rm
muttrc.vim
467
0644
edit
dl
rm
nanorc.vim
447
0644
edit
dl
rm
neomuttrc.vim
532
0644
edit
dl
rm
netrc.vim
428
0644
edit
dl
rm
nroff.vim
424
0644
edit
dl
rm
nsis.vim
1323
0644
edit
dl
rm
objc.vim
296
0644
edit
dl
rm
ocaml.vim
23755
0644
edit
dl
rm
occam.vim
1297
0644
edit
dl
rm
pamconf.vim
433
0644
edit
dl
rm
pascal.vim
667
0644
edit
dl
rm
passwd.vim
424
0644
edit
dl
rm
pbtxt.vim
438
0644
edit
dl
rm
pdf.vim
2613
0644
edit
dl
rm
perl.vim
2853
0644
edit
dl
rm
perl6.vim
2532
0644
edit
dl
rm
php.vim
2813
0644
edit
dl
rm
pinfo.vim
435
0644
edit
dl
rm
plaintex.vim
1150
0644
edit
dl
rm
poke.vim
744
0644
edit
dl
rm
postscr.vim
1006
0644
edit
dl
rm
procmail.vim
479
0644
edit
dl
rm
prolog.vim
440
0644
edit
dl
rm
protocols.vim
457
0644
edit
dl
rm
pyrex.vim
766
0644
edit
dl
rm
python.vim
7962
0644
edit
dl
rm
qf.vim
508
0644
edit
dl
rm
quake.vim
439
0644
edit
dl
rm
r.vim
858
0644
edit
dl
rm
racc.vim
449
0644
edit
dl
rm
readline.vim
438
0644
edit
dl
rm
README.txt
869
0644
edit
dl
rm
registry.vim
740
0644
edit
dl
rm
reva.vim
709
0644
edit
dl
rm
rhelp.vim
738
0644
edit
dl
rm
rmd.vim
1810
0644
edit
dl
rm
rnc.vim
431
0644
edit
dl
rm
rnoweb.vim
1037
0644
edit
dl
rm
rpl.vim
621
0644
edit
dl
rm
rrst.vim
1574
0644
edit
dl
rm
rst.vim
1400
0644
edit
dl
rm
ruby.vim
17271
0644
edit
dl
rm
rust.vim
6574
0644
edit
dl
rm
sass.vim
977
0644
edit
dl
rm
sbt.vim
347
0644
edit
dl
rm
scala.vim
1151
0644
edit
dl
rm
scheme.vim
1396
0644
edit
dl
rm
screen.vim
436
0644
edit
dl
rm
scss.vim
239
0644
edit
dl
rm
sensors.vim
455
0644
edit
dl
rm
services.vim
452
0644
edit
dl
rm
setserial.vim
439
0644
edit
dl
rm
sexplib.vim
348
0644
edit
dl
rm
sgml.vim
1210
0644
edit
dl
rm
sh.vim
1202
0644
edit
dl
rm
sieve.vim
469
0644
edit
dl
rm
slpconf.vim
477
0644
edit
dl
rm
slpreg.vim
476
0644
edit
dl
rm
slpspi.vim
467
0644
edit
dl
rm
spec.vim
5774
0644
edit
dl
rm
sql.vim
21612
0644
edit
dl
rm
sshconfig.vim
441
0644
edit
dl
rm
sudoers.vim
438
0644
edit
dl
rm
svg.vim
1200
0644
edit
dl
rm
swift.vim
733
0644
edit
dl
rm
swiftgyb.vim
421
0644
edit
dl
rm
sysctl.vim
453
0644
edit
dl
rm
systemd.vim
1258
0644
edit
dl
rm
systemverilog.vim
239
0644
edit
dl
rm
tcl.vim
1002
0644
edit
dl
rm
tcsh.vim
1207
0644
edit
dl
rm
terminfo.vim
430
0644
edit
dl
rm
tex.vim
1641
0644
edit
dl
rm
text.vim
498
0644
edit
dl
rm
tidy.vim
861
0644
edit
dl
rm
tmux.vim
292
0644
edit
dl
rm
treetop.vim
416
0644
edit
dl
rm
tt2html.vim
434
0644
edit
dl
rm
typescript.vim
1205
0644
edit
dl
rm
typescriptreact.vim
787
0644
edit
dl
rm
udevconf.vim
434
0644
edit
dl
rm
udevperm.vim
432
0644
edit
dl
rm
udevrules.vim
426
0644
edit
dl
rm
updatedb.vim
443
0644
edit
dl
rm
vb.vim
1907
0644
edit
dl
rm
verilog.vim
1977
0644
edit
dl
rm
vhdl.vim
3497
0644
edit
dl
rm
vim.vim
4282
0644
edit
dl
rm
vroom.vim
924
0644
edit
dl
rm
wast.vim
470
0644
edit
dl
rm
xdefaults.vim
481
0644
edit
dl
rm
xf86conf.vim
434
0644
edit
dl
rm
xhtml.vim
2036
0644
edit
dl
rm
xinetd.vim
476
0644
edit
dl
rm
xml.vim
2249
0644
edit
dl
rm
xmodmap.vim
434
0644
edit
dl
rm
xs.vim
465
0644
edit
dl
rm
xsd.vim
1171
0644
edit
dl
rm
xslt.vim
539
0644
edit
dl
rm
yaml.vim
628
0644
edit
dl
rm
zimbu.vim
5389
0644
edit
dl
rm
zsh.vim
1427
0644
edit
dl
rm
Edit:
/usr/share/vim/vim82/ftplugin/sql.vim
(21612B)
" SQL filetype plugin file " Language: SQL (Common for Oracle, Microsoft SQL Server, Sybase) " Version: 12.0 " Maintainer: David Fishburn <dfishburn dot vim at gmail dot com> " Last Change: 2017 Mar 07 " Download: http://vim.sourceforge.net/script.php?script_id=454 " For more details please use: " :h sql.txt " " This file should only contain values that are common to all SQL languages " Oracle, Microsoft SQL Server, Sybase ASA/ASE, MySQL, and so on " If additional features are required create: " vimfiles/after/ftplugin/sql.vim (Windows) " .vim/after/ftplugin/sql.vim (Unix) " to override and add any of your own settings. " This file also creates a command, SQLSetType, which allows you to change " SQL dialects on the fly. For example, if I open an Oracle SQL file, it " is color highlighted appropriately. If I open an Informix SQL file, it " will still be highlighted according to Oracles settings. By running: " :SQLSetType sqlinformix " " All files called sqlinformix.vim will be loaded from the indent and syntax " directories. This allows you to easily flip SQL dialects on a per file " basis. NOTE: you can also use completion: " :SQLSetType <tab> " " To change the default dialect, add the following to your vimrc: " let g:sql_type_default = 'sqlanywhere' " " This file also creates a command, SQLGetType, which allows you to " determine what the current dialect is in use. " :SQLGetType " " History " " Version 12.0 (April 2013) " " NF: Added support for "BEGIN TRY ... END TRY ... BEGIN CATCH ... END CATCH " BF: This plugin is designed to be used with other plugins to enable the " SQL completion with Perl, Python, Java, ... The loading mechanism " was not checking if the SQL objects were created, which can lead to " the plugin not loading the SQL support. " " Version 11.0 (May 2013) " " NF: Updated to use SyntaxComplete's new regex support for syntax groups. " " Version 10.0 (Dec 2012) " " NF: Changed all maps to use noremap instead of must map " NF: Changed all visual maps to use xnoremap instead of vnoremap as they " should only be used in visual mode and not select mode. " BF: Most of the maps were using doubled up backslashes before they were " changed to using the search() function, which meant they no longer " worked. " " Version 9.0 " " NF: Completes 'b:undo_ftplugin' " BF: Correctly set cpoptions when creating script " " Version 8.0 " " NF: Improved the matchit plugin regex (Talek) " " Version 7.0 " " NF: Calls the sqlcomplete#ResetCacheSyntax() function when calling " SQLSetType. " " Version 6.0 " " NF: Adds the command SQLGetType " " Version 5.0 " " NF: Adds the ability to choose the keys to control SQL completion, just add " the following to your .vimrc: " let g:ftplugin_sql_omni_key = '<C-C>' " let g:ftplugin_sql_omni_key_right = '<Right>' " let g:ftplugin_sql_omni_key_left = '<Left>' " " BF: format-options - Auto-wrap comments using textwidth was turned off " by mistake. " Only do this when not done yet for this buffer " This ftplugin can be used with other ftplugins. So ensure loading " happens if all elements of this plugin have not yet loaded. if exists("b:did_ftplugin") && exists("b:current_ftplugin") && b:current_ftplugin == 'sql' finish endif let s:save_cpo = &cpo set cpo&vim " Disable autowrapping for code, but enable for comments " t Auto-wrap text using textwidth " c Auto-wrap comments using textwidth, inserting the current comment " leader automatically. setlocal formatoptions-=t setlocal formatoptions+=c " Functions/Commands to allow the user to change SQL syntax dialects " through the use of :SQLSetType <tab> for completion. " This works with both Vim 6 and 7. if !exists("*SQL_SetType") " NOTE: You cannot use function! since this file can be " sourced from within this function. That will result in " an error reported by Vim. function SQL_GetList(ArgLead, CmdLine, CursorPos) if !exists('s:sql_list') " Grab a list of files that contain "sql" in their names let list_indent = globpath(&runtimepath, 'indent/*sql*') let list_syntax = globpath(&runtimepath, 'syntax/*sql*') let list_ftplugin = globpath(&runtimepath, 'ftplugin/*sql*') let sqls = "\n".list_indent."\n".list_syntax."\n".list_ftplugin."\n" " Strip out everything (path info) but the filename " Regex " From between two newline characters " Non-greedily grab all characters " Followed by a valid filename \w\+\.\w\+ (sql.vim) " Followed by a newline, but do not include the newline " " Replace it with just the filename (get rid of PATH) " " Recursively, since there are many filenames that contain " the word SQL in the indent, syntax and ftplugin directory let sqls = substitute( sqls, \ '[\n]\%(.\{-}\)\(\w\+\.\w\+\)\n\@=', \ '\1\n', \ 'g' \ ) " Remove duplicates, since sqlanywhere.vim can exist in the " sytax, indent and ftplugin directory, yet we only want " to display the option once let index = match(sqls, '.\{-}\ze\n') while index > -1 " Get the first filename let file = matchstr(sqls, '.\{-}\ze\n', index) " Recursively replace any *other* occurrence of that " filename with nothing (ie remove it) let sqls = substitute(sqls, '\%>'.(index+strlen(file)).'c\<'.file.'\>\n', '', 'g') " Move on to the next filename let index = match(sqls, '.\{-}\ze\n', (index+strlen(file)+1)) endwhile " Sort the list if using version 7 if v:version >= 700 let mylist = split(sqls, "\n") let mylist = sort(mylist) let sqls = join(mylist, "\n") endif let s:sql_list = sqls endif return s:sql_list endfunction function SQL_SetType(name) " User has decided to override default SQL scripts and " specify a vendor specific version " (ie Oracle, Informix, SQL Anywhere, ...) " So check for an remove any settings that prevent the " scripts from being executed, and then source the " appropriate Vim scripts. if exists("b:did_ftplugin") unlet b:did_ftplugin endif if exists("b:current_syntax") " echomsg 'SQLSetType - clearing syntax' syntax clear if exists("b:current_syntax") unlet b:current_syntax endif endif if exists("b:did_indent") " echomsg 'SQLSetType - clearing indent' unlet b:did_indent " Set these values to their defaults setlocal indentkeys& setlocal indentexpr& endif " Ensure the name is in the correct format let new_sql_type = substitute(a:name, \ '\s*\([^\.]\+\)\(\.\w\+\)\?', '\L\1', '') " Do not specify a buffer local variable if it is " the default value if new_sql_type == 'sql' let new_sql_type = 'sqloracle' endif let b:sql_type_override = new_sql_type " Remove any cached SQL since a new sytax will have different " items and groups if !exists('g:loaded_sql_completion') || g:loaded_sql_completion >= 100 call sqlcomplete#ResetCacheSyntax() endif " Vim will automatically source the correct files if we " change the filetype. You cannot do this with setfiletype " since that command will only execute if a filetype has " not already been set. In this case we want to override " the existing filetype. let &filetype = 'sql' if b:sql_compl_savefunc != "" " We are changing the filetype to SQL from some other filetype " which had OMNI completion defined. We need to activate the " SQL completion plugin in order to cache some of the syntax items " while the syntax rules for SQL are active. call sqlcomplete#PreCacheSyntax() endif endfunction command! -nargs=* -complete=custom,SQL_GetList SQLSetType :call SQL_SetType(<q-args>) endif " Functions/Commands to allow the user determine current SQL syntax dialect " This works with both Vim 6 and 7. if !exists("*SQL_GetType") function SQL_GetType() if exists('b:sql_type_override') echomsg "Current SQL dialect in use:".b:sql_type_override else echomsg "Current SQL dialect in use:".g:sql_type_default endif endfunction command! -nargs=0 SQLGetType :call SQL_GetType() endif if exists("b:sql_type_override") " echo 'sourcing buffer ftplugin/'.b:sql_type_override.'.vim' if globpath(&runtimepath, 'ftplugin/'.b:sql_type_override.'.vim') != '' exec 'runtime ftplugin/'.b:sql_type_override.'.vim' " else " echomsg 'ftplugin/'.b:sql_type_override.' not exist, using default' endif elseif exists("g:sql_type_default") " echo 'sourcing global ftplugin/'.g:sql_type_default.'.vim' if globpath(&runtimepath, 'ftplugin/'.g:sql_type_default.'.vim') != '' exec 'runtime ftplugin/'.g:sql_type_default.'.vim' " else " echomsg 'ftplugin/'.g:sql_type_default.'.vim not exist, using default' endif endif " If the above runtime command succeeded, do not load the default settings " as they should have already been loaded from a previous run. if exists("b:did_ftplugin") && exists("b:current_ftplugin") && b:current_ftplugin == 'sql' finish endif let b:undo_ftplugin = "setl comments< formatoptions< define< omnifunc<" . \ " | unlet! b:browsefilter b:match_words" " Don't load another plugin for this buffer let b:did_ftplugin = 1 let b:current_ftplugin = 'sql' " Win32 can filter files in the browse dialog if has("gui_win32") && !exists("b:browsefilter") let b:browsefilter = "SQL Files (*.sql)\t*.sql\n" . \ "All Files (*.*)\t*.*\n" endif " Some standard expressions for use with the matchit strings let s:notend = '\%(\<end\s\+\)\@<!' let s:when_no_matched_or_others = '\%(\<when\>\%(\s\+\%(\%(\<not\>\s\+\)\?<matched\>\)\|\<others\>\)\@!\)' let s:or_replace = '\%(or\s\+replace\s\+\)\?' " Define patterns for the matchit macro if !exists("b:match_words") " SQL is generally case insensitive let b:match_ignorecase = 1 " Handle the following: " if " elseif | elsif " else [if] " end if " " [while condition] loop " leave " break " continue " exit " end loop " " for " leave " break " continue " exit " end loop " " do " statements " doend " " case " when " when " default " end case " " merge " when not matched " when matched " " EXCEPTION " WHEN column_not_found THEN " WHEN OTHERS THEN " " begin try " end try " begin catch " end catch " " create[ or replace] procedure|function|event " \ '^\s*\<\%(do\|for\|while\|loop\)\>.*:'. " For ColdFusion support setlocal matchpairs+=<:> let b:match_words = &matchpairs . \ ',\%(\<begin\)\%(\s\+\%(try\|catch\)\>\)\@!:\<end\>\W*$,'. \ \ '\<begin\s\+try\>:'. \ '\<end\s\+try\>:'. \ '\<begin\s\+catch\>:'. \ '\<end\s\+catch\>,'. \ \ s:notend . '\<if\>:'. \ '\<elsif\>\|\<elseif\>\|\<else\>:'. \ '\<end\s\+if\>,'. \ \ '\(^\s*\)\@<=\(\<\%(do\|for\|while\|loop\)\>.*\):'. \ '\%(\<exit\>\|\<leave\>\|\<break\>\|\<continue\>\):'. \ '\%(\<doend\>\|\%(\<end\s\+\%(for\|while\|loop\>\)\)\),'. \ \ '\%('. s:notend . '\<case\>\):'. \ '\%('.s:when_no_matched_or_others.'\):'. \ '\%(\<when\s\+others\>\|\<end\s\+case\>\),' . \ \ '\<merge\>:' . \ '\<when\s\+not\s\+matched\>:' . \ '\<when\s\+matched\>,' . \ \ '\%(\<create\s\+' . s:or_replace . '\)\?'. \ '\%(function\|procedure\|event\):'. \ '\<returns\?\>' " \ '\<begin\>\|\<returns\?\>:'. " \ '\<end\>\(;\)\?\s*$' " \ '\<exception\>:'.s:when_no_matched_or_others. " \ ':\<when\s\+others\>,'. " " \ '\%(\<exception\>\|\%('. s:notend . '\<case\>\)\):'. " \ '\%(\<default\>\|'.s:when_no_matched_or_others.'\):'. " \ '\%(\%(\<when\s\+others\>\)\|\<end\s\+case\>\),' . endif " Define how to find the macro definition of a variable using the various " [d, [D, [_CTRL_D and so on features " Match these values ignoring case " ie DECLARE varname INTEGER let &l:define = '\c\<\(VARIABLE\|DECLARE\|IN\|OUT\|INOUT\)\>' " Mappings to move to the next BEGIN ... END block " \W - no characters or digits nnoremap <buffer> <silent> ]] :call search('\c^\s*begin\>', 'W' )<CR> nnoremap <buffer> <silent> [[ :call search('\c^\s*begin\>', 'bW' )<CR> nnoremap <buffer> <silent> ][ :call search('\c^\s*end\W*$', 'W' )<CR> nnoremap <buffer> <silent> [] :call search('\c^\s*end\W*$', 'bW' )<CR> xnoremap <buffer> <silent> ]] :<C-U>exec "normal! gv"<Bar>call search('\c^\s*begin\>', 'W' )<CR> xnoremap <buffer> <silent> [[ :<C-U>exec "normal! gv"<Bar>call search('\c^\s*begin\>', 'bW' )<CR> xnoremap <buffer> <silent> ][ :<C-U>exec "normal! gv"<Bar>call search('\c^\s*end\W*$', 'W' )<CR> xnoremap <buffer> <silent> [] :<C-U>exec "normal! gv"<Bar>call search('\c^\s*end\W*$', 'bW' )<CR> " By default only look for CREATE statements, but allow " the user to override if !exists('g:ftplugin_sql_statements') let g:ftplugin_sql_statements = 'create' endif " Predefined SQL objects what are used by the below mappings using " the ]} style maps. " This global variable allows the users to override its value " from within their vimrc. " Note, you cannot use \?, since these patterns can be used to search " backwards, you must use \{,1} if !exists('g:ftplugin_sql_objects') let g:ftplugin_sql_objects = 'function,procedure,event,' . \ '\(existing\\|global\s\+temporary\s\+\)\{,1}' . \ 'table,trigger' . \ ',schema,service,publication,database,datatype,domain' . \ ',index,subscription,synchronization,view,variable' endif " Key to trigger SQL completion if !exists('g:ftplugin_sql_omni_key') let g:ftplugin_sql_omni_key = '<C-C>' endif " Key to trigger drill into column list if !exists('g:ftplugin_sql_omni_key_right') let g:ftplugin_sql_omni_key_right = '<Right>' endif " Key to trigger drill out of column list if !exists('g:ftplugin_sql_omni_key_left') let g:ftplugin_sql_omni_key_left = '<Left>' endif " Replace all ,'s with bars, except ones with numbers after them. " This will most likely be a \{,1} string. let s:ftplugin_sql_objects = \ '\c^\s*' . \ '\(\(' . \ substitute(g:ftplugin_sql_statements, ',\d\@!', '\\\\|', 'g') . \ '\)\s\+\(or\s\+replace\s\+\)\{,1}\)\{,1}' . \ '\<\(' . \ substitute(g:ftplugin_sql_objects, ',\d\@!', '\\\\|', 'g') . \ '\)\>' " Mappings to move to the next CREATE ... block exec "nnoremap <buffer> <silent> ]} :call search('".s:ftplugin_sql_objects."', 'W')<CR>" exec "nnoremap <buffer> <silent> [{ :call search('".s:ftplugin_sql_objects."', 'bW')<CR>" " Could not figure out how to use a :call search() string in visual mode " without it ending visual mode " Unfortunately, this will add a entry to the search history exec 'xnoremap <buffer> <silent> ]} /'.s:ftplugin_sql_objects.'<CR>' exec 'xnoremap <buffer> <silent> [{ ?'.s:ftplugin_sql_objects.'<CR>' " Mappings to move to the next COMMENT " " Had to double the \ for the \| separator since this has a special " meaning on maps let b:comment_leader = '\(--\\|\/\/\\|\*\\|\/\*\\|\*\/\)' " Find the start of the next comment let b:comment_start = '^\(\s*'.b:comment_leader.'.*\n\)\@<!'. \ '\(\s*'.b:comment_leader.'\)' " Find the end of the previous comment let b:comment_end = '\(^\s*'.b:comment_leader.'.*\n\)'. \ '\(^\s*'.b:comment_leader.'\)\@!' " Skip over the comment let b:comment_jump_over = "call search('". \ '^\(\s*'.b:comment_leader.'.*\n\)\@<!'. \ "', 'W')" let b:comment_skip_back = "call search('". \ '^\(\s*'.b:comment_leader.'.*\n\)\@<!'. \ "', 'bW')" " Move to the start and end of comments exec 'nnoremap <silent><buffer> ]" :call search('."'".b:comment_start."'".', "W" )<CR>' exec 'nnoremap <silent><buffer> [" :call search('."'".b:comment_end."'".', "W" )<CR>' exec 'xnoremap <silent><buffer> ]" :<C-U>exec "normal! gv"<Bar>call search('."'".b:comment_start."'".', "W" )<CR>' exec 'xnoremap <silent><buffer> [" :<C-U>exec "normal! gv"<Bar>call search('."'".b:comment_end."'".', "W" )<CR>' " Comments can be of the form: " /* " * " */ " or " -- " or " // setlocal comments=s1:/*,mb:*,ex:*/,:--,:// " Set completion with CTRL-X CTRL-O to autoloaded function. if exists('&omnifunc') " Since the SQL completion plugin can be used in conjunction " with other completion filetypes it must record the previous " OMNI function prior to setting up the SQL OMNI function let b:sql_compl_savefunc = &omnifunc " Source it to determine its version runtime autoload/sqlcomplete.vim " This is used by the sqlcomplete.vim plugin " Source it for its global functions runtime autoload/syntaxcomplete.vim setlocal omnifunc=sqlcomplete#Complete " Prevent the intellisense plugin from loading let b:sql_vis = 1 if !exists('g:omni_sql_no_default_maps') let regex_extra = '' if exists('g:loaded_syntax_completion') && exists('g:loaded_sql_completion') if g:loaded_syntax_completion > 120 && g:loaded_sql_completion > 140 let regex_extra = '\\w*' endif endif " Static maps which use populate the completion list " using Vim's syntax highlighting rules exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'a <C-\><C-O>:call sqlcomplete#Map("syntax")<CR><C-X><C-O>' exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'k <C-\><C-O>:call sqlcomplete#Map("sqlKeyword'.regex_extra.'")<CR><C-X><C-O>' exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'f <C-\><C-O>:call sqlcomplete#Map("sqlFunction'.regex_extra.'")<CR><C-X><C-O>' exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'o <C-\><C-O>:call sqlcomplete#Map("sqlOption'.regex_extra.'")<CR><C-X><C-O>' exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'T <C-\><C-O>:call sqlcomplete#Map("sqlType'.regex_extra.'")<CR><C-X><C-O>' exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'s <C-\><C-O>:call sqlcomplete#Map("sqlStatement'.regex_extra.'")<CR><C-X><C-O>' " Dynamic maps which use populate the completion list " using the dbext.vim plugin exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'t <C-\><C-O>:call sqlcomplete#Map("table")<CR><C-X><C-O>' exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'p <C-\><C-O>:call sqlcomplete#Map("procedure")<CR><C-X><C-O>' exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'v <C-\><C-O>:call sqlcomplete#Map("view")<CR><C-X><C-O>' exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'c <C-\><C-O>:call sqlcomplete#Map("column")<CR><C-X><C-O>' exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'l <C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>' " The next 3 maps are only to be used while the completion window is " active due to the <CR> at the beginning of the map exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'L <C-Y><C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>' " <C-Right> is not recognized on most Unix systems, so only create " these additional maps on the Windows platform. " If you would like to use these maps, choose a different key and make " the same map in your vimrc. " if has('win32') exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key_right.' <C-R>=sqlcomplete#DrillIntoTable()<CR>' exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key_left.' <C-R>=sqlcomplete#DrillOutOfColumns()<CR>' " endif " Remove any cached items useful for schema changes exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'R <C-\><C-O>:call sqlcomplete#Map("resetCache")<CR><C-X><C-O>' endif if b:sql_compl_savefunc != "" " We are changing the filetype to SQL from some other filetype " which had OMNI completion defined. We need to activate the " SQL completion plugin in order to cache some of the syntax items " while the syntax rules for SQL are active. call sqlcomplete#ResetCacheSyntax() call sqlcomplete#PreCacheSyntax() endif endif let &cpo = s:save_cpo unlet s:save_cpo " vim:sw=4:
Save
cmd:
run