updated for version 7.2a

This commit is contained in:
Bram Moolenaar
2008-06-24 20:39:31 +00:00
parent f233048a12
commit a7241f5f19
69 changed files with 5931 additions and 446 deletions

View File

@ -36,7 +36,7 @@ if !exists("g:rubycomplete_classes_in_global")
endif
if !exists("g:rubycomplete_buffer_loading")
let g:rubycomplete_classes_in_global = 0
let g:rubycomplete_buffer_loading = 0
endif
if !exists("g:rubycomplete_include_object")

View File

@ -466,4 +466,3 @@ let g:xmldata_html401t = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -467,4 +467,3 @@ let g:xmldata_xhtml10f = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -9,6 +9,7 @@ if version > 580
syntax reset
endif
endif
let colors_name = "slate"
:hi Normal guifg=White guibg=grey15
:hi Cursor guibg=khaki guifg=slategrey
:hi VertSplit guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse

View File

@ -14,13 +14,12 @@ VIMEXE = vim
include ../../src/auto/config.mk
DOCS = \
ada.txt \
arabic.txt \
autocmd.txt \
change.txt \
cmdline.txt \
debugger.txt \
debug.txt \
debugger.txt \
develop.txt \
diff.txt \
digraph.txt \
@ -29,6 +28,8 @@ DOCS = \
farsi.txt \
filetype.txt \
fold.txt \
ft_ada.txt \
ft_sql.txt \
gui.txt \
gui_w16.txt \
gui_w32.txt \
@ -50,10 +51,10 @@ DOCS = \
insert.txt \
intro.txt \
map.txt \
message.txt \
motion.txt \
mbyte.txt \
message.txt \
mlang.txt \
motion.txt \
netbeans.txt \
options.txt \
os_390.txt \
@ -89,10 +90,9 @@ DOCS = \
russian.txt \
scroll.txt \
sign.txt \
spell.txt \
sponsor.txt \
starting.txt \
spell.txt \
sql.txt \
syntax.txt \
tabpage.txt \
tagsrch.txt \
@ -145,7 +145,6 @@ DOCS = \
workshop.txt
HTMLS = \
ada.html \
arabic.html \
autocmd.html \
change.html \
@ -160,6 +159,8 @@ HTMLS = \
farsi.html \
filetype.html \
fold.html \
ft_ada.html \
ft_sql.html \
gui.html \
gui_w16.html \
gui_w32.html \
@ -177,14 +178,13 @@ HTMLS = \
if_tcl.html \
indent.html \
index.html \
vimindex.html \
insert.html \
intro.html \
map.html \
message.html \
motion.html \
mbyte.html \
message.html \
mlang.html \
motion.html \
netbeans.html \
options.html \
os_390.html \
@ -220,10 +220,9 @@ HTMLS = \
russian.html \
scroll.html \
sign.html \
spell.html \
sponsor.html \
starting.html \
spell.html \
sql.html \
syntax.html \
tabpage.html \
tags.html \
@ -272,6 +271,7 @@ HTMLS = \
version6.html \
version7.html \
vi_diff.html \
vimindex.html \
visual.html \
windows.html \
workshop.html
@ -291,7 +291,7 @@ CONVERTED = \
evim-ru.UTF-8.1 \
vimdiff-ru.UTF-8.1 \
vimtutor-ru.UTF-8.1 \
xxd-ru.UTF-8.1 \
xxd-ru.UTF-8.1
.SUFFIXES:
.SUFFIXES: .c .o .txt .html

763
runtime/doc/ft_sql.txt Normal file
View File

@ -0,0 +1,763 @@
*ft_sql.txt* For Vim version 7.2a. Last change: Wed Apr 26 2006 3:05:33 PM
by David Fishburn
This is a filetype plugin to work with SQL files.
The Structured Query Language (SQL) is a standard which specifies statements
that allow a user to interact with a relational database. Vim includes
features for navigation, indentation and syntax highlighting.
1. Navigation |sql-navigation|
1.1 Matchit |sql-matchit|
1.2 Text Object Motions |sql-object-motions|
1.3 Predefined Object Motions |sql-predefined-objects|
1.4 Macros |sql-macros|
2. SQL Dialects |sql-dialects|
2.1 SQLSetType |SQLSetType|
2.2 SQL Dialect Default |sql-type-default|
3. Adding new SQL Dialects |sql-adding-dialects|
4. OMNI SQL Completion |sql-completion|
4.1 Static mode |sql-completion-static|
4.2 Dynamic mode |sql-completion-dynamic|
4.3 Tutorial |sql-completion-tutorial|
4.3.1 Complete Tables |sql-completion-tables|
4.3.2 Complete Columns |sql-completion-columns|
4.3.3 Complete Procedures |sql-completion-procedures|
4.3.4 Complete Views |sql-completion-views|
4.4 Completion Customization |sql-completion-customization|
4.5 SQL Maps |sql-completion-maps|
4.6 Using with other filetypes |sql-completion-filetypes|
==============================================================================
1. Navigation *sql-navigation*
The SQL ftplugin provides a number of options to assist with file
navigation.
1.1 Matchit *sql-matchit*
-----------
The matchit plugin (http://www.vim.org/scripts/script.php?script_id=39)
provides many additional features and can be customized for different
languages. The matchit plugin is configured by defining a local
buffer variable, b:match_words. Pressing the % key while on various
keywords will move the cursor to its match. For example, if the cursor
is on an "if", pressing % will cycle between the "else", "elseif" and
"end if" keywords.
The following keywords are supported: >
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
create[ or replace] procedure|function|event
returns
1.2 Text Object Motions *sql-object-motions*
-----------------------
Vim has a number of predefined keys for working with text |object-motions|.
This filetype plugin attempts to translate these keys to maps which make sense
for the SQL language.
The following |Normal| mode and |Visual| mode maps exist (when you edit a SQL
file): >
]] move forward to the next 'begin'
[[ move backwards to the previous 'begin'
][ move forward to the next 'end'
[] move backwards to the previous 'end'
1.3 Predefined Object Motions *sql-predefined-objects*
-----------------------------
Most relational databases support various standard features, tables, indices,
triggers and stored procedures. Each vendor also has a variety of proprietary
objects. The next set of maps have been created to help move between these
objects. Depends on which database vendor you are using, the list of objects
must be configurable. The filetype plugin attempts to define many of the
standard objects, plus many additional ones. In order to make this as
flexible as possible, you can override the list of objects from within your
|vimrc| with the following: >
let g:ftplugin_sql_objects = 'function,procedure,event,table,trigger' .
\ ',schema,service,publication,database,datatype,domain' .
\ ',index,subscription,synchronization,view,variable'
The following |Normal| mode and |Visual| mode maps have been created which use
the above list: >
]} move forward to the next 'create <object name>'
[{ move backward to the previous 'create <object name>'
Repeatedly pressing ]} will cycle through each of these create statements: >
create table t1 (
...
);
create procedure p1
begin
...
end;
create index i1 on t1 (c1);
The default setting for g:ftplugin_sql_objects is: >
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'
The above will also handle these cases: >
create table t1 (
...
);
create existing table t2 (
...
);
create global temporary table t3 (
...
);
By default, the ftplugin only searches for CREATE statements. You can also
override this via your |vimrc| with the following: >
let g:ftplugin_sql_statements = 'create,alter'
The filetype plugin defines three types of comments: >
1. --
2. //
3. /*
*
*/
The following |Normal| mode and |Visual| mode maps have been created to work
with comments: >
]" move forward to the beginning of a comment
[" move forward to the end of a comment
1.4 Macros *sql-macros*
----------
Vim's feature to find macro definitions, |'define'|, is supported using this
regular expression: >
\c\<\(VARIABLE\|DECLARE\|IN\|OUT\|INOUT\)\>
This addresses the following code: >
CREATE VARIABLE myVar1 INTEGER;
CREATE PROCEDURE sp_test(
IN myVar2 INTEGER,
OUT myVar3 CHAR(30),
INOUT myVar4 NUMERIC(20,0)
)
BEGIN
DECLARE myVar5 INTEGER;
SELECT c1, c2, c3
INTO myVar2, myVar3, myVar4
FROM T1
WHERE c4 = myVar1;
END;
Place your cursor on "myVar1" on this line: >
WHERE c4 = myVar1;
^
Press any of the following keys: >
[d
[D
[CTRL-D
==============================================================================
2. SQL Dialects *sql-dialects* *sql-types*
*sybase* *TSQL* *Transact-SQL*
*sqlanywhere*
*oracle* *plsql* *sqlj*
*sqlserver*
*mysql* *postgres* *psql*
*informix*
All relational databases support SQL. There is a portion of SQL that is
portable across vendors (ex. CREATE TABLE, CREATE INDEX), but there is a
great deal of vendor specific extensions to SQL. Oracle supports the
"CREATE OR REPLACE" syntax, column defaults specified in the CREATE TABLE
statement and the procedural language (for stored procedures and triggers).
The default Vim distribution ships with syntax highlighting based on Oracle's
PL/SQL. The default SQL indent script works for Oracle and SQL Anywhere.
The default filetype plugin works for all vendors and should remain vendor
neutral, but extendable.
Vim currently has support for a variety of different vendors, currently this
is via syntax scripts. Unfortunately, to flip between different syntax rules
you must either create:
1. New filetypes
2. Custom autocmds
3. Manual steps / commands
The majority of people work with only one vendor's database product, it would
be nice to specify a default in your |vimrc|.
2.1 SQLSetType *sqlsettype* *SQLSetType*
--------------
For the people that work with many different databases, it would be nice to be
able to flip between the various vendors rules (indent, syntax) on a per
buffer basis, at any time. The ftplugin/sql.vim file defines this function: >
SQLSetType
Executing this function without any parameters will set the indent and syntax
scripts back to their defaults, see |sql-type-default|. If you have turned
off Vi's compatibility mode, |'compatible'|, you can use the <Tab> key to
complete the optional parameter.
After typing the function name and a space, you can use the completion to
supply a parameter. The function takes the name of the Vim script you want to
source. Using the |cmdline-completion| feature, the SQLSetType function will
search the |'runtimepath'| for all Vim scripts with a name containing 'sql'.
This takes the guess work out of the spelling of the names. The following are
examples: >
:SQLSetType
:SQLSetType sqloracle
:SQLSetType sqlanywhere
:SQLSetType sqlinformix
:SQLSetType mysql
The easiest approach is to the use <Tab> character which will first complete
the command name (SQLSetType), after a space and another <Tab>, display a list
of available Vim script names: >
:SQL<Tab><space><Tab>
2.2 SQL Dialect Default *sql-type-default*
-----------------------
As mentioned earlier, the default syntax rules for Vim is based on Oracle
(PL/SQL). You can override this default by placing one of the following in
your |vimrc|: >
let g:sql_type_default = 'sqlanywhere'
let g:sql_type_default = 'sqlinformix'
let g:sql_type_default = 'mysql'
If you added the following to your |vimrc|: >
let g:sql_type_default = 'sqlinformix'
The next time edit a SQL file the following scripts will be automatically
loaded by Vim: >
ftplugin/sql.vim
syntax/sqlinformix.vim
indent/sql.vim
>
Notice indent/sqlinformix.sql was not loaded. There is no indent file
for Informix, Vim loads the default files if the specified files does not
exist.
==============================================================================
3. Adding new SQL Dialects *sql-adding-dialects*
If you begin working with a SQL dialect which does not have any customizations
available with the default Vim distribution you can check http://www.vim.org
to see if any customization currently exist. If not, you can begin by cloning
an existing script. Read |filetype-plugins| for more details.
To help identify these scripts, try to create the files with a "sql" prefix.
If you decide you wish to create customizations for the SQLite database, you
can create any of the following: >
Unix
~/.vim/syntax/sqlite.vim
~/.vim/indent/sqlite.vim
Windows
$VIM/vimfiles/syntax/sqlite.vim
$VIM/vimfiles/indent/sqlite.vim
No changes are necessary to the SQLSetType function. It will automatically
pickup the new SQL files and load them when you issue the SQLSetType command.
==============================================================================
4. OMNI SQL Completion *sql-completion*
*omni-sql-completion*
Vim 7 includes a code completion interface and functions which allows plugin
developers to build in code completion for any language. Vim 7 includes
code completion for the SQL language.
There are two modes to the SQL completion plugin, static and dynamic. The
static mode populates the popups with the data generated from current syntax
highlight rules. The dynamic mode populates the popups with data retrieved
directly from a database. This includes, table lists, column lists,
procedures names and more.
4.1 Static Mode *sql-completion-static*
---------------
The static popups created contain items defined by the active syntax rules
while editing a file with a filetype of SQL. The plugin defines (by default)
various maps to help the user refine the list of items to be displayed.
The defaults static maps are: >
imap <buffer> <C-C>a <C-\><C-O>:call sqlcomplete#Map('syntax')<CR><C-X><C-O>
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
imap <buffer> <C-C>f <C-\><C-O>:call sqlcomplete#Map('sqlFunction')<CR><C-X><C-O>
imap <buffer> <C-C>o <C-\><C-O>:call sqlcomplete#Map('sqlOption')<CR><C-X><C-O>
imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
The static maps (which are based on the syntax highlight groups) follow this
format: >
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
This command breaks down as: >
imap - Create an insert map
<buffer> - Only for this buffer
<C-C>k - Your choice of key map
<C-\><C-O> - Execute one command, return to Insert mode
:call sqlcomplete#Map( - Allows the SQL completion plugin to perform some
housekeeping functions to allow it to be used in
conjunction with other completion plugins.
Indicate which item you want the SQL completion
plugin to complete.
In this case we are asking the plugin to display
items from the syntax highlight group
'sqlKeyword'.
You can view a list of highlight group names to
choose from by executing the
:syntax list
command while editing a SQL file.
'sqlKeyword' - Display the items for the sqlKeyword highlight
group
)<CR> - Execute the :let command
<C-X><C-O> - Trigger the standard omni completion key stroke.
Passing in 'sqlKeyword' instructs the SQL
completion plugin to populate the popup with
items from the sqlKeyword highlight group. The
plugin will also cache this result until Vim is
restarted. The syntax list is retrieved using
the syntaxcomplete plugin.
Using the 'syntax' keyword is a special case. This instructs the
syntaxcomplete plugin to retrieve all syntax items. So this will effectively
work for any of Vim's SQL syntax files. At the time of writing this includes
10 different syntax files for the different dialects of SQL (see section 3
above, |sql-dialects|).
Here are some examples of the entries which are pulled from the syntax files: >
All
- Contains the contents of all syntax highlight groups
Statements
- Select, Insert, Update, Delete, Create, Alter, ...
Functions
- Min, Max, Trim, Round, Date, ...
Keywords
- Index, Database, Having, Group, With
Options
- Isolation_level, On_error, Qualify_owners, Fire_triggers, ...
Types
- Integer, Char, Varchar, Date, DateTime, Timestamp, ...
4.2 Dynamic Mode *sql-completion-dynamic*
----------------
Dynamic mode populates the popups with data directly from a database. In
order for the dynamic feature to be enabled you must have the dbext.vim
plugin installed, (http://vim.sourceforge.net/script.php?script_id=356).
Dynamic mode is used by several features of the SQL completion plugin.
After installing the dbext plugin see the dbext-tutorial for additional
configuration and usage. The dbext plugin allows the SQL completion plugin
to display a list of tables, procedures, views and columns. >
Table List
- All tables for all schema owners
Procedure List
- All stored procedures for all schema owners
View List
- All stored procedures for all schema owners
Column List
- For the selected table, the columns that are part of the table
To enable the popup, while in INSERT mode, use the following key combinations
for each group (where <C-C> means hold the CTRL key down while pressing
the space bar):
Table List - <C-C>t
- <C-X><C-O> (the default map assumes tables)
Stored Procedure List - <C-C>p
View List - <C-C>v
Column List - <C-C>c
Windows platform only - When viewing a popup window displaying the list
of tables, you can press <C-Right>, this will
replace the table currently highlighted with
the column list for that table.
- When viewing a popup window displaying the list
of columns, you can press <C-Left>, this will
replace the column list with the list of tables.
- This allows you to quickly drill down into a
table to view it's columns and back again.
The SQL completion plugin caches various lists that are displayed in
the popup window. This makes the re-displaying of these lists very
fast. If new tables or columns are added to the database it may become
necessary to clear the plugins cache. The default map for this is: >
imap <buffer> <C-C>R <C-\><C-O>:call sqlcomplete#Map('ResetCache')<CR><C-X><C-O>
4.3 SQL Tutorial *sql-completion-tutorial*
----------------
This tutorial is designed to take you through the common features of the SQL
completion plugin so that: >
a) You gain familiarity with the plugin
b) You are introduced to some of the more common features
c) Show how to customize it to your preferences
d) Demonstrate "Best of Use" of the plugin (easiest way to configure).
First, create a new buffer: >
:e tutorial.sql
Static features
---------------
To take you through the various lists, simply enter insert mode, hit:
<C-C>s (show SQL statements)
At this point, you can page down through the list until you find "select".
If you are familiar with the item you are looking for, for example you know
the statement begins with the letter "s". You can type ahead (without the
quotes) "se" then press:
<C-Space>t
Assuming "select" is highlighted in the popup list press <Enter> to choose
the entry. Now type:
* fr<C-C>a (show all syntax items)
choose "from" from the popup list.
When writing stored procedures using the "type" list is useful. It contains
a list of all the database supported types. This may or may not be true
depending on the syntax file you are using. The SQL Anywhere syntax file
(sqlanywhere.vim) has support for this: >
BEGIN
DECLARE customer_id <C-C>T <-- Choose a type from the list
Dynamic features
----------------
To take advantage of the dynamic features you must first install the
dbext.vim plugin (http://vim.sourceforge.net/script.php?script_id=356). It
also comes with a tutorial. From the SQL completion plugin's perspective,
the main feature dbext provides is a connection to a database. dbext
connection profiles are the most efficient mechanism to define connection
information. Once connections have been setup, the SQL completion plugin
uses the features of dbext in the background to populate the popups.
What follows assumes dbext.vim has been correctly configured, a simple test
is to run the command, :DBListTable. If a list of tables is shown, you know
dbext.vim is working as expected. If not, please consult the dbext.txt
documentation.
Assuming you have followed the dbext-tutorial you can press <C-C>t to
display a list of tables. There is a delay while dbext is creating the table
list. After the list is displayed press <C-W>. This will remove both the
popup window and the table name already chosen when the list became active. >
4.3.1 Table Completion: *sql-completion-tables*
Press <C-C>t to display a list of tables from within the database you
have connected via the dbext plugin.
NOTE: All of the SQL completion popups support typing a prefix before pressing
the key map. This will limit the contents of the popup window to just items
beginning with those characters. >
4.3.2 Column Completion: *sql-completion-columns*
The SQL completion plugin can also display a list of columns for particular
tables. The column completion is trigger via <C-C>c.
NOTE: The following example uses <C-Right> to trigger a column list while
the popup window is active. This map is only available on the Windows
platforms since *nix does not recognize CTRL and the right arrow held down
together. If you wish to enable this functionality on a *nix platform choose
a key and create one of these mappings (see |sql-completion-maps| for further
details on where to create this imap): >
imap <buffer> <your_keystroke> <C-R>=sqlcomplete#DrillIntoTable()<CR>
imap <buffer> <your_keystroke> <C-Y><C-\><C-O>:call sqlcomplete#Map('column')<CR><C-X><C-O>
Example of using column completion:
- Press <C-C>t again to display the list of tables.
- When the list is displayed in the completion window, press <C-Right>,
this will replace the list of tables, with a list of columns for the
table highlighted (after the same short delay).
- If you press <C-Left>, this will again replace the column list with the
list of tables. This allows you to drill into tables and column lists
very quickly.
- Press <C-Right> again while the same table is highlighted. You will
notice there is no delay since the column list has been cached. If you
change the schema of a cached table you can press <C-C>R, which
clears the SQL completion cache.
- NOTE: <C-Right> and <C-Left> have been designed to work while the
completion window is active. If the completion popup window is
not active, a normal <C-Right> or <C-Left> will be executed.
Lets look how we can build a SQL statement dynamically. A select statement
requires a list of columns. There are two ways to build a column list using
the SQL completion plugin. >
One column at a time:
< 1. After typing SELECT press <C-C>t to display a list of tables.
2. Choose a table from the list.
3. Press <C-Right> to display a list of columns.
4. Choose the column from the list and press enter.
5. Enter a "," and press <C-C>c. Generating a column list
generally requires having the cursor on a table name. The plugin
uses this name to determine what table to retrieve the column list.
In this step, since we are pressing <C-C>c without the cursor
on a table name the column list displayed will be for the previous
table. Choose a different column and move on.
6. Repeat step 5 as often as necessary. >
All columns for a table:
< 1. After typing SELECT press <C-C>t to display a list of tables.
2. Highlight the table you need the column list for.
3. Press <Enter> to choose the table from the list.
4. Press <C-C>l to request a comma separated list of all columns
for this table.
5. Based on the table name chosen in step 3, the plugin attempts to
decide on a reasonable table alias. You are then prompted to
either accept of change the alias. Press OK.
6. The table name is replaced with the column list of the table is
replaced with the comma separate list of columns with the alias
prepended to each of the columns.
7. Step 3 and 4 can be replaced by pressing <C-C>L, which has
a <C-Y> embedded in the map to choose the currently highlighted
table in the list.
There is a special provision when writing select statements. Consider the
following statement: >
select *
from customer c,
contact cn,
department as dp,
employee e,
site_options so
where c.
In INSERT mode after typing the final "c." which is an alias for the
"customer" table, you can press either <C-C>c or <C-X><C-O>. This will
popup a list of columns for the customer table. It does this by looking back
to the beginning of the select statement and finding a list of the tables
specified in the FROM clause. In this case it notes that in the string
"customer c", "c" is an alias for the customer table. The optional "AS"
keyword is also supported, "customer AS c". >
4.3.3 Procedure Completion: *sql-completion-procedures*
Similar to the table list, <C-C>p, will display a list of stored
procedures stored within the database. >
4.3.4 View Completion: *sql-completion-views*
Similar to the table list, <C-C>v, will display a list of views in the
database.
4.4 Completion Customization *sql-completion-customization*
----------------------------
The SQL completion plugin can be customized through various options set in
your |vimrc|: >
omni_sql_no_default_maps
< - Default: This variable is not defined
- If this variable is defined, no maps are created for OMNI
completion. See |sql-completion-maps| for further discussion.
>
omni_sql_use_tbl_alias
< - Default: a
- This setting is only used when generating a comma separated
column list. By default the map is <C-C>l. When generating
a column list, an alias can be prepended to the beginning of each
column, for example: e.emp_id, e.emp_name. This option has three
settings: >
n - do not use an alias
d - use the default (calculated) alias
a - ask to confirm the alias name
<
An alias is determined following a few rules:
1. If the table name has an '_', then use it as a separator: >
MY_TABLE_NAME --> MTN
my_table_name --> mtn
My_table_NAME --> MtN
< 2. If the table name does NOT contain an '_', but DOES use
mixed case then the case is used as a separator: >
MyTableName --> MTN
< 3. If the table name does NOT contain an '_', and does NOT
use mixed case then the first letter of the table is used: >
mytablename --> m
MYTABLENAME --> M
omni_sql_ignorecase
< - Default: Current setting for|ignorecase|
- Valid settings are 0 or 1.
- When entering a few letters before initiating completion, the list
will be filtered to display only the entries which begin with the
list of characters. When this option is set to 0, the list will be
filtered using case sensitivity. >
omni_sql_include_owner
< - Default: 0, unless dbext.vim 3.00 has been installed
- Valid settings are 0 or 1.
- When completing tables, procedure or views and using dbext.vim 3.00
or higher the list of objects will also include the owner name.
When completing these objects and omni_sql_include_owner is enabled
the owner name will be replaced. >
omni_sql_precache_syntax_groups
< - Default:
['syntax','sqlKeyword','sqlFunction','sqlOption','sqlType','sqlStatement']
- sqlcomplete can be used in conjunction with other completion
plugins. This is outlined at |sql-completion-filetypes|. When the
filetype is changed temporarily to SQL, the sqlcompletion plugin
will cache the syntax groups listed in the List specified in this
option.
>
4.5 SQL Maps *sql-completion-maps*
------------
The default SQL maps have been described in other sections of this document in
greater detail. Here is a list of the maps with a brief description of each.
Static Maps
-----------
These are maps which use populate the completion list using Vim's syntax
highlighting rules. >
<C-C>a
< - Displays all SQL syntax items. >
<C-C>k
< - Displays all SQL syntax items defined as 'sqlKeyword'. >
<C-C>f
< - Displays all SQL syntax items defined as 'sqlFunction. >
<C-C>o
< - Displays all SQL syntax items defined as 'sqlOption'. >
<C-C>T
< - Displays all SQL syntax items defined as 'sqlType'. >
<C-C>s
< - Displays all SQL syntax items defined as 'sqlStatement'. >
Dynamic Maps
------------
These are maps which use populate the completion list using the dbext.vim
plugin. >
<C-C>t
< - Displays a list of tables. >
<C-C>p
< - Displays a list of procedures. >
<C-C>v
< - Displays a list of views. >
<C-C>c
< - Displays a list of columns for a specific table. >
<C-C>l
< - Displays a comma separated list of columns for a specific table. >
<C-C>L
< - Displays a comma separated list of columns for a specific table.
This should only be used when the completion window is active. >
<C-Right>
< - Displays a list of columns for the table currently highlighted in
the completion window. <C-Right> is not recognized on most Unix
systems, so this maps is only created on the Windows platform.
If you would like the same feature on Unix, choose a different key
and make the same map in your vimrc. >
<C-Left>
< - Displays the list of tables.
<C-Left> is not recognized on most Unix systems, so this maps is
only created on the Windows platform. If you would like the same
feature on Unix, choose a different key and make the same map in
your vimrc. >
<C-C>R
< - This maps removes all cached items and forces the SQL completion
to regenerate the list of items.
Customizing Maps
----------------
You can create as many additional key maps as you like. Generally, the maps
will be specifying different syntax highlight groups.
If you do not wish the default maps created or the key choices do not work on
your platform (often a case on *nix) you define the following variable in
your |vimrc|: >
let g:omni_sql_no_default_maps = 1
Do no edit ftplugin/sql.vim directly! If you change this file your changes
will be over written on future updates. Vim has a special directory structure
which allows you to make customizations without changing the files that are
included with the Vim distribution. If you wish to customize the maps
create an after/ftplugin/sql.vim (see |after-directory|) and place the same
maps from the ftplugin/sql.vim in it using your own key strokes. <C-C> was
chosen since it will work on both Windows and *nix platforms. On the windows
platform you can also use <C-Space> or ALT keys.
4.6 Using with other filetypes *sql-completion-filetypes*
------------------------------
Many times SQL can be used with different filetypes. For example Perl, Java,
PHP, Javascript can all interact with a database. Often you need both the SQL
completion as well as the completion capabilities for the current language you
are editing.
This can be enabled easily with the following steps (assuming a Perl file): >
1. :e test.pl
2. :set filetype=sql
3. :set ft=perl
Step 1
------
Begins by editing a Perl file. Vim automatically sets the filetype to
"perl". By default, Vim runs the appropriate filetype file
ftplugin/perl.vim. If you are using the syntax completion plugin by following
the directions at |ft-syntax-omni| then the |'omnifunc'| option has been set to
"syntax#Complete". Pressing <C-X><C-O> will display the omni popup containing
the syntax items for Perl.
Step 2
------
Manually setting the filetype to 'sql' will also fire the appropriate filetype
files ftplugin/sql.vim. This file will define a number of buffer specific
maps for SQL completion, see |sql-completion-maps|. Now these maps have
been created and the SQL completion plugin has been initialized. All SQL
syntax items have been cached in preparation. The SQL filetype script detects
we are attempting to use two different completion plugins. Since the SQL maps
begin with <C-C>, the maps will toggle the |'omnifunc'| when in use. So you
can use <C-X><C-O> to continue using the completion for Perl (using the syntax
completion plugin) and <C-C> to use the SQL completion features.
Step 3
------
Setting the filetype back to Perl sets all the usual "perl" related items back
as they were.
vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 7.1. Last change: 2007 May 11
*gui.txt* For Vim version 7.2a. Last change: 2008 Jun 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -325,16 +325,22 @@ A different kind of selection is used when:
- at the |hit-enter| prompt
- whenever the current mode is not in the 'mouse' option
- when holding the CTRL and SHIFT keys in the GUI
Since Vim continues like the selection isn't there, and there is no mode
associated with the selection, this is called modeless selection. Any text in
the Vim window can be selected. Select the text by pressing the left mouse
button at the start, drag to the end and release. To extend the selection,
use the right mouse button when 'mousemodel' is "extend", or the left mouse
button with the shift key pressed when 'mousemodel' is "popup".
The middle mouse button pastes the text.
The selection is removed when the selected text is scrolled or changed.
On the command line CTRL-Y can be used to copy the selection into the
clipboard. To do this from Insert mode, use CTRL-O : CTRL-Y <CR>.
clipboard. To do this from Insert mode, use CTRL-O : CTRL-Y <CR>. When
'guioptions' contains a or A (default on X11), the selection is automatically
copied to the "* register.
The middle mouse button can then paste the text. On non-X11 systems, you can
use CTRL-R +.
3.4 Using Mouse on Status Lines *gui-mouse-status*

View File

@ -1,4 +1,4 @@
*hangulin.txt* For Vim version 7.1. Last change: 2006 Apr 02
*hangulin.txt* For Vim version 7.2a. Last change: 2006 Apr 02
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 7.1. Last change: 2007 May 11
*map.txt* For Vim version 7.2a. Last change: 2008 Jun 21
VIM REFERENCE MANUAL by Bram Moolenaar
@ -266,12 +266,13 @@ as a special key.
1.3 MAPPING AND MODES *:map-modes*
*mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o*
There are five sets of mappings
- For Normal mode: When typing commands.
- For Visual mode: When typing commands while the Visual area is highlighted.
- For Operator-pending mode: When an operator is pending (after "d", "y", "c",
etc.). Example: ":omap { w" makes "y{" work like "yw" and "d{" like "dw".
etc.). See below: |omap-info|.
- For Insert mode. These are also used in Replace mode.
- For Command-line mode: When entering a ":" or "/" command.
@ -282,7 +283,6 @@ to type a count with a zero.
*map-overview* *map-modes*
Overview of which map command works in which mode:
*mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o*
commands: modes: ~
Normal Visual+Select Operator-pending ~
:map :noremap :unmap :mapclear yes yes yes
@ -318,6 +318,19 @@ Therefore the ":map" and ":map!" commands enter and display mappings for
several modes. In Vim you can use the ":nmap", ":vmap", ":omap", ":cmap" and
":imap" commands to enter mappings for each mode separately.
*omap-info*
Operator-pending mappings can be used to define a movement command that can be
used with any operator. Simple example: ":omap { w" makes "y{" work like "yw"
and "d{" like "dw".
To ignore the starting cursor position and select different text, you can have
the omap start Visual mode to select the text to be operated upon. Example
that operates on a function name in the current line: >
onoremap <silent> F :<C-U>normal! 0f(hviw<CR>
The CTRL-U (<C-U>) is used to remove the range that Vim may insert. The
Normal mode commands find the first '(' character and select the first word
before it. That usually is the function name.
To enter a mapping for Normal and Visual mode, but not Operator-pending mode,
first define it for all three modes, then unmap it for Operator-pending mode:
:map xx something-difficult
@ -473,7 +486,7 @@ scenario: >
:imap <M-C> foo
:set encoding=utf-8
The mapping for <M-C> is defined with the latin1 encoding, resulting in a 0xc3
byte. If you type the character <20> (0xea <M-a>) in UTF-8 encoding this is the
byte. If you type the character <20> (0xe1 <M-a>) in UTF-8 encoding this is the
two bytes 0xc3 0xa1. You don't want the 0xc3 byte to be mapped then,
otherwise it would be impossible to type the <20> character.
@ -494,9 +507,9 @@ defined. Changing "mapleader" after that has no effect for already defined
mappings.
*<LocalLeader>* *maplocalleader*
Just like <Leader>, except that it uses "maplocalleader" instead of
"mapleader". <LocalLeader> is to be used for mappings which are local to a
buffer. Example: >
<LocalLeader> is just like <Leader>, except that it uses "maplocalleader"
instead of "mapleader". <LocalLeader> is to be used for mappings which are
local to a buffer. Example: >
:map <LocalLeader>q \DoItNow
<
In a global plugin <Leader> should be used and in a filetype plugin
@ -1167,7 +1180,7 @@ defined, not where it is invoked! Example:
:source script1.vim
:let s:error = "Wrong!"
:Error s:error
Executing script2.vim will result in "None" to be echoed. Not what you
Executing script2.vim will result in "None" being echoed. Not what you
intended! Calling a function may be an alternative.
Completion behavior *:command-completion* *E179*
@ -1203,7 +1216,7 @@ Custom completion *:command-completion-custom*
*E467* *E468*
It is possible to define customized completion schemes via the "custom,{func}"
or the "customlist,{func}" completion argument. The {func} part should be a
function with the following prototype >
function with the following signature: >
:function {func}(ArgLead, CmdLine, CursorPos)
@ -1370,10 +1383,10 @@ This will invoke: >
:" A more substantial example
:function Allargs(command)
: let i = 0
: while i < argc()
: if filereadable(argv(i))
: execute "e " . argv(i)
: let i = 0
: while i < argc()
: if filereadable(argv(i))
: execute "e " . argv(i)
: execute a:command
: endif
: let i = i + 1

View File

@ -1,4 +1,4 @@
*mlang.txt* For Vim version 7.1. Last change: 2006 Jul 12
*mlang.txt* For Vim version 7.2a. Last change: 2008 Jun 08
VIM REFERENCE MANUAL by Bram Moolenaar
@ -73,6 +73,9 @@ use of "-" and "_".
This sets $LC_TIME.
Without an argument both are set, and additionally
$LANG is set.
When compiled with the |+float| feature the LC_NUMERIC
value will always be set to "C", so that floating
point numbers use '.' as the decimal point.
This will make a difference for items that depend on
the language (some messages, time and date format).
Not fully supported on all systems

View File

@ -1,4 +1,4 @@
*os_qnx.txt* For Vim version 7.1. Last change: 2005 Mar 29
*os_qnx.txt* For Vim version 7.2a. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Julian Kinraid

View File

@ -1,4 +1,4 @@
*os_vms.txt* For Vim version 7.1. Last change: 2006 Nov 18
*os_vms.txt* For Vim version 7.2a. Last change: 2006 Nov 18
VIM REFERENCE MANUAL

View File

@ -1,4 +1,4 @@
*pi_gzip.txt* For Vim version 7.1. Last change: 2002 Oct 29
*pi_gzip.txt* For Vim version 7.2a. Last change: 2002 Oct 29
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*print.txt* For Vim version 7.1. Last change: 2007 Apr 22
*print.txt* For Vim version 7.2a. Last change: 2008 Apr 30
VIM REFERENCE MANUAL by Bram Moolenaar
@ -26,6 +26,9 @@ systems a PostScript file is produced. This can be directly sent to a
PostScript printer. For other printers a program like ghostscript needs to be
used.
Note: If you have problems printing with |:hardcopy|, an alternative is to use
|:TOhtml| and print the resulting html file from a browser.
*:ha* *:hardcopy* *E237* *E238* *E324*
:[range]ha[rdcopy][!] [arguments]
Send [range] lines (default whole file) to the
@ -193,7 +196,8 @@ the font. When omitted, the point size is 10.
This defines the format of the header produced in |:hardcopy| output. The
option is defined in the same way as the 'statusline' option. If Vim has not
been compiled with the |+statusline| feature, this option has no effect and a
simple default header is used, which shows the page number.
simple default header is used, which shows the page number. The same simple
header is used when this option is empty.
*pmbcs-option*
'printmbcharset' 'pmbcs' string (default "")

View File

@ -1,4 +1,4 @@
*usr_03.txt* For Vim version 7.1. Last change: 2006 Jun 21
*usr_03.txt* For Vim version 7.2a. Last change: 2006 Jun 21
VIM USER MANUAL - by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*usr_43.txt* For Vim version 7.1. Last change: 2006 Apr 24
*usr_43.txt* For Vim version 7.2a. Last change: 2006 Apr 24
VIM USER MANUAL - by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*version5.txt* For Vim version 7.1. Last change: 2007 May 11
*version5.txt* For Vim version 7.2a. Last change: 2007 May 11
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*visual.txt* For Vim version 7.1. Last change: 2006 Sep 26
*visual.txt* For Vim version 7.2a. Last change: 2006 Sep 26
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -0,0 +1,68 @@
" Vim filetype plugin
" Language: git config file
" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
" Last Change: 2008 Jun 04
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
finish
endif
runtime! ftplugin/git.vim
let b:did_ftplugin = 1
if &textwidth == 0
" make sure that log messages play nice with git-log on standard terminals
setlocal textwidth=72
if !exists("b:undo_ftplugin")
let b:undo_ftplugin = ""
endif
let b:undo_ftplugin = b:undo_ftplugin . "|setl tw<"
endif
if exists("g:no_gitcommit_commands") || v:version < 700
finish
endif
if !exists("b:git_dir")
let b:git_dir = expand("%:p:h")
endif
" Automatically diffing can be done with:
" autocmd FileType gitcommit DiffGitCached | wincmd p
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
function! s:diffcomplete(A,L,P)
let args = ""
if a:P <= match(a:L." -- "," -- ")+3
let args = args . "-p\n--stat\n--shortstat\n--summary\n--patch-with-stat\n--no-renames\n-B\n-M\n-C\n"
end
if exists("b:git_dir") && a:A !~ '^-'
let tree = fnamemodify(b:git_dir,':h')
if strpart(getcwd(),0,strlen(tree)) == tree
let args = args."\n".system("git diff --cached --name-only")
endif
endif
return args
endfunction
function! s:gitdiffcached(bang,gitdir,...)
let tree = fnamemodify(a:gitdir,':h')
let name = tempname()
let git = "git"
if strpart(getcwd(),0,strlen(tree)) != tree
let git .= " --git-dir=".(exists("*shellescape") ? shellescape(a:gitdir) : '"'.a:gitdir.'"')
endif
if a:0
let extra = join(map(copy(a:000),exists("*shellescape") ? 'shellescape(v:val)' : "'\"'.v:val.'\"'"))
else
let extra = "-p --stat=".&columns
endif
call system(git." diff --cached --no-color ".extra." > ".(exists("*shellescape") ? shellescape(name) : name))
exe "pedit ".(exists("*fnameescape") ? fnameescape(name) : name)
wincmd P
let b:git_dir = a:gitdir
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
nnoremap <silent> q :q<CR>
setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git
endfunction

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: html
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Changed: 2006 Apr 26
" Last Changed: 2007 Nov 20
" URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
@ -13,63 +13,55 @@ let s:save_cpo = &cpo
set cpo-=C
setlocal commentstring=<!--%s-->
setlocal matchpairs+=<:>
if exists('&omnifunc')
" Distinguish between HTML versions
" To use with other HTML versions add another
" elseif condition to match proper DOCTYPE
setlocal omnifunc=htmlcomplete#CompleteTags
" Distinguish between HTML versions
" To use with other HTML versions add another
" elseif condition to match proper DOCTYPE
setlocal omnifunc=htmlcomplete#CompleteTags
if &filetype == 'xhtml'
let b:html_omni_flavor = 'xhtml10s'
else
let b:html_omni_flavor = 'html401t'
endif
let i = 1
while i < 10 && i < line("$")
let line = getline(i)
if line =~ '<!DOCTYPE.*\<DTD HTML 3\.2'
let b:html_omni_flavor = 'html32'
break
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0 Transitional'
let b:html_omni_flavor = 'html40t'
break
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0 Frameset'
let b:html_omni_flavor = 'html40f'
break
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0'
let b:html_omni_flavor = 'html40s'
break
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01 Transitional'
let b:html_omni_flavor = 'html401t'
break
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01 Frameset'
let b:html_omni_flavor = 'html401f'
break
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01'
let b:html_omni_flavor = 'html401s'
break
elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Transitional'
let b:html_omni_flavor = 'xhtml10t'
break
elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Frameset'
let b:html_omni_flavor = 'xhtml10f'
break
elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Strict'
let b:html_omni_flavor = 'xhtml10s'
break
elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.1'
let b:html_omni_flavor = 'xhtml11'
break
endif
let i += 1
endwhile
if &filetype == 'xhtml'
let b:html_omni_flavor = 'xhtml10s'
else
let b:html_omni_flavor = 'html401t'
endif
let i = 1
let line = ""
while i < 10 && i < line("$")
let line = getline(i)
if line =~ '<!DOCTYPE.*\<DTD '
break
endif
let i += 1
endwhile
if line =~ '<!DOCTYPE.*\<DTD ' " doctype line found above
if line =~ ' HTML 3\.2'
let b:html_omni_flavor = 'html32'
elseif line =~ ' XHTML 1\.1'
let b:html_omni_flavor = 'xhtml11'
else " two-step detection with strict/frameset/transitional
if line =~ ' XHTML 1\.0'
let b:html_omni_flavor = 'xhtml10'
elseif line =~ ' HTML 4\.01'
let b:html_omni_flavor = 'html401'
elseif line =~ ' HTML 4.0\>'
let b:html_omni_flavor = 'html40'
endif
if line =~ '\<Transitional\>'
let b:html_omni_flavor .= 't'
elseif line =~ '\<Frameset\>'
let b:html_omni_flavor .= 'f'
else
let b:html_omni_flavor .= 's'
endif
endif
endif
endif
" HTML: thanks to Johannes Zellner and Benji Fisher.
if exists("loaded_matchit")
let b:match_ignorecase = 1
let b:match_skip = 's:Comment'
let b:match_words = '<:>,' .
\ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
\ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
@ -85,7 +77,7 @@ if has("gui_win32")
endif
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal commentstring<"
let b:undo_ftplugin = "setlocal commentstring< matchpairs< omnifunc<"
\ " | unlet! b:match_ignorecase b:match_skip b:match_words b:browsefilter"
" Restore the saved compatibility options.

View File

@ -2,7 +2,7 @@
" Language: PHP
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
" URL: http://www.2072productions.com/vim/indent/php.vim
" Last Change: 2007 February 25th
" Last Change: 2007 Jun 24
" Newsletter: http://www.2072productions.com/?to=php-indent-for-vim-newsletter.php
" Version: 1.24
"
@ -310,11 +310,11 @@ function! ResetOptions()
setlocal comments=s1:/*,mb:*,ex:*/,://,:#
setlocal formatoptions-=t
" setlocal formatoptions-=t
setlocal formatoptions+=q
setlocal formatoptions+=r
setlocal formatoptions+=o
setlocal formatoptions+=w
" setlocal formatoptions+=w
setlocal formatoptions+=c
setlocal formatoptions+=b
endif

View File

@ -36,4 +36,4 @@ endif
exec 'runtime indent/'.filename.'.vim'
" vim:sw=4:ff=unix:
" vim:sw=4:

View File

@ -1,8 +1,8 @@
" Vim indent file
" Language: SQL
" Maintainer: David Fishburn <fishburn at ianywhere dot com>
" Last Change: Wed Sep 14 2005 10:21:15 PM
" Version: 1.4
" Last Change: Mon Apr 02 2007 9:13:47 AM
" Version: 1.5
" Download: http://vim.sourceforge.net/script.php?script_id=495
" Notes:
@ -106,7 +106,7 @@ function s:CheckToIgnoreRightParan( prev_lnum, num_levels )
" if getline(".") =~ '^)'
let matching_paran = searchpair('(', '', ')', 'bW',
\ 'IsColComment(line("."), col("."))')
\ 's:IsColComment(line("."), col("."))')
if matching_paran < 1
" No match found
@ -165,7 +165,7 @@ function s:GetStmtStarterIndent( keyword, curr_lnum )
\ '\%(\%(\<end\s\+\)\@<!\<if\>\)'.
\ '\)'
let matching_lnum = searchpair(stmts, '', '\<end\>\zs', 'bW',
\ 'IsColComment(line("."), col(".")) == 1')
\ 's:IsColComment(line("."), col(".")) == 1')
exec 'normal! $'
if matching_lnum > 0 && matching_lnum < a:curr_lnum
let ind = indent(matching_lnum)
@ -177,7 +177,7 @@ function s:GetStmtStarterIndent( keyword, curr_lnum )
\ '',
\ '\%(\%(\<when\s\+others\>\)\|\%(\<end\s\+case\>\)\)',
\ 'bW',
\ 'IsColComment(line("."), col(".")) == 1')
\ 's:IsColComment(line("."), col(".")) == 1')
exec 'normal! $'
if matching_lnum > 0 && matching_lnum < a:curr_lnum
let ind = indent(matching_lnum)
@ -191,7 +191,7 @@ endfunction
" Check if the line is a comment
function IsLineComment(lnum)
function s:IsLineComment(lnum)
let rc = synIDattr(
\ synID(a:lnum,
\ match(getline(a:lnum), '\S')+1, 0)
@ -203,7 +203,7 @@ endfunction
" Check if the column is a comment
function IsColComment(lnum, cnum)
function s:IsColComment(lnum, cnum)
let rc = synIDattr(synID(a:lnum, a:cnum, 0), "name")
\ =~? "comment"
@ -211,8 +211,9 @@ function IsColComment(lnum, cnum)
endfunction
" Check if the column is a comment
function ModuloIndent(ind)
" Instead of returning a column position, return
" an appropriate value as a factor of shiftwidth.
function s:ModuloIndent(ind)
let ind = a:ind
if ind > 0
@ -235,7 +236,7 @@ function GetSQLIndent()
" If the current line is a comment, leave the indent as is
" Comment out this additional check since it affects the
" indenting of =, and will not reindent comments as it should
" if IsLineComment(lnum) == 1
" if s:IsLineComment(lnum) == 1
" return ind
" endif
@ -246,9 +247,9 @@ function GetSQLIndent()
return ind
endif
if IsLineComment(prevlnum) == 1
if s:IsLineComment(prevlnum) == 1
if getline(v:lnum) =~ '^\s*\*'
let ind = ModuloIndent(indent(prevlnum))
let ind = s:ModuloIndent(indent(prevlnum))
return ind + 1
endif
" If the previous line is a comment, then return -1
@ -378,7 +379,7 @@ function GetSQLIndent()
endif
" echom 'final - indent ' . ind
return ModuloIndent(ind)
return s:ModuloIndent(ind)
endfunction
" vim:sw=4:ff=unix:
" vim:sw=4:

View File

@ -1,8 +1,8 @@
" VHDL indent ('93 syntax)
" Language: VHDL
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
" Version: 1.50
" Last Change: 2007 Jan 29
" Version: 1.54
" Last Change: 2007 Aug 17
" URL: http://www.vim.org/scripts/script.php?script_id=1450
" only load this indent file when no other was loaded
@ -28,13 +28,13 @@ let s:ES = '\s*\%(--.*\)\=$'
let s:NE = '\%(\<end\s\+\)\@<!'
" option to disable alignment of generic/port mappings
if !exists("g:vhdl_align_genportmap")
let g:vhdl_align_genportmap = 1
if !exists("g:vhdl_indent_genportmap")
let g:vhdl_indent_genportmap = 1
endif
" option to disable alignment of right-hand side assignment "<=" statements
if !exists("g:vhdl_align_rhsassign")
let g:vhdl_align_rhsassign = 1
if !exists("g:vhdl_indent_rhsassign")
let g:vhdl_indent_rhsassign = 1
endif
" only define indent function once
@ -54,6 +54,7 @@ function GetVHDLindent()
let prevn = prevnonblank(prevn - 1)
let prevs = getline(prevn)
endwhile
let prevs_noi = substitute(prevs, '^\s*', '', '')
" default indent starts as previous non-comment line's indent
let ind = prevn > 0 ? indent(prevn) : 0
@ -77,8 +78,8 @@ function GetVHDLindent()
if curs =~ '^\s*--'
let pn = curn - 1
let ps = getline(pn)
if ps =~ '--'
return stridx(ps, '--')
if curs =~ '^\s*--\s' && ps =~ '--'
return indent(pn) + stridx(substitute(ps, '^\s*', '', ''), '--')
else
" find nextnonblank line that is not a comment
let nn = nextnonblank(curn + 1)
@ -106,14 +107,14 @@ function GetVHDLindent()
if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(generic\|map\|port\)\>.*\)\@<!\S\+\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)\)') && (prevs =~? s:NC.'\<\%(generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
" align closing ")" with opening "("
if curs =~ '^\s*)'
return stridx(prevs, '(')
return ind2 + stridx(prevs_noi, '(')
endif
let m = matchend(prevs, '(\s*\ze\w')
let m = matchend(prevs_noi, '(\s*\ze\w')
if m != -1
return m
return ind2 + m
else
if g:vhdl_align_genportmap
return stridx(prevs, '(') + &sw
if g:vhdl_indent_genportmap
return ind2 + stridx(prevs_noi, '(') + &sw
else
return ind2 + &sw
endif
@ -124,8 +125,8 @@ function GetVHDLindent()
" keywords: variable + "<=" without ";" ending
" where: start of previous line
if prevs =~? '^\s*\S\+\s*<=[^;]*'.s:ES
if g:vhdl_align_rhsassign
return matchend(prevs, '<=\s*\ze.')
if g:vhdl_indent_rhsassign
return ind2 + matchend(prevs_noi, '<=\s*\ze.')
else
return ind2 + &sw
endif

View File

@ -1,7 +1,7 @@
" Vim Keymap file for Sinhala (Sri Lanka) (2003-11-02)
" Maintainer : Harshula Jayasuriya <harshula@gmail.com>
" Last Updated: 2006-06-08
" This is a static phonetic mapping for a standard US-English keyboard
" Last Updated: 2007-06-30
" This is a phonetic static mapping for a standard US-English keyboard
" (qwerty)
" http://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_3.html
@ -48,18 +48,18 @@ J <char-0x0da3> " ඣ - mahaapraana jayanna (jha)
z <char-0x0da4> " ඤ - taaluja naasikyaya (nya)
Z <char-0x0da5> " ඥ - taaluja sanyooga naasikyaya (jnya)
<A-j> <char-0x0da6> " ඦ - sanyaka jayanna (nyja)
t <char-0x0da7> " ට - alpapraana ttayanna (tta)
T <char-0x0da8> " ඨ - mahaapraana ttayanna (ttha)
d <char-0x0da9> " ඩ - alpapraana ddayanna (dda)
D <char-0x0daa> " ඪ - mahaapraana ddayanna (ddha)
<A-t> <char-0x0da7> " ට - alpapraana ttayanna (tta)
<A-T> <char-0x0da8> " ඨ - mahaapraana ttayanna (ttha)
<A-d> <char-0x0da9> " ඩ - alpapraana ddayanna (dda)
<A-D> <char-0x0daa> " ඪ - mahaapraana ddayanna (ddha)
N <char-0x0dab> " ණ - muurdhaja nayanna (nna)
x <char-0x0dac> " ඬ - sanyaka ddayanna (nndda)
<A-t> <char-0x0dad> " ත - alpapraana tayanna (ta)
<A-T> <char-0x0dae> " ථ - mahaapraana tayanna (tha)
<A-d> <char-0x0daf> " ද - alpapraana dayanna (da)
<A-D> <char-0x0db0> " ධ - mahaapraana dayanna (dha)
X <char-0x0dac> " ඬ - sanyaka ddayanna (nndda)
t <char-0x0dad> " ත - alpapraana tayanna (ta)
T <char-0x0dae> " ථ - mahaapraana tayanna (tha)
d <char-0x0daf> " ද - alpapraana dayanna (da)
D <char-0x0db0> " ධ - mahaapraana dayanna (dha)
n <char-0x0db1> " න - dantaja nayanna (na)
X <char-0x0db3> " ඳ - sanyaka dayanna (nda)
x <char-0x0db3> " ඳ - sanyaka dayanna (nda)
p <char-0x0db4> " ප - alpapraana payanna (pa)
P <char-0x0db5> " ඵ - mahaapraana payanna (pha)
b <char-0x0db6> " බ - alpapraana bayanna (ba)
@ -70,13 +70,13 @@ y <char-0x0dba> " ය - yayanna (ya)
r <char-0x0dbb> " ර - rayanna (ra)
l <char-0x0dbd> " ල - dantaja layanna (la)
v <char-0x0dc0> " ව - vayanna (va)
<A-s> <char-0x0dc1> " ශ - taaluja sayanna (sha)
S <char-0x0dc2> " ෂ - muurdhaja sayanna (ssa)
S <char-0x0dc1> " ශ - taaluja sayanna (sha)
<A-s> <char-0x0dc2> " ෂ - muurdhaja sayanna (ssa)
s <char-0x0dc3> " ස - dantaja sayanna (sa)
h <char-0x0dc4> " හ - hayanna (ha)
L <char-0x0dc5> " ළ - muurdhaja layanna (lla)
f <char-0x0dc6> " ෆ - fayanna (fa)
<A-a> <char-0x0dca> " ් - al-lakuna
<A-a> <char-0x0dca> " ් - al-lakuna
<A-A> <char-0x0dcf> " ා - aela-pilla (aa)
<A-w> <char-0x0dd0> " ැ - ketti aeda-pilla (ae)
<A-W> <char-0x0dd1> " ෑ - diga aeda-pilla (aae)
@ -96,12 +96,12 @@ f <char-0x0dc6> " ෆ - fayanna (fa)
<A-L> <char-0x0df3> " ෳ - diga gayanukitta (ll)
<A-.> <char-0x0df4> " ෴ - kunddaliya (punctuation)
R <char-0x0dca><char-0x200d><char-0x0dbb> " ්‍ර - rakaransaya
R <char-0x0dca><char-0x200d><char-0x0dbb> " ්‍ර - rakaaranshaya
Y <char-0x0dca><char-0x200d><char-0x0dba> " ්‍ය - yansaya
<A-r> <char-0x0dbb><char-0x0dca><char-0x200d> " ර්‍ - repaya
<A-r> <char-0x0dbb><char-0x0dca><char-0x200d> " ර්‍ - repaya
<A-\> <char-0x0dca><char-0x200d> " join - conjunct letters cons 0DCA ZWJ cons
<A-|> <char-0x200d><char-0x0dca> " touch - cons ZWJ 0DCA cons
<A-,> <char-0x0dca><char-0x200d> " join - conjunct letters cons 0DCA ZWJ cons
<A-/> <char-0x200d><char-0x0dca> " touch - cons ZWJ 0DCA cons
<S-space> <char-0x00a0> " - no-break space. <S-space> didn't work.
<C-space> <char-0x200c> " - ZWNJ. <A-space> doesn't work!
<C-space> <char-0x00a0> " - no-break space. <S-space> didn't work.
<A-space> <char-0x200c> " - ZWNJ. <A-space> doesn't work!

View File

@ -4,7 +4,7 @@
" Useful mainly with utf-8 but may work with other encodings
" Maintainer: Anatoli Sakhnik <sakhnik@gmail.com>
" Last Changed: 2006 Mar 15
" Last Changed: 2007 Nov 11
" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
@ -88,3 +88,5 @@ $ *
^ ,
& .
* ;
~ ~
~~ <char-0x301> Stress

View File

@ -2,8 +2,17 @@
# Shell script to start Vim with less.vim.
# Read stdin if no arguments were given.
if test $# = 0; then
vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -
if test -t 1; then
if test $# = 0; then
vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -
else
vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' "$@"
fi
else
vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' "$@"
# Output is not a terminal, cat arguments or stdin
if test $# = 0; then
cat
else
cat "$@"
fi
fi

View File

@ -1,6 +1,6 @@
" vimballPlugin : construct a file containing both paths and files
" Author: Charles E. Campbell, Jr.
" Copyright: (c) 2004-2006 by Charles E. Campbell, Jr.
" Copyright: (c) 2004-2007 by Charles E. Campbell, Jr.
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
" (see |copyright|) except use "Vimball" instead of "Vim".
" No warranty, express or implied.
@ -16,18 +16,18 @@
if &cp || exists("g:loaded_vimballPlugin")
finish
endif
let g:loaded_vimballPlugin = 1
let g:loaded_vimballPlugin = "v27"
let s:keepcpo = &cpo
set cpo&vim
" ------------------------------------------------------------------------------
" Public Interface: {{{1
com! -ra -complete=dir -na=+ -bang MkVimball call vimball#MkVimball(<line1>,<line2>,<bang>0,<f-args>)
com! -na=? -complete=dir UseVimball call vimball#Vimball(1,<f-args>)
com! -na=0 VimballList call vimball#Vimball(0)
com! -na=* -complete=dir RmVimball call vimball#RmVimball(<f-args>)
com! -ra -complete=file -na=+ -bang MkVimball call vimball#MkVimball(<line1>,<line2>,<bang>0,<f-args>)
com! -na=? -complete=dir UseVimball call vimball#Vimball(1,<f-args>)
com! -na=0 VimballList call vimball#Vimball(0)
com! -na=* -complete=dir RmVimball call vimball#SaveSettings()|call vimball#RmVimball(<f-args>)|call vimball#RestoreSettings()
au BufEnter *.vba.gz,*.vba.bz2,*.vba.zip call vimball#Decompress(expand("<amatch>"))
au BufEnter *.vba setlocal noma bt=nofile fmr=[[[,]]] fdm=marker|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")
au BufEnter *.vba setlocal ff=unix noma bt=nofile fmr=[[[,]]] fdm=marker|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")
" =====================================================================
" Restoration And Modelines: {{{1

View File

@ -1,6 +1,6 @@
" Vim script to clean the ll.xxxxx.add files of commented out entries
" Author: Antonio Colombo, Bram Moolenaar
" Last Update: 2006 Jan 19
" Last Update: 2008 Jun 3
" Time in seconds after last time an ll.xxxxx.add file was updated
" Default is one second.
@ -14,12 +14,19 @@ endif
" Delete all comment lines, except the ones starting with ##.
for s:fname in split(globpath(&rtp, "spell/*.add"), "\n")
if filewritable(s:fname) && localtime() - getftime(s:fname) > g:spell_clean_limit
silent exe "tab split " . escape(s:fname, ' \')
echo "Processing" s:fname
if exists('*fnameescape')
let s:f = fnameescape(s:fname)
else
let s:f = escape(s:fname, ' \|<')
endif
silent exe "tab split " . s:f
echo "Processing" s:f
silent! g/^#[^#]/d
silent update
close
unlet s:f
endif
endfor
unlet s:fname
echo "Done"

View File

@ -1,6 +1,6 @@
" Vim syntax file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-07-22
" Latest Revision: 2007-06-17
if exists("b:current_syntax")
finish
@ -9,7 +9,7 @@ endif
let s:cpo_save = &cpo
set cpo&vim
setlocal iskeyword=@,48-57,_,-
setlocal iskeyword+=-
syn keyword cmusrcTodo contained TODO FIXME XXX NOTE

View File

@ -1,7 +1,7 @@
" Vim syntax file
" Language: gp (version 2.2)
" Language: gp (version 2.4)
" Maintainer: Karim Belabas <Karim.Belabas@math.u-bordeaux.fr>
" Last change: 2006 Apr 12
" Last change: 2007 Oct 1
" URL: http://pari.math.u-bordeaux.fr
if version < 600
@ -15,7 +15,7 @@ syntax keyword gpStatement break return next
syntax keyword gpConditional if
syntax keyword gpRepeat until while for fordiv forprime forstep forvec
" storage class
syntax keyword gpScope local global
syntax keyword gpScope my local global
" defaults
syntax keyword gpInterfaceKey colors compatible datadir debug debugfiles
syntax keyword gpInterfaceKey debugmem echo factor_add_primes format help

View File

@ -1,6 +1,6 @@
" Vim syntax support file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2001 Jun 04
" Last Change: 2008 Jan 26
" This file is used for ":syntax manual".
" It installs the Syntax autocommands, but no the FileType autocommands.
@ -17,9 +17,12 @@ endif
let syntax_manual = 1
" Remove the connection between FileType and Syntax autocommands.
silent! au! syntaxset FileType
if exists('#syntaxset')
au! syntaxset FileType
endif
" If the GUI is already running, may still need to install the FileType menu.
if has("gui_running") && !exists("did_install_syntax_menu")
" Don't do it when the 'M' flag is included in 'guioptions'.
if has("menu") && has("gui_running") && !exists("did_install_syntax_menu") && &guioptions !~# 'M'
source $VIMRUNTIME/menu.vim
endif

View File

@ -0,0 +1,135 @@
" Vim syntax file
" Language: MS Message Text files (*.mc)
" Maintainer: Kevin Locke <kwl7@cornell.edu>
" Last Change: 2008 April 09
" Location: http://kevinlocke.name/programs/vim/syntax/msmessages.vim
" See format description at <http://msdn2.microsoft.com/en-us/library/aa385646.aspx>
" This file is based on the rc.vim and c.vim
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Common MS Messages keywords
syn case ignore
syn keyword msmessagesIdentifier MessageIdTypedef
syn keyword msmessagesIdentifier SeverityNames
syn keyword msmessagesIdentifier FacilityNames
syn keyword msmessagesIdentifier LanguageNames
syn keyword msmessagesIdentifier OutputBase
syn keyword msmessagesIdentifier MessageId
syn keyword msmessagesIdentifier Severity
syn keyword msmessagesIdentifier Facility
syn keyword msmessagesIdentifier OutputBase
syn match msmessagesIdentifier /\<SymbolicName\>/ nextgroup=msmessagesIdentEq skipwhite
syn match msmessagesIdentEq transparent /=/ nextgroup=msmessagesIdentDef skipwhite contained
syn match msmessagesIdentDef display /\w\+/ contained
" Note: The Language keyword is highlighted as part of an msmessagesLangEntry
" Set value
syn case match
syn region msmessagesSet start="(" end=")" transparent fold contains=msmessagesName keepend
syn match msmessagesName /\w\+/ nextgroup=msmessagesSetEquals skipwhite contained
syn match msmessagesSetEquals /=/ display transparent nextgroup=msmessagesNumVal skipwhite contained
syn match msmessagesNumVal display transparent "\<\d\|\.\d" contains=msmessagesNumber,msmessagesFloat,msmessagesOctalError,msmessagesOctal nextgroup=msmessagesValSep
syn match msmessagesValSep /:/ display nextgroup=msmessagesNameDef contained
syn match msmessagesNameDef /\w\+/ display contained
" Comments are converted to C source (by removing leading ;)
" So we highlight the comments as C
syn include @msmessagesC syntax/c.vim
unlet b:current_syntax
syn region msmessagesCComment matchgroup=msmessagesComment start=/;/ end=/$/ contains=@msmessagesC keepend
" String and Character constants
" Highlight special characters (those which have a escape) differently
syn case ignore
syn region msmessagesLangEntry start=/\<Language\>\s*=\s*\S\+\s*$/hs=e+1 end=/^\./ contains=msmessagesFormat,msmessagesLangEntryEnd,msmessagesLanguage keepend
syn match msmessagesLanguage /\<Language\(\s*=\)\@=/ contained
syn match msmessagesLangEntryEnd display /^\./ contained
syn case match
syn match msmessagesFormat display /%[1-9]\d\?\(![-+0 #]*\d*\(\.\d\+\)\?\(h\|l\|ll\|I\|I32\|I64\)\?[aAcCdeEfgGinopsSuxX]!\)\?/ contained
syn match msmessagesFormat display /%[0.%\\br]/ contained
syn match msmessagesFormat display /%!\(\s\)\@=/ contained
" Integer number, or floating point number without a dot and with "f".
" Copied from c.vim
syn case ignore
"(long) integer
syn match msmessagesNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
"hex number
syn match msmessagesNumber display contained "\<0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
syn match msmessagesOctal display contained "\<0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=msmessagesOctalZero
syn match msmessagesOctalZero display contained "\<0"
" flag an octal number with wrong digits
syn match msmessagesOctalError display contained "\<0\o*[89]\d*"
syn match msmessagesFloat display contained "\d\+f"
"floating point number, with dot, optional exponent
syn match msmessagesFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
syn match msmessagesFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match msmessagesFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
"hexadecimal floating point number, optional leading digits, with dot, with exponent
syn match msmessagesFloat display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>"
"hexadecimal floating point number, with leading digits, optional dot, with exponent
syn match msmessagesFloat display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>"
" Types (used in MessageIdTypedef statement)
syn case match
syn keyword msmessagesType int long short char
syn keyword msmessagesType signed unsigned
syn keyword msmessagesType size_t ssize_t sig_atomic_t
syn keyword msmessagesType int8_t int16_t int32_t int64_t
syn keyword msmessagesType uint8_t uint16_t uint32_t uint64_t
syn keyword msmessagesType int_least8_t int_least16_t int_least32_t int_least64_t
syn keyword msmessagesType uint_least8_t uint_least16_t uint_least32_t uint_least64_t
syn keyword msmessagesType int_fast8_t int_fast16_t int_fast32_t int_fast64_t
syn keyword msmessagesType uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t
syn keyword msmessagesType intptr_t uintptr_t
syn keyword msmessagesType intmax_t uintmax_t
" Add some Windows datatypes that will be common in msmessages files
syn keyword msmessagesType BYTE CHAR SHORT SIZE_T SSIZE_T TBYTE TCHAR UCHAR USHORT
syn keyword msmessagesType DWORD DWORDLONG DWORD32 DWORD64
syn keyword msmessagesType INT INT32 INT64 UINT UINT32 UINT64
syn keyword msmessagesType LONG LONGLONG LONG32 LONG64
syn keyword msmessagesType ULONG ULONGLONG ULONG32 ULONG64
" Sync to language entries, since they should be most common
syn sync match msmessagesLangSync grouphere msmessagesLangEntry "\<Language\s*="
syn sync match msmessagesLangEndSync grouphere NONE "^\."
" Define the default highlighting.
hi def link msmessagesNumber Number
hi def link msmessagesOctal Number
hi def link msmessagesFloat Float
hi def link msmessagesOctalError msmessagesError
hi def link msmessagesSetError msmessagesError
hi def link msmessagesError Error
hi def link msmessagesLangEntry String
hi def link msmessagesLangEntryEnd Special
hi def link msmessagesComment Comment
hi def link msmessagesFormat msmessagesSpecial
hi def link msmessagesSpecial SpecialChar
hi def link msmessagesType Type
hi def link msmessagesIdentifier Identifier
hi def link msmessagesLanguage msmessagesIdentifier
hi def link msmessagesName msmessagesIdentifier
hi def link msmessagesNameDef Macro
hi def link msmessagesIdentDef Macro
hi def link msmessagesValSep Special
hi def link msmessagesNameErr Error
let b:current_syntax = "msmessages"
" vim: ts=8

View File

@ -1,7 +1,7 @@
" Language : Netrw Remote-Directory Listing Syntax
" Maintainer : Charles E. Campbell, Jr.
" Last change: Nov 27, 2006
" Version : 9
" Last change: Feb 06, 2008
" Version : 12
" ---------------------------------------------------------------------
" Syntax Clearing: {{{1
@ -13,40 +13,59 @@ endif
" ---------------------------------------------------------------------
" Directory List Syntax Highlighting: {{{1
syn cluster NetrwGroup contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion
syn cluster NetrwGroup contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe
syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify
syn match netrwDir "\.\{1,2}/" contains=netrwClassify
syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify
syn match netrwDir "^\S*/" contains=netrwClassify
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" contains=netrwDateSep skipwhite nextgroup=netrwTime
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify
syn match netrwExe "\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,netrwTreeIgnore
syn match netrwTreeIgnore contained "^\%(| \)*"
syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify
syn match netrwDir "\.\{1,2}/" contains=netrwClassify
syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" contains=netrwDateSep skipwhite nextgroup=netrwTime
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify
syn match netrwExe "\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify
syn match netrwTreeBar "^\%(| \)*" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
syn match netrwTreeBarSpace " " contained
syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained
syn match netrwDateSep "/" contained
syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep
syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep
syn match netrwTimeSep ":"
syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup
syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup
syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite nextgroup=netrwHidePat
syn match netrwSlash "/" contained
syn match netrwHidePat "[^,]\+" contained skipwhite nextgroup=netrwHideSep
syn match netrwHideSep "," contained transparent skipwhite nextgroup=netrwHidePat
syn match netrwSortBy "Sorted by" contained transparent skipwhite nextgroup=netrwList
syn match netrwSortSeq "Sort sequence:" contained transparent skipwhite nextgroup=netrwList
syn match netrwList ".*$" contained contains=netrwComma
syn match netrwCopyTgt "Copy/Move Tgt:" contained transparent skipwhite nextgroup=netrwList
syn match netrwList ".*$" contained contains=netrwComma
syn match netrwComma "," contained
syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd keepend contained
syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd keepend contained
syn match netrwHelpCmd "\S\ze:" contained skipwhite nextgroup=netrwCmdSep
syn match netrwCmdSep ":" contained nextgroup=netrwCmdNote
syn match netrwCmdNote ".\{-}\ze " contained
syn match netrwVersion "(netrw.*)" contained
" -----------------------------
" Special filetype highlighting {{{1
" -----------------------------
if exists("g:netrw_special_syntax") && netrw_special_syntax
syn match netrwBak "\(\S\+ \)*\S\+\.bak\>" contains=netrwTreeBar
syn match netrwCompress "\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>" contains=netrwTreeBar
syn match netrwData "\(\S\+ \)*\S\+\.dat\>" contains=netrwTreeBar
syn match netrwHdr "\(\S\+ \)*\S\+\.h\>" contains=netrwTreeBar
syn match netrwLib "\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>" contains=netrwTreeBar
syn match netrwMakeFile "\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>" contains=netrwTreeBar
syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar
syn match netrwTags "\<tags\>" contains=netrwTreeBar
syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar
syn match netrwTilde "\(\S\+ \)*\S\+\~\>" contains=netrwTreeBar
syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar
endif
" ---------------------------------------------------------------------
" Highlighting Links: {{{1
if !exists("did_drchip_dbg_syntax")
if !exists("did_drchip_netrwlist_syntax")
let did_drchip_netrwlist_syntax= 1
hi link netrwClassify Function
hi link netrwCmdSep Delimiter
@ -56,13 +75,26 @@ if !exists("did_drchip_dbg_syntax")
hi link netrwHidePat Statement
hi link netrwList Statement
hi link netrwVersion Identifier
hi link netrwSymLink Special
hi link netrwSymLink Question
hi link netrwExe PreProc
hi link netrwDateSep Delimiter
hi link netrwTreeBar Special
hi link netrwTimeSep netrwDateSep
hi link netrwComma netrwComment
hi link netrwHide netrwComment
hi link netrwMarkFile Identifier
" special syntax highlighting (see :he g:netrw_special_syntax)
hi link netrwBak NonText
hi link netrwCompress Folded
hi link netrwData DiffChange
hi link netrwLib DiffChange
hi link netrwMakefile DiffChange
hi link netrwObj Folded
hi link netrwTilde Folded
hi link netrwTmp Folded
hi link netrwTags Folded
endif
" Current Syntax: {{{1

73
runtime/syntax/pdf.vim Normal file
View File

@ -0,0 +1,73 @@
" Vim syntax file
" Language: PDF
" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
" Last Change: 2007 Dec 16
if exists("b:current_syntax")
finish
endif
if !exists("main_syntax")
let main_syntax = 'pdf'
endif
syn include @pdfXML syntax/xml.vim
syn case match
syn cluster pdfObjects contains=pdfBoolean,pdfConstant,pdfNumber,pdfFloat,pdfName,pdfHexString,pdfString,pdfArray,pdfHash,pdfReference,pdfComment
syn keyword pdfBoolean true false contained
syn keyword pdfConstant null contained
syn match pdfNumber "[+-]\=\<\d\+\>"
syn match pdfFloat "[+-]\=\<\%(\d\+\.\|\d*\.\d\+\)\>" contained
syn match pdfNameError "#\X\|#\x\X\|#00" contained containedin=pdfName
syn match pdfSpecialChar "#\x\x" contained containedin=pdfName
syn match pdfName "/[^[:space:]\[\](){}<>/]*" contained
syn match pdfHexError "[^[:space:][:xdigit:]<>]" contained
"syn match pdfHexString "<\s*\x[^<>]*\x\s*>" contained contains=pdfHexError
"syn match pdfHexString "<\s*\x\=\s*>" contained
syn region pdfHexString matchgroup=pdfDelimiter start="<<\@!" end=">" contained contains=pdfHexError
syn match pdfStringError "\\." contained containedin=pdfString
syn match pdfSpecialChar "\\\%(\o\{1,3\}\|[nrtbf()\\]\)" contained containedin=pdfString
syn region pdfString matchgroup=pdfDelimiter start="\\\@<!(" end="\\\@<!)" contains=pdfString
syn region pdfArray matchgroup=pdfOperator start="\[" end="\]" contains=@pdfObjects contained
syn region pdfHash matchgroup=pdfOperator start="<<" end=">>" contains=@pdfObjects contained
syn match pdfReference "\<\d\+\s\+\d\+\s\+R\>"
"syn keyword pdfOperator R contained containedin=pdfReference
syn region pdfObject matchgroup=pdfType start="\<obj\>" end="\<endobj\>" contains=@pdfObjects
syn region pdfObject matchgroup=pdfType start="\<obj\r\=\n" end="\<endobj\>" contains=@pdfObjects fold
" Do these twice. The ones with only newlines are foldable
syn region pdfStream matchgroup=pdfType start="\<stream\r\=\n" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject
syn region pdfXMLStream matchgroup=pdfType start="\<stream\r\=\n\_s*\%(<?\)\@=" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject contains=@pdfXML
syn region pdfStream matchgroup=pdfType start="\<stream\n" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject fold
syn region pdfXMLStream matchgroup=pdfType start="\<stream\n\_s*\%(<?\)\@=" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject contains=@pdfXML fold
syn region pdfPreProc start="\<xref\%(\r\|\n\|\r\n\)" end="^trailer\%(\r\|\n\|\r\n\)" skipwhite skipempty nextgroup=pdfHash contains=pdfNumber fold
syn keyword pdfPreProc startxref
syn match pdfComment "%.*\%(\r\|\n\)" contains=pdfPreProc
syn match pdfPreProc "^%\%(%EOF\|PDF-\d\.\d\)\(\r\|\n\)"
hi def link pdfOperator Operator
hi def link pdfNumber Number
hi def link pdfFloat Float
hi def link pdfBoolean Boolean
hi def link pdfConstant Constant
hi def link pdfName Identifier
hi def link pdfNameError pdfStringError
hi def link pdfHexString pdfString
hi def link pdfHexError pdfStringError
hi def link pdfString String
hi def link pdfStringError Error
hi def link pdfSpecialChar SpecialChar
hi def link pdfDelimiter Delimiter
hi def link pdfType Type
hi def link pdfReference Tag
hi def link pdfStream NonText
hi def link pdfPreProc PreProc
hi def link pdfComment Comment
let b:current_syntax = "pdf"

View File

@ -321,4 +321,4 @@ hi def link rubySpaceError rubyError
let b:current_syntax = "ruby"
" vim: nowrap sw=2 sts=2 ts=8 noet ff=unix:
" vim: nowrap sw=2 sts=2 ts=8 noet :

View File

@ -1,6 +1,6 @@
" Vim syntax file
" Language: Scheme (R5RS)
" Last Change: Nov 28, 2004
" Last Change: 2007 Jun 16
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
" Original author: Dirk van Deun <dirk@igwe.vub.ac.be>
@ -265,6 +265,9 @@ if exists("b:is_chicken") || exists("is_chicken")
syn region ChickenC matchgroup=schemeComment start=+#>%+ end=+<#+ contains=@ChickenC
endif
" suggested by Alex Queiroz
syn match schemeExtSyntax oneline "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
syn region schemeString start=+#<#\s*\z(.*\)+ end=+^\z1$+
endif
" Synchronization and the wrapping up...

View File

@ -1,7 +1,6 @@
" Vim syntax file
" Language: C-shell (tcsh)
" Maintainer: Gautam Iyer <gi1242@users.sourceforge.net>
" Last Modified: Thu 16 Nov 2006 01:07:04 PM PST
" tcsh.vim: Vim syntax file for tcsh scripts
" Maintainer: Gautam Iyer <gi1242@users.sourceforge.net>
" Modified: Sat 16 Jun 2007 04:52:12 PM PDT
"
" Description: We break up each statement into a "command" and an "end" part.
" All groups are either a "command" or part of the "end" of a statement (ie
@ -13,64 +12,118 @@
" causes history to come up as a keyword, which we want to avoid.
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
if exists('b:current_syntax')
finish
endif
let s:oldcpo = &cpo
set cpo&vim " Line continuation is used
setlocal iskeyword+=-
syn case match
" ----- Clusters -----
syn cluster tcshModifiers contains=tcshModifier,tcshModifierError
syn cluster tcshQuoteList contains=tcshDQuote,tcshSQuote,tcshBQuote
syn cluster tcshStatementEnds contains=@tcshQuoteList,tcshComment,tcshUsrVar,TcshArgv,tcshSubst,tcshRedir,tcshMeta,tcshHereDoc,tcshSpecial,tcshArguement
syn cluster tcshStatements contains=tcshBuiltins,tcshCommands,tcshSet,tcshSetEnv,tcshAlias,tcshIf,tcshWhile
syn cluster tcshStatementEnds contains=@tcshQuoteList,tcshComment,@tcshVarList,tcshRedir,tcshMeta,tcshHereDoc,tcshSpecial,tcshArguement
syn cluster tcshStatements contains=tcshBuiltin,tcshCommands,tcshIf,tcshWhile
syn cluster tcshVarList contains=tcshUsrVar,tcshArgv,tcshSubst
syn cluster tcshConditions contains=tcshCmdSubst,tcshParenExpr,tcshOperator,tcshNumber,@tcshVarList
" ----- Errors -----
" Define first, so can be easily overridden.
syn match tcshError contained '\v\S.+'
" ----- Statements -----
" Tcsh commands: Any filename / modifiable variable (must be first!)
syn match tcshCommands '\v[a-zA-Z0-9\\./_$:-]+' contains=tcshSpecial,tcshUsrVar,tcshArgv,tcshVarError nextgroup=tcshStatementEnd
" Builtin commands except (un)set(env), (un)alias, if, while, else
syn keyword tcshBuiltins nextgroup=tcshStatementEnd alloc bg bindkey break breaksw builtins bye case cd chdir complete continue default dirs echo echotc end endif endsw eval exec exit fg filetest foreach getspath getxvers glob goto hashstat history hup inlib jobs kill limit log login logout ls ls-F migrate newgrp nice nohup notify onintr popd printenv pushd rehash repeat rootnode sched setpath setspath settc setty setxvers shift source stop suspend switch telltc time umask uncomplete unhash universe unlimit ver wait warp watchlog where which
" Builtin commands except those treated specially. Currently (un)set(env),
" (un)alias, if, while, else, bindkey
syn keyword tcshBuiltin nextgroup=tcshStatementEnd alloc bg break breaksw builtins bye case cd chdir complete continue default dirs echo echotc end endif endsw eval exec exit fg filetest foreach getspath getxvers glob goto hashstat history hup inlib jobs kill limit log login logout ls ls-F migrate newgrp nice nohup notify onintr popd printenv pushd rehash repeat rootnode sched setpath setspath settc setty setxvers shift source stop suspend switch telltc time umask uncomplete unhash universe unlimit ver wait warp watchlog where which
" StatementEnd is anything after a builtin / command till the lexical end of a
" StatementEnd is anything after a built-in / command till the lexical end of a
" statement (;, |, ||, |&, && or end of line)
syn region tcshStatementEnd transparent contained matchgroup=tcshBuiltins start='' end='\v\\@<!(;|\|[|&]?|\&\&|$)' contains=@tcshStatementEnds
syn region tcshStatementEnd transparent contained matchgroup=tcshBuiltin start='' end='\v\\@<!(;|\|[|&]?|\&\&|$)' contains=@tcshStatementEnds
" set expressions (Contains shell variables)
syn keyword tcshShellVar contained afsuser ampm argv autocorrect autoexpand autolist autologout backslash_quote catalog cdpath color colorcat command complete continue continue_args correct cwd dextract dirsfile dirstack dspmbyte dunique echo echo_style edit ellipsis fignore filec gid group histchars histdup histfile histlit history home ignoreeof implicitcd inputmode killdup killring listflags listjobs listlinks listmax listmaxrows loginsh logout mail matchbeep nobeep noclobber noding noglob nokanji nonomatch nostat notify oid owd path printexitvalue prompt prompt2 prompt3 promptchars pushdtohome pushdsilent recexact recognize_only_executables rmstar rprompt savedirs savehist sched shell shlvl status symlinks tcsh term time tperiod tty uid user verbose version visiblebell watch who wordchars
syn keyword tcshSet nextgroup=tcshSetEnd set unset
syn region tcshSetEnd contained transparent matchgroup=tcshBuiltins start='' skip="\\$" end="$\|;" contains=tcshShellVar,@tcshStatementEnds
syn keyword tcshBuiltin nextgroup=tcshSetEnd set unset
syn region tcshSetEnd contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$\|;' contains=tcshShellVar,@tcshStatementEnds
" setenv expressions (Contains enviorenment variables)
" setenv expressions (Contains environment variables)
syn keyword tcshEnvVar contained AFSUSER COLUMNS DISPLAY EDITOR GROUP HOME HOST HOSTTYPE HPATH LANG LC_CTYPE LINES LS_COLORS MACHTYPE NOREBIND OSTYPE PATH PWD REMOTEHOST SHLVL SYSTYPE TERM TERMCAP USER VENDOR VISUAL
syn keyword tcshSetEnv nextgroup=tcshEnvEnd setenv unsetenv
syn region tcshEnvEnd contained transparent matchgroup=tcshBuiltins start='' skip="\\$" end="$\|;" contains=tcshEnvVar,@tcshStatementEnds
syn keyword tcshBuiltin nextgroup=tcshEnvEnd setenv unsetenv
syn region tcshEnvEnd contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$\|;' contains=tcshEnvVar,@tcshStatementEnds
" alias and unalias (contains special aliases)
syn keyword tcshAliases contained beepcmd cwdcmd jobcmd helpcommand periodic precmd postcmd shell
syn keyword tcshAlias nextgroup=tcshAliCmd skipwhite alias unalias
syn keyword tcshBuiltin nextgroup=tcshAliCmd skipwhite alias unalias
syn match tcshAliCmd contained nextgroup=tcshAliEnd skipwhite '\v[\w-]+' contains=tcshAliases
syn region tcshAliEnd contained transparent matchgroup=tcshBuiltins start='' skip="\\$" end="$\|;" contains=@tcshStatementEnds
syn region tcshAliEnd contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$\|;' contains=@tcshStatementEnds
" if statements (contains expressions / operators)
syn keyword tcshIf nextgroup=tcshIfEnd if
syn region tcshIfEnd contained matchgroup=tcshBuiltins start='' skip="\\$" end="\v<then>|$" contains=tcshOperator,tcshNumber,@tcshStatementEnds
" if statements
syn keyword tcshIf nextgroup=tcshIfEnd skipwhite if
syn region tcshIfEnd contained start='\S' skip='\\$' matchgroup=tcshBuiltin end='\v<then>|$' contains=@tcshConditions,tcshSpecial,@tcshStatementEnds
syn region tcshIfEnd contained matchgroup=tcshBuiltin contains=@tcshConditions,tcshSpecial start='(' end='\v\)%(\s+then>)?' skipwhite nextgroup=@tcshStatementEnds
syn region tcshIfEnd contained matchgroup=tcshBuiltin contains=tcshCommands,tcshSpecial start='\v\{\s+' end='\v\s+\}%(\s+then>)?' skipwhite nextgroup=@tcshStatementEnds keepend
" else statements (nextgroup if)
syn keyword tcshElse nextgroup=tcshIf skipwhite else
" else statements
syn keyword tcshBuiltin nextgroup=tcshIf skipwhite else
" while statements (contains expressions / operators)
syn keyword tcshWhile nextgroup=tcshWhEnd while
syn region tcshWhEnd contained transparent matchgroup=tcshBuiltins start='' skip="\\$" end="\v$" contains=tcshOperator,tcshNumber,@tcshStatementEnds
syn keyword tcshBuiltin nextgroup=@tcshConditions,tcshSpecial skipwhite while
" Conditions (for if and while)
syn region tcshParenExpr contained contains=@tcshConditions,tcshSpecial matchgroup=tcshBuiltin start='(' end=')'
syn region tcshCmdSubst contained contains=tcshCommands matchgroup=tcshBuiltin start='\v\{\s+' end='\v\s+\}' keepend
" Bindkey. Internal editor functions
syn keyword tcshBindkeyFuncs contained backward-char backward-delete-char
\ backward-delete-word backward-kill-line backward-word
\ beginning-of-line capitalize-word change-case
\ change-till-end-of-line clear-screen complete-word
\ complete-word-fwd complete-word-back complete-word-raw
\ copy-prev-word copy-region-as-kill dabbrev-expand delete-char
\ delete-char-or-eof delete-char-or-list
\ delete-char-or-list-or-eof delete-word digit digit-argument
\ down-history downcase-word end-of-file end-of-line
\ exchange-point-and-mark expand-glob expand-history expand-line
\ expand-variables forward-char forward-word
\ gosmacs-transpose-chars history-search-backward
\ history-search-forward insert-last-word i-search-fwd
\ i-search-back keyboard-quit kill-line kill-region
\ kill-whole-line list-choices list-choices-raw list-glob
\ list-or-eof load-average magic-space newline normalize-path
\ normalize-command overwrite-mode prefix-meta quoted-insert
\ redisplay run-fg-editor run-help self-insert-command
\ sequence-lead-in set-mark-command spell-word spell-line
\ stuff-char toggle-literal-history transpose-chars
\ transpose-gosling tty-dsusp tty-flush-output tty-sigintr
\ tty-sigquit tty-sigtsusp tty-start-output tty-stop-output
\ undefined-key universal-argument up-history upcase-word
\ vi-beginning-of-next-word vi-add vi-add-at-eol vi-chg-case
\ vi-chg-meta vi-chg-to-eol vi-cmd-mode vi-cmd-mode-complete
\ vi-delprev vi-delmeta vi-endword vi-eword vi-char-back
\ vi-char-fwd vi-charto-back vi-charto-fwd vi-insert
\ vi-insert-at-bol vi-repeat-char-fwd vi-repeat-char-back
\ vi-repeat-search-fwd vi-repeat-search-back vi-replace-char
\ vi-replace-mode vi-search-back vi-search-fwd vi-substitute-char
\ vi-substitute-line vi-word-back vi-word-fwd vi-undo vi-zero
\ which-command yank yank-pop e_copy_to_clipboard
\ e_paste_from_clipboard e_dosify_next e_dosify_prev e_page_up
\ e_page_down
syn keyword tcshBuiltin nextgroup=tcshBindkeyEnd bindkey
syn region tcshBindkeyEnd contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$' contains=@tcshQuoteList,tcshComment,@tcshVarList,tcshMeta,tcshSpecial,tcshArguement,tcshBindkeyFuncs
" Expressions start with @.
syn match tcshExprStart "\v\@\s+" nextgroup=tcshExprVar
syn match tcshExprVar contained "\v\h\w*%(\[\d+\])?" contains=tcshShellVar,tcshEnvVar nextgroup=tcshExprOp
syn match tcshExprOp contained "++\|--"
syn match tcshExprOp contained "\v\s*\=" nextgroup=tcshExprEnd
syn match tcshExprEnd contained "\v.*$"hs=e+1 contains=tcshOperator,tcshNumber,@tcshVarList
syn match tcshExprEnd contained "\v.{-};"hs=e contains=tcshOperator,tcshNumber,@tcshVarList
syn match tcshExprStart '\v\@\s+' nextgroup=tcshExprVar
syn match tcshExprVar contained '\v\h\w*%(\[\d+\])?' contains=tcshShellVar,tcshEnvVar nextgroup=tcshExprOp
syn match tcshExprOp contained '++\|--'
syn match tcshExprOp contained '\v\s*\=' nextgroup=tcshExprEnd
syn match tcshExprEnd contained '\v.*$'hs=e+1 contains=@tcshConditions
syn match tcshExprEnd contained '\v.{-};'hs=e contains=@tcshConditions
" ----- Comments: -----
syn match tcshComment '#\s.*' contains=tcshTodo,tcshCommentTi,@Spell
@ -85,12 +138,12 @@ syn match tcshTodo contained '\v\c<todo>'
" want VIM to assume that no backslash quote constructs exist.
" Backquotes are treated as commands, and are not contained in anything
if(exists("tcsh_backslash_quote") && tcsh_backslash_quote == 0)
syn region tcshSQuote keepend contained start="\v\\@<!'" end="'" contains=@Spell
if(exists('tcsh_backslash_quote') && tcsh_backslash_quote == 0)
syn region tcshSQuote keepend contained start="\v\\@<!'" end="'"
syn region tcshDQuote keepend contained start='\v\\@<!"' end='"' contains=@tcshVarList,tcshSpecial,@Spell
syn region tcshBQuote keepend start='\v\\@<!`' end='`' contains=@tcshStatements
else
syn region tcshSQuote contained start="\v\\@<!'" skip="\v\\\\|\\'" end="'" contains=@Spell
syn region tcshSQuote contained start="\v\\@<!'" skip="\v\\\\|\\'" end="'"
syn region tcshDQuote contained start='\v\\@<!"' end='"' contains=@tcshVarList,tcshSpecial,@Spell
syn region tcshBQuote keepend matchgroup=tcshBQuoteGrp start='\v\\@<!`' skip='\v\\\\|\\`' end='`' contains=@tcshStatements
endif
@ -101,17 +154,17 @@ endif
syn match tcshVarError '\v\$\S*' contained
" Modifiable Variables without {}.
syn match tcshUsrVar contained "\v\$\h\w*%(\[\d+%(-\d+)?\])?" nextgroup=@tcshModifiers contains=tcshShellVar,tcshEnvVar
syn match tcshArgv contained "\v\$%(\d+|\*)" nextgroup=@tcshModifiers
syn match tcshUsrVar contained '\v\$\h\w*%(\[\d+%(-\d+)?\])?' nextgroup=@tcshModifiers contains=tcshShellVar,tcshEnvVar
syn match tcshArgv contained '\v\$%(\d+|\*)' nextgroup=@tcshModifiers
" Modifiable Variables with {}.
syn match tcshUsrVar contained "\v\$\{\h\w*%(\[\d+%(-\d+)?\])?%(:\S*)?\}" contains=@tcshModifiers,tcshShellVar,tcshEnvVar
syn match tcshArgv contained "\v\$\{%(\d+|\*)%(:\S*)?\}" contains=@tcshModifiers
syn match tcshUsrVar contained '\v\$\{\h\w*%(\[\d+%(-\d+)?\])?%(:\S*)?\}' contains=@tcshModifiers,tcshShellVar,tcshEnvVar
syn match tcshArgv contained '\v\$\{%(\d+|\*)%(:\S*)?\}' contains=@tcshModifiers
" UnModifiable Substitutions. Order is important here.
syn match tcshSubst contained "\v\$[?#$!_<]" nextgroup=tcshModifierError
syn match tcshSubst contained "\v\$[%#?]%(\h\w*|\d+)" nextgroup=tcshModifierError contains=tcshShellVar,tcshEnvVar
syn match tcshSubst contained "\v\$\{[%#?]%(\h\w*|\d+)%(:\S*)?\}" contains=tcshModifierError contains=tcshShellVar,tcshEnvVar
" Un-modifiable Substitutions. Order is important here.
syn match tcshSubst contained '\v\$[?#$!_<]' nextgroup=tcshModifierError
syn match tcshSubst contained '\v\$[%#?]%(\h\w*|\d+)' nextgroup=tcshModifierError contains=tcshShellVar,tcshEnvVar
syn match tcshSubst contained '\v\$\{[%#?]%(\h\w*|\d+)%(:\S*)?\}' contains=tcshModifierError contains=tcshShellVar,tcshEnvVar
" Variable Name Expansion Modifiers (order important)
syn match tcshModifierError contained '\v:\S*'
@ -119,61 +172,60 @@ syn match tcshModifier contained '\v:[ag]?[htreuls&qx]' nextgroup=@tcshModifier
" ----- Operators / Specials -----
" Standard redirects (except <<) [<, >, >>, >>&, >>!, >>&!]
syn match tcshRedir contained "\v\<|\>\>?\&?!?"
syn match tcshRedir contained '\v\<|\>\>?\&?!?'
" Metachars
syn match tcshMeta contained "\v[]{}*?[]"
" Meta-chars
syn match tcshMeta contained '\v[]{}*?[]'
" Here Documents (<<)
syn region tcshHereDoc contained matchgroup=tcshRedir start="\v\<\<\s*\z(\h\w*)" end="^\z1$" contains=@tcshVarList,tcshSpecial
syn region tcshHereDoc contained matchgroup=tcshRedir start="\v\<\<\s*'\z(\h\w*)'" start='\v\<\<\s*"\z(\h\w*)"$' start="\v\<\<\s*\\\z(\h\w*)$" end="^\z1$"
" Here documents (<<)
syn region tcshHereDoc contained matchgroup=tcshShellVar start='\v\<\<\s*\z(\h\w*)' end='^\z1$' contains=@tcshVarList,tcshSpecial
syn region tcshHereDoc contained matchgroup=tcshShellVar start="\v\<\<\s*'\z(\h\w*)'" start='\v\<\<\s*"\z(\h\w*)"$' start='\v\<\<\s*\\\z(\h\w*)$' end='^\z1$'
" Operators
syn match tcshOperator contained "&&\|!\~\|!=\|<<\|<=\|==\|=\~\|>=\|>>\|\*\|\^\|\~\|||\|!\|%\|&\|+\|-\|/\|<\|>\||"
syn match tcshOperator contained "[(){}]"
syn match tcshOperator contained '&&\|!\~\|!=\|<<\|<=\|==\|=\~\|>=\|>>\|\*\|\^\|\~\|||\|!\|%\|&\|+\|-\|/\|<\|>\||'
"syn match tcshOperator contained '[(){}]'
" Numbers
syn match tcshNumber contained "\v<-?\d+>"
syn match tcshNumber contained '\v<-?\d+>'
" Arguements
syn match tcshArguement contained "\v\s@<=-(\w|-)*"
" Arguments
syn match tcshArguement contained '\v\s@<=-(\w|-)*'
" Special charectors
syn match tcshSpecial contained "\v\\@<!\\(\d{3}|.)"
" Special characters. \xxx, or backslashed characters.
"syn match tcshSpecial contained '\v\\@<!\\(\d{3}|.)'
syn match tcshSpecial contained '\v\\%([0-7]{3}|.)'
" ----- Syncronising -----
if exists("tcsh_minlines")
exec "syn sync minlines=" . tcsh_minlines
" ----- Synchronising -----
if exists('tcsh_minlines')
exec 'syn sync minlines=' . tcsh_minlines
else
syn sync minlines=15 " Except 'here' documents, nothing is long
syn sync minlines=100 " Some completions can be quite long
endif
" Define highlighting of syntax groups
hi def link tcshBuiltins statement
hi def link tcshShellVar preproc
hi def link tcshError Error
hi def link tcshBuiltin Statement
hi def link tcshShellVar Preproc
hi def link tcshEnvVar tcshShellVar
hi def link tcshAliases tcshShellVar
hi def link tcshAliCmd identifier
hi def link tcshCommands identifier
hi def link tcshSet tcshBuiltins
hi def link tcshSetEnv tcshBuiltins
hi def link tcshAlias tcshBuiltins
hi def link tcshIf tcshBuiltins
hi def link tcshElse tcshBuiltins
hi def link tcshWhile tcshBuiltins
hi def link tcshExprStart tcshBuiltins
hi def link tcshAliCmd Identifier
hi def link tcshCommands Identifier
hi def link tcshIf tcshBuiltin
hi def link tcshWhile tcshBuiltin
hi def link tcshBindkeyFuncs Function
hi def link tcshExprStart tcshBuiltin
hi def link tcshExprVar tcshUsrVar
hi def link tcshExprOp tcshOperator
hi def link tcshExprEnd tcshOperator
hi def link tcshComment comment
hi def link tcshCommentTi preproc
hi def link tcshComment Comment
hi def link tcshCommentTi Preproc
hi def link tcshSharpBang tcshCommentTi
hi def link tcshTodo todo
hi def link tcshSQuote constant
hi def link tcshTodo Todo
hi def link tcshSQuote Constant
hi def link tcshDQuote tcshSQuote
hi def link tcshBQuoteGrp include
hi def link tcshVarError error
hi def link tcshUsrVar type
hi def link tcshBQuoteGrp Include
hi def link tcshVarError Error
hi def link tcshUsrVar Type
hi def link tcshArgv tcshUsrVar
hi def link tcshSubst tcshUsrVar
hi def link tcshModifier tcshArguement
@ -181,9 +233,12 @@ hi def link tcshModifierError tcshVarError
hi def link tcshMeta tcshSubst
hi def link tcshRedir tcshOperator
hi def link tcshHereDoc tcshSQuote
hi def link tcshOperator operator
hi def link tcshNumber number
hi def link tcshArguement special
hi def link tcshSpecial specialchar
hi def link tcshOperator Operator
hi def link tcshNumber Number
hi def link tcshArguement Special
hi def link tcshSpecial SpecialChar
let b:current_syntax = "tcsh"
let &cpo = s:oldcpo
unlet s:oldcpo
let b:current_syntax = 'tcsh'

View File

@ -0,0 +1,32 @@
README_ami.txt for version 7.2a of Vim: Vi IMproved.
This file explains the installation of Vim on Amiga systems.
See README.txt for general information about Vim.
Unpack the distributed files in the place where you want to keep them. It is
wise to have a "vim" directory to keep your vimrc file and any other files you
change. The distributed files go into a subdirectory. This way you can
easily upgrade to a new version. For example:
dh0:editors/vim contains your vimrc and modified files
dh0:editors/vim/vim54 contains the Vim version 5.4 distributed files
dh0:editors/vim/vim55 contains the Vim version 5.5 distributed files
You would then unpack the archives like this:
cd dh0:editors
tar xf t:vim60bin.tar
tar xf t:vim60rt.tar
Set the $VIM environment variable to point to the top directory of your Vim
files. For the above example:
set VIM=dh0:editors/vim
Vim version 5.4 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim54. See ":help $VIM" for more information.
Make sure the Vim executable is in your search path. Either copy the Vim
executable to a directory that is in your search path, or (preferred) modify
the search path to include the directory where the Vim executable is.

View File

@ -0,0 +1,25 @@
" This Vim script deletes all the menus, so that they can be redefined.
" Warning: This also deletes all menus defined by the user!
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2001 May 27
aunmenu *
silent! unlet did_install_default_menus
silent! unlet did_install_syntax_menu
if exists("did_menu_trans")
menutrans clear
unlet did_menu_trans
endif
silent! unlet find_help_dialog
silent! unlet menutrans_help_dialog
silent! unlet menutrans_path_dialog
silent! unlet menutrans_tags_dialog
silent! unlet menutrans_textwidth_dialog
silent! unlet menutrans_fileformat_dialog
silent! unlet menutrans_no_file
" vim: set sw=2 :

View File

@ -0,0 +1,75 @@
" System gvimrc file for Mac OS X
" Author: Benji Fisher <benji@member.AMS.org>
" Last Change: Thu Mar 09 09:00 AM 2006 EST
"
" Define Mac-standard keyboard shortcuts.
" We don't change 'cpoptions' here, because it would not be set properly when
" a .vimrc file is found later. Thus don't use line continuation and use
" <special> in mappings.
nnoremap <special> <D-n> :confirm enew<CR>
vmap <special> <D-n> <Esc><D-n>gv
imap <special> <D-n> <C-O><D-n>
cmap <special> <D-n> <C-C><D-n>
omap <special> <D-n> <Esc><D-n>
nnoremap <special> <D-o> :browse confirm e<CR>
vmap <special> <D-o> <Esc><D-o>gv
imap <special> <D-o> <C-O><D-o>
cmap <special> <D-o> <C-C><D-o>
omap <special> <D-o> <Esc><D-o>
nnoremap <silent> <special> <D-w> :if winheight(2) < 0 <Bar> confirm enew <Bar> else <Bar> confirm close <Bar> endif<CR>
vmap <special> <D-w> <Esc><D-w>gv
imap <special> <D-w> <C-O><D-w>
cmap <special> <D-w> <C-C><D-w>
omap <special> <D-w> <Esc><D-w>
nnoremap <silent> <special> <D-s> :if expand("%") == ""<Bar>browse confirm w<Bar> else<Bar>confirm w<Bar>endif<CR>
vmap <special> <D-s> <Esc><D-s>gv
imap <special> <D-s> <C-O><D-s>
cmap <special> <D-s> <C-C><D-s>
omap <special> <D-s> <Esc><D-s>
nnoremap <special> <D-S-s> :browse confirm saveas<CR>
vmap <special> <D-S-s> <Esc><D-s>gv
imap <special> <D-S-s> <C-O><D-s>
cmap <special> <D-S-s> <C-C><D-s>
omap <special> <D-S-s> <Esc><D-s>
" From the Edit menu of SimpleText:
nnoremap <special> <D-z> u
vmap <special> <D-z> <Esc><D-z>gv
imap <special> <D-z> <C-O><D-z>
cmap <special> <D-z> <C-C><D-z>
omap <special> <D-z> <Esc><D-z>
vnoremap <special> <D-x> "+x
vnoremap <special> <D-c> "+y
cnoremap <special> <D-c> <C-Y>
nnoremap <special> <D-v> "+gP
cnoremap <special> <D-v> <C-R>+
execute 'vnoremap <script> <special> <D-v>' paste#paste_cmd['v']
execute 'inoremap <script> <special> <D-v>' paste#paste_cmd['i']
nnoremap <silent> <special> <D-a> :if &slm != ""<Bar>exe ":norm gggH<C-O>G"<Bar> else<Bar>exe ":norm ggVG"<Bar>endif<CR>
vmap <special> <D-a> <Esc><D-a>
imap <special> <D-a> <Esc><D-a>
cmap <special> <D-a> <C-C><D-a>
omap <special> <D-a> <Esc><D-a>
nnoremap <special> <D-f> /
vmap <special> <D-f> <Esc><D-f>
imap <special> <D-f> <Esc><D-f>
cmap <special> <D-f> <C-C><D-f>
omap <special> <D-f> <Esc><D-f>
nnoremap <special> <D-g> n
vmap <special> <D-g> <Esc><D-g>
imap <special> <D-g> <C-O><D-g>
cmap <special> <D-g> <C-C><D-g>
omap <special> <D-g> <Esc><D-g>

BIN
runtime/tutor/runtime/macros.info Executable file

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
runtime/tutor/runtime/tools.info Executable file

Binary file not shown.

View File

@ -0,0 +1,43 @@
/* XPM */
static char * vim32x32[] = {
"32 32 8 1",
" c None",
". c #000000",
"+ c #000080",
"@ c #008000",
"# c #00FF00",
"$ c #808080",
"% c #C0C0C0",
"& c #FFFFFF",
" .. ",
" .##. ",
" ...........#@@#. ......... ",
" .&&&&&&&&&&&.@@@#.&&&&&&&&&. ",
" .&%%%%%%%%%%%.@@@.&%%%%%%%%%. ",
" .%%%%%%%%%%$.@@@@.%%%%%%%%$. ",
" .$%%%%%%$$.@@@@@@.$%%%%%$$. ",
" .&%%%%%%$.@@@@@@.&%%%%%$$. ",
" .&%%%%%%$.@@@@@.&&%%%%$$. ",
" .&%%%%%%$.@@@@.&&%%%%$$. ",
" .&%%%%%%$.@@@.&&%%%%$$. ",
" .&%%%%%%$.@@.&&%%%%$$.#. ",
" ..&%%%%%%$.@.&&%%%%$$.@@#. ",
" .#.&%%%%%%$..&&%%%%$$.@@@@#. ",
" .#@.&%%%%%%$.&&%%%%$$.@@@@@@#. ",
".#@@.&%%%%%%$&&%%%%$$.@@@@@@@@#.",
".+@@.&%%%%%%$&%%%%$$.@@@@@@@@@+.",
" .+@.&%%%%%%$%%%%$$.@@@@@@@@@+. ",
" .+.&%%%%%%%%%%...@@@@@@@@@+. ",
" ..&%%%%%%%%%.%%.@@@@@@@@+. ",
" .&%%%%%%%%%.%%.@@@@@@@+. ",
" .&%%%%%%%%$...@...@...... ",
" .&%%%%%%%$.%%%.%%%.%%%.%%. ",
" .&%%%%%%$$..%%..%%%%%%%%%%. ",
" .&%%%%%$$..%%...%%++%%..%. ",
" .&%%%%$$.@.%%..%%+.%%..%%. ",
" .&%%%$$.@@.%%..%%..%%..%%. ",
" .&%%$$..+.%%..%%..%%..%%. ",
" .%$$. ..%%%.%%..%%..%%%. ",
" ... ....+.. .. ... ",
" .++. ",
" .. "};

View File

@ -0,0 +1,59 @@
/* XPM */
static char * vim48x48[] = {
"48 48 8 1",
" c None",
". c #000000",
"+ c #000084",
"@ c #008200",
"# c #00FF00",
"$ c #848284",
"& c #C6C3C6",
"* c #FFFFFF",
" .. ",
" .##. ",
" .#@@#. ",
" ...............#@@@@#. ............... ",
" .***************.@@@@@#. .***************. ",
" .**&&&&&&&&&&&&&&$.@@@@@#.**&&&&&&&&&&&&&&$.",
" .*&&&&&&&&&&&&&&&$.@@@@@@.*&&&&&&&&&&&&&&&$.",
" .*$&&&&&&&&&&&&&&$.@@@@@@.*$&&&&&&&&&&&&&&$.",
" .$$$&&&&&&&&&$$$.@@@@@@@@.$$$&&&&&&&&&&&$$.",
" ..*&&&&&&&&&$$.@@@@@@@@@@..*&&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@@.**&&&&&&&&&$$. ",
" .*&&&&&&&&&$$.@@@@.**&&&&&&&&&$$.. ",
" ..*&&&&&&&&&$$.@@@.**&&&&&&&&&$$.@#. ",
" .#.*&&&&&&&&&$$.@@.**&&&&&&&&&$$.@@@#. ",
" .#@.*&&&&&&&&&$$.@.**&&&&&&&&&$$.@@@@@#. ",
" .#@@.*&&&&&&&&&$$..**&&&&&&&&&$$.@@@@@@@#. ",
" .#@@@.*&&&&&&&&&$$.**&&&&&&&&&$$.@@@@@@@@@#. ",
" .#@@@@.*&&&&&&&&&$$**&&&&&&&&&$$.@@@@@@@@@@@#. ",
".#+@@@@.*&&&&&&&&&$$*&&&&&&&&&$$.@@@@@@@@@@@@@#.",
" .++@@@.*&&&&&&&&&$*&&&&&&&&&$$.@@@@@@@@@@@@@++.",
" .++@@.*&&&&&&&&&$&&&&&&&&&$$.@@@@@@@@@@@@@++. ",
" .++@.*&&&&&&&&&&&&&&&&&&$$.@@@@@@@@@@@@@++. ",
" .++.*&&&&&&&&&&&&&&&&....@@@@@@@@@@@@@++. ",
" .+.*&&&&&&&&&&&&&&&.&&&.@@@@@@@@@@@@+++ ",
" ..*&&&&&&&&&&&&&&&.&&&.@@@@@@@@@@@++. ",
" .*&&&&&&&&&&&&&&&.&&&.@@@@@@@@@@++. ",
" .*&&&&&&&&&&&&&&$$...@@@@@@@@@@++. ",
" .*&&&&&&&&&&&&&$$...@@....@@....+.... ",
" .*&&&&&&&&&&&&$$..&&..&&&&..&&&&..&&&. ",
" .*&&&&&&&&&&&$$..&&&.@.&&&&&&&&&&&&&&&. ",
" .*&&&&&&&&&&$$.@.&&&.@.&&&&&&&&&&&&&&&. ",
" .*&&&&&&&&&$$.@@.&&.@@.&&....&&....&&. ",
" .*&&&&&&&&$$.@@.&&&.@.&&&.+.&&&. .&&&. ",
" .*&&&&&&&$$.@@@.&&.@@.&&.++.&&. .&&. ",
" .*&&&&&&$$.@@@.&&&.@.&&&.+.&&&. .&&&. ",
" .*&&&&&$$.++@@.&&.@@.&&.. .&&. .&&. ",
" .*&&&&$$. .++.&&&.@.&&&. .&&&. .&&&. ",
" .$$$$$. .+.&&&&..&&&&..&&&&..&&&&. ",
" ..... .+....@+.... .... .... ",
" .++@@++. ",
" .++++. ",
" .++. ",
" .. "};

View File

@ -0,0 +1,791 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 147 74 429 356
%%LanguageLevel: 1
%%Creator: CorelDRAW 11
%%Title: vimlogo.eps
%%CreationDate: Mon Feb 02 14:35:16 2004
%%DocumentProcessColors: Cyan Yellow Black
%%DocumentSuppliedResources: (atend)
%%EndComments
%%BeginProlog
/AutoFlatness false def
/AutoSteps 0 def
/CMYKMarks true def
/UseLevel 1 def
%Build: CorelDRAW 11 Version 11.633
%Color profile: Generic offset separations profile
/CorelIsEPS true def
%%BeginResource: procset wCorel11Dict 11.0 0
/wCorel11Dict 300 dict def wCorel11Dict begin
% Copyright (c)1992-2002 Corel Corporation
% All rights reserved. v11.0 r0.0
/bd{bind def}bind def/ld{load def}bd/xd{exch def}bd/_ null def/rp{{pop}repeat}
bd/@cp/closepath ld/@gs/gsave ld/@gr/grestore ld/@np/newpath ld/Tl/translate ld
/$sv 0 def/@sv{/$sv save def}bd/@rs{$sv restore}bd/spg/showpage ld/showpage{}
bd currentscreen/@dsp xd/$dsp/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF
false def/$Scra 0 def/SetScr/setscreen ld/@ss{2 index 0 eq{$dsf 3 1 roll 4 -1
roll pop}if exch $Scra add exch load SetScr}bd/SepMode_5 where{pop}{/SepMode_5
0 def}ifelse/CorelIsSeps where{pop}{/CorelIsSeps false def}ifelse
/CorelIsInRIPSeps where{pop}{/CorelIsInRIPSeps false def}ifelse/CorelIsEPS
where{pop}{/CorelIsEPS false def}ifelse/CurrentInkName_5 where{pop}
{/CurrentInkName_5(Composite)def}ifelse/$ink_5 where{pop}{/$ink_5 -1 def}
ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def/$t 1 def/$n _ def/$o 0 def/$fil 0
def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1 def/$N _ def/$O 0 def/$PF false
def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def/s1t 0 def/s1n _ def/$bkg false def
/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op false def matrix currentmatrix/$ctm xd
/$ptm matrix def/$ttm matrix def/$stm matrix def/$ffpnt true def
/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring
16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle
16#60/grave 16#7C/bar
16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl
16#88/circumflex/perthousand/Scaron/guilsinglleft/OE
16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash
16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis
16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section
16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron
16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def/Comp?{
/LumSepsDict where{pop false}{/AldusSepsDict where{pop false}{1 0 0 0 @gs
setcmykcolor currentcmykcolor @gr add add add 0 ne 0 1 0 0 @gs setcmykcolor
currentcmykcolor @gr add add add 0 ne 0 0 1 0 @gs setcmykcolor currentcmykcolor
@gr add add add 0 ne 0 0 0 1 @gs setcmykcolor currentcmykcolor @gr add add add
0 ne and and and}ifelse}ifelse}bd/@PL{/LV where{pop LV 2 ge L2? not and{@np
/Courier findfont 12 scalefont setfont 72 144 m
(The PostScript level set in the Corel application is higher than)show 72 132 m
(the PostScript level of this device. Change the PS Level in the Corel)show 72
120 m(application to Level 1 by selecting the PostScript tab in the print)show
72 108 m(dialog, and selecting Level 1 from the Compatibility drop down list.)
show flush spg quit}if}if}bd/@BeginSysCorelDict{systemdict/Corel30Dict known
{systemdict/Corel30Dict get exec}if systemdict/CorelLexDict known{1 systemdict
/CorelLexDict get exec}if}bd/@EndSysCorelDict{systemdict/Corel30Dict known
{end}if/EndCorelLexDict where{pop EndCorelLexDict}if}bd AutoFlatness{/@ifl{dup
currentflat exch sub 10 gt{
([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush
@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{
{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill
{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip
/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat}
bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse}
bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped
{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{
/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit
ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l
/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp}
bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1
exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1
sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type
/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd
/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def}
ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{
/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{
dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2
copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix
/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd
{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd}
if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch
load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA}
{$dsa}ifelse $SCP @ss}if}bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge
{pop}{exch pop}ifelse}bd/InRange{3 -1 roll @MN @MX}bd/@sqr{dup 0 rl dup 0 exch
rl neg 0 rl @cp}bd/currentscale{1 0 dtransform matrix defaultmatrix idtransform
dup mul exch dup mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform
dup mul exch dup mul add sqrt}bd/@unscale{}bd/wDstChck{2 1 roll dup 3 -1 roll
eq{1 add}if}bd/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1
exch sub}bd/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}
repeat pop}bd/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1
roll sub neg exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index
.114 mul add 4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb
/setrgbcolor ld/GetRgb/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray
ld/SetRgb2 systemdict/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor
get def/SetHsb systemdict/sethsbcolor get def/GetHsb systemdict
/currenthsbcolor get def/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor
sub 3 1 roll SetHsb GetRgb2}bd/setcmykcolor where{pop/LumSepsDict where{pop
/SetCmyk_5{LumSepsDict/setcmykcolor get exec}def}{/AldusSepsDict where{pop
/SetCmyk_5{AldusSepsDict/setcmykcolor get exec}def}{/SetCmyk_5/setcmykcolor ld
}ifelse}ifelse}{/SetCmyk_5{cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{
pop/GetCmyk/currentcmykcolor ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse
/setoverprint where{pop}{/setoverprint{/$op xd}bd}ifelse/currentoverprint where
{pop}{/currentoverprint{$op}bd}ifelse/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1
roll mul exch}repeat pop}ifelse}bd/@trp{exch pop 5 1 roll @tc_5}bd
/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0 4 $ink_5 sub index exch pop 5 1
roll pop pop pop pop SepsColor true eq{$ink_5 3 gt{1 sub neg SetGry}{0 0 0 4
$ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry}ifelse}ifelse}bd
/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array astore}bd}ifelse
/Corelsetcustomcolor_exists false def/setcustomcolor where{pop
/Corelsetcustomcolor_exists true def}if CorelIsSeps true eq CorelIsInRIPSeps
false eq and{/Corelsetcustomcolor_exists false def}if
Corelsetcustomcolor_exists false eq{/setcustomcolor{exch aload pop SepMode_5 0
eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0}ifelse 6 1 roll
5 rp 1 sub neg SetGry}ifelse}bd}if/@scc_5{dup type/booleantype eq{dup
currentoverprint ne{setoverprint}{pop}ifelse}{1 eq setoverprint}ifelse dup _ eq
{pop setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse
SepMode_5 0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage
where{pop/ColorImage{colorimage}def}{/ColorImage{/ncolors xd/$multi xd $multi
true eq{ncolors 3 eq{/daqB xd/daqG xd/daqR xd pop pop exch pop abs{daqR pop
daqG pop daqB pop}repeat}{/daqK xd/daqY xd/daqM xd/daqC xd pop pop exch pop abs
{daqC pop daqM pop daqY pop daqK pop}repeat}ifelse}{/dataaq xd{dataaq ncolors
dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index get 255
div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g 255 mul
cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv getinterval pop}{
4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1 index get 255 div
$dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div $dat 4 index 3
add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1 roll put}for $dat
0 $dat length ncolors idiv getinterval}if}ifelse}image}ifelse}bd}ifelse
/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd
/currentcmykcolor{GetCmyk}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd
/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor}
bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd
/currentgray{currentrgbcolor rgb2g}bd/InsideDCS false def/IMAGE/image ld/image
{InsideDCS{IMAGE}{/EPSDict where{pop SepMode_5 0 eq{IMAGE}{dup type/dicttype eq
{dup/ImageType get 1 ne{IMAGE}{dup dup/BitsPerComponent get 8 eq exch
/BitsPerComponent get 1 eq or currentcolorspace 0 get/DeviceGray eq and{
CurrentInkName_5(Black)eq{IMAGE}{dup/DataSource get/TCC xd/Height get abs{TCC
pop}repeat}ifelse}{IMAGE}ifelse}ifelse}{2 index 1 ne{CurrentInkName_5(Black)eq
{IMAGE}{/TCC xd pop pop exch pop abs{TCC pop}repeat}ifelse}{IMAGE}ifelse}
ifelse}ifelse}{IMAGE}ifelse}ifelse}bd}ifelse/WaldoColor_5 true def/$fm 0 def
/wfill{1 $fm eq{fill}{eofill}ifelse}bd/@Pf{@sv SepMode_5 0 eq $Psc 0 ne or
$ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y $k $n $o @scc_5 pop $ctm setmatrix 72
1000 div dup matrix scale dup concat dup Bburx exch Bbury exch itransform
ceiling cvi/Bbury xd ceiling cvi/Bburx xd Bbllx exch Bblly exch itransform
floor cvi/Bblly xd floor cvi/Bbllx xd $Prm aload pop $Psn load exec}{1 SetGry
wfill}ifelse @rs @np}bd/F{matrix currentmatrix $sdf{$scf $sca $scp @ss}if $fil
1 eq{CorelPtrnDoFill}{$fil 2 eq{@ff}{$fil 3 eq{@Pf}{$fil 4 eq
{CorelShfillDoFill}{$t $c $m $y $k $n $o @scc_5{wfill}{@np}ifelse}ifelse}
ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if setmatrix}bd/f{@cp F}bd/S{
matrix currentmatrix $ctm setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K
$N $O @scc_5{matrix currentmatrix $ptm concat stroke setmatrix}{@np}ifelse $SDF
{$dsf $dsa $dsp @ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}bd/b{@cp B}bd/_E{
5 array astore exch cvlit xd}bd/@cc{currentfile $dat readhexstring pop}bd/@sm{
/$ctm $ctm currentmatrix def}bd/@E{/Bbury xd/Bburx xd/Bblly xd/Bbllx xd}bd/@c{
@cp}bd/@P{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd}bd/tcc{@cc}def/@B{
@gs S @gr F}bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq{/$ink_5 -1 def}
{CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5(Magenta)eq{/$ink_5 1
def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{CurrentInkName_5(Black)eq
{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse}ifelse}ifelse}bd/@whi{@gs
-72000 dup m -72000 72000 l 72000 dup l 72000 -72000 l @cp 1 SetGry fill @gr}
bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec cvx]cvx settransfer @whi}
bd/deflevel 0 def/@sax{/deflevel deflevel 1 add def}bd/@eax{/deflevel deflevel
dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax}ifelse}bd/eax{{exec}forall}
bd/@rax{deflevel 0 eq{@rs @sv}if}bd systemdict/pdfmark known not{/pdfmark
/cleartomark ld}if/wclip{1 $fm eq{clip}{eoclip}ifelse}bd
% Copyright (c)1992-2002 Corel Corporation
% All rights reserved. v11.0 r0.0
/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index 3 index l 3
index 3 index l clip pop pop pop pop}bd/@i{@sm @gs @ii 6 index 1 ne{/$frg true
def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5/$frg xd}{/$frg false def}
ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np/$ury xd/$urx xd/$lly xd
/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8 div ceiling cvi string
def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl $urx $llx sub $ury
$lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid $hei abs $bts 1 eq
{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]/tcc load $bts
1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa $dsp @ss}if}{$hei abs{tcc pop}
repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd
/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd $ngx $llx $lly Tl $urx $llx sub $ury
$lly sub scale $wid $hei abs $bts[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse
]$msimage false eq $ncl 1 eq or{/$dat $wid $bts mul $ncl mul 8 div ceiling cvi
string def/@cc load false $ncl ColorImage}{$wid $bts mul 8 div ceiling cvi $ncl
3 eq{dup dup/$dat1 exch string def/$dat2 exch string def/$dat3 exch string def
/@cc1 load/@cc2 load/@cc3 load}{dup dup dup/$dat1 exch string def/$dat2 exch
string def/$dat3 exch string def/$dat4 exch string def/@cc1 load/@cc2 load
/@cc3 load/@cc4 load}ifelse true $ncl ColorImage}ifelse $SDF{$dsf $dsa $dsp
@ss}if @gr $ctm setmatrix}bd/@cc1{currentfile $dat1 readhexstring pop}bd/@cc2{
currentfile $dat2 readhexstring pop}bd/@cc3{currentfile $dat3 readhexstring pop
}bd/@cc4{currentfile $dat4 readhexstring pop}bd/$msimage false def/COMP 0 def
/MaskedImage false def L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx
xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling
cvi string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK}
ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8
dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent
$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}
ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def
/DataSource currentfile/ASCII85Decode filter COMP 1 eq{/DCTDecode filter}{COMP
2 eq{/RunLengthDecode filter}if}ifelse def currentdict end image $SDF{$dsf $dsa
$dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/@I_3{@sm @gs @ii @np/$ury
xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul
$ncl mul 8 div ceiling cvi string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq
{/DeviceRGB}{/DeviceCMYK}ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub
$ury $lly sub scale/ImageDataDict 8 dict def ImageDataDict begin/ImageType 1
def/Width $wid def/Height $hei abs def/BitsPerComponent $bts def/Decode $ncl 1
eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}ifelse}ifelse def
/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def/DataSource
currentfile/ASCII85Decode filter COMP 1 eq{/DCTDecode filter}{COMP 2 eq{
/RunLengthDecode filter}if}ifelse def end/MaskedImageDict 7 dict def
MaskedImageDict begin/ImageType 3 def/InterleaveType 3 def/MaskDict
ImageMaskDict def/DataDict ImageDataDict def end MaskedImageDict image $SDF
{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd/@SetMask{/$mbts xd/$mhei xd/$mwid
xd/ImageMaskDict 8 dict def ImageMaskDict begin/ImageType 1 def/Width $mwid def
/Height $mhei abs def/BitsPerComponent $mbts def/DataSource maskstream def
/ImageMatrix[$mwid 0 0 $mhei neg 0 $mhei 0 gt{$mhei}{0}ifelse]def/Decode[1 0]
def end}bd/@daq{dup type/arraytype eq{{}forall}if}bd/@BMP{/@cc xd UseLevel 3 eq
MaskedImage true eq and{7 -2 roll pop pop @I_3}{12 index 1 gt UseLevel 2 eq
UseLevel 3 eq or and{7 -2 roll pop pop @I_2}{11 index 1 eq{12 -1 roll pop @i}{
7 -2 roll pop pop @I}ifelse}ifelse}ifelse}bd
% Copyright (c)1992-2002 Corel Corporation
% All rights reserved. v11.0 r0.0
/@p{/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true def}{@gs $t $c $m $y $k $n $o
@scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd/$pn xd}bd
/CorelPtrnDoFill{@gs $ctm setmatrix $pm concat CorelPtrnSetBBox wclip @sv Bburx
Bbury $pm itransform/$tury xd/$turx xd Bbllx Bblly $pm itransform/$tlly xd
/$tllx xd newpath $tllx $tlly m $tllx $tury l $turx $tury l $turx $tlly l $tllx
$tlly m @cp pathbbox @rs/$tury xd/$turx xd/$tlly xd/$tllx xd/$wid $turx $tllx
sub def/$hei $tury $tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{wfill}if}{
$t $c $m $y $k $n $o @scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei
scale <00> 8 1 false[8 0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse
@gr $wid 0 gt $hei 0 gt and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub
/$phei xd exch sub/$pwid xd $wid $pwid div ceiling 1 add/$tlx xd $hei $phei div
ceiling 1 add/$tly xd currentdict/CorelPtrnL2Pattern known $psy 0 eq and $psx 0
eq and{CorelPtrnL2Pattern}{$psx 0 eq{CorelPtrnTileVeritcal}{CorelPtrnTileHoriz
}ifelse}ifelse}if @gr @np/$bkg false def}bd/CorelPtrnSetBBox{pathbbox/$ury xd
/$urx xd/$lly xd/$llx xd}bd/CorelPtrnSetFirstTile{$tllx $pxf add dup $tllx gt
{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt{$phei add}if/$ty xd}bd/p{/$pm
xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def}bd/CorelPtrnDraw{@ep}bd
/CorelPtrnPutTile{@sv/$in true def 2 copy dup $lly le{/$in false def}if $phei
sub $ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add $llx le{
/$in false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg 0 rl 0
$phei rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1 roll 3
index sub Tl matrix currentmatrix/$ctm xd CorelPtrnDraw pop pop pop pop}{pop
pop}ifelse @rs}bd/CorelPtrnTileHoriz{CorelPtrnSetFirstTile 0 1 $tly 1 sub{dup
$psx mul $tx add{dup $llx gt{$pwid sub}{exit}ifelse}loop exch $phei mul $ty
exch sub 0 1 $tlx 1 sub{$pwid mul 3 copy 3 -1 roll add exch CorelPtrnPutTile
pop}for pop pop}for}bd/CorelPtrnTileVeritcal{CorelPtrnSetFirstTile 0 1 $tlx 1
sub{dup $pwid mul $tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}
{exit}ifelse}loop 0 1 $tly 1 sub{$phei mul 3 copy sub CorelPtrnPutTile pop}for
pop pop}for}bd L2? UseLevel 2 ge and{/CorelPtrnL2Pattern{@sv[$pn cvlit load
aload pop pop]$pwid $phei $pn cvlit load aload pop pop pop pop pathbbox pop pop
2 index sub exch 3 index sub 4 -2 roll pop pop exch matrix identmatrix
translate/PatternMatrix xd/PatternYStep xd/PatternXStep xd/PatternBBox xd
currentdict/PatternMainDict xd <</PaintType 1/PatternType 1/TilingType 1/BBox
PatternBBox/XStep PatternXStep/YStep PatternYStep/PaintProc{begin
PatternMainDict begin $ctm currentmatrix pop 0 CorelPtrnDraw end end}bind >>
PatternMatrix makepattern setpattern fill @rs}def}if
end
%%EndResource
%%EndProlog
%%BeginSetup
wCorel11Dict begin
@BeginSysCorelDict
2.6131 setmiterlimit
1.00 setflat
/$fst 128 def
%%EndSetup
%%Page: 1 1
%LogicalPage: 1
%%BeginPageSetup
@sv
@sm
@sv
%%EndPageSetup
@rax %Note: Object
147.81600 74.66400 428.47200 355.32000 @E
0 O 0 @g
0.00 0.00 0.00 1.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
428.47200 216.43200 m
286.70400 355.32000 L
147.81600 213.62400 L
286.70400 74.66400 L
428.47200 216.43200 L
@c
B
@rax %Note: Object
286.70400 80.35200 422.78400 216.43200 @E
0 O 0 @g
0.60 0.00 0.40 0.58 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
414.28800 216.43200 m
422.78400 216.43200 L
286.70400 80.35200 L
286.70400 88.84800 L
414.28800 216.43200 L
@c
B
@rax %Note: Object
153.50400 80.35200 286.70400 213.62400 @E
0 O 0 @g
0.60 0.00 0.40 0.51 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
153.50400 213.62400 m
162.00000 213.62400 L
286.70400 88.84800 L
286.70400 80.35200 L
153.50400 213.62400 L
@c
B
@rax %Note: Object
153.50400 213.62400 286.70400 349.63200 @E
0 O 0 @g
0.60 0.00 0.40 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
286.70400 341.20800 m
286.70400 349.63200 L
153.50400 213.62400 L
162.00000 213.62400 L
286.70400 341.20800 L
@c
B
@rax %Note: Object
286.70400 216.43200 422.78400 349.63200 @E
0 O 0 @g
0.73 0.00 0.99 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
286.70400 349.63200 m
286.70400 341.20800 L
414.28800 216.43200 L
422.78400 216.43200 L
286.70400 349.63200 L
@c
B
@rax %Note: Object
162.00000 88.84800 414.28800 341.20800 @E
0 O 0 @g
0.60 0.00 0.40 0.40 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
286.70400 88.84800 m
414.28800 216.43200 L
286.70400 341.20800 L
162.00000 213.62400 L
286.70400 88.84800 L
@c
B
@rax %Note: Object
165.81600 103.03200 423.72000 344.01600 @E
0 O 0 @g
0.00 0.00 0.00 1.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
313.20000 312.84000 m
321.69600 304.27200 L
321.69600 304.27200 L
263.08800 244.80000 L
263.08800 304.27200 L
268.77600 304.27200 L
277.27200 312.84000 L
277.27200 335.44800 L
268.77600 344.01600 L
174.31200 344.01600 L
165.81600 335.44800 L
165.81600 312.84000 L
174.31200 304.27200 L
180.93600 304.27200 L
180.93600 111.52800 L
191.30400 103.03200 L
220.60800 103.03200 L
423.72000 312.84000 L
423.72000 335.44800 L
415.22400 344.01600 L
322.63200 344.01600 L
313.20000 335.44800 L
313.20000 312.84000 L
@c
B
@rax %Note: Object
171.43200 309.96000 271.58400 338.40000 @E
0 O 0 @g
0.00 0.00 0.00 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
177.12000 309.96000 m
171.43200 315.64800 L
171.43200 332.64000 L
177.12000 338.32800 L
265.96800 338.40000 L
271.58400 332.64000 L
265.96800 329.90400 L
263.08800 332.64000 L
177.12000 318.52800 L
177.12000 309.96000 L
@c
B
@rax %Note: Object
187.48800 108.72000 194.11200 315.64800 @E
0 O 0 @g
0.00 0.00 0.00 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
194.11200 108.72000 m
187.48800 114.40800 L
187.48800 310.03200 L
194.11200 315.64800 L
194.11200 108.72000 L
@c
B
@rax %Note: Object
247.03200 207.93600 341.56800 315.64800 @E
0 O 0 @g
0.00 0.00 0.00 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
335.88000 309.96000 m
341.56800 315.64800 L
341.56800 304.27200 L
247.03200 207.93600 L
257.47200 230.61600 L
335.88000 309.96000 L
@c
B
@rax %Note: Object
177.12000 309.96000 196.05600 321.33600 @E
0 O 0 @g
0.00 0.00 0.00 0.50 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
196.05600 318.45600 m
194.11200 315.64800 L
187.48800 309.96000 L
177.12000 309.96000 L
177.12000 321.33600 L
196.05600 318.45600 L
@c
B
@rax %Note: Object
247.03200 208.00800 271.58400 332.64000 @E
0 O 0 @g
0.00 0.00 0.00 0.50 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
257.47200 309.96000 m
257.47200 230.61600 L
247.03200 208.00800 L
247.03200 315.72000 L
263.08800 315.72000 L
265.96800 318.52800 L
263.08800 332.64000 L
271.58400 332.64000 L
271.58400 315.64800 L
265.96800 309.96000 L
257.47200 309.96000 L
@c
B
@rax %Note: Object
318.88800 309.96000 418.10400 338.32800 @E
0 O 0 @g
0.00 0.00 0.00 0.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
324.50400 309.96000 m
318.88800 315.64800 L
318.88800 332.64000 L
325.44000 338.32800 L
411.48000 338.32800 L
418.10400 332.64000 L
408.60000 324.14400 L
324.50400 318.52800 L
324.50400 309.96000 L
@c
B
@rax %Note: Object
194.11200 108.72000 418.10400 332.64000 @E
0 O 0 @g
0.00 0.00 0.00 0.50 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
418.10400 315.64800 m
218.66400 108.72000 L
194.11200 108.72000 L
194.11200 117.21600 L
212.11200 117.21600 L
411.48000 321.33600 L
408.60000 332.64000 L
418.10400 332.64000 L
418.10400 315.64800 L
@c
B
@rax %Note: Object
324.50400 309.96000 343.44000 321.33600 @E
0 O 0 @g
0.00 0.00 0.00 0.50 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
343.44000 318.45600 m
341.49600 315.64800 L
335.88000 309.96000 L
324.50400 309.96000 L
324.50400 321.33600 L
343.44000 318.45600 L
@c
B
@rax %Note: Object
177.12000 114.40800 412.41600 332.71200 @E
0 O 0 @g
0.00 0.00 0.00 0.20 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
247.03200 208.00800 m
247.03200 315.72000 L
263.08800 315.72000 L
265.96800 318.52800 L
265.96800 329.90400 L
263.08800 332.71200 L
179.92800 332.71200 L
177.12000 329.90400 L
177.12000 318.52800 L
179.92800 315.72000 L
194.11200 315.72000 L
194.11200 117.21600 L
197.78400 114.40800 L
213.98400 114.40800 L
412.41600 321.33600 L
412.41600 329.47200 L
409.53600 332.71200 L
327.38400 332.71200 L
324.50400 329.90400 L
324.50400 318.45600 L
327.38400 315.64800 L
341.56800 315.64800 L
341.56800 304.27200 L
247.03200 208.00800 L
@c
B
@rax %Note: Object
292.89600 185.18400 326.95200 213.55200 @E
0 O 0 @g
0.00 0.00 0.00 1.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
298.58400 207.86400 m
305.20800 213.55200 L
322.20000 213.55200 L
326.95200 207.86400 L
321.26400 190.87200 L
314.71200 185.18400 L
297.72000 185.18400 L
292.89600 190.87200 L
298.58400 207.86400 L
@c
B
@rax %Note: Object
304.27200 114.33600 424.22400 182.37600 @E
0 O 0 @g
0.00 0.00 0.00 1.00 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
304.27200 114.33600 m
321.33600 165.31200 L
315.64800 165.31200 L
321.33600 182.37600 L
346.75200 182.37600 L
352.44000 176.68800 L
356.25600 176.68800 L
361.87200 182.37600 L
380.80800 182.37600 L
386.49600 176.68800 L
390.24000 176.68800 L
395.92800 182.37600 L
416.66400 182.37600 L
424.22400 171.00000 L
411.84000 130.68000 L
417.45600 130.68000 L
411.98400 114.33600 L
377.92800 114.33600 L
391.24800 154.00800 L
382.75200 154.00800 L
374.90400 130.82400 L
380.52000 130.82400 L
375.19200 114.33600 L
341.13600 114.33600 L
354.38400 154.00800 L
345.88800 154.00800 L
337.96800 130.68000 L
343.65600 130.68000 L
338.32800 114.33600 L
304.27200 114.33600 L
@c
B
@rax %Note: Object
311.83200 120.02400 418.46400 176.68800 @E
0 O 0 @g
0.00 0.00 0.00 0.20 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
414.07200 176.68800 m
418.46400 170.42400 L
404.49600 125.64000 L
410.11200 125.64000 L
408.24000 120.02400 L
385.56000 120.02400 L
398.80800 159.69600 L
378.93600 159.69600 L
367.63200 125.64000 L
373.24800 125.64000 L
371.37600 120.02400 L
348.69600 120.02400 L
361.94400 159.69600 L
342.07200 159.69600 L
330.76800 125.64000 L
336.45600 125.64000 L
334.51200 120.02400 L
311.83200 120.02400 L
328.89600 171.00000 L
323.20800 171.00000 L
325.08000 176.68800 L
345.88800 176.68800 L
351.57600 171.00000 L
357.19200 171.00000 L
362.88000 176.68800 L
379.87200 176.68800 L
385.56000 171.00000 L
391.24800 171.00000 L
396.93600 176.68800 L
414.07200 176.68800 L
@c
B
@rax %Note: Object
267.40800 114.33600 318.45600 182.37600 @E
0 O 0 @g
0.00 0.00 0.00 1.00 k
/$fm 0 def
318.45600 182.37600 m
301.10400 130.75200 L
307.00800 130.75200 L
301.39200 114.33600 L
267.40800 114.33600 L
284.40000 165.31200 L
278.71200 165.31200 L
318.45600 182.37600 L
@c
278.71200 165.31200 m
284.40000 182.37600 L
318.45600 182.37600 L
@c
F
@rax %Note: Object
267.40800 114.33600 318.45600 182.37600 @E
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
318.45600 182.37600 m
301.10400 130.75200 L
307.00800 130.75200 L
301.39200 114.33600 L
267.40800 114.33600 L
284.40000 165.31200 L
278.71200 165.31200 L
@c
278.71200 165.31200 m
284.40000 182.37600 L
318.45600 182.37600 L
@c
S
@rax %Note: Object
274.96800 120.02400 310.89600 176.68800 @E
0 O 0 @g
0.00 0.00 0.00 0.20 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
297.64800 120.02400 m
299.52000 125.64000 L
293.83200 125.64000 L
310.89600 176.68800 L
287.28000 176.68800 L
285.33600 171.00000 L
291.96000 171.00000 L
274.96800 120.02400 L
297.64800 120.02400 L
@c
B
@rax %Note: Object
299.52000 190.87200 320.32800 207.86400 @E
0 O 0 @g
0.00 0.00 0.00 0.20 k
0 J 0 j [] 0 d 0 R 0 @G
0.00 0.00 0.00 1.00 K
0 0.21600 0.21600 0.00000 @w
/$fm 0 def
316.51200 193.68000 m
320.32800 205.05600 L
318.45600 207.86400 L
307.08000 207.86400 L
303.33600 205.05600 L
299.52000 193.68000 L
301.46400 190.87200 L
312.84000 190.87200 L
316.51200 193.68000 L
@c
B
%%PageTrailer
@rs
@rs
%%Trailer
@EndSysCorelDict
end
%%DocumentSuppliedResources: procset wCorel11Dict 11.0 0
%%EOF

