annotate runtime/doc/sql.txt @ 720:e180933b876a v7.0219

updated for version 7.0219
author vimboss
date Thu, 09 Mar 2006 22:37:52 +0000
parents
children d8f905020502
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
720
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
1 *sql.txt* For Vim version 7.0aa. Last change: Fri Jan 06 2006 8:09:25 AM
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
2
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
3 by David Fishburn
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
4
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
5 This is a filetype plugin to work with SQL files.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
6
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
7 The Structured Query Language (SQL) is a standard which specifies statements
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
8 that allow a user to interact with a relational database. Vim includes
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
9 features for navigation, indentation and syntax highlighting.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
10
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
11 1. Navigation |sql-navigation|
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
12 1.1 Matchit |sql-matchit|
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
13 1.2 Text Object Motions |sql-object-motions|
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
14 1.3 Predefined Object Motions |sql-predefined-objects|
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
15 1.4 Macros |sql-macros|
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
16 2. SQL Dialects |sql-dialects|
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
17 2.1 SQLSetType |SQLSetType|
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
18 2.2 SQL Dialect Default |sql-type-default|
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
19 3. Adding new SQL Dialects |sql-adding-dialects|
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
20
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
21 ==============================================================================
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
22 1. Navigation *sql-navigation*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
23
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
24 The SQL ftplugin provides a number of options to assist with file
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
25 navigation.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
26
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
27
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
28 1.1 Matchit *sql-matchit*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
29 -----------
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
30 The matchit plugin (http://www.vim.org/scripts/script.php?script_id=39)
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
31 provides many additional features and can be customized for different
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
32 languages. The matchit plugin is configured by defining a local
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
33 buffer variable, b:match_words. Pressing the % key while on various
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
34 keywords will move the cursor to its match. For example, if the cursor
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
35 is on an "if", pressing % will cycle between the "else", "elseif" and
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
36 "end if" keywords.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
37
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
38 The following keywords are supported: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
39 if
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
40 elseif | elsif
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
41 else [if]
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
42 end if
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
43
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
44 [while condition] loop
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
45 leave
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
46 break
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
47 continue
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
48 exit
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
49 end loop
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
50
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
51 for
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
52 leave
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
53 break
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
54 continue
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
55 exit
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
56 end loop
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
57
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
58 do
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
59 statements
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
60 doend
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
61
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
62 case
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
63 when
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
64 when
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
65 default
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
66 end case
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
67
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
68 merge
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
69 when not matched
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
70 when matched
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
71
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
72 create[ or replace] procedure|function|event
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
73 returns
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
74 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
75
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
76 1.2 Text Object Motions *sql-object-motions*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
77 -----------------------
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
78 Vim has a number of predefined keys for working with text |object-motions|.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
79 This filetype plugin attempts to translate these keys to maps which make sense
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
80 for the SQL language.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
81
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
82 The following |Normal| mode and |Visual| mode maps exist (when you edit a SQL
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
83 file): >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
84 ]] move forward to the next 'begin'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
85 [[ move backwards to the previous 'begin'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
86 ][ move forward to the next 'end'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
87 [] move backwards to the previous 'end'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
88 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
89
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
90 1.3 Predefined Object Motions *sql-predefined-objects*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
91 -----------------------------
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
92 Most relational databases support various standard features, tables, indicies,
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
93 triggers and stored procedures. Each vendor also has a variety of proprietary
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
94 objects. The next set of maps have been created to help move between these
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
95 objects. Depends on which database vendor you are using, the list of objects
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
96 must be configurable. The filetype plugin attempts to define many of the
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
97 standard objects, plus many additional ones. In order to make this as
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
98 flexible as possible, you can override the list of objects from within your
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
99 |vimrc| with the following: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
100 let g:ftplugin_sql_objects = 'function,procedure,event,table,trigger' .
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
101 \ ',schema,service,publication,database,datatype,domain' .
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
102 \ ',index,subscription,synchronization,view,variable'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
103 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
104 The following |Normal| mode and |Visual| mode maps have been created which use
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
105 the above list: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
106 ]} move forward to the next 'create <object name>'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
107 [{ move backward to the previous 'create <object name>'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
108
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
109 Repeatedly pressing ]} will cycle through each of these create statements: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
110 create table t1 (
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
111 ...
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
112 );
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
113
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
114 create procedure p1
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
115 begin
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
116 ...
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
117 end;
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
118
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
119 create index i1 on t1 (c1);
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
120 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
121 The default setting for g:ftplugin_sql_objects is: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
122 let g:ftplugin_sql_objects = 'function,procedure,event,' .
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
123 \ '\\(existing\\\\|global\\s\\+temporary\\s\\+\\)\\\{,1}' .
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
124 \ 'table,trigger' .
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
125 \ ',schema,service,publication,database,datatype,domain' .
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
126 \ ',index,subscription,synchronization,view,variable'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
127 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
128 The above will also handle these cases: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
129 create table t1 (
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
130 ...
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
131 );
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
132 create existing table t2 (
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
133 ...
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
134 );
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
135 create global temporary table t3 (
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
136 ...
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
137 );
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
138 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
139 By default, the ftplugin only searches for CREATE statements. You can also
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
140 override this via your |vimrc| with the following: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
141 let g:ftplugin_sql_statements = 'create,alter'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
142
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
143 The filetype plugin defines three types of comments: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
144 1. --
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
145 2. //
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
146 3. /*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
147 *
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
148 */
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
149 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
150 The following |Normal| mode and |Visual| mode maps have been created to work
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
151 with comments: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
152 ]" move forward to the beginning of a comment
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
153 [" move forward to the end of a comment
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
154
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
155
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
156
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
157 1.4 Macros *sql-macros*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
158 ----------
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
159 Vim's feature to find macro definitions, |'define'|, is supported using this
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
160 regular expression: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
161 \c\<\(VARIABLE\|DECLARE\|IN\|OUT\|INOUT\)\>
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
162 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
163 This addresses the following code: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
164 CREATE VARIABLE myVar1 INTEGER;
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
165
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
166 CREATE PROCEDURE sp_test(
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
167 IN myVar2 INTEGER,
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
168 OUT myVar3 CHAR(30),
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
169 INOUT myVar4 NUMERIC(20,0)
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
170 )
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
171 BEGIN
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
172 DECLARE myVar5 INTEGER;
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
173
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
174 SELECT c1, c2, c3
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
175 INTO myVar2, myVar3, myVar4
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
176 FROM T1
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
177 WHERE c4 = myVar1;
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
178 END;
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
179 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
180 Place your cursor on "myVar1" on this line: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
181 WHERE c4 = myVar1;
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
182 ^
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
183 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
184 Press any of the following keys: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
185 [d
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
186 [D
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
187 [CTRL-D
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
188
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
189
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
190 ==============================================================================
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
191 2. SQL Dialects *sql-dialects* *sql-types*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
192 *sybase* *TSQL* *Transact-SQL*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
193 *sqlanywhere*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
194 *oracle* *plsql* *sqlj*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
195 *sqlserver*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
196 *mysql* *postgress* *psql*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
197 *informix*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
198
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
199 All relational databases support SQL. There is a portion of SQL that is
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
200 portable across vendors (ex. CREATE TABLE, CREATE INDEX), but there is a
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
201 great deal of vendor specific extensions to SQL. Oracle supports the
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
202 "CREATE OR REPLACE" syntax, column defaults specified in the CREATE TABLE
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
203 statement and the procedural language (for stored procedures and triggers).
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
204
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
205 The default Vim distribution ships with syntax highlighting based on Oracle's
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
206 PL/SQL. The default SQL indent script works for Oracle and SQL Anywhere.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
207 The default filetype plugin works for all vendors and should remain vendor
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
208 neutral, but extendable.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
209
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
210 Vim currently has support for a variety of different vendors, currently this
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
211 is via syntax scripts. Unfortunately, to flip between different syntax rules
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
212 you must either create:
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
213 1. New filetypes
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
214 2. Custom autocmds
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
215 3. Manual steps / commands
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
216
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
217 The majority of people work with only one vendor's database product, it would
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
218 be nice to specify a default in your |vimrc|.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
219
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
220
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
221 2.1 SQLSetType *sqlsettype* *SQLSetType*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
222 --------------
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
223 For the people that work with many different databases, it would be nice to be
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
224 able to flip between the various vendors rules (indent, syntax) on a per
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
225 buffer basis, at any time. The ftplugin/sql.vim file defines this function: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
226 SQLSetType
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
227 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
228 Executing this function without any parameters will set the indent and syntax
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
229 scripts back to their defaults, see |sql-type-default|. If you have turned
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
230 off Vi's compatibility mode, |'compatible'|, you can use the <Tab> key to
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
231 complete the optional parameter.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
232
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
233 After typing the function name and a space, you can use the completion to
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
234 supply a parameter. The function takes the name of the Vim script you want to
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
235 source. Using the |cmdline-completion| feature, the SQLSetType function will
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
236 search the |'runtimepath'| for all Vim scripts with a name containing 'sql'.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
237 This takes the guess work out of the spelling of the names. The following are
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
238 examples: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
239 :SQLSetType
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
240 :SQLSetType sqloracle
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
241 :SQLSetType sqlanywhere
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
242 :SQLSetType sqlinformix
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
243 :SQLSetType mysql
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
244 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
245 The easiest approach is to the use <Tab> character which will first complete
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
246 the command name (SQLSetType), after a space and another <Tab>, display a list
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
247 of available Vim script names: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
248 :SQL<Tab><space><Tab>
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
249 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
250
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
251 2.2 SQL Dialect Default *sql-type-default*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
252 -----------------------
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
253 As mentioned earlier, the default syntax rules for Vim is based on Oracle
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
254 (PL/SQL). You can override this default by placing one of the following in
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
255 your |vimrc|: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
256 let g:sql_type_default = 'sqlanywhere'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
257 let g:sql_type_default = 'sqlinformix'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
258 let g:sql_type_default = 'mysql'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
259 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
260 If you added the following to your |vimrc|: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
261 let g:sql_type_default = 'sqlinformix'
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
262 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
263 The next time edit a SQL file the following scripts will be automatically
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
264 loaded by Vim: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
265 ftplugin/sql.vim
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
266 syntax/sqlinformix.vim
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
267 indent/sql.vim
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
268 >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
269 Notice indent/sqlinformix.sql was not loaded. There is no indent file
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
270 for Informix, Vim loads the default files if the specified files does not
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
271 exist.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
272
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
273
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
274 ==============================================================================
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
275 3. Adding new SQL Dialects *sql-adding-dialects*
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
276
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
277 If you begin working with a SQL dialect which does not have any customizations
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
278 available with the default Vim distribution you can check http://www.vim.org
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
279 to see if any customization currently exist. If not, you can begin by cloning
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
280 an existing script. Read |filetype-plugins| for more details.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
281
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
282 To help identify these scripts, try to create the files with a "sql" prefix.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
283 If you decide you wish to create customizations for the SQLite database, you
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
284 can create any of the following: >
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
285 Unix
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
286 ~/.vim/syntax/sqlite.vim
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
287 ~/.vim/indent/sqlite.vim
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
288 Windows
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
289 $VIM/vimfiles/syntax/sqlite.vim
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
290 $VIM/vimfiles/indent/sqlite.vim
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
291 <
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
292 No changes are necessary to the SQLSetType function. It will automatically
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
293 pickup the new SQL files and load them when you issue the SQLSetType command.
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
294
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
295
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
296
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
297
e180933b876a updated for version 7.0219
vimboss
parents:
diff changeset
298 vim:tw=78:ts=8:ft=help:norl:ff=unix: