Compare commits

...

119 Commits

Author SHA1 Message Date
Bram Moolenaar
21377c8d5f updated for version 7.3.144
Problem:    Crash with ":python help(dir)". (Kearn Holliday)
Solution:   Fix the way the type is set on objects. (Tobias Columbus)
2011-03-26 13:56:48 +01:00
Bram Moolenaar
b3c5284c5b Add missing files for patch 7.3.143. 2011-03-22 20:52:37 +01:00
Bram Moolenaar
b05b10a3c0 updated for version 7.3.143
Problem:    Memfile is not tested sufficiently.  Looking up blocks in a
            memfile is slow when there are many blocks.
Solution:   Add high level test and unittest.  Adjust the number of hash
            buckets to the number of blocks.  (Ivan Krasilnikov)
2011-03-22 18:10:45 +01:00
Bram Moolenaar
cab49dff91 Updated runtime file. Fix Italian translations. 2011-03-22 17:40:10 +01:00
Bram Moolenaar
a29a37d533 updated for version 7.3.142
Problem:    Python stdout doesn't have a flush() method, causing an import to
            fail.
Solution:   Add a dummy flush() method. (Tobias Columbus)
2011-03-22 15:47:44 +01:00
Bram Moolenaar
0b2f94db23 updated for version 7.3.141
Problem:    When a key code is not set get a confusing error message.
Solution:   Change the error message to say the key code is not set.
2011-03-22 14:35:05 +01:00
Bram Moolenaar
662db673f9 Updated runtime files. 2011-03-22 14:05:35 +01:00
Bram Moolenaar
e9d4b58dda updated for version 7.3.140
Problem:    Crash when drawing the "$" at end-of-line for list mode just after
            the window border and 'cursorline' is set.
Solution:   Don't check for 'cursorline'. (Quentin Carbonneaux)
2011-03-22 13:29:24 +01:00
Bram Moolenaar
fd30cd41dc updated for version 7.3.139
Problem:    When 'lazyredraw' is set ":ver" output can't be read.
Solution:   Don't redraw the screen when at a prompt or command line.
2011-03-22 13:07:26 +01:00
Bram Moolenaar
f63c49d4e9 updated for version 7.3.138
Problem:    ":com" changes the multi-byte text of :echo. (Dimitar Dimitrov)
Solution:   Search for K_SPECIAL as a byte, not a character. (Ben Schmidt)
2011-03-03 15:54:50 +01:00
Bram Moolenaar
6eb634ef1f updated for version 7.3.137
Problem:    When 'lazyredraw' is set the screen may not be updated. (Ivan
            Krasilnikov)
Solution:   Call update_screen() before waiting for input.
2011-03-03 15:04:08 +01:00
Bram Moolenaar
ec737235c7 updated for version 7.3.136
Problem:    Duplicate include of assert.h.
Solution:   Remove it.
2011-03-03 15:01:30 +01:00
Bram Moolenaar
b4b0a08c81 updated for version 7.3.135
Problem:    When there is no previous substitute pattern, the previous search
            pattern is used.  The other way around doesn't work.
Solution:   When there is no previous search pattern, use the previous
            substitute pattern if possible. (Christian Brabandt)
2011-02-25 18:38:36 +01:00
Bram Moolenaar
ba7cc9f83f updated for version 7.3.134
Problem:    Drag-n-drop doesn't work in KDE Dolphin.
Solution:   Add GDK_ACTION_MOVE flag. (Florian Degner)
2011-02-25 17:10:27 +01:00
Bram Moolenaar
4cf35c2fa4 updated for version 7.3.133
Problem:    When using encryption it's not clear what method was used.
Solution:   In the file message show "blowfish" when using blowfish.
2011-02-25 16:52:17 +01:00
Bram Moolenaar
0c1f3f4d49 updated for version 7.3.132
Problem:    C++ style comments.
Solution:   Change to C comments.
2011-02-25 15:18:50 +01:00
Bram Moolenaar
c725c0ad9b updated for version 7.3.131
Problem:    Including errno.h too often.
Solution:   Don't include errno.h in Unix header file.
2011-02-25 15:17:19 +01:00
Bram Moolenaar
ede547afcf updated for version 7.3.130
Problem:    Variable misplaced in #ifdef.
Solution:   Move clipboard_event_time outside of #ifdef.
2011-02-25 15:15:50 +01:00
Bram Moolenaar
128773b21d updated for version 7.3.129
Problem:    Using integer like a boolean.
Solution:   Nicer check for integer being non-zero.
2011-02-25 15:13:48 +01:00
Bram Moolenaar
e698addf88 updated for version 7.3.128
Problem:    Another compiler warning for signed pointer.
Solution:   Use unsigned int argument for sscanf().
2011-02-25 15:11:22 +01:00
Bram Moolenaar
49789dc987 updated for version 7.3.127
Problem:    Compiler complains about comma.
Solution:   Remove comma after last enum element.
2011-02-25 14:46:09 +01:00
Bram Moolenaar
2f70a34e2e updated for version 7.3.126
Problem:    Compiler warning for signed pointer.
Solution:   Use unsigned int argument for sscanf().
2011-02-25 14:42:45 +01:00
Bram Moolenaar
0065402f9a Runtime file updates. 2011-02-25 14:42:19 +01:00
Bram Moolenaar
c30846f525 updated for version 7.3.125
Problem:    MSVC: Problem with quotes in link argument.
Solution:   Escape backslashes and quotes. (Weasley)
2011-02-15 18:06:15 +01:00
Bram Moolenaar
cab35ad26d updated for version 7.3.124
Problem:    When writing a file in binary mode it may be missing the final EOL
            if a file previously read was missing the EOL. (Kevin Goodsell)
Solution:   Move the write_no_eol_lnum into the buffer struct.
2011-02-15 17:39:22 +01:00
Bram Moolenaar
c2b4c62d0b updated for version 7.3.123
Problem:    ml_get error when executing register being recorded into, deleting
            lines and 'conceallevel' is set. (ZyX)
Solution:   Don't redraw a line for concealing when it doesn't exist.
2011-02-15 16:29:59 +01:00
Bram Moolenaar
542512a3e5 updated for version 7.3.122
Problem:    Having auto/config.mk in the repository causes problems.
Solution:   Remove auto/config.mk from the distribution.  In the toplevel
            Makefile copy it from the "dist" file.
2011-02-15 15:28:09 +01:00
Bram Moolenaar
b75d09d42b updated for version 7.3.121
Problem:    Complicated 'statusline' causes a crash. (Christian Brabandt)
Solution:   Check that the number of items is not too big.
2011-02-15 14:24:46 +01:00
Bram Moolenaar
c41fc713ba updated for version 7.3.120
Problem:    The message for an existing swap file is too long to fit in a 25
            line terminal.
Solution:   Make the message shorter. (Chad Miller)
2011-02-15 11:57:04 +01:00
Bram Moolenaar
e627fb00fc updated for version 7.3.119
Problem:    Build problem on Mac. (Nicholas Stallard)
Solution:   Use "extern" instead of "EXTERN" for p_vfile.
2011-02-12 14:00:03 +01:00
Bram Moolenaar
b292a2a04c updated for version 7.3.118
Problem:    Ruby uses SIGVTALARM which makes Vim exit. (Alec Tica)
Solution:   Ignore SIGVTALARM. (Dominique Pelle)
2011-02-09 18:47:40 +01:00
Bram Moolenaar
4e509b6369 updated for version 7.3.117
Problem:    On some systems --as-needed does not work, because the "tinfo"
            library is included indirectly from "ncurses". (Charles Campbell)
Solution:   In configure prefer using "tinfo" instead of "ncurses".
2011-02-09 17:42:57 +01:00
Bram Moolenaar
5ec3aea854 updated for version 7.3.116
Problem:    'cursorline' is displayed too short when there are concealed
            characters and 'list' is set.  (Dennis Preiser)
Solution:   Check for 'cursorline' when 'list' is set. (Christian Brabandt)
2011-02-09 17:09:30 +01:00
Bram Moolenaar
d58e929fa2 Updated runtime files and translations. 2011-02-09 17:07:58 +01:00
Bram Moolenaar
95474ca34c updated for version 7.3.115
Problem:    Vim can crash when tmpnam() returns NULL.
Solution:   Check for NULL. (Hong Xu)
2011-02-09 16:44:51 +01:00
Bram Moolenaar
ba81e4660b updated for version 7.3.114
Problem:    Potential problem in initialization when giving an error message
            early.
Solution:   Initialize 'verbosefile' empty. (Ben Schmidt)
2011-02-09 15:59:37 +01:00
Bram Moolenaar
b18919146d updated for version 7.3.113
Problem:    Windows: Fall back directory for creating temp file is wrong.
Solution:   Use "." instead of empty string. (Hong Xu)
2011-02-09 14:47:03 +01:00
Bram Moolenaar
1d87f516f2 updated for version 7.3.112
Problem:    Setting 'statusline' to "%!'asdf%' reads uninitialized memory.
Solution:   Check for NUL after %.
2011-02-01 21:55:01 +01:00
Bram Moolenaar
6145285c90 updated for version 7.3.111
Problem:    Executing a :normal command in 'statusline' evaluation causes the
            cursor to move. (Dominique Pelle)
Solution:   When updating the cursor for 'cursorbind' allow the cursor beyond
            the end of the line.  When evaluating 'statusline' temporarily
            reset 'cursorbind'.
2011-02-01 18:01:11 +01:00
Bram Moolenaar
acf1728ef5 updated for version 7.3.110
Problem:    The "nbsp" item in 'listchars' isn't used for ":list".
Solution:   Make it work. (Christian Brabandt)
2011-02-01 17:12:25 +01:00
Bram Moolenaar
c98d5ee923 updated for version 7.3.109
Problem:    Processing new Esperanto spell file fails and crashes Vim.
            (Dominique Pelle)
Solution:   When running out of memory give an error.  Handle '?' in
            COMPOUNDRULE properly.
2011-02-01 13:59:48 +01:00
Bram Moolenaar
3c2d6534ef updated for version 7.3.108
Problem:    Useless check for NULL when calling vim_free().
Solution:   Remove the check. (Dominique Pelle)
2011-02-01 13:48:53 +01:00
Bram Moolenaar
5e3d6ca435 updated for version 7.3.107
Problem:    Year number for :undolist can be confused with month or day.
Solution:   Change "%y" to "%Y".
2011-01-22 21:25:11 +01:00
Bram Moolenaar
f3d419d719 updated for version 7.3.106
Problem:    When 'cursorbind' is set another window may scroll unexpectedly
            when 'scrollbind' is also set. (Xavier Wang)
Solution:   Don't call update_topline() if 'scrollbind' is set.
2011-01-22 21:05:07 +01:00
Bram Moolenaar
445edda2f9 updated for version 7.3.105
Problem:    Can't get the value of "b:changedtick" with getbufvar().
Solution:   Make it work. (Christian Brabandt)
2011-01-22 01:13:39 +01:00
Bram Moolenaar
4124e72373 updated for version 7.3.104
Problem:    Conceal: using Tab for cchar causes problems. (ZyX)
Solution:   Do not accept a control character for cchar.
2011-01-22 00:58:20 +01:00
Bram Moolenaar
164c60f5b1 updated for version 7.3.103
Problem:    Changing 'fileformat' and then using ":w" in an empty file sets
            the 'modified' option.
Solution:   In unchanged() don't ignore 'ff' for an empty file.
2011-01-22 00:11:50 +01:00
Bram Moolenaar
d2c340a6a6 updated for version 7.3.102
Problem:    When using ":make", typing the next command and then getting the
            "reload" prompt the next command is (partly) eaten by the reload
            prompt.
Solution:   Accept ':' as a special character at the reload prompt to accept
            the default choice and execute the command.
2011-01-17 20:08:11 +01:00
Bram Moolenaar
e279335752 updated for version 7.3.101
Problem:    ino_t defined with wrong size.
Solution:   Move including auto/config.h before other includes. (Marius
            Geminas)
2011-01-17 19:53:27 +01:00
Bram Moolenaar
48ac02c9eb updated for version 7.3.100
Problem:    When using :normal v:count isn't set.
Solution:   Call normal_cmd() with toplevel set to TRUE.
2011-01-17 19:50:06 +01:00
Bram Moolenaar
2a8a3ecb67 Updated runtime files. 2011-01-08 16:06:37 +01:00
Bram Moolenaar
13d831ff0c updated for version 7.3.099
Problem:    Crash when splitting a window with zero height. (Yukihiro
            Nakadaira)
Solution:   Don't set the fraction in a window with zero height.
2011-01-08 14:46:03 +01:00
Bram Moolenaar
fd0e75683f updated for version 7.3.098
Problem:    Function that ignores error still causes called_emsg to be set.
            E.g. when expand() fails the status line is disabled.
Solution:   Move check for emsg_not_now() up. (James Vega)
2011-01-04 19:25:50 +01:00
Bram Moolenaar
6d0efdaab5 updated for version 7.3.097
Problem:    Using ":call" inside "if 0" does not see that a function returns a
            Dict and gives error for "." as string concatenation.
Solution:   Use eval0() to skip over the expression.  (Yasuhiro Matsumoto)
2011-01-04 19:03:27 +01:00
Bram Moolenaar
870b05c4c0 updated for version 7.3.096
Problem:    "gvim -nb" is not interruptable.  Leaking file descriptor on
            netbeans connection error.
Solution:   Check for CTRL-C typed.  Free file descriptor.  (Xavier de Gaye)
2011-01-04 18:11:43 +01:00
Bram Moolenaar
d91f704b03 updated for version 7.3.095
Problem:    Win32: In Chinese tear-off menu doesn't work. (Weasley)
Solution:   Use menu_name_equal().  (Alex Jakushev)
2011-01-04 17:49:32 +01:00
Bram Moolenaar
7eb4652e74 updated for version 7.3.094
Problem:    Using abs() requires type cast to int.
Solution:   Use labs() so that the value remains long. (Hong Xu)
2010-12-30 14:57:08 +01:00
Bram Moolenaar
b0d3f878a4 updated for version 7.3.093
Problem:    New DLL dependencies in MingW with gcc 4.5.0.
Solution:   Add STATIC_STDCPLUS, LDFLAGS and split up WINDRES. (Guopeng Wen)
2010-12-30 14:50:52 +01:00
Bram Moolenaar
9980835c68 updated for version 7.3.092
Problem:    Resizing the window when exiting.
Solution:   Don't resize when exiting.
2010-12-30 14:47:36 +01:00
Bram Moolenaar
946ffd4606 updated for version 7.3.091
Problem:    "vim -w foo" writes special key codes for removed escape
            sequences. (Josh Triplett)
Solution:   Don't write K_IGNORE codes.
2010-12-30 12:30:31 +01:00
Bram Moolenaar
657ae0bddd updated for version 7.3.090
Problem:    Wrong help text for Cscope.
Solution:   Adjust the help text for "t". (Dominique Pelle)
2010-12-30 11:41:09 +01:00
Bram Moolenaar
de1b092c77 updated for version 7.3.089
Problem:    Compiler warning on 64 bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
2010-12-24 14:00:17 +01:00
Bram Moolenaar
7a8ef14c69 updated for version 7.3.088
Problem:    Ruby can't load Gems sometimes, may cause a crash.
Solution:   Undefine off_t.  Use ruby_process_options(). (Yasuhiro Matsumoto)
2010-12-24 13:39:35 +01:00
Bram Moolenaar
b57aa92d2c updated for version 7.3.087
Problem:    EINTR is not always defined.
Solution:   Include errno.h in vim.h.
2010-12-17 20:24:01 +01:00
Bram Moolenaar
f82a2d2e5f updated for version 7.3.086
Problem:    When using a mapping with an expression and there was no count,
            v:count has the value of the previous command. (ZyX)
Solution:   Also set v:count and v:count1 before getting the character that
            could be a command or a count.
2010-12-17 18:53:01 +01:00
Bram Moolenaar
9c26303293 updated for version 7.3.085
Problem:    Inconsistency with preproc symbols.  void * computation.
Solution:   Include vimio.h from vim.h.  Add type cast.
2010-12-17 18:06:06 +01:00
Bram Moolenaar
0215e8e15b updated for version 7.3.084
Problem:    When splitting the window, the new one scrolls with the cursor at
            the top.
Solution:   Compute w_fraction before setting the new height.
2010-12-17 17:35:10 +01:00
Bram Moolenaar
540fc6fbdb updated for version 7.3.083
Problem:    When a read() or write() is interrupted by a signal it fails.
Solution:   Add read_eintr() and write_eintr().
2010-12-17 16:27:16 +01:00
Bram Moolenaar
45d9d02d71 updated for version 7.3.082
Problem:    Leaking file descriptor when hostname doesn't exist.
Solution:   Remove old debugging lines.
2010-12-17 12:19:21 +01:00
Bram Moolenaar
81af9250a7 Update runtime files. 2010-12-10 20:35:50 +01:00
Bram Moolenaar
7c5676b5d6 updated for version 7.3.081
Problem:    Non-printable characters in 'statusline' cause trouble. (ZyX)
Solution:   Use transstr(). (partly by Caio Ariede)
2010-12-08 19:56:58 +01:00
Bram Moolenaar
56f7804065 updated for version 7.3.080
Problem:    Spell doesn't work on VMS.
Solution:   Use different file names. (Zoltan Bartos, Zoltan Arpadffy)
2010-12-08 17:09:32 +01:00
Bram Moolenaar
3d27070767 updated for version 7.3.079
Problem:    Duplicate lines in makefile.
Solution:   Remove the lines. (Hong Xu)
2010-12-08 14:55:02 +01:00
Bram Moolenaar
9c52c3a0a1 updated for version 7.3.078
Problem:    Warning for unused variable.
Solution:   Adjuste #ifdefs.
2010-12-08 14:23:15 +01:00
Bram Moolenaar
2e2e13ca14 updated for version 7.3.077
Problem:    When updating crypt of swapfile fails there is no error message.
            (Carlo Teubner)
Solution:   Add the error message.
2010-12-08 13:17:03 +01:00
Bram Moolenaar
e980d8a934 updated for version 7.3.076
Problem:    Clang warnings for dead code.
Solution:   Remove it. (Carlo Teubner)
2010-12-08 13:11:21 +01:00
Bram Moolenaar
005c3c27ee updated for version 7.3.075
Problem:    Missing part of 'wildignorecase'
Solution:   Also adjust expand()
2010-12-02 21:44:40 +01:00
Bram Moolenaar
bf9680e441 updated for version 7.3.074
Problem:    Can't use the "+ register like "* for yank and put.
Solution:   Add "unnamedplus" to the 'clipboard' option. (Ivan Krasilnikov)
2010-12-02 21:43:16 +01:00
Bram Moolenaar
863053d1d4 updated for version 7.3.073
Problem:    Double free memory when netbeans command follows DETACH.
Solution:   Only free the node when owned. (Xavier de Gaye)
2010-12-02 17:09:54 +01:00
Bram Moolenaar
94950a9ee0 updated for version 7.3.072
Problem:    Can't complete file names while ignoring case.
Solution:   Add 'wildignorecase'.
2010-12-02 16:01:29 +01:00
Bram Moolenaar
4161dccada updated for version 7.3.071
Problem:    Editing a file in a window that's in diff mode resets 'diff'
            but not cursor binding.
Solution:   Reset cursor binding in two more places.
2010-12-02 15:33:21 +01:00
Bram Moolenaar
d4ddfafc2a updated for version 7.3.070
Problem:    Can set environment variables in the sandbox, could be abused.
Solution:   Disallow it.
2010-12-02 14:48:14 +01:00
Bram Moolenaar
df6b11e955 updated for version 7.3.069
Problem:    GTK: pressing Enter in inputdialog() doesn't work like clicking OK
            as documented.
Solution:   call gtk_entry_set_activates_default(). (Britton Kerin)
2010-11-24 18:48:12 +01:00
Bram Moolenaar
f666f0e5c0 updated for version 7.3.068
Problem:    Using freed memory when doing ":saveas" and an autocommand sets
            'autochdir'. (Kevin Klement)
Solution:   Get the value of fname again after executing autocommands.
2010-11-24 17:59:32 +01:00
Bram Moolenaar
ef2f028a66 updated for version 7.3.067
Problem:    Ruby: Init_prelude is not always available.
Solution:   Remove use of Init_prelude. (Yasuhiro Matsumoto)
2010-11-24 17:03:38 +01:00
Bram Moolenaar
0785ccf995 updated for version 7.3.066
Problem:    Crash when changing to another window while in a :vimgrep command.
            (Christian Brabandt)
Solution:   When wiping out the dummy before, remove it from aucmd_win.
2010-11-24 16:32:05 +01:00
Bram Moolenaar
4dbbff57ba updated for version 7.3.065
Problem:    Can't get current line number in a source file.
Solution:   Add the <slnum> item, similar to <sfile>.
2010-11-24 15:50:59 +01:00
Bram Moolenaar
0818b87cbf updated for version 7.3.064
Problem:    Win32: ":dis +" shows nothing, but "+p does insert text.
Solution:   Display the * register, since that's what will be inserted.
            (Christian Brabandt)
2010-11-24 14:28:58 +01:00
Bram Moolenaar
96e5ceed93 updated for version 7.3.063
Problem:    Win32: Running a filter command makes Vim lose focus.
Solution:   Use SW_SHOWMINNOACTIVE instead of SW_SHOWMINIMIZED. (Hong Xu)
2010-11-24 12:35:21 +01:00
Bram Moolenaar
166af9bb6f Updated runtime files. 2010-11-16 20:34:40 +01:00
Bram Moolenaar
644d37b84d updated for version 7.3.062
Problem:    Python doesn't work properly when installed in another directory
            than expected.
Solution:   Figure out home directory in configure and use Py_SetPythonHome()
            at runtime. (Roland Puntaier)
2010-11-16 19:26:02 +01:00
Bram Moolenaar
00b78c17b2 updated for version 7.3.061
Problem:    Remote ":drop" does not respect 'autochdir'. (Peter Odding)
Solution:   Don't restore the directory when 'autochdir' is set. (Benjamin
            Fritz)
2010-11-16 16:25:51 +01:00
Bram Moolenaar
7ad7d01074 updated for version 7.3.060
Problem:    Netbeans: crash when socket is disconnected unexpectedly.
Solution:   Don't cleanup when a read fails, put a message in the queue and
            disconnect later. (Xavier de Gaye)
2010-11-16 15:49:02 +01:00
Bram Moolenaar
03531f79c3 updated for version 7.3.059
Problem:    Netbeans: Problem with recursively handling messages for Athena
            and Motif.
Solution:   Call netbeans_parse_messages() in the main loop, like it's done
            for GTK. (Xavier de Gaye)
2010-11-16 15:04:57 +01:00
Bram Moolenaar
3c53160348 updated for version 7.3.058
Problem:    Error "code converter not found" when loading Ruby script.
Solution:   Load Gem module. (Yasuhiro Matsumoto)
2010-11-16 14:46:19 +01:00
Bram Moolenaar
66b4bf8980 updated for version 7.3.057
Problem:    Segfault with command line abbreviation. (Randy Morris)
Solution:   Don't retrigger the abbreviation when abandoning the command line.
            Continue editing the command line after the error.
2010-11-16 14:06:08 +01:00
Bram Moolenaar
bf55e1442d updated for version 7.3.056
Problem:    "getline" argument in do_cmdline() shadows global.
Solution:   Rename the argument.
Files:      src/ex_docmd.c
2010-11-16 11:32:01 +01:00
Bram Moolenaar
67b3f99eb0 updated for version 7.3.055
Problem:    Recursively nested lists and dictionaries cause a near-endless
            loop when comparing them with a copy. (ZyX)
Solution:   Limit recursiveness in a way that non-recursive structures can
            still be nested very deep.
Files:      src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
2010-11-10 20:41:57 +01:00
Bram Moolenaar
a3e7b1f42b updated for version 7.3.054
Problem:    Can define a user command for :Print, but it doesn't work. (Aaron
            Thoma)
Solution:   Let user command :Print overrule the builtin command (Christian
            Brabandt)  Disallow :X and :Next as a user defined command.
2010-11-10 19:00:01 +01:00
Bram Moolenaar
2a8caa414e updated for version 7.3.053
Problem:    complete() function doesn't reset complete direction.  Can't use
            an empty string in the list of matches.
Solution:   Set compl_direction to FORWARD.  Add "empty" key to allow empty
            words. (Kikuchan)
2010-11-10 17:11:33 +01:00
Bram Moolenaar
37dd018cdd updated for version 7.3.052
Problem:    When 'completefunc' opens a new window all kinds of errors follow.
            (Xavier Deguillard)
Solution:   When 'completefunc' goes to another window or buffer and when it
            deletes text abort completion.  Add a test for 'completefunc'.
2010-11-10 16:54:20 +01:00
Bram Moolenaar
27d9eceb66 updated for version 7.3.051
Problem:    Crash when /home/mool/bin:/usr/local/sbin:/usr/local/bin:/home/mool/java/jdk/bin:/bin:/sbin:/usr/bin:/usr/games:/usr/sbin:/usr/X11R6/bin:/usr/local/linux-jdk1.3.1/bin:/usr/local/lib/python2.2/Tools/idle is empty.
Solution:   Check for vim_getenv() returning NULL. (Yasuhiro Matsumoto)
2010-11-10 15:37:05 +01:00
Bram Moolenaar
22e193ddd5 updated for version 7.3.050
Problem:    The link script is clumsy.
Solution:   Use the --as-needed linker option if available. (Kirill A.
            Shutemov)
2010-11-03 22:32:24 +01:00
Bram Moolenaar
2d0860d06c updated for version 7.3.049
Problem:    PLT has rebranded their Scheme to Racket.
Solution:   Add support for Racket 5.x. (Sergey Khorev)
2010-11-03 21:59:30 +01:00
Bram Moolenaar
dba01a0197 updated for version 7.3.048
Problem:    ":earlier 1f" doesn't work after loading undo file.
Solution:   Set b_u_save_nr_cur when loading an undo file. (Christian
            Brabandt)
            Fix only showing time in ":undolist"
2010-11-03 19:32:42 +01:00
Bram Moolenaar
16a6165bb3 updated for version 7.3.047
Problem:    Missing makefile updates for test 75.
Solution:   Update the makefiles.
2010-10-27 18:36:36 +02:00
Bram Moolenaar
0536570fa2 Updated runtile files. 2010-10-27 18:34:44 +02:00
Bram Moolenaar
2d73ff4500 updated for version 7.3.046
Problem:    Can't build Ruby on MS-Windows.
Solution:   Add #ifdef, don't use WIN3264 before including vim.h.
2010-10-27 17:40:59 +02:00
Bram Moolenaar
b3ae56cf2b updated for version 7.3.045
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize the variable always.
2010-10-27 17:39:05 +02:00
Bram Moolenaar
ee236d0d19 updated for version 7.3.044
Problem:    The preview window opened by the popup menu is larger than
            specified with 'previewheight'. (Benjamin Haskell)
Solution:   Use 'previewheight' if it's set and smaller.
2010-10-27 17:11:15 +02:00
Bram Moolenaar
3ca71f1f1f updated for version 7.3.043
Problem:    Can't load Ruby dynamically on Unix.
Solution:   Adjust the configure script. (James Vega)
2010-10-27 16:49:47 +02:00
Bram Moolenaar
beca055b0c updated for version 7.3.042
Problem:    No spell highlighting when re-using an empty buffer.
Solution:   Clear the spell checking info only when clearing the options for a
            buffer. (James Vega)
2010-10-27 16:18:00 +02:00
Bram Moolenaar
22df3f90fc updated for version 7.3.041
Problem:    Compiler warning for accessing mediumVersion. (Tony Mechelynck)
Solution:   Use the pointer instead of the array itself. (Dominique Pelle)
2010-10-27 16:01:27 +02:00
Bram Moolenaar
c395a3aac2 updated for version 7.3.040
Problem:    Comparing strings while ignoring case goes beyond end of the
            string when there are illegal bytes. (Dominique Pelle)
Solution:   Explicitly check for illegal bytes.
2010-10-27 13:37:44 +02:00
Bram Moolenaar
fc3c83e47e updated for version 7.3.039
Problem:    Crash when using skk.vim plugin.
Solution:   Get length of expression evaluation result only after checking for
            NULL.  (Noriaki Yagi, Dominique Pelle)
2010-10-27 12:58:23 +02:00
Bram Moolenaar
264e9fd61b updated for version 7.3.038
Problem:    v:windowid isn't set on MS-Windows.
Solution:   Set it to the window handle. (Chris Sutcliffe)
2010-10-27 12:33:17 +02:00
Bram Moolenaar
6b5ef067a5 updated for version 7.3.037
Problem:    Compiler warnings for loss of data. (Mike Williams)
Solution:   Add type casts.
2010-10-27 12:18:00 +02:00
Bram Moolenaar
786989ba37 updated for version 7.3.036
Problem:    Win32 GUI: When building without menus, the font for dialogs and
            tab page headers also changes.
Solution:   Define USE_SYSMENU_FONT always. (Harig G.)
2010-10-27 12:15:33 +02:00
Bram Moolenaar
8bbe993c79 updated for version 7.3.035
Problem:    Stray semicolon after if statement. (Hari G)
Solution:   Remove the semicolon.
2010-10-24 14:33:43 +02:00
186 changed files with 6782 additions and 2258 deletions

13
.gitignore vendored
View File

@@ -5,14 +5,15 @@ src/xxd/xxd
src/auto/if_perl.c
src/tags
# We do need src/auto/configure and src/auto/config.mk.
src/auto/osdef.h
# We do need src/auto/configure.
src/auto/config.aap
src/auto/config.cache
src/auto/config.h
src/auto/config.log
src/auto/config.mk
src/auto/config.status
src/auto/configure.aap
src/auto/osdef.h
src/auto/link.log
src/auto/link.sed
src/auto/pathdef.c
@@ -40,3 +41,11 @@ gvimext.lib
*.mo
*.swp
*~
# Generated by "make test"
src/po/*.ck
src/testdir/mbyte.vim
src/testdir/mzscheme.vim
src/testdir/small.vim
src/testdir/tiny.vim
src/testdir/test*.out

View File

@@ -39,6 +39,7 @@ SRC_ALL = \
src/mark.c \
src/mbyte.c \
src/memfile.c \
src/memfile_test.c \
src/memline.c \
src/menu.c \
src/message.c \
@@ -686,6 +687,8 @@ LANG_GEN = \
runtime/tutor/tutor.utf-8 \
runtime/tutor/tutor.?? \
runtime/tutor/tutor.??.* \
runtime/tutor/tutor.bar \
runtime/tutor/tutor.bar.* \
runtime/spell/README.txt \
runtime/spell/??/*.diff \
runtime/spell/??/main.aap \

View File

@@ -23,6 +23,9 @@
# has run can result in compiling with $(CC) empty.
first:
@if test ! -f src/auto/config.mk; then \
cp src/config.mk.dist src/auto/config.mk; \
fi
@echo "Starting make in the src directory."
@echo "If there are problems, cd to the src directory and run make there"
cd src && $(MAKE) $@
@@ -30,6 +33,9 @@ first:
# Some make programs use the last target for the $@ default; put the other
# targets separately to always let $@ expand to "first" by default.
all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
@if test ! -f src/auto/config.mk; then \
cp src/config.mk.dist src/auto/config.mk; \
fi
@echo "Starting make in the src directory."
@echo "If there are problems, cd to the src directory and run make there"
cd src && $(MAKE) $@

View File

@@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2010 Aug 12
" Last Change: 2011 Jan 05
"
" Additional contributors:
"
@@ -13,10 +13,284 @@
let s:cpo_sav = &cpo
set cpo-=C
func! tohtml#Convert2HTML(line1, line2)
" Automatically find charsets from all encodings supported natively by Vim. With
" the 8bit- and 2byte- prefixes, Vim can actually support more encodings than
" this. Let the user specify these however since they won't be supported on
" every system. TODO: how? g:html_charsets and g:html_encodings?
"
" Note, not all of Vim's supported encodings have a charset to use.
"
" Names in this list are from:
" http://www.iana.org/assignments/character-sets
" g:tohtml#encoding_to_charset: {{{
let g:tohtml#encoding_to_charset = {
\ 'latin1' : 'ISO-8859-1',
\ 'iso-8859-2' : 'ISO-8859-2',
\ 'iso-8859-3' : 'ISO-8859-3',
\ 'iso-8859-4' : 'ISO-8859-4',
\ 'iso-8859-5' : 'ISO-8859-5',
\ 'iso-8859-6' : 'ISO-8859-6',
\ 'iso-8859-7' : 'ISO-8859-7',
\ 'iso-8859-8' : 'ISO-8859-8',
\ 'iso-8859-9' : 'ISO-8859-9',
\ 'iso-8859-10' : '',
\ 'iso-8859-13' : 'ISO-8859-13',
\ 'iso-8859-14' : '',
\ 'iso-8859-15' : 'ISO-8859-15',
\ 'koi8-r' : 'KOI8-R',
\ 'koi8-u' : 'KOI8-U',
\ 'macroman' : 'macintosh',
\ 'cp437' : '',
\ 'cp775' : '',
\ 'cp850' : '',
\ 'cp852' : '',
\ 'cp855' : '',
\ 'cp857' : '',
\ 'cp860' : '',
\ 'cp861' : '',
\ 'cp862' : '',
\ 'cp863' : '',
\ 'cp865' : '',
\ 'cp866' : 'IBM866',
\ 'cp869' : '',
\ 'cp874' : '',
\ 'cp1250' : 'windows-1250',
\ 'cp1251' : 'windows-1251',
\ 'cp1253' : 'windows-1253',
\ 'cp1254' : 'windows-1254',
\ 'cp1255' : 'windows-1255',
\ 'cp1256' : 'windows-1256',
\ 'cp1257' : 'windows-1257',
\ 'cp1258' : 'windows-1258',
\ 'euc-jp' : 'EUC-JP',
\ 'sjis' : 'Shift_JIS',
\ 'cp932' : 'Shift_JIS',
\ 'cp949' : '',
\ 'euc-kr' : 'EUC-KR',
\ 'cp936' : 'GBK',
\ 'euc-cn' : 'GB2312',
\ 'big5' : 'Big5',
\ 'cp950' : 'Big5',
\ 'utf-8' : 'UTF-8',
\ 'ucs-2' : 'UTF-8',
\ 'ucs-2le' : 'UTF-8',
\ 'utf-16' : 'UTF-8',
\ 'utf-16le' : 'UTF-8',
\ 'ucs-4' : 'UTF-8',
\ 'ucs-4le' : 'UTF-8',
\ }
lockvar g:tohtml#encoding_to_charset
" Notes:
" 1. All UCS/UTF are converted to UTF-8 because it is much better supported
" 2. Any blank spaces are there because Vim supports it but at least one major
" web browser does not according to http://wiki.whatwg.org/wiki/Web_Encodings.
" }}}
" Only automatically find encodings supported natively by Vim, let the user
" specify the encoding if it's not natively supported. This function is only
" used when the user specifies the charset, they better know what they are
" doing!
"
" Names in this list are from:
" http://www.iana.org/assignments/character-sets
" g:tohtml#charset_to_encoding: {{{
let g:tohtml#charset_to_encoding = {
\ 'iso_8859-1:1987' : 'latin1',
\ 'iso-ir-100' : 'latin1',
\ 'iso_8859-1' : 'latin1',
\ 'iso-8859-1' : 'latin1',
\ 'latin1' : 'latin1',
\ 'l1' : 'latin1',
\ 'ibm819' : 'latin1',
\ 'cp819' : 'latin1',
\ 'csisolatin1' : 'latin1',
\ 'iso_8859-2:1987' : 'iso-8859-2',
\ 'iso-ir-101' : 'iso-8859-2',
\ 'iso_8859-2' : 'iso-8859-2',
\ 'iso-8859-2' : 'iso-8859-2',
\ 'latin2' : 'iso-8859-2',
\ 'l2' : 'iso-8859-2',
\ 'csisolatin2' : 'iso-8859-2',
\ 'iso_8859-3:1988' : 'iso-8859-3',
\ 'iso-ir-109' : 'iso-8859-3',
\ 'iso_8859-3' : 'iso-8859-3',
\ 'iso-8859-3' : 'iso-8859-3',
\ 'latin3' : 'iso-8859-3',
\ 'l3' : 'iso-8859-3',
\ 'csisolatin3' : 'iso-8859-3',
\ 'iso_8859-4:1988' : 'iso-8859-4',
\ 'iso-ir-110' : 'iso-8859-4',
\ 'iso_8859-4' : 'iso-8859-4',
\ 'iso-8859-4' : 'iso-8859-4',
\ 'latin4' : 'iso-8859-4',
\ 'l4' : 'iso-8859-4',
\ 'csisolatin4' : 'iso-8859-4',
\ 'iso_8859-5:1988' : 'iso-8859-5',
\ 'iso-ir-144' : 'iso-8859-5',
\ 'iso_8859-5' : 'iso-8859-5',
\ 'iso-8859-5' : 'iso-8859-5',
\ 'cyrillic' : 'iso-8859-5',
\ 'csisolatincyrillic' : 'iso-8859-5',
\ 'iso_8859-6:1987' : 'iso-8859-6',
\ 'iso-ir-127' : 'iso-8859-6',
\ 'iso_8859-6' : 'iso-8859-6',
\ 'iso-8859-6' : 'iso-8859-6',
\ 'ecma-114' : 'iso-8859-6',
\ 'asmo-708' : 'iso-8859-6',
\ 'arabic' : 'iso-8859-6',
\ 'csisolatinarabic' : 'iso-8859-6',
\ 'iso_8859-7:1987' : 'iso-8859-7',
\ 'iso-ir-126' : 'iso-8859-7',
\ 'iso_8859-7' : 'iso-8859-7',
\ 'iso-8859-7' : 'iso-8859-7',
\ 'elot_928' : 'iso-8859-7',
\ 'ecma-118' : 'iso-8859-7',
\ 'greek' : 'iso-8859-7',
\ 'greek8' : 'iso-8859-7',
\ 'csisolatingreek' : 'iso-8859-7',
\ 'iso_8859-8:1988' : 'iso-8859-8',
\ 'iso-ir-138' : 'iso-8859-8',
\ 'iso_8859-8' : 'iso-8859-8',
\ 'iso-8859-8' : 'iso-8859-8',
\ 'hebrew' : 'iso-8859-8',
\ 'csisolatinhebrew' : 'iso-8859-8',
\ 'iso_8859-9:1989' : 'iso-8859-9',
\ 'iso-ir-148' : 'iso-8859-9',
\ 'iso_8859-9' : 'iso-8859-9',
\ 'iso-8859-9' : 'iso-8859-9',
\ 'latin5' : 'iso-8859-9',
\ 'l5' : 'iso-8859-9',
\ 'csisolatin5' : 'iso-8859-9',
\ 'iso-8859-10' : 'iso-8859-10',
\ 'iso-ir-157' : 'iso-8859-10',
\ 'l6' : 'iso-8859-10',
\ 'iso_8859-10:1992' : 'iso-8859-10',
\ 'csisolatin6' : 'iso-8859-10',
\ 'latin6' : 'iso-8859-10',
\ 'iso-8859-13' : 'iso-8859-13',
\ 'iso-8859-14' : 'iso-8859-14',
\ 'iso-ir-199' : 'iso-8859-14',
\ 'iso_8859-14:1998' : 'iso-8859-14',
\ 'iso_8859-14' : 'iso-8859-14',
\ 'latin8' : 'iso-8859-14',
\ 'iso-celtic' : 'iso-8859-14',
\ 'l8' : 'iso-8859-14',
\ 'iso-8859-15' : 'iso-8859-15',
\ 'iso_8859-15' : 'iso-8859-15',
\ 'latin-9' : 'iso-8859-15',
\ 'koi8-r' : 'koi8-r',
\ 'cskoi8r' : 'koi8-r',
\ 'koi8-u' : 'koi8-u',
\ 'macintosh' : 'macroman',
\ 'mac' : 'macroman',
\ 'csmacintosh' : 'macroman',
\ 'ibm437' : 'cp437',
\ 'cp437' : 'cp437',
\ '437' : 'cp437',
\ 'cspc8codepage437' : 'cp437',
\ 'ibm775' : 'cp775',
\ 'cp775' : 'cp775',
\ 'cspc775baltic' : 'cp775',
\ 'ibm850' : 'cp850',
\ 'cp850' : 'cp850',
\ '850' : 'cp850',
\ 'cspc850multilingual' : 'cp850',
\ 'ibm852' : 'cp852',
\ 'cp852' : 'cp852',
\ '852' : 'cp852',
\ 'cspcp852' : 'cp852',
\ 'ibm855' : 'cp855',
\ 'cp855' : 'cp855',
\ '855' : 'cp855',
\ 'csibm855' : 'cp855',
\ 'ibm857' : 'cp857',
\ 'cp857' : 'cp857',
\ '857' : 'cp857',
\ 'csibm857' : 'cp857',
\ 'ibm860' : 'cp860',
\ 'cp860' : 'cp860',
\ '860' : 'cp860',
\ 'csibm860' : 'cp860',
\ 'ibm861' : 'cp861',
\ 'cp861' : 'cp861',
\ '861' : 'cp861',
\ 'cp-is' : 'cp861',
\ 'csibm861' : 'cp861',
\ 'ibm862' : 'cp862',
\ 'cp862' : 'cp862',
\ '862' : 'cp862',
\ 'cspc862latinhebrew' : 'cp862',
\ 'ibm863' : 'cp863',
\ 'cp863' : 'cp863',
\ '863' : 'cp863',
\ 'csibm863' : 'cp863',
\ 'ibm865' : 'cp865',
\ 'cp865' : 'cp865',
\ '865' : 'cp865',
\ 'csibm865' : 'cp865',
\ 'ibm866' : 'cp866',
\ 'cp866' : 'cp866',
\ '866' : 'cp866',
\ 'csibm866' : 'cp866',
\ 'ibm869' : 'cp869',
\ 'cp869' : 'cp869',
\ '869' : 'cp869',
\ 'cp-gr' : 'cp869',
\ 'csibm869' : 'cp869',
\ 'windows-1250' : 'cp1250',
\ 'windows-1251' : 'cp1251',
\ 'windows-1253' : 'cp1253',
\ 'windows-1254' : 'cp1254',
\ 'windows-1255' : 'cp1255',
\ 'windows-1256' : 'cp1256',
\ 'windows-1257' : 'cp1257',
\ 'windows-1258' : 'cp1258',
\ 'extended_unix_code_packed_format_for_japanese' : 'euc-jp',
\ 'cseucpkdfmtjapanese' : 'euc-jp',
\ 'euc-jp' : 'euc-jp',
\ 'shift_jis' : 'sjis',
\ 'ms_kanji' : 'sjis',
\ 'sjis' : 'sjis',
\ 'csshiftjis' : 'sjis',
\ 'ibm-thai' : 'cp874',
\ 'csibmthai' : 'cp874',
\ 'ks_c_5601-1987' : 'cp949',
\ 'iso-ir-149' : 'cp949',
\ 'ks_c_5601-1989' : 'cp949',
\ 'ksc_5601' : 'cp949',
\ 'korean' : 'cp949',
\ 'csksc56011987' : 'cp949',
\ 'euc-kr' : 'euc-kr',
\ 'cseuckr' : 'euc-kr',
\ 'gbk' : 'cp936',
\ 'cp936' : 'cp936',
\ 'ms936' : 'cp936',
\ 'windows-936' : 'cp936',
\ 'gb_2312-80' : 'euc-cn',
\ 'iso-ir-58' : 'euc-cn',
\ 'chinese' : 'euc-cn',
\ 'csiso58gb231280' : 'euc-cn',
\ 'big5' : 'big5',
\ 'csbig5' : 'big5',
\ 'utf-8' : 'utf-8',
\ 'iso-10646-ucs-2' : 'ucs-2',
\ 'csunicode' : 'ucs-2',
\ 'utf-16' : 'utf-16',
\ 'utf-16be' : 'utf-16',
\ 'utf-16le' : 'utf-16le',
\ 'utf-32' : 'ucs-4',
\ 'utf-32be' : 'ucs-4',
\ 'utf-32le' : 'ucs-4le',
\ 'iso-10646-ucs-4' : 'ucs-4',
\ 'csucs4' : 'ucs-4'
\ }
lockvar g:tohtml#charset_to_encoding
"}}}
func! tohtml#Convert2HTML(line1, line2) "{{{
let s:settings = tohtml#GetUserSettings()
if !&diff || s:settings.diff_one_file
if !&diff || s:settings.diff_one_file "{{{
if a:line2 >= a:line1
let g:html_start_line = a:line1
let g:html_end_line = a:line2
@@ -24,31 +298,50 @@ func! tohtml#Convert2HTML(line1, line2)
let g:html_start_line = a:line2
let g:html_end_line = a:line1
endif
runtime syntax/2html.vim
else
runtime syntax/2html.vim "}}}
else "{{{
let win_list = []
let buf_list = []
windo | if &diff | call add(win_list, winbufnr(0)) | endif
let s:settings.whole_filler = 1
let g:html_diff_win_num = 0
for window in win_list
" switch to the next buffer to convert
exe ":" . bufwinnr(window) . "wincmd w"
" figure out whether current charset and encoding will work, if not
" default to UTF-8
if !exists('g:html_use_encoding') &&
\ (&l:fileencoding!='' && &l:fileencoding!=s:settings.vim_encoding ||
\ &l:fileencoding=='' && &encoding!=s:settings.vim_encoding)
echohl WarningMsg
echomsg "TOhtml: mismatched file encodings in Diff buffers, using UTF-8"
echohl None
let s:settings.vim_encoding = 'utf-8'
let s:settings.encoding = 'UTF-8'
endif
" set up for diff-mode conversion
let g:html_start_line = 1
let g:html_end_line = line('$')
let g:html_diff_win_num += 1
" convert this file
runtime syntax/2html.vim
" remember the HTML buffer for later combination
call add(buf_list, bufnr('%'))
endfor
unlet g:html_diff_win_num
call tohtml#Diff2HTML(win_list, buf_list)
endif
endif "}}}
unlet g:html_start_line
unlet g:html_end_line
unlet s:settings
endfunc
endfunc "}}}
func! tohtml#Diff2HTML(win_list, buf_list)
func! tohtml#Diff2HTML(win_list, buf_list) "{{{
let xml_line = ""
let tag_close = '>'
@@ -87,7 +380,7 @@ func! tohtml#Diff2HTML(win_list, buf_list)
call add(html, '<head>')
" include encoding as close to the top as possible, but only if not already
" contained in XML information (to avoid haggling over content type)
" contained in XML information
if s:settings.encoding != "" && !s:settings.use_xhtml
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
endif
@@ -133,7 +426,8 @@ func! tohtml#Diff2HTML(win_list, buf_list)
let s:body_end_line = getline('.')
endif
" Grab the style information. Some of this will be duplicated...
" Grab the style information. Some of this will be duplicated so only insert
" it if it's not already there. {{{
1
let style_start = search('^<style type="text/css">')
1
@@ -151,8 +445,10 @@ func! tohtml#Diff2HTML(win_list, buf_list)
let insert_index += 1
endif
endfor
endif
endif " }}}
" everything new will get added before the diff styles so diff highlight
" properly overrides normal highlight
if diff_style_start != 0
let insert_index = diff_style_start
endif
@@ -203,6 +499,20 @@ func! tohtml#Diff2HTML(win_list, buf_list)
" just in case some user autocmd creates content in the new buffer, make sure
" it is empty before proceeding
%d
" set the fileencoding to match the charset we'll be using
let &l:fileencoding=s:settings.vim_encoding
" According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte
" order mark is highly recommend on the web when using multibyte encodings. But,
" it is not a good idea to include it on UTF-8 files. Otherwise, let Vim
" determine when it is actually inserted.
if s:settings.vim_encoding == 'utf-8'
setlocal nobomb
else
setlocal bomb
endif
call append(0, html)
if len(style) > 0
@@ -210,7 +520,7 @@ func! tohtml#Diff2HTML(win_list, buf_list)
let style_start = search('^</head>')-1
" Insert javascript to toggle matching folds open and closed in all windows,
" if dynamic folding is active.
" if dynamic folding is active. {{{
if s:settings.dynamic_folds
call append(style_start, [
\ "<script type='text/javascript'>",
@@ -234,13 +544,13 @@ func! tohtml#Diff2HTML(win_list, buf_list)
\ s:settings.use_xhtml ? '//]]>' : " -->",
\ "</script>"
\ ])
endif
endif "}}}
" Insert styles from all the generated html documents and additional styles
" for the table-based layout of the side-by-side diff. The diff should take
" up the full browser window (but not more), and be static in size,
" horizontally scrollable when the lines are too long. Otherwise, the diff
" is pretty useless for really long lines.
" is pretty useless for really long lines. {{{
if s:settings.use_css
call append(style_start,
\ ['<style type="text/css">']+
@@ -252,28 +562,28 @@ func! tohtml#Diff2HTML(win_list, buf_list)
\ 'td div { overflow: auto; }',
\ s:settings.use_xhtml ? '' : '-->',
\ '</style>'
\ ])
endif
\])
endif "}}}
endif
let &paste = s:old_paste
let &magic = s:old_magic
endfunc
endfunc "}}}
" Gets a single user option and sets it in the passed-in Dict, or gives it the
" default value if the option doesn't actually exist.
func! tohtml#GetOption(settings, option, default)
func! tohtml#GetOption(settings, option, default) "{{{
if exists('g:html_'.a:option)
let a:settings[a:option] = g:html_{a:option}
else
let a:settings[a:option] = a:default
endif
endfunc
endfunc "}}}
" returns a Dict containing the values of all user options for 2html, including
" default values for those not given an explicit value by the user. Discards the
" html_ prefix of the option for nicer looking code.
func! tohtml#GetUserSettings()
func! tohtml#GetUserSettings() "{{{
if exists('s:settings')
" just restore the known options if we've already retrieved them
return s:settings
@@ -289,21 +599,22 @@ func! tohtml#GetUserSettings()
let g:html_use_xhtml = g:use_xhtml
endif
" get current option settings with appropriate defaults
call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") )
call tohtml#GetOption(user_settings, 'diff_one_file', 0 )
call tohtml#GetOption(user_settings, 'number_lines', &number )
call tohtml#GetOption(user_settings, 'use_css', 1 )
call tohtml#GetOption(user_settings, 'ignore_conceal', 0 )
call tohtml#GetOption(user_settings, 'ignore_folding', 0 )
call tohtml#GetOption(user_settings, 'dynamic_folds', 0 )
call tohtml#GetOption(user_settings, 'no_foldcolumn', 0 )
call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
call tohtml#GetOption(user_settings, 'no_pre', 0 )
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
" get current option settings with appropriate defaults {{{
call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") )
call tohtml#GetOption(user_settings, 'diff_one_file', 0 )
call tohtml#GetOption(user_settings, 'number_lines', &number )
call tohtml#GetOption(user_settings, 'use_css', 1 )
call tohtml#GetOption(user_settings, 'ignore_conceal', 0 )
call tohtml#GetOption(user_settings, 'ignore_folding', 0 )
call tohtml#GetOption(user_settings, 'dynamic_folds', 0 )
call tohtml#GetOption(user_settings, 'no_foldcolumn', 0 )
call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
call tohtml#GetOption(user_settings, 'no_pre', 0 )
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
" }}}
" override those settings that need it
" override those settings that need it {{{
" hover opening implies dynamic folding
if user_settings.hover_unfold
@@ -330,49 +641,103 @@ func! tohtml#GetUserSettings()
" aren't allowed inside a <pre> block
if !user_settings.use_css
let user_settings.no_pre = 1
endif
endif "}}}
" Figure out proper MIME charset from the 'encoding' option.
if exists("g:html_use_encoding")
let user_settings.encoding = g:html_use_encoding
" set up expand_tabs option after all the overrides so we know the
" appropriate defaults {{{
if user_settings.no_pre == 0
call tohtml#GetOption(user_settings,
\ 'expand_tabs',
\ &expandtab || &ts != 8 || user_settings.number_lines ||
\ (user_settings.dynamic_folds && !user_settings.no_foldcolumn))
else
let vim_encoding = &encoding
if vim_encoding =~ '^8bit\|^2byte'
let vim_encoding = substitute(vim_encoding, '^8bit-\|^2byte-', '', '')
endif
if vim_encoding == 'latin1'
let user_settings.encoding = 'iso-8859-1'
elseif vim_encoding =~ "^cp12"
let user_settings.encoding = substitute(vim_encoding, 'cp', 'windows-', '')
elseif vim_encoding == 'sjis' || vim_encoding == 'cp932'
let user_settings.encoding = 'Shift_JIS'
elseif vim_encoding == 'big5' || vim_encoding == 'cp950'
let user_settings.encoding = "Big5"
elseif vim_encoding == 'euc-cn'
let user_settings.encoding = 'GB_2312-80'
elseif vim_encoding == 'euc-tw'
let user_settings.encoding = ""
elseif vim_encoding =~ '^euc\|^iso\|^koi'
let user_settings.encoding = substitute(vim_encoding, '.*', '\U\0', '')
elseif vim_encoding == 'cp949'
let user_settings.encoding = 'KS_C_5601-1987'
elseif vim_encoding == 'cp936'
let user_settings.encoding = 'GBK'
elseif vim_encoding =~ '^ucs\|^utf'
let user_settings.encoding = 'UTF-8'
else
let user_settings.encoding = ""
endif
let user_settings.expand_tabs = 1
endif
" }}}
if exists("g:html_use_encoding") "{{{
" user specified the desired MIME charset, figure out proper
" 'fileencoding' from it or warn the user if we cannot
let user_settings.encoding = g:html_use_encoding
let user_settings.vim_encoding = tohtml#EncodingFromCharset(g:html_use_encoding)
if user_settings.vim_encoding == ''
echohl WarningMsg
echomsg "TOhtml: file encoding for"
\ g:html_use_encoding
\ "unknown, please set 'fileencoding'"
echohl None
endif
else
" Figure out proper MIME charset from 'fileencoding' if possible
if &l:fileencoding != ''
let user_settings.vim_encoding = &l:fileencoding
call tohtml#CharsetFromEncoding(user_settings)
endif
" else from 'encoding' if possible
if &l:fileencoding == '' || user_settings.encoding == ''
let user_settings.vim_encoding = &encoding
call tohtml#CharsetFromEncoding(user_settings)
endif
" else default to UTF-8 and warn user
if user_settings.encoding == ''
let user_settings.vim_encoding = 'utf-8'
let user_settings.encoding = 'UTF-8'
echohl WarningMsg
echomsg "TOhtml: couldn't determine MIME charset, using UTF-8"
echohl None
endif
endif "}}}
" TODO: font
return user_settings
endif
endfunc
endfunc "}}}
" get the proper HTML charset name from a Vim encoding option.
function! tohtml#CharsetFromEncoding(settings) "{{{
let l:vim_encoding = a:settings.vim_encoding
if exists('g:html_charset_override') && has_key(g:html_charset_override, l:vim_encoding)
let a:settings.encoding = g:html_charset_override[l:vim_encoding]
else
if l:vim_encoding =~ '^8bit\|^2byte'
" 8bit- and 2byte- prefixes are to indicate encodings available on the
" system that Vim will convert with iconv(), look up just the encoding name,
" not Vim's prefix.
let l:vim_encoding = substitute(l:vim_encoding, '^8bit-\|^2byte-', '', '')
endif
if has_key(g:tohtml#encoding_to_charset, l:vim_encoding)
let a:settings.encoding = g:tohtml#encoding_to_charset[l:vim_encoding]
else
let a:settings.encoding = ""
endif
endif
if a:settings.encoding != ""
let l:vim_encoding = tohtml#EncodingFromCharset(a:settings.encoding)
if l:vim_encoding != ""
" if the Vim encoding to HTML encoding conversion is set up (by default or
" by the user) to convert to a different encoding, we need to also change
" the Vim encoding of the new buffer
let a:settings.vim_encoding = l:vim_encoding
endif
endif
endfun "}}}
" Get the proper Vim encoding option setting from an HTML charset name.
function! tohtml#EncodingFromCharset(encoding) "{{{
if exists('g:html_encoding_override') && has_key(g:html_encoding_override, a:encoding)
return g:html_encoding_override[a:encoding]
elseif has_key(g:tohtml#charset_to_encoding, tolower(a:encoding))
return g:tohtml#charset_to_encoding[tolower(a:encoding)]
else
return ""
endif
endfun "}}}
let &cpo = s:cpo_sav
unlet s:cpo_sav
" Make sure any patches will probably use consistent indent
" vim: ts=8 sw=2 sts=2 noet
" vim: ts=8 sw=2 sts=2 noet fdm=marker

View File

@@ -1,4 +1,4 @@
*arabic.txt* For Vim version 7.3. Last change: 2005 Mar 29
*arabic.txt* For Vim version 7.3. Last change: 2010 Nov 13
VIM REFERENCE MANUAL by Nadim Shaikli
@@ -146,7 +146,7 @@ o Enable Arabic settings [short-cut]
:set arabic
<
The two above noted possible invocations are the preferred manner
in which users are instructed to proceed. Baring an enabled 'termbidi'
in which users are instructed to proceed. Barring an enabled 'termbidi'
setting, both command options:
1. set the appropriate keymap

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 7.3. Last change: 2010 Jul 29
*change.txt* For Vim version 7.3. Last change: 2011 Feb 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -690,7 +690,8 @@ reason is that the flags can only be found by skipping the pattern, and in
order to skip the pattern the "magicness" must be known. Catch 22!
If the {pattern} for the substitute command is empty, the command uses the
pattern from the last substitute or ":global" command. With the [r] flag, the
pattern from the last substitute or ":global" command. If there is none, but
there is a previous search pattern, that one is used. With the [r] flag, the
command uses the pattern from the last substitute, ":global", or search
command.

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.3. Last change: 2010 Sep 18
*cmdline.txt* For Vim version 7.3. Last change: 2011 Feb 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -372,10 +372,10 @@ word before the cursor. This is available for:
- Mappings: Only after a ":map" or similar command.
- Variable and function names: Only after a ":if", ":call" or similar command.
When Vim was compiled with the |+cmdline_compl| feature disabled, only file
names, directories and help items can be completed. The number of help item
matches is limited (currently to 300) to avoid a long delay when there are
very many matches.
When Vim was compiled without the |+cmdline_compl| feature only file names,
directories and help items can be completed. The number of help item matches
is limited (currently to 300) to avoid a long delay when there are very many
matches.
These are the commands that can be used:
@@ -782,30 +782,34 @@ it, no matter how many backslashes.
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
*E495* *E496* *E497* *E498* *E499* *E500*
*<slnum>* *E495* *E496* *E497* *E499* *E500*
Note: these are typed literally, they are not special keys!
<cword> is replaced with the word under the cursor (like |star|)
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
<cfile> is replaced with the path name under the cursor (like what
|gf| uses)
<afile> when executing autocommands, is replaced with the file name
for a file read or write
<abuf> when executing autocommands, is replaced with the currently
<afile> When executing autocommands, is replaced with the file name
for a file read or write.
<abuf> When executing autocommands, is replaced with the currently
effective buffer number (for ":r file" and ":so file" it is
the current buffer, the file being read/sourced is not in a
buffer).
<amatch> when executing autocommands, is replaced with the match for
<amatch> When executing autocommands, is replaced with the match for
which this autocommand was executed. It differs from
<afile> only when the file name isn't used to match with
(for FileType, Syntax and SpellFileMissing events).
<sfile> when executing a ":source" command, is replaced with the
file name of the sourced file;
when executing a function, is replaced with
<sfile> When executing a ":source" command, is replaced with the
file name of the sourced file. *E498*
When executing a function, is replaced with
"function {function-name}"; function call nesting is
indicated like this:
"function {function-name1}..{function-name2}". Note that
filename-modifiers are useless when <sfile> is used inside
a function.
<slnum> When executing a ":source" command, is replaced with the
line number. *E842*
When executing a function it's the line number relative to
the start of the function.
*filename-modifiers*
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs*

View File

@@ -1,4 +1,4 @@
*debug.txt* For Vim version 7.3. Last change: 2010 Sep 14
*debug.txt* For Vim version 7.3. Last change: 2010 Dec 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -21,8 +21,8 @@ When Vim crashes in one of the test files, and you are using gcc for
compilation, here is what you can do to find out exactly where Vim crashes.
This also applies when using the MingW tools.
1. Compile Vim with the "-g" option (there is a line in the Makefile for this,
which you can uncomment). Also make sure "strip" is disabled (do not
1. Compile Vim with the "-g" option (there is a line in the src/Makefile for
this, which you can uncomment). Also make sure "strip" is disabled (do not
install it, or use the line "STRIP = /bin/true").
2. Execute these commands (replace "11" with the test that fails): >

View File

@@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.3. Last change: 2010 Sep 30
*diff.txt* For Vim version 7.3. Last change: 2010 Dec 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -373,9 +373,9 @@ get an error message. Possible causes:
If it's not clear what the problem is set the 'verbose' option to one or more
to see more messages.
The self-installing Vim includes a diff program. If you don't have it you
might want to download a diff.exe. For example from
http://jlb.twu.net/code/unixkit.php.
The self-installing Vim for MS-Windows includes a diff program. If you don't
have it you might want to download a diff.exe. For example from
http://gnuwin32.sourceforge.net/packages/diffutils.htm.
USING PATCHES *diff-patchexpr*

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.3. Last change: 2010 Sep 18
*editing.txt* For Vim version 7.3. Last change: 2011 Feb 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -276,10 +276,11 @@ If you want to keep the changed buffer without saving it, switch on the
'readonly' option for this buffer. {not in Vi}
*CTRL-^* *CTRL-6*
CTRL-^ Edit the alternate file (equivalent to ":e #").
Mostly the alternate file is the previously edited
file. This is a quick way to toggle between two
files.
CTRL-^ Edit the alternate file. Mostly the alternate file is
the previously edited file. This is a quick way to
toggle between two files. It is equivalent to ":e #",
except that it also works when there is no file name.
If the 'autowrite' or 'autowriteall' option is on and
the buffer was changed, write it.
Mostly the ^ character is positioned on the 6 key,
@@ -984,6 +985,11 @@ explanation of when the copy is made and when the file is renamed.
If the creation of a backup file fails, the write is not done. If you want
to write anyway add a '!' to the command.
*write-permissions*
When writing a new file the permissions are read-write. For unix the mask is
0666 with additionally umask applied. When writing a file that was read Vim
will preserve the permissions, but clear the s-bit.
*write-readonly*
When the 'cpoptions' option contains 'W', Vim will refuse to overwrite a
readonly file. When 'W' is not present, ":w!" will overwrite a readonly file,
@@ -1340,7 +1346,7 @@ Vim is able to write files encrypted, and read them back. The encrypted text
cannot be read without the right key.
{only available when compiled with the |+cryptv| feature} *E833*
The text in the swap file and the undo file is also encrypted.
The text in the swap file and the undo file is also encrypted. *E843*
Note: The text in memory is not encrypted. A system administrator may be able
to see your text while you are editing it. When filtering text with
@@ -1382,6 +1388,8 @@ To set the default method, used for new files, use one of these in your
|vimrc| file: >
set cm=zip
set cm=blowfish
The message given for reading and writing a file will show "[crypted]" when
using zip, "[blowfish]" when using blowfish.
When writing an undo file, the same key and method will be used for the text
in the undo file. |persistent-undo|.

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.3. Last change: 2010 Oct 18
*eval.txt* For Vim version 7.3. Last change: 2011 Mar 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1286,7 +1286,9 @@ v:beval_text The text under or after the mouse pointer. Usually a word as
*v:beval_winnr* *beval_winnr-variable*
v:beval_winnr The number of the window, over which the mouse pointer is. Only
valid while evaluating the 'balloonexpr' option.
valid while evaluating the 'balloonexpr' option. The first
window has number zero (unlike most other places where a
window gets a number).
*v:char* *char-variable*
v:char Argument for evaluating 'formatexpr' and used for the typed
@@ -1542,8 +1544,9 @@ v:progname Contains the name (with path removed) with which Vim was
Read-only.
*v:register* *register-variable*
v:register The name of the register supplied to the last normal mode
command. Empty if none were supplied. |getreg()| |setreg()|
v:register The name of the register in effect for the current normal mode
command. If none is supplied it is the default register.
Also see |getreg()| and |setreg()|
*v:scrollstart* *scrollstart-variable*
v:scrollstart String describing the script or function that caused the
@@ -1660,7 +1663,11 @@ v:warningmsg Last given warning message. It's allowed to set this variable.
*v:windowid* *windowid-variable*
v:windowid When any X11 based GUI is running or when running in a
terminal and Vim connects to the X server (|-X|) this will be
set to the window ID. Otherwise the value is zero.
set to the window ID.
When an MS-Windows GUI is running this will be set to the
window handle.
Otherwise the value is zero.
Note: for windows inside Vim use |winnr()|.
==============================================================================
4. Builtin Functions *functions*
@@ -1916,7 +1923,7 @@ spellsuggest( {word} [, {max} [, {capital}]])
List spelling suggestions
split( {expr} [, {pat} [, {keepempty}]])
List make |List| from {pat} separated {expr}
sqrt( {expr} Float squar root of {expr}
sqrt( {expr}) Float square root of {expr}
str2float( {expr}) Float convert String to Float
str2nr( {expr} [, {base}]) Number convert String to Number
strchars( {expr}) Number character length of the String {expr}
@@ -1955,7 +1962,7 @@ tolower( {expr}) String the String {expr} switched to lowercase
toupper( {expr}) String the String {expr} switched to uppercase
tr( {src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr}
to chars in {tostr}
trunc( {expr} Float truncate Float {expr}
trunc( {expr}) Float truncate Float {expr}
type( {name}) Number type of variable {name}
undofile( {name}) String undo file name for {name}
undotree() List undo file tree
@@ -2716,7 +2723,7 @@ exp({expr}) *exp()*
expand({expr} [, {flag}]) *expand()*
Expand wildcards and the following special keywords in {expr}.
The result is a String.
The result is a String. 'wildignorecase' applies.
When there are several matches, they are separated by <NL>
characters. [Note: in version 5.0 a space was used, which
@@ -2737,6 +2744,7 @@ expand({expr} [, {flag}]) *expand()*
<abuf> autocmd buffer number (as a String!)
<amatch> autocmd matched name
<sfile> sourced script file name
<slnum> sourced script file line number
<cword> word under the cursor
<cWORD> WORD under the cursor
<client> the {clientid} of the last received
@@ -3430,6 +3438,7 @@ glob({expr} [, {flag}]) *glob()*
the 'suffixes' and 'wildignore' options apply: Names matching
one of the patterns in 'wildignore' will be skipped and
'suffixes' affect the ordering of matches.
'wildignorecase' always applies.
If the expansion fails, the result is an empty string.
A name for a non-existing file is not included.
@@ -4005,7 +4014,7 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
"lhs" The {lhs} of the mapping.
"rhs" The {rhs} of the mapping as typed.
"silent" 1 for a |:map-silent| mapping, else 0.
"noremap" 1 if the {rhs} of the mapping is remappable.
"noremap" 1 if the {rhs} of the mapping is not remappable.
"expr" 1 for an expression mapping (|:map-<expr>|).
"buffer" 1 for a buffer local mapping (|:map-local|).
"mode" Modes for which the mapping is defined. In
@@ -4013,9 +4022,9 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
characters will be used:
" " Normal, Visual and Operator-pending
"!" Insert and Commandline mode
(|mapmpde-ic|)
"sid" the Script local ID, used for <sid> mappings
(|<SID>|)
(|mapmode-ic|)
"sid" The script local ID, used for <sid> mappings
(|<SID>|).
The mappings local to the current buffer are checked first,
then the global mappings.
@@ -5450,8 +5459,8 @@ stridx({haystack}, {needle} [, {start}]) *stridx()*
{haystack} of the first occurrence of the String {needle}.
If {start} is specified, the search starts at index {start}.
This can be used to find a second match: >
:let comma1 = stridx(line, ",")
:let comma2 = stridx(line, ",", comma1 + 1)
:let colon1 = stridx(line, ":")
:let colon2 = stridx(line, ":", colon1 + 1)
< The search is done case-sensitive.
For pattern searches use |match()|.
-1 is returned if the {needle} does not occur in {haystack}.
@@ -6127,17 +6136,17 @@ cmdline_compl Compiled with |cmdline-completion| support.
cmdline_hist Compiled with |cmdline-history| support.
cmdline_info Compiled with 'showcmd' and 'ruler' support.
comments Compiled with |'comments'| support.
compatible Compiled to be very Vi compatible.
cryptv Compiled with encryption support |encryption|.
cscope Compiled with |cscope| support.
compatible Compiled to be very Vi compatible.
debug Compiled with "DEBUG" defined.
dialog_con Compiled with console dialog support.
dialog_gui Compiled with GUI dialog support.
diff Compiled with |vimdiff| and 'diff' support.
digraphs Compiled with support for digraphs.
dnd Compiled with support for the "~ register |quote_~|.
dos32 32 bits DOS (DJGPP) version of Vim.
dos16 16 bits DOS version of Vim.
dos32 32 bits DOS (DJGPP) version of Vim.
ebcdic Compiled on a machine with ebcdic character set.
emacs_tags Compiled with support for Emacs tags.
eval Compiled with expression evaluation support. Always
@@ -6160,15 +6169,15 @@ fork Compiled to use fork()/exec() instead of system().
gettext Compiled with message translation |multi-lang|
gui Compiled with GUI enabled.
gui_athena Compiled with Athena GUI.
gui_gnome Compiled with Gnome support (gui_gtk is also defined).
gui_gtk Compiled with GTK+ GUI (any version).
gui_gtk2 Compiled with GTK+ 2 GUI (gui_gtk is also defined).
gui_gnome Compiled with Gnome support (gui_gtk is also defined).
gui_mac Compiled with Macintosh GUI.
gui_motif Compiled with Motif GUI.
gui_photon Compiled with Photon GUI.
gui_running Vim is running in the GUI, or it will start soon.
gui_win32 Compiled with MS Windows Win32 GUI.
gui_win32s idem, and Win32s system being used (Windows 3.1)
gui_running Vim is running in the GUI, or it will start soon.
hangul_input Compiled with Hangul input support. |hangul|
iconv Can use iconv() for conversion.
insert_expand Compiled with support for CTRL-X expansion commands in
@@ -6190,20 +6199,20 @@ menu Compiled with support for |:menu|.
mksession Compiled with support for |:mksession|.
modify_fname Compiled with file name modifiers. |filename-modifiers|
mouse Compiled with support mouse.
mouseshape Compiled with support for 'mouseshape'.
mouse_dec Compiled with support for Dec terminal mouse.
mouse_gpm Compiled with support for gpm (Linux console mouse)
mouse_netterm Compiled with support for netterm mouse.
mouse_pterm Compiled with support for qnx pterm mouse.
mouse_sysmouse Compiled with support for sysmouse (*BSD console mouse)
mouse_xterm Compiled with support for xterm mouse.
mouseshape Compiled with support for 'mouseshape'.
multi_byte Compiled with support for 'encoding'
multi_byte_encoding 'encoding' is set to a multi-byte encoding.
multi_byte_ime Compiled with support for IME input method.
multi_lang Compiled with support for multiple languages.
mzscheme Compiled with MzScheme interface |mzscheme|.
netbeans_intg Compiled with support for |netbeans|.
netbeans_enabled Compiled with support for |netbeans| and connected.
netbeans_intg Compiled with support for |netbeans|.
ole Compiled with OLE automation support for Win32.
os2 OS/2 version of Vim.
osfiletype Compiled with support for osfiletypes |+osfiletype|
@@ -6224,11 +6233,11 @@ showcmd Compiled with 'showcmd' support.
signs Compiled with |:sign| support.
smartindent Compiled with 'smartindent' support.
sniff Compiled with SNiFF interface support.
spell Compiled with spell checking support |spell|.
startuptime Compiled with |--startuptime| support.
statusline Compiled with support for 'statusline', 'rulerformat'
and special formats of 'titlestring' and 'iconstring'.
sun_workshop Compiled with support for Sun |workshop|.
spell Compiled with spell checking support |spell|.
syntax Compiled with syntax highlighting support |syntax|.
syntax_items There are active syntax highlighting items for the
current buffer.
@@ -6249,9 +6258,9 @@ title Compiled with window title support |'title'|.
toolbar Compiled with support for |gui-toolbar|.
unix Unix version of Vim.
user_commands User-defined commands.
viminfo Compiled with viminfo support.
vim_starting True while initial source'ing takes place. |startup|
vertsplit Compiled with vertically split windows |:vsplit|.
vim_starting True while initial source'ing takes place. |startup|
viminfo Compiled with viminfo support.
virtualedit Compiled with 'virtualedit' option.
visual Compiled with Visual mode.
visualextra Compiled with extra Visual mode commands.
@@ -6260,13 +6269,14 @@ vms VMS version of Vim.
vreplace Compiled with |gR| and |gr| commands.
wildignore Compiled with 'wildignore' option.
wildmenu Compiled with 'wildmenu' option.
windows Compiled with support for more than one window.
winaltkeys Compiled with 'winaltkeys' option.
win16 Win16 version of Vim (MS-Windows 3.1).
win32 Win32 version of Vim (MS-Windows 95/98/ME/NT/2000/XP).
win64 Win64 version of Vim (MS-Windows 64 bit).
win32 Win32 version of Vim (MS-Windows 95 and later, 32 or
64 bits)
win32unix Win32 version of Vim, using Unix files (Cygwin)
win64 Win64 version of Vim (MS-Windows 64 bit).
win95 Win32 version for MS-Windows 95/98/ME.
winaltkeys Compiled with 'winaltkeys' option.
windows Compiled with support for more than one window.
writebackup Compiled with 'writebackup' default on.
xfontset Compiled with X fontset support |xfontset|.
xim Compiled with X input method support |xim|.
@@ -7062,7 +7072,9 @@ This would call the function "my_func_whizz(parameter)".
is terminated.
Example: >
:try | throw "oops" | catch /^oo/ | echo "caught" | endtry
<
< Note that "catch" may need to be on a separate line
for when an error causes the parsing to skip the whole
line and not see the "|" that separates the commands.
*:ec* *:echo*
:ec[ho] {expr1} .. Echoes each {expr1}, with a space in between. The

View File

@@ -1,4 +1,4 @@
*gui.txt* For Vim version 7.3. Last change: 2010 May 14
*gui.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -156,26 +156,26 @@ configure which ones appear with the 'guioptions' option.
The interface looks like this (with ":set guioptions=mlrb"):
+------------------------------+
| File Edit Help | <- Menu bar (m)
+-+--------------------------+-+
|^| |^|
|#| Text area. |#|
| | | |
|v|__________________________|v|
Normal status line -> |-+ File.c 5,2 +-|
between Vim windows |^|""""""""""""""""""""""""""|^|
| | | |
| | Another file buffer. | |
| | | |
|#| |#|
Left scrollbar (l) -> |#| |#| <- Right
|#| |#| scrollbar (r)
| | | |
|v| |v|
+-+--------------------------+-+
| |< #### >| | <- Bottom
+-+--------------------------+-+ scrollbar (b)
+------------------------------+ `
| File Edit Help | <- Menu bar (m) `
+-+--------------------------+-+ `
|^| |^| `
|#| Text area. |#| `
| | | | `
|v|__________________________|v| `
Normal status line -> |-+ File.c 5,2 +-| `
between Vim windows |^|""""""""""""""""""""""""""|^| `
| | | | `
| | Another file buffer. | | `
| | | | `
|#| |#| `
Left scrollbar (l) -> |#| |#| <- Right `
|#| |#| scrollbar (r) `
| | | | `
|v| |v| `
+-+--------------------------+-+ `
| |< #### >| | <- Bottom `
+-+--------------------------+-+ scrollbar (b) `
Any of the scrollbar or menu components may be turned off by not putting the
appropriate letter in the 'guioptions' string. The bottom scrollbar is

View File

@@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 7.3. Last change: 2007 Aug 30
*gui_w32.txt* For Vim version 7.3. Last change: 2010 Dec 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -293,7 +293,9 @@ Normally, Vim waits for a command to complete before continuing (this makes
sense for most shell commands which produce output for Vim to use). If you
want Vim to start a program and return immediately, you can use the following
syntax on W95 & NT: >
:!start {command}
:!start [/min] {command}
The optional "/min" causes the window to be minimized.
On Win32s, you will have to go to another window instead. Don't forget that
you must tell Windows 3.1x to keep executing a DOS command in the background
while you switch back to Vim.

View File

@@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 7.3. Last change: 2010 Jul 20
*if_ruby.txt* For Vim version 7.3. Last change: 2010 Oct 27
VIM REFERENCE MANUAL by Shugo Maeda
@@ -40,6 +40,9 @@ downloading Ruby there.
wasn't compiled in. To avoid errors, see
|script-here|.
Command to try it out: >
:ruby print "Hello" # this is a comment
Example Vim script: >
function! RedGem()
@@ -187,12 +190,12 @@ $curbuf The current buffer object.
==============================================================================
6. Dynamic loading *ruby-dynamic*
On MS-Windows the Ruby library can be loaded dynamically. The |:version|
output then includes |+ruby/dyn|.
On MS-Windows and Unix the Ruby library can be loaded dynamically. The
|:version| output then includes |+ruby/dyn|.
This means that Vim will search for the Ruby DLL file only when needed. When
you don't use the Ruby interface you don't need it, thus you can use Vim
without this DLL file.
This means that Vim will search for the Ruby DLL file or shared library only
when needed. When you don't use the Ruby interface you don't need it, thus
you can use Vim even though this library file is not on your system.
You need to install the right version of Ruby for this to work. You can find
the package to download from:

View File

@@ -1,4 +1,4 @@
*indent.txt* For Vim version 7.3. Last change: 2010 Jul 30
*indent.txt* For Vim version 7.3. Last change: 2011 Mar 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -258,6 +258,7 @@ assume a 'shiftwidth' of 4.
<
bN If N != 0 Vim will align a final "break" with the case label,
so that case..break looks like a sort of block. (default: 0).
When using 1, consider adding "0=break" to 'cinkeys'.
cino= cino=b1 >
switch (x) switch(x)
@@ -319,8 +320,11 @@ assume a 'shiftwidth' of 4.
BaseClass(3) BaseClass(3)
{} {}
<
+N Indent a continuation line (a line that spills onto the next) N
additional characters. (default 'shiftwidth').
+N Indent a continuation line (a line that spills onto the next)
inside a function N additional characters. (default
'shiftwidth').
Outside of a function, when the previous line ended in a
backslash, the 2 * N is used.
cino= cino=+10 >
a = b + 9 * a = b + 9 *

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.3. Last change: 2010 Jul 21
*index.txt* For Vim version 7.3. Last change: 2011 Jan 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -29,7 +29,7 @@ For a complete listing of all help items see |help-tags|.
==============================================================================
1. Insert mode *insert-index*
tag char action ~
tag char action in Insert mode ~
-----------------------------------------------------------------------
|i_CTRL-@| CTRL-@ insert previously inserted text and stop
insert
@@ -459,7 +459,7 @@ tag char note action in Normal mode ~
These can be used after an operator or in Visual mode to select an object.
tag command action in Normal mode ~
tag command action in op-pending and Visual mode ~
------------------------------------------------------------------------------
|v_aquote| a" double quoted string
|v_a'| a' single quoted string
@@ -721,6 +721,7 @@ tag char note action in Normal mode ~
|gJ| gJ 2 join lines without inserting space
|gP| ["x]gP 2 put the text [from register x] before the
cursor N times, leave the cursor after it
|gQ| gQ switch to "Ex" mode with Vim editing
|gR| gR 2 enter Virtual Replace mode
|gU| gU{motion} 2 make Nmove text uppercase
|gV| gV don't reselect the previous Visual area
@@ -951,11 +952,13 @@ Normal characters are inserted at the current cursor position.
"Completion" below refers to context-sensitive completion. It will complete
file names, tags, commands etc. as appropriate.
tag command action in Command-line editing mode ~
------------------------------------------------------------------------------
CTRL-@ not used
|c_CTRL-A| CTRL-A do completion on the pattern in front of the
cursor and insert all matches
|c_CTRL-B| CTRL-B cursor to begin of command-line
|c_CTRL-C| CTRL-C same as <ESC>
|c_CTRL-C| CTRL-C same as <Esc>
|c_CTRL-D| CTRL-D list completions that match the pattern in
front of the cursor
|c_CTRL-E| CTRL-E cursor to end of command-line
@@ -1046,6 +1049,8 @@ This is a brief but complete listing of all the ":" commands, without
mentioning any arguments. The optional part of the command name is inside [].
The commands are sorted on the non-optional part of their name.
tag command action ~
------------------------------------------------------------------------------
|:!| :! filter lines or execute an external command
|:!!| :!! repeat last ":!" command
|:#| :# same as ":number"

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.3. Last change: 2010 Sep 29
*insert.txt* For Vim version 7.3. Last change: 2010 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -382,6 +382,10 @@ mappings it's often better to use <Esc> (first put an "x" in the text, <Esc>
will then always put the cursor on it). Or use CTRL-\ CTRL-O, but then
beware of the cursor possibly being beyond the end of the line.
The CTRL-O command takes you to Normal mode. If you then use a command enter
Insert mode again it doesn't nest. Thus when typing "a<C-O>a" and then <Esc>
takes you back to Normal mode, you do not need to type <Esc> twice.
The shifted cursor keys are not available on all terminals.
Another side effect is that a count specified before the "i" or "a" command is
@@ -1033,6 +1037,8 @@ items:
items that only differ in case are added
dup when non-zero this match will be added even when an
item with the same word is already present.
empty when non-zero this match will be added even when it is
an empty string
All of these except 'icase' must be a string. If an item does not meet these
requirements then an error message is given and further items in the list are
@@ -1043,7 +1049,8 @@ be relatively short. The "info" item can be longer, it will be displayed in
the preview window when "preview" appears in 'completeopt'. The "info" item
will also remain displayed after the popup menu has been removed. This is
useful for function arguments. Use a single space for "info" to remove
existing text in the preview window.
existing text in the preview window. The size of the preview window is three
lines, but 'previewheight' is used when it has a value of 1 or 2.
The "kind" item uses a single letter to indicate the kind of completion. This
may be used to show the completion differently (different color or icon).
@@ -1059,9 +1066,9 @@ match to the total list. These matches should then not appear in the returned
list! Call |complete_check()| now and then to allow the user to press a key
while still searching for matches. Stop searching when it returns non-zero.
The function is allowed to move the cursor, it is restored afterwards. This
option cannot be set from a |modeline| or in the |sandbox|, for security
reasons.
*E839* *E840*
The function is allowed to move the cursor, it is restored afterwards.
The function is not allowed to move to another window or delete text.
An example that completes the names of the months: >
fun! CompleteMonths(findstart, base)

View File

@@ -1,4 +1,4 @@
*intro.txt* For Vim version 7.3. Last change: 2010 Sep 29
*intro.txt* For Vim version 7.3. Last change: 2010 Dec 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -616,7 +616,6 @@ Replace <Esc> -- -- <Insert> -- --
Command-line *3 -- -- :start -- --
Ex :vi -- -- -- -- --
- NA
-- not possible
*1 Go from Normal mode to Insert mode by giving the command "i", "I", "a",
@@ -703,7 +702,7 @@ Lines longer than the window width will wrap, unless the 'wrap' option is off
(see below). The 'linebreak' option can be set to wrap at a blank character.
If the window has room after the last line of the buffer, Vim will show '~' in
the first column of the last lines in the window, like this: >
the first column of the last lines in the window, like this:
+-----------------------+
|some line |
@@ -715,7 +714,7 @@ the first column of the last lines in the window, like this: >
Thus the '~' lines indicate that the end of the buffer was reached.
If the last line in a window doesn't fit, Vim will indicate this with a '@' in
the first column of the last lines in the window, like this: >
the first column of the last lines in the window, like this:
+-----------------------+
|first line |
@@ -730,7 +729,7 @@ window.
When the "lastline" flag is present in the 'display' option, you will not see
'@' characters at the left side of window. If the last line doesn't fit
completely, only the part that fits is shown, and the last three characters of
the last line are replaced with "@@@", like this: >
the last line are replaced with "@@@", like this:
+-----------------------+
|first line |

View File

@@ -1,4 +1,4 @@
*map.txt* For Vim version 7.3. Last change: 2010 Sep 29
*map.txt* For Vim version 7.3. Last change: 2010 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1093,16 +1093,20 @@ is executed, it is transformed into a normal Ex command and then executed.
For starters: See section |40.2| in the user manual.
*E183* *user-cmd-ambiguous*
*E183* *E841* *user-cmd-ambiguous*
All user defined commands must start with an uppercase letter, to avoid
confusion with builtin commands. (There are a few builtin commands, notably
:Next, :Print and :X, which do start with an uppercase letter. The builtin
will always take precedence in these cases). The other characters of the user
command can be uppercase letters, lowercase letters or digits. When using
digits, note that other commands that take a numeric argument may become
ambiguous. For example, the command ":Cc2" could be the user command ":Cc2"
without an argument, or the command ":Cc" with argument "2". It is advised to
put a space between the command name and the argument to avoid these problems.
confusion with builtin commands. Exceptions are these builtin commands:
:Next
:X
They cannot be used for a user defined command. ":Print" is also an existing
command, but it is deprecated and can be overruled.
The other characters of the user command can be uppercase letters, lowercase
letters or digits. When using digits, note that other commands that take a
numeric argument may become ambiguous. For example, the command ":Cc2" could
be the user command ":Cc2" without an argument, or the command ":Cc" with
argument "2". It is advised to put a space between the command name and the
argument to avoid these problems.
When using a user-defined command, the command can be abbreviated. However, if
an abbreviation is not unique, an error will be issued. Furthermore, a

View File

@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 7.3. Last change: 2010 Jul 26
*mbyte.txt* For Vim version 7.3. Last change: 2011 Feb 01
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -280,7 +280,7 @@ Note that all encodings must use ASCII for the characters up to 128 (except
when compiled for EBCDIC).
Supported 'encoding' values are: *encoding-values*
1 latin1 8-bit characters (ISO 8859-1)
1 latin1 8-bit characters (ISO 8859-1, also used for cp1252)
1 iso-8859-n ISO_8859 variant (n = 2 to 15)
1 koi8-r Russian
1 koi8-u Ukrainian
@@ -336,7 +336,11 @@ For MS-Windows "cp{number}" means using codepage {number}.
Examples: >
:set encoding=8bit-cp1252
:set encoding=2byte-cp932
<
The MS-Windows codepage 1252 is very similar to latin1. For practical reasons
the same encoding is used and it's called latin1. 'isprint' can be used to
display the characters 0x80 - 0xA0 or not.
Several aliases can be used, they are translated to one of the names above.
An incomplete list:

View File

@@ -1,4 +1,4 @@
*message.txt* For Vim version 7.3. Last change: 2010 Sep 14
*message.txt* For Vim version 7.3. Last change: 2011 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -481,8 +481,10 @@ Also see |msdos-limitations|.
*E339* >
Pattern too long
This only happens on systems with 16 bit ints: The compiled regexp pattern is
This happens on systems with 16 bit ints: The compiled regexp pattern is
longer than about 65000 characters. Try using a shorter pattern.
It also happens when the offset of a rule doesn't fit in the space available.
Try simplifying the pattern.
*E45* >
'readonly' option is set (add ! to override)

View File

@@ -1,4 +1,4 @@
*mlang.txt* For Vim version 7.3. Last change: 2010 Jul 20
*mlang.txt* For Vim version 7.3. Last change: 2010 Dec 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -68,7 +68,7 @@ use of "-" and "_".
With the "ctype" argument the language used for
character encoding is set. This affects the libraries
that Vim was linked with. It's unusual to set this to
a different value from 'encoding'. This sets
a different value from 'encoding' or "C". This sets
$LC_CTYPE.
With the "time" argument the language used for time
and date messages is set. This affects strftime().

View File

@@ -1033,20 +1033,20 @@ The maximum number of entries is fixed at 100.
For example, after three jump commands you have this jump list:
jump line col file/line ~
jump line col file/text ~
3 1 0 some text ~
2 70 0 another line ~
1 1154 23 end. ~
> ~
The "file/line" column shows the file name, or the text at the jump if it is
The "file/text" column shows the file name, or the text at the jump if it is
in the current file (an indent is removed and a long line is truncated to fit
in the window).
You are currently in line 1167. If you then use the CTRL-O command, the
cursor is put in line 1154. This results in:
jump line col file/line ~
jump line col file/text ~
2 1 0 some text ~
1 70 0 another line ~
> 0 1154 23 end. ~
@@ -1076,7 +1076,7 @@ command. You can explicitly add a jump by setting the ' mark.
After the CTRL-O command that got you into line 1154 you could give another
jump command (e.g., "G"). The jump list would then become:
jump line col file/line ~
jump line col file/text ~
4 1 0 some text ~
3 70 0 another line ~
2 1167 0 foo bar ~

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.3. Last change: 2010 Oct 20
*options.txt* For Vim version 7.3. Last change: 2011 Mar 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -150,6 +150,18 @@ example, if Alt-b produces <Esc>b, use this: >
(the ^[ is a real <Esc> here, use CTRL-V <Esc> to enter it)
The advantage over a mapping is that it works in all situations.
You can define any key codes, e.g.: >
:set t_xy=^[foo;
There is no warning for using a name that isn't recognized. You can map these
codes as you like: >
:map <t_xy> something
< *E846*
When a key code is not set, it's like it does not exist. Trying to get its
value will result in an error: >
:set t_kb=
:set t_kb
E846: Key code not set: t_kb
The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -361,6 +373,7 @@ Setting the filetype
settings and syntax files to be loaded.
{not in Vi}
*option-window* *optwin*
:bro[wse] se[t] *:set-browse* *:browse-set* *:opt* *:options*
:opt[ions] Open a window for viewing and setting all options.
Options are grouped by function.
@@ -1434,6 +1447,15 @@ A jump table for the options with a short description can be found at |Q_op|.
explicitly accessed using the "* notation. Also see
|gui-clipboard|.
unnamedplus A variant of "unnamed" flag which uses the clipboard
register '+' (|quoteplus|) instead of register '*' for
all operations except yank. Yank shall copy the text
into register '+' and also into '*' when "unnamed" is
included.
Only available with the |+X11| feature.
Availability can be checked with: >
if has('unnamedplus')
<
autoselect Works like the 'a' flag in 'guioptions': If present,
then whenever Visual mode is started, or the Visual
area extended, Vim tries to become the owner of the
@@ -1699,7 +1721,8 @@ A jump table for the options with a short description can be found at |Q_op|.
with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|
See |complete-functions| for an explanation of how the function is
invoked and what it should return.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'completeopt'* *'cot'*
'completeopt' 'cot' string (default: "menu,preview")
@@ -2843,6 +2866,7 @@ A jump table for the options with a short description can be found at |Q_op|.
"dos" is not present or no <CR><NL> is found in the file.
Except: if "unix" was chosen, but there is a <CR> before
the first <NL>, and there appear to be more <CR>s than <NL>s in
the first few lines, "mac" is used.
4. If 'fileformat' is still not set, the first name from
'fileformats' is used.
When reading a file into an existing buffer, the same is done, but
@@ -2850,6 +2874,9 @@ A jump table for the options with a short description can be found at |Q_op|.
file only, the option is not changed.
When 'binary' is set, the value of 'fileformats' is not used.
Note that when Vim starts up with an empty buffer this option is not
used. Set 'fileformat' in your .vimrc instead.
For systems with a Dos-like <EOL> (<CR><NL>), when reading files that
are ":source"ed and for vimrc files, automatic <EOL> detection may be
done:
@@ -3063,8 +3090,10 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
{not available when compiled without the |+folding|
feature}
Sets the minimum number of screen lines for a fold to be displayed
closed. Also for manually closed folds.
Sets the number of screen lines above which a fold can be displayed
closed. Also for manually closed folds. With the default value of
one a fold can only be closed if it takes up two or more screen lines.
Set to zero to be able to close folds of just one screen line.
Note that this only has an effect of what is displayed. After using
"zc" to close a fold, which is displayed open because it's smaller
than 'foldminlines', a following "zc" may close a containing fold.
@@ -3089,6 +3118,10 @@ A jump table for the options with a short description can be found at |Q_op|.
Specifies for which type of commands folds will be opened, if the
command moves the cursor into a closed fold. It is a comma separated
list of items.
NOTE: When the command is part of a mapping this option is not used.
Add the |zv| command to the mapping to get the same effect.
(rationale: the mapping may want to control opening folds itself)
item commands ~
all any
block "(", "{", "[[", "[{", etc.
@@ -3103,8 +3136,6 @@ A jump table for the options with a short description can be found at |Q_op|.
Also for |[s| and |]s|.
tag jumping to a tag: ":ta", CTRL-T, etc.
undo undo or redo: "u" and CTRL-R
When the command is part of a mapping this option is not used. Add
the |zv| command to the mapping to get the same effect.
When a movement command is used for an operator (e.g., "dl" or "y%")
this option is not used. This means the operator will include the
whole closed fold.
@@ -3205,7 +3236,8 @@ A jump table for the options with a short description can be found at |Q_op|.
the internal format mechanism.
The expression may be evaluated in the |sandbox|, see
|sandbox-option|.
|sandbox-option|. That stops the option from working, since changing
the buffer text is not allowed.
*'fsync'* *'fs'*
'fsync' 'fs' boolean (default on)
@@ -4289,6 +4321,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"echo &key". This is to avoid showing it to someone who shouldn't
know. It also means you cannot see it yourself once you have set it,
be careful not to make a typing error!
You can use "&key" in an expression to detect whether encryption is
enabled. When 'key' is set it returns "*****" (five stars).
*'keymap'* *'kmp'* *E544*
'keymap' 'kmp' string (default "")
@@ -6228,8 +6262,9 @@ A jump table for the options with a short description can be found at |Q_op|.
Do smart autoindenting when starting a new line. Works for C-like
programs, but can also be used for other languages. 'cindent' does
something like this, works better in most cases, but is more strict,
see |C-indenting|. When 'cindent' is on, setting 'si' has no effect.
'indentexpr' is a more advanced alternative.
see |C-indenting|. When 'cindent' is on or 'indentexpr' is set,
setting 'si' has no effect. 'indentexpr' is a more advanced
alternative.
Normally 'autoindent' should also be on when using 'smartindent'.
An indent is automatically inserted:
- After a line ending in '{'.
@@ -6467,7 +6502,7 @@ A jump table for the options with a short description can be found at |Q_op|.
where it was the last time the buffer was edited.
NOTE: This option is set when 'compatible' is set.
*'statusline'* *'stl'* *E540* *E541* *E542*
*'statusline'* *'stl'* *E540* *E542*
'statusline' 'stl' string (default empty)
global or local to window |global-local|
{not in Vi}
@@ -6480,7 +6515,7 @@ A jump table for the options with a short description can be found at |Q_op|.
normal text. Each status line item is of the form:
%-0{minwid}.{maxwid}{item}
All fields except the {item} is optional. A single percent sign can
be given as "%%". Up to 80 items can be specified.
be given as "%%". Up to 80 items can be specified. *E541*
When the option starts with "%!" then it is used as an expression,
evaluated and the result is used as the option value. Example: >
@@ -6533,7 +6568,7 @@ A jump table for the options with a short description can be found at |Q_op|.
k S Value of "b:keymap_name" or 'keymap' when |:lmap| mappings are
being used: "<keymap>"
n N Buffer number.
b N Value of byte under cursor.
b N Value of character under cursor.
B N As above, in hexadecimal.
o N Byte number in file of byte under cursor, first byte is 1.
Mnemonic: Offset from start of file (with one added)
@@ -7531,8 +7566,7 @@ A jump table for the options with a short description can be found at |Q_op|.
with an uppercase letter, and don't contain a lowercase
letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
and "_K_L_M" are not. Nested List and Dict items may not be
read back correctly, you end up with a string representation
instead.
read back correctly, you end up with an empty item.
" Maximum number of lines saved for each register. Old name of
the '<' item, with the disadvantage that you need to put a
backslash before the ", otherwise it will be recognized as the
@@ -7748,6 +7782,17 @@ A jump table for the options with a short description can be found at |Q_op|.
a pattern from the list. This avoids problems when a future version
uses another default.
*'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'*
'wildignorecase' 'wic' boolean (default off)
global
{not in Vi}
When set case is ignored when completing file names and directories.
Has no effect on systems where file name case is generally ignored.
Does not apply when the shell is used to expand wildcards, which
happens when there are special characters.
*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
'wildmenu' 'wmnu' boolean (default off)
global

View File

@@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 7.3. Last change: 2010 Jul 20
*os_win32.txt* For Vim version 7.3. Last change: 2010 Dec 19
VIM REFERENCE MANUAL by George Reilly
@@ -313,6 +313,7 @@ A. When using :! to run an external command, you can run it with "start": >
with :!start do not get passed Vim's open file handles, which means they do
not have to be closed before Vim.
To avoid this special treatment, use ":! start".
The optional "/min" argument causes the window to be minimized.
Q. I'm using Win32s, and when I try to run an external command like "make",
Vim doesn't wait for it to finish! Help!

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.3. Last change: 2010 Jul 20
*pattern.txt* For Vim version 7.3. Last change: 2011 Feb 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -214,7 +214,8 @@ The last used pattern and offset are remembered. They can be used to repeat
the search, possibly in another direction or with another count. Note that
two patterns are remembered: One for 'normal' search commands and one for the
substitute command ":s". Each time an empty pattern is given, the previously
used pattern is used.
used pattern is used. However, if there is no previous search command, a
previous substitute pattern is used, if possible.
The 'magic' option sticks with the last used pattern. If you change 'magic',
this will not change how the last used pattern will be interpreted.

View File

@@ -1,4 +1,4 @@
*pi_tar.txt* For Vim version 7.3. Last change: 2010 Aug 09
*pi_tar.txt* For Vim version 7.3. Last change: 2010 Nov 03
+====================+
| Tar File Interface |
@@ -60,11 +60,11 @@ Copyright 2005-2010: The GPL (gnu public license) applies to *tar-copyright*
<.vimrc> file.
Default
Variable Value Explanation
*g:tar_browseoptions* "Ptf" used to get a list of contents
*g:tar_readoptions* "OPxf" used to extract a file from a tarball
*g:tar_cmd* "tar" the name of the tar program
*g:tar_nomax* 0 if true, file window will not be maximized
*g:tar_secure* undef if exists:
*g:tar_browseoptions* "Ptf" used to get a list of contents
*g:tar_readoptions* "OPxf" used to extract a file from a tarball
*g:tar_cmd* "tar" the name of the tar program
*g:tar_nomax* 0 if true, file window will not be maximized
*g:tar_secure* undef if exists:
"--"s will be used to prevent unwanted
option expansion in tar commands.
Please be sure that your tar command
@@ -76,7 +76,7 @@ Copyright 2005-2010: The GPL (gnu public license) applies to *tar-copyright*
"-"
Not all tar's support the "--" which is why
it isn't default.
*g:tar_writeoptions* "uf" used to update/replace a file
*g:tar_writeoptions* "uf" used to update/replace a file
==============================================================================

View File

@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 7.3. Last change: 2010 Oct 20
*quickfix.txt* For Vim version 7.3. Last change: 2011 Feb 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -548,7 +548,7 @@ in the same files a lot faster.
Note that |:copen| (or |:lopen| for |:lgrep|) may be used to open a buffer
containing the search results in linked form. The |:silent| command may be
used to suppress the default full screen grep output. The |:grep!| form of
used to suppress the default full screen grep output. The ":grep!" form of
the |:grep| command doesn't jump to the first match automatically. These
commands can be combined to create a NewGrep command: >

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.3. Last change: 2010 Sep 14
*quickref.txt* For Vim version 7.3. Last change: 2010 Dec 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -934,6 +934,7 @@ Short explanation of each option: *option-list*
'wildchar' 'wc' command-line character for wildcard expansion
'wildcharm' 'wcm' like 'wildchar' but also works when mapped
'wildignore' 'wig' files matching these patterns are not completed
'wildignorecase' 'wic' ignore case when completing file names
'wildmenu' 'wmnu' use menu for command line completion
'wildmode' 'wim' mode for 'wildchar' command-line expansion
'wildoptions' 'wop' specifies how command line completion is done

View File

@@ -1,4 +1,4 @@
*quotes.txt* For Vim version 7.3. Last change: 2006 Apr 24
*quotes.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -260,15 +260,16 @@ Eccettuato, Italy)
In summary:
__ ___ _ _ _ ___ _____
\ \ / (_)_ __ ___ (_)___ | | | |/ _ \_ _|
\ \ / /| | '_ ` _ \ | / __| | |_| | | | || |
\ V / | | | | | | | | \__ \ | _ | |_| || |
\_/ |_|_| |_| |_| |_|___/ |_| |_|\___/ |_|
____ _____ _ _ _____ _____ _ _
/ ___|_ _| | | | ___| ___| | |
\___ \ | | | | | | |_ | |_ | | |
___) || | | |_| | _| | _| |_|_|
|____/ |_| \___/|_| |_| (_|_) (Tony Nugent, Australia)
__ ___ _ _ _ ___ _____ `
\ \ / (_)_ __ ___ (_)___ | | | |/ _ \_ _| `
\ \ / /| | '_ ` _ \ | / __| | |_| | | | || | `
\ V / | | | | | | | | \__ \ | _ | |_| || | `
\_/ |_|_| |_| |_| |_|___/ |_| |_|\___/ |_| `
____ _____ _ _ _____ _____ _ _ `
/ ___|_ _| | | | ___| ___| | | `
\___ \ | | | | | | |_ | |_ | | | `
___) || | | |_| | _| | _| |_|_| `
|____/ |_| \___/|_| |_| (_|_) (Tony Nugent, Australia) `
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.3. Last change: 2009 Nov 04
*repeat.txt* For Vim version 7.3. Last change: 2011 Jan 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -102,7 +102,7 @@ To abort this type CTRL-C twice.
q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"}
(uppercase to append). The 'q' command is disabled
while executing a register, and it doesn't work inside
a mapping. {Vi: no recording}
a mapping and |:normal|. {Vi: no recording}
q Stops recording. (Implementation note: The 'q' that
stops recording is not stored in the register, unless
@@ -112,9 +112,13 @@ q Stops recording. (Implementation note: The 'q' that
@{0-9a-z".=*} Execute the contents of register {0-9a-z".=*} [count]
times. Note that register '%' (name of the current
file) and '#' (name of the alternate file) cannot be
used. For "@=" you are prompted to enter an
expression. The result of the expression is then
executed. See also |@:|. {Vi: only named registers}
used.
The register is executed like a mapping, that means
that the difference between 'wildchar' and 'wildcharm'
applies.
For "@=" you are prompted to enter an expression. The
result of the expression is then executed.
See also |@:|. {Vi: only named registers}
*@@* *E748*
@@ Repeat the previous @{0-9a-z":*} [count] times.

View File

@@ -1,4 +1,4 @@
*spell.txt* For Vim version 7.3. Last change: 2010 Apr 11
*spell.txt* For Vim version 7.3. Last change: 2011 Feb 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -335,6 +335,9 @@ A spell file might not be available in the current 'encoding'. See
|spell-mkspell| about how to create a spell file. Converting a spell file
with "iconv" will NOT work!
Note: on VMS ".{enc}.spl" is changed to "_{enc}.spl" to avoid trouble with
filenames.
*spell-sug-file* *E781*
If there is a file with exactly the same name as the ".spl" file but ending in
".sug", that file will be used for giving better suggestions. It isn't loaded
@@ -519,7 +522,7 @@ then Vim will try to guess.
Up to eight regions can be combined. *E754* *E755*
The REP and SAL items of the first .aff file where
they appear are used. |spell-REP| |spell-SAL|
*E845*
This command uses a lot of memory, required to find
the optimal word tree (Polish, Italian and Hungarian
require several hundred Mbyte). The final result will

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.3. Last change: 2010 Sep 23
*syntax.txt* For Vim version 7.3. Last change: 2011 Jan 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -390,10 +390,10 @@ Or use the ":TOhtml" user command. It is defined in a standard plugin.
:10,40TOhtml
Warning: This is slow! The script must process every character of every line.
Because it is so slow, by default a progress bar is displayed in the
statusline for each step that usually takes a long time. If you don't like
seeing this progress bar, you can disable it and get a very minor speed
Warning: This can be slow! The script must process every character of every
line. Because it can take a long time, by default a progress bar is displayed
in the statusline for each major step in the conversion process. If you don't
like seeing this progress bar, you can disable it and get a very minor speed
improvement with: >
let g:html_no_progress = 1
@@ -475,40 +475,89 @@ risk of making some things look a bit different, use: >
This will use <br> at the end of each line and use "&nbsp;" for repeated
spaces.
The current value of 'encoding' is used to specify the charset of the HTML
file. This only works for those values of 'encoding' that have an equivalent
HTML charset name. To overrule this set g:html_use_encoding to the name of
the charset to be used: >
:let g:html_use_encoding = "foobar"
To omit the line that specifies the charset, set g:html_use_encoding to an
empty string: >
:let g:html_use_encoding = ""
To go back to the automatic mechanism, delete the g:html_use_encoding
variable: >
:unlet g:html_use_encoding
<
For diff mode a sequence of more than 3 filler lines is displayed as three
lines with the middle line mentioning the total number of inserted lines. If
you prefer to see all the inserted lines use: >
If you do use the "<pre>" tags, <Tab> characters in the text are included in
the generated output if they will have no effect on the appearance of the
text and it looks like they are in the document intentionally. This allows for
the HTML output to be copied and pasted from a browser without losing the
actual whitespace used in the document.
Specifically, <Tab> characters will be included if the 'tabstop' option is set
to the default of 8, 'expandtab' is not set, and if neither the foldcolumn nor
the line numbers are included in the HTML output (see options above). When any
of these conditions are not met, any <Tab> characters in the text are expanded
to the appropriate number of spaces in the HTML output.
When "<pre>" is included, you can force |:TOhtml| to keep the tabs even if the
other conditions are not met with: >
:let g:html_expand_tabs = 0
Note that this can easily break text alignment and indentation in the HTML.
Force tabs to be expanded even when they would be kept using: >
:let g:html_expand_tabs = 1
For diff mode on a single file (with g:html_diff_one_file) a sequence of more
than 3 filler lines is displayed as three lines with the middle line
mentioning the total number of inserted lines. If you prefer to see all the
inserted lines as with the side-by-side diff, use: >
:let g:html_whole_filler = 1
And to go back to displaying up to three lines again: >
:unlet g:html_whole_filler
<
TOhtml uses the current value of 'fileencoding' if set, or 'encoding' if not,
to determine the charset and 'fileencoding' of the HTML file. In general, this
works for the encodings mentioned specifically by name in |encoding-names|, but
TOhtml will only automatically use those encodings which are widely supported.
However, you can override this to support specific encodings that may not be
automatically detected by default.
To overrule all automatic charset detection, set g:html_use_encoding to the
name of the charset to be used. TOhtml will try to determine the appropriate
'fileencoding' setting from the charset, but you may need to set it manually
if TOhtml cannot determine the encoding. It is recommended to set this
variable to something widely supported, like UTF-8, for anything you will be
hosting on a webserver: >
:let g:html_use_encoding = "UTF-8"
You can also use this option to omit the line that specifies the charset
entirely, by setting g:html_use_encoding to an empty string: >
:let g:html_use_encoding = ""
To go back to the automatic mechanism, delete the g:html_use_encoding
variable: >
:unlet g:html_use_encoding
If you specify a charset with g:html_use_encoding for which TOhtml cannot
automatically detect the corresponding 'fileencoding' setting, you can use
g:html_encoding_override to allow TOhtml to detect the correct encoding.
This is a dictionary of charset-encoding pairs that will replace existing
pairs automatically detected by TOhtml, or supplement with new pairs. For
example, to allow TOhtml to detect the HTML charset "windows-1252" properly as
the encoding "8bit-cp1252", use: >
:let g:html_encoding_override = {'windows-1252': '8bit-cp1252'}
<
The g:html_charset_override is similar, it allows TOhtml to detect the HTML
charset for any 'fileencoding' or 'encoding' which is not detected
automatically. You can also use it to override specific existing
encoding-charset pairs. For example, TOhtml will by default use UTF-8 for all
Unicode/UCS encodings. To use UTF-16 and UTF-32 instead, use: >
:let g:html_charset_override = {'ucs-4': 'UTF-32', 'utf-16': 'UTF-16'}
Note that documents encoded in either UTF-32 or UTF-16 have known
compatibility problems with at least one major browser.
*convert-to-XML* *convert-to-XHTML*
An alternative is to have the script generate XHTML (XML compliant HTML). To
do this set the "html_use_xhtml" variable: >
If you do not like plain HTML, an alternative is to have the script generate
XHTML (XML compliant HTML). To do this set the "html_use_xhtml" variable: >
:let g:html_use_xhtml = 1
Any of these options can be enabled or disabled by setting them explicitly to
the desired value, or restored to their default by removing the variable using
|:unlet|.
Any of the on/off options listed above can be enabled or disabled by setting
them explicitly to the desired value, or restored to their default by removing
the variable using |:unlet|.
Remarks:
- This only works in a version with GUI support. If the GUI is not actually
running (possible for X11) it still works, but not very well (the colors
may be wrong).
- Some truly ancient browsers may not show the background colors.
- From most browsers you can also print the file (in color)!
- This version of TOhtml may work with older versions of Vim, but some
features such as conceal support will not function, and the colors may be
incorrect for an old Vim without GUI support compiled in.
Here is an example how to run the script over all .c and .h files from a
Unix shell: >
@@ -872,8 +921,8 @@ line to your startup file: >
DOCBOOK *docbk.vim* *ft-docbk-syntax* *docbook*
DOCBOOK XML *docbkxml.vim* *ft-docbkxml-syntax*
DOCBOOK SGML *docbksgml.vim* *ft-docbksgml-syntax*
DOCBOOK XML *docbkxml.vim* *ft-docbkxml-syntax*
DOCBOOK SGML *docbksgml.vim* *ft-docbksgml-syntax*
There are two types of DocBook files: SGML and XML. To specify what type you
are using the "b:docbk_type" variable should be set. Vim does this for you
@@ -3218,11 +3267,12 @@ Whether or not they are actually concealed depends on the setting on the
in this way when they have their own highlighting via "matchgroup"
cchar *:syn-cchar*
*E844*
The "cchar" argument defines the character shown in place of the item
when it is concealed (setting "cchar" only makes sense when the conceal
argument is given.) If "cchar" is not set then the default conceal
character defined in the 'listchars' option is used. Example: >
character defined in the 'listchars' option is used. The character cannot be
a control character such as Tab. Example: >
:syntax match Entity "&amp;" conceal cchar=&
See |hl-Conceal| for highlighting.

View File

@@ -659,6 +659,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'noweirdinvert' options.txt /*'noweirdinvert'*
'nowfh' options.txt /*'nowfh'*
'nowfw' options.txt /*'nowfw'*
'nowic' options.txt /*'nowic'*
'nowildignorecase' options.txt /*'nowildignorecase'*
'nowildmenu' options.txt /*'nowildmenu'*
'nowinfixheight' options.txt /*'nowinfixheight'*
'nowinfixwidth' options.txt /*'nowinfixwidth'*
@@ -1064,10 +1066,12 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'wh' options.txt /*'wh'*
'whichwrap' options.txt /*'whichwrap'*
'wi' options.txt /*'wi'*
'wic' options.txt /*'wic'*
'wig' options.txt /*'wig'*
'wildchar' options.txt /*'wildchar'*
'wildcharm' options.txt /*'wildcharm'*
'wildignore' options.txt /*'wildignore'*
'wildignorecase' options.txt /*'wildignorecase'*
'wildmenu' options.txt /*'wildmenu'*
'wildmode' options.txt /*'wildmode'*
'wildoptions' options.txt /*'wildoptions'*
@@ -3202,6 +3206,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
<reg> map.txt /*<reg>*
<register> map.txt /*<register>*
<sfile> cmdline.txt /*<sfile>*
<slnum> cmdline.txt /*<slnum>*
<xCSI> intro.txt /*<xCSI>*
<xDown> term.txt /*<xDown>*
<xEnd> term.txt /*<xEnd>*
@@ -4216,7 +4221,14 @@ E835 options.txt /*E835*
E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837*
E838 netbeans.txt /*E838*
E839 insert.txt /*E839*
E84 windows.txt /*E84*
E840 insert.txt /*E840*
E841 map.txt /*E841*
E842 cmdline.txt /*E842*
E843 editing.txt /*E843*
E844 syntax.txt /*E844*
E845 spell.txt /*E845*
E85 options.txt /*E85*
E86 windows.txt /*E86*
E87 windows.txt /*E87*
@@ -5217,6 +5229,7 @@ digraph digraph.txt /*digraph*
digraph-arg change.txt /*digraph-arg*
digraph-encoding digraph.txt /*digraph-encoding*
digraph-table digraph.txt /*digraph-table*
digraph-table-mbyte digraph.txt /*digraph-table-mbyte*
digraph.txt digraph.txt /*digraph.txt*
digraphs digraph.txt /*digraphs*
digraphs-changed version6.txt /*digraphs-changed*
@@ -6961,9 +6974,11 @@ operator-variable eval.txt /*operator-variable*
option-backslash options.txt /*option-backslash*
option-list quickref.txt /*option-list*
option-summary options.txt /*option-summary*
option-window options.txt /*option-window*
options options.txt /*options*
options-changed version5.txt /*options-changed*
options.txt options.txt /*options.txt*
optwin options.txt /*optwin*
oracle ft_sql.txt /*oracle*
os2 os_os2.txt /*os2*
os2ansi os_os2.txt /*os2ansi*
@@ -8086,6 +8101,7 @@ v:val eval.txt /*v:val*
v:var eval.txt /*v:var*
v:version eval.txt /*v:version*
v:warningmsg eval.txt /*v:warningmsg*
v:windowid eval.txt /*v:windowid*
v_! change.txt /*v_!*
v_$ visual.txt /*v_$*
v_: cmdline.txt /*v_:*
@@ -8360,6 +8376,7 @@ window-size term.txt /*window-size*
window-size-functions usr_41.txt /*window-size-functions*
window-tag windows.txt /*window-tag*
window-variable eval.txt /*window-variable*
windowid-variable eval.txt /*windowid-variable*
windows windows.txt /*windows*
windows-3.1 os_win32.txt /*windows-3.1*
windows-intro windows.txt /*windows-intro*
@@ -8392,6 +8409,7 @@ write-fail editing.txt /*write-fail*
write-filetype-plugin usr_41.txt /*write-filetype-plugin*
write-library-script usr_41.txt /*write-library-script*
write-local-help usr_41.txt /*write-local-help*
write-permissions editing.txt /*write-permissions*
write-plugin usr_41.txt /*write-plugin*
write-plugin-quickload usr_41.txt /*write-plugin-quickload*
write-quit editing.txt /*write-quit*

View File

@@ -115,7 +115,7 @@ CTRL-T Jump to [count] older entry in the tag stack
The output of ":tags" looks like this:
# TO tag FROM line in file/line
# TO tag FROM line in file/text
1 1 main 1 harddisk2:text/vim/test
> 2 2 FuncA 58 i = FuncA(10);
3 1 FuncC 357 harddisk2:text/vim/src/amiga.c
@@ -135,7 +135,7 @@ you were before the tag command. The line number will be correct, also when
deleting/inserting lines, unless this was done by another program (e.g.
another instance of Vim).
For the current file, the "file/line" column shows the text at the position.
For the current file, the "file/text" column shows the text at the position.
An indent is removed and a long line is truncated to fit in the window.
You can jump to previously used tags with several commands. Some examples:
@@ -164,9 +164,9 @@ entry was not at the bottom, the entries below the last used one are
deleted. This means that an old branch in the call graph is lost. After the
commands explained above the tag stack will look like this:
# TO tag FROM line in file
1 main 1 harddisk2:text/vim/test
2 FuncB 59 harddisk2:text/vim/src/main.c
# TO tag FROM line in file/text
1 1 main 1 harddisk2:text/vim/test
2 1 FuncB 59 harddisk2:text/vim/src/main.c
*E73*
When you try to use the tag stack while it doesn't contain anything you will

View File

@@ -1,4 +1,4 @@
*term.txt* For Vim version 7.3. Last change: 2009 Nov 05
*term.txt* For Vim version 7.3. Last change: 2011 Feb 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -665,6 +665,7 @@ When the X-server clipboard is available, the command server described in
*xterm-copy-paste*
NOTE: In some (older) xterms, it's not possible to move the cursor past column
95. This is an xterm problem, not Vim's. Get a newer xterm |color-xterm|.
Now the limit is 223 columns.
Copy/paste in xterm with (current mode NOT included in 'mouse'):
1. Press left mouse button on first letter of text, move mouse pointer to last

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.3. Last change: 2010 Oct 20
*todo.txt* For Vim version 7.3. Last change: 2011 Mar 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,31 +30,59 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
'cursorline' is displayed too short when there are concealed characters and
'list' is set, 'listchars' at default value. (Dennis Preiser, 2010 Aug 15)
The :z command doesn't work exactly as it should. (ChangZhuo Chen, 2011 Mar 2)
Compare with how old Vi works and with posix spec. terminal is 80 x 24,
'scroll' option set to 11.
Conceal: using Tab for cchar causes problems. Should reject it. (ZyX, 2010
Aug 25)
Crash with ":python help(dir)". (Kearn Holliday, 2011 Mar 19)
I can reproduce it. Don't know why it happens.
'cursorline' is displayed too short when there are concealed characters and
'list' is set. (Dennis Preiser)
Patch 7.3.116 was the wrong solution.
When opening file from windows explorer, characters inside [] cause
problems, even though double quotes are used. (Manuel Stol, 2011 Mar 9)
Patch for Vim indent file. (Cocular, 2011 Mar)
:help c_Esc should work, but only :help c_<Esc> does.
Patch to change the meaning of \n in substitute(). (motoya kurotsu, 2011 Mar 8)
New version of Pascal indent file. (Neil Carter, 2011 Mar 9)
Help file foldexpr (ZyX)
upstart syntax file (James Hunt, Mar 11 2011)
Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set to 2,
only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
21, Ben Fritz, 2010 Sep 14)
Bug in repeating Visual "u". (Lawrence Kesteloot, 2010 Dec 20)
Crash with big .xpm file. (Yukihiro Nakadaira, 2011 Feb 18)
Patch from Ben Schmidt (2011 Mar 3). Needs some more work.
Patch for disappearing cursor after netbeans command. (Xavier de Gaye, 2011
Mar 4)
Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
Compiler scripts for fortran (Hong Xu, 2011 March 19)
This line hangs Vim, because of syntax HL:
call append(line, "INFO ....12....18....24....30....36....42....48....54....60....66....72....78%$")
Patch to add v:windowid. (Christian J. Robinson, 2010 Oct 13, update by Lech
Lorens, Oct 14)
maparg() doesn't return the flags, such as <buffer>, <script>, <silent>.
These are needed to save and restore a mapping.
Also: the rhs string is not always correct. (Hari Krishna Dara, 2009 Sept 29)
Patch by Christian Brabandt, 2010 Sep 17.
Building the MingW version without clipboard but with multi-byte doesn't
build. (Bill Lam, 2010 Sep 18)
work. (Bill Lam, 2010 Sep 18)
Patch for handling of NL in substitute() with \= expression. (Motoya Kurotsu,
2011 Mar 16)
When using a Vim server, a # in the path causes an error message.
(Jeff Lanzarotta, 2011 Feb 17)
Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
@@ -62,48 +90,130 @@ Using ":break" or something else that stops executing commands inside a
":finally" does not rethrow a previously uncaught exception. (ZyX, 2010 Oct
15)
Patch to fix warning for accessing mediumVersion. (Dominique Pelle, 2010 Aug
18)
Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
Patch for 2html to support 'fileencoding'. (Benjamin Fritz, 2010 Sep 10)
On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
64 bits value. Change all number options to use nropt_T and define it to the
right type.
Patch to use 'previewheight' for popup menu. (Benjamin Haskell, 2010 Sep 29)
Three patches for undo persistence. (Christian Brabandt, 2010 Sep 4)
ml_get error for using :copen in a custom complete function. (Xavier
Deguillard, 2010 Oct 19) Other way to reproduce it by Lech Lorens, Oct 20.
Patch to improve mf_hash, dynamic sizing. (Ivan Krasilnikov, 2010 Dec 17)
Update with tests: 2011 Feb 28.
string() can't parse back "inf" and "nan". Fix documentation or fix code?
(ZyX, 2010 Aug 23)
Patch to use "--as-needed" instead of the link.sh functionality. (Kirill A.
Shutemov, 2010 Aug 25)
maparg() does not show the <script> flag. When temporarily changing a
mapping, how to restore the script ID?
Patch to fix complete(). (Kikuchan, 2010 Oct 15)
Patch to fix \%V item in regexp. (Christian Brabandt, 2010 Nov 8)
Update Nov 19. James Vega: still not right. Christian: it's difficult.
Ruby: Patch to load Gem module. Why is this needed? (Yasuhiro Matsumoto, 2010
Oct 6)
Patch to add up to 99 match groups. (Christian Brabandt, 2010 Dec 22)
Also add named groups: \%{name}(re) and \%{name}g
":command Print echo 'print'" works, but ":Print" doesn't. Builtin Print
should be overruled. (Aaron Thoma)
Patch by Christian Brabandt, 2010 Sep 5.
Bug in try/catch: return with invalid compare throws error that isn't caught.
(ZyX, 2011 Jan 26)
Comparing recursive structure loops forever. (ZyX, 2010 Aug 22, info from John
Beckett Aug 23)
Patch from Christian Brabandt, 2010 Oct 2
Improvement patch for filetype.vim. (Thilo Six, 2011 Mar 19)
":drop" does not respect 'autochdir'. (Peter Odding, 2010 Jul 24)
Patch from Benjamin Fritz, 2010 Oct 13.
Patch for "+ and "* getting same selection when "a" is not in 'guioptions'.
(James Vega, 2011 Mar 17)
Highlighting stops working after changing it many times. Script to reproduce
it: Pablo Contreras, 2010 Oct 12 Windows XP and 7. Font is never freed?
After patch 7.3.097 still get E15. (Yukihiro Nakadaira, 2011 Jan 18)
Also for another example (ZyX, 2011 Jan 24)
Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
"0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)
Deleting a linewise selection that includes the last line of the file leaves
an empty line. (Ben Schmidt, 2011 Mar 17)
Patch by Christian Brabandt, 2011 Mar 19.
Two patches for xxd. (Florian Zumbiehl, 2011 Jan 11)
Two updates for second one Jan 12.
Problem with "syn sync gouphere". (Gustavo Niemeyer, 2011 Jan 27)
Loading autoload script even when usage is inside "if 0". (Christian Brabandt,
2010 Dec 18)
When 'colorcolumn' is set locally to a window, ":new" opens a window with the
same highlighting but 'colorcolumn' is empty. (Tyru, 2010 Nov 15)
Patch by Christian Brabandt, 2011 Feb 13 (but move further down).
In the sandbox it's not allowed to do many things, but it's possible to change
or set variables. Add a way to prevent variables from being changed in the
sandbox? E.g.: ":protect g:restore_settings".
Patch for configure related to Ruby on Mac OS X. (Bjorn Winckler, 2011 Jan 14)
Patch to recognize more files as log files. (Mathieu Parent, 2011 Jan 14)
Patch to set v:register on startup. (Ingo Karkat, 2011 Jan 16)
Patch to set v:register default depending on "unnamed" in 'clipboard'. (Ingo
Karkat, 2011 Jan 16)
Patch for:
InsertCharPre - user typed character Insert mode, before inserting the
char. Pattern is matched with text before the cursor.
Set v:char to the character, can be changed.
(not triggered when 'paste' is set).
(Jakson A. Aquino, 2011 Jan 29)
Patch for "No errors" showing up after QuickfixCmdPost. (Mike Lundy, 2011 Feb
3)
Patch for cmdline completion of ":lang". (Dominique Pelle, 2011 Feb 5)
GTK: drawing a double-width combining character over single-width characters
doesn't look right. (Dominique Pelle, 2010 Aug 8)
Using ":call" inside "if 0" does not see that a function returns a Dict and
gives error for "." as string concatenation. (Yasuhiro Matsumoto, 2010 Oct 20)
GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
Win32: tear-off menu does not work when menu language is German. (Markus
Bossler, 2011 Mar 2) Fixed by 7.3.095?
Patch for adding 's' option to 'cino', C++ namespace indenting. (Konstantin
Lepa, 2011 Jan 18)
Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
7.3.014 changed how backslash at end of line works, but still get a NUL when
there is one backslash. (Ray Frush, 2010 Nov 18) What does the original ex
do?
":find" completion does not escape space in directory name. (Isz, 2010 Nov 2)
Searching mixed with Visual mode doesn't redraw properly. (James Vega, 2010 Nov
22)
Patch to support ":!start /b cmd". (Xaizek, 2010 Dec 22)
Patch to build with GTK on Mac. (Ben Schmidt, 2011 Jan 18)
Use another name instead of FEAT_GUI_ELSEWHERE.
Patch for xxd makefile to avoid generating .dSYM files. (Ben Schmidt, 2011 Jan
18)
Patch to show sign for folded text. (Christian Brabandt, 2011 Jan 12)
Method to reproduce it: Jan 16.
Patch to improve optwin.vim. (ZyX, 2011 Jan 29)
Patch for Python 3 support. (lilydjwg, 2011 Feb 24)
New esperanto spell file can't be processed. (Dominique Pelle, 2011 Jan 30)
- move compflags to separate growarray?
- instead of a regexp use a hashtable. Expand '?', '*", '+'. What would be
the maximum repeat for * and +?
"L'Italie" noted as a spell error at start of the sentence. (Dominique Pelle,
2011 Feb 27)
Copy/paste between Vim and Google chrome doesn't work well for multi-byte
characters. (Ben Haskell, 2010 Sep 17)
@@ -115,6 +225,28 @@ clear why it doesn't work.
Editing a file with a ^M with 'ff' set to "mac", opening a help file, then the
^M is displayed as ^J sometimes. Getting 'ff' value from wrong window/buffer?
When Vim is put in the background (SIGTSTP) and then gets a SIGHUP it doesn't
exit. It exists as soon as back in the foreground. (Stephen Liang, 2011 Jan
9) Caused by vim_handle_signal(SIGNAL_BLOCK); in ui.c.
g` not working correctly when using :edit. It works OK when editing a file on
the command line. (Ingo Karkat, 2011 Jan 25)
Since patch 7.2.46 Yankring plugin has become very slow, eventually make Vim
crash? (Raiwil, 2010 Nov 17)
Patch to disallow fork() when __APPLE__ is defined. (Hisashi T Fujinaka, 2010
Nov 25)
GTK: Patch to fix menu popping down. (Hong Xu, 2010 Dec 4, Dec 5)
Update 2011 Feb 3.
Patch to use pipes on Win32. (Vincent Berthoux, 2011 Feb 28)
Update Mar 1 using 'shelltemp'.
Python: Adding line to buffer other than the current one doesn't work
correctly. (Rozbujnik, 2010 Dec 19)
Patch to add 'systemencoding', convert between 'encoding' and this for file
names, shell commands and the like. (Kikuchan, 2010 Oct 14)
Assume the system converts between the actual encoding of the filesystem to
@@ -123,18 +255,33 @@ the system encoding (usually utf-8).
Problem producing tags file when hebrew.frx is present. It has a BOM.
Results in E670. (Tony Mechelynck, 2010 May 2)
Patch for dynamic loading Ruby on Unix. (Jon, 2010 Aug 23)
Included, but also need a change to configure.
Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct
30)
Ruby: ":ruby print $buffer.number" returns zero.
setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
7 The 'directory' option supports changing path separators to "%" to make
file names unique, also support this for 'backupdir'. (Mikolaj Machowski)
Patch by Christian Brabandt, 2010 Oct 21.
getpos()/setpos() don't include curswant. getpos() could return a fifth
element. setpos() could accept an optional fifth element.
Patch by Christian Brabandt, 2010 Sep 6. Check that new argument is optional
and that it's documented.
With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott,
2010 Oct 24)
Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
Alternative from Christian Brabandt. (2010 Sep 19)
Messages in message.txt are highlighted as examples.
When using cp850 the NBSP (0xff) is not drawn correctly. (Brett Stahlman, 2010
Oct 22) 'isprint' is set to "@,161-255".
Test 73 fails on MS-Windows when compiled with DJGPP and run twice. How to
delete the Xfind directory? Add an rmdir() function, just like we have
mkdir().
@@ -143,11 +290,17 @@ mkdir().
'cindent' not correct when 'list' is set. (Zdravi Korusef, 2010 Apr 15)
When 'paste' is changed with 'pastetoggle', the ruler doesn't reflect this
right away. (Samuel Ferencik, 2010 Dec 7)
Windows installer: licence text should not use indent, causes bad word wrap.
(Benjamin Fritz, 2010 Aug 16)
Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)
Using CompilerSet doesn't record where an option was set from. E.g., in the
gcc compiler plugin. (Gary Johnson, 2010 Dec 13)
":helpgrep" does not put the cursor in the correct column when preceded by
accented character. (Tony Mechelynck, 2010 Apr 15)
@@ -158,17 +311,45 @@ Echo starts in the wrong column:
while 1 | let s = input('A') | echo 'R' | endw
(Boyko Bantchev, 2010 Aug 9)
Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)
When writing a file > 2Gbyte, the reported number of bytes is negative.
(Antonio Colombo, 2010 Dec 18)
Patch: Let rare word highlighting overrule good word highlighting.
(Jakson A. Aquino, 2010 Jul 30)
Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
Patch for VisVim, pass file name to VimOpenFile. (Jiri Sedlak, 2010 Nov 12)
When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines
instead of one. (Constantin Pan, 2010 Sep 10)
Crash in setqflist(). (Benoit Mortgat, 2010 Nov 18)
Patch to handle resizing when tab is opened, when at full size. (Yukihiro
Nakadaira, 2010 Jan 6)
Writing nested List and Dict in viminfo gives error message and can't be read
back. (Yukihiro Nakadaira, 2010 Nov 13)
Can 'undolevels' be a buffer-local option? Helps for making big changes in
one file only, set 'ul' to -1 only for that buffer.
Patch by Christian Brabandt, 2010 Dec 17. Needs test.
Dos uninstal may delete vim.bat from the wrong directory (e.g., when someone
makes his own wrapper). Add a magic string with the version number to the
.bat file and check for it in the uninstaller. E.g.
# uninstall key: vim7.3*
Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11)
Additional info by Dominique Pelle. (also on 2010 Apr 10)
CreateFile and CreateFileW are used without sharing, filewritable() fails when
the file was already open (e.g. script is being sourced). Add FILE_SHARE_READ|
FILE_SHARE_WRITE in mch_access()? (Phillippe Vaucher, 2010 Nov 2)
Is ~/bin (literally) in $PATH supposed to work? (Paul, 2010 March 29)
Looks like only bash can do it. (Yakov Lerner)
@@ -203,12 +384,21 @@ path.
":sort n" treats empty line as higher than zero. (Beeyawned, 2010 Oct 13)
Test 51 fails when language set to German. (Marco, 2011 Jan 9)
Dominique can't reproduc it.
":function f(x) keepjumps" creates a function where every command is executed
like it has ":keepjumps" before it.
Coverity: ask someone to create new user: Dominique.
Check if there are new reported defects: http://scan.coverity.com/rung2.html
Patch to support :undo absolute jump to file save number. (Christian Brabandt,
2010 Nov 5)
Patch to use 'foldnextmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011
Jan 7)
When setting 'undofile' while the file is already loaded, but unchanged, try
to read the undo file. Requires computing a checksum of the text. (Andy
Wokula)
@@ -218,6 +408,10 @@ Only with "vim -u NONE".
Problem with editing file in binary mode. (Ingo Krabbe, 2009 Oct 8)
With 'wildmode' set to "longest:full,full" and pressing Tab once the first
entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe, 2011
Feb 12)
Display error when 'tabline' that includes a file name with double-width
characters. (2010 Aug 14, bootleq)
@@ -227,6 +421,11 @@ Undo problem: line not removed as expected when using setline() from Insert
mode. (Israel Chauca, 2010 May 13, more in second msg)
Break undo when CTRL-R = changes the text? Or save more lines?
Patch for static code analysis errors in riscOS. (Dominique Pelle, 2010 Dec 3)
Patch for better #if 0 syntax highlighting for C code. (Ben Schmidt, 2011 Jan
20)
Change to C syntax folding to make it work much faster, but a bit less
reliable. (Lech Lorens, 2009 Nov 9) Enable with an option?
Most time is spent in in_id_list().
@@ -234,16 +433,25 @@ Most time is spent in in_id_list().
Slow combination of folding and PHP syntax highlighting. Script to reproduce
it. Caused by "syntax sync fromstart" in combination with patch 7.2.274.
(Christian Brabandt, 2010 May 27)
Generally, folding with 'foldmethod' set to "syntax" is slow. Do profiling to
find out why.
When completion inserts the first match, it may trigger the line to be folded.
Disable updating folds while completion is active? (Peter Odding, 2010 Jun 9)
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file. Works OK for
echo, just not for ":call" and ":call call()". (Ted, 2011 Mar 17)
In command line window ":close" doesn't work properly. (Tony Mechelynck, 2009
Jun 1)
Cannot use getchar() inside :normal and using an expression mapping. Is this
supposed to work? (XyX, 2010 Sep 22)
When using an expression mapping with a multi-byte character each byte is
converted to a utf-8 character. (ZyX, 2011 Jan 4)
Patch for possible solution. (Yukihiro Nakadaira, 2011 Jan 5)
When a:base in 'completefunc' starts with a number it's passed as a number,
not a string. (Sean Ma) Need to add flag to call_func_retlist() to force a
string value.
@@ -258,6 +466,9 @@ Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
For running gvim on an USB stick: avoid the OLE registration. Use a command
line argument -noregister.
When using an expression in 'statusline' leading white space sometimes goes
missing (but not always). (ZyX, 2010 Nov 1)
When a mapping exists both for insert mode and lang-insert mode, the last one
doesn't work. (Tyru, 2010 May 6) Or is this intended?
@@ -357,6 +568,9 @@ Ignore window options when not in the right window?
Perhaps we need to use a hidden window for applying autocommands to a buffer
that doesn't have a window.
When "b" is a symlink to directory "a", resolve("b/") doesn't result in "a/".
(ZyX, 2011 Feb 12)
When using "ab foo bar" and mapping <Tab> to <Esc>, pressing <Tab> after foo
doesn't trigger the abbreviation like <Esc> would. (Ramana Kumar, 2009 Sep 6)
@@ -396,21 +610,23 @@ very high. (Yegappan Lakshmanan, 2010 Jul 22, Michael Peeters, 2010 Jul 22)
Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
(Felix Kater, 2009 Mar 3)
Session file generates error upon loading, cause bu --remote-silent-tab.
(7tommm (ytommm) 2010 Nov 24)
Using ~ works OK on 'a' with composing char, but not on 0x0418 with composing
char 0x0301. (Tony Mechelynck, 2009 Mar 4)
A function on a dictionary is not profiled. (Zyx, 2010 Dec 25)
Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
messages, even though locale is not supported. But ":lang messages
es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
2009 Jan 26)
When $HOME contains special characters, sich as a comma, escape them when used
When $HOME contains special characters, such as a comma, escape them when used
in an option. (Michael Hordijk, 2009 May 5)
Turn "esc" argument of expand_env_esc() into string of chars to be escaped.
Can 'undolevels' be a buffer-local option? Helps for making big changes in
one file only, set 'ul' to -1 only for that buffer.
Should make 'ignorecase' global-local, so that it makes sense setting it from
a modeline.
@@ -429,6 +645,11 @@ correct. Don't use it in the swap file.
Completion for ":buf" doesn't work properly on Win32 when 'shellslash' is off.
(Henrik Ohman, 2009, Jan 29)
shellescape() depends on 'shellshash' for quoting. That doesn't work when
'shellslash' is set but using cmd.exe. (Ben Fritz)
Use a different option or let it depend on whether 'shell' looks like a
unix-like shell?
Allow patches to add something to version.c, like with an official patch, so
that :version output shows which patches have been applied.
@@ -478,11 +699,6 @@ Having "Syntax" in 'eventignore' for :bufdo may cause problems, e.g. for
option only for when jumping to another buffer, not when the command argument
is executed.
Crash with dragn-n-drop of file combined with netrw (Marius Gedminas, 2008 Jun
11) I can't reproduce it. It's probably caused by a handle_drop() call
in combination with autocommands that invoke a ":redraw" command.
Another valgrind output Jun 30.
":pedit %" with a BufReadPre autocommand causes the cursor to move to the
first line. (Ingo Karkat, 2008 Jul 1) Ian Kelling is working on this.
@@ -512,9 +728,6 @@ Patch for c.vim and cpp.vim syntax files. (Chung-chieh Shan, 2008 Nov 26)
c.vim: XXX in a comment is colored yellow, but not when it's after "#if 0".
(Ilya Dogolazky, 2009 Aug 7)
Win32: ":dis +" shows nothing, but "+p does insert text. Problem with "* and
"+ being the same thing?
You can type ":w ++bad=x fname", but the ++bad argument is ignored. Give an
error message? Or is this easy to implement? (Nathan Stratton Treadway, 2008
Aug 20) This is in ucs2bytes(), search for 0xBF. Using the ++bad argument is
@@ -551,9 +764,6 @@ When mapping : to ; and ; to :, @; doesn't work like @: and @: doesn't work
either. Matt Wozniski: nv_at() calls do_execreg() which uses
put_in_typebuf(). Char mapped twice?
8 Some file systems are case-sensitive, some are not. Turn
CASE_INSENSITIVE_FILENAME into an option, at least for completion.
Despite adding save_subexpr() this still doesn't work properly:
Regexp: matchlist('12a4aaa', '^\(.\{-}\)\(\%5c\@<=a\+\)\(.\+\)\?')
Returns ['12a4', 'aaa', '4aaa'], should be ['12a4', 'aaa', '']
@@ -609,6 +819,9 @@ try the Cocoa version.
Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
changed or the window is resized.
GTK: when setting 'columns' in a startup script and doing ":vertical diffsplit"
the window isn't redrawn properly, see two vertical bars.
Mac: Patch for configure: remove arch from ruby link args. (Knezevic, 2008
Mar 5) Alternative: Kazuki Sakamoto, Mar 7.
@@ -646,6 +859,8 @@ each choice does. Similar to ":help swap-exists-choices"
try/catch not working for argument of return. (Matt Wozniski, 2008 Sep 15)
try/catch not working when inside a for loop. (ZyX, 2011 Jan 25)
Recognize and ignore BOM in error file. (Aleksey Baibarin)
":tab help" always opens a new tab, while ":help" re-uses an existing window.
@@ -785,6 +1000,9 @@ go to Insert mode and add a few lines. Then backspacing every other time
moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
Patch to use Modern UI 2.0 for the Nsis installer. (Guopeng Wen, 2010 Jul 30)
8 Windows install with NSIS: make it possible to do a silent install, see
http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
Version from Guopeng Wen that does this (2010 Dec 27)
Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
2007 Feb 8)
@@ -895,6 +1113,8 @@ if_ruby.c.
Patch to dynamically load Python on Solaris. (Danek Duvall, 2009 Feb 16)
Needs more work.
Python3 interface doesn't handle utf-8 correctly? (Nov 2010, lilydjwg)
The need_fileinfo flag is messy. Instead make the message right away and put
it in keep_msg?
@@ -1033,6 +1253,12 @@ Completing with 'wildmenu' and using <Up> and <Down> to move through directory
tree stops unexpectedly when using ":cd " and entering a directory that
doesn't contain other directories.
Setting 'background' resets the Normal background color:
highlight Normal ctermbg=DarkGray
set background=dark
This is undesired, 'background' is supposed to tell Vim what the background
color is, not reset it.
Linux distributions:
- Suggest compiling xterm with --enable-tcap-query, so that nr of colors is
known to Vim. 88 colors instead of 16 works better. See ":help
@@ -1101,6 +1327,9 @@ check the result of has("patch13").
Cursor line at bottom of window instead of halfway after saving view and
restoring. Only with 'nowrap'. (Robert Webb, 2008 Aug 25)
Netrw has trouble executing autocommands only for a directory. Add <isdir>
and <notisdir> to autocommand patterns? Also <isfile>?
Add command modifier that skips wildcard expansion, so that you don't need to
put backslashes before special chars, only for white space.
@@ -1116,8 +1345,8 @@ doesn't work from Geoffrey Antos, 2008 May 5.
Also: the window may no longer fit on the screen, thus the command line is not
visible.
GTK: when setting 'columns' in a startup script and doing ":vertical diffsplit"
the window isn't redrawn properly, see two vertical bars.
When right after "vim file", "M" then CTRL-W v the windows are scrolled
differently and unexpectedly. Caused by patch 7.2.398?
The magic clipboard format "VimClipboard2" appears in several places. Should
be only one.
@@ -1215,6 +1444,11 @@ Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn Winckler,
2010 Jun 30)
At next release:
- Rename src/Makefile and create a new one like toplevel Makefile that
creates auto/config.mk when it's not there? (Ben Schmidt, 2011 Feb 11)
More patches:
- Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11)
Needs a few tests.
@@ -1508,8 +1742,6 @@ Win32 GUI known bugs:
scroll?
7 Scrollbar width doesn't change when selecting other windows appearance.
Also background color of Toolbar and rectangle below vert. scrollbar.
7 "!start /min cmd" should run in a minimized window, instead of using
"/min" as the command name. (Rogall)
6 Drawing text transparently doesn't seem to work (when drawing part cursor).
8 CTRL key doesn't always work in combination with ALT key. It does work
for function keys, not for alphabetic characters. Perhaps this is because
@@ -1556,6 +1788,8 @@ Athena and Motif:
Athena GUI:
9 The first event for any button in the menu or toolbar appears to get lost.
The second click on a menu does work.
9 When dragging the scrollbar thumb very fast, focus is only obtained in
the scrollbar itself. And the thumb is no longer updated when moving
through files.
@@ -1879,11 +2113,6 @@ Macintosh:
works.
8 A very long message in confirm() can't be quit. Make this possible with
CTRL-C.
7 clip_x11_own_selection() uses CurrentTime, that is not allowed. VNC X
server has a problem with this. (Mark Waggoner) Remembering the timestamp
of events isn't always possible. We don't get them in an xterm. GTK
doesn't obtain the selection again when the timestamp differs, thus it
won't work for GTK anyway.
8 When the clipboard isn't supported: ":yank*" gives a confusing error
message. Specifically mention that the register name is invalid.
8 "gf" always excludes trailing punctuation characters. file_name_in_line()
@@ -2150,6 +2379,9 @@ Problems that will (probably) not be solved:
- Win32, MS-Windows XP: $HOME uses the wrong drive when the user profiles
are not on the boot disk. This is caused by a wrong value of $HOMEDRIVE.
This is a bug in XP, see MSKB article 818134.
- Win32, MS-Windows: expanding plugin/**/*.vim also picks up
dir/ctags.vim,v. This is because the short file name is something like
"ctags~1.vim" and that matches the pattern.
- SunOS 5.5.1 with Motif: The file open dialog does not have a horizontal
scroll bar for the "files" selection. This is a problem in the Motif
libraries, get a patch from Sun.
@@ -2275,8 +2507,6 @@ Help:
User Friendlier:
8 Windows install with NSIS: make it possible to do a silent install, see
http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
8 Windows install with install.exe: Use .exe instead of .bat files for
links, so that command line arguments are passed on unmodified? (Walter
Briscoe)
@@ -3335,10 +3565,6 @@ Autocommands:
- Before/after ":cd" has been used (for changing the
window title)
ShutDown - when the system is about to shut down
InsertCharPre - user typed character Insert mode, before inserting the
char. Pattern is matched with text before the cursor.
Set v:char to the character, can be changed.
(not triggered when 'paste' is set).
InsertCharPost - user typed a character in Insert mode, after inserting
the char.
BufModified - When a buffer becomes modified, or unmodified (for
@@ -3574,6 +3800,10 @@ Insert mode:
<< "y";
9 "} else" causes following lines to be indented too much. (Rouben
Rostamian, 2008 Aug 30)
9 Wrapping a variable initialization should have extra indent:
char * veryLongName =
"very long string"
Also check if "cino=+10" is used correctly.
8 Lisp indenting: "\\" confuses the indenter. (Dorai Sitaram, 2006 May 17)
8 Why are continuation lines outside of a {} block not indented? E.g.:
long_type foo =
@@ -3879,6 +4109,8 @@ Searching:
Use "&/" for searching the text in the Visual area?
9 Add "v" offset: "/pat/v": search for pattern and start Visual mode on the
matching text.
8 Add a modifier to interpret a space like "\_s\+" to make it much easier to
search for a phrase.
8 Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)". \@g stands
for "go recursive here" and \@( \) marks the recursive part.
Perl does it this way:
@@ -4075,6 +4307,9 @@ Buffer list:
should then mean the number of the last buffer. E.g.: "4,$bdel".
7 Add an option to mostly use slashes in file names. Separately for
internal use and for when executing an external program?
8 Some file systems are case-sensitive, some are not. Besides
'wildignorecase' there might be more parts inside
CASE_INSENSITIVE_FILENAME that are useful on Unix.
Swap (.swp) files:
@@ -4259,6 +4494,7 @@ Marks:
Digraphs:
7 Make "ga" show the digraph for a character, if it exists.
Also the keymap?
Also show the code of the character after conversion to 'filenecoding'.
- Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
below/above).
- Use digraph table to tell Vim about the collating sequence of special
@@ -4278,8 +4514,6 @@ Writing files:
8 'backupskip' doesn't write a backup file at all, a bit dangerous for some
applications. Add 'backupelsewhere' to write a backup file in another
directory? Or add a flag to 'backupdir'?
7 The 'directory' option supports changing path separators to "%" to make
file names unique, also support this for 'backupdir'. (Mikolaj Machowski)
6 Add an option to write a new, numbered, backup file each time. Like
'patchmode', e.g., 'backupmode'.
6 Make it possible to write 'patchmode' files to a different directory.
@@ -4378,6 +4612,8 @@ Debug mode:
Various improvements:
9 Python: be able to define a Python function that can be called directly
from Vim script. Requires converting the arguments and return value.
8 ":sign unplace * file={filename}" should work. Also: ":sign unplace *
buffer={bufnr}". So one can remove all signs for one file/buffer.
7 Add plugins for formatting? Should be able to make a choice depending on
@@ -4397,6 +4633,8 @@ Various improvements:
7 Instead of filtering errors with a shell script it should be possible to
do this with Vim script. A function that filters the raw text that comes
from the 'makeprg'?
9 Add %F to 'errorformat': file name without spaces. Useful on Unix to
avoid matching something up to a time 11:22:33.
- Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
Govindachar)
7 Add a command that goes back to the position from before jumping to the
@@ -4473,6 +4711,8 @@ Various improvements:
3 Make "2d%" work like "d%d%" instead of "d2%"?
7 "g CTRL-O" jumps back to last used buffer. Skip CTRL-O jumps in the same
buffer. Make jumplist remember the last ten accessed buffers?
7 Make it possible to set the size of the jumplist (also to a smaller number
than the default). (Nikolai Weibull)
- Add code to disable the CAPS key when going from Insert to Normal mode.
- Set date/protection/etc. of the patchfile the same as the original file.
- Use growarray for termcodes[] in term.c

View File

@@ -1,4 +1,4 @@
*undo.txt* For Vim version 7.3. Last change: 2010 Sep 30
*undo.txt* For Vim version 7.3. Last change: 2010 Dec 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -125,16 +125,23 @@ This is explained in the user manual: |usr_32.txt|.
*:undol* *:undolist*
:undol[ist] List the leafs in the tree of changes. Example:
number changes time saved ~
4 10 10:34:11
18 4 11:01:46 7
number changes when saved ~
88 88 2010/01/04 14:25:53
108 107 08/07 12:47:51
136 46 13:33:01 7
166 164 3 seconds ago
The "number" column is the change number. This number
continuously increases and can be used to identify a
specific undo-able change, see |:undo|.
The "changes" column is the number of changes to this
leaf from the root of the tree.
The "time" column is the time this change was made.
The "when" column is the date and time when this
change was made. The four possible formats are:
N seconds ago
HH:MM:SS hour, minute, seconds
MM/DD HH:MM:SS idem, with month and day
YYYY/MM/DD HH:MM:SS idem, with year
The "saved" column specifies, if this change was
written to disk and which file write it was. This can
be used with the |:later| and |:earlier| commands.
@@ -239,7 +246,9 @@ Vim saves undo trees in a separate undo file, one for each edited file, using
a simple scheme that maps filesystem paths directly to undo files. Vim will
detect if an undo file is no longer synchronized with the file it was written
for (with a hash of the file contents) and ignore it when the file was changed
after the undo file was written, to prevent corruption.
after the undo file was written, to prevent corruption. An undo file is also
ignored if its owner differs from the owner of the edited file. Set 'verbose'
to get a message about that.
Undo files are normally saved in the same directory as the file. This can be
changed with the 'undodir' option.

View File

@@ -1,4 +1,4 @@
*usr_01.txt* For Vim version 7.3. Last change: 2008 May 07
*usr_01.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM USER MANUAL - by Bram Moolenaar
@@ -40,13 +40,20 @@ the commands and options used for it. Use these two commands:
Press CTRL-] to jump to a subject under the cursor.
Press CTRL-O to jump back (repeat to go further back).
Many links are in vertical bars, like this: |bars|. An option name, like
'number', a command in double quotes like ":write" and any other word can also
be used as a link. Try it out: Move the cursor to CTRL-] and press CTRL-]
on it.
Many links are in vertical bars, like this: |bars|. The bars themselves may
be hidden or invisible, see below. An option name, like 'number', a command
in double quotes like ":write" and any other word can also be used as a link.
Try it out: Move the cursor to CTRL-] and press CTRL-] on it.
Other subjects can be found with the ":help" command, see |help.txt|.
The bars and stars are usually hidden with the |conceal| feature. They also
use |hl-Ignore|, using the same color for the text as the background. You can
make them visible with: >
:set conceallevel=0
:hi link HelpBar Normal
:hi link HelpStar Normal
==============================================================================
*01.2* Vim installed

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 7.3. Last change: 2010 Jul 20
*usr_41.txt* For Vim version 7.3. Last change: 2011 Feb 15
VIM USER MANUAL - by Bram Moolenaar
@@ -313,7 +313,7 @@ The usual precedence is used. Example: >
:echo 10 + 5 * 2
< 20 ~
Grouping is done with braces. No surprises here. Example: >
Grouping is done with parentheses. No surprises here. Example: >
:echo (10 + 5) * 2
< 30 ~
@@ -537,7 +537,7 @@ way. A few examples will be given in this section. You can find the whole
list here: |functions|.
A function is called with the ":call" command. The parameters are passed in
between braces, separated by commas. Example: >
between parentheses separated by commas. Example: >
:call search("Date: ", "W")
@@ -661,7 +661,14 @@ Floating point computation: *float-functions*
sqrt() square root
sin() sine
cos() cosine
tan() tangent
asin() arc sine
acos() arc cosine
atan() arc tangent
atan2() arc tangent
sinh() hyperbolic sine
cosh() hyperbolic cosine
tanh() hyperbolic tangent
Variables: *var-functions*
type() type of a variable
@@ -793,6 +800,8 @@ Syntax and highlighting: *syntax-functions* *highlighting-functions*
synID() get syntax ID at a specific position
synIDattr() get a specific attribute of a syntax ID
synIDtrans() get translated syntax ID
synstack() get list of syntax IDs at a specific position
synconcealed() get info about concealing
diff_hlID() get highlight ID for diff mode at a position
matchadd() define a pattern to highlight (a "match")
matcharg() get info about |:match| arguments
@@ -1015,7 +1024,7 @@ so on. The variable "a:0" contains the number of extra arguments.
:function Show(start, ...)
: echohl Title
: echo "Show is " . a:start
: echo "start is " . a:start
: echohl None
: let index = 1
: while index <= a:0
@@ -1283,7 +1292,7 @@ local variable will then refer to that Dictionary.
split(a:line)
The split() function takes a string, chops it into white separated words
The split() function takes a string, chops it into whitespace separated words
and returns a list with these words. Thus in the example it returns: >
:echo split('three two five one')
@@ -1400,7 +1409,7 @@ Let's start with an example: >
The ":read" command will fail if the file does not exist. Instead of
generating an error message, this code catches the error and gives the user a
nice message instead.
nice message.
For the commands in between ":try" and ":endtry" errors are turned into
exceptions. An exception is a string. In the case of an error the string
@@ -1477,7 +1486,7 @@ escaped by a "\" (backslash) as in the following example: >
:set tags=my\ nice\ file
The same example written as >
The same example written as: >
:set tags=my nice file
@@ -2095,7 +2104,7 @@ and that is not what a filetype plugin should do.
When an option has a value that is a list of flags or items, consider using
"+=" and "-=" to keep the existing value. Be aware that the user may have
changed an option value already. First resetting to the default value and
then changing it often a good idea. Example: >
then changing it is often a good idea. Example: >
:setlocal formatoptions& formatoptions+=ro

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 7.3. Last change: 2010 Sep 23
*various.txt* For Vim version 7.3. Last change: 2011 Mar 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -101,13 +101,14 @@ g8 Print the hex values of the bytes used in the
:[range]P[rint] [count] [flags]
Just as ":print". Was apparently added to Vi for
people that keep the shift key pressed too long...
Note: A user command can overrule this command.
See |ex-flags| for [flags].
*:l* *:list*
:[range]l[ist] [count] [flags]
Same as :print, but display unprintable characters
with '^' and put $ after the line. This can be
changed with the 'listchars' option.
further changed with the 'listchars' option.
See |ex-flags| for [flags].
*:nu* *:number*
@@ -132,14 +133,14 @@ g8 Print the hex values of the bytes used in the
specified with {range}, or around the current line
if there is no {range}. If there is a {count}, that's
how many lines you'll see; if there is only one window
then the 'window' option is used, otherwise the
current window size is used.
then twice the value of the 'scroll' option is used,
otherwise the current window height minus 3 is used.
:z can be used either alone or followed by any of
several punctuation marks. These have the following
effect:
mark first line last line new location ~
mark first line last line new cursor line ~
---- ---------- --------- ------------
+ current line 1 scr forward 1 scr forward
- 1 scr back current line current line

View File

@@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.3. Last change: 2010 Oct 20
*version7.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1673,7 +1673,7 @@ The GTK font dialog uses a font size zero when the font name doesn't include a
size. Use a default size of 10.
This example in the documentation didn't work:
:e `=foo . ".c" `
:e `=foo . ".c"`
Skip over the expression in `=expr` when looking for comments, |, % and #.
When ":helpgrep" doesn't find anything there is no error message.

View File

@@ -214,7 +214,7 @@ EOF
}
# main
usage() if $#ARGV < 2;
usage() if $#ARGV < 1;
print "Processing tags...\n";
readTagFile( $ARGV[ 0 ] );

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2010 Sep 29
" Last Change: 2011 Mar 22
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -325,7 +325,7 @@ au BufNewFile,BufRead */.calendar/*,
au BufNewFile,BufRead *.cs setf cs
" Cabal
au BufNewFile,BufRead *.cabal setf cabal
au BufNewFile,BufRead *.cabal setf cabal
" Cdrdao TOC
au BufNewFile,BufRead *.toc setf cdrtoc
@@ -536,7 +536,7 @@ au BufNewFile,BufRead *.qc setf c
au BufNewFile,BufRead *.cfg setf cfg
" Cucumber
au BufNewFile,BufRead *.feature setf cucumber
au BufNewFile,BufRead *.feature setf cucumber
" Communicating Sequential Processes
au BufNewFile,BufRead *.csp,*.fdr setf csp
@@ -678,7 +678,7 @@ au BufNewFile,BufRead *.exp setf expect
au BufNewFile,BufRead exports setf exports
" Falcon
au BufNewFile,BufRead *.fal setf falcon
au BufNewFile,BufRead *.fal setf falcon
" Fantom
au BufNewFile,BufRead *.fan,*.fwt setf fan
@@ -779,7 +779,7 @@ au BufNewFile,BufRead *.haml setf haml
au BufNewFile,BufRead *.hsc,*.hsm setf hamster
" Haskell
au BufNewFile,BufRead *.hs,*.hs-boot setf haskell
au BufNewFile,BufRead *.hs,*.hs-boot setf haskell
au BufNewFile,BufRead *.lhs setf lhaskell
au BufNewFile,BufRead *.chs setf chaskell
@@ -872,7 +872,9 @@ func! s:ProtoCheck(default)
" Cproto files have a comment in the first line and a function prototype in
" the second line, it always ends in ";". Indent files may also have
" comments, thus we can't match comments to see the difference.
if getline(2) =~ ';$'
" IDL files can have a single ';' in the second line, require at least one
" chacter before the ';'.
if getline(2) =~ '.;$'
setf cpp
else
exe 'setf ' . a:default
@@ -1100,8 +1102,8 @@ au BufNewFile,BufRead *.mel setf mel
" Mercurial config (looks like generic config file)
au BufNewFile,BufRead *.hgrc,*hgrc setf cfg
" Messages
au BufNewFile,BufRead /var/log/messages,/var/log/messages.*[0-9] setf messages
" Messages (logs mostly)
autocmd BufNewFile,BufRead */log/{auth,cron,daemon,debug,kern,lpr,mail,messages,news/news,syslog,user}{,.log,.err,.info,.warn,.crit,.notice}{,.*[0-9]*} setf messages
" Metafont
au BufNewFile,BufRead *.mf setf mf
@@ -1405,7 +1407,7 @@ au BufNewFile,BufRead *.it,*.ih setf ppwiz
" Obj 3D file format
" TODO: is there a way to avoid MS-Windows Object files?
au BufNewFile,BufRead *.obj setf obj
au BufNewFile,BufRead *.obj setf obj
" Oracle Pro*C/C++
au BufNewFile,BufRead *.pc setf proc
@@ -1614,7 +1616,16 @@ au BufNewFile,BufRead *.rtf setf rtf
au BufNewFile,BufRead .irbrc,irbrc setf ruby
" Ruby
au BufNewFile,BufRead *.rb,*.rbw,*.gem,*.gemspec setf ruby
au BufNewFile,BufRead *.rb,*.rbw setf ruby
" RubyGems
au BufNewFile,BufRead *.gemspec setf ruby
" Rackup
au BufNewFile,BufRead *.ru setf ruby
" Bundler
au BufNewFile,BufRead Gemfile setf ruby
" Ruby on Rails
au BufNewFile,BufRead *.builder,*.rxml,*.rjs setf ruby
@@ -1641,7 +1652,7 @@ au BufNewFile,BufRead *.sa setf sather
au BufNewFile,BufRead *.sci,*.sce setf scilab
" SCSS
au BufNewFile,BufRead *.scss setf scss
au BufNewFile,BufRead *.scss setf scss
" SD: Streaming Descriptors
au BufNewFile,BufRead *.sd setf sd
@@ -1802,7 +1813,7 @@ endfunc
" Z-Shell script
au BufNewFile,BufRead .zprofile,/etc/zprofile,.zfbfmarks setf zsh
au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh')
au BufNewFile,BufRead *.zsh setf zsh
au BufNewFile,BufRead *.zsh setf zsh
" Scheme
au BufNewFile,BufRead *.scm,*.ss setf scheme
@@ -2092,6 +2103,9 @@ au BufNewFile,BufRead *.tf,.tfrc,tfrc setf tf
" TPP - Text Presentation Program
au BufNewFile,BufReadPost *.tpp setf tpp
" Treetop
au BufRead,BufNewFile *.treetop setf treetop
" Trustees
au BufNewFile,BufRead trustees.conf setf trustees
@@ -2122,6 +2136,10 @@ au BufNewFile,BufRead *.uc setf uc
" Updatedb
au BufNewFile,BufRead /etc/updatedb.conf setf updatedb
" Upstart (init(8)) config files
au BufNewFile,BufRead */etc/init/*.conf,~/.init/*.conf setf upstart
au BufNewFile,BufRead */etc/init/*.override,~/.init/*.override setf upstart
" Vera
au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: man
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2008 Sep 17
" Last Change: 2010 Nov 29
" To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file.
@@ -15,6 +15,10 @@ if &filetype == "man"
endif
let b:did_ftplugin = 1
" Ensure Vim is not recursively invoked (man-db does this)
" when doing ctrl-[ on a man page reference.
let $MANPAGER = ""
" allow dot and dash in manual page name.
setlocal iskeyword+=\.,-

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Vim's quickfix window
" Maintainer: Lech Lorens <Lech.Lorens@gmail.com>
" Last Changed: 22 Jul 2010
" Last Changed: 18 Dec 2010
if exists("b:did_ftplugin")
finish
@@ -10,7 +10,7 @@ endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl stl<"
let b:undo_ftplugin = "set stl<"
" Display the command that produced the list in the quickfix window:
setlocal stl=%q%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}
setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}

View File

@@ -0,0 +1,19 @@
" Vim filetype plugin file
" Language: Treetop
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2011-03-14
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
setlocal comments=b:# commentstring=#\ %s formatoptions-=tcroq formatoptions+=l
let b:undo_ftplugin = "setl com< cms< fo<"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Zsh shell script
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09
" Latest Revision: 2011-01-23
if exists("b:did_ftplugin")
finish
@@ -15,5 +15,12 @@ let b:undo_ftplugin = "setl com< cms< fo<"
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
let b:match_words =
\ &matchpairs
\ . ',\<if\>:\<elif\>:\<else\>:\<fi\>'
\ . ',\<case\>:^\s*([^)]*):\<esac\>'
\ . ',\<\%(select\|while\|until\|repeat\|for\%(each\)\=\)\>:\<done\>'
let b:match_skip = 's:comment\|string\|heredoc\|subst'
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: CSS
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-12-20
" Latest Revision: 2010-12-22
if exists("b:did_indent")
finish
@@ -64,8 +64,6 @@ function GetCSSIndent()
let line = getline(v:lnum)
if line =~ '^\s*\*'
return cindent(v:lnum)
elseif line =~ '^\s*}'
return indent(v:lnum) - &sw
endif
let pnum = s:prevnonblanknoncomment(v:lnum - 1)
@@ -73,12 +71,6 @@ function GetCSSIndent()
return 0
endif
let ind = indent(pnum) + s:count_braces(pnum, 1) * &sw
let pline = getline(pnum)
if pline =~ '}\s*$'
let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * &sw
endif
return ind
return indent(pnum) + s:count_braces(pnum, 1) * &sw
\ - s:count_braces(v:lnum, 0) * &sw
endfunction

View File

@@ -0,0 +1,38 @@
" Vim indent file
" Language: Treetop
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2011-03-14
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetTreetopIndent()
setlocal indentkeys=0{,0},!^F,o,O,=end
setlocal nosmartindent
if exists("*GetTreetopIndent")
finish
endif
function GetTreetopIndent()
let pnum = prevnonblank(v:lnum - 1)
if pnum == 0
return 0
endif
let ind = indent(pnum)
let line = getline(pnum)
if line =~ '^\s*\%(grammar\|module\|rule\)\>'
let ind += &sw
endif
let line = getline(v:lnum)
if line =~ '^\s*end\>'
let ind -= &sw
end
retur ind
endfunction

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Vim script
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2005 Jul 06
" Last Change: 2011 Mar 22
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -44,10 +44,18 @@ function GetVimIndent()
else
let ind = ind + &sw * 3
endif
elseif getline(lnum) =~ '\(^\||\)\s*\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|el\%[seif]\)\>'
let ind = ind + &sw
elseif getline(lnum) =~ '^\s*aug\%[roup]' && getline(lnum) !~ '^\s*aug\%[roup]\s*!\=\s\+END'
let ind = ind + &sw
else
let line = getline(lnum)
let i = match(line, '\(^\||\)\s*\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|el\%[seif]\)\>')
if i >= 0
let ind += &sw
if strpart(line, i, 1) == '|' && has('syntax_items')
\ && synIDattr(synID(lnum, i, 1), "name") =~ '\(Comment\|String\)$'
let ind -= &sw
endif
endif
endif
" If the previous line contains an "end" after a pipe, but not in an ":au"

View File

@@ -1,6 +1,6 @@
" Menu Translations: Korean
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2010 Feb 18
" Last Change: 2011 Mar 22
" Quit when menu translations have already been done.
if exists("did_menu_trans")
@@ -42,7 +42,7 @@ menutrans E&xit<Tab>:qa
" Edit menu
menutrans &Edit <09><><EFBFBD><EFBFBD>(&E)
menutrans &Undo<Tab>u <09><><EFBFBD><EFBFBD>(&U)<Tab>u
menutrans &Redo<Tab>^R <09>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD>(&R)<Tab>^R
menutrans &Redo<Tab>^R <09>ٽ<EFBFBD>\ <20><><EFBFBD><EFBFBD>(&R)<Tab>^R
menutrans Rep&eat<Tab>\. <09><>Ǯ<EFBFBD><EFBFBD>(&e)<Tab>\.
menutrans Cu&t<Tab>"+x <09>ڸ<EFBFBD><DAB8><EFBFBD>(&t)<Tab>"+x
menutrans &Copy<Tab>"+y <09><><EFBFBD><EFBFBD>(&C)<Tab>"+y
@@ -63,7 +63,7 @@ menutrans Toggle\ &Ignore-case<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Showmatch\ <20><><EFBFBD><EFBFBD>(&S)<Tab>:set\ sm!
menutrans &Context\ lines <09><><EFBFBD>ؽ<EFBFBD>Ʈ\ <20><>(&C)
menutrans &Virtual\ Edit <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&V)
menutrans Never <09><><EFBFBD><EFBFBD> <20><> <20><>
menutrans Never <09><><EFBFBD><EFBFBD>\ <20><>\ <20><>
menutrans Block\ Selection <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Insert\ mode <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>
menutrans Block\ and\ Insert <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>
@@ -92,7 +92,7 @@ menutrans Toggle\ &auto-indent<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin! C-<EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&C)<Tab>:set\ cin!
" other options
menutrans &Shiftwidth <09><><EFBFBD><EFBFBD>Ʈ <20>ʺ<EFBFBD>(&S)
menutrans &Shiftwidth <09><><EFBFBD><EFBFBD>Ʈ\ <20>ʺ<EFBFBD>(&S)
menutrans Soft\ &Tabstop <09><><EFBFBD><EFBFBD>Ʈ\ <20>ǽ<EFBFBD><EFBFBD><EFBFBD>(&T)
menutrans Te&xt\ Width\.\.\. <09>ؽ<EFBFBD>Ʈ\ <20>ʺ<EFBFBD>(&x)\.\.\.
menutrans &File\ Format\.\.\. <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&F)\.\.\.
@@ -125,12 +125,12 @@ menutrans &Find\ More\ Languages
" Tools.Fold Menu
menutrans &Folding <09><><EFBFBD><EFBFBD>(&F)
" open close folds
menutrans &Enable/Disable\ folds<Tab>zi <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&E)<Tab>zi
menutrans &Enable/Disable\ folds<Tab>zi <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&E)<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv Ŀ<EFBFBD><EFBFBD>\ <20><>\ <20><><EFBFBD><EFBFBD>(&V)<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Ŀ<EFBFBD><EFBFBD>\ <20>ٸ<EFBFBD>\ <20><><EFBFBD><EFBFBD>(&w)<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm <09><>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20>ݱ<EFBFBD>(&l)<Tab>zm
menutrans &Close\ all\ folds<Tab>zM <09><><EFBFBD><EFBFBD>\ <20>κ<EFBFBD>\ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><EFBFBD><EFBFBD><EFBFBD>(&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr <09><> <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&p)<Tab>zr
menutrans &Close\ all\ folds<Tab>zM <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20>ݱ<EFBFBD>(&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr <09><>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&p)<Tab>zr
menutrans &Open\ all\ folds<Tab>zR <09><><EFBFBD><EFBFBD>\ <20>κ<EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&O)<Tab>zR
" fold method
menutrans Fold\ Met&hod <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&h)
@@ -141,11 +141,11 @@ menutrans S&yntax
"menutrans &Diff &Diff
menutrans Ma&rker <09><><EFBFBD><EFBFBD>ǥ(&r)
" create and delete folds
menutrans Create\ &Fold<Tab>zf <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&A)<Tab>zD
menutrans Create\ &Fold<Tab>zf <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD <09><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>(&A)<Tab>zD
" moving around in folds
menutrans Fold\ column\ &width <09><><EFBFBD><EFBFBD>\ ĭ\ <20>ʺ<EFBFBD>(&w)
menutrans Fold\ column\ &width <09><><EFBFBD><EFBFBD>\ <EFBFBD>÷<EFBFBD>\ <20>ʺ<EFBFBD>(&w)
"menutrans &Diff &Diff
menutrans &Update <09><><EFBFBD><EFBFBD>(&U)

View File

@@ -1,6 +1,6 @@
" Menu Translations: Korean
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2010 Feb 18
" Last Change: 2011 Mar 22
" Quit when menu translations have already been done.
if exists("did_menu_trans")
@@ -42,7 +42,7 @@ menutrans E&xit<Tab>:qa 끝내기(&x)<Tab>:qa
" Edit menu
menutrans &Edit 편집(&E)
menutrans &Undo<Tab>u 취소(&U)<Tab>u
menutrans &Redo<Tab>^R 다시 실행(&R)<Tab>^R
menutrans &Redo<Tab>^R 다시\ 실행(&R)<Tab>^R
menutrans Rep&eat<Tab>\. 되풀이(&e)<Tab>\.
menutrans Cu&t<Tab>"+x 자르기(&t)<Tab>"+x
menutrans &Copy<Tab>"+y 복사(&C)<Tab>"+y
@@ -63,7 +63,7 @@ menutrans Toggle\ &Ignore-case<Tab>:set\ ic! 대소문자\ 구분\ 토글(&I)<Ta
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Showmatch\ 토글(&S)<Tab>:set\ sm!
menutrans &Context\ lines 콘텍스트\ (&C)
menutrans &Virtual\ Edit 가상\ 편집(&V)
menutrans Never 사용
menutrans Never 사용\ \
menutrans Block\ Selection 블럭\ 고르기
menutrans Insert\ mode 삽입\ 모드
menutrans Block\ and\ Insert 블럭과\ 삽입
@@ -92,7 +92,7 @@ menutrans Toggle\ &auto-indent<Tab>:set\ ai! 자동인덴트\ 토글(&a)<Tab>:se
menutrans Toggle\ &C-indenting<Tab>:set\ cin! C-인덴팅\ 토글(&C)<Tab>:set\ cin!
" other options
menutrans &Shiftwidth 쉬프트 너비(&S)
menutrans &Shiftwidth 쉬프트\ 너비(&S)
menutrans Soft\ &Tabstop 소프트\ 탭스톱(&T)
menutrans Te&xt\ Width\.\.\. 텍스트\ 너비(&x)\.\.\.
menutrans &File\ Format\.\.\. 파일\ 형식(&F)\.\.\.
@@ -125,12 +125,12 @@ menutrans &Find\ More\ Languages 다른\ 언어\ 찾기(&F)
" Tools.Fold Menu
menutrans &Folding 접기(&F)
" open close folds
menutrans &Enable/Disable\ folds<Tab>zi \ 기능\ 사용\ 토글(&E)<Tab>zi
menutrans &Enable/Disable\ folds<Tab>zi \ 사용\ 토글(&E)<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv 커서\ \ 보기(&V)<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx 커서\ 줄만\ 보기(&w)<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm \ 많은\ 접기\ 닫기(&l)<Tab>zm
menutrans &Close\ all\ folds<Tab>zM 접힌\ 부분\ 모두\ (&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr 많은\ 접기\ 열기(&p)<Tab>zr
menutrans &Close\ all\ folds<Tab>zM 모든\ 접기\ (&C)<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr \ 많은\ 접기\ 열기(&p)<Tab>zr
menutrans &Open\ all\ folds<Tab>zR 접힌\ 부분\ 모두\ 펴기(&O)<Tab>zR
" fold method
menutrans Fold\ Met&hod 접는\ 방법(&h)
@@ -141,11 +141,11 @@ menutrans S&yntax 신택스(&y)
"menutrans &Diff &Diff
menutrans Ma&rker 꼬리표(&r)
" create and delete folds
menutrans Create\ &Fold<Tab>zf 새로 접기(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd 완전히 펴기(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD \ 펴기(&A)<Tab>zD
menutrans Create\ &Fold<Tab>zf 접기\ 생성(&F)<Tab>zf
menutrans &Delete\ Fold<Tab>zd 접기\ 삭제(&D)<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD \ 접기\ 삭제(&A)<Tab>zD
" moving around in folds
menutrans Fold\ column\ &width \ \ 너비(&w)
menutrans Fold\ column\ &width \ 컬럼\ 너비(&w)
"menutrans &Diff &Diff
menutrans &Update 갱신(&U)

View File

@@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2009 Feb 26
" Last Change: 2011 Mar 22
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
@@ -101,7 +101,7 @@ an 10.320 &File.Sp&lit-Open\.\.\.<Tab>:sp :browse sp<CR>
an 10.320 &File.Open\ Tab\.\.\.<Tab>:tabnew :browse tabnew<CR>
an 10.325 &File.&New<Tab>:enew :confirm enew<CR>
an <silent> 10.330 &File.&Close<Tab>:close
\ :if winheight(2) < 0 <Bar>
\ :if winheight(2) < 0 && tabpagewinnr(2) == 0 <Bar>
\ confirm enew <Bar>
\ else <Bar>
\ confirm close <Bar>

View File

@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2010 Jul 24
" Last Change: 2010 Dec 02
" If there already is an option window, jump to that one.
if bufwinnr("option-window") > 0
@@ -1042,6 +1042,8 @@ if has("wildignore")
call append("$", "wildignore\tlist of patterns to ignore files for file name completion")
call <SID>OptionG("wig", &wig)
endif
call append("$", "wildignorecase\tignore case when completing file names")
call <SID>BinOptionG("wic", &wic)
if has("wildmenu")
call append("$", "wildmenu\tcommand-line completion shows a list of matches")
call <SID>BinOptionG("wmnu", &wmnu)

View File

@@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2008 Sep 03
" Last Change: 2010 Nov 16
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@@ -82,8 +82,9 @@ function! s:Highlight_Matching_Pair()
endif
" When not in a string or comment ignore matches inside them.
" We match "escape" for special items, such as listpEscapeSpecial.
let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
\ '=~? "string\\|character\\|singlequote\\|comment"'
\ '=~? "string\\|character\\|singlequote\\|escape\\|comment"'
execute 'if' s_skip '| let s_skip = 0 | endif'
" Limit the search to lines visible in the window.

View File

@@ -1,23 +1,67 @@
" Vim plugin for converting a syntax highlighted file to HTML.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2010 Aug 12
" Last Change: 2011 Jan 06
"
" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and
" $VIMRUNTIME/syntax/2html.vim
"
" TODO:
" * Explicitly trigger IE8+ Standards Mode?
" * Make it so deleted lines in a diff don't create side-scrolling
" * Restore open/closed folds and cursor position after processing each file
" with option not to restore for speed increase
" * Add extra meta info (generation time, etc.)
" * Tidy up so we can use strict doctype more?
" * Undercurl support via dotted bottom border?
" * Add extra meta info (generation time, etc.)?
" * Tidy up so we can use strict doctype in even more situations
" * Implementation detail: add threshold for writing the lines to the html
" buffer before we're done (5000 or so lines should do it)
" * TODO comments for code cleanup scattered throughout
"
"
" Changelog:
" 7.3_v8 (this version): Add html_expand_tabs option to allow leaving tab
" characters in generated output (Andy Spencer). Escape
" text that looks like a modeline so Vim doesn't use
" anything in the converted HTML as a modeline.
" Bugfixes: Fix folding when a fold starts before the
" conversion range. Remove fold column when there are
" no folds.
" 7.3_v7 (840c3cadb842): see betas released on vim_dev below:
" 7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way.
" 7.3_v7b2: Remove automatic detection of encodings that are not
" supported by all major browsers according to
" http://wiki.whatwg.org/wiki/Web_Encodings and convert
" to UTF-8 for all Unicode encodings. Make HTML
" encoding to Vim encoding detection be
" case-insensitive for built-in pairs.
" 7.3_v7b1: Remove use of setwinvar() function which cannot be
" called in restricted mode (Andy Spencer). Use
" 'fencoding' instead of 'encoding' to determine by
" charset, and make sure the 'fenc' of the generated
" file matches its indicated charset. Add charsets for
" all of Vim's natively supported encodings.
" 7.3_v6 (0d3f0e3d289b): Really fix bug with 'nowrapscan', 'magic' and other
" user settings interfering with diff mode generation,
" trailing whitespace (e.g. line number column) when
" using html_no_pre, and bugs when using
" html_hover_unfold.
" 7.3_v5 ( unreleased ): Fix bug with 'nowrapscan' and also with out-of-sync
" folds in diff mode when first line was folded.
" 7.3_v4 (7e008c174cc3): Bugfixes, especially for xhtml markup, and diff mode.
" 7.3_v3 (a29075150aee): Refactor option handling and make html_use_css
" default to true when not set to anything. Use strict
" doctypes where possible. Rename use_xhtml option to
" html_use_xhtml for consistency. Use .xhtml extension
" when using this option. Add meta tag for settings.
" 7.3_v2 (80229a724a11): Fix syntax highlighting in diff mode to use both the
" diff colors and the normal syntax colors
" 7.3_v1 (e7751177126b): Add conceal support and meta tags in output
" Pre-v1 baseline: Mercurial changeset 3c9324c0800e
if exists('g:loaded_2html_plugin')
finish
endif
let g:loaded_2html_plugin = 'vim7.3_v6'
let g:loaded_2html_plugin = 'vim7.3_v8'
" Define the :TOhtml command when:
" - 'compatible' is not set

View File

@@ -1,6 +1,6 @@
" Vim syntax support file
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2010 Aug 12
" Last Change: 2011 Jan 06
"
" Additional contributors:
"
@@ -124,7 +124,18 @@ function! s:HtmlFormat(text, style_name, diff_style_name)
let l:style_name = a:style_name . (a:diff_style_name == '' ? '' : ' ') . a:diff_style_name
" Replace the reserved html characters
let formatted = substitute(substitute(substitute(substitute(substitute(formatted, '&', '\&amp;', 'g'), '<', '\&lt;', 'g'), '>', '\&gt;', 'g'), '"', '\&quot;', 'g'), "\x0c", '<hr class="PAGE-BREAK">', 'g')
let formatted = substitute(formatted, '&', '\&amp;', 'g')
let formatted = substitute(formatted, '<', '\&lt;', 'g')
let formatted = substitute(formatted, '>', '\&gt;', 'g')
let formatted = substitute(formatted, '"', '\&quot;', 'g')
" TODO: Use &apos; for "'"?
" Replace a "form feed" character with HTML to do a page break
let formatted = substitute(formatted, "\x0c", '<hr class="PAGE-BREAK">', 'g')
" Mangle modelines so Vim doesn't try to use HTML text as a modeline if
" editing this file in the future
let formatted = substitute(formatted, '\v(\s+%(vim?|ex)):', '\1\&#0058;', 'g')
" Replace double spaces, leading spaces, and trailing spaces if needed
if ' ' != s:HtmlSpace
@@ -265,6 +276,19 @@ set paste
let s:old_magic = &magic
set magic
" set the fileencoding to match the charset we'll be using
let &l:fileencoding=s:settings.vim_encoding
" According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte
" order mark is highly recommend on the web when using multibyte encodings. But,
" it is not a good idea to include it on UTF-8 files. Otherwise, let Vim
" determine when it is actually inserted.
if s:settings.vim_encoding == 'utf-8'
setlocal nobomb
else
setlocal bomb
endif
let s:lines = []
if s:settings.use_xhtml
@@ -545,9 +569,6 @@ if s:settings.dynamic_folds
" level, so subtract 2 from index of first non-dash after the dashes
" in order to get the fold level of the current fold
let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
if s:level+1 > s:foldcolumn
let s:foldcolumn = s:level+1
endif
" store fold info for later use
let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
call add(s:allfolds, s:newfold)
@@ -577,9 +598,6 @@ if s:settings.dynamic_folds
" level, so subtract 2 from index of first non-dash after the dashes
" in order to get the fold level of the current fold
let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
if s:level+1 > s:foldcolumn
let s:foldcolumn = s:level+1
endif
let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
" only add the fold if we don't already have it
if empty(s:allfolds) || index(s:allfolds, s:newfold) == -1
@@ -609,6 +627,48 @@ if s:settings.dynamic_folds
" close all folds again so we can get the fold text as we go
silent! %foldclose!
for afold in s:allfolds
let removed = 0
if exists("g:html_start_line") && exists("g:html_end_line")
if afold.firstline < g:html_start_line
if afold.lastline < g:html_end_line && afold.lastline > g:html_start_line
" if a fold starts before the range to convert but stops within the
" range, we need to include it. Make it start on the first converted
" line.
let afold.firstline = g:html_start_line
else
" if the fold lies outside the range or the start and stop enclose
" the entire range, don't bother parsing it
call remove(s:allfolds, index(s:allfolds, afold))
let removed = 1
endif
elseif afold.firstline > g:html_end_line
" If the entire fold lies outside the range we need to remove it.
call remove(s:allfolds, index(s:allfolds, afold))
let removed = 1
endif
elseif exists("g:html_start_line")
if afold.firstline < g:html_start_line
" if there is no last line, but there is a first line, the end of the
" fold will always lie within the region of interest, so keep it
let afold.firstline = g:html_start_line
endif
elseif exists("g:html_end_line")
" if there is no first line we default to the first line in the buffer so
" the fold start will always be included if the fold itself is included.
" If however the entire fold lies outside the range we need to remove it.
if afold.firstline > g:html_end_line
call remove(s:allfolds, index(s:allfolds, afold))
let removed = 1
endif
endif
if !removed
if afold.level+1 > s:foldcolumn
let s:foldcolumn = afold.level+1
endif
endif
endfor
endif
" Now loop over all lines in the original text to convert to html.
@@ -656,6 +716,13 @@ endif
let s:foldId = 0
if !s:settings.expand_tabs
" If keeping tabs, add them to printable characters so we keep them when
" formatting text (strtrans() doesn't replace printable chars)
let s:old_isprint = &isprint
setlocal isprint+=9
endif
while s:lnum <= s:end
" If there are filler lines for diff mode, show these above the line.
@@ -734,7 +801,7 @@ while s:lnum <= s:end
call remove(s:foldstack, 0)
endwhile
" Now insert an opening any new folds that start on this line
" Now insert an opening for any new folds that start on this line
let s:firstfold = 1
while !empty(s:allfolds) && get(s:allfolds,0).firstline == s:lnum
let s:foldId = s:foldId + 1
@@ -871,30 +938,32 @@ while s:lnum <= s:end
endif
if s:settings.ignore_conceal || !s:concealinfo[0]
" Expand tabs
" Expand tabs if needed
let s:expandedtab = strpart(s:line, s:startcol - 1, s:col - s:startcol)
let s:offset = 0
let s:idx = stridx(s:expandedtab, "\t")
while s:idx >= 0
if has("multi_byte_encoding")
if s:startcol + s:idx == 1
let s:i = &ts
else
if s:idx == 0
let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c')
else
let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c')
endif
let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
let s:i = &ts - (s:vcol % &ts)
endif
let s:offset -= s:i - 1
else
let s:i = &ts - ((s:idx + s:startcol - 1) % &ts)
endif
let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '')
if s:settings.expand_tabs
let s:offset = 0
let s:idx = stridx(s:expandedtab, "\t")
endwhile
while s:idx >= 0
if has("multi_byte_encoding")
if s:startcol + s:idx == 1
let s:i = &ts
else
if s:idx == 0
let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c')
else
let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c')
endif
let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
let s:i = &ts - (s:vcol % &ts)
endif
let s:offset -= s:i - 1
else
let s:i = &ts - ((s:idx + s:startcol - 1) % &ts)
endif
let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '')
let s:idx = stridx(s:expandedtab, "\t")
endwhile
end
" get the highlight group name to use
let s:id = synIDtrans(s:id)
@@ -1060,7 +1129,7 @@ endif
" Cleanup
%s:\s\+$::e
" Restore old settings
" Restore old settings (new window first)
let &l:foldenable = s:old_fen
let &l:foldmethod = s:old_fdm
let &report = s:old_report
@@ -1070,21 +1139,31 @@ let &paste = s:old_paste
let &magic = s:old_magic
let @/ = s:old_search
let &more = s:old_more
" switch to original window to restore those settings
exe s:orgwin . "wincmd w"
if !s:settings.expand_tabs
let &l:isprint = s:old_isprint
endif
let &l:stl = s:origwin_stl
let &l:et = s:old_et
let &l:scrollbind = s:old_bind
" and back to the new window again to end there
exe s:newwin . "wincmd w"
let &l:stl = s:newwin_stl
exec 'resize' s:old_winheight
let &l:winfixheight = s:old_winfixheight
call setwinvar(s:orgwin,'&stl', s:origwin_stl)
call setwinvar(s:newwin,'&stl', s:newwin_stl)
let &ls=s:ls
" Save a little bit of memory (worth doing?)
unlet s:htmlfont
unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search
unlet s:old_magic s:old_more s:old_fdm s:old_fen s:old_winheight
unlet! s:old_isprint
unlet s:whatterm s:idlist s:lnum s:end s:margin s:fgc s:bgc s:old_winfixheight
unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:concealinfo
unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset s:ls s:origwin_stl

View File

@@ -3,8 +3,8 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2010 May 06
" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/syntax/debchangelog.vim
" Last Change: 2010 Oct 21
" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debchangelog.vim
" Standard syntax initialization
if version < 600
@@ -19,7 +19,7 @@ syn case ignore
" Define some common expressions we can use later on
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
syn match debchangelogUrgency contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(etch|lenny)-%(backports|volatile)|%(dapper|hardy|jaunty|karmic|lucid|maverick)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(lenny|squeeze)-%(backports%(-sloppy)=|volatile)|%(dapper|hardy|jaunty|karmic|lucid|maverick|natty)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogVersion contained "(.\{-})"
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"

View File

@@ -3,8 +3,8 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2009 Aug 17
" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/syntax/debcontrol.vim
" Last Change: 2010 Oct 21
" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim
" Standard syntax initialization
if version < 600
@@ -27,7 +27,7 @@ syn match debControlSpace " "
syn match debcontrolArchitecture contained "\%(all\|any\|alpha\|amd64\|arm\%(e[bl]\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\|hurd-i386\|kfreebsd-\%(i386\|amd64\|gnu\)\|knetbsd-i386\|kopensolaris-i386\|netbsd-\%(alpha\|i386\)\)"
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
syn match debcontrolPackageType contained "u\?deb"
syn match debcontrolVariable contained "\${.\{-}}"
syn match debcontrolDmUpload contained "\cyes"

View File

@@ -2,8 +2,8 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2010 May 06
" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/syntax/debsources.vim
" Last Change: 2010 Oct 21
" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debsources.vim
" Standard syntax initialization
if version < 600
@@ -23,7 +23,7 @@ syn match debsourcesComment /#.*/ contains=@Spell
" Match uri's
syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(etch\|lenny\|squeeze\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|dapper\|hardy\|jaunty\|karmic\|lucid\|maverick\)\([-[:alnum:]_./]*\)+
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(lenny\|squeeze\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|dapper\|hardy\|jaunty\|karmic\|lucid\|maverick\|natty\)\([-[:alnum:]_./]*\)+
" Associate our matches and regions with pretty colours
hi def link debsourcesLine Error

View File

@@ -1,10 +1,13 @@
" Vim syntax file
" Language: Groovy
" Maintainer: Alessio Pace <billy.corgan@tiscali.it>
" Version: 0.1.9b
" Original Author: Alessio Pace <billy.corgan@tiscali.it>
" Maintainer: Tobias Rapp <yahuxo@gmx.de>
" Version: 0.1.10
" URL: http://www.vim.org/scripts/script.php?script_id=945
" Last Change: 6/4/2004
" Last Change: 2010 Nov 29
" THE ORIGINAL AUTHOR'S NOTES:
"
" This is my very first vim script, I hope to have
" done it the right way.
"
@@ -16,8 +19,7 @@
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
"
" HOWTO USE IT (INSTALL):
" [groovy is still not recognized by vim! :-( ]
" HOWTO USE IT (INSTALL) when not part of the distribution:
"
" 1) copy the file in the (global or user's $HOME/.vim/syntax/) syntax folder
"
@@ -247,7 +249,9 @@ syn match groovySpecialError contained "\\."
syn match groovySpecialCharError contained "[^']"
syn match groovySpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
syn region groovyString start=+"+ end=+"+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
syn region groovyString start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
syn region groovyString start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell
syn region groovyString start=+"""+ end=+"""+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
syn region groovyString start=+'''+ end=+'''+ contains=groovySpecialChar,groovySpecialError,@Spell
" syn region groovyELExpr start=+${+ end=+}+ keepend contained
syn match groovyELExpr /\${.\{-}}/ contained
GroovyHiLink groovyELExpr Identifier

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
" Last Change: 2009 May 18
" Last Change: 2010 Nov 03
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -30,6 +30,7 @@ syn match helpVim "VIM REFERENCE.*"
syn match helpOption "'[a-z]\{2,\}'"
syn match helpOption "'t_..'"
syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
syn match helpIgnore "." contained conceal
syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
syn match helpSpecial "\<N\>"

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Lex
" Maintainer: Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Sep 11, 2009
" Version: 10
" Last Change: Nov 01, 2010
" Version: 12
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Option:
@@ -36,6 +36,9 @@ endif
" --- Lex stuff ---
" --- ========= ---
" Options Section
syn match lexOptions '^%\s*option\>.*$' contains=lexPatString
"I'd prefer to use lex.* , but vim doesn't handle forward definitions yet
syn cluster lexListGroup contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatString,lexPatTag,lexPatTag,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,lexPatCode,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
syn cluster lexListPatCodeGroup contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatTag,lexPatTag,lexPatTagZoneStart,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
@@ -61,13 +64,15 @@ endif
"%% : Patterns {Actions}
if has("folding")
syn region lexPatBlock fold matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat
syn region lexPatBlock fold matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat,lexPatInclude
syn region lexPat fold start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
syn region lexPatInclude fold matchgroup=lexSep start="^%{" end="%}" contained contains=lexPatCode
syn region lexBrace fold start="\[" skip=+\\\\\|\\+ end="]" contained
syn region lexPatString fold matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained
else
syn region lexPatBlock matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat
syn region lexPatBlock matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat,lexPatInclude
syn region lexPat start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
syn region lexPatInclude matchgroup=lexSep start="^%{" end="%}" contained contains=lexPatCode
syn region lexBrace start="\[" skip=+\\\\\|\\+ end="]" contained
syn region lexPatString matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained
endif
@@ -117,6 +122,7 @@ hi def link lexAbbrvRegExp Macro
hi def link lexAbbrv SpecialChar
hi def link lexCFunctions Function
hi def link lexMorePat SpecialChar
hi def link lexOptions PreProc
hi def link lexPatComment Comment
hi def link lexPat Function
hi def link lexPatString Function

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Lisp
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Mar 05, 2009
" Version: 21
" Last Change: Nov 16, 2010
" Version: 22
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
@@ -32,7 +32,7 @@ endif
" ---------------------------------------------------------------------
" Clusters: {{{1
syn cluster lispAtomCluster contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispEscapeSpecial,lispSymbol,lispVar,lispLeadWhite
if exists("g:lisp_instring")
syn cluster lispListCluster contains=@lispBaseListCluster,lispString,lispInString,lispInStringString
else
@@ -68,7 +68,7 @@ syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList
syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark
syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark
syn region lispAtom start=+'"+ skip=+\\"+ end=+"+
syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString,lispSpecial
syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString,lispEscapeSpecial
syn match lispAtomNmbr contained "\<\d\+"
syn match lispLeadWhite contained "^\s\+"
@@ -537,16 +537,16 @@ endif
syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\([dDeEfFlL][-+]\=\d\+\)\="
syn match lispNumber "-\=\(\d\+/\d\+\)"
syn match lispSpecial "\*\w[a-z_0-9-]*\*"
syn match lispSpecial !#|[^()'`,"; \t]\+|#!
syn match lispSpecial !#x\x\+!
syn match lispSpecial !#o\o\+!
syn match lispSpecial !#b[01]\+!
syn match lispSpecial !#\\[ -}\~]!
syn match lispSpecial !#[':][^()'`,"; \t]\+!
syn match lispSpecial !#([^()'`,"; \t]\+)!
syn match lispSpecial !#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)!
syn match lispSpecial "\<+[a-zA-Z_][a-zA-Z_0-9-]*+\>"
syn match lispEscapeSpecial "\*\w[a-z_0-9-]*\*"
syn match lispEscapeSpecial !#|[^()'`,"; \t]\+|#!
syn match lispEscapeSpecial !#x\x\+!
syn match lispEscapeSpecial !#o\o\+!
syn match lispEscapeSpecial !#b[01]\+!
syn match lispEscapeSpecial !#\\[ -}\~]!
syn match lispEscapeSpecial !#[':][^()'`,"; \t]\+!
syn match lispEscapeSpecial !#([^()'`,"; \t]\+)!
syn match lispEscapeSpecial !#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)!
syn match lispEscapeSpecial "\<+[a-zA-Z_][a-zA-Z_0-9-]*+\>"
syn match lispConcat "\s\.\s"
syn match lispParenError ")"
@@ -585,7 +585,7 @@ if version >= 508
HiLink lispMark Delimiter
HiLink lispNumber Number
HiLink lispParenError Error
HiLink lispSpecial Type
HiLink lispEscapeSpecial Type
HiLink lispString String
HiLink lispTodo Todo
HiLink lispVar Statement

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: login.defs(5) configuration file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-19
" Latest Revision: 2010-11-29
if exists("b:current_syntax")
finish
@@ -10,83 +10,163 @@ endif
let s:cpo_save = &cpo
set cpo&vim
syn keyword logindefsTodo contained TODO FIXME XXX NOTE
syn match logindefsBegin display '^'
\ nextgroup=
\ logindefsComment,
\ @logindefsKeyword
\ skipwhite
syn region logindefsComment display oneline start='^\s*#' end='$'
\ contains=logindefsTodo,@Spell
syn region logindefsComment display oneline start='^\s*#' end='$'
\ contains=logindefsTodo,@Spell
syn match logindefsString contained '[[:graph:]]\+'
syn keyword logindefsTodo contained TODO FIXME XXX NOTE
syn match logindefsPath contained '[[:graph:]]\+'
syn cluster logindefsKeyword contains=
\ logindefsBooleanKeyword,
\ logindefsEncryptKeyword,
\ logindefsNumberKeyword,
\ logindefsPathKeyword,
\ logindefsPathsKeyword,
\ logindefsStringKeyword
syn match logindefsPaths contained '[[:graph:]]\+'
\ nextgroup=logindefsPathDelim
syn keyword logindefsBooleanKeyword contained
\ CHFN_AUTH
\ CHSH_AUTH
\ CREATE_HOME
\ DEFAULT_HOME
\ FAILLOG_ENAB
\ LASTLOG_ENAB
\ LOG_OK_LOGINS
\ LOG_UNKFAIL_ENAB
\ MAIL_CHECK_ENAB
\ MD5_CRYPT_ENAB
\ OBSCURE_CHECKS_ENAB
\ PASS_ALWAYS_WARN
\ PORTTIME_CHECKS_ENAB
\ QUOTAS_ENAB
\ SU_WHEEL_ONLY
\ SYSLOG_SG_ENAB
\ SYSLOG_SU_ENAB
\ USERGROUPS_ENAB
\ nextgroup=logindefsBoolean skipwhite
syn match logindefsPathDelim contained ':' nextgroup=logindefsPaths
syn keyword logindefsBoolean contained yes no
syn keyword logindefsBoolean contained yes no
syn keyword logindefsEncryptKeyword contained
\ ENCRYPT_METHOD
\ nextgroup=logindefsEncryptMethod skipwhite
syn match logindefsDecimal contained '\<\d\+\>'
syn keyword logindefsEncryptMethod contained
\ DES
\ MD5
\ SHA256
\ SHA512
syn match logindefsOctal contained display '\<0\o\+\>'
\ contains=logindefsOctalZero
syn match logindefsOctalZero contained display '\<0'
syn match logindefsOctalError contained display '\<0\o*[89]\d*\>'
syn keyword logindefsNumberKeyword contained
\ ERASECHAR
\ FAIL_DELAY
\ GID_MAX
\ GID_MIN
\ KILLCHAR
\ LOGIN_RETRIES
\ LOGIN_TIMEOUT
\ MAX_MEMBERS_PER_GROUP
\ PASS_CHANGE_TRIES
\ PASS_MAX_DAYS
\ PASS_MIN_DAYS
\ PASS_WARN_AGE
\ PASS_MAX_LEN
\ PASS_MIN_LEN
\ SHA_CRYPT_MAX_ROUNDS
\ SHA_CRYPT_MIN_ROUNDS
\ SYS_GID_MAX
\ SYS_GID_MIN
\ SYS_UID_MAX
\ SYS_UID_MIN
\ UID_MAX
\ UID_MIN
\ ULIMIT
\ UMASK
\ nextgroup=@logindefsNumber skipwhite
syn match logindefsHex contained display '\<0x\x\+\>'
syn cluster logindefsNumber contains=
\ logindefsDecimal,
\ logindefsHex,
\ logindefsOctal,
\ logindefsOctalError
syn cluster logindefsNumber contains=logindefsDecimal,logindefsOctal,
\ logindefsOctalError,logindefsHex
syn match logindefsDecimal contained '\<\d\+\>'
syn match logindefsBegin display '^'
\ nextgroup=logindefsKeyword,logindefsComment
\ skipwhite
syn match logindefsHex contained display '\<0x\x\+\>'
syn keyword logindefsKeyword contained CHFN_AUTH CLOSE_SESSIONS CREATE_HOME
\ DEFAULT_HOME FAILLOG_ENAB LASTLOG_ENAB
\ LOG_OK_LOGINS LOG_UNKFAIL_ENAB MAIL_CHECK_ENAB
\ MD5_CRYPT_ENAB OBSCURE_CHECKS_ENAB
\ PASS_ALWAYS_WARN PORTTIME_CHECKS_ENAB
\ QUOTAS_ENAB SU_WHEEL_ONLY SYSLOG_SG_ENAB
\ SYSLOG_SU_ENAB USERGROUPS_ENAB
\ nextgroup=logindefsBoolean skipwhite
syn match logindefsOctal contained display '\<0\o\+\>'
\ contains=logindefsOctalZero
syn match logindefsOctalZero contained display '\<0'
syn keyword logindefsKeyword contained CHFN_RESTRICT CONSOLE CONSOLE_GROUPS
\ ENV_TZ ENV_HZ FAKE_SHELL SU_NAME LOGIN_STRING
\ NOLOGIN_STR TTYGROUP USERDEL_CMD
\ nextgroup=logindefsString skipwhite
syn match logindefsOctalError contained display '\<0\o*[89]\d*\>'
syn keyword logindefsKeyword contained ENVIRON_FILE FTMP_FILE HUSHLOGIN_FILE
\ ISSUE_FILE MAIL_DIR MAIL_FILE NOLOGINS_FILE
\ NOLOGINS_FILE TTYTYPE_FILE QMAIL_DIR
\ SULOG_FILE
\ nextgroup=logindefsPath skipwhite
syn keyword logindefsPathKeyword contained
\ ENVIRON_FILE
\ FAKE_SHELL
\ FTMP_FILE
\ HUSHLOGIN_FILE
\ ISSUE_FILE
\ MAIL_DIR
\ MAIL_FILE
\ NOLOGINS_FILE
\ SULOG_FILE
\ TTYTYPE_FILE
\ nextgroup=logindefsPath skipwhite
syn keyword logindefsKeyword contained CRACKLIB_DICTPATH ENV_PATH
\ ENV_ROOTPATH ENV_SUPATH MOTD_FILE
\ nextgroup=logindefsPaths skipwhite
syn match logindefsPath contained '[[:graph:]]\+'
syn keyword logindefsKeyword contained ERASECHAR FAIL_DELAY GETPASS_ASTERISKS
\ GID_MAX GID_MIN KILLCHAR LOGIN_RETRIES
\ LOGIN_TIMEOUT PASS_CHANGE_TRIES PASS_MAX_DAYS
\ PASS_MAX_LEN PASS_MIN_DAYS PASS_MIN_LEN
\ PASS_WARN_AGE TTYPERM UID_MAX UID_MIN ULIMIT
\ UMASK
\ nextgroup=@logindefsNumber skipwhite
syn keyword logindefsPathsKeyword contained
\ CONSOLE
\ ENV_PATH
\ ENV_SUPATH
\ MOTD_FILE
\ nextgroup=logindefsPaths skipwhite
hi def link logindefsTodo Todo
hi def link logindefsComment Comment
hi def link logindefsString String
hi def link logindefsPath String
hi def link logindefsPaths logindefsPath
hi def link logindefsPathDelim Delimiter
hi def link logindefsBoolean Boolean
hi def link logindefsDecimal Number
hi def link logindefsOctal Number
hi def link logindefsOctalZero PreProc
hi def link logindefsOctalError Error
hi def link logindefsHex Number
hi def link logindefsKeyword Keyword
syn match logindefsPaths contained '[^:]\+'
\ nextgroup=logindefsPathDelim
syn match logindefsPathDelim contained ':' nextgroup=logindefsPaths
syn keyword logindefsStringKeyword contained
\ CHFN_RESTRICT
\ CONSOLE_GROUPS
\ ENV_HZ
\ ENV_TZ
\ LOGIN_STRING
\ SU_NAME
\ TTYGROUP
\ TTYPERM
\ USERDEL_CMD
\ nextgroup=logindefsString skipwhite
syn match logindefsString contained '[[:graph:]]\+'
hi def link logindefsComment Comment
hi def link logindefsTodo Todo
hi def link logindefsKeyword Keyword
hi def link logindefsBooleanKeyword logindefsKeyword
hi def link logindefsEncryptKeyword logindefsKeyword
hi def link logindefsNumberKeyword logindefsKeyword
hi def link logindefsPathKeyword logindefsKeyword
hi def link logindefsPathsKeyword logindefsKeyword
hi def link logindefsStringKeyword logindefsKeyword
hi def link logindefsBoolean Boolean
hi def link logindefsEncryptMethod Type
hi def link logindefsNumber Number
hi def link logindefsDecimal logindefsNumber
hi def link logindefsHex logindefsNumber
hi def link logindefsOctal logindefsNumber
hi def link logindefsOctalZero PreProc
hi def link logindefsOctalError Error
hi def link logindefsPath String
hi def link logindefsPaths logindefsPath
hi def link logindefsPathDelim Delimiter
hi def link logindefsString String
let b:current_syntax = "logindefs"

View File

@@ -3,13 +3,18 @@
" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
" Former Maintainers: Vaidotas Zemlys <zemlys@gmail.com>
" Tom Payne <tom@tompayne.org>
" Last Change: Wed Sep 29, 2010 09:31AM
" Last Change: Sun Feb 20, 2011 12:06PM
" Filenames: *.R *.r *.Rhistory *.Rt
"
" NOTE: The highlighting of R functions is defined in the
" r-plugin/functions.vim, which is part of vim-r-plugin2:
" http://www.vim.org/scripts/script.php?script_id=2628
"
" CONFIGURATION:
" syntax folding can be turned on by
"
" let r_syntax_folding = 1
"
" Some lines of code were borrowed from Zhuojun Chen.
if exists("b:current_syntax")
@@ -18,18 +23,30 @@ endif
setlocal iskeyword=@,48-57,_,.
if exists("g:r_syntax_folding")
setlocal foldmethod=syntax
endif
syn case match
" Comment
syn match rComment contains=@Spell "\#.*"
" string enclosed in double quotes
syn region rString contains=rSpecial,rStrError,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/
" string enclosed in single quotes
syn region rString contains=rSpecial,rStrError,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/
if &filetype == "rhelp"
" string enclosed in double quotes
syn region rString contains=rSpecial,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/
" string enclosed in single quotes
syn region rString contains=rSpecial,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/
else
" string enclosed in double quotes
syn region rString contains=rSpecial,rStrError,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/
" string enclosed in single quotes
syn region rString contains=rSpecial,rStrError,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/
endif
syn match rStrError display contained "\\."
" New line, carriage return, tab, backspace, bell, feed, vertical tab, backslash
syn match rSpecial display contained "\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\"
@@ -42,9 +59,6 @@ syn match rSpecial display contained "\\U\x\{1,8}"
syn match rSpecial display contained "\\u{\x\{1,4}}"
syn match rSpecial display contained "\\U{\x\{1,8}}"
syn match rDollar "\$"
" Statement
syn keyword rStatement break next return
syn keyword rConditional if else
@@ -54,26 +68,18 @@ syn keyword rRepeat for in repeat while
syn keyword rConstant T F LETTERS letters month.ab month.name pi
syn keyword rConstant R.version.string
" Constant
syn keyword rNumber NA_integer_ NA_real_ NA_complex_ NA_character_
" Constants
syn keyword rConstant NULL
syn keyword rBoolean FALSE TRUE
syn keyword rNumber NA NA_integer_ NA_real_ NA_complex_ NA_character_
syn keyword rNumber Inf NaN
syn keyword rNumber NA Inf NaN
" integer
syn match rInteger "\<\d\+L"
syn match rInteger "\<0x\([0-9]\|[a-f]\|[A-F]\)\+L"
syn match rInteger "\<\d\+[Ee]+\=\d\+L"
syn match rOperator "[\*\!\&\+\-\<\>\=\^\|\~\`/:@]"
syn match rOperator "%\{2}\|%\*%\|%\/%\|%in%\|%o%\|%x%"
syn match rComplex "\<\d\+i"
syn match rComplex "\<0x\([0-9]\|[a-f]\|[A-F]\)\+i"
syn match rComplex "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\=i"
syn match rComplex "\<\.\d\+\([Ee][-+]\=\d\+\)\=i"
syn match rComplex "\<\d\+[Ee][-+]\=\d\+i"
" number with no fractional part or exponent
syn match rNumber "\<\d\+\>"
" hexadecimal number
@@ -86,6 +92,28 @@ syn match rFloat "\<\.\d\+\([Ee][-+]\=\d\+\)\="
" floating point number with no fractional part and optional exponent
syn match rFloat "\<\d\+[Ee][-+]\=\d\+"
" complex number
syn match rComplex "\<\d\+i"
syn match rComplex "\<\d\++\d\+i"
syn match rComplex "\<0x\([0-9]\|[a-f]\|[A-F]\)\+i"
syn match rComplex "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\=i"
syn match rComplex "\<\.\d\+\([Ee][-+]\=\d\+\)\=i"
syn match rComplex "\<\d\+[Ee][-+]\=\d\+i"
syn match rOperator "&"
syn match rOperator '-'
syn match rOperator '*'
syn match rOperator '+'
syn match rOperator '='
syn match rOperator "[|!<>^~`/:@]"
syn match rOperator "%\{2}\|%\*%\|%\/%\|%in%\|%o%\|%x%"
syn match rOpError '*\{3}'
syn match rOpError '//'
syn match rOpError '&&&'
syn match rOpError '|||'
syn match rOpError '<<'
syn match rOpError '>>'
syn match rArrow "<\{1,2}-"
syn match rArrow "->\{1,2}"
@@ -93,20 +121,50 @@ syn match rArrow "->\{1,2}"
syn match rDelimiter "[,;:]"
" Error
syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError
syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError
syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError
if exists("g:r_syntax_folding")
syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError fold
syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError fold
syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError fold
else
syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError
syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError
syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError
endif
syn match rError "[)\]}]"
syn match rBraceError "[)}]" contained
syn match rCurlyError "[)\]]" contained
syn match rParenError "[\]}]" contained
" Source list of R functions. The list is produced by the Vim-R-plugin
" http://www.vim.org/scripts/script.php?script_id=2628
runtime r-plugin/functions.vim
syn match rDollar display contained "\$"
" List elements will not be highlighted as functions:
syn match rLstElmt "\$[a-zA-Z0-9\\._]*" contains=rDollar
" Functions that may add new objects
syn keyword rPreProc library require attach detach source
if &filetype == "rhelp"
syn match rHelpIdent '\\method'
syn match rHelpIdent '\\S4method'
endif
" Type
syn keyword rType array category character complex double function integer list logical matrix numeric vector data.frame
" Name of object with spaces
syn region rNameWSpace start="`" end="`"
if &filetype == "rhelp"
syn match rhPreProc "^#ifdef.*"
syn match rhPreProc "^#endif.*"
syn match rhSection "\\dontrun\>"
endif
" Define the default highlighting.
hi def link rArrow Statement
hi def link rBoolean Boolean
@@ -120,9 +178,16 @@ hi def link rDelimiter Delimiter
hi def link rDollar SpecialChar
hi def link rError Error
hi def link rFloat Float
hi def link rFunction Function
hi def link rHelpIdent Identifier
hi def link rhPreProc PreProc
hi def link rhSection PreCondit
hi def link rInteger Number
hi def link rLstElmt Normal
hi def link rNameWSpace Normal
hi def link rNumber Number
hi def link rOperator Operator
hi def link rOpError Error
hi def link rParenError Error
hi def link rPreProc PreProc
hi def link rRepeat Repeat

View File

@@ -1,10 +1,11 @@
" Vim syntax file
" Language: R Help File
" Maintainer: Johannes Ranke <jranke@uni-bremen.de>
" Last Change: 2010 Apr 22
" Version: 0.7.3
" SVN: $Id: rhelp.vim 88 2010-04-22 19:37:09Z ranke $
" Remarks: - Now includes R syntax highlighting in the appropriate
" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
" Former Maintainer: Johannes Ranke <jranke@uni-bremen.de>
" Last Change: Sat Feb 19, 2011 02:13PM
" Version: 0.7.4
" SVN: $Id: rhelp.vim 90 2010-11-22 10:58:11Z ranke $
" Remarks: - Includes R syntax highlighting in the appropriate
" sections if an r.vim file is in the same directory or in the
" default debian location.
" - There is no Latex markup in equations
@@ -24,30 +25,40 @@ endif
syn case match
" R help identifiers {{{
" R help identifiers {{{1
syn region rhelpIdentifier matchgroup=rhelpSection start="\\name{" end="}"
syn region rhelpIdentifier matchgroup=rhelpSection start="\\alias{" end="}"
syn region rhelpIdentifier matchgroup=rhelpSection start="\\pkg{" end="}"
syn region rhelpIdentifier matchgroup=rhelpSection start="\\item{" end="}" contained contains=rhelpDots
syn region rhelpIdentifier matchgroup=rhelpSection start="\\method{" end=/}/ contained
syn region rhelpIdentifier matchgroup=rhelpSection start="\\pkg{" end="}" contains=rhelpLink
syn region rhelpIdentifier matchgroup=rhelpSection start="\\method{" end="}" contained
syn region rhelpIdentifier matchgroup=rhelpSection start="\\Rdversion{" end="}"
" Highlighting of R code using an existing r.vim syntax file if available {{{1
syn include @R syntax/r.vim
syn match rhelpDots "\\dots" containedin=@R
syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpSection
syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpIdentifier,rhelpS4method
syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end=/}/ contains=@R
syn region rhelpRcode matchgroup=Delimiter start="\\special{" matchgroup=Delimiter transparent end=/}/ contains=@R contained
syn region rhelpRcode matchgroup=Delimiter start="\\code{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpLink contained
syn region rhelpS4method matchgroup=Delimiter start="\\S4method{.*}(" matchgroup=Delimiter transparent end=/)/ contains=@R,rhelpDots contained
syn region rhelpSexpr matchgroup=Delimiter start="\\Sexpr{" matchgroup=Delimiter transparent end=/}/ contains=@R
" Strings {{{1
syn region rhelpString start=/"/ end=/"/
syn region rhelpString start=/"/ skip=/\\"/ end=/"/ contains=rhelpSpecialChar,rhelpCodeSpecial,rhelpLink contained
" Special characters ( \$ \& \% \# \{ \} \_) {{{1
" Special characters in R strings
syn match rhelpCodeSpecial display contained "\\\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\"
" Special characters ( \$ \& \% \# \{ \} \_)
syn match rhelpSpecialChar "\\[$&%#{}_]"
" R code {{{1
syn match rhelpDots "\\dots" containedin=@R
syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpLink,rhelpIdentifier,rhelpString,rhelpSpecialChar,rhelpSection
syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpIdentifier,rhelpS4method
syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end="}" contains=@R
syn region rhelpRcode matchgroup=Delimiter start="\\special{" matchgroup=Delimiter transparent end="}" contains=@R
syn region rhelpRcode matchgroup=Delimiter start="\\code{" skip='\\\@<!{.\{-}\\\@<!}' transparent end="}" contains=@R,rhelpDots,rhelpString,rhelpSpecialChar,rhelpLink keepend
syn region rhelpS4method matchgroup=Delimiter start="\\S4method{.*}(" matchgroup=Delimiter transparent end=")" contains=@R,rhelpDots
syn region rhelpSexpr matchgroup=Delimiter start="\\Sexpr{" matchgroup=Delimiter transparent end="}" contains=@R
" PreProc {{{1
syn match rhelpPreProc "^#ifdef.*"
syn match rhelpPreProc "^#endif.*"
" Special Delimiters {{{1
syn match rhelpDelimiter "\\cr"
syn match rhelpDelimiter "\\tab "
@@ -111,9 +122,13 @@ syn match rhelpKeyword "\\Psi"
syn match rhelpKeyword "\\Omega"
" Links {{{1
syn region rhelpLink matchgroup=rhelpSection start="\\link{" end="}" contained keepend
syn region rhelpLink matchgroup=rhelpSection start="\\link\[.\{-}\]{" end="}" contained keepend
syn region rhelpLink matchgroup=rhelpSection start="\\linkS4class{" end="}" contained keepend
syn region rhelpLink matchgroup=rhelpSection start="\\link{" end="}" contained keepend extend
syn region rhelpLink matchgroup=rhelpSection start="\\link\[.\{-}\]{" end="}" contained keepend extend
syn region rhelpLink matchgroup=rhelpSection start="\\linkS4class{" end="}" contained keepend extend
" Verbatim like {{{1
syn region rhelpVerbatim matchgroup=rhelpType start="\\samp{" skip='\\\@<!{.\{-}\\\@<!}' end="}" contains=rhelpSpecialChar,rhelpComment
syn region rhelpVerbatim matchgroup=rhelpType start="\\verb{" skip='\\\@<!{.\{-}\\\@<!}' end="}" contains=rhelpSpecialChar,rhelpComment
" Type Styles {{{1
syn match rhelpType "\\emph\>"
@@ -123,16 +138,18 @@ syn match rhelpType "\\sQuote\>"
syn match rhelpType "\\dQuote\>"
syn match rhelpType "\\preformatted\>"
syn match rhelpType "\\kbd\>"
syn match rhelpType "\\samp\>"
syn match rhelpType "\\eqn\>"
syn match rhelpType "\\deqn\>"
syn match rhelpType "\\file\>"
syn match rhelpType "\\email\>"
syn match rhelpType "\\url\>"
syn match rhelpType "\\href\>"
syn match rhelpType "\\var\>"
syn match rhelpType "\\env\>"
syn match rhelpType "\\option\>"
syn match rhelpType "\\command\>"
syn match rhelpType "\\newcommand\>"
syn match rhelpType "\\renewcommand\>"
syn match rhelpType "\\dfn\>"
syn match rhelpType "\\cite\>"
syn match rhelpType "\\acronym\>"
@@ -140,6 +157,7 @@ syn match rhelpType "\\acronym\>"
" rhelp sections {{{1
syn match rhelpSection "\\encoding\>"
syn match rhelpSection "\\title\>"
syn match rhelpSection "\\item\>"
syn match rhelpSection "\\description\>"
syn match rhelpSection "\\concept\>"
syn match rhelpSection "\\arguments\>"
@@ -153,11 +171,11 @@ syn match rhelpSection "\\keyword\>"
syn match rhelpSection "\\docType\>"
syn match rhelpSection "\\format\>"
syn match rhelpSection "\\source\>"
syn match rhelpSection "\\itemize\>"
syn match rhelpSection "\\describe\>"
syn match rhelpSection "\\enumerate\>"
syn match rhelpSection "\\item "
syn match rhelpSection "\\item$"
syn match rhelpSection "\\itemize\>"
syn match rhelpSection "\\describe\>"
syn match rhelpSection "\\enumerate\>"
syn match rhelpSection "\\item "
syn match rhelpSection "\\item$"
syn match rhelpSection "\\tabular{[lcr]*}"
syn match rhelpSection "\\dontrun\>"
syn match rhelpSection "\\dontshow\>"
@@ -165,11 +183,13 @@ syn match rhelpSection "\\testonly\>"
syn match rhelpSection "\\donttest\>"
" Freely named Sections {{{1
syn region rhelpFreesec matchgroup=Delimiter start="\\section{" matchgroup=Delimiter transparent end=/}/
syn region rhelpFreesubsec matchgroup=Delimiter start="\\subsection{" matchgroup=Delimiter transparent end=/}/
syn region rhelpFreesec matchgroup=Delimiter start="\\section{" matchgroup=Delimiter transparent end="}"
syn region rhelpFreesubsec matchgroup=Delimiter start="\\subsection{" matchgroup=Delimiter transparent end="}"
syn match rhelpDelimiter "{\|\[\|(\|)\|\]\|}"
" R help file comments {{{1
syn match rhelpComment /%.*$/ contained
syn match rhelpComment /%.*$/
" Error {{{1
syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rhelpError,rhelpBraceError,rhelpCurlyError
@@ -190,17 +210,21 @@ if version >= 508 || !exists("did_rhelp_syntax_inits")
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink rhelpVerbatim String
HiLink rhelpDelimiter Delimiter
HiLink rhelpIdentifier Identifier
HiLink rhelpString String
HiLink rhelpCodeSpecial Special
HiLink rhelpKeyword Keyword
HiLink rhelpDots Keyword
HiLink rhelpLink Underlined
HiLink rhelpType Type
HiLink rhelpType Type
HiLink rhelpSection PreCondit
HiLink rhelpError Error
HiLink rhelpBraceError Error
HiLink rhelpCurlyError Error
HiLink rhelpParenError Error
HiLink rhelpPreProc PreProc
HiLink rhelpDelimiter Delimiter
HiLink rhelpComment Comment
HiLink rhelpRComment Comment

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: sudoers(5) configuration files
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2007-08-02
" Latest Revision: 2011-02-24
if exists("b:current_syntax")
finish
@@ -149,10 +149,86 @@ syn match sudoersDefaultTypeGreaterThan contained '>' nextgroup=@sudoersUser s
" TODO: could also deal with special characters here
syn match sudoersBooleanParameter contained '!' nextgroup=sudoersBooleanParameter skipwhite skipnl
syn keyword sudoersBooleanParameter contained long_opt_prompt ignore_dot mail_always mail_badpass mail_no_user mail_no_perms tty_tickets lecture authenticate root_sudo log_host log_year shell_noargs set_home always_set_home path_info preserve_groups fqdn insults requiretty env_editor rootpw runaspw targetpw set_logname stay_setuid env_reset use_loginclass nextgroup=sudoersParameterListComma skipwhite skipnl
syn keyword sudoersIntegerParameter contained passwd_tries loglinelen timestamp_timeout passwd_timeout umask nextgroup=sudoersIntegerParameterEquals skipwhite skipnl
syn keyword sudoersStringParameter contained mailsub badpass_message timestampdir timestampowner passprompt runas_default syslog_goodpri syslog_badpri editor logfile syslog mailerpath mailerflags mailto exempt_group verifypw listpw nextgroup=sudoersStringParameterEquals skipwhite skipnl
syn keyword sudoersListParameter contained env_check env_delete env_keep nextgroup=sudoersListParameterEquals skipwhite skipnl
syn keyword sudoersBooleanParameter contained skipwhite skipnl
\ always_set_home
\ authenticate
\ closefrom_override
\ env_editor
\ env_reset
\ fqdn
\ ignore_dot
\ ignore_local_sudoers
\ insults
\ log_host
\ log_year
\ long_otp_prompt
\ mail_always
\ mail_badpass
\ mail_no_host
\ mail_no_perms
\ mail_no_user
\ noexec
\ path_info
\ passprompt_override
\ preserve_groups
\ requiretty
\ root_sudo
\ rootpw
\ runaspw
\ set_home
\ set_logname
\ setenv
\ shell_noargs
\ stay_setuid
\ targetpw
\ tty_tickets
\ visiblepw
syn keyword sudoersIntegerParameter contained
\ nextgroup=sudoersIntegerParameterEquals
\ skipwhite skipnl
\ closefrom
\ passwd_tries
\ loglinelen
\ passwd_timeout
\ timestamp_timeout
\ umask
syn keyword sudoersStringParameter contained
\ nextgroup=sudoersStringParameterEquals
\ skipwhite skipnl
\ badpass_message
\ editor
\ mailsub
\ noexec_file
\ passprompt
\ runas_default
\ syslog_badpri
\ syslog_goodpri
\ sudoers_locale
\ timestampdir
\ timestampowner
\ askpass
\ env_file
\ exempt_group
\ lecture
\ lecture_file
\ listpw
\ logfile
\ mailerflags
\ mailerpath
\ mailfrom
\ mailto
\ secure_path
\ syslog
\ verifypw
syn keyword sudoersListParameter contained
\ nextgroup=sudoersListParameterEquals
\ skipwhite skipnl
\ env_check
\ env_delete
\ env_keep
syn match sudoersParameterListComma contained ',' nextgroup=@sudoersParameter skipwhite skipnl

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: TeX
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Aug 12, 2010
" Version: 57
" Last Change: Sep 17, 2010
" Version: 60
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Notes: {{{1
@@ -67,11 +67,11 @@ endif
" g:tex_stylish to 1 (for "*.sty" mode)
" or to 0 else (normal "*.tex" mode)
" or on a buffer-by-buffer basis with b:tex_stylish
let b:extfname=expand("%:e")
let s:extfname=expand("%:e")
if exists("g:tex_stylish")
let b:tex_stylish= g:tex_stylish
elseif !exists("b:tex_stylish")
if b:extfname == "sty" || b:extfname == "cls" || b:extfname == "clo" || b:extfname == "dtx" || b:extfname == "ltx"
if s:extfname == "sty" || s:extfname == "cls" || s:extfname == "clo" || s:extfname == "dtx" || s:extfname == "ltx"
let b:tex_stylish= 1
else
let b:tex_stylish= 0
@@ -92,12 +92,12 @@ endif
" (La)TeX keywords: only use the letters a-zA-Z {{{1
" but _ is the only one that causes problems.
if version < 600
set isk-=_
set isk=a-z,A-Z
if b:tex_stylish
set isk+=@
endif
else
setlocal isk-=_
setlocal isk=a-z,A-Z
if b:tex_stylish
setlocal isk+=@
endif
@@ -300,7 +300,7 @@ endif
" Bad Math (mismatched): {{{1
if !exists("tex_no_math")
syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|subequations\|smallmatrix\|xxalignat\)\s*}"
syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|smallmatrix\|xxalignat\)\s*}"
syn match texBadMath "\\end\s*{\s*\(align\|alignat\|displaymath\|displaymath\|eqnarray\|equation\|flalign\|gather\|math\|multline\|xalignat\)\*\=\s*}"
syn match texBadMath "\\[\])]"
endif
@@ -345,7 +345,6 @@ if !exists("tex_no_math")
call TexNewMathZone("G","gather",1)
call TexNewMathZone("H","math",1)
call TexNewMathZone("I","multline",1)
call TexNewMathZone("J","subequations",0)
call TexNewMathZone("K","xalignat",1)
call TexNewMathZone("L","xxalignat",0)
@@ -412,7 +411,7 @@ endif
syn case ignore
syn keyword texTodo contained combak fixme todo xxx
syn case match
if b:extfname == "dtx"
if s:extfname == "dtx"
syn match texComment "\^\^A.*$" contains=@texCommentGroup
syn match texComment "^%\+" contains=@texCommentGroup
else
@@ -468,15 +467,16 @@ else
endif
" Tex Reference Zones: {{{1
syn region texZone matchgroup=texStatement start="@samp{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\nocite{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\bibliography{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\label{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\\(page\|eq\)ref{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\v\=ref{" end="}\|%stopzone\>" contains=@texRefGroup
syn match texRefZone '\\cite\%([tp]\*\=\)\=' nextgroup=texRefOption,texCite
syn region texRefOption contained matchgroup=Delimiter start='\[' end=']' contains=@texRefGroup,texRefZone nextgroup=texRefOption,texCite
syn region texCite contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup,texRefZone,texCite
syn match texRefZone '\\@samp\>' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\nocite\>' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\bibliography\>' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\label\>' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\\(page\|eq\)ref\>' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\v\=ref' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\cite\%([tp]\*\=\)\=' skipwhite nextgroup=texCiteOption,texCite
syn region texRefLabel contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup
syn region texCiteOption contained matchgroup=Delimiter start='\[' end=']' contains=@Spell,@texRefGroup,@texMathZones,texRefZone nextgroup=texCiteOption,texCite
syn region texCite contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup,texCite
" Handle newcommand, newenvironment : {{{1
syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl
@@ -753,7 +753,11 @@ if has("conceal") && &enc == 'utf-8'
\ ['wedge' , '∧'],
\ ['wr' , '≀']]
for texmath in s:texMathList
exe "syn match texMathSymbol '\\\\".texmath[0]."\\>' contained conceal cchar=".texmath[1]
if texmath[0] =~ '\w$'
exe "syn match texMathSymbol '\\\\".texmath[0]."\\>' contained conceal cchar=".texmath[1]
else
exe "syn match texMathSymbol '\\\\".texmath[0]."' contained conceal cchar=".texmath[1]
endif
endfor
if &ambw == "double"
@@ -1027,7 +1031,6 @@ if did_tex_syntax_inits == 1
HiLink texError Error
endif
HiLink texCite texRefZone
HiLink texDefCmd texDef
HiLink texDefName texDef
HiLink texDocType texCmdName
@@ -1052,6 +1055,7 @@ if did_tex_syntax_inits == 1
HiLink texMathZoneV texMath
HiLink texMathZoneZ texMath
endif
HiLink texRefZone Identifier
HiLink texSectionMarker texCmdName
HiLink texSectionName texSection
HiLink texSpaceCode texStatement
@@ -1060,6 +1064,7 @@ if did_tex_syntax_inits == 1
HiLink texTypeStyle texType
" Basic TeX highlighting groups
HiLink texCite Special
HiLink texCmdArgs Number
HiLink texCmdName Statement
HiLink texComment Comment
@@ -1075,7 +1080,7 @@ if did_tex_syntax_inits == 1
HiLink texNewCmd Statement
HiLink texNewEnv Statement
HiLink texOption Number
HiLink texRefZone Special
HiLink texRefLabel Special
HiLink texSection PreCondit
HiLink texSpaceCodeChar Special
HiLink texSpecialChar SpecialChar
@@ -1089,6 +1094,6 @@ if did_tex_syntax_inits == 1
endif
" Current Syntax: {{{1
unlet b:extfname
unlet s:extfname
let b:current_syntax = "tex"
" vim: ts=8 fdm=marker

110
runtime/syntax/treetop.vim Normal file
View File

@@ -0,0 +1,110 @@
" Vim syntax file
" Language: Treetop
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2011-03-14
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn keyword treetopTodo
\ contained
\ TODO
\ FIXME
\ XXX
\ NOTE
syn match treetopComment
\ '#.*'
\ display
\ contains=treetopTodo
syn include @treetopRuby syntax/ruby.vim
unlet b:current_syntax
syn keyword treetopKeyword
\ require
\ end
syn region treetopKeyword
\ matchgroup=treetopKeyword
\ start='\<\%(grammar\|include\|module\)\>\ze\s'
\ end='$'
\ transparent
\ oneline
\ keepend
\ contains=@treetopRuby
syn keyword treetopKeyword
\ rule
\ nextgroup=treetopRuleName
\ skipwhite skipnl
syn match treetopGrammarName
\ '\u\w*'
\ contained
syn match treetopRubyModuleName
\ '\u\w*'
\ contained
syn match treetopRuleName
\ '\h\w*'
\ contained
syn region treetopString
\ matchgroup=treetopStringDelimiter
\ start=+"+
\ end=+"+
syn region treetopString
\ matchgroup=treetopStringDelimiter
\ start=+'+
\ end=+'+
syn region treetopCharacterClass
\ matchgroup=treetopCharacterClassDelimiter
\ start=+\[+
\ skip=+\\\]+
\ end=+\]+
syn region treetopRubyBlock
\ matchgroup=treetopRubyBlockDelimiter
\ start=+{+
\ end=+}+
\ contains=@treetopRuby
syn region treetopSemanticPredicate
\ matchgroup=treetopSemanticPredicateDelimiter
\ start=+[!&]{+
\ end=+}+
\ contains=@treetopRuby
syn region treetopSubclassDeclaration
\ matchgroup=treetopSubclassDeclarationDelimiter
\ start=+<+
\ end=+>+
\ contains=@treetopRuby
syn match treetopEllipsis
\ +''+
hi def link treetopTodo Todo
hi def link treetopComment Comment
hi def link treetopKeyword Keyword
hi def link treetopGrammarName Constant
hi def link treetopRubyModuleName Constant
hi def link treetopRuleName Identifier
hi def link treetopString String
hi def link treetopStringDelimiter treetopString
hi def link treetopCharacterClass treetopString
hi def link treetopCharacterClassDelimiter treetopCharacterClass
hi def link treetopRubyBlockDelimiter PreProc
hi def link treetopSemanticPredicateDelimiter PreProc
hi def link treetopSubclassDeclarationDelimiter PreProc
hi def link treetopEllipsis Special
let b:current_syntax = 'treetop'
let &cpo = s:cpo_save
unlet s:cpo_save

112
runtime/syntax/upstart.vim Normal file
View File

@@ -0,0 +1,112 @@
" Vim syntax file
" Language: Upstart job files
" Maintainer: Michael Biebl <biebl@debian.org>
" James Hunt <james.hunt@ubuntu.com>
" Last Change: 2011 Mar 22
" License: GPL v2
" Version: 0.4
" Remark: Syntax highlighting for Upstart (init(8)) job files.
"
" It is inspired by the initng syntax file and includes sh.vim to do the
" highlighting of script blocks.
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
let is_bash = 1
syn include @Shell syntax/sh.vim
syn case match
" avoid need to use 'match' for most events
setlocal iskeyword+=-
syn match upstartComment /#.*$/ contains=upstartTodo
syn keyword upstartTodo TODO FIXME contained
syn region upstartString start=/"/ end=/"/ skip=/\\"/
syn region upstartScript matchgroup=upstartStatement start="script" end="end script" contains=@upstartShellCluster
syn cluster upstartShellCluster contains=@Shell
" one argument
syn keyword upstartStatement description author version instance expect
syn keyword upstartStatement pid kill normal console env exit export
syn keyword upstartStatement umask nice oom chroot chdir exec
" two arguments
syn keyword upstartStatement limit
" one or more arguments (events)
syn keyword upstartStatement emits
syn keyword upstartStatement on start stop
" flag, no parameter
syn keyword upstartStatement respawn service instance manual debug task
" prefix for exec or script
syn keyword upstartOption pre-start post-start pre-stop post-stop
" option for kill
syn keyword upstartOption timeout
" option for oom
syn keyword upstartOption never
" options for console
syn keyword upstartOption output owner
" options for expect
syn keyword upstartOption fork daemon
" options for limit
syn keyword upstartOption unlimited
" 'options' for start/stop on
syn keyword upstartOption and or
" Upstart itself and associated utilities
syn keyword upstartEvent runlevel
syn keyword upstartEvent started
syn keyword upstartEvent starting
syn keyword upstartEvent startup
syn keyword upstartEvent stopped
syn keyword upstartEvent stopping
syn keyword upstartEvent control-alt-delete
syn keyword upstartEvent keyboard-request
syn keyword upstartEvent power-status-changed
" D-Bus
syn keyword upstartEvent dbus-activation
" Display Manager (ie gdm)
syn keyword upstartEvent desktop-session-start
syn keyword upstartEvent login-session-start
" mountall
syn keyword upstartEvent all-swaps
syn keyword upstartEvent filesystem
syn keyword upstartEvent mounted
syn keyword upstartEvent mounting
syn keyword upstartEvent local-filesystems
syn keyword upstartEvent remote-filesystems
syn keyword upstartEvent virtual-filesystems
" SysV umountnfs.sh
syn keyword upstartEvent mounted-remote-filesystems
" upstart-udev-bridge and ifup/down
syn match upstartEvent /\<\i\{-1,}-device-\(added\|removed\|up\|down\)/
" upstart-socket-bridge
syn keyword upstartEvent socket
hi def link upstartComment Comment
hi def link upstartTodo Todo
hi def link upstartString String
hi def link upstartStatement Statement
hi def link upstartOption Type
hi def link upstartEvent Define
let b:current_syntax = "upstart"

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Vim 7.3 script
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: August 04, 2010
" Version: 7.3-04
" Last Change: August 20, 2010
" Version: 7.3-05
" Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2
@@ -16,12 +16,14 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
syn cluster vimCommentGroup contains=vimTodo,@Spell
" regular vim commands {{{2
syn keyword vimCommand contained abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] endt[ry] exi[t] fina[lly] fix[del] foldd[oopen] go[to] hid[e] ij[ump] isp[lit] k laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] l[ist] lmak[e] lN[ext] loc[kmarks] lpf[ile] lt[ag] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] new noh[lsearch] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] rundo san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] sme sni[ff] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] uns[ilent] vert[ical] vi[sual] wa[ll] winp[os] wp[revious] ws[verb] xa[ll] xmenu xnoremenu
syn keyword vimCommand contained abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endw[hile] f[ile] fin[d] fo[ld] foldo[pen] gr[ep] his[tory] il[ist] iuna[bbrev] keepalt lad[dexpr] later lcl[ose] lf[ile] lg[etfile] ll lmapc[lear] lnf[ile] lockv[ar] lp[revious] lua lvimgrepa[dd] marks mks[ession] mod[e] nbc[lose] n[ext] nu[mber] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] smenu sno[magic] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] up[date] vie[w] vmapc[lear] wh[ile] win[size] wq wundo x[it] XMLent xunme
syn keyword vimCommand contained al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] ene[w] files fini[sh] foldc[lose] for grepa[dd] iabc[lear] imapc[lear] j[oin] keepj[umps] laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] lla[st] lnew[er] lNf[ile] lol[der] lr[ewind] luado lw[indow] mat[ch] mksp[ell] m[ove] nb[key] N[ext] ol[dfiles] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] sn[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] verb[ose] vim[grep] vne[w] winc[md] wn[ext] wqa[ll] wv[iminfo] xmapc[lear] XMLns xunmenu
syn keyword vimCommand contained arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ex filetype fir[st] folddoc[losed] fu[nction] ha[rdcopy] if is[earch] ju[mps] kee[pmarks] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lli[st] lne[xt] lo[adview] lop[en] ls luafile mak[e] menut[ranslate] mkvie[w] mzf[ile] nbs[tart] nmapc[lear] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sN[ext] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] ve[rsion] vimgrepa[dd] vs[plit] windo wN[ext] w[rite] X xme xnoreme y[ank]
syn keyword vimCommand contained argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f] en[dif]
syn match vimCommand contained "\<z[-+^.=]"
syn keyword vimCommand contained a arga[dd] argu[ment] bd[elete] bN[ext] breakd[el] buf c cal[l] ce[nter] cg[etfile] cl cn cNf comc[lear] cope[n] cr[ewind] d d[elete] diffo diffsplit di[splay] ds[earch] ec e:e:e en endt[ry] exu[sage] filetype fix[del] for go[to] h hi if intro k la lan[guage] lch[dir] let@ lg[etfile] lla[st] lnew[er] lNf[ile] loc[kmarks] lr[ewind] lv[imgrep] ma[rk] messages mkv mv n new noautocmd on[ly] p:~ perld[o] popu[p] p[rint] promptr[epl] ptl[ast] ptr[ewind] py3file q[uit] r[ead] redraws[tatus] ret[ab] r:r:r ru[ntime] sba[ll] sbp[revious] scs sf[ind] sil[ent] sm[ap] sno[magic] so[urce] spellr[epall] st startr[eplace] sunme sw[apname] t tabf[ind] tabn[ext] ta[g] tf[irst] tn tp[revious] tu undoj[oin] up[date] vi vmapc[lear] win wN[ext] wundo xmapc[lear] xnoremenu
syn keyword vimCommand contained ab argd[elete] as[cii] bel[owright] bo[tright] breakl[ist] bufdo cabc[lear] cat[ch] cex[pr] c[hange] cla[st] cN cnf[ile] comment co[py] cs de delf diffoff difft dj[ump] dsp[lit] echoe[rr] e:e:r endf endw[hile] f fin fo[ld] fu gr[ep] ha[rdcopy] hid[e] ij[ump] is[earch] keepa lad la[st] lcl[ose] lex[pr] lgr[ep] lli[st] lne[xt] lo lockv[ar] ls lvimgrepa[dd] marks mk mkvie[w] Mycmd N n[ext] noh[lsearch] o[pen] P p:gs? pp[op] P[rint] ps[earch] ptn pts[elect] pyf[ile] quita[ll] rec[over] reg[isters] retu[rn] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sfir[st] sim[alt] sme snoreme s?pat?sub? spellu[ndo] sta[g] stj[ump] sunmenu sy ta tabfir[st] tabN[ext] tags th[row] tN tr tu[nmenu] undol[ist] v vie[w] vne[w] winc[md] wp[revious] wv[iminfo] xme xterm
syn keyword vimCommand contained abc[lear] argdo au bf[irst] bp[revious] br[ewind] b[uffer] cad cb[uffer] cf[ile] changes cl[ist] cnew[er] cNf[ile] comp[iler] count cscope debug delf[unction] DiffOrig diffthis dl[ist] dwim echom[sg] el[se] endfo[r] ene[w] f[ile] fina[lly] foldc[lose] fun grepa[dd] h[elp] his[tory] il[ist] isp[lit] keepalt laddb[uffer] lat lcs lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lol[der] lt[ag] lw[indow] mat[ch] mkdir mkv[imrc] MyCommand nbc[lose] N[ext] nu[mber] opt[ions] pc[lose] p:h pr pro p:t ptN pu[t] py[thon] quote red Ren rew[ind] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sh[ell] sl smenu snoremenu spe spellw[rong] star st[op] sus[pend] syn tab tabl[ast] tabo[nly] tc[l] tj[ump] tn[ext] t:r u unh[ide] ve vim[grep] vs[plit] windo wq x xmenu xunme
syn keyword vimCommand contained abo[veleft] arge[dit] bad[d] bl[ast] br bro[wse] buffers caddb[uffer] cc cfir[st] chd[ir] clo[se] cn[ext] col[der] con cpf[ile] cstag debugg[reedy] delm[arks] diffp diffu[pdate] do e echon elsei[f] endfun Error filename fin[d] folddoc[losed] fu[nction] gs?pat?sub? helpf[ind] i imapc[lear] iuna[bbrev] keepj[umps] lad[dexpr] later lcscope lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lop[en] lua ma menut mk[exrc] mo mz nb[key] nkf o ownsyntax pe p:h:h p:r profd[el] pta[g] ptn[ext] pw[d] python3 r redi[r] Rena ri[ght] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spelld[ump] sp[lit] start stopi[nsert] s?version?main? sync tabc[lose] tabm[ove] tabp[revious] tcld[o] tl[ast] tN[ext] tr[ewind] un unl verb[ose] vimgrepa[dd] w winp[os] wqa[ll] X XMLent xunmenu
syn keyword vimCommand contained al[l] argg[lobal] ba[ll] bm[odified] brea[k] browseset bun[load] cad[dexpr] ccl[ose] cgetb[uffer] che[ckpath] cmapc[lear] cN[ext] colo[rscheme] conf[irm] cp[revious] cuna[bbrev] del di diffpatch dig doau ea e[dit] em[enu] endf[unction] ex files fini[sh] foldd[oopen] g gui helpg[rep] ia in j[oin] kee[pmarks] laddf[ile] lb[uffer] le[ft] lgetb[uffer] l[ist] lN lNf lo[adview] lpf[ile] luado mak[e] menut[ranslate] mks[ession] mod[e] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p ped[it] po[p] pre[serve] prof[ile] ptf[irst] ptN[ext] py q re red[o] Renu rightb[elow] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spe[llgood] spr[evious] startg[replace] sts[elect] s?version?main?:p syncbind tabd[o] tabN tabr[ewind] tclf[ile] tm TOhtml try una[bbreviate] unlo[ckvar] ve[rsion] vi[sual] wa[ll] win[size] w[rite] xa[ll] XMLns xwininfo
syn keyword vimCommand contained Allargs argl[ocal] bar bn[ext] breaka[dd] bu bw[ipeout] caddf[ile] cd cgete[xpr] checkt[ime] cmdname cnf com con[tinue] cq[uit] cw[indow] delc[ommand] diffg[et] diffpu[t] dig[raphs] dr[op] earlier e:e emenu* en[dif] exi[t] filet fir[st] foldo[pen] get gvim helpt[ags] iabc[lear] index ju[mps] l lan lc[d] lefta[bove] lgete[xpr] ll lne lnf[ile] locale lp[revious] luafile Man mes mksp[ell] m[ove] mz[scheme] ne noa omapc[lear] p: pe[rl] popu prev[ious] promptf[ind] ptj[ump] ptp[revious] py3 qa[ll] r:e redr[aw] res[ize] r:r rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spelli[nfo] sre[wind] star[tinsert] sun[hide] sv[iew] synlist tabe[dit] tabnew tabs te[aroff] tm[enu] to[pleft] ts[elect] u[ndo] uns[ilent] vert[ical] viu[sage] wh[ile] wn[ext] ws[verb] x[it] xnoreme y[ank]
syn keyword vimCommand contained ar ar[gs]
syn match vimCommand contained "\<z[-+^.=]\="
" vimOptions are caught only when contained in a vimSet {{{2
syn keyword vimOption contained acd ambiwidth arabicshape autowriteall backupdir bdlay binary breakat bufhidden cd ci cinw co commentstring confirm cpoptions cscopetag csto cwh dg dip eadirection ek equalprg ex fdi fen fileencodings flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imi incsearch infercase isk keymap langmenu linespace loadplugins macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pm printdevice printoptions quoteescape restorescreen rnu rulerformat scr sect sft shellredir shm showmode sj smd spell splitbelow ssl stl sw sxq tabpagemax tags tbis terse thesaurus titleold toolbariconsize tsr ttyfast tx undofile ut verbosefile virtualedit wb wfw wildcharm winaltkeys winminwidth wmnu write
@@ -318,7 +320,7 @@ syn case match
" ====
syn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs
syn keyword vimMap cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] vm[ap] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
syn keyword vimMap mapc[lear]
syn keyword vimMap mapc[lear] smapc[lear]
syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs
@@ -552,7 +554,7 @@ let s:luapath= expand("<sfile>:p:h")."/lua.vim"
if !filereadable(s:luapath)
let s:luapath= globpath(&rtp,"syntax/lua.vim")
endif
if (g:vimsyn_embed =~ 'p' && has("lua")) && filereadable(s:luapath)
if (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath)
unlet! b:current_syntax
exe "syn include @vimLuaScript ".s:luapath
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'l'

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: XF86Config (XFree86 configuration file)
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2005 Jul 12
" Former Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2010 Nov 01
" URL: http://trific.ath.cx/Ftp/vim/syntax/xf86conf.vim
" Required Vim Version: 6.0
"
@@ -63,7 +63,7 @@ syn match xf86confModeLineValue "\"[^\"]\+\"\(\_s\+[0-9.]\+\)\{9}" nextgroup=xf8
" Sections and subsections
if b:xf86conf_xfree86_version >= 4
syn region xf86confSection matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\)\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOption,xf86confKeyword,xf86confSectionError
syn region xf86confSection matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\|InputClass\)\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOption,xf86confKeyword,xf86confSectionError
syn region xf86confSectionModule matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Module\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionAny,xf86confComment,xf86confOption,xf86confKeyword
syn region xf86confSectionMonitor matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Monitor\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionMode,xf86confModeLine,xf86confComment,xf86confOption,xf86confKeyword
syn region xf86confSectionModes matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Modes\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionMode,xf86confModeLine,xf86confComment
@@ -165,7 +165,7 @@ syn match xf86confSync "\(\s\+[+-][CHV]_*Sync\)\+" contained
" Synchronization
if b:xf86conf_xfree86_version >= 4
syn sync match xf86confSyncSection grouphere xf86confSection "^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\)\""
syn sync match xf86confSyncSection grouphere xf86confSection "^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\|InputClass\)\""
syn sync match xf86confSyncSectionModule grouphere xf86confSectionModule "^\s*Section\s\+\"Module\""
syn sync match xf86confSyncSectionModes groupthere xf86confSectionModes "^\s*Section\s\+\"Modes\""
else

View File

@@ -1,10 +1,11 @@
" Vim syntax file
" Language: XQuery
" Author: Jean-Marc Vanel <http://jmvanel.free.fr/>
" Last Change: mar jui 12 18:04:05 CEST 2005
" Author: René Neumann <necoro@necoro.eu>
" Author: Steve Spigarelli <http://spig.net/>
" Original Author: Jean-Marc Vanel <http://jmvanel.free.fr/>
" Last Change: December 11, 2010
" Filenames: *.xq
" URL: http://jmvanel.free.fr/vim/xquery.vim
" $Id: xquery.vim,v 1.1 2005/07/18 21:44:56 vimboss Exp $
" REFERENCES:
" [1] http://www.w3.org/TR/xquery/
@@ -14,22 +15,26 @@ if exists("b:current_syntax")
finish
endif
" - is allowed in keywords
setlocal iskeyword+=-
runtime syntax/xml.vim
syn case match
" From XQuery grammar:
syn keyword xqueryStatement ancestor ancestor-or-self and as ascending at attribute base-uri by case cast castable child collation construction declare default descendant descendant-or-self descending div document element else empty encoding eq every except external following following-sibling for function ge greatest gt idiv if import in inherit-namespaces instance intersect is le least let lt mod module namespace ne no of or order ordered ordering parent preceding preceding-sibling preserve return satisfies schema self some stable strip then to treat typeswitch union unordered validate variable version where xmlspace xquery yes
syn keyword xqStatement ancestor ancestor-or-self and as ascending at attribute base-uri boundary-space by case cast castable child collation construction declare default descendant descendant-or-self descending div document element else empty encoding eq every except external following following-sibling for function ge greatest gt idiv if import in inherit-namespaces instance intersect is le least let lt mod module namespace ne no of or order ordered ordering parent preceding preceding-sibling preserve return satisfies schema self some stable strip then to treat typeswitch union unordered validate variable version where xmlspace xquery yes
" TODO contains clashes with vim keyword
syn keyword xqueryFunction abs adjust-date-to-timezone adjust-date-to-timezone adjust-dateTime-to-timezone adjust-dateTime-to-timezone adjust-time-to-timezone adjust-time-to-timezone avg base-uri base-uri boolean ceiling codepoint-equal codepoints-to-string collection collection compare concat count current-date current-dateTime current-time data dateTime day-from-date day-from-dateTime days-from-duration deep-equal deep-equal default-collation distinct-values distinct-values doc doc-available document-uri empty ends-with ends-with error error error error escape-uri exactly-one exists false floor hours-from-dateTime hours-from-duration hours-from-time id id idref idref implicit-timezone in-scope-prefixes index-of index-of insert-before lang lang last local-name local-name local-name-from-QName lower-case matches matches max max min min minutes-from-dateTime minutes-from-duration minutes-from-time month-from-date month-from-dateTime months-from-duration name name namespace-uri namespace-uri namespace-uri-for-prefix namespace-uri-from-QName nilled node-name normalize-space normalize-space normalize-unicode normalize-unicode not number number one-or-more position prefix-from-QName QName remove replace replace resolve-QName resolve-uri resolve-uri reverse root root round round-half-to-even round-half-to-even seconds-from-dateTime seconds-from-duration seconds-from-time starts-with starts-with static-base-uri string string string-join string-length string-length string-to-codepoints subsequence subsequence substring substring substring-after substring-after substring-before substring-before sum sum timezone-from-date timezone-from-dateTime timezone-from-time tokenize tokenize trace translate true unordered upper-case year-from-date year-from-dateTime years-from-duration zero-or-one
syn keyword xqFunction abs adjust-date-to-timezone adjust-date-to-timezone adjust-dateTime-to-timezone adjust-dateTime-to-timezone adjust-time-to-timezone adjust-time-to-timezone avg base-uri base-uri boolean ceiling codepoint-equal codepoints-to-string collection collection compare concat count current-date current-dateTime current-time data dateTime day-from-date day-from-dateTime days-from-duration deep-equal deep-equal default-collation distinct-values distinct-values doc doc-available document-uri empty ends-with ends-with error error error error escape-uri exactly-one exists false floor hours-from-dateTime hours-from-duration hours-from-time id id idref idref implicit-timezone in-scope-prefixes index-of index-of insert-before lang lang last local-name local-name local-name-from-QName lower-case matches matches max max min min minutes-from-dateTime minutes-from-duration minutes-from-time month-from-date month-from-dateTime months-from-duration name name namespace-uri namespace-uri namespace-uri-for-prefix namespace-uri-from-QName nilled node-name normalize-space normalize-space normalize-unicode normalize-unicode not number number one-or-more position prefix-from-QName QName remove replace replace resolve-QName resolve-uri resolve-uri reverse root root round round-half-to-even round-half-to-even seconds-from-dateTime seconds-from-duration seconds-from-time starts-with starts-with static-base-uri string string string-join string-length string-length string-to-codepoints subsequence subsequence substring substring substring-after substring-after substring-before substring-before sum sum timezone-from-date timezone-from-dateTime timezone-from-time tokenize tokenize trace translate true unordered upper-case year-from-date year-from-dateTime years-from-duration zero-or-one
syn keyword xqueryOperator add-dayTimeDuration-to-date add-dayTimeDuration-to-dateTime add-dayTimeDuration-to-time add-dayTimeDurations add-yearMonthDuration-to-date add-yearMonthDuration-to-dateTime add-yearMonthDurations base64Binary-equal boolean-equal boolean-greater-than boolean-less-than concatenate date-equal date-greater-than date-less-than dateTime-equal dateTime-greater-than dateTime-less-than dayTimeDuration-equal dayTimeDuration-greater-than dayTimeDuration-less-than divide-dayTimeDuration divide-dayTimeDuration-by-dayTimeDuration divide-yearMonthDuration divide-yearMonthDuration-by-yearMonthDuration except gDay-equal gMonth-equal gMonthDay-equal gYear-equal gYearMonth-equal hexBinary-equal intersect is-same-node multiply-dayTimeDuration multiply-yearMonthDuration node-after node-before NOTATION-equal numeric-add numeric-divide numeric-equal numeric-greater-than numeric-integer-divide numeric-less-than numeric-mod numeric-multiply numeric-subtract numeric-unary-minus numeric-unary-plus QName-equal subtract-dates-yielding-dayTimeDuration subtract-dateTimes-yielding-dayTimeDuration subtract-dayTimeDuration-from-date subtract-dayTimeDuration-from-dateTime subtract-dayTimeDuration-from-time subtract-dayTimeDurations subtract-times subtract-yearMonthDuration-from-date subtract-yearMonthDuration-from-dateTime subtract-yearMonthDurations time-equal time-greater-than time-less-than to union yearMonthDuration-equal yearMonthDuration-greater-than yearMonthDuration-less-than
syn keyword xqOperator add-dayTimeDuration-to-date add-dayTimeDuration-to-dateTime add-dayTimeDuration-to-time add-dayTimeDurations add-yearMonthDuration-to-date add-yearMonthDuration-to-dateTime add-yearMonthDurations base64Binary-equal boolean-equal boolean-greater-than boolean-less-than concatenate date-equal date-greater-than date-less-than dateTime-equal dateTime-greater-than dateTime-less-than dayTimeDuration-equal dayTimeDuration-greater-than dayTimeDuration-less-than divide-dayTimeDuration divide-dayTimeDuration-by-dayTimeDuration divide-yearMonthDuration divide-yearMonthDuration-by-yearMonthDuration except gDay-equal gMonth-equal gMonthDay-equal gYear-equal gYearMonth-equal hexBinary-equal intersect is-same-node multiply-dayTimeDuration multiply-yearMonthDuration node-after node-before NOTATION-equal numeric-add numeric-divide numeric-equal numeric-greater-than numeric-integer-divide numeric-less-than numeric-mod numeric-multiply numeric-subtract numeric-unary-minus numeric-unary-plus QName-equal subtract-dates-yielding-dayTimeDuration subtract-dateTimes-yielding-dayTimeDuration subtract-dayTimeDuration-from-date subtract-dayTimeDuration-from-dateTime subtract-dayTimeDuration-from-time subtract-dayTimeDurations subtract-times subtract-yearMonthDuration-from-date subtract-yearMonthDuration-from-dateTime subtract-yearMonthDurations time-equal time-greater-than time-less-than to union yearMonthDuration-equal yearMonthDuration-greater-than yearMonthDuration-less-than
syn match xqType "xs:\(\|Datatype\|primitive\|string\|boolean\|float\|double\|decimal\|duration\|dateTime\|time\|date\|gYearMonth\|gYear\|gMonthDay\|gDay\|gMonth\|hexBinary\|base64Binary\|anyURI\|QName\|NOTATION\|\|normalizedString\|token\|language\|IDREFS\|ENTITIES\|NMTOKEN\|NMTOKENS\|Name\|NCName\|ID\|IDREF\|ENTITY\|integer\|nonPositiveInteger\|negativeInteger\|long\|int\|short\|byte\|nonNegativeInteger\|unsignedLong\|unsignedInt\|unsignedShort\|unsignedByte\|positiveInteger\)"
syn match xqueryType "xs:\(\|Datatype\|primitive\|string\|boolean\|float\|double\|decimal\|duration\|dateTime\|time\|date\|gYearMonth\|gYear\|gMonthDay\|gDay\|gMonth\|hexBinary\|base64Binary\|anyURI\|QName\|NOTATION\|\|normalizedString\|token\|language\|IDREFS\|ENTITIES\|NMTOKEN\|NMTOKENS\|Name\|NCName\|ID\|IDREF\|ENTITY\|integer\|nonPositiveInteger\|negativeInteger\|long\|int\|short\|byte\|nonNegativeInteger\|unsignedLong\|unsignedInt\|unsignedShort\|unsignedByte\|positiveInteger\)"
" From XPath grammar:
syn keyword xqueryXPath some every in in satisfies if then else to div idiv mod union intersect except instance of treat castable cast eq ne lt le gt ge is child descendant attribute self descendant-or-self following-sibling following namespace parent ancestor preceding-sibling preceding ancestor-or-self void item node document-node text comment processing-instruction attribute schema-attribute schema-element
syn keyword xqXPath some every in in satisfies if then else to div idiv mod union intersect except instance of treat castable cast eq ne lt le gt ge is child descendant attribute self descendant-or-self following-sibling following namespace parent ancestor preceding-sibling preceding ancestor-or-self void item node document-node text comment processing-instruction attribute schema-attribute schema-element
" eXist extensions
syn match xqExist "&="
@@ -37,44 +42,41 @@ syn match xqExist "&="
" XQdoc
syn match XQdoc contained "@\(param\|return\|author\)\>"
highlight def link xqueryStatement Statement
highlight def link xqueryFunction Function
highlight def link xqueryOperator Operator
highlight def link xqueryType Type
highlight def link xqueryXPath Operator
highlight def link XQdoc Special
highlight def link xqExist Operator
" floating point number, with dot, optional exponent
syn match xqFloat "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
" floating point number, starting with a dot, optional exponent
syn match xqFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
" floating point number, without dot, with exponent
syn match xqFloat "\d\+e[-+]\=\d\+[fl]\=\>"
syn match xqNumber "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
syn match xqNumber "\<\d\+\>"
syn region xqString start=+"+ end=+"+
syn region xqComment start='(:' excludenl end=':)' contains=XQdoc
"floating point number, with dot, optional exponent
syn match cFloat "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
syn match cFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match cFloat "\d\+e[-+]\=\d\+[fl]\=\>"
syn match cNumber "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
syn match cNumber "\<\d\+\>"
highlight def link cNumber Number
highlight def link cFloat Number
syn region xqComment start='(:' excludenl end=':)' contains=XQdoc
highlight def link xqComment Comment
" syntax match xqVariable "$\w\+"
syntax match xqVariable +$\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>+
highlight def link xqVariable Identifier
" Redefine the default XML highlighting:
highlight def link xmlTag Structure
highlight def link xmlTagName Structure
highlight def link xmlEndTag Structure
syntax match xqSeparator ",\|;"
highlight link xqSeparator Operator
syn region xqCode transparent contained start='{' excludenl end='}' contains=xmlRegionBis,xqComment,xqueryStatement,xmlString,xqSeparator,cNumber,xqVariable keepend extend
syn match xqVariable "$\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>"
syn match xqSeparator ",\|;"
syn region xqCode transparent contained start='{' excludenl end='}' contains=xqFunction,xqCode,xmlRegionBis,xqComment,xqStatement,xmlString,xqSeparator,xqNumber,xqVariable,xqString keepend extend
syn region xmlRegionBis start=+<\z([^ /!?<>"']\+\)+ skip=+<!--\_.\{-}-->+ end=+</\z1\_\s\{-}>+ end=+/>+ fold contains=xmlTag,xmlEndTag,xmlCdata,xmlRegionBis,xmlComment,xmlEntity,xmlProcessing,xqCode keepend extend
syn region List transparent start='(' excludenl end=')' contains=xqCode,xmlRegion,xqComment,xqSeparator,xqueryStatement,xqVariable,xqueryType keepend extend
hi def link xqNumber Number
hi def link xqFloat Number
hi def link xqString String
hi def link xqVariable Identifier
hi def link xqComment Comment
hi def link xqSeparator Operator
hi def link xqStatement Statement
hi def link xqFunction Function
hi def link xqOperator Operator
hi def link xqType Type
hi def link xqXPath Operator
hi def link XQdoc Special
hi def link xqExist Operator
" override the xml highlighting
"hi link xmlTag Structure
"hi link xmlTagName Structure
"hi link xmlEndTag Structure
let b:current_syntax = "xquery"

View File

@@ -1,12 +1,22 @@
" Vim syntax file
" Language: Yacc
" Maintainer: Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Aug 2, 2010
" Version: 8
" Last Change: Aug 12, 2010
" Version: 9
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Options: {{{1
" g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C
"
" Overall layout of a bison/yacc grammer:
" %{
" Prolog
" %}
" Bison/Yacc Declarations
" %%
" Grammar Rules
" %%
" Epilogue
" ---------------------------------------------------------------------
" this version of syntax/yacc.vim requires 6.0 or later
@@ -35,7 +45,7 @@ endif
" ---------------------------------------------------------------------
" Yacc Clusters: {{{1
syn cluster yaccInitCluster contains=yaccKey,yaccKeyActn,yaccBrkt,yaccType,yaccString,yaccUnionStart,yaccHeader2,yaccComment,yaccDefines,yaccParseParam
syn cluster yaccInitCluster contains=yaccKey,yaccKeyActn,yaccBrkt,yaccType,yaccString,yaccUnionStart,yaccHeader2,yaccComment,yaccDefines,yaccParseParam,yaccParseOption
syn cluster yaccRulesCluster contains=yaccNonterminal,yaccString
" ---------------------------------------------------------------------
@@ -50,7 +60,8 @@ HiFold syn region yaccEndCode matchgroup=yaccSectionSep start='^%%$' end='\%$'
" ---------------------------------------------------------------------
" Yacc Commands: {{{1
syn match yaccDefines '^%define\s\+.*$'
syn match yaccParseParam '%parse-param\>' skipwhite nextgroup=yaccParseParamStr
syn match yaccParseParam '%\(parse\|lex\)-param\>' skipwhite nextgroup=yaccParseParamStr
syn match yaccParseOption '%\%(api\.pure\|pure-parser\|locations\|error-verbose\)\>'
syn region yaccParseParamStr contained matchgroup=Delimiter start='{' end='}' contains=cStructure
syn match yaccDelim "[:|]" contained
@@ -96,7 +107,8 @@ if !exists("did_yacc_syn_inits")
HiLink yaccCurly Delimiter
HiLink yaccCurlyError Error
HiLink yaccDefines cDefine
HiLink yaccParseParam cDefine
HiLink yaccParseParam yaccParseOption
HiLink yaccParseOption cDefine
HiLink yaccNonterminal Function
HiLink yaccDelim Delimiter
HiLink yaccKeyActn Special

View File

@@ -6,7 +6,7 @@
# Similarly for Russian and Korean
all: tutor.utf-8 \
tutor.bj \
tutor.bar \
tutor.ca.utf-8 \
tutor.de.utf-8 \
tutor.el tutor.el.cp737 \
@@ -28,8 +28,8 @@ all: tutor.utf-8 \
tutor.utf-8: tutor
iconv -f ISO-8859-1 -t UTF-8 tutor > tutor.utf-8
tutor.bj: tutor.bj.utf-8
iconv -f UTF-8 -t ISO-8859-1 tutor.bj.utf-8 > tutor.bj
tutor.bar: tutor.bar.utf-8
iconv -f UTF-8 -t ISO-8859-1 tutor.bar.utf-8 > tutor.bar
tutor.ca.utf-8: tutor.ca
iconv -f ISO-8859-1 -t UTF-8 tutor.ca > tutor.ca.utf-8

View File

@@ -1,5 +1,5 @@
===============================================================================
= G o t i k a m i n n W I M M - S c h a i n e r - Fassung 1.7D =
= G o t i k a m i n n W I M M - S c h a i n e r - Fassung 1.7 =
===============================================================================
Dyr Wimm ist ayn gro mächtigs Blat, dös was mit aynn Wösn Befelh aufwartt; z
@@ -12,10 +12,10 @@
OBACHT:
Die Faudungen, wost daader finddst, gaand istig s Gwort öndern. Dösswögn
machst eyn n Böstn glei ayn Aamum von derer Dautticht daader. Haast alsnan
dös Gwort daader mit n Befelh "vimtutor bj" ausherlaassn, ist s ee schoon
dös Gwort daader mit n Befelh "vimtutor bar" ausherlaassn, ist s ee schoon
ayn Aamum.
Mir kan s nit oft gnueg sagn, däß der Schainer daader istig gan n Üebn
ghoert. Also muesst schoon aau die Befelh ausfüern, wennst ys gscheid ler-
ghoert. Also muesst schoon aau die Befelh +ausfüern, wennst ys gscheid ler-
nen willst. Mit n Lösn yllain ist s +nit taan!
Ietz schaust grad non, däß dein Föststölltastn nit druckt ist; und aft geest
@@ -24,7 +24,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 1.1: MIT N MÖRKL UMAYNANDFARN
** Dyrmitst mit n Mörkl umaynandkimmst, druck h, j, k und l wie unt zaigt. **
** Dyrmitst mit n Mörkl umaynandkimmst, druck h, j, k und l wie unt zaigt. **
^ Ayn Öslsbrugg:
k De Tastn h ist winster und +geet aau gan winster.
< h l > S l leit zesm und richtt si gan zesm.
@@ -32,13 +32,13 @@
v Mit n k kimmst gan n KOPF.
1. Ietz ruedertst ainfach mit n Mörkl auf n Bildschirm umaynand, hinst däßst
di sicher füelst.
2. Halt d Abhin-Tastn (j) druckt; aft rumplt s ainfach weiter. Netty yso
2. Halt d Abhin-Tastn (j) druckt; aft rumplt s ainfach weiter. Netty yso
kimmst gan dyr naehstn Letzn.
3. Wie gsait, ietz bewögst di also mit derer Tastn gan dyr Letzn 1.2.
Non öbbs: Allweil, wenn dyr niemer ganz wol ist, wasst öbbenn druckt haast, aft
zipfst <ESC>; naacherd bist wider ganz gwon in dyr Befelhs-Artweis.
zipfst <ESC> ; naacher bist wider ganz gwon in dyr Befelhs-Artweis.
Nöbnbei gsait kimmst gwonerweil aau mit de Pfeiltastnen weiter. Aber
@@ -53,17 +53,17 @@ Non
1. Druck d <ESC>-Tastn, dyrmitst aau gwiß in dyr Befelhs-Artweis bist.
2. Demmlt :q! <EIN>.
2. Demmlt :q!<EIN> .
Daa dyrmit benddst ys Blat und verwirffst allss, wasst öbbenn göndert
haast.
3. Balst önn Eingib seghst, gib dö Faudung ein, wo di zo dönn Schainer brun-
gen haat, also vimtutor bj <EIN>.
gen haat, also vimtutor bar<EIN> .
4. Also, wenn ietz allsse sitzt, naacherd füerst d Schritt 1 hinst 3 aus, mit
wasst ys Blat verlaasst und aft wider einhinkimmst.
Anmörkung: Mit :q! <EIN> verwirffst allss, wasst göndert older enther gschribn
Anmörkung: Mit :q!<EIN> verwirffst allss, wasst göndert older enther gschribn
haast. In aynn Öttlych Letznen lernst acht, wiest dös allss in ayner
Dautticht speichertst.
@@ -73,7 +73,7 @@ Anm
** Druck x , dyrmitst dös Zaichen unter n Mörkl löschst. **
1. Bewög di mit n Mörkl auf de mit ---> angmörkte Zeil unt.
1. Bewög di mit n Mörkl auf de mit ---> angmörkte Zeil unt.
2. Zo n Faeler Verbössern farst mit n Mörkl netty auf dös Zaichen, dös wo
glöscht ghoert.
@@ -96,14 +96,14 @@ Und ganz wichtig: Dyrweilst d
** Druck i , dyrmitst öbbs einfüegst. **
1. Bewög önn Mörkl zo dyr eerstn untignen Zeil, wo mit ---> angeet.
1. Bewög önn Mörkl zo dyr eerstn untignen Zeil, wo mit ---> angeet.
2. Dyrmitst de eerste Zeil wie de zwaitte machst, bewög önn Mörkl auf dös
eerste Zaichen NAACH derer Stöll, daa wo s Gwort eingfüegt werdn sollt.
3. Druck i und gib dös ein, was abgeet.
4. Wenn ieweils ayn Faeler verweitert ist, aft druck <ESC>; und dyrmit kimmst
4. Wenn ieweils ayn Faeler verweitert ist, aft druck <ESC> ; dyrmit kimmst
gan dyr Befelhsartweis zrugg.
So, und ietz tuest ainfach yso weiter, hinst däß dyr Saz stimmt.
@@ -119,15 +119,15 @@ Und ganz wichtig: Dyrweilst d
** Druck A gan n Gwort Anfüegn. **
1. Gee mit n Mörkl gan dyr eerstn untignen Zeil, wo ayn ---> dyrvor haat.
1. Gee mit n Mörkl gan dyr eerstn untignen Zeil, wo ayn ---> dyrvor haat.
Daa ist s gleich, wo gnaun dyr Mörkl in derer Zeil steet.
2. Demmlt A und gib de entspröchetn Ergöntzungen ein.
3. Wennst mit n Anfüegn förtig bist, aft druckst <ESC>, däßst wider eyn de
3. Wennst mit n Anfüegn förtig bist, aft druckst <ESC> , däßst wider eyn de
Befelhsartweis zruggkimmst.
4. So, und ietz geest aft non gan dyr zwaittn mit ---> angmörktn Zeil; und
4. So, und ietz geest aft non gan dyr zwaittn mit ---> angmörktn Zeil; und
daadl machst ys netty yso.
---> In derer Zeil gee
@@ -147,14 +147,14 @@ Und ganz wichtig: Dyrweilst d
1. Verlaaß also s Blat, wie s in dyr Letzn 1.2. haisst, mit :q! !
2. Gib dö Faudung eyn n Eingib ein: vim Schainer <EIN> . 'vim' ruefft s Blat
auf, und 'Schainer' haisst de Dautticht, wost barechtn willst. Dyrmit
2. Gib dö Faudung eyn n Eingib ein: vim Schainer<EIN> . 'vim' ruefft s Blat
auf, und 'Schainer' haisst de Dautticht, wost barechtn willst. Dyrmit
haast also ayn Dautticht, dö wost barechtn kanst.
3. Ietz füegst öbbs ein older löschst öbbs, wiest ys in de vorignen Letznen
glernt haast.
4. Speichert de gönderte Dautticht und verlaaß önn Wimm mit :wq <EIN> .
4. Speichert de gönderte Dautticht und verlaaß önn Wimm mit :wq<EIN> .
5. Schmeiß önn Wimmschainer neu an und gee gan dyr folgetn Zammenfassung.
@@ -166,31 +166,31 @@ Und ganz wichtig: Dyrweilst d
1. Dyr Mörkl werd mit de Tastnen hjkl older aau mit de Pfeiltastnen gsteuert.
h (winst) j (ab) k (auf) l (zes)
2. Um önn Wimm umbb n Eingib aus z ginnen, demmlt: vim DAUTTICHT <EIN> .
2. Um önn Wimm umbb n Eingib aus z ginnen, demmlt: vim DAUTTICHT<EIN> .
3. Willst önn Wimm verlaassn und aau allss verwerffen, aft gibst ein:
<ESC> :q! <EIN> .
Gan n Verlaassn und Speichern aber zipfst <ESC> :wq <EIN>.
<ESC> und :q!<EIN> .
Gan n Verlaassn und Speichern aber zipfst <ESC> und :wq<EIN> .
4. Willst dös Zaichen löschn, daa wo dyr Mörkl drauf ist, demmltst x .
5. Willst öbbs vor n Mörkl eingöbn, zipfst i und drafter <ESC> .
Mechst ys aber eyn s Zeilnend anhinhöngen, benutzt ys A .
Und ainfach naach n Mörkl füegst ys mit a ein .
Und ainfach naach n Mörkl füegst ys mit a ein.
Anmörkung: Druckst <ESC>, kimmst eyn de Befelhsartweis zrugg older brichst ayn
Faudung ab, dö wo dyr schiefgangen ist.
Anmörkung: Druckst <ESC> , kimmst eyn de Befelhsartweis zrugg older brichst
ayn Faudung ab, dö wo dyr schiefgangen ist.
Ietz tue mit dyr Letzn 2 weiter.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 2.1.: LÖSHFAUDUNGEN
** Demmlt dw , dyrmitst ayn Wort löschst **
** Demmlt dw , dyrmitst ayn Wort löschst. **
1. Druck <ESC>, dyrmit s aau gwiß ist, däßst in dyr Befelhsartweis bist.
1. Druck <ESC> , dyrmit s aau gwiß ist, däßst in dyr Befelhsartweis bist.
2. Bewög önn Mörkl zo dyr mit ---> angmörktn Zeil unt.
2. Bewög önn Mörkl zo dyr mit ---> angmörktn Zeil unt.
3. Und daa geest ietz auf n Anfang von aynn Wort, dös wo glöscht ghoert.
@@ -211,9 +211,9 @@ Anm
** Gib d$ ein, däßst hinst eyn s Zeilnend löschst. **
1. Druck <ESC> , dyrmitst aau gwiß in dyr Befelhsartweis bist.
1. Druck <ESC> , dyrmitst aau gwiß in dyr Befelhsartweis bist.
2. Bewög önn Mörkl hinst eyn de mit ---> angmörkte Zeil untn.
2. Bewög önn Mörkl hinst eyn de mit ---> angmörkte Zeil untn.
3. Gee mit n Mörkl auf s End von dyr faelerfreien Zeil, NAACH n eerstn . .
@@ -243,11 +243,11 @@ Anm
Daader also, was i wie löschn kan:
w - hinst eyn n Anfang von n naehstn Wort AANE dönn sein eersts Zaichen.
e - gan n End von n ietzundn Wort MIT dönn seinn lösstn Zaichen.
$ - zo n End von dyr Zeil MIT derer irn lösstn Zaichen.
w - hinst eyn n Anfang von n naehstn Wort AANE dönn sein eersts Zaichen.
e - gan n End von n ietzundn Wort MIT dönn seinn lösstn Zaichen.
$ - zo n End von dyr Zeil MIT derer irn lösstn Zaichen.
Also löscht de Tastnfolg de umbb n Mörkl hinst eyn s Wortend.
Also löscht de Tastnfolg de allss umbb n Mörkl hinst eyn s Wortend.
Anmörkung: Gib i grad dös zwaitte Zaichen yllain ein, ruckt halt dyr Mörkl
entspröchet weiter.
@@ -255,9 +255,9 @@ Anm
Letzn 2.4: MIT AYNN ZÖLER D WOLENDER ÄFERN
** Gib i ayn Zal vor aynn Wolend ein, werd dös Sel halt widerholt. **
** Gib i ayn Zal vor aynn Wolend ein, werd dös Sel entspröchet oft gangen. **
1. Bewög önn Mörkl gan n Anfang von dyr Zeil mit ---> dyrvor unt.
1. Bewög önn Mörkl gan n Anfang von dyr Zeil mit ---> dyrvor unt.
2. Zipf 2w , däßst mit n Mörkl zwai Wörter weitergeest.
@@ -278,13 +278,13 @@ Anm
Letzn 2.5: DURCH AYNN ZÖLER GLEI MEERER LÖSCHN
** Ayn Zal vor aynn Pfemerer äfert dönn um seln Werd. **
** Ayn Zal vor aynn Pfemerer füert dönn entspröchet oft aus. **
Also, i mecht löschn, und zwaar öbbs Bestimmts, und dös so und so oft: Daa
dyrzue benutz i aynn Zöler:
d Zöler Wolend (also önn Bewögungsschrit)
1. Bewög önn Mörkl gan n eerstn Wort in GROOSSBUECHSTABN in dyr mit ---> an-
1. Bewög önn Mörkl zo n eerstn Wort in GROOSSBUECHSTABN in dyr mit ---> an-
gmörktn Zeil.
2. Demmlt d2w , dyrmitst de ganz grooßgschribnen Wörter löschst.
@@ -325,9 +325,9 @@ Anm
** Zipf u , dyrmitst de lösstn Faudungen ruggltst **
** older U , um ayn gantze Zeil widerherzstölln. **
** older U , um ayn gantze Zeil widerherzstölln. **
1. Bewög önn Mörkl gan dyr mit ---> angmörktn Zeil unt und gee dyrmit auf n
1. Bewög önn Mörkl gan dyr mit ---> angmörktn Zeil unt und gee dyrmit auf n
eerstn Faeler.
2. Zipf x , däßst dös eerste z vile Zaichen löschst.
3. Ietz demmlt u , dyrmitst de lösste Faudung ruggltst.
@@ -358,13 +358,13 @@ Anm
Dyr PFEMERER gibt an, WAS taan ghoert, öbbenn d = löschn (»delete«).
[ZAL] - Ayn Zal KAN myn angöbn, wenn myn halt ayn Wolend öfter habn will.
S WOLEND, also dyr Schrit WOHIN, besagt, auf was i aushin will, öbbenn
auf ayn Wort ( w ), s End von dyr Zeil ( $ ) und so weiter.
auf aynn Wortanfang ( w ), s End von dyr Zeil ( $ ) und so weiter.
6. Däßst eyn n Anfang von dyr Zeil hinkimmst, schreib aynn Nuller: 0
7. Um öbbs Vorigs wider z ruggln, gib ein: u (klain also)
Um allsand Önderungen in ayner Zeil z ruggln, haast: U (also grooß)
Um "rugg-z-ruggln", also allss wider herzstölln, zipf: <STRG>r
Um "rugg-z-ruggln", also allss wider herzstölln, zipf: <STRG>r
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 3.1: ANFÜEGN (»put«)
@@ -372,10 +372,10 @@ Anm
** Zipf p , dyrmitst öbbs gnetty Glöschts naach n Mörkl anfüegst. **
1. Bewög önn Mörkl gan dyr eerstn untignen Zeil mit ---> dyrvor.
1. Bewög önn Mörkl gan dyr eerstn untignen Zeil mit ---> dyrvor.
2. Zipf dd , um sele Zeil z löschn und dyrmit in aynn Wimm-"Roster" zo n
speichern.
2. Zipf dd , um sele Zeil z löschn und dyrmit in ayner Wimm-Osn zo n Spei-
chern.
3. Bewög önn Mörkl gan dyr Zeil c), ÜBER derer, daa wo de glöschte Zeil ein-
hinkemmen sollt.
@@ -395,7 +395,7 @@ Anm
** Zipf rx , um dös Zaichen unter n Mörkl durch x z ersötzn. **
1. Bewög önn Mörkl zo dyr eerstn untignen Zeil mit ---> dyrvor.
1. Bewög önn Mörkl zo dyr eerstn untignen Zeil mit ---> dyrvor.
2. Bewög önn Mörkl, hinst däß yr auf n eerstn Faeler steet.
@@ -418,13 +418,13 @@ Anm
** Um hinst eyn s Wortend z öndern, zipf ce . **
1. Gee mit n Mörkl auf de eerste mit ---> angmörkte Zeil.
1. Gee mit n Mörkl auf de eerste mit ---> angmörkte Zeil.
2. Ietz farst netty auf s "s" von Wstwr hin.
3. Zipf ce ein und aft d Wortberichtigung, daader also örter .
4. Druck <ESC> und bewög önn Mörkl gan n naehstn Zaichen, wo göndert ghoert.
4. Druck <ESC> und bewög önn Mörkl zo n naehstn Zaichen, wo göndert ghoert.
5. Äfert d Schritt 3 und 4, hinst däß dyr eerste Saz wie dyr zwaitte ist.
@@ -443,12 +443,12 @@ ce l
1. Dyr Önder-Pfemerer arechtt anleich wie d Löshfaudung mit d , und zwaar
yso:
c [Zal] Bewögungsschritt (Wolend)
c [Zal] Bewögungsschrit (Wolend)
2. D Wolender seind de gleichn, öbbenn w für Wort und $ für s Zeilnend.
2. D Wolender seind de gleichn, öbbenn w für Wort und $ für s Zeilnend.
3. Bewög di zo dyr eerstn untignen Zeil mit ---> .
3. Bewög di zo dyr eerstn untignen Zeil mit ---> .
4. Ietz geest auf dönn eerstn Faeler.
@@ -494,14 +494,14 @@ Anm
Mörk dyr de Zeilnnummer für n Schrit 3.
Anmörkung: Müglicherweis seghst aau önn Mörklbefand in n zesmen untern Bild-
schirmögg. Aft ist s "Lindl" (»ruler«) eingstöllt; schau dyrzue mit
n Befelh :help 'ruler' naach.
schirmögg. Aft ist s "Lindl" (»ruler«) eingstöllt; meerer über dös
laasst dyr dyr Befelh :help 'ruler' ausher.
2. Druck G , um an s End von dyr Dautticht z kemmen.
gg gibst ein, däßst gan n Anfang von dyr Dautticht aufhinkimmst.
3. Gib d Nummer von derer Zeil ein, daa wost vorher warst, und aft non G .
Dös bringt di zrugg gan seler Zeil, daa wost stuenddst, wiest dös eerste
Maal <STRG>g gadruckst.
Maal <STRG>g gadruckst.
4. Wennst di sicher gnueg füelst, aft füer d Schritt 1 hinst 3 aus.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -513,15 +513,15 @@ Anm
1. Du gibst also in dyr Befelhsartweis s Zaichen / ein. Dös sel wie aau dyr
Mörkl erscheinend drauf unt auf n Schirm, netty wie bei dyr Faudung : .
2. Ietz zipf 'Faeeler' <EIN>. Netty um dös 'Faeeler' willst ietz suechen.
2. Ietz zipf Faeeler<EIN> . Netty um dös 'Faeeler' willst ietz suechen.
3. Willst um gnaun dönn Ausdruk weitersuechen, zipf ainfach n (wie »next«).
Willst hinzrugg suechen, aft gibst N ein.
4. Um von Haus aus zruggaus z suechen, nimm ? statt / her.
5. Dyrmitst wider daa hinkimmst, wost herkemmen bist, druck <STRG>o, und dös
öfter, wennst weiter zrugg willst. Mit <STRG>i widerum kimmst vorwärts.
5. Dyrmitst wider daa hinkimmst, wost herkemmen bist, nimm <STRG>o , und dös
öfter, wennst weiter zrugg willst. Mit <STRG>i widerum kimmst vorwärts.
---> Aynn Faeler schreibt myn nit "Faeeler"; Faeeler ist ayn Faeler
@@ -534,7 +534,7 @@ Anm
** Zipf % , um de entspröchete Klammer ) , ] older } z finddn. **
1. Sötz önn Mörkl auf iewign aine von dene drei Klammern ( , [ older {
in dyr untignen Zeil, wo mit ---> angmörkt ist.
in dyr untignen Zeil, wo mit ---> angmörkt ist.
2. Ietzet zipf s Zaichen % .
@@ -556,7 +556,7 @@ Anm
** Zipf :s/alt/neu/g , um 'alt' durch 'neu' zo n Ersötzn. **
1. Gee mit n Mörkl zo dyr unt steehetn mit ---> angmörktn Zeil.
1. Gee mit n Mörkl zo dyr unt steehetn mit ---> angmörktn Zeil.
2. Zipf :s/dee/de <EIN> . Der Befelh ersötzt alsnan grad dös +eerste "dee",
wo vürkimmt.
@@ -577,60 +577,60 @@ Anm
ZAMMENFASSUNG VON DYR LETZN 4
1. <STRG>g zaigt dönn ietzundn Dauttichtbefand und önn Darstand dyrvon an.
G bringt di an s End von dyr Dautticht.
<Zal> G bringt di gan dyr entspröchetn Zeilnnummer.
gg bringt di zo dyr eerstn Zeil.
G bringt di an s End von dyr Dautticht.
<Zal>G bringt di gan dyr entspröchetn Zeilnnummer.
<Zal>gg geet +grad yso.
gg bringt di zo dyr eerstn Zeil.
2. D Eingaab von / mit aynn Ausdruk suecht VÜRSHLING um dönn Ausdruk.
Gibst ? und aynn Suechbegrif ein, suecht s um dönn ÄRSHLING.
Zipf naach ayner Suech n ; naacherd werd in de gleiche Richtung weiter-
gsuecht. Mit N geet s umkeerter weiter.
<STRG>o bringt di zo ölterne Befändd zrugg, <STRG>i zo neuerne.
gsuecht. Mit N geet s umkeerter weiter.
<STRG>o bringt di zo ölterne Befändd zrugg, <STRG>i zo neuerne.
3. D Eingaab von % , wenn dyr Mörkl auf ainer von dene Klammern steet: ({[
)]} , bringt di zo dyr Gögnklammer.
4. Um dös eerste Vürkemmen von "alt" in ayner Zeil durch "neu" z ersötzn,
zipf :s/alt/neu .
Um allsand in ayner Zeil z ersötzn, zipf :s/alt/neu/g .
4. Um dös eerste Vürkemmen von "alt" in ayner Zeil durch "neu" z ersötzn,
zipf :s/alt/neu .
Um allsand in ayner Zeil z ersötzn, zipf :s/alt/neu/g .
Mechst allss in zwo Zeiln ersötzn, demmlt zo n Beispil :5,6s/alt/neu/g .
Mechst allss in dyr gantzn Dautticht ersötzn, gib ein: :%s/alt/neu/g .
Mechst allss in dyr gantzn Dautticht ersötzn, gib ein: :%s/alt/neu/g .
Willst ayn ieds Maal bstaetln, höng 'c' wie »confirm« hint anhin.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 5.1: ZWISCHNDRINN AYNN AUSSERIGNEN BEFELH AUSFÜERN
** Willst ayn Gfäßfaudung ausfüern, gib ainfach dö sel naach :! ein. **
** Willst ayn Gfäßfaudung ausfüern, gib ainfach dö sel naach :! ein. **
1. Zipf dönn bekanntn Befelh : , dyrmitst mit n Mörkl auf n Bildschirm
ganz abhin kimmst. Draufhin kanst aynn gwonen Gfäßbefelh eingöbn.
2. Zeerst kimmt aber non ayn Ruefzaichen ! . Und ietz haast de Müglich-
2. Zeerst kimmt aber non ayn Ruefzaichen ! . Und ietzet haast d Müglich-
keit, ayn beliebige ausserige Gfäßfaudung auszfüern.
3. Als Beispil zipf :!ls <EIN> ; und schoon haast ayn Auflistung von deinn
3. Als Beispil zipf :!ls<EIN> ; und schoon haast ayn Auflistung von deinn
Verzaichniss, netty wie wennst ganz gwon in n Eingib wärst. Geet ls
aus iewign aynn Grund nit, aft pröblt s mit :!dir <EIN> .
aus iewign aynn Grund nit, aft pröblt s mit :!dir<EIN> .
Also non aynmaal: Mit dönn Angang kan ayn iede beliebige ausserige Faudung aus-
gfüert werdn, aau mit Auerwerdd.
Und wolgmörkt: Allsand Befelh, wo mit : angeend, müessend mit <EIN> bstö-
tigt werdn. Dös dyrsagn myr vürbaß niemer.
Und wolgmörkt: Alle Befelh, wo mit : angeend, müessend mit <EIN> bstö-
tigt werdn. Dös dyrsagn myr fürbaß +niemer.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 5.2: NON MEERER DRÜBER, WIE MYN DAUTTICHTN SCHREIBT
** Um öbbs Gönderts neu z speichern, zipf :w NEUER_DAUTTICHTNAM. **
** Um öbbs Gönderts neu z speichern, zipf :w NEUER_DAUTTICHTNAM . **
1. Zipf :!dir older :!ls , däßst dyr ayn Auflistung von deinn Verzaich-
niss ausherlaasst. Däßst dyrnaach <EIN> eingöbn muesst, waisst ee schoon.
niss ausherlaasst. Däßst drafter <EIN> eingöbn muesst, waisst ee schoon.
2. Suech dyr aynn Dauttichtnam aus, dönn wo s non nit geit, öbbenn POCH.
2. Suech dyr aynn Dauttichtnam aus, dönn wo s non nit geit, öbbenn POCH .
3. Ietz demmlt: :w POCH (also mit POCH als dönn neuen Dauttichtnam).
3. Ietz demmlt: :w POCH (also mit POCH als dönn neuen Dauttichtnam).
4. Dös speichert ietz de gantze Dautticht, also önn Wimmschainer, unter dönn
Nam POCH. Dös kanst leicht überprüeffen, indem däßst ainfach :!ls older
@@ -641,7 +641,7 @@ Anm
wiest n gspeichert haast.
5. Ietz verweitert dö Dautticht - fallsst s Fenstl haast - , mit :!del POCH
beziehungsweis bei aynn Ainslgebäu mit :!rm POCH .
beziehungsweis bei aynn Unixgebäu mit :!rm POCH .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 5.3: AYNN TAIL VON N GWORT ZO N SPEICHERN AUSWALN
@@ -655,15 +655,15 @@ Anm
3. Druck s Zaichen : . Ganz unt auf n Bildschirm erscheint :'<,'> .
4. Zipf w POCH , wobei s dönn Dauttichtnam POCH non nit geit. Vergwiß di,
däßst dös :'<,'>w POCH aau +seghst, ee wennst <EIN> druckst.
däßst dös :'<,'>w POCH aau +seghst, ee wennst <EIN> druckst.
5. Dyr Wimm schreibt de ausgwaltn Zeil eyn de Dautticht POCH einhin. Benutz
5. Dyr Wimm schreibt de ausgwaltn Zeiln eyn de Dautticht POCH einhin. Benutz
:!dir older :!ls , däßst dös überprüeffst. Lösh s fein nit öbbenn! Mir
brauchend s nömlich für de naehste Letzn.
Anmörkung: Druckt myn v , ginnt d Sichtisch-Auswal. Du kanst mit n Mörkl um-
aynandfarn, um d Auswal z veröndern. Drafter kan myn mit yn aynn
Pfemerer mit dönn Gwort öbbs machen. Zo n Beispil löscht d dös
Pfemerer mit dönn Gwort öbbs machen. Zo n Beispil löscht d dös
Gwort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 5.4: EINLÖSN UND ZAMMENFÜERN VON DAUTTICHTN
@@ -692,10 +692,10 @@ Anm
ZAMMENFASSUNG VON DYR LETZN 5
1. :!FAUDUNG füert aynn ausserignen Befelh aus.
1. :!FAUDUNG füert aynn ausserignen Befelh aus.
Daader ayn Öttlych gwänddte Beispiler:
(Fenstl) (Ainsl - Leinsl)
(Fenstl) (Unix - Linux)
:!dir :!ls - listt s Verzaichniss auf.
:!del DAUTTICHT :!rm DAUTTICHT - verweitert sele Dautticht.
@@ -715,19 +715,19 @@ Anm
Letzn 6.1: ZEIL ÖFFNEN (»open«)
** Zipf o, um ayn Zeil unterhalb n Mörkl z öffnen und eyn d **
** Zipf o , um ayn Zeil unterhalb n Mörkl z öffnen und eyn d **
** Einfüegartweis z kemmen. **
1. Bewög önn Mörkl zo dyr eerstn mit ---> angmörktn Zeil unt.
1. Bewög önn Mörkl zo dyr eerstn mit ---> angmörktn Zeil unt.
2. Zipf o (klain), um ayn Zeil UNTERHALB n Mörkl z öffnen und mit dyr Ein-
2. Zipf o (klain), um ayn Zeil UNTERHALB n Mörkl z öffnen und mit dyr Ein-
füegartweis weiterztuen.
3. Ietz zipf ayn Weeng ayn Gwort und druck <ESC>, um d Einfüegartweis z ver-
3. Ietzet zipf ayn Weeng öbbs und druck <ESC> , um d Einfüegartweis z ver-
laassn.
---> Mit o werd dyr Mörkl auf de offene Zeil in dyr Einfüegartweis gsötzt.
---> Mit o werd dyr Mörkl in dyr Einfüegartweis auf de offene Zeil gsötzt.
4. Um ayn Zeil OBERHALB n Mörkl aufzmachen, gib ainfach aynn groosss O statt
4. Um ayn Zeil OBERHALB n Mörkl aufzmachen, gib ainfach ayn groosss O statt
yn aynn klainen ein. Versuech dös auf dyr untignen Zeil.
---> Öffnet ayn Zeil über derer daader mit O , wenn dyr Mörkl auf derer Zeil
@@ -740,14 +740,14 @@ Anm
** Zipf a , um öbbs NAACH n Mörkl einzfüegn. **
1. Bewög önn Mörkl gan n Anfang von dyr eerstn Üebungszeil mit ---> unt.
1. Bewög önn Mörkl gan n Anfang von dyr eerstn Üebungszeil mit ---> unt.
2. Druck e , hinst däß dyr Mörkl an n End von Zei steet.
3. Zipf ayn klains a , um öbbs NAACH n Mörkl anzfüegn.
4. Vergöntz dös Wort wie in dyr Zeil drunter. Druck <ESC>, um d Schreib-Art-
weis z verlaassn.
4. Vergöntz dös Wort wie in dyr Zeil drunter. Druck <ESC> , um d Schreib-
Artweis z verlaassn.
5. Bewög di mit e zo n naehstn ungantzn Wort und widerhol d Schritt 3 und
4.
@@ -763,13 +763,13 @@ Anm
** Demmlt ayn groosss R , um meerer als wie grad ain Zaichen z ersötzn. **
1. Bewög önn Mörkl zo dyr eerstn untignen, mit ---> angmörktn Zeil.
1. Bewög önn Mörkl zo dyr eerstn untignen, mit ---> angmörktn Zeil.
Gee mit n Mörkl gan n Anfang von n eerstn xxx .
2. Ietz druck R und zipf sele Zal, wo drunter in dyr zwaittn Zeil steet,
yso däß de sel s xxx ersötzt.
3. Druck <ESC> , um d Ersötzungsartweis z verlaassn. Du gspannst, däß dyr
3. Druck <ESC> , um d Ersötzungsartweis z verlaassn. Du gspannst, däß dyr
Rest von dyr Zeil unveröndert bleibt.
4. Äfert die Schritt, um dös überblibne xxx z ersötzn.
@@ -795,14 +795,14 @@ Anm
5. Demmlt p , um dös Gwort einzfüegn, und aft: a zwaitte <ESC> .
6. Benutz d Sichtischartweis, um " Eintrag." auszwaln, aam s pfelfs y, be-
6. Benutz d Sichtischartweis, um " Eintrag." auszwaln, aam s mittls y , be-
wög di gan n End von dyr naehstn Zeil mit j$ und füeg s Gwort dortn mit
p an.
---> a) dös ist dyr eerste Eintrag.
b)
Anmörkung: Du kanst y aau als Pfemerer verwenddn; yw aamt ain Wort.
Anmörkung: Du kanst y aau als Pfemerer verwenddn; yw zo n Beispil aamt
hinst eyn n naehstn Wortanfang (aane dönn selber).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 6.5: SCHALTTER SÖTZN
@@ -829,18 +829,18 @@ Anm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ZAMMENFASSUNG VON DYR LETZN 6
1. Zipf o , um ayn Zeil UNTERHALB n Mörkl z öffnen und d Einfüegartweis z
ginnen.
Zipf O , um ayn Zeil OBERHALB n Mörkl z öffnen.
1. Zipf o , um ayn Zeil UNTERHALB n Mörkl z öffnen und d Einfüegartweis z
ginnen.
Zipf O , um ayn Zeil OBERHALB n Mörkl z öffnen.
2. Zipf a , um NAACH n Mörkl ayn Gwort einzfüegn.
Zipf A , um ayn Gwort naach n Zeilnend anzfüegn.
2. Zipf a , um NAACH n Mörkl ayn Gwort einzfüegn.
Zipf A , um ayn Gwort naach n Zeilnend anzfüegn.
3. D Faudung e bringt di gan n End von aynn Wort.
4. Dyr Pfemerer y (»yank«) aamt öbbs, p (»put«) füegt dös ein.
5. Ayn groosss R geet eyn d Ersötzungsartweis, hinst däß myn <ESC> druckt.
5. Ayn groosss R geet eyn d Ersötzungsartweis, hinst däß myn <ESC> druckt.
6. D Eingaab von ":set xxx" sötzt de Zwisl "xxx". Ayn Öttlych Zwisln seind:
'ic' 'ignorecase' Grooß/klain wurst bei ayner Suech
@@ -853,7 +853,7 @@ Anm
Letzn 7.1: AYN HILFGWORT AUFRUEFFEN
** Nutz dös einbaute Hilfgebäu, de "Betribsanlaittung" **
** Nutz dös einbaute Hilfgebäu, de "Betribsanlaittung". **
Eyn n Wimm ist ayn ausfüerliche "Gebrauchsanweisung" einbaut. Für s Eerste
pröblt ainfach ains von dene dreu aus:
@@ -866,7 +866,7 @@ Anm
Demmlt :q <EIN> , um s Hilffenster zo n Schliessn.
Du kanst zo so guet wie allssand ayn Hilf finddn, indem däßst yn dyr Faudung
:help aynn Auerwerd naachstöllst und istig <EIN> nit vergisst. Pröblt dös:
:help aynn Auerwerd naachstöllst und istig <EIN> nit vergisst. Pröblt dös:
:help w
:help c_CTRL-D
@@ -876,14 +876,14 @@ Anm
Letzn 7.2: ERSTÖLL AYN GIN-SCHRIPF
** Mutz önn Wimm mit de einbautn Faehigkeitn auf **
** Mutz önn Wimm mit de einbautn Faehigkeitn auf. **
Dyr Wimm besitzt ayn Wösn Schäftungen, wo über n Urwimm aushingeend, aber de
meerern dyrvon seind in dyr Vorgaab ausgschaltt. Dyrmitst meerer aus n Wimm
ausherholst, erstöllst ayn "vimrc"-Dautticht.
1. Lög ayn "vimrc"-Dautticht an; dös geet ie naach Betribsgebäu verschidn:
:e ~/.vimrc für s Ainsl
:e ~/.vimrc für s Unix
:e $VIM/_vimrc bei n Fenstl
2. Ietz lis önn Inhalt von dyr Beispil-"vimrc"-Dautticht ein:
@@ -892,14 +892,14 @@ Anm
3. Speichert de Dautticht mit:
:w
4. Bei n naehstn Gin von n Wimm ist aft d Füegnussvürherhöbung zuegschaltt.
4. Bei n naehstn Gin von n Wimm ist aft d Füegnussvürherhöbung zuegschalttn.
Du kanst dyr allss eyn dö Dautticht einhinschreibn, wasst bständig habn
willst. Meerer dyrzue erfarst unter: :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 7.3: VERGÖNTZN
** Befelhszeilnvergöntzung mit <STRG>d und <TAB> **
** Befelhszeilnvergöntzung mit <STRG>d und <TAB> **
1. Vergwiß di, däß dyr Wimm nit auf n Urwimm-"Glais" fart: :set nocp
@@ -907,22 +907,22 @@ Anm
older :!dir
3. Zipf önn Anfang von ayner Faudung: :e
4. Druck <STRG>d , und dyr Wimm zaigt ayn Listn von Faudungen, wo mit "e"
4. Druck <STRG>d , und dyr Wimm zaigt ayn Listn von Faudungen, wo mit "e"
angeend.
5. Druck <TAB> , und dyr Wimm vervollstöndigt önn Faudungsnam zo ":edit".
5. Druck <TAB> , und dyr Wimm vervollstöndigt önn Faudungsnam zo ":edit".
6. Füeg ayn Laerzaichen und önn Anfang von ayner besteehetn Dautticht an:
:edit DAU
7. Druck <TAB>. Dyr Wimm vergöntzt önn Nam, dös haisst, wenn yr aindeuttig
7. Druck <TAB> . Dyr Wimm vergöntzt önn Nam, dös haisst, wenn yr aindeuttig
ist.
Anmörkung: D Vergöntzung geit s für aynn Hauffen Faudungen. Versuech ainfach
<STRG>d und <TAB>. Bsunders nützlich ist dös bei :help .
<STRG>d und <TAB> . Bsunders nützlich ist dös bei :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ZAMMENFASSUNG VON DYR LETZN 7
1. Zipf :help older druck <F1> older <HILF>, um ayn Hilffenster z öffnen.
1. Zipf :help oder druck <F1> oder <HILF> , um ayn Hilffenster z öffnen.
2. Zipf :help FAUDUNG , um auf ayn Hilf gan aynn Befelh z kemmen.
@@ -932,9 +932,9 @@ Anm
5. Erstöll ayn vimrc-Ginschripf zuer Sicherung von deine Mötzneinstöllungen.
6. Druck <STRG>d, aft däßst naach : mit ayner Faudung angfangt haast, dyr-
6. Druck <STRG>d , aft däßst naach : ayn Faudung angfangt haast, dyr-
mitst mügliche Vergöntzungen anzaigt kriegst.
Druck <TAB> für ain Vervollstöndigung yllain.
Druck <TAB> für ain Vervollstöndigung yllain.
@@ -944,10 +944,10 @@ Anm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dös wär ietzet s End von n Wimmschainer. Gangen ist s daa drum, aynn kurtzn
und bündignen Überblik über s Blat WIMM z lifern, netty vil gnueg, däß myn
und bündignen Überblik über s Blat WIMM z lifern, netty vil gnueg, däß myn
für s Eerste wirklich öbbs dyrmit anfangen kan. Dyrmit ist s aber auf kain
Weitn non nit taan; dyr Wimm haat schoon non vil meerer auf Lager. Lis als
Naehsts aynmaal s Benutzerhandbuech: :help user-manual .
Naehsts aynmaal s Benutzerhandbuech: :help user-manual
Zo n Weiterlösn und Weiterlernen wör dös Buech daader zo n Empfelhen:
Vim - Vi Improved - von n OUALLINE Steve
@@ -962,26 +962,20 @@ Anm
3897211262
In dönn Buech kan myn fast allss finddn, was myn mit n Urwimm angeen mecht.
De söxte Ausgaab enthaltt aau schoon öbbs über n Wimm.
Als ietzunde Bezugniss für d Fassung 6.2 und ayn pfrenge Einfüerung dient
dös folgete Buech:
Als ietzunde Bezugniss für d Fassung 7 und ayn pfrenge Einfüerung dient dös
folgete Buech:
vim ge-packt von n WOBST Reinhard
mitp-Verlaag, Buechlaittzal 3-8266-1425-9
mitp-Verlaag, Buechlaittzal 978-3-8266-1781-2
Trotz dyr recht pfrengen Darstöllung ist s durch seine viln nützlichnen Bei-
spiler aau für Einsteiger grad grecht. Probhaeupster und de Beispilschripfer
seind zesig zo n Kriegn; see http://iccf-holland.org/click5.html
seind zesig zo n Kriegn; see http://iccf-holland.org/click5.html
Verfasst habnd dönn Schainer dyr PIERCE Michael C. und WARE Robert K. von dyr
Kolraader Knappnschuel (Colorado School of Mines). Er beruet auf Entwürff, wo
dyr SMITH Charles von dyr Kolraader Allschuel (Colorado State University)
zuer Verfüegung gstöllt haat. Gundpost: bware@mines.colorado.edu.
zuer Verfüegung gstöllt haat. Gundpost: bware@mines.colorado.edu
Für n Wimm haat n dyr MOOLENAAR Bram barechtt.
De bairische Übersötzung stammt von n HELL Sepp 2009. Sein Gundpostbrächt ist
sturmibund@t-online.de
De bairische Übersötzung stammt von n HELL Sepp 2009, ayn Weeng überarechtt
2011. Sein Gundpostbrächt ist sturmibund@t-online.de
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -1,5 +1,5 @@
===============================================================================
= G o t i k a m i n n W I M M - S c h a i n e r - Fassung 1.7D =
= G o t i k a m i n n W I M M - S c h a i n e r - Fassung 1.7 =
===============================================================================
Dyr Wimm ist ayn gro mächtigs Blat, dös was mit aynn Wösn Befelh aufwartt; z
@@ -12,10 +12,10 @@
OBACHT:
Die Faudungen, wost daader finddst, gaand istig s Gwort öndern. Dösswögn
machst eyn n Böstn glei ayn Aamum von derer Dautticht daader. Haast alsnan
dös Gwort daader mit n Befelh "vimtutor bj" ausherlaassn, ist s ee schoon
dös Gwort daader mit n Befelh "vimtutor bar" ausherlaassn, ist s ee schoon
ayn Aamum.
Mir kan s nit oft gnueg sagn, däß der Schainer daader istig gan n Üebn
ghoert. Also muesst schoon aau die Befelh ausfüern, wennst ys gscheid ler-
ghoert. Also muesst schoon aau die Befelh +ausfüern, wennst ys gscheid ler-
nen willst. Mit n Lösn yllain ist s +nit taan!
Ietz schaust grad non, däß dein Föststölltastn nit druckt ist; und aft geest
@@ -24,7 +24,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 1.1: MIT N MÖRKL UMAYNANDFARN
** Dyrmitst mit n Mörkl umaynandkimmst, druck h, j, k und l wie unt zaigt. **
** Dyrmitst mit n Mörkl umaynandkimmst, druck h, j, k und l wie unt zaigt. **
^ Ayn Öslsbrugg:
k De Tastn h ist winster und +geet aau gan winster.
< h l > S l leit zesm und richtt si gan zesm.
@@ -32,13 +32,13 @@
v Mit n k kimmst gan n KOPF.
1. Ietz ruedertst ainfach mit n Mörkl auf n Bildschirm umaynand, hinst däßst
di sicher füelst.
2. Halt d Abhin-Tastn (j) druckt; aft rumplt s ainfach weiter. Netty yso
2. Halt d Abhin-Tastn (j) druckt; aft rumplt s ainfach weiter. Netty yso
kimmst gan dyr naehstn Letzn.
3. Wie gsait, ietz bewögst di also mit derer Tastn gan dyr Letzn 1.2.
Non öbbs: Allweil, wenn dyr niemer ganz wol ist, wasst öbbenn druckt haast, aft
zipfst <ESC>; naacherd bist wider ganz gwon in dyr Befelhs-Artweis.
zipfst <ESC> ; naacher bist wider ganz gwon in dyr Befelhs-Artweis.
Nöbnbei gsait kimmst gwonerweil aau mit de Pfeiltastnen weiter. Aber
@@ -53,17 +53,17 @@ Non öbbs: Allweil, wenn dyr niemer ganz wol ist, wasst öbbenn druckt haast, af
1. Druck d <ESC>-Tastn, dyrmitst aau gwiß in dyr Befelhs-Artweis bist.
2. Demmlt :q! <EIN>.
2. Demmlt :q!<EIN> .
Daa dyrmit benddst ys Blat und verwirffst allss, wasst öbbenn göndert
haast.
3. Balst önn Eingib seghst, gib dö Faudung ein, wo di zo dönn Schainer brun-
gen haat, also vimtutor bj <EIN>.
gen haat, also vimtutor bar<EIN> .
4. Also, wenn ietz allsse sitzt, naacherd füerst d Schritt 1 hinst 3 aus, mit
wasst ys Blat verlaasst und aft wider einhinkimmst.
Anmörkung: Mit :q! <EIN> verwirffst allss, wasst göndert older enther gschribn
Anmörkung: Mit :q!<EIN> verwirffst allss, wasst göndert older enther gschribn
haast. In aynn Öttlych Letznen lernst acht, wiest dös allss in ayner
Dautticht speichertst.
@@ -73,7 +73,7 @@ Anmörkung: Mit :q! <EIN> verwirffst allss, wasst göndert older enther gschrib
** Druck x , dyrmitst dös Zaichen unter n Mörkl löschst. **
1. Bewög di mit n Mörkl auf de mit ---> angmörkte Zeil unt.
1. Bewög di mit n Mörkl auf de mit ---> angmörkte Zeil unt.
2. Zo n Faeler Verbössern farst mit n Mörkl netty auf dös Zaichen, dös wo
glöscht ghoert.
@@ -96,14 +96,14 @@ Und ganz wichtig: Dyrweilst dönn Schainer durcharechtst, versuech nit öbbenn
** Druck i , dyrmitst öbbs einfüegst. **
1. Bewög önn Mörkl zo dyr eerstn untignen Zeil, wo mit ---> angeet.
1. Bewög önn Mörkl zo dyr eerstn untignen Zeil, wo mit ---> angeet.
2. Dyrmitst de eerste Zeil wie de zwaitte machst, bewög önn Mörkl auf dös
eerste Zaichen NAACH derer Stöll, daa wo s Gwort eingfüegt werdn sollt.
3. Druck i und gib dös ein, was abgeet.
4. Wenn ieweils ayn Faeler verweitert ist, aft druck <ESC>; und dyrmit kimmst
4. Wenn ieweils ayn Faeler verweitert ist, aft druck <ESC> ; dyrmit kimmst
gan dyr Befelhsartweis zrugg.
So, und ietz tuest ainfach yso weiter, hinst däß dyr Saz stimmt.
@@ -119,15 +119,15 @@ Und ganz wichtig: Dyrweilst dönn Schainer durcharechtst, versuech nit öbbenn
** Druck A gan n Gwort Anfüegn. **
1. Gee mit n Mörkl gan dyr eerstn untignen Zeil, wo ayn ---> dyrvor haat.
1. Gee mit n Mörkl gan dyr eerstn untignen Zeil, wo ayn ---> dyrvor haat.
Daa ist s gleich, wo gnaun dyr Mörkl in derer Zeil steet.
2. Demmlt A und gib de entspröchetn Ergöntzungen ein.
3. Wennst mit n Anfüegn förtig bist, aft druckst <ESC>, däßst wider eyn de
3. Wennst mit n Anfüegn förtig bist, aft druckst <ESC> , däßst wider eyn de
Befelhsartweis zruggkimmst.
4. So, und ietz geest aft non gan dyr zwaittn mit ---> angmörktn Zeil; und
4. So, und ietz geest aft non gan dyr zwaittn mit ---> angmörktn Zeil; und
daadl machst ys netty yso.
---> In derer Zeil gee
@@ -147,14 +147,14 @@ Und ganz wichtig: Dyrweilst dönn Schainer durcharechtst, versuech nit öbbenn
1. Verlaaß also s Blat, wie s in dyr Letzn 1.2. haisst, mit :q! !
2. Gib dö Faudung eyn n Eingib ein: vim Schainer <EIN> . 'vim' ruefft s Blat
auf, und 'Schainer' haisst de Dautticht, wost barechtn willst. Dyrmit
2. Gib dö Faudung eyn n Eingib ein: vim Schainer<EIN> . 'vim' ruefft s Blat
auf, und 'Schainer' haisst de Dautticht, wost barechtn willst. Dyrmit
haast also ayn Dautticht, dö wost barechtn kanst.
3. Ietz füegst öbbs ein older löschst öbbs, wiest ys in de vorignen Letznen
glernt haast.
4. Speichert de gönderte Dautticht und verlaaß önn Wimm mit :wq <EIN> .
4. Speichert de gönderte Dautticht und verlaaß önn Wimm mit :wq<EIN> .
5. Schmeiß önn Wimmschainer neu an und gee gan dyr folgetn Zammenfassung.
@@ -166,31 +166,31 @@ Und ganz wichtig: Dyrweilst dönn Schainer durcharechtst, versuech nit öbbenn
1. Dyr Mörkl werd mit de Tastnen hjkl older aau mit de Pfeiltastnen gsteuert.
h (winst) j (ab) k (auf) l (zes)
2. Um önn Wimm umbb n Eingib aus z ginnen, demmlt: vim DAUTTICHT <EIN> .
2. Um önn Wimm umbb n Eingib aus z ginnen, demmlt: vim DAUTTICHT<EIN> .
3. Willst önn Wimm verlaassn und aau allss verwerffen, aft gibst ein:
<ESC> :q! <EIN> .
Gan n Verlaassn und Speichern aber zipfst <ESC> :wq <EIN>.
<ESC> und :q!<EIN> .
Gan n Verlaassn und Speichern aber zipfst <ESC> und :wq<EIN> .
4. Willst dös Zaichen löschn, daa wo dyr Mörkl drauf ist, demmltst x .
5. Willst öbbs vor n Mörkl eingöbn, zipfst i und drafter <ESC> .
Mechst ys aber eyn s Zeilnend anhinhöngen, benutzt ys A .
Und ainfach naach n Mörkl füegst ys mit a ein .
Und ainfach naach n Mörkl füegst ys mit a ein.
Anmörkung: Druckst <ESC>, kimmst eyn de Befelhsartweis zrugg older brichst ayn
Faudung ab, dö wo dyr schiefgangen ist.
Anmörkung: Druckst <ESC> , kimmst eyn de Befelhsartweis zrugg older brichst
ayn Faudung ab, dö wo dyr schiefgangen ist.
Ietz tue mit dyr Letzn 2 weiter.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 2.1.: LÖSHFAUDUNGEN
** Demmlt dw , dyrmitst ayn Wort löschst **
** Demmlt dw , dyrmitst ayn Wort löschst. **
1. Druck <ESC>, dyrmit s aau gwiß ist, däßst in dyr Befelhsartweis bist.
1. Druck <ESC> , dyrmit s aau gwiß ist, däßst in dyr Befelhsartweis bist.
2. Bewög önn Mörkl zo dyr mit ---> angmörktn Zeil unt.
2. Bewög önn Mörkl zo dyr mit ---> angmörktn Zeil unt.
3. Und daa geest ietz auf n Anfang von aynn Wort, dös wo glöscht ghoert.
@@ -211,9 +211,9 @@ Anmörkung: Druckst <ESC>, kimmst eyn de Befelhsartweis zrugg older brichst ayn
** Gib d$ ein, däßst hinst eyn s Zeilnend löschst. **
1. Druck <ESC> , dyrmitst aau gwiß in dyr Befelhsartweis bist.
1. Druck <ESC> , dyrmitst aau gwiß in dyr Befelhsartweis bist.
2. Bewög önn Mörkl hinst eyn de mit ---> angmörkte Zeil untn.
2. Bewög önn Mörkl hinst eyn de mit ---> angmörkte Zeil untn.
3. Gee mit n Mörkl auf s End von dyr faelerfreien Zeil, NAACH n eerstn . .
@@ -243,11 +243,11 @@ Anmörkung: Druckst <ESC>, kimmst eyn de Befelhsartweis zrugg older brichst ayn
Daader also, was i wie löschn kan:
w - hinst eyn n Anfang von n naehstn Wort AANE dönn sein eersts Zaichen.
e - gan n End von n ietzundn Wort MIT dönn seinn lösstn Zaichen.
$ - zo n End von dyr Zeil MIT derer irn lösstn Zaichen.
w - hinst eyn n Anfang von n naehstn Wort AANE dönn sein eersts Zaichen.
e - gan n End von n ietzundn Wort MIT dönn seinn lösstn Zaichen.
$ - zo n End von dyr Zeil MIT derer irn lösstn Zaichen.
Also löscht de Tastnfolg de umbb n Mörkl hinst eyn s Wortend.
Also löscht de Tastnfolg de allss umbb n Mörkl hinst eyn s Wortend.
Anmörkung: Gib i grad dös zwaitte Zaichen yllain ein, ruckt halt dyr Mörkl
entspröchet weiter.
@@ -255,9 +255,9 @@ Anmörkung: Gib i grad dös zwaitte Zaichen yllain ein, ruckt halt dyr Mör
Letzn 2.4: MIT AYNN ZÖLER D WOLENDER ÄFERN
** Gib i ayn Zal vor aynn Wolend ein, werd dös Sel halt widerholt. **
** Gib i ayn Zal vor aynn Wolend ein, werd dös Sel entspröchet oft gangen. **
1. Bewög önn Mörkl gan n Anfang von dyr Zeil mit ---> dyrvor unt.
1. Bewög önn Mörkl gan n Anfang von dyr Zeil mit ---> dyrvor unt.
2. Zipf 2w , däßst mit n Mörkl zwai Wörter weitergeest.
@@ -278,13 +278,13 @@ Anmörkung: Gib i grad dös zwaitte Zaichen yllain ein, ruckt halt dyr Mör
Letzn 2.5: DURCH AYNN ZÖLER GLEI MEERER LÖSCHN
** Ayn Zal vor aynn Pfemerer äfert dönn um seln Werd. **
** Ayn Zal vor aynn Pfemerer füert dönn entspröchet oft aus. **
Also, i mecht löschn, und zwaar öbbs Bestimmts, und dös so und so oft: Daa
dyrzue benutz i aynn Zöler:
d Zöler Wolend (also önn Bewögungsschrit)
1. Bewög önn Mörkl gan n eerstn Wort in GROOSSBUECHSTABN in dyr mit ---> an-
1. Bewög önn Mörkl zo n eerstn Wort in GROOSSBUECHSTABN in dyr mit ---> an-
gmörktn Zeil.
2. Demmlt d2w , dyrmitst de ganz grooßgschribnen Wörter löschst.
@@ -325,9 +325,9 @@ Anmörkung: Gib i grad dös zwaitte Zaichen yllain ein, ruckt halt dyr Mör
** Zipf u , dyrmitst de lösstn Faudungen ruggltst **
** older U , um ayn gantze Zeil widerherzstölln. **
** older U , um ayn gantze Zeil widerherzstölln. **
1. Bewög önn Mörkl gan dyr mit ---> angmörktn Zeil unt und gee dyrmit auf n
1. Bewög önn Mörkl gan dyr mit ---> angmörktn Zeil unt und gee dyrmit auf n
eerstn Faeler.
2. Zipf x , däßst dös eerste z vile Zaichen löschst.
3. Ietz demmlt u , dyrmitst de lösste Faudung ruggltst.
@@ -358,13 +358,13 @@ Anmörkung: Gib i grad dös zwaitte Zaichen yllain ein, ruckt halt dyr Mör
Dyr PFEMERER gibt an, WAS taan ghoert, öbbenn d = löschn (»delete«).
[ZAL] - Ayn Zal KAN myn angöbn, wenn myn halt ayn Wolend öfter habn will.
S WOLEND, also dyr Schrit WOHIN, besagt, auf was i aushin will, öbbenn
auf ayn Wort ( w ), s End von dyr Zeil ( $ ) und so weiter.
auf aynn Wortanfang ( w ), s End von dyr Zeil ( $ ) und so weiter.
6. Däßst eyn n Anfang von dyr Zeil hinkimmst, schreib aynn Nuller: 0
7. Um öbbs Vorigs wider z ruggln, gib ein: u (klain also)
Um allsand Önderungen in ayner Zeil z ruggln, haast: U (also grooß)
Um "rugg-z-ruggln", also allss wider herzstölln, zipf: <STRG>r
Um "rugg-z-ruggln", also allss wider herzstölln, zipf: <STRG>r
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 3.1: ANFÜEGN (»put«)
@@ -372,10 +372,10 @@ Anmörkung: Gib i grad dös zwaitte Zaichen yllain ein, ruckt halt dyr Mör
** Zipf p , dyrmitst öbbs gnetty Glöschts naach n Mörkl anfüegst. **
1. Bewög önn Mörkl gan dyr eerstn untignen Zeil mit ---> dyrvor.
1. Bewög önn Mörkl gan dyr eerstn untignen Zeil mit ---> dyrvor.
2. Zipf dd , um sele Zeil z löschn und dyrmit in aynn Wimm-"Roster" zo n
speichern.
2. Zipf dd , um sele Zeil z löschn und dyrmit in ayner Wimm-Osn zo n Spei-
chern.
3. Bewög önn Mörkl gan dyr Zeil c), ÜBER derer, daa wo de glöschte Zeil ein-
hinkemmen sollt.
@@ -395,7 +395,7 @@ Anmörkung: Gib i grad dös zwaitte Zaichen yllain ein, ruckt halt dyr Mör
** Zipf rx , um dös Zaichen unter n Mörkl durch x z ersötzn. **
1. Bewög önn Mörkl zo dyr eerstn untignen Zeil mit ---> dyrvor.
1. Bewög önn Mörkl zo dyr eerstn untignen Zeil mit ---> dyrvor.
2. Bewög önn Mörkl, hinst däß yr auf n eerstn Faeler steet.
@@ -418,13 +418,13 @@ Anmörkung: Vergiß nit drauf, däßst mit n Anwenddn lernen solltst und nit öb
** Um hinst eyn s Wortend z öndern, zipf ce . **
1. Gee mit n Mörkl auf de eerste mit ---> angmörkte Zeil.
1. Gee mit n Mörkl auf de eerste mit ---> angmörkte Zeil.
2. Ietz farst netty auf s "s" von Wstwr hin.
3. Zipf ce ein und aft d Wortberichtigung, daader also örter .
4. Druck <ESC> und bewög önn Mörkl gan n naehstn Zaichen, wo göndert ghoert.
4. Druck <ESC> und bewög önn Mörkl zo n naehstn Zaichen, wo göndert ghoert.
5. Äfert d Schritt 3 und 4, hinst däß dyr eerste Saz wie dyr zwaitte ist.
@@ -443,12 +443,12 @@ ce löscht also s Wort und schlaaufft di eyn d Eingaab-Artweis.
1. Dyr Önder-Pfemerer arechtt anleich wie d Löshfaudung mit d , und zwaar
yso:
c [Zal] Bewögungsschritt (Wolend)
c [Zal] Bewögungsschrit (Wolend)
2. D Wolender seind de gleichn, öbbenn w für Wort und $ für s Zeilnend.
2. D Wolender seind de gleichn, öbbenn w für Wort und $ für s Zeilnend.
3. Bewög di zo dyr eerstn untignen Zeil mit ---> .
3. Bewög di zo dyr eerstn untignen Zeil mit ---> .
4. Ietz geest auf dönn eerstn Faeler.
@@ -494,14 +494,14 @@ Anmörkung: Lis dö gantze Letzn daader durch, ee wennst iewign öbbs unternimms
Mörk dyr de Zeilnnummer für n Schrit 3.
Anmörkung: Müglicherweis seghst aau önn Mörklbefand in n zesmen untern Bild-
schirmögg. Aft ist s "Lindl" (»ruler«) eingstöllt; schau dyrzue mit
n Befelh :help 'ruler' naach.
schirmögg. Aft ist s "Lindl" (»ruler«) eingstöllt; meerer über dös
laasst dyr dyr Befelh :help 'ruler' ausher.
2. Druck G , um an s End von dyr Dautticht z kemmen.
gg gibst ein, däßst gan n Anfang von dyr Dautticht aufhinkimmst.
3. Gib d Nummer von derer Zeil ein, daa wost vorher warst, und aft non G .
Dös bringt di zrugg gan seler Zeil, daa wost stuenddst, wiest dös eerste
Maal <STRG>g gadruckst.
Maal <STRG>g gadruckst.
4. Wennst di sicher gnueg füelst, aft füer d Schritt 1 hinst 3 aus.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -513,15 +513,15 @@ Anmörkung: Müglicherweis seghst aau önn Mörklbefand in n zesmen untern Bi
1. Du gibst also in dyr Befelhsartweis s Zaichen / ein. Dös sel wie aau dyr
Mörkl erscheinend drauf unt auf n Schirm, netty wie bei dyr Faudung : .
2. Ietz zipf 'Faeeler' <EIN>. Netty um dös 'Faeeler' willst ietz suechen.
2. Ietz zipf Faeeler<EIN> . Netty um dös 'Faeeler' willst ietz suechen.
3. Willst um gnaun dönn Ausdruk weitersuechen, zipf ainfach n (wie »next«).
Willst hinzrugg suechen, aft gibst N ein.
4. Um von Haus aus zruggaus z suechen, nimm ? statt / her.
5. Dyrmitst wider daa hinkimmst, wost herkemmen bist, druck <STRG>o, und dös
öfter, wennst weiter zrugg willst. Mit <STRG>i widerum kimmst vorwärts.
5. Dyrmitst wider daa hinkimmst, wost herkemmen bist, nimm <STRG>o , und dös
öfter, wennst weiter zrugg willst. Mit <STRG>i widerum kimmst vorwärts.
---> Aynn Faeler schreibt myn nit "Faeeler"; Faeeler ist ayn Faeler
@@ -534,7 +534,7 @@ Anmörkung: Wenn d Suech s Dauttichtend dyrraicht haat, geet s eyn n Anfang wi-
** Zipf % , um de entspröchete Klammer ) , ] older } z finddn. **
1. Sötz önn Mörkl auf iewign aine von dene drei Klammern ( , [ older {
in dyr untignen Zeil, wo mit ---> angmörkt ist.
in dyr untignen Zeil, wo mit ---> angmörkt ist.
2. Ietzet zipf s Zaichen % .
@@ -556,7 +556,7 @@ Anmörkung: Um dö Müglichkeit gaast bsunders froo sein, wennst aynmaal in ay
** Zipf :s/alt/neu/g , um 'alt' durch 'neu' zo n Ersötzn. **
1. Gee mit n Mörkl zo dyr unt steehetn mit ---> angmörktn Zeil.
1. Gee mit n Mörkl zo dyr unt steehetn mit ---> angmörktn Zeil.
2. Zipf :s/dee/de <EIN> . Der Befelh ersötzt alsnan grad dös +eerste "dee",
wo vürkimmt.
@@ -577,60 +577,60 @@ Anmörkung: Um dö Müglichkeit gaast bsunders froo sein, wennst aynmaal in ay
ZAMMENFASSUNG VON DYR LETZN 4
1. <STRG>g zaigt dönn ietzundn Dauttichtbefand und önn Darstand dyrvon an.
G bringt di an s End von dyr Dautticht.
<Zal> G bringt di gan dyr entspröchetn Zeilnnummer.
gg bringt di zo dyr eerstn Zeil.
G bringt di an s End von dyr Dautticht.
<Zal>G bringt di gan dyr entspröchetn Zeilnnummer.
<Zal>gg geet +grad yso.
gg bringt di zo dyr eerstn Zeil.
2. D Eingaab von / mit aynn Ausdruk suecht VÜRSHLING um dönn Ausdruk.
Gibst ? und aynn Suechbegrif ein, suecht s um dönn ÄRSHLING.
Zipf naach ayner Suech n ; naacherd werd in de gleiche Richtung weiter-
gsuecht. Mit N geet s umkeerter weiter.
<STRG>o bringt di zo ölterne Befändd zrugg, <STRG>i zo neuerne.
gsuecht. Mit N geet s umkeerter weiter.
<STRG>o bringt di zo ölterne Befändd zrugg, <STRG>i zo neuerne.
3. D Eingaab von % , wenn dyr Mörkl auf ainer von dene Klammern steet: ({[
)]} , bringt di zo dyr Gögnklammer.
4. Um dös eerste Vürkemmen von "alt" in ayner Zeil durch "neu" z ersötzn,
zipf :s/alt/neu .
Um allsand in ayner Zeil z ersötzn, zipf :s/alt/neu/g .
4. Um dös eerste Vürkemmen von "alt" in ayner Zeil durch "neu" z ersötzn,
zipf :s/alt/neu .
Um allsand in ayner Zeil z ersötzn, zipf :s/alt/neu/g .
Mechst allss in zwo Zeiln ersötzn, demmlt zo n Beispil :5,6s/alt/neu/g .
Mechst allss in dyr gantzn Dautticht ersötzn, gib ein: :%s/alt/neu/g .
Mechst allss in dyr gantzn Dautticht ersötzn, gib ein: :%s/alt/neu/g .
Willst ayn ieds Maal bstaetln, höng 'c' wie »confirm« hint anhin.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 5.1: ZWISCHNDRINN AYNN AUSSERIGNEN BEFELH AUSFÜERN
** Willst ayn Gfäßfaudung ausfüern, gib ainfach dö sel naach :! ein. **
** Willst ayn Gfäßfaudung ausfüern, gib ainfach dö sel naach :! ein. **
1. Zipf dönn bekanntn Befelh : , dyrmitst mit n Mörkl auf n Bildschirm
ganz abhin kimmst. Draufhin kanst aynn gwonen Gfäßbefelh eingöbn.
2. Zeerst kimmt aber non ayn Ruefzaichen ! . Und ietz haast de Müglich-
2. Zeerst kimmt aber non ayn Ruefzaichen ! . Und ietzet haast d Müglich-
keit, ayn beliebige ausserige Gfäßfaudung auszfüern.
3. Als Beispil zipf :!ls <EIN> ; und schoon haast ayn Auflistung von deinn
3. Als Beispil zipf :!ls<EIN> ; und schoon haast ayn Auflistung von deinn
Verzaichniss, netty wie wennst ganz gwon in n Eingib wärst. Geet ls
aus iewign aynn Grund nit, aft pröblt s mit :!dir <EIN> .
aus iewign aynn Grund nit, aft pröblt s mit :!dir<EIN> .
Also non aynmaal: Mit dönn Angang kan ayn iede beliebige ausserige Faudung aus-
gfüert werdn, aau mit Auerwerdd.
Und wolgmörkt: Allsand Befelh, wo mit : angeend, müessend mit <EIN> bstö-
tigt werdn. Dös dyrsagn myr vürbaß niemer.
Und wolgmörkt: Alle Befelh, wo mit : angeend, müessend mit <EIN> bstö-
tigt werdn. Dös dyrsagn myr fürbaß +niemer.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 5.2: NON MEERER DRÜBER, WIE MYN DAUTTICHTN SCHREIBT
** Um öbbs Gönderts neu z speichern, zipf :w NEUER_DAUTTICHTNAM. **
** Um öbbs Gönderts neu z speichern, zipf :w NEUER_DAUTTICHTNAM . **
1. Zipf :!dir older :!ls , däßst dyr ayn Auflistung von deinn Verzaich-
niss ausherlaasst. Däßst dyrnaach <EIN> eingöbn muesst, waisst ee schoon.
niss ausherlaasst. Däßst drafter <EIN> eingöbn muesst, waisst ee schoon.
2. Suech dyr aynn Dauttichtnam aus, dönn wo s non nit geit, öbbenn POCH.
2. Suech dyr aynn Dauttichtnam aus, dönn wo s non nit geit, öbbenn POCH .
3. Ietz demmlt: :w POCH (also mit POCH als dönn neuen Dauttichtnam).
3. Ietz demmlt: :w POCH (also mit POCH als dönn neuen Dauttichtnam).
4. Dös speichert ietz de gantze Dautticht, also önn Wimmschainer, unter dönn
Nam POCH. Dös kanst leicht überprüeffen, indem däßst ainfach :!ls older
@@ -641,7 +641,7 @@ Anmörkung: Stigst ietz aus n Wimm aus und gännst n aft wider mit vim POCH
wiest n gspeichert haast.
5. Ietz verweitert dö Dautticht - fallsst s Fenstl haast - , mit :!del POCH
beziehungsweis bei aynn Ainslgebäu mit :!rm POCH .
beziehungsweis bei aynn Unixgebäu mit :!rm POCH .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 5.3: AYNN TAIL VON N GWORT ZO N SPEICHERN AUSWALN
@@ -655,15 +655,15 @@ Anmörkung: Stigst ietz aus n Wimm aus und gännst n aft wider mit vim POCH
3. Druck s Zaichen : . Ganz unt auf n Bildschirm erscheint :'<,'> .
4. Zipf w POCH , wobei s dönn Dauttichtnam POCH non nit geit. Vergwiß di,
däßst dös :'<,'>w POCH aau +seghst, ee wennst <EIN> druckst.
däßst dös :'<,'>w POCH aau +seghst, ee wennst <EIN> druckst.
5. Dyr Wimm schreibt de ausgwaltn Zeil eyn de Dautticht POCH einhin. Benutz
5. Dyr Wimm schreibt de ausgwaltn Zeiln eyn de Dautticht POCH einhin. Benutz
:!dir older :!ls , däßst dös überprüeffst. Lösh s fein nit öbbenn! Mir
brauchend s nömlich für de naehste Letzn.
Anmörkung: Druckt myn v , ginnt d Sichtisch-Auswal. Du kanst mit n Mörkl um-
aynandfarn, um d Auswal z veröndern. Drafter kan myn mit yn aynn
Pfemerer mit dönn Gwort öbbs machen. Zo n Beispil löscht d dös
Pfemerer mit dönn Gwort öbbs machen. Zo n Beispil löscht d dös
Gwort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 5.4: EINLÖSN UND ZAMMENFÜERN VON DAUTTICHTN
@@ -692,10 +692,10 @@ Anmörkung: Du kanst aau d Ausgaab von aynn Ausserigbefelh einlösn. Zo n Bei
ZAMMENFASSUNG VON DYR LETZN 5
1. :!FAUDUNG füert aynn ausserignen Befelh aus.
1. :!FAUDUNG füert aynn ausserignen Befelh aus.
Daader ayn Öttlych gwänddte Beispiler:
(Fenstl) (Ainsl - Leinsl)
(Fenstl) (Unix - Linux)
:!dir :!ls - listt s Verzaichniss auf.
:!del DAUTTICHT :!rm DAUTTICHT - verweitert sele Dautticht.
@@ -715,19 +715,19 @@ Anmörkung: Du kanst aau d Ausgaab von aynn Ausserigbefelh einlösn. Zo n Bei
Letzn 6.1: ZEIL ÖFFNEN (»open«)
** Zipf o, um ayn Zeil unterhalb n Mörkl z öffnen und eyn d **
** Zipf o , um ayn Zeil unterhalb n Mörkl z öffnen und eyn d **
** Einfüegartweis z kemmen. **
1. Bewög önn Mörkl zo dyr eerstn mit ---> angmörktn Zeil unt.
1. Bewög önn Mörkl zo dyr eerstn mit ---> angmörktn Zeil unt.
2. Zipf o (klain), um ayn Zeil UNTERHALB n Mörkl z öffnen und mit dyr Ein-
2. Zipf o (klain), um ayn Zeil UNTERHALB n Mörkl z öffnen und mit dyr Ein-
füegartweis weiterztuen.
3. Ietz zipf ayn Weeng ayn Gwort und druck <ESC>, um d Einfüegartweis z ver-
3. Ietzet zipf ayn Weeng öbbs und druck <ESC> , um d Einfüegartweis z ver-
laassn.
---> Mit o werd dyr Mörkl auf de offene Zeil in dyr Einfüegartweis gsötzt.
---> Mit o werd dyr Mörkl in dyr Einfüegartweis auf de offene Zeil gsötzt.
4. Um ayn Zeil OBERHALB n Mörkl aufzmachen, gib ainfach aynn groosss O statt
4. Um ayn Zeil OBERHALB n Mörkl aufzmachen, gib ainfach ayn groosss O statt
yn aynn klainen ein. Versuech dös auf dyr untignen Zeil.
---> Öffnet ayn Zeil über derer daader mit O , wenn dyr Mörkl auf derer Zeil
@@ -740,14 +740,14 @@ Anmörkung: Du kanst aau d Ausgaab von aynn Ausserigbefelh einlösn. Zo n Bei
** Zipf a , um öbbs NAACH n Mörkl einzfüegn. **
1. Bewög önn Mörkl gan n Anfang von dyr eerstn Üebungszeil mit ---> unt.
1. Bewög önn Mörkl gan n Anfang von dyr eerstn Üebungszeil mit ---> unt.
2. Druck e , hinst däß dyr Mörkl an n End von Zei steet.
3. Zipf ayn klains a , um öbbs NAACH n Mörkl anzfüegn.
4. Vergöntz dös Wort wie in dyr Zeil drunter. Druck <ESC>, um d Schreib-Art-
weis z verlaassn.
4. Vergöntz dös Wort wie in dyr Zeil drunter. Druck <ESC> , um d Schreib-
Artweis z verlaassn.
5. Bewög di mit e zo n naehstn ungantzn Wort und widerhol d Schritt 3 und
4.
@@ -763,13 +763,13 @@ Anmörkung: a , i und A bringend ainn gleichermaaßn eyn d Einfüegartwei
** Demmlt ayn groosss R , um meerer als wie grad ain Zaichen z ersötzn. **
1. Bewög önn Mörkl zo dyr eerstn untignen, mit ---> angmörktn Zeil.
1. Bewög önn Mörkl zo dyr eerstn untignen, mit ---> angmörktn Zeil.
Gee mit n Mörkl gan n Anfang von n eerstn xxx .
2. Ietz druck R und zipf sele Zal, wo drunter in dyr zwaittn Zeil steet,
yso däß de sel s xxx ersötzt.
3. Druck <ESC> , um d Ersötzungsartweis z verlaassn. Du gspannst, däß dyr
3. Druck <ESC> , um d Ersötzungsartweis z verlaassn. Du gspannst, däß dyr
Rest von dyr Zeil unveröndert bleibt.
4. Äfert die Schritt, um dös überblibne xxx z ersötzn.
@@ -795,14 +795,14 @@ Anmörkung: D Ersötzungsartweis ist wie d Einfüegartweis, aber ayn ieds einde
5. Demmlt p , um dös Gwort einzfüegn, und aft: a zwaitte <ESC> .
6. Benutz d Sichtischartweis, um " Eintrag." auszwaln, aam s pfelfs y, be-
6. Benutz d Sichtischartweis, um " Eintrag." auszwaln, aam s mittls y , be-
wög di gan n End von dyr naehstn Zeil mit j$ und füeg s Gwort dortn mit
p an.
---> a) dös ist dyr eerste Eintrag.
b)
Anmörkung: Du kanst y aau als Pfemerer verwenddn; yw aamt ain Wort.
Anmörkung: Du kanst y aau als Pfemerer verwenddn; yw zo n Beispil aamt
hinst eyn n naehstn Wortanfang (aane dönn selber).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 6.5: SCHALTTER SÖTZN
@@ -829,18 +829,18 @@ Anmörkung: Sollt klain/grooß bei ayner ainzignen Suech wurst sein, benutz \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ZAMMENFASSUNG VON DYR LETZN 6
1. Zipf o , um ayn Zeil UNTERHALB n Mörkl z öffnen und d Einfüegartweis z
ginnen.
Zipf O , um ayn Zeil OBERHALB n Mörkl z öffnen.
1. Zipf o , um ayn Zeil UNTERHALB n Mörkl z öffnen und d Einfüegartweis z
ginnen.
Zipf O , um ayn Zeil OBERHALB n Mörkl z öffnen.
2. Zipf a , um NAACH n Mörkl ayn Gwort einzfüegn.
Zipf A , um ayn Gwort naach n Zeilnend anzfüegn.
2. Zipf a , um NAACH n Mörkl ayn Gwort einzfüegn.
Zipf A , um ayn Gwort naach n Zeilnend anzfüegn.
3. D Faudung e bringt di gan n End von aynn Wort.
4. Dyr Pfemerer y (»yank«) aamt öbbs, p (»put«) füegt dös ein.
5. Ayn groosss R geet eyn d Ersötzungsartweis, hinst däß myn <ESC> druckt.
5. Ayn groosss R geet eyn d Ersötzungsartweis, hinst däß myn <ESC> druckt.
6. D Eingaab von ":set xxx" sötzt de Zwisl "xxx". Ayn Öttlych Zwisln seind:
'ic' 'ignorecase' Grooß/klain wurst bei ayner Suech
@@ -853,7 +853,7 @@ Anmörkung: Sollt klain/grooß bei ayner ainzignen Suech wurst sein, benutz \
Letzn 7.1: AYN HILFGWORT AUFRUEFFEN
** Nutz dös einbaute Hilfgebäu, de "Betribsanlaittung" **
** Nutz dös einbaute Hilfgebäu, de "Betribsanlaittung". **
Eyn n Wimm ist ayn ausfüerliche "Gebrauchsanweisung" einbaut. Für s Eerste
pröblt ainfach ains von dene dreu aus:
@@ -866,7 +866,7 @@ Anmörkung: Sollt klain/grooß bei ayner ainzignen Suech wurst sein, benutz \
Demmlt :q <EIN> , um s Hilffenster zo n Schliessn.
Du kanst zo so guet wie allssand ayn Hilf finddn, indem däßst yn dyr Faudung
:help aynn Auerwerd naachstöllst und istig <EIN> nit vergisst. Pröblt dös:
:help aynn Auerwerd naachstöllst und istig <EIN> nit vergisst. Pröblt dös:
:help w
:help c_CTRL-D
@@ -876,14 +876,14 @@ Anmörkung: Sollt klain/grooß bei ayner ainzignen Suech wurst sein, benutz \
Letzn 7.2: ERSTÖLL AYN GIN-SCHRIPF
** Mutz önn Wimm mit de einbautn Faehigkeitn auf **
** Mutz önn Wimm mit de einbautn Faehigkeitn auf. **
Dyr Wimm besitzt ayn Wösn Schäftungen, wo über n Urwimm aushingeend, aber de
meerern dyrvon seind in dyr Vorgaab ausgschaltt. Dyrmitst meerer aus n Wimm
ausherholst, erstöllst ayn "vimrc"-Dautticht.
1. Lög ayn "vimrc"-Dautticht an; dös geet ie naach Betribsgebäu verschidn:
:e ~/.vimrc für s Ainsl
:e ~/.vimrc für s Unix
:e $VIM/_vimrc bei n Fenstl
2. Ietz lis önn Inhalt von dyr Beispil-"vimrc"-Dautticht ein:
@@ -892,14 +892,14 @@ Anmörkung: Sollt klain/grooß bei ayner ainzignen Suech wurst sein, benutz \
3. Speichert de Dautticht mit:
:w
4. Bei n naehstn Gin von n Wimm ist aft d Füegnussvürherhöbung zuegschaltt.
4. Bei n naehstn Gin von n Wimm ist aft d Füegnussvürherhöbung zuegschalttn.
Du kanst dyr allss eyn dö Dautticht einhinschreibn, wasst bständig habn
willst. Meerer dyrzue erfarst unter: :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Letzn 7.3: VERGÖNTZN
** Befelhszeilnvergöntzung mit <STRG>d und <TAB> **
** Befelhszeilnvergöntzung mit <STRG>d und <TAB> **
1. Vergwiß di, däß dyr Wimm nit auf n Urwimm-"Glais" fart: :set nocp
@@ -907,22 +907,22 @@ Anmörkung: Sollt klain/grooß bei ayner ainzignen Suech wurst sein, benutz \
older :!dir
3. Zipf önn Anfang von ayner Faudung: :e
4. Druck <STRG>d , und dyr Wimm zaigt ayn Listn von Faudungen, wo mit "e"
4. Druck <STRG>d , und dyr Wimm zaigt ayn Listn von Faudungen, wo mit "e"
angeend.
5. Druck <TAB> , und dyr Wimm vervollstöndigt önn Faudungsnam zo ":edit".
5. Druck <TAB> , und dyr Wimm vervollstöndigt önn Faudungsnam zo ":edit".
6. Füeg ayn Laerzaichen und önn Anfang von ayner besteehetn Dautticht an:
:edit DAU
7. Druck <TAB>. Dyr Wimm vergöntzt önn Nam, dös haisst, wenn yr aindeuttig
7. Druck <TAB> . Dyr Wimm vergöntzt önn Nam, dös haisst, wenn yr aindeuttig
ist.
Anmörkung: D Vergöntzung geit s für aynn Hauffen Faudungen. Versuech ainfach
<STRG>d und <TAB>. Bsunders nützlich ist dös bei :help .
<STRG>d und <TAB> . Bsunders nützlich ist dös bei :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ZAMMENFASSUNG VON DYR LETZN 7
1. Zipf :help older druck <F1> older <HILF>, um ayn Hilffenster z öffnen.
1. Zipf :help oder druck <F1> oder <HILF> , um ayn Hilffenster z öffnen.
2. Zipf :help FAUDUNG , um auf ayn Hilf gan aynn Befelh z kemmen.
@@ -932,9 +932,9 @@ Anmörkung: D Vergöntzung geit s für aynn Hauffen Faudungen. Versuech ainfa
5. Erstöll ayn vimrc-Ginschripf zuer Sicherung von deine Mötzneinstöllungen.
6. Druck <STRG>d, aft däßst naach : mit ayner Faudung angfangt haast, dyr-
6. Druck <STRG>d , aft däßst naach : ayn Faudung angfangt haast, dyr-
mitst mügliche Vergöntzungen anzaigt kriegst.
Druck <TAB> für ain Vervollstöndigung yllain.
Druck <TAB> für ain Vervollstöndigung yllain.
@@ -944,10 +944,10 @@ Anmörkung: D Vergöntzung geit s für aynn Hauffen Faudungen. Versuech ainfa
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dös wär ietzet s End von n Wimmschainer. Gangen ist s daa drum, aynn kurtzn
und bündignen Überblik über s Blat WIMM z lifern, netty vil gnueg, däß myn
und bündignen Überblik über s Blat WIMM z lifern, netty vil gnueg, däß myn
für s Eerste wirklich öbbs dyrmit anfangen kan. Dyrmit ist s aber auf kain
Weitn non nit taan; dyr Wimm haat schoon non vil meerer auf Lager. Lis als
Naehsts aynmaal s Benutzerhandbuech: :help user-manual .
Naehsts aynmaal s Benutzerhandbuech: :help user-manual
Zo n Weiterlösn und Weiterlernen wör dös Buech daader zo n Empfelhen:
Vim - Vi Improved - von n OUALLINE Steve
@@ -962,26 +962,20 @@ Anmörkung: D Vergöntzung geit s für aynn Hauffen Faudungen. Versuech ainfa
3897211262
In dönn Buech kan myn fast allss finddn, was myn mit n Urwimm angeen mecht.
De söxte Ausgaab enthaltt aau schoon öbbs über n Wimm.
Als ietzunde Bezugniss für d Fassung 6.2 und ayn pfrenge Einfüerung dient
dös folgete Buech:
Als ietzunde Bezugniss für d Fassung 7 und ayn pfrenge Einfüerung dient dös
folgete Buech:
vim ge-packt von n WOBST Reinhard
mitp-Verlaag, Buechlaittzal 3-8266-1425-9
mitp-Verlaag, Buechlaittzal 978-3-8266-1781-2
Trotz dyr recht pfrengen Darstöllung ist s durch seine viln nützlichnen Bei-
spiler aau für Einsteiger grad grecht. Probhaeupster und de Beispilschripfer
seind zesig zo n Kriegn; see http://iccf-holland.org/click5.html
seind zesig zo n Kriegn; see http://iccf-holland.org/click5.html
Verfasst habnd dönn Schainer dyr PIERCE Michael C. und WARE Robert K. von dyr
Kolraader Knappnschuel (Colorado School of Mines). Er beruet auf Entwürff, wo
dyr SMITH Charles von dyr Kolraader Allschuel (Colorado State University)
zuer Verfüegung gstöllt haat. Gundpost: bware@mines.colorado.edu.
zuer Verfüegung gstöllt haat. Gundpost: bware@mines.colorado.edu
Für n Wimm haat n dyr MOOLENAAR Bram barechtt.
De bairische Übersötzung stammt von n HELL Sepp 2009. Sein Gundpostbrächt ist
sturmibund@t-online.de
De bairische Übersötzung stammt von n HELL Sepp 2009, ayn Weeng überarechtt
2011. Sein Gundpostbrächt ist sturmibund@t-online.de
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -17,6 +17,17 @@ CROSS = no
# check also the executables
MINGWOLD = no
# Link against the shared versions of libgcc/libstdc++ by default. Set
# STATIC_STDCPLUS to "yes" to link against static versions instead.
STATIC_STDCPLUS=no
#STATIC_STDCPLUS=yes
# Note: -static-libstdc++ is not available until gcc 4.5.x.
LDFLAGS += -shared
ifeq (yes, $(STATIC_STDCPLUS))
LDFLAGS += -static-libgcc -static-libstdc++
endif
ifeq ($(CROSS),yes)
DEL = rm
ifeq ($(MINGWOLD),yes)
@@ -33,7 +44,9 @@ DEL = del
endif
endif
CXX := $(CROSS_COMPILE)g++
WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -DRC_INVOKED
WINDRES := $(CROSS_COMPILE)windres
WINDRES_CXX = $(CXX)
WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED
LIBS := -luuid
RES := gvimext.res
DEFFILE = gvimext_ming.def
@@ -46,7 +59,7 @@ DLL := gvimext.dll
all: all-before $(DLL) all-after
$(DLL): $(OBJ) $(RES) $(DEFFILE)
$(CXX) -shared $(CXXFLAGS) -s -o $@ \
$(CXX) $(LDFLAGS) $(CXXFLAGS) -s -o $@ \
-Wl,--enable-auto-image-base \
-Wl,--enable-auto-import \
-Wl,--whole-archive \
@@ -58,7 +71,7 @@ gvimext.o: gvimext.cpp
$(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
$(RES): gvimext_ming.rc
$(WINDRES) --input-format=rc --output-format=coff -DMING $? -o $@
$(WINDRES) $(WINDRES_FLAGS) --input-format=rc --output-format=coff -DMING $? -o $@
clean: clean-custom
-$(DEL) $(OBJ) $(RES) $(DLL)

View File

@@ -1,6 +1,6 @@
#
# Makefile for VIM on Win32, using Cygnus gcc
# Last updated by Dan Sharp. Last Change: 2010 Feb 24
# Last updated by Dan Sharp. Last Change: 2010 Nov 03
#
# Also read INSTALLpc.txt!
#
@@ -27,6 +27,7 @@
# MZSCHEME_VER define to version of MzScheme being used (209_000)
# DYNAMIC_MZSCHEME no or yes: use yes to load the MzScheme DLLs dynamically (yes)
# MZSCHEME_DLLS path to MzScheme DLLs (libmzgc and libmzsch), for "static" build.
# MZSCHEME_USE_RACKET define to use "racket" instead of "mzsch".
# LUA define to path to Lua dir to get Lua support (not defined)
# LUA_VER define to version of Lua being used (51)
# DYNAMIC_LUA no or yes: use yes to load the Lua DLL dynamically (yes)
@@ -254,16 +255,22 @@ ifndef MZSCHEME_GENERATE_BASE
MZSCHEME_GENERATE_BASE=no
endif
ifndef MZSCHEME_USE_RACKET
MZSCHEME_MAIN_LIB=mzsch
else
MZSCHEME_MAIN_LIB=racket
endif
ifeq (yes, $(DYNAMIC_MZSCHEME))
DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
else
ifndef MZSCHEME_DLLS
MZSCHEME_DLLS = $(MZSCHEME)
endif
ifeq (yes,$(MZSCHEME_PRECISE_GC))
MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
else
MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
endif
EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
endif

View File

@@ -56,6 +56,12 @@ CSCOPE=yes
NETBEANS=$(GUI)
# Link against the shared version of libstdc++ by default. Set
# STATIC_STDCPLUS to "yes" to link against static version instead.
ifndef STATIC_STDCPLUS
STATIC_STDCPLUS=no
endif
# If the user doesn't want gettext, undefine it.
ifeq (no, $(GETTEXT))
GETTEXT=
@@ -141,11 +147,17 @@ ifndef MZSCHEME_GENERATE_BASE
MZSCHEME_GENERATE_BASE=no
endif
ifndef MZSCHEME_USE_RACKET
MZSCHEME_MAIN_LIB=mzsch
else
MZSCHEME_MAIN_LIB=racket
endif
ifeq (no,$(DYNAMIC_MZSCHEME))
ifeq (yes,$(MZSCHEME_PRECISE_GC))
MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
else
MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
endif
# the modern MinGW can dynamically link to dlls directly.
# point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll
@@ -303,12 +315,14 @@ DIRSLASH = \\
endif
endif
CC := $(CROSS_COMPILE)gcc
WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -DRC_INVOKED
WINDRES := $(CROSS_COMPILE)windres
WINDRES_CC = $(CC)
#>>>>> end of choices
###########################################################################
CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
ifdef GETTEXT
DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
@@ -343,7 +357,7 @@ endif
ifdef MZSCHEME
CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\"
ifeq (yes, $(DYNAMIC_MZSCHEME))
CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
endif
endif
@@ -571,8 +585,13 @@ endif
endif
ifeq (yes, $(OLE))
LIB += -loleaut32 -lstdc++
LIB += -loleaut32
OBJ += $(OUTDIR)/if_ole.o
ifeq (yes, $(STATIC_STDCPLUS))
LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
else
LIB += -lstdc++
endif
endif
ifeq (yes, $(MBYTE))
@@ -650,10 +669,10 @@ $(OUTDIR)/%.o : %.c $(INCL)
$(CC) -c $(CFLAGS) $< -o $@
$(OUTDIR)/vimres.res: vim.rc version.h gui_w32_rc.h
$(WINDRES) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
$(WINDRES) $(WINDRES_FLAGS) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
$(OUTDIR)/vimrc.o: $(OUTDIR)/vimres.res
$(WINDRES) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
$(WINDRES) $(WINDRES_FLAGS) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
$(OUTDIR):
$(MKDIR) $(OUTDIR)

View File

@@ -380,9 +380,6 @@ MSVCVER = 10.0
!if "$(_NMAKE_VER)" == "10.00.30319.01"
MSVCVER = 10.0
!endif
!if "$(_NMAKE_VER)" == "9.00.30729.01"
MSVCVER = 9.0
!endif
!endif
# Abort bulding VIM if version of VC is unrecognised.
@@ -705,12 +702,18 @@ PYTHON3_LIB = $(PYTHON3)\libs\python$(PYTHON3_VER).lib
MZSCHEME_VER = 205_000
!endif
CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include
!if EXIST("$(MZSCHEME)\collects\scheme\base.ss")
# for MzScheme 4.x we need to include byte code for basic Scheme stuff
!if EXIST("$(MZSCHEME)\collects\scheme\base.ss") \
|| EXIST("$(MZSCHEME)\collects\scheme\base.rkt")
# for MzScheme >= 4 we need to include byte code for basic Scheme stuff
MZSCHEME_EXTRA_DEP = mzscheme_base.c
CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE
!endif
!if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib") \
!if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib")
MZSCHEME_MAIN_LIB=mzsch
!else
MZSCHEME_MAIN_LIB=racket
!endif
!if EXIST("$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib") \
&& !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib")
!message Building with Precise GC
MZSCHEME_PRECISE_GC = yes
@@ -722,7 +725,7 @@ CFLAGS = $(CFLAGS) -DMZ_PRECISE_GC
!endif
!message MzScheme DLLs will be loaded dynamically
CFLAGS = $(CFLAGS) -DDYNAMIC_MZSCHEME \
-DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" \
-DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" \
-DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
!else
!if "$(MZSCHEME_DEBUG)" == "yes"
@@ -730,10 +733,10 @@ CFLAGS = $(CFLAGS) -DMZSCHEME_FORCE_GC
!endif
!if "$(MZSCHEME_PRECISE_GC)" == "yes"
# Precise GC does not use separate dll
MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
!else
MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib \
$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
!endif
!endif
MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
@@ -1156,6 +1159,10 @@ $(OUTDIR)/glbl_ime.obj: $(OUTDIR) glbl_ime.cpp dimm.h $(INCL)
E0_CFLAGS = $(CFLAGS:\=\\)
E_CFLAGS = $(E0_CFLAGS:"=\")
# ") stop the string
# $LINKARGS2 may contain backslashes and double quotes, escape them both.
E0_LINKARGS2 = $(LINKARGS2:\=\\)
E_LINKARGS2 = $(E0_LINKARGS2:"=\")
# ") stop the string
$(PATHDEF_SRC): auto
@echo creating $(PATHDEF_SRC)
@@ -1164,7 +1171,7 @@ $(PATHDEF_SRC): auto
@echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> $(PATHDEF_SRC)
@echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
@echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; >> $(PATHDEF_SRC)
@echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(LINKARGS2:\=\\)"; >> $(PATHDEF_SRC)
@echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(E_LINKARGS2)"; >> $(PATHDEF_SRC)
@echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
@echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)

View File

@@ -283,12 +283,13 @@ CC=
######################## auto/config.mk ######################## {{{1
# At this position auto/config.mk is included. When starting from the
# distribution it is almost empty. After running auto/configure it contains
# settings that have been discovered for your system. Settings below this
# include override settings in auto/config.mk!
# toplevel Makefile it is almost empty. After running auto/configure it
# contains settings that have been discovered for your system. Settings below
# this include override settings in auto/config.mk!
# Note: if auto/config.mk is lost somehow (e.g., because configure was
# interrupted), create an empty auto/config.mk file and do "make config".
# Note: If make fails because auto/config.mk does not exist (it is not
# included in the repository), do:
# cp config.mk.dist auto/config.mk
# (X) How to include auto/config.mk depends on the version of "make" you have,
# if the current choice doesn't work, try the other one.
@@ -414,12 +415,16 @@ CClink = $(CC)
# However, this may still cause problems, such as "import termios" failing.
# Build two separate versions of Vim in that case.
#CONF_OPT_PYTHON = --enable-pythoninterp
#CONF_OPT_PYTHON = --enable-pythoninterp=dynamic
#CONF_OPT_PYTHON3 = --enable-python3interp
#CONF_OPT_PYTHON3 = --enable-python3interp=dynamic
# RUBY
# Uncomment this when you want to include the Ruby interface.
# First one for static linking, second one for loading when used.
# Note: you need the development package (e.g., ruby1.9.1-dev on Ubuntu).
#CONF_OPT_RUBY = --enable-rubyinterp
#CONF_OPT_RUBY = --enable-rubyinterp=dynamic
#CONF_OPT_RUBY = --enable-rubyinterp --with-ruby-command=ruby1.9.1
# TCL
@@ -556,7 +561,7 @@ CClink = $(CC)
#CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
# Use this with GCC to check for mistakes, unused arguments, etc.
#CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1 -DU_DEBUG
#CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1
#CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -D_FORTIFY_SOURCE=1 -DU_DEBUG
#PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
#MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
@@ -589,8 +594,9 @@ LINT_OPTIONS = -beprxzF
# PROFILING - Uncomment the next two lines to do profiling with gcc and gprof.
# Might not work with GUI or Perl.
# For unknown reasons adding "-lc" fixes a linking problem with GCC. That's
# probably a bug in the "-pg" implementation.
# For unknown reasons adding "-lc" fixes a linking problem with some versions
# of GCC. That's probably a bug in the "-pg" implementation.
# After running Vim see the profile result with: gmon vim gmon.out | vim -
# Need to recompile everything after changing this: "make clean" "make".
#PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
#PROFILE_LIBS = -pg
@@ -601,8 +607,8 @@ LINT_OPTIONS = -beprxzF
# Configuration is in the .ccmalloc or ~/.ccmalloc file.
# Doesn't work very well, since memory linked to from global variables
# (in libraries) is also marked as leaked memory.
#PROFILE_CFLAGS = -DEXITFREE
#PROFILE_LIBS = -lccmalloc
#LEAK_CFLAGS = -DEXITFREE
#LEAK_LIBS = -lccmalloc
#####################################################
### Specific systems, check if yours is listed! ### {{{
@@ -1047,8 +1053,9 @@ INSTALL_PROG = cp
INSTALL_DATA = cp
INSTALL_DATA_R = cp -r
### Program to run on installed binary
### Program to run on installed binary. Use the second one to disable strip.
#STRIP = strip
#STRIP = /bin/true
### Permissions for binaries {{{1
BINMOD = 755
@@ -1321,15 +1328,15 @@ SHELL = /bin/sh
.SUFFIXES: .c .o .pro
PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(RUBY_CFLAGS) $(EXTRA_DEFS)
POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS)
ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(POST_DEFS)
ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(LEAK_CFLAGS) $(POST_DEFS)
# Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
# with "-E".
OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
@@ -1352,7 +1359,8 @@ ALL_LIBS = \
$(PYTHON3_LIBS) \
$(TCL_LIBS) \
$(RUBY_LIBS) \
$(PROFILE_LIBS)
$(PROFILE_LIBS) \
$(LEAK_LIBS)
# abbreviations
DEST_BIN = $(DESTDIR)$(BINDIR)
@@ -1474,8 +1482,15 @@ EXTRA_SRC = hangulin.c if_lua.c if_mzsch.c auto/if_perl.c if_perlsfio.c \
if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
gui_beval.c workshop.c wsdebug.c integration.c netbeans.c
# Unittest files
MEMFILE_TEST_SRC = memfile_test.c
MEMFILE_TEST_TARGET = memfile_test$(EXEEXT)
UNITTEST_SRC = $(MEMFILE_TEST_SRC)
UNITTEST_TARGETS = $(MEMFILE_TEST_TARGET)
# All sources, also the ones that are not configured
ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(EXTRA_SRC)
ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(UNITTEST_SRC) $(EXTRA_SRC)
# Which files to check with lint. Select one of these three lines. ALL_SRC
# checks more, but may not work well for checking a GUI that wasn't configured.
@@ -1486,7 +1501,7 @@ LINT_SRC = $(BASIC_SRC) $(GUI_SRC) $(HANGULIN_SRC) $(PYTHON_SRC) $(PYTHON3_SRC)
#LINT_SRC = $(ALL_SRC)
#LINT_SRC = $(BASIC_SRC)
OBJ = \
OBJ_COMMON = \
objects/buffer.o \
objects/blowfish.o \
objects/charset.o \
@@ -1507,10 +1522,8 @@ OBJ = \
$(HANGULIN_OBJ) \
objects/if_cscope.o \
objects/if_xcmdsrv.o \
objects/main.o \
objects/mark.o \
objects/memfile.o \
objects/memline.o \
objects/memline.o \
objects/menu.o \
objects/message.o \
objects/misc1.o \
@@ -1535,6 +1548,7 @@ OBJ = \
objects/term.o \
objects/ui.o \
objects/undo.o \
objects/version.o \
objects/window.o \
$(GUI_OBJ) \
$(LUA_OBJ) \
@@ -1549,6 +1563,13 @@ OBJ = \
$(NETBEANS_OBJ) \
$(WSDEBUG_OBJ)
OBJ = $(OBJ_COMMON) \
objects/main.o \
objects/memfile.o \
MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
objects/memfile_test.o
PRO_AUTO = \
blowfish.pro \
buffer.pro \
@@ -1694,8 +1715,9 @@ CCC = $(CC) -c -I$(srcdir) $(ALL_CFLAGS)
$(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h
$(CCC) version.c -o objects/version.o
@LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
-o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
MAKE="$(MAKE)" sh $(srcdir)/link.sh
-o $(VIMTARGET) $(OBJ) $(ALL_LIBS)" \
MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
sh $(srcdir)/link.sh
xxd/xxd$(EXEEXT): xxd/xxd.c
cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
@@ -1818,6 +1840,15 @@ test check:
ln -s $(VIMTARGET) vim; \
fi
cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET) $(GUI_TESTARG)
$(MAKE) -f Makefile unittest
unittesttargets:
$(MAKE) -f Makefile $(UNITTEST_TARGETS)
unittest unittests: $(UNITTEST_TARGETS)
@for t in $(UNITTEST_TARGETS); do \
./$$t || exit 1; echo $$t passed; \
done
testclean:
cd testdir; $(MAKE) -f Makefile clean
@@ -1825,6 +1856,17 @@ testclean:
cd $(PODIR); $(MAKE) checkclean; \
fi
# Unittests
# It's build just like Vim to satisfy all dependencies.
$(MEMFILE_TEST_TARGET): auto/config.mk objects $(MEMFILE_TEST_OBJ)
$(CCC) version.c -o objects/version.o
@LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
-o $(MEMFILE_TEST_TARGET) $(MEMFILE_TEST_OBJ) $(ALL_LIBS)" \
MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
sh $(srcdir)/link.sh
# install targets
install: $(GUI_INSTALL)
install_normal: installvim installtools $(INSTALL_LANGS) install-icons
@@ -2258,6 +2300,7 @@ clean celan: testclean
-rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) vim xxd/*.o
-rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c
-rm -f conftest* *~ auto/link.sed
-rm -f $(UNITTEST_TARGETS)
-rm -f runtime pixmaps
-rm -rf $(APPDIR)
-rm -rf mzscheme_base.c
@@ -2532,7 +2575,7 @@ objects/if_python3.o: if_python3.c if_py_both.h
$(CCC) $(PYTHON3_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) -o $@ if_python3.c
objects/if_ruby.o: if_ruby.c
$(CCC) -o $@ if_ruby.c
$(CCC) $(RUBY_CFLAGS) -o $@ if_ruby.c
objects/if_sniff.o: if_sniff.c
$(CCC) -o $@ if_sniff.c
@@ -2552,6 +2595,9 @@ objects/mark.o: mark.c
objects/memfile.o: memfile.c
$(CCC) -o $@ memfile.c
objects/memfile_test.o: memfile_test.c
$(CCC) -o $@ memfile_test.c
objects/memline.o: memline.c
$(CCC) -o $@ memline.c
@@ -2870,7 +2916,7 @@ objects/option.o: option.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h
objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h if_mzsch.h os_unixx.h
arabic.h os_unixx.h
objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
@@ -3009,6 +3055,10 @@ objects/gui_at_fs.o: gui_at_fs.c vim.h auto/config.h feature.h os_unix.h \
objects/pty.o: pty.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
objects/memfile_test.o: memfile_test.c main.c vim.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h \
proto.h globals.h farsi.h arabic.h farsi.c arabic.c memfile.c
objects/hangulin.o: hangulin.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
@@ -3020,7 +3070,7 @@ objects/if_lua.o: if_lua.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h
objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_mzsch.h mzscheme_base.c
globals.h farsi.h arabic.h if_mzsch.h
objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
@@ -3041,7 +3091,7 @@ objects/if_tcl.o: if_tcl.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
objects/if_ruby.o: if_ruby.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
objects/if_ruby.o: if_ruby.c auto/config.h vim.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h version.h

View File

@@ -1,5 +0,0 @@
the first targets to make vim are: scratch config myself
srcdir = .
VIMNAME = vim
EXNAME = ex
VIEWNAME = view

181
src/auto/configure vendored
View File

@@ -593,6 +593,7 @@ ac_includes_default="\
ac_subst_vars='LTLIBOBJS
LIBOBJS
LINK_AS_NEEDED
DEPEND_CFLAGS_FILTER
MAKEMO
MSGFMT
@@ -1427,7 +1428,7 @@ Optional Features:
--enable-pythoninterp=OPTS Include Python interpreter. default=no OPTS=no/yes/dynamic
--enable-python3interp=OPTS Include Python3 interpreter. default=no OPTS=no/yes/dynamic
--enable-tclinterp Include Tcl interpreter.
--enable-rubyinterp Include Ruby interpreter.
--enable-rubyinterp=OPTS Include Ruby interpreter. default=no OPTS=no/yes/dynamic
--enable-cscope Include cscope interface.
--enable-workshop Include Sun Visual Workshop support.
--disable-netbeans Disable NetBeans integration support.
@@ -4862,16 +4863,36 @@ $as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/plt/" >&5
$as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; }
if test -f /usr/include/plt/scheme.h; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket" >&5
$as_echo_n "checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket... " >&6; }
if test -f $vi_cv_path_mzscheme_pfx/include/racket/scheme.h; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
SCHEME_INC=/usr/include/plt
SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/racket
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
vi_cv_path_mzscheme_pfx=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/plt/" >&5
$as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; }
if test -f /usr/include/plt/scheme.h; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
SCHEME_INC=/usr/include/plt
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/racket/" >&5
$as_echo_n "checking if scheme.h can be found in /usr/include/racket/... " >&6; }
if test -f /usr/include/racket/scheme.h; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
SCHEME_INC=/usr/include/racket
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
vi_cv_path_mzscheme_pfx=
fi
fi
fi
fi
fi
@@ -4883,12 +4904,22 @@ $as_echo "no" >&6; }
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
else
if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.so"; then
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket3m"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.so"; then
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket -lmzgc"
else
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
fi
@@ -4901,10 +4932,20 @@ $as_echo "no" >&6; }
fi
if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
SCHEME_COLLECTS=lib/plt/
else
if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
SCHEME_COLLECTS=lib/racket/
fi
fi
if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
MZSCHEME_EXTRA="mzscheme_base.c"
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
MZSCHEME_EXTRA="mzscheme_base.c"
else
if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
MZSCHEME_EXTRA="mzscheme_base.c"
fi
fi
if test "X$MZSCHEME_EXTRA" != "X" ; then
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
fi
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
@@ -5285,9 +5326,9 @@ fi
PYTHON_LIBS="${vi_cv_path_python_plibs}"
if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
else
PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
fi
PYTHON_SRC="if_python.c"
if test "x$MACOSX" = "xyes"; then
@@ -5298,7 +5339,7 @@ fi
if test "${vi_cv_var_python_version}" = "1.4"; then
PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
fi
PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
$as_echo_n "checking if -pthread should be used... " >&6; }
@@ -5560,9 +5601,9 @@ fi
PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}"
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
else
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}"
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
fi
PYTHON3_SRC="if_python3.c"
if test "x$MACOSX" = "xyes"; then
@@ -5667,10 +5708,10 @@ if test "$python_ok" = yes && test "$python3_ok" = yes; then
$as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL" >&5
$as_echo_n "checking whether we can do without RTLD_GLOBAL... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python" >&5
$as_echo_n "checking whether we can do without RTLD_GLOBAL for Python... " >&6; }
cflags_save=$CFLAGS
CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
CFLAGS="$CFLAGS $PYTHON_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
if test "$cross_compiling" = yes; then :
@@ -5689,15 +5730,17 @@ else
* Only the first pyhton version used will be switched on.
*/
int no_rtl_global_needed_for(char *python_instsoname)
int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
if (pylib != 0)
{
void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
void (*init)(void) = dlsym(pylib, "Py_Initialize");
int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
void (*final)(void) = dlsym(pylib, "Py_Finalize");
(*pfx)(prefix);
(*init)();
needed = (*simple)("import termios") == -1;
(*final)();
@@ -5709,7 +5752,7 @@ else
int main(int argc, char** argv)
{
int not_needed = 0;
if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
not_needed = 1;
return !not_needed;
}
@@ -5726,8 +5769,76 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
CFLAGS=$cflags_save
LDFLAGS=$ldflags_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python3" >&5
$as_echo_n "checking whether we can do without RTLD_GLOBAL for Python3... " >&6; }
cflags_save=$CFLAGS
CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error "cannot run test program while cross compiling
See \`config.log' for more details." "$LINENO" 5; }
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <dlfcn.h>
#include <wchar.h>
/* If this program fails, then RTLD_GLOBAL is needed.
* RTLD_GLOBAL will be used and then it is not possible to
* have both python versions enabled in the same vim instance.
* Only the first pyhton version used will be switched on.
*/
int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
if (pylib != 0)
{
void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
void (*init)(void) = dlsym(pylib, "Py_Initialize");
int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
void (*final)(void) = dlsym(pylib, "Py_Finalize");
(*pfx)(prefix);
(*init)();
needed = (*simple)("import termios") == -1;
(*final)();
dlclose(pylib);
}
return !needed;
}
int main(int argc, char** argv)
{
int not_needed = 0;
if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
not_needed = 1;
return !not_needed;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; };$as_echo "#define PY3_NO_RTLD_GLOBAL 1" >>confdefs.h
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
CFLAGS=$cflags_save
LDFLAGS=$ldflags_save
PYTHON_SRC="if_python.c"
PYTHON_OBJ="objects/if_python.o"
PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
@@ -6103,7 +6214,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_rubyinterp" >&5
$as_echo "$enable_rubyinterp" >&6; }
if test "$enable_rubyinterp" = "yes"; then
if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
$as_echo_n "checking --with-ruby-command argument... " >&6; }
@@ -6209,6 +6320,13 @@ $as_echo "$rubyhdrdir" >&6; }
RUBY_PRO="if_ruby.pro"
$as_echo "#define FEAT_RUBY 1" >>confdefs.h
if test "$enable_rubyinterp" = "dynamic"; then
libruby=`$vi_cv_path_ruby -r rbconfig -e 'printf "lib%s.%s\n", Config::CONFIG["RUBY_SO_NAME"], Config::CONFIG["DLEXT"]'`
$as_echo "#define DYNAMIC_RUBY 1" >>confdefs.h
RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
RUBY_LIBS=
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found; disabling Ruby" >&5
$as_echo "not found; disabling Ruby" >&6; }
@@ -9768,9 +9886,9 @@ rm -f core conftest.err conftest.$ac_objext \
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: empty: automatic terminal library selection" >&5
$as_echo "empty: automatic terminal library selection" >&6; }
case "`uname -s 2>/dev/null`" in
OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
*) tlibs="ncurses termlib termcap curses";;
case "`uname -s 2>/dev/null`" in
OSF1|SCO_SV) tlibs="tinfo ncurses curses termlib termcap";;
*) tlibs="tinfo ncurses termlib termcap curses";;
esac
for libname in $tlibs; do
as_ac_Lib=`$as_echo "ac_cv_lib_${libname}''_tgetent" | $as_tr_sh`
@@ -12357,6 +12475,23 @@ $as_echo "no" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5
$as_echo_n "checking linker --as-needed support... " >&6; }
LINK_AS_NEEDED=
# Check if linker supports --as-needed and --no-as-needed options
if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
LDFLAGS="$LDFLAGS -Wl,--as-needed"
LINK_AS_NEEDED=yes
fi
if test "$LINK_AS_NEEDED" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
cat >confcache <<\_ACEOF

View File

@@ -413,6 +413,7 @@ bf_key_init(password, salt, salt_len)
int salt_len;
{
int i, j, keypos = 0;
unsigned u;
UINT32_T val, data_l, data_r;
char_u *key;
int keylen;
@@ -432,8 +433,8 @@ bf_key_init(password, salt, salt_len)
}
for (i = 0; i < keylen; i++)
{
sscanf((char *)&key[i * 2], "%2x", &j);
key[i] = j;
sscanf((char *)&key[i * 2], "%2x", &u);
key[i] = u;
}
mch_memmove(sbx, sbi, 4 * 4 * 256);

View File

@@ -639,6 +639,9 @@ free_buffer_stuff(buf, free_options)
{
clear_wininfo(buf); /* including window-local options */
free_buf_options(buf, TRUE);
#ifdef FEAT_SPELL
ga_clear(&buf->b_s.b_langp);
#endif
}
#ifdef FEAT_EVAL
vars_clear(&buf->b_vars.dv_hashtab); /* free all internal variables */
@@ -661,9 +664,6 @@ free_buffer_stuff(buf, free_options)
vim_free(buf->b_start_fenc);
buf->b_start_fenc = NULL;
#endif
#ifdef FEAT_SPELL
ga_clear(&buf->b_s.b_langp);
#endif
}
/*
@@ -3364,7 +3364,8 @@ free_titles()
* or truncated if too long, fillchar is used for all whitespace.
*/
int
build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar, maxwidth, hltab, tabtab)
build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar,
maxwidth, hltab, tabtab)
win_T *wp;
char_u *out; /* buffer to write into != NameBuff */
size_t outlen; /* length of out[] */
@@ -3459,6 +3460,18 @@ build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar, maxwidth, hltab, t
prevchar_isitem = FALSE;
for (s = usefmt; *s; )
{
if (curitem == STL_MAX_ITEM)
{
/* There are too many items. Add the error code to the statusline
* to give the user a hint about what went wrong. */
if (p + 6 < out + outlen)
{
mch_memmove(p, " E541", (size_t)5);
p += 5;
}
break;
}
if (*s != NUL && *s != '%')
prevchar_isflag = prevchar_isitem = FALSE;
@@ -3474,6 +3487,8 @@ build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar, maxwidth, hltab, t
* Handle one '%' item.
*/
s++;
if (*s == NUL) /* ignore trailing % */
break;
if (*s == '%')
{
if (p + 1 >= out + outlen)

View File

@@ -349,6 +349,9 @@
/* Define if you want to include the Ruby interpreter. */
#undef FEAT_RUBY
/* Define for linking via dlopen() or LoadLibrary() */
#undef DYNAMIC_RUBY
/* Define if you want to include the Tcl interpreter. */
#undef FEAT_TCL

View File

@@ -30,6 +30,7 @@ TAGPRG = @TAGPRG@
CPP = @CPP@
CPP_MM = @CPP_MM@
DEPEND_CFLAGS_FILTER = @DEPEND_CFLAGS_FILTER@
LINK_AS_NEEDED = @LINK_AS_NEEDED@
X_CFLAGS = @X_CFLAGS@
X_LIBS_DIR = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@

View File

@@ -568,13 +568,27 @@ if test "$enable_mzschemeinterp" = "yes"; then
SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
else
AC_MSG_RESULT(no)
AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
if test -f /usr/include/plt/scheme.h; then
AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket)
if test -f $vi_cv_path_mzscheme_pfx/include/racket/scheme.h; then
AC_MSG_RESULT(yes)
SCHEME_INC=/usr/include/plt
SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/racket
else
AC_MSG_RESULT(no)
vi_cv_path_mzscheme_pfx=
AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
if test -f /usr/include/plt/scheme.h; then
AC_MSG_RESULT(yes)
SCHEME_INC=/usr/include/plt
else
AC_MSG_RESULT(no)
AC_MSG_CHECKING(if scheme.h can be found in /usr/include/racket/)
if test -f /usr/include/racket/scheme.h; then
AC_MSG_RESULT(yes)
SCHEME_INC=/usr/include/racket
else
AC_MSG_RESULT(no)
vi_cv_path_mzscheme_pfx=
fi
fi
fi
fi
fi
@@ -586,13 +600,23 @@ if test "$enable_mzschemeinterp" = "yes"; then
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
else
dnl Using shared objects
if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.so"; then
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket3m"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.so"; then
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket -lmzgc"
else
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
fi
@@ -607,10 +631,20 @@ if test "$enable_mzschemeinterp" = "yes"; then
fi
if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
SCHEME_COLLECTS=lib/plt/
else
if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
SCHEME_COLLECTS=lib/racket/
fi
fi
if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
dnl need to generate bytecode for MzScheme base
MZSCHEME_EXTRA="mzscheme_base.c"
else
if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
MZSCHEME_EXTRA="mzscheme_base.c"
fi
fi
if test "X$MZSCHEME_EXTRA" != "X" ; then
dnl need to generate bytecode for MzScheme base
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
fi
@@ -857,9 +891,9 @@ eof
PYTHON_LIBS="${vi_cv_path_python_plibs}"
if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
else
PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
fi
PYTHON_SRC="if_python.c"
dnl For Mac OSX 10.2 config.o is included in the Python library.
@@ -871,7 +905,7 @@ eof
if test "${vi_cv_var_python_version}" = "1.4"; then
PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
fi
PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
dnl On FreeBSD linking with "-pthread" is required to use threads.
dnl _THREAD_SAFE must be used for compiling then.
@@ -1029,9 +1063,9 @@ eof
PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}"
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
else
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}"
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
fi
PYTHON3_SRC="if_python3.c"
dnl For Mac OSX 10.2 config.o is included in the Python library.
@@ -1109,9 +1143,9 @@ dnl with dlopen(), dlsym(), dlclose()
if test "$python_ok" = yes && test "$python3_ok" = yes; then
AC_DEFINE(DYNAMIC_PYTHON)
AC_DEFINE(DYNAMIC_PYTHON3)
AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL)
AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python)
cflags_save=$CFLAGS
CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
CFLAGS="$CFLAGS $PYTHON_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
AC_RUN_IFELSE([
@@ -1122,15 +1156,17 @@ if test "$python_ok" = yes && test "$python3_ok" = yes; then
* Only the first pyhton version used will be switched on.
*/
int no_rtl_global_needed_for(char *python_instsoname)
int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
if (pylib != 0)
{
void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
void (*init)(void) = dlsym(pylib, "Py_Initialize");
int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
void (*final)(void) = dlsym(pylib, "Py_Finalize");
(*pfx)(prefix);
(*init)();
needed = (*simple)("import termios") == -1;
(*final)();
@@ -1142,13 +1178,60 @@ if test "$python_ok" = yes && test "$python3_ok" = yes; then
int main(int argc, char** argv)
{
int not_needed = 0;
if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
not_needed = 1;
return !not_needed;
}],
[AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
CFLAGS=$cflags_save
LDFLAGS=$ldflags_save
AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python3)
cflags_save=$CFLAGS
CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
AC_RUN_IFELSE([
#include <dlfcn.h>
#include <wchar.h>
/* If this program fails, then RTLD_GLOBAL is needed.
* RTLD_GLOBAL will be used and then it is not possible to
* have both python versions enabled in the same vim instance.
* Only the first pyhton version used will be switched on.
*/
int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
if (pylib != 0)
{
void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
void (*init)(void) = dlsym(pylib, "Py_Initialize");
int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
void (*final)(void) = dlsym(pylib, "Py_Finalize");
(*pfx)(prefix);
(*init)();
needed = (*simple)("import termios") == -1;
(*final)();
dlclose(pylib);
}
return !needed;
}
int main(int argc, char** argv)
{
int not_needed = 0;
if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
not_needed = 1;
return !not_needed;
}],
[AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
CFLAGS=$cflags_save
LDFLAGS=$ldflags_save
PYTHON_SRC="if_python.c"
PYTHON_OBJ="objects/if_python.o"
PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
@@ -1299,10 +1382,10 @@ AC_SUBST(TCL_LIBS)
AC_MSG_CHECKING(--enable-rubyinterp argument)
AC_ARG_ENABLE(rubyinterp,
[ --enable-rubyinterp Include Ruby interpreter.], ,
[ --enable-rubyinterp[=OPTS] Include Ruby interpreter. [default=no] [OPTS=no/yes/dynamic]], ,
[enable_rubyinterp="no"])
AC_MSG_RESULT($enable_rubyinterp)
if test "$enable_rubyinterp" = "yes"; then
if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
AC_MSG_CHECKING(--with-ruby-command argument)
AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
@@ -1360,6 +1443,12 @@ if test "$enable_rubyinterp" = "yes"; then
RUBY_OBJ="objects/if_ruby.o"
RUBY_PRO="if_ruby.pro"
AC_DEFINE(FEAT_RUBY)
if test "$enable_rubyinterp" = "dynamic"; then
libruby=`$vi_cv_path_ruby -r rbconfig -e 'printf "lib%s.%s\n", Config::CONFIG[["RUBY_SO_NAME"]], Config::CONFIG[["DLEXT"]]'`
AC_DEFINE(DYNAMIC_RUBY)
RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
RUBY_LIBS=
fi
else
AC_MSG_RESULT(not found; disabling Ruby)
fi
@@ -2529,13 +2618,14 @@ else
AC_MSG_RESULT([empty: automatic terminal library selection])
dnl On HP-UX 10.10 termcap or termlib should be used instead of
dnl curses, because curses is much slower.
dnl Newer versions of ncurses are preferred over anything.
dnl Newer versions of ncurses are preferred over anything, except
dnl when tinfo has been split off, it conains all we need.
dnl Older versions of ncurses have bugs, get a new one!
dnl Digital Unix (OSF1) should use curses (Ronald Schild).
dnl On SCO Openserver should prefer termlib (Roger Cornelius).
case "`uname -s 2>/dev/null`" in
OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
*) tlibs="ncurses termlib termcap curses";;
OSF1|SCO_SV) tlibs="tinfo ncurses curses termlib termcap";;
*) tlibs="tinfo ncurses termlib termcap curses";;
esac
for libname in $tlibs; do
AC_CHECK_LIB(${libname}, tgetent,,)
@@ -3487,6 +3577,23 @@ if test "$GCC" = yes; then
fi
AC_SUBST(DEPEND_CFLAGS_FILTER)
dnl link.sh tries to avoid overlinking in a hackish way.
dnl At least GNU ld supports --as-needed which provides the same functionality
dnl at linker level. Let's use it.
AC_MSG_CHECKING(linker --as-needed support)
LINK_AS_NEEDED=
# Check if linker supports --as-needed and --no-as-needed options
if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
LDFLAGS="$LDFLAGS -Wl,--as-needed"
LINK_AS_NEEDED=yes
fi
if test "$LINK_AS_NEEDED" = yes; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_SUBST(LINK_AS_NEEDED)
dnl write output files
AC_OUTPUT(auto/config.mk:config.mk.in)

View File

@@ -58,6 +58,10 @@ static char *ctrl_x_msgs[] =
};
static char e_hitend[] = N_("Hit end of paragraph");
#ifdef FEAT_COMPL_FUNC
static char e_complwin[] = N_("E839: Completion function changed window");
static char e_compldel[] = N_("E840: Completion function deleted text");
#endif
/*
* Structure used to store one match for insert completion.
@@ -2658,6 +2662,7 @@ set_completion(startcol, list)
if (stop_arrow() == FAIL)
return;
compl_direction = FORWARD;
if (startcol > curwin->w_cursor.col)
startcol = curwin->w_cursor.col;
compl_col = startcol;
@@ -3833,6 +3838,8 @@ expand_by_function(type, base)
char_u *args[2];
char_u *funcname;
pos_T pos;
win_T *curwin_save;
buf_T *curbuf_save;
funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
if (*funcname == NUL)
@@ -3843,13 +3850,27 @@ expand_by_function(type, base)
args[1] = base;
pos = curwin->w_cursor;
curwin_save = curwin;
curbuf_save = curbuf;
matchlist = call_func_retlist(funcname, 2, args, FALSE);
if (curwin_save != curwin || curbuf_save != curbuf)
{
EMSG(_(e_complwin));
goto theend;
}
curwin->w_cursor = pos; /* restore the cursor position */
if (matchlist == NULL)
return;
check_cursor();
if (!equalpos(curwin->w_cursor, pos))
{
EMSG(_(e_compldel));
goto theend;
}
if (matchlist != NULL)
ins_compl_add_list(matchlist);
ins_compl_add_list(matchlist);
list_unref(matchlist);
theend:
if (matchlist != NULL)
list_unref(matchlist);
}
#endif /* FEAT_COMPL_FUNC */
@@ -3889,6 +3910,7 @@ ins_compl_add_tv(tv, dir)
char_u *word;
int icase = FALSE;
int adup = FALSE;
int aempty = FALSE;
char_u *(cptext[CPT_COUNT]);
if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
@@ -3906,13 +3928,15 @@ ins_compl_add_tv(tv, dir)
icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup");
if (get_dict_string(tv->vval.v_dict, (char_u *)"empty", FALSE) != NULL)
aempty = get_dict_number(tv->vval.v_dict, (char_u *)"empty");
}
else
{
word = get_tv_string_chk(tv);
vim_memset(cptext, 0, sizeof(cptext));
}
if (word == NULL || *word == NUL)
if (word == NULL || (!aempty && *word == NUL))
return FAIL;
return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup);
}
@@ -4994,6 +5018,8 @@ ins_complete(c)
int col;
char_u *funcname;
pos_T pos;
win_T *curwin_save;
buf_T *curbuf_save;
/* Call 'completefunc' or 'omnifunc' and get pattern length as a
* string */
@@ -5009,8 +5035,21 @@ ins_complete(c)
args[0] = (char_u *)"1";
args[1] = NULL;
pos = curwin->w_cursor;
curwin_save = curwin;
curbuf_save = curbuf;
col = call_func_retnr(funcname, 2, args, FALSE);
if (curwin_save != curwin || curbuf_save != curbuf)
{
EMSG(_(e_complwin));
return FAIL;
}
curwin->w_cursor = pos; /* restore the cursor position */
check_cursor();
if (!equalpos(curwin->w_cursor, pos))
{
EMSG(_(e_compldel));
return FAIL;
}
if (col < 0)
col = curs_col;

View File

@@ -10,9 +10,6 @@
/*
* eval.c: Expression evaluation.
*/
#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
# include "vimio.h" /* for mch_open(), must be before vim.h */
#endif
#include "vim.h"
@@ -434,9 +431,9 @@ static listitem_T *listitem_alloc __ARGS((void));
static void listitem_free __ARGS((listitem_T *item));
static void listitem_remove __ARGS((list_T *l, listitem_T *item));
static long list_len __ARGS((list_T *l));
static int list_equal __ARGS((list_T *l1, list_T *l2, int ic));
static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic));
static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic));
static int list_equal __ARGS((list_T *l1, list_T *l2, int ic, int recursive));
static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic, int recursive));
static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic, int recursive));
static listitem_T *list_find __ARGS((list_T *l, long n));
static long list_find_nr __ARGS((list_T *l, long idx, int *errorp));
static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
@@ -2326,7 +2323,7 @@ ex_let_one(arg, tv, copy, endchars, op)
else if (endchars != NULL
&& vim_strchr(endchars, *skipwhite(arg)) == NULL)
EMSG(_(e_letunexp));
else
else if (!check_secure())
{
c1 = name[len];
name[len] = NUL;
@@ -3338,6 +3335,15 @@ ex_call(eap)
int failed = FALSE;
funcdict_T fudi;
if (eap->skip)
{
/* trans_function_name() doesn't work well when skipping, use eval0()
* instead to skip to any following command, e.g. for:
* :if 0 | call dict.foo().bar() | endif */
eval0(eap->arg, &rettv, &eap->nextcmd, FALSE);
return;
}
tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi);
if (fudi.fd_newkey != NULL)
{
@@ -4350,7 +4356,8 @@ eval4(arg, rettv, evaluate)
else
{
/* Compare two Lists for being equal or unequal. */
n1 = list_equal(rettv->vval.v_list, var2.vval.v_list, ic);
n1 = list_equal(rettv->vval.v_list, var2.vval.v_list,
ic, FALSE);
if (type == TYPE_NEQUAL)
n1 = !n1;
}
@@ -4379,7 +4386,8 @@ eval4(arg, rettv, evaluate)
else
{
/* Compare two Dictionaries for being equal or unequal. */
n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict, ic);
n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict,
ic, FALSE);
if (type == TYPE_NEQUAL)
n1 = !n1;
}
@@ -5098,9 +5106,7 @@ eval7(arg, rettv, evaluate, want_string)
else
ret = OK;
}
if (alias != NULL)
vim_free(alias);
vim_free(alias);
}
*arg = skipwhite(*arg);
@@ -5914,10 +5920,11 @@ list_len(l)
* Return TRUE when two lists have exactly the same values.
*/
static int
list_equal(l1, l2, ic)
list_equal(l1, l2, ic, recursive)
list_T *l1;
list_T *l2;
int ic; /* ignore case for strings */
int recursive; /* TRUE when used recursively */
{
listitem_T *item1, *item2;
@@ -5931,7 +5938,7 @@ list_equal(l1, l2, ic)
for (item1 = l1->lv_first, item2 = l2->lv_first;
item1 != NULL && item2 != NULL;
item1 = item1->li_next, item2 = item2->li_next)
if (!tv_equal(&item1->li_tv, &item2->li_tv, ic))
if (!tv_equal(&item1->li_tv, &item2->li_tv, ic, recursive))
return FALSE;
return item1 == NULL && item2 == NULL;
}
@@ -5953,10 +5960,11 @@ dict_lookup(hi)
* Return TRUE when two dictionaries have exactly the same key/values.
*/
static int
dict_equal(d1, d2, ic)
dict_equal(d1, d2, ic, recursive)
dict_T *d1;
dict_T *d2;
int ic; /* ignore case for strings */
int recursive; /* TRUE when used recursively */
{
hashitem_T *hi;
dictitem_T *item2;
@@ -5977,7 +5985,7 @@ dict_equal(d1, d2, ic)
item2 = dict_find(d2, hi->hi_key, -1);
if (item2 == NULL)
return FALSE;
if (!tv_equal(&HI2DI(hi)->di_tv, &item2->di_tv, ic))
if (!tv_equal(&HI2DI(hi)->di_tv, &item2->di_tv, ic, recursive))
return FALSE;
--todo;
}
@@ -5985,41 +5993,54 @@ dict_equal(d1, d2, ic)
return TRUE;
}
static int tv_equal_recurse_limit;
/*
* Return TRUE if "tv1" and "tv2" have the same value.
* Compares the items just like "==" would compare them, but strings and
* numbers are different. Floats and numbers are also different.
*/
static int
tv_equal(tv1, tv2, ic)
tv_equal(tv1, tv2, ic, recursive)
typval_T *tv1;
typval_T *tv2;
int ic; /* ignore case */
int ic; /* ignore case */
int recursive; /* TRUE when used recursively */
{
char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
char_u *s1, *s2;
static int recursive = 0; /* cach recursive loops */
static int recursive_cnt = 0; /* catch recursive loops */
int r;
if (tv1->v_type != tv2->v_type)
return FALSE;
/* Catch lists and dicts that have an endless loop by limiting
* recursiveness to 1000. We guess they are equal then. */
if (recursive >= 1000)
* recursiveness to a limit. We guess they are equal then.
* A fixed limit has the problem of still taking an awful long time.
* Reduce the limit every time running into it. That should work fine for
* deeply linked structures that are not recursively linked and catch
* recursiveness quickly. */
if (!recursive)
tv_equal_recurse_limit = 1000;
if (recursive_cnt >= tv_equal_recurse_limit)
{
--tv_equal_recurse_limit;
return TRUE;
}
switch (tv1->v_type)
{
case VAR_LIST:
++recursive;
r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic);
--recursive;
++recursive_cnt;
r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic, TRUE);
--recursive_cnt;
return r;
case VAR_DICT:
++recursive;
r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic);
--recursive;
++recursive_cnt;
r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic, TRUE);
--recursive_cnt;
return r;
case VAR_FUNC:
@@ -9300,7 +9321,7 @@ f_confirm(argvars, rettv)
if (!error)
rettv->vval.v_number = do_dialog(type, NULL, message, buttons,
def, NULL);
def, NULL, FALSE);
#endif
}
@@ -9391,7 +9412,7 @@ f_count(argvars, rettv)
}
for ( ; li != NULL; li = li->li_next)
if (tv_equal(&li->li_tv, &argvars[1], ic))
if (tv_equal(&li->li_tv, &argvars[1], ic, FALSE))
++n;
}
}
@@ -9418,7 +9439,7 @@ f_count(argvars, rettv)
if (!HASHITEM_EMPTY(hi))
{
--todo;
if (tv_equal(&HI2DI(hi)->di_tv, &argvars[1], ic))
if (tv_equal(&HI2DI(hi)->di_tv, &argvars[1], ic, FALSE))
++n;
}
}
@@ -9859,7 +9880,7 @@ f_expand(argvars, rettv)
char_u *s;
int len;
char_u *errormsg;
int flags = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
expand_T xpc;
int error = FALSE;
@@ -9877,12 +9898,14 @@ f_expand(argvars, rettv)
* for 'wildignore' and don't put matches for 'suffixes' at the end. */
if (argvars[1].v_type != VAR_UNKNOWN
&& get_tv_number_chk(&argvars[1], &error))
flags |= WILD_KEEP_ALL;
options |= WILD_KEEP_ALL;
if (!error)
{
ExpandInit(&xpc);
xpc.xp_context = EXPAND_FILES;
rettv->vval.v_string = ExpandOne(&xpc, s, NULL, flags, WILD_ALL);
if (p_wic)
options += WILD_ICASE;
rettv->vval.v_string = ExpandOne(&xpc, s, NULL, options, WILD_ALL);
}
else
rettv->vval.v_string = NULL;
@@ -10841,6 +10864,11 @@ f_getbufvar(argvars, rettv)
if (*varname == '&') /* buffer-local-option */
get_option_tv(&varname, rettv, TRUE);
else if (STRCMP(varname, "changedtick") == 0)
{
rettv->v_type = VAR_NUMBER;
rettv->vval.v_number = curbuf->b_changedtick;
}
else
{
if (*varname == NUL)
@@ -11655,7 +11683,7 @@ f_glob(argvars, rettv)
typval_T *argvars;
typval_T *rettv;
{
int flags = WILD_SILENT|WILD_USE_NL;
int options = WILD_SILENT|WILD_USE_NL;
expand_T xpc;
int error = FALSE;
@@ -11663,14 +11691,16 @@ f_glob(argvars, rettv)
* for 'wildignore' and don't put matches for 'suffixes' at the end. */
if (argvars[1].v_type != VAR_UNKNOWN
&& get_tv_number_chk(&argvars[1], &error))
flags |= WILD_KEEP_ALL;
options |= WILD_KEEP_ALL;
rettv->v_type = VAR_STRING;
if (!error)
{
ExpandInit(&xpc);
xpc.xp_context = EXPAND_FILES;
if (p_wic)
options += WILD_ICASE;
rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
NULL, flags, WILD_ALL);
NULL, options, WILD_ALL);
}
else
rettv->vval.v_string = NULL;
@@ -12118,6 +12148,9 @@ f_has(argvars, rettv)
#ifdef FEAT_TOOLBAR
"toolbar",
#endif
#if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
"unnamedplus",
#endif
#ifdef FEAT_USR_CMDS
"user-commands", /* was accidentally included in 5.4 */
"user_commands",
@@ -12574,7 +12607,7 @@ f_index(argvars, rettv)
}
for ( ; item != NULL; item = item->li_next, ++idx)
if (tv_equal(&item->li_tv, &argvars[1], ic))
if (tv_equal(&item->li_tv, &argvars[1], ic, FALSE))
{
rettv->vval.v_number = idx;
break;
@@ -12714,7 +12747,7 @@ f_inputdialog(argvars, rettv)
IObuff[0] = NUL;
if (message != NULL && defstr != NULL
&& do_dialog(VIM_QUESTION, NULL, message,
(char_u *)_("&OK\n&Cancel"), 1, IObuff) == 1)
(char_u *)_("&OK\n&Cancel"), 1, IObuff, FALSE) == 1)
rettv->vval.v_string = vim_strsave(IObuff);
else
{
@@ -19772,7 +19805,7 @@ set_var(name, tv, copy)
EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
return;
}
/* Don't allow hiding a function. When "v" is not NULL we migth be
/* Don't allow hiding a function. When "v" is not NULL we might be
* assigning another function to the same var, the type is checked
* below. */
if (v == NULL && function_exists(name))

View File

@@ -11,10 +11,6 @@
* ex_cmds.c: some functions for command line commands
*/
#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
# include "vimio.h" /* for mch_open(), must be before vim.h */
#endif
#include "vim.h"
#include "version.h"
@@ -2705,6 +2701,10 @@ do_write(eap)
TRUE);
do_modelines(0);
}
/* Autocommands may have changed buffer names, esp. when
* 'autochdir' is set. */
fname = curbuf->b_sfname;
#endif
}
@@ -5412,7 +5412,7 @@ read_viminfo_sub_string(virp, force)
vir_T *virp;
int force;
{
if (old_sub != NULL && force)
if (force)
vim_free(old_sub);
if (force || old_sub == NULL)
old_sub = viminfo_readstring(virp, 1, TRUE);

View File

@@ -11,10 +11,6 @@
* ex_cmds2.c: some more functions for command line commands
*/
#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
# include "vimio.h" /* for mch_open(), must be before vim.h */
#endif
#include "vim.h"
#include "version.h"
@@ -1119,7 +1115,7 @@ ex_profile(eap)
static enum
{
PEXP_SUBCMD, /* expand :profile sub-commands */
PEXP_FUNC, /* expand :profile func {funcname} */
PEXP_FUNC /* expand :profile func {funcname} */
} pexpand_what;
static char *pexpand_cmds[] = {

View File

@@ -733,7 +733,7 @@ do_cmdline_cmd(cmd)
* do_cmdline(): execute one Ex command line
*
* 1. Execute "cmdline" when it is not NULL.
* If "cmdline" is NULL, or more lines are needed, getline() is used.
* If "cmdline" is NULL, or more lines are needed, fgetline() is used.
* 2. Split up in parts separated with '|'.
*
* This function can be called recursively!
@@ -741,7 +741,7 @@ do_cmdline_cmd(cmd)
* flags:
* DOCMD_VERBOSE - The command will be included in the error message.
* DOCMD_NOWAIT - Don't call wait_return() and friends.
* DOCMD_REPEAT - Repeat execution until getline() returns NULL.
* DOCMD_REPEAT - Repeat execution until fgetline() returns NULL.
* DOCMD_KEYTYPED - Don't reset KeyTyped.
* DOCMD_EXCRESET - Reset the exception environment (used for debugging).
* DOCMD_KEEPLINE - Store first typed line (for repeating with ".").
@@ -749,15 +749,15 @@ do_cmdline_cmd(cmd)
* return FAIL if cmdline could not be executed, OK otherwise
*/
int
do_cmdline(cmdline, getline, cookie, flags)
do_cmdline(cmdline, fgetline, cookie, flags)
char_u *cmdline;
char_u *(*getline) __ARGS((int, void *, int));
void *cookie; /* argument for getline() */
char_u *(*fgetline) __ARGS((int, void *, int));
void *cookie; /* argument for fgetline() */
int flags;
{
char_u *next_cmdline; /* next cmd to execute */
char_u *cmdline_copy = NULL; /* copy of cmd line */
int used_getline = FALSE; /* used "getline" to obtain command */
int used_getline = FALSE; /* used "fgetline" to obtain command */
static int recursive = 0; /* recursive depth */
int msg_didout_before_start = 0;
int count = 0; /* line number count */
@@ -775,14 +775,14 @@ do_cmdline(cmdline, getline, cookie, flags)
struct msglist **saved_msg_list = NULL;
struct msglist *private_msg_list;
/* "getline" and "cookie" passed to do_one_cmd() */
/* "fgetline" and "cookie" passed to do_one_cmd() */
char_u *(*cmd_getline) __ARGS((int, void *, int));
void *cmd_cookie;
struct loop_cookie cmd_loop_cookie;
void *real_cookie;
int getline_is_func;
#else
# define cmd_getline getline
# define cmd_getline fgetline
# define cmd_cookie cookie
#endif
static int call_depth = 0; /* recursiveness */
@@ -822,10 +822,10 @@ do_cmdline(cmdline, getline, cookie, flags)
cstack.cs_lflags = 0;
ga_init2(&lines_ga, (int)sizeof(wcmd_T), 10);
real_cookie = getline_cookie(getline, cookie);
real_cookie = getline_cookie(fgetline, cookie);
/* Inside a function use a higher nesting level. */
getline_is_func = getline_equal(getline, cookie, get_func_line);
getline_is_func = getline_equal(fgetline, cookie, get_func_line);
if (getline_is_func && ex_nesting_level == func_level(real_cookie))
++ex_nesting_level;
@@ -837,7 +837,7 @@ do_cmdline(cmdline, getline, cookie, flags)
breakpoint = func_breakpoint(real_cookie);
dbg_tick = func_dbg_tick(real_cookie);
}
else if (getline_equal(getline, cookie, getsourceline))
else if (getline_equal(fgetline, cookie, getsourceline))
{
fname = sourcing_name;
breakpoint = source_breakpoint(real_cookie);
@@ -881,7 +881,8 @@ do_cmdline(cmdline, getline, cookie, flags)
* KeyTyped is only set when calling vgetc(). Reset it here when not
* calling vgetc() (sourced command lines).
*/
if (!(flags & DOCMD_KEYTYPED) && !getline_equal(getline, cookie, getexline))
if (!(flags & DOCMD_KEYTYPED)
&& !getline_equal(fgetline, cookie, getexline))
KeyTyped = FALSE;
/*
@@ -894,7 +895,7 @@ do_cmdline(cmdline, getline, cookie, flags)
do
{
#ifdef FEAT_EVAL
getline_is_func = getline_equal(getline, cookie, get_func_line);
getline_is_func = getline_equal(fgetline, cookie, get_func_line);
#endif
/* stop skipping cmds for an error msg after all endif/while/for */
@@ -909,7 +910,7 @@ do_cmdline(cmdline, getline, cookie, flags)
/*
* 1. If repeating a line in a loop, get a line from lines_ga.
* 2. If no line given: Get an allocated line with getline().
* 2. If no line given: Get an allocated line with fgetline().
* 3. If a line is given: Make a copy, so we can mess with it.
*/
@@ -938,12 +939,12 @@ do_cmdline(cmdline, getline, cookie, flags)
}
#ifdef FEAT_PROFILE
else if (do_profiling == PROF_YES
&& getline_equal(getline, cookie, getsourceline))
&& getline_equal(fgetline, cookie, getsourceline))
script_line_end();
#endif
/* Check if a sourced file hit a ":finish" command. */
if (source_finished(getline, cookie))
if (source_finished(fgetline, cookie))
{
retval = FAIL;
break;
@@ -954,7 +955,7 @@ do_cmdline(cmdline, getline, cookie, flags)
&& *dbg_tick != debug_tick)
{
*breakpoint = dbg_find_breakpoint(
getline_equal(getline, cookie, getsourceline),
getline_equal(fgetline, cookie, getsourceline),
fname, sourcing_lnum);
*dbg_tick = debug_tick;
}
@@ -969,7 +970,7 @@ do_cmdline(cmdline, getline, cookie, flags)
dbg_breakpoint(fname, sourcing_lnum);
/* Find next breakpoint. */
*breakpoint = dbg_find_breakpoint(
getline_equal(getline, cookie, getsourceline),
getline_equal(fgetline, cookie, getsourceline),
fname, sourcing_lnum);
*dbg_tick = debug_tick;
}
@@ -978,7 +979,7 @@ do_cmdline(cmdline, getline, cookie, flags)
{
if (getline_is_func)
func_line_start(real_cookie);
else if (getline_equal(getline, cookie, getsourceline))
else if (getline_equal(fgetline, cookie, getsourceline))
script_line_start();
}
# endif
@@ -987,7 +988,7 @@ do_cmdline(cmdline, getline, cookie, flags)
if (cstack.cs_looplevel > 0)
{
/* Inside a while/for loop we need to store the lines and use them
* again. Pass a different "getline" function to do_one_cmd()
* again. Pass a different "fgetline" function to do_one_cmd()
* below, so that it stores lines in or reads them from
* "lines_ga". Makes it possible to define a function inside a
* while/for loop. */
@@ -995,27 +996,27 @@ do_cmdline(cmdline, getline, cookie, flags)
cmd_cookie = (void *)&cmd_loop_cookie;
cmd_loop_cookie.lines_gap = &lines_ga;
cmd_loop_cookie.current_line = current_line;
cmd_loop_cookie.getline = getline;
cmd_loop_cookie.getline = fgetline;
cmd_loop_cookie.cookie = cookie;
cmd_loop_cookie.repeating = (current_line < lines_ga.ga_len);
}
else
{
cmd_getline = getline;
cmd_getline = fgetline;
cmd_cookie = cookie;
}
#endif
/* 2. If no line given, get an allocated line with getline(). */
/* 2. If no line given, get an allocated line with fgetline(). */
if (next_cmdline == NULL)
{
/*
* Need to set msg_didout for the first line after an ":if",
* otherwise the ":if" will be overwritten.
*/
if (count == 1 && getline_equal(getline, cookie, getexline))
if (count == 1 && getline_equal(fgetline, cookie, getexline))
msg_didout = TRUE;
if (getline == NULL || (next_cmdline = getline(':', cookie,
if (fgetline == NULL || (next_cmdline = fgetline(':', cookie,
#ifdef FEAT_EVAL
cstack.cs_idx < 0 ? 0 : (cstack.cs_idx + 1) * 2
#else
@@ -1142,7 +1143,7 @@ do_cmdline(cmdline, getline, cookie, flags)
* If the command was typed, remember it for the ':' register.
* Do this AFTER executing the command to make :@: work.
*/
if (getline_equal(getline, cookie, getexline)
if (getline_equal(fgetline, cookie, getexline)
&& new_last_cmdline != NULL)
{
vim_free(last_cmdline);
@@ -1163,7 +1164,7 @@ do_cmdline(cmdline, getline, cookie, flags)
#ifdef FEAT_EVAL
/* reset did_emsg for a function that is not aborted by an error */
if (did_emsg && !force_abort
&& getline_equal(getline, cookie, get_func_line)
&& getline_equal(fgetline, cookie, get_func_line)
&& !func_has_abort(real_cookie))
did_emsg = FALSE;
@@ -1202,7 +1203,7 @@ do_cmdline(cmdline, getline, cookie, flags)
if (breakpoint != NULL)
{
*breakpoint = dbg_find_breakpoint(
getline_equal(getline, cookie, getsourceline),
getline_equal(fgetline, cookie, getsourceline),
fname,
((wcmd_T *)lines_ga.ga_data)[current_line].lnum-1);
*dbg_tick = debug_tick;
@@ -1296,8 +1297,8 @@ do_cmdline(cmdline, getline, cookie, flags)
#endif
)
&& !(did_emsg && used_getline
&& (getline_equal(getline, cookie, getexmodeline)
|| getline_equal(getline, cookie, getexline)))
&& (getline_equal(fgetline, cookie, getexmodeline)
|| getline_equal(fgetline, cookie, getexline)))
&& (next_cmdline != NULL
#ifdef FEAT_EVAL
|| cstack.cs_idx >= 0
@@ -1316,9 +1317,9 @@ do_cmdline(cmdline, getline, cookie, flags)
* unclosed conditional.
*/
if (!got_int && !did_throw
&& ((getline_equal(getline, cookie, getsourceline)
&& !source_finished(getline, cookie))
|| (getline_equal(getline, cookie, get_func_line)
&& ((getline_equal(fgetline, cookie, getsourceline)
&& !source_finished(fgetline, cookie))
|| (getline_equal(fgetline, cookie, get_func_line)
&& !func_has_ended(real_cookie))))
{
if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
@@ -1354,7 +1355,7 @@ do_cmdline(cmdline, getline, cookie, flags)
/* If a missing ":endtry", ":endwhile", ":endfor", or ":endif" or a memory
* lack was reported above and the error message is to be converted to an
* exception, do this now after rewinding the cstack. */
do_errthrow(&cstack, getline_equal(getline, cookie, get_func_line)
do_errthrow(&cstack, getline_equal(fgetline, cookie, get_func_line)
? (char_u *)"endfunction" : (char_u *)NULL);
if (trylevel == 0)
@@ -1449,9 +1450,9 @@ do_cmdline(cmdline, getline, cookie, flags)
*/
if (did_throw)
need_rethrow = TRUE;
if ((getline_equal(getline, cookie, getsourceline)
if ((getline_equal(fgetline, cookie, getsourceline)
&& ex_nesting_level > source_level(real_cookie))
|| (getline_equal(getline, cookie, get_func_line)
|| (getline_equal(fgetline, cookie, get_func_line)
&& ex_nesting_level > func_level(real_cookie) + 1))
{
if (!did_throw)
@@ -1460,16 +1461,16 @@ do_cmdline(cmdline, getline, cookie, flags)
else
{
/* When leaving a function, reduce nesting level. */
if (getline_equal(getline, cookie, get_func_line))
if (getline_equal(fgetline, cookie, get_func_line))
--ex_nesting_level;
/*
* Go to debug mode when returning from a function in which we are
* single-stepping.
*/
if ((getline_equal(getline, cookie, getsourceline)
|| getline_equal(getline, cookie, get_func_line))
if ((getline_equal(fgetline, cookie, getsourceline)
|| getline_equal(fgetline, cookie, get_func_line))
&& ex_nesting_level + 1 <= debug_break_level)
do_debug(getline_equal(getline, cookie, getsourceline)
do_debug(getline_equal(fgetline, cookie, getsourceline)
? (char_u *)_("End of sourced file")
: (char_u *)_("End of function"));
}
@@ -2871,8 +2872,10 @@ find_command(eap, full)
}
#ifdef FEAT_USR_CMDS
/* Look for a user defined command as a last resort */
if (eap->cmdidx == CMD_SIZE && *eap->cmd >= 'A' && *eap->cmd <= 'Z')
/* Look for a user defined command as a last resort. Let ":Print" be
* overruled by a user defined command. */
if ((eap->cmdidx == CMD_SIZE || eap->cmdidx == CMD_Print)
&& *eap->cmd >= 'A' && *eap->cmd <= 'Z')
{
/* User defined commands may contain digits. */
while (ASCII_ISALNUM(*p))
@@ -4521,12 +4524,14 @@ expand_filename(eap, cmdlinep, errormsgp)
else /* n == 2 */
{
expand_T xpc;
int options = WILD_LIST_NOTFOUND|WILD_ADD_SLASH;
ExpandInit(&xpc);
xpc.xp_context = EXPAND_FILES;
if (p_wic)
options += WILD_ICASE;
p = ExpandOne(&xpc, eap->arg, NULL,
WILD_LIST_NOTFOUND|WILD_ADD_SLASH,
WILD_EXPAND_FREE);
options, WILD_EXPAND_FREE);
if (p == NULL)
return FAIL;
}
@@ -5588,6 +5593,7 @@ ex_command(eap)
int compl = EXPAND_NOTHING;
char_u *compl_arg = NULL;
int has_attr = (eap->arg[0] == '-');
int name_len;
p = eap->arg;
@@ -5613,6 +5619,7 @@ ex_command(eap)
return;
}
end = p;
name_len = (int)(end - name);
/* If there is nothing after the name, and no attributes were specified,
* we are listing commands
@@ -5627,6 +5634,13 @@ ex_command(eap)
EMSG(_("E183: User defined commands must start with an uppercase letter"));
return;
}
else if ((name_len == 1 && *name == 'X')
|| (name_len <= 4
&& STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0))
{
EMSG(_("E841: Reserved name, cannot be used for user defined command"));
return;
}
else
uc_add_command(name, end - name, p, argt, def, flags, compl, compl_arg,
eap->forceit);
@@ -6040,15 +6054,17 @@ do_ucmd(eap)
end = vim_strchr(start + 1, '>');
if (buf != NULL)
{
ksp = vim_strchr(p, K_SPECIAL);
if (ksp != NULL && (start == NULL || ksp < start || end == NULL)
for (ksp = p; *ksp != NUL && *ksp != K_SPECIAL; ++ksp)
;
if (*ksp == K_SPECIAL
&& (start == NULL || ksp < start || end == NULL)
&& ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER)
# ifdef FEAT_GUI
|| (ksp[1] == KS_EXTRA && ksp[2] == (int)KE_CSI)
# endif
))
{
/* K_SPECIAL han been put in the buffer as K_SPECIAL
/* K_SPECIAL has been put in the buffer as K_SPECIAL
* KS_SPECIAL KE_FILLER, like for mappings, but
* do_cmdline() doesn't handle that, so convert it back.
* Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */
@@ -9296,7 +9312,7 @@ exec_normal_cmd(cmd, remap, silent)
&& !got_int)
{
update_topline_cursor();
normal_cmd(&oa, FALSE); /* execute a Normal mode cmd */
normal_cmd(&oa, TRUE); /* execute a Normal mode cmd */
}
}
#endif
@@ -9394,7 +9410,7 @@ ex_findpat(eap)
ex_ptag(eap)
exarg_T *eap;
{
g_do_tagpreview = p_pvh;
g_do_tagpreview = p_pvh; /* will be reset to 0 in ex_tag_cmd() */
ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1);
}
@@ -9526,17 +9542,23 @@ find_cmdline_var(src, usedlen)
#define SPEC_CFILE 4
"<sfile>", /* ":so" file name */
#define SPEC_SFILE 5
"<slnum>", /* ":so" file line number */
#define SPEC_SLNUM 6
#ifdef FEAT_AUTOCMD
"<afile>", /* autocommand file name */
# define SPEC_AFILE 6
# define SPEC_AFILE 7
"<abuf>", /* autocommand buffer number */
# define SPEC_ABUF 7
# define SPEC_ABUF 8
"<amatch>", /* autocommand match name */
# define SPEC_AMATCH 8
# define SPEC_AMATCH 9
#endif
#ifdef FEAT_CLIENTSERVER
"<client>"
# define SPEC_CLIENT 9
# ifdef FEAT_AUTOCMD
# define SPEC_CLIENT 10
# else
# define SPEC_CLIENT 7
# endif
#endif
};
@@ -9561,6 +9583,7 @@ find_cmdline_var(src, usedlen)
* '<cWORD>' to WORD under the cursor
* '<cfile>' to path name under the cursor
* '<sfile>' to sourced file name
* '<slnum>' to sourced file line number
* '<afile>' to file name for autocommand
* '<abuf>' to buffer number for autocommand
* '<amatch>' to matching name for autocommand
@@ -9592,10 +9615,7 @@ eval_vars(src, srcstart, usedlen, lnump, errormsg, escaped)
#ifdef FEAT_MODIFY_FNAME
int skip_mod = FALSE;
#endif
#if defined(FEAT_AUTOCMD) || defined(FEAT_CLIENTSERVER)
char_u strbuf[30];
#endif
*errormsg = NULL;
if (escaped != NULL)
@@ -9784,6 +9804,15 @@ eval_vars(src, srcstart, usedlen, lnump, errormsg, escaped)
return NULL;
}
break;
case SPEC_SLNUM: /* line in file for ":so" command */
if (sourcing_name == NULL || sourcing_lnum == 0)
{
*errormsg = (char_u *)_("E842: no line number to use for \"<slnum>\"");
return NULL;
}
sprintf((char *)strbuf, "%ld", (long)sourcing_lnum);
result = strbuf;
break;
#if defined(FEAT_CLIENTSERVER)
case SPEC_CLIENT: /* Source of last submitted input */
sprintf((char *)strbuf, PRINTF_HEX_LONG_U,

View File

@@ -688,28 +688,35 @@ getcmdline(firstc, count, indent)
p = get_expr_line();
--textlock;
restore_cmdline(&save_ccline);
len = (int)STRLEN(p);
if (p != NULL && realloc_cmdbuff(len + 1) == OK)
if (p != NULL)
{
ccline.cmdlen = len;
STRCPY(ccline.cmdbuff, p);
vim_free(p);
len = (int)STRLEN(p);
if (realloc_cmdbuff(len + 1) == OK)
{
ccline.cmdlen = len;
STRCPY(ccline.cmdbuff, p);
vim_free(p);
/* Restore the cursor or use the position set with
* set_cmdline_pos(). */
if (new_cmdpos > ccline.cmdlen)
ccline.cmdpos = ccline.cmdlen;
else
ccline.cmdpos = new_cmdpos;
/* Restore the cursor or use the position set with
* set_cmdline_pos(). */
if (new_cmdpos > ccline.cmdlen)
ccline.cmdpos = ccline.cmdlen;
else
ccline.cmdpos = new_cmdpos;
KeyTyped = FALSE; /* Don't do p_wc completion. */
redrawcmd();
goto cmdline_changed;
KeyTyped = FALSE; /* Don't do p_wc completion. */
redrawcmd();
goto cmdline_changed;
}
}
}
beep_flush();
c = ESC;
got_int = FALSE; /* don't abandon the command line */
did_emsg = FALSE;
emsg_on_display = FALSE;
redrawcmd();
goto cmdline_not_changed;
}
#endif
else
@@ -3332,10 +3339,14 @@ nextwild(xp, type, options)
p2 = NULL;
else
{
int use_options = options |
WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE;
if (p_wic)
use_options += WILD_ICASE;
p2 = ExpandOne(xp, p1,
vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
|options, type);
use_options, type);
vim_free(p1);
/* longest match: make sure it is not shorter, happens with :help */
if (p2 != NULL && type == WILD_LONGEST)
@@ -3421,6 +3432,7 @@ nextwild(xp, type, options)
* options = WILD_KEEP_ALL: don't remove 'wildignore' entries
* options = WILD_SILENT: don't print warning messages
* options = WILD_ESCAPE: put backslash before special chars
* options = WILD_ICASE: ignore case for files
*
* The variables xp->xp_context and xp->xp_backslash must have been set!
*/
@@ -4354,6 +4366,7 @@ expand_cmdline(xp, str, col, matchcount, matches)
char_u ***matches; /* return: array of pointers to matches */
{
char_u *file_str = NULL;
int options = WILD_ADD_SLASH|WILD_SILENT;
if (xp->xp_context == EXPAND_UNSUCCESSFUL)
{
@@ -4372,9 +4385,11 @@ expand_cmdline(xp, str, col, matchcount, matches)
if (file_str == NULL)
return EXPAND_UNSUCCESSFUL;
if (p_wic)
options += WILD_ICASE;
/* find all files that match the description */
if (ExpandFromContext(xp, file_str, matchcount, matches,
WILD_ADD_SLASH|WILD_SILENT) == FAIL)
if (ExpandFromContext(xp, file_str, matchcount, matches, options) == FAIL)
{
*matchcount = 0;
*matches = NULL;
@@ -4426,7 +4441,7 @@ ExpandFromContext(xp, pat, num_file, file, options)
char_u *pat;
int *num_file;
char_u ***file;
int options;
int options; /* EW_ flags */
{
#ifdef FEAT_CMDL_COMPL
regmatch_T regmatch;
@@ -4480,6 +4495,9 @@ ExpandFromContext(xp, pat, num_file, file, options)
flags |= (EW_FILE | EW_PATH);
else
flags = (flags | EW_DIR) & ~EW_FILE;
if (options & WILD_ICASE)
flags |= EW_ICASE;
/* Expand wildcards, supporting %:h and the like. */
ret = expand_wildcards_eval(&pat, num_file, file, flags);
if (free_pat)
@@ -4744,7 +4762,11 @@ expand_shellcmd(filepat, num_file, file, flagsarg)
|| (pat[1] == '.' && vim_ispathsep(pat[2])))))
path = (char_u *)".";
else
{
path = vim_getenv((char_u *)"PATH", &mustfree);
if (path == NULL)
path = (char_u *)"";
}
/*
* Go over all directories in $PATH. Expand matches in that directory and

View File

@@ -11,14 +11,6 @@
* fileio.c: read from and write to a file
*/
#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
# include "vimio.h" /* for lseek(), must be before vim.h */
#endif
#if defined __EMX__
# include "vimio.h" /* for mktemp(), CJW 1997-12-03 */
#endif
#include "vim.h"
#if defined(__TANDEM) || defined(__MINT__)
@@ -258,6 +250,7 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
#ifdef FEAT_CRYPT
char_u *cryptkey = NULL;
int did_ask_for_key = FALSE;
int crypt_method_used;
#endif
#ifdef FEAT_PERSISTENT_UNDO
context_sha256_T sha_ctx;
@@ -325,7 +318,7 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
int using_b_fname;
#endif
write_no_eol_lnum = 0; /* in case it was set by the previous read */
curbuf->b_no_eol_lnum = 0; /* in case it was set by the previous read */
/*
* If there is no file name yet, use the one for the read file.
@@ -918,7 +911,7 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
{
/* Read the first line (and a bit more). Immediately rewind to
* the start of the file. If the read() fails "len" is -1. */
len = vim_read(fd, firstline, 80);
len = read_eintr(fd, firstline, 80);
lseek(fd, (off_t)0L, SEEK_SET);
for (p = firstline; p < firstline + len; ++p)
if (*p >= 0x80)
@@ -1373,7 +1366,7 @@ retry:
/*
* Read bytes from the file.
*/
size = vim_read(fd, ptr, size);
size = read_eintr(fd, ptr, size);
}
if (size <= 0)
@@ -2297,6 +2290,7 @@ failed:
save_file_ff(curbuf); /* remember the current file format */
#ifdef FEAT_CRYPT
crypt_method_used = use_crypt_method;
if (cryptkey != NULL)
{
crypt_pop_state();
@@ -2491,7 +2485,10 @@ failed:
#ifdef FEAT_CRYPT
if (cryptkey != NULL)
{
STRCAT(IObuff, _("[crypted]"));
if (crypt_method_used == 1)
STRCAT(IObuff, _("[blowfish]"));
else
STRCAT(IObuff, _("[crypted]"));
c = TRUE;
}
#endif
@@ -2607,10 +2604,11 @@ failed:
/*
* Trick: We remember if the last line of the read didn't have
* an eol for when writing it again. This is required for
* an eol even when 'binary' is off, for when writing it again with
* 'binary' on. This is required for
* ":autocmd FileReadPost *.gz set bin|'[,']!gunzip" to work.
*/
write_no_eol_lnum = read_no_eol_lnum;
curbuf->b_no_eol_lnum = read_no_eol_lnum;
/* When reloading a buffer put the cursor at the first line that is
* different. */
@@ -2658,13 +2656,17 @@ failed:
FALSE, NULL, eap);
if (msg_scrolled == n)
msg_scroll = m;
#ifdef FEAT_EVAL
# ifdef FEAT_EVAL
if (aborting()) /* autocmds may abort script processing */
return FAIL;
#endif
# endif
}
#endif
/* Reset now, following writes should not omit the EOL. Also, the line
* number will become invalid because of edits. */
curbuf->b_no_eol_lnum = 0;
if (recoverymode && error)
return FAIL;
return OK;
@@ -3202,6 +3204,9 @@ buf_write(buf, fname, sfname, start, end, eap, append, forceit,
int write_undo_file = FALSE;
context_sha256_T sha_ctx;
#endif
#ifdef FEAT_CRYPT
int crypt_method_used;
#endif
if (fname == NULL || *fname == NUL) /* safety check */
return FAIL;
@@ -4000,7 +4005,7 @@ buf_write(buf, fname, sfname, start, end, eap, append, forceit,
#ifdef HAS_BW_FLAGS
write_info.bw_flags = FIO_NOCONVERT;
#endif
while ((write_info.bw_len = vim_read(fd, copybuf,
while ((write_info.bw_len = read_eintr(fd, copybuf,
BUFSIZE)) > 0)
{
if (buf_write_bytes(&write_info) == FAIL)
@@ -4568,7 +4573,7 @@ restore_backup:
if (end == 0
|| (lnum == end
&& write_bin
&& (lnum == write_no_eol_lnum
&& (lnum == buf->b_no_eol_lnum
|| (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol))))
{
++lnum; /* written the line, count it */
@@ -4731,6 +4736,7 @@ restore_backup:
mch_set_acl(wfname, acl);
#endif
#ifdef FEAT_CRYPT
crypt_method_used = use_crypt_method;
if (wb_flags & FIO_ENCRYPTED)
crypt_pop_state();
#endif
@@ -4813,7 +4819,7 @@ restore_backup:
#ifdef HAS_BW_FLAGS
write_info.bw_flags = FIO_NOCONVERT;
#endif
while ((write_info.bw_len = vim_read(fd, smallbuf,
while ((write_info.bw_len = read_eintr(fd, smallbuf,
SMBUFSIZE)) > 0)
if (buf_write_bytes(&write_info) == FAIL)
break;
@@ -4885,7 +4891,10 @@ restore_backup:
#ifdef FEAT_CRYPT
if (wb_flags & FIO_ENCRYPTED)
{
STRCAT(IObuff, _("[crypted]"));
if (crypt_method_used == 1)
STRCAT(IObuff, _("[blowfish]"));
else
STRCAT(IObuff, _("[crypted]"));
c = TRUE;
}
#endif
@@ -5094,8 +5103,6 @@ nofail:
{
aco_save_T aco;
write_no_eol_lnum = 0; /* in case it was set by the previous read */
/*
* Apply POST autocommands.
* Careful: The autocommands may call buf_write() recursively!
@@ -5330,7 +5337,7 @@ time_differs(t1, t2)
/*
* Call write() to write a number of bytes to the file.
* Also handles encryption and 'encoding' conversion.
* Handles encryption and 'encoding' conversion.
*
* Return FAIL for failure, OK otherwise.
*/
@@ -5702,16 +5709,8 @@ buf_write_bytes(ip)
crypt_encode(buf, len, buf);
#endif
/* Repeat the write(), it may be interrupted by a signal. */
while (len > 0)
{
wlen = vim_write(ip->bw_fd, buf, len);
if (wlen <= 0) /* error! */
return FAIL;
len -= wlen;
buf += wlen;
}
return OK;
wlen = write_eintr(ip->bw_fd, buf, len);
return (wlen < len) ? FAIL : OK;
}
#ifdef FEAT_MBYTE
@@ -6662,8 +6661,8 @@ vim_rename(from, to)
return -1;
}
while ((n = vim_read(fd_in, buffer, BUFSIZE)) > 0)
if (vim_write(fd_out, buffer, n) != n)
while ((n = read_eintr(fd_in, buffer, BUFSIZE)) > 0)
if (write_eintr(fd_out, buffer, n) != n)
{
errmsg = _("E208: Error writing to \"%s\"");
break;
@@ -7024,7 +7023,7 @@ buf_check_timestamp(buf, focus)
STRCAT(tbuf, mesg2);
}
if (do_dialog(VIM_WARNING, (char_u *)_("Warning"), tbuf,
(char_u *)_("&OK\n&Load File"), 1, NULL) == 2)
(char_u *)_("&OK\n&Load File"), 1, NULL, TRUE) == 2)
reload = TRUE;
}
else
@@ -7272,8 +7271,8 @@ buf_store_time(buf, st, fname)
write_lnum_adjust(offset)
linenr_T offset;
{
if (write_no_eol_lnum != 0) /* only if there is a missing eol */
write_no_eol_lnum += offset;
if (curbuf->b_no_eol_lnum != 0) /* only if there is a missing eol */
curbuf->b_no_eol_lnum += offset;
}
#if defined(TEMPDIRNAMES) || defined(PROTO)
@@ -7475,7 +7474,10 @@ vim_tempname(extra_char)
STRCPY(itmp, "");
if (GetTempPath(_MAX_PATH, szTempFile) == 0)
szTempFile[0] = NUL; /* GetTempPath() failed, use current dir */
{
szTempFile[0] = '.'; /* GetTempPath() failed, use current dir */
szTempFile[1] = NUL;
}
strcpy(buf4, "VIM");
buf4[2] = extra_char; /* make it "VIa", "VIb", etc. */
if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0)
@@ -7496,8 +7498,11 @@ vim_tempname(extra_char)
# else /* WIN3264 */
# ifdef USE_TMPNAM
char_u *p;
/* tmpnam() will make its own name */
if (*tmpnam((char *)itmp) == NUL)
p = tmpnam((char *)itmp);
if (p == NULL || *p == NUL)
return NULL;
# else
char_u *p;
@@ -10304,3 +10309,55 @@ file_pat_to_reg_pat(pat, pat_end, allow_dirs, no_bslash)
}
return reg_pat;
}
#if defined(EINTR) || defined(PROTO)
/*
* Version of read() that retries when interrupted by EINTR (possibly
* by a SIGWINCH).
*/
long
read_eintr(fd, buf, bufsize)
int fd;
void *buf;
size_t bufsize;
{
long ret;
for (;;)
{
ret = vim_read(fd, buf, bufsize);
if (ret >= 0 || errno != EINTR)
break;
}
return ret;
}
/*
* Version of write() that retries when interrupted by EINTR (possibly
* by a SIGWINCH).
*/
long
write_eintr(fd, buf, bufsize)
int fd;
void *buf;
size_t bufsize;
{
long ret = 0;
long wlen;
/* Repeat the write() so long it didn't fail, other than being interrupted
* by a signal. */
while (ret < (long)bufsize)
{
wlen = vim_write(fd, (char *)buf + ret, bufsize - ret);
if (wlen < 0)
{
if (errno != EINTR)
break;
}
else
ret += wlen;
}
return ret;
}
#endif

View File

@@ -1506,9 +1506,6 @@ updatescript(c)
}
}
#define KL_PART_KEY -1 /* keylen value for incomplete key-code */
#define KL_PART_MAP -2 /* keylen value for incomplete mapping */
/*
* Get the next input character.
* Can return a special key or a multi-byte character.
@@ -2171,7 +2168,7 @@ vgetorpeek(advance)
if (!timedout)
{
/* break at a partly match */
keylen = KL_PART_MAP;
keylen = KEYLEN_PART_MAP;
break;
}
}
@@ -2192,7 +2189,7 @@ vgetorpeek(advance)
/* If no partly match found, use the longest full
* match. */
if (keylen != KL_PART_MAP)
if (keylen != KEYLEN_PART_MAP)
{
mp = mp_match;
keylen = mp_match_len;
@@ -2230,7 +2227,7 @@ vgetorpeek(advance)
}
/* Need more chars for partly match. */
if (mlen == typebuf.tb_len)
keylen = KL_PART_KEY;
keylen = KEYLEN_PART_KEY;
else if (max_mlen < mlen)
/* no match, may have to check for termcode at
* next character */
@@ -2238,7 +2235,7 @@ vgetorpeek(advance)
}
if ((mp == NULL || max_mlen >= mp_match_len)
&& keylen != KL_PART_MAP)
&& keylen != KEYLEN_PART_MAP)
{
int save_keylen = keylen;
@@ -2264,8 +2261,8 @@ vgetorpeek(advance)
/* If no termcode matched but 'pastetoggle'
* matched partially it's like an incomplete key
* sequence. */
if (keylen == 0 && save_keylen == KL_PART_KEY)
keylen = KL_PART_KEY;
if (keylen == 0 && save_keylen == KEYLEN_PART_KEY)
keylen = KEYLEN_PART_KEY;
/*
* When getting a partial match, but the last
@@ -2302,7 +2299,7 @@ vgetorpeek(advance)
continue;
}
if (*s == NUL) /* need more characters */
keylen = KL_PART_KEY;
keylen = KEYLEN_PART_KEY;
}
if (keylen >= 0)
#endif
@@ -2339,7 +2336,8 @@ vgetorpeek(advance)
if (keylen > 0) /* full matching terminal code */
{
#if defined(FEAT_GUI) && defined(FEAT_MENU)
if (typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
if (typebuf.tb_len >= 2
&& typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
&& typebuf.tb_buf[typebuf.tb_off + 1]
== KS_MENU)
{
@@ -2381,7 +2379,7 @@ vgetorpeek(advance)
/* Partial match: get some more characters. When a
* matching mapping was found use that one. */
if (mp == NULL || keylen < 0)
keylen = KL_PART_KEY;
keylen = KEYLEN_PART_KEY;
else
keylen = mp_match_len;
}
@@ -2553,7 +2551,8 @@ vgetorpeek(advance)
#endif
&& typebuf.tb_maplen == 0
&& (State & INSERT)
&& (p_timeout || (keylen == KL_PART_KEY && p_ttimeout))
&& (p_timeout
|| (keylen == KEYLEN_PART_KEY && p_ttimeout))
&& (c = inchar(typebuf.tb_buf + typebuf.tb_off
+ typebuf.tb_len, 3, 25L,
typebuf.tb_change_cnt)) == 0)
@@ -2711,8 +2710,11 @@ vgetorpeek(advance)
* are still available. But when those available characters
* are part of a mapping, and we are going to do a blocking
* wait here. Need to update the screen to display the
* changed text so far. */
if ((State & INSERT) && advance && must_redraw != 0)
* changed text so far. Also for when 'lazyredraw' is set and
* redrawing was postponed because there was something in the
* input buffer (e.g., termresponse). */
if (((State & INSERT) != 0 || p_lz) && (State & CMDLINE) == 0
&& advance && must_redraw != 0 && !need_wait_return)
{
update_screen(0);
setcursor(); /* put cursor back where it belongs */
@@ -2783,9 +2785,9 @@ vgetorpeek(advance)
? 0
: ((typebuf.tb_len == 0
|| !(p_timeout || (p_ttimeout
&& keylen == KL_PART_KEY)))
&& keylen == KEYLEN_PART_KEY)))
? -1L
: ((keylen == KL_PART_KEY && p_ttm >= 0)
: ((keylen == KEYLEN_PART_KEY && p_ttm >= 0)
? p_ttm
: p_tm)), typebuf.tb_change_cnt);
@@ -3290,9 +3292,9 @@ do_map(maptype, arg, mode, abbrev)
*/
if (haskey)
keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, special);
orig_rhs = rhs;
if (hasarg)
{
orig_rhs = rhs;
if (STRICMP(rhs, "<nop>") == 0) /* "<Nop>" means nothing */
rhs = (char_u *)"";
else
@@ -3922,7 +3924,7 @@ showmap(mp, local)
if (mapchars != NULL)
{
msg_puts(mapchars);
len = STRLEN(mapchars);
len = (int)STRLEN(mapchars);
vim_free(mapchars);
}

Some files were not shown because too many files have changed in this diff Show More