View File

@ -0,0 +1,830 @@
===============================================================================
= V ä l k o m m e n t i l l h a n d l e d n i n g e n i V i m - Ver. 1.5 =
===============================================================================
Vim är en väldigt kraftfull redigerare som har många kommandon, alltför
många att förklara i en handledning som denna. Den här handledningen är
gjord för att förklara tillräckligt många kommandon så att du enkelt ska
kunna använda Vim som en redigerare för alla ändamål.
Den beräknade tiden för att slutföra denna handledning är 25-30 minuter,
beroende på hur mycket tid som läggs ned på experimentering.
Kommandona i lektionerna kommer att modifiera texten. Gör en kopia av den
här filen att öva på (om du startade "vimtutor är det här redan en kopia).
Det är viktigt att komma ihåg att den här handledningen är konstruerad
att lära vid användning. Det betyder att du måste köra kommandona för att
lära dig dem ordentligt. Om du bara läser texten så kommer du att glömma
kommandona!
Försäkra dig nu om att din Caps-Lock tangent INTE är aktiv och tryck på
j-tangenten tillräckligt många gånger för att förflytta markören så att
Lektion 1.1 fyller skärmen helt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.1: FLYTTA MARKÖREN
** För att flytta markören, tryck på tangenterna h,j,k,l som indikerat. **
^
k Tips:
< h l > h-tangenten är till vänster och flyttar till vänster.
j l-tangenten är till höger och flyttar till höger.
v j-tangenten ser ut som en pil ned.
1. Flytta runt markören på skärmen tills du känner dig bekväm.
2. Håll ned tangenten pil ned (j) tills att den repeterar.
---> Nu vet du hur du tar dig till nästa lektion.
3. Flytta till Lektion 1.2, med hjälp av ned tangenten.
Notera: Om du är osäker på någonting du skrev, tryck <ESC> för att placera dig
dig i Normal-läge. Skriv sedan om kommandot.
Notera: Piltangenterna borde också fungera. Men om du använder hjkl så kommer
du att kunna flytta omkring mycket snabbare, när du väl vant dig vid
det.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.2: STARTA OCH AVSLUTA VIM
!! NOTERA: Innan du utför någon av punkterna nedan, läs hela lektionen!!
1. Tryck <ESC>-tangenten (för att se till att du är i Normal-läge).
2. Skriv: :q! <ENTER>.
---> Detta avslutar redigeraren UTAN att spara några ändringar du gjort.
Om du vill spara ändringarna och avsluta skriv:
:wq <ENTER>
3. När du ser skal-prompten, skriv kommandot som tog dig in i den här
handledningen. Det kan vara: vimtutor <ENTER>
Normalt vill du använda: vim tutor <ENTER>
---> 'vim' betyder öppna redigeraren vim, 'tutor' är filen du vill redigera.
4. Om du har memorerat dessa steg och känner dig självsäker, kör då stegen
1 till 3 för att avsluta och starta om redigeraren. Flytta sedan ned
markören till Lektion 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.3: TEXT REDIGERING - BORTTAGNING
** När du är i Normal-läge tryck x för att ta bort tecknet under markören. **
1. Flytta markören till raden nedan med markeringen --->.
2. För att rätta felen, flytta markören tills den står på tecknet som ska
tas bort. fix the errors, move the cursor until it is on top of the
3. Tryck på x-tangenten för att ta bort det felaktiga tecknet.
4. Upprepa steg 2 till 4 tills meningen är korrekt.
---> Kkon hoppadee övverr måånen.
5. Nu när raden är korrekt, gå till Lektion 1.4.
NOTERA: När du går igenom den här handledningen, försök inte att memorera, lär
genom användning.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.4: TEXT REDIGERING - INFOGNING
** När du är i Normal-läge tryck i för att infoga text. **
1. Flytta markören till den första raden nedan med markeringen --->.
2. För att göra den första raden likadan som den andra, flytta markören till
det första tecknet EFTER där text ska infogas.
3. Tryck i och skriv in det som saknas.
4. När du rättat ett fel tryck <ESC> för att återgå till Normal-läge.
Upprepa steg 2 till 4 för att rätta meningen.
---> Det sakns här .
---> Det saknas lite text från den här raden.
5. När du känner dig bekväm med att infoga text, gå till sammanfattningen
nedan.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 1 SAMMANFATTNING
1. Markören flyttas genom att använda piltangenterna eller hjkl-tangenterna.
h (vänster) j (ned) k (upp) l (höger)
2. För att starta Vim (från %-prompten) skriv: vim FILNAMN <ENTER>
3. För att avsluta Vim skriv: <ESC> :q! <ENTER> för att kasta ändringar.
ELLER skriv: <ESC> :wq <ENTER> för att spara ändringar.
4. För att ta bort tecknet under markören i Normal-läge skriv: x
5. För att infoga text vid markören i Normal-läge skriv:
i skriv in text <ESC>
NOTERA: Genom att trycka <ESC> kommer du att placeras i Normal-läge eller
avbryta ett delvis färdigskrivet kommando.
Fortsätt nu med Lektion 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.1: BORTTAGNINGSKOMMANDON
** Skriv dw för att radera till slutet av ett ord. **
1. Tryck <ESC> för att försäkra dig om att du är i Normal-läge.
2. Flytta markören till raden nedan markerad --->.
3. Flytta markören till början av ett ord som måste raderas.
4. Skriv dw för att radera ordet.
NOTERA: Bokstäverna dw kommer att synas på den sista raden på skärmen när
du skriver dem. Om du skrev något fel, tryck <ESC> och börja om.
---> Det är ett några ord roliga att som inte hör hemma i den här meningen.
5. Upprepa stegen 3 och 4 tills meningen är korrekt och gå till Lektion 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.2: FLER BORTTAGNINGSKOMMANDON
** Skriv d$ för att radera till slutet på raden. **
1. Tryck <ESC> för att försäkra dig om att du är i Normal-läge.
2. Flytta markören till raden nedan markerad --->.
3. Flytta markören till slutet på den rätta raden (EFTER den första . ).
4. Skriv d$ för att radera till slutet på raden.
---> Någon skrev slutet på den här raden två gånger. den här raden två gånger.
5. Gå vidare till Lektion 2.3 för att förstå vad det är som händer.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.3: KOMMANDON OCH OBJEKT
Syntaxen för d raderingskommandot är följande:
[nummer] d objekt ELLER d [nummer] objekt
Var:
nummer - är antalet upprepningar av kommandot (valfritt, standard=1).
d - är kommandot för att radera.
objekt - är vad kommandot kommer att operera på (listade nedan).
En kort lista över objekt:
w - från markören till slutet av ordet, inklusive blanksteget.
e - från markören till slutet av ordet, EJ inklusive blanksteget.
$ - från markören till slutet på raden.
NOTERA: För den äventyrslystne, genom att bara trycka på objektet i
Normal-läge (utan kommando) så kommer markören att flyttas som
angivet i objektlistan.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.4: ETT UNDANTAG TILL 'KOMMANDO-OBJEKT'
** Skriv dd för att radera hela raden. **
På grund av hur vanligt det är att ta bort hela rader, valde upphovsmannen
till Vi att det skulle vara enklare att bara trycka d två gånger i rad för
att ta bort en rad.
1. Flytta markören till den andra raden i frasen nedan.
2. Skriv dd för att radera raden.
3. Flytta nu till den fjärde raden.
4. Skriv 2dd (kom ihåg: nummer-kommando-objekt) för att radera de två
raderna.
1) Roses are red,
2) Mud is fun,
3) Violets are blue,
4) I have a car,
5) Clocks tell time,
6) Sugar is sweet
7) And so are you.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.5: ÅNGRA-KOMMANDOT
** Skriv u för att ångra det senaste kommandona, U för att fixa en hel rad. **
1. Flytta markören till slutet av raden nedan markerad ---> och placera den
på det första felet.
2. Skriv x för att radera den första felaktiga tecknet.
3. Skriv nu u för att ångra det senaste körda kommandot.
4. Rätta den här gången alla felen på raden med x-kommandot.
5. Skriv nu U för att återställa raden till dess ursprungliga utseende.
6. Skriv nu u några gånger för att ångra U och tidigare kommandon.
7. Tryck nu CTRL-R (håll inne CTRL samtidigt som du trycker R) några gånger
för att upprepa kommandona (ångra ångringarna).
---> Fiixa felen ppå deen häär meningen och återskapa dem med ångra.
8. Det här är väldigt användbara kommandon. Gå nu vidare till
Lektion 2 Sammanfattning.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 2 SAMMANFATTNING
1. För att radera från markören till slutet av ett ord skriv: dw
2. För att radera från markören till slutet av en rad skriv: d$
3. För att radera en hel rad skriv: dd
4. Syntaxen för ett kommando i Normal-läge är:
[nummer] kommando objekt ELLER kommando [nummer] objekt
där:
nummer - är hur många gånger kommandot kommandot ska repeteras
kommando - är vad som ska göras, t.ex. d för att radera
objekt - är vad kommandot ska operera på, som t.ex. w (ord),
$ (till slutet av raden), etc.
5. För att ångra tidigare kommandon, skriv: u (litet u)
För att ångra alla tidigare ändringar på en rad skriv: U (stort U)
För att ångra ångringar tryck: CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.1: KLISTRA IN-KOMMANDOT
** Skriv p för att klistra in den senaste raderingen efter markören. **
1. Flytta markören till den första raden i listan nedan.
2. Skriv dd för att radera raden och lagra den i Vims buffert.
3. Flytta markören till raden OVANFÖR där den raderade raden borde vara.
4. När du är i Normal-läge, skriv p för att byta ut raden.
5. Repetera stegen 2 till 4 för att klistra in alla rader i rätt ordning.
d) Kan du lära dig också?
b) Violetter är blå,
c) Intelligens fås genom lärdom,
a) Rosor är röda,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.2: ERSÄTT-KOMMANDOT
** Skriv r och ett tecken för att ersätta tecknet under markören. **
1. Flytta markören till den första raden nedan markerad --->.
2. Flytta markören så att den står på det första felet.
3. Skriv r och sedan det tecken som borde ersätta felet.
4. Repetera steg 2 och 3 tills den första raden är korrekt.
---> När drn här ruden skrevs, trickte någon på fil knappar!
---> När den här raden skrevs, tryckte någon på fel knappar!
5. Gå nu vidare till Lektion 3.2.
NOTERA: Kom ihåg att du skall lära dig genom användning, inte genom memorering.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.3: ÄNDRA-KOMMANDOT
** För att ändra en del eller ett helt ord, skriv cw . **
1. Flytta markören till den första redan nedan markerad --->.
2. Placera markören på d i rdrtn.
3. Skriv cw och det rätta ordet (i det här fallet, skriv "aden".)
4. Tryck <ESC> och flytta markören till nästa fel (det första tecknet som
ska ändras.)
5. Repetera steg 3 och 4 tills den första raden är likadan som den andra.
---> Den här rdrtn har några otf som brhotrt ändras mrf ändra-komjendit.
---> Den här raden har några ord som behöver ändras med ändra-kommandot.
Notera att cw inte bara ändrar ordet, utan även placerar dig i infogningsläge.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.4: FLER ÄNDRINGAR MED c
** Ändra-kommandot används på samma objekt som radera. **
1. Ändra-kommandot fungerar på samma sätt som radera. Syntaxen är:
[nummer] c objekt ELLER c [nummer] objekt
2. Objekten är också de samma, som t.ex. w (ord), $ (slutet av raden), etc.
3. Flytta till den första raden nedan markerad -->.
4. Flytta markören till det första felet.
5. Skriv c$ för att göra resten av raden likadan som den andra och tryck
<ESC>.
---> Slutet på den här raden behöver hjälp med att få den att likna den andra.
---> Slutet på den här raden behöver rättas till med c$-kommandot.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 3 SAMMANFATTNING
1. För att ersätta text som redan har blivit raderad, skriv p .
Detta klistrar in den raderade texten EFTER markören (om en rad raderades
kommer den att hamna på raden under markören.
2. För att ersätta tecknet under markören, skriv r och sedan tecknet som
kommer att ersätta orginalet.
3. Ändra-kommandot låter dig ändra det angivna objektet från markören till
slutet på objektet. eg. Skriv cw för att ändra från markören till slutet
på ordet, c$ för att ändra till slutet på en rad.
4. Syntaxen för ändra-kommandot är:
[nummer] c objekt ELLER c [nummer] objekt
Gå nu till nästa lektion.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.1: POSITION OCH FILSTATUS
** Tryck CTRL-g för att visa din position i filen och filstatusen.
Tryck SHIFT-G för att flytta till en rad i filen. **
Notera: Läsa hela den lektion innan du utför något av stegen!!
1. Håll ned Ctrl-tangenten och tryck g . En statusrad med filnamn och raden
du befinner dig på kommer att synas. Kom ihåg radnummret till Steg 3.
2. Tryck shift-G för att flytta markören till slutet på filen.
3. Skriv in nummret på raden du var på och tryck sedan shift-G. Detta kommer
att ta dig tillbaka till raden du var på när du först tryckte Ctrl-g.
(När du skriver in nummren, kommer de INTE att visas på skärmen.)
4. Om du känner dig säker på det här, utför steg 1 till 3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.2: SÖK-KOMMANDOT
** Skriv / följt av en fras för att söka efter frasen. **
1. I Normal-läge skriv /-tecknet. Notera att det och markören blir synlig
längst ned på skärmen precis som med :-kommandot.
2. Skriv nu "feeel" <ENTER>. Det här är ordet du vill söka efter.
3. För att söka efter samma fras igen, tryck helt enkelt n .
För att söka efter samma fras igen i motsatt riktning, tryck Shift-N .
4. Om du vill söka efter en fras bakåt i filen, använd kommandot ? istället
för /.
---> "feeel" är inte rätt sätt att stava fel: feeel är ett fel.
Notera: När sökningen når slutet på filen kommer den att fortsätta vid början.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.3: SÖKNING EFTER MATCHANDE PARENTESER
** Skriv % för att hitta en matchande ),], or } . **
1. Placera markören på någon av (, [, or { på raden nedan markerad --->.
2. Skriv nu %-tecknet.
3. Markören borde vara på den matchande parentesen eller hakparentesen.
4. Skriv % för att flytta markören tillbaka till den första hakparentesen
(med matchning).
---> Det ( här är en testrad med (, [ ] och { } i den. ))
Notera: Det här är väldigt användbart vid avlusning av ett program med icke
matchande parenteser!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.4: ETT SÄTT ATT ÄNDRA FEL
** Skriv :s/gammalt/nytt/g för att ersätta "gammalt" med "nytt". **
1. Flytta markören till raden nedan markerad --->.
2. Skriv :s/denn/den <ENTER> . Notera att det här kommandot bara ändrar den
första förekomsten på raden.
3. Skriv nu :s/denn/den/g vilket betyder ersätt globalt på raden.
Det ändrar alla förekomster på raden.
---> denn bästa tiden att se blommor blomma är denn på våren.
4. För att ändra alla förekomster av en teckensträng mellan två rader,
skriv :#,#s/gammalt/nytt/g där #,# är de två radernas radnummer.
Skriv :%s/gammtl/nytt/g för att ändra varje förekomst i hela filen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 4 SAMMANFATTNING
1. Ctrl-g visar din position i filen och filstatusen.
Shift-G flyttar till slutet av filen. Ett radnummer följt Shift-G
flyttar till det radnummret.
2. Skriver man / följt av en fras söks det FRAMMÅT efter frasen.
Skriver man ? följt av en fras söks det BAKÅT efter frasen.
Efter en sökning skriv n för att hitta nästa förekomst i samma riktning
eller Shift-N för att söka i den motsatta riktningen.
3. Skriver man % när markören är på ett (,),[,],{, eller } hittas dess
matchande par.
4. För att ersätta den första gammalt med nytt på en rad skriv :s/gammlt/nytt
För att ersätta alla gammlt med nytt på en rad skriv :s/gammlt/nytt/g
För att ersätta fraser mellan rad # och rad # skriv :#,#s/gammlt/nytt/g
För att ersätta alla förekomster i filen skriv :%s/gammlt/nytt/g
För att bekräfta varje gång lägg till "c" :%s/gammlt/nytt/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.1: HUR MAN KÖR ETT EXTERNT KOMMANDO
** Skriv :! följt av ett externt kommando för att köra det kommandot. **
1. Skriv det välbekanta kommandot : för att placera markören längst ned
på skärmen på skärmen. Detta låter dig skriva in ett kommando.
2. Skriv nu ! (utropstecken). Detta låter dig köra ett godtyckligt externt
skalkommando.
3. Som ett exempel skriv ls efter ! och tryck sedan <ENTER>. Detta kommer
att visa dig en listning av din katalog, precis som om du kört det vid
skalprompten. Använd :!dir om ls inte fungerar.
Notera: Det är möjligt att köra vilket externt kommando som helst på det här
sättet.
Notera: Alla :-kommandon måste avslutas med att trycka på <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.2: MER OM ATT SPARA FILER
** För att spara ändringar gjorda i en fil, skriv :w FILNAMN. **
1. Skriv :!dir eller :!ls för att få en listning av din katalog.
Du vet redan att du måste trycka <ENTER> efter det här.
2. Välj ett filnamn som inte redan existerar, som t.ex. TEST.
3. Skriv nu: :w TEST (där TEST är filnamnet du valt.)
4. Det här sparar hela filen (Vim handledningen) under namnet TEST.
För att verifiera detta, skriv :!dir igen för att se din katalog
Notera: Om du skulle avsluta Vim och sedan öppna igen med filnamnet TEST så
skulle filen vara en exakt kopia av handledningen när du sparade den.
5. Ta nu bort filen genom att skriva (MS-DOS): :!del TEST
eller (Unix): :!rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.3: ETT SELEKTIVT SPARA-KOMMANDO
** För att spara en del av en fil, skriv :#,# w FILNAMN **
1. Ännu en gång, skriv :!dir eller :!ls för att få en listning av din
katalog och välj ett passande filnamn som t.ex. TEST.
2. Flytta markören högst upp på den här sidan och tryck Ctrl-g för att få
reda på radnumret på den raden. KOM IHÅG DET NUMMRET!
3. Flytta nu längst ned på sidan och skriv Ctrl-g igen.
KOM IHÅG DET RADNUMMRET OCKSÅ!
4. För att BARA spara en sektion till en fil, skriv :#,# w TEST
där #,# är de två nummren du kom ihåg (toppen, botten) och TEST är
ditt filnamn.
5. Ännu en gång, kolla så att filen är där med :!dir men radera den INTE.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.4: TA EMOT OCH FÖRENA FILER
** För att infoga innehållet av en fil, skriv :r FILNAMN **
1. Skriv :!dir för att försäkra dig om att TEST-filen från tidigare
fortfarande är kvar.
2. Placera markören högst upp på den här sidan.
NOTERA: Efter att du kört Steg 3 kommer du att se Lektion 5.3.
Flytta då NED till den här lektionen igen.
3. Ta nu emot din TEST-fil med kommandot :r TEST där TEST är namnet på
filen.
NOTERA: Filen du tar emot placeras där markören är placerad.
4. För att verifiera att filen togs emot, gå tillbaka och notera att det nu
finns två kopior av Lektion 5.3, orginalet och filversionen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 5 SAMMANFATTNING
1. :!kommando kör ett externt kommando.
Några användbara exempel är:
(MS-DOS) (Unix)
:!dir :!ls - visar en kataloglistning.
:!del FILNAMN :!rm FILNAMN - tar bort filen FILNAMN.
2. :w FILNAMN sparar den aktuella Vim-filen med namnet FILNAMN.
3. :#,#w FILNAMN sparar raderna # till # i filen FILNAMN.
4. :r FILNAMN tar emot filen FILNAMN och infogar den i den aktuella filen
efter markören.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.1: ÖPPNA-KOMMANDOT
** Skriv o för att öppna en rad under markören och placera dig i
Infoga-läge. **
1. Flytta markören till raden nedan markerad --->.
2. Skriv o (litet o) för att öppna upp en rad NEDANFÖR markören och placera
dig i Infoga-mode.
3. Kopiera nu raden markerad ---> och tryck <ESC> för att avsluta
Infoga-läget.
---> Efter du skrivit o placerad markören på en öppen rad i Infoga-läge.
4. För att öppna upp en rad OVANFÖR markören, skriv ett stort O , istället
för ett litet o. Pröva detta på raden nedan.
Öppna upp en rad ovanför denna genom att trycka Shift-O när markören står här.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.2: LÄGG TILL-KOMMANDOT
** Skriv a för att infoga text EFTER markören. **
1. Flytta markören till slutet av den första raden nedan markerad ---> genom
att skriv $ i Normal-läge.
2. Skriv ett a (litet a) för att lägga till text EFTER tecknet under
markören. (Stort A lägger till i slutet av raden.)
Notera: Detta undviker att behöva skriva i , det sista tecknet, texten att
infoga, <ESC>, högerpil, och slutligen, x, bara för att lägga till i
slutet på en rad!
3. Gör nu färdigt den första raden. Notera också att lägga till är likadant
som Infoga-läge, enda skillnaden är positionen där texten blir infogad.
---> Här kan du träna
---> Här kan du träna på att lägga till text i slutet på en rad.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.3: EN ANNAN VERSION AV ERSÄTT
** Skriv ett stort R för att ersätta fler än ett tecken. **
1. Flytta markören till den första raden nedan markerad --->.
2. Placera markören vid början av det första ordet som är annorlunda jämfört
med den andra raden markerad ---> (ordet "sista").
3. Skriv nu R och ersätt resten av texten på den första raden genom att
skriva över den gamla texten så att den första raden blir likadan som
den andra.
---> För att få den första raden lika som den sista, använd tangenterna.
---> För att få den första raden lika som den andra, skriv R och den nya texten.
4. Notera att när du trycker <ESC> för att avsluta, så blir eventuell
oförändrad text kvar.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.4: SÄTT FLAGGOR
** Sätt en flagga så att en sökning eller ersättning ignorerar storlek **
1. Sök efter "ignore" genom att skriva:
/ignore
Repetera flera gånger genom att trycka på n-tangenten
2. Sätt 'ic' (Ignore Case) flaggan genom att skriva:
:set ic
3. Sök nu efter "ignore" igen genom att trycka: n
Repeat search several more times by hitting the n key
4. Sätt 'hlsearch' and 'incsearch' flaggorna:
:set hls is
5. Skriv nu in sök-kommandot igen, och se vad som händer:
/ignore
6. För att ta bort framhävningen av träffar, skriv
:nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 6 SAMMANFATTNING
1. Genom att skriva o öpnnas en rad NEDANFÖR markören och markören placeras
på den öppna raden i Infoga-läge.
Genom att skriva ett stort O öppnas raden OVANFÖR raden som markören är
på.
2. Skriv ett a för att infoga text EFTER tecknet som markören står på.
Genom att skriva ett stort A läggs text automatiskt till i slutet på
raden.
3. Genom att skriva ett stort R hamnar du i Ersätt-läge till <ESC> trycks
för att avsluta.
4. Genom att skriva ":set xxx" sätts flaggan "xxx"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 7: ON-LINE HJÄLP-KOMMANDON
** Använd on-line hjälpsystemet **
Vim har ett omfattande on-line hjälpsystem. För att komma igång pröva ett av
dessa tre:
- tryck <HELP> tangenten (om du har någon)
- tryck <F1> tangenten (om du har någon)
- skriv :help <ENTER>
Skriv :q <ENTER> för att stränga hjälpfönstret.
Du kan hitta hjälp om nästan allting, genom att ge ett argument till
":help" kommandot. Pröva dessa (glöm inte att trycka <ENTER>):
:help w
:help c_<T
:help insert-index
:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEKTION 8: SKAPA ETT UPPSTARTSSKRIPT
** Aktivera Vim- funktioner **
Vim har många fler funktioner än Vi, men de flesta av dem är inaktiverade som
standard. För att börja använda fler funktioner måste du skapa en "vimrc"-fil.
1. Börja redigera "vimrc"-filen, detta beror på ditt system:
:edit ~/.vimrc för Unix
:edit $VIM/_vimrc för MS-Windows
2. Läs nu texten i exempel "vimrc"-filen:
:read $VIMRUNTIME/vimrc_example.vim
3. Spara filen med:
:write
Nästa gång du startar Vim kommer den att använda syntaxframhävning.
Du kan lägga till alla inställningar du föredrar till den här "vimrc"-filen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Detta avslutar handledningen i Vim. Den var avsedd att ge en kort översikt av
redigeraren Vim, bara tillräckligt för att du ska kunna använda redigeraren
relativt enkelt. Den är långt ifrån komplett eftersom Vim har många många fler
kommandon. Läs användarmanualen härnäst: ":help user-manual".
För vidare läsning rekommenderas den här boken:
Vim - Vi Improved - av Steve Oualline
Förlag: New Riders
Den första boken som är endast behandlar Vim. Speciellt användbar för
nybörjare. Det finns många exempel och bilder.
Se http://iccf-holland.org/click5.html
Den här boken är äldre och behandlar mer Vi än Vim, men rekommenderas också:
Learning the Vi Editor - av Linda Lamb
Förlag: O'Reilly & Associates Inc.
Det är en bra bok för att lära sig nästan allt som du vill kunna göra med Vi.
Den sjätte upplagan inkluderar också information om Vim.
Den här handledningen är skriven av Michael C. Pierce och Robert K. Ware,
Colorado School of Mines med idéer från Charles Smith,
Colorado State University. E-post: bware@mines.colorado.edu.
Modifierad för Vim av Bram Moolenaar.
Översatt av Johan Svedberg <johan@svedberg.com>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -0,0 +1,812 @@
===============================================================================
= Xin chào mừng bạn đến với Hướng dẫn dùng Vim - Phiên bản 1.5 =
===============================================================================
Vim là một trình soạn thảo rất mạnh. Vim có rất nhiều câu lệnh,
chính vì thế không thể trình bày hết được trong cuốn hướng dẫn này.
Cuốn hướng dẫn chỉ đưa ra những câu lệnh để giúp bạn sử dụng Vim
được dễ dàng hơn. Đây cũng chính là mục đich của sách
Cần khoảng 25-30 phút để hoàn thành bài học, phụ thuộc vào thời
gian thực hành.
Các câu lệnh trong bài học sẽ thay đổi văn bản này. Vì thế hãy tạo
một bản sao của tập tin này để thực hành (nếu bạn dùng "vimtutor"
thì đây đã là bản sao).
Hãy nhớ rằng hướng dẫn này viết với nguyên tắc "học đi đôi với hành".
Có nghĩa là bạn cần chạy các câu lệnh để học chúng. Nếu chỉ đọc, bạn
sẽ quên các câu lệnh!
Bây giờ, cần chắc chắn là phím Shift KHÔNG bị nhấn và hãy nhấn phím
j đủ số lần cần thiết (di chuyển con trỏ) để Bài 1.1 hiện ra đầy đủ
trên màn hình.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 1.1: DI CHUYỂN CON TRỎ
** Để di chuyển con trỏ, nhấn các phím h,j,k,l như đã chỉ ra. **
^
k Gợi ý: phím h ở phía trái và di chuyển sang trái.
< h l > phím l ở bên phải và di chuyển sang phải.
j phím j trong như một mũi tên chỉ xuống
v
1. Di chuyển con trỏ quanh màn hình cho đến khi bạn quen dùng.
2. Nhấn và giữ phím (j) cho đến khi nó lặp lại.
---> Bây giờ bạn biết cách chuyển tới bài học thứ hai.
3. Sử dụng phím di chuyển xuống bài 1.2.
Chú ý: Nếu bạn không chắc chắn về những gì đã gõ, hãy nhấn <ESC> để chuyển vào
chế độ Câu lệnh, rồi gõ lại những câu lệnh mình muốn.
Chú ý: Các phím mũi tên cũng làm việc. Nhưng một khi sử dụng thành thạo hjkl,
bạn sẽ di chuyển con trỏ nhanh hơn so với các phím mũi tên.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 1.2: VÀO VÀ THOÁT VIM
!! CHÚ Ý: Trước khi thực hiện bất kỳ lệnh nào, xin hãy đọc cả bài học này!!
1. Nhấn phím <ESC> (để chắc chắn là bạn đang ở chế độ Câu lệnh).
2. Gõ: :q! <ENTER>.
---> Lệnh này sẽ thoát trình soạn thảo mà KHÔNG ghi nhớ bất kỳ thay đổi nào mà bạn đã làm.
Nếu bạn muốn ghi nhớ những thay đổi đó và thoát thì hãy gõ:
:wq <ENTER>
3. Khi thấy dấu nhắc shell, hãy gõ câu lệnh đã đưa bạn tới hướng dẫn này. Có
thể là lệnh: vimtutor vi <ENTER>
Thông thường bạn dùng: vim tutor.vi<ENTER>
---> 'vim' là trình soạn thảo vim, 'tutor.vi' là tập tin bạn muốn soạn thảo.
4. Nếu bạn đã nhớ và nắm chắc những câu lệnh trên, hãy thực hiện các bước từ
1 tới 3 để thoát và quay vào trình soạn thảo. Sau đó di chuyển con trỏ
tới Bài 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 1.3: SOẠN THẢO VĂN BẢN - XÓA
** Trong chế độ Câu lệnh nhấn x để xóa ký tự nằm dưới con trỏ. **
1. Di chuyển con trỏ tới dòng có dấu --->.
2. Để sửa lỗi, di chuyển con trỏ để nó nằm trên ký tự sẽ bị
xóa.
3. Nhấn phím x để xóa ký tự không mong muốn.
4. Lặp lại các bước từ 2 tới 4 để sửa lại câu.
---> Emm xiinh em đứnng chỗ nào cũnkg xinh.
5. Câu trên đã sửa xong, hãy chuyển tới Bài 1.4.
Chú ý: Khi học theo cuốn hướng dẫn này đừng cố nhớ, mà học từ thực hành.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 1.4: SOẠN THẢO VĂN BẢN - CHÈN
** Trong chế độ Câu lệnh nhấn i để chèn văn bản. **
1. Di chuyển con trỏ tới dòng có dấu ---> đầu tiên.
2. Để dòng thứ nhất giống hệt với dòng thứ hai, di chuyển con trỏ lên ký tự
đầu tiên NGAY SAU chỗ muốn chèn văn bản.
3. Nhấn i và gõ văn bản cần thêm.
4. Sau mỗi lần chèn từ còn thiếu nhấn <ESC> để trở lại chế dộ Câu lệnh.
Lặp lại các bước từ 2 tới 4 để sửa câu này.
---> Mot lam chang nen , ba cay chum lai hon cao.
---> Mot cay lam chang nen non, ba cay chum lai nen hon nui cao.
5. Sau khi thấy quen với việc chèn văn bản hãy chuyển tới phần tổng kết
ở dưới.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 1
1. Con trỏ được di chuyển bởi các phím mũi tên hoặc các phím hjkl.
h (trái) j (xuống) k (lên) l (phải)
2. Để vào Vim (từ dấu nhắc %) gõ: vim TÊNTẬPTIN <ENTER>
3. Muốn thoát Vim gõ: <ESC> :q! <ENTER> để vứt bỏ mọi thay đổi.
HOẶC gõ: <ESC> :wq <ENTER> để ghi nhớ thay đổi.
4. Để xóa bỏ ký tự nằm dưới con trỏ trong chế độ Câu lệnh gõ: x
5. Để chèn văn bản tại vị trí con trỏ trong chế độ Câu lệnh gõ:
i văn bản sẽ nhập <ESC>
CHÚ Ý: Nhấn <ESC> sẽ đưa bạn vào chế độ Câu lệnh hoặc sẽ hủy bỏ một câu lệnh
hay đoạn câu lệnh không mong muốn.
Bây giờ chúng ta tiếp tục với Bài 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 2.1: CÁC LỆNH XÓA
** Gõ dw để xóa tới cuối một từ. **
1. Nhấn <ESC> để chắc chắn là bạn đang trong chế độ Câu lệnh.
2. Di chuyển con trỏ tới dòng có dấu --->.
3. Di chuyển con trỏ tới ký tự đầu của từ cần xóa.
4. Gõ dw để làm từ đó biến mất.
CHÚ Ý: các ký tự dw sẽ xuất hiện trên dòng cuối cùng của màn hình khi bạn gõ
chúng. Nếu bạn gõ nhầm, hãy nhấn <ESC> và làm lại từ đầu.
---> Khi trái tỉm tìm tim ai như mùa đông giá lạnh lanh
Anh đâu thành cánh én nhỏ trùng khơi.
5. Lặp lại các bước cho đến khi sửa xong câu thơ rồi chuyển tới Bài 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 2.2: CÁC CÂU LỆNH XÓA KHÁC
** gõ d$ để xóa tới cuối một dòng. **
1. Nhấn <ESC> để chắc chắn là bạn đang trong chế độ Câu lệnh.
2. Di chuyển con trỏ tới dòng có dấu --->.
3. Di chuyển con trỏ tới cuối câu đúng (SAU dấu . đầu tiên).
4. Gõ d$ để xóa tới cuối dòng.
---> Đã qua đi những tháng năm khờ dại. thừa thãi.
5. Chuyển tới Bài 2.3 để hiểu cái gì đang xảy ra.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 2.3: CÂU LỆNH VÀ ĐỐI TƯỢNG
Câu lệnh xóa d có dạng như sau:
[số] d đối_tượng HOẶC d [số] đối_tượng
Trong đó:
số - là số lần thực hiện câu lệnh (không bắt buộc, mặc định=1).
d - là câu lệnh xóa.
đối_tượng - câu lệnh sẽ thực hiện trên chúng (liệt kê phía dưới).
Danh sách ngắn của đối tượng:
w - từ con trỏ tới cuối một từ, bao gồm cả khoảng trắng.
e - từ con trỏ tới cuối một từ, KHÔNG bao gồm khoảng trắng.
$ - từ con trỏ tới cuối một dòng.
CHÚ Ý: Dành cho những người ham tìm hiểu, chỉ nhấn đối tượng trong chế độ Câu
lệnh mà không có câu lệnh sẽ di chuyển con trỏ như trong danh sách trên.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 2.4: TRƯỜNG HỢP NGOẠI LỆ CỦA QUY LUẬT 'CÂU LỆNH-ĐỐI TƯỢNG'
** Gõ dd để xóa cả một dòng. **
Người dùng thường xuyên xóa cả một dòng, vì thế các nhà phát triển Vi đã
quyết định dùng hai chữ d để đơn giản hóa thao tác này.
1. Di chuyển con trỏ tới dòng thứ hai trong cụm phía dưới.
2. Gõ dd để xóa dòng này.
3. Bây giờ di chuyển tới dòng thứ tư.
4. Gõ 2dd (hãy nhớ lại bộ ba số-câu lệnh-đối tượng) để xóa hai dòng.
1) Trong tim em khắc sâu bao kỉ niệm
2) Tình yêu chân thành em dành cả cho anh
3) Dẫu cuộc đời như bể dâu thay đổi
4) Anh mãi là ngọn lửa ấm trong đêm
5) Đã qua đi những tháng năm khờ dại
7) Hãy để tự em lau nước mắt của mình
8) Lặng lẽ sống những đêm dài bất tận
9) Bao khổ đau chờ tia nắng bình minh
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 2.5: CÂU LỆNH "HỦY THAO TÁC"
** Nhấn u để hủy bỏ những câu lệnh cuối cùng, U để sửa cả một dòng. **
1. Di chuyển con trỏ tới dòng có dấu ---> và đặt con trỏ trên từ có lỗi
đầu tiên
2. Gõ x để xóa chữ cái gây ra lỗi đầu tiên.
3. Bây giờ gõ u để hủy bỏ câu lệnh vừa thự hiện (xóa chữ cái).
4. Dùng câu lệnh x để sửa lỗi cả dòng này.
5. Bây giờ gõ chữ U hoa để phục hồi trạng thái ban đầu của dòng.
6. Bây giờ gõ u vài lần để hủy bỏ câu lệnh U và các câu lệnh trước.
7. Bây giờ gõ CTRL-R (giữ phím CTRL và gõ R) và lầu để thực hiện
lại các câu lệnh (hủy bỏ các câu lệnh hủy bỏ).
---> Câyy ccó cộii, nuước csó nguuồn.
8. Đây là những câu lệnh rất hữu ích. Bây giờ chuyển tới Tổng kết Bài 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 2
1. Để xóa từ con trỏ tới cuối một từ gõ: dw
2. Để xóa từ con trỏ tới cuối một dòng gõ: d$
3. Để xóa cả một dòng gõ: dd
4. Một câu lệnh trong chế độ Câu lệnh có dạng:
[số] câu_lệnh đối_tượng HOẶC câu_lệnh [số] đối_tượng
trong đó:
số - là số lần thực hiện câu lệnh (không bắt buộc, mặc định=1).
câu_lệnh - là những gì thực hiện, ví dụ d dùng để xóa.
đối_tượng - câu lệnh sẽ thực hiện trên chúng, ví dụ w (từ),
$ (tới cuối một dòng), v.v...
5. Để hủy bỏ thao tác trước, gõ: u (chữ u thường)
Để hủy bỏ tất cả các thao tác trên một dòng, gõ: U (chữ U hoa)
Để hủy bỏ các câu lệnh hủy bỏ, gõ: CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 3.1: CÂU LỆNH DÁN
** Gõ p để dán những gì vừa xóa tới sau con trỏ. **
1. Di chuyển con trỏ tới dòng đầu tiên trong cụm ở dưới.
2. Gõ dd để xóa và ghi lại một dòng trong bộ nhớ đệm của Vim.
3. Di chuyển con trỏ tới dòng Ở TRÊN chỗ cần dán.
4. Trong chế độ Câu lệnh, gõ p để thay thế dòng.
5. Lặp lại các bước từ 2 tới 4 để đặt các dòng theo đúng thứ tự của chúng.
d) Niềm vui như gió xưa bay nhè nhẹ
b) Em vẫn mong anh sẽ đến với em
c) Đừng để em mất đi niềm hy vọng đó
a) Ai sẽ giúp em vượt qua sóng gió
e) Dễ ra đi khó giữ lại bên mình
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 3.2: CÂU LỆNH THAY THẾ
** Gõ r và một ký tự để thay thế ký tự nằm dưới con trỏ. **
1. Di chuyển con trỏ tới dòng có dấu --->.
2. Di chuyển con trỏ tới ký tự gõ sai đầu tiên.
3. Gõ r và ký tự đúng.
4. Lặp lại các bước từ 2 đến 4 để sửa cả dòng.
---> "Trên đời nài làm gì có đườmg, người to đi mãi rồi thànk đường là tHôi"
---> "Trên đời này làm gì có đường, người ta đi mãi rồi thành đường mà thôi"
5. Bây giờ chuyển sang Bài 3.3.
CHÚ Ý: Hãy nhớ rằng bạn cần thực hành, không nên "học vẹt".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 3.3: CÂU LỆNH THAY ĐỔI
** Để thay đổi một phần hay cả một từ, gõ cw . **
1. Di chuyển con trỏ tới dòng có dấu --->.
2. Đặt con trỏ trên chữ trong.
3. Gõ cw và sửa lại từ (trong trường hợp này, gõ 'ine'.)
4. Gõ <ESC> và chuyển tới lỗi tiếp theo (chữ cái đầu tiên trong số cần thay.)
5. Lặp lại các bước 3 và 4 cho tới khi thu được dòng như dòng thứ hai.
---> Trên dùgn này có một dầy từ cần tyays đổi, sử dunk câu lệnh thay đổi.
---> Trên dong này có một vai từ cần thay đổi, sử dung câu lệnh thay đổi.
Chú ý rằng cw không chỉ thay đổi từ, nhưng còn đưa bạn vào chế độ chèn.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 3.4: TIẾP TỤC THAY ĐỔI VỚI c
** Câu lệnh thay đổi được sử dụng với cùng đối tượng như câu lệnh xóa. **
1. Câu lệnh thay đổi làm việc tương tự như câu lệnh xóa. Định dạng như sau:
[số] c đối_tượng HOẶC c [số] đối_tượng
2. Đối tượng cũng giống như ở trên, ví dụ w (từ), $ (cuối dòng), v.v...
3. Di chuyển con trỏ tới dòng có dấu --->.
4. Di chuyển con trỏ tới dòng có lỗi đầu tiên.
5. Gõ c$ để sửa cho giống với dòng thứ hai và gõ <ESC>.
---> Doan cuoi dong nay can sua de cho giong voi dong thu hai.
---> Doan cuoi dong nay can su dung cau lenh c$ de sua.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 3
1. Để dán đoạn văn bản vừa xóa, gõ p. Câu lệnh này sẽ đặt đoạn văn bản này
PHÍA SAU con trỏ (nếu một dòng vừa bị xóa, dòng này sẽ được đặt vào dòng
nằm dưới con trỏ).
2. Để thay thế ký tự dưới con trỏ, gõ r và sau đó gõ
ký tự muốn thay vào.
3. Câu lệnh thay đổi cho phép bạn thay đổi đối tượng chỉ ra từ con
trỏ tới cuối đối tượng. vd. Gõ cw để thay đổi từ
con trỏ tới cuối một từ, c$ để thay đổi tới cuối một dòng.
4. Định dạng để thay đổi:
[số] c đối_tượng HOẶC c [số] đối_tượng
Bây giờ chúng ta tiếp tục bài học mới.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 4.1: THÔNG TIN VỀ TẬP TIN VÀ VỊ TRÍ TRONG TẬP TIN
** Gõ CTRL-g để hiển thị vị trí của bạn trong tập tin và thông tin về tập tin.
Gõ SHIFT-G để chuyển tới một dòng trong tập tin. **
Chú ý: Đọc toàn bộ bài học này trước khi thực hiện bất kỳ bước nào!!
1. Giữ phím Ctrl và nhấn g . Một dòng thông tin xuất hiện tại cuối trang
với tên tập tin và dòng mà bạn đang nằm trên. Hãy nhớ số dòng này
Cho bước số 3.
2. Nhấn shift-G để chuyển tới cuối tập tin.
3. Gõ số dòng mà bạn đã nằm trên và sau đó shift-G. Thao tác này sẽ đưa bạn
trở lại dòng mà con trỏ đã ở trước khi nhấn tổ hợp Ctrl-g.
(Khi bạn gõ số, chúng sẽ KHÔNG hiển thị trên màn hình.)
4. Nếu bạn cảm thấy đã hiểu rõ, hãy thực hiện các bước từ 1 tới 3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 4.2: CÂU LỆNH TÌM KIẾM
** Gõ / và theo sau là cụm từ muốn tìm kiếm. **
1. Trong chế độ Câu lệnh gõ ký tự / .Chú ý rằng ký tự này và con trỏ sẽ
xuất hiện tại cuối màn hình giống như câu lệnh : .
2. Bây giờ gõ 'loiiiii' <ENTER>. Đây là từ bạn muốn tìm.
3. Để tìm kiếm cụm từ đó lần nữa, đơn giản gõ n .
Để tìm kiếm cụm từ theo hướng ngược lại, gõ Shift-N .
4. Nếu bạn muối tìm kiếm cụm từ theo hướng ngược lại đầu tập tin, sử dụng
câu lệnh ? thay cho /.
---> "loiiiii" là những gì không đúng lắm; loiiiii thường xuyên xảy ra.
Chú ý: Khi tìm kiếm đến cuối tập tin, việc tìm kiếm sẽ tiếp tục từ đầu
tập tin này.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 4.3: TÌM KIẾM CÁC DẤU NGOẶC SÁNH ĐÔI
** Gõ % để tìm kiếm ),], hay } . **
1. Đặt con trỏ trên bất kỳ một (, [, hay { nào trong dòng có dấu --->.
2. Bây giờ gõ ký tự % .
3. Con trỏ sẽ di chuyển đến dấu ngoặc tạo cặp (dấu đóng ngoặc).
4. Gõ % để chuyển con trỏ trở lại dấu ngoặc đầu tiên (dấu mở ngoặc).
---> Đây là ( một dòng thử nghiệm với các dấu ngoặc (, [ ] và { } . ))
Chú ý: Rất có ích khi sửa lỗi chương trình, khi có các lỗi thừa thiếu dấu ngoặc!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 4.4: MỘT CÁCH SỬA LỖI
** Gõ :s/cũ/mới/g để thay thế 'mới' vào 'cũ'. **
1. Di chuyển con trỏ tới dòng có dấu --->.
2. Gõ :s/duou/ruou <ENTER> . Chú ý rằng câu lệnh này chỉ thay đổi từ tìm
thấy đầu tiên trên dòng (từ 'duou' đầu dòng).
3. Bây giờ gõ :s/duou/ruou/g để thực hiện thay thế trên toàn bộ dòng.
Lệnh này sẽ thay thế tất cả những từ ('duou') tìm thấy trên dòng.
---> duou ngon phai co ban hie. Khong duou cung khong hoa.
4. Để thay thế thực hiện trong đoạn văn bản giữa hai dòng,
gõ :#,#s/cũ/mới/g trong đó #,# là số thứ tự của hai dòng.
Gõ :%s/cũ/mới/g để thực hiện thay thế trong toàn bộ tập tin.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 4
1. Ctrl-g vị trí của con trỏ trong tập tin và thông tin về tập tin.
Shift-G di chuyển con trỏ tới cuối tập tin. Số dòng và theo sau
là Shift-G di chuyển con trỏ tới dòng đó.
2. Gõ / và cụm từ theo sau để tìm kiếm cụm từ VỀ PHÍA TRƯỚC.
Gõ ? và cụm từ theo sau để tìm kiếm cụm từ NGƯỢC TRỞ LẠI.
Sau một lần tìm kiếm gõ n để tìm kiếm cụm từ lại một lần nữa theo hướng
đã tìm hoặc Shift-N để tìm kiếm theo hướng ngược lại.
3. Gõ % khi con trỏ nằm trên một (,),[,],{, hay } sẽ chỉ ra vị trí của
dấu ngoặc còn lại trong cặp.
4. Để thay thế 'mới' cho 'cũ' đầu tiên trên dòng, gõ :s/cũ/mới
Để thay thế 'mới' cho tất cả 'cũ' trên dòng, gõ :s/cũ/mới/g
Để thay thế giữa hai dòng, gõ :#,#s/cũ/mới/g
Để thay thế trong toàn bộ tập tin, gõ :%s/cũ/mới/g
Để chương trình hỏi lại trước khi thay thế, thêm 'c' :%s/cũ/mới/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.1: CÁCH THỰC HIỆN MỘT CÂU LỆNH NGOẠI TRÚ
** Gõ :! theo sau là một câu lệnh ngoại trú để thực hiện câu lệnh đó. **
1. Gõ câu lệnh quen thuộc : để đặt con trỏ tại cuối màn hình.
Thao tác này cho phép bạn nhập một câu lệnh.
2. Bây giờ gõ ký tự ! (chấm than). Ký tự này cho phép bạn
thực hiện bất kỳ một câu lệnh shell nào.
3. Ví dụ gõ ls theo sau dấu ! và gõ <ENTER>. Lệnh này
sẽ hiển thị nội dung của thư mục hiện thời, hoặc sử dụng
lệnh :!dir nếu ls không làm việc.
Chú ý: Có thể thực hiện bất kỳ câu lệnh ngoại trú nào theo cách này.
Chú ý: Tất cả các câu lệnh : cần kết thúc bởi phím <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 5.2: GHI LẠI CÁC TẬP TIN
** Để ghi lại các thay đổi, gõ :w TÊNTỆPTIN. **
1. Gõ :!dir hoặc :!ls để lấy bảng liệt kê thư mục hiện thời.
Như bạn đã biết, bạn cần gõ <ENTER> để thực hiện.
2. Chọn một tên tập tin chưa có, ví dụ TEST.
3. Bây giờ gõ: :w TEST (trong đó TEST là tên tập tin bạn đã chọn.)
4. Thao tác này ghi toàn bộ tập tin (Hướng dẫn dùng Vim) dưới tên TEST.
Để kiểm tra lại, gõ :!dir một lần nữa để liệt kê thư mục.
Chú ý: Nếu bạn thoát khỏi Vim và quay trở lại với tên tập tin TEST, thì tập
tin sẽ là bản sao của hướng dẫn tại thời điểm bạn ghi lại.
5. Bây giờ xóa bỏ tập tin (MS-DOS): :!del TEST
hay (Unix): :!rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 5.3: CÂU LỆNH GHI CHỌN LỌC
** Để ghi một phần của tập tin, gõ :#,# w TÊNTẬPTIN **
1. Gõ lại một lần nữa :!dir hoặc :!ls để liệt kê nội dung thư mục
rồi chọn một tên tập tin thích hợp, ví dụ TEST.
2. Di chuyển con trỏ tới đầu trang này, rồi gõ Ctrl-g để tìm ra số thứ
tự của dòng đó. HÃY NHỚ SỐ THỨ TỰ NÀY!
3. Bây giờ di chuyển con trỏ tới dòng cuối trang và gõ lại Ctrl-g lần nữa.
HÃY NHỚ CẢ SỐ THỨ TỰ NÀY!
4. Để CHỈ ghi lại một phần vào một tập tin, gõ :#,# w TEST trong đó #,#
là hai số thứ tự bạn đã nhớ (đầu,cuối) và TEST là tên tập tin.
5. Nhắc lại, xem tập tin của bạn có ở đó không với :!dir nhưng ĐỪNG xóa.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 5.4: ĐỌC VÀ KẾT HỢP CÁC TẬP TIN
** Để chèn nội dung của một tập tin, gõ :r TÊNTẬPTIN **
1. Gõ :!dir để chắc chắn là có tệp tin TEST.
2. Đặt con trỏ tại đầu trang này.
CHÚ Ý: Sau khi thực hiện Bước 3 bạn sẽ thấy Bài 5.3. Sau đó cần di chuyển
XUỐNG bài học này lần nữa.
3. Bây giờ dùng câu lệnh :r TEST để đọc tập tin TEST, trong đó TEST là
tên của tập tin.
CHÚ Ý: Tập tin được đọc sẽ đặt bắt đầu từ vị trí của con trỏ.
4. Để kiểm tra lại, di chuyển con trỏ ngược trở lại và thấy rằng bây giờ
có hai Bài 5.3, bản gốc và bản vừa chèn.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 5
1. :!câulệnh thực hiện một câu lệnh ngoại trú
Một vài ví dụ hữu ích:
(MS-DOS) (Unix)
:!dir :!ls - liệt kê nội dung một thư mục.
:!del TÊNTẬPTIN :!rm TÊNTẬPTIN - xóa bỏ tập tin TÊNTẬPTIN.
2. :w TÊNTẬPTIN ghi tập tin hiện thời của Vim lên đĩa với tên TÊNTẬPTIN.
3. :#,#w TÊNTẬPTIN ghi các dòng từ # tới # vào tập tin TÊNTẬPTIN.
4. :r TÊNTẬPTIN đọc tập tin trên đĩa TÊNTẬPTIN và chèn nội dung của nó vào
tập tin hiện thời sau vị trí của con trỏ.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 6.1: CÂU LỆNH TẠO DÒNG
** Gõ o để mở một dòng phía dưới con trỏ và chuyển vào chế độ Soạn thảo. **
1. Di chuyển con trỏ tới dòng có dấu --->.
2. Gõ o (chữ thường) để mở một dòng BÊN DƯỚI con trỏ và chuyển vào chế độ
Soạn thảo.
3. Bây giờ sao chép dòng có dấu ---> và nhấn <ESC> để thoát khỏi chế độ Soạn
thảo.
---> Sau khi gõ o con trỏ sẽ đặt trên dòng vừa mở trong chế độ Soạn thảo.
4. Để mở một dòng Ở TRÊN con trỏ, đơn giản gõ một chữ O hoa, thay cho
chữ o thường. Hãy thử thực hiện trên dòng dưới đây.
Di chuyển con trỏ tới dòng này, rồi gõ Shift-O sẽ mở một dòng trên nó.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 6.2: CÂU LỆNH THÊM VÀO
** Gõ a để chèn văn bản vào SAU con trỏ. **
1. Di chuyển con trỏ tới cuối dòng đầu tiên có ký hiệu --->
bằng cách gõ $ trong chế độ câu lệnh.
2. Gõ a (chữ thường) để thêm văn bản vào SAU ký tự dưới con trỏ.
(Chữ A hoa thêm văn bản vào cuối một dòng.)
Chú ý: Lệnh này thay cho việc gõ i , ký tự cuối cùng, văn bản muốn chèn,
<ESC>, mũi tên sang phải, và cuối cùng, x , chỉ để thêm vào cuối dòng!
3. Bây giờ thêm cho đủ dòng thứ nhất. Chú ý rằng việc thêm giống hệt với
việc chèn, trừ vị trí chèn văn bản.
---> Dong nay cho phep ban thuc hanh
---> Dong nay cho phep ban thuc hanh viec them van ban vao cuoi dong.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 6.3: MỘT CÁCH THAY THẾ KHÁC
** Gõ chữ cái R hoa để thay thế nhiều ký tự. **
1. Di chuyển con trỏ tới cuối dòng đầu tiên có ký hiệu --->.
2. Đặt con trỏ tại chữ cái đầu của từ đầu tiên khác với dòng có dấu
---> tiếp theo (từ 'tren').
3. Bây giờ gõ R và thay thế phần còn lại của dòng thứ nhất bằng cách gõ
đè lên văn bản cũ để cho hai dòng giống nhau.
---> De cho dong thu nhat giong voi dong thu hai tren trang nay.
---> De cho dong thu nhat giong voi dong thu hai, go R va van ban moi.
4. Chú ý rằng khi bạn nhấn <ESC> để thoát, đoạn văn bản không sửa đổi sẽ
được giữ nguyên.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 6.4: THIẾT LẬP CÁC THAM SỐ
** Thiết lập một tùy chọn để việc tìm kiếm hay thay thế lờ đi kiểu chữ **
1. Tìm kiếm từ 'lodi' bằng cách gõ:
/lodi
Lặp lại vài lần bằng phím n.
2. Đặt tham số 'ic' (Lodi - ignore case) bằng cách gõ:
:set ic
3. Bây giờ thử lại tìm kiếm 'lodi' bằng cách gõ: n
Lặp lại vài lần bằng phím n.
4. Đặt các tham số 'hlsearch' và 'incsearch':
:set hls is
5. Bây giờ nhập lại câu lệnh tìm kiếm một lần nữa và xem cái gì xảy ra:
/lodi
6. Để xóa bỏ việc hiện sáng từ tìm thấy, gõ:
:nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TỔNG KẾT BÀI 6
1. Gõ o mở một dòng phía DƯỚI con trỏ và đặt con trỏ trên dòng vừa mở
trong chế độ Soạn thảo.
Gõ một chữ O hoa để mở dòng phía TRÊN dòng của con trỏ.
2. Gõ a để chèn văn bản vào SAU ký tự nằm dưới con trỏ.
Gõ một chữ A hoa tự động thêm văn bản vào cuối một dòng.
3. Gõ một chữ R hoa chuyển vào chế độ Thay thế cho đến khi nhấn <ESC>.
4. Gõ ":set xxx" sẽ đặt tham số "xxx"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 7: CÂU LỆNH TRỢ GIÚP
** Sử dụng hệ thống trợ giúp có sẵn **
Vim có một hệ thống trợ giúp đầy đủ. Để bắt đầu, thử một trong ba
lệnh sau:
- nhấn phím <HELP> (nếu bàn phím có)
- nhấn phím <F1> (nếu bàn phím có)
- gõ :help <ENTER>
Gõ :q <ENTER> để đóng cửa sổ trợ giúp.
Bạn có thể tìm thấy trợ giúp theo một đề tài, bằng cách đưa tham số tới
câu lệnh ":help". Hãy thử (đừng quên gõ <ENTER>):
:help w
:help c_<T
:help insert-index
:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài 8: TẠO MỘT SCRIPT KHỞI ĐỘNG
** Bật các tính năng của Vim **
Vim có nhiều tính năng hơn Vi, nhưng hầu hết chúng bị tắt theo mặc định.
Để sử dụng các tính năng này bạn cần phải tạo một tập tin "vimrc".
1. Soạn thảo tệp tin "vimrc", phụ thuộc vào hệ thống của bạn:
:edit ~/.vimrc đối với Unix
:edit $VIM/_vimrc đối với MS-Windows
2. Bây giờ đọc tập tin "vimrc" ví dụ:
:read $VIMRUNTIME/vimrc_example.vim
3. Ghi lại tập tin:
:write
Trong lần khởi động tiếp theo, Vim sẽ sử dụng việc hiện sáng cú pháp.
Bạn có thể thêm các thiết lập ưa thích vào tập tin "vimrc" này.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bài học hướng dẫn sử dụng Vim (Vim Tutor) kết thúc tại đây. Bài học đưa ra
cái nhìn tổng quát về trình soạn thảo Vim, chỉ đủ để bạn có thể sử dụng
trình soạn thảo một cách dễ dàng. Bài học còn rất xa để có thể nói là đầy
đủ vì Vim có rất rất nhiều câu lệnh. Tiếp theo xin hãy đọc hướng dẫn người
dùng: ":help user-manual".
Cuốn sách sau được khuyên dùng cho việc nghiên cứu sâu hơn:
Vim - Vi Improved - Tác giả: Steve Oualline
Nhà xuất bản: New Riders
Cuốn sách đầu tiên dành hoàn toàn cho Vim. Đặc biệt có ích cho người mới.
Có rất nhiều ví dụ và tranh ảnh.
Hãy xem: http://iccf-holland.org/click5.html
Cuốn sách tiếp theo này xuất bản sớm hơn và nói nhiều về Vi hơn là Vim,
nhưng cũng rất nên đọc:
Learning the Vi Editor - Tác giả: Linda Lamb
Nhà xuất bản: O'Reilly & Associates Inc.
Đây là một cuốn sách hay và cho bạn biết tất cả cách thực hiện những gì muốn
làm với Vi. Lần xuất bản thứ sáu đã thêm thông tin về Vim.
Bài học hướng dẫn này viết bởi Michael C. Pierce và Robert K. Ware,
Colorado School of Mines sử dụng ý tưởng của Charles Smith,
Colorado State University. E-mail: bware@mines.colorado.edu.
Sửa đổi cho Vim bởi Bram Moolenaar.
Dịch bởi: Phan Vĩnh Thịnh <teppi@vnlinux.org>, 2005
Translator: Phan Vinh Thịnh <teppi@vnlinux.org>, 2005
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

BIN
runtime/tutor/vimdir.info Executable file

Binary file not shown.

View File

@ -0,0 +1,67 @@
:: Start Vim on a copy of the tutor file.
@echo off
:: Usage: vimtutor [-console] [xx]
::
:: -console means gvim will not be used
:: xx is a language code like "es" or "nl".
:: When an xx argument is given, it tries loading that tutor.
:: When this fails or no xx argument was given, it tries using 'v:lang'
:: When that also fails, it uses the English version.
:: Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
FOR %%d in (. %TMP% %TEMP%) DO IF EXIST %%d\nul SET TUTORCOPY=%%d\$tutor$
SET xx=%1
IF NOT .%1==.-console GOTO use_gui
SHIFT
SET xx=%1
GOTO use_vim
:use_gui
:: Try making a copy of tutor with gvim. If gvim cannot be found, try using
:: vim instead. If vim cannot be found, alert user to check environment and
:: installation.
:: The script tutor.vim tells Vim which file to copy.
:: For Windows NT "start" works a bit differently.
IF .%OS%==.Windows_NT GOTO ntaction
start /w gvim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim"
IF ERRORLEVEL 1 GOTO use_vim
:: Start gvim without any .vimrc, set 'nocompatible'
start /w gvim -u NONE -c "set nocp" %TUTORCOPY%
GOTO end
:ntaction
start "dummy" /b /w gvim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim"
IF ERRORLEVEL 1 GOTO use_vim
:: Start gvim without any .vimrc, set 'nocompatible'
start "dummy" /b /w gvim -u NONE -c "set nocp" %TUTORCOPY%
GOTO end
:use_vim
:: The script tutor.vim tells Vim which file to copy
vim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim"
IF ERRORLEVEL 1 GOTO no_executable
:: Start vim without any .vimrc, set 'nocompatible'
vim -u NONE -c "set nocp" %TUTORCOPY%
GOTO end
:no_executable
ECHO.
ECHO.
ECHO No vim or gvim found in current directory or PATH.
ECHO Check your installation or re-run install.exe
:end
:: remove the copy of the tutor
IF EXIST %TUTORCOPY% DEL %TUTORCOPY%
SET xx=

View File

@ -155,16 +155,11 @@ Visual C++ 2008 Express Edition *msvc-2008-express*
-------------------------------
Visual C++ 2008 Express Edition can be downloaded for free from:
http://msdn2.microsoft.com/en-us/express/default.aspx
This includes the IDE and the debugger. You can build Vim with Make_mvc.mak.
http://www.microsoft.com/express/vc/Default.aspx
This includes the IDE and the debugger.
Visual C++ 2008 Express Edition *msvc-2008-express*
-------------------------------
Visual C++ 2008 Express Edition can be downloaded for free from:
http://msdn2.microsoft.com/en-us/express/default.aspx
This includes the IDE and the debugger. You can build Vim with Make_mvc.mak.
To set the environment execute the msvc2008.bat script. You can then build
Vim with Make_mvc.mak.
2. MinGW
@ -258,8 +253,9 @@ If you like, you can compile the 'mingw' Win32 version from the comfort of
your Linux (or other unix) box. To do this, you need to follow a few steps:
1) Install the mingw32 cross-compiler. See
http://www.libsdl.org/extras/win32/cross/README.txt
2) get the *unix* version of the vim sources
3) in 'Make_ming.mak', set 'CROSS' to '1' instead of '0'.
2) Get and unpack both the Unix sources and the extra archive
3) in 'Make_ming.mak', set 'CROSS' to 'yes' instead of 'no'.
Make further changes to 'Make_ming.mak' as you wish.
4) make -f Make_ming.mak gvim.exe
Now you have created the Windows binary from your Linux box! Have fun...

