/usr/share/vim/vim74/ftplugin
NameSizeModeActions
a2ps.vim4580644editdlrm
aap.vim7160644editdlrm
abap.vim8000644editdlrm
abaqus.vim33910644editdlrm
ada.vim64080644editdlrm
alsaconf.vim4260644editdlrm
ant.vim13410644editdlrm
arch.vim4190644editdlrm
art.vim4100644editdlrm
aspvbs.vim19160644editdlrm
automake.vim3250644editdlrm
bdf.vim4370644editdlrm
bst.vim3330644editdlrm
btm.vim3160644editdlrm
c.vim19640644editdlrm
calendar.vim4500644editdlrm
cdrdaoconf.vim3750644editdlrm
ch.vim4720644editdlrm
changelog.vim87420644editdlrm
clojure.vim28460644editdlrm
cobol.vim93920644editdlrm
conf.vim4220644editdlrm
config.vim12740644editdlrm
context.vim9550644editdlrm
cpp.vim2880644editdlrm
crm.vim4020644editdlrm
cs.vim8020644editdlrm
csc.vim7340644editdlrm
csh.vim16330644editdlrm
css.vim5160644editdlrm
cucumber.vim53250644editdlrm
cvsrc.vim3870644editdlrm
debchangelog.vim115320644editdlrm
debcontrol.vim18860644editdlrm
denyhosts.vim3750644editdlrm
dictconf.vim4220644editdlrm
dictdconf.vim4230644editdlrm
diff.vim3550644editdlrm
dircolors.vim4190644editdlrm
docbk.vim5300644editdlrm
dosbatch.vim7770644editdlrm
dosini.vim4460644editdlrm
dtd.vim11230644editdlrm
dtrace.vim11510644editdlrm
elinks.vim4240644editdlrm
erlang.vim18110644editdlrm
eruby.vim31500644editdlrm
eterm.vim4580644editdlrm
falcon.vim13440644editdlrm
fetchmail.vim4160644editdlrm
flexwiki.vim18760644editdlrm
fortran.vim42570644editdlrm
framescript.vim7680644editdlrm
fvwm.vim3900644editdlrm
git.vim12180644editdlrm
gitcommit.vim22130644editdlrm
gitconfig.vim3760644editdlrm
gitrebase.vim14340644editdlrm
gitsendemail.vim1570644editdlrm
gpg.vim4210644editdlrm
gprof.vim9390644editdlrm
group.vim4130644editdlrm
grub.vim4220644editdlrm
haml.vim18870644editdlrm
hamster.vim19230644editdlrm
haskell.vim4330644editdlrm
help.vim4300644editdlrm
hostconf.vim3750644editdlrm
hostsaccess.vim4240644editdlrm
html.vim29350644editdlrm
htmldjango.vim3310644editdlrm
indent.vim4420644editdlrm
initex.vim10050644editdlrm
ishd.vim12640644editdlrm
java.vim16860644editdlrm
javascript.vim10470644editdlrm
jsp.vim20110644editdlrm
kconfig.vim3750644editdlrm
kwt.vim8510644editdlrm
ld.vim4580644editdlrm
lftp.vim4220644editdlrm
libao.vim4280644editdlrm
limits.vim4240644editdlrm
liquid.vim18970644editdlrm
lisp.vim9110644editdlrm
logcheck.vim5000644editdlrm
loginaccess.vim4300644editdlrm
logindefs.vim4280644editdlrm
logtalk.dict17900644editdlrm
logtalk.vim4010644editdlrm
lprolog.vim12790644editdlrm
lua.vim9730644editdlrm
m4.vim4140644editdlrm
mail.vim11070644editdlrm
mailaliases.vim3750644editdlrm
mailcap.vim4220644editdlrm
make.vim9350644editdlrm
man.vim47070644editdlrm
manconf.vim4320644editdlrm
markdown.vim5720644editdlrm
matlab.vim6490644editdlrm
mf.vim4040644editdlrm
modconf.vim4650644editdlrm
mp.vim6210644editdlrm
mplayerconf.vim4600644editdlrm
mrxvtrc.vim7980644editdlrm
msmessages.vim11410644editdlrm
muttrc.vim4550644editdlrm
nanorc.vim4350644editdlrm
netrc.vim4160644editdlrm
nsis.vim5530644editdlrm
objc.vim2960644editdlrm
ocaml.vim230410644editdlrm
occam.vim12970644editdlrm
pamconf.vim4210644editdlrm
pascal.vim6670644editdlrm
passwd.vim4120644editdlrm
pdf.vim26130644editdlrm
perl.vim29460644editdlrm
perl6.vim25290644editdlrm
php.vim28130644editdlrm
pinfo.vim4230644editdlrm
plaintex.vim11500644editdlrm
postscr.vim10060644editdlrm
procmail.vim4670644editdlrm
prolog.vim4280644editdlrm
protocols.vim4450644editdlrm
pyrex.vim7660644editdlrm
python.vim13590644editdlrm
qf.vim4590644editdlrm
quake.vim4270644editdlrm
racc.vim4370644editdlrm
readline.vim4260644editdlrm
README.txt8690644editdlrm
reva.vim7090644editdlrm
rnc.vim4190644editdlrm
rpl.vim6200644editdlrm
rst.vim4440644editdlrm
ruby.vim162350644editdlrm
sass.vim5800644editdlrm
scheme.vim17520644editdlrm
screen.vim4240644editdlrm
scss.vim2000644editdlrm
sensors.vim4430644editdlrm
services.vim4400644editdlrm
setserial.vim4270644editdlrm
sgml.vim12100644editdlrm
sh.vim12020644editdlrm
sieve.vim4570644editdlrm
slpconf.vim4650644editdlrm
slpreg.vim4640644editdlrm
slpspi.vim4550644editdlrm
spec.vim53300644editdlrm
sql.vim205620644editdlrm
sshconfig.vim4290644editdlrm
sudoers.vim4260644editdlrm
svg.vim12000644editdlrm
sysctl.vim4410644editdlrm
tcl.vim10020644editdlrm
tcsh.vim12070644editdlrm
terminfo.vim4180644editdlrm
tex.vim16410644editdlrm
treetop.vim4040644editdlrm
tt2html.vim4340644editdlrm
udevconf.vim4220644editdlrm
udevperm.vim4200644editdlrm
udevrules.vim4140644editdlrm
updatedb.vim4310644editdlrm
vb.vim19070644editdlrm
verilog.vim16810644editdlrm
vhdl.vim34970644editdlrm
vim.vim29510644editdlrm
xdefaults.vim4690644editdlrm
xf86conf.vim4220644editdlrm
xhtml.vim20360644editdlrm
xinetd.vim4640644editdlrm
xml.vim19110644editdlrm
xmodmap.vim4220644editdlrm
xs.vim4650644editdlrm
xsd.vim11710644editdlrm
xslt.vim5390644editdlrm
yaml.vim4520644editdlrm
zimbu.vim53220644editdlrm
zsh.vim6740644editdlrm
Edit: /usr/share/vim/vim74/ftplugin/sql.vim (20562B)
" SQL filetype plugin file " Language: SQL (Common for Oracle, Microsoft SQL Server, Sybase) " Version: 11.0 " Maintainer: David Fishburn " Last Change: 2013 May 13 " 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 " " 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 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 = '' " let g:ftplugin_sql_omni_key_right = '' " let g:ftplugin_sql_omni_key_left = '' " " BF: format-options - Auto-wrap comments using textwidth was turned off " by mistake. " Only do this when not done yet for this buffer if exists("b:did_ftplugin") 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 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 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() 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 if exists("b:did_ftplugin") 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 = '\%(\.*:'. " For ColdFusion support setlocal matchpairs+=<:> let b:match_words = &matchpairs . \ ',\:\\W*$,'. \ \ s:notend . '\:'. \ '\\|\\|\:'. \ '\,'. \ \ '\(^\s*\)\@<=\(\<\%(do\|for\|while\|loop\)\>.*\):'. \ '\%(\\|\\|\\|\\):'. \ '\%(\\|\%(\\)\)\),'. \ \ '\%('. s:notend . '\\):'. \ '\%('.s:when_no_matched_or_others.'\):'. \ '\%(\\|\\),' . \ \ '\:' . \ '\:' . \ '\,' . \ \ '\%(\' " \ '\\|\:'. " \ '\\(;\)\?\s*$' " \ '\:'.s:when_no_matched_or_others. " \ ':\,'. " " \ '\%(\\|\%('. s:notend . '\\)\):'. " \ '\%(\\|'.s:when_no_matched_or_others.'\):'. " \ '\%(\%(\\)\|\\),' . 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 ]] :call search('\c^\s*begin\>', 'W' ) nnoremap [[ :call search('\c^\s*begin\>', 'bW' ) nnoremap ][ :call search('\c^\s*end\W*$', 'W' ) nnoremap [] :call search('\c^\s*end\W*$', 'bW' ) xnoremap ]] :exec "normal! gv"call search('\c^\s*begin\>', 'W' ) xnoremap [[ :exec "normal! gv"call search('\c^\s*begin\>', 'bW' ) xnoremap ][ :exec "normal! gv"call search('\c^\s*end\W*$', 'W' ) xnoremap [] :exec "normal! gv"call search('\c^\s*end\W*$', 'bW' ) " 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 it's 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 = '' endif " Key to trigger drill into column list if !exists('g:ftplugin_sql_omni_key_right') let g:ftplugin_sql_omni_key_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 = '' 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 ]} :call search('".s:ftplugin_sql_objects."', 'W')" exec "nnoremap [{ :call search('".s:ftplugin_sql_objects."', 'bW')" " 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 ]} /'.s:ftplugin_sql_objects.'' exec 'xnoremap [{ ?'.s:ftplugin_sql_objects.'' " 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\)\@ ]" :call search('."'".b:comment_start."'".', "W" )' exec 'nnoremap [" :call search('."'".b:comment_end."'".', "W" )' exec 'xnoremap ]" :exec "normal! gv"call search('."'".b:comment_start."'".', "W" )' exec 'xnoremap [" :exec "normal! gv"call search('."'".b:comment_end."'".', "W" )' " 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 it's version runtime autoload/sqlcomplete.vim " This is used by the sqlcomplete.vim plugin " Source it for it's 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 '.g:ftplugin_sql_omni_key.'a :call sqlcomplete#Map("syntax")' exec 'inoremap '.g:ftplugin_sql_omni_key.'k :call sqlcomplete#Map("sqlKeyword'.regex_extra.'")' exec 'inoremap '.g:ftplugin_sql_omni_key.'f :call sqlcomplete#Map("sqlFunction'.regex_extra.'")' exec 'inoremap '.g:ftplugin_sql_omni_key.'o :call sqlcomplete#Map("sqlOption'.regex_extra.'")' exec 'inoremap '.g:ftplugin_sql_omni_key.'T :call sqlcomplete#Map("sqlType'.regex_extra.'")' exec 'inoremap '.g:ftplugin_sql_omni_key.'s :call sqlcomplete#Map("sqlStatement'.regex_extra.'")' " Dynamic maps which use populate the completion list " using the dbext.vim plugin exec 'inoremap '.g:ftplugin_sql_omni_key.'t :call sqlcomplete#Map("table")' exec 'inoremap '.g:ftplugin_sql_omni_key.'p :call sqlcomplete#Map("procedure")' exec 'inoremap '.g:ftplugin_sql_omni_key.'v :call sqlcomplete#Map("view")' exec 'inoremap '.g:ftplugin_sql_omni_key.'c :call sqlcomplete#Map("column")' exec 'inoremap '.g:ftplugin_sql_omni_key.'l :call sqlcomplete#Map("column_csv")' " The next 3 maps are only to be used while the completion window is " active due to the at the beginning of the map exec 'inoremap '.g:ftplugin_sql_omni_key.'L :call sqlcomplete#Map("column_csv")' " 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 '.g:ftplugin_sql_omni_key_right.' =sqlcomplete#DrillIntoTable()' exec 'inoremap '.g:ftplugin_sql_omni_key_left.' =sqlcomplete#DrillOutOfColumns()' " endif " Remove any cached items useful for schema changes exec 'inoremap '.g:ftplugin_sql_omni_key.'R :call sqlcomplete#Map("resetCache")' 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: