Compare commits

...

877 Commits

Author SHA1 Message Date
Bram Moolenaar
32f649e1fc updated for version 7.3.155
Problem:    Crash when using map(), filter() and remove() on v:. (ZyX)
            Also for extend(). (Yukihiro Nakadaira)
Solution:   Mark v: as locked.  Also correct locking error messages.
2011-04-11 13:46:13 +02:00
Bram Moolenaar
2dfb38659c updated for version 7.3.154
Problem:    Can't compile with tiny features. (Tony Mechelynck)
Solution:   Move #define outside of #ifdef.
2011-04-02 15:12:50 +02:00
Bram Moolenaar
10d77eb6ac updated for version 7.3.153
Problem:    Compiler warning for ambiguous else, missing prototype.
Solution:   Add braces. (Dominique Pelle)  Add prototype for die().
2011-04-02 14:44:55 +02:00
Bram Moolenaar
e0659a680c updated for version 7.3.152
Problem:    Xxd does not check for errors from library functions.
Solution:   Add error checks. (Florian Zumbiehl)
2011-04-01 19:14:40 +02:00
Bram Moolenaar
adc2182c40 Updated runtime files. 2011-04-01 18:03:16 +02:00
Bram Moolenaar
337ae06ff9 updated for version 7.3.151
Problem:    When "unnamedplus" is in 'clipboard' the selection is sometimes
            also copied to the star register.
Solution:   Avoid copy to the star register when undesired. (James Vega)
2011-04-01 16:28:38 +02:00
Bram Moolenaar
27b6056d85 updated for version 7.3.150
Problem:    readline() does not return the last line when the NL is missing.
            (Hong Xu)
Solution:   When at the end of the file Also check for a previous line.
2011-04-01 16:07:46 +02:00
Bram Moolenaar
96bcc5e6cd updated for version 7.3.149
Problem:    The cursor disappears after the processing of the 'setDot'
            netbeans command when vim runs in a terminal.
Solution:   Show the cursor after a screen update. (Xavier de Gaye, 2011
2011-04-01 15:33:59 +02:00
Bram Moolenaar
42431a7aa0 updated for version 7.3.148
Problem:    A syntax file with a huge number of items or clusters causes weird
            behavior, a hang or a crash. (Yukihiro Nakadaira)
Solution:   Check running out of IDs. (partly by Ben Schmidt)
2011-04-01 14:44:59 +02:00
Bram Moolenaar
316dca03ca updated for version 7.3.147
Problem:    Can't build on HP-UX.
Solution:   Remove an unnecessary backslash. (John Marriott)
2011-04-01 13:05:45 +02:00
Bram Moolenaar
4228bec0ae updated for version 7.3.146
Problem:    It's possible to assign to a read-only member of a dict.
            It's possible to create a global variable "0". (ZyX)
            It's possible to add a v: variable with ":let v:.name = 1".
Solution:   Add check for dict item being read-only.
            Check the name of g: variables.
            Disallow adding v: variables.
2011-03-27 16:03:15 +02:00
Bram Moolenaar
30fec7bc7f updated for version 7.3.145
Problem:    Can't build with Python dynamically loading.
Solution:   Add dll_PyType_Ready.
2011-03-26 18:32:05 +01:00
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
Bram Moolenaar
ebbcb824ba updated for version 7.3.034
Problem:    Win32: may be loading .dll from the wrong directory.
Solution:   Go to the Vim executable directory when opening a library.
2010-10-23 14:02:54 +02:00
Bram Moolenaar
b8e86705ca updated for version 7.3.033
Problem:    Can't build without FEAT_LOCALMAP.
Solution:   Add an #ifdef. (John Marriott)
2010-10-22 22:13:52 +02:00
Bram Moolenaar
bd74325960 updated for version 7.3.032
Problem:    maparg() doesn't return the flags, such as <buffer>, <script>,
            <silent>.  These are needed to save and restore a mapping.
Solution:   Improve maparg(). (also by Christian Brabandt)
2010-10-20 21:23:33 +02:00
Bram Moolenaar
727c876b78 updated for version 7.3.031
Problem:    Can't pass the X window ID to another application.
Solution:   Add v:windowid. (Christian J. Robinson, Lech Lorens)
2010-10-20 19:17:48 +02:00
Bram Moolenaar
483c5d80a7 Updated runtime files and translations. 2010-10-20 18:45:33 +02:00
Bram Moolenaar
680eeca955 updated for version 7.3.030
Problem:    Cannot store Dict and List in viminfo file.
Solution:   Add support for this. (Christian Brabandt)
2010-10-20 17:44:42 +02:00
Bram Moolenaar
f75d498844 updated for version 7.3.029
Problem:    ":sort n" sorts lines without a number as number zero. (Beeyawned)
Solution:   Make lines without a number sort before lines with a number.  Also
            fix sorting negative numbers.
2010-10-15 20:20:05 +02:00
Bram Moolenaar
b60574ba21 updated for version 7.3.028
Problem:    Signs don't show up. (Charles Campbell)
Solution:   Don't use negative numbers.  Also assign a number to signs that
            have a name of all digits to avoid using a sign number twice.
2010-10-14 21:29:37 +02:00
Bram Moolenaar
464c92545a updated for version 7.3.027
Problem:    Opening a file on a network share is very slow.
Solution:   When fixing file name case append "\*" to directory, server and
            network share names. (David Anderson, John Beckett)
2010-10-13 20:37:41 +02:00
Bram Moolenaar
77a0aa457d updated for version 7.3.026
Problem:    CTRL-] in a help file doesn't always work. (Tony Mechelynck)
Solution:   Don't escape special characters. (Carlo Teubner)
2010-10-13 18:06:47 +02:00
Bram Moolenaar
78f74a91bf updated for version 7.3.025
Problem:    ":mksession" does not square brackets escape file name properly.
Solution:   Improve escapging of file names. (partly by Peter Odding)
2010-10-13 17:50:07 +02:00
Bram Moolenaar
a4f332b44c updated for version 7.3.024
Problem:    Named signs do not use a negative number as intended.
Solution:   Fix the numbering of named signs. (Xavier de Gaye)
2010-10-13 16:44:23 +02:00
Bram Moolenaar
624891f3ef updated for version 7.3.023
Problem:    External program may hang when it tries to write to the tty.
Solution:   Don't close the slave tty until after the child exits. (Nikola
            Knezevic)
2010-10-13 16:22:09 +02:00
Bram Moolenaar
d5784f9fc4 updated for version 7.3.022
Problem:    When opening a new window the 'spellcapcheck' option is cleared.
Solution:   Copy the correct option value. (Christian Brabandt)
2010-10-13 14:05:35 +02:00
Bram Moolenaar
423f97277d updated for version 7.3.021
Problem:    Conflict for defining Boolean in Mac header files.
Solution:   Define NO_X11_INCLUDES. (Rainer Muller)
2010-10-10 17:08:43 +02:00
Bram Moolenaar
341ad7a699 updated for version 7.3.020
Problem:    Cursor position wrong when joining multiple lines and
            'formatoptions' contains "a". (Moshe Kamensky)
Solution:   Adjust cursor position for skipped indent. (Carlo Teubner)
2010-10-09 17:23:31 +02:00
Bram Moolenaar
4a74803ef8 Runtime file updates. 2010-09-30 21:47:56 +02:00
Bram Moolenaar
c2a406b317 updated for version 7.3.019
Problem:    ":nbstart" can fail silently.
Solution:   Give an error when netbeans is not supported by the GUI. (Xavier
            de Gaye)
2010-09-30 21:03:26 +02:00
Bram Moolenaar
d622beb3c3 updated for version 7.3.018
Problem:    Missing argument to windres in MingW makefiles.
Solution:   Add the argument that was wrapped in the patch. (Jon Maken)
2010-09-29 18:42:28 +02:00
Bram Moolenaar
a8fc79895e updated for version 7.3.017
Problem:    smatch reports errors.
Solution:   Fix the reported errors. (Dominique Pelle)
2010-09-29 18:32:52 +02:00
Bram Moolenaar
173c98550f updated for version 7.3.016
Problem:    Netbeans doesn't work under Athena.
Solution:   Support Athena, just like Motif. (Xavier de Gaye)
2010-09-29 17:27:01 +02:00
Bram Moolenaar
3967692f9e updated for version 7.3.015
Problem:    Test is using error message that no longer exists.
Solution:   Change E106 to E121. (Dominique Pelle)
2010-09-29 16:55:49 +02:00
Bram Moolenaar
417f5e7f11 updated for version 7.3.014
Problem:    Ending a line in a backslash inside an ":append" or ":insert"
            command in Ex mode doesn't work properly. (Ray Frush)
Solution:   Halve the number of backslashes, only insert a NUL after an odd
            number of backslashes.
2010-09-29 15:50:30 +02:00
Bram Moolenaar
f9b5ef8c88 updated for version 7.3.013
Problem:    Dynamic loading with Ruby doesn't work for 1.9.2.
Solution:   Handle rb_str2cstr differently.  Also support dynamic loading on
            Unix. (Jon Maken)
2010-09-29 13:02:53 +02:00
Bram Moolenaar
3c9ab1c0e0 updated for version 7.3.012
Problem:    Problems building with MingW.
Solution:   Adjust the MingW makefiles. (Jon)
2010-09-29 12:38:00 +02:00
Bram Moolenaar
006590697c Updated runtime files. 2010-09-21 22:34:02 +02:00
Bram Moolenaar
62b42181fb updated for version 7.3.011
Problem:    X11 clipboard doesn't work in Athena/Motif GUI.  First selection
            after a shell command doesn't work.
Solution:   When using the GUI use XtLastTimestampProcessed() instead of
            changing a property.  (partly by Toni Ronkko)
            When executing a shell command disown the selection.
2010-09-21 22:09:37 +02:00
Bram Moolenaar
b05034a4ed updated for version 7.3.010
Problem:    Mac GUI: Missing break statements.
Solution:   Add the break statements. (Dominique Pelle)
2010-09-21 17:34:31 +02:00
Bram Moolenaar
d32a99a6d9 updated for version 7.3.009
Problem:    Win32: Crash on Windows when using a bad argument for strftime().
            (Christian Brabandt)
Solution:   Use the bad_param_handler(). (Mike Williams)
2010-09-21 17:29:23 +02:00
Bram Moolenaar
3368ea2152 updated for version 7.3.008
Problem:    'cursorbind' is kept in places where 'scrollbind' is reset.
Solution:   Reset 'cursorbind'.
2010-09-21 16:56:35 +02:00
Bram Moolenaar
2eea198564 updated for version 7.3.007
Problem:    Python code defines global "buffer".  Re-implements a grow-array.
Solution:   Use a grow-array instead of coding the same functionality.  Handle
            out-of-memory situation properly.
2010-09-21 16:49:37 +02:00
Bram Moolenaar
24ea3babed Updated runtime files. 2010-09-19 19:01:21 +02:00
Bram Moolenaar
60bb4e1b46 updated for version 7.3.006
Problem:    Can't build some multi-byte code with C89.
Solution:   Move code to after declarations. (Joachim Schmitz)
2010-09-18 13:36:49 +02:00
Bram Moolenaar
217d285fdd updated for version 7.3.005
Problem:    Crash when using undotree(). (Christian Brabandt)
Solution:   Increase the list reference count.  Add a test for undotree()
            (Lech Lorens)
2010-09-14 12:47:37 +02:00
Bram Moolenaar
73a92fe013 updated for version 7.3.004
Problem:    Crash when using very long regexp. (Peter Odding)
Solution:   Reset reg_toolong. (Carlo Teubner)
2010-09-14 10:55:47 +02:00
Bram Moolenaar
66e1f8860a Fold Vim 7.2 default branch back to trunk to avoid two heads. (Tony
Mechelynck)
2010-08-20 11:11:57 +02:00
Bram Moolenaar
832f80e310 updated for version 7.3.003
Problem:    Crash with specific BufWritePost autocmd. (Peter Odding)
Solution:   Don't free the quickfix title twice. (Lech Lorens)
2010-08-17 20:26:59 +02:00
Bram Moolenaar
c24b6977a1 updated for version 7.3.002
Problem:    ":find" completion doesn't work when halfway an environment
            variable. (Dominique Pelle)
Solution:   Only use in-path completion when expanding file names. (Nazri
            Ramliy)
2010-08-16 22:34:29 +02:00
Bram Moolenaar
da9836cfa9 updated for version 7.3.002
Problem:    ":find" completion doesn't work when halfway an environment
            variable. (Dominique Pelle)
Solution:   Only use in-path completion when expanding file names. (Nazri
            Ramliy)
2010-08-16 21:53:27 +02:00
Bram Moolenaar
7f03644116 Last changes for the 7.3 release! 2010-08-15 15:24:20 +02:00
Bram Moolenaar
35f330c0d2 Fix #ifdef for GDK_SUPER_MASK. (Stephan Schulz) 2010-08-15 13:53:58 +02:00
Bram Moolenaar
db84e4599c Make the references to features in the help more consistent. (Sylvain Hitier) 2010-08-15 13:50:43 +02:00
Bram Moolenaar
d04f440259 Docs fix for tabpagewinnr(). (Sylvain Hitier) 2010-08-15 13:30:34 +02:00
Bram Moolenaar
d732f9aee0 Two fixes for :find completion and more testing. (Nazri Ramliy) 2010-08-15 13:29:11 +02:00
Bram Moolenaar
10d4664330 Do include Mac clipboard code for MacVim. 2010-08-15 12:57:37 +02:00
Bram Moolenaar
abf39e880d Runtime file updates. 2010-08-14 21:57:32 +02:00
Bram Moolenaar
e00289df69 Fix building the Mac version with GUI. 2010-08-14 21:56:42 +02:00
Bram Moolenaar
755bd26c59 README and help file updates. 2010-08-14 17:46:20 +02:00
Bram Moolenaar
bb3d5dc320 Fix: in compatible mode, in an empty buffer, ":r file" triggered an error
message.
2010-08-14 14:32:54 +02:00
Bram Moolenaar
cda000e97f Fix: strcat() on overlapping string. (Dominique Pelle) 2010-08-14 13:34:39 +02:00
Bram Moolenaar
4421d6af22 Version 7.3f -> 7.3g 2010-08-14 13:33:56 +02:00
Bram Moolenaar
bfc8b97639 Preparations for 7.3f release. 2010-08-13 22:05:54 +02:00
Bram Moolenaar
dc685aba75 Cleanup in :find completion code. Make it work for "./subdir" in 'path'. 2010-08-13 21:16:49 +02:00
Bram Moolenaar
daf3b39559 Use mkdir() instead of !mkdir in test 73, it's more reliable. 2010-08-13 19:13:18 +02:00
Bram Moolenaar
673b87b577 Now really fix using expressions in the command line (hopefully). 2010-08-13 19:12:07 +02:00
Bram Moolenaar
35a3423c6a Fix illegal memory access when using expressions in the command line. 2010-08-13 16:51:26 +02:00
Bram Moolenaar
4a474d36d7 Update message for :python/:py3 usage with approximate translations. 2010-08-13 16:24:30 +02:00
Bram Moolenaar
b744b2fa32 Add a configure check for RTLD_GLOBAL. (James Vega, Roland Puntaier) 2010-08-13 16:22:57 +02:00
Bram Moolenaar
2a988a162c Conceal feature caused the 'cursorline' highlighting to stop early. 2010-08-13 15:24:39 +02:00
Bram Moolenaar
0fcd237614 Fix for Yaml syntax file. (Nikolai Weibull) 2010-08-13 14:58:53 +02:00
Bram Moolenaar
6b6eedfc1c Runtime file updates. 2010-08-13 14:38:12 +02:00
Bram Moolenaar
580061a821 Fix #ifdef for GDK_SUPER_MASK. 2010-08-13 13:57:13 +02:00
Bram Moolenaar
31710268ed More fixes for :find completion. (mostly by Nazri Ramliy) 2010-08-13 13:36:15 +02:00
Bram Moolenaar
f354981d4b Update to Perl runtime files. (Andy Lester) 2010-08-13 12:09:22 +02:00
Bram Moolenaar
7900f14991 Updated Italian menus. (Vlad Sandrini) 2010-08-13 11:57:42 +02:00
Bram Moolenaar
8df7f88890 Updates for :TOhtml. (Benjamin Fritz) 2010-08-13 11:30:02 +02:00
Bram Moolenaar
2f1e050414 Avoid warnings from the clang compiler. (Dominique Pelle) 2010-08-13 11:18:02 +02:00
Bram Moolenaar
0e97531298 Updated Finnish translations. (Flammie Pirinen) 2010-08-12 22:19:09 +02:00
Bram Moolenaar
2bd6a1b542 Fix: Lua interface tried to load the library when closing a buffer or window. 2010-08-12 22:14:01 +02:00
Bram Moolenaar
0be992e347 Improvements for :find completion. 2010-08-12 21:50:51 +02:00
Bram Moolenaar
d7b734a493 Include wchar.h in charset.c for towupper(). 2010-08-12 20:17:02 +02:00
Bram Moolenaar
ede981a27f Runtime file updates. 2010-08-11 23:37:32 +02:00
Bram Moolenaar
fae6c1a02d Updated translations. Added Portuguese tutor. 2010-08-11 23:11:47 +02:00
Bram Moolenaar
9bc040c8e1 Fixes for :find completion. 2010-08-11 22:05:57 +02:00
Bram Moolenaar
0ee8df9ce5 Improved pt_PT spell file generation. 2010-08-10 22:53:02 +02:00
Bram Moolenaar
d70b2a8355 Updated message translations. 2010-08-10 22:52:25 +02:00
Bram Moolenaar
7fc0c065f0 Runtime file updates. Fix tar plugin window split. 2010-08-10 21:43:35 +02:00
Bram Moolenaar
2d7c47de45 Make :find completion work better with the DJGPP build. (Nazri Ramliy) 2010-08-10 19:50:26 +02:00
Bram Moolenaar
d5ee95f964 Fix compiler warning. 2010-08-10 09:25:48 +02:00
Bram Moolenaar
d54a688130 Fix crash when using netbeans in a terminal when compiled with GUI support.
(partly by Xavier de Gaye)
2010-08-09 22:49:00 +02:00
Bram Moolenaar
9de9997949 Runtime file updates. 2010-08-09 22:33:06 +02:00
Bram Moolenaar
bc226b6ded Fix: :ltag command did not set w:quickfix_title. (Lech Lorens) 2010-08-09 22:14:48 +02:00
Bram Moolenaar
314f11d44c Fix for float values on VMS. (Zoltan Arpadffy) 2010-08-09 22:07:08 +02:00
Bram Moolenaar
b61f95c31f When building with both Python 2 and Python 3 don't use RTLD_GLOBAL, so that
both may work.
2010-08-09 22:06:13 +02:00
Bram Moolenaar
82d1c33a8a Version 7.3e -> 7.3f. 2010-08-09 20:16:32 +02:00
Bram Moolenaar
6af737fdb4 Runtime file updates. (Tim Pope) 2010-08-09 20:13:35 +02:00
Bram Moolenaar
4eccc3e301 Prepare for 7.3e release. 2010-08-08 21:39:46 +02:00
Bram Moolenaar
5eba45c74b Update version info in help files. 2010-08-08 21:15:53 +02:00
Bram Moolenaar
3479c5dc48 Fixed: on MS-Windows sometimes files with number 4913 or higher are left
behind.
2010-08-08 18:46:06 +02:00
Bram Moolenaar
e2b590ebf6 Update help about wildcards in 'tags' option. 2010-08-08 18:29:48 +02:00
Bram Moolenaar
463ee340d0 Fix: 'suffixesadd' was used for finding tags file. 2010-08-08 18:17:52 +02:00
Bram Moolenaar
09092155a6 Remove unused code. 2010-08-08 16:38:42 +02:00
Bram Moolenaar
83687a7215 NL spelling: remove REP items to avoid lots of suggestions with dots. 2010-08-08 16:34:14 +02:00
Bram Moolenaar
a0a2d437c2 Also support Doxygen in C# files. (Andreas J. Beblik) 2010-08-08 15:28:22 +02:00
Bram Moolenaar
96118f3e38 Improve positioning of combining characters in GTK. 2010-08-08 14:40:37 +02:00
Bram Moolenaar
2d231cb89c Make test 11 pass when there is no gzip program. (John Beckett) 2010-08-08 13:18:47 +02:00
Bram Moolenaar
5a7d7cde15 Avoid that test 73 ovewrites viminfo. (James Vega) 2010-08-08 13:13:51 +02:00
Bram Moolenaar
db41fa255d Fix: test 73 failed with small features. 2010-08-08 13:07:57 +02:00
Bram Moolenaar
06583f137b Change readfile() to ignore byte order marks, unless in binary mode. 2010-08-07 20:30:49 +02:00
Bram Moolenaar
1549e29af4 Use different Czech keymap (Stepan Nemec) 2010-08-07 18:42:45 +02:00
Bram Moolenaar
c0cba4d9b1 Fixed: on MS-Windows completion of shell commands didn't work. 2010-08-07 17:07:21 +02:00
Bram Moolenaar
b92159d59e Updated translations. (Dominique Pelle) 2010-08-07 16:38:38 +02:00
Bram Moolenaar
7ba6ed34fe Fix: An unprintable multi-byte character at the start of the screen line
caused the following text to be drawn at the wrong position.
2010-08-07 16:38:13 +02:00
Bram Moolenaar
bebca9daa4 Updates for :TOhtml. (Ben Fritz) 2010-08-07 15:47:30 +02:00
Bram Moolenaar
706e84b3ea Fix: with newer GTK versions accented characters were drawn too much to the
left.
2010-08-07 15:46:45 +02:00
Bram Moolenaar
311dc17d96 Update for jsp syntax file. 2010-08-07 13:46:23 +02:00
Bram Moolenaar
d3dd26658c Some messages were missing when updating translations. (Dominique Pelle) 2010-08-07 13:45:59 +02:00
Bram Moolenaar
dd10ce91a8 Set 'visualbell' in test 72 to avoid a beep. 2010-08-07 13:27:48 +02:00
Bram Moolenaar
6ab1cc4d65 Update pt_BR translations. 2010-08-07 13:19:56 +02:00
Bram Moolenaar
33aea1875c Update README files. Remove references to extra and lang archives. 2010-08-07 13:19:27 +02:00
Bram Moolenaar
0390ded91b Fix: ml_get errors when using undo with 'virtualedit'. 2010-08-07 12:54:12 +02:00
Bram Moolenaar
c3d2c4478d Updated Dutch spell files to use latest OpenOffic.org version. 2010-08-06 22:14:36 +02:00
Bram Moolenaar
3737f8988c Update version number in gvim.exe manifest. (Michael Wookey) 2010-08-06 20:53:49 +02:00
Bram Moolenaar
97cfe90de8 Call gui_mch_update() before triggering GuiEnter autocmd. (Ron Aaron) 2010-08-06 20:42:30 +02:00
Bram Moolenaar
e90ee31c40 Updated syntax files. 2010-08-05 22:08:47 +02:00
Bram Moolenaar
076e8b2a0b Improve handling of user settings in :TOhtml. Default to generating CSS.
(Benjamin Fritz)
2010-08-05 21:54:00 +02:00
Bram Moolenaar
84f888a5b3 Fix a few problems for :find completion. Test much more. (Nazri Ramliy) 2010-08-05 21:40:16 +02:00
Bram Moolenaar
74cbdf0334 Updated syntax files. (Charles Campbell) 2010-08-04 23:03:17 +02:00
Bram Moolenaar
a9d0cba165 Fixed: "make install" installed a few Amiga .info files. 2010-08-04 22:44:27 +02:00
Bram Moolenaar
5c3bd0a0fb Disallow setting 'ambiwidth' to "double" when 'listchars' or 'fillchars'
contains a character that would become double width.
2010-08-04 20:55:44 +02:00
Bram Moolenaar
e4ce65d445 After entering a crypt key would need to hit return to continue.
When silencing a message it would still clear a kept message.
2010-08-04 20:12:32 +02:00
Bram Moolenaar
257a9c873f 7.3d -> 7.3e. 2010-08-04 19:29:04 +02:00
Bram Moolenaar
3ea5fa7a11 Make test 73 a bit more portable. 2010-08-04 18:27:57 +02:00
Bram Moolenaar
1affd72471 Preparations for 7.3d release. 2010-08-04 17:49:30 +02:00
Bram Moolenaar
80a7dcf8b5 Make :find completion consistent between Unix and MS-Windows. Add a test.
(Nazri Ramliy)
2010-08-04 17:07:20 +02:00
Bram Moolenaar
150a1321b2 Add translations in diff syntax. (Jakson A. Aquino) 2010-08-04 16:11:50 +02:00
Bram Moolenaar
280a29f931 Small changes to the test files. (John Beckett) 2010-08-04 16:10:19 +02:00
Bram Moolenaar
a411e5d97d Set 'wrapscan' when checking the .po files. (Mike Williams) 2010-08-04 15:47:08 +02:00
Bram Moolenaar
3832c466d7 Fix: when setting crypt key seed was not updated when the swap file wasn't
created yet.
2010-08-04 15:32:46 +02:00
Bram Moolenaar
f9bb734367 When undoing a reload, move the cursor to the first changed line. 2010-08-04 14:29:54 +02:00
Bram Moolenaar
006d2b036b Fix crash when no item in 'path' is used for :find completion. 2010-08-04 12:39:44 +02:00
Bram Moolenaar
a68cac57de Rename quickfix plugin to match the filetype set in the code. 2010-08-04 12:05:40 +02:00
Bram Moolenaar
5aae419afe Runtime file updates. 2010-08-03 23:00:38 +02:00
Bram Moolenaar
245803840b Recognize .f03 and .f08 as Fortran files. (Ajit Thakkar) 2010-08-03 22:45:06 +02:00
Bram Moolenaar
7f0f621c4c Fix crash in :find completion. (Nazri Ramliy) 2010-08-03 22:21:00 +02:00
Bram Moolenaar
57adda1e90 Fix: With 'path' set to relative directory ":find" completion didn't work.
(Nazri Ramliy)
2010-08-03 22:11:29 +02:00
Bram Moolenaar
bf65051b7b Windows uninstaller: Instead of calling RegDeleteKeyEx() directly load it
dynamically from the .dll.  Should work everywhere.
2010-08-02 23:06:46 +02:00
Bram Moolenaar
61a91766f7 Take OLE registration back to 32 bit registry, the unregister wasn't working
for the 64 registry.
2010-08-02 22:13:25 +02:00
Bram Moolenaar
4b22cdb060 Syntax file updates. (Charles Campbell) 2010-08-02 22:12:46 +02:00
Bram Moolenaar
413177336f Updated version of gettext for use with MVC. (Mike Williams) 2010-08-02 21:43:29 +02:00
Bram Moolenaar
bdc975cdfe Improvements for :find completion. (Nazri Ramliy) 2010-08-02 21:33:37 +02:00
Bram Moolenaar
bbdcb4848a Put quotes around the gvim.exe path for the "Open with" menu entry. 2010-08-02 20:45:27 +02:00
Bram Moolenaar
3f97ebf730 Workaround for missing RegDeleteKeyEx() method. 2010-08-02 20:26:43 +02:00
Bram Moolenaar
e04abda52f Update version.h for 7.3c -> 7.3d. 2010-08-01 22:35:43 +02:00
Bram Moolenaar
90df5507c0 Add Datascript syntax file. (Dominique Pelle) 2010-08-01 21:48:21 +02:00
Bram Moolenaar
3a0ae77fe6 Fix: the MS-Windows uninstaller did not delete registry keys on 64 bit systems. 2010-08-01 21:15:45 +02:00
Bram Moolenaar
9379f83030 Version 7.3c -> 7.3d 2010-08-01 20:38:51 +02:00
Bram Moolenaar
4b26dff329 Update todo file. 2010-08-01 20:18:38 +02:00
Bram Moolenaar
92096d529e Define the WOW64 key when needed. 2010-08-01 19:50:25 +02:00
Bram Moolenaar
c0f15ce171 Update utf-8 version of tutor. 2010-08-01 19:11:06 +02:00
Bram Moolenaar
44886d93c4 Minor updates for the 7.3c release. 2010-08-01 19:06:10 +02:00
Bram Moolenaar
1a509df322 Remove unused variable and STRLEN(). (Dominique Pelle) 2010-08-01 17:59:57 +02:00
Bram Moolenaar
f4274feeef Fix: test 69 didn't work on MS-Windows. Test 72 beeped too often. 2010-08-01 17:37:17 +02:00
Bram Moolenaar
f9d5ca1de4 Runtime file updates. 2010-08-01 16:13:51 +02:00
Bram Moolenaar
7e88c3dc19 Avoid illegal memory access in spell suggestion. (Dominique Pelle) 2010-08-01 15:47:35 +02:00
Bram Moolenaar
00ec6854e3 Avoid that running tests changes viminfo. 2010-08-01 15:47:03 +02:00
Bram Moolenaar
95e8579e1c Fix: crash in spell checking with a 0x300 character. 2010-08-01 15:37:02 +02:00
Bram Moolenaar
121d95f7d1 Fix: uninitialized memory access. (Dominique Pelle) 2010-08-01 15:11:43 +02:00
Bram Moolenaar
3b0dd7cd35 Fix typos in README files. (Dominique Pelle) 2010-08-01 14:36:59 +02:00
Bram Moolenaar
a539df01f8 No need to redraw cursorline when 'modifiable' is changed. (Dominique Pelle) 2010-08-01 14:35:05 +02:00
Bram Moolenaar
d1cb65e440 Fix: changing case of a character removed combining characters. 2010-08-01 14:22:48 +02:00
Bram Moolenaar
a621a03839 Add the WOW64 flag back to OLE registration. (untested) 2010-08-01 13:25:05 +02:00
Bram Moolenaar
760d14a55c Fix that uninstaller isn't found on 64-bit Windows. 2010-07-31 22:03:44 +02:00
Bram Moolenaar
7805004319 Fix: on MS-Windows the "open with..." menu starts Vim without a file. 2010-07-31 20:53:54 +02:00
Bram Moolenaar
ca8a4dfe7a Move many more common Python items to if_py_both.c. 2010-07-31 19:54:14 +02:00
Bram Moolenaar
3b1c48569d Fixed: CTRL-R in Insert mode doesn't insert composing characters. 2010-07-31 17:59:29 +02:00
Bram Moolenaar
a9d52e3b79 Fixes for coverity warnings. 2010-07-31 16:44:19 +02:00
Bram Moolenaar
a26559b553 Support syntax and filetype completion for user commands. (Christian Brabandt) 2010-07-31 14:59:19 +02:00
Bram Moolenaar
460fbaca72 Possibly make OLE work on Windows 64 bit. (untested) 2010-07-31 14:45:05 +02:00
Bram Moolenaar
8408a9ad9b More updated runtime files. 2010-07-30 22:41:22 +02:00
Bram Moolenaar
f878bcfb2e Improvements for VMS. (Zoltan Arpadffy) 2010-07-30 22:29:41 +02:00
Bram Moolenaar
68392724b8 Correct comments in testdir makefiles. (John Beckett) 2010-07-30 22:04:17 +02:00
Bram Moolenaar
8b68277fdc Runtime file updates. 2010-07-30 21:49:40 +02:00
Bram Moolenaar
0e1673aef4 Fix test 72 not setting encryption method. (Dominique Pelle) 2010-07-30 21:49:07 +02:00
Bram Moolenaar
3b72f1d2aa Dectect Perl6. 2010-07-29 23:12:43 +02:00
Bram Moolenaar
48bae372e9 Few more fixes for VMS. 2010-07-29 23:12:15 +02:00
Bram Moolenaar
30a8635b56 Fix a few compile warnings. (Mike Williams) 2010-07-29 23:10:40 +02:00
Bram Moolenaar
40af4e3903 Updated runtime files. Add logcheck filetype plugin. (James Vega) 2010-07-29 22:33:18 +02:00
Bram Moolenaar
1587a1e37d Add completion for ":ownsyntax" and improve completion for ":filetype".
(Dominique Pelle)
2010-07-29 20:59:59 +02:00
Bram Moolenaar
8ada2cca0a Updated runtime files. :TOhtml improvements by Benjamin Fritz. 2010-07-29 20:43:36 +02:00
Bram Moolenaar
16c98f9c9f Update for Lua interface. (Luis Carvalho) 2010-07-28 22:46:08 +02:00
Bram Moolenaar
92048a3110 Remove Mupad indent and ftplugin files, they are not useful. 2010-07-28 22:30:00 +02:00
Bram Moolenaar
162bd91564 Improvements for ":find" completion. (Nazri Ramliy) 2010-07-28 22:29:10 +02:00
Bram Moolenaar
8e46927a32 Changes for VMS. Mostly by Zoltan Arpadffy. 2010-07-28 19:38:16 +02:00
Bram Moolenaar
1dba0fbb7a Fix: :redir to a dictionary that is changed before ":redir END" causes a
memory access error.
2010-07-28 18:55:02 +02:00
Bram Moolenaar
477db060eb More runtime file updates. 2010-07-28 18:17:41 +02:00
Bram Moolenaar
6e202e52b7 Fix: concealed regions didn't get redrawn correctly when moving the cursor
through them.
2010-07-28 18:14:45 +02:00
Bram Moolenaar
e0021c79a5 More accented characters in tex.vim syntax. (Charles Campbell) 2010-07-28 17:25:21 +02:00
Bram Moolenaar
c6485bceb1 Updated runtime files. 2010-07-28 17:02:55 +02:00
Bram Moolenaar
2929160846 Updated Italian messages. (Vlad Sandrini) 2010-07-28 14:28:48 +02:00
Bram Moolenaar
59c0395e6b Minor runtime file updates. 2010-07-28 12:52:27 +02:00
Bram Moolenaar
5ac3b1aae2 Updated runtime files. New netrw plugin version. 2010-07-27 22:50:36 +02:00
Bram Moolenaar
8765a4ac3a Fix build warnings and problems for tiny/small Win32 build. (Mike Williams) 2010-07-27 22:41:43 +02:00
Bram Moolenaar
3b95389d45 Fix for "concealends". (Vince Negri) 2010-07-27 20:47:25 +02:00
Bram Moolenaar
611df5b96e Update TeX syntax file. 2010-07-26 22:51:56 +02:00
Bram Moolenaar
5e109c4ab0 Fix compiler warnings on 64 bit systems. 2010-07-26 22:51:28 +02:00
Bram Moolenaar
0ed0eea206 Updated runtime files. 2010-07-26 22:21:27 +02:00
Bram Moolenaar
f82bac3717 Fix: terminal title not properly restured when there are multi-byte
characters.  (partly by James Vega)
2010-07-25 22:30:20 +02:00
Bram Moolenaar
c3301874a6 7.3b -> 7.3c 2010-07-25 20:53:06 +02:00
Bram Moolenaar
6fc45b55fc Prepare for 7.3b release. Fix src/Makefile enabling python3 by default. 2010-07-25 17:42:45 +02:00
Bram Moolenaar
7fd7320014 Add "q" item for 'statusline'. Add w:quickfix_title. (Lech Lorens) 2010-07-25 16:58:46 +02:00
Bram Moolenaar
fa0ff9aedf Fix: editing a not encrypted file after a crypted file messed up reading the
text from an undo file.
2010-07-25 16:05:19 +02:00
Bram Moolenaar
8d9b40e71a Add support for horizontal scroll wheel. (Bjorn Winckler) 2010-07-25 15:49:07 +02:00
Bram Moolenaar
0fe849a13b Better fix for memory access in recovery. (Dominique Pelle) 2010-07-25 15:11:11 +02:00
Bram Moolenaar
0ad014c8a0 Fix memory access to 'cryptmethod' during recovery. (Dominique Pelle) 2010-07-25 14:00:46 +02:00
Bram Moolenaar
904fb861e7 Add completion for :setfiletype. (Dominique Pelle) 2010-07-25 13:53:11 +02:00
Bram Moolenaar
22b306f3e0 Add completion for :lmap and :lunmap. 2010-07-25 13:50:33 +02:00
Bram Moolenaar
d68554d4fe Include old Python changes in Python 3 interface. 2010-07-25 13:43:20 +02:00
Bram Moolenaar
bed7beca58 Fix: when resetting both 'title' and 'icon' the title would be set after a
shell command.
Reset 'title' and 'icon' in test47 to avoid the xterm title getting messed up.
2010-07-25 13:42:29 +02:00
Bram Moolenaar
8220a6813e Use the SONAME-versioned liblua, if it exists. (James Vega) 2010-07-25 13:12:49 +02:00
Bram Moolenaar
7510fe7433 Add the synconcealed() function and use it for :TOhtml. (Benjamin Fritz) 2010-07-25 12:46:44 +02:00
Bram Moolenaar
e6dc573b6e Let 'v' flag in 'concealcursor' apply to all lines in the Visual area. 2010-07-24 23:52:26 +02:00
Bram Moolenaar
170bf1aed5 Move some common code from if_python.c and if_python3.c to if_py_both.h. 2010-07-24 23:51:45 +02:00
Bram Moolenaar
365bdf7a7b More runtime file updates. 2010-07-24 20:57:44 +02:00
Bram Moolenaar
eb80f04f6e Fix for compiler warning about function prototype in pty.c. 2010-07-24 20:44:27 +02:00
Bram Moolenaar
1b20d3d608 Add 'window' to the options window. 2010-07-24 20:44:02 +02:00
Bram Moolenaar
1deee627fa Further improvements for :options. (Dominique Pelle) 2010-07-24 20:35:12 +02:00
Bram Moolenaar
59f931ef54 Add the 'undoreload' option to be able to undo a file reload. 2010-07-24 20:27:03 +02:00
Bram Moolenaar
72ada0f8c2 Fix for cursor position in wrapped line with concealed text. 2010-07-24 17:39:52 +02:00
Bram Moolenaar
ffbbcb597c Give each syntax item a sequence number, so that we know when it starts and
can show the 'cchar' for each of them.
2010-07-24 17:29:03 +02:00
Bram Moolenaar
2c3b1d9976 Document extra argument for Python append(). 2010-07-24 16:58:02 +02:00
Bram Moolenaar
904c622b10 Fix: errors for allocating zero bytes when profiling an empty function. 2010-07-24 16:57:39 +02:00
Bram Moolenaar
5dff57d714 Remove -arch flag from build flags for Perl. (Bjorn Wickler) 2010-07-24 16:19:44 +02:00
Bram Moolenaar
9f5e36bc60 Find python3 also in lib64 directory. (Ben Boeckel) 2010-07-24 16:11:21 +02:00
Bram Moolenaar
b31e4383cd Fix memory leak in :find completion. (Dominique Pelle) 2010-07-24 16:01:56 +02:00
Bram Moolenaar
4f99eae082 Better text for 'concealcursor' in :options window. 2010-07-24 15:56:43 +02:00
Bram Moolenaar
fa9a37096d Fix 'autochdir' not showing up in :options window. (Dominique Pelle)
Adjust :options window for changes in conceal options.
2010-07-24 15:48:31 +02:00
Bram Moolenaar
4c3a326c53 Temporary solution for crashing when using both :py and :py3: disallow both in
one session.
2010-07-24 15:42:14 +02:00
Bram Moolenaar
2a7e2a6254 Specify library to load for Python more precisely. (James Vega) 2010-07-24 15:19:11 +02:00
Bram Moolenaar
ca8c9867c2 Add the 'c' flag to 'concealcursor'. 2010-07-24 15:00:38 +02:00
Bram Moolenaar
f691b84fba Another conceal fix: cursor in wrong column when 'number' set. 2010-07-24 13:31:09 +02:00
Bram Moolenaar
f70e3d6c7e Don't conceal text in lines inside the Visual area. 2010-07-24 13:15:07 +02:00
Bram Moolenaar
d497a30cbe Window split didn't copy the value of 'conceallevel'. 2010-07-23 22:27:03 +02:00
Bram Moolenaar
f5963f719e Add the 'concealcursor' option to decide when the cursor line is to be
concealed or not.
Rename 'conc' to 'cole' as the short name for 'conceallevel'.
2010-07-23 22:10:27 +02:00
Bram Moolenaar
c88ebf7fa8 Update Fortran indent and syntax file. (Ajit Thakkar) 2010-07-22 22:30:23 +02:00
Bram Moolenaar
8a09b98ff1 Fix: strdisplaywidth("x", 2) returned 3 instead of 1. 2010-07-22 22:20:57 +02:00
Bram Moolenaar
27c735b2f8 For conceal mode: when two different syntax items follow each other, show the
replacement character for both.
2010-07-22 22:16:29 +02:00
Bram Moolenaar
fa5d1e63c7 Fix: "import termios" doesn't work with dynamically loaded Python. (James
Vega)
2010-07-22 21:44:13 +02:00
Bram Moolenaar
2334b6d594 Make it possible to load Lua dynamically on Unix. (Luis Carvalho) 2010-07-22 21:32:16 +02:00
Bram Moolenaar
766fb0d2b2 Fix building with Perl on Windows with MingW. (James Vega) 2010-07-22 11:34:16 +02:00
Bram Moolenaar
c89533b525 Update French and Esperanto translations. (Dominique Pelle) 2010-07-21 22:27:37 +02:00
Bram Moolenaar
e06c188bbf Make it possible to load Perl dynamically on Unix. (James Vega) 2010-07-21 22:05:20 +02:00
Bram Moolenaar
cdda8fe1c6 Fix dependencies in help Makefile. (James Vega) 2010-07-21 20:40:27 +02:00
Bram Moolenaar
60aad974be Small docs fixes. 2010-07-21 20:36:22 +02:00
Bram Moolenaar
ce69e82711 Fix build problem when fchown() not available. (Gary Johnson) 2010-07-21 20:31:07 +02:00
Bram Moolenaar
b65905262b Fix that :py3file was not working. 2010-07-21 16:00:43 +02:00
Bram Moolenaar
b8521960d6 Update timestamps for recently changed help files. 2010-07-20 22:45:13 +02:00
Bram Moolenaar
c095b280df Fix hang when resizing in diff mode and there are concealed items. 2010-07-20 22:33:34 +02:00
Bram Moolenaar
5bedfc6091 Avoid error when exiting in diff mode with EXITFREE defined. 2010-07-20 22:30:01 +02:00
Bram Moolenaar
9c44972817 When resetting 'mousehide' show the mouse pointer right away. 2010-07-20 18:44:27 +02:00
Bram Moolenaar
cb9d45cb84 Fix some duplicates in ":find" completion. (Nazri Ramliy) 2010-07-20 18:10:15 +02:00
Bram Moolenaar
49771f4fb0 Change 'cryptmethod' from a number to a string option. Make it global-local. 2010-07-20 17:32:38 +02:00
Bram Moolenaar
c7040a5615 Fix: When 'searchhl' causes a hang make CTRL-C disable 'shearchhl'. 2010-07-20 13:11:28 +02:00
Bram Moolenaar
704ac92541 Add a few items to the syntax menu. Split up long submenus. 2010-07-20 13:10:11 +02:00
Bram Moolenaar
fa01c39d48 Updated sh and vim syntax files. (Charles Campbell) 2010-07-20 12:36:02 +02:00
Bram Moolenaar
973bd47c48 Fix 'colorcolumn' adjecent columns not highlighted after end of line. 2010-07-20 11:29:07 +02:00
Bram Moolenaar
fcb7ab6117 Fix typos in documentation. (Dominique Pelle) 2010-07-20 11:16:17 +02:00
Bram Moolenaar
9e193ac732 Fixed: crash with ":find " completion, using uninitialized count. 2010-07-19 23:11:27 +02:00
Bram Moolenaar
97ff9de4a5 Updated Ukranian translations. (Anatoli Sakhnik) 2010-07-19 22:08:50 +02:00
Bram Moolenaar
25f076536f Updated Polish translations. (Mikolaj Machowski) 2010-07-19 21:51:01 +02:00
Bram Moolenaar
3804aebf60 Fix configure for Python3 libs and version number. (James Vega) 2010-07-19 21:18:54 +02:00
Bram Moolenaar
368373e909 Rename some "python3" symbols to "py3", as the command name.
Documentation updates.
2010-07-19 20:46:22 +02:00
Bram Moolenaar
a7781e0516 Never hide text for conceal in cursor line. Do hide when there is
highlighting.
2010-07-19 20:13:22 +02:00
Bram Moolenaar
c400cb9ca7 Rename w_p_conceal to w_p_conc for consistency. 2010-07-19 19:52:13 +02:00
Bram Moolenaar
01a8f38fcd Also make ALT modifier work for mouse wheel. (Benjamin Haskell) 2010-07-18 23:32:13 +02:00
Bram Moolenaar
d160c34019 Fix: 'colorcolumn' interfered with concealed text. 2010-07-18 23:30:34 +02:00
Bram Moolenaar
d28478b557 Vim 7.3a -> 7.3b. 2010-07-18 23:29:58 +02:00
Bram Moolenaar
16d79a3b62 Fix: MS-Windows installer used wrong path for uninstaller key. 2010-07-18 22:33:56 +02:00
Bram Moolenaar
4d32c2d31f Last few changes for the 7.3a BETA release. 2010-07-18 22:10:01 +02:00
Bram Moolenaar
69154f22a6 Fixes and improvements for MS-Windows build. 2010-07-18 21:42:34 +02:00
Bram Moolenaar
607cc1e015 Minor runtime file updates. 2010-07-18 18:47:44 +02:00
Bram Moolenaar
6df6f47d6d Make automatic prototype generation work with more interfaces. 2010-07-18 18:04:50 +02:00
Bram Moolenaar
dc536095ac Added strdisplaywidth() function. 2010-07-18 15:45:49 +02:00
Bram Moolenaar
72597a57b5 Added strwidth() and strchars() functions. 2010-07-18 15:31:08 +02:00
Bram Moolenaar
9855d6b361 Better conceal in help. (partly by Dominique Pelle) 2010-07-18 14:34:51 +02:00
Bram Moolenaar
5074e3018b Make CTRL modifier work for mouse wheel. (Benjamin Haskell) 2010-07-18 14:26:11 +02:00
Bram Moolenaar
fdf732eed7 Fix build broken without multi-byte feature. 2010-07-18 14:20:35 +02:00
Bram Moolenaar
7c86f4cca3 Improved :TOhtml. (Benjamin Fritz) 2010-07-18 14:07:22 +02:00
Bram Moolenaar
85363abfb1 Build problem when using all interfaces except Lua. 2010-07-18 13:58:26 +02:00
Bram Moolenaar
ac550fdb4b Make 'cursorcolumn' work together with the conceal feature. 2010-07-18 13:55:02 +02:00
Bram Moolenaar
0d2e4fce8d Make it easier to build with Lua. Remove compiler warnings. 2010-07-18 12:35:47 +02:00
Bram Moolenaar
55d5c0348c Whitespace cleanup. 2010-07-17 23:52:29 +02:00
Bram Moolenaar
bd5e15fd5c Added support for Python 3. (Roland Puntaier) 2010-07-17 21:19:38 +02:00
Bram Moolenaar
02c707a87d Add the 'L' item to 'cinoptions'. (Manuel Konig) 2010-07-17 17:12:06 +02:00
Bram Moolenaar
76b96fc08b Mac: Support disabling antialias. (LC Mi) 2010-07-17 16:44:59 +02:00
Bram Moolenaar
58f0a1f8e1 Make it possible to drag a tab page label to another position. (Paul B. Mahol) 2010-07-17 16:30:42 +02:00
Bram Moolenaar
c5604bc165 Better implementation of creating the Color Scheme menu. (Juergen Kraemer) 2010-07-17 15:20:30 +02:00
Bram Moolenaar
f91787cb9a In Visual mode with 'showcmd' display the number of bytes and characters. 2010-07-17 12:47:16 +02:00
Bram Moolenaar
11505dcd2b Fix bad parsing of 'colorcolumn'. (Dominique Pelle) 2010-07-16 21:29:06 +02:00
Bram Moolenaar
624c7aa691 Avoid compiler warnings for size_t to int conversions. 2010-07-16 20:38:52 +02:00
Bram Moolenaar
349b2fb048 Improved version of 2html.vim.
Includes progress bar.
Fix dynamic folding in diff view.
(Benjamin Fritz)
2010-07-16 20:35:36 +02:00
Bram Moolenaar
0ba042961f Added Lua interfae. (Luis Carvalho) 2010-07-14 23:23:17 +02:00
Bram Moolenaar
26dcc7e8df Fix: When entering a digraph or special character after a line that fits the
window the '?' or '^' on the next line is not redrawn. (Ian Kelling)
2010-07-14 22:35:55 +02:00
Bram Moolenaar
61623362be Allow synIDattr() getting GUI attributes when build without GUI.
(Matt Wozniski)
2010-07-14 22:04:22 +02:00
Bram Moolenaar
865242e121 Disallow setting 'enc' in a modeline. (Patrick Texier) 2010-07-14 21:12:05 +02:00
Bram Moolenaar
23c347c66b Fix: cursor line not properly concealed when moving between windows.
(Vince Negri)
2010-07-14 20:57:00 +02:00
Bram Moolenaar
66bd1c9b54 Remove obsolete Mac code. 2010-07-14 20:31:44 +02:00
Bram Moolenaar
1a38442dbc Added 'colorcolumn' option. Partly by Gregor Uhlenheuer. 2010-07-14 19:53:30 +02:00
Bram Moolenaar
b28ebbca84 Fix using freed memory in :find completion. 2010-07-14 16:59:57 +02:00
Bram Moolenaar
c8bbaa3b18 Missing piece for Mac console clipboard support. (Bjorn Winckler) 2010-07-14 16:54:21 +02:00
Bram Moolenaar
cc448b373d Support completion for ":find". (Nazri Ramliy)
Cleanup white space.
2010-07-14 16:52:17 +02:00
Bram Moolenaar
d43848c0dd Fix a few compiler warnings. 2010-07-14 14:28:26 +02:00
Bram Moolenaar
164fca39bd Add clipboard support in Mac console. (Bjorn Winckler) 2010-07-14 13:58:07 +02:00
Bram Moolenaar
7abcaab78d Minor runtime file updates. 2010-07-12 23:05:41 +02:00
Bram Moolenaar
0c56c60a0f Fix: Composing characters in :s substitute text were dropped. 2010-07-12 22:42:33 +02:00
Bram Moolenaar
1c727d8208 updated for version 7.2.446
Problem:    Crash in GUI when closing the last window in a tabpage. (ryo7000)
Solution:   Remove the tabpage from the list before freeing the window.
2010-07-12 21:38:19 +02:00
Bram Moolenaar
4d770fb566 updated for version 7.2.446
Problem:    Crash in GUI when closing the last window in a tabpage. (ryo7000)
Solution:   Remove the tabpage from the list before freeing the window.
2010-07-12 21:38:19 +02:00
Bram Moolenaar
2cefbedaab Fix: exists() was causing an autload script to be loaded. 2010-07-11 23:12:29 +02:00
Bram Moolenaar
b02cbe3468 When the buffer is in diff mode, have :TOhtml create HTML to show the diff
side-by-side.  (Christian Brabandt)
2010-07-11 22:38:52 +02:00
Bram Moolenaar
69f787af84 Filter out -pthread for cproto. 2010-07-11 20:52:58 +02:00
Bram Moolenaar
a9dc375744 Make CTRL-L in command line mode respect 'ignorecase' and 'smartcase'. (Martin
Toft)
2010-07-11 20:46:53 +02:00
Bram Moolenaar
a3f4166286 Avoid use of the GTK mail_loop() so that the GtkFileChooser can be used.
(James Vega)
2010-07-11 19:01:06 +02:00
Bram Moolenaar
cabf20199a Add back SAL lines for Swedish spell file. 2010-07-11 18:03:15 +02:00
Bram Moolenaar
dc781a79b4 Fix crash in generating spell .sug file. 2010-07-11 18:01:39 +02:00
Bram Moolenaar
700303e8f7 When 'formatexpr' evaluates to non-zero fall back to internal formatting, also
for "gq". (James Vega)
2010-07-11 17:35:50 +02:00
Bram Moolenaar
3acfc30409 Improve Javascript indenting. Add "J" flag to 'cino'. (Hari Kumar G) 2010-07-11 17:23:02 +02:00
Bram Moolenaar
9028b10dfe Support :browse for commands that use an error file argument. (Lech Lorens) 2010-07-11 16:58:51 +02:00
Bram Moolenaar
7e6d3bd3da Support wide file names in gvimext. (Szabolcs Horvat) 2010-07-10 19:22:44 +02:00
Bram Moolenaar
893eaab41f Make joining a range of lines much faster. (Milan Vancura) 2010-07-10 17:51:46 +02:00
Bram Moolenaar
622925875c Fix bug: spell menu moved cursor, causing Copy not to work. Spell replacement
didn't work in 'compatible' mode.
2010-07-10 16:36:59 +02:00
Bram Moolenaar
9c754c4542 Update spell files for Ubuntu locale names. 2010-07-10 15:52:35 +02:00
Bram Moolenaar
06a108f34c Improve test for joining lines. (Milan Vancura) 2010-07-10 14:10:50 +02:00
Bram Moolenaar
0bc380a96b Fixed ":s" message. Docs updates. 2010-07-10 13:52:13 +02:00
Bram Moolenaar
d04b7507fd Make synstack() work on the character just after the end of the line. 2010-07-08 22:27:55 +02:00
Bram Moolenaar
b0b508808f Apply patch 7.2.445. 2010-07-07 18:26:28 +02:00
Bram Moolenaar
84e67dfa9c updated for version 7.2.445
Problem:    Crash when using undo/redo and a FileChangedRO autocmd event that
            reloads the buffer. (Dominique Pelle)
Solution:   Do not allow autocommands while performing and undo or redo.
2010-07-07 18:20:28 +02:00
Bram Moolenaar
ab8205e8b8 Make the dos installer work with more compilers. 2010-07-07 15:14:03 +02:00
Bram Moolenaar
ccd9ccfa59 Adjust MS-Windows installer so that it also works for 64 bit systems. (George
Reilly)
2010-07-07 13:19:55 +02:00
Bram Moolenaar
e667c95335 Change SKIP_GTK to SKIP_GTK2 in configure. 2010-07-05 22:57:59 +02:00
Bram Moolenaar
0af8cebc6c Better init for match highlighting when using conceal feature. 2010-07-05 22:22:57 +02:00
Bram Moolenaar
996343d38e Mainly documentation updates. 2010-07-04 22:20:21 +02:00
Bram Moolenaar
b2c0350c67 Make updating text for conceal mode simpler. A few compiler warning fixes. 2010-07-02 20:20:09 +02:00
Bram Moolenaar
730cde924c Added ":earlier 1f" and ":later 1f". 2010-06-27 05:18:54 +02:00
Bram Moolenaar
a800b42975 Add file save counter to undo information. Add undotree() function. 2010-06-27 01:15:55 +02:00
Bram Moolenaar
d69980f9dd Remove wrong #ifdef added by previous change. 2010-06-26 21:15:50 +02:00
Bram Moolenaar
644044794e Various small fixes from Dominique Pelle. 2010-06-26 06:24:45 +02:00
Bram Moolenaar
0eda7ac7f8 Change remaining HAVE_GTK2 to FEAT_GUI_GTK. 2010-06-26 05:38:18 +02:00
Bram Moolenaar
51f53dfe17 Fix that :mksession may generate "2argu" even though there is no such
argument. (Peter Odding)
2010-06-26 05:25:54 +02:00
Bram Moolenaar
182c5be111 Remove the old and not well supported GTK 1 code. (James Vega) 2010-06-25 05:37:59 +02:00
Bram Moolenaar
ba52cde53d Fix build problem with Ruby on Windows. (Cesar Romani) 2010-06-25 04:29:11 +02:00
Bram Moolenaar
e242b83535 Fix a memory leak in encryption. (Dominique Pelle) 2010-06-24 05:39:03 +02:00
Bram Moolenaar
e77fb8ca53 Fix compiler warning. 2010-06-24 05:20:13 +02:00
Bram Moolenaar
f506c5bb1c Fix compiler warnings for shadowed variables. Make 'conceal' a long instead
of int.
2010-06-22 06:28:58 +02:00
Bram Moolenaar
7cfea75ed6 Fixes for time in clipboard request. Also fix ownership. (David Fries) 2010-06-22 06:07:12 +02:00
Bram Moolenaar
370df58df9 Couple of small fixes for conceal feature. (Dominique Pelle) 2010-06-22 05:16:38 +02:00
Bram Moolenaar
883f5d08e4 Command line completion for :ownsyntax. (Dominique Pelle) 2010-06-21 06:24:34 +02:00
Bram Moolenaar
a8ffcbbf5d Crypt the swapfile. 2010-06-21 06:15:46 +02:00
Bram Moolenaar
191e0a2bc7 Fix tiny build, move functions to undo.c. 2010-06-14 01:39:13 +02:00
Bram Moolenaar
80794b1ce6 Added salt to blowfish encryption. 2010-06-13 05:20:42 +02:00
Bram Moolenaar
31c8f28cca updated for version 7.2.444
Problem:    Can't build with GTK 1, gtk_selection_clear_targets() is not
            available. (Patrick Texier)
Solution:   Don't change the targets for GTK 1, set them once.
2010-06-13 02:35:46 +02:00
Bram Moolenaar
46f9d49601 Update help files. 2010-06-12 20:18:19 +02:00
Bram Moolenaar
9ea339d58c updated for version 7.2.443
Problem:    Using taglist() on a tag file with duplicate fields generates an
            internal error. (Peter Odding)
Solution:   Check for duplicate field names.
2010-06-12 20:12:02 +02:00
Bram Moolenaar
8bcf9654dc updated for version 7.2.443
Problem:    Using taglist() on a tag file with duplicate fields generates an
            internal error. (Peter Odding)
Solution:   Check for duplicate field names.
2010-06-12 20:12:02 +02:00
Bram Moolenaar
97ea511bbf Minor typo and docs update. 2010-06-12 06:46:44 +02:00
Bram Moolenaar
f9b0129f5f Avoid compiler warnings on Mac 10.6. 2010-06-12 06:45:20 +02:00
Bram Moolenaar
6f0d3dd270 Update src/po/it.po. Fixed errors in ko.po. 2010-06-08 23:17:01 +02:00
Bram Moolenaar
d5b3a2cbd9 Fix conceal feature for gj, gk, etc. (Vince Negri) 2010-06-08 22:59:42 +02:00
Bram Moolenaar
cdddaa46a2 Fix crash when using ":grep". 2010-06-07 23:07:44 +02:00
Bram Moolenaar
6a3c997104 Fix Make_ivc.mak makefile. (Vince Negri) 2010-06-07 22:50:29 +02:00
Bram Moolenaar
e0c6a656f3 Fix crash for ":ownsyntax". (Dominique Pelle) 2010-06-06 23:10:19 +02:00
Bram Moolenaar
9d6650f6c4 Avoid compiler warnings. 2010-06-06 23:04:47 +02:00
Bram Moolenaar
debe25a2a5 One more fix for conceal patch. 2010-06-06 17:41:24 +02:00
Bram Moolenaar
fd29f4628e Fixed: after ":ownsyntax perl" and ":e" syntax was cleared in other window. 2010-06-06 16:11:09 +02:00
Bram Moolenaar
1950c3529b Fixed memory leak in ":ownsyntax". 2010-06-06 15:21:10 +02:00
Bram Moolenaar
56be950094 Fix a few compiler warnings. Fix crash with encrypted undo file. 2010-06-06 14:20:26 +02:00
Bram Moolenaar
860cae1cec Add the conceal patch from Vince Negri. 2010-06-05 23:22:07 +02:00
Bram Moolenaar
945e2dbb63 Use full path in undofile(). Updated docs. 2010-06-05 17:43:32 +02:00
Bram Moolenaar
f949563afa updated for version 7.2.442
Problem:    Copy/paste with OpenOffice doesn't work.
Solution:   Do not offer the HTML target when it is not supported. (James
            Vega)
2010-06-05 12:49:46 +02:00
Bram Moolenaar
a76638f47d updated for version 7.2.442
Problem:    Copy/paste with OpenOffice doesn't work.
Solution:   Do not offer the HTML target when it is not supported. (James
            Vega)
2010-06-05 12:49:46 +02:00
Bram Moolenaar
2c704a77c1 Add patch to improve support of z/OS (OS/390). (Ralf Schandl) 2010-06-03 21:17:25 +02:00
Bram Moolenaar
9160441955 Move text from various.txt to a new helphelp.txt help file. 2010-06-03 20:25:18 +02:00
Bram Moolenaar
bbd6afe03e Optimize the blowfish crypt/decrypt code a bit more. 2010-06-02 20:32:23 +02:00
Bram Moolenaar
04c9bafa71 Made crypt/decrypt faster. 2010-06-01 23:37:39 +02:00
Bram Moolenaar
8cd213c09a Fix completion of file names with '%' and '*'. 2010-06-01 21:57:09 +02:00
Bram Moolenaar
83d09bb85e Don't use pointers to store numbers, use a union.
Fixed MSVC makefile use of /Wp64 flag.
2010-06-01 19:58:08 +02:00
Bram Moolenaar
914703bee2 Correct use of long instead of off_t for file size. (James Vega) 2010-05-31 21:59:46 +02:00
Bram Moolenaar
20a825ae0f Add test for gettabvar() and settabvar(). 2010-05-31 21:27:30 +02:00
Bram Moolenaar
a3ff49fdcc Crypt the text in the undo file if the file itself is crypted. 2010-05-30 22:48:02 +02:00
Bram Moolenaar
6ed8ed84f9 Made reading/writing undo info a bit more robust. 2010-05-30 20:40:11 +02:00
Bram Moolenaar
fd3e5dc97f Add a few #ifdefs to exclude functions that are not used. (Domnique Pelle) 2010-05-30 19:00:15 +02:00
Bram Moolenaar
a17d4c1934 Added the undofile() function. Updated runtime files. 2010-05-30 18:30:36 +02:00
Bram Moolenaar
504a82173c Do not write an undo file if there is nothing to undo. 2010-05-30 17:17:42 +02:00
Bram Moolenaar
d96699e696 updated for version 7.2.441
Problem:    When using ":earlier" undo information may be wrong.
Solution:   When changing alternate branches also adjust b_u_oldhead.
2010-05-30 16:55:22 +02:00
Bram Moolenaar
8f1f629d85 updated for version 7.2.441
Problem:    When using ":earlier" undo information may be wrong.
Solution:   When changing alternate branches also adjust b_u_oldhead.
2010-05-30 16:55:22 +02:00
Bram Moolenaar
6773b2ba7e A bit of cleanup and simplification for undofile. 2010-05-30 16:01:37 +02:00
Bram Moolenaar
644fdff7c1 A few more fixes for undo file. Split test in two parts so that it doesn't
fail with tiny features.
2010-05-30 13:26:21 +02:00
Bram Moolenaar
9db580634c Various improvements to undo file code to make it more robust. 2010-05-29 20:33:07 +02:00
Bram Moolenaar
f05e3b0220 Remove old and unused method to allocate memory for undo. 2010-05-29 15:40:47 +02:00
Bram Moolenaar
cdf04208f3 Fix a few more things for persistent undo. 2010-05-29 15:11:47 +02:00
Bram Moolenaar
97bc5a52c9 updated for version 7.2.440
Problem:    Calling a function through a funcref, where the function deletes
            the funcref, leads to an invalid memory access.
Solution:   Make a copy of the function name. (Lech Lorens)
2010-05-28 22:06:46 +02:00
Bram Moolenaar
bc42c1e427 updated for version 7.2.440
Problem:    Calling a function through a funcref, where the function deletes
            the funcref, leads to an invalid memory access.
Solution:   Make a copy of the function name. (Lech Lorens)
2010-05-28 22:06:46 +02:00
Bram Moolenaar
5d4c25b335 updated for version 7.2.439
Problem:    Invalid memory access when doing thesaurus completion and
            'infercase' is set.
Solution:   Use the minimal length of completed word and replacement.
            (Dominique Pelle)
2010-05-28 21:31:58 +02:00
Bram Moolenaar
04fa5427b8 updated for version 7.2.439
Problem:    Invalid memory access when doing thesaurus completion and
            'infercase' is set.
Solution:   Use the minimal length of completed word and replacement.
            (Dominique Pelle)
2010-05-28 21:31:58 +02:00
Bram Moolenaar
0e1e25fb0a Don't execute some autocommands when v:dying is 2 or more. 2010-05-28 21:07:08 +02:00
Bram Moolenaar
1d68952a3e Runtime file updates. 2010-05-28 20:54:39 +02:00
Bram Moolenaar
167632fcdd Fix definition of UINT_PTR for 64 bit systems. 2010-05-26 21:42:54 +02:00
Bram Moolenaar
6a18eb6f62 More strict checks for the undo file. 2010-05-26 21:21:00 +02:00
Bram Moolenaar
83ad0147c0 Fix for using ":wundo foo" when foo is an empty file. 2010-05-25 22:09:21 +02:00
Bram Moolenaar
07e8db1da5 updated for version 7.2.438
Problem:    "vim -r" crashes.
Solution:   Don't use NULL pointer argument.
2010-05-25 21:37:17 +02:00
Bram Moolenaar
64354da438 updated for version 7.2.438
Problem:    "vim -r" crashes.
Solution:   Don't use NULL pointer argument.
2010-05-25 21:37:17 +02:00
Bram Moolenaar
b230bd5a16 Found a way to make the MS-Windows installer wait for the uninstaller to
finish, no need for the user to press Enter.
2010-05-25 21:02:00 +02:00
Bram Moolenaar
9d72807646 And another small fix for persistent undo. 2010-05-24 22:06:04 +02:00
Bram Moolenaar
6a244fefd9 Fix: :wundo didn't work in a buffer without a name. 2010-05-24 22:02:24 +02:00
Bram Moolenaar
442b4225d3 Improve the MS-Windows installer. 2010-05-24 21:34:22 +02:00
Bram Moolenaar
e66194a54e Tiny change for Italian man page. 2010-05-24 21:25:23 +02:00
Bram Moolenaar
7db5fc838a Fix uninit memory read in undo code. Fix uint32_t in proto file.
A few minor changes.
2010-05-24 11:59:29 +02:00
Bram Moolenaar
55debbe384 Included patch for persistent undo. Lots of changes and added test. 2010-05-23 23:34:36 +02:00
Bram Moolenaar
c39125d7c4 Fix for Netbeans on MS-Windows not compiling. 2010-05-23 12:06:58 +02:00
Bram Moolenaar
1d2beae176 Some versions of Ruby redefine rb_str_new2 to rb_str_new_cstr.
Attempt at a fix.
2010-05-22 21:56:55 +02:00
Bram Moolenaar
be18d10fd4 Fix wrong memory access when clearing crypt key. 2010-05-22 21:37:53 +02:00
Bram Moolenaar
b26e6327e6 Add :nbstart and :nbclose. 2010-05-22 21:34:09 +02:00
Bram Moolenaar
67c5384434 Included the patch to support netbeans in a terminal. 2010-05-22 18:28:27 +02:00
Bram Moolenaar
ca7e1f2066 Fix: window title not updated after file dropped. 2010-05-22 15:50:12 +02:00
Bram Moolenaar
06b5d5167a Add the settabvar() and gettabvar() functions.
Various runtime file updates.
2010-05-22 15:37:44 +02:00
Bram Moolenaar
db7c686ea5 Add extra floating point functions. 2010-05-21 16:33:48 +02:00
Bram Moolenaar
b382ad13ca "g8" doesn't work properly on a NUL. 2010-05-21 15:46:35 +02:00
Bram Moolenaar
f50a2533d0 A few more changes for encryption. Add test that encrypted file can be read. 2010-05-21 15:36:08 +02:00
Bram Moolenaar
6dc79f2890 updated for version 7.2.437
Problem:    When "\\\n" appears in the expression result the \n doesn't result
            in a line break. (Andy Wokula)
Solution:   Also replace a \n after a backslash into \r.
2010-05-21 13:08:58 +02:00
Bram Moolenaar
6019078ece updated for version 7.2.437
Problem:    When "\\\n" appears in the expression result the \n doesn't result
            in a line break. (Andy Wokula)
Solution:   Also replace a \n after a backslash into \r.
2010-05-21 13:08:58 +02:00
Bram Moolenaar
7a329911b9 Updated runtime files. 2010-05-21 12:05:36 +02:00
Bram Moolenaar
c6af8125c7 Other solution for GTK not changing the locale. 2010-05-21 12:04:55 +02:00
Bram Moolenaar
218116c1d0 Various smaller changes. Updated proto files. Updated dependencies. 2010-05-20 21:46:00 +02:00
Bram Moolenaar
fa7584cb86 Use UINT32_T in the code, define it to uint32_t or unsigned int.
Better autoconf check for uint32_t.
2010-05-19 21:57:45 +02:00
Bram Moolenaar
b702c84d0d Updated a few runtime files. 2010-05-18 22:28:22 +02:00
Bram Moolenaar
4890f1f7f4 One more fix for defining uint32_t. 2010-05-18 21:49:58 +02:00
Bram Moolenaar
6323508e5e Change wording in link.sh: "remove" -> "omit" 2010-05-18 21:41:09 +02:00
Bram Moolenaar
4a9b19ace8 Fix build on Cygwin and MingW. 2010-05-18 21:17:10 +02:00
Bram Moolenaar
76e69cef0c Undefine uint32_t when building if_perl.xs to fix the build. 2010-05-18 21:05:27 +02:00
Bram Moolenaar
edac185487 Add blowfish and sha256 source files to more Makefiles. 2010-05-18 20:34:20 +02:00
Bram Moolenaar
927edbd134 Small update to help files. 2010-05-17 22:07:47 +02:00
Bram Moolenaar
30bb41445c Avoid warnings for unused arguments when compiling with Gnome. 2010-05-17 22:07:15 +02:00
Bram Moolenaar
cfc0eee85f Undo undesired changes in src/Makefile. 2010-05-17 21:37:47 +02:00
Bram Moolenaar
0bbabe8080 Fixed encryption big/little endian test.
Use uint32_t to avoid crash on 64 bit machines.
Added error numbers for Blowfish errors.
Fixed the tiny version not building.
2010-05-17 20:32:55 +02:00
Bram Moolenaar
823a165119 Minor updates to blowfish encryption. 2010-05-16 23:02:33 +02:00
Bram Moolenaar
40e6a71c67 Add the blowfish encryption patch from Mohsin Ahmed. Needs more work. 2010-05-16 22:32:54 +02:00
Bram Moolenaar
64486671c3 Add 'relativenumber' patch from Markus Heidelberg. 2010-05-16 15:46:46 +02:00
Bram Moolenaar
13c4c5da67 Remove outdated line from top Makefile. 2010-05-16 15:15:27 +02:00
Bram Moolenaar
ff312a4eb8 Move items around in the todo list. 2010-05-16 15:14:25 +02:00
Bram Moolenaar
8ce55d13c4 updated for version 7.2.436
Problem:    Reproducible crash in syntax HL. (George Reilly, Dominique Pelle)
Solution:   Make sst_stacksize an int instead of short. (Dominique Pelle)
2010-05-16 13:56:06 +02:00
Bram Moolenaar
2767c60008 updated for version 7.2.436
Problem:    Reproducible crash in syntax HL. (George Reilly, Dominique Pelle)
Solution:   Make sst_stacksize an int instead of short. (Dominique Pelle)
2010-05-16 13:56:06 +02:00
Bram Moolenaar
2e530fa526 Fix typo in release date. 2010-05-16 13:40:33 +02:00
Bram Moolenaar
281798deab updated for version 7.2.435
Problem:    Crash when using bad_char_idx uninitialized. (Patrick Texier)
Solution:   Don't use bad_char_idx, reproduce the ++bad argument from bad_char.
2010-05-16 13:26:25 +02:00
Bram Moolenaar
34b4daf2b7 updated for version 7.2.435
Problem:    Crash when using bad_char_idx uninitialized. (Patrick Texier)
Solution:   Don't use bad_char_idx, reproduce the ++bad argument from bad_char.
2010-05-16 13:26:25 +02:00
Bram Moolenaar
4137564709 Merge patch 7.2.434. 2010-05-16 12:49:27 +02:00
Bram Moolenaar
546b35e190 updated for version 7.2.434
Problem:    Compilation fails without the multi-lang feature.
Solution:   Add #ifdefs. (Johm Marriott)
2010-05-16 12:32:51 +02:00
Bram Moolenaar
2dfa4d7c13 Merged change from default branch: Correct Japanese menus. 2010-05-15 21:29:02 +02:00
Bram Moolenaar
23d99ec5f7 Correct Japanese menus to avoid error while loading them after 7.2.432. 2010-05-15 18:21:26 +02:00
Bram Moolenaar
fc2d5bdfc6 After recovery check if the text changed. If it did mark the buffer as
modified.
2010-05-15 17:06:53 +02:00
Bram Moolenaar
864665d1b2 Get rid of the "extra" and "lang" archives. 2010-05-15 15:41:59 +02:00
Bram Moolenaar
abb8d0b23a Switched from autoconf 2.63 to 2.65. 2010-05-15 15:04:53 +02:00
Bram Moolenaar
0b65f8938b Small fix for compiler warning in Netbeans. 2010-05-15 14:49:02 +02:00
Bram Moolenaar
fff2beeeaa First step in the Vim 7.3 branch. Changed version numbers. 2010-05-15 13:56:02 +02:00
Bram Moolenaar
00a927d62b Updated runtime files. 2010-05-14 23:24:24 +02:00
Bram Moolenaar
f1eeae94fd updated for version 7.2.433
Problem:    Can't use cscope with QuickFixCmdPre and QuickFixCmdPost.
Solution:   Add cscope support for these autocmd events. (Bryan Venteicher)
2010-05-14 23:14:42 +02:00
Bram Moolenaar
70b11cdd56 updated for version 7.2.432
Problem:    When menus are translated they can only be found by the translated
            name.  That makes ":emenu" difficult to use.
Solution:   Store the untranslated name and use it for completion and :emenu.
            (Edward L. Fox / Liang Peng / Bezetek James)
2010-05-14 22:24:40 +02:00
Bram Moolenaar
7871a50071 updated for version 7.2.431
Problem:    ":amenu" moves the cursor when in Insert mode.
Solution:   Use CTRL-\ CTRL-O instead of CTRL-O. (Christian Brabandt)
2010-05-14 21:19:23 +02:00
Bram Moolenaar
9c0044df7c updated for version 7.2.430
Problem:    The ++bad argument is handled wrong, resulting in an invalid
            memory access.
Solution:   Use the bad_char field only for the replacement character, add
            bad_char_idx to store the position. (Dominique Pelle)
2010-05-14 20:41:05 +02:00
Bram Moolenaar
2efbc66e26 updated for version 7.2.429
Problem:    A file that exists but access is denied may result in a "new file"
            message.  E.g. when its directory is unreadable.
Solution:   Specifically check for ENOENT to decide a file doesn't exist.
            (partly by James Vega)
2010-05-14 18:56:38 +02:00
Bram Moolenaar
f9ddb94283 updated for version 7.2.428
Problem:    Using setqflist([]) to clear the error list doesn't work properly.
Solution:   Set qf_nonevalid to TRUE when appropriate. (Christian Brabandt)
2010-05-14 18:10:27 +02:00
Bram Moolenaar
9dbe4758b1 updated for version 7.2.427
Problem:    The swapfile is created using the destination of a symlink, but
            recovery doesn't follow symlinks.
Solution:   When recovering, resolve symlinks. (James Vega)
2010-05-14 17:52:42 +02:00
Bram Moolenaar
6af0506370 updated for version 7.2.426
Problem:    Commas in 'langmap' are not always handled correctly.
Solution:   Require commas to be backslash escaped. (James Vega)
2010-05-14 17:32:58 +02:00
Bram Moolenaar
2321c9255e updated for version 7.2.425
Problem:    Some compilers complain about fourth EX() argument.
Solution:   Add cast to long_u.
2010-05-14 15:42:53 +02:00
Bram Moolenaar
e685079848 updated for version 7.2.424
Problem:    ":colorscheme" without an argument doesn't do anything.
Solution:   Make it echo the current color scheme name.  (partly by Christian
            Brabandt)
2010-05-14 15:28:44 +02:00
Bram Moolenaar
9577c3e973 updated for version 7.2.423
Problem:    Crash when assigning s: to variable. (Yukihiro Nakadaira)
Solution:   Make ga_scripts contain pointer to scriptvar_T instead of
            scriptvar_T itself. (Dominique Pelle)
2010-05-14 12:16:25 +02:00
Bram Moolenaar
54ab0f1e54 updated for version 7.2.422
Problem:    May get E763 when using spell dictionaries.
Solution:   Avoid utf-8 case folded character to be truncated to 8 bits and
            differ from latin1. (Dominique Pelle)
2010-05-13 17:46:58 +02:00
Bram Moolenaar
38ab0e21b8 updated for version 7.2.421
Problem:    Folds are sometimes not updated properly and there is no way to
            force an update.
Solution:   Make "zx" and "zX" recompute folds (suggested by Christian
            Brabandt)
2010-05-13 17:35:59 +02:00
Bram Moolenaar
eb4883fabc updated for version 7.2.420
Problem:    ":argedit" does not accept "++enc=utf8" as documented. (Dominique
            Pelle)
Solution:   Add the ARGOPT flag to ":argedit".
2010-05-13 16:46:21 +02:00
Bram Moolenaar
103e6efc84 updated for version 7.2.419
Problem:    Memory leak in Motif when clicking on "Search Vim Help".
Solution:   Free string returned by XmTextGetString(). (Dominique Pelle)
2010-05-13 16:31:25 +02:00
Bram Moolenaar
ccbab93b42 updated for version 7.2.418
Problem:    Vim tries to set the background or foreground color in a terminal
            to -1.  (Graywh)  Happens with ":hi Normal ctermbg=NONE".
Solution:   When resetting the foreground or background color don't set the
            color, let the clear screen code do that.
2010-05-13 15:40:30 +02:00
Bram Moolenaar
ae61bcf0ab updated for version 7.2.417
Problem:    When 'shell' has an argument with a slash then 'shellpipe' is not
            set properly. (Britton Kerin)
Solution:   Assume there are no spaces in the path, arguments follow.
2010-05-13 13:12:06 +02:00
Bram Moolenaar
0387e653c8 updated for version 7.2.416
Problem:    Logtalk.dict is not installed.
Solution:   Add it to the install target. (Markus Heidelberg)
2010-05-07 16:54:37 +02:00
Bram Moolenaar
ad249fb74c updated for version 7.2.415
Problem:    Win32: Can't open a remote file when starting Vim.
Solution:   Don't invoke cygwin_conv_path() for URLs. (Tomoya Adachi)
2010-05-07 16:35:04 +02:00
Bram Moolenaar
ceb45be4d3 updated for version 7.2.414
Problem:    CTRK-K <space> <space> does not produce 0xa0 as expected. (Tony
            Mechelynck)
Solution:   Remove the Unicode range 0xe000 - 0xefff from digraphs, these are
            not valid characters.
2010-05-07 16:18:14 +02:00
Bram Moolenaar
317fd3ae3b updated for version 7.2.413
Problem:    Large file support is incorrect.
Solution:   Add AC_SYS_LARGEFILE to configure. (James Vega)
2010-05-07 16:05:55 +02:00
Bram Moolenaar
5ea0ac77b3 updated for version 7.2.412
Problem:    [ or ] followed by mouse click doesn't work.
Solution:   Reverse check for key being a mouse event. (Dominique Pelle)
2010-05-07 15:52:08 +02:00
Bram Moolenaar
dfdf3c446f updated for version 7.2.411
Problem:    When parsing 'cino' a comma isn't skipped properly.
Solution:   Skip the comma. (Lech Lorens)
2010-03-23 18:22:46 +01:00
Bram Moolenaar
63fa526b50 updated for version 7.2.410
Problem:    Highlighting directories for completion doesn't work properly.
Solution:   Don't halve backslashes when not needed, expaned "~/".
            (Dominique Pelle)
2010-03-23 18:06:52 +01:00
Bram Moolenaar
d25bc23870 updated for version 7.2.409
Problem:    Summary of number of substitutes is incorrect for ":folddo". (Jean
            Johner)
Solution:   Reset sub_nsubs and sub_nlines in global_exe().
2010-03-23 17:49:24 +01:00
Bram Moolenaar
46475520d7 updated for version 7.2.408
Problem:    With ":g/the/s/foo/bar/" the '[ and '] marks can be set to a line
            that was not changed.
Solution:   Only set '[ and '] marks when a substitution was done.
2010-03-23 17:36:29 +01:00
Bram Moolenaar
06975a4a98 updated for version 7.2.407
Problem:    When using an expression in ":s" backslashes in the result are
            dropped. (Sergey Goldgaber, Christian Brabandt)
Solution:   Double backslashes.
2010-03-23 16:27:22 +01:00
Bram Moolenaar
70c49c1af4 updated for version 7.2.406
Problem:    Patch 7.2.119 introduces uninit mem read. (Dominique Pelle)
Solution:   Only used ScreeenLinesC when ScreeenLinesUC is not zero. (Yukihiro
            Nakadaira)  Also clear ScreeenLinesC when allocating.
2010-03-23 15:36:35 +01:00
Bram Moolenaar
53339b2877 updated for version 7.2.405
Problem:    When built with small features the matching text is not
            highlighted for ":s/pat/repl/c".
Solution:   Remove the #ifdef for IncSearch. (James Vega)
2010-03-23 14:39:12 +01:00
Bram Moolenaar
216b71069a updated for version 7.2.404
Problem:    Pointers for composing characters are not properly initialized.
Solution:   Compute the size of the pointer, not what it points to. (Yukihiro
            Nakadaira)
2010-03-23 13:56:59 +01:00
Bram Moolenaar
94127e4abc updated for version 7.2.403
Problem:    Compiler warning for pointer type. (Tony Mechelynck)
Solution:   Move type cast to the right place.
2010-03-19 23:08:48 +01:00
Bram Moolenaar
b52073ac11 Updated runtime and language files. 2010-03-17 20:02:06 +01:00
Bram Moolenaar
baff0fec3f updated for version 7.2.402
Problem:    This gives a #705 error: let X = function('haslocaldir')
            let X = function('getcwd')
Solution:   Don't give E705 when the name is found in the hashtab. (Sergey
            Khorev)
2010-03-17 19:53:49 +01:00
Bram Moolenaar
b91e59b0f3 updated for version 7.2.401
Problem:    ":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight
            directory names with a space. (Alexandre Provencio)
Solution:   Remove the backslash before checking if the name is a directory.
            (Dominique Pelle)
2010-03-17 19:13:27 +01:00
Bram Moolenaar
639a2554e4 updated for version 7.2.400
Problem:    Dynamic Ruby is not initialised properly for version 1.9.1.
            Ruby cannot create strings from NULL.
Solution:   Cleanup #ifdefs.  Handle NULL like an empty string.  Add
            ruby_init_stack. (Sergey Khorev)
2010-03-17 18:15:23 +01:00
Bram Moolenaar
8c79cafcfa updated for version 7.2.399
Problem:    Cannot compile on MingW
Solution:   Move ifneq to separate line. (Vlad Sandrini, Dominique Pelle)
2010-03-17 17:25:09 +01:00
Bram Moolenaar
9b73a78ed7 updated for version 7.2.398
Problem:    When moving windows the cursor ends up in the wrong line.
Solution:   Set the window width and height properly. (Lech Lorens)
2010-03-17 16:54:57 +01:00
Bram Moolenaar
08bb82e8c5 updated for version 7.2.397
Problem:    Redundant check for w_lines_valid.
Solution:   Remove the if.  (Lech Lorens)
2010-03-17 16:45:12 +01:00
Bram Moolenaar
9c27fc3dba updated for version 7.2.396
Problem:    Get E38 errors. (Dasn)
Solution:   Set cursor to line 1 instead of 0. (Dominique Pelle)
2010-03-17 14:48:24 +01:00
Bram Moolenaar
97e7a84b6d updated for version 7.2.395
Problem:    In help CTRL=] on g?g? escapes the ?, causing it to fail. (Tony
            Mechelynck)
Solution:   Don't escape ? for a help command. (Sergey Khorev)
2010-03-17 13:07:08 +01:00
Bram Moolenaar
33cfa2b0ee updated for version 7.2.394
Problem:    .xz files are not supported.
Solution:   Recognize .xz files so that they can be edited.
2010-03-10 17:16:12 +01:00
Bram Moolenaar
595a7bee57 updated for version 7.2.393
Problem:    Mac: Can't build with different Xcode developer tools directory.
Solution:   make "Developer" directory name configurable. (Rainer Muller)
2010-03-10 16:28:12 +01:00
Bram Moolenaar
581f6dc94d updated for version 7.2.392
Problem:    Netbeans hangs reading from a socket at the maximum block size.
Solution:   Use select() or poll(). (Xavier de Gaye)
2010-03-10 16:12:48 +01:00
Bram Moolenaar
37d619f896 updated for version 7.2.391
Problem:    Internal alloc(0) error when doing "CTRL-V $ c". (Martti Kuparinen)
Solution:   Fix computations in getvcol(). (partly by Lech Lorens)
2010-03-10 14:46:26 +01:00
Bram Moolenaar
be678f86d1 updated for version 7.2.390
Problem:    In some situations the popup menu can be displayed wrong.
Solution:   Remove the popup menu if the cursor moved. (Lech Lorens)
2010-03-10 14:15:54 +01:00
Bram Moolenaar
12682fda7a updated for version 7.2.389
Problem:    synIDattr() cannot return the font.
Solution:   Support the "font" argument. (Christian Brabandt)
2010-03-10 13:43:49 +01:00
Bram Moolenaar
66ca320d9e updated for version 7.2.388
Problem:    Ruby with MingW still doesn't build all versions.
Solution:   Different approach to build file. (Sergey Khorev)
2010-03-10 13:20:40 +01:00
Bram Moolenaar
42d57f0017 updated for version 7.2.387
Problem:    Ruby with MingW still doesn't build all versions.
Solution:   More #ifdefs for the  Ruby code. (Sergey Khorev)
2010-03-10 12:47:00 +01:00
Bram Moolenaar
42624592cb updated for version 7.2.386
Problem:    Focus hack for KDE 3.1 causes problems for other window managers.
Solution:   Remove the hack. (forwarded by Joel Bradshaw)
2010-03-10 12:25:03 +01:00
Bram Moolenaar
f679a43dbb updated for version 7.2.385
Problem:    When in the command line window dragging status line only works
            for last-but-one window. (Jean Johner)
Solution:   Remove the code that disallows this.
2010-03-02 18:16:09 +01:00
Bram Moolenaar
2498b3ab10 updated for version 7.2.384
Problem:    Vim doesn't build properly with MSVC 2010.
Solution:   Add the nmake version to the build file. (George Reilly)
2010-03-02 17:59:44 +01:00
Bram Moolenaar
8b9c05fa54 updated for version 7.2.383
Problem:    Vim doesn't build cleanly with MSVC 2010.
Solution:   Change a few types. (George Reilly)
2010-03-02 17:54:33 +01:00
Bram Moolenaar
8006d69d3c updated for version 7.2.382
Problem:    Accessing freed memory when closing the cmdline window when
            'bufhide' is set to "wipe".
Solution:   Check if the buffer still exists before invoking close_buffer()
            (Dominique Pelle)
2010-03-02 17:23:21 +01:00
Bram Moolenaar
5e3dae8b6b Updated runtime an documentation files. 2010-03-02 16:19:40 +01:00
Bram Moolenaar
42b4ddab95 updated for version 7.2.381
Problem:    No completion for :behave.
Solution:   Add :behave completion.  Minor related fixes. (Dominique Pelle)
2010-03-02 15:56:05 +01:00
Bram Moolenaar
58cb0898a3 updated for version 7.2.380
Problem:    Perl interface builds with 5.10.1 but not with 5.10.0.
Solution:   Change the #ifdefs. (Sergey Khorev)
2010-03-02 15:14:33 +01:00
Bram Moolenaar
8cac9fd020 updated for version 7.2.379
Problem:    'eventignore' is set to an invalid value inside ":doau". (Antony
            Scriven)
Solution:   Don't include the leading comma when the option was empty.
2010-03-02 12:48:05 +01:00
Bram Moolenaar
1a89bbe849 updated for version 7.2.378
Problem:    C function declaration indented too much. (Rui)
Solution:   Don't see a line containing { or } as a type. (Matt Wozniski)
2010-03-02 12:38:22 +01:00
Bram Moolenaar
86ce1cc086 updated for version 7.2.377
Problem:    Misplaced assignment.  Duplicate build line for gvimext.dll.
Solution:   Move setting CROSS_COMPILE to before ifneq.  Remove the wrong
            build line. (Markus Heidelberg)
2010-02-26 22:05:22 +01:00
Bram Moolenaar
72b73c12dc updated for version 7.2.376
Problem:    ml_get error when using SiSU syntax. (Nathan Thomas)
Solution:   If the match ends below the last line move it to the end of the
            last line.
2010-02-24 17:22:20 +01:00
Bram Moolenaar
89c0ea4ea1 updated for version 7.2.375
Problem:    ml_get errors when using ":bprevious" in a BufEnter autocmd.
            (Dominique Pelle)
Solution:   Clear w_valid when entering another buffer.
2010-02-24 16:58:36 +01:00
Bram Moolenaar
3fac56e87e updated for version 7.2.374
Problem:    Ruby eval() doesn't understand Vim types.
Solution:   Add the vim_to_ruby() function.  (George Gensure)
2010-02-24 15:48:04 +01:00
Bram Moolenaar
a4e782eee0 updated for version 7.2.373
Problem:    Gcc 4.5 adds more error messages. (Chris Indy)
Solution:   Update default 'errorformat'.
2010-02-24 15:25:25 +01:00
Bram Moolenaar
48f80c276b updated for version 7.2.372
Problem:    Cross-compiling GvimExt and xxd doesn't work.
Solution:   Change the build files. (Markus Heidelberg)
2010-02-24 15:08:27 +01:00
Bram Moolenaar
25153e127d updated for version 7.2.371
Problem:    Build problems on Tandem NonStop.
Solution:   A few changes to #ifdefs (Joachim Schmitz)
2010-02-24 14:47:08 +01:00
Bram Moolenaar
f4d7f944ba updated for version 7.2.370
Problem:    A redraw may cause folds to be closed.
Solution:   Revert part of the previous patch.  Add a test. (Lech Lorens)
2010-02-24 14:34:19 +01:00
Bram Moolenaar
54c1b4965b updated for version 7.2.369
Problem:    Error message is not easy to understand.
Solution:   Add quotes. (SungHyun Nam)
2010-02-24 14:01:28 +01:00
Bram Moolenaar
83bac8b756 updated for version 7.2.368
Problem:    Ruby interface: Appending line doesn't work. (Michael Henry)
Solution:   Reverse check for NULL line. (James Vega)
2010-02-18 15:53:29 +01:00
Bram Moolenaar
8a33e74dd2 updated for version 7.2.367
Problem:    "xxd -r -p" doesn't work as documented.
Solution:   Skip white space. (James Vega)
2010-02-17 18:28:41 +01:00
Bram Moolenaar
bacd9da40e updated for version 7.2.366
Problem:    CTRL-B doesn't go back to the first line of the buffer.
Solution:   Avoid an overflow when adding MAXCOL.
2010-02-17 18:20:37 +01:00
Bram Moolenaar
8c83ac3d83 updated for version 7.2.365
Problem:    MS-Windows with MingW: "File->Save As" does not work. (John
            Marriott)
Solution:   Correctly fill in structure size. (Andy Kittner)
2010-02-17 17:34:43 +01:00
Bram Moolenaar
175aa24846 updated for version 7.2.364
Problem:    Can't build gvimext.dll on Win 7 x64 using MinGW (John Marriott)
Solution:   Check if _MSC_VER is defined. (Andy Kittner)
2010-02-17 17:24:27 +01:00
Bram Moolenaar
3a0573acae updated for version 7.2.363
Problem:    Can't dynamically load Perl 5.10.
Solution:   Add the function Perl_croak_xs_usage. (Sergey Khorev)
2010-02-17 16:40:58 +01:00
Bram Moolenaar
33d0b69ab8 updated for version 7.2.362
Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
Solution:   Instead of handling WM_NCCREATE, create wide text area window
            class if the parent window iw side. (Sergey Khorev)
2010-02-17 16:31:32 +01:00
Bram Moolenaar
165641da25 updated for version 7.2.361
Problem:    Ruby 1.9 is not supported.
Solution:   Add Ruby 1.9 support. (Msaki Suketa)
2010-02-17 16:23:09 +01:00
Bram Moolenaar
0b69c73411 updated for version 7.2.360
Problem:    Ruby on MS-Windows: can't use sockets.
Solution:   Call NtInitialize() during initialization. (Ariya Mizutani)
2010-02-17 15:11:50 +01:00
Bram Moolenaar
0ca4b350f0 updated for version 7.2.359
Problem:    Crash when using the Netbeans join command.
Solution:   Make sure the ml_flush_line() function is not used recursively.
            (Xavier de Gaye)
2010-02-11 18:54:43 +01:00
Bram Moolenaar
b4990bf90b updated for version 7.2.358
Problem:    Compiler warnings on VMS. (Zoltan Arpadffy)
Solution:   Pass array itself instead its address.  Return a value.
2010-02-11 18:19:38 +01:00
Bram Moolenaar
0413d48711 updated for version 7.2.357
Problem:    When changing 'fileformat' from/to "mac" and there is a CR in the
            text the display is wrong.
Solution:   Redraw the text when 'fileformat' is changed. (Ben Schmidt)
2010-02-11 17:02:11 +01:00
Bram Moolenaar
6dfc28be25 Updated runtime files. 2010-02-11 14:19:15 +01:00
Bram Moolenaar
cee6a352b2 updated for version 7.2.356
Problem:    When 'foldmethod' is changed not all folds are closed as expected.
Solution:   In foldUpdate() correct the start position and reset fd_flags when
            w_foldinvalid is set. (Lech Lorens)
2010-02-03 18:14:49 +01:00
Bram Moolenaar
6427c608e7 updated for version 7.2.355
Problem:    Computing the cursor column in validate_cursor_col() is wrong when
            line numbers are used and 'n' is not in 'cpoptions', causing the
            popup menu to be positioned wrong.
Solution:   Correctly use the offset. (partly by Dominique Pelle)
2010-02-03 17:43:07 +01:00
Bram Moolenaar
990bb661a1 updated for version 7.2.354
Problem:    Japanese single-width double-byte characters not handled correctly.
Solution:   Put 0x8e in ScreenLines[] and the second byte in ScreenLines2[].
            (partly by Kikuchan)
2010-02-03 15:48:04 +01:00
Bram Moolenaar
f86f26c06a updated for version 7.2.353
Problem:    No command line completion for ":profile".
Solution:   Complete the subcommand and file name.
2010-02-03 15:14:22 +01:00
Bram Moolenaar
4d526ad35a updated for version 7.2.352
Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
Solution:   Always return TRUE for the WM_NCCREATE message. (Andy Kittner)
2010-02-03 12:23:24 +01:00
Bram Moolenaar
d21d9a6c61 updated for version 7.2.351
Problem:    Can't build with some compilers.
Solution:   Move the #ifdef outside of a macro.  Cleanup the code.
2010-01-28 22:58:16 +01:00
Bram Moolenaar
c5d5d01ad9 updated for version 7.2.350
Problem:    Win32: When changing font the window may jump from the secondary
            to the primary screen. (Michael Wookey)
Solution:   When the screen position was negative don't correct it to zero.
2010-01-27 21:05:05 +01:00
Bram Moolenaar
6d1dcffc35 updated for version 7.2.349
Problem:    CTRL-W gf doesn't put the new tab in the same place as "tab split"
            and "gf". (Tony Mechelynck)
Solution:   Store the tab number in cmdmod.tab.
2010-01-27 20:26:46 +01:00
Bram Moolenaar
da4d7a92d5 updated for version 7.2.348
Problem:    Unicode double-width characters are not up-to date.
Solution:   Produce the double-width table like the others.
2010-01-27 18:29:26 +01:00
Bram Moolenaar
0dbf720d86 updated for version 7.2.347
Problem:    Crash when executing <expr> mapping redefines that same mapping.
Solution:   Save the values used before evaluating the expression.
2010-01-27 17:31:43 +01:00
Bram Moolenaar
38ef43b262 updated for version 7.2.346
Problem:    Repeating a command with @: causes a mapping to be applied twice.
Solution:   Do not remap characters inserted in the typeahead buffer. (Kana
            Natsuno)
2010-01-27 16:31:13 +01:00
Bram Moolenaar
5075aad6a8 updated for version 7.2.345
Problem:    Tab line is not updated when the value of 'bt' is changed.
Solution:   Call redraw_titles(). (Lech Lorens)
2010-01-27 15:58:13 +01:00
Bram Moolenaar
7ad01410da Add more pathdef.c to .hgignore. 2010-01-20 21:56:50 +01:00
Bram Moolenaar
8d8ef0b0b9 updated for version 7.2.344
Problem:    Can't compile on some systems
Solution:   Move the #ifdef outside of the mch_open macro. (Patrick Texier)
2010-01-20 21:41:47 +01:00
Bram Moolenaar
fc307fa1a6 updated for version 7.2.343
Problem:    Can't compile on Win32.
Solution:   Insert the missing bar.
2010-01-19 23:30:41 +01:00
Bram Moolenaar
d836bb90ab updated for version 7.2.342
Problem:    Popup menu displayed wrong in 'rightleft' mode when there are
            multi-byte characters.
Solution:   Adjust the column computations. (Dominique Pelle)
2010-01-19 18:06:03 +01:00
Bram Moolenaar
e4ebd29ea9 updated for version 7.2.341
Problem:    Popup menu wraps to next line when double-wide character doesn't
            fit. (Jiang Ma)
Solution:   Display a ">" instead. (Dominique Pelle)
2010-01-19 17:40:46 +01:00
Bram Moolenaar
3ee0229f64 updated for version 7.2.340
Problem:    Gcc warning for condition that can never be true. (James Vega)
Solution:   Use start_lvl instead flp->lvl.
2010-01-19 17:24:25 +01:00
Bram Moolenaar
c4e4198730 updated for version 7.2.339
Problem:    Part of --startuptime patch is missing.
Solution:   Add check for time_fd.
2010-01-19 16:31:47 +01:00
Bram Moolenaar
6b29b0e809 updated for version 7.2.338
Problem:    Part of FD_CLOEXEC change is missing.
Solution:   Include source file skipped because of typo.
2010-01-19 16:22:03 +01:00
Bram Moolenaar
3d63e3f160 updated for version 7.2.337
Problem:    The :compiler command doesn't function properly when invoked in a
            function.
Solution:   Add "g:" before "current_compiler". (Yukihiro Nakadaira)
2010-01-19 16:13:50 +01:00
Bram Moolenaar
7e506b6a42 updated for version 7.2.336
Problem:    MzScheme interface can't evaluate an expression.
Solution:   Add mzeval(). (Sergey Khorev)
2010-01-19 15:55:06 +01:00
Bram Moolenaar
6d8027a6c2 updated for version 7.2.335
Problem:    The CTRL-] command escapes too many characters.
Solution:   Use a different list of characters to be escaped. (Sergey Khorev)
2010-01-19 15:24:27 +01:00
Bram Moolenaar
8065d7fd9c updated for version 7.2.334
Problem:    Postponing keys in Netbeans interface does not work properly.
Solution:   Store the key string instead of the number.  Avoid an infinite
            loop. (Mostly by Xavier de Gaye)
2010-01-19 15:13:14 +01:00
Bram Moolenaar
2660c0ea9b updated for version 7.2.333
Problem:    Warnings from static code analysis.
Solution:   Small changes to various lines. (Dominique Pelle)
2010-01-19 14:59:56 +01:00
Bram Moolenaar
3ea38ef239 updated for version 7.2.332
Problem:    Crash when spell correcting triggers an autocommand that reloads
            the buffer.
Solution:   Make a copy of the line to be modified. (Dominique Pelle)
2010-01-19 13:08:42 +01:00
Bram Moolenaar
f68f656213 updated for version 7.2.331
Problem:    Can't interrupt "echo list" for a very long list.
Solution:   Call line_breakcheck() in list_join().
2010-01-19 12:48:05 +01:00
Bram Moolenaar
c0880db674 Add a few missing runtime files. 2010-01-17 14:38:06 +01:00
Bram Moolenaar
9db9d9ce05 Updated runtime files. 2010-01-16 14:29:14 +01:00
Bram Moolenaar
555cdc2f8c Updated runtime files. 2010-01-12 21:31:21 +01:00
Bram Moolenaar
3e8cb58725 updated for version 7.2.330
Problem:    Tables for Unicode case operators are outdated.
Solution:   Add a Vim script for generating the tables.  Include tables for
            Unicode 5.2.
2010-01-12 19:52:03 +01:00
Bram Moolenaar
5890b2cf9e updated for version 7.2.329
Problem:    "g_" doesn't position cursor correctly when in Visual mode and
            'selection' is "exclusive". (Ben Fritz)
Solution:   Call adjust_for_sel().
2010-01-12 15:42:37 +01:00
Bram Moolenaar
e37d79928d updated for version 7.2.328
Problem:    has("win64") does not return 1 on 64 bit MS-Windows version.
Solution:   Also check for _WIN64 besides WIN64.
2010-01-12 13:18:33 +01:00
Bram Moolenaar
ef3c1a7fd7 Fixed encoding name in Ukranian message file. 2010-01-11 20:07:07 +01:00
Bram Moolenaar
a17c9cebd3 Add an .hgignore file (suggested by Mike Williams). 2010-01-10 14:44:52 +01:00
Bram Moolenaar
7608643f38 Remove config.h from the distribution, let's see if that works. 2010-01-10 14:35:14 +01:00
Bram Moolenaar
d8e21d3deb Minor text file updates. 2010-01-06 21:16:31 +01:00
Bram Moolenaar
5c73622a90 Update runtime files. 2010-01-06 20:54:52 +01:00
Bram Moolenaar
8f3f58f2c3 Update documentation files. 2010-01-06 20:52:26 +01:00
Bram Moolenaar
28c3795987 Update message translations. 2010-01-06 20:29:28 +01:00
Bram Moolenaar
ba07ce32cc updated for version 7.2.327 2010-01-06 18:25:34 +01:00
Bram Moolenaar
6f97701373 updated for version 7.2.326 2010-01-06 17:53:38 +01:00
Bram Moolenaar
70d60e9da1 updated for version 7.2-325 2009-12-31 13:53:33 +00:00
Bram Moolenaar
742d1ecd17 updated for version 7.2-324 2009-12-31 12:18:30 +00:00
Bram Moolenaar
281daf62aa updated for version 7.2-323 2009-12-24 15:11:40 +00:00
Bram Moolenaar
3084894793 updated for version 7.2-322 2009-12-24 14:46:12 +00:00
Bram Moolenaar
c7be3f30d0 updated for version 7.2-321 2009-12-24 14:01:12 +00:00
Bram Moolenaar
0a1c0ece44 updated for version 7.2-320 2009-12-16 18:02:47 +00:00
Bram Moolenaar
088598d7d6 updated for version 7.2-319 2009-12-16 17:49:39 +00:00
Bram Moolenaar
5d985b9cca updated for version 7.2-318 2009-12-16 17:28:07 +00:00
Bram Moolenaar
f5b6386f4f updated for version 7.2-317 2009-12-16 17:13:44 +00:00
Bram Moolenaar
56d1db3067 updated for version 7.2-316 2009-12-16 16:14:51 +00:00
Bram Moolenaar
72951077b9 updated for version 7.2-315 2009-12-02 16:58:33 +00:00
Bram Moolenaar
d7cd61723e updated for version 7.2-314 2009-12-02 16:47:11 +00:00
Bram Moolenaar
d7834d3065 updated for version 7.2-313 2009-12-02 16:14:36 +00:00
Bram Moolenaar
243973325e updated for version 7.2-312 2009-12-02 14:02:39 +00:00
Bram Moolenaar
f4888d0535 updated for version 7.2-311 2009-12-02 12:31:27 +00:00
Bram Moolenaar
43b36a3bc6 updated for version 7.2-310 2009-12-02 11:08:38 +00:00
Bram Moolenaar
d32a319f40 updated for version 7.2-309 2009-11-26 19:40:49 +00:00
Bram Moolenaar
5ea08a893a updated for version 7.2-308 2009-11-25 18:51:24 +00:00
Bram Moolenaar
d3005803d5 updated for version 7.2-307 2009-11-25 17:21:32 +00:00
Bram Moolenaar
099d01d4a7 updated for version 7.2-306 2009-11-25 16:14:45 +00:00
Bram Moolenaar
19f990e497 updated for version 7.2-305 2009-11-25 12:08:03 +00:00
Bram Moolenaar
331dafdbb8 updated for version 7.2-304 2009-11-25 11:38:30 +00:00
Bram Moolenaar
4592dee576 updated for version 7.2-303 2009-11-18 19:11:58 +00:00
Bram Moolenaar
f11021be13 updated for version 7.2-302 2009-11-17 16:57:14 +00:00
Bram Moolenaar
97b9810bdf updated for version 7.2-301 2009-11-17 16:41:01 +00:00
Bram Moolenaar
f05da21900 updated for version 7.2-300 2009-11-17 16:13:15 +00:00
Bram Moolenaar
2d7ff056e1 updated for version 7.2-299 2009-11-17 15:08:26 +00:00
Bram Moolenaar
50daf405f7 updated for version 7.2-298 2009-11-17 13:57:22 +00:00
Bram Moolenaar
cde547a8f3 updated for version 7.2-297 2009-11-17 11:43:06 +00:00
Bram Moolenaar
34ef52dd56 updated for version 7.2-296 2009-11-17 11:31:25 +00:00
Bram Moolenaar
627b1d3862 updated for version 7.2-295 2009-11-17 11:20:35 +00:00
Bram Moolenaar
eaf0339211 updated for version 7.2-294 2009-11-17 11:08:52 +00:00
Bram Moolenaar
d7d5b47dc7 updated for version 7.2-293 2009-11-11 16:30:08 +00:00
Bram Moolenaar
be1138baba updated for version 7.2-292 2009-11-11 16:22:28 +00:00
Bram Moolenaar
5462018872 updated for version 7.2-291 2009-11-11 16:07:20 +00:00
Bram Moolenaar
21160b9808 updated for version 7.2-290 2009-11-11 15:56:10 +00:00
Bram Moolenaar
f6f95d962f updated for version 7.2-289 2009-11-11 15:23:37 +00:00
Bram Moolenaar
be2c9ae915 updated for version 7.2-288 2009-11-11 14:06:59 +00:00
Bram Moolenaar
954e8c54a0 updated for version 7.2-287 2009-11-11 13:45:33 +00:00
Bram Moolenaar
ef94eec644 updated for version 7.2-286 2009-11-11 13:22:11 +00:00
Bram Moolenaar
76675565ac updated for version 7.2-285 2009-11-11 12:22:32 +00:00
Bram Moolenaar
3234cc6a31 updated for version 7.2-284 2009-11-03 17:47:12 +00:00
Bram Moolenaar
e161c791f6 updated for version 7.2-283 2009-11-03 17:13:59 +00:00
Bram Moolenaar
eda6eb9f00 updated for version 7.2-282 2009-11-03 17:04:43 +00:00
Bram Moolenaar
bb6a705451 updated for version 7.2-281 2009-11-03 16:36:44 +00:00
Bram Moolenaar
362f3569ae updated for version 7.2-280 2009-11-03 16:20:34 +00:00
Bram Moolenaar
a1381de5f3 updated for version 7.2-279 2009-11-03 15:44:21 +00:00
Bram Moolenaar
5b88ba47e8 updated for version 7.2-278 2009-11-03 15:30:12 +00:00
Bram Moolenaar
fa316dd1f7 updated for version 7.2-277 2009-11-03 15:23:14 +00:00
Bram Moolenaar
2ac5e603d8 updated for version 7.2-276 2009-11-03 15:04:20 +00:00
Bram Moolenaar
740885b78b updated for version 7.2-275 2009-11-03 14:33:17 +00:00
Bram Moolenaar
ec98647b1c updated for version 7.2-274 2009-11-03 13:46:54 +00:00
Bram Moolenaar
2f59b5c1cc updated for version 7.2-273 2009-11-03 13:26:55 +00:00
Bram Moolenaar
d0ba34a6e5 updated for version 7.2-272 2009-11-03 12:06:23 +00:00
Bram Moolenaar
0af561dbf2 updated for version 7.2-271 2009-11-03 11:53:55 +00:00
Bram Moolenaar
60462877cb updated for version 7.2-270 2009-11-03 11:40:19 +00:00
Bram Moolenaar
3f269675d4 updated for version 7.2-269 2009-11-03 11:11:11 +00:00
Bram Moolenaar
badfde1bfe updated for version 7.2-268 2009-11-03 10:43:27 +00:00
Bram Moolenaar
8701cd6a22 updated for version 7.2-267 2009-10-07 14:20:30 +00:00
Bram Moolenaar
da9591ecfd updated for version 7.2-266 2009-09-30 13:17:02 +00:00
Bram Moolenaar
becf428bc0 updated for version 7.2-265 2009-09-30 11:24:36 +00:00
Bram Moolenaar
09736232af updated for version 7.2-264 2009-09-23 16:14:49 +00:00
Bram Moolenaar
79ef6d642e updated for version 7.2-263 2009-09-23 15:35:48 +00:00
Bram Moolenaar
67b891e16c updated for version 7.2-262 2009-09-18 15:25:52 +00:00
Bram Moolenaar
194b94c5a8 updated for version 7.2-261 2009-09-18 13:17:09 +00:00
Bram Moolenaar
2db24dc29b updated for version 7.2-260 2009-09-18 12:59:26 +00:00
Bram Moolenaar
5b7880dea2 updated for version 7.2-259 2009-09-11 15:24:31 +00:00
Bram Moolenaar
86c800a1b3 updated for version 7.2-258 2009-09-11 14:48:27 +00:00
Bram Moolenaar
5e69de4421 updated for version 7.2-257 2009-09-11 14:17:54 +00:00
Bram Moolenaar
bef9d835f5 updated for version 7.2-256 2009-09-11 13:46:41 +00:00
Bram Moolenaar
319bdbd5ef updated for version 7.2-255 2009-09-11 13:20:33 +00:00
Bram Moolenaar
c066202665 updated for version 7.2-254 2009-09-11 13:04:24 +00:00
Bram Moolenaar
fa68b0fc1a updated for version 7.2-253 2009-09-11 12:19:51 +00:00
Bram Moolenaar
183bb3e4b6 updated for version 7.2-252 2009-09-11 12:02:34 +00:00
Bram Moolenaar
1d7ad738e5 updated for version 7.2-251 2009-09-11 11:44:54 +00:00
Bram Moolenaar
dc7e00e848 updated for version 7.2-250 2009-09-11 11:26:56 +00:00
Bram Moolenaar
1c6136a8a5 updated for version 7.2-249 2009-09-11 11:00:05 +00:00
Bram Moolenaar
2d6db76d97 updated for version 7.2-248 2009-09-11 10:49:58 +00:00
Bram Moolenaar
e484c94514 updated for version 7.2-247 2009-09-11 10:21:41 +00:00
Bram Moolenaar
8ae39d8432 updated for version 7.2-246 2009-09-11 09:30:34 +00:00
Bram Moolenaar
b5cdf2eab3 updated for version 7.2-245 2009-07-29 16:25:31 +00:00
Bram Moolenaar
32b485f2b0 updated for version 7.2-244 2009-07-29 16:06:27 +00:00
Bram Moolenaar
5e9b4540fd updated for version 7.2-243 2009-07-29 14:24:36 +00:00
Bram Moolenaar
801f8b865c updated for version 7.2-242 2009-07-29 13:42:05 +00:00
Bram Moolenaar
6bef63c651 updated for version 7.2-241 2009-07-29 10:10:29 +00:00
Bram Moolenaar
9f8650c969 updated for version 7.2-240 2009-07-29 09:11:15 +00:00
Bram Moolenaar
6ec0a6c43d updated for version 7.2-239 2009-07-22 14:23:13 +00:00
Bram Moolenaar
363cb67afa updated for version 7.2-238 2009-07-22 12:28:17 +00:00
Bram Moolenaar
20de1c20e6 updated for version 7.2-237 2009-07-22 11:28:11 +00:00
Bram Moolenaar
996b6d86cc updated for version 7.2-236 2009-07-22 09:17:23 +00:00
Bram Moolenaar
b245016c15 updated for version 7.2-235 2009-07-22 09:04:20 +00:00
Bram Moolenaar
055a2ba10e updated for version 7.2-234 2009-07-14 19:40:21 +00:00
Bram Moolenaar
a2974d70f1 updated for version 7.2-233 2009-07-14 16:38:36 +00:00
Bram Moolenaar
2572492eba updated for version 7.2-232 2009-07-14 15:38:41 +00:00
Bram Moolenaar
3f947ead6f updated for version 7.2-231 2009-07-14 14:04:54 +00:00
Bram Moolenaar
d31aca26de updated for version 7.2-230 2009-07-14 11:44:30 +00:00
Bram Moolenaar
262735ed58 updated for version 7.2-229 2009-07-14 10:20:22 +00:00
Bram Moolenaar
9fa49da747 updated for version 7.2-228 2009-07-10 13:11:26 +00:00
Bram Moolenaar
fcfbc670c7 updated for version 7.2-227 2009-07-09 18:13:49 +00:00
Bram Moolenaar
cdcaa58929 updated for version 7.2-226 2009-07-09 18:06:49 +00:00
Bram Moolenaar
13df0fea4b updated for version 7.2-225 2009-07-09 16:24:19 +00:00
Bram Moolenaar
031e0dd663 updated for version 7.2-224 2009-07-09 16:15:16 +00:00
Bram Moolenaar
8e258a4a94 updated for version 7.2-223 2009-07-09 13:55:43 +00:00
Bram Moolenaar
8d5946760b updated for version 7.2-222 2009-07-01 18:18:57 +00:00
Bram Moolenaar
bbc936bebe updated for version 7.2-221 2009-07-01 16:04:58 +00:00
Bram Moolenaar
2bc76e617b updated for version 7.2-220 2009-07-01 15:13:56 +00:00
Bram Moolenaar
a0b1997e13 updated for version 7.2-219 2009-07-01 14:13:18 +00:00
Bram Moolenaar
a48b1659b3 updated for version 7.2-218 2009-06-24 16:32:08 +00:00
Bram Moolenaar
0c77b7ba51 updated for version 7.2-217 2009-06-24 16:08:18 +00:00
Bram Moolenaar
b849e713e2 updated for version 7.2-216 2009-06-24 15:51:37 +00:00
Bram Moolenaar
f061e0befb updated for version 7.2-215 2009-06-24 15:32:01 +00:00
Bram Moolenaar
8d3b8c4a8a updated for version 7.2-214 2009-06-24 15:05:00 +00:00
Bram Moolenaar
0dc79e8594 updated for version 7.2-213 2009-06-24 14:50:12 +00:00
Bram Moolenaar
fab578f605 updated for version 7.2-212 2009-06-24 14:41:19 +00:00
Bram Moolenaar
782027ee28 updated for version 7.2-211 2009-06-24 14:25:49 +00:00
Bram Moolenaar
85388b5652 updated for version 7.2-210 2009-06-24 09:58:32 +00:00
Bram Moolenaar
dc40a2b5f5 updated for version 7.2-209 2009-06-16 16:29:10 +00:00
Bram Moolenaar
2a7b9ee0a7 updated for version 7.2-208 2009-06-16 15:50:33 +00:00
Bram Moolenaar
adb09c2e69 updated for version 7.2-207 2009-06-16 15:22:12 +00:00
Bram Moolenaar
bd42a0f5e6 updated for version 7.2-206 2009-06-16 14:57:26 +00:00
Bram Moolenaar
1e7ac8596a updated for version 7.2-205 2009-06-16 14:44:48 +00:00
Bram Moolenaar
da2f99aa8a updated for version 7.2-204 2009-06-16 14:34:38 +00:00
Bram Moolenaar
746ebd3b6a updated for version 7.2-203 2009-06-16 14:01:43 +00:00
Bram Moolenaar
8b38e2416c updated for version 7.2-202 2009-06-16 13:35:20 +00:00
Bram Moolenaar
3a6eaa58d5 updated for version 7.2-201 2009-06-16 13:23:06 +00:00
Bram Moolenaar
feba08b22a updated for version 7.2-200 2009-06-16 13:12:07 +00:00
Bram Moolenaar
bfa2824d7e updated for version 7.2-199 2009-06-16 12:31:33 +00:00
Bram Moolenaar
0bd40c0c0a updated for version 7.2-198 2009-06-16 09:07:49 +00:00
Bram Moolenaar
446b179cac updated for version 7.2-197 2009-06-10 16:15:40 +00:00
Bram Moolenaar
f56322c8b3 updated for version 7.2-196 2009-06-03 20:08:14 +00:00
Bram Moolenaar
9085f80276 updated for version 7.2-195 2009-06-03 14:20:21 +00:00
Bram Moolenaar
535c540085 updated for version 7.2-194 2009-06-03 13:05:07 +00:00
Bram Moolenaar
cdb92aff69 updated for version 7.2-193 2009-06-03 12:26:06 +00:00
Bram Moolenaar
2c2398c0aa updated for version 7.2-192 2009-06-03 11:22:45 +00:00
Bram Moolenaar
9e70cf192e updated for version 7.2-191 2009-05-26 20:59:55 +00:00
Bram Moolenaar
42b9436cf8 updated for version 7.2-190 2009-05-26 16:12:37 +00:00
Bram Moolenaar
4be506815d updated for version 7.2-189 2009-05-26 09:02:10 +00:00
Bram Moolenaar
c0a6fac5af updated for version 7.2-188 2009-05-24 11:40:58 +00:00
Bram Moolenaar
a41b1395cb updated for version 7.2-187 2009-05-23 12:28:15 +00:00
Bram Moolenaar
30f9ca9f59 updated for version 7.2-186 2009-05-22 19:08:31 +00:00
Bram Moolenaar
cd8b20a914 updated for version 7.2-185 2009-05-22 16:20:57 +00:00
Bram Moolenaar
4bdbbf7066 updated for version 7.2-184 2009-05-21 21:27:43 +00:00
Bram Moolenaar
32f31b1a0f updated for version 7.2-183 2009-05-21 13:20:59 +00:00
Bram Moolenaar
a9d455172f updated for version 7.2-182 2009-05-17 21:25:42 +00:00
Bram Moolenaar
b85cb21cb1 updated for version 7.2-181 2009-05-17 14:24:23 +00:00
Bram Moolenaar
2c4278fc73 updated for version 7.2-180 2009-05-17 11:33:22 +00:00
Bram Moolenaar
bf0c4526bf updated for version 7.2-179 2009-05-16 19:16:33 +00:00
Bram Moolenaar
e1fbddcd62 updated for version 7.2-178 2009-05-16 19:07:03 +00:00
Bram Moolenaar
af0167fa39 updated for version 7.2-177 2009-05-16 15:31:32 +00:00
Bram Moolenaar
8f0b2d46c7 updated for version 7.2-176 2009-05-16 14:41:10 +00:00
Bram Moolenaar
856b9fef3a updated for version 7.2-175 2009-05-16 14:16:02 +00:00
Bram Moolenaar
78a1531005 updated for version 7.2-174 2009-05-15 19:33:18 +00:00
Bram Moolenaar
0c094b9d7f updated for version 7.2-173 2009-05-14 20:20:33 +00:00
Bram Moolenaar
d30f9d92c4 updated for version 7.2-172 2009-05-14 20:01:05 +00:00
Bram Moolenaar
985cb44573 updated for version 7.2-171 2009-05-14 19:51:46 +00:00
Bram Moolenaar
f1726cc8d6 updated for version 7.2-170 2009-05-13 18:48:16 +00:00
Bram Moolenaar
5fd0ca70d3 updated for version 7.2-169 2009-05-13 16:56:33 +00:00
Bram Moolenaar
0c7ce77a00 updated for version 7.2-168 2009-05-13 12:49:39 +00:00
Bram Moolenaar
4221e5fa6c updated for version 7.2-167fix 2009-05-13 12:15:37 +00:00
Bram Moolenaar
0ab2a8870c updated for version 7.2-168 2009-05-13 10:51:08 +00:00
Bram Moolenaar
3c65e314b4 updated for version 7.2-166 2009-04-29 16:47:23 +00:00
Bram Moolenaar
5135d46481 updated for version 7.2-165 2009-04-29 16:03:38 +00:00
Bram Moolenaar
81d00078be updated for version 7.2-164 2009-04-29 15:41:40 +00:00
Bram Moolenaar
876f6d7f3c updated for version 7.2-163 2009-04-29 10:05:51 +00:00
Bram Moolenaar
04c0f8a9b0 updated for version 7.2-162 2009-04-29 09:52:12 +00:00
Bram Moolenaar
bd1e5d2e1d updated for version 7.2-161 2009-04-29 09:02:44 +00:00
Bram Moolenaar
f242762d0d updated for version 7.2-160 2009-04-22 16:45:21 +00:00
Bram Moolenaar
94ba1ce055 updated for version 7.2-159 2009-04-22 15:53:09 +00:00
Bram Moolenaar
92a990ba84 updated for version 7.2-158 2009-04-22 15:45:05 +00:00
Bram Moolenaar
fe81d45db4 updated for version 7.2-157 2009-04-22 14:44:41 +00:00
Bram Moolenaar
7bfef80fab updated for version 7.2-156 2009-04-22 14:25:01 +00:00
874 changed files with 99880 additions and 128963 deletions

51
.gitignore vendored Normal file
View File

@@ -0,0 +1,51 @@
# Unixen: object and executable files.
*.o
src/vim
src/xxd/xxd
src/auto/if_perl.c
src/tags
# 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
# Windows
*.exe
*.idb
*.manifest
*.exp
*.obj
*.pdb
*.ilk
*.sln
*.suo
*.res
*.RES
src/pathdef.c
src/Obj*/pathdef.c
gvimext.dll
gvimext.lib
# All platforms
*.rej
*.orig
*.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

@@ -9,10 +9,10 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful
messages, shows current file name in window title, on-line messages, shows current file name in window title, on-line
help, rectangular cut/paste, etc., etc., etc... help, rectangular cut/paste, etc., etc., etc...
Version 7.2. Also runs under UNIX, MSDOS and other systems. Version 7.3. Also runs under UNIX, MSDOS and other systems.
vim72rt.tgz contains the documentation and syntax files. vim73rt.tgz contains the documentation and syntax files.
vim72bin.tgz contains the binaries. vim73bin.tgz contains the binaries.
vim72src.tgz contains the sources. vim73src.tgz contains the sources.
Author: Bram Moolenaar et al. Author: Bram Moolenaar et al.

View File

@@ -7,6 +7,7 @@ SRC_ALL = \
src/arabic.c \ src/arabic.c \
src/arabic.h \ src/arabic.h \
src/ascii.h \ src/ascii.h \
src/blowfish.c \
src/buffer.c \ src/buffer.c \
src/charset.c \ src/charset.c \
src/diff.c \ src/diff.c \
@@ -38,6 +39,7 @@ SRC_ALL = \
src/mark.c \ src/mark.c \
src/mbyte.c \ src/mbyte.c \
src/memfile.c \ src/memfile.c \
src/memfile_test.c \
src/memline.c \ src/memline.c \
src/menu.c \ src/menu.c \
src/message.c \ src/message.c \
@@ -58,6 +60,7 @@ SRC_ALL = \
src/regexp.h \ src/regexp.h \
src/screen.c \ src/screen.c \
src/search.c \ src/search.c \
src/sha256.c \
src/structs.h \ src/structs.h \
src/spell.c \ src/spell.c \
src/syntax.c \ src/syntax.c \
@@ -79,6 +82,7 @@ SRC_ALL = \
src/testdir/test49.vim \ src/testdir/test49.vim \
src/testdir/test60.vim \ src/testdir/test60.vim \
src/proto.h \ src/proto.h \
src/proto/blowfish.pro \
src/proto/buffer.pro \ src/proto/buffer.pro \
src/proto/charset.pro \ src/proto/charset.pro \
src/proto/diff.pro \ src/proto/diff.pro \
@@ -116,6 +120,7 @@ SRC_ALL = \
src/proto/regexp.pro \ src/proto/regexp.pro \
src/proto/screen.pro \ src/proto/screen.pro \
src/proto/search.pro \ src/proto/search.pro \
src/proto/sha256.pro \
src/proto/spell.pro \ src/proto/spell.pro \
src/proto/syntax.pro \ src/proto/syntax.pro \
src/proto/tag.pro \ src/proto/tag.pro \
@@ -206,19 +211,24 @@ SRC_UNIX = \
SRC_DOS_UNIX = \ SRC_DOS_UNIX = \
src/if_cscope.c \ src/if_cscope.c \
src/if_cscope.h \ src/if_cscope.h \
src/if_lua.c \
src/if_mzsch.c \ src/if_mzsch.c \
src/if_mzsch.h \ src/if_mzsch.h \
src/if_perl.xs \ src/if_perl.xs \
src/if_perlsfio.c \ src/if_perlsfio.c \
src/if_python.c \ src/if_python.c \
src/if_python3.c \
src/if_py_both.h \
src/if_ruby.c \ src/if_ruby.c \
src/if_sniff.h \ src/if_sniff.h \
src/if_tcl.c \ src/if_tcl.c \
src/proto/if_cscope.pro \ src/proto/if_cscope.pro \
src/proto/if_lua.pro \
src/proto/if_mzsch.pro \ src/proto/if_mzsch.pro \
src/proto/if_perl.pro \ src/proto/if_perl.pro \
src/proto/if_perlsfio.pro \ src/proto/if_perlsfio.pro \
src/proto/if_python.pro \ src/proto/if_python.pro \
src/proto/if_python3.pro \
src/proto/if_ruby.pro \ src/proto/if_ruby.pro \
src/proto/if_tcl.pro \ src/proto/if_tcl.pro \
src/typemap \ src/typemap \
@@ -369,7 +379,7 @@ SRC_MAC = \
src/os_mac.h \ src/os_mac.h \
src/os_mac.rsr.hqx \ src/os_mac.rsr.hqx \
src/os_mac_conv.c \ src/os_mac_conv.c \
src/os_macosx.c \ src/os_macosx.m \
src/proto/gui_mac.pro \ src/proto/gui_mac.pro \
src/proto/os_mac_conv.pro \ src/proto/os_mac_conv.pro \
@@ -654,13 +664,12 @@ EXTRA = \
farsi/fonts/*/far-* \ farsi/fonts/*/far-* \
runtime/vimlogo.xpm \ runtime/vimlogo.xpm \
src/swis.s \ src/swis.s \
src/tee/Makefile* \ src/tee/Makefile \
src/tee/tee.c \ src/tee/tee.c \
csdpmi4b.zip \ csdpmi4b.zip \
# generic language files # generic language files
LANG_GEN = \ LANG_GEN = \
README_lang.txt \
runtime/doc/*-fr.1 \ runtime/doc/*-fr.1 \
runtime/doc/*-fr.UTF-8.1 \ runtime/doc/*-fr.UTF-8.1 \
runtime/doc/*-it.1 \ runtime/doc/*-it.1 \
@@ -678,14 +687,19 @@ LANG_GEN = \
runtime/tutor/tutor.utf-8 \ runtime/tutor/tutor.utf-8 \
runtime/tutor/tutor.?? \ runtime/tutor/tutor.?? \
runtime/tutor/tutor.??.* \ runtime/tutor/tutor.??.* \
runtime/tutor/tutor.bar \
runtime/tutor/tutor.bar.* \
runtime/spell/README.txt \ runtime/spell/README.txt \
runtime/spell/??/*.diff \ runtime/spell/??/*.diff \
runtime/spell/??/main.aap \ runtime/spell/??/main.aap \
runtime/spell/tet/*.diff \
runtime/spell/tet/main.aap \
runtime/spell/check/main.aap \
runtime/spell/check/*.aff \
runtime/spell/check/*.dic \
runtime/spell/yi/README.txt \ runtime/spell/yi/README.txt \
runtime/spell/main.aap \ runtime/spell/main.aap \
runtime/spell/cleanadd.vim \
runtime/spell/*.vim \ runtime/spell/*.vim \
runtime/spell/fixdup \
# generic language files, binary # generic language files, binary
LANG_GEN_BIN = \ LANG_GEN_BIN = \

232
Makefile
View File

@@ -3,8 +3,10 @@
# 2. Creating the various distribution files. # 2. Creating the various distribution files.
# 1. Using this Makefile without an argument will compile Vim for Unix. #########################################################################
# 1. Starting the compilation of Vim for Unix.
# #
# Using this Makefile without an argument will compile Vim for Unix.
# "make install" is also possible. # "make install" is also possible.
# #
# NOTE: If this doesn't work properly, first change directory to "src" and use # NOTE: If this doesn't work properly, first change directory to "src" and use
@@ -21,6 +23,9 @@
# has run can result in compiling with $(CC) empty. # has run can result in compiling with $(CC) empty.
first: 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 "Starting make in the src directory."
@echo "If there are problems, cd to the src directory and run make there" @echo "If there are problems, cd to the src directory and run make there"
cd src && $(MAKE) $@ cd src && $(MAKE) $@
@@ -28,25 +33,22 @@ first:
# Some make programs use the last target for the $@ default; put the other # Some make programs use the last target for the $@ default; put the other
# targets separately to always let $@ expand to "first" by default. # 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: 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 "Starting make in the src directory."
@echo "If there are problems, cd to the src directory and run make there" @echo "If there are problems, cd to the src directory and run make there"
cd src && $(MAKE) $@ cd src && $(MAKE) $@
# 2. Create the various distributions: #########################################################################
# 2. Creating the various distribution files.
# #
# TARGET PRODUCES CONTAINS # TARGET PRODUCES CONTAINS
# unixall vim-#.#.tar.bz2 Runtime files and Sources for Unix # unixall vim-#.#.tar.bz2 All runtime files and sources, for Unix
#
# extra vim-#.#-extra.tar.gz Extra source and runtime files
# lang vim-#.#-lang.tar.gz multi-language files
# #
# html vim##html.zip HTML docs # html vim##html.zip HTML docs
# #
# amisrc vim##src.tgz sources for Amiga
# amirt vim##rt.tgz runtime for Amiga
# amibin vim##bin.tgz binary for Amiga
#
# dossrc vim##src.zip sources for MS-DOS # dossrc vim##src.zip sources for MS-DOS
# dosrt vim##rt.zip runtime for MS-DOS # dosrt vim##rt.zip runtime for MS-DOS
# dosbin vim##d16.zip binary for MS-DOS 16 bits # dosbin vim##d16.zip binary for MS-DOS 16 bits
@@ -55,7 +57,11 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
# gvim##.zip binary for GUI Win32 # gvim##.zip binary for GUI Win32
# gvim##ole.zip OLE exe for Win32 GUI # gvim##ole.zip OLE exe for Win32 GUI
# gvim##_s.zip exe for Win32s GUI # gvim##_s.zip exe for Win32s GUI
# doslang vim##lang.zip language files for Win32 #
# OBSOLETE
# amisrc vim##src.tgz sources for Amiga
# amirt vim##rt.tgz runtime for Amiga
# amibin vim##bin.tgz binary for Amiga
# #
# os2bin vim##os2.zip binary for OS/2 # os2bin vim##os2.zip binary for OS/2
# (use RT from dosrt) # (use RT from dosrt)
@@ -64,29 +70,35 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
# #
# All output files are created in the "dist" directory. Existing files are # All output files are created in the "dist" directory. Existing files are
# overwritten! # overwritten!
# To do all this you need the unix, extra and lang archives, and # To do all this you need the Unix archive and compiled binaries.
# compiled binaries.
# Before creating an archive first delete all backup files, *.orig, etc. # Before creating an archive first delete all backup files, *.orig, etc.
MAJOR = 7 MAJOR = 7
MINOR = 2 MINOR = 3
# Uncomment this line if the Win32s version is to be included. # Uncomment this line if the Win32s version is to be included.
DOSBIN_S = dosbin_s DOSBIN_S = dosbin_s
# Uncomment this line if the 16 bit DOS version is to be included.
# DOSBIN_D16 = dosbin_d16
# CHECKLIST for creating a new version: # CHECKLIST for creating a new version:
# #
# - Update Vim version number. For a test version in: src/version.h, Contents, # - Update Vim version number. For a test version in: src/version.h, Contents,
# MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt, # MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt,
# runtime/doc/*.txt and nsis/gvim.nsi. Other things in README_os2.txt. For a # runtime/doc/*.txt and nsis/gvim.nsi. Other things in README_os2.txt. For a
# minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def. # minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def,
# src/gvim.exe.mnf.
# - Adjust the date and other info in src/version.h.
# - Correct included_patches[] in src/version.c. # - Correct included_patches[] in src/version.c.
# - Compile Vim with GTK, Perl, Python, TCL, Ruby, MZscheme (if you can make it # - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
# work), Cscope and "huge" features. Exclude workshop and SNiFF. # you can make it all work), Cscope and "huge" features. Exclude workshop
# and SNiFF.
# - With these features: "make proto" (requires cproto and Motif installed; # - With these features: "make proto" (requires cproto and Motif installed;
# ignore warnings for missing include files, fix problems for syntax errors). # ignore warnings for missing include files, fix problems for syntax errors).
# - With these features: "make depend" (works best with gcc). # - With these features: "make depend" (works best with gcc).
# - "make lint" and check the output (ignore GTK warnings). # - If you have a lint program: "make lint" and check the output (ignore GTK
# warnings).
# - Enable the efence library in "src/Makefile" and run "make test". Disable # - Enable the efence library in "src/Makefile" and run "make test". Disable
# Python and Ruby to avoid trouble with threads (efence is not threadsafe). # Python and Ruby to avoid trouble with threads (efence is not threadsafe).
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script). # - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
@@ -102,10 +114,10 @@ DOSBIN_S = dosbin_s
# the "check" script). # the "check" script).
# - Check compiling on Amiga, MS-DOS and MS-Windows. # - Check compiling on Amiga, MS-DOS and MS-Windows.
# - Delete all *~, *.sw?, *.orig, *.rej files # - Delete all *~, *.sw?, *.orig, *.rej files
# - "make unixall", "make extra", "make lang", "make html" # - "make unixall", "make html"
# - Make diff files against the previous release: "makediff7 7.1 7.2" # - Make diff files against the previous release: "makediff7 7.1 7.2"
# #
# Amiga: # Amiga: (OBSOLETE, Amiga files are no longer distributed)
# - "make amisrc", move the archive to the Amiga and compile: # - "make amisrc", move the archive to the Amiga and compile:
# "make -f Make_manx.mak" (will use "big" features by default). # "make -f Make_manx.mak" (will use "big" features by default).
# - Run the tests: "make -f Make_manx.mak test" # - Run the tests: "make -f Make_manx.mak test"
@@ -114,8 +126,9 @@ DOSBIN_S = dosbin_s
# - "make amirt", "make amibin". # - "make amirt", "make amibin".
# #
# PC: # PC:
# - Run make on Unix to update the ".mo" files.
# - "make dossrc" and "make dosrt". Unpack the archives on a PC. # - "make dossrc" and "make dosrt". Unpack the archives on a PC.
# 16 bit DOS version: # 16 bit DOS version: (OBSOLETE, 16 bit version doesn't build)
# - Set environment for compiling with Borland C++ 3.1. # - Set environment for compiling with Borland C++ 3.1.
# - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that # - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
# case set environment for compiling with Borland C++ 4.0 and do # case set environment for compiling with Borland C++ 4.0 and do
@@ -131,9 +144,11 @@ DOSBIN_S = dosbin_s
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and # - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
# "uninstald32.exe". # "uninstald32.exe".
# Win32 console version: # Win32 console version:
# - Set environment for Visual C++ 2008 Express Edition: "msvc2008.bat". Or, # - Set environment for Visual C++ 2008, e.g.:
# when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the paths # "E:\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat". Or, when using the
# when necessary). For Windows 98 the 2003 version is required. # Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the paths when necessary).
# For Windows 98/ME the 2003 version is required, but then it won't work on
# Windows 7 and 64 bit.
# - "nmake -f Make_mvc.mak" # - "nmake -f Make_mvc.mak"
# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output. # - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
# - Rename the executables to "vimw32.exe", "xxdw32.exe". # - Rename the executables to "vimw32.exe", "xxdw32.exe".
@@ -154,8 +169,8 @@ DOSBIN_S = dosbin_s
# - Delete install.exe and uninstal.exe. # - Delete install.exe and uninstal.exe.
# - If building the Win32s version delete vimrun.exe. # - If building the Win32s version delete vimrun.exe.
# Win32s GUI version: # Win32s GUI version:
# - Set environment for Visual C++ 4.1 (requires a new console window) # - Set environment for Visual C++ 4.1 (requires a new console window):
# - "vcvars32" (use the path for VC 4.1 e:\msdev\bin) # "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1) # - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1) # - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
# - Rename "gvim.exe" to "gvim_w32s.exe". # - Rename "gvim.exe" to "gvim_w32s.exe".
@@ -166,21 +181,23 @@ DOSBIN_S = dosbin_s
# - Copy all the "*.exe" files to where this Makefile is. # - Copy all the "*.exe" files to where this Makefile is.
# - Copy all the "*.pdb" files to where this Makefile is. # - Copy all the "*.pdb" files to where this Makefile is.
# - "make dosbin". # - "make dosbin".
# - Run make on Unix to update the ".mo" files.
# - "make doslang".
# NSIS self installing exe: # NSIS self installing exe:
# - Unpack the doslang archive on the PC. # - To get NSIS see http://nsis.sourceforge.net
# - Make sure gvim_ole.exe, vimd32.exe, vimw32.exe, installw32.exe, # - Make sure gvim_ole.exe, vimd32.exe, vimw32.exe, installw32.exe,
# uninstalw32.exe and xxdw32.exe have been build as mentioned above. # uninstalw32.exe and xxdw32.exe have been build as mentioned above.
# - put gvimext.dll in src/GvimExt and VisVim.dll in src/VisVim (get them # - copy these files (get them from a binary archive or build them):
# from a binary archive or build them) # gvimext.dll in src/GvimExt
# gvimext64.dll in src/GvimExt
# VisVim.dll in src/VisVim
# Note: VisVim needs to be build with MSVC 5, newer versions don't work. # Note: VisVim needs to be build with MSVC 5, newer versions don't work.
# gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
# It is part of vim72.zip as vim72/gvimext.dll.
# - make sure there is a diff.exe two levels up # - make sure there is a diff.exe two levels up
# - go to ../nsis and do "makensis gvim.nsi". # - go to ../nsis and do "makensis gvim.nsi" (takes a few minutes).
# - Copy gvim##.exe to the dist directory. # - Copy gvim##.exe to the dist directory.
# #
# OS/2: # OS/2: (OBSOLETE, OS/2 version is no longer distributed)
# - Unpack the Unix "src", "extra" and "rt" archives. # - Unpack the Unix archive.
# - "make -f Make_os2.mak". # - "make -f Make_os2.mak".
# - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy # - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy
# them to here. # them to here.
@@ -215,8 +232,6 @@ dist/comment:
mkdir dist/comment mkdir dist/comment
COMMENT_RT = comment/$(VERSION)-rt COMMENT_RT = comment/$(VERSION)-rt
COMMENT_RT1 = comment/$(VERSION)-rt1
COMMENT_RT2 = comment/$(VERSION)-rt2
COMMENT_D16 = comment/$(VERSION)-bin-d16 COMMENT_D16 = comment/$(VERSION)-bin-d16
COMMENT_D32 = comment/$(VERSION)-bin-d32 COMMENT_D32 = comment/$(VERSION)-bin-d32
COMMENT_W32 = comment/$(VERSION)-bin-w32 COMMENT_W32 = comment/$(VERSION)-bin-w32
@@ -227,17 +242,10 @@ COMMENT_SRC = comment/$(VERSION)-src
COMMENT_OS2 = comment/$(VERSION)-bin-os2 COMMENT_OS2 = comment/$(VERSION)-bin-os2
COMMENT_HTML = comment/$(VERSION)-html COMMENT_HTML = comment/$(VERSION)-html
COMMENT_FARSI = comment/$(VERSION)-farsi COMMENT_FARSI = comment/$(VERSION)-farsi
COMMENT_LANG = comment/$(VERSION)-lang
dist/$(COMMENT_RT): dist/comment dist/$(COMMENT_RT): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT) echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT)
dist/$(COMMENT_RT1): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) runtime files (PART 1) for MS-DOS and MS-Windows" > dist/$(COMMENT_RT1)
dist/$(COMMENT_RT2): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) runtime files (PART 2) for MS-DOS and MS-Windows" > dist/$(COMMENT_RT2)
dist/$(COMMENT_D16): dist/comment dist/$(COMMENT_D16): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16) echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16)
@@ -268,9 +276,6 @@ dist/$(COMMENT_HTML): dist/comment
dist/$(COMMENT_FARSI): dist/comment dist/$(COMMENT_FARSI): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) Farsi language files" > dist/$(COMMENT_FARSI) echo "Vim - Vi IMproved - v$(VDOT) Farsi language files" > dist/$(COMMENT_FARSI)
dist/$(COMMENT_LANG): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) MS-Windows language files" > dist/$(COMMENT_LANG)
unixall: dist prepare unixall: dist prepare
-rm -f dist/$(VIMVER).tar.bz2 -rm -f dist/$(VIMVER).tar.bz2
-rm -rf dist/$(VIMRTDIR) -rm -rf dist/$(VIMRTDIR)
@@ -286,6 +291,8 @@ unixall: dist prepare
$(SRC_ALL) \ $(SRC_ALL) \
$(SRC_UNIX) \ $(SRC_UNIX) \
$(SRC_DOS_UNIX) \ $(SRC_DOS_UNIX) \
$(EXTRA) \
$(LANG_SRC) \
| (cd dist/$(VIMRTDIR); tar xf -) | (cd dist/$(VIMRTDIR); tar xf -)
# Need to use a "distclean" config.mk file # Need to use a "distclean" config.mk file
cp -f src/config.mk.dist dist/$(VIMRTDIR)/src/auto/config.mk cp -f src/config.mk.dist dist/$(VIMRTDIR)/src/auto/config.mk
@@ -293,26 +300,6 @@ unixall: dist prepare
touch dist/$(VIMRTDIR)/src/auto/config.h touch dist/$(VIMRTDIR)/src/auto/config.h
# Make sure configure is newer than config.mk to force it to be generated # Make sure configure is newer than config.mk to force it to be generated
touch dist/$(VIMRTDIR)/src/configure touch dist/$(VIMRTDIR)/src/configure
cd dist && tar cf $(VIMVER).tar $(VIMRTDIR)
bzip2 dist/$(VIMVER).tar
extra: dist prepare
-rm -f dist/$(VIMVER)-extra.tar.gz
-rm -rf dist/$(VIMRTDIR)
mkdir dist/$(VIMRTDIR)
tar cf - \
$(EXTRA) \
| (cd dist/$(VIMRTDIR); tar xf -)
cd dist && tar cf $(VIMVER)-extra.tar $(VIMRTDIR)
gzip -9 dist/$(VIMVER)-extra.tar
lang: dist prepare
-rm -f dist/$(VIMVER)-lang.tar.gz
-rm -rf dist/$(VIMRTDIR)
mkdir dist/$(VIMRTDIR)
tar cf - \
$(LANG_SRC) \
| (cd dist/$(VIMRTDIR); tar xf -)
# Make sure ja.sjis.po is newer than ja.po to avoid it being regenerated. # Make sure ja.sjis.po is newer than ja.po to avoid it being regenerated.
# Same for cs.cp1250.po, pl.cp1250.po and sk.cp1250.po. # Same for cs.cp1250.po, pl.cp1250.po and sk.cp1250.po.
touch dist/$(VIMRTDIR)/src/po/ja.sjis.po touch dist/$(VIMRTDIR)/src/po/ja.sjis.po
@@ -322,9 +309,11 @@ lang: dist prepare
touch dist/$(VIMRTDIR)/src/po/zh_CN.cp936.po touch dist/$(VIMRTDIR)/src/po/zh_CN.cp936.po
touch dist/$(VIMRTDIR)/src/po/ru.cp1251.po touch dist/$(VIMRTDIR)/src/po/ru.cp1251.po
touch dist/$(VIMRTDIR)/src/po/uk.cp1251.po touch dist/$(VIMRTDIR)/src/po/uk.cp1251.po
cd dist && tar cf $(VIMVER)-lang.tar $(VIMRTDIR) # Create the archive.
gzip -9 dist/$(VIMVER)-lang.tar cd dist && tar cf $(VIMVER).tar $(VIMRTDIR)
bzip2 dist/$(VIMVER).tar
# Amiga runtime - OBSOLETE
amirt: dist prepare amirt: dist prepare
-rm -f dist/vim$(VERSION)rt.tar.gz -rm -f dist/vim$(VERSION)rt.tar.gz
-rm -rf dist/Vim -rm -rf dist/Vim
@@ -347,6 +336,7 @@ amirt: dist prepare
gzip -9 dist/vim$(VERSION)rt.tar gzip -9 dist/vim$(VERSION)rt.tar
mv dist/vim$(VERSION)rt.tar.gz dist/vim$(VERSION)rt.tgz mv dist/vim$(VERSION)rt.tar.gz dist/vim$(VERSION)rt.tgz
# Amiga binaries - OBSOLETE
amibin: dist prepare amibin: dist prepare
-rm -f dist/vim$(VERSION)bin.tar.gz -rm -f dist/vim$(VERSION)bin.tar.gz
-rm -rf dist/Vim -rm -rf dist/Vim
@@ -364,6 +354,7 @@ amibin: dist prepare
gzip -9 dist/vim$(VERSION)bin.tar gzip -9 dist/vim$(VERSION)bin.tar
mv dist/vim$(VERSION)bin.tar.gz dist/vim$(VERSION)bin.tgz mv dist/vim$(VERSION)bin.tar.gz dist/vim$(VERSION)bin.tgz
# Amiga sources - OBSOLETE
amisrc: dist prepare amisrc: dist prepare
-rm -f dist/vim$(VERSION)src.tar.gz -rm -f dist/vim$(VERSION)src.tar.gz
-rm -rf dist/Vim -rm -rf dist/Vim
@@ -384,15 +375,41 @@ amisrc: dist prepare
no_title.vim: Makefile no_title.vim: Makefile
echo "set notitle noicon nocp nomodeline viminfo=" >no_title.vim echo "set notitle noicon nocp nomodeline viminfo=" >no_title.vim
# MS-DOS sources
dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
-rm -rf dist/vim$(VERSION)src.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(SRC_ALL) \
$(SRC_DOS) \
$(SRC_AMI_DOS) \
$(SRC_DOS_UNIX) \
runtime/doc/uganda.nsis.txt \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
rmdir dist/vim/$(VIMRTDIR)/runtime
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
tar cf - \
$(SRC_DOS_BIN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC)
runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt
cd runtime/doc && $(MAKE) uganda.nsis.txt
dosrt: dist dist/$(COMMENT_RT) dosrt_unix2dos dosrt: dist dist/$(COMMENT_RT) dosrt_unix2dos
-rm -rf dist/vim$(VERSION)rt.zip -rm -rf dist/vim$(VERSION)rt.zip
cd dist && zip -9 -rD -z vim$(VERSION)rt.zip vim <$(COMMENT_RT) cd dist && zip -9 -rD -z vim$(VERSION)rt.zip vim <$(COMMENT_RT)
# Split in two parts to avoid a "argument list too long" error. # Split in two parts to avoid an "argument list too long" error.
dosrt_unix2dos: dist prepare no_title.vim dosrt_unix2dos: dist prepare no_title.vim
-rm -rf dist/vim -rm -rf dist/vim
mkdir dist/vim mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR) mkdir dist/vim/$(VIMRTDIR)
mkdir dist/vim/$(VIMRTDIR)/lang
cd src && MAKEMO=yes $(MAKE) languages
tar cf - \ tar cf - \
$(RT_ALL) \ $(RT_ALL) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
@@ -403,7 +420,7 @@ dosrt_unix2dos: dist prepare no_title.vim
$(RT_AMI_DOS) \ $(RT_AMI_DOS) \
$(LANG_GEN) \ $(LANG_GEN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \; find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
tar cf - \ tar cf - \
$(RT_UNIX_DOS_BIN) \ $(RT_UNIX_DOS_BIN) \
$(RT_ALL_BIN) \ $(RT_ALL_BIN) \
@@ -412,6 +429,18 @@ dosrt_unix2dos: dist prepare no_title.vim
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR) mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
rmdir dist/vim/$(VIMRTDIR)/runtime rmdir dist/vim/$(VIMRTDIR)/runtime
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
# Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
# zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
for i in $(LANG_DOS); do \
if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo" -a "$$i" != "src/po/uk.mo"; then \
n=`echo $$i | sed -e "s+src/po/\([-a-zA-Z0-9_]*\(.UTF-8\)*\)\(.sjis\)*\(.cp1250\)*\(.cp1251\)*\(.cp936\)*.mo+\1+"`; \
mkdir dist/vim/$(VIMRTDIR)/lang/$$n; \
mkdir dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES; \
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
fi \
done
cp libintl.dll dist/vim/$(VIMRTDIR)/
# Convert runtime files from Unix fileformat to dos fileformat. # Convert runtime files from Unix fileformat to dos fileformat.
@@ -421,7 +450,7 @@ runtime_unix2dos: dosrt_unix2dos
cd dist/vim/$(VIMRTDIR); tar cf - * \ cd dist/vim/$(VIMRTDIR); tar cf - * \
| (cd ../../../runtime/dos; tar xf -) | (cd ../../../runtime/dos; tar xf -)
dosbin: prepare dosbin_gvim dosbin_w32 dosbin_d32 dosbin_d16 dosbin_ole $(DOSBIN_S) dosbin: prepare dosbin_gvim dosbin_w32 dosbin_d32 dosbin_ole $(DOSBIN_S) $(DOSBIN_D16)
# make Win32 gvim # make Win32 gvim
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM) dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
@@ -432,7 +461,7 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \; find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
@@ -451,7 +480,7 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \; find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
@@ -468,7 +497,7 @@ dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \; find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
@@ -485,7 +514,7 @@ dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \; find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
@@ -501,7 +530,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \; find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
@@ -523,7 +552,7 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \; find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp README_w32s.txt dist/vim/$(VIMRTDIR) cp README_w32s.txt dist/vim/$(VIMRTDIR)
@@ -531,53 +560,6 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S) cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
# make Win32 lang archive
doslang: dist prepare no_title.vim dist/$(COMMENT_LANG)
-rm -rf dist/vim$(VERSION)lang.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
mkdir dist/vim/$(VIMRTDIR)/lang
cd src && MAKEMO=yes $(MAKE) languages
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
# Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
# zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
for i in $(LANG_DOS); do \
if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo" -a "$$i" != "src/po/uk.mo"; then \
n=`echo $$i | sed -e "s+src/po/\([-a-zA-Z0-9_]*\(.UTF-8\)*\)\(.sjis\)*\(.cp1250\)*\(.cp1251\)*\(.cp936\)*.mo+\1+"`; \
mkdir dist/vim/$(VIMRTDIR)/lang/$$n; \
mkdir dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES; \
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
fi \
done
cp libintl.dll dist/vim/$(VIMRTDIR)/
cd dist && zip -9 -rD -z vim$(VERSION)lang.zip vim <$(COMMENT_LANG)
# MS-DOS sources
dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
-rm -rf dist/vim$(VERSION)src.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(SRC_ALL) \
$(SRC_DOS) \
$(SRC_AMI_DOS) \
$(SRC_DOS_UNIX) \
runtime/doc/uganda.nsis.txt \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
rmdir dist/vim/$(VIMRTDIR)/runtime
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
tar cf - \
$(SRC_DOS_BIN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC)
runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt
cd runtime/doc && $(MAKE) uganda.nsis.txt
os2bin: dist no_title.vim dist/$(COMMENT_OS2) os2bin: dist no_title.vim dist/$(COMMENT_OS2)
-rm -rf dist/vim$(VERSION)os2.zip -rm -rf dist/vim$(VERSION)os2.zip
-rm -rf dist/vim -rm -rf dist/vim
@@ -586,7 +568,7 @@ os2bin: dist no_title.vim dist/$(COMMENT_OS2)
tar cf - \ tar cf - \
$(BIN_OS2) \ $(BIN_OS2) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \; find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimos2.exe dist/vim/$(VIMRTDIR)/vim.exe cp vimos2.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdos2.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdos2.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp teeos2.exe dist/vim/$(VIMRTDIR)/tee.exe cp teeos2.exe dist/vim/$(VIMRTDIR)/tee.exe

View File

@@ -1,4 +1,4 @@
README.txt for version 7.2 of Vim: Vi IMproved. README.txt for version 7.3 of Vim: Vi IMproved.
WHAT IS VIM WHAT IS VIM
@@ -9,13 +9,13 @@ on-line help, spell checking, filename completion, block operations, etc.
There is also a Graphical User Interface (GUI) available. See There is also a Graphical User Interface (GUI) available. See
"runtime/doc/vi_diff.txt" for differences with Vi. "runtime/doc/vi_diff.txt" for differences with Vi.
This editor is very useful for editing programs and other plain ASCII files. This editor is very useful for editing programs and other plain text files.
All commands are given with normal keyboard characters, so those who can type All commands are given with normal keyboard characters, so those who can type
with ten fingers can work very fast. Additionally, function keys can be with ten fingers can work very fast. Additionally, function keys can be
defined by the user, and the mouse can be used. defined by the user, and the mouse can be used.
Vim currently runs under Amiga DOS, MS-DOS, MS-Windows 95/98/Me/NT/2000/XP, Vim runs under Amiga DOS, MS-DOS, MS-Windows (95, 98, Me, NT, 2000, XP, Vista,
Atari MiNT, Macintosh, BeOS, VMS, RISC OS, OS/2 and almost all flavours of 7), Atari MiNT, Macintosh, BeOS, VMS, RISC OS, OS/2 and almost all flavours of
UNIX. Porting to other systems should not be very difficult. UNIX. Porting to other systems should not be very difficult.
@@ -32,19 +32,19 @@ an overview of currently available distributions.
DOCUMENTATION DOCUMENTATION
The vim tutor is a one hour training course for beginners. Mostly it can be
started as "vimtutor". See ":help tutor" for more information.
The best is to use ":help" in Vim. If you don't have an executable yet, read The best is to use ":help" in Vim. If you don't have an executable yet, read
"runtime/doc/help.txt". It contains pointers to the other documentation "runtime/doc/help.txt". It contains pointers to the other documentation
files. The User Manual reads like a book and is recommended to learn to use files. The User Manual reads like a book and is recommended to learn to use
Vim. See ":help user-manual". Vim. See ":help user-manual".
The vim tutor is a one hour training course for beginners. Mostly it can be
started as "vimtutor". See ":help tutor" for more information.
COPYING COPYING
Vim is Charityware. You can use and copy it as much as you like, but you are Vim is Charityware. You can use and copy it as much as you like, but you are
encouraged to make a donation to orphans in Uganda. Please read the file encouraged to make a donation to help orphans in Uganda. Please read the file
"runtime/doc/uganda.txt" for details (do ":help uganda" inside Vim). "runtime/doc/uganda.txt" for details (do ":help uganda" inside Vim).
Summary of the license: There are no restrictions on using or distributing an Summary of the license: There are no restrictions on using or distributing an
@@ -86,6 +86,8 @@ README_os2.txt OS/2
README_mac.txt Macintosh README_mac.txt Macintosh
README_vms.txt VMS README_vms.txt VMS
There are more README_*.txt files, depending on the distribution you used.
INFORMATION INFORMATION
@@ -98,39 +100,12 @@ If you have problems, have a look at the Vim FAQ:
Send bug reports to: Send bug reports to:
Bram Moolenaar <Bram@vim.org> Bram Moolenaar <Bram@vim.org>
There are five mailing lists for Vim: There are several mailing lists for Vim, see http://www.vim.org/maillist.php.
<vim@vim.org>
For discussions about using existing versions of Vim: Useful mappings,
questions, answers, where to get a specific version, etc.
<vim-dev@vim.org>
For discussions about changing Vim: New features, porting, beta-test
versions, etc.
<vim-announce@vim.org>
Announcements about new versions of Vim; also beta-test versions and
ports to different systems.
<vim-multibyte@vim.org>
For discussions about using and improving the multi-byte aspects of
Vim: XIM, Hangul, fontset, etc.
<vim-mac@vim.org>
For discussions about using and improving Vim on the Macintosh.
For more info and URLs of the archives see "http://www.vim.org/maillist.php".
NOTE:
- You can only send messages to these lists if you have subscribed!
- You need to send the messages from the same location as where you subscribed
from (to avoid spam mail).
- Maximum message size is 40000 characters.
If you want to join a maillist, send a message to
<vim-help@vim.org>
Make sure that your "From:" address is correct. Then the list server will
send you a help message.
MAIN AUTHOR MAIN AUTHOR
Send any other comments, patches, pizza and suggestions to: Send any other comments, patches, flowers and suggestions to:
Bram Moolenaar E-mail: Bram@vim.org Bram Moolenaar E-mail: Bram@vim.org
Finsterruetihof 1 Finsterruetihof 1

View File

@@ -1,4 +1,4 @@
README_ami.txt for version 7.2 of Vim: Vi IMproved. README_ami.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on Amiga systems. This file explains the installation of Vim on Amiga systems.
See README.txt for general information about Vim. See README.txt for general information about Vim.

View File

@@ -1,4 +1,4 @@
README_amibin.txt for version 7.2 of Vim: Vi IMproved. README_amibin.txt for version 7.3 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga. See "README_ami.txt" for installation instructions for the Amiga.

View File

@@ -1,4 +1,4 @@
README_amisrc.txt for version 7.2 of Vim: Vi IMproved. README_amisrc.txt for version 7.3 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga. See "README_ami.txt" for installation instructions for the Amiga.

View File

@@ -1,19 +1,19 @@
README_bindos.txt for version 7.2 of Vim: Vi IMproved. README_bindos.txt for version 7.3 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim72rt.zip). These files are in the runtime archive (vim73rt.zip).
There are several binary distributions of Vim for the PC. You would normally There are several binary distributions of Vim for the PC. You would normally
pick only one of them, but it's also possible to install several. pick only one of them, but it's also possible to install several.
These ones are available (the version number may differ): These ones are available (the version number may differ):
vim72d16.zip 16 bit DOS version vim73d16.zip 16 bit DOS version
vim72d32.zip 32 bit DOS version vim73d32.zip 32 bit DOS version
vim72w32.zip Windows 95/98/NT/etc. console version vim73w32.zip Windows 95/98/NT/etc. console version
gvim72.zip Windows 95/98/NT/etc. GUI version gvim73.zip Windows 95/98/NT/etc. GUI version
gvim72ole.zip Windows 95/98/NT/etc. GUI version with OLE gvim73ole.zip Windows 95/98/NT/etc. GUI version with OLE
gvim72_s.zip Windows 3.1 GUI version gvim73_s.zip Windows 3.1 GUI version
You MUST also get the runtime archive (vim72rt.zip). You MUST also get the runtime archive (vim73rt.zip).
The sources are also available (vim72src.zip). The sources are also available (vim73src.zip).

View File

@@ -1,4 +1,4 @@
README_dos.txt for version 7.2 of Vim: Vi IMproved. README_dos.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on MS-DOS and MS-Windows systems. This file explains the installation of Vim on MS-DOS and MS-Windows systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
@@ -47,13 +47,13 @@ These are the normal steps to install Vim from the .zip archives:
Binary and runtime Vim archives are normally unpacked in the same location, Binary and runtime Vim archives are normally unpacked in the same location,
on top of each other. on top of each other.
2. Unpack the zip archives. This will create a new directory "vim\vim72", 2. Unpack the zip archives. This will create a new directory "vim\vim73",
in which all the distributed Vim files are placed. Since the directory in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite name includes the version number, it is unlikely that you overwrite
existing files. existing files.
Examples: Examples:
pkunzip -d gvim72.zip pkunzip -d gvim73.zip
unzip vim72w32.zip unzip vim73w32.zip
You need to unpack the runtime archive and at least one of the binary You need to unpack the runtime archive and at least one of the binary
archives. When using more than one binary version, be careful not to archives. When using more than one binary version, be careful not to
@@ -69,7 +69,7 @@ These are the normal steps to install Vim from the .zip archives:
archive and follow the instructions in the documentation. archive and follow the instructions in the documentation.
3. Change to the new directory: 3. Change to the new directory:
cd vim\vim72 cd vim\vim73
Run the "install.exe" program. It will ask you a number of questions about Run the "install.exe" program. It will ask you a number of questions about
how you would like to have your Vim setup. Among these are: how you would like to have your Vim setup. Among these are:
- You can tell it to write a "_vimrc" file with your preferences in the - You can tell it to write a "_vimrc" file with your preferences in the
@@ -80,8 +80,8 @@ These are the normal steps to install Vim from the .zip archives:
console or in a shell. You can select one of the directories in your console or in a shell. You can select one of the directories in your
$PATH. If you skip this, you can add Vim to the search path manually: $PATH. If you skip this, you can add Vim to the search path manually:
The simplest is to add a line to your autoexec.bat. Examples: The simplest is to add a line to your autoexec.bat. Examples:
set path=%path%;C:\vim\vim72 set path=%path%;C:\vim\vim73
set path=%path%;D:\editors\vim\vim72 set path=%path%;D:\editors\vim\vim73
- Create entries for Vim on the desktop and in the Start menu. - Create entries for Vim on the desktop and in the Start menu.
That's it! That's it!
@@ -93,8 +93,8 @@ Remarks:
won't show a menubar. Then you need to set the $VIM environment variable to won't show a menubar. Then you need to set the $VIM environment variable to
point to the top directory of your Vim files. Example: point to the top directory of your Vim files. Example:
set VIM=C:\editors\vim set VIM=C:\editors\vim
Vim version 6.0 will look for your vimrc file in $VIM, and for the runtime Vim version 7.3 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim72. See ":help $VIM" for more information. files in $VIM/vim73. See ":help $VIM" for more information.
- To avoid confusion between distributed files of different versions and your - To avoid confusion between distributed files of different versions and your
own modified vim scripts, it is recommended to use this directory layout: own modified vim scripts, it is recommended to use this directory layout:
@@ -105,14 +105,14 @@ Remarks:
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
C:\vim\... Other files you made. C:\vim\... Other files you made.
Distributed files: Distributed files:
C:\vim\vim72\vim.exe The Vim version 6.0 executable. C:\vim\vim73\vim.exe The Vim version 7.3 executable.
C:\vim\vim72\doc\*.txt The version 6.0 documentation files. C:\vim\vim73\doc\*.txt The version 7.3 documentation files.
C:\vim\vim72\bugreport.vim A Vim version 6.0 script. C:\vim\vim73\bugreport.vim A Vim version 7.3 script.
C:\vim\vim72\... Other version 6.0 distributed files. C:\vim\vim73\... Other version 7.3 distributed files.
In this case the $VIM environment variable would be set like this: In this case the $VIM environment variable would be set like this:
set VIM=C:\vim set VIM=C:\vim
Then $VIMRUNTIME will automatically be set to "$VIM\vim72". Don't add Then $VIMRUNTIME will automatically be set to "$VIM\vim73". Don't add
"vim72" to $VIM, that won't work. "vim73" to $VIM, that won't work.
- You can put your Vim executable anywhere else. If the executable is not - You can put your Vim executable anywhere else. If the executable is not
with the other Vim files, you should set $VIM. The simplest is to add a line with the other Vim files, you should set $VIM. The simplest is to add a line
@@ -136,8 +136,8 @@ Remarks:
Select Properties. Select Properties.
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the 5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
Vim executable. Examples: Vim executable. Examples:
C:\command.com /c C:\vim\vim72\vim.exe C:\command.com /c C:\vim\vim73\vim.exe
C:\command.com /c D:\editors\vim\vim72\vim.exe C:\command.com /c D:\editors\vim\vim73\vim.exe
6. Select the font, window size, etc. that you like. If this isn't 6. Select the font, window size, etc. that you like. If this isn't
possible, select "Advanced" in the Program tab, and deselect "MS-DOS possible, select "Advanced" in the Program tab, and deselect "MS-DOS
mode". mode".

View File

@@ -1,61 +1,54 @@
README_extra.txt for version 7.2 of Vim: Vi IMproved. README_extra.txt for version 7.3 of Vim: Vi IMproved.
The extra archive of Vim is to be used in combination with the source archive These extra files of Vim are for special purposes. This README explains what
(vim-7.0-src.tar.gz). The extra archive is useless without it. the files are for. For general information about Vim, see the "README.txt"
file.
For more information, see the "README.txt" file that comes with the runtime
archive (vim-7.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive too!
The extra archive plus the source and runtime achives make up the complete
sources of Vim for all systems.
Some of the things that the extra archive contains: farsi/* Files for the Farsi (persian) language. If you don't
know what Farsi is, this is not for you.
Farsi Files for the Farsi (persian) language. If you don't know src/if_sniff.* Interface to SNiFF. If you don't know what SNiFF is,
what Farsi is, this is not for you. this is not for you.
if_sniff Interface to SNiFF. If you don't know what SNiFF is, this is src/os_amiga.* Files for the Amiga port.
not for you.
os_amiga Files for the Amiga port. src/gui_riscos.*
src/os_riscos.* Files for the RISC OS port.
gui_riscos src/gui_beos.*
os_riscos Files for the RISC OS port. src/os_beos.* Files for the BeOS port.
gui_beos src/os_msdos.*
os_beos Files for the BeOS port. src/os_dos.* Files for the MS-DOS port.
os_msdos src/gui_mac.*
os_dos Files for the MS-DOS port. src/os_mac.* Files for the Mac port.
gui_mac src/os_mint.8 Files for the Atari Mint port.
os_mac Files for the Mac port.
os_mint Files for the Atari Mint port. src/os_os2* Files for the OS/2 port.
src/tee/* Extra program for OS/2.
os_os2 Files for the OS/2 port. src/os_vms* Files for the VMS port.
tee Extra program for OS/2.
os_vms Files for the VMS port. src/os_w32*
src/os_win32.* Files for the Win32 port.
os_w32 src/gui_w32.* Files for the Win32 GUI.
os_win32 Files for the Win32 port. src/gui_w48.* Files for the Win32 and Win16 GUI.
src/Make_mvc.mak MS Visual C++ makefile for the Win32 GUI.
runtime/rgb.txt File with color definitions for the Win32 GUI.
gui_w32 Files for the Win32 GUI. src/if_ole.* OLE automation interface, for MS Windows 95 and NT.
gui_w48 Files for the Win32 and Win16 GUI.
Make_mvc.mak MS Visual C++ makefile for the Win32 GUI.
rgb.txt File with color definitions for the Win32 GUI.
if_ole OLE automation interface, for MS Windows 95 and NT. src/VisVim/* Integration of Win32 GUI with MS Visual Developer
Studio.
VisVim Integration of Win32 GUI with MS Visual Developer Studio. src/GvimExt/* DLL for the "Edit with Vim" context menu entry
GvimExt DLL for the "Edit with Vim" context menu entry nsis/* NSIS script to build the self-installing MS-Windows exe
nsis NSIS script to build the self-installing MS-Windows exe runtime/doc/*.man Preprocessed manual pages.
*.man Preprocessed manual pages. runtime/macros/file_select.vim Vim script to browse directories (Unix only).
file_select.vim Vim script to browse directories (Unix only).

View File

@@ -1,5 +0,0 @@
README_lang.txt for version 7.2 of Vim: Vi IMproved.
This file contains files for non-English languages:
- Translated messages.
- Translated menus.

View File

@@ -1,4 +1,4 @@
README_mac.txt for version 7.2 of Vim: Vi IMproved. README_mac.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on Macintosh systems. This file explains the installation of Vim on Macintosh systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.

View File

@@ -1,4 +1,4 @@
README_ole.txt for version 7.2 of Vim: Vi IMproved. README_ole.txt for version 7.3 of Vim: Vi IMproved.
This archive contains gvim.exe with OLE interface and VisVim. This archive contains gvim.exe with OLE interface and VisVim.
This version of gvim.exe can also load a number of interface dynamically (you This version of gvim.exe can also load a number of interface dynamically (you
@@ -16,5 +16,5 @@ Win32 with OLE - "MS-Windows 32 bit GUI version with OLE support"
For further information, type this inside Vim: For further information, type this inside Vim:
:help if_ole :help if_ole
Futhermore, this archive contains VISVIM.DLL. It can be used to integrate Furthermore, this archive contains VISVIM.DLL. It can be used to integrate
the OLE gvim with Microsoft Visual Developer Studio. See VisVim/README.txt. the OLE gvim with Microsoft Visual Developer Studio. See VisVim/README.txt.

View File

@@ -1,32 +1,32 @@
README_os2.txt for version 7.2 of Vim: Vi IMproved. README_os2.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on OS/2 systems. This file explains the installation of Vim on OS/2 systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
NOTE: You will need two archives: NOTE: You will need two archives:
vim72rt.zip contains the runtime files (same as for the PC version) vim73rt.zip contains the runtime files (same as for the PC version)
vim72os2.zip contains the OS/2 executables vim73os2.zip contains the OS/2 executables
1. Go to the directory where you want to put the Vim files. Examples: 1. Go to the directory where you want to put the Vim files. Examples:
cd C:\ cd C:\
cd D:\editors cd D:\editors
2. Unpack the zip archives. This will create a new directory "vim/vim72", 2. Unpack the zip archives. This will create a new directory "vim/vim73",
in which all the distributed Vim files are placed. Since the directory in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite name includes the version number, it is unlikely that you overwrite
existing files. existing files.
Examples: Examples:
pkunzip -d vim72os2.zip pkunzip -d vim73os2.zip
unzip vim72os2.zip unzip vim73os2.zip
After you unpacked the files, you can still move the whole directory tree After you unpacked the files, you can still move the whole directory tree
to another location. to another location.
3. Add the directory where vim.exe is to your path. The simplest is to add a 3. Add the directory where vim.exe is to your path. The simplest is to add a
line to your autoexec.bat. Examples: line to your autoexec.bat. Examples:
set path=%path%;C:\vim\vim72 set path=%path%;C:\vim\vim73
set path=%path%;D:\editors\vim\vim72 set path=%path%;D:\editors\vim\vim73
That's it! That's it!
@@ -41,10 +41,10 @@ Extra remarks:
C:\vim\_viminfo Dynamic info for 'viminfo'. C:\vim\_viminfo Dynamic info for 'viminfo'.
C:\vim\... Other files you made. C:\vim\... Other files you made.
Distributed files: Distributed files:
C:\vim\vim72\vim.exe The Vim version 7.1 executable. C:\vim\vim73\vim.exe The Vim version 7.3 executable.
C:\vim\vim72\doc\*.txt The version 7.1 documentation files. C:\vim\vim73\doc\*.txt The version 7.3 documentation files.
C:\vim\vim72\bugreport.vim A Vim version 7.1 script. C:\vim\vim73\bugreport.vim A Vim version 7.3 script.
C:\vim\vim72\... Other version 7.1 distributed files. C:\vim\vim73\... Other version 7.3 distributed files.
In this case the $VIM environment variable would be set like this: In this case the $VIM environment variable would be set like this:
set VIM=C:\vim set VIM=C:\vim

View File

@@ -1,51 +1,84 @@
README_os_390.txt for version 7.2 of Vim: Vi IMproved. README_zOS.txt for version 7.3 of Vim: Vi IMproved.
Welcome to the OS/390 Unix port of VIM. This readme explains how to build Vim on z/OS. Formerly called OS/390.
See "README.txt" for general information about Vim.
ATTENTION: THIS IS AN _ALPHA_ VERSION!!! Most likely there are not many users out there using Vim on z/OS. So chances
I expect you to know how to handle alpha software! are good, that some bugs are still undiscovered.
This port was done by Ralf Schandl <schandl@de.ibm.com>. Getting the source to z/OS:
This port is not maintained or supported by IBM!! ==========================
First get the source code in one big tar file and ftp it a binary to z/OS. If
the tar file is initially compressed with gzip (tar.gz) or bzip2 (tar.bz2)
uncompress it on your PC, as this tools are (most likely) not available on the
mainframe.
For the list of changes see runtime/doc/os_390.txt. To reduce the size of the tar file you might compress it into a zip file. On
z/OS Unix you might have the command "jar" from java to uncompress a zip. Use:
jar xvf <zip file name>
Unpack the tar file on z/OS with
pax -o from=ISO8859-1,to=IBM-1047 -rf vim.tar
Note: The Vim source contains a few bitmaps etc which will be destroyed by
this command, but these files are not needed on zOS (at least not for the
console version).
Compiling: Compiling:
---------- ==========
Note: After the file configure was created via autoconf, it had been Vim can be compiled with or without GUI support. For 7.3 only the compilation
handedited, to make the test for ICEConnectionNumber work. without GUI was tested. Below is a section about compiling with X11 but this
DO NOT run autoconf again! is from an earlier version of Vim.
Without X11: Console only:
-------------
If you build VIM without X11 support, compiling and building is nearly If you build VIM without X11 support, compiling and building is nearly
straightforward. The only restriction is, that you can't call make from the straightforward.
VIM toplevel directory. Change to the src directory first and call make from
there. Here is a what to do: Change to the vim directory and do:
# Don't use c89! # Don't use c89!
# Make additional symbols visible.
# Allow intermixing of compiler options and files. # Allow intermixing of compiler options and files.
$ export CC=cc $ export CC=cc
$ export CFLAGS=-D_ALL_SOURCE
$ export _CC_CCMODE=1 $ export _CC_CCMODE=1
$./configure --enable-max-features --without-x --enable-gui=no $./configure --with-features=big --without-x --enable-gui=no
$ cd src $ cd src
$ make $ make
There may be warnings:
- include files not found (libc, sys/param.h, ...)
- Redeclaration of ... differs from ...
-- just ignore them.
$ make test $ make test
Note: Test 28 will be reported as failed. This is because diff can't This will produce lots of garbage on your screen (including error
compare files containing '\0' characters. Test 11 will fail if you messages). Don't worry.
don't have gzip.
If the test stops at one point in vim (might happen in test 11), just
press :q!
Expected test failures:
11: If you don't have gzip installed
24: test of backslash sequences in regexp are ASCII dependent
42: Multibyte is not supported on z/OS
55: ASCII<->EBCDIC sorting
57: ASCII<->EBCDIC sorting
58: Spell checking is not supported with EBCDIC
71: Blowfish encryption doesn't work
$ make install $ make install
With X11: With X11:
---------
WARNING: This instruction was not tested with Vim 7.3.
There are two ways for building VIM with X11 support. The first way is simple There are two ways for building VIM with X11 support. The first way is simple
and results in a big executable (~13 Mb), the second needs a few additional and results in a big executable (~13 Mb), the second needs a few additional
@@ -54,8 +87,6 @@ you want Motif.
The easy way: The easy way:
$ export CC=cc $ export CC=cc
$ export CFLAGS="-D_ALL_SOURCE -W c,dll"
$ export LDFLAGS="-W l,dll"
$ export _CC_CCMODE=1 $ export _CC_CCMODE=1
$ ./configure --enable-max-features --enable-gui=motif $ ./configure --enable-max-features --enable-gui=motif
$ cd src $ cd src
@@ -65,7 +96,7 @@ you want Motif.
The smarter way: The smarter way:
Make VIM as described above. Then create a file named 'link.sed' with the Make VIM as described above. Then create a file named 'link.sed' with the
following contense: following content (see src/link.390):
s/-lXext *//g s/-lXext *//g
s/-lXmu *//g s/-lXmu *//g
@@ -84,47 +115,3 @@ you want Motif.
See the Makefile and the file link.sh on how link.sed is used. See the Makefile and the file link.sh on how link.sed is used.
Hint:
-----
Use the online help! (See weaknesses below.)
Example:
Enter ':help syntax' and then press <TAB> several times, you will switch
through all help items containing 'syntax'. Press <ENTER> on the one you are
interested at. Or press <Ctrl-D> and you will get a list of all items printed
that contain 'syntax'.
The helpfiles contains cross-references. Links are between '|'. Position the
cursor on them and press <Ctrl-]> to follow this link. Use <Ctrl-T> to jump
back.
Known weaknesses:
-----------------
- You can't call make from the toplevel directory, you have to do a 'cd src'
first. If you do it, make will call configure again. I don't know why and
didn't investigate it, there were more important things to do. If you can
make it work drop me a note.
- The documentation was not updated for this alpha release. It contains lot of
ASCII dependencies, especially in examples.
- Digraphs are dependent on code page 1047. Digraphs are used to enter
characters that normally cannot be entered by an ordinary keyboard.
See ":help digraphs".
- Using 'ga' to show the code of the character under the cursor shows the
correct dec/hex/oct values, but the other informations might be missing or
wrong.
- The sed syntax file doesn't work, it is ASCII dependent.
Bugs:
-----
If you find a bug please inform me (schandl@de.ibm.com), don't disturb Bram
Moolenaar. It's most likely a bug I introduced during porting or some ASCII
dependency I didn't notice.
Feedback:
---------
Feedback welcome! Just drop me a note.

View File

@@ -1,10 +1,10 @@
README_src.txt for version 7.2 of Vim: Vi IMproved. README_src.txt for version 7.3 of Vim: Vi IMproved.
The source archive contains the files needed to compile Vim on Unix systems. The source archive contains the files needed to compile Vim on Unix systems.
It is packed for Unix systems (NL line separator). It is also used for other It is packed for Unix systems (NL line separator). It is also used for other
systems in combination with the extra archive (vim-7.0-extra.tar.gz, in the systems in combination with the extra archive (vim-7.3-extra.tar.gz, in the
"extra" directory of ftp.vim.org). "extra" directory of ftp.vim.org).
For more information, see the README.txt file that comes with the runtime For more information, see the README.txt file that comes with the runtime
archive (vim-7.0-rt.tar.gz). To be able to run Vim you MUST get the runtime archive (vim-7.3-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive too! archive too!

View File

@@ -1,8 +1,8 @@
README_srcdos.txt for version 7.2 of Vim: Vi IMproved. README_srcdos.txt for version 7.3 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim72rt.zip). These files are in the runtime archive (vim73rt.zip).
The DOS source archive contains the files needed to compile Vim on MS-DOS or The DOS source archive contains the files needed to compile Vim on MS-DOS or

View File

@@ -1,4 +1,4 @@
README_unix.txt for version 7.2 of Vim: Vi IMproved. README_unix.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on Unix systems. This file explains the installation of Vim on Unix systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.

View File

@@ -1,4 +1,4 @@
README_vms.txt for version 7.2 of Vim: Vi IMproved. README_vms.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on VMS systems. This file explains the installation of Vim on VMS systems.
See "README.txt" in the runtime archive for information about Vim. See "README.txt" in the runtime archive for information about Vim.

View File

@@ -1,4 +1,4 @@
README_w32s.txt for version 7.2 of Vim: Vi IMproved. README_w32s.txt for version 7.3 of Vim: Vi IMproved.
This archive contains the gvim.exe that was specifically compiled for use in This archive contains the gvim.exe that was specifically compiled for use in
the Win32s subsystem in MS-Windows 3.1 and 3.11. the Win32s subsystem in MS-Windows 3.1 and 3.11.

View File

@@ -1,6 +1,6 @@
# NSIS file to create a self-installing exe for Vim. # NSIS file to create a self-installing exe for Vim.
# It requires NSIS version 2.0 or later. # It requires NSIS version 2.0 or later.
# Last change: 2004 May 02 # Last Change: 2010 Jul 30
# WARNING: if you make changes to this script, look out for $0 to be valid, # WARNING: if you make changes to this script, look out for $0 to be valid,
# because uninstall deletes most files in $0. # because uninstall deletes most files in $0.
@@ -22,17 +22,20 @@
!define HAVE_NLS !define HAVE_NLS
!define VER_MAJOR 7 !define VER_MAJOR 7
!define VER_MINOR 2 !define VER_MINOR 3
# ----------- No configurable settings below this line ----------- # ----------- No configurable settings below this line -----------
!include UpgradeDLL.nsh # for VisVim.dll !include UpgradeDLL.nsh # for VisVim.dll
!include LogicLib.nsh
!include x64.nsh
Name "Vim ${VER_MAJOR}.${VER_MINOR}" Name "Vim ${VER_MAJOR}.${VER_MINOR}"
OutFile gvim${VER_MAJOR}${VER_MINOR}.exe OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
CRCCheck force CRCCheck force
SetCompressor lzma SetCompressor lzma
SetDatablockOptimize on SetDatablockOptimize on
RequestExecutionLevel highest
ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer." ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
DirText "Choose a directory to install Vim (must end in 'vim')" DirText "Choose a directory to install Vim (must end in 'vim')"
@@ -290,13 +293,21 @@ Section "Add an Edit-with-Vim context menu entry"
SetOutPath $0 SetOutPath $0
ClearErrors ClearErrors
SetOverwrite try SetOverwrite try
${If} ${RunningX64}
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
${Else}
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
${EndIf}
IfErrors 0 GvimExtDone IfErrors 0 GvimExtDone
# Can't copy gvimext.dll, create it under another name and rename it on # Can't copy gvimext.dll, create it under another name and rename it on
# next reboot. # next reboot.
GetTempFileName $3 $0 GetTempFileName $3 $0
${If} ${RunningX64}
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
${Else}
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
${EndIf}
Rename /REBOOTOK $3 $0\gvimext.dll Rename /REBOOTOK $3 $0\gvimext.dll
GvimExtDone: GvimExtDone:
@@ -438,8 +449,8 @@ Section Uninstall
AskRemove: AskRemove:
MessageBox MB_YESNO|MB_ICONQUESTION \ MessageBox MB_YESNO|MB_ICONQUESTION \
"Remove all files in your $1\vimfiles directory? \ "Remove all files in your $1\vimfiles directory?$\n \
$\nIf you have created something there that you want to keep, click No" IDNO Fin $\nCAREFUL: If you have created something there that you want to keep, click No" IDNO Fin
RMDir /r $1\vimfiles RMDir /r $1\vimfiles
NoRemove: NoRemove:

View File

@@ -1,15 +1,15 @@
"------------------------------------------------------------------------------ "------------------------------------------------------------------------------
" Description: Perform Ada specific completion & tagging. " Description: Perform Ada specific completion & tagging.
" Language: Ada (2005) " Language: Ada (2005)
" $Id$ " $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
" Maintainer: Martin Krischik <krischik@users.sourceforge.net> " Maintainer: Martin Krischik <krischik@users.sourceforge.net>
" Taylor Venable <taylor@metasyntax.net> " Taylor Venable <taylor@metasyntax.net>
" Neil Bird <neil@fnxweb.com> " Neil Bird <neil@fnxweb.com>
" Ned Okie <nokie@radford.edu> " Ned Okie <nokie@radford.edu>
" $Author$ " $Author: krischik $
" $Date$ " $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6 " Version: 4.6
" $Revision$ " $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $ " $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
" History: 24.05.2006 MK Unified Headers " History: 24.05.2006 MK Unified Headers
" 26.05.2006 MK ' should not be in iskeyword. " 26.05.2006 MK ' should not be in iskeyword.

View File

@@ -1,12 +1,12 @@
"------------------------------------------------------------------------------ "------------------------------------------------------------------------------
" Description: Vim Ada omnicompletion file " Description: Vim Ada omnicompletion file
" Language: Ada (2005) " Language: Ada (2005)
" $Id$ " $Id: adacomplete.vim 887 2008-07-08 14:29:01Z krischik $
" Maintainer: Martin Krischik " Maintainer: Martin Krischik
" $Author$ " $Author: krischik $
" $Date$ " $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6 " Version: 4.6
" $Revision$ " $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $ " $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $
" History: 24.05.2006 MK Unified Headers " History: 24.05.2006 MK Unified Headers
" 26.05.2006 MK improved search for begin of word. " 26.05.2006 MK improved search for begin of word.

View File

@@ -1,7 +1,7 @@
" Vim completion script " Vim completion script
" Language: C " Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2007 Aug 30 " Last Change: 2010 Mar 23
" This function is used for the 'omnifunc' option. " This function is used for the 'omnifunc' option.
@@ -161,7 +161,7 @@ function! ccomplete#Complete(findstart, base)
let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}] let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}]
else else
" Completing "var.", "var.something", etc. " Completing "var.", "var.something", etc.
let res = s:Nextitem(strpart(line, 0, col), items[-1], 0, 1) let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
endif endif
endif endif

View File

@@ -1,13 +1,13 @@
"------------------------------------------------------------------------------ "------------------------------------------------------------------------------
" Description: Vim Ada/Dec Ada compiler file " Description: Vim Ada/Dec Ada compiler file
" Language: Ada (Dec Ada) " Language: Ada (Dec Ada)
" $Id$ " $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik " Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischik <krischik@users.sourceforge.net> " Maintainer: Martin Krischik <krischik@users.sourceforge.net>
" $Author$ " $Author: krischik $
" $Date$ " $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6 " Version: 4.6
" $Revision$ " $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/decada.vim $ " $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/decada.vim $
" History: 21.07.2006 MK New Dec Ada " History: 21.07.2006 MK New Dec Ada
" 15.10.2006 MK Bram's suggestion for runtime integration " 15.10.2006 MK Bram's suggestion for runtime integration

View File

@@ -1,8 +1,8 @@
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" getscript.vim " getscript.vim
" Author: Charles E. Campbell, Jr. " Author: Charles E. Campbell, Jr.
" Date: Jul 10, 2008 " Date: Dec 28, 2009
" Version: 31 " Version: 32
" Installing: :help glvs-install " Installing: :help glvs-install
" Usage: :help glvs " Usage: :help glvs
" "
@@ -12,19 +12,24 @@
" Initialization: {{{1 " Initialization: {{{1
" if you're sourcing this file, surely you can't be " if you're sourcing this file, surely you can't be
" expecting vim to be in its vi-compatible mode! " expecting vim to be in its vi-compatible mode!
if exists("g:loaded_getscript")
finish
endif
let g:loaded_getscript= "v32"
if &cp if &cp
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)" echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
finish finish
endif endif
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of getscript needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo = &cpo let s:keepcpo = &cpo
set cpo&vim set cpo&vim
"DechoTabOn "DechoTabOn
if exists("g:loaded_getscript")
finish
endif
let g:loaded_getscript= "v31"
" --------------------------- " ---------------------------
" Global Variables: {{{1 " Global Variables: {{{1
" --------------------------- " ---------------------------
@@ -40,25 +45,6 @@ if !exists("g:getscript_cygwin")
let g:getscript_cygwin= 0 let g:getscript_cygwin= 0
endif endif
endif endif
" shell quoting character {{{2
if exists("g:netrw_shq") && !exists("g:getscript_shq")
let g:getscript_shq= g:netrw_shq
elseif !exists("g:getscript_shq")
if exists("&shq") && &shq != ""
let g:getscript_shq= &shq
elseif exists("&sxq") && &sxq != ""
let g:getscript_shq= &sxq
elseif has("win32") || has("win95") || has("win64") || has("win16")
if g:getscript_cygwin
let g:getscript_shq= "'"
else
let g:getscript_shq= '"'
endif
else
let g:getscript_shq= "'"
endif
" call Decho("g:getscript_shq<".g:getscript_shq.">")
endif
" wget vs curl {{{2 " wget vs curl {{{2
if !exists("g:GetLatestVimScripts_wget") if !exists("g:GetLatestVimScripts_wget")
@@ -112,7 +98,9 @@ if g:GetLatestVimScripts_allowautoinstall
endif endif
endif endif
if exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim) if exists("g:GetLatestVimScripts_autoinstalldir") && isdirectory(g:GetLatestVimScripts_autoinstalldir)
let s:autoinstall= g:GetLatestVimScripts_autoinstalldir"
elseif exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
let s:autoinstall= $HOME."/".s:dotvim let s:autoinstall= $HOME."/".s:dotvim
endif endif
" call Decho("s:autoinstall<".s:autoinstall.">") " call Decho("s:autoinstall<".s:autoinstall.">")
@@ -165,7 +153,6 @@ fun! getscript#GetLatestVimScripts()
" call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory") " call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory")
return return
endif endif
if filewritable(datadir) != 2 if filewritable(datadir) != 2
echoerr "(getLatestVimScripts) Your ".datadir." isn't writable" echoerr "(getLatestVimScripts) Your ".datadir." isn't writable"
" call Dret("GetLatestVimScripts : non-writable directory<".datadir.">") " call Dret("GetLatestVimScripts : non-writable directory<".datadir.">")
@@ -182,16 +169,24 @@ fun! getscript#GetLatestVimScripts()
" call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">") " call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">")
return return
endif endif
" --------------------
" Passed sanity checks
" --------------------
" call Decho("datadir <".datadir.">") " call Decho("datadir <".datadir.">")
" call Decho("datafile <".datafile.">") " call Decho("datafile <".datafile.">")
" don't let any events interfere (like winmanager's, taglist's, etc) " don't let any event handlers interfere (like winmanager's, taglist's, etc)
let eikeep = &ei let eikeep = &ei
let hlskeep = &hls let hlskeep = &hls
set ei=all hls&vim let acdkeep = &acd
set ei=all hls&vim noacd
" record current directory, change to datadir, open split window with " Edit the datafile (ie. GetLatestVimScripts.dat):
" datafile " 1. record current directory (origdir),
" 2. change directory to datadir,
" 3. split window
" 4. edit datafile
let origdir= getcwd() let origdir= getcwd()
" call Decho("exe cd ".fnameescape(substitute(datadir,'\','/','ge'))) " call Decho("exe cd ".fnameescape(substitute(datadir,'\','/','ge')))
exe "cd ".fnameescape(substitute(datadir,'\','/','ge')) exe "cd ".fnameescape(substitute(datadir,'\','/','ge'))
@@ -207,56 +202,55 @@ fun! getscript#GetLatestVimScripts()
" call Decho("searching plugins for GetLatestVimScripts dependencies") " call Decho("searching plugins for GetLatestVimScripts dependencies")
let lastline = line("$") let lastline = line("$")
" call Decho("lastline#".lastline) " call Decho("lastline#".lastline)
let plugins = split(globpath(&rtp,"plugin/*.vim"),'\n') let firstdir = substitute(&rtp,',.*$','','')
let plugins = split(globpath(firstdir,"plugin/*.vim"),'\n')
let plugins = plugins + split(globpath(firstdir,"AsNeeded/*.vim"),'\n')
let foundscript = 0 let foundscript = 0
let firstdir= ""
" this loop updates the GetLatestVimScripts.dat file
" with dependencies explicitly mentioned in the plugins
" via GetLatestVimScripts: ... lines
" It reads the plugin script at the end of the GetLatestVimScripts.dat
" file, examines it, and then removes it.
for plugin in plugins for plugin in plugins
" call Decho(" ")
" call Decho("plugin<".plugin.">") " call Decho("plugin<".plugin.">")
" don't process plugins in system directories
if firstdir == ""
let firstdir= substitute(plugin,'[/\\][^/\\]\+$','','')
" call Decho("setting firstdir<".firstdir.">")
else
let curdir= substitute(plugin,'[/\\][^/\\]\+$','','')
" call Decho("curdir<".curdir.">")
if curdir != firstdir
" call Decho("skipping subsequent plugins: curdir<".curdir."> != firstdir<".firstdir.">")
break
endif
endif
" read plugin in " read plugin in
" evidently a :r creates a new buffer (the "#" buffer) that is subsequently unused -- bwiping it " evidently a :r creates a new buffer (the "#" buffer) that is subsequently unused -- bwiping it
$ $
" call Decho(" ")
" call Decho(".dependency checking<".plugin."> line$=".line("$")) " call Decho(".dependency checking<".plugin."> line$=".line("$"))
" call Decho("exe silent r ".fnameescape(plugin)) " call Decho("..exe silent r ".fnameescape(plugin))
exe "silent r ".fnameescape(plugin) exe "silent r ".fnameescape(plugin)
exe "silent bwipe ".bufnr("#") exe "silent bwipe ".bufnr("#")
while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0 while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0
let newscript= substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e') let depscript = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
let depscriptid = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\(\d\+\)\s\+.*$','\1','')
let llp1 = lastline+1 let llp1 = lastline+1
" call Decho("..newscript<".newscript.">") " call Decho("..depscript<".depscript.">")
" don't process ""GetLatestVimScripts lines -- those that have been doubly-commented out " found a "GetLatestVimScripts: # #" line in the script;
if newscript !~ '^"' " check if its already in the datafile by searching backwards from llp1,
" found a "GetLatestVimScripts: # #" line in the script; check if its already in the datafile " the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file,
" for the script-id with no wrapping allowed.
let curline = line(".") let curline = line(".")
let noai_script = substitute(newscript,'\s*:AutoInstall:\s*','','e') let noai_script = substitute(depscript,'\s*:AutoInstall:\s*','','e')
exe llp1 exe llp1
let srchline = search('^\s*'.depscriptid.'\s\+\d\+\s\+.*$','bW')
if srchline == 0
" this second search is taken when, for example, a 0 0 scriptname is to be skipped over
let srchline= search('\<'.noai_script.'\>','bW') let srchline= search('\<'.noai_script.'\>','bW')
" call Decho("..noai_script<".noai_script."> srch=".srchline."curline#".line(".")." lastline#".lastline) endif
" call Decho("..noai_script<".noai_script."> depscriptid#".depscriptid." srchline#".srchline." curline#".line(".")." lastline#".lastline)
if srchline == 0 if srchline == 0
" found a new script to permanently include in the datafile " found a new script to permanently include in the datafile
let keep_rega = @a let keep_rega = @a
let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','') let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
echomsg "Appending <".@a."> to ".datafile." for ".depscript
" call Decho("..Appending <".@a."> to ".datafile." for ".depscript)
exe lastline."put a" exe lastline."put a"
echomsg "Appending <".@a."> to ".datafile." for ".newscript
" call Decho("..APPEND (".noai_script.")<".@a."> to GetLatestVimScripts.dat")
let @a = keep_rega let @a = keep_rega
let lastline = llp1 let lastline = llp1
let curline = curline + 1 let curline = curline + 1
@@ -267,9 +261,9 @@ fun! getscript#GetLatestVimScripts()
let curline = curline + 1 let curline = curline + 1
exe curline exe curline
endif
endwhile endwhile
" llp1: last line plus one
let llp1= lastline + 1 let llp1= lastline + 1
" call Decho(".deleting lines: ".llp1.",$d") " call Decho(".deleting lines: ".llp1.",$d")
exe "silent! ".llp1.",$d" exe "silent! ".llp1.",$d"
@@ -282,7 +276,9 @@ fun! getscript#GetLatestVimScripts()
setlocal nomod setlocal nomod
endif endif
" --------------------------------------------------------------------
" Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat " Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat
" --------------------------------------------------------------------
" call Decho("begin: checking out-of-date scripts using datafile<".datafile.">") " call Decho("begin: checking out-of-date scripts using datafile<".datafile.">")
setlocal lz setlocal lz
1 1
@@ -324,6 +320,7 @@ fun! getscript#GetLatestVimScripts()
exe "cd ".fnameescape(substitute(origdir,'\','/','ge')) exe "cd ".fnameescape(substitute(origdir,'\','/','ge'))
let &ei = eikeep let &ei = eikeep
let &hls = hlskeep let &hls = hlskeep
let &acd = acdkeep
setlocal nolz setlocal nolz
" call Dredir("BUFFER TEST (GetLatestVimScripts 2)","ls!") " call Dredir("BUFFER TEST (GetLatestVimScripts 2)","ls!")
" call Dret("GetLatestVimScripts : did ".s:downloads." downloads") " call Dret("GetLatestVimScripts : did ".s:downloads." downloads")
@@ -333,7 +330,7 @@ endfun
" GetOneScript: (Get Latest Vim Script) this function operates {{{1 " GetOneScript: (Get Latest Vim Script) this function operates {{{1
" on the current line, interpreting two numbers and text as " on the current line, interpreting two numbers and text as
" ScriptID, SourceID, and Filename. " ScriptID, SourceID, and Filename.
" It downloads any scripts that have newer versions from vim.sf.net. " It downloads any scripts that have newer versions from vim.sourceforge.net.
fun! s:GetOneScript(...) fun! s:GetOneScript(...)
" call Dfunc("GetOneScript()") " call Dfunc("GetOneScript()")
@@ -391,6 +388,7 @@ fun! s:GetOneScript(...)
" call Decho("fname <".fname.">") " call Decho("fname <".fname.">")
endif endif
" plugin author protection from downloading his/her own scripts atop their latest work
if scriptid == 0 || srcid == 0 if scriptid == 0 || srcid == 0
" When looking for :AutoInstall: lines, skip scripts that have 0 0 scriptname " When looking for :AutoInstall: lines, skip scripts that have 0 0 scriptname
let @a= rega let @a= rega
@@ -416,21 +414,21 @@ fun! s:GetOneScript(...)
" call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid) " call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid)
echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid
" grab a copy of the plugin's vim.sf.net webpage " grab a copy of the plugin's vim.sourceforge.net webpage
let scriptaddr = 'http://vim.sf.net/script.php?script_id='.scriptid let scriptaddr = 'http://vim.sourceforge.net/script.php?script_id='.scriptid
let tmpfile = tempname() let tmpfile = tempname()
let v:errmsg = "" let v:errmsg = ""
" make up to three tries at downloading the description " make up to three tries at downloading the description
let itry= 1 let itry= 1
while itry <= 3 while itry <= 3
" call Decho("try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr) " call Decho(".try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
if has("win32") || has("win16") || has("win95") if has("win32") || has("win16") || has("win95")
" call Decho("new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile).' '.s:Escape(scriptaddr)."|bw!") " call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)."|bw!")
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile).' '.s:Escape(scriptaddr)|bw! new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)|bw!
else else
" call Decho("exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile)." ".s:Escape(scriptaddr)) " call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr))
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile)." ".s:Escape(scriptaddr) exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr)
endif endif
if itry == 1 if itry == 1
exe "silent vsplit ".fnameescape(tmpfile) exe "silent vsplit ".fnameescape(tmpfile)
@@ -495,8 +493,7 @@ fun! s:GetOneScript(...)
let latestsrcid = latestsrcid + 0 let latestsrcid = latestsrcid + 0
" call Decho("srcid=".srcid." latestsrcid=".latestsrcid." sname<".sname.">") " call Decho("srcid=".srcid." latestsrcid=".latestsrcid." sname<".sname.">")
" has the plugin's most-recent srcid increased, which indicates " has the plugin's most-recent srcid increased, which indicates that it has been updated
" that it has been updated
if latestsrcid > srcid if latestsrcid > srcid
" call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."]: need to update <".sname.">") " call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."]: need to update <".sname.">")
@@ -506,65 +503,103 @@ fun! s:GetOneScript(...)
let sname= "NEW_".sname let sname= "NEW_".sname
endif endif
" -----------------------------------------------------------------------------
" the plugin has been updated since we last obtained it, so download a new copy " the plugin has been updated since we last obtained it, so download a new copy
" call Decho("...downloading new <".sname.">") " -----------------------------------------------------------------------------
echomsg "...downloading new <".sname.">" " call Decho(".downloading new <".sname.">")
echomsg ".downloading new <".sname.">"
if has("win32") || has("win16") || has("win95") if has("win32") || has("win16") || has("win95")
" call Decho("new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid)."|q") " call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)."|q")
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid)|q new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)|q
else else
" call Decho("exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id=')) " call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='))
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id=').latestsrcid exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id=').latestsrcid
endif endif
" --------------------------------------------------------------------------
" AutoInstall: only if doautoinstall has been requested by the plugin itself " AutoInstall: only if doautoinstall has been requested by the plugin itself
" --------------------------------------------------------------------------
if doautoinstall if doautoinstall
" call Decho("attempting to do autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname)) " call Decho(" ")
" call Decho("Autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
if filereadable(sname) if filereadable(sname)
" call Decho("exe silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".s:Escape(s:autoinstall)) " call Decho("<".sname."> is readable")
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".s:Escape(s:autoinstall) " call Decho("exe silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall))
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall)
let curdir = escape(substitute(getcwd(),'\','/','ge'),"|[]*'\" #") let curdir = escape(substitute(getcwd(),'\','/','ge'),"|[]*'\" #")
let installdir= curdir."/Installed" let installdir= curdir."/Installed"
if !isdirectory(installdir) if !isdirectory(installdir)
call mkdir(installdir) call mkdir(installdir)
endif endif
" call Decho("curdir<".curdir."> installdir<".installdir.">")
" call Decho("exe cd ".fnameescape(s:autoinstall)) " call Decho("exe cd ".fnameescape(s:autoinstall))
exe "cd ".fnameescape(s:autoinstall) exe "cd ".fnameescape(s:autoinstall)
" determine target directory for moves
let firstdir= substitute(&rtp,',.*$','','')
let pname = substitute(sname,'\..*','.vim','')
" call Decho("determine tgtdir: is <".firstdir.'/AsNeeded/'.pname." readable?")
if filereadable(firstdir.'/AsNeeded/'.pname)
let tgtdir= "AsNeeded"
else
let tgtdir= "plugin"
endif
" call Decho("tgtdir<".tgtdir."> pname<".pname.">")
" decompress " decompress
if sname =~ '\.bz2$' if sname =~ '\.bz2$'
" call Decho("decompress: attempt to bunzip2 ".sname) " call Decho("decompress: attempt to bunzip2 ".sname)
exe "silent !bunzip2 ".s:Escape(sname) exe "silent !bunzip2 ".shellescape(sname)
let sname= substitute(sname,'\.bz2$','','') let sname= substitute(sname,'\.bz2$','','')
" call Decho("decompress: new sname<".sname."> after bunzip2") " call Decho("decompress: new sname<".sname."> after bunzip2")
elseif sname =~ '\.gz$' elseif sname =~ '\.gz$'
" call Decho("decompress: attempt to gunzip ".sname) " call Decho("decompress: attempt to gunzip ".sname)
exe "silent !gunzip ".s:Escape(sname) exe "silent !gunzip ".shellescape(sname)
let sname= substitute(sname,'\.gz$','','') let sname= substitute(sname,'\.gz$','','')
" call Decho("decompress: new sname<".sname."> after gunzip") " call Decho("decompress: new sname<".sname."> after gunzip")
else
" call Decho("no decompression needed")
endif endif
" distribute archive(.zip, .tar, .vba) contents " distribute archive(.zip, .tar, .vba) contents
if sname =~ '\.zip$' if sname =~ '\.zip$'
" call Decho("dearchive: attempt to unzip ".sname) " call Decho("dearchive: attempt to unzip ".sname)
exe "silent !unzip -o ".s:Escape(sname) exe "silent !unzip -o ".shellescape(sname)
elseif sname =~ '\.tar$' elseif sname =~ '\.tar$'
" call Decho("dearchive: attempt to untar ".sname) " call Decho("dearchive: attempt to untar ".sname)
exe "silent !tar -xvf ".s:Escape(sname) exe "silent !tar -xvf ".shellescape(sname)
elseif sname =~ '\.vba$' elseif sname =~ '\.vba$'
" call Decho("dearchive: attempt to handle a vimball: ".sname) " call Decho("dearchive: attempt to handle a vimball: ".sname)
silent 1split silent 1split
if exists("g:vimball_home")
let oldvimballhome= g:vimball_home
endif
let g:vimball_home= s:autoinstall
exe "silent e ".fnameescape(sname) exe "silent e ".fnameescape(sname)
silent so % silent so %
silent q silent q
if exists("oldvimballhome")
let g:vimball_home= oldvimballhome
else
unlet g:vimball_home
endif
else
" call Decho("no dearchiving needed")
endif endif
" ---------------------------------------------
" move plugin to plugin/ or AsNeeded/ directory
" ---------------------------------------------
if sname =~ '.vim$' if sname =~ '.vim$'
" call Decho("dearchive: attempt to simply move ".sname." to plugin") " call Decho("dearchive: attempt to simply move ".sname." to ".tgtdir)
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." plugin" exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".tgtdir
else else
" call Decho("dearchive: move <".sname."> to installdir<".installdir.">") " call Decho("dearchive: move <".sname."> to installdir<".installdir.">")
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".installdir exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".installdir
endif
if tgtdir != "plugin"
" call Decho("exe silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir)
exe "silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir
endif endif
" helptags step " helptags step
@@ -599,20 +634,6 @@ fun! s:GetOneScript(...)
" call Dret("GetOneScript") " call Dret("GetOneScript")
endfun endfun
" ---------------------------------------------------------------------
" s:Escape: makes a string safe&suitable for the shell {{{2
fun! s:Escape(name)
" call Dfunc("s:Escape(name<".a:name.">)")
if exists("*shellescape")
" shellescape() was added by patch 7.0.111
let name= shellescape(a:name)
else
let name= g:getscript_shq . a:name . g:getscript_shq
endif
" call Dret("s:Escape ".name)
return name
endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Restore Options: {{{1 " Restore Options: {{{1
let &cpo= s:keepcpo let &cpo= s:keepcpo

View File

@@ -1,14 +1,14 @@
"------------------------------------------------------------------------------ "------------------------------------------------------------------------------
" Description: Vim Ada/GNAT compiler file " Description: Vim Ada/GNAT compiler file
" Language: Ada (GNAT) " Language: Ada (GNAT)
" $Id$ " $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik " Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k " Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
" Ned Okie <nokie@radford.edu> " Ned Okie <nokie@radford.edu>
" $Author$ " $Author: krischik $
" $Date$ " $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6 " Version: 4.6
" $Revision$ " $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $ " $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $
" History: 24.05.2006 MK Unified Headers " History: 24.05.2006 MK Unified Headers
" 16.07.2006 MK Ada-Mode as vim-ball " 16.07.2006 MK Ada-Mode as vim-ball

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
" netrwFileHandlers: contains various extension-based file handlers for " netrwFileHandlers: contains various extension-based file handlers for
" netrw's browsers' x command ("eXecute launcher") " netrw's browsers' x command ("eXecute launcher")
" Author: Charles E. Campbell, Jr. " Author: Charles E. Campbell, Jr.
" Date: May 30, 2006 " Date: Sep 30, 2008
" Version: 9 " Version: 10
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1 " Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free, " notice is copied with it. Like anything else that's free,
@@ -20,9 +20,15 @@
if exists("g:loaded_netrwFileHandlers") || &cp if exists("g:loaded_netrwFileHandlers") || &cp
finish finish
endif endif
let g:loaded_netrwFileHandlers= "v10"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo= &cpo let s:keepcpo= &cpo
set cpo&vim set cpo&vim
let g:loaded_netrwFileHandlers= "v9"
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" netrwFileHandlers#Invoke: {{{1 " netrwFileHandlers#Invoke: {{{1
@@ -73,10 +79,10 @@ fun! s:NFH_html(pagefile)
if executable("mozilla") if executable("mozilla")
" call Decho("executing !mozilla ".page) " call Decho("executing !mozilla ".page)
exe "!mozilla ".g:netrw_shq.page.g:netrw_shq exe "!mozilla ".shellescape(page,1)
elseif executable("netscape") elseif executable("netscape")
" call Decho("executing !netscape ".page) " call Decho("executing !netscape ".page)
exe "!netscape ".g:netrw_shq..page.g:netrw_shq exe "!netscape ".shellescape(page,1)
else else
" call Dret("s:NFH_html 0") " call Dret("s:NFH_html 0")
return 0 return 0
@@ -96,10 +102,10 @@ fun! s:NFH_htm(pagefile)
if executable("mozilla") if executable("mozilla")
" call Decho("executing !mozilla ".page) " call Decho("executing !mozilla ".page)
exe "!mozilla ".g:netrw_shq.page.g:netrw_shq exe "!mozilla ".shellescape(page,1)
elseif executable("netscape") elseif executable("netscape")
" call Decho("executing !netscape ".page) " call Decho("executing !netscape ".page)
exe "!netscape ".g:netrw_shq.page.g:netrw_shq exe "!netscape ".shellescape(page,1)
else else
" call Dret("s:NFH_htm 0") " call Dret("s:NFH_htm 0")
return 0 return 0
@@ -115,10 +121,10 @@ fun! s:NFH_jpg(jpgfile)
" call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)") " call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")
if executable("gimp") if executable("gimp")
exe "silent! !gimp -s ".g:netrw_shq.a:jpgfile.g:netrw_shq exe "silent! !gimp -s ".shellescape(a:jpgfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE") elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'")) " call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:jpgfile.g:netrw_shq exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:jpgfile,1)
else else
" call Dret("s:NFH_jpg 0") " call Dret("s:NFH_jpg 0")
return 0 return 0
@@ -134,9 +140,9 @@ fun! s:NFH_gif(giffile)
" call Dfunc("s:NFH_gif(giffile<".a:giffile.">)") " call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")
if executable("gimp") if executable("gimp")
exe "silent! !gimp -s ".g:netrw_shq.a:giffile.g:netrw_shq exe "silent! !gimp -s ".shellescape(a:giffile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE") elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:giffile.g:netrw_shq exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:giffile,1)
else else
" call Dret("s:NFH_gif 0") " call Dret("s:NFH_gif 0")
return 0 return 0
@@ -152,9 +158,9 @@ fun! s:NFH_png(pngfile)
" call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)") " call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")
if executable("gimp") if executable("gimp")
exe "silent! !gimp -s ".g:netrw_shq.a:pngfile.g:netrw_shq exe "silent! !gimp -s ".shellescape(a:pngfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE") elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pngfile.g:netrw_shq exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pngfile,1)
else else
" call Dret("s:NFH_png 0") " call Dret("s:NFH_png 0")
return 0 return 0
@@ -170,9 +176,9 @@ fun! s:NFH_pnm(pnmfile)
" call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)") " call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")
if executable("gimp") if executable("gimp")
exe "silent! !gimp -s ".g:netrw_shq.a:pnmfile.g:netrw_shq exe "silent! !gimp -s ".shellescape(a:pnmfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE") elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pnmfile.g:netrw_shq exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pnmfile,1)
else else
" call Dret("s:NFH_pnm 0") " call Dret("s:NFH_pnm 0")
return 0 return 0
@@ -190,7 +196,7 @@ fun! s:NFH_bmp(bmpfile)
if executable("gimp") if executable("gimp")
exe "silent! !gimp -s ".a:bmpfile exe "silent! !gimp -s ".a:bmpfile
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE") elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:bmpfile.g:netrw_shq exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:bmpfile,1)
else else
" call Dret("s:NFH_bmp 0") " call Dret("s:NFH_bmp 0")
return 0 return 0
@@ -205,9 +211,9 @@ endfun
fun! s:NFH_pdf(pdf) fun! s:NFH_pdf(pdf)
" call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)") " call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
if executable("gs") if executable("gs")
exe 'silent! !gs '.g:netrw_shq.a:pdf.g:netrw_shq exe 'silent! !gs '.shellescape(a:pdf,1)
elseif executable("pdftotext") elseif executable("pdftotext")
exe 'silent! pdftotext -nopgbrk '.g:netrw_shq.a:pdf.g:netrw_shq exe 'silent! pdftotext -nopgbrk '.shellescape(a:pdf,1)
else else
" call Dret("s:NFH_pdf 0") " call Dret("s:NFH_pdf 0")
return 0 return 0
@@ -223,7 +229,7 @@ fun! s:NFH_doc(doc)
" call Dfunc("s:NFH_doc(doc<".a:doc.">)") " call Dfunc("s:NFH_doc(doc<".a:doc.">)")
if executable("oowriter") if executable("oowriter")
exe 'silent! !oowriter '.g:netrw_shq.a:doc.g:netrw_shq exe 'silent! !oowriter '.shellescape(a:doc,1)
redraw! redraw!
else else
" call Dret("s:NFH_doc 0") " call Dret("s:NFH_doc 0")
@@ -240,7 +246,7 @@ fun! s:NFH_sxw(sxw)
" call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)") " call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")
if executable("oowriter") if executable("oowriter")
exe 'silent! !oowriter '.g:netrw_shq.a:sxw.g:netrw_shq exe 'silent! !oowriter '.shellescape(a:sxw,1)
redraw! redraw!
else else
" call Dret("s:NFH_sxw 0") " call Dret("s:NFH_sxw 0")
@@ -257,7 +263,7 @@ fun! s:NFH_xls(xls)
" call Dfunc("s:NFH_xls(xls<".a:xls.">)") " call Dfunc("s:NFH_xls(xls<".a:xls.">)")
if executable("oocalc") if executable("oocalc")
exe 'silent! !oocalc '.g:netrw_shq.a:xls.g:netrw_shq exe 'silent! !oocalc '.shellescape(a:xls,1)
redraw! redraw!
else else
" call Dret("s:NFH_xls 0") " call Dret("s:NFH_xls 0")
@@ -274,15 +280,15 @@ fun! s:NFH_ps(ps)
" call Dfunc("s:NFH_ps(ps<".a:ps.">)") " call Dfunc("s:NFH_ps(ps<".a:ps.">)")
if executable("gs") if executable("gs")
" call Decho("exe silent! !gs ".a:ps) " call Decho("exe silent! !gs ".a:ps)
exe "silent! !gs ".g:netrw_shq.a:ps.g:netrw_shq exe "silent! !gs ".shellescape(a:ps,1)
redraw! redraw!
elseif executable("ghostscript") elseif executable("ghostscript")
" call Decho("exe silent! !ghostscript ".a:ps) " call Decho("exe silent! !ghostscript ".a:ps)
exe "silent! !ghostscript ".g:netrw_shq.a:ps.g:netrw_shq exe "silent! !ghostscript ".shellescape(a:ps,1)
redraw! redraw!
elseif executable("gswin32") elseif executable("gswin32")
" call Decho("exe silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq) " call Decho("exe silent! !gswin32 ".shellescape(a:ps,1))
exe "silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq exe "silent! !gswin32 ".shellescape(a:ps,1)
redraw! redraw!
else else
" call Dret("s:NFH_ps 0") " call Dret("s:NFH_ps 0")
@@ -298,16 +304,16 @@ endfun
fun! s:NFH_eps(eps) fun! s:NFH_eps(eps)
" call Dfunc("s:NFH_eps()") " call Dfunc("s:NFH_eps()")
if executable("gs") if executable("gs")
exe "silent! !gs ".g:netrw_shq.a:eps.g:netrw_shq exe "silent! !gs ".shellescape(a:eps,1)
redraw! redraw!
elseif executable("ghostscript") elseif executable("ghostscript")
exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq exe "silent! !ghostscript ".shellescape(a:eps,1)
redraw! redraw!
elseif executable("ghostscript") elseif executable("ghostscript")
exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq exe "silent! !ghostscript ".shellescape(a:eps,1)
redraw! redraw!
elseif executable("gswin32") elseif executable("gswin32")
exe "silent! !gswin32 ".g:netrw_shq.a:eps.g:netrw_shq exe "silent! !gswin32 ".shellescape(a:eps,1)
redraw! redraw!
else else
" call Dret("s:NFH_eps 0") " call Dret("s:NFH_eps 0")

View File

@@ -1,7 +1,7 @@
" netrwSettings.vim: makes netrw settings simpler " netrwSettings.vim: makes netrw settings simpler
" Date: Jul 02, 2008 " Date: Sep 03, 2008
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz> " Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" Version: 12 " Version: 13
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1 " Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
@@ -19,7 +19,13 @@
if exists("g:loaded_netrwSettings") || &cp if exists("g:loaded_netrwSettings") || &cp
finish finish
endif endif
let g:loaded_netrwSettings = "v12" let g:loaded_netrwSettings = "v13"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
echohl Normal
finish
endif
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" NetrwSettings: {{{1 " NetrwSettings: {{{1
@@ -100,6 +106,7 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_browsex_viewer = (not defined)' put = 'let g:netrw_browsex_viewer = (not defined)'
endif endif
put = 'let g:netrw_compress = '.g:netrw_compress put = 'let g:netrw_compress = '.g:netrw_compress
put = 'let g:netrw_cursorline = '.g:netrw_cursorline
let decompressline= line("$") let decompressline= line("$")
put ='let g:netrw_decompress...' put ='let g:netrw_decompress...'
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
@@ -138,6 +145,7 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
put = 'let g:netrw_scpport = '.g:netrw_scpport put = 'let g:netrw_scpport = '.g:netrw_scpport
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
put = 'let g:netrw_sshport = '.g:netrw_sshport put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_timefmt = '.g:netrw_timefmt put = 'let g:netrw_timefmt = '.g:netrw_timefmt
let tmpfileescline= line("$") let tmpfileescline= line("$")

View File

@@ -0,0 +1,606 @@
"python3complete.vim - Omni Completion for python
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.9
" Last Updated: 18 Jun 2009
"
" Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim
"
" Changes
" TODO:
" 'info' item output can use some formatting work
" Add an "unsafe eval" mode, to allow for return type evaluation
" Complete basic syntax along with import statements
" i.e. "import url<c-x,c-o>"
" Continue parsing on invalid line??
"
" v 0.9
" * Fixed docstring parsing for classes and functions
" * Fixed parsing of *args and **kwargs type arguments
" * Better function param parsing to handle things like tuples and
" lambda defaults args
"
" v 0.8
" * Fixed an issue where the FIRST assignment was always used instead of
" using a subsequent assignment for a variable
" * Fixed a scoping issue when working inside a parameterless function
"
"
" v 0.7
" * Fixed function list sorting (_ and __ at the bottom)
" * Removed newline removal from docs. It appears vim handles these better in
" recent patches
"
" v 0.6:
" * Fixed argument completion
" * Removed the 'kind' completions, as they are better indicated
" with real syntax
" * Added tuple assignment parsing (whoops, that was forgotten)
" * Fixed import handling when flattening scope
"
" v 0.5:
" Yeah, I skipped a version number - 0.4 was never public.
" It was a bugfix version on top of 0.3. This is a complete
" rewrite.
"
if !has('python3')
echo "Error: Required vim compiled with +python3"
finish
endif
function! python3complete#Complete(findstart, base)
"findstart = 1 when we need to get the text length
if a:findstart == 1
let line = getline('.')
let idx = col('.')
while idx > 0
let idx -= 1
let c = line[idx]
if c =~ '\w'
continue
elseif ! c =~ '\.'
let idx = -1
break
else
break
endif
endwhile
return idx
"findstart = 0 when we need to return the list of completions
else
"vim no longer moves the cursor upon completion... fix that
let line = getline('.')
let idx = col('.')
let cword = ''
while idx > 0
let idx -= 1
let c = line[idx]
if c =~ '\w' || c =~ '\.'
let cword = c . cword
continue
elseif strlen(cword) > 0 || idx == 0
break
endif
endwhile
execute "py3 vimpy3complete('" . cword . "', '" . a:base . "')"
return g:python3complete_completions
endif
endfunction
function! s:DefPython()
py3 << PYTHONEOF
import sys, tokenize, io, types
from token import NAME, DEDENT, NEWLINE, STRING
debugstmts=[]
def dbg(s): debugstmts.append(s)
def showdbg():
for d in debugstmts: print("DBG: %s " % d)
def vimpy3complete(context,match):
global debugstmts
debugstmts = []
try:
import vim
cmpl = Completer()
cmpl.evalsource('\n'.join(vim.current.buffer),vim.eval("line('.')"))
all = cmpl.get_completions(context,match)
all.sort(key=lambda x:x['abbr'].replace('_','z'))
dictstr = '['
# have to do this for double quoting
for cmpl in all:
dictstr += '{'
for x in cmpl: dictstr += '"%s":"%s",' % (x,cmpl[x])
dictstr += '"icase":0},'
if dictstr[-1] == ',': dictstr = dictstr[:-1]
dictstr += ']'
#dbg("dict: %s" % dictstr)
vim.command("silent let g:python3complete_completions = %s" % dictstr)
#dbg("Completion dict:\n%s" % all)
except vim.error:
dbg("VIM Error: %s" % vim.error)
class Completer(object):
def __init__(self):
self.compldict = {}
self.parser = PyParser()
def evalsource(self,text,line=0):
sc = self.parser.parse(text,line)
src = sc.get_code()
dbg("source: %s" % src)
try: exec(src,self.compldict)
except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1]))
for l in sc.locals:
try: exec(l,self.compldict)
except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l))
def _cleanstr(self,doc):
return doc.replace('"',' ').replace("'",' ')
def get_arguments(self,func_obj):
def _ctor(class_ob):
try: return class_ob.__init__
except AttributeError:
for base in class_ob.__bases__:
rc = _ctor(base)
if rc is not None: return rc
return None
arg_offset = 1
if type(func_obj) == type: func_obj = _ctor(func_obj)
elif type(func_obj) == types.MethodType: arg_offset = 1
else: arg_offset = 0
arg_text=''
if type(func_obj) in [types.FunctionType, types.LambdaType,types.MethodType]:
try:
cd = func_obj.__code__
real_args = cd.co_varnames[arg_offset:cd.co_argcount]
defaults = func_obj.__defaults__ or []
defaults = ["=%s" % name for name in defaults]
defaults = [""] * (len(real_args)-len(defaults)) + defaults
items = [a+d for a,d in zip(real_args,defaults)]
if func_obj.__code__.co_flags & 0x4:
items.append("...")
if func_obj.__code__.co_flags & 0x8:
items.append("***")
arg_text = (','.join(items)) + ')'
except:
dbg("arg completion: %s: %s" % (sys.exc_info()[0],sys.exc_info()[1]))
pass
if len(arg_text) == 0:
# The doc string sometimes contains the function signature
# this works for alot of C modules that are part of the
# standard library
doc = func_obj.__doc__
if doc:
doc = doc.lstrip()
pos = doc.find('\n')
if pos > 0:
sigline = doc[:pos]
lidx = sigline.find('(')
ridx = sigline.find(')')
if lidx > 0 and ridx > 0:
arg_text = sigline[lidx+1:ridx] + ')'
if len(arg_text) == 0: arg_text = ')'
return arg_text
def get_completions(self,context,match):
#dbg("get_completions('%s','%s')" % (context,match))
stmt = ''
if context: stmt += str(context)
if match: stmt += str(match)
try:
result = None
all = {}
ridx = stmt.rfind('.')
if len(stmt) > 0 and stmt[-1] == '(':
result = eval(_sanitize(stmt[:-1]), self.compldict)
doc = result.__doc__
if doc is None: doc = ''
args = self.get_arguments(result)
return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
elif ridx == -1:
match = stmt
all = self.compldict
else:
match = stmt[ridx+1:]
stmt = _sanitize(stmt[:ridx])
result = eval(stmt, self.compldict)
all = dir(result)
dbg("completing: stmt:%s" % stmt)
completions = []
try: maindoc = result.__doc__
except: maindoc = ' '
if maindoc is None: maindoc = ' '
for m in all:
if m == "_PyCmplNoType": continue #this is internal
try:
dbg('possible completion: %s' % m)
if m.find(match) == 0:
if result is None: inst = all[m]
else: inst = getattr(result,m)
try: doc = inst.__doc__
except: doc = maindoc
typestr = str(inst)
if doc is None or doc == '': doc = maindoc
wrd = m[len(match):]
c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)}
if "function" in typestr:
c['word'] += '('
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
elif "method" in typestr:
c['word'] += '('
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
elif "module" in typestr:
c['word'] += '.'
elif "type" in typestr:
c['word'] += '('
c['abbr'] += '('
completions.append(c)
except:
i = sys.exc_info()
dbg("inner completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
return completions
except:
i = sys.exc_info()
dbg("completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
return []
class Scope(object):
def __init__(self,name,indent,docstr=''):
self.subscopes = []
self.docstr = docstr
self.locals = []
self.parent = None
self.name = name
self.indent = indent
def add(self,sub):
#print('push scope: [%s@%s]' % (sub.name,sub.indent))
sub.parent = self
self.subscopes.append(sub)
return sub
def doc(self,str):
""" Clean up a docstring """
d = str.replace('\n',' ')
d = d.replace('\t',' ')
while d.find(' ') > -1: d = d.replace(' ',' ')
while d[0] in '"\'\t ': d = d[1:]
while d[-1] in '"\'\t ': d = d[:-1]
dbg("Scope(%s)::docstr = %s" % (self,d))
self.docstr = d
def local(self,loc):
self._checkexisting(loc)
self.locals.append(loc)
def copy_decl(self,indent=0):
""" Copy a scope's declaration only, at the specified indent level - not local variables """
return Scope(self.name,indent,self.docstr)
def _checkexisting(self,test):
"Convienance function... keep out duplicates"
if test.find('=') > -1:
var = test.split('=')[0].strip()
for l in self.locals:
if l.find('=') > -1 and var == l.split('=')[0].strip():
self.locals.remove(l)
def get_code(self):
str = ""
if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
for l in self.locals:
if l.startswith('import'): str += l+'\n'
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
for sub in self.subscopes:
str += sub.get_code()
for l in self.locals:
if not l.startswith('import'): str += l+'\n'
return str
def pop(self,indent):
#print('pop scope: [%s] to [%s]' % (self.indent,indent))
outer = self
while outer.parent != None and outer.indent >= indent:
outer = outer.parent
return outer
def currentindent(self):
#print('parse current indent: %s' % self.indent)
return ' '*self.indent
def childindent(self):
#print('parse child indent: [%s]' % (self.indent+1))
return ' '*(self.indent+1)
class Class(Scope):
def __init__(self, name, supers, indent, docstr=''):
Scope.__init__(self,name,indent, docstr)
self.supers = supers
def copy_decl(self,indent=0):
c = Class(self.name,self.supers,indent, self.docstr)
for s in self.subscopes:
c.add(s.copy_decl(indent+1))
return c
def get_code(self):
str = '%sclass %s' % (self.currentindent(),self.name)
if len(self.supers) > 0: str += '(%s)' % ','.join(self.supers)
str += ':\n'
if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
if len(self.subscopes) > 0:
for s in self.subscopes: str += s.get_code()
else:
str += '%spass\n' % self.childindent()
return str
class Function(Scope):
def __init__(self, name, params, indent, docstr=''):
Scope.__init__(self,name,indent, docstr)
self.params = params
def copy_decl(self,indent=0):
return Function(self.name,self.params,indent, self.docstr)
def get_code(self):
str = "%sdef %s(%s):\n" % \
(self.currentindent(),self.name,','.join(self.params))
if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
str += "%spass\n" % self.childindent()
return str
class PyParser:
def __init__(self):
self.top = Scope('global',0)
self.scope = self.top
def _parsedotname(self,pre=None):
#returns (dottedname, nexttoken)
name = []
if pre is None:
tokentype, token, indent = self.donext()
if tokentype != NAME and token != '*':
return ('', token)
else: token = pre
name.append(token)
while True:
tokentype, token, indent = self.donext()
if token != '.': break
tokentype, token, indent = self.donext()
if tokentype != NAME: break
name.append(token)
return (".".join(name), token)
def _parseimportlist(self):
imports = []
while True:
name, token = self._parsedotname()
if not name: break
name2 = ''
if token == 'as': name2, token = self._parsedotname()
imports.append((name, name2))
while token != "," and "\n" not in token:
tokentype, token, indent = self.donext()
if token != ",": break
return imports
def _parenparse(self):
name = ''
names = []
level = 1
while True:
tokentype, token, indent = self.donext()
if token in (')', ',') and level == 1:
if '=' not in name: name = name.replace(' ', '')
names.append(name.strip())
name = ''
if token == '(':
level += 1
name += "("
elif token == ')':
level -= 1
if level == 0: break
else: name += ")"
elif token == ',' and level == 1:
pass
else:
name += "%s " % str(token)
return names
def _parsefunction(self,indent):
self.scope=self.scope.pop(indent)
tokentype, fname, ind = self.donext()
if tokentype != NAME: return None
tokentype, open, ind = self.donext()
if open != '(': return None
params=self._parenparse()
tokentype, colon, ind = self.donext()
if colon != ':': return None
return Function(fname,params,indent)
def _parseclass(self,indent):
self.scope=self.scope.pop(indent)
tokentype, cname, ind = self.donext()
if tokentype != NAME: return None
super = []
tokentype, thenext, ind = self.donext()
if thenext == '(':
super=self._parenparse()
elif thenext != ':': return None
return Class(cname,super,indent)
def _parseassignment(self):
assign=''
tokentype, token, indent = self.donext()
if tokentype == tokenize.STRING or token == 'str':
return '""'
elif token == '(' or token == 'tuple':
return '()'
elif token == '[' or token == 'list':
return '[]'
elif token == '{' or token == 'dict':
return '{}'
elif tokentype == tokenize.NUMBER:
return '0'
elif token == 'open' or token == 'file':
return 'file'
elif token == 'None':
return '_PyCmplNoType()'
elif token == 'type':
return 'type(_PyCmplNoType)' #only for method resolution
else:
assign += token
level = 0
while True:
tokentype, token, indent = self.donext()
if token in ('(','{','['):
level += 1
elif token in (']','}',')'):
level -= 1
if level == 0: break
elif level == 0:
if token in (';','\n'): break
assign += token
return "%s" % assign
def donext(self):
type, token, (lineno, indent), end, self.parserline = next(self.gen)
if lineno == self.curline:
#print('line found [%s] scope=%s' % (line.replace('\n',''),self.scope.name))
self.currentscope = self.scope
return (type, token, indent)
def _adjustvisibility(self):
newscope = Scope('result',0)
scp = self.currentscope
while scp != None:
if type(scp) == Function:
slice = 0
#Handle 'self' params
if scp.parent != None and type(scp.parent) == Class:
slice = 1
newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
for p in scp.params[slice:]:
i = p.find('=')
if len(p) == 0: continue
pvar = ''
ptype = ''
if i == -1:
pvar = p
ptype = '_PyCmplNoType()'
else:
pvar = p[:i]
ptype = _sanitize(p[i+1:])
if pvar.startswith('**'):
pvar = pvar[2:]
ptype = '{}'
elif pvar.startswith('*'):
pvar = pvar[1:]
ptype = '[]'
newscope.local('%s = %s' % (pvar,ptype))
for s in scp.subscopes:
ns = s.copy_decl(0)
newscope.add(ns)
for l in scp.locals: newscope.local(l)
scp = scp.parent
self.currentscope = newscope
return self.currentscope
#p.parse(vim.current.buffer[:],vim.eval("line('.')"))
def parse(self,text,curline=0):
self.curline = int(curline)
buf = io.StringIO(''.join(text) + '\n')
self.gen = tokenize.generate_tokens(buf.readline)
self.currentscope = self.scope
try:
freshscope=True
while True:
tokentype, token, indent = self.donext()
#dbg( 'main: token=[%s] indent=[%s]' % (token,indent))
if tokentype == DEDENT or token == "pass":
self.scope = self.scope.pop(indent)
elif token == 'def':
func = self._parsefunction(indent)
if func is None:
print("function: syntax error...")
continue
dbg("new scope: function")
freshscope = True
self.scope = self.scope.add(func)
elif token == 'class':
cls = self._parseclass(indent)
if cls is None:
print("class: syntax error...")
continue
freshscope = True
dbg("new scope: class")
self.scope = self.scope.add(cls)
elif token == 'import':
imports = self._parseimportlist()
for mod, alias in imports:
loc = "import %s" % mod
if len(alias) > 0: loc += " as %s" % alias
self.scope.local(loc)
freshscope = False
elif token == 'from':
mod, token = self._parsedotname()
if not mod or token != "import":
print("from: syntax error...")
continue
names = self._parseimportlist()
for name, alias in names:
loc = "from %s import %s" % (mod,name)
if len(alias) > 0: loc += " as %s" % alias
self.scope.local(loc)
freshscope = False
elif tokentype == STRING:
if freshscope: self.scope.doc(token)
elif tokentype == NAME:
name,token = self._parsedotname(token)
if token == '=':
stmt = self._parseassignment()
dbg("parseassignment: %s = %s" % (name, stmt))
if stmt != None:
self.scope.local("%s = %s" % (name,stmt))
freshscope = False
except StopIteration: #thrown on EOF
pass
except:
dbg("parse error: %s, %s @ %s" %
(sys.exc_info()[0], sys.exc_info()[1], self.parserline))
return self._adjustvisibility()
def _sanitize(str):
val = ''
level = 0
for c in str:
if c in ('(','{','['):
level += 1
elif c in (']','}',')'):
level -= 1
elif level == 0:
val += c
return val
sys.path.extend(['.','..'])
PYTHONEOF
endfunction
call s:DefPython()

View File

@@ -1,17 +1,28 @@
"pythoncomplete.vim - Omni Completion for python "pythoncomplete.vim - Omni Completion for python
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com> " Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.7 " Version: 0.9
" Last Updated: 19 Oct 2006 " Last Updated: 18 Jun 2009
" "
" Changes " Changes
" TODO: " TODO:
" User defined docstrings aren't handled right...
" 'info' item output can use some formatting work " 'info' item output can use some formatting work
" Add an "unsafe eval" mode, to allow for return type evaluation " Add an "unsafe eval" mode, to allow for return type evaluation
" Complete basic syntax along with import statements " Complete basic syntax along with import statements
" i.e. "import url<c-x,c-o>" " i.e. "import url<c-x,c-o>"
" Continue parsing on invalid line?? " Continue parsing on invalid line??
" "
" v 0.9
" * Fixed docstring parsing for classes and functions
" * Fixed parsing of *args and **kwargs type arguments
" * Better function param parsing to handle things like tuples and
" lambda defaults args
"
" v 0.8
" * Fixed an issue where the FIRST assignment was always used instead of
" using a subsequent assignment for a variable
" * Fixed a scoping issue when working inside a parameterless function
"
"
" v 0.7 " v 0.7
" * Fixed function list sorting (_ and __ at the bottom) " * Fixed function list sorting (_ and __ at the bottom)
" * Removed newline removal from docs. It appears vim handles these better in " * Removed newline removal from docs. It appears vim handles these better in
@@ -63,7 +74,7 @@ function! pythoncomplete#Complete(findstart, base)
while idx > 0 while idx > 0
let idx -= 1 let idx -= 1
let c = line[idx] let c = line[idx]
if c =~ '\w' || c =~ '\.' || c == '(' if c =~ '\w' || c =~ '\.'
let cword = c . cword let cword = c . cword
continue continue
elseif strlen(cword) > 0 || idx == 0 elseif strlen(cword) > 0 || idx == 0
@@ -206,7 +217,7 @@ class Completer(object):
if len(stmt) > 0 and stmt[-1] == '(': if len(stmt) > 0 and stmt[-1] == '(':
result = eval(_sanitize(stmt[:-1]), self.compldict) result = eval(_sanitize(stmt[:-1]), self.compldict)
doc = result.__doc__ doc = result.__doc__
if doc == None: doc = '' if doc is None: doc = ''
args = self.get_arguments(result) args = self.get_arguments(result)
return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}] return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
elif ridx == -1: elif ridx == -1:
@@ -223,18 +234,18 @@ class Completer(object):
try: maindoc = result.__doc__ try: maindoc = result.__doc__
except: maindoc = ' ' except: maindoc = ' '
if maindoc == None: maindoc = ' ' if maindoc is None: maindoc = ' '
for m in all: for m in all:
if m == "_PyCmplNoType": continue #this is internal if m == "_PyCmplNoType": continue #this is internal
try: try:
dbg('possible completion: %s' % m) dbg('possible completion: %s' % m)
if m.find(match) == 0: if m.find(match) == 0:
if result == None: inst = all[m] if result is None: inst = all[m]
else: inst = getattr(result,m) else: inst = getattr(result,m)
try: doc = inst.__doc__ try: doc = inst.__doc__
except: doc = maindoc except: doc = maindoc
typestr = str(inst) typestr = str(inst)
if doc == None or doc == '': doc = maindoc if doc is None or doc == '': doc = maindoc
wrd = m[len(match):] wrd = m[len(match):]
c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)} c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)}
@@ -260,9 +271,9 @@ class Completer(object):
return [] return []
class Scope(object): class Scope(object):
def __init__(self,name,indent): def __init__(self,name,indent,docstr=''):
self.subscopes = [] self.subscopes = []
self.docstr = '' self.docstr = docstr
self.locals = [] self.locals = []
self.parent = None self.parent = None
self.name = name self.name = name
@@ -281,29 +292,28 @@ class Scope(object):
while d.find(' ') > -1: d = d.replace(' ',' ') while d.find(' ') > -1: d = d.replace(' ',' ')
while d[0] in '"\'\t ': d = d[1:] while d[0] in '"\'\t ': d = d[1:]
while d[-1] in '"\'\t ': d = d[:-1] while d[-1] in '"\'\t ': d = d[:-1]
dbg("Scope(%s)::docstr = %s" % (self,d))
self.docstr = d self.docstr = d
def local(self,loc): def local(self,loc):
if not self._hasvaralready(loc): self._checkexisting(loc)
self.locals.append(loc) self.locals.append(loc)
def copy_decl(self,indent=0): def copy_decl(self,indent=0):
""" Copy a scope's declaration only, at the specified indent level - not local variables """ """ Copy a scope's declaration only, at the specified indent level - not local variables """
return Scope(self.name,indent) return Scope(self.name,indent,self.docstr)
def _hasvaralready(self,test): def _checkexisting(self,test):
"Convienance function... keep out duplicates" "Convienance function... keep out duplicates"
if test.find('=') > -1: if test.find('=') > -1:
var = test.split('=')[0].strip() var = test.split('=')[0].strip()
for l in self.locals: for l in self.locals:
if l.find('=') > -1 and var == l.split('=')[0].strip(): if l.find('=') > -1 and var == l.split('=')[0].strip():
return True self.locals.remove(l)
return False
def get_code(self): def get_code(self):
# we need to start with this, to fix up broken completions str = ""
# hopefully this name is unique enough... if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
str = '"""'+self.docstr+'"""\n'
for l in self.locals: for l in self.locals:
if l.startswith('import'): str += l+'\n' if l.startswith('import'): str += l+'\n'
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n' str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
@@ -330,11 +340,11 @@ class Scope(object):
return ' '*(self.indent+1) return ' '*(self.indent+1)
class Class(Scope): class Class(Scope):
def __init__(self, name, supers, indent): def __init__(self, name, supers, indent, docstr=''):
Scope.__init__(self,name,indent) Scope.__init__(self,name,indent, docstr)
self.supers = supers self.supers = supers
def copy_decl(self,indent=0): def copy_decl(self,indent=0):
c = Class(self.name,self.supers,indent) c = Class(self.name,self.supers,indent, self.docstr)
for s in self.subscopes: for s in self.subscopes:
c.add(s.copy_decl(indent+1)) c.add(s.copy_decl(indent+1))
return c return c
@@ -351,11 +361,11 @@ class Class(Scope):
class Function(Scope): class Function(Scope):
def __init__(self, name, params, indent): def __init__(self, name, params, indent, docstr=''):
Scope.__init__(self,name,indent) Scope.__init__(self,name,indent, docstr)
self.params = params self.params = params
def copy_decl(self,indent=0): def copy_decl(self,indent=0):
return Function(self.name,self.params,indent) return Function(self.name,self.params,indent, self.docstr)
def get_code(self): def get_code(self):
str = "%sdef %s(%s):\n" % \ str = "%sdef %s(%s):\n" % \
(self.currentindent(),self.name,','.join(self.params)) (self.currentindent(),self.name,','.join(self.params))
@@ -371,7 +381,7 @@ class PyParser:
def _parsedotname(self,pre=None): def _parsedotname(self,pre=None):
#returns (dottedname, nexttoken) #returns (dottedname, nexttoken)
name = [] name = []
if pre == None: if pre is None:
tokentype, token, indent = self.next() tokentype, token, indent = self.next()
if tokentype != NAME and token != '*': if tokentype != NAME and token != '*':
return ('', token) return ('', token)
@@ -405,17 +415,20 @@ class PyParser:
while True: while True:
tokentype, token, indent = self.next() tokentype, token, indent = self.next()
if token in (')', ',') and level == 1: if token in (')', ',') and level == 1:
names.append(name) if '=' not in name: name = name.replace(' ', '')
names.append(name.strip())
name = '' name = ''
if token == '(': if token == '(':
level += 1 level += 1
name += "("
elif token == ')': elif token == ')':
level -= 1 level -= 1
if level == 0: break if level == 0: break
else: name += ")"
elif token == ',' and level == 1: elif token == ',' and level == 1:
pass pass
else: else:
name += str(token) name += "%s " % str(token)
return names return names
def _parsefunction(self,indent): def _parsefunction(self,indent):
@@ -495,16 +508,26 @@ class PyParser:
#Handle 'self' params #Handle 'self' params
if scp.parent != None and type(scp.parent) == Class: if scp.parent != None and type(scp.parent) == Class:
slice = 1 slice = 1
p = scp.params[0]
i = p.find('=')
if i != -1: p = p[:i]
newscope.local('%s = %s' % (scp.params[0],scp.parent.name)) newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
for p in scp.params[slice:]: for p in scp.params[slice:]:
i = p.find('=') i = p.find('=')
if len(p) == 0: continue
pvar = ''
ptype = ''
if i == -1: if i == -1:
newscope.local('%s = _PyCmplNoType()' % p) pvar = p
ptype = '_PyCmplNoType()'
else: else:
newscope.local('%s = %s' % (p[:i],_sanitize(p[i+1]))) pvar = p[:i]
ptype = _sanitize(p[i+1:])
if pvar.startswith('**'):
pvar = pvar[2:]
ptype = '{}'
elif pvar.startswith('*'):
pvar = pvar[1:]
ptype = '[]'
newscope.local('%s = %s' % (pvar,ptype))
for s in scp.subscopes: for s in scp.subscopes:
ns = s.copy_decl(0) ns = s.copy_decl(0)
@@ -532,17 +555,19 @@ class PyParser:
self.scope = self.scope.pop(indent) self.scope = self.scope.pop(indent)
elif token == 'def': elif token == 'def':
func = self._parsefunction(indent) func = self._parsefunction(indent)
if func == None: if func is None:
print "function: syntax error..." print "function: syntax error..."
continue continue
dbg("new scope: function")
freshscope = True freshscope = True
self.scope = self.scope.add(func) self.scope = self.scope.add(func)
elif token == 'class': elif token == 'class':
cls = self._parseclass(indent) cls = self._parseclass(indent)
if cls == None: if cls is None:
print "class: syntax error..." print "class: syntax error..."
continue continue
freshscope = True freshscope = True
dbg("new scope: class")
self.scope = self.scope.add(cls) self.scope = self.scope.add(cls)
elif token == 'import': elif token == 'import':
@@ -569,6 +594,7 @@ class PyParser:
name,token = self._parsedotname(token) name,token = self._parsedotname(token)
if token == '=': if token == '=':
stmt = self._parseassignment() stmt = self._parseassignment()
dbg("parseassignment: %s = %s" % (name, stmt))
if stmt != None: if stmt != None:
self.scope.local("%s = %s" % (name,stmt)) self.scope.local("%s = %s" % (name,stmt))
freshscope = False freshscope = False

View File

@@ -1,11 +1,11 @@
" Vim completion script " Vim completion script
" Language: Ruby " Language: Ruby
" Maintainer: Mark Guzman <segfault@hasno.info> " Maintainer: Mark Guzman <segfault@hasno.info>
" Info: $Id$ " Last Change: 2009 Sep 28
" URL: http://vim-ruby.rubyforge.org " URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site " Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com> " Release Coordinator: Doug Kearns <dougkearns@gmail.com>
" Maintainer Version: 0.8 " Maintainer Version: 0.8.1
" ---------------------------------------------------------------------------- " ----------------------------------------------------------------------------
" "
" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com) " Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
@@ -325,7 +325,7 @@ class VimRubyCompletion
ln = buf[x] ln = buf[x]
if /^\s*(module|class|def|include)\s+/.match(ln) if /^\s*(module|class|def|include)\s+/.match(ln)
clscnt += 1 if $1 == "class" clscnt += 1 if $1 == "class"
#dprint "\$1: %s" % $1 #dprint "\$1$1
classdef += "%s\n" % ln classdef += "%s\n" % ln
classdef += "end\n" if /def\s+/.match(ln) classdef += "end\n" if /def\s+/.match(ln)
dprint ln dprint ln
@@ -632,7 +632,7 @@ class VimRubyCompletion
methods = Object.constants methods = Object.constants
methods.grep(/^#{receiver}/).collect{|e| "::" + e} methods.grep(/^#{receiver}/).collect{|e| "::" + e}
when /^(((::)?[A-Z][^:.\(]*)+)::?([^:.]*)$/ # Constant or class methods when /^(((::)?[A-Z][^:.\(]*)+?)::?([^:.]*)$/ # Constant or class methods
receiver = $1 receiver = $1
message = Regexp.quote($4) message = Regexp.quote($4)
dprint "const or cls 2 [recv: \'%s\', msg: \'%s\']" % [ receiver, message ] dprint "const or cls 2 [recv: \'%s\', msg: \'%s\']" % [ receiver, message ]
@@ -666,7 +666,7 @@ class VimRubyCompletion
dprint "global" dprint "global"
methods = global_variables.grep(Regexp.new(Regexp.quote($1))) methods = global_variables.grep(Regexp.new(Regexp.quote($1)))
when /^((\.?[^.]+)+)\.([^.]*)$/ # variable when /^((\.?[^.]+)+?)\.([^.]*)$/ # variable
dprint "variable" dprint "variable"
receiver = $1 receiver = $1
message = Regexp.quote($3) message = Regexp.quote($3)

View File

@@ -1,6 +1,6 @@
" Vim script to download a missing spell file " Vim script to download a missing spell file
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2008 Jun 27 " Last Change: 2008 Nov 29
if !exists('g:spellfile_URL') if !exists('g:spellfile_URL')
" Prefer using http:// when netrw should be able to use it, since " Prefer using http:// when netrw should be able to use it, since
@@ -39,20 +39,23 @@ function! spellfile#LoadFile(lang)
let s:donedict[a:lang . &enc] = 1 let s:donedict[a:lang . &enc] = 1
" Find spell directories we can write in. " Find spell directories we can write in.
let dirlist = [] let [dirlist, dirchoices] = spellfile#GetDirChoices()
let dirchoices = '&Cancel'
for dir in split(globpath(&rtp, 'spell'), "\n")
if filewritable(dir) == 2
call add(dirlist, dir)
let dirchoices .= "\n&" . len(dirlist)
endif
endfor
if len(dirlist) == 0 if len(dirlist) == 0
if &verbose let dir_to_create = spellfile#WritableSpellDir()
if &verbose || dir_to_create != ''
echomsg 'spellfile#LoadFile(): There is no writable spell directory.' echomsg 'spellfile#LoadFile(): There is no writable spell directory.'
endif endif
if dir_to_create != ''
if confirm("Shall I create " . dir_to_create, "&Yes\n&No", 2) == 1
" After creating the directory it should show up in the list.
call mkdir(dir_to_create, "p")
let [dirlist, dirchoices] = spellfile#GetDirChoices()
endif
endif
if len(dirlist) == 0
return return
endif endif
endif
let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
let msg .= "\nDo you want me to try downloading it?" let msg .= "\nDo you want me to try downloading it?"
@@ -177,3 +180,29 @@ function! spellfile#Nread(fname)
unlet g:netrw_use_errorwindow unlet g:netrw_use_errorwindow
endif endif
endfunc endfunc
" Get a list of writable spell directories and choices for confirm().
function! spellfile#GetDirChoices()
let dirlist = []
let dirchoices = '&Cancel'
for dir in split(globpath(&rtp, 'spell'), "\n")
if filewritable(dir) == 2
call add(dirlist, dir)
let dirchoices .= "\n&" . len(dirlist)
endif
endfor
return [dirlist, dirchoices]
endfunc
function! spellfile#WritableSpellDir()
if has("unix")
" For Unix always use the $HOME/.vim directory
return $HOME . "/.vim/spell"
endif
for dir in split(&rtp, ',')
if filewritable(dir) == 2
return dir . "/spell"
endif
endfor
return ''
endfunction

View File

@@ -1,13 +1,47 @@
" Vim OMNI completion script for SQL " Vim OMNI completion script for SQL
" Language: SQL " Language: SQL
" Maintainer: David Fishburn <fishburn@ianywhere.com> " Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 6.0 " Version: 10.0
" Last Change: Thu 03 Apr 2008 10:37:54 PM Eastern Daylight Time " Last Change: 2010 Jun 11
" Usage: For detailed help " Usage: For detailed help
" ":help sql.txt" " ":help sql.txt"
" or ":help ft-sql-omni" " or ":help ft-sql-omni"
" or read $VIMRUNTIME/doc/sql.txt " or read $VIMRUNTIME/doc/sql.txt
" History
" Version 10.0
" Updated PreCacheSyntax()
" - Now returns a List of the syntax items it finds.
" This allows other plugins / scripts to use this list for their own
" purposes. In this case XPTemplate can use them for a Choose list.
" - Verifies the parameters are the correct type and displays a
" warning if not.
" - Verifies the parameters are the correct type and displays a
" warning if not.
" Updated SQLCWarningMsg()
" - Prepends warning message with SQLComplete so you know who issued
" the warning.
" Updated SQLCErrorMsg()
" - Prepends error message with SQLComplete so you know who issued
" the error.
"
" Version 9.0
" This change removes some of the support for tables with spaces in their
" names in order to simplify the regexes used to pull out query table
" aliases for more robust table name and column name code completion.
" Full support for "table names with spaces" can be added in again
" after 7.3.
"
" Version 8.0
" Incorrectly re-executed the g:ftplugin_sql_omni_key_right and g:ftplugin_sql_omni_key_left
" when drilling in and out of a column list for a table.
"
" Version 7.0
" Better handling of object names
"
" Version 6.0
" Supports object names with spaces "my table name"
"
" Set completion with CTRL-X CTRL-O to autoloaded function. " Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is " This check is in place in case this script is
" sourced directly instead of using the autoload feature. " sourced directly instead of using the autoload feature.
@@ -22,7 +56,7 @@ endif
if exists('g:loaded_sql_completion') if exists('g:loaded_sql_completion')
finish finish
endif endif
let g:loaded_sql_completion = 50 let g:loaded_sql_completion = 100
" Maintains filename of dictionary " Maintains filename of dictionary
let s:sql_file_table = "" let s:sql_file_table = ""
@@ -106,10 +140,23 @@ function! sqlcomplete#Complete(findstart, base)
let begindot = 1 let begindot = 1
endif endif
while start > 0 while start > 0
if line[start - 1] =~ '\(\w\|\s\+\)' " Additional code was required to handle objects which
" can contain spaces like "my table name".
if line[start - 1] !~ '\(\w\|\.\)'
" If the previous character is not a period or word character
break
" elseif line[start - 1] =~ '\(\w\|\s\+\)'
" let start -= 1
elseif line[start - 1] =~ '\w'
" If the previous character is word character continue back
let start -= 1 let start -= 1
elseif line[start - 1] =~ '\.' && elseif line[start - 1] =~ '\.' &&
\ compl_type =~ 'column\|table\|view\|procedure' \ compl_type =~ 'column\|table\|view\|procedure'
" If the previous character is a period and we are completing
" an object which can be specified with a period like this:
" table_name.column_name
" owner_name.table_name
" If lastword has already been set for column completion " If lastword has already been set for column completion
" break from the loop, since we do not also want to pickup " break from the loop, since we do not also want to pickup
" a table name if it was also supplied. " a table name if it was also supplied.
@@ -184,9 +231,10 @@ function! sqlcomplete#Complete(findstart, base)
endif endif
let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '') let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '')
if s:sql_file_{compl_type} == "" " Same call below, no need to do it twice
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc) " if s:sql_file_{compl_type} == ""
endif " let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
" endif
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc) let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
if s:sql_file_{compl_type} != "" if s:sql_file_{compl_type} != ""
if filereadable(s:sql_file_{compl_type}) if filereadable(s:sql_file_{compl_type})
@@ -230,7 +278,7 @@ function! sqlcomplete#Complete(findstart, base)
" 1. Check if the dbext plugin has the option turned " 1. Check if the dbext plugin has the option turned
" on to even allow owners " on to even allow owners
" 2. Based on 1, if the user is showing a table list " 2. Based on 1, if the user is showing a table list
" and the DrillIntoTable (using <C-Right>) then " and the DrillIntoTable (using <Right>) then
" this will be owner.table. In this case, we can " this will be owner.table. In this case, we can
" check to see the table.column exists in the " check to see the table.column exists in the
" cached table list. If it does, then we have " cached table list. If it does, then we have
@@ -312,9 +360,16 @@ function! sqlcomplete#Complete(findstart, base)
endif endif
if base != '' if base != ''
" Filter the list based on the first few characters the user " Filter the list based on the first few characters the user entered.
" entered " Check if the text matches at the beginning
let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"' " or
" Match to a owner.table or alias.column type match
" or
" Handle names with spaces "my table name"
let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\)"'
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\(\\.\\)\\?'.base.'\\)"'
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
let compl_list = filter(deepcopy(compl_list), expr) let compl_list = filter(deepcopy(compl_list), expr)
endif endif
@@ -327,7 +382,13 @@ endfunc
function! sqlcomplete#PreCacheSyntax(...) function! sqlcomplete#PreCacheSyntax(...)
let syn_group_arr = [] let syn_group_arr = []
let syn_items = []
if a:0 > 0 if a:0 > 0
if type(a:1) != 3
call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
return ''
endif
let syn_group_arr = a:1 let syn_group_arr = a:1
else else
let syn_group_arr = g:omni_sql_precache_syntax_groups let syn_group_arr = g:omni_sql_precache_syntax_groups
@@ -336,7 +397,36 @@ function! sqlcomplete#PreCacheSyntax(...)
" the sytnax items. " the sytnax items.
if !empty(syn_group_arr) if !empty(syn_group_arr)
for group_name in syn_group_arr for group_name in syn_group_arr
call s:SQLCGetSyntaxList(group_name) let syn_items = extend( syn_items, s:SQLCGetSyntaxList(group_name) )
endfor
endif
return syn_items
endfunction
function! sqlcomplete#ResetCacheSyntax(...)
let syn_group_arr = []
if a:0 > 0
if type(a:1) != 3
call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
return ''
endif
let syn_group_arr = a:1
else
let syn_group_arr = g:omni_sql_precache_syntax_groups
endif
" For each group specified in the list, precache all
" the sytnax items.
if !empty(syn_group_arr)
for group_name in syn_group_arr
let list_idx = index(s:syn_list, group_name, 0, &ignorecase)
if list_idx > -1
" Remove from list of groups
call remove( s:syn_list, list_idx )
" Remove from list of keywords
call remove( s:syn_value, list_idx )
endif
endfor endfor
endif endif
endfunction endfunction
@@ -363,13 +453,14 @@ function! sqlcomplete#DrillIntoTable()
call sqlcomplete#Map('column') call sqlcomplete#Map('column')
" C-Y, makes the currently highlighted entry active " C-Y, makes the currently highlighted entry active
" and trigger the omni popup to be redisplayed " and trigger the omni popup to be redisplayed
call feedkeys("\<C-Y>\<C-X>\<C-O>") call feedkeys("\<C-Y>\<C-X>\<C-O>", 'n')
else else
if has('win32')
" If the popup is not visible, simple perform the normal " If the popup is not visible, simple perform the normal
" <C-Right> behaviour " key behaviour.
exec "normal! \<C-Right>" " Must use exec since they key must be preceeded by "\"
endif " or feedkeys will simply push each character of the string
" rather than the "key press".
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_right.'", "n")'
endif endif
return "" return ""
endfunction endfunction
@@ -381,24 +472,25 @@ function! sqlcomplete#DrillOutOfColumns()
" Trigger the omni popup to be redisplayed " Trigger the omni popup to be redisplayed
call feedkeys("\<C-X>\<C-O>") call feedkeys("\<C-X>\<C-O>")
else else
if has('win32')
" If the popup is not visible, simple perform the normal " If the popup is not visible, simple perform the normal
" <C-Left> behaviour " key behaviour.
exec "normal! \<C-Left>" " Must use exec since they key must be preceeded by "\"
endif " or feedkeys will simply push each character of the string
" rather than the "key press".
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_left.'", "n")'
endif endif
return "" return ""
endfunction endfunction
function! s:SQLCWarningMsg(msg) function! s:SQLCWarningMsg(msg)
echohl WarningMsg echohl WarningMsg
echomsg a:msg echomsg 'SQLComplete:'.a:msg
echohl None echohl None
endfunction endfunction
function! s:SQLCErrorMsg(msg) function! s:SQLCErrorMsg(msg)
echohl ErrorMsg echohl ErrorMsg
echomsg a:msg echomsg 'SQLComplete:'.a:msg
echohl None echohl None
endfunction endfunction
@@ -424,7 +516,7 @@ function! s:SQLCGetSyntaxList(syn_group)
let g:omni_syntax_group_include_sql = syn_group let g:omni_syntax_group_include_sql = syn_group
endif endif
let g:omni_syntax_group_exclude_sql = '' let g:omni_syntax_group_exclude_sql = ''
let syn_value = OmniSyntaxList() let syn_value = syntaxcomplete#OmniSyntaxList()
let g:omni_syntax_group_include_sql = s:save_inc let g:omni_syntax_group_include_sql = s:save_inc
let g:omni_syntax_group_exclude_sql = s:save_exc let g:omni_syntax_group_exclude_sql = s:save_exc
" Cache these values for later use " Cache these values for later use
@@ -582,7 +674,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" Search backwards to the beginning of the statement " Search backwards to the beginning of the statement
" and do NOT wrap " and do NOT wrap
" exec 'silent! normal! v?\<\(select\|update\|delete\|;\)\>'."\n".'"yy' " exec 'silent! normal! v?\<\(select\|update\|delete\|;\)\>'."\n".'"yy'
exec 'silent! normal! ?\<\(select\|update\|delete\|;\)\>'."\n" exec 'silent! normal! ?\<\c\(select\|update\|delete\|;\)\>'."\n"
" Start characterwise visual mode " Start characterwise visual mode
" Advance right one character " Advance right one character
@@ -591,27 +683,38 @@ function! s:SQLCGetColumns(table_name, list_type)
" 2. A ; at the end of a line (the delimiter) " 2. A ; at the end of a line (the delimiter)
" 3. The end of the file (incase no delimiter) " 3. The end of the file (incase no delimiter)
" Yank the visually selected text into the "y register. " Yank the visually selected text into the "y register.
exec 'silent! normal! vl/\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy' exec 'silent! normal! vl/\c\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'
let query = @y let query = @y
let query = substitute(query, "\n", ' ', 'g') let query = substitute(query, "\n", ' ', 'g')
let found = 0 let found = 0
" if query =~? '^\(select\|update\|delete\)' " if query =~? '^\c\(select\)'
if query =~? '^\(select\)' if query =~? '^\(select\|update\|delete\)'
let found = 1 let found = 1
" \(\(\<\w\+\>\)\.\)\? - " \(\(\<\w\+\>\)\.\)\? -
" 'from.\{-}' - Starting at the from clause " '\c\(from\|join\|,\).\{-}' - Starting at the from clause (case insensitive)
" '\zs\(\(\<\w\+\>\)\.\)\?' - Get the owner name (optional) " '\zs\(\(\<\w\+\>\)\.\)\?' - Get the owner name (optional)
" '\<\w\+\>\ze' - Get the table name " '\<\w\+\>\ze' - Get the table name
" '\s\+\<'.table_name.'\>' - Followed by the alias " '\s\+\<'.table_name.'\>' - Followed by the alias
" '\s*\.\@!.*' - Cannot be followed by a . " '\s*\.\@!.*' - Cannot be followed by a .
" '\(\<where\>\|$\)' - Must be followed by a WHERE clause " '\(\<where\>\|$\)' - Must be followed by a WHERE clause
" '.*' - Exclude the rest of the line in the match " '.*' - Exclude the rest of the line in the match
" let table_name_new = matchstr(@y,
" \ '\c\(from\|join\|,\).\{-}'.
" \ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'.
" \ '\("\|\[\)\?.\{-}\("\|\]\)\?\ze'.
" \ '\s\+\%(as\s\+\)\?\<'.
" \ matchstr(table_name, '.\{-}\ze\.\?$').
" \ '\>'.
" \ '\s*\.\@!.*'.
" \ '\(\<where\>\|$\)'.
" \ '.*'
" \ )
let table_name_new = matchstr(@y, let table_name_new = matchstr(@y,
\ 'from.\{-}'. \ '\c\(\<from\>\|\<join\>\|,\)\s*'.
\ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'. \ '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?'.
\ '\("\|\[\)\?.\{-}\("\|\]\)\ze'. \ '\("\|\[\)\?\w\+\("\|\]\)\?\ze'.
\ '\s\+\%(as\s\+\)\?\<'. \ '\s\+\%(as\s\+\)\?\<'.
\ matchstr(table_name, '.\{-}\ze\.\?$'). \ matchstr(table_name, '.\{-}\ze\.\?$').
\ '\>'. \ '\>'.
@@ -622,7 +725,7 @@ function! s:SQLCGetColumns(table_name, list_type)
if table_name_new != '' if table_name_new != ''
let table_alias = table_name let table_alias = table_name
let table_name = table_name_new let table_name = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
let list_idx = index(s:tbl_name, table_name, 0, &ignorecase) let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
if list_idx > -1 if list_idx > -1
@@ -690,4 +793,3 @@ function! s:SQLCGetColumns(table_name, list_type)
return table_cols return table_cols
endfunction endfunction

View File

@@ -1,10 +1,35 @@
" Vim completion script " Vim completion script
" Language: All languages, uses existing syntax highlighting rules " Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <dfishburn.vim@gmail.com> " Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 4.0 " Version: 7.0
" Last Change: Fri 26 Oct 2007 05:27:03 PM Eastern Daylight Time " Last Change: 2010 Jul 29
" Usage: For detailed help, ":help ft-syntax-omni" " Usage: For detailed help, ":help ft-syntax-omni"
" History
"
" Version 7.0
" Updated syntaxcomplete#OmniSyntaxList()
" - Looking up the syntax groups defined from a syntax file
" looked for only 1 format of {filetype}GroupName, but some
" syntax writers use this format as well:
" {b:current_syntax}GroupName
" OmniSyntaxList() will now check for both if the first
" method does not find a match.
"
" Version 6.0
" Added syntaxcomplete#OmniSyntaxList()
" - Allows other plugins to use this for their own
" purposes.
" - It will return a List of all syntax items for the
" syntax group name passed in.
" - XPTemplate for SQL will use this function via the
" sqlcomplete plugin to populate a Choose box.
"
" Version 5.0
" Updated SyntaxCSyntaxGroupItems()
" - When processing a list of syntax groups, the final group
" was missed in function SyntaxCSyntaxGroupItems.
"
" Set completion with CTRL-X CTRL-O to autoloaded function. " Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is " This check is in place in case this script is
" sourced directly instead of using the autoload feature. " sourced directly instead of using the autoload feature.
@@ -19,7 +44,7 @@ endif
if exists('g:loaded_syntax_completion') if exists('g:loaded_syntax_completion')
finish finish
endif endif
let g:loaded_syntax_completion = 40 let g:loaded_syntax_completion = 70
" Set ignorecase to the ftplugin standard " Set ignorecase to the ftplugin standard
" This is the default setting, but if you define a buffer local " This is the default setting, but if you define a buffer local
@@ -123,7 +148,30 @@ function! syntaxcomplete#Complete(findstart, base)
return compl_list return compl_list
endfunc endfunc
function! OmniSyntaxList() function! syntaxcomplete#OmniSyntaxList(...)
if a:0 > 0
let parms = []
if 3 == type(a:1)
let parms = a:1
elseif 1 == type(a:1)
let parms = split(a:1, ',')
endif
return OmniSyntaxList( parms )
else
return OmniSyntaxList()
endif
endfunc
function! OmniSyntaxList(...)
let list_parms = []
if a:0 > 0
if 3 == type(a:1)
let list_parms = a:1
elseif 1 == type(a:1)
let list_parms = split(a:1, ',')
endif
endif
" Default to returning a dictionary, if use_dictionary is set to 0 " Default to returning a dictionary, if use_dictionary is set to 0
" a list will be returned. " a list will be returned.
" let use_dictionary = 1 " let use_dictionary = 1
@@ -152,6 +200,26 @@ function! OmniSyntaxList()
endif endif
let saveL = @l let saveL = @l
let filetype = substitute(&filetype, '\.', '_', 'g')
if empty(list_parms)
" Default the include group to include the requested syntax group
let syntax_group_include_{filetype} = ''
" Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_include_'.filetype)
let syntax_group_include_{filetype} =
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
let list_parms = split(g:omni_syntax_group_include_{filetype}, ',')
if syntax_group_include_{filetype} =~ '\w'
let syntax_group_include_{filetype} =
\ substitute( syntax_group_include_{filetype},
\ '\s*,\s*', '\\|', 'g'
\ )
endif
endif
else
" A specific list was provided, use it
endif
" Loop through all the syntax groupnames, and build a " Loop through all the syntax groupnames, and build a
" syntax file which contains these names. This can " syntax file which contains these names. This can
@@ -159,9 +227,13 @@ function! OmniSyntaxList()
" have a plugin defined. " have a plugin defined.
" This ASSUMES the syntax groupname BEGINS with the name " This ASSUMES the syntax groupname BEGINS with the name
" of the filetype. From my casual viewing of the vim7\syntax " of the filetype. From my casual viewing of the vim7\syntax
" directory. " directory this is true for almost all syntax definitions.
" As an example, the SQL syntax groups have this pattern:
" sqlType
" sqlOperators
" sqlKeyword ...
redir @l redir @l
silent! exec 'syntax list ' silent! exec 'syntax list '.join(list_parms)
redir END redir END
let syntax_full = "\n".@l let syntax_full = "\n".@l
@@ -176,26 +248,17 @@ function! OmniSyntaxList()
let filetype = substitute(&filetype, '\.', '_', 'g') let filetype = substitute(&filetype, '\.', '_', 'g')
" Default the include group to include the requested syntax group let list_exclude_groups = []
let syntax_group_include_{filetype} = '' if a:0 > 0
" Check if there are any overrides specified for this filetype " Do nothing since we have specific a specific list of groups
if exists('g:omni_syntax_group_include_'.filetype) else
let syntax_group_include_{filetype} =
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
if syntax_group_include_{filetype} =~ '\w'
let syntax_group_include_{filetype} =
\ substitute( syntax_group_include_{filetype},
\ '\s*,\s*', '\\|', 'g'
\ )
endif
endif
" Default the exclude group to nothing " Default the exclude group to nothing
let syntax_group_exclude_{filetype} = '' let syntax_group_exclude_{filetype} = ''
" Check if there are any overrides specified for this filetype " Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_exclude_'.filetype) if exists('g:omni_syntax_group_exclude_'.filetype)
let syntax_group_exclude_{filetype} = let syntax_group_exclude_{filetype} =
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g') \ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
let list_exclude_groups = split(g:omni_syntax_group_exclude_{filetype}, ',')
if syntax_group_exclude_{filetype} =~ '\w' if syntax_group_exclude_{filetype} =~ '\w'
let syntax_group_exclude_{filetype} = let syntax_group_exclude_{filetype} =
\ substitute( syntax_group_exclude_{filetype}, \ substitute( syntax_group_exclude_{filetype},
@@ -203,6 +266,7 @@ function! OmniSyntaxList()
\ ) \ )
endif endif
endif endif
endif
" Sometimes filetypes can be composite names, like c.doxygen " Sometimes filetypes can be composite names, like c.doxygen
" Loop through each individual part looking for the syntax " Loop through each individual part looking for the syntax
@@ -225,47 +289,51 @@ function! OmniSyntaxList()
let index = 0 let index = 0
let index = match(syntax_full, next_group_regex, index) let index = match(syntax_full, next_group_regex, index)
if index == -1 && exists('b:current_syntax') && ft_part_name != b:current_syntax
" There appears to be two standards when writing syntax files.
" Either items begin as:
" syn keyword {filetype}Keyword values ...
" let b:current_syntax = "sql"
" let b:current_syntax = "sqlanywhere"
" Or
" syn keyword {syntax_filename}Keyword values ...
" let b:current_syntax = "mysql"
" So, we will make the format of finding the syntax group names
" a bit more flexible and look for both if the first fails to
" find a match.
let next_group_regex = '\n' .
\ '\zs'.b:current_syntax.'\w\+\ze'.
\ '\s\+xxx\s\+'
let index = 0
let index = match(syntax_full, next_group_regex, index)
endif
while index > -1 while index > -1
let group_name = matchstr( syntax_full, '\w\+', index ) let group_name = matchstr( syntax_full, '\w\+', index )
let get_syn_list = 1 let get_syn_list = 1
" if syntax_group_include_{&filetype} == '' for exclude_group_name in list_exclude_groups
" if syntax_group_exclude_{&filetype} != '' if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
" if '\<'.syntax_group_exclude_{&filetype}.'\>' =~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endif
" else
" if '\<'.syntax_group_include_{&filetype}.'\>' !~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endif
if syntax_group_exclude_{filetype} != ''
if '\<'.syntax_group_exclude_{filetype}.'\>' =~ '\<'.group_name.'\>'
let get_syn_list = 0 let get_syn_list = 0
endif endif
endif endfor
if get_syn_list == 1 " This code is no longer needed in version 6.0 since we have
if syntax_group_include_{filetype} != '' " augmented the syntax list command to only retrieve the syntax
if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>' " groups we are interested in.
let get_syn_list = 0 "
endif " if get_syn_list == 1
endif " if syntax_group_include_{filetype} != ''
endif " if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endif
" endif
if get_syn_list == 1 if get_syn_list == 1
" Pass in the full syntax listing, plus the group name we " Pass in the full syntax listing, plus the group name we
" are interested in. " are interested in.
let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full) let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
" if !empty(extra_syn_list)
" for elem in extra_syn_list
" let item = {'word':elem, 'kind':'t', 'info':group_name}
" let compl_list += [item]
" endfor
" endif
let syn_list = syn_list . extra_syn_list . "\n" let syn_list = syn_list . extra_syn_list . "\n"
endif endif
@@ -312,9 +380,13 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" \zs - start the match " \zs - start the match
" .\{-} - everything ... " .\{-} - everything ...
" \ze - end the match " \ze - end the match
" \( - start a group or 2 potential matches
" \n\w - at the first newline starting with a character " \n\w - at the first newline starting with a character
" \| - 2nd potential match
" \%$ - matches end of the file or string
" \) - end a group
let syntax_group = matchstr(a:syntax_full, let syntax_group = matchstr(a:syntax_full,
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze'."\n".'\w' \ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze\(\n\w\|\%$\)'
\ ) \ )
if syntax_group != "" if syntax_group != ""

View File

@@ -1,13 +1,13 @@
" tar.vim: Handles browsing tarfiles " tar.vim: Handles browsing tarfiles
" AUTOLOAD PORTION " AUTOLOAD PORTION
" Date: Aug 08, 2008 " Date: Aug 09, 2010
" Version: 23 + modifications by Bram " Version: 26
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> " Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license) " License: Vim License (see vim's :help license)
" "
" Contains many ideas from Michael Toren's <tar.vim> " Contains many ideas from Michael Toren's <tar.vim>
" "
" Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1 " Copyright: Copyright (C) 2005-2009 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free, " notice is copied with it. Like anything else that's free,
@@ -16,19 +16,22 @@
" By using this plugin, you agree that in no event will the " By using this plugin, you agree that in no event will the
" copyright holder be liable for any damages resulting from " copyright holder be liable for any damages resulting from
" the use of this software. " the use of this software.
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Load Once: {{{1 " Load Once: {{{1
let s:keepcpo= &cpo if &cp || exists("g:loaded_tar")
set cpo&vim
if &cp || exists("g:loaded_tar") || v:version < 700
finish finish
endif endif
let g:loaded_tar= "v23b" let g:loaded_tar= "v26"
"call Decho("loading autoload/tar.vim") if v:version < 702
if v:version < 701 || (v:version == 701 && !has("patch299")) echohl WarningMsg
echoerr "(autoload/tar.vim) need vim v7.1 with patchlevel 299" echo "***warning*** this version of tar needs vim 7.2"
echohl Normal
finish
endif endif
let s:keepcpo= &cpo
set cpo&vim
"call Decho("loading autoload/tar.vim")
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Default Settings: {{{1 " Default Settings: {{{1
@@ -44,7 +47,22 @@ endif
if !exists("g:tar_writeoptions") if !exists("g:tar_writeoptions")
let g:tar_writeoptions= "uf" let g:tar_writeoptions= "uf"
endif endif
if !exists("g:tar_copycmd")
if !exists("g:netrw_localcopycmd")
if has("win32") || has("win95") || has("win64") || has("win16")
if g:netrw_cygwin
let g:netrw_localcopycmd= "cp"
else
let g:netrw_localcopycmd= "copy"
endif
elseif has("unix") || has("macunix")
let g:netrw_localcopycmd= "cp"
else
let g:netrw_localcopycmd= ""
endif
endif
let g:tar_copycmd= g:netrw_localcopycmd
endif
if !exists("g:netrw_cygwin") if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$' if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
@@ -56,6 +74,9 @@ if !exists("g:netrw_cygwin")
let g:netrw_cygwin= 0 let g:netrw_cygwin= 0
endif endif
endif endif
if !exists("g:tar_extractcmd")
let g:tar_extractcmd= "tar -xf"
endif
" set up shell quoting character " set up shell quoting character
if !exists("g:tar_shq") if !exists("g:tar_shq")
@@ -88,7 +109,6 @@ fun! tar#Browse(tarfile)
if !executable(g:tar_cmd) if !executable(g:tar_cmd)
redraw! redraw!
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep let &report= repkeep
" call Dret("tar#Browse") " call Dret("tar#Browse")
return return
@@ -99,7 +119,6 @@ fun! tar#Browse(tarfile)
" if its an url, don't complain, let url-handlers such as vim do its thing " if its an url, don't complain, let url-handlers such as vim do its thing
redraw! redraw!
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif endif
let &report= repkeep let &report= repkeep
" call Dret("tar#Browse : file<".a:tarfile."> not readable") " call Dret("tar#Browse : file<".a:tarfile."> not readable")
@@ -108,7 +127,7 @@ fun! tar#Browse(tarfile)
if &ma != 1 if &ma != 1
set ma set ma
endif endif
let w:tarfile= a:tarfile let b:tarfile= a:tarfile
setlocal noswapfile setlocal noswapfile
setlocal buftype=nofile setlocal buftype=nofile
@@ -130,37 +149,41 @@ fun! tar#Browse(tarfile)
let tarfile= a:tarfile let tarfile= a:tarfile
if has("win32") && executable("cygpath") if has("win32") && executable("cygpath")
" assuming cygwin " assuming cygwin
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e') let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif endif
let curlast= line("$") let curlast= line("$")
if tarfile =~# '\.\(gz\|tgz\)$' if tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("1: exe silent r! gzip -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") " call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! gzip -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " exe "silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.lrp' elseif tarfile =~# '\.lrp'
" call Decho("2: exe silent r! cat -- ".s:Escape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ") " call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! cat -- ".s:Escape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - " exe "silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.bz2$' elseif tarfile =~# '\.bz2$'
" call Decho("3: exe silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") " call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " exe "silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.lzma$'
" call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(xz\|txz\)$'
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
else else
if tarfile =~ '^\s*-' if tarfile =~ '^\s*-'
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that. " A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
let tarfile = substitute(tarfile, '-', './-', '') let tarfile = substitute(tarfile, '-', './-', '')
endif endif
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile,1)) " call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0))
exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile,1) exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
endif endif
if v:shell_error != 0 if v:shell_error != 0
redraw! redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">" echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">") " call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
return return
endif endif
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)') if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
redraw! redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
silent %d silent %d
let eikeep= &ei let eikeep= &ei
set ei=BufReadCmd,FileReadCmd set ei=BufReadCmd,FileReadCmd
@@ -175,13 +198,13 @@ fun! tar#Browse(tarfile)
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr> noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
let &report= repkeep let &report= repkeep
" call Dret("tar#Browse : w:tarfile<".w:tarfile.">") " call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" TarBrowseSelect: {{{2 " TarBrowseSelect: {{{2
fun! s:TarBrowseSelect() fun! s:TarBrowseSelect()
" call Dfunc("TarBrowseSelect() w:tarfile<".w:tarfile."> curfile<".expand("%").">") " call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">")
let repkeep= &report let repkeep= &report
set report=10 set report=10
let fname= getline(".") let fname= getline(".")
@@ -189,7 +212,7 @@ fun! s:TarBrowseSelect()
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-' if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
redraw! redraw!
echohl WarningMsg | echo '***error*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"; See :help tar-options' echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"') " call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
return return
endif endif
@@ -201,12 +224,12 @@ fun! s:TarBrowseSelect()
return return
endif endif
" about to make a new window, need to use w:tarfile " about to make a new window, need to use b:tarfile
let tarfile= w:tarfile let tarfile= b:tarfile
let curfile= expand("%") let curfile= expand("%")
if has("win32") && executable("cygpath") if has("win32") && executable("cygpath")
" assuming cygwin " assuming cygwin
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e') let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif endif
new new
@@ -231,21 +254,27 @@ fun! tar#Read(fname,mode)
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','') let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
if has("win32") && executable("cygpath") if has("win32") && executable("cygpath")
" assuming cygwin " assuming cygwin
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e') let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif endif
" call Decho("tarfile<".tarfile.">") " call Decho("tarfile<".tarfile.">")
" call Decho("fname<".fname.">") " call Decho("fname<".fname.">")
if fname =~ '\.gz$' && executable("zcat") if fname =~ '\.bz2$' && executable("bzcat")
let decmp= "|bzcat"
let doro = 1
elseif fname =~ '\.gz$' && executable("zcat")
let decmp= "|zcat" let decmp= "|zcat"
let doro = 1 let doro = 1
elseif fname =~ '\.bz2$' && executable("bzcat") elseif fname =~ '\.lzma$' && executable("lzcat")
let decmp= "|bzcat" let decmp= "|lzcat"
let doro = 1
elseif fname =~ '\.xz$' && executable("xzcat")
let decmp= "|xzcat"
let doro = 1 let doro = 1
else else
let decmp="" let decmp=""
let doro = 0 let doro = 0
if fname =~ '\.gz$\|\.bz2$\|\.Z$\|\.zip$' if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
setlocal bin setlocal bin
endif endif
endif endif
@@ -255,22 +284,28 @@ fun! tar#Read(fname,mode)
else else
let tar_secure= " " let tar_secure= " "
endif endif
if tarfile =~# '\.\(gz\|tgz\)$' if tarfile =~# '\.bz2$'
" call Decho("5: exe silent r! gzip -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.s:Escape(fname,1)) " call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "silent r! gzip -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp exe "silent r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
exe "silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.lrp$' elseif tarfile =~# '\.lrp$'
" call Decho("6: exe silent r! cat ".s:Escape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp) " call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "silent r! cat -- ".s:Escape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp exe "silent r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.bz2$' elseif tarfile =~# '\.lzma$'
" call Decho("7: exe silent r! bzip2 -d -c ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp) " call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp exe "silent r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(xz\|txz\)$'
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
else else
if tarfile =~ '^\s*-' if tarfile =~ '^\s*-'
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that. " A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
let tarfile = substitute(tarfile, '-', './-', '') let tarfile = substitute(tarfile, '-', './-', '')
endif endif
" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions." "s:Escape(tarfile,1).tar_secure..s:Escape(fname,1).decmp) " call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp)
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." ".s:Escape(tarfile,1).tar_secure.s:Escape(fname,1).decmp exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
endif endif
if doro if doro
@@ -278,7 +313,7 @@ fun! tar#Read(fname,mode)
setlocal ro setlocal ro
endif endif
let w:tarfile= a:fname let b:tarfile= a:fname
exe "file tarfile::".fnameescape(fname) exe "file tarfile::".fnameescape(fname)
" cleanup " cleanup
@@ -286,19 +321,19 @@ fun! tar#Read(fname,mode)
set nomod set nomod
let &report= repkeep let &report= repkeep
" call Dret("tar#Read : w:tarfile<".w:tarfile.">") " call Dret("tar#Read : b:tarfile<".b:tarfile.">")
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" tar#Write: {{{2 " tar#Write: {{{2
fun! tar#Write(fname) fun! tar#Write(fname)
" call Dfunc("tar#Write(fname<".a:fname.">) w:tarfile<".w:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">") " call Dfunc("tar#Write(fname<".a:fname.">) b:tarfile<".b:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
let repkeep= &report let repkeep= &report
set report=10 set report=10
if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-' if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
redraw! redraw!
echohl WarningMsg | echo '***error*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"; See :help tar-options' echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"') " call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
return return
endif endif
@@ -307,7 +342,6 @@ fun! tar#Write(fname)
if !executable(g:tar_cmd) if !executable(g:tar_cmd)
redraw! redraw!
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep let &report= repkeep
" call Dret("tar#Write") " call Dret("tar#Write")
return return
@@ -315,7 +349,6 @@ fun! tar#Write(fname)
if !exists("*mkdir") if !exists("*mkdir")
redraw! redraw!
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep let &report= repkeep
" call Dret("tar#Write") " call Dret("tar#Write")
return return
@@ -336,7 +369,6 @@ fun! tar#Write(fname)
catch /^Vim\%((\a\+)\)\=:E344/ catch /^Vim\%((\a\+)\)\=:E344/
redraw! redraw!
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep let &report= repkeep
" call Dret("tar#Write") " call Dret("tar#Write")
return return
@@ -351,25 +383,35 @@ fun! tar#Write(fname)
cd _ZIPVIM_ cd _ZIPVIM_
" call Decho("current directory now: ".getcwd()) " call Decho("current directory now: ".getcwd())
let tarfile = substitute(w:tarfile,'tarfile:\(.\{-}\)::.*$','\1','') let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
let fname = substitute(w:tarfile,'tarfile:.\{-}::\(.*\)$','\1','') let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
" handle compressed archives " handle compressed archives
if tarfile =~# '\.gz' if tarfile =~# '\.bz2'
call system("gzip -d -- ".s:Escape(tarfile,0)) call system("bzip2 -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.bz2','','e')
let compress= "bzip2 -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.gz'
call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.gz','','e') let tarfile = substitute(tarfile,'\.gz','','e')
let compress= "gzip -- ".s:Escape(tarfile,0) let compress= "gzip -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">") " call Decho("compress<".compress.">")
elseif tarfile =~# '\.tgz' elseif tarfile =~# '\.tgz'
call system("gzip -d -- ".s:Escape(tarfile,0)) call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.tgz','.tar','e') let tarfile = substitute(tarfile,'\.tgz','.tar','e')
let compress= "gzip -- ".s:Escape(tarfile,0) let compress= "gzip -- ".shellescape(tarfile,0)
let tgz = 1 let tgz = 1
" call Decho("compress<".compress.">") " call Decho("compress<".compress.">")
elseif tarfile =~# '\.bz2' elseif tarfile =~# '\.xz'
call system("bzip2 -d -- ".s:Escape(tarfile,0)) call system("xz -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.bz2','','e') let tarfile = substitute(tarfile,'\.xz','','e')
let compress= "bzip2 -- ".s:Escape(tarfile,0) let compress= "xz -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.lzma'
call system("lzma -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.lzma','','e')
let compress= "lzma -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">") " call Decho("compress<".compress.">")
endif endif
" call Decho("tarfile<".tarfile.">") " call Decho("tarfile<".tarfile.">")
@@ -377,7 +419,6 @@ fun! tar#Write(fname)
if v:shell_error != 0 if v:shell_error != 0
redraw! redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
else else
" call Decho("tarfile<".tarfile."> fname<".fname.">") " call Decho("tarfile<".tarfile."> fname<".fname.">")
@@ -385,7 +426,7 @@ fun! tar#Write(fname)
if fname =~ '/' if fname =~ '/'
let dirpath = substitute(fname,'/[^/]\+$','','e') let dirpath = substitute(fname,'/[^/]\+$','','e')
if executable("cygpath") if executable("cygpath")
let dirpath = substitute(system("cygpath ".s:Escape(dirpath, 0)),'\n','','e') let dirpath = substitute(system("cygpath ".shellescape(dirpath, 0)),'\n','','e')
endif endif
call mkdir(dirpath,"p") call mkdir(dirpath,"p")
endif endif
@@ -405,25 +446,23 @@ fun! tar#Write(fname)
endif endif
exe "w! ".fnameescape(fname) exe "w! ".fnameescape(fname)
if executable("cygpath") if executable("cygpath")
let tarfile = substitute(system("cygpath ".s:Escape(tarfile,0)),'\n','','e') let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
endif endif
" delete old file from tarfile " delete old file from tarfile
" call Decho("system(".g:tar_cmd." --delete -f ".s:Escape(tarfile,0)." -- ".s:Escape(fname,0).")") " call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
call system(g:tar_cmd." --delete -f ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0)) call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0 if v:shell_error != 0
redraw! redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
else else
" update tarfile with new file " update tarfile with new file
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0)) " call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
call system(g:tar_cmd." -".g:tar_writeoptions." ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0)) call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0 if v:shell_error != 0
redraw! redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
elseif exists("compress") elseif exists("compress")
" call Decho("call system(".compress.")") " call Decho("call system(".compress.")")
call system(compress) call system(compress)
@@ -439,13 +478,13 @@ fun! tar#Write(fname)
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">") " call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
let tblfile= s:tblfile_{winnr()} let tblfile= s:tblfile_{winnr()}
1split|enew 1split|enew
let binkeep= &binary let binkeep= &l:binary
let eikeep = &ei let eikeep = &ei
set binary ei=all set binary ei=all
exe "e! ".fnameescape(tarfile) exe "e! ".fnameescape(tarfile)
call netrw#NetWrite(tblfile) call netrw#NetWrite(tblfile)
let &ei = eikeep let &ei = eikeep
let &binary = binkeep let &l:binary = binkeep
q! q!
unlet s:tblfile_{winnr()} unlet s:tblfile_{winnr()}
endif endif
@@ -462,38 +501,98 @@ fun! tar#Write(fname)
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Rmdir: {{{2 " s:Rmdir: {{{2
fun! s:Rmdir(fname) fun! s:Rmdir(fname)
" call Dfunc("Rmdir(fname<".a:fname.">)") " call Dfunc("Rmdir(fname<".a:fname.">)")
if has("unix") if has("unix")
call system("/bin/rm -rf -- ".s:Escape(a:fname,0)) call system("/bin/rm -rf -- ".shellescape(a:fname,0))
elseif has("win32") || has("win95") || has("win64") || has("win16") elseif has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~? "sh$" if &shell =~? "sh$"
call system("/bin/rm -rf -- ".s:Escape(a:fname,0)) call system("/bin/rm -rf -- ".shellescape(a:fname,0))
else else
call system("del /S ".s:Escape(a:fname,0)) call system("del /S ".shellescape(a:fname,0))
endif endif
endif endif
" call Dret("Rmdir") " call Dret("Rmdir")
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" s:Escape: {{{2 " tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
fun s:Escape(name,isfilt) fun! tar#Vimuntar(...)
" shellescape() was added by patch 7.0.111 " call Dfunc("tar#Vimuntar() a:0=".a:0." a:1<".(exists("a:1")? a:1 : "-n/a-").">")
if exists("*shellescape") let tarball = expand("%")
if a:isfilt " call Decho("tarball<".tarball.">")
let qnameq= shellescape(a:name,1) let tarbase = substitute(tarball,'\..*$','','')
" call Decho("tarbase<".tarbase.">")
let tarhome = expand("%:p")
if has("win32") || has("win95") || has("win64") || has("win16")
let tarhome= substitute(tarhome,'\\','/','g')
endif
let tarhome= substitute(tarhome,'/[^/]*$','','')
" call Decho("tarhome<".tarhome.">")
let tartail = expand("%:t")
" call Decho("tartail<".tartail.">")
let curdir = getcwd()
" call Decho("curdir <".curdir.">")
" set up vimhome
if a:0 > 0 && a:1 != ""
let vimhome= a:1
else else
let qnameq= shellescape(a:name) let vimhome= vimball#VimballHome()
endif
" call Decho("vimhome<".vimhome.">")
" call Decho("curdir<".curdir."> vimhome<".vimhome.">")
if simplify(curdir) != simplify(vimhome)
" copy (possibly compressed) tarball to .vim/vimfiles
" call Decho(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
" call Decho("exe cd ".fnameescape(vimhome))
exe "cd ".fnameescape(vimhome)
endif
" call Decho("getcwd<".getcwd().">")
" if necessary, decompress the tarball; then, extract it
if tartail =~ '\.tgz'
if executable("gunzip")
silent exe "!gunzip ".shellescape(tartail)
elseif executable("gzip")
silent exe "!gzip -d ".shellescape(tartail)
else
echoerr "unable to decompress<".tartail."> on this sytem"
if simplify(curdir) != simplify(tarhome)
" remove decompressed tarball, restore directory
" call Decho("delete(".tartail.".tar)")
call delete(tartail.".tar")
" call Decho("exe cd ".fnameescape(curdir))
exe "cd ".fnameescape(curdir)
endif
" call Dret("tar#Vimuntar")
return
endif endif
else else
let qnameq= g:tar_shq . a:name . g:tar_shq call vimball#Decompress(tartail,0)
endif endif
return qnameq let extractcmd= netrw#WinPath(g:tar_extractcmd)
" call Decho("system(".extractcmd." ".shellescape(tarbase.".tar").")")
call system(extractcmd." ".shellescape(tarbase.".tar"))
" set up help
if filereadable("doc/".tarbase.".txt")
" call Decho("exe helptags ".getcwd()."/doc")
exe "helptags ".getcwd()."/doc"
endif
if simplify(tarhome) != simplify(vimhome)
" remove decompressed tarball, restore directory
call delete(vimhome."/".tarbase.".tar")
exe "cd ".fnameescape(curdir)
endif
" call Dret("tar#Vimuntar")
endfun endfun
" --------------------------------------------------------------------- " =====================================================================
" Modelines And Restoration: {{{1 " Modelines And Restoration: {{{1
let &cpo= s:keepcpo let &cpo= s:keepcpo
unlet s:keepcpo unlet s:keepcpo

743
runtime/autoload/tohtml.vim Normal file
View File

@@ -0,0 +1,743 @@
" Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2011 Jan 05
"
" Additional contributors:
"
" Original by Bram Moolenaar <Bram@vim.org>
" Diff2HTML() added by Christian Brabandt <cb@256bit.org>
"
" See Mercurial change logs for more!
" this file uses line continuations
let s:cpo_sav = &cpo
set cpo-=C
" 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 a:line2 >= a:line1
let g:html_start_line = a:line1
let g:html_end_line = a:line2
else
let g:html_start_line = a:line2
let g:html_end_line = a:line1
endif
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 "}}}
unlet g:html_start_line
unlet g:html_end_line
unlet s:settings
endfunc "}}}
func! tohtml#Diff2HTML(win_list, buf_list) "{{{
let xml_line = ""
let tag_close = '>'
let s:old_paste = &paste
set paste
let s:old_magic = &magic
set magic
if s:settings.use_xhtml
if s:settings.encoding != ""
let xml_line = "<?xml version=\"1.0\" encoding=\"" . s:settings.encoding . "\"?>"
else
let xml_line = "<?xml version=\"1.0\"?>"
endif
let tag_close = ' />'
endif
let style = [s:settings.use_xhtml ? "" : '-->']
let body_line = ''
let html = []
if s:settings.use_xhtml
call add(html, xml_line)
endif
if s:settings.use_xhtml
call add(html, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">")
call add(html, '<html xmlns="http://www.w3.org/1999/xhtml">')
elseif s:settings.use_css && !s:settings.no_pre
call add(html, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">")
call add(html, '<html>')
else
call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"')
call add(html, ' "http://www.w3.org/TR/html4/loose.dtd">')
call add(html, '<html>')
endif
call add(html, '<head>')
" include encoding as close to the top as possible, but only if not already
" 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
call add(html, '<title>diff</title>')
call add(html, '<meta name="Generator" content="Vim/'.v:version/100.'.'.v:version%100.'"'.tag_close)
call add(html, '<meta name="plugin-version" content="'.g:loaded_2html_plugin.'"'.tag_close)
call add(html, '<meta name="settings" content="'.
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
\ '"'.tag_close)
call add(html, '</head>')
let body_line_num = len(html)
call add(html, '<body>')
call add(html, '<table border="1" width="100%">')
call add(html, '<tr>')
for buf in a:win_list
call add(html, '<th>'.bufname(buf).'</th>')
endfor
call add(html, '</tr><tr>')
let diff_style_start = 0
let insert_index = 0
for buf in a:buf_list
let temp = []
exe bufwinnr(buf) . 'wincmd w'
" If text is folded because of user foldmethod settings, etc. we don't want
" to act on everything in a fold by mistake.
setlocal nofoldenable
" When not using CSS or when using xhtml, the <body> line can be important.
" Assume it will be the same for all buffers and grab it from the first
" buffer. Similarly, need to grab the body end line as well.
if body_line == ''
1
call search('<body')
let body_line = getline('.')
$
call search('</body>', 'b')
let s:body_end_line = getline('.')
endif
" 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
let style_end = search('^</style>')
if style_start > 0 && style_end > 0
let buf_styles = getline(style_start + 1, style_end - 1)
for a_style in buf_styles
if index(style, a_style) == -1
if diff_style_start == 0
if a_style =~ '\<Diff\(Change\|Text\|Add\|Delete\)'
let diff_style_start = len(style)-1
endif
endif
call insert(style, a_style, insert_index)
let insert_index += 1
endif
endfor
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
" Delete those parts that are not needed so
" we can include the rest into the resulting table
1,/^<body/d_
$
?</body>?,$d_
let temp = getline(1,'$')
" undo deletion of start and end part
" so we can later save the file as valid html
" TODO: restore using grabbed lines if undolevel is 1?
normal 2u
if s:settings.use_css
call add(html, '<td valign="top"><div>')
elseif s:settings.use_xhtml
call add(html, '<td nowrap="nowrap" valign="top"><div>')
else
call add(html, '<td nowrap valign="top"><div>')
endif
let html += temp
call add(html, '</div></td>')
" Close this buffer
" TODO: the comment above says we're going to allow saving the file
" later...but here we discard it?
quit!
endfor
let html[body_line_num] = body_line
call add(html, '</tr>')
call add(html, '</table>')
call add(html, s:body_end_line)
call add(html, '</html>')
let i = 1
let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html")
" Find an unused file name if current file name is already in use
while filereadable(name)
let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e")
let i += 1
endwhile
exe "topleft new " . name
setlocal modifiable
" 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
1
let style_start = search('^</head>')-1
" Insert javascript to toggle matching folds open and closed in all windows,
" if dynamic folding is active. {{{
if s:settings.dynamic_folds
call append(style_start, [
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : " <!--",
\ " function toggleFold(objID)",
\ " {",
\ " for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)",
\ " {",
\ " var fold;",
\ ' fold = document.getElementById("win"+win_num+objID);',
\ " if(fold.className == 'closed-fold')",
\ " {",
\ " fold.className = 'open-fold';",
\ " }",
\ " else if (fold.className == 'open-fold')",
\ " {",
\ " fold.className = 'closed-fold';",
\ " }",
\ " }",
\ " }",
\ s:settings.use_xhtml ? '//]]>' : " -->",
\ "</script>"
\ ])
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. {{{
if s:settings.use_css
call append(style_start,
\ ['<style type="text/css">']+
\ style+
\ [ s:settings.use_xhtml ? '' : '<!--',
\ 'table { table-layout: fixed; }',
\ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }',
\ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }',
\ 'td div { overflow: auto; }',
\ s:settings.use_xhtml ? '' : '-->',
\ '</style>'
\])
endif "}}}
endif
let &paste = s:old_paste
let &magic = s:old_magic
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) "{{{
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 "}}}
" 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() "{{{
if exists('s:settings')
" just restore the known options if we've already retrieved them
return s:settings
else
" otherwise figure out which options are set
let user_settings = {}
" Define the correct option if the old option name exists and we haven't
" already defined the correct one. Maybe I'll put out a warnig message about
" this sometime and remove the old option entirely at some even later time,
" but for now just silently accept the old option.
if exists('g:use_xhtml') && !exists("g:html_use_xhtml")
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 )
" }}}
" override those settings that need it {{{
" hover opening implies dynamic folding
if user_settings.hover_unfold
let user_settings.dynamic_folds = 1
endif
" ignore folding overrides dynamic folding
if user_settings.ignore_folding && user_settings.dynamic_folds
let user_settings.dynamic_folds = 0
let user_settings.hover_unfold = 0
endif
" dynamic folding with no foldcolumn implies hover opens
if user_settings.dynamic_folds && user_settings.no_foldcolumn
let user_settings.hover_unfold = 1
endif
" dynamic folding implies css
if user_settings.dynamic_folds
let user_settings.use_css = 1
endif
" if we're not using CSS we cannot use a pre section because <font> tags
" aren't allowed inside a <pre> block
if !user_settings.use_css
let user_settings.no_pre = 1
endif "}}}
" 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 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 "}}}
" 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 fdm=marker

View File

@@ -1,9 +1,9 @@
" vimball.vim : construct a file containing both paths and files " vimball.vim : construct a file containing both paths and files
" Author: Charles E. Campbell, Jr. " Author: Charles E. Campbell, Jr.
" Date: Jul 30, 2008 " Date: Apr 12, 2010
" Version: 29 " Version: 31
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim " GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
" Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. " Copyright: (c) 2004-2009 by Charles E. Campbell, Jr.
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt " The VIM LICENSE applies to Vimball.vim, and Vimball.txt
" (see |copyright|) except use "Vimball" instead of "Vim". " (see |copyright|) except use "Vimball" instead of "Vim".
" No warranty, express or implied. " No warranty, express or implied.
@@ -11,11 +11,17 @@
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Load Once: {{{1 " Load Once: {{{1
if &cp || exists("g:loaded_vimball") || v:version < 700 if &cp || exists("g:loaded_vimball")
finish
endif
let g:loaded_vimball = "v31"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of vimball needs vim 7.2"
echohl Normal
finish finish
endif endif
let s:keepcpo= &cpo let s:keepcpo= &cpo
let g:loaded_vimball = "v29"
set cpo&vim set cpo&vim
"DechoTabOn "DechoTabOn
@@ -52,30 +58,6 @@ if !exists("s:USAGE")
call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined") call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined")
endif endif
endif endif
" set up shell quoting character
if exists("g:vimball_shq") && !exists("g:netrw_shq")
let g:netrw_shq= g:vimball_shq
endif
if !exists("g:netrw_shq")
if exists("&shq") && &shq != ""
let g:netrw_shq= &shq
elseif has("win32") || has("win95") || has("win64") || has("win16")
if g:netrw_cygwin
let g:netrw_shq= "'"
else
let g:netrw_shq= '"'
endif
else
let g:netrw_shq= "'"
endif
" call Decho("g:netrw_shq<".g:netrw_shq.">")
endif
" set up escape string (used to protect paths)
if !exists("g:vimball_path_escape")
let g:vimball_path_escape= ' ;#%'
endif
endif endif
" ===================================================================== " =====================================================================
@@ -106,8 +88,8 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
let vbname= vbname.'.vba' let vbname= vbname.'.vba'
endif endif
" call Decho("vbname<".vbname.">") " call Decho("vbname<".vbname.">")
if a:1 =~ '[\/]' if !a:writelevel && a:1 =~ '[\/]'
call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes") call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes; use ! to insist")
" call Dret("MkVimball : vimball name<".a:1."> should not include slashes") " call Dret("MkVimball : vimball name<".a:1."> should not include slashes")
return return
endif endif
@@ -125,7 +107,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
let home= expand(a:2) let home= expand(a:2)
else else
" use first existing directory from rtp " use first existing directory from rtp
let home= s:VimballHome() let home= vimball#VimballHome()
endif endif
" save current directory " save current directory
@@ -218,7 +200,7 @@ fun! vimball#Vimball(really,...)
return return
endif endif
if getline(1) !~ '^" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.$' if getline(1) !~ '^" Vimball Archiver'
echoerr "(Vimball) The current file does not appear to be a Vimball!" echoerr "(Vimball) The current file does not appear to be a Vimball!"
" call Dret("vimball#Vimball") " call Dret("vimball#Vimball")
return return
@@ -240,7 +222,7 @@ fun! vimball#Vimball(really,...)
if a:0 > 0 if a:0 > 0
let home= expand(a:1) let home= expand(a:1)
else else
let home= s:VimballHome() let home= vimball#VimballHome()
endif endif
" call Decho("home<".home.">") " call Decho("home<".home.">")
@@ -272,7 +254,9 @@ fun! vimball#Vimball(really,...)
while 1 < linenr && linenr < line("$") while 1 < linenr && linenr < line("$")
let fname = substitute(getline(linenr),'\t\[\[\[1$','','') let fname = substitute(getline(linenr),'\t\[\[\[1$','','')
let fname = substitute(fname,'\\','/','g') let fname = substitute(fname,'\\','/','g')
let fsize = getline(linenr+1)+0 " let fsize = getline(linenr+1)+0
let fsize = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0
let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\+\)$','\1','')
let filecnt = filecnt + 1 let filecnt = filecnt + 1
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt) " call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt)
@@ -307,7 +291,7 @@ fun! vimball#Vimball(really,...)
if !isdirectory(dirname) if !isdirectory(dirname)
" call Decho("making <".dirname.">") " call Decho("making <".dirname.">")
if exists("g:vimball_mkdir") if exists("g:vimball_mkdir")
call system(g:vimball_mkdir." ".s:Escape(dirname)) call system(g:vimball_mkdir." ".shellescape(dirname))
else else
call mkdir(dirname) call mkdir(dirname)
endif endif
@@ -337,9 +321,13 @@ fun! vimball#Vimball(really,...)
if a:really if a:really
let fnamepath= home."/".fname let fnamepath= home."/".fname
" call Decho("exe w! ".fnameescape(fnamepath)) " call Decho("exe w! ".fnameescape(fnamepath))
if fenc != ""
exe "silent w! ++enc=".fnameescape(fenc)." ".fnameescape(fnamepath)
else
exe "silent w! ".fnameescape(fnamepath) exe "silent w! ".fnameescape(fnamepath)
echo "wrote ".fnamepath endif
call s:RecordInVar(home,"call delete('".fnameescape(fnamepath)."')") echo "wrote ".fnameescape(fnamepath)
call s:RecordInVar(home,"call delete('".fnamepath."')")
endif endif
" return to tab with vimball " return to tab with vimball
@@ -418,7 +406,7 @@ fun! vimball#RmVimball(...)
if a:0 >= 2 if a:0 >= 2
let home= expand(a:2) let home= expand(a:2)
else else
let home= s:VimballHome() let home= vimball#VimballHome()
endif endif
let curdir = getcwd() let curdir = getcwd()
" call Decho("home <".home.">") " call Decho("home <".home.">")
@@ -432,19 +420,20 @@ fun! vimball#RmVimball(...)
keepalt keepjumps 1split keepalt keepjumps 1split
silent! keepalt keepjumps e .VimballRecord silent! keepalt keepjumps e .VimballRecord
let keepsrch= @/ let keepsrch= @/
" call Decho("search for ^".curfile.".vba:") " call Decho('search for ^\M'.curfile.'.\m: ')
" call Decho("search for ^".curfile."[-0-9.]*.vba:") " call Decho('search for ^\M'.curfile.'.\mvba: ')
if search('^'.curfile.": ".'cw') " call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.vba: ')
if search('^\M'.curfile."\m: ".'cw')
let foundit= 1 let foundit= 1
elseif search('^'.curfile.".vba: ",'cw') elseif search('^\M'.curfile.".\mvba: ",'cw')
let foundit= 1 let foundit= 1
elseif search('^'.curfile.'[-0-9.]*.vba: ','cw') elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw')
let foundit= 1 let foundit= 1
else else
let foundit = 0 let foundit = 0
endif endif
if foundit if foundit
let exestring = substitute(getline("."),'^'.curfile.'\S\{-}\.vba: ','','') let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
let s:VBRstring= substitute(exestring,'call delete(','','g') let s:VBRstring= substitute(exestring,'call delete(','','g')
let s:VBRstring= substitute(s:VBRstring,"[')]",'','g') let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
" call Decho("exe ".exestring) " call Decho("exe ".exestring)
@@ -472,62 +461,62 @@ endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" vimball#Decompress: attempts to automatically decompress vimballs {{{2 " vimball#Decompress: attempts to automatically decompress vimballs {{{2
fun! vimball#Decompress(fname) fun! vimball#Decompress(fname,...)
" call Dfunc("Decompress(fname<".a:fname.">)") " call Dfunc("Decompress(fname<".a:fname.">) a:0=".a:0)
" decompression: " decompression:
if expand("%") =~ '.*\.gz' && executable("gunzip") if expand("%") =~ '.*\.gz' && executable("gunzip")
" handle *.gz with gunzip " handle *.gz with gunzip
silent exe "!gunzip ".s:Escape(a:fname) silent exe "!gunzip ".shellescape(a:fname)
if v:shell_error != 0 if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">") call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">")
endif endif
let fname= substitute(a:fname,'\.gz$','','') let fname= substitute(a:fname,'\.gz$','','')
exe "e ".escape(fname,' \') exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.gz' && executable("gzip") elseif expand("%") =~ '.*\.gz' && executable("gzip")
" handle *.gz with gzip -d " handle *.gz with gzip -d
silent exe "!gzip -d ".s:Escape(a:fname) silent exe "!gzip -d ".shellescape(a:fname)
if v:shell_error != 0 if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">") call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">")
endif endif
let fname= substitute(a:fname,'\.gz$','','') let fname= substitute(a:fname,'\.gz$','','')
exe "e ".escape(fname,' \') exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.bz2' && executable("bunzip2") elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
" handle *.bz2 with bunzip2 " handle *.bz2 with bunzip2
silent exe "!bunzip2 ".s:Escape(a:fname) silent exe "!bunzip2 ".shellescape(a:fname)
if v:shell_error != 0 if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">") call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">")
endif endif
let fname= substitute(a:fname,'\.bz2$','','') let fname= substitute(a:fname,'\.bz2$','','')
exe "e ".escape(fname,' \') exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.bz2' && executable("bzip2") elseif expand("%") =~ '.*\.bz2' && executable("bzip2")
" handle *.bz2 with bzip2 -d " handle *.bz2 with bzip2 -d
silent exe "!bzip2 -d ".s:Escape(a:fname) silent exe "!bzip2 -d ".shellescape(a:fname)
if v:shell_error != 0 if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">") call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">")
endif endif
let fname= substitute(a:fname,'\.bz2$','','') let fname= substitute(a:fname,'\.bz2$','','')
exe "e ".escape(fname,' \') exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.zip' && executable("unzip") elseif expand("%") =~ '.*\.zip' && executable("unzip")
" handle *.zip with unzip " handle *.zip with unzip
silent exe "!unzip ".s:Escape(a:fname) silent exe "!unzip ".shellescape(a:fname)
if v:shell_error != 0 if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">") call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">")
endif endif
let fname= substitute(a:fname,'\.zip$','','') let fname= substitute(a:fname,'\.zip$','','')
exe "e ".escape(fname,' \') exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
endif endif
set noma bt=nofile fmr=[[[,]]] fdm=marker if a:0 == 0| setlocal noma bt=nofile fmr=[[[,]]] fdm=marker | endif
" call Dret("Decompress") " call Dret("Decompress")
endfun endfun
@@ -536,20 +525,21 @@ endfun
" vimball#ShowMesg: {{{2 " vimball#ShowMesg: {{{2
fun! vimball#ShowMesg(level,msg) fun! vimball#ShowMesg(level,msg)
" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)") " call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)")
let rulerkeep = &ruler let rulerkeep = &ruler
let showcmdkeep = &showcmd let showcmdkeep = &showcmd
set noruler noshowcmd set noruler noshowcmd
redraw! redraw!
if &fo =~ '[ta]' if &fo =~ '[ta]'
echomsg "***vimball*** " a:msg echomsg "***vimball*** ".a:msg
else else
if a:level == s:WARNING || a:level == s:USAGE if a:level == s:WARNING || a:level == s:USAGE
echohl WarningMsg echohl WarningMsg
elseif a:level == s:ERROR elseif a:level == s:ERROR
echohl Error echohl Error
endif endif
echomsg "***vimball*** " a:msg echomsg "***vimball*** ".a:msg
echohl None echohl None
endif endif
@@ -646,9 +636,9 @@ fun! s:RecordInFile(home)
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" s:VimballHome: determine/get home directory path (usually from rtp) {{{2 " vimball#VimballHome: determine/get home directory path (usually from rtp) {{{2
fun! s:VimballHome() fun! vimball#VimballHome()
" call Dfunc("VimballHome()") " call Dfunc("vimball#VimballHome()")
if exists("g:vimball_home") if exists("g:vimball_home")
let home= g:vimball_home let home= g:vimball_home
else else
@@ -674,14 +664,14 @@ fun! s:VimballHome()
if !isdirectory(home) if !isdirectory(home)
if exists("g:vimball_mkdir") if exists("g:vimball_mkdir")
" call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">") " call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">")
" call Decho("system(".g:vimball_mkdir." ".s:Escape(home).")") " call Decho("system(".g:vimball_mkdir." ".shellescape(home).")")
call system(g:vimball_mkdir." ".s:Escape(home)) call system(g:vimball_mkdir." ".shellescape(home))
else else
" call Decho("home<".home."> isn't a directory -- making it now with mkdir()") " call Decho("home<".home."> isn't a directory -- making it now with mkdir()")
call mkdir(home) call mkdir(home)
endif endif
endif endif
" call Dret("VimballHome <".home.">") " call Dret("vimball#VimballHome <".home.">")
return home return home
endfun endfun
@@ -742,21 +732,6 @@ fun! vimball#RestoreSettings()
" call Dret("RestoreSettings") " call Dret("RestoreSettings")
endfun endfun
" ---------------------------------------------------------------------
" s:Escape: {{{2
fun s:Escape(name)
" shellescape() was added by patch 7.0.111
if exists("*shellescape")
return shellescape(a:name)
endif
return g:netrw_shq . a:name . g:netrw_shq
endfun
" ---------------------------------------------------------------------
" Restore:
let &cpo= s:keepcpo
unlet s:keepcpo
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Modelines: {{{1 " Modelines: {{{1
" vim: fdm=marker " vim: fdm=marker

View File

@@ -1,7 +1,7 @@
" zip.vim: Handles browsing zipfiles " zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION " AUTOLOAD PORTION
" Date: Jul 30, 2008 " Date: Apr 12, 2010
" Version: 22 " Version: 23
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> " Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license) " License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1 " Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1
@@ -16,13 +16,19 @@
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Load Once: {{{1 " Load Once: {{{1
let s:keepcpo= &cpo if &cp || exists("g:loaded_zip")
set cpo&vim
if &cp || exists("g:loaded_zip") || v:version < 700
finish finish
endif endif
let g:loaded_zip= "v23"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of zip needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo= &cpo
set cpo&vim
let g:loaded_zip = "v22"
let s:zipfile_escape = ' ?&;\' let s:zipfile_escape = ' ?&;\'
let s:ERROR = 2 let s:ERROR = 2
let s:WARNING = 1 let s:WARNING = 1

View File

@@ -1,9 +1,9 @@
" Vim color file " Vim color file
" Maintainer: Hans Fugal <hans@fugal.net> " Maintainer: Hans Fugal <hans@fugal.net>
" Last Change: $Date$ " Last Change: $Date: 2004/06/13 19:30:30 $
" Last Change: $Date$ " Last Change: $Date: 2004/06/13 19:30:30 $
" URL: http://hans.fugal.net/vim/colors/desert.vim " URL: http://hans.fugal.net/vim/colors/desert.vim
" Version: $Id$ " Version: $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $
" cool help screens " cool help screens
" :he group-name " :he group-name

View File

@@ -0,0 +1,29 @@
" Vim compiler file
" Compiler: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 Aug 09
if exists("current_compiler")
finish
endif
let current_compiler = "cucumber"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=cucumber
CompilerSet errorformat=
\%W%m\ (Cucumber::Undefined),
\%E%m\ (%.%#),
\%Z%f:%l,
\%Z%f:%l:%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2:

View File

@@ -1,13 +1,13 @@
"------------------------------------------------------------------------------ "------------------------------------------------------------------------------
" Description: Vim Ada/Dec Ada compiler file " Description: Vim Ada/Dec Ada compiler file
" Language: Ada (Dec Ada) " Language: Ada (Dec Ada)
" $Id$ " $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik " Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischik <krischik@users.sourceforge.net> " Maintainer: Martin Krischik <krischik@users.sourceforge.net>
" $Author$ " $Author: krischik $
" $Date$ " $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6 " Version: 4.6
" $Revision$ " $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/decada.vim $ " $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/decada.vim $
" History: 21.07.2006 MK New Dec Ada " History: 21.07.2006 MK New Dec Ada
" 15.10.2006 MK Bram's suggestion for runtime integration " 15.10.2006 MK Bram's suggestion for runtime integration

View File

@@ -1,7 +1,7 @@
" Vim compiler file " Vim compiler file
" Language: eRuby " Language: eRuby
" Maintainer: Doug Kearns <dougkearns@gmail.com> " Maintainer: Doug Kearns <dougkearns@gmail.com>
" Info: $Id$ " Last Change: 2008 Aug 1
" URL: http://vim-ruby.rubyforge.org " URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site " Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com> " Release Coordinator: Doug Kearns <dougkearns@gmail.com>

View File

@@ -1,8 +1,8 @@
" Vim compiler file " Vim compiler file
" Compiler: g77 (GNU Fortran) " Compiler: g77 (GNU Fortran)
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> " Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Last Change: $Date$ " Last Change: $Date: 2004/06/13 18:17:36 $
" $Revision$ " $Revision: 1.1 $
if exists("current_compiler") if exists("current_compiler")
finish finish

23
runtime/compiler/g95.vim Normal file
View File

@@ -0,0 +1,23 @@
" Compiler: G95
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.3
" Last Change: 2011 Apr 01
" Homepage: http://www.vim.org/scripts/script.php?script_id=3492
" https://bitbucket.org/xuhdev/compiler-g95.vim
" License: Same as Vim
if exists('current_compiler')
finish
endif
let current_compiler = 'g95'
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=
\%AIn\ file\ %f:%l,
\%-C%p1,
\%-Z%trror:\ %m,
\%-Z%tarning\ (%n):\ %m,
\%-C%.%#

View File

@@ -1,7 +1,7 @@
" Vim compiler file " Vim compiler file
" Compiler: GNU C Compiler " Compiler: GNU C Compiler
" Maintainer: Nikolai Weibull <now@bitwi.se> " Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-12-20 " Latest Revision: 2010-10-14
if exists("current_compiler") if exists("current_compiler")
finish finish
@@ -12,10 +12,17 @@ let s:cpo_save = &cpo
set cpo-=C set cpo-=C
CompilerSet errorformat= CompilerSet errorformat=
\%*[^\"]\"%f\"%*\\D%l:%c:\ %m,
\%*[^\"]\"%f\"%*\\D%l:\ %m, \%*[^\"]\"%f\"%*\\D%l:\ %m,
\\"%f\"%*\\D%l:%c:\ %m,
\\"%f\"%*\\D%l:\ %m, \\"%f\"%*\\D%l:\ %m,
\%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once, \%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
\%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.), \%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.),
\%f:%l:%c:\ %trror:\ %m,
\%f:%l:%c:\ %tarning:\ %m,
\%f:%l:%c:\ %m,
\%f:%l:\ %trror:\ %m,
\%f:%l:\ %tarning:\ %m,
\%f:%l:\ %m, \%f:%l:\ %m,
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m, \\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f', \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',

View File

@@ -0,0 +1,22 @@
" Compiler: GNU Fortran Compiler
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.3
" Last Change: 19 March 2011
" Homepage: http://www.vim.org/scripts/script.php?script_id=3496
" https://bitbucket.org/xuhdev/compiler-gfortran.vim
" License: Same as Vim
if exists('current_compiler')
finish
endif
let current_compiler = 'gfortran'
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=
\%A%f:%l.%c:,
\%-Z%trror:\ %m,
\%-Z%tarning:\ %m,
\%-C%.%#

View File

@@ -1,14 +1,14 @@
"------------------------------------------------------------------------------ "------------------------------------------------------------------------------
" Description: Vim Ada/GNAT compiler file " Description: Vim Ada/GNAT compiler file
" Language: Ada (GNAT) " Language: Ada (GNAT)
" $Id$ " $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik " Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k " Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
" Ned Okie <nokie@radford.edu> " Ned Okie <nokie@radford.edu>
" $Author$ " $Author: krischik $
" $Date$ " $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6 " Version: 4.6
" $Revision$ " $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/gnat.vim $ " $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/gnat.vim $
" History: 24.05.2006 MK Unified Headers " History: 24.05.2006 MK Unified Headers
" 16.07.2006 MK Ada-Mode as vim-ball " 16.07.2006 MK Ada-Mode as vim-ball

View File

@@ -0,0 +1,22 @@
" Compiler: Intel Fortran Compiler
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.1
" Last Change: 19 March 2011
" Homepage: http://www.vim.org/scripts/script.php?script_id=3497
" https://bitbucket.org/xuhdev/compiler-ifort.vim
" License: Same as Vim
if exists('current_compiler')
finish
endif
let current_compiler = 'ifort'
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=
\%A%f(%l):\ %trror\ \#%n:\ %m,
\%A%f(%l):\ %tarning\ \#%n:\ %m,
\%-Z%p^,
\%-G%.%#

View File

@@ -1,8 +1,8 @@
" Vim Compiler File " Vim Compiler File
" Compiler: Jikes " Compiler: Jikes
" Maintainer: Dan Sharp <dwsharp at hotmail dot com> " Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Change: 2004 Mar 27 " Last Change: 20 Jan 2009
" URL: http://mywebpage.netscape.com/sharppeople/vim/compiler " URL: http://dwsharp.users.sourceforge.net/vim/compiler
if exists("current_compiler") if exists("current_compiler")
finish finish

View File

@@ -1,6 +1,6 @@
" Vim Compiler File " Vim Compiler File
" Compiler: Perl syntax checks (perl -Wc) " Compiler: Perl syntax checks (perl -Wc)
" Maintainer: Christian J. Robinson <infynity@onewest.net> " Maintainer: Christian J. Robinson <heptite@gmail.com>
" Last Change: 2006 Aug 13 " Last Change: 2006 Aug 13
if exists("current_compiler") if exists("current_compiler")

View File

@@ -1,7 +1,7 @@
" Vim compiler file " Vim compiler file
" Language: RSpec " Language: RSpec
" Maintainer: Tim Pope <vimNOSPAM@tpope.info> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Info: $Id$ " Last Change: 2009 Dec 22
" URL: http://vim-ruby.rubyforge.org " URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site " Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com> " Release Coordinator: Doug Kearns <dougkearns@gmail.com>

View File

@@ -2,7 +2,7 @@
" Language: Ruby " Language: Ruby
" Function: Syntax check and/or error reporting " Function: Syntax check and/or error reporting
" Maintainer: Tim Hammerquist <timh at rubyforge.org> " Maintainer: Tim Hammerquist <timh at rubyforge.org>
" Info: $Id$ " Last Change: 2008 Aug 1
" URL: http://vim-ruby.rubyforge.org " URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site " Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com> " Release Coordinator: Doug Kearns <dougkearns@gmail.com>

View File

@@ -1,7 +1,7 @@
" Vim compiler file " Vim compiler file
" Language: Test::Unit - Ruby Unit Testing Framework " Language: Test::Unit - Ruby Unit Testing Framework
" Maintainer: Doug Kearns <dougkearns@gmail.com> " Maintainer: Doug Kearns <dougkearns@gmail.com>
" Info: $Id$ " Last Change: 2008 Aug 1
" URL: http://vim-ruby.rubyforge.org " URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site " Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com> " Release Coordinator: Doug Kearns <dougkearns@gmail.com>

View File

@@ -3,7 +3,7 @@
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> " Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Splint Home: http://www.splint.org/ " Splint Home: http://www.splint.org/
" Last Change: 2005 Apr 21 " Last Change: 2005 Apr 21
" $Revision$ " $Revision: 1.3 $
if exists("current_compiler") if exists("current_compiler")
finish finish

View File

@@ -37,8 +37,10 @@ DOCS = \
hangulin.txt \ hangulin.txt \
hebrew.txt \ hebrew.txt \
help.txt \ help.txt \
helphelp.txt \
howto.txt \ howto.txt \
if_cscop.txt \ if_cscop.txt \
if_lua.txt \
if_mzsch.txt \ if_mzsch.txt \
if_ole.txt \ if_ole.txt \
if_perl.txt \ if_perl.txt \
@@ -167,8 +169,10 @@ HTMLS = \
gui_x11.html \ gui_x11.html \
hangulin.html \ hangulin.html \
hebrew.html \ hebrew.html \
helphelp.html \
howto.html \ howto.html \
if_cscop.html \ if_cscop.html \
if_lua.html \
if_mzsch.html \ if_mzsch.html \
if_ole.html \ if_ole.html \
if_perl.html \ if_perl.html \
@@ -336,12 +340,14 @@ uganda.nsis.txt: uganda.txt
uganda.txt | uniq >uganda.nsis.txt uganda.txt | uniq >uganda.nsis.txt
# Awk version of .txt to .html conversion. # Awk version of .txt to .html conversion.
html: noerrors tags tags.ref $(HTMLS) html: noerrors tags $(HTMLS)
@if test -f errors.log; then more errors.log; fi @if test -f errors.log; then more errors.log; fi
noerrors: noerrors:
-rm -f errors.log -rm -f errors.log
$(HTMLS): tags.ref
.txt.html: .txt.html:
$(AWK) -f makehtml.awk $< >$@ $(AWK) -f makehtml.awk $< >$@

View File

@@ -1,4 +1,4 @@
*arabic.txt* For Vim version 7.2. Last change: 2005 Mar 29 *arabic.txt* For Vim version 7.3. Last change: 2010 Nov 13
VIM REFERENCE MANUAL by Nadim Shaikli VIM REFERENCE MANUAL by Nadim Shaikli
@@ -146,7 +146,7 @@ o Enable Arabic settings [short-cut]
:set arabic :set arabic
< <
The two above noted possible invocations are the preferred manner 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: setting, both command options:
1. set the appropriate keymap 1. set the appropriate keymap

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.2. Last change: 2008 Jun 27 *autocmd.txt* For Vim version 7.3. Last change: 2010 Jul 22
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -59,10 +59,10 @@ Note: The ":autocmd" command cannot be followed by another command, since any
:au[tocmd] [group] {event} {pat} [nested] {cmd} :au[tocmd] [group] {event} {pat} [nested] {cmd}
Add {cmd} to the list of commands that Vim will Add {cmd} to the list of commands that Vim will
execute automatically on {event} for a file matching execute automatically on {event} for a file matching
{pat}. Vim always adds the {cmd} after existing {pat} |autocmd-patterns|.
autocommands, so that the autocommands execute in the Vim always adds the {cmd} after existing autocommands,
order in which they were given. See |autocmd-nested| so that the autocommands execute in the order in which
for [nested]. they were given. See |autocmd-nested| for [nested].
The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand. The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
See |autocmd-buflocal|. See |autocmd-buflocal|.
@@ -335,6 +335,8 @@ BufDelete Before deleting a buffer from the buffer list.
NOTE: When this autocommand is executed, the NOTE: When this autocommand is executed, the
current buffer "%" may be different from the current buffer "%" may be different from the
buffer being deleted "<afile>" and "<abuf>". buffer being deleted "<afile>" and "<abuf>".
Don't change to another buffer, it will cause
problems.
*BufEnter* *BufEnter*
BufEnter After entering a buffer. Useful for setting BufEnter After entering a buffer. Useful for setting
options for a file type. Also executed when options for a file type. Also executed when
@@ -397,6 +399,10 @@ BufUnload Before unloading a buffer. This is when the
NOTE: When this autocommand is executed, the NOTE: When this autocommand is executed, the
current buffer "%" may be different from the current buffer "%" may be different from the
buffer being unloaded "<afile>". buffer being unloaded "<afile>".
Don't change to another buffer, it will cause
problems.
When exiting and v:dying is 2 or more this
event is not triggered.
*BufWinEnter* *BufWinEnter*
BufWinEnter After a buffer is displayed in a window. This BufWinEnter After a buffer is displayed in a window. This
can be when the buffer is loaded (after can be when the buffer is loaded (after
@@ -418,6 +424,8 @@ BufWinLeave Before a buffer is removed from a window.
NOTE: When this autocommand is executed, the NOTE: When this autocommand is executed, the
current buffer "%" may be different from the current buffer "%" may be different from the
buffer being unloaded "<afile>". buffer being unloaded "<afile>".
When exiting and v:dying is 2 or more this
event is not triggered.
*BufWipeout* *BufWipeout*
BufWipeout Before completely deleting a buffer. The BufWipeout Before completely deleting a buffer. The
BufUnload and BufDelete events may be called BufUnload and BufDelete events may be called
@@ -428,6 +436,8 @@ BufWipeout Before completely deleting a buffer. The
NOTE: When this autocommand is executed, the NOTE: When this autocommand is executed, the
current buffer "%" may be different from the current buffer "%" may be different from the
buffer being deleted "<afile>". buffer being deleted "<afile>".
Don't change to another buffer, it will cause
problems.
*BufWrite* *BufWritePre* *BufWrite* *BufWritePre*
BufWrite or BufWritePre Before writing the whole buffer to a file. BufWrite or BufWritePre Before writing the whole buffer to a file.
*BufWriteCmd* *BufWriteCmd*
@@ -545,7 +555,7 @@ FileChangedShell When Vim notices that the modification time of
buffer that was changed "<afile>". buffer that was changed "<afile>".
NOTE: The commands must not change the current NOTE: The commands must not change the current
buffer, jump to another buffer or delete a buffer, jump to another buffer or delete a
buffer. *E246* buffer. *E246* *E811*
NOTE: This event never nests, to avoid an NOTE: This event never nests, to avoid an
endless loop. This means that while executing endless loop. This means that while executing
commands for the FileChangedShell event no commands for the FileChangedShell event no
@@ -672,10 +682,10 @@ MenuPopup Just before showing the popup menu (under the
QuickFixCmdPre Before a quickfix command is run (|:make|, QuickFixCmdPre Before a quickfix command is run (|:make|,
|:lmake|, |:grep|, |:lgrep|, |:grepadd|, |:lmake|, |:grep|, |:lgrep|, |:grepadd|,
|:lgrepadd|, |:vimgrep|, |:lvimgrep|, |:lgrepadd|, |:vimgrep|, |:lvimgrep|,
|:vimgrepadd|, |:lvimgrepadd|). The pattern is |:vimgrepadd|, |:lvimgrepadd|, |:cscope|).
matched against the command being run. When The pattern is matched against the command
|:grep| is used but 'grepprg' is set to being run. When |:grep| is used but 'grepprg'
"internal" it still matches "grep". is set to "internal" it still matches "grep".
This command cannot be used to set the This command cannot be used to set the
'makeprg' and 'grepprg' variables. 'makeprg' and 'grepprg' variables.
If this command causes an error, the quickfix If this command causes an error, the quickfix
@@ -748,8 +758,10 @@ SwapExists Detected an existing swap file when starting
'a' abort, like hitting CTRL-C 'a' abort, like hitting CTRL-C
When set to an empty string the user will be When set to an empty string the user will be
asked, as if there was no SwapExists autocmd. asked, as if there was no SwapExists autocmd.
Note: Do not try to change the buffer, the *E812*
results are unpredictable. It is not allowed to change to another buffer,
change a buffer name or change directory
here.
*Syntax* *Syntax*
Syntax When the 'syntax' option has been set. The Syntax When the 'syntax' option has been set. The
pattern is matched against the syntax name. pattern is matched against the syntax name.
@@ -791,6 +803,8 @@ VimLeave Before exiting Vim, just after writing the
.viminfo file. Executed only once, like .viminfo file. Executed only once, like
VimLeavePre. VimLeavePre.
To detect an abnormal exit use |v:dying|. To detect an abnormal exit use |v:dying|.
When v:dying is 2 or more this event is not
triggered.
*VimLeavePre* *VimLeavePre*
VimLeavePre Before exiting Vim, just before writing the VimLeavePre Before exiting Vim, just before writing the
.viminfo file. This is executed only once, .viminfo file. This is executed only once,
@@ -799,6 +813,8 @@ VimLeavePre Before exiting Vim, just before writing the
Mostly useful with a "*" pattern. > Mostly useful with a "*" pattern. >
:autocmd VimLeavePre * call CleanupStuff() :autocmd VimLeavePre * call CleanupStuff()
< To detect an abnormal exit use |v:dying|. < To detect an abnormal exit use |v:dying|.
When v:dying is 2 or more this event is not
triggered.
*VimResized* *VimResized*
VimResized After the Vim window was resized, thus 'lines' VimResized After the Vim window was resized, thus 'lines'
and/or 'columns' changed. Not when starting and/or 'columns' changed. Not when starting
@@ -827,9 +843,9 @@ The file pattern {pat} is tested for a match against the file name in one of
two ways: two ways:
1. When there is no '/' in the pattern, Vim checks for a match against only 1. When there is no '/' in the pattern, Vim checks for a match against only
the tail part of the file name (without its leading directory path). the tail part of the file name (without its leading directory path).
2. When there is a '/' in the pattern, Vim checks for a match against the 2. When there is a '/' in the pattern, Vim checks for a match against both the
both short file name (as you typed it) and the full file name (after short file name (as you typed it) and the full file name (after expanding
expanding it to a full path and resolving symbolic links). it to a full path and resolving symbolic links).
The special pattern <buffer> or <buffer=N> is used for buffer-local The special pattern <buffer> or <buffer=N> is used for buffer-local
autocommands |autocmd-buflocal|. This pattern is not matched against the name autocommands |autocmd-buflocal|. This pattern is not matched against the name
@@ -1044,7 +1060,7 @@ option will not cause any commands to be executed.
*:doautoa* *:doautoall* *:doautoa* *:doautoall*
:doautoa[ll] [group] {event} [fname] :doautoa[ll] [group] {event} [fname]
Like ":doautocmd", but apply the autocommands to each Like ":doautocmd", but apply the autocommands to each
loaded buffer. Note that {fname} is used to select loaded buffer. Note that [fname] is used to select
the autocommands, not the buffers to which they are the autocommands, not the buffers to which they are
applied. applied.
Careful: Don't use this for autocommands that delete a Careful: Don't use this for autocommands that delete a
@@ -1264,7 +1280,7 @@ and "++ff=" argument that are effective. These should be used for the command
that reads/writes the file. The |v:cmdbang| variable is one when "!" was that reads/writes the file. The |v:cmdbang| variable is one when "!" was
used, zero otherwise. used, zero otherwise.
See the $VIMRUNTIME/plugin/netrw.vim for examples. See the $VIMRUNTIME/plugin/netrwPlugin.vim for examples.
============================================================================== ==============================================================================
11. Disabling autocommands *autocmd-disable* 11. Disabling autocommands *autocmd-disable*

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 7.2. Last change: 2008 Jul 24 *change.txt* For Vim version 7.3. Last change: 2011 Feb 25
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -159,7 +159,7 @@ gR Enter Virtual Replace mode: Each character you type
<Tab> may replace several characters at once. <Tab> may replace several characters at once.
Repeat the entered text [count]-1 times. See Repeat the entered text [count]-1 times. See
|Virtual-Replace-mode| for more details. |Virtual-Replace-mode| for more details.
{not available when compiled without the +vreplace {not available when compiled without the |+vreplace|
feature} feature}
*c* *c*
@@ -279,7 +279,7 @@ gr{char} Replace the virtual characters under the cursor with
space. See |gR| and |Virtual-Replace-mode| for more space. See |gR| and |Virtual-Replace-mode| for more
details. As with |r| a count may be given. details. As with |r| a count may be given.
{char} can be entered like with |r|. {char} can be entered like with |r|.
{not available when compiled without the +vreplace {not available when compiled without the |+vreplace|
feature} feature}
*digraph-arg* *digraph-arg*
@@ -506,9 +506,9 @@ comment (starting with '"') after the ":!" command.
{filter}. Vim replaces the optional bangs with the {filter}. Vim replaces the optional bangs with the
latest given command and appends the optional [arg]. latest given command and appends the optional [arg].
Vim saves the output of the filter command in a Vim saves the output of the filter command in a
temporary file and then reads the file into the temporary file and then reads the file into the buffer
buffer. Vim uses the 'shellredir' option to redirect |tempfile|. Vim uses the 'shellredir' option to
the filter output to the temporary file. redirect the filter output to the temporary file.
However, if the 'shelltemp' option is off then pipes However, if the 'shelltemp' option is off then pipes
are used when possible (on Unix). are used when possible (on Unix).
When the 'R' flag is included in 'cpoptions' marks in When the 'R' flag is included in 'cpoptions' marks in
@@ -524,7 +524,9 @@ comment (starting with '"') after the ":!" command.
option is empty (this is the default), use the option is empty (this is the default), use the
internal formatting function |C-indenting|. But when internal formatting function |C-indenting|. But when
'indentexpr' is not empty, it will be used instead 'indentexpr' is not empty, it will be used instead
|indent-expression|. |indent-expression|. When Vim was compiled without
internal formatting then the "indent" program is used
as a last resort.
*==* *==*
== Filter [count] lines like with ={motion}. == Filter [count] lines like with ={motion}.
@@ -534,6 +536,22 @@ comment (starting with '"') after the ":!" command.
{not in Vi} {not in Vi}
*tempfile* *setuid*
Vim uses temporary files for filtering, generating diffs and also for
tempname(). For Unix, the file will be in a private directory (only
accessible by the current user) to avoid security problems (e.g., a symlink
attack or other people reading your file). When Vim exits the directory and
all files in it are deleted. When Vim has the setuid bit set this may cause
problems, the temp file is owned by the setuid user but the filter command
probably runs as the original user.
On MS-DOS and OS/2 the first of these directories that works is used: $TMP,
$TEMP, c:\TMP, c:\TEMP.
For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
For MS-Windows the GetTempFileName() system function is used.
For other systems the tmpnam() library function is used.
4.2 Substitute *:substitute* 4.2 Substitute *:substitute*
*:s* *:su* *:s* *:su*
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count] :[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
@@ -567,7 +585,7 @@ comment (starting with '"') after the ":!" command.
":&r". See |:s_flags| for [flags]. ":&r". See |:s_flags| for [flags].
*&* *&*
& Synonym for ":s//~/" (repeat last substitute). Note & Synonym for ":s" (repeat last substitute). Note
that the flags are not remembered, thus it might that the flags are not remembered, thus it might
actually work differently. You can use ":&&" to keep actually work differently. You can use ":&&" to keep
the flags. the flags.
@@ -604,9 +622,9 @@ The flags that you can use for the substitute commands:
'a' to substitute this and all remaining matches {not in Vi} 'a' to substitute this and all remaining matches {not in Vi}
'q' to quit substituting {not in Vi} 'q' to quit substituting {not in Vi}
CTRL-E to scroll the screen up {not in Vi, not available when CTRL-E to scroll the screen up {not in Vi, not available when
compiled without the +insert_expand feature} compiled without the |+insert_expand| feature}
CTRL-Y to scroll the screen down {not in Vi, not available when CTRL-Y to scroll the screen down {not in Vi, not available when
compiled without the +insert_expand feature} compiled without the |+insert_expand| feature}
If the 'edcompatible' option is on, Vim remembers the [c] flag and If the 'edcompatible' option is on, Vim remembers the [c] flag and
toggles it each time you use it, but resets it when you give a new toggles it each time you use it, but resets it when you give a new
search pattern. search pattern.
@@ -672,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! 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 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 uses the pattern from the last substitute, ":global", or search
command. command.
@@ -861,7 +880,10 @@ inside of strings can change! Also see 'softtabstop' option. >
*:reg* *:registers* *:reg* *:registers*
:reg[isters] Display the contents of all numbered and named :reg[isters] Display the contents of all numbered and named
registers. {not in Vi} registers. If a register is written to for |:redir|
it will not be listed.
{not in Vi}
:reg[isters] {arg} Display the contents of the numbered and named :reg[isters] {arg} Display the contents of the numbered and named
registers that are mentioned in {arg}. For example: > registers that are mentioned in {arg}. For example: >
@@ -994,6 +1016,11 @@ register. With blockwise selection it also depends on the size of the block
and whether the corners are on an existing character. (Implementation detail: and whether the corners are on an existing character. (Implementation detail:
it actually works by first putting the register after the selection and then it actually works by first putting the register after the selection and then
deleting the selection.) deleting the selection.)
The previously selected text is put in the unnamed register. If you want to
put the same text into a Visual selection several times you need to use
another register. E.g., yank the text to copy, Visually select the text to
replace and use "0p . You can repeat this as many times as you like, the
unnamed register will be changed each time.
*blockwise-register* *blockwise-register*
If you use a blockwise Visual mode command to get the text into the register, If you use a blockwise Visual mode command to get the text into the register,
@@ -1031,8 +1058,10 @@ There are nine types of registers: *registers* *E354*
Vim fills this register with text deleted with the "d", "c", "s", "x" commands Vim fills this register with text deleted with the "d", "c", "s", "x" commands
or copied with the yank "y" command, regardless of whether or not a specific or copied with the yank "y" command, regardless of whether or not a specific
register was used (e.g. "xdd). This is like the unnamed register is pointing register was used (e.g. "xdd). This is like the unnamed register is pointing
to the last used register. An exception is the '_' register: "_dd does not to the last used register. Thus when appending using an uppercase register
store the deleted text in any register. name, the unnamed register contains the same text as the named register.
An exception is the '_' register: "_dd does not store the deleted text in any
register.
Vim uses the contents of the unnamed register for any put command (p or P) Vim uses the contents of the unnamed register for any put command (p or P)
which does not specify a register. Additionally you can access it with the which does not specify a register. Additionally you can access it with the
name '"'. This means you have to type two double quotes. Writing to the "" name '"'. This means you have to type two double quotes. Writing to the ""
@@ -1098,15 +1127,20 @@ normal command-line editing commands are available, including a special
history for expressions. When you end the command-line by typing <CR>, Vim history for expressions. When you end the command-line by typing <CR>, Vim
computes the result of the expression. If you end it with <Esc>, Vim abandons computes the result of the expression. If you end it with <Esc>, Vim abandons
the expression. If you do not enter an expression, Vim uses the previous the expression. If you do not enter an expression, Vim uses the previous
expression (like with the "/" command). The expression must evaluate to a expression (like with the "/" command).
string. If the result is a number it's turned into a string. A List,
Dictionary or FuncRef results in an error message (use string() to convert). The expression must evaluate to a String. A Number is always automatically
If the "= register is used for the "p" command, the string is split up at <NL> converted to a String. For the "p" and ":put" command, if the result is a
characters. If the string ends in a <NL>, it is regarded as a linewise Float it's converted into a String. If the result is a List each element is
turned into a String and used as a line. A Dictionary or FuncRef results in
an error message (use string() to convert).
If the "= register is used for the "p" command, the String is split up at <NL>
characters. If the String ends in a <NL>, it is regarded as a linewise
register. {not in Vi} register. {not in Vi}
7. Selection and drop registers "*, "+ and "~ 7. Selection and drop registers "*, "+ and "~
Use these register for storing and retrieving the selected text for the GUI. Use these registers for storing and retrieving the selected text for the GUI.
See |quotestar| and |quoteplus|. When the clipboard is not available or not See |quotestar| and |quoteplus|. When the clipboard is not available or not
working, the unnamed register is used instead. For Unix systems the clipboard working, the unnamed register is used instead. For Unix systems the clipboard
is only available when the |+xterm_clipboard| feature is present. {not in Vi} is only available when the |+xterm_clipboard| feature is present. {not in Vi}
@@ -1212,7 +1246,8 @@ gq{motion} Format the lines that {motion} moves over.
:nnoremap Q gq :nnoremap Q gq
gqgq *gqgq* *gqq* gqgq *gqgq* *gqq*
gqq Format the current line. {not in Vi} gqq Format the current line. With a count format that
many lines. {not in Vi}
*v_gq* *v_gq*
{Visual}gq Format the highlighted text. (for {Visual} see {Visual}gq Format the highlighted text. (for {Visual} see

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.2. Last change: 2008 Sep 18 *cmdline.txt* For Vim version 7.3. Last change: 2011 Mar 27
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -83,9 +83,9 @@ CTRL-V Insert next non-digit literally. Up to three digits form the
CTRL-Q Same as CTRL-V. But with some terminals it is used for CTRL-Q Same as CTRL-V. But with some terminals it is used for
control flow, it doesn't work then. control flow, it doesn't work then.
*c_<Left>* *c_<Left>* *c_Left*
<Left> cursor left <Left> cursor left
*c_<Right>* *c_<Right>* *c_Right*
<Right> cursor right <Right> cursor right
*c_<S-Left>* *c_<S-Left>*
<S-Left> or <C-Left> *c_<C-Left>* <S-Left> or <C-Left> *c_<C-Left>*
@@ -93,18 +93,18 @@ CTRL-Q Same as CTRL-V. But with some terminals it is used for
*c_<S-Right>* *c_<S-Right>*
<S-Right> or <C-Right> *c_<C-Right>* <S-Right> or <C-Right> *c_<C-Right>*
cursor one WORD right cursor one WORD right
CTRL-B or <Home> *c_CTRL-B* *c_<Home>* CTRL-B or <Home> *c_CTRL-B* *c_<Home>* *c_Home*
cursor to beginning of command-line cursor to beginning of command-line
CTRL-E or <End> *c_CTRL-E* *c_<End>* CTRL-E or <End> *c_CTRL-E* *c_<End>* *c_End*
cursor to end of command-line cursor to end of command-line
*c_<LeftMouse>* *c_<LeftMouse>*
<LeftMouse> Move the cursor to the position of the mouse click. <LeftMouse> Move the cursor to the position of the mouse click.
CTRL-H *c_<BS>* *c_CTRL-H* CTRL-H *c_<BS>* *c_CTRL-H* *c_BS*
<BS> Delete the character in front of the cursor (see |:fixdel| if <BS> Delete the character in front of the cursor (see |:fixdel| if
your <BS> key does not do what you want). your <BS> key does not do what you want).
*c_<Del>* *c_<Del>* *c_Del*
<Del> Delete the character under the cursor (at end of line: <Del> Delete the character under the cursor (at end of line:
character before the cursor) (see |:fixdel| if your <Del> character before the cursor) (see |:fixdel| if your <Del>
key does not do what you want). key does not do what you want).
@@ -118,9 +118,7 @@ CTRL-U Remove all characters between the cursor position and
preferred behavior, add the following to your .vimrc: > preferred behavior, add the following to your .vimrc: >
:cnoremap <C-U> <C-E><C-U> :cnoremap <C-U> <C-E><C-U>
< <
Note: if the command-line becomes empty with one of the *c_<Insert>* *c_Insert*
delete commands, Command-line mode is quit.
*c_<Insert>*
<Insert> Toggle between insert and overstrike. {not in Vi} <Insert> Toggle between insert and overstrike. {not in Vi}
{char1} <BS> {char2} or *c_digraph* {char1} <BS> {char2} or *c_digraph*
@@ -184,7 +182,7 @@ CTRL-R CTRL-A *c_CTRL-R_CTRL-A* *c_<C-R>_<C-A>*
the word that was already typed is not inserted again. the word that was already typed is not inserted again.
{not in Vi} {not in Vi}
CTRL-F and CTRL-P: {only when +file_in_path feature is CTRL-F and CTRL-P: {only when |+file_in_path| feature is
included} included}
*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>* *c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
@@ -226,9 +224,9 @@ CTRL-Y When there is a modeless selection, copy the selection into
the clipboard. |modeless-selection| the clipboard. |modeless-selection|
If there is no selection CTRL-Y is inserted as a character. If there is no selection CTRL-Y is inserted as a character.
CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
<CR> or <NL> start entered command <CR> or <NL> start entered command
*c_<Esc>* *c_<Esc>* *c_Esc*
<Esc> When typed and 'x' not present in 'cpoptions', quit <Esc> When typed and 'x' not present in 'cpoptions', quit
Command-line mode without executing. In macros or when 'x' Command-line mode without executing. In macros or when 'x'
present in 'cpoptions', start entered command. present in 'cpoptions', start entered command.
@@ -237,12 +235,12 @@ CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>*
*c_CTRL-C* *c_CTRL-C*
CTRL-C quit command-line without executing CTRL-C quit command-line without executing
*c_<Up>* *c_<Up>* *c_Up*
<Up> recall older command-line from history, whose beginning <Up> recall older command-line from history, whose beginning
matches the current command-line (see below). matches the current command-line (see below).
{not available when compiled without the |+cmdline_hist| {not available when compiled without the |+cmdline_hist|
feature} feature}
*c_<Down>* *c_<Down>* *c_Down*
<Down> recall more recent command-line from history, whose beginning <Down> recall more recent command-line from history, whose beginning
matches the current command-line (see below). matches the current command-line (see below).
{not available when compiled without the |+cmdline_hist| {not available when compiled without the |+cmdline_hist|
@@ -374,10 +372,10 @@ word before the cursor. This is available for:
- Mappings: Only after a ":map" or similar command. - Mappings: Only after a ":map" or similar command.
- Variable and function names: Only after a ":if", ":call" 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 When Vim was compiled without the |+cmdline_compl| feature only file names,
names, directories and help items can be completed. The number of help item directories and help items can be completed. The number of help item matches
matches is limited (currently to 300) to avoid a long delay when there are is limited (currently to 300) to avoid a long delay when there are very many
very many matches. matches.
These are the commands that can be used: These are the commands that can be used:
@@ -418,11 +416,15 @@ CTRL-L A match is done on the pattern in front of the cursor. If
than the pattern, no completion is done. than the pattern, no completion is done.
When 'incsearch' is set, entering a search pattern for "/" or When 'incsearch' is set, entering a search pattern for "/" or
"?" and the current match is displayed then CTRL-L will add "?" and the current match is displayed then CTRL-L will add
one character from the end of the current match. one character from the end of the current match. If
'ignorecase' and 'smartcase' are set and the command line has
no uppercase characters, the added character is converted to
lowercase.
The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in
a previous version <Esc> was used). In the pattern standard wildcards '*' and a previous version <Esc> was used). In the pattern standard wildcards '*' and
'?' are accepted. '*' matches any string, '?' matches exactly one character. '?' are accepted when matching file names. '*' matches any string, '?'
matches exactly one character.
If you like tcsh's autolist completion, you can use this mapping: If you like tcsh's autolist completion, you can use this mapping:
:cnoremap X <C-L><C-D> :cnoremap X <C-L><C-D>
@@ -441,13 +443,20 @@ between files with almost the same name. If there are multiple matches,
those files with an extension that is in the 'suffixes' option are ignored. those files with an extension that is in the 'suffixes' option are ignored.
The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending
in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored. in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored.
It is impossible to ignore suffixes with two dots. Examples:
An empty entry, two consecutive commas, match a file name that does not
contain a ".", thus has no suffix. This is useful to ignore "prog" and prefer
"prog.c".
Examples:
pattern: files: match: ~ pattern: files: match: ~
test* test.c test.h test.o test.c test* test.c test.h test.o test.c
test* test.h test.o test.h and test.o test* test.h test.o test.h and test.o
test* test.i test.h test.c test.i and test.c test* test.i test.h test.c test.i and test.c
It is impossible to ignore suffixes with two dots.
If there is more than one matching file (after ignoring the ones matching If there is more than one matching file (after ignoring the ones matching
the 'suffixes' option) the first file name is inserted. You can see that the 'suffixes' option) the first file name is inserted. You can see that
there is only one match when you type 'wildchar' twice and the completed there is only one match when you type 'wildchar' twice and the completed
@@ -478,14 +487,14 @@ And this in your .vimrc: >
The Ex commands have a few specialties: The Ex commands have a few specialties:
*:quote* *:quote* *:comment*
'"' at the start of a line causes the whole line to be ignored. '"' '"' at the start of a line causes the whole line to be ignored. '"'
after a command causes the rest of the line to be ignored. This can be used after a command causes the rest of the line to be ignored. This can be used
to add comments. Example: > to add comments. Example: >
:set ai "set 'autoindent' option :set ai "set 'autoindent' option
It is not possible to add a comment to a shell command ":!cmd" or to the It is not possible to add a comment to a shell command ":!cmd" or to the
":map" command and friends, because they see the '"' as part of their ":map" command and a few others, because they see the '"' as part of their
argument. argument. This is mentioned where the command is explained.
*:bar* *:\bar* *:bar* *:\bar*
'|' can be used to separate commands, so you can give multiple commands in one '|' can be used to separate commands, so you can give multiple commands in one
@@ -517,6 +526,7 @@ followed by another Vim command:
:registers :registers
:read ! :read !
:scscope :scscope
:sign
:tcl :tcl
:tcldo :tcldo
:tclfile :tclfile
@@ -737,15 +747,15 @@ characters have a special meaning. These can also be used in the expression
function expand() |expand()|. function expand() |expand()|.
% Is replaced with the current file name. *:_%* *c_%* % Is replaced with the current file name. *:_%* *c_%*
# Is replaced with the alternate file name. *:_#* *c_#* # Is replaced with the alternate file name. *:_#* *c_#*
#n (where n is a number) is replaced with the file name of #n (where n is a number) is replaced with *:_#0* *:_#n*
buffer n. "#0" is the same as "#". the file name of buffer n. "#0" is the same as "#". *c_#n*
## Is replaced with all names in the argument list *:_##* *c_##* ## Is replaced with all names in the argument list *:_##* *c_##*
concatenated, separated by spaces. Each space in a name concatenated, separated by spaces. Each space in a name
is preceded with a backslash. is preceded with a backslash.
#<n (where n is a number > 0) is replaced with old *:_#<* *c_#<* #<n (where n is a number > 0) is replaced with old *:_#<* *c_#<*
file name n. See |:oldfiles| or |v:oldfiles| to get the file name n. See |:oldfiles| or |v:oldfiles| to get the
number. *E809* number. *E809*
{only when compiled with the +eval and +viminfo features} {only when compiled with the |+eval| and |+viminfo| features}
Note that these, except "#<n", give the file name as it was typed. If an Note that these, except "#<n", give the file name as it was typed. If an
absolute path is needed (when using the file name from a different directory), absolute path is needed (when using the file name from a different directory),
@@ -772,33 +782,38 @@ it, no matter how many backslashes.
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>* *:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
*:<sfile>* *<sfile>* *:<afile>* *<afile>* *:<sfile>* *<sfile>* *:<afile>* *<afile>*
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>* *:<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! 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 (like |star|)
<cWORD> is replaced with the WORD under the cursor (see |WORD|) <cWORD> is replaced with the WORD under the cursor (see |WORD|)
<cfile> is replaced with the path name under the cursor (like what <cfile> is replaced with the path name under the cursor (like what
|gf| uses) |gf| uses)
<afile> when executing autocommands, is replaced with the file name <afile> When executing autocommands, is replaced with the file name
for a file read or write for a file read or write.
<abuf> when executing autocommands, is replaced with the currently <abuf> When executing autocommands, is replaced with the currently
effective buffer number (for ":r file" and ":so file" it is effective buffer number (for ":r file" and ":so file" it is
the current buffer, the file being read/sourced is not in a the current buffer, the file being read/sourced is not in a
buffer). 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 which this autocommand was executed. It differs from
<afile> only when the file name isn't used to match with <afile> only when the file name isn't used to match with
(for FileType, Syntax and SpellFileMissing events). (for FileType, Syntax and SpellFileMissing events).
<sfile> when executing a ":source" command, is replaced with the <sfile> When executing a ":source" command, is replaced with the
file name of the sourced file; file name of the sourced file. *E498*
when executing a function, is replaced with When executing a function, is replaced with
"function {function-name}"; function call nesting is "function {function-name}"; function call nesting is
indicated like this: indicated like this:
"function {function-name1}..{function-name2}". Note that "function {function-name1}..{function-name2}". Note that
filename-modifiers are useless when <sfile> is used inside filename-modifiers are useless when <sfile> is used inside
a function. 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* *filename-modifiers*
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* *:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs*
*%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs*
The file name modifiers can be used after "%", "#", "#n", "<cfile>", "<sfile>", The file name modifiers can be used after "%", "#", "#n", "<cfile>", "<sfile>",
"<afile>" or "<abuf>". They are also used with the |fnamemodify()| function. "<afile>" or "<abuf>". They are also used with the |fnamemodify()| function.
These are not available when Vim has been compiled without the |+modify_fname| These are not available when Vim has been compiled without the |+modify_fname|
@@ -850,7 +865,7 @@ These modifiers can be given, in this order:
After this, the previous modifiers can be used again. For After this, the previous modifiers can be used again. For
example ":p", to make a full path after the substitution. example ":p", to make a full path after the substitution.
:gs?pat?sub? :gs?pat?sub?
Substitute all occurrences of "path" with "sub". Otherwise Substitute all occurrences of "pat" with "sub". Otherwise
this works like ":s". this works like ":s".
Examples, when the file name is "src/version.c", current dir Examples, when the file name is "src/version.c", current dir
@@ -942,7 +957,7 @@ for the file "$home" in the root directory. A few examples:
============================================================================== ==============================================================================
6. Command-line window *cmdline-window* *cmdwin* 6. Command-line window *cmdline-window* *cmdwin*
*command-line-window*
In the command-line window the command line can be edited just like editing In the command-line window the command line can be edited just like editing
text in any window. It is a special kind of window, because you cannot leave text in any window. It is a special kind of window, because you cannot leave
it in a normal way. it in a normal way.
@@ -950,12 +965,12 @@ it in a normal way.
feature} feature}
OPEN OPEN *c_CTRL-F* *q:* *q/* *q?*
There are two ways to open the command-line window: There are two ways to open the command-line window:
1. From Command-line mode, use the key specified with the 'cedit' option. 1. From Command-line mode, use the key specified with the 'cedit' option.
The default is CTRL-F when 'compatible' is not set. The default is CTRL-F when 'compatible' is not set.
2. From Normal mode, use the "q:", "q/" or "q?" command. *q:* *q/* *q?* 2. From Normal mode, use the "q:", "q/" or "q?" command.
This starts editing an Ex command-line ("q:") or search string ("q/" or This starts editing an Ex command-line ("q:") or search string ("q/" or
"q?"). Note that this is not possible while recording is in progress (the "q?"). Note that this is not possible while recording is in progress (the
"q" stops recording then). "q" stops recording then).
@@ -985,7 +1000,8 @@ nesting.
The command-line window is not a normal window. It is not possible to move to The command-line window is not a normal window. It is not possible to move to
another window or edit another buffer. All commands that would do this are another window or edit another buffer. All commands that would do this are
disabled in the command-line window. Of course it _is_ possible to execute disabled in the command-line window. Of course it _is_ possible to execute
any command that you entered in the command-line window. any command that you entered in the command-line window. Other text edits are
discarded when closing the window.
CLOSE *E199* CLOSE *E199*
@@ -1020,8 +1036,8 @@ VARIOUS
The command-line window cannot be used: The command-line window cannot be used:
- when there already is a command-line window (no nesting) - when there already is a command-line window (no nesting)
- for entering a encryption key or when using inputsecret() - for entering an encryption key or when using inputsecret()
- when Vim was not compiled with the +vertsplit feature - when Vim was not compiled with the |+vertsplit| feature
Some options are set when the command-line window is opened: Some options are set when the command-line window is opened:
'filetype' "vim", when editing an Ex command-line; this starts Vim syntax 'filetype' "vim", when editing an Ex command-line; this starts Vim syntax

View File

@@ -1,4 +1,4 @@
*debug.txt* For Vim version 7.2. Last change: 2006 May 01 *debug.txt* For Vim version 7.3. Last change: 2010 Dec 22
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -10,7 +10,8 @@ This is for debugging Vim itself, when it doesn't work properly.
For debugging Vim scripts, functions, etc. see |debug-scripts| For debugging Vim scripts, functions, etc. see |debug-scripts|
1. Location of a crash, using gcc and gdb |debug-gcc| 1. Location of a crash, using gcc and gdb |debug-gcc|
2. Windows Bug Reporting |debug-win32| 2. Locating memory leaks |debug-leaks|
3. Windows Bug Reporting |debug-win32|
============================================================================== ==============================================================================
@@ -20,8 +21,9 @@ 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. compilation, here is what you can do to find out exactly where Vim crashes.
This also applies when using the MingW tools. This also applies when using the MingW tools.
1. Compile Vim with the "-g" option (there is a line in the Makefile for this, 1. Compile Vim with the "-g" option (there is a line in the src/Makefile for
which you can uncomment). 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): > 2. Execute these commands (replace "11" with the test that fails): >
cd testdir cd testdir
@@ -38,13 +40,35 @@ This also applies when using the MingW tools.
============================================================================== ==============================================================================
2. Windows Bug Reporting *debug-win32* 2. Locating memory leaks *debug-leaks* *valgrind*
If you suspect Vim is leaking memory and you are using Linux, the valgrind
tool is very useful to pinpoint memory leaks.
First of all, build Vim with EXITFREE defined. Search for this in MAKEFILE
and uncomment the line.
Use this command to start Vim:
>
valgrind --log-file=valgrind.log --leak-check=full ./vim
Note: Vim will run much slower. If your .vimrc is big or you have several
plugins you need to be patient for startup, or run with the "-u NONE"
argument.
There are often a few leaks from libraries, such as getpwuid() and
XtVaAppCreateShell(). Those are unavoidable. The number of bytes should be
very small a Kbyte or less.
==============================================================================
3. Windows Bug Reporting *debug-win32*
If the Windows version of Vim crashes in a reproducible manner, you can take If the Windows version of Vim crashes in a reproducible manner, you can take
some steps to provide a useful bug report. some steps to provide a useful bug report.
GENERIC ~ 3.1 GENERIC ~
You must obtain the debugger symbols (PDB) file for your executable: gvim.pdb You must obtain the debugger symbols (PDB) file for your executable: gvim.pdb
for gvim.exe, or vim.pdb for vim.exe. The PDB should be available from the for gvim.exe, or vim.pdb for vim.exe. The PDB should be available from the
@@ -66,7 +90,7 @@ a Vim executable compiled with the Borland compiler; gdb (see above
*debug-vs2005* *debug-vs2005*
2.2 Debugging Vim crashes with Visual Studio 2005/Visual C++ 2005 Express ~ 3.2 Debugging Vim crashes with Visual Studio 2005/Visual C++ 2005 Express ~
First launch vim.exe or gvim.exe and then launch Visual Studio. (If you don't First launch vim.exe or gvim.exe and then launch Visual Studio. (If you don't
have Visual Studio, follow the instructions at |get-ms-debuggers| to obtain a have Visual Studio, follow the instructions at |get-ms-debuggers| to obtain a
@@ -100,7 +124,7 @@ installed as a just-in-time debugger. Use WinDbg, |debug-windbg|, if you
need to save minidumps or you want a just-in-time (postmortem) debugger. need to save minidumps or you want a just-in-time (postmortem) debugger.
*debug-windbg* *debug-windbg*
2.3 Debugging Vim crashes with WinDbg ~ 3.3 Debugging Vim crashes with WinDbg ~
See |get-ms-debuggers| to obtain a copy of WinDbg. See |get-ms-debuggers| to obtain a copy of WinDbg.
@@ -126,7 +150,7 @@ To save a minidump, type the following at the WinDbg command line: >
.dump vim.dmp .dump vim.dmp
< <
*debug-minidump* *debug-minidump*
2.4 Opening a Minidump ~ 3.4 Opening a Minidump ~
If you have a minidump file, you can open it in Visual Studio or in WinDbg. If you have a minidump file, you can open it in Visual Studio or in WinDbg.
@@ -138,7 +162,7 @@ In WinDbg: choose Open Crash Dump on the File menu. Follow the instructions in
|debug-windbg| to set the Symbol File Path. |debug-windbg| to set the Symbol File Path.
*get-ms-debuggers* *get-ms-debuggers*
2.5 Obtaining Microsoft Debugging Tools ~ 3.5 Obtaining Microsoft Debugging Tools ~
The Debugging Tools for Windows (including WinDbg) can be downloaded from The Debugging Tools for Windows (including WinDbg) can be downloaded from
http://www.microsoft.com/whdc/devtools/debugging/default.mspx http://www.microsoft.com/whdc/devtools/debugging/default.mspx

View File

@@ -1,4 +1,4 @@
*debugger.txt* For Vim version 7.2. Last change: 2005 Mar 29 *debugger.txt* For Vim version 7.3. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Gordon Prieur VIM REFERENCE MANUAL by Gordon Prieur

View File

@@ -1,4 +1,4 @@
*develop.txt* For Vim version 7.2. Last change: 2007 May 11 *develop.txt* For Vim version 7.3. Last change: 2008 Dec 17
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -64,7 +64,7 @@ completely different editor. Extensions are done with a "Vi spirit".
hard time finding and remembering them. Keep in mind that more commands and hard time finding and remembering them. Keep in mind that more commands and
options will be added later. options will be added later.
- A feature that people do not know about is a useless feature. Don't add - A feature that people do not know about is a useless feature. Don't add
obscure features, or at least add hints in documentation that they exists. obscure features, or at least add hints in documentation that they exist.
- Minimize using CTRL and other modifiers, they are more difficult to type. - Minimize using CTRL and other modifiers, they are more difficult to type.
- There are many first-time and inexperienced Vim users. Make it easy for - There are many first-time and inexperienced Vim users. Make it easy for
them to start using Vim and learn more over time. them to start using Vim and learn more over time.
@@ -323,7 +323,7 @@ Wrong: var=a*5;
OK: var = a * 5; OK: var = a * 5;
In general: Use empty lines to group lines of code together. Put a comment In general: Use empty lines to group lines of code together. Put a comment
just above the group of lines. This makes it more easy to quickly see what is just above the group of lines. This makes it easier to quickly see what is
being done. being done.
OK: /* Prepare for building the table. */ OK: /* Prepare for building the table. */

View File

@@ -1,11 +1,11 @@
*diff.txt* For Vim version 7.2. Last change: 2008 Jul 21 *diff.txt* For Vim version 7.3. Last change: 2010 Dec 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
*diff* *vimdiff* *gvimdiff* *diff-mode* *diff* *vimdiff* *gvimdiff* *diff-mode*
This file describes the +diff feature: Showing differences between two, This file describes the |+diff| feature: Showing differences between two,
three or four versions of the same file. three or four versions of the same file.
The basics are explained in section |08.7| of the user manual. The basics are explained in section |08.7| of the user manual.
@@ -57,6 +57,7 @@ In each of the edited files these options are set:
'diff' on 'diff' on
'scrollbind' on 'scrollbind' on
'cursorbind' on
'scrollopt' includes "hor" 'scrollopt' includes "hor"
'wrap' off 'wrap' off
'foldmethod' "diff" 'foldmethod' "diff"
@@ -64,6 +65,9 @@ In each of the edited files these options are set:
These options are set local to the window. When editing another file they are These options are set local to the window. When editing another file they are
reset to the global value. reset to the global value.
The options can still be overruled from a modeline when re-editing the file.
However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is
set.
The differences shown are actually the differences in the buffer. Thus if you The differences shown are actually the differences in the buffer. Thus if you
make changes after loading a file, these will be included in the displayed make changes after loading a file, these will be included in the displayed
@@ -91,7 +95,7 @@ While already in Vim you can start diff mode in three ways.
:diffthis Make the current window part of the diff windows. This sets :diffthis Make the current window part of the diff windows. This sets
the options like for "vimdiff". the options like for "vimdiff".
:diffpatch {patchfile} *:diffp* *:diffpatch* :diffpatch {patchfile} *E816* *:diffp* *:diffpatch*
Use the current buffer, patch it with the diff found in Use the current buffer, patch it with the diff found in
{patchfile} and open a buffer on the result. The options are {patchfile} and open a buffer on the result. The options are
set as for "vimdiff". set as for "vimdiff".
@@ -121,7 +125,8 @@ file for a moment and come back to the same file and be in diff mode again.
*:diffo* *:diffoff* *:diffo* *:diffoff*
:diffoff Switch off diff mode for the current window. :diffoff Switch off diff mode for the current window.
:diffoff! Switch off diff mode for all windows in the current tab page. :diffoff! Switch off diff mode for the current window and in all windows
in the current tab page where 'diff' is set.
The ":diffoff" command resets the relevant options to their default value. The ":diffoff" command resets the relevant options to their default value.
This may be different from what the values were before diff mode was started, This may be different from what the values were before diff mode was started,
@@ -129,6 +134,7 @@ the old values are not remembered.
'diff' off 'diff' off
'scrollbind' off 'scrollbind' off
'cursorbind' off
'scrollopt' without "hor" 'scrollopt' without "hor"
'wrap' on 'wrap' on
'foldmethod' "manual" 'foldmethod' "manual"
@@ -237,7 +243,8 @@ that the buffers will be equal within the specified range.
*:diffg* *:diffget* *:diffg* *:diffget*
:[range]diffg[et] [bufspec] :[range]diffg[et] [bufspec]
Modify the current buffer to undo difference with another Modify the current buffer to undo difference with another
buffer. If [bufspec] is given, that buffer is used. buffer. If [bufspec] is given, that buffer is used. If
[bufspec] refers to the current buffer then nothing happens.
Otherwise this only works if there is one other buffer in diff Otherwise this only works if there is one other buffer in diff
mode. mode.
See below for [range]. See below for [range].
@@ -254,10 +261,12 @@ that the buffers will be equal within the specified range.
*do* *do*
do Same as ":diffget" without argument or range. The "o" stands do Same as ":diffget" without argument or range. The "o" stands
for "obtain" ("dg" can't be used, it could be the start of for "obtain" ("dg" can't be used, it could be the start of
"dgg"!). "dgg"!). Note: this doesn't work in Visual mode.
*dp* *dp*
dp Same as ":diffput" without argument or range. dp Same as ":diffput" without argument or range.
Note: this doesn't work in Visual mode.
When no [range] is given, the diff at the cursor position or just above it is When no [range] is given, the diff at the cursor position or just above it is
affected. When [range] is used, Vim tries to only put or get the specified affected. When [range] is used, Vim tries to only put or get the specified
@@ -323,7 +332,7 @@ The "1a2" item appends the line "bbb".
The "4d4" item deletes the line "111". The "4d4" item deletes the line "111".
The '7c7" item replaces the line "GGG" with "ggg". The '7c7" item replaces the line "GGG" with "ggg".
When 'diffexpr' is not empty, Vim evaluates to obtain a diff file in the When 'diffexpr' is not empty, Vim evaluates it to obtain a diff file in the
format mentioned. These variables are set to the file names used: format mentioned. These variables are set to the file names used:
v:fname_in original file v:fname_in original file
@@ -353,7 +362,7 @@ The "-a" argument is used to force comparing the files as text, comparing as
binaries isn't useful. The "--binary" argument makes the files read in binary binaries isn't useful. The "--binary" argument makes the files read in binary
mode, so that a CTRL-Z doesn't end the text on DOS. mode, so that a CTRL-Z doesn't end the text on DOS.
*E97* *E810* *E97*
Vim will do a test if the diff output looks alright. If it doesn't, you will Vim will do a test if the diff output looks alright. If it doesn't, you will
get an error message. Possible causes: get an error message. Possible causes:
- The "diff" program cannot be executed. - The "diff" program cannot be executed.
@@ -364,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 If it's not clear what the problem is set the 'verbose' option to one or more
to see more messages. to see more messages.
The self-installing Vim includes a diff program. If you don't have it you The self-installing Vim for MS-Windows includes a diff program. If you don't
might want to download a diff.exe. For example from have it you might want to download a diff.exe. For example from
http://jlb.twu.net/code/unixkit.php. http://gnuwin32.sourceforge.net/packages/diffutils.htm.
USING PATCHES *diff-patchexpr* 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.2. Last change: 2008 Aug 09 *editing.txt* For Vim version 7.3. Last change: 2011 Feb 26
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -270,16 +270,17 @@ If you want to keep the changed buffer without saving it, switch on the
Normal mode. Otherwise same as |:edit|. Normal mode. Otherwise same as |:edit|.
*:vie* *:view* *:vie* *:view*
:vie[w] [++opt] [+cmd] file :vie[w][!] [++opt] [+cmd] file
When used in Ex mode: Leave |Ex mode|, go back to When used in Ex mode: Leave |Ex mode|, go back to
Normal mode. Otherwise same as |:edit|, but set Normal mode. Otherwise same as |:edit|, but set
'readonly' option for this buffer. {not in Vi} 'readonly' option for this buffer. {not in Vi}
*CTRL-^* *CTRL-6* *CTRL-^* *CTRL-6*
CTRL-^ Edit the alternate file (equivalent to ":e #"). CTRL-^ Edit the alternate file. Mostly the alternate file is
Mostly the alternate file is the previously edited the previously edited file. This is a quick way to
file. This is a quick way to toggle between two toggle between two files. It is equivalent to ":e #",
files. except that it also works when there is no file name.
If the 'autowrite' or 'autowriteall' option is on and If the 'autowrite' or 'autowriteall' option is on and
the buffer was changed, write it. the buffer was changed, write it.
Mostly the ^ character is positioned on the 6 key, Mostly the ^ character is positioned on the 6 key,
@@ -462,7 +463,10 @@ converted and illegal bytes. It can be one of three things:
++bad=drop Remove the bad characters. ++bad=drop Remove the bad characters.
The default is like "++bad=?": Replace each bad character with a question The default is like "++bad=?": Replace each bad character with a question
mark. mark. In some places an inverted question mark is used (0xBF).
Note that not all commands use the ++bad argument, even though they do not
give an error when you add it. E.g. |:write|.
Note that when reading, the 'fileformat' and 'fileencoding' options will be Note that when reading, the 'fileformat' and 'fileencoding' options will be
set to the used format. When writing this doesn't happen, thus a next write set to the used format. When writing this doesn't happen, thus a next write
@@ -779,7 +783,7 @@ fourth file in the argument list. This happens when you do ":e file".
LOCAL ARGUMENT LIST LOCAL ARGUMENT LIST
{not in Vi} {not in Vi}
{not available when compiled without the |+windows| or |+listcmds| feature} {not available when compiled without the |+windows| or |+listcmds| features}
*:arglocal* *:arglocal*
:argl[ocal] Make a local copy of the global argument list. :argl[ocal] Make a local copy of the global argument list.
@@ -837,7 +841,7 @@ USING THE ARGUMENT LIST
Example: > Example: >
:args *.c :args *.c
:argdo set ff=unix | update :argdo set ff=unix | update
This sets the 'fileformat' option to "unix" and writes the file if is now This sets the 'fileformat' option to "unix" and writes the file if it is now
changed. This is done for all *.c files. changed. This is done for all *.c files.
Example: > Example: >
@@ -981,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 If the creation of a backup file fails, the write is not done. If you want
to write anyway add a '!' to the command. 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* *write-readonly*
When the 'cpoptions' option contains 'W', Vim will refuse to overwrite a 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, readonly file. When 'W' is not present, ":w!" will overwrite a readonly file,
@@ -1168,14 +1177,21 @@ If you want to always use ":confirm", set the 'confirm' option.
*:browse* *:bro* *E338* *E614* *E615* *E616* *E578* *:browse* *:bro* *E338* *E614* *E615* *E616* *E578*
:bro[wse] {command} Open a file selection dialog for an argument to :bro[wse] {command} Open a file selection dialog for an argument to
{command}. At present this works for |:e|, |:w|, {command}. At present this works for |:e|, |:w|,
|:r|, |:saveas|, |:sp|, |:mkexrc|, |:mkvimrc|, |:wall|, |:wq|, |:wqall|, |:x|, |:xall|, |:exit|,
|:mksession|, |:split|, |:vsplit|, and |:tabe|. |:view|, |:sview|, |:r|, |:saveas|, |:sp|, |:mkexrc|,
|:mkvimrc|, |:mksession|, |:mkview|, |:split|,
|:vsplit|, |:tabe|, |:tabnew|, |:cfile|, |:cgetfile|,
|:caddfile|, |:lfile|, |:lgetfile|, |:laddfile|,
|:diffsplit|, |:diffpatch|, |:open|, |:pedit|,
|:redir|, |:source|, |:update|, |:visual|, |:vsplit|,
and |:qall| if 'confirm' is set.
{only in Win32, Athena, Motif, GTK and Mac GUI} {only in Win32, Athena, Motif, GTK and Mac GUI}
When ":browse" is not possible you get an error When ":browse" is not possible you get an error
message. If the |+browse| feature is missing or the message. If the |+browse| feature is missing or the
{command} doesn't support browsing, the {command} is {command} doesn't support browsing, the {command} is
executed without a dialog. executed without a dialog.
":browse set" works like |:options|. ":browse set" works like |:options|.
See also |:oldfiles| for ":browse oldfiles".
The syntax is best shown via some examples: > The syntax is best shown via some examples: >
:browse e $vim/foo :browse e $vim/foo
@@ -1328,11 +1344,14 @@ There are a few things to remember when editing binary files:
Vim is able to write files encrypted, and read them back. The encrypted text Vim is able to write files encrypted, and read them back. The encrypted text
cannot be read without the right key. cannot be read without the right key.
{only available when compiled with the |+cryptv| feature} *E833*
Note: The swapfile and text in memory is not encrypted. A system The text in the swap file and the undo file is also encrypted. *E843*
administrator will be able to see your text while you are editing it.
When filtering text with ":!filter" or using ":w !command" the text is not Note: The text in memory is not encrypted. A system administrator may be able
encrypted, this may reveal it to others. to see your text while you are editing it. When filtering text with
":!filter" or using ":w !command" the text is not encrypted, this may reveal
it to others. The 'viminfo' file is not encrypted.
WARNING: If you make a typo when entering the key and then write the file and WARNING: If you make a typo when entering the key and then write the file and
exit, the text will be lost! exit, the text will be lost!
@@ -1358,10 +1377,38 @@ the file is encrypted.
To disable the encryption, reset the 'key' option to an empty value: > To disable the encryption, reset the 'key' option to an empty value: >
:set key= :set key=
When reading a file that has been encrypted and this option is not empty, it You can use the 'cryptmethod' option to select the type of encryption, use one
will be used for decryption. If the value is empty, you will be prompted to of these two: >
enter the key. If you don't enter a key, the file is edited without being :setlocal cm=zip " weak method, backwards compatible
decrypted. :setlocal cm=blowfish " strong method
Do this before writing the file. When reading an encrypted file it will be
set automatically to the method used when that file was written. You can
change 'cryptmethod' before writing that file to change the method.
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|.
*E817* *E818* *E819* *E820*
When encryption does not work properly, you would be able to write your text
to a file and never be able to read it back. Therefore a test is performed to
check if the encryption works as expected. If you get one of these errors
don't write the file encrypted! You need to rebuild the Vim binary to fix
this.
*E831* This is an internal error, "cannot happen". If you can reproduce it,
please report to the developers.
When reading a file that has been encrypted and the 'key' option is not empty,
it will be used for decryption. If the value is empty, you will be prompted
to enter the key. If you don't enter a key, or you enter the wrong key, the
file is edited without being decrypted. There is no warning about using the
wrong key (this makes brute force methods to find the key more difficult).
If want to start reading a file that uses a different key, set the 'key' If want to start reading a file that uses a different key, set the 'key'
option to an empty string, so that Vim will prompt for a new one. Don't use option to an empty string, so that Vim will prompt for a new one. Don't use
@@ -1371,10 +1418,13 @@ your shoulder.
Since the value of the 'key' option is supposed to be a secret, its value can Since the value of the 'key' option is supposed to be a secret, its value can
never be viewed. You should not set this option in a vimrc file. never be viewed. You should not set this option in a vimrc file.
An encrypted file can be recognized by the "file" command, if you add this An encrypted file can be recognized by the "file" command, if you add these
line to "/etc/magic", "/usr/share/misc/magic" or wherever your system has the lines to "/etc/magic", "/usr/share/misc/magic" or wherever your system has the
"magic" file: > "magic" file: >
0 string VimCrypt~ Vim encrypted file 0 string VimCrypt~ Vim encrypted file
>9 string 01 - "zip" cryptmethod
>9 string 02 - "blowfish" cryptmethod
Notes: Notes:
- Encryption is not possible when doing conversion with 'charconvert'. - Encryption is not possible when doing conversion with 'charconvert'.
@@ -1389,13 +1439,15 @@ Notes:
history, showing the 'key' value in a viminfo file. history, showing the 'key' value in a viminfo file.
- There is never 100% safety. The encryption in Vim has not been tested for - There is never 100% safety. The encryption in Vim has not been tested for
robustness. robustness.
- The algorithm used is breakable. A 4 character key in about one hour, a 6 - The algorithm used for 'cryptmethod' "zip" is breakable. A 4 character key
character key in one day (on a Pentium 133 PC). This requires that you know in about one hour, a 6 character key in one day (on a Pentium 133 PC). This
some text that must appear in the file. An expert can break it for any key. requires that you know some text that must appear in the file. An expert
When the text has been decrypted, this also means that the key can be can break it for any key. When the text has been decrypted, this also means
revealed, and other files encrypted with the same key can be decrypted. that the key can be revealed, and other files encrypted with the same key
- Pkzip uses the same encryption, and US Govt has no objection to its export. can be decrypted.
Pkzip's public file APPNOTE.TXT describes this algorithm in detail. - Pkzip uses the same encryption as 'cryptmethod' "zip", and US Govt has no
objection to its export. Pkzip's public file APPNOTE.TXT describes this
algorithm in detail.
- Vim originates from the Netherlands. That is where the sources come from. - Vim originates from the Netherlands. That is where the sources come from.
Thus the encryption code is not exported from the USA. Thus the encryption code is not exported from the USA.
@@ -1456,6 +1508,17 @@ If you don't get warned often enough you can use the following command.
may be specified by name, number or with a pattern. may be specified by name, number or with a pattern.
*E813* *E814*
Vim will reload the buffer if you chose to. If a window is visible that
contains this buffer, the reloading will happen in the context of this window.
Otherwise a special window is used, so that most autocommands will work. You
can't close this window. A few other restrictions apply. Best is to make
sure nothing happens outside of the current buffer. E.g., setting
window-local options may end up in the wrong window. Splitting the window,
doing something there and closing it should be OK (if there are no side
effects from other autocommands). Closing unrelated windows and buffers will
get you into trouble.
Before writing a file the timestamp is checked. If it has changed, Vim will Before writing a file the timestamp is checked. If it has changed, Vim will
ask if you really want to overwrite the file: ask if you really want to overwrite the file:
@@ -1569,10 +1632,13 @@ There are three different types of searching:
In the above example you might want to set path to: > In the above example you might want to set path to: >
:set path=**,/u/user_x/** :set path=**,/u/user_x/**
< This searches: > < This searches:
/u/user_x/work/release/** /u/user_x/work/release/** ~
/u/user_x/** /u/user_x/** ~
< This searches the same directories, but in a different order. This searches the same directories, but in a different order.
Note that completion for ":find", ":sfind", and ":tabfind" commands do not
currently work with 'path' items that contain a url or use the double star
(/usr/**2) or upward search (;) notations. >
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

File diff suppressed because it is too large Load Diff

View File

@@ -17,10 +17,10 @@ e imposta le opzioni per farlo comportare come un editore "modeless".
State sempre usando Vim, ma come un editore "posizionati-e-clicca". State sempre usando Vim, ma come un editore "posizionati-e-clicca".
Simile all'uso di Notepad in MS-Windows. Simile all'uso di Notepad in MS-Windows.
.B evim .B evim
richiede la presenza della GUI, per avere a disposizione menu e barra richiede la presenza della GUI, per avere a disposizione men<EFBFBD> e barra
strumenti. strumenti.
.PP .PP
Da usarsi solo da parte di chi non <20> in grado di lavorare con Vim nella Da usarsi soltanto se non si <EFBFBD> in grado di lavorare con Vim nella
maniera usuale. maniera usuale.
La modifica file sar<61> molto meno efficiente. La modifica file sar<61> molto meno efficiente.
.PP .PP
@@ -34,7 +34,7 @@ L'opzione 'insertmode'
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i
familiari tasti usati sotto MS-Windows. familiari tasti usati sotto MS-Windows.
CTRL-X taglia testo, CTRL-C copia testo e CTRL-V incolla testo. CTRL-X taglia testo, CTRL-C copia testo e CTRL-V incolla testo.
Usate CTRL-Q per ottenere quello chs si ottierrebbe con CTRL-V in Vim nativo. Usate CTRL-Q per ottenere quello che si otterrebbe con CTRL-V in Vim nativo.
.SH OPZIONI .SH OPZIONI
Vedere vim(1). Vedere vim(1).
.SH FILE .SH FILE
@@ -51,4 +51,4 @@ vim(1)
Buona parte di Buona parte di
.B Vim .B Vim
<EFBFBD> stato scritto da Bram Moolenaar, con molto aiuto da altri. <EFBFBD> stato scritto da Bram Moolenaar, con molto aiuto da altri.
Vedere il Menu "Aiuto/Crediti". Vedere il men<EFBFBD> "Aiuto/Crediti".

View File

@@ -17,10 +17,10 @@ e imposta le opzioni per farlo comportare come un editore "modeless".
State sempre usando Vim, ma come un editore "posizionati-e-clicca". State sempre usando Vim, ma come un editore "posizionati-e-clicca".
Simile all'uso di Notepad in MS-Windows. Simile all'uso di Notepad in MS-Windows.
.B evim .B evim
richiede la presenza della GUI, per avere a disposizione menu e barra richiede la presenza della GUI, per avere a disposizione menù e barra
strumenti. strumenti.
.PP .PP
Da usarsi solo da parte di chi non è in grado di lavorare con Vim nella Da usarsi soltanto se non si è in grado di lavorare con Vim nella
maniera usuale. maniera usuale.
La modifica file sarà molto meno efficiente. La modifica file sarà molto meno efficiente.
.PP .PP
@@ -34,7 +34,7 @@ L'opzione 'insertmode' è impostata per poter immettere del testo direttamente.
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i
familiari tasti usati sotto MS-Windows. familiari tasti usati sotto MS-Windows.
CTRL-X taglia testo, CTRL-C copia testo e CTRL-V incolla testo. CTRL-X taglia testo, CTRL-C copia testo e CTRL-V incolla testo.
Usate CTRL-Q per ottenere quello chs si ottierrebbe con CTRL-V in Vim nativo. Usate CTRL-Q per ottenere quello che si otterrebbe con CTRL-V in Vim nativo.
.SH OPZIONI .SH OPZIONI
Vedere vim(1). Vedere vim(1).
.SH FILE .SH FILE
@@ -51,4 +51,4 @@ vim(1)
Buona parte di Buona parte di
.B Vim .B Vim
è stato scritto da Bram Moolenaar, con molto aiuto da altri. è stato scritto da Bram Moolenaar, con molto aiuto da altri.
Vedere il Menu "Aiuto/Crediti". Vedere il menù "Aiuto/Crediti".

View File

@@ -14,11 +14,11 @@ uruchamia
.B Vima .B Vima
i ustawia opcje tak by zachowywa<77> si<73> jak edytor bez tryb<79>w. i ustawia opcje tak by zachowywa<77> si<73> jak edytor bez tryb<79>w.
To jest ca<63>y czas Vim ale u<>ywany jako edytor wska<6B>-i-kliknij. To jest ca<63>y czas Vim ale u<>ywany jako edytor wska<6B>-i-kliknij.
Zachowanie w stlu Notepada dla MS-Windows. Zachowanie w stylu Notepada dla MS-Windows.
.B eVim .B eVim
b<EFBFBD>dzie zawsze uruchomiony w GUI by w<><77>czy<7A> menu i pasek narz<72>dzi. b<EFBFBD>dzie zawsze uruchomiony w GUI by w<><77>czy<7A> menu i pasek narz<72>dzi.
.PP .PP
Przeznaczony tylko dla ludzi, kt<6B>rzy naprawd<77> nie potrafi<EFBFBD> pracowa<77> Przeznaczony tylko dla ludzi, kt<6B>rzy naprawd<77> nie mog<EFBFBD> pracowa<77>
z Vimem w normalny spos<6F>b. Edycja b<>dzie o wiele mniej efektywna. z Vimem w normalny spos<6F>b. Edycja b<>dzie o wiele mniej efektywna.
.PP .PP
.B eview .B eview
@@ -31,8 +31,8 @@ Opcja 'insertmode' jest ustawiona by mo
tekst. tekst.
.br .br
Mapowania s<> ustawione tak by Kopiowanie i Wklejanie dzia<69>a<EFBFBD>o Mapowania s<> ustawione tak by Kopiowanie i Wklejanie dzia<69>a<EFBFBD>o
z klawiszami MS-Windows. CTRL-X wycina tekst, CTRL-C kopiuje z klawiszami MS-Windows. CTRL-X wycina, CTRL-C kopiuje a CTRL-V
a CTRL-V wkleja. U<>yj CTRL-Q by uzyska<6B> oryginalne znaczenie wkleja tekst. U<>yj CTRL-Q by uzyska<6B> oryginalne przeznaczenie
CTRL-V. CTRL-V.
.SH OPCJE .SH OPCJE
Zobacz vim(1). Zobacz vim(1).
@@ -42,7 +42,7 @@ Zobacz vim(1).
Skrypt uruchamiania dla eVima. Skrypt uruchamiania dla eVima.
.SH ZNANY JAKO .SH ZNANY JAKO
Znany jako "Vim dla frajer<65>w". Znany jako "Vim dla frajer<65>w".
Je<EFBFBD>li u<>ywasz evima oczekuje si<73>, <20>e wyjmiesz chusteczk<7A> do nosa, Je<EFBFBD>li u<>ywasz eVima oczekuje si<73>, <20>e wyjmiesz chusteczk<7A> do nosa,
zrobisz w<>z<EFBFBD><7A> w ka<6B>dym rogu i b<>dziesz to nosi<73> na g<>owie. zrobisz w<>z<EFBFBD><7A> w ka<6B>dym rogu i b<>dziesz to nosi<73> na g<>owie.
.SH ZOBACZ TAK<EFBFBD>E .SH ZOBACZ TAK<EFBFBD>E
vim(1) vim(1)

View File

@@ -14,11 +14,11 @@ uruchamia
.B Vima .B Vima
i ustawia opcje tak by zachowywał się jak edytor bez trybów. i ustawia opcje tak by zachowywał się jak edytor bez trybów.
To jest cały czas Vim ale używany jako edytor wskaż-i-kliknij. To jest cały czas Vim ale używany jako edytor wskaż-i-kliknij.
Zachowanie w stlu Notepada dla MS-Windows. Zachowanie w stylu Notepada dla MS-Windows.
.B eVim .B eVim
będzie zawsze uruchomiony w GUI by włączyć menu i pasek narzędzi. będzie zawsze uruchomiony w GUI by włączyć menu i pasek narzędzi.
.PP .PP
Przeznaczony tylko dla ludzi, którzy naprawdę nie potrafią pracować Przeznaczony tylko dla ludzi, którzy naprawdę nie mogą pracować
z Vimem w normalny sposób. Edycja będzie o wiele mniej efektywna. z Vimem w normalny sposób. Edycja będzie o wiele mniej efektywna.
.PP .PP
.B eview .B eview
@@ -31,8 +31,8 @@ Opcja 'insertmode' jest ustawiona by można było od razu wpisywać
tekst. tekst.
.br .br
Mapowania są ustawione tak by Kopiowanie i Wklejanie działało Mapowania są ustawione tak by Kopiowanie i Wklejanie działało
z klawiszami MS-Windows. CTRL-X wycina tekst, CTRL-C kopiuje z klawiszami MS-Windows. CTRL-X wycina, CTRL-C kopiuje a CTRL-V
a CTRL-V wkleja. Użyj CTRL-Q by uzyskać oryginalne znaczenie wkleja tekst. Użyj CTRL-Q by uzyskać oryginalne przeznaczenie
CTRL-V. CTRL-V.
.SH OPCJE .SH OPCJE
Zobacz vim(1). Zobacz vim(1).
@@ -42,7 +42,7 @@ Zobacz vim(1).
Skrypt uruchamiania dla eVima. Skrypt uruchamiania dla eVima.
.SH ZNANY JAKO .SH ZNANY JAKO
Znany jako "Vim dla frajerów". Znany jako "Vim dla frajerów".
Jeśli używasz evima oczekuje się, że wyjmiesz chusteczkę do nosa, Jeśli używasz eVima oczekuje się, że wyjmiesz chusteczkę do nosa,
zrobisz węzęł w każdym rogu i będziesz to nosił na głowie. zrobisz węzęł w każdym rogu i będziesz to nosił na głowie.
.SH ZOBACZ TAKŻE .SH ZOBACZ TAKŻE
vim(1) vim(1)

View File

@@ -1,4 +1,4 @@
*farsi.txt* For Vim version 7.2. Last change: 2005 Mar 29 *farsi.txt* For Vim version 7.3. Last change: 2010 Aug 07
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
@@ -62,8 +62,8 @@ o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9
Farsi Fonts *farsi fonts* Farsi Fonts *farsi fonts*
----------- -----------
If the "extra" archive has been unpacked, the following files are found in the The following files are found in the subdirectories of the '$VIM/farsi/fonts'
subdirectories of the '$VIM/farsi' directory: directory:
+ far-a01.pcf X Windows fonts for Unix including Linux systems + far-a01.pcf X Windows fonts for Unix including Linux systems
+ far-a01.bf X Windows fonts for SunOS + far-a01.bf X Windows fonts for SunOS

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.2. Last change: 2008 Jul 15 *filetype.txt* For Vim version 7.3. Last change: 2008 Jul 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@@ -1,10 +1,10 @@
*fold.txt* For Vim version 7.2. Last change: 2007 May 11 *fold.txt* For Vim version 7.3. Last change: 2010 May 13
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
Folding *Folding* *folding* Folding *Folding* *folding* *folds*
You can find an introduction on folding in chapter 28 of the user manual. You can find an introduction on folding in chapter 28 of the user manual.
|usr_28.txt| |usr_28.txt|
@@ -15,7 +15,7 @@ You can find an introduction on folding in chapter 28 of the user manual.
4. Behavior of folds |fold-behavior| 4. Behavior of folds |fold-behavior|
{Vi has no Folding} {Vi has no Folding}
{not available when compiled without the +folding feature} {not available when compiled without the |+folding| feature}
============================================================================== ==============================================================================
1. Fold methods *fold-methods* 1. Fold methods *fold-methods*
@@ -127,6 +127,9 @@ fold level. But note that foldlevel() may return -1 if the level is not known
yet. And it returns the level at the start of the line, while a fold might yet. And it returns the level at the start of the line, while a fold might
end in that line. end in that line.
It may happened that folds are not updated properly. You can use |zx| or |zX|
to force updating folds.
SYNTAX *fold-syntax* SYNTAX *fold-syntax*
@@ -274,7 +277,7 @@ zf{motion} or
Also see |fold-create-marker|. Also see |fold-create-marker|.
*zF* *zF*
zF Create a fold for N lines. Works like "zf". zF Create a fold for [count] lines. Works like "zf".
:{range}fo[ld] *:fold* *:fo* :{range}fo[ld] *:fold* *:fo*
Create a fold for the lines in {range}. Works like "zf". Create a fold for the lines in {range}. Works like "zf".
@@ -352,9 +355,13 @@ zv View cursor line: Open just enough folds to make the line in
*zx* *zx*
zx Update folds: Undo manually opened and closed folds: re-apply zx Update folds: Undo manually opened and closed folds: re-apply
'foldlevel', then do "zv": View cursor line. 'foldlevel', then do "zv": View cursor line.
Also forces recomputing folds. This is useful when using
'foldexpr' and the buffer is changed in a way that results in
folds not to be updated properly.
*zX* *zX*
zX Undo manually opened and closed folds: re-apply 'foldlevel'. zX Undo manually opened and closed folds: re-apply 'foldlevel'.
Also forces recomputing folds, like |zx|.
*zm* *zm*
zm Fold more: Subtract one from 'foldlevel'. If 'foldlevel' was zm Fold more: Subtract one from 'foldlevel'. If 'foldlevel' was
@@ -399,24 +406,24 @@ MOVING OVER FOLDS ~
[z Move to the start of the current open fold. If already at the [z Move to the start of the current open fold. If already at the
start, move to the start of the fold that contains it. If start, move to the start of the fold that contains it. If
there is no containing fold, the command fails. there is no containing fold, the command fails.
When a count is used, repeats the command N times. When a count is used, repeats the command [count] times.
*]z* *]z*
]z Move to the end of the current open fold. If already at the ]z Move to the end of the current open fold. If already at the
end, move to the end of the fold that contains it. If there end, move to the end of the fold that contains it. If there
is no containing fold, the command fails. is no containing fold, the command fails.
When a count is used, repeats the command N times. When a count is used, repeats the command [count] times.
*zj* *zj*
zj Move downwards to the start of the next fold. A closed fold zj Move downwards to the start of the next fold. A closed fold
is counted as one fold. is counted as one fold.
When a count is used, repeats the command N times. When a count is used, repeats the command [count] times.
This command can be used after an |operator|. This command can be used after an |operator|.
*zk* *zk*
zk Move upwards to the end of the previous fold. A closed fold zk Move upwards to the end of the previous fold. A closed fold
is counted as one fold. is counted as one fold.
When a count is used, repeats the command N times. When a count is used, repeats the command [count] times.
This command can be used after an |operator|. This command can be used after an |operator|.

View File

@@ -1,4 +1,4 @@
*ft_ada.txt* For Vim version 7.2. Last change: 2008 Jun 21 *ft_ada.txt* For Vim version 7.3. Last change: 2010 Jul 20
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~ ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
@@ -6,20 +6,20 @@
ADA *ada.vim* ADA *ada.vim*
1. Syntax Highlighting |ft-ada-syntax| 1. Syntax Highlighting |ft-ada-syntax|
2. Plug-in |ft-ada-plugin| 2. File type Plug-in |ft-ada-plugin|
3. Omni Completion |ft-ada-omni| 3. Omni Completion |ft-ada-omni|
3.1 Omni Completion with "gnat xref" |gnat-xref| 3.1 Omni Completion with "gnat xref" |gnat-xref|
3.2 Omni Completion with "ctags" |ada-ctags| 3.2 Omni Completion with "ctags" |ada-ctags|
4. Compiler Support |ada-compiler| 4. Compiler Support |ada-compiler|
4.1 GNAT |compiler-gnat| 4.1 GNAT |compiler-gnat|
4.1 Dec Ada |compiler-decada| 4.2 Dec Ada |compiler-decada|
5. References |ada-reference| 5. References |ada-reference|
5.1 Options |ft-ada-options| 5.1 Options |ft-ada-options|
5.2 Functions |ft-ada-functions| 5.2 Commands |ft-ada-commands|
5.3 Commands |ft-ada-commands| 5.3 Variables |ft-ada-variables|
5.4 Variables |ft-ada-variables| 5.4 Constants |ft-ada-constants|
5.5 Constants |ft-ada-constants| 5.5 Functions |ft-ada-functions|
8. Extra Plug-ins |ada-extra-plugins| 6. Extra Plug-ins |ada-extra-plugins|
============================================================================== ==============================================================================
1. Syntax Highlighting ~ 1. Syntax Highlighting ~
@@ -82,7 +82,7 @@ The Ada plug-in provides support for:
- comment handling (|'comments'|, |'commentstring'|) - comment handling (|'comments'|, |'commentstring'|)
The plug-in only activates the features of the Ada mode whenever an Ada The plug-in only activates the features of the Ada mode whenever an Ada
files is opened and add adds Ada related entries to the main and pop-up menu. file is opened and adds Ada related entries to the main and pop-up menu.
============================================================================== ==============================================================================
3. Omni Completion ~ 3. Omni Completion ~
@@ -142,7 +142,7 @@ support yet.
4. Compiler Support ~ 4. Compiler Support ~
*ada-compiler* *ada-compiler*
The Ada mode supports more then one Ada compiler and will automatically load the The Ada mode supports more than one Ada compiler and will automatically load the
compiler set in |g:ada_default_compiler| whenever an Ada source is opened. The compiler set in |g:ada_default_compiler| whenever an Ada source is opened. The
provided compiler plug-ins are split into the actual compiler plug-in and a provided compiler plug-ins are split into the actual compiler plug-in and a
collection of support functions and variables. This allows the easy collection of support functions and variables. This allows the easy
@@ -154,7 +154,7 @@ environment.
*compiler-gnat* *compiler-gnat*
GNAT is the only free (beer and speech) Ada compiler available. There are GNAT is the only free (beer and speech) Ada compiler available. There are
several version available which differentiate in the licence terms used. several versions available which differ in the licence terms used.
The GNAT compiler plug-in will perform a compile on pressing <F7> and then The GNAT compiler plug-in will perform a compile on pressing <F7> and then
immediately shows the result. You can set the project file to be used by immediately shows the result. You can set the project file to be used by
@@ -163,7 +163,7 @@ setting:
> call g:gnat.Set_Project_File ('my_project.gpr') > call g:gnat.Set_Project_File ('my_project.gpr')
Setting a project file will also create a Vim session (|views-sessions|) so - Setting a project file will also create a Vim session (|views-sessions|) so -
like with the GPS - opened files, window positions etc. will remembered like with the GPS - opened files, window positions etc. will be remembered
separately for all projects. separately for all projects.
*gnat_members* *gnat_members*
@@ -176,11 +176,11 @@ g:gnat.Make()
*g:gnat.Pretty()* *g:gnat.Pretty()*
g:gnat.Pretty() g:gnat.Pretty()
Calls|g:gnat.Pretty_Command| Calls |g:gnat.Pretty_Program|
*g:gnat.Find()* *g:gnat.Find()*
g:gnat.Find() g:gnat.Find()
Calls|g:gnat.Find_Command| Calls |g:gnat.Find_Program|
*g:gnat.Tags()* *g:gnat.Tags()*
g:gnat.Tags() g:gnat.Tags()
@@ -228,9 +228,9 @@ and HP Ada) is a fairly dated Ada 83 compiler. Support is basic: <F7> will
compile the current unit. compile the current unit.
The Dec Ada compiler expects the package name and not the file name to be The Dec Ada compiler expects the package name and not the file name to be
passed a parameter. The compiler plug-in supports the usual file name passed as a parameter. The compiler plug-in supports the usual file name
convention to convert the file into a unit name. For separates both '-' and convention to convert the file into a unit name. Both '-' and '__' are allowed
'__' are allowed. as separators.
*decada_members* *decada_members*
DEC ADA OBJECT ~ DEC ADA OBJECT ~
@@ -246,7 +246,7 @@ g:decada.Unit_Name() function
*g:decada.Make_Command* *g:decada.Make_Command*
g:decada.Make_Command string g:decada.Make_Command string
External command used for|g:decadat.Make()| (|'makeprg'|). External command used for |g:decada.Make()| (|'makeprg'|).
*g:decada.Error_Format* *g:decada.Error_Format*
g:decada.Error_Format| string g:decada.Error_Format| string
@@ -262,7 +262,7 @@ g:decada.Error_Format| string
*g:ada_standard_types* *g:ada_standard_types*
g:ada_standard_types bool (true when exists) g:ada_standard_types bool (true when exists)
Highlight types in package Standard (e.g., "Float") Highlight types in package Standard (e.g., "Float").
*g:ada_space_errors* *g:ada_space_errors*
*g:ada_no_trail_space_error* *g:ada_no_trail_space_error*
@@ -279,13 +279,13 @@ g:ada_space_errors bool (true when exists)
*g:ada_line_errors* *g:ada_line_errors*
g:ada_line_errors bool (true when exists) g:ada_line_errors bool (true when exists)
Highlight lines which are to long. Note: This highlighting Highlight lines which are too long. Note: This highlighting
option is quite CPU intensive. option is quite CPU intensive.
*g:ada_rainbow_color* *g:ada_rainbow_color*
g:ada_rainbow_color bool (true when exists) g:ada_rainbow_color bool (true when exists)
Use rainbow colours for '(' and ')'. You need the Use rainbow colours for '(' and ')'. You need the
rainbow_parenthesis for this to work rainbow_parenthesis for this to work.
*g:ada_folding* *g:ada_folding*
g:ada_folding set ('sigpft') g:ada_folding set ('sigpft')
@@ -313,7 +313,7 @@ g:ada_folding set ('sigpft')
*g:ada_abbrev* *g:ada_abbrev*
g:ada_abbrev bool (true when exists) g:ada_abbrev bool (true when exists)
Add some abbreviations. This feature more or less superseded Add some abbreviations. This feature is more or less superseded
by the various completion methods. by the various completion methods.
*g:ada_withuse_ordinary* *g:ada_withuse_ordinary*
@@ -359,23 +359,23 @@ g:ada_with_gnat_project_files bool (true when exists)
*g:ada_default_compiler* *g:ada_default_compiler*
g:ada_default_compiler string g:ada_default_compiler string
set default compiler. Currently supported is 'gnat' and set default compiler. Currently supported are 'gnat' and
'decada'. 'decada'.
An "exists" type is a boolean is considered true when the variable is defined An "exists" type is a boolean considered true when the variable is defined and
and false when the variable is undefined. The value which the variable is false when the variable is undefined. The value to which the variable is set
set makes no difference. makes no difference.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
5.3 Commands ~ 5.2 Commands ~
*ft-ada-commands* *ft-ada-commands*
:AdaRainbow *:AdaRainbow* :AdaRainbow *:AdaRainbow*
Toggles rainbow colour (|g:ada_rainbow_color|) mode for Toggles rainbow colour (|g:ada_rainbow_color|) mode for
'(' and ')' '(' and ')'.
:AdaLines *:AdaLines* :AdaLines *:AdaLines*
Toggles line error (|g:ada_line_errors|) display Toggles line error (|g:ada_line_errors|) display.
:AdaSpaces *:AdaSpaces* :AdaSpaces *:AdaSpaces*
Toggles space error (|g:ada_space_errors|) display. Toggles space error (|g:ada_space_errors|) display.
@@ -406,8 +406,8 @@ set makes no difference.
g:gnat object g:gnat object
Control object which manages GNAT compiles. The object Control object which manages GNAT compiles. The object
is created when the first Ada source code is loaded provided is created when the first Ada source code is loaded provided
that |g:ada_default_compiler|is set to 'gnat'. See|gnat_members| that |g:ada_default_compiler| is set to 'gnat'. See
for details. |gnat_members| for details.
*g:decada* *g:decada*
g:decada object g:decada object
@@ -424,7 +424,7 @@ All constants are locked. See |:lockvar| for details.
*g:ada#WordRegex* *g:ada#WordRegex*
g:ada#WordRegex string g:ada#WordRegex string
Regular expression to search for Ada words Regular expression to search for Ada words.
*g:ada#DotWordRegex* *g:ada#DotWordRegex*
g:ada#DotWordRegex string g:ada#DotWordRegex string
@@ -432,7 +432,7 @@ g:ada#DotWordRegex string
*g:ada#Comment* *g:ada#Comment*
g:ada#Comment string g:ada#Comment string
Regular expression to search for Ada comments Regular expression to search for Ada comments.
*g:ada#Keywords* *g:ada#Keywords*
g:ada#Keywords list of dictionaries g:ada#Keywords list of dictionaries
@@ -445,7 +445,7 @@ g:ada#Ctags_Kinds dictionary of lists
for Ctags generates. for Ctags generates.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
5.2 Functions ~ 5.5 Functions ~
*ft-ada-functions* *ft-ada-functions*
ada#Word([{line}, {col}]) *ada#Word()* ada#Word([{line}, {col}]) *ada#Word()*
@@ -454,7 +454,7 @@ ada#Word([{line}, {col}]) *ada#Word()*
ada#List_Tag([{line}, {col}]) *ada#Listtags()* ada#List_Tag([{line}, {col}]) *ada#Listtags()*
List all occurrences of the Ada entity under the cursor (or at List all occurrences of the Ada entity under the cursor (or at
given line/column) inside the quick-fix window given line/column) inside the quick-fix window.
ada#Jump_Tag ({ident}, {mode}) *ada#Jump_Tag()* ada#Jump_Tag ({ident}, {mode}) *ada#Jump_Tag()*
List all occurrences of the Ada entity under the cursor (or at List all occurrences of the Ada entity under the cursor (or at
@@ -479,11 +479,11 @@ gnat#New ()
============================================================================== ==============================================================================
8. Extra Plugins ~ 6. Extra Plugins ~
*ada-extra-plugins* *ada-extra-plugins*
You can optionally install the following extra plug-in. They work well with Ada You can optionally install the following extra plug-ins. They work well with
and enhance the ability of the Ada mode.: Ada and enhance the ability of the Ada mode:
backup.vim backup.vim
http://www.vim.org/scripts/script.php?script_id=1537 http://www.vim.org/scripts/script.php?script_id=1537
@@ -501,7 +501,7 @@ nerd_comments.vim
matchit.vim matchit.vim
http://www.vim.org/scripts/script.php?script_id=39 http://www.vim.org/scripts/script.php?script_id=39
'%' jumping for any language. The normal '%' jump only works for '{}' '%' jumping for any language. The normal '%' jump only works for '{}'
style languages. The Ada mode will set the needed search patters. style languages. The Ada mode will set the needed search patterns.
taglist.vim taglist.vim
http://www.vim.org/scripts/script.php?script_id=273 http://www.vim.org/scripts/script.php?script_id=273

View File

@@ -1,4 +1,4 @@
*ft_sql.txt* For Vim version 7.2. Last change: Wed Apr 26 2006 3:05:33 PM *ft_sql.txt* For Vim version 7.3. Last change: 2010 Jul 20
by David Fishburn by David Fishburn
@@ -15,7 +15,8 @@ features for navigation, indentation and syntax highlighting.
1.4 Macros |sql-macros| 1.4 Macros |sql-macros|
2. SQL Dialects |sql-dialects| 2. SQL Dialects |sql-dialects|
2.1 SQLSetType |SQLSetType| 2.1 SQLSetType |SQLSetType|
2.2 SQL Dialect Default |sql-type-default| 2.2 SQLGetType |SQLGetType|
2.3 SQL Dialect Default |sql-type-default|
3. Adding new SQL Dialects |sql-adding-dialects| 3. Adding new SQL Dialects |sql-adding-dialects|
4. OMNI SQL Completion |sql-completion| 4. OMNI SQL Completion |sql-completion|
4.1 Static mode |sql-completion-static| 4.1 Static mode |sql-completion-static|
@@ -204,7 +205,7 @@ Press any of the following keys: >
*sqlanywhere* *sqlanywhere*
*oracle* *plsql* *sqlj* *oracle* *plsql* *sqlj*
*sqlserver* *sqlserver*
*mysql* *postgres* *psql* *mysql* *postgresql* *psql*
*informix* *informix*
All relational databases support SQL. There is a portion of SQL that is All relational databases support SQL. There is a portion of SQL that is
@@ -231,7 +232,7 @@ be nice to specify a default in your |vimrc|.
2.1 SQLSetType *sqlsettype* *SQLSetType* 2.1 SQLSetType *sqlsettype* *SQLSetType*
-------------- --------------
For the people that work with many different databases, it would be nice to be For the people that work with many different databases, it is nice to be
able to flip between the various vendors rules (indent, syntax) on a per able to flip between the various vendors rules (indent, syntax) on a per
buffer basis, at any time. The ftplugin/sql.vim file defines this function: > buffer basis, at any time. The ftplugin/sql.vim file defines this function: >
SQLSetType SQLSetType
@@ -259,7 +260,17 @@ of available Vim script names: >
:SQL<Tab><space><Tab> :SQL<Tab><space><Tab>
2.2 SQL Dialect Default *sql-type-default* 2.2 SQLGetType *sqlgettype* *SQLGetType*
--------------
At anytime you can determine which SQL dialect you are using by calling the
SQLGetType command. The ftplugin/sql.vim file defines this function: >
SQLGetType
This will echo: >
Current SQL dialect in use:sqlanywhere
2.3 SQL Dialect Default *sql-type-default*
----------------------- -----------------------
As mentioned earlier, the default syntax rules for Vim is based on Oracle As mentioned earlier, the default syntax rules for Vim is based on Oracle
(PL/SQL). You can override this default by placing one of the following in (PL/SQL). You can override this default by placing one of the following in
@@ -331,6 +342,10 @@ The defaults static maps are: >
imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O> imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O> imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
The use of "<C-C>" can be user chosen by using the following in your |.vimrc| as it
may not work properly on all platforms: >
let g:ftplugin_sql_omni_key = '<C-C>'
>
The static maps (which are based on the syntax highlight groups) follow this The static maps (which are based on the syntax highlight groups) follow this
format: > format: >
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O> imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
@@ -412,15 +427,19 @@ the space bar):
View List - <C-C>v View List - <C-C>v
Column List - <C-C>c Column List - <C-C>c
Windows platform only - When viewing a popup window displaying the list Drilling In / Out - When viewing a popup window displaying the list
of tables, you can press <C-Right>, this will of tables, you can press <Right>, this will
replace the table currently highlighted with replace the table currently highlighted with
the column list for that table. the column list for that table.
- When viewing a popup window displaying the list - When viewing a popup window displaying the list
of columns, you can press <C-Left>, this will of columns, you can press <Left>, this will
replace the column list with the list of tables. replace the column list with the list of tables.
- This allows you to quickly drill down into a - This allows you to quickly drill down into a
table to view it's columns and back again. table to view it's columns and back again.
- <Right> and <Left> can be also be chosen via
your |.vimrc| >
let g:ftplugin_sql_omni_key_right = '<Right>'
let g:ftplugin_sql_omni_key_left = '<Left>'
The SQL completion plugin caches various lists that are displayed in The SQL completion plugin caches various lists that are displayed in
the popup window. This makes the re-displaying of these lists very the popup window. This makes the re-displaying of these lists very
@@ -498,38 +517,32 @@ beginning with those characters. >
The SQL completion plugin can also display a list of columns for particular The SQL completion plugin can also display a list of columns for particular
tables. The column completion is trigger via <C-C>c. tables. The column completion is trigger via <C-C>c.
NOTE: The following example uses <C-Right> to trigger a column list while NOTE: The following example uses <Right> to trigger a column list while
the popup window is active. This map is only available on the Windows the popup window is active.
platforms since *nix does not recognize CTRL and the right arrow held down
together. If you wish to enable this functionality on a *nix platform choose
a key and create one of these mappings (see |sql-completion-maps| for further
details on where to create this imap): >
imap <buffer> <your_keystroke> <C-R>=sqlcomplete#DrillIntoTable()<CR>
imap <buffer> <your_keystroke> <C-Y><C-\><C-O>:call sqlcomplete#Map('column')<CR><C-X><C-O>
Example of using column completion: Example of using column completion:
- Press <C-C>t again to display the list of tables. - Press <C-C>t again to display the list of tables.
- When the list is displayed in the completion window, press <C-Right>, - When the list is displayed in the completion window, press <Right>,
this will replace the list of tables, with a list of columns for the this will replace the list of tables, with a list of columns for the
table highlighted (after the same short delay). table highlighted (after the same short delay).
- If you press <C-Left>, this will again replace the column list with the - If you press <Left>, this will again replace the column list with the
list of tables. This allows you to drill into tables and column lists list of tables. This allows you to drill into tables and column lists
very quickly. very quickly.
- Press <C-Right> again while the same table is highlighted. You will - Press <Right> again while the same table is highlighted. You will
notice there is no delay since the column list has been cached. If you notice there is no delay since the column list has been cached. If you
change the schema of a cached table you can press <C-C>R, which change the schema of a cached table you can press <C-C>R, which
clears the SQL completion cache. clears the SQL completion cache.
- NOTE: <C-Right> and <C-Left> have been designed to work while the - NOTE: <Right> and <Left> have been designed to work while the
completion window is active. If the completion popup window is completion window is active. If the completion popup window is
not active, a normal <C-Right> or <C-Left> will be executed. not active, a normal <Right> or <Left> will be executed.
Lets look how we can build a SQL statement dynamically. A select statement Let's look at how we can build a SQL statement dynamically. A select statement
requires a list of columns. There are two ways to build a column list using requires a list of columns. There are two ways to build a column list using
the SQL completion plugin. > the SQL completion plugin. >
One column at a time: One column at a time:
< 1. After typing SELECT press <C-C>t to display a list of tables. < 1. After typing SELECT press <C-C>t to display a list of tables.
2. Choose a table from the list. 2. Choose a table from the list.
3. Press <C-Right> to display a list of columns. 3. Press <Right> to display a list of columns.
4. Choose the column from the list and press enter. 4. Choose the column from the list and press enter.
5. Enter a "," and press <C-C>c. Generating a column list 5. Enter a "," and press <C-C>c. Generating a column list
generally requires having the cursor on a table name. The plugin generally requires having the cursor on a table name. The plugin
@@ -619,7 +632,7 @@ your |vimrc|: >
MYTABLENAME --> M MYTABLENAME --> M
omni_sql_ignorecase omni_sql_ignorecase
< - Default: Current setting for|ignorecase| < - Default: Current setting for 'ignorecase'
- Valid settings are 0 or 1. - Valid settings are 0 or 1.
- When entering a few letters before initiating completion, the list - When entering a few letters before initiating completion, the list
will be filtered to display only the entries which begin with the will be filtered to display only the entries which begin with the
@@ -632,7 +645,7 @@ your |vimrc|: >
- When completing tables, procedure or views and using dbext.vim 3.00 - When completing tables, procedure or views and using dbext.vim 3.00
or higher the list of objects will also include the owner name. or higher the list of objects will also include the owner name.
When completing these objects and omni_sql_include_owner is enabled When completing these objects and omni_sql_include_owner is enabled
the owner name will be replaced. > the owner name will be be replaced. >
omni_sql_precache_syntax_groups omni_sql_precache_syntax_groups
< - Default: < - Default:
@@ -684,15 +697,15 @@ plugin. >
<C-C>L <C-C>L
< - Displays a comma separated list of columns for a specific table. < - Displays a comma separated list of columns for a specific table.
This should only be used when the completion window is active. > This should only be used when the completion window is active. >
<C-Right> <Right>
< - Displays a list of columns for the table currently highlighted in < - Displays a list of columns for the table currently highlighted in
the completion window. <C-Right> is not recognized on most Unix the completion window. <Right> is not recognized on most Unix
systems, so this maps is only created on the Windows platform. systems, so this maps is only created on the Windows platform.
If you would like the same feature on Unix, choose a different key If you would like the same feature on Unix, choose a different key
and make the same map in your vimrc. > and make the same map in your vimrc. >
<C-Left> <Left>
< - Displays the list of tables. < - Displays the list of tables.
<C-Left> is not recognized on most Unix systems, so this maps is <Left> is not recognized on most Unix systems, so this maps is
only created on the Windows platform. If you would like the same only created on the Windows platform. If you would like the same
feature on Unix, choose a different key and make the same map in feature on Unix, choose a different key and make the same map in
your vimrc. > your vimrc. >
@@ -725,8 +738,8 @@ platform you can also use <C-Space> or ALT keys.
Many times SQL can be used with different filetypes. For example Perl, Java, Many times SQL can be used with different filetypes. For example Perl, Java,
PHP, Javascript can all interact with a database. Often you need both the SQL PHP, Javascript can all interact with a database. Often you need both the SQL
completion as well as the completion capabilities for the current language you completion and the completion capabilities for the current language you are
are editing. editing.
This can be enabled easily with the following steps (assuming a Perl file): > This can be enabled easily with the following steps (assuming a Perl file): >
1. :e test.pl 1. :e test.pl

View File

@@ -1,4 +1,4 @@
*gui.txt* For Vim version 7.2. Last change: 2008 Jun 14 *gui.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -35,13 +35,13 @@ GUI version of Vim with:
The X11 version of Vim can run both in GUI and in non-GUI mode. See The X11 version of Vim can run both in GUI and in non-GUI mode. See
|gui-x11-start|. |gui-x11-start|.
*gui-init* *gvimrc* *.gvimrc* *_gvimrc* *gui-init* *gvimrc* *.gvimrc* *_gvimrc* *$MYGVIMRC*
The gvimrc file is where GUI-specific startup commands should be placed. It The gvimrc file is where GUI-specific startup commands should be placed. It
is always sourced after the |vimrc| file. If you have one then the $MYGVIMRC is always sourced after the |vimrc| file. If you have one then the $MYGVIMRC
environment variable has its name. environment variable has its name.
When the GUI starts up initializations are carried out, in this order: When the GUI starts up initializations are carried out, in this order:
- The 'term' option is set to "builgin_gui" and terminal options are reset to - The 'term' option is set to "builtin_gui" and terminal options are reset to
their default value for the GUI |terminal-options|. their default value for the GUI |terminal-options|.
- If the system menu file exists, it is sourced. The name of this file is - If the system menu file exists, it is sourced. The name of this file is
normally "$VIMRUNTIME/menu.vim". You can check this with ":version". Also normally "$VIMRUNTIME/menu.vim". You can check this with ":version". Also
@@ -156,26 +156,26 @@ configure which ones appear with the 'guioptions' option.
The interface looks like this (with ":set guioptions=mlrb"): The interface looks like this (with ":set guioptions=mlrb"):
+------------------------------+ +------------------------------+ `
| File Edit Help | <- Menu bar (m) | File Edit Help | <- Menu bar (m) `
+-+--------------------------+-+ +-+--------------------------+-+ `
|^| |^| |^| |^| `
|#| Text area. |#| |#| Text area. |#| `
| | | | | | | | `
|v|__________________________|v| |v|__________________________|v| `
Normal status line -> |-+ File.c 5,2 +-| Normal status line -> |-+ File.c 5,2 +-| `
between Vim windows |^|""""""""""""""""""""""""""|^| between Vim windows |^|""""""""""""""""""""""""""|^| `
| | | | | | | | `
| | Another file buffer. | | | | Another file buffer. | | `
| | | | | | | | `
|#| |#| |#| |#| `
Left scrollbar (l) -> |#| |#| <- Right Left scrollbar (l) -> |#| |#| <- Right `
|#| |#| scrollbar (r) |#| |#| scrollbar (r) `
| | | | | | | | `
|v| |v| |v| |v| `
+-+--------------------------+-+ +-+--------------------------+-+ `
| |< #### >| | <- Bottom | |< #### >| | <- Bottom `
+-+--------------------------+-+ scrollbar (b) +-+--------------------------+-+ scrollbar (b) `
Any of the scrollbar or menu components may be turned off by not putting the 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 appropriate letter in the 'guioptions' string. The bottom scrollbar is
@@ -473,9 +473,11 @@ this line to your .vimrc file (NOT your .gvimrc file!): >
:let did_install_default_menus = 1 :let did_install_default_menus = 1
If you also want to avoid the Syntax menu: > If you also want to avoid the Syntax menu: >
:let did_install_syntax_menu = 1 :let did_install_syntax_menu = 1
If you do want the Syntax menu but not all the entries for each available The first item in the Syntax menu can be used to show all available filetypes
syntax file (which take quite a bit of time to load): > in the menu (which can take a bit of time to load). If you want to have all
:let skip_syntax_sel_menu = 1 filetypes already present at startup, add: >
:let do_syntax_sel_menu = 1
< <
*console-menus* *console-menus*
Although this documentation is in the GUI section, you can actually use menus Although this documentation is in the GUI section, you can actually use menus
@@ -554,7 +556,7 @@ some modes:
mode inserted appended ~ mode inserted appended ~
Normal nothing nothing Normal nothing nothing
Visual <C-C> <C-\><C-G> Visual <C-C> <C-\><C-G>
Insert <C-O> Insert <C-\><C-O>
Cmdline <C-C> <C-\><C-G> Cmdline <C-C> <C-\><C-G>
Op-pending <C-C> <C-\><C-G> Op-pending <C-C> <C-\><C-G>
@@ -569,7 +571,7 @@ is equal to: >
:nmenu File.Next :next^M :nmenu File.Next :next^M
:vmenu File.Next ^C:next^M^\^G :vmenu File.Next ^C:next^M^\^G
:imenu File.Next ^O:next^M :imenu File.Next ^\^O:next^M
:cmenu File.Next ^C:next^M^\^G :cmenu File.Next ^C:next^M^\^G
:omenu File.Next ^C:next^M^\^G :omenu File.Next ^C:next^M^\^G
@@ -676,7 +678,7 @@ and Photon GUI. It should turn up in other GUIs in due course. The
default toolbar is setup in menu.vim. default toolbar is setup in menu.vim.
The display of the toolbar is controlled by the 'guioptions' letter 'T'. You The display of the toolbar is controlled by the 'guioptions' letter 'T'. You
can thus have menu & toolbar together, or either on its own, or neither. can thus have menu & toolbar together, or either on its own, or neither.
The appearance is controlled by the 'toolbar' option. You can chose between The appearance is controlled by the 'toolbar' option. You can choose between
an image, text or both. an image, text or both.
*toolbar-icon* *toolbar-icon*

View File

@@ -1,4 +1,4 @@
*gui_w16.txt* For Vim version 7.2. Last change: 2005 Mar 29 *gui_w16.txt* For Vim version 7.3. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 7.2. Last change: 2007 Aug 30 *gui_w32.txt* For Vim version 7.3. Last change: 2010 Dec 19
VIM REFERENCE MANUAL by Bram Moolenaar 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 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 want Vim to start a program and return immediately, you can use the following
syntax on W95 & NT: > 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 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 you must tell Windows 3.1x to keep executing a DOS command in the background
while you switch back to Vim. while you switch back to Vim.

View File

@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 7.2. Last change: 2007 Dec 09 *gui_x11.txt* For Vim version 7.3. Last change: 2010 Jul 20
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -453,14 +453,12 @@ searched for. If all three fail, the GUI will be disabled.
For GTK+, Vim's configuration process requires that GTK+ be properly For GTK+, Vim's configuration process requires that GTK+ be properly
installed. That is, the shell script 'gtk-config' must be in your PATH, and installed. That is, the shell script 'gtk-config' must be in your PATH, and
you can already successful compile, build, and execute a GTK+ program. The you can already successful compile, build, and execute a GTK+ program. The
reason for this is because the compiler flags (CFLAGS) and link flags reason for this is that the compiler flags (CFLAGS) and link flags (LDFLAGS)
(LDFLAGS) are obtained through the 'gtk-config' shell script. are obtained through the 'gtk-config' shell script.
If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument
to ./configure. Optionally, support for GNOME 2 will be compiled if the to ./configure. Optionally, support for GNOME 2 will be compiled if the
--enable-gnome-check option is also given. Note that the support for GTK+ 2 --enable-gnome-check option is also given.
is still experimental. However, many people have reported that it works just
fine for them.
Otherwise, if you are using Motif or Athena, when you have the Motif or Athena Otherwise, if you are using Motif or Athena, when you have the Motif or Athena
files in a directory where configure doesn't look, edit the Makefile to enter files in a directory where configure doesn't look, edit the Makefile to enter
@@ -468,15 +466,12 @@ the names of the directories. Search for "GUI_INC_LOC" for an example to set
the Motif directories, "CONF_OPT_X" for Athena. the Motif directories, "CONF_OPT_X" for Athena.
*gui-x11-gtk* *gui-x11-gtk*
At the time of this writing, you may use either GTK+ version 1.0.6 or 1.2. It At the time of this writing, GTK+ version 1.0.6 and 1.2 are outdated. It
is suggested that you use v1.2 since not all of Vim's GUI features are present is suggested that you use GTK 2. The GTK 1 support will most likely be
if using v1.0.6. For instance, there are no tearoff menus present in v1.0.6. dropped soon.
Using a version from GTK+'s CVS tree may or may not work, and is therefore not
supported and not recommended.
For the experimental GTK+ 2 GUI, using the latest release of the GTK+ 2.0 or For the GTK+ 2 GUI, using the latest release of the GTK+ 2.0 or GTK+ 2.2
GTK+ 2.2 series is recommended. CVS HEAD seems to work fine most of time as series is recommended.
well.
Lastly, although GTK+ has supposedly been ported to the Win32 platform, this Lastly, although GTK+ has supposedly been ported to the Win32 platform, this
has not been tested with Vim and is also unsupported. Also, it's unlikely to has not been tested with Vim and is also unsupported. Also, it's unlikely to
@@ -540,13 +535,16 @@ Of these three, Vim uses PRIMARY when reading and writing the "* register
register. Vim does not access the SECONDARY selection. register. Vim does not access the SECONDARY selection.
Examples: (assuming the default option values) Examples: (assuming the default option values)
- Select an URL in Visual mode in Vim. Go to a text field in Netscape and - Select an URL in Visual mode in Vim. Go to your browser and click the
click the middle mouse button. The selected text will be inserted middle mouse button in the URL text field. The selected text will be
(hopefully!). inserted (hopefully!). Note: in Firefox you can set the
- Select some text in Netscape by dragging with the mouse. Go to Vim and middlemouse.contentLoadURL preference to true in about:config, then the
selected URL will be used when pressing middle mouse button in most places
in the window.
- Select some text in your browser by dragging with the mouse. Go to Vim and
press the middle mouse button: The selected text is inserted. press the middle mouse button: The selected text is inserted.
- Select some text in Vim and do "+y. Go to Netscape, select some text in a - Select some text in Vim and do "+y. Go to your browser, select some text in
textfield by dragging with the mouse. Now use the right mouse button and a textfield by dragging with the mouse. Now use the right mouse button and
select "Paste" from the popup menu. The selected text is overwritten by the select "Paste" from the popup menu. The selected text is overwritten by the
text from Vim. text from Vim.
Note that the text in the "+ register remains available when making a Visual Note that the text in the "+ register remains available when making a Visual

View File

@@ -1,8 +1,12 @@
*hangulin.txt* For Vim version 7.2. Last change: 2006 Apr 02 *hangulin.txt* For Vim version 7.3. Last change: 2009 Jun 24
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
NOTE: The |+hangul_input| feature is scheduled to be removed. If you want to
keep it, please send a message to the Vim user maillist.
Introduction *hangul* Introduction *hangul*
------------ ------------
It is to input hangul, the Korean language, with VIM GUI version. It is to input hangul, the Korean language, with VIM GUI version.
@@ -96,6 +100,6 @@ Bug or Comment
Send comments, patches and suggestions to: Send comments, patches and suggestions to:
Chi-Deok Hwang <hwang@mizi.co.kr> Chi-Deok Hwang <hwang@mizi.co.kr>
Nam SungHyun <namsh@kldp.org> SungHyun Nam <goweol@gmail.com>
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*hebrew.txt* For Vim version 7.2. Last change: 2007 Jun 14 *hebrew.txt* For Vim version 7.3. Last change: 2007 Jun 14
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem) VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)

View File

@@ -1,4 +1,4 @@
*help.txt* For Vim version 7.2. Last change: 2008 Jul 21 *help.txt* For Vim version 7.3. Last change: 2010 Jul 20
VIM - main help file VIM - main help file
k k
@@ -26,6 +26,7 @@ Get specific help: It is possible to go directly to whatever you want help
Option ' :help 'textwidth' Option ' :help 'textwidth'
Search for help: Type ":help word", then hit CTRL-D to see matching Search for help: Type ":help word", then hit CTRL-D to see matching
help entries for "word". help entries for "word".
Or use ":helpgrep word". |:helpgrep|
VIM stands for Vi IMproved. Most of VIM was made by Bram Moolenaar, but only VIM stands for Vi IMproved. Most of VIM was made by Bram Moolenaar, but only
through the help of many others. See |credits|. through the help of many others. See |credits|.
@@ -90,6 +91,7 @@ REFERENCE MANUAL: These files explain every detail of Vim. *reference_toc*
General subjects ~ General subjects ~
|intro.txt| general introduction to Vim; notation used in help files |intro.txt| general introduction to Vim; notation used in help files
|help.txt| overview and quick reference (this file) |help.txt| overview and quick reference (this file)
|helphelp.txt| about using the help files
|index.txt| alphabetical index of all commands |index.txt| alphabetical index of all commands
|help-tags| all the tags you can jump to (index of tags) |help-tags| all the tags you can jump to (index of tags)
|howto.txt| how to do the most common editing tasks |howto.txt| how to do the most common editing tasks
@@ -144,6 +146,7 @@ Special issues ~
|hebrew.txt| Hebrew language support and editing |hebrew.txt| Hebrew language support and editing
|russian.txt| Russian language support and editing |russian.txt| Russian language support and editing
|ft_ada.txt| Ada (the programming language) support |ft_ada.txt| Ada (the programming language) support
|ft_sql.txt| about the SQL filetype plugin
|hangulin.txt| Hangul (Korean) input mode |hangulin.txt| Hangul (Korean) input mode
|rileft.txt| right-to-left editing mode |rileft.txt| right-to-left editing mode
@@ -155,6 +158,7 @@ GUI ~
Interfaces ~ Interfaces ~
|if_cscop.txt| using Cscope with Vim |if_cscop.txt| using Cscope with Vim
|if_lua.txt| Lua interface
|if_mzsch.txt| MzScheme interface |if_mzsch.txt| MzScheme interface
|if_perl.txt| Perl interface |if_perl.txt| Perl interface
|if_pyth.txt| Python interface |if_pyth.txt| Python interface
@@ -207,10 +211,11 @@ Now that you've jumped here with CTRL-] or a double mouse click, you can use
CTRL-T, CTRL-O, g<RightMouse>, or <C-RightMouse> to go back to where you were. CTRL-T, CTRL-O, g<RightMouse>, or <C-RightMouse> to go back to where you were.
Note that tags are within | characters, but when highlighting is enabled these Note that tags are within | characters, but when highlighting is enabled these
are hidden. That makes it easier to read a command. characters are hidden. That makes it easier to read a command.
Anyway, you can use CTRL-] on any word, also when it is not within |, and Vim Anyway, you can use CTRL-] on any word, also when it is not within |, and Vim
will try to find help for it. will try to find help for it. Especially for options in single quotes, e.g.
'compatible'.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl: vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl:

349
runtime/doc/helphelp.txt Normal file
View File

@@ -0,0 +1,349 @@
*helphelp.txt* For Vim version 7.3. Last change: 2010 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
Help on help files *helphelp*
1. Help commands |online-help|
2. Translated help files |help-translated|
3. Writing help files |help-writing|
==============================================================================
1. Help commands *online-help*
*help* *<Help>* *:h* *:help* *<F1>* *i_<F1>* *i_<Help>*
<Help> or
:h[elp] Open a window and display the help file in read-only
mode. If there is a help window open already, use
that one. Otherwise, if the current window uses the
full width of the screen or is at least 80 characters
wide, the help window will appear just above the
current window. Otherwise the new window is put at
the very top.
The 'helplang' option is used to select a language, if
the main help file is available in several languages.
{not in Vi}
*{subject}* *E149* *E661*
:h[elp] {subject} Like ":help", additionally jump to the tag {subject}.
{subject} can include wildcards like "*", "?" and
"[a-z]":
:help z? jump to help for any "z" command
:help z. jump to the help for "z."
If there is no full match for the pattern, or there
are several matches, the "best" match will be used.
A sophisticated algorithm is used to decide which
match is better than another one. These items are
considered in the computation:
- A match with same case is much better than a match
with different case.
- A match that starts after a non-alphanumeric
character is better than a match in the middle of a
word.
- A match at or near the beginning of the tag is
better than a match further on.
- The more alphanumeric characters match, the better.
- The shorter the length of the match, the better.
The 'helplang' option is used to select a language, if
the {subject} is available in several languages.
To find a tag in a specific language, append "@ab",
where "ab" is the two-letter language code. See
|help-translated|.
Note that the longer the {subject} you give, the less
matches will be found. You can get an idea how this
all works by using commandline completion (type CTRL-D
after ":help subject" |c_CTRL-D|).
If there are several matches, you can have them listed
by hitting CTRL-D. Example: >
:help cont<Ctrl-D>
< Instead of typing ":help CTRL-V" to search for help
for CTRL-V you can type: >
:help ^V
< This also works together with other characters, for
example to find help for CTRL-V in Insert mode: >
:help i^V
<
To use a regexp |pattern|, first do ":help" and then
use ":tag {pattern}" in the help window. The
":tnext" command can then be used to jump to other
matches, "tselect" to list matches and choose one. >
:help index| :tse z.
< When there is no argument you will see matches for
"help", to avoid listing all possible matches (that
would be very slow).
The number of matches displayed is limited to 300.
This command can be followed by '|' and another
command, but you don't need to escape the '|' inside a
help command. So these both work: >
:help |
:help k| only
< Note that a space before the '|' is seen as part of
the ":help" argument.
You can also use <LF> or <CR> to separate the help
command from a following command. You need to type
CTRL-V first to insert the <LF> or <CR>. Example: >
:help so<C-V><CR>only
< {not in Vi}
:h[elp]! [subject] Like ":help", but in non-English help files prefer to
find a tag in a file with the same language as the
current file. See |help-translated|.
*:helpg* *:helpgrep*
:helpg[rep] {pattern}[@xx]
Search all help text files and make a list of lines
in which {pattern} matches. Jumps to the first match.
The optional [@xx] specifies that only matches in the
"xx" language are to be found.
You can navigate through the matches with the
|quickfix| commands, e.g., |:cnext| to jump to the
next one. Or use |:cwindow| to get the list of
matches in the quickfix window.
{pattern} is used as a Vim regexp |pattern|.
'ignorecase' is not used, add "\c" to ignore case.
Example for case sensitive search: >
:helpgrep Uganda
< Example for case ignoring search: >
:helpgrep uganda\c
< Example for searching in French help: >
:helpgrep backspace@fr
< The pattern does not support line breaks, it must
match within one line. You can use |:grep| instead,
but then you need to get the list of help files in a
complicated way.
Cannot be followed by another command, everything is
used as part of the pattern. But you can use
|:execute| when needed.
Compressed help files will not be searched (Fedora
compresses the help files).
{not in Vi}
*:lh* *:lhelpgrep*
:lh[elpgrep] {pattern}[@xx]
Same as ":helpgrep", except the location list is used
instead of the quickfix list. If the help window is
already opened, then the location list for that window
is used. Otherwise, a new help window is opened and
the location list for that window is set. The
location list for the current window is not changed.
*:exu* *:exusage*
:exu[sage] Show help on Ex commands. Added to simulate the Nvi
command. {not in Vi}
*:viu* *:viusage*
:viu[sage] Show help on Normal mode commands. Added to simulate
the Nvi command. {not in Vi}
When no argument is given to |:help| the file given with the 'helpfile' option
will be opened. Otherwise the specified tag is searched for in all "doc/tags"
files in the directories specified in the 'runtimepath' option.
The initial height of the help window can be set with the 'helpheight' option
(default 20).
Jump to specific subjects by using tags. This can be done in two ways:
- Use the "CTRL-]" command while standing on the name of a command or option.
This only works when the tag is a keyword. "<C-Leftmouse>" and
"g<LeftMouse>" work just like "CTRL-]".
- use the ":ta {subject}" command. This also works with non-keyword
characters.
Use CTRL-T or CTRL-O to jump back.
Use ":q" to close the help window.
If there are several matches for an item you are looking for, this is how you
can jump to each one of them:
1. Open a help window
2. Use the ":tag" command with a slash prepended to the tag. E.g.: >
:tag /min
3. Use ":tnext" to jump to the next matching tag.
It is possible to add help files for plugins and other items. You don't need
to change the distributed help files for that. See |add-local-help|.
To write a local help file, see |write-local-help|.
Note that the title lines from the local help files are automagically added to
the "LOCAL ADDITIONS" section in the "help.txt" help file |local-additions|.
This is done when viewing the file in Vim, the file itself is not changed. It
is done by going through all help files and obtaining the first line of each
file. The files in $VIMRUNTIME/doc are skipped.
*help-xterm-window*
If you want to have the help in another xterm window, you could use this
command: >
:!xterm -e vim +help &
<
*:helpfind* *:helpf*
:helpf[ind] Like |:help|, but use a dialog to enter the argument.
Only for backwards compatibility. It now executes the
ToolBar.FindHelp menu entry instead of using a builtin
dialog. {only when compiled with |+GUI_GTK|}
{not in Vi}
*:helpt* *:helptags*
*E154* *E150* *E151* *E152* *E153* *E670*
:helpt[ags] [++t] {dir}
Generate the help tags file(s) for directory {dir}.
All "*.txt" and "*.??x" files in the directory are
scanned for a help tag definition in between stars.
The "*.??x" files are for translated docs, they
generate the "tags-??" file, see |help-translated|.
The generated tags files are sorted.
When there are duplicates an error message is given.
An existing tags file is silently overwritten.
The optional "++t" argument forces adding the
"help-tags" tag. This is also done when the {dir} is
equal to $VIMRUNTIME/doc.
To rebuild the help tags in the runtime directory
(requires write permission there): >
:helptags $VIMRUNTIME/doc
< {not in Vi}
==============================================================================
2. Translated help files *help-translated*
It is possible to add translated help files, next to the original English help
files. Vim will search for all help in "doc" directories in 'runtimepath'.
This is only available when compiled with the |+multi_lang| feature.
At this moment translations are available for:
Chinese - multiple authors
French - translated by David Blanchet
Italian - translated by Antonio Colombo
Polish - translated by Mikolaj Machowski
Russian - translated by Vassily Ragosin
See the Vim website to find them: http://www.vim.org/translations.php
A set of translated help files consists of these files:
help.abx
howto.abx
...
tags-ab
"ab" is the two-letter language code. Thus for Italian the names are:
help.itx
howto.itx
...
tags-it
The 'helplang' option can be set to the preferred language(s). The default is
set according to the environment. Vim will first try to find a matching tag
in the preferred language(s). English is used when it cannot be found.
To find a tag in a specific language, append "@ab" to a tag, where "ab" is the
two-letter language code. Example: >
:he user-manual@it
:he user-manual@en
The first one finds the Italian user manual, even when 'helplang' is empty.
The second one finds the English user manual, even when 'helplang' is set to
"it".
When using command-line completion for the ":help" command, the "@en"
extension is only shown when a tag exists for multiple languages. When the
tag only exists for English "@en" is omitted.
When using |CTRL-]| or ":help!" in a non-English help file Vim will try to
find the tag in the same language. If not found then 'helplang' will be used
to select a language.
Help files must use latin1 or utf-8 encoding. Vim assumes the encoding is
utf-8 when finding non-ASCII characters in the first line. Thus you must
translate the header with "For Vim version".
The same encoding must be used for the help files of one language in one
directory. You can use a different encoding for different languages and use
a different encoding for help files of the same language but in a different
directory.
Hints for translators:
- Do not translate the tags. This makes it possible to use 'helplang' to
specify the preferred language. You may add new tags in your language.
- When you do not translate a part of a file, add tags to the English version,
using the "tag@en" notation.
- Make a package with all the files and the tags file available for download.
Users can drop it in one of the "doc" directories and start use it.
Report this to Bram, so that he can add a link on www.vim.org.
- Use the |:helptags| command to generate the tags files. It will find all
languages in the specified directory.
==============================================================================
3. Writing help files *help-writing*
For ease of use, a Vim help file for a plugin should follow the format of the
standard Vim help files. If you are writing a new help file it's best to copy
one of the existing files and use it as a template.
The first line in a help file should have the following format:
*helpfile_name.txt* For Vim version 7.3 Last change: 2010 June 4
The first field is a link to the help file name. The second field describes
the applicable Vim version. The last field specifies the last modification
date of the file. Each field is separated by a tab.
At the bottom of the help file, place a Vim modeline to set the 'textwidth'
and 'tabstop' options and the 'filetype' to 'help'. Never set a global option
in such a modeline, that can have consequences undesired by whoever reads that
help.
TAGS
To define a help tag, place the name between asterisks (*tag-name*). The
tag-name should be different from all the Vim help tag names and ideally
should begin with the name of the Vim plugin. The tag name is usually right
aligned on a line.
When referring to an existing help tag and to create a hot-link, place the
name between two bars (|) eg. |help-writing|.
When referring to a Vim option in the help file, place the option name between
two single quotes, eg. 'statusline'
HIGHLIGHTING
To define a column heading, use a tilde character at the end of the line.
This will highlight the column heading in a different color. E.g.
Column heading~
To separate sections in a help file, place a series of '=' characters in a
line starting from the first column. The section separator line is highlighted
differently.
To quote a block of ex-commands verbatim, place a greater than (>) character
at the end of the line before the block and a less than (<) character as the
first non-blank on a line following the block. Any line starting in column 1
also implicitly stops the block of ex-commands before it. E.g. >
function Example_Func()
echo "Example"
endfunction
<
The following are highlighted differently in a Vim help file:
- a special key name expressed either in <> notation as in <PageDown>, or
as a Ctrl character as in CTRL-X
- anything between {braces}, e.g. {lhs} and {rhs}
The word "Note", "Notes" and similar automagically receive distinctive
highlighting. So do these:
*Todo something to do
*Error something wrong
You can find the details in $VIMRUNTIME/syntax/help.vim
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*howto.txt* For Vim version 7.2. Last change: 2006 Apr 02 *howto.txt* For Vim version 7.3. Last change: 2006 Apr 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@@ -1,4 +1,4 @@
*if_cscop.txt* For Vim version 7.2. Last change: 2009 Mar 18 *if_cscop.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Andy Kahn VIM REFERENCE MANUAL by Andy Kahn
@@ -112,8 +112,7 @@ The available subcommands are:
:cscope add /projects/vim/cscope.out /usr/local/vim :cscope add /projects/vim/cscope.out /usr/local/vim
:cscope add cscope.out /usr/local/vim -C :cscope add cscope.out /usr/local/vim -C
< <
*cscope-find* *cs-find* *cscope-find* *cs-find* *E567*
*E565* *E567*
find : Query cscope. All cscope query options are available find : Query cscope. All cscope query options are available
except option #5 ("Change this grep pattern"). except option #5 ("Change this grep pattern").
@@ -198,7 +197,7 @@ The available subcommands are:
USAGE :cs help USAGE :cs help
*E260* *E261* *E261*
kill : Kill a cscope connection (or kill all cscope connections). kill : Kill a cscope connection (or kill all cscope connections).
USAGE :cs kill {num|partial_name} USAGE :cs kill {num|partial_name}
@@ -355,13 +354,8 @@ cscope version for Win32 see:
The DJGPP-built version from http://cscope.sourceforge.net is known to not The DJGPP-built version from http://cscope.sourceforge.net is known to not
work with Vim. work with Vim.
There are a couple of hard-coded limitations: Hard-coded limitation: doing a |:tjump| when |:cstag| searches the tag files
is not configurable (e.g., you can't do a tselect instead).
1. The maximum number of cscope connections allowed is 8. Do you
really need more?
2. Doing a |:tjump| when |:cstag| searches the tag files is not
configurable (e.g., you can't do a tselect instead).
============================================================================== ==============================================================================
6. Suggested usage *cscope-suggestions* 6. Suggested usage *cscope-suggestions*
@@ -486,7 +480,8 @@ bit of code) was adapted from the cscope interface in nvi. Please report
any problems, suggestions, patches, et al., you have for the usage of any problems, suggestions, patches, et al., you have for the usage of
cscope within Vim to him. cscope within Vim to him.
*cscope-win32* *cscope-win32*
For a cscope version for Win32 see: http://iamphet.nm.ru/cscope/index.html For a cscope version for Win32 see:
http://code.google.com/p/cscope-win32/
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
him if you have Win32-specific issues. him if you have Win32-specific issues.

244
runtime/doc/if_lua.txt Normal file
View File

@@ -0,0 +1,244 @@
*if_lua.txt* For Vim version 7.3. Last change: 2010 Jul 22
VIM REFERENCE MANUAL by Luis Carvalho
The Lua Interface to Vim *lua* *Lua*
1. Commands |lua-commands|
2. The vim module |lua-vim|
3. Buffer userdata |lua-buffer|
4. Window userdata |lua-window|
{Vi does not have any of these commands}
The Lua interface is available only when Vim was compiled with the
|+lua| feature.
==============================================================================
1. Commands *lua-commands*
*:lua*
:[range]lua {chunk}
Execute Lua chunk {chunk}. {not in Vi}
Examples:
>
:lua print("Hello, Vim!")
:lua local curbuf = vim.buffer() curbuf[7] = "line #7"
<
:[range]lua << {endmarker}
{script}
{endmarker}
Execute Lua script {script}. {not in Vi}
Note: This command doesn't work when the Lua
feature wasn't compiled in. To avoid errors, see
|script-here|.
{endmarker} must NOT be preceded by any white space. If {endmarker} is
omitted from after the "<<", a dot '.' must be used after {script}, like
for the |:append| and |:insert| commands.
This form of the |:lua| command is mainly useful for including Lua code
in Vim scripts.
Example:
>
function! CurrentLineInfo()
lua << EOF
local linenr = vim.window().line
local curline = vim.buffer()[linenr]
print(string.format("Current line [%d] has %d chars",
linenr, #curline))
EOF
endfunction
<
*:luado*
:[range]luado {body} Execute Lua function "function (line) {body} end" for
each line in the [range], with the function argument
being set to the text of each line in turn, without a
trailing <EOL>. If the value returned by the function
is a string it becomes the text of the line in the
current turn. The default for [range] is the whole
file: "1,$". {not in Vi}
Examples:
>
:luado return string.format("%s\t%d", line:reverse(), #line)
:lua require"lpeg"
:lua -- balanced parenthesis grammar:
:lua bp = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" }
:luado if bp:match(line) then return "-->\t" .. line end
<
*:luafile*
:[range]luafile {file}
Execute Lua script in {file}. {not in Vi}
The whole argument is used as a single file name.
Examples:
>
:luafile script.lua
:luafile %
<
All these commands execute a Lua chunk from either the command line (:lua and
:luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
interpreter, each chunk has its own scope and so only global variables are
shared between command calls. Lua default libraries "table", "string", "math",
and "package" are available, "io" and "debug" are not, and "os" is restricted
to functions "date", "clock", "time", "difftime", and "getenv". In addition,
Lua "print" function has its output redirected to the Vim message area, with
arguments separated by a white space instead of a tab.
Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
procedures that alter buffer content, open new buffers, and change cursor
position are restricted when the command is executed in the |sandbox|.
==============================================================================
2. The vim module *lua-vim*
Lua interfaces Vim through the "vim" module. The first and last line of the
input range are stored in "vim.firstline" and "vim.lastline" respectively. The
module also includes routines for buffer, window, and current line queries,
Vim evaluation and command execution, and others.
vim.isbuffer(value) Returns 'true' (boolean, not string) if
"value" is a buffer userdata and 'false'
otherwise (see |lua-buffer|).
vim.buffer([arg]) If "arg" is a number, returns buffer with
number "arg" in the buffer list or, if "arg"
is a string, returns buffer whose full or short
name is "arg". In both cases, returns 'nil'
(nil value, not string) if the buffer is not
found. Otherwise, if "toboolean(arg)" is
'true' returns the first buffer in the buffer
list or else the current buffer.
vim.iswindow(value) Returns 'true' (boolean, not string) if
"value" is a window userdata and
'false' otherwise (see |lua-window|).
vim.window([arg]) If "arg" is a number, returns window with
number "arg" or 'nil' (nil value, not string)
if not found. Otherwise, if "toboolean(arg)"
is 'true' returns the first window or else the
current window.
vim.command({cmd}) Executes the vim (ex-mode) command {cmd}.
Examples: >
:lua vim.command"set tw=60"
:lua vim.command"normal ddp"
<
vim.eval({expr}) Evaluates expression {expr} (see |expression|),
converts the result to Lua, and returns it.
Vim strings and numbers are directly converted
to Lua strings and numbers respectively. Vim
lists and dictionaries are converted to Lua
tables (lists become integer-keyed tables).
Examples: >
:lua tw = vim.eval"&tw"
:lua print(vim.eval"{'a': 'one'}".a)
<
vim.line() Returns the current line (without the trailing
<EOL>), a Lua string.
vim.beep() Beeps.
vim.open({fname}) Opens a new buffer for file {fname} and
returns it. Note that the buffer is not set as
current.
==============================================================================
3. Buffer userdata *lua-buffer*
Buffer userdata represent vim buffers. A buffer userdata "b" has the following
properties and methods:
Properties
----------
o "b()" sets "b" as the current buffer.
o "#b" is the number of lines in buffer "b".
o "b[k]" represents line number k: "b[k] = newline" replaces line k
with string "newline" and "b[k] = nil" deletes line k.
o "b.name" contains the short name of buffer "b" (read-only).
o "b.fname" contains the full name of buffer "b" (read-only).
o "b.number" contains the position of buffer "b" in the buffer list
(read-only).
Methods
-------
o "b:insert(newline[, pos])" inserts string "newline" at (optional)
position "pos" in the buffer. The default value for "pos" is
"#b + 1". If "pos == 0" then "newline" becomes the first line in
the buffer.
o "b:next()" returns the buffer next to "b" in the buffer list.
o "b:previous()" returns the buffer previous to "b" in the buffer
list.
o "b:isvalid()" returns 'true' (boolean) if buffer "b" corresponds to
a "real" (not freed from memory) Vim buffer.
Examples:
>
:lua b = vim.buffer() -- current buffer
:lua print(b.name, b.number)
:lua b[1] = "first line"
:lua b:insert("FIRST!", 0)
:lua b[1] = nil -- delete top line
:lua for i=1,3 do b:insert(math.random()) end
:3,4lua for i=vim.lastline,vim.firstline,-1 do b[i] = nil end
:lua vim.open"myfile"() -- open buffer and set it as current
function! ListBuffers()
lua << EOF
local b = vim.buffer(true) -- first buffer in list
while b ~= nil do
print(b.number, b.name, #b)
b = b:next()
end
vim.beep()
EOF
endfunction
<
==============================================================================
4. Window userdata *lua-window*
Window objects represent vim windows. A window userdata "w" has the following
properties and methods:
Properties
----------
o "w()" sets "w" as the current window.
o "w.buffer" contains the buffer of window "w" (read-only).
o "w.line" represents the cursor line position in window "w".
o "w.col" represents the cursor column position in window "w".
o "w.width" represents the width of window "w".
o "w.height" represents the height of window "w".
Methods
-------
o "w:next()" returns the window next to "w".
o "w:previous()" returns the window previous to "w".
o "w:isvalid()" returns 'true' (boolean) if window "w" corresponds to
a "real" (not freed from memory) Vim window.
Examples:
>
:lua w = vim.window() -- current window
:lua print(w.buffer.name, w.line, w.col)
:lua w.width = w.width + math.random(10)
:lua w.height = 2 * math.random() * w.height
:lua n,w = 0,vim.window(true) while w~=nil do n,w = n + 1,w:next() end
:lua print("There are " .. n .. " windows")
<
==============================================================================
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*if_mzsch.txt* For Vim version 7.2. Last change: 2008 Jun 28 *if_mzsch.txt* For Vim version 7.3. Last change: 2010 Feb 11
VIM REFERENCE MANUAL by Sergey Khorev VIM REFERENCE MANUAL by Sergey Khorev
@@ -9,8 +9,9 @@ The MzScheme Interface to Vim *mzscheme* *MzScheme*
1. Commands |mzscheme-commands| 1. Commands |mzscheme-commands|
2. Examples |mzscheme-examples| 2. Examples |mzscheme-examples|
3. Threads |mzscheme-threads| 3. Threads |mzscheme-threads|
4. The Vim access procedures |mzscheme-vim| 4. Vim access from MzScheme |mzscheme-vim|
5. Dynamic loading |mzscheme-dynamic| 5. mzeval() Vim function |mzscheme-mzeval|
6. Dynamic loading |mzscheme-dynamic|
{Vi does not have any of these commands} {Vi does not have any of these commands}
@@ -42,10 +43,6 @@ Note: On FreeBSD you should use the "drscheme" port.
*:mzfile* *:mzf* *:mzfile* *:mzf*
:[range]mzf[ile] {file} Execute the MzScheme script in {file}. {not in Vi} :[range]mzf[ile] {file} Execute the MzScheme script in {file}. {not in Vi}
All statements are executed in the namespace of the
buffer that was current during :mzfile start.
If you want to access other namespaces, use
'parameterize'.
All of these commands do essentially the same thing - they execute a piece of All of these commands do essentially the same thing - they execute a piece of
MzScheme code, with the "current range" set to the given line MzScheme code, with the "current range" set to the given line
@@ -54,8 +51,6 @@ range.
In the case of :mzscheme, the code to execute is in the command-line. In the case of :mzscheme, the code to execute is in the command-line.
In the case of :mzfile, the code to execute is the contents of the given file. In the case of :mzfile, the code to execute is the contents of the given file.
Each buffer has its own MzScheme namespace. Global namespace is bound to
the "global-namespace" value from the 'vimext' module.
MzScheme interface defines exception exn:vim, derived from exn. MzScheme interface defines exception exn:vim, derived from exn.
It is raised for various Vim errors. It is raised for various Vim errors.
@@ -79,40 +74,8 @@ To avoid clashes with MzScheme, consider using prefix when requiring module,
e.g.: > e.g.: >
:mzscheme (require (prefix vim- vimext)) :mzscheme (require (prefix vim- vimext))
< <
All the examples below assume this naming scheme. Note that you need to do All the examples below assume this naming scheme.
this again for every buffer.
The auto-instantiation can be achieved with autocommands, e.g. you can put
something like this in your .vimrc (EOFs should not have indentation): >
function s:MzRequire()
if has("mzscheme")
:mz << EOF
(require (prefix vim- vimext))
(let ((buf (vim-get-buff-by-name (vim-eval "expand(\"<afile>\")"))))
(when (and buf (not (eq? buf (vim-curr-buff))))
(parameterize ((current-namespace (vim-get-buff-namespace buf)))
(namespace-attach-module vim-global-namespace 'vimext)
(namespace-require '(prefix vim vimext)))))
EOF
endif
endfunction
function s:MzStartup()
if has("mzscheme")
au BufNew,BufNewFile,BufAdd,BufReadPre * :call s:MzRequire()
:mz << EOF
(current-library-collection-paths
(cons
(build-path (find-system-path 'addon-dir) (version) "collects")
(current-library-collection-paths)))
EOF
endif
endfunction
call s:MzStartup()
<
The global namespace just instantiated this module with the prefix "vimext:".
*mzscheme-sandbox* *mzscheme-sandbox*
When executed in the |sandbox|, access to some filesystem and Vim interface When executed in the |sandbox|, access to some filesystem and Vim interface
procedures is restricted. procedures is restricted.
@@ -121,12 +84,17 @@ procedures is restricted.
2. Examples *mzscheme-examples* 2. Examples *mzscheme-examples*
> >
:mzscheme (display "Hello") :mzscheme (display "Hello")
:mz (display (string-append "Using MzScheme version " (version)))
:mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x
:mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x
:mzscheme (vim-set-buff-line 10 "This is line #10") :mzscheme (vim-set-buff-line 10 "This is line #10")
< <
Inline script usage: > Inline script usage: >
function! <SID>SetFirstLine() function! <SID>SetFirstLine()
:mz << EOF :mz << EOF
(display "!!!") (display "!!!")
(require (prefix vim- vimext))
; for newer versions (require (prefix-in vim- 'vimext))
(vim-set-buff-line 1 "This is line #1") (vim-set-buff-line 1 "This is line #1")
(vim-beep) (vim-beep)
EOF EOF
@@ -137,17 +105,33 @@ Inline script usage: >
File execution: > File execution: >
:mzfile supascript.scm :mzfile supascript.scm
< <
Accessing the current buffer namespace from an MzScheme program running in Vim exception handling: >
another buffer within |:mzfile|-executed script : > :mz << EOF
; Move to the window below (require (prefix vim- vimext))
(vim-command "wincmd j") ; for newer versions (require (prefix-in vim- 'vimext))
; execute in the context of buffer, to which window belongs (with-handlers
; assume that buffer has 'textstring' defined ([exn:vim? (lambda (e) (display (exn-message e)))])
(parameterize ((current-namespace (vim-eval "nonsense-string"))
(vim-get-buff-namespace (vim-curr-buff)))) EOF
(eval '(vim-set-buff-line 1 textstring)))
< <
Auto-instantiation of vimext module (can be placed in your |vimrc|): >
function! MzRequire()
:redir => l:mzversion
:mz (version)
:redir END
if strpart(l:mzversion, 1, 1) < "4"
" MzScheme versions < 4.x:
:mz (require (prefix vim- vimext))
else
" newer versions:
:mz (require (prefix-in vim- 'vimext))
endif
endfunction
if has("mzscheme")
silent call MzRequire()
endif
<
============================================================================== ==============================================================================
3. Threads *mzscheme-threads* 3. Threads *mzscheme-threads*
@@ -159,7 +143,7 @@ Thread scheduling in the console version of Vim is less reliable than in the
GUI version. GUI version.
============================================================================== ==============================================================================
5. VIM Functions *mzscheme-vim* 4. Vim access from MzScheme *mzscheme-vim*
*mzscheme-vimext* *mzscheme-vimext*
The 'vimext' module provides access to procedures defined in the MzScheme The 'vimext' module provides access to procedures defined in the MzScheme
@@ -168,11 +152,11 @@ interface.
Common Common
------ ------
(command {command-string}) Perform the vim ":Ex" style command. (command {command-string}) Perform the vim ":Ex" style command.
(eval {expr-string}) Evaluate the vim expression to a string. (eval {expr-string}) Evaluate the vim expression into
A |List| is turned into a string by respective MzScheme object: |Lists| are
joining the items and inserting line represented as Scheme lists,
breaks. |Dictionaries| as hash tables.
NOTE clashes with MzScheme eval NOTE the name clashes with MzScheme eval
(range-start) Start/End of the range passed with (range-start) Start/End of the range passed with
(range-end) the Scheme command. (range-end) the Scheme command.
(beep) beep (beep) beep
@@ -186,7 +170,6 @@ Common
be set. The symbol 'global can be passed be set. The symbol 'global can be passed
as {buffer-or-window}. Then |:setglobal| as {buffer-or-window}. Then |:setglobal|
will be used. will be used.
global-namespace The MzScheme main namespace.
Buffers *mzscheme-buffer* Buffers *mzscheme-buffer*
------- -------
@@ -202,8 +185,7 @@ Buffers *mzscheme-buffer*
current buffer will be used. current buffer will be used.
(get-buff-line-list {start} {end} [buffer]) (get-buff-line-list {start} {end} [buffer])
Get a list of lines in a buffer. {Start} Get a list of lines in a buffer. {Start}
and {end} are 1-based. {Start} is and {end} are 1-based and inclusive.
inclusive, {end} - exclusive.
(set-buff-line-list {start} {end} {string-list} [buffer]) (set-buff-line-list {start} {end} {string-list} [buffer])
Set a list of lines in a buffer. If Set a list of lines in a buffer. If
string-list is #f or null, the lines get string-list is #f or null, the lines get
@@ -217,8 +199,8 @@ Buffers *mzscheme-buffer*
Insert a list of lines into a buffer after Insert a list of lines into a buffer after
{linenr}. If {linenr} is 0, lines will be {linenr}. If {linenr} is 0, lines will be
inserted at start. inserted at start.
(curr-buff) Get the current buffer. Use procedures (curr-buff) Get the current buffer. Use other MzScheme
from "vimcmd" module to change it. interface procedures to change it.
(buff-count) Get count of total buffers in the editor. (buff-count) Get count of total buffers in the editor.
(get-next-buff [buffer]) Get next buffer. (get-next-buff [buffer]) Get next buffer.
(get-prev-buff [buffer]) Get previous buffer. Return #f when there (get-prev-buff [buffer]) Get previous buffer. Return #f when there
@@ -228,7 +210,6 @@ Buffers *mzscheme-buffer*
if there is no such buffer. if there is no such buffer.
(get-buff-by-num {buffernum}) Get a buffer by its number (return #f if (get-buff-by-num {buffernum}) Get a buffer by its number (return #f if
there is no buffer with this number). there is no buffer with this number).
(get-buff-namespace [buffer]) Get buffer namespace.
Windows *mzscheme-window* Windows *mzscheme-window*
------ ------
@@ -250,7 +231,13 @@ Windows *mzscheme-window*
(set-cursor (line . col) [window]) Set cursor position. (set-cursor (line . col) [window]) Set cursor position.
============================================================================== ==============================================================================
5. Dynamic loading *mzscheme-dynamic* 5. mzeval() Vim function *mzscheme-mzeval*
To facilitate bi-directional interface, you can use |mzeval()| function to
evaluate MzScheme expressions and pass their values to VimL.
==============================================================================
6. Dynamic loading *mzscheme-dynamic* *E815*
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version| On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
output then includes |+mzscheme/dyn|. output then includes |+mzscheme/dyn|.

View File

@@ -1,4 +1,4 @@
*if_ole.txt* For Vim version 7.2. Last change: 2007 May 10 *if_ole.txt* For Vim version 7.3. Last change: 2008 Aug 16
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore
@@ -115,7 +115,7 @@ Example (Visual Basic syntax) >
3. The "normal" command *ole-normal* 3. The "normal" command *ole-normal*
Due to the way Vim processes OLE Automation commands, combined with the method Due to the way Vim processes OLE Automation commands, combined with the method
of implementation of the ex command :normal, it is not possible to execute the of implementation of the Ex command :normal, it is not possible to execute the
:normal command via OLE automation. Any attempt to do so will fail, probably :normal command via OLE automation. Any attempt to do so will fail, probably
harmlessly, although possibly in unpredictable ways. harmlessly, although possibly in unpredictable ways.

View File

@@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 7.2. Last change: 2006 Mar 06 *if_perl.txt* For Vim version 7.3. Last change: 2010 Jul 21
VIM REFERENCE MANUAL by Sven Verdoolaege VIM REFERENCE MANUAL by Sven Verdoolaege
@@ -265,18 +265,26 @@ Note that "EOF" must be at the start of the line.
============================================================================== ==============================================================================
4. Dynamic loading *perl-dynamic* 4. Dynamic loading *perl-dynamic*
On MS-Windows the Perl library can be loaded dynamically. The |:version| On MS-Windows and Unix the Perl library can be loaded dynamically. The
output then includes |+perl/dyn|. |:version| output then includes |+perl/dyn|.
This means that Vim will search for the Perl DLL file only when needed. When This means that Vim will search for the Perl DLL or shared library file only
you don't use the Perl interface you don't need it, thus you can use Vim when needed. When you don't use the Perl interface you don't need it, thus
without this DLL file. you can use Vim without this file.
To use the Perl interface the Perl DLL must be in your search path. In a
console window type "path" to see what directories are used. MS-Windows ~
You can download Perl from http://www.perl.org. The one from ActiveState was
used for building Vim.
To use the Perl interface the Perl DLL must be in your search path.
If Vim reports it cannot find the perl512.dll, make sure your $PATH includes
the directory where it is located. The Perl installer normally does that.
In a console window type "path" to see what directories are used.
The name of the DLL must match the Perl version Vim was compiled with. The name of the DLL must match the Perl version Vim was compiled with.
Currently the name is "perl58.dll". That is for Perl 5.8. To know for Currently the name is "perl512.dll". That is for Perl 5.12. To know for
sure edit "gvim.exe" and search for "perl\d*.dll\c". sure edit "gvim.exe" and search for "perl\d*.dll\c".
============================================================================== ==============================================================================

View File

@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.2. Last change: 2006 Apr 30 *if_pyth.txt* For Vim version 7.3. Last change: 2010 Oct 20
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore
@@ -12,11 +12,14 @@ The Python Interface to Vim *python* *Python*
4. Range objects |python-range| 4. Range objects |python-range|
5. Window objects |python-window| 5. Window objects |python-window|
6. Dynamic loading |python-dynamic| 6. Dynamic loading |python-dynamic|
7. Python 3 |python3|
{Vi does not have any of these commands} {Vi does not have any of these commands}
The Python interface is available only when Vim was compiled with the The Python 2.x interface is available only when Vim was compiled with the
|+python| feature. |+python| feature.
The Python 3 interface is available only when Vim was compiled with the
|+python3| feature.
============================================================================== ==============================================================================
1. Commands *python-commands* 1. Commands *python-commands*
@@ -93,7 +96,7 @@ module before using it: >
Overview > Overview >
:py print "Hello" # displays a message :py print "Hello" # displays a message
:py vim.command(cmd) # execute an ex command :py vim.command(cmd) # execute an Ex command
:py w = vim.windows[n] # gets window "n" :py w = vim.windows[n] # gets window "n"
:py cw = vim.current.window # gets the current window :py cw = vim.current.window # gets the current window
:py b = vim.buffers[n] # gets buffer "n" :py b = vim.buffers[n] # gets buffer "n"
@@ -237,10 +240,12 @@ with marks (see below) which use vim line numbers.
The buffer object methods are: The buffer object methods are:
b.append(str) Append a line to the buffer b.append(str) Append a line to the buffer
b.append(str, nr) Idem, below line "nr"
b.append(list) Append a list of lines to the buffer b.append(list) Append a list of lines to the buffer
Note that the option of supplying a list of strings to Note that the option of supplying a list of strings to
the append method differs from the equivalent method the append method differs from the equivalent method
for Python's built-in list objects. for Python's built-in list objects.
b.append(list, nr) Idem, below line "nr"
b.mark(name) Return a tuple (row,col) representing the position b.mark(name) Return a tuple (row,col) representing the position
of the named mark (can also get the []"<> marks) of the named mark (can also get the []"<> marks)
b.range(s,e) Return a range object (see |python-range|) which b.range(s,e) Return a range object (see |python-range|) which
@@ -282,10 +287,12 @@ The range object attributes are:
The range object methods are: The range object methods are:
r.append(str) Append a line to the range r.append(str) Append a line to the range
r.append(str, nr) Idem, after line "nr"
r.append(list) Append a list of lines to the range r.append(list) Append a list of lines to the range
Note that the option of supplying a list of strings to Note that the option of supplying a list of strings to
the append method differs from the equivalent method the append method differs from the equivalent method
for Python's built-in list objects. for Python's built-in list objects.
r.append(list, nr) Idem, after line "nr"
Example (assume r is the current range): Example (assume r is the current range):
# Send all lines in a range to the default printer # Send all lines in a range to the default printer
@@ -327,5 +334,49 @@ The name of the DLL must match the Python version Vim was compiled with.
Currently the name is "python24.dll". That is for Python 2.4. To know for Currently the name is "python24.dll". That is for Python 2.4. To know for
sure edit "gvim.exe" and search for "python\d*.dll\c". sure edit "gvim.exe" and search for "python\d*.dll\c".
==============================================================================
7. Python 3 *python3*
*:py3* *:python3*
The |:py3| and |:python3| commands work similar to |:python|.
*:py3file*
The |:py3file| command works similar to |:pyfile|.
Vim can be built in four ways (:version output):
1. No Python support (-python, -python3)
2. Python 2 support only (+python or +python/dyn, -python3)
3. Python 3 support only (-python, +python3 or +python3/dyn)
4. Python 2 and 3 support (+python/dyn, +python3/dyn)
Some more details on the special case 4:
When Python 2 and Python 3 are both supported they must be loaded dynamically.
When doing this on Linux/Unix systems and importing global symbols, this leads
to a crash when the second Python version is used. So either global symbols
are loaded but only one Python version is activated, or no global symbols are
loaded. The latter makes Python's "import" fail on libraries that expect the
symbols to be provided by Vim.
*E836* *E837*
Vim's configuration script makes a guess for all libraries based on one
standard Python library (termios). If importing this library succeeds for
both Python versions, then both will be made available in Vim at the same
time. If not, only the version first used in a session will be enabled.
When trying to use the other one you will get the E836 or E837 error message.
Here Vim's behavior depends on the system in which it was configured. In a
system where both versions of Python were configured with --enable-shared,
both versions of Python will be activated at the same time. There will still
be problems with other third party libraries that were not linked to
libPython.
To work around such problems there are these options:
1. The problematic library is recompiled to link to the according
libpython.so.
2. Vim is recompiled for only one Python version.
3. You undefine PY_NO_RTLD_GLOBAL in auto/config.h after configuration. This
may crash Vim though.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 7.2. Last change: 2006 Apr 30 *if_ruby.txt* For Vim version 7.3. Last change: 2010 Oct 27
VIM REFERENCE MANUAL by Shugo Maeda VIM REFERENCE MANUAL by Shugo Maeda
@@ -40,6 +40,9 @@ downloading Ruby there.
wasn't compiled in. To avoid errors, see wasn't compiled in. To avoid errors, see
|script-here|. |script-here|.
Command to try it out: >
:ruby print "Hello" # this is a comment
Example Vim script: > Example Vim script: >
function! RedGem() function! RedGem()
@@ -79,7 +82,7 @@ Ruby code gets all of its access to vim via the "VIM" module.
Overview > Overview >
print "Hello" # displays a message print "Hello" # displays a message
VIM.command(cmd) # execute an ex command VIM.command(cmd) # execute an Ex command
num = VIM::Window.count # gets the number of windows num = VIM::Window.count # gets the number of windows
w = VIM::Window[n] # gets window "n" w = VIM::Window[n] # gets window "n"
cw = VIM::Window.current # gets the current window cw = VIM::Window.current # gets the current window
@@ -187,19 +190,27 @@ $curbuf The current buffer object.
============================================================================== ==============================================================================
6. Dynamic loading *ruby-dynamic* 6. Dynamic loading *ruby-dynamic*
On MS-Windows the Ruby library can be loaded dynamically. The |:version| On MS-Windows and Unix the Ruby library can be loaded dynamically. The
output then includes |+ruby/dyn|. |:version| output then includes |+ruby/dyn|.
This means that Vim will search for the Ruby DLL file only when needed. When This means that Vim will search for the Ruby DLL file or shared library only
you don't use the Ruby interface you don't need it, thus you can use Vim when needed. When you don't use the Ruby interface you don't need it, thus
without this DLL file. 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:
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
Currently that is ruby-1.9.1-p429-i386-mswin32.zip
To use the Ruby interface the Ruby DLL must be in your search path. In a To use the Ruby interface the Ruby DLL must be in your search path. In a
console window type "path" to see what directories are used. console window type "path" to see what directories are used.
The name of the DLL must match the Ruby version Vim was compiled with. The name of the DLL must match the Ruby version Vim was compiled with.
Currently the name is "ruby18.dll". That is for Ruby 1.8. To know for sure Currently the name is "msvcrt-ruby191.dll". That is for Ruby 1.9.1. To know
edit "gvim.exe" and search for "ruby\d*.dll\c". for sure edit "gvim.exe" and search for "ruby\d*.dll\c".
If you want to build Vim with Ruby 1.9.1, you need to edit the config.h file
and comment-out the check for _MSC_VER.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*if_sniff.txt* For Vim version 7.2. Last change: 2005 Mar 29 *if_sniff.txt* For Vim version 7.3. Last change: 2005 Mar 29
VIM REFERENCE MANUAL VIM REFERENCE MANUAL

View File

@@ -1,4 +1,4 @@
*if_tcl.txt* For Vim version 7.2. Last change: 2008 Jun 26 *if_tcl.txt* For Vim version 7.3. Last change: 2008 Aug 16
VIM REFERENCE MANUAL by Ingo Wilken VIM REFERENCE MANUAL by Ingo Wilken
@@ -83,7 +83,7 @@ The following commands are implemented: >
::vim::beep # Guess. ::vim::beep # Guess.
::vim::buffer {n} # Create Tcl command for one buffer. ::vim::buffer {n} # Create Tcl command for one buffer.
::vim::buffer list # Create Tcl commands for all buffers. ::vim::buffer list # Create Tcl commands for all buffers.
::vim::command [-quiet] {cmd} # Execute an ex command. ::vim::command [-quiet] {cmd} # Execute an Ex command.
::vim::expr {expr} # Use Vim's expression evaluator. ::vim::expr {expr} # Use Vim's expression evaluator.
::vim::option {opt} # Get vim option. ::vim::option {opt} # Get vim option.
::vim::option {opt} {val} # Set vim option. ::vim::option {opt} {val} # Set vim option.
@@ -116,7 +116,7 @@ Commands:
::vim::command {cmd} *tcl-command* ::vim::command {cmd} *tcl-command*
::vim::command -quiet {cmd} ::vim::command -quiet {cmd}
Execute the vim (ex-mode) command {cmd}. Any ex command that affects Execute the vim (ex-mode) command {cmd}. Any Ex command that affects
a buffer or window uses the current buffer/current window. Does not a buffer or window uses the current buffer/current window. Does not
return a result other than a standard Tcl error code. After this return a result other than a standard Tcl error code. After this
command is completed, the "::vim::current" variable is updated. command is completed, the "::vim::current" variable is updated.
@@ -210,7 +210,7 @@ Variables:
line *tcl-var-line* line *tcl-var-line*
lnum *tcl-var-lnum* lnum *tcl-var-lnum*
These global variables are only available if the ":tcldo" ex command These global variables are only available if the ":tcldo" Ex command
is being executed. They contain the text and line number of the is being executed. They contain the text and line number of the
current line. When the Tcl command invoked by ":tcldo" is completed, current line. When the Tcl command invoked by ":tcldo" is completed,
the current line is set to the contents of the "line" variable, unless the current line is set to the contents of the "line" variable, unless
@@ -233,7 +233,7 @@ Let's assume the name of the window command is stored in the Tcl variable "win",
i.e. "$win" calls the command. The following options are available: > i.e. "$win" calls the command. The following options are available: >
$win buffer # Create Tcl command for window's buffer. $win buffer # Create Tcl command for window's buffer.
$win command {cmd} # Execute ex command in windows context. $win command {cmd} # Execute Ex command in windows context.
$win cursor # Get current cursor position. $win cursor # Get current cursor position.
$win cursor {var} # Set cursor position from array variable. $win cursor {var} # Set cursor position from array variable.
$win cursor {row} {col} # Set cursor position. $win cursor {row} {col} # Set cursor position.
@@ -312,7 +312,7 @@ Let's assume the name of the buffer command is stored in the Tcl variable "buf",
i.e. "$buf" calls the command. The following options are available: > i.e. "$buf" calls the command. The following options are available: >
$buf append {n} {str} # Append a line to buffer, after line {n}. $buf append {n} {str} # Append a line to buffer, after line {n}.
$buf command {cmd} # Execute ex command in buffers context. $buf command {cmd} # Execute Ex command in buffers context.
$buf count # Report number of lines in buffer. $buf count # Report number of lines in buffer.
$buf delcmd {cmd} # Call Tcl command when buffer is deleted. $buf delcmd {cmd} # Call Tcl command when buffer is deleted.
$buf delete {n} # Delete a single line. $buf delete {n} # Delete a single line.
@@ -438,7 +438,7 @@ used to display messages in vim.
============================================================================== ==============================================================================
7. Known bugs & problems *tcl-bugs* 7. Known bugs & problems *tcl-bugs*
Calling one of the Tcl ex commands from inside Tcl (via "::vim::command") may Calling one of the Tcl Ex commands from inside Tcl (via "::vim::command") may
have unexpected side effects. The command creates a new interpreter, which have unexpected side effects. The command creates a new interpreter, which
has the same abilities as the standard interpreter - making "::vim::command" has the same abilities as the standard interpreter - making "::vim::command"
available in a safe child interpreter therefore makes the child unsafe. (It available in a safe child interpreter therefore makes the child unsafe. (It
@@ -487,11 +487,11 @@ This script adds a consecutive number to each line in the current range:
incr i ; incr n incr i ; incr n
} }
The same can also be done quickly with two ex commands, using ":tcldo": The same can also be done quickly with two Ex commands, using ":tcldo":
:tcl set n 1 :tcl set n 1
:[range]tcldo set line "$n\t$line" ; incr n :[range]tcldo set line "$n\t$line" ; incr n
This procedure runs an ex command on each buffer (idea stolen from Ron Aaron): This procedure runs an Ex command on each buffer (idea stolen from Ron Aaron):
proc eachbuf { cmd } { proc eachbuf { cmd } {
foreach b [::vim::buffer list] { foreach b [::vim::buffer list] {
$b command $cmd $b command $cmd
@@ -500,7 +500,7 @@ This procedure runs an ex command on each buffer (idea stolen from Ron Aaron):
Use it like this: Use it like this:
:tcl eachbuf %s/foo/bar/g :tcl eachbuf %s/foo/bar/g
Be careful with Tcl's string and backslash substitution, tough. If in doubt, Be careful with Tcl's string and backslash substitution, tough. If in doubt,
surround the ex command with curly braces. surround the Ex command with curly braces.
If you want to add some Tcl procedures permanently to vim, just place them in If you want to add some Tcl procedures permanently to vim, just place them in

View File

@@ -1,4 +1,4 @@
*indent.txt* For Vim version 7.2. Last change: 2008 Jul 30 *indent.txt* For Vim version 7.3. Last change: 2011 Mar 18
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -215,6 +215,19 @@ assume a 'shiftwidth' of 4.
a = b; a = b; a = b; a = b; a = b; a = b;
} } } } } }
} } } } } }
<
LN Controls placement of jump labels. If N is negative, the label
will be placed at column 1. If N is non-negative, the indent of
the label will be the prevailing indent minus N. (default -1).
cino= cino=L2 cino=Ls >
func() func() func()
{ { {
{ { {
stmt; stmt; stmt;
LABEL: LABEL: LABEL:
} } }
} } }
< <
:N Place case labels N characters from the indent of the switch(). :N Place case labels N characters from the indent of the switch().
(default 'shiftwidth'). (default 'shiftwidth').
@@ -245,6 +258,7 @@ assume a 'shiftwidth' of 4.
< <
bN If N != 0 Vim will align a final "break" with the case label, 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). so that case..break looks like a sort of block. (default: 0).
When using 1, consider adding "0=break" to 'cinkeys'.
cino= cino=b1 > cino= cino=b1 >
switch (x) switch(x) switch (x) switch(x)
@@ -306,8 +320,11 @@ assume a 'shiftwidth' of 4.
BaseClass(3) BaseClass(3) BaseClass(3) BaseClass(3)
{} {} {} {}
< <
+N Indent a continuation line (a line that spills onto the next) N +N Indent a continuation line (a line that spills onto the next)
additional characters. (default 'shiftwidth'). 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 > cino= cino=+10 >
a = b + 9 * a = b + 9 * a = b + 9 * a = b + 9 *
@@ -430,6 +447,24 @@ assume a 'shiftwidth' of 4.
do_something(); do_something();
} }
}); });
<
*javascript-cinoptions* *javascript-indenting*
JN Indent JavaScript object declarations correctly by not confusing
them with labels. The value 'N' is currently unused but must be
non-zero (e.g. 'J1'). >
var bar = {
foo: {
that: this,
some: ok,
},
"bar":{
a : 2,
b: "123abc",
x: 4,
"y": 5
}
}
< <
)N Vim searches for unclosed parentheses at most N lines away. )N Vim searches for unclosed parentheses at most N lines away.
This limits the time needed to search for parentheses. (default This limits the time needed to search for parentheses. (default
@@ -437,7 +472,7 @@ assume a 'shiftwidth' of 4.
*N Vim searches for unclosed comments at most N lines away. This *N Vim searches for unclosed comments at most N lines away. This
limits the time needed to search for the start of a comment. limits the time needed to search for the start of a comment.
(default 30 lines). (default 70 lines).
#N When N is non-zero recognize shell/Perl comments, starting with #N When N is non-zero recognize shell/Perl comments, starting with
'#'. Default N is zero: don't recognizes '#' comments. Note '#'. Default N is zero: don't recognizes '#' comments. Note
@@ -446,13 +481,14 @@ assume a 'shiftwidth' of 4.
The defaults, spelled out in full, are: The defaults, spelled out in full, are:
cinoptions=>s,e0,n0,f0,{0,}0,^0,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,c3,C0, cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,
/0,(2s,us,U0,w0,W0,m0,j0,)20,*30,#0 c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
Vim puts a line in column 1 if: Vim puts a line in column 1 if:
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'. - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
- It starts with a label (a keyword followed by ':', other than "case" and - It starts with a label (a keyword followed by ':', other than "case" and
"default"). "default") and 'cinoptions' does not contain an 'L' entry with a positive
value.
- Any combination of indentations causes the line to have less than 0 - Any combination of indentations causes the line to have less than 0
indentation. indentation.
@@ -552,6 +588,10 @@ For example, with N = 1, this will give:
(Notice the extra indent between the PHP container markers and the code) (Notice the extra indent between the PHP container markers and the code)
------------- -------------
To indent PHP tags as the surrounding code: >
:let g:PHP_outdentphpescape = 0
-------------
To automatically remove '\r' characters when the 'fileformat' is set to Unix: > To automatically remove '\r' characters when the 'fileformat' is set to Unix: >
:let g:PHP_removeCRwhenUnix = 1 :let g:PHP_removeCRwhenUnix = 1
------------- -------------
@@ -577,7 +617,7 @@ NOTE: Indenting will be a bit slower if this option is used because some
To indent 'case:' and 'default:' statements in switch() blocks: > To indent 'case:' and 'default:' statements in switch() blocks: >
:let g:PHP_vintage_case_default_indent = 1 :let g:PHP_vintage_case_default_indent = 1
(By default they are indented at the same level than the 'switch()' to avoid (Since in PHP braces are not required inside 'case/default' blocks, by default they are indented at the same level than the 'switch()' to avoid
unnecessary indentation) unnecessary indentation)
@@ -609,8 +649,9 @@ b:sh_indent_options['continuation-line']
b:sh_indent_options['case-labels'] b:sh_indent_options['case-labels']
Amount of indent to add for case labels. Amount of indent to add for case labels.
(not actually implemented)
b:sh_indent_options['case-statement'] b:sh_indent_options['case-statements']
Amount of indent to add for case statements. Amount of indent to add for case statements.
b:sh_indent_options['case-breaks'] b:sh_indent_options['case-breaks']

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.2. Last change: 2008 May 04 *index.txt* For Vim version 7.3. Last change: 2011 Jan 04
VIM REFERENCE MANUAL by Bram Moolenaar 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* 1. Insert mode *insert-index*
tag char action ~ tag char action in Insert mode ~
----------------------------------------------------------------------- -----------------------------------------------------------------------
|i_CTRL-@| CTRL-@ insert previously inserted text and stop |i_CTRL-@| CTRL-@ insert previously inserted text and stop
insert insert
@@ -102,7 +102,7 @@ tag char action ~
|i_CTRL-^| CTRL-^ toggle use of |:lmap| mappings |i_CTRL-^| CTRL-^ toggle use of |:lmap| mappings
|i_CTRL-_| CTRL-_ When 'allowrevins' set: change language |i_CTRL-_| CTRL-_ When 'allowrevins' set: change language
(Hebrew, Farsi) {only when compiled with (Hebrew, Farsi) {only when compiled with
+rightleft feature} the |+rightleft| feature}
<Space> to '~' not used, except '0' and '^' followed by <Space> to '~' not used, except '0' and '^' followed by
CTRL-D CTRL-D
@@ -136,10 +136,14 @@ tag char action ~
|i_<Help>| <Help> stop insert mode and display help window |i_<Help>| <Help> stop insert mode and display help window
|i_<Insert>| <Insert> toggle Insert/Replace mode |i_<Insert>| <Insert> toggle Insert/Replace mode
|i_<LeftMouse>| <LeftMouse> cursor at mouse click |i_<LeftMouse>| <LeftMouse> cursor at mouse click
|i_<MouseDown>| <MouseDown> scroll three lines downwards |i_<ScrollWheelDown>| <ScrollWheelDown> move window three lines down
|i_<S-MouseDown>| <S-MouseDown> scroll a full page downwards |i_<S-ScrollWheelDown>| <S-ScrollWheelDown> move window one page down
|i_<MouseUp>| <MouseUp> scroll three lines upwards |i_<ScrollWheelUp>| <ScrollWheelUp> move window three lines up
|i_<S-MouseUp>| <S-MouseUp> scroll a full page upwards |i_<S-ScrollWheelUp>| <S-ScrollWheelUp> move window one page up
|i_<ScrollWheelLeft>| <ScrollWheelLeft> move window six columns left
|i_<S-ScrollWheelLeft>| <S-ScrollWheelLeft> move window one page left
|i_<ScrollWheelRight>| <ScrollWheelRight> move window six columns right
|i_<S-ScrollWheelRight>| <S-ScrollWheelRight> move window one page right
commands in CTRL-X submode *i_CTRL-X_index* commands in CTRL-X submode *i_CTRL-X_index*
@@ -159,7 +163,7 @@ commands in CTRL-X submode *i_CTRL-X_index*
|i_CTRL-X_CTRL-V| CTRL-X CTRL-V complete like in : command line |i_CTRL-X_CTRL-V| CTRL-X CTRL-V complete like in : command line
|i_CTRL-X_CTRL-]| CTRL-X CTRL-] complete tags |i_CTRL-X_CTRL-]| CTRL-X CTRL-] complete tags
|i_CTRL-X_s| CTRL-X s spelling suggestions |i_CTRL-X_s| CTRL-X s spelling suggestions
{not available when compiled without the +insert_expand feature} {not available when compiled without the |+insert_expand| feature}
============================================================================== ==============================================================================
2. Normal mode *normal-index* 2. Normal mode *normal-index*
@@ -441,17 +445,21 @@ tag char note action in Normal mode ~
|<S-Up>| <S-Up> 1 same as CTRL-B |<S-Up>| <S-Up> 1 same as CTRL-B
|<Undo>| <Undo> 2 same as "u" |<Undo>| <Undo> 2 same as "u"
|<Up>| <Up> 1 same as "k" |<Up>| <Up> 1 same as "k"
|<MouseDown>| <MouseDown> scroll three lines downwards |<ScrollWheelDown>| <ScrollWheelDown> move window three lines down
|<S-MouseDown>| <S-MouseDown> scroll a full page downwards |<S-ScrollWheelDown>| <S-ScrollWheelDown> move window one page down
|<MouseUp>| <MouseUp> scroll three lines upwards |<ScrollWheelUp>| <ScrollWheelUp> move window three lines up
|<S-MouseUp>| <S-MouseUp> scroll a full page upwards |<S-ScrollWheelUp>| <S-ScrollWheelUp> move window one page up
|<ScrollWheelLeft>| <ScrollWheelLeft> move window six columns left
|<S-ScrollWheelLeft>| <S-ScrollWheelLeft> move window one page left
|<ScrollWheelRight>| <ScrollWheelRight> move window six columns right
|<S-ScrollWheelRight>| <S-ScrollWheelRight> move window one page right
============================================================================== ==============================================================================
2.1 Text objects *objects* 2.1 Text objects *objects*
These can be used after an operator or in Visual mode to select an object. 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_aquote| a" double quoted string
|v_a'| a' single quoted string |v_a'| a' single quoted string
@@ -522,7 +530,7 @@ tag command action in Normal mode ~
|CTRL-W_+| CTRL-W + increase current window height N lines |CTRL-W_+| CTRL-W + increase current window height N lines
|CTRL-W_-| CTRL-W - decrease current window height N lines |CTRL-W_-| CTRL-W - decrease current window height N lines
|CTRL-W_<| CTRL-W < decrease current window width N columns |CTRL-W_<| CTRL-W < decrease current window width N columns
|CTRL-W_=| CTRL-W = make all windows the same height |CTRL-W_=| CTRL-W = make all windows the same height & width
|CTRL-W_>| CTRL-W > increase current window width N columns |CTRL-W_>| CTRL-W > increase current window width N columns
|CTRL-W_H| CTRL-W H move current window to the far left |CTRL-W_H| CTRL-W H move current window to the far left
|CTRL-W_J| CTRL-W J move current window to the very bottom |CTRL-W_J| CTRL-W J move current window to the very bottom
@@ -572,7 +580,7 @@ tag command action in Normal mode ~
window N lines high window N lines high
|CTRL-W_t| CTRL-W t go to top window |CTRL-W_t| CTRL-W t go to top window
|CTRL-W_v| CTRL-W v split current window vertically, new window |CTRL-W_v| CTRL-W v split current window vertically, new window
N lines wide N columns wide
|CTRL-W_w| CTRL-W w go to N next window (wrap around) |CTRL-W_w| CTRL-W w go to N next window (wrap around)
|CTRL-W_x| CTRL-W x exchange current window with window N |CTRL-W_x| CTRL-W x exchange current window with window N
(default: next window) (default: next window)
@@ -713,6 +721,7 @@ tag char note action in Normal mode ~
|gJ| gJ 2 join lines without inserting space |gJ| gJ 2 join lines without inserting space
|gP| ["x]gP 2 put the text [from register x] before the |gP| ["x]gP 2 put the text [from register x] before the
cursor N times, leave the cursor after it cursor N times, leave the cursor after it
|gQ| gQ switch to "Ex" mode with Vim editing
|gR| gR 2 enter Virtual Replace mode |gR| gR 2 enter Virtual Replace mode
|gU| gU{motion} 2 make Nmove text uppercase |gU| gU{motion} 2 make Nmove text uppercase
|gV| gV don't reselect the previous Visual area |gV| gV don't reselect the previous Visual area
@@ -943,11 +952,13 @@ Normal characters are inserted at the current cursor position.
"Completion" below refers to context-sensitive completion. It will complete "Completion" below refers to context-sensitive completion. It will complete
file names, tags, commands etc. as appropriate. file names, tags, commands etc. as appropriate.
tag command action in Command-line editing mode ~
------------------------------------------------------------------------------
CTRL-@ not used CTRL-@ not used
|c_CTRL-A| CTRL-A do completion on the pattern in front of the |c_CTRL-A| CTRL-A do completion on the pattern in front of the
cursor and insert all matches cursor and insert all matches
|c_CTRL-B| CTRL-B cursor to begin of command-line |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 |c_CTRL-D| CTRL-D list completions that match the pattern in
front of the cursor front of the cursor
|c_CTRL-E| CTRL-E cursor to end of command-line |c_CTRL-E| CTRL-E cursor to end of command-line
@@ -1038,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 []. mentioning any arguments. The optional part of the command name is inside [].
The commands are sorted on the non-optional part of their name. The commands are sorted on the non-optional part of their name.
tag command action ~
------------------------------------------------------------------------------
|:!| :! filter lines or execute an external command |:!| :! filter lines or execute an external command
|:!!| :!! repeat last ":!" command |:!!| :!! repeat last ":!" command
|:#| :# same as ":number" |:#| :# same as ":number"
@@ -1299,6 +1312,9 @@ The commands are sorted on the non-optional part of their name.
|:ltag| :lt[ag] jump to tag and add matching tags to the |:ltag| :lt[ag] jump to tag and add matching tags to the
location list location list
|:lunmap| :lu[nmap] like ":unmap!" but includes Lang-Arg mode |:lunmap| :lu[nmap] like ":unmap!" but includes Lang-Arg mode
|:lua| :lua execute |Lua| command
|:luado| :luad[o] execute Lua command for each line
|:luafile| :luaf[ile] execute |Lua| script file
|:lvimgrep| :lv[imgrep] search for pattern in files |:lvimgrep| :lv[imgrep] search for pattern in files
|:lvimgrepadd| :lvimgrepa[dd] like :vimgrep, but append to current list |:lvimgrepadd| :lvimgrepa[dd] like :vimgrep, but append to current list
|:lwindow| :lw[indow] open or close location window |:lwindow| :lw[indow] open or close location window
@@ -1321,7 +1337,9 @@ The commands are sorted on the non-optional part of their name.
|:mode| :mod[e] show or change the screen mode |:mode| :mod[e] show or change the screen mode
|:mzscheme| :mz[scheme] execute MzScheme command |:mzscheme| :mz[scheme] execute MzScheme command
|:mzfile| :mzf[ile] execute MzScheme script file |:mzfile| :mzf[ile] execute MzScheme script file
|:nbclose| :nbc[lose] close the current Netbeans session
|:nbkey| :nb[key] pass a key to Netbeans |:nbkey| :nb[key] pass a key to Netbeans
|:nbstart| :nbs[art] start a new Netbeans session
|:next| :n[ext] go to next file in the argument list |:next| :n[ext] go to next file in the argument list
|:new| :new create a new empty window |:new| :new create a new empty window
|:nmap| :nm[ap] like ":map" but for Normal mode |:nmap| :nm[ap] like ":map" but for Normal mode
@@ -1339,6 +1357,7 @@ The commands are sorted on the non-optional part of their name.
|:number| :nu[mber] print lines with line number |:number| :nu[mber] print lines with line number
|:nunmap| :nun[map] like ":unmap" but for Normal mode |:nunmap| :nun[map] like ":unmap" but for Normal mode
|:nunmenu| :nunme[nu] remove menu for Normal mode |:nunmenu| :nunme[nu] remove menu for Normal mode
|:oldfiles| :ol[dfiles] list files that have marks in the viminfo file
|:open| :o[pen] start open mode (not implemented) |:open| :o[pen] start open mode (not implemented)
|:omap| :om[ap] like ":map" but for Operator-pending mode |:omap| :om[ap] like ":map" but for Operator-pending mode
|:omapclear| :omapc[lear] remove all mappings for Operator-pending mode |:omapclear| :omapc[lear] remove all mappings for Operator-pending mode
@@ -1349,6 +1368,7 @@ The commands are sorted on the non-optional part of their name.
|:options| :opt[ions] open the options-window |:options| :opt[ions] open the options-window
|:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode |:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode
|:ounmenu| :ounme[nu] remove menu for Operator-pending mode |:ounmenu| :ounme[nu] remove menu for Operator-pending mode
|:ownsyntax| :ow[nsyntax] set new local syntax highlight for this window
|:pclose| :pc[lose] close preview window |:pclose| :pc[lose] close preview window
|:pedit| :ped[it] edit file in the preview window |:pedit| :ped[it] edit file in the preview window
|:perl| :pe[rl] execute Perl command |:perl| :pe[rl] execute Perl command
@@ -1375,6 +1395,9 @@ The commands are sorted on the non-optional part of their name.
|:ptselect| :pts[elect] |:tselect| and show tag in preview window |:ptselect| :pts[elect] |:tselect| and show tag in preview window
|:put| :pu[t] insert contents of register in the text |:put| :pu[t] insert contents of register in the text
|:pwd| :pw[d] print current directory |:pwd| :pw[d] print current directory
|:py3| :py3 execute Python 3 command
|:python3| :python3 same as :py3
|:py3file| :py3f[ile] execute Python 3 script file
|:python| :py[thon] execute Python command |:python| :py[thon] execute Python command
|:pyfile| :pyf[ile] execute Python script file |:pyfile| :pyf[ile] execute Python script file
|:quit| :q[uit] quit current window (when one window quit Vim) |:quit| :q[uit] quit current window (when one window quit Vim)
@@ -1396,6 +1419,7 @@ The commands are sorted on the non-optional part of their name.
|:ruby| :rub[y] execute Ruby command |:ruby| :rub[y] execute Ruby command
|:rubydo| :rubyd[o] execute Ruby command for each line |:rubydo| :rubyd[o] execute Ruby command for each line
|:rubyfile| :rubyf[ile] execute Ruby script file |:rubyfile| :rubyf[ile] execute Ruby script file
|:rundo| :rund[o] read undo information from a file
|:runtime| :ru[ntime] source vim scripts in 'runtimepath' |:runtime| :ru[ntime] source vim scripts in 'runtimepath'
|:rviminfo| :rv[iminfo] read from viminfo file |:rviminfo| :rv[iminfo] read from viminfo file
|:substitute| :s[ubstitute] find and replace text |:substitute| :s[ubstitute] find and replace text
@@ -1436,7 +1460,7 @@ The commands are sorted on the non-optional part of their name.
|:shell| :sh[ell] escape to a shell |:shell| :sh[ell] escape to a shell
|:simalt| :sim[alt] Win32 GUI: simulate Windows ALT key |:simalt| :sim[alt] Win32 GUI: simulate Windows ALT key
|:sign| :sig[n] manipulate signs |:sign| :sig[n] manipulate signs
|:silent| :sil[ent] Run a command silently |:silent| :sil[ent] run a command silently
|:sleep| :sl[eep] do nothing for a few seconds |:sleep| :sl[eep] do nothing for a few seconds
|:slast| :sla[st] split window and go to last file in the |:slast| :sla[st] split window and go to last file in the
argument list argument list
@@ -1525,6 +1549,7 @@ The commands are sorted on the non-optional part of their name.
|:unlockvar| :unlo[ckvar] unlock variables |:unlockvar| :unlo[ckvar] unlock variables
|:unmap| :unm[ap] remove mapping |:unmap| :unm[ap] remove mapping
|:unmenu| :unme[nu] remove menu |:unmenu| :unme[nu] remove menu
|:unsilent| :uns[ilent] run a command not silently
|:update| :up[date] write buffer if modified |:update| :up[date] write buffer if modified
|:vglobal| :v[global] execute commands for not matching lines |:vglobal| :v[global] execute commands for not matching lines
|:version| :ve[rsion] print version number and other info |:version| :ve[rsion] print version number and other info
@@ -1560,6 +1585,7 @@ The commands are sorted on the non-optional part of their name.
|:wq| :wq write to a file and quit window or Vim |:wq| :wq write to a file and quit window or Vim
|:wqall| :wqa[ll] write all changed buffers and quit Vim |:wqall| :wqa[ll] write all changed buffers and quit Vim
|:wsverb| :ws[verb] pass the verb to workshop over IPC |:wsverb| :ws[verb] pass the verb to workshop over IPC
|:wundo| :wu[ndo] write undo information to a file
|:wviminfo| :wv[iminfo] write to viminfo file |:wviminfo| :wv[iminfo] write to viminfo file
|:xit| :x[it] write if buffer changed and quit window or Vim |:xit| :x[it] write if buffer changed and quit window or Vim
|:xall| :xa[ll] same as ":wqall" |:xall| :xa[ll] same as ":wqall"

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.2. Last change: 2008 Jun 21 *insert.txt* For Vim version 7.3. Last change: 2010 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -123,6 +123,7 @@ CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
':' the last command-line ':' the last command-line
'.' the last inserted text '.' the last inserted text
'-' the last small (less than a line) delete '-' the last small (less than a line) delete
*i_CTRL-R_=*
'=' the expression register: you are prompted to '=' the expression register: you are prompted to
enter an expression (see |expression|) enter an expression (see |expression|)
Note that 0x80 (128 decimal) is used for Note that 0x80 (128 decimal) is used for
@@ -133,6 +134,8 @@ CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
When the result is a |List| the items are used When the result is a |List| the items are used
as lines. They can have line breaks inside as lines. They can have line breaks inside
too. too.
When the result is a Float it's automatically
converted to a String.
See |registers| about registers. {not in Vi} See |registers| about registers. {not in Vi}
CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R* CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
@@ -356,10 +359,14 @@ CTRL-G CTRL-J cursor one line down, insert start column *i_CTRL-G_CTRL-J*
<PageUp> move window one page up *i_<PageUp>* <PageUp> move window one page up *i_<PageUp>*
<S-Down> move window one page down *i_<S-Down>* <S-Down> move window one page down *i_<S-Down>*
<PageDown> move window one page down *i_<PageDown>* <PageDown> move window one page down *i_<PageDown>*
<MouseDown> scroll three lines down *i_<MouseDown>* <ScrollWheelDown> move window three lines down *i_<ScrollWheelDown>*
<S-MouseDown> scroll a full page down *i_<S-MouseDown>* <S-ScrollWheelDown> move window one page down *i_<S-ScrollWheelDown>*
<MouseUp> scroll three lines up *i_<MouseUp>* <ScrollWheelUp> move window three lines up *i_<ScrollWheelUp>*
<S-MouseUp> scroll a full page up *i_<S-MouseUp>* <S-ScrollWheelUp> move window one page up *i_<S-ScrollWheelUp>*
<ScrollWheelLeft> move window six columns left *i_<ScrollWheelLeft>*
<S-ScrollWheelLeft> move window one page left *i_<S-ScrollWheelLeft>*
<ScrollWheelRight> move window six columns right *i_<ScrollWheelRight>*
<S-ScrollWheelRight> move window one page right *i_<S-ScrollWheelRight>*
CTRL-O execute one command, return to Insert mode *i_CTRL-O* CTRL-O execute one command, return to Insert mode *i_CTRL-O*
CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O* CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O*
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L* CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
@@ -375,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 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. 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. 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 Another side effect is that a count specified before the "i" or "a" command is
@@ -520,7 +531,7 @@ last one). {Vi does not have the 'expandtab' option}
6. Virtual Replace mode *vreplace-mode* *Virtual-Replace-mode* 6. Virtual Replace mode *vreplace-mode* *Virtual-Replace-mode*
Enter Virtual Replace mode with the "gR" command in normal mode. Enter Virtual Replace mode with the "gR" command in normal mode.
{not available when compiled without the +vreplace feature} {not available when compiled without the |+vreplace| feature}
{Vi does not have Virtual Replace mode} {Vi does not have Virtual Replace mode}
Virtual Replace mode is similar to Replace mode, but instead of replacing Virtual Replace mode is similar to Replace mode, but instead of replacing
@@ -548,12 +559,11 @@ CTRL-D, 'expandtab', 'smarttab', 'softtabstop', etc.
In 'list' mode, Virtual Replace mode acts as if it was not in 'list' mode, In 'list' mode, Virtual Replace mode acts as if it was not in 'list' mode,
unless "L" is in 'cpoptions'. unless "L" is in 'cpoptions'.
Note that the only times characters beyond the cursor should appear to move Note that the only situations for which characters beyond the cursor should
are in 'list' mode, and occasionally when 'wrap' is set (and the line changes appear to move are in List mode |'list'|, and occasionally when 'wrap' is set
length to become shorter or wider than the width of the screen), or (and the line changes length to become shorter or wider than the width of the
momentarily when typing over a CTRL character. A CTRL character takes up two screen). In other cases spaces may be inserted to avoid following characters
screen spaces. When replacing it with two normal characters, the first will to move.
be inserted and the second will replace the CTRL character.
This mode is very useful for editing <Tab> separated columns in tables, for This mode is very useful for editing <Tab> separated columns in tables, for
entering new data while keeping all the columns aligned. entering new data while keeping all the columns aligned.
@@ -636,6 +646,7 @@ completion operation: >
return "\<Tab>" return "\<Tab>"
else else
return "\<C-N>" return "\<C-N>"
endif
endfunction endfunction
inoremap <Tab> <C-R>=CleverTab()<CR> inoremap <Tab> <C-R>=CleverTab()<CR>
@@ -660,7 +671,8 @@ CTRL-X CTRL-L Search backwards for a line that starts with the
CTRL-X CTRL-L After expanding a line you can additionally get the CTRL-X CTRL-L After expanding a line you can additionally get the
line next to it by typing CTRL-X CTRL-L again, unless line next to it by typing CTRL-X CTRL-L again, unless
a double CTRL-X is used. a double CTRL-X is used. Only works for loaded
buffers.
Completing keywords in current file *compl-current* Completing keywords in current file *compl-current*
@@ -1025,6 +1037,8 @@ items:
items that only differ in case are added items that only differ in case are added
dup when non-zero this match will be added even when an dup when non-zero this match will be added even when an
item with the same word is already present. 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 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 requirements then an error message is given and further items in the list are
@@ -1035,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 the preview window when "preview" appears in 'completeopt'. The "info" item
will also remain displayed after the popup menu has been removed. This is 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 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 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). may be used to show the completion differently (different color or icon).
@@ -1051,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 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. 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 *E839* *E840*
option cannot be set from a |modeline| or in the |sandbox|, for security The function is allowed to move the cursor, it is restored afterwards.
reasons. The function is not allowed to move to another window or delete text.
An example that completes the names of the months: > An example that completes the names of the months: >
fun! CompleteMonths(findstart, base) fun! CompleteMonths(findstart, base)
@@ -1353,7 +1368,7 @@ Script completes:
- function names with additional info: - function names with additional info:
- in case of built-in functions list of possible arguments and after | type - in case of built-in functions list of possible arguments and after | type
data returned by function data returned by function
- in case of user function arguments and name of file were function was - in case of user function arguments and name of file where function was
defined (if it is not current file) defined (if it is not current file)
- constants names - constants names
@@ -1441,8 +1456,8 @@ a look at the PHP filetype to see how this works.
If you edit a file called, index.php, run the following command: > If you edit a file called, index.php, run the following command: >
:syntax list :syntax list
First thing you will notice is there are many different syntax groups. The The first thing you will notice is that there are many different syntax groups.
PHP language can include elements from different languages like HTML, The PHP language can include elements from different languages like HTML,
JavaScript and many more. The syntax plugin will only include syntax groups JavaScript and many more. The syntax plugin will only include syntax groups
that begin with the filetype, "php", in this case. For example these syntax that begin with the filetype, "php", in this case. For example these syntax
groups are included by default with the PHP: phpEnvVar, phpIntVar, groups are included by default with the PHP: phpEnvVar, phpIntVar,
@@ -1479,6 +1494,38 @@ on word characters. This can be controlled adding the following to your
vimrc: > vimrc: >
let g:omni_syntax_use_iskeyword = 0 let g:omni_syntax_use_iskeyword = 0
For plugin developers, the plugin exposes a public function OmniSyntaxList.
This function can be used to request a List of syntax items. When editing a
SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
various groups and syntax items. For example: >
syntax list
Yields data similar to this: >
sqlOperator xxx some prior all like and any escape exists in is not
or intersect minus between distinct
links to Operator
sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier
date money long tinyint unsigned xml text smalldate
double datetime nchar smallint numeric time bit char
varbinary binary smallmoney
image float integer timestamp real decimal
There are two syntax groups listed here: sqlOperator and sqlType. To retrieve
a List of syntax items you can call OmniSyntaxList a number of different
ways. To retrieve all syntax items regardless of syntax group: >
echo OmniSyntaxList( [] )
To retrieve only the syntax items for the sqlOperator syntax group: >
echo OmniSyntaxList( ['sqlOperator'] )
To retrieve all syntax items for both the sqlOperator and sqlType groups: >
echo OmniSyntaxList( ['sqlOperator', 'sqlType'] )
From within a plugin, you would typically assign the output to a List: >
let myKeywords = []
let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
SQL *ft-sql-omni* SQL *ft-sql-omni*
@@ -1488,7 +1535,7 @@ with data pulled directly from within a database. For detailed instructions
and a tutorial see |omni-sql-completion|. and a tutorial see |omni-sql-completion|.
The SQL completion plugin can be used in conjunction with other completion The SQL completion plugin can be used in conjunction with other completion
plugins. For example, the PHP filetype has it's own completion plugin. plugins. For example, the PHP filetype has its own completion plugin.
Since PHP is often used to generate dynamic website by accessing a database, Since PHP is often used to generate dynamic website by accessing a database,
the SQL completion plugin can also be enabled. This allows you to complete the SQL completion plugin can also be enabled. This allows you to complete
PHP code and SQL code at the same time. PHP code and SQL code at the same time.
@@ -1725,14 +1772,14 @@ too long when appending characters a line break is automatically inserted.
These two commands will keep on asking for lines, until you type a line These two commands will keep on asking for lines, until you type a line
containing only a ".". Watch out for lines starting with a backslash, see containing only a ".". Watch out for lines starting with a backslash, see
|line-continuation|. |line-continuation|.
When these commands are used with |:global| or |:vglobal| then the lines are
obtained from the text following the command. Separate lines with a NL When in Ex mode (see |-e|) a backslash at the end of the line can be used to
escaped with a backslash: > insert a NUL character. To be able to have a line ending in a backslash use
:global/abc/insert\ two backslashes. This means that the number of backslashes is halved, but
one line\ only at the end of the line.
another line
The final "." is not needed then. NOTE: These commands cannot be used with |:global| or |:vglobal|.
NOTE: ":append" and ":insert" don't work properly in between ":if" and ":append" and ":insert" don't work properly in between ":if" and
":endif", ":for" and ":endfor", ":while" and ":endwhile". ":endif", ":for" and ":endfor", ":while" and ":endwhile".
*:start* *:startinsert* *:start* *:startinsert*
@@ -1745,7 +1792,7 @@ NOTE: ":append" and ":insert" don't work properly in between ":if" and
or script is finished. or script is finished.
This command does not work from |:normal|. This command does not work from |:normal|.
{not in Vi} {not in Vi}
{not available when compiled without the +ex_extra {not available when compiled without the |+ex_extra|
feature} feature}
*:stopi* *:stopinsert* *:stopi* *:stopinsert*
@@ -1764,14 +1811,14 @@ NOTE: ":append" and ":insert" don't work properly in between ":if" and
script that the replacement will only start after script that the replacement will only start after
the function or script is finished. the function or script is finished.
{not in Vi} {not in Vi}
{not available when compiled without the +ex_extra {not available when compiled without the |+ex_extra|
feature} feature}
*:startgreplace* *:startgreplace*
:startg[replace][!] Just like |:startreplace|, but use Virtual Replace :startg[replace][!] Just like |:startreplace|, but use Virtual Replace
mode, like with |gR|. mode, like with |gR|.
{not in Vi} {not in Vi}
{not available when compiled without the +ex_extra {not available when compiled without the |+ex_extra|
feature} feature}
============================================================================== ==============================================================================

View File

@@ -1,4 +1,4 @@
*intro.txt* For Vim version 7.2. Last change: 2008 Jun 24 *intro.txt* For Vim version 7.3. Last change: 2010 Dec 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -43,6 +43,10 @@ between different computers and terminals. Besides the remarks given in this
document, there is a separate document for each supported system, see document, there is a separate document for each supported system, see
|sys-file-list|. |sys-file-list|.
*pronounce*
Vim is pronounced as one word, like Jim, not vi-ai-em. It's written with a
capital, since it's a name, again like Jim.
This manual is a reference for all the Vim commands and options. This is not This manual is a reference for all the Vim commands and options. This is not
an introduction to the use of Vi or Vim, it gets a bit complicated here and an introduction to the use of Vi or Vim, it gets a bit complicated here and
there. For beginners, there is a hands-on |tutor|. To learn using Vim, read there. For beginners, there is a hands-on |tutor|. To learn using Vim, read
@@ -190,6 +194,7 @@ patches, suggestions and giving feedback about what is good and bad in Vim.
Vim would never have become what it is now, without the help of these people! Vim would never have become what it is now, without the help of these people!
Ron Aaron Win32 GUI changes Ron Aaron Win32 GUI changes
Mohsin Ahmed encryption
Zoltan Arpadffy work on VMS port Zoltan Arpadffy work on VMS port
Tony Andrews Stevie Tony Andrews Stevie
Gert van Antwerpen changes for DJGPP on MS-DOS Gert van Antwerpen changes for DJGPP on MS-DOS
@@ -222,13 +227,13 @@ Vim would never have become what it is now, without the help of these people!
David Leonard Port of Python extensions to Unix David Leonard Port of Python extensions to Unix
Avner Lottem Edit in right-to-left windows Avner Lottem Edit in right-to-left windows
Flemming Madsen X11 client-server, various features and patches Flemming Madsen X11 client-server, various features and patches
Microsoft Gave me a copy of DevStudio to compile Vim with Tony Mechelynck answers many user questions
Paul Moore Python interface extensions, many patches Paul Moore Python interface extensions, many patches
Katsuhito Nagano Work on multi-byte versions Katsuhito Nagano Work on multi-byte versions
Sung-Hyun Nam Work on multi-byte versions Sung-Hyun Nam Work on multi-byte versions
Vince Negri Win32 GUI and generic console enhancements Vince Negri Win32 GUI and generic console enhancements
Steve Oualline Author of the first Vim book |frombook| Steve Oualline Author of the first Vim book |frombook|
Dominique Pelle figuring out valgrind reports and fixes Dominique Pelle valgrind reports and many fixes
A.Politz Many bug reports and some fixes A.Politz Many bug reports and some fixes
George V. Reilly Win32 port, Win32 GUI start-off George V. Reilly Win32 port, Win32 GUI start-off
Stephen Riehm bug collector Stephen Riehm bug collector
@@ -295,7 +300,7 @@ and <> are part of what you type, the context should make this clear.
[] Characters in square brackets are optional. [] Characters in square brackets are optional.
*count* *[count]* *E489* *count* *[count]*
[count] An optional number that may precede the command to multiply [count] An optional number that may precede the command to multiply
or iterate the command. If no number is given, a count of one or iterate the command. If no number is given, a count of one
is used, unless otherwise noted. Note that in this manual the is used, unless otherwise noted. Note that in this manual the
@@ -611,7 +616,6 @@ Replace <Esc> -- -- <Insert> -- --
Command-line *3 -- -- :start -- -- Command-line *3 -- -- :start -- --
Ex :vi -- -- -- -- -- Ex :vi -- -- -- -- --
- NA
-- not possible -- not possible
*1 Go from Normal mode to Insert mode by giving the command "i", "I", "a", *1 Go from Normal mode to Insert mode by giving the command "i", "I", "a",
@@ -698,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. (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 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 | |some line |
@@ -710,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. 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 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 | |first line |
@@ -725,7 +729,7 @@ window.
When the "lastline" flag is present in the 'display' option, you will not see 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 '@' 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 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 | |first line |

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