View File

@ -1,7 +1,7 @@
INSTALLvms.txt - Installation of Vim on OpenVMS
Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
Last change: 2007 May 07
Last change: 2008 Jan 06
This file contains instructions for compiling Vim on Openvms.
If you already have an executable version of Vim, you don't need this.
@ -83,7 +83,7 @@ from CVS mirror ftp://ftp.polarhome.com/pub/cvs/SOURCE/
NORMAL - A default selection of features enabled
BIG - Many features enabled, as rich as possible.
(OpenVMS default)
HUGE - All possible featues enabled.
HUGE - All possible features enabled.
Uncommented - will default to BIG
Default : MODEL = BIG

View File

@ -11,7 +11,7 @@
# Otherwise the postprocessing won't get done.
#
### This Makefile has been succesfully tested on these systems.
### This Makefile has been successfully tested on these systems.
### Check the (*) column for remarks, listed below.
### Later code changes may cause small problems, otherwise Vim is supposed to
### compile and run without problems.

View File

@ -350,6 +350,9 @@ MSVCVER = 8.0
!if "$(_NMAKE_VER)" == "9.00.20706.01"
MSVCVER = 9.0
!endif
!if "$(_NMAKE_VER)" == "9.00.21022.08"
MSVCVER = 9.0
!endif
!endif
# Abort bulding VIM if version of VC is unrecognised.

View File

@ -13,10 +13,6 @@
#include "vim.h"
#ifdef HAVE_FCNTL_H
# include <fcntl.h> /* for chdir() */
#endif
static int quitmore = 0;
static int ex_pressedreturn = FALSE;
#ifndef FEAT_PRINTER
@ -1132,7 +1128,7 @@ do_cmdline(cmdline, getline, cookie, flags)
{
/* need to copy the command after the '|' to cmdline_copy, for the
* next do_one_cmd() */
mch_memmove(cmdline_copy, next_cmdline, STRLEN(next_cmdline) + 1);
STRMOVE(cmdline_copy, next_cmdline);
next_cmdline = cmdline_copy;
}
@ -2375,7 +2371,7 @@ do_one_cmd(cmdlinep, sourcing,
* Halving the number of backslashes is incompatible with previous
* versions. */
if (*p == '\\' && p[1] == '\n')
mch_memmove(p, p + 1, STRLEN(p));
STRMOVE(p, p + 1);
else if (*p == '\n')
{
ea.nextcmd = p + 1;
@ -4551,7 +4547,7 @@ separate_nextcmd(eap)
++p; /* skip CTRL-V and next char */
else
/* remove CTRL-V and skip next char */
mch_memmove(p, p + 1, STRLEN(p));
STRMOVE(p, p + 1);
if (*p == NUL) /* stop at NUL after CTRL-V */
break;
}
@ -4582,7 +4578,7 @@ separate_nextcmd(eap)
if ((vim_strchr(p_cpo, CPO_BAR) == NULL
|| !(eap->argt & USECTRLV)) && *(p - 1) == '\\')
{
mch_memmove(p - 1, p, STRLEN(p) + 1); /* remove the '\' */
STRMOVE(p - 1, p); /* remove the '\' */
--p;
}
else
@ -4640,7 +4636,7 @@ skip_cmd_arg(p, rembs)
if (*p == '\\' && p[1] != NUL)
{
if (rembs)
mch_memmove(p, p + 1, STRLEN(p));
STRMOVE(p, p + 1);
else
++p;
}
@ -7167,7 +7163,6 @@ theend:
# endif
}
#if defined(FEAT_MOUSE) || defined(PROTO)
/*
* Open a new tab page.
*/
@ -7182,7 +7177,6 @@ tabpage_new()
ea.arg = (char_u *)"";
ex_splitview(&ea);
}
#endif
/*
* :tabnext command
@ -9425,7 +9419,7 @@ eval_vars(src, srcstart, usedlen, lnump, errormsg, escaped)
if (src > srcstart && src[-1] == '\\')
{
*usedlen = 0;
mch_memmove(src - 1, src, STRLEN(src) + 1); /* remove backslash */
STRMOVE(src - 1, src); /* remove backslash */
return NULL;
}

View File

@ -11,7 +11,6 @@
#ifdef WIN32
# include <stdio.h>
# include <fcntl.h>
# include "vimio.h"
# include <process.h>
# include <string.h>

View File

@ -25,7 +25,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#ifdef INET_SOCKETS
#include <netdb.h>

View File

@ -15,6 +15,10 @@
#include "vim.h"
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
# include <math.h>
#endif
static int other_sourcing_name __ARGS((void));
static char_u *get_emsg_source __ARGS((void));
static char_u *get_emsg_lnum __ARGS((void));
@ -314,7 +318,7 @@ trunc_string(s, buf, room)
/* Set the middle and copy the last part. */
mch_memmove(buf + e, "...", (size_t)3);
mch_memmove(buf + e + 3, s + i, STRLEN(s + i) + 1);
STRMOVE(buf + e + 3, s + i);
}
/*
@ -603,7 +607,7 @@ emsg(s)
#endif
/*
* When using ":silent! cmd" ignore error messsages.
* When using ":silent! cmd" ignore error messages.
* But do write it to the redirection file.
*/
if (emsg_silent != 0)
@ -803,6 +807,8 @@ delete_first_msg()
return FAIL;
p = first_msg_hist;
first_msg_hist = p->next;
if (first_msg_hist == NULL)
last_msg_hist = NULL; /* history is empty */
vim_free(p->msg);
vim_free(p);
--msg_hist_len;
@ -1131,6 +1137,17 @@ msg_start()
vim_free(keep_msg);
keep_msg = NULL; /* don't display old message now */
#ifdef FEAT_EVAL
if (need_clr_eos)
{
/* Halfway an ":echo" command and getting an (error) message: clear
* any text from the command. */
need_clr_eos = FALSE;
msg_clr_eos();
}
#endif
if (!msg_scroll && full_screen) /* overwrite last message */
{
msg_row = cmdline_row;
@ -3819,6 +3836,9 @@ static char *e_printf = N_("E766: Insufficient arguments for printf()");
static long tv_nr __ARGS((typval_T *tvs, int *idxp));
static char *tv_str __ARGS((typval_T *tvs, int *idxp));
# ifdef FEAT_FLOAT
static double tv_float __ARGS((typval_T *tvs, int *idxp));
# endif
/*
* Get number argument from "idxp" entry in "tvs". First entry is 1.
@ -3865,6 +3885,32 @@ tv_str(tvs, idxp)
}
return s;
}
# ifdef FEAT_FLOAT
/*
* Get float argument from "idxp" entry in "tvs". First entry is 1.
*/
static double
tv_float(tvs, idxp)
typval_T *tvs;
int *idxp;
{
int idx = *idxp - 1;
double f = 0;
if (tvs[idx].v_type == VAR_UNKNOWN)
EMSG(_(e_printf));
else
{
++*idxp;
if (tvs[idx].v_type == VAR_FLOAT)
f = tvs[idx].vval.v_float;
else
EMSG(_("E807: Expected Float argument for printf()"));
}
return f;
}
# endif
#endif
/*
@ -3883,6 +3929,8 @@ tv_str(tvs, idxp)
* with flags: '-', '+', ' ', '0' and '#'.
* An asterisk is supported for field width as well as precision.
*
* Limited support for floating point was added: 'f', 'e', 'E', 'g', 'G'.
*
* Length modifiers 'h' (short int) and 'l' (long int) are supported.
* 'll' (long long int) is not supported.
*
@ -3983,7 +4031,14 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
char length_modifier = '\0';
/* temporary buffer for simple numeric->string conversion */
char tmp[32];
#ifdef FEAT_FLOAT
# define TMP_LEN 350 /* On my system 1e308 is the biggest number possible.
* That sounds reasonable to use as the maximum
* printable. */
#else
# define TMP_LEN 32
#endif
char tmp[TMP_LEN];
/* string address in case of string argument */
char *str_arg;
@ -4124,6 +4179,7 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
case 'D': fmt_spec = 'd'; length_modifier = 'l'; break;
case 'U': fmt_spec = 'u'; length_modifier = 'l'; break;
case 'O': fmt_spec = 'o'; length_modifier = 'l'; break;
case 'F': fmt_spec = 'f'; break;
default: break;
}
@ -4459,6 +4515,136 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
break;
}
#ifdef FEAT_FLOAT
case 'f':
case 'e':
case 'E':
case 'g':
case 'G':
{
/* Floating point. */
double f;
double abs_f;
char format[40];
int l;
int remove_trailing_zeroes = FALSE;
f =
# ifndef HAVE_STDARG_H
get_a_arg(arg_idx);
# else
# if defined(FEAT_EVAL)
tvs != NULL ? tv_float(tvs, &arg_idx) :
# endif
va_arg(ap, double);
# endif
abs_f = f < 0 ? -f : f;
if (fmt_spec == 'g' || fmt_spec == 'G')
{
/* Would be nice to use %g directly, but it prints
* "1.0" as "1", we don't want that. */
if ((abs_f >= 0.001 && abs_f < 10000000.0)
|| abs_f == 0.0)
fmt_spec = 'f';
else
fmt_spec = fmt_spec == 'g' ? 'e' : 'E';
remove_trailing_zeroes = TRUE;
}
if (fmt_spec == 'f' && abs_f > 1.0e307)
{
/* Avoid a buffer overflow */
strcpy(tmp, "inf");
str_arg_l = 3;
}
else
{
format[0] = '%';
l = 1;
if (precision_specified)
{
size_t max_prec = TMP_LEN - 10;
/* Make sure we don't get more digits than we
* have room for. */
if (fmt_spec == 'f' && abs_f > 1.0)
max_prec -= (size_t)log10(abs_f);
if (precision > max_prec)
precision = max_prec;
l += sprintf(format + 1, ".%d", (int)precision);
}
format[l] = fmt_spec;
format[l + 1] = NUL;
str_arg_l = sprintf(tmp, format, f);
if (remove_trailing_zeroes)
{
int i;
char *p;
/* Using %g or %G: remove superfluous zeroes. */
if (fmt_spec == 'f')
p = tmp + str_arg_l - 1;
else
{
p = (char *)vim_strchr((char_u *)tmp,
fmt_spec == 'e' ? 'e' : 'E');
if (p != NULL)
{
/* Remove superfluous '+' and leading
* zeroes from the exponent. */
if (p[1] == '+')
{
/* Change "1.0e+07" to "1.0e07" */
STRMOVE(p + 1, p + 2);
--str_arg_l;
}
i = (p[1] == '-') ? 2 : 1;
while (p[i] == '0')
{
/* Change "1.0e07" to "1.0e7" */
STRMOVE(p + i, p + i + 1);
--str_arg_l;
}
--p;
}
}
if (p != NULL && !precision_specified)
/* Remove trailing zeroes, but keep the one
* just after a dot. */
while (p > tmp + 2 && *p == '0' && p[-1] != '.')
{
STRMOVE(p, p + 1);
--p;
--str_arg_l;
}
}
else
{
char *p;
/* Be consistent: some printf("%e") use 1.0e+12
* and some 1.0e+012. Remove one zero in the last
* case. */
p = (char *)vim_strchr((char_u *)tmp,
fmt_spec == 'e' ? 'e' : 'E');
if (p != NULL && (p[1] == '+' || p[1] == '-')
&& p[2] == '0'
&& vim_isdigit(p[3])
&& vim_isdigit(p[4]))
{
STRMOVE(p + 2, p + 3);
--str_arg_l;
}
}
}
str_arg = tmp;
break;
}
#endif
default:
/* unrecognized conversion specifier, keep format string
* as-is */
@ -4566,7 +4752,8 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
if (justify_left)
{
/* right blank padding to the field width */
int pn = (int)(min_field_width - (str_arg_l + number_of_zeros_to_pad));
int pn = (int)(min_field_width
- (str_arg_l + number_of_zeros_to_pad));
if (pn > 0)
{

View File

@ -2464,6 +2464,8 @@ do_mouse(oap, c, dir, count, fixindent)
/* Check for clicking in the tab page line. */
if (mouse_row == 0 && firstwin->w_winrow > 0)
{
if (is_drag)
return FALSE;
got_click = FALSE; /* ignore mouse-up and drag events */
/* click in a tab selects that tab page */

View File

@ -109,6 +109,7 @@
# define HAVE_FCNTL_H
# define HAVE_QSORT
# define HAVE_ST_MODE /* have stat.st_mode */
# define HAVE_MATH_H
# if defined(__DATE__) && defined(__TIME__)
# define HAVE_DATE_TIME
@ -217,10 +218,7 @@
*/
#define CMDBUFFSIZE 1024 /* size of the command processing buffer */
#if defined(MACOS_X_UNIX)
# define MAXPATHL 1024
# define BASENAMELEN (MAXNAMLEN - 5) /* length of base of filename */
#else
#if !defined(MACOS_X_UNIX)
# define MAXPATHL 256 /* Limited by the Pascal Strings */
# define BASENAMELEN (32-5-1) /* length of base of filename */
#endif

View File

@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Vim(deutsch)\n"
"POT-Creation-Date: 2006-04-02 11:30+0200\n"
"PO-Revision-Date: 2006-06-18 12:34+0200\n"
"Last-Translator: Georg Dahn <gorgyd@yahoo.co.uk>\n"
"PO-Revision-Date: 2008-05-24 17:26+0200\n"
"Last-Translator: Georg Dahn <georg.dahn@gmail.com>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO_8859-1\n"
@ -25,20 +25,20 @@ msgid "E83: Cannot allocate buffer, using other one..."
msgstr "E83: Kann den Puffer nicht zuweisen; benutze einen anderen..."
msgid "E515: No buffers were unloaded"
msgstr "E515: Keine Puffer wurden ausgeladen"
msgstr "E515: Keine Puffer wurden entladen"
msgid "E516: No buffers were deleted"
msgstr "E516: Keine Puffer wurden gel<65>scht"
msgstr "E516: Keine Puffer wurden vollst<EFBFBD>ndig gel<EFBFBD>scht"
msgid "E517: No buffers were wiped out"
msgstr "E517: Keine Puffer wurden gel<65>scht"
msgstr "E517: Keine Puffer wurden vollst<EFBFBD>ndig gel<EFBFBD>scht"
msgid "1 buffer unloaded"
msgstr "ein Puffer ausgeladen"
msgstr "ein Puffer entladen"
#, c-format
msgid "%d buffers unloaded"
msgstr "%d Puffer ausgeladen"
msgstr "%d Puffer entladen"
msgid "1 buffer deleted"
msgstr "ein Puffer gel<65>scht"
@ -48,11 +48,11 @@ msgid "%d buffers deleted"
msgstr "%d Puffer gel<65>scht"
msgid "1 buffer wiped out"
msgstr "ein Puffer gel<65>scht"
msgstr "ein Puffer vollst<EFBFBD>ndig gel<EFBFBD>scht"
#, c-format
msgid "%d buffers wiped out"
msgstr "%d Puffer gel<65>scht"
msgstr "%d Puffer vollst<EFBFBD>ndig gel<EFBFBD>scht"
msgid "E84: No modified buffer found"
msgstr "E84: Kein ver<65>nderter Puffer gefunden"
@ -87,11 +87,11 @@ msgstr "E92: Kein Puffer %ld gefunden"
#, c-format
msgid "E93: More than one match for %s"
msgstr "E93: Mehr als eine M<>glichkeit f<>r %s"
msgstr "E93: Mehr als ein Treffer f<>r %s"
#, c-format
msgid "E94: No matching buffer for %s"
msgstr "E94: Kein Puffer passt zu %s"
msgstr "E94: Kein <EFBFBD>bereinstimmender Puffer f<>r %s"
#, c-format
msgid "line %ld"
@ -334,16 +334,16 @@ msgstr "E686: Argument von %s muss eine Liste sein"
#, c-format
msgid "E712: Argument of %s must be a List or Dictionary"
msgstr "E712: Argument von %s muss eine Liste oder ein Dictionary"
msgstr "E712: Argument von %s muss eine Liste oder ein W<EFBFBD>rterbuch"
msgid "E713: Cannot use empty key for Dictionary"
msgstr "E713: Der Schl<68>ssel f<>r das Dictionary darf nicht leer sein"
msgstr "E713: Der Schl<68>ssel f<>r das W<EFBFBD>rterbuch darf nicht leer sein"
msgid "E714: List required"
msgstr "E714: Liste ben<65>tigt"
msgid "E715: Dictionary required"
msgstr "E715: Dictionary ben<65>tigt"
msgstr "E715: W<EFBFBD>rterbuch ben<65>tigt"
#, c-format
msgid "E118: Too many arguments for function: %s"
@ -351,20 +351,20 @@ msgstr "E118: Zu viele Argumente f
#, c-format
msgid "E716: Key not present in Dictionary: %s"
msgstr "E716: Schl<68>ssel nicht vorhanden im Dictionary: %s"
msgstr "E716: Schl<68>ssel nicht vorhanden im W<EFBFBD>rterbuch: %s"
#, c-format
msgid "E122: Function %s already exists, add ! to replace it"
msgstr "E122: Funktion %s existiert bereits; zum Ersetzen ! hinzuf<75>gen"
msgid "E717: Dictionary entry already exists"
msgstr "E717: Dictionary-Eintrag existiert bereits"
msgstr "E717: W<EFBFBD>rterbuch-Eintrag existiert bereits"
msgid "E718: Funcref required"
msgstr "E718: Funcref ben<65>tigt"
msgstr "E718: Funktionsreferenz ben<65>tigt"
msgid "E719: Cannot use [:] with a Dictionary"
msgstr "E719: Kann [:] nicht mit einem Dictionary verwenden"
msgstr "E719: Kann [:] nicht mit einem W<EFBFBD>rterbuch verwenden"
#, c-format
msgid "E734: Wrong variable type for %s="
@ -392,7 +392,7 @@ msgid "E738: Can't list variables for %s"
msgstr "E738: Kann Variablen nicht auflisten: %s"
msgid "E689: Can only index a List or Dictionary"
msgstr "E689: Kann nur Listen und Dictionarys indizieren"
msgstr "E689: Kann nur Listen und W<EFBFBD>rterb<EFBFBD>cher indizieren"
msgid "E708: [:] must come last"
msgstr "E708: [:] muss am Schluss kommen"
@ -430,22 +430,22 @@ msgid "E692: Invalid operation for Lists"
msgstr "E692: Unzul<75>ssige Operation f<>r Listen"
msgid "E735: Can only compare Dictionary with Dictionary"
msgstr "E735: Kann nur ein Dictionary mit einem Dictionary vergleichen"
msgstr "E735: Kann nur ein W<EFBFBD>rterbuch mit einem W<EFBFBD>rterbuch vergleichen"
msgid "E736: Invalid operation for Dictionary"
msgstr "E736: Unzul<75>ssige Operation f<>r ein Dictionary"
msgstr "E736: Unzul<75>ssige Operation f<>r ein W<EFBFBD>rterbuch"
msgid "E693: Can only compare Funcref with Funcref"
msgstr "E693: Kann nur eine Funcref mit einer Funcref vergleichen"
msgstr "E693: Kann nur eine Funktionsreferenz mit einer Funktionsreferenz vergleichen"
msgid "E694: Invalid operation for Funcrefs"
msgstr "E694: Unzul<75>ssige Operation f<>r Funcrefs"
msgstr "E694: Unzul<75>ssige Operation f<>r Funktionsreferenzen"
msgid "E110: Missing ')'"
msgstr "E110: Fehlende ')'"
msgid "E695: Cannot index a Funcref"
msgstr "E695: Kann keine Funcref indizieren"
msgstr "E695: Kann keine Funktionsreferenz indizieren"
#, c-format
msgid "E112: Option name missing: %s"
@ -473,19 +473,19 @@ msgstr "E697: Fehlendes Ende der Liste ']': %s"
#, c-format
msgid "E720: Missing colon in Dictionary: %s"
msgstr "E720: Fehlender Doppelpunkt im Dictionary: %s"
msgstr "E720: Fehlender Doppelpunkt im W<EFBFBD>rterbuch: %s"
#, c-format
msgid "E721: Duplicate key in Dictionary: \"%s\""
msgstr "E721: Doppelter Schl<68>ssel im Dictionary: \"%s\""
msgstr "E721: Doppelter Schl<68>ssel im W<EFBFBD>rterbuch: \"%s\""
#, c-format
msgid "E722: Missing comma in Dictionary: %s"
msgstr "E722: Fehlendes Komma im Dictionary: %s"
msgstr "E722: Fehlendes Komma im W<EFBFBD>rterbuch: %s"
#, c-format
msgid "E723: Missing end of Dictionary '}': %s"
msgstr "E723: Fehlendes Ende des Dictionarys '}': %s"
msgstr "E723: Fehlendes Ende des W<EFBFBD>rterbuchs '}': %s"
msgid "E724: variable nested too deep for displaying"
msgstr "E724: Variable ist zu tief verschachtelt f<>r die Anzeige"
@ -494,7 +494,7 @@ msgid "E699: Too many arguments"
msgstr "E699: Zu viele Argumente"
msgid "E785: complete() can only be used in Insert mode"
msgstr "E785: complete() kann nur im Insert Modus verwendet werden"
msgstr "E785: complete() kann nur im Einf<EFBFBD>ge-Modus verwendet werden"
#.
#. * Yes this is ugly, I don't particularly like it either. But doing it
@ -567,26 +567,26 @@ msgid "E677: Error writing temp file"
msgstr "E677: Fehler beim Schreiben einer tempor<6F>ren Datei"
msgid "E703: Using a Funcref as a number"
msgstr "E703: Funcref als Zahl verwendet"
msgstr "E703: Funktionsreferenz als Zahl verwendet"
msgid "E745: Using a List as a number"
msgstr "E745: Liste als Zahl verwendet"
msgid "E728: Using a Dictionary as a number"
msgstr "E728: Dictionary als Zahl verwendet"
msgstr "E728: W<EFBFBD>rterbuch als Zahl verwendet"
msgid "E729: using Funcref as a String"
msgstr "E729: Funcref als String verwendet"
msgstr "E729: Funktionsreferenz als String verwendet"
msgid "E730: using List as a String"
msgstr "E730: Liste als String verwendet"
msgid "E731: using Dictionary as a String"
msgstr "E731: Dictionary als String verwendet"
msgstr "E731: W<EFBFBD>rterbuch als String verwendet"
#, c-format
msgid "E704: Funcref variable name must start with a capital: %s"
msgstr "E704: Funcref Variable muss mit einem Gro<72>buchstaben beginnen: %s"
msgstr "E704: Funktionsreferenz-Variable muss mit einem Gro<72>buchstaben beginnen: %s"
#, c-format
msgid "E705: Variable name conflicts with existing function: %s"
@ -623,7 +623,7 @@ msgstr "E126: Fehlendes :endfunction"
#, c-format
msgid "E746: Function name does not match script file name: %s"
msgstr "E746: Funktionsname stimmt nicht mit dem Namen der Skript-Datei <20>berein: %s"
msgstr "E746: Funktionsname stimmt mit dem Namen der Skript-Datei nicht <EFBFBD>berein: %s"
msgid "E129: Function name required"
msgstr "E129: Funktionsname wird verlangt"
@ -1170,7 +1170,7 @@ msgstr "E467: Eigene Vervollst
#, c-format
msgid "E185: Cannot find color scheme %s"
msgstr "E185: Zeile %s kann nicht gefunden werden"
msgstr "E185: Kann Farbschema %s nicht finden"
msgid "Greetings, Vim user!"
msgstr "Herzliche Gr<47><72>e, Vim Benutzer!"
@ -1269,7 +1269,7 @@ msgid "E195: Cannot open viminfo file for reading"
msgstr "E195: viminfo kann nicht zum Lesen ge<67>ffnet werden"
msgid "E196: No digraphs in this version"
msgstr "E196 Keine Digraphen in dieser Version"
msgstr "E196: Keine Digraphen in dieser Version"
msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
msgstr "E608: Kann nicht :throw Exceptions mit 'Vim' Pr<50>fix"
@ -1504,7 +1504,7 @@ msgid "E676: No matching autocommands for acwrite buffer"
msgstr "E676: Keine <20>bereinstimmenden Autokommandos f<>r acwrite Puffer"
msgid "E203: Autocommands deleted or unloaded buffer to be written"
msgstr "E203: Autokommandos haben den zu schreibenden Puffer gel<65>scht oder heraus geladen"
msgstr "E203: Autokommandos haben den zu schreibenden Puffer gel<65>scht oder entladen"
msgid "E204: Autocommand changed number of lines in unexpected way"
msgstr "E204: Autokommandos haben die Anzahl der Zeilen in unerwarteter Weise ver<65>ndert"
@ -1894,21 +1894,21 @@ msgstr "Ersetzen mit:"
#. whole word only button
msgid "Match whole word only"
msgstr "<EFBFBD>bereinstimmung nur mit ganzen W<EFBFBD>rtern"
msgstr "Nur ganzes Wort suchen"
#. match case button
msgid "Match case"
msgstr "Klein-/Gro<EFBFBD>schreibung beachten"
msgstr "Gro<72>-/Kleinschreibung"
msgid "Direction"
msgstr "Richtung"
#. 'Up' and 'Down' buttons
msgid "Up"
msgstr "Auf"
msgstr "Aufw<EFBFBD>rts"
msgid "Down"
msgstr "Ab"
msgstr "Abw<EFBFBD>rts"
msgid "Find Next"
msgstr "Suche N<>chstes"
@ -2268,7 +2268,7 @@ msgstr "E567: Keine cscope Verbindungen"
#, c-format
msgid "E259: no matches found for cscope query %s of %s"
msgstr "E259: keine Treffer gefunden f<>r cscope Anfragen %s aus %s"
msgstr "E259: keine <EFBFBD>bereinstimmungen gefunden f<>r cscope Abfrage %s aus %s"
#, c-format
msgid "E469: invalid cscopequickfix flag %c for %c"
@ -2790,7 +2790,7 @@ msgid "-V[N]\t\tVerbose level"
msgstr "-V[N]\t\tVerbose Stufe"
msgid "-D\t\t\tDebugging mode"
msgstr "-D\t\t\tDebug Modus"
msgstr "-D\t\t\tDebug-Modus"
msgid "-n\t\t\tNo swap file, use memory only"
msgstr "-n\t\t\tKeine Auslagerungsdatei, verwende nur Speicher"
@ -3383,7 +3383,7 @@ msgstr "E315: ml_get: unzul
#, c-format
msgid "E316: ml_get: cannot find line %ld"
msgstr "E316: ml_get: Zeile %ld kann nicht gefunden werden"
msgstr "E316: ml_get: kann Zeile %ld nicht finden"
msgid "E317: pointer block id wrong 3"
msgstr "E317: Zeiger Block id falsch 3"
@ -3402,7 +3402,7 @@ msgstr "Block 1 gel
#, c-format
msgid "E320: Cannot find line %ld"
msgstr "E320: Zeile %ld kann nicht gefunden werden"
msgstr "E320: Kann Zeile %ld nicht finden"
msgid "E317: pointer block id wrong"
msgstr "E317: Zeiger Block id ist falsch"
@ -3748,11 +3748,11 @@ msgstr ""
#, c-format
msgid "E344: Can't find directory \"%s\" in cdpath"
msgstr "E344: Verzeichnis \"%s\" kann im 'cdpath' nicht gefunden werden"
msgstr "E344: Kann Verzeichnis \"%s\" nicht im 'cdpath' finden"
#, c-format
msgid "E345: Can't find file \"%s\" in path"
msgstr "E345: Datei \"%s\" kann im Pfad nicht gefunden werden"
msgstr "E345: Kann Datei \"%s\" nicht im Pfad finden"
#, c-format
msgid "E346: No more directory \"%s\" found in cdpath"
@ -3784,7 +3784,7 @@ msgid "E505: "
msgstr "E505: "
msgid "E774: 'operatorfunc' is empty"
msgstr "E775: 'operatorfunc' is empty"
msgstr "E774: 'operatorfunc' is empty"
msgid "E775: Eval feature not available"
msgstr "E775: Evaluierungsfunktion nicht verf<72>gbar"
@ -4388,19 +4388,19 @@ msgid "E51: Too many %s("
msgstr "E51: Zu viele %s("
msgid "E52: Unmatched \\z("
msgstr "E52: \\z( ohne <EFBFBD>bereinstimmung"
msgstr "E52: \\z( ohne Gegenst<EFBFBD>ck"
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: %s%%( ohne <EFBFBD>bereinstimmung"
msgstr "E53: %s%%( ohne Gegenst<EFBFBD>ck"
#, c-format
msgid "E54: Unmatched %s("
msgstr "E54: %s( ohne <EFBFBD>bereinstimmung"
msgstr "E54: %s( ohne Gegenst<EFBFBD>ck"
#, c-format
msgid "E55: Unmatched %s)"
msgstr "E55: %s) ohne <EFBFBD>bereinstimmung"
msgstr "E55: %s) ohne Gegenst<EFBFBD>ck"
#, c-format
msgid "E59: invalid character after %s@"
@ -4554,32 +4554,32 @@ msgstr " NICHT GEFUNDEN"
#, c-format
msgid "Scanning included file: %s"
msgstr "Scanne eingef<EFBFBD>gte Datei: %s"
msgstr "Durchsuche inkludierte Datei: %s"
#, c-format
msgid "Searching included file %s"
msgstr "Suche eingef<EFBFBD>gte Datei %s"
msgstr "Suche inkludierte Datei %s"
msgid "E387: Match is on current line"
msgstr "E387: Treffer ist auf der momentanen Zeile"
msgid "All included files were found"
msgstr "Alle eingef<EFBFBD>gten Dateien wurden gefunden"
msgstr "Alle inkludierten Dateien wurden gefunden"
msgid "No included files"
msgstr "Keine eingef<EFBFBD>gten Dateien"
msgstr "Keine inkludierten Dateien"
msgid "E388: Couldn't find definition"
msgstr "E388: Definition konnte nicht gefunden werden"
msgstr "E388: Konnte Definition nicht finden"
msgid "E389: Couldn't find pattern"
msgstr "E389: Muster konnte nicht gefunden werden"
msgstr "E389: Konnte Muster nicht finden"
msgid "E759: Format error in spell file"
msgstr "E759: Format-Fehler im Rechtschreibw<62>rterbuch"
msgid "E758: Truncated spell file"
msgstr "E758 Abgeschnittenes Rechtschreibw<62>rterbuch"
msgstr "E758: Abgeschnittenes Rechtschreibw<62>rterbuch"
#, c-format
msgid "Trailing text in %s line %d: %s"
@ -4610,16 +4610,16 @@ msgid "Reading spell file \"%s\""
msgstr "Lese Rechtschreibw<62>rterbuch \"%s\" ein"
msgid "E757: This does not look like a spell file"
msgstr "E757: Das sieht nicht nach einem W<EFBFBD>rterbuch f<>r die Rechtschreibpr<EFBFBD>fung aus"
msgstr "E757: Das sieht nicht nach einem Rechtschreibw<EFBFBD>rterbuch aus"
msgid "E771: Old spell file, needs to be updated"
msgstr "E771: Altes W<EFBFBD>rterbuch f<>r die Rechtschreibpr<EFBFBD>fung, ben<65>tigt Aktualisierung"
msgstr "E771: Altes Rechtschreibw<EFBFBD>rterbuch, ben<65>tigt Aktualisierung"
msgid "E772: Spell file is for newer version of Vim"
msgstr "E772: W<>rterbuch f<>r die Rechtschreibpr<EFBFBD>fung ist f<>r eine neuere Version von Vim"
msgstr "E772: Rechtschreibw<EFBFBD>rterbuch ist f<>r eine neuere Version von Vim"
msgid "E770: Unsupported section in spell file"
msgstr "E770: Nicht unterst<73>tzter Abschnitt im W<EFBFBD>rterbuch f<>r die Rechtschreibpr<EFBFBD>fung"
msgstr "E770: Nicht unterst<73>tzter Abschnitt im Rechtschreibw<EFBFBD>rterbuch"
#, c-format
msgid "Warning: region %s not supported"
@ -4987,7 +4987,7 @@ msgstr "E393: \"group[t]here\" ist an dieser Stelle ung
#, c-format
msgid "E394: Didn't find region item for %s"
msgstr "E394: \"region\"-Element f<>r \"%s\" konnte nicht gefunden werden"
msgstr "E394: Konnte kein \"region\"-Element f<>r \"%s\" finden"
msgid "E395: contains argument not accepted here"
msgstr "E395: \"contains\"-Argument ist an dieser Stelle ung<6E>ltig"
@ -5065,10 +5065,10 @@ msgstr "E412: Nicht ausreichend viele Argumente: \":highlight link %s\""
#, c-format
msgid "E413: Too many arguments: \":highlight link %s\""
msgstr "E412: Zu viele Argumente: \":highlight link %s\""
msgstr "E413: Zu viele Argumente: \":highlight link %s\""
msgid "E414: group has settings, highlight link ignored"
msgstr "E414: Gruppe hat Einstellungen, Unterstreichung Link ignoriert"
msgstr "E414: Gruppe hat Einstellungen, highlight link ignorieren"
#, c-format
msgid "E415: unexpected equal sign: %s"
@ -5124,7 +5124,7 @@ msgstr "E425: Kann nicht vor den ersten passenden Tag hinausgehen"
#, c-format
msgid "E426: tag not found: %s"
msgstr "E426: Tag \"%s\" konnte nicht gefunden werden"
msgstr "E426: Konnte Tag \"%s\" nicht finden"
msgid " # pri kind tag"
msgstr " # pri verw. tag"
@ -5190,10 +5190,10 @@ msgid "E433: No tags file"
msgstr "E433: Keine Tag-Datei"
msgid "E434: Can't find tag pattern"
msgstr "E434: Tag-Muster kann nicht gefunden werden"
msgstr "E434: Kann Tag-Muster nicht finden"
msgid "E435: Couldn't find tag, just guessing!"
msgstr "E435: Tag konnte nicht gefunden werden, das ist nur eine Vermutung!"
msgstr "E435: Konnte Tag m<>glicherweise nicht finden!"
msgid "' not known. Available builtin terminals are:"
msgstr "' nicht bekannt. Die folgenden eingebauten Terminals stehen zur Verf<72>gung:"
@ -5205,14 +5205,14 @@ msgid "E557: Cannot open termcap file"
msgstr "E557: Termcap-Datei kann nicht ge<67>ffnet werden"
msgid "E558: Terminal entry not found in terminfo"
msgstr "E558: Terminal-Eintrag konnte in der Terminfo-Datenbank nicht gefunden werden"
msgstr "E558: Kein Terminal-Eintrag in der Terminfo-Datenbank gefunden"
msgid "E559: Terminal entry not found in termcap"
msgstr "E559: Terminaleintrag konnte in der Termcap-Datei nicht gefunden werden"
msgstr "E559: Kein Terminal-Eintrag in der Termcap-Datei gefunden"
#, c-format
msgid "E436: No \"%s\" entry in termcap"
msgstr "E436: Kein \"%s\" Eintrag in termcap"
msgstr "E436: Kein \"%s\" Eintrag in der Termcap-Datei"
msgid "E437: terminal capability \"cm\" required"
msgstr "E437: Terminalf<6C>higkeit \"cm\" wird ben<65>tigt"
@ -5232,7 +5232,7 @@ msgid "Vim: Error reading input, exiting...\n"
msgstr "Vim: Fehler beim Lesen der Eingabe, Abbruch...\n"
msgid "No undo possible; continue anyway"
msgstr "Wiederherstellung nicht m<>glich; setze trotz dem fort"
msgstr "Wiederherstellung nicht m<>glich; setze trotzdem fort"
msgid "Already at oldest change"
msgstr "Bereits bei der <20>ltesten <20>nderung"
@ -5615,11 +5615,11 @@ msgstr "E446: Kein Dateiname unter dem Cursor"
#, c-format
msgid "E447: Can't find file \"%s\" in path"
msgstr "E447: Datei \"%s\" kann im Pfad nicht gefunden werden"
msgstr "E447: Kann Datei \"%s\" nicht im Pfad finden"
#, c-format
msgid "E370: Could not load library %s"
msgstr "E370: Bibliothek %s konnte nicht geladen werden"
msgstr "E370: Konnte Bibliothek %s nicht laden"
msgid "Sorry, this command is disabled: the Perl library could not be loaded."
msgstr "Dieser Befehl ist nicht verf<72>gbar, da die Perl-Bibliothek nicht geladen werden konnte"
@ -5734,7 +5734,7 @@ msgid "E21: Cannot make changes, 'modifiable' is off"
msgstr "E21: Kann keine <20>nderungen machen, 'modifiable' ist aus"
msgid "E22: Scripts nested too deep"
msgstr "E22: Skript-Schachtelung zu tief"
msgstr "E22: Skript ist zu tief verschachtelt"
msgid "E23: No alternate file"
msgstr "E23: Keine alternative Datei"
@ -5875,7 +5875,7 @@ msgid "E523: Not allowed here"
msgstr "E523: Hier nicht erlaubt"
msgid "E359: Screen mode setting not supported"
msgstr "E359: Bildschirm Modus wird nicht unterst<73>tzt"
msgstr "E359: Bildschirm-Modus wird nicht unterst<73>tzt"
msgid "E49: Invalid scroll size"
msgstr "E49: Ung<6E>ltige Scroll-Gr<47><72>e"
@ -6013,7 +6013,7 @@ msgstr "E120: <SID> wurde nicht in einer Skript-Umgebung benutzt: %s"
#, c-format
msgid "E725: Calling dict function without Dictionary: %s"
msgstr "E725: Aufruf der 'dict' Funktion ohne Dictionary: %s"
msgstr "E725: Aufruf der 'dict' Funktion ohne W<EFBFBD>rterbuch: %s"
msgid "E786: Range not allowed"
msgstr "E786: Bereich nicht erlaubt"

View File

@ -5,7 +5,7 @@
#
# FIRST AUTHOR DindinX <David.Odin@bigfoot.com> 2000.
# SECOND AUTHOR Adrien Beau <version.francaise@free.fr> 2002, 2003.
# THIRD AUTHOR David Blanchet <david.blanchet@free.fr> 2006
# THIRD AUTHOR David Blanchet <david.blanchet@free.fr> 2006, 2008
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
@ -80,18 +80,15 @@
# - 1 message fixed, 2 messages translated.
# 2006-05-02 DB VIM 7.0g
# - 3 message fixed.
# 2007-05-13 DB VIM 7.1
# - 7 new message.
# 2007-07-03 DB Fixed a typo (Fran<61>ois Pinard).
# 2008-05-28 DB VIM 7.1.199
# - 14 new messages.
# - Fixed error number mistakes (Dominique Pelle)
# - Fixed spelling mistakes (Patrick Texier)
#
# Translated: 1694/1694 (100.00%)
#
# Polishing done on:
# buffer.c
# diff.c
# digraph.c
# edit.c
# eval.c
# ex_cmds.c
#
# Other files still to do.
# Translated: 1708/1708 (100.00%)
#
# Notations used in the comments of the unpolished part of this file:
# TODO There's work to do there, and it's important
@ -102,7 +99,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Vim(Fran<61>ais)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-05-01 19:42+0200\n"
"POT-Creation-Date: 2008-05-28 23:07+0200\n"
"PO-Revision-Date: 2006-05-02 14:15+0200\n"
"Last-Translator: David Blanchet <david.blanchet@free.fr>\n"
"Language-Team: Adrien Beau <version.francaise@free.fr>\n"
@ -320,6 +317,9 @@ msgstr "E98: Le fichier interm
msgid "E99: Current buffer is not in diff mode"
msgstr "E99: Le tampon courant n'est pas en mode diff"
msgid "E793: No other buffer in diff mode is modifiable"
msgstr "E793: Aucun autre tampon en mode diff n'est modifiable"
msgid "E100: No other buffer in diff mode"
msgstr "E100: Aucun autre tampon n'est en mode diff"
@ -565,7 +565,7 @@ msgid "E689: Can only index a List or Dictionary"
msgstr "E689: Seul une Liste ou un Dictionnaire peut <20>tre index<65>"
msgid "E708: [:] must come last"
msgstr "E709: [:] ne peut <20>tre sp<73>cifi<66> qu'en dernier"
msgstr "E708: [:] ne peut <20>tre sp<73>cifi<66> qu'en dernier"
msgid "E709: [:] requires a List value"
msgstr "E709: [:] requiert une Liste"
@ -728,7 +728,7 @@ msgid "called inputrestore() more often than inputsave()"
msgstr "inputrestore() a <20>t<EFBFBD> appel<65> plus de fois qu'inputsave()"
msgid "E786: Range not allowed"
msgstr "E786: Les plages ne sont pas autoris<69>s"
msgstr "E786: Les plages ne sont pas autoris<69>es"
msgid "E701: Invalid type for len()"
msgstr "E701: Type invalide avec len()"
@ -802,6 +802,10 @@ msgstr "E705: Le nom d'une variable entre en conflit avec la fonction %s"
msgid "E706: Variable type mismatch for: %s"
msgstr "E706: Type de variable incoh<6F>rent pour %s"
#, c-format
msgid "E795: Cannot delete variable %s"
msgstr "E795: Impossible de supprimer la variable %s"
#, c-format
msgid "E741: Value is locked: %s"
msgstr "E741: La valeur de %s est verrouill<6C>e"
@ -971,7 +975,7 @@ msgstr "E165: Impossible d'aller au-del
#, c-format
msgid "E666: compiler not supported: %s"
msgstr "E432: Compilateur %s non support<72>"
msgstr "E666: Compilateur %s non support<72>"
#, c-format
msgid "Searching for \"%s\" in \"%s\""
@ -1126,6 +1130,7 @@ msgstr "
# ses droits d'acc<63>s.
# AB - Le mot "viminfo" a <20>t<EFBFBD> retir<69> pour que le message ne d<>passe pas 80
# caract<63>res dans le cas courant o<> %s = /home/12345678/.viminfo
#. avoid a wait_return for this message, it's annoying
#, c-format
msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: L'<27>criture dans le fichier %s est interdite"
@ -1207,6 +1212,20 @@ msgstr ""
"L'option 'readonly' est activ<69>e pour \"%s\".\n"
"Voulez-vous tout de m<>me enregistrer ?"
#, c-format
msgid ""
"File permissions of \"%s\" are read-only.\n"
"It may still be possible to write it.\n"
"Do you wish to try?"
msgstr ""
"Les droits du fichier \"%s\" sont restreints <20> la lecture seule.\n"
"Il peut <20>tre possible de l'<27>crire tout de m<>me.\n"
"Tenter ?"
#, c-format
msgid "E505: \"%s\" is read-only (add ! to override)"
msgstr "E505: \"%s\" est en lecture seule (ajoutez ! pour passer outre)"
# AB - Ceci est un titre de bo<62>te de dialogue.
msgid "Edit File"
msgstr "Ouvrir un fichier - Vim"
@ -1516,7 +1535,7 @@ msgstr "Pas de fichier d'
msgid "Append File"
msgstr "Ajouter fichier"
msgid "E747: Cannot change directory, buffer is modifed (add ! to override)"
msgid "E747: Cannot change directory, buffer is modified (add ! to override)"
msgstr ""
"E747: Tampon modifi<66> : impossible de changer de r<>pertoire (ajoutez ! pour "
"passer outre)"
@ -1761,6 +1780,9 @@ msgstr "est un r
msgid "is not a file"
msgstr "n'est pas un fichier"
msgid "is a device (disabled with 'opendevice' option)"
msgstr "est un p<>riph<70>rique (desactiv<69> par l'option 'opendevice')"
msgid "[New File]"
msgstr "[Nouveau fichier]"
@ -1800,6 +1822,9 @@ msgstr "[fifo]"
msgid "[socket]"
msgstr "[socket]"
msgid "[character special]"
msgstr "[caract<63>re sp<73>cial]"
msgid "[RO]"
msgstr "[RO]"
@ -1861,6 +1886,9 @@ msgstr "Netbeans interdit l'
msgid "is not a file or writable device"
msgstr "n'est pas un fichier ou un p<>riph<70>rique inscriptible"
msgid "writing to device disabled with 'opendevice' option"
msgstr "<22>criture vers un p<>riph<70>rique d<>sactiv<69> par l'option 'opendevice'"
msgid "is read-only (add ! to override)"
msgstr "est en lecture seule (ajoutez ! pour passer outre)"
@ -1888,7 +1916,7 @@ msgstr ""
"E460: Les ressources partag<61>es seraient perdues (ajoutez ! pour passer outre)"
msgid "E214: Can't find temp file for writing"
msgstr "Impossible de g<>n<EFBFBD>rer un fichier temporaire pour y <20>crire"
msgstr "E214: Impossible de g<>n<EFBFBD>rer un fichier temporaire pour y <20>crire"
msgid "E213: Cannot convert (add ! to write without conversion)"
msgstr "E213: Impossible de convertir (ajoutez ! pour <20>crire sans convertir)"
@ -2226,7 +2254,7 @@ msgid "E231: 'guifontwide' invalid"
msgstr "E231: 'guifontwide' est invalide"
msgid "E599: Value of 'imactivatekey' is invalid"
msgstr "E599 : Valeur de 'imactivatekey' invalide"
msgstr "E599: Valeur de 'imactivatekey' invalide"
#, c-format
msgid "E254: Cannot allocate color %s"
@ -2648,15 +2676,15 @@ msgstr "E622: Impossible de forker pour cscope"
msgid "cs_create_connection exec failed"
msgstr "exec de cs_create_connection a <20>chou<6F>"
msgid "E623: Could not spawn cscope process"
msgstr "E623: Impossible d'engendrer le processus cscope"
msgid "cs_create_connection: fdopen for to_fp failed"
msgstr "cs_create_connection: fdopen pour to_fp a <20>chou<6F>"
msgid "cs_create_connection: fdopen for fr_fp failed"
msgstr "cs_create_connection: fdopen pour fr_fp a <20>chou<6F>"
msgid "E623: Could not spawn cscope process"
msgstr "E623: Impossible d'engendrer le processus cscope"
msgid "E567: no cscope connections"
msgstr "E567: Aucune connexion cscope"
@ -3151,8 +3179,11 @@ msgstr ""
" ou :"
# DB - todo (VMS uniquement).
msgid "where case is ignored prepend / to make flag upper case"
msgid ""
"\n"
"Where case is ignored prepend / to make flag upper case"
msgstr ""
"\n"
"pour lesquels la casse est indiff<66>rente (/ pour que le drapeau soit "
"majuscule)"
@ -3224,8 +3255,8 @@ msgstr "-C\t\tCompatible avec Vi : 'compatible'"
msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'"
msgstr "-N\t\tPas totalement compatible avec Vi : 'nocompatible'"
msgid "-V[N]\t\tVerbose level"
msgstr "-V[N]\tNiveau de verbosit<69>"
msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]"
msgstr "-V[N][<fichier>]\tMode verbeux [niveau N] [dans <fichier>]"
msgid "-D\t\t\tDebugging mode"
msgstr "-D\t\tMode d<>bogage"
@ -3329,9 +3360,10 @@ msgid ""
msgstr ""
"--remote-wait-silent\tPareil, mais pas d'erreur s'il n'y a aucun serveur"
msgid "--remote-tab <files> As --remote but open tab page for each file"
msgid ""
"--remote-tab[-wait][-silent] <files> As --remote but use tab page per file"
msgstr ""
"--remote-tab <fich>\tComme --remote mais ouvrir un onglet pour chaque fichier"
"--remote-tab[-wait][-silent] <fich>\tComme --remote mais ouvrir un onglet pour chaque fichier"
msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
msgstr "--remote-send <tche>\tEnvoyer <touches> <20> un serveur Vim puis quitter"
@ -3463,6 +3495,9 @@ msgstr "--socketid <xid>\tOuvrir Vim dans un autre widget GTK"
msgid "-P <parent title>\tOpen Vim inside parent application"
msgstr "-P <titre parent>\tOuvrir Vim dans une application parente"
msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
msgstr "--windowid <HWND>\tOuvrir Vim dans un autre widget win32"
msgid "No display"
msgstr "Aucun display"
@ -3663,6 +3698,9 @@ msgstr ""
",\n"
"ou le fichier a <20>t<EFBFBD> endommag<61>."
msgid " has been damaged (page size is smaller than minimum value).\n"
msgstr " a <20>t<EFBFBD> endommag<61> (taille de page inf<6E>rieure <20> la valeur minimale).\n"
#, c-format
msgid "Using swap file \"%s\""
msgstr "Utilisation du fichier d'<27>change \"%s\""
@ -4007,6 +4045,10 @@ msgstr "E328: Le menu n'existe que dans un autre mode"
msgid "E329: No menu \"%s\""
msgstr "E329: Aucun menu \"%s\""
#. Only a mnemonic or accelerator is not valid.
msgid "E792: Empty menu name"
msgstr "E792: Nom de menu vide"
msgid "E330: Menu path must not lead to a sub-menu"
msgstr "E330: Le chemin de menu ne doit pas conduire <20> un sous-menu"
@ -4535,6 +4577,13 @@ msgstr "E594: Au moins %d colonnes sont n
msgid "E355: Unknown option: %s"
msgstr "E355: Option inconnue : %s"
#. There's another character after zeros or the string
#. * is empty. In both cases, we are trying to set a
#. * num option using a string.
#, c-format
msgid "E521: Number required: &%s = '%s'"
msgstr "E521: Nombre requis: &%s = '%s'"
msgid ""
"\n"
"--- Terminal codes ---"
@ -4687,6 +4736,20 @@ msgstr "Le test du display X a
msgid "Opening the X display timed out"
msgstr "L'ouverture du display X a d<>pass<73> le d<>lai d'attente"
msgid ""
"\n"
"Could not get security context for "
msgstr ""
"\n"
"Impossible d'obtenir le contexte de s<>curit<69> pour "
msgid ""
"\n"
"Could not set security context for "
msgstr ""
"\n"
"Impossible de modifier le contexte de s<>curit<69> pour "
msgid ""
"\n"
"Cannot execute shell "
@ -5399,6 +5462,7 @@ msgstr "D
msgid "Sorry, only %ld suggestions"
msgstr "D<>sol<6F>, seulement %ld suggestions"
#. for when 'cmdheight' > 1
#. avoid more prompt
#, c-format
msgid "Change \"%.*s\" to:"
@ -5414,7 +5478,7 @@ msgstr "E752: Pas de suggestion orthographique pr
#, c-format
msgid "E753: Not found: %s"
msgstr "E334: Introuvable : %s"
msgstr "E753: Introuvable : %s"
#, c-format
msgid "E778: This does not look like a .sug file: %s"
@ -5511,7 +5575,7 @@ msgid "E396: containedin argument not accepted here"
msgstr "E396: L'argument <20> containedin <20> n'est pas accept<70> ici"
msgid "E393: group[t]here not accepted here"
msgstr "E394: L'argument <20> group[t]here <20> n'est pas accept<70> ici"
msgstr "E393: L'argument <20> group[t]here <20> n'est pas accept<70> ici"
#, c-format
msgid "E394: Didn't find region item for %s"
@ -5830,6 +5894,13 @@ msgstr ""
"\n"
"Version graphique MS-Windows 16/32 bits"
msgid ""
"\n"
"MS-Windows 64 bit GUI version"
msgstr ""
"\n"
"Version graphique MS-Windows 64 bits"
msgid ""
"\n"
"MS-Windows 32 bit GUI version"
@ -6362,7 +6433,7 @@ msgid "E35: No previous regular expression"
msgstr "E35: Aucune expression r<>guli<6C>re pr<70>c<EFBFBD>dente"
msgid "E481: No range allowed"
msgstr "E481: Les plages ne sont pas autoris<69>s"
msgstr "E481: Les plages ne sont pas autoris<69>es"
msgid "E36: Not enough room"
msgstr "E36: Pas assez de place"
@ -6439,9 +6510,9 @@ msgid "E46: Cannot change read-only variable \"%s\""
msgstr "E46: La variable \"%s\" est en lecture seule"
#, c-format
msgid "E46: Cannot set variable in the sandbox: \"%s\""
msgid "E794: Cannot set variable in the sandbox: \"%s\""
msgstr ""
"E46: Impossible de modifier une variable depuis le bac <20> sable : \"%s\""
"E794: Impossible de modifier une variable depuis le bac <20> sable : \"%s\""
msgid "E47: Error while reading errorfile"
msgstr "E47: Erreur lors de la lecture du fichier d'erreurs"
@ -6518,7 +6589,7 @@ msgstr ""
#, c-format
msgid "E685: Internal error: %s"
msgstr "E473: Erreur interne : %s"
msgstr "E685: Erreur interne : %s"
msgid "E363: pattern uses more memory than 'maxmempattern'"
msgstr "E363: le motif utilise plus de m<>moire que 'maxmempattern'"

View File

@ -698,7 +698,7 @@ msgstr "E478:
#, c-format
msgid "E661: Sorry, no '%s' help for %s"
msgstr "E149: <20><><EFBFBD>p, <20>S<EFBFBD><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s-%s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgstr "E661: <20><><EFBFBD>p, <20>S<EFBFBD><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s-%s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#, c-format
msgid "E149: Sorry, no help for %s"
@ -1677,7 +1677,7 @@ msgid "E231: 'guifontwide' invalid"
msgstr "E231: <20><><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><54> 'guifontwide'"
msgid "E599: Value of 'imactivatekey' is invalid"
msgstr "E559: 'imactivatekey' <20><><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD>T"
msgstr "E599: 'imactivatekey' <20><><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD>T"
#, c-format
msgid "E254: Cannot allocate color %s"
@ -4004,7 +4004,7 @@ msgstr "E56: %s*
#, c-format
msgid "E57: %s+ operand could be empty"
msgstr "E56: %s+ <20>B<EFBFBD><EFBFBD>i<EFBFBD>H<EFBFBD>O<EFBFBD>Ū<EFBFBD>"
msgstr "E57: %s+ <20>B<EFBFBD><EFBFBD>i<EFBFBD>H<EFBFBD>O<EFBFBD>Ū<EFBFBD>"
#, c-format
msgid "E59: invalid character after %s@"
@ -4930,7 +4930,7 @@ msgstr "E234:
#, c-format
msgid "E235: Unknown font: %s"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><54><EFBFBD>r<EFBFBD><72><EFBFBD>W<EFBFBD><57>: %s"
msgstr "E235: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><EFBFBD><EFBFBD>r<EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><EFBFBD>: %s"
#, c-format
msgid "E236: Font \"%s\" is not fixed-width"

View File

@ -4,8 +4,9 @@ int macroman2enc __ARGS((char_u *ptr, long *sizep, long real_size));
int enc2macroman __ARGS((char_u *from, size_t fromlen, char_u *to, int *tolenp, int maxtolen, char_u *rest, int *restlenp));
void mac_conv_init __ARGS((void));
void mac_conv_cleanup __ARGS((void));
char_u *mac_utf16_to_enc __ARGS((UniChar *from, size_t fromLen, size_t *actualLen));
UniChar *mac_enc_to_utf16 __ARGS((char_u *from, size_t fromLen, size_t *actualLen));
CFStringRef mac_enc_to_cfstring __ARGS((char_u *from, size_t fromLen));
char_u *mac_utf16_to_enc __ARGS((unsigned short *from, size_t fromLen, size_t *actualLen));
unsigned short *mac_enc_to_utf16 __ARGS((char_u *from, size_t fromLen, size_t *actualLen));
void * mac_enc_to_cfstring __ARGS((char_u *from, size_t fromLen));
char_u *mac_precompose_path __ARGS((char_u *decompPath, size_t decompLen, size_t *precompLen));
void mac_lang_init __ARGS((void));
/* vim: set ft=c : */

View File

@ -311,10 +311,6 @@
#if defined(FEAT_SPELL) || defined(PROTO)
#ifdef HAVE_FCNTL_H
# include <fcntl.h>
#endif
#ifndef UNIX /* it's in os_unix.h for Unix */
# include <time.h> /* for time_t */
#endif
@ -2945,7 +2941,7 @@ read_cnt_string(fd, cnt_bytes, cntp)
/*
* Read a string of length "cnt" from "fd" into allocated memory.
* Returns NULL when out of memory.
* Returns NULL when out of memory or unable to read that many bytes.
*/
static char_u *
read_string(fd, cnt)
@ -2954,14 +2950,23 @@ read_string(fd, cnt)
{
char_u *str;
int i;
int c;
/* allocate memory */
str = alloc((unsigned)cnt + 1);
if (str != NULL)
{
/* Read the string. Doesn't check for truncated file. */
/* Read the string. Quit when running into the EOF. */
for (i = 0; i < cnt; ++i)
str[i] = getc(fd);
{
c = getc(fd);
if (c == EOF)
{
vim_free(str);
return NULL;
}
str[i] = c;
}
str[i] = NUL;
}
return str;
@ -3291,6 +3296,7 @@ read_words_section(fd, lp, len)
{
int done = 0;
int i;
int c;
char_u word[MAXWLEN];
while (done < len)
@ -3298,7 +3304,10 @@ read_words_section(fd, lp, len)
/* Read one word at a time. */
for (i = 0; ; ++i)
{
word[i] = getc(fd);
c = getc(fd);
if (c == EOF)
return SP_TRUNCERROR;
word[i] = c;
if (word[i] == NUL)
break;
if (i == MAXWLEN - 1)
@ -3545,6 +3554,11 @@ read_compound(fd, slang, len)
while (todo-- > 0)
{
c = getc(fd); /* <compflags> */
if (c == EOF)
{
vim_free(pat);
return SP_TRUNCERROR;
}
/* Add all flags to "sl_compallflags". */
if (vim_strchr((char_u *)"+*[]/", c) == NULL
@ -6024,7 +6038,7 @@ aff_process_flags(affile, entry)
flag = get_affitem(affile->af_flagtype, &p);
if (flag == affile->af_comppermit || flag == affile->af_compforbid)
{
mch_memmove(prevp, p, STRLEN(p) + 1);
STRMOVE(prevp, p);
p = prevp;
if (flag == affile->af_comppermit)
entry->ae_comppermit = TRUE;
@ -6515,7 +6529,7 @@ spell_read_dic(spin, fname, affile)
for (p = w; *p != NUL; mb_ptr_adv(p))
{
if (*p == '\\' && (p[1] == '\\' || p[1] == '/'))
mch_memmove(p, p + 1, STRLEN(p));
STRMOVE(p, p + 1);
else if (*p == '/')
{
*p = NUL;
@ -12574,7 +12588,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
tl = (int)STRLEN(ftp->ft_to);
if (fl != tl)
{
mch_memmove(p + tl, p + fl, STRLEN(p + fl) + 1);
STRMOVE(p + tl, p + fl);
repextra += tl - fl;
}
mch_memmove(p, ftp->ft_to, tl);
@ -12604,7 +12618,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
p = fword + sp->ts_fidx;
if (fl != tl)
{
mch_memmove(p + fl, p + tl, STRLEN(p + tl) + 1);
STRMOVE(p + fl, p + tl);
repextra -= tl - fl;
}
mch_memmove(p, ftp->ft_from, fl);
@ -13035,7 +13049,7 @@ stp_sal_score(stp, su, slang, badsound)
if (vim_iswhite(su->su_badptr[su->su_badlen])
&& *skiptowhite(stp->st_word) == NUL)
for (p = fword; *(p = skiptowhite(p)) != NUL; )
mch_memmove(p, p + 1, STRLEN(p));
STRMOVE(p, p + 1);
spell_soundfold(slang, fword, TRUE, badsound2);
pbad = badsound2;
@ -14281,8 +14295,7 @@ spell_soundfold_sal(slang, inword, res)
s++;
}
if (k > k0)
mch_memmove(word + i + k0, word + i + k,
STRLEN(word + i + k) + 1);
STRMOVE(word + i + k0, word + i + k);
/* new "actual letter" */
c = word[i];
@ -14304,8 +14317,7 @@ spell_soundfold_sal(slang, inword, res)
{
if (c != NUL)
res[reslen++] = c;
mch_memmove(word, word + i + 1,
STRLEN(word + i + 1) + 1);
STRMOVE(word, word + i + 1);
i = 0;
z0 = 1;
}

View File

@ -25,7 +25,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test43.out test44.out test45.out test46.out test47.out \
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out
test61.out test62.out test63.out test64.out test65.out
.SUFFIXES: .in .out

View File

@ -1329,6 +1329,10 @@ typedef enum
*/
#define MAXMAPLEN 50
#ifdef HAVE_FCNTL_H
# include <fcntl.h>
#endif
#ifdef BINARY_FILE_IO
# define WRITEBIN "wb" /* no CR-LF translation */
# define READBIN "rb"
@ -1379,6 +1383,9 @@ typedef enum
# endif
#endif
/* Like strcpy() but allows overlapped source and destination. */
#define STRMOVE(d, s) mch_memmove((d), (s), STRLEN(s) + 1)
#ifdef HAVE_STRNCASECMP
# define STRNICMP(d, s, n) strncasecmp((char *)(d), (char *)(s), (size_t)(n))
#else
@ -1709,7 +1716,8 @@ typedef int proftime_T; /* dummy for function prototypes */
#define VV_MOUSE_LNUM 50
#define VV_MOUSE_COL 51
#define VV_OP 52
#define VV_LEN 53 /* number of v: vars */
#define VV_SEARCHFORWARD 53
#define VV_LEN 54 /* number of v: vars */
#ifdef FEAT_CLIPBOARD

View File

@ -1,5 +1,5 @@
CODE PRELOAD EXECUTEONLY
DATA MULTIPLE SHARED
DESCRIPTION 'Vim 7.1'
DESCRIPTION 'Vim 7.2a'
STACKSIZE 16000
HEAPSIZE 10000