Compare commits

...

434 Commits

Author SHA1 Message Date
73675fbc48 patch 8.0.1323: mouse events in a terminal window may cause endless loop
Problem:    Mouse events in a terminal window may cause endless loop.
Solution:   Adjust position computation.  Don't stuff a mouse event when
            coming from normal_cmd().
2017-11-20 21:49:19 +01:00
5bbef31949 patch 8.0.1322: textformat test isn't run
Problem:    Textformat test isn't run. (Yegappan Lakshmanan)
Solution:   Add target to the list of tests.
2017-11-19 20:38:05 +01:00
40e280d949 patch 8.0.1321: can't build huge version with Athena
Problem:    Can't build huge version with Athena. (Mark Kelly)
Solution:   Move including beval.h to before structs.h. Include beval.pro like
            other proto files.
2017-11-19 20:34:59 +01:00
7221fce8b3 patch 8.0.1320: popup test fails on GUI-only build
Problem:    Popup test fails on GUI-only build.
Solution:   Don't test balloon_split() when it's not available.
2017-11-19 20:32:49 +01:00
669a828cdc patch 8.0.1319: can't build GUI on MS-Windows
Problem:    Can't build GUI on MS-Windows.
Solution:   Don't define the balloon_split() function in a GUI-only build.
2017-11-19 20:13:05 +01:00
246fe03d15 patch 8.0.1318: terminal balloon only shows one line
Problem:    Terminal balloon only shows one line.
Solution:   Split into several lines in a clever way.  Add balloon_split().
            Make balloon_show() accept a list in the terminal.
2017-11-19 19:56:27 +01:00
e518226713 patch 8.0.1317: accessing freed memory in term_wait()
Problem:    Accessing freed memory in term_wait(). (Dominique Pelle)
Solution:   Check that the buffer still exists.
2017-11-19 15:05:44 +01:00
44c2bffde7 patch 8.0.1316: build still still fails on Mac
Problem:    Build still still fails on Mac. (chdiza)
Solution:   Remove another bogus typedef.
2017-11-18 23:23:01 +01:00
e86ee877c1 patch 8.0.1315: build still fails on Mac
Problem:    Build still fails on Mac. (chdiza)
Solution:   Remove bogus typedef.
2017-11-18 23:09:37 +01:00
4ab9d9e9a4 patch 8.0.1314: build fails on Mac
Problem:    Build fails on Mac. (chdiza)
Solution:   Add #ifdef around GUI fields.
2017-11-18 22:49:58 +01:00
d1c28346e1 patch 8.0.1313: missing dependencies cause parallel make to fail
Problem:    Missing dependencies cause parallel make to fail.
Solution:   Update dependencies.
2017-11-18 22:36:34 +01:00
c3719bd87b patch 8.0.1312: balloon_show() only works in terminal when compiled with GUI
Problem:    balloon_show() only works in terminal when compiled with the GUI.
Solution:   Add FEAT_BEVAL_GUI and refactor to move common code out of the GUI
            specific file.
2017-11-18 22:13:31 +01:00
c7d16dce2f patch 8.0.1311: no test for strpart()
Problem:    No test for strpart().
Solution:   Add a test. (Dominique Pelle, closes #2347)
2017-11-18 20:32:03 +01:00
0f1e643138 patch 8.0.1310: cproto generates errors because of missing type
Problem:    Cproto generates errors because of missing type.
Solution:   Define _Float128 when generating prototypes.
2017-11-18 20:22:24 +01:00
51b0f3701e patch 8.0.1309: cannot use 'balloonexpr' in a terminal
Problem:    Cannot use 'balloonexpr' in a terminal.
Solution:   Add 'balloonevalterm' and add code to handle mouse movements in a
            terminal. Initial implementation for Unix with GUI.
2017-11-18 18:52:04 +01:00
234d16286a patch 8.0.1308: the "Reading from stdin" message may be undesired
Problem:    The "Reading from stdin" message may be undesired and there is no
            easy way to skip it.
Solution:   Don't show the message with --not-a-term was used.
2017-11-18 14:55:23 +01:00
ae1e108caa patch 8.0.1307: compiler warning for ignoring return value
Problem:    Compiler warning for ignoring return value of ftruncate(). (Tony
            Mechelynck)
Solution:   Assign returned value to "ignore".
2017-11-17 21:35:24 +01:00
9e27217c48 patch 8.0.1306: ASAN error stack trace is not useful
Problem:    ASAN error stack trace is not useful.
Solution:   Add "asan_symbolize". (James McCoy, closes #2344)
2017-11-17 21:25:08 +01:00
7567d0b115 patch 8.0.1305: writefile() never calls fsync()
Problem:    Writefile() never calls fsync().
Solution:   Follow the 'fsync' option with override to enable or disable.
2017-11-16 23:04:15 +01:00
d048009717 patch 8.0.1304: CTRL-G/CTRL-T don't work with incsearch and empty pattern
Problem:    CTRL-G/CTRL-T don't work with incsearch and empty pattern.
Solution:   Use the last search pattern. (Christian Brabandt, closes #2292)
2017-11-16 22:20:39 +01:00
9c6ce0e622 patch 8.0.1303: 'ttymouse' is not set to "sgr" for Terminal.app and Iterm2
Problem:    'ttymouse' is not set to "sgr" for Terminal.app and Iterm2.
Solution:   Recognize Iterm2 by the termresponse.
2017-11-16 22:07:13 +01:00
209d3874c1 patch 8.0.1302: still too many old style tests
Problem:    Still too many old style tests.
Solution:   Convert a few more tests to new style. (Yegappan Lakshmanan,
            closes #2326)
2017-11-16 21:52:51 +01:00
7cb769a69f patch 8.0.1301: generated license file for NSIS has a modeline
Problem:    Generated license file for NSIS has a modeline.
Solution:   Adjust the pattern for sed. (Ken Takata)
2017-11-16 17:36:02 +01:00
cd142e3369 patch 8.0.1300: file permissions may end up wrong when writing
Problem:    File permissions may end up wrong when writing.
Solution:   Use fchmod() instead of chmod() when possible.  Don't truncate
            until we know we can change the file.
2017-11-16 17:03:45 +01:00
a42ad57e48 patch 8.0.1299: bracketed paste does not work well in terminal window
Problem:    Bracketed paste does not work well in terminal window.
Solution:   Send translated string to job right away. (Ozaki Kiichi, closes
            #2341)
2017-11-16 13:08:04 +01:00
58a8f1706f patch 8.0.1298: missing test file
Problem:    Missing test file.
Solution:   Add samples/test000. (Christian Brabandt)
2017-11-14 20:23:15 +01:00
2392143236 patch 8.0.1297: +autoservername does not show enabled on MS-Windows
Problem:    +autoservername does not show enabled on MS-Windows.
Solution:   Always define the flag on MS-Windows. (Ken Takata)
2017-11-13 22:08:16 +01:00
1dcada1933 patch 8.0.1296: checking the same condition twice
Problem:    Checking the same condition twice. (John Marriott)
Solution:   Check blinkwait.
2017-11-13 21:10:04 +01:00
e42a6d2509 patch 8.0.1295: cannot automatically get a server name in a terminal
Problem:    Cannot automatically get a server name in a terminal.
Solution:   Add the --enable-autoservername flag to configure. (Cimbali,
            closes #2317)
2017-11-12 19:21:51 +01:00
2f27aab8e6 patch 8.0.1294: GUI: get stuck when splitting a terminal window
Problem:    GUI: get stuck when splitting a terminal window.
Solution:   Stop blinking when values become zero. (Hirohito Higashi)
2017-11-12 18:32:00 +01:00
60e73f2acc patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Problem:    Setting a breakpoint in the terminal debugger sometimes fails.
Solution:   Interrupt the program if needed.  Set the interface to async.
2017-11-12 18:02:06 +01:00
d327b0c68f patch 8.0.1292: quick clicks in the WinBar start Visual mode
Problem:    Quick clicks in the WinBar start Visual mode.
Solution:   Use a double click in the WinBar like a normal click.
2017-11-12 16:56:12 +01:00
f8c53d3d26 patch 8.0.1291: C indent wrong when * immediately follows comment
Problem:    C indent wrong when * immediately follows comment. (John Bowler)
Solution:   Do not see "/*" after "*" as a comment start. (closes #2321)
2017-11-12 15:36:38 +01:00
80eaddd3a0 patch 8.0.1290: seq_cur of undotree() wrong after undo
Problem:    seq_cur of undotree() wrong after undo.
Solution:   Get the actual sequence number instead of decrementing the current
            one. (Ozaki Kiichi, closes #2319)
2017-11-11 23:37:08 +01:00
7f2e9d7c9c Update runtime files. 2017-11-11 20:58:53 +01:00
13e904199c patch 8.0.1289: mkview always includes the local directory
Problem:    Mkview always includes the local directory.
Solution:   Add the "curdir" value in 'viewoptions'. (Eric Roberts, closes
            #2316)
2017-11-11 18:16:48 +01:00
ae147ab2d7 patch 8.0.1288: GUI: cannot drag the statusline of a terminal window
Problem:    GUI: cannot drag the statusline of a terminal window.
Solution:   Handle the TERMINAL state. (Hirohito Higashi)
2017-11-11 17:09:09 +01:00
aeeb6888ca patch 8.0.1287: temp file used for viminfo may have wrong permissions
Problem:    The temp file used when updating the viminfo file may have the
            wrong permissions if setting the group fails.
Solution:   Check if the group matches and reduce permissions if not.
2017-11-11 16:45:19 +01:00
5fd8b78214 patch 8.0.1286: occasional crash when using a channel
Problem:    Occasional crash when using a channel. (Marek)
Solution:   Decrement reference count later. (closes #2315)
2017-11-11 15:54:00 +01:00
d09a206ee9 patch 8.0.1285: occasional crash when using a channel
Problem:    Occasional crash when using a channel. (Marek)
Solution:   Decrement reference count later. (closes #2315)
2017-11-11 15:37:45 +01:00
462455ee8b patch 8.0.1284: loading file type detection slows down startup
Problem:    Loading file type detection slows down startup.
Solution:   Store the last pattern of an autocommand event to make appending
            quicker.
2017-11-10 21:53:11 +01:00
9ed7d34af3 patch 8.0.1283: test 86 fails under ASAN
Problem:    Test 86 fails under ASAN.
Solution:   Fix that an item was added to a dictionary twice.
2017-11-09 22:10:33 +01:00
cef7322d8a patch 8.0.1282: script-local variable defined in the wrong script
Problem:    script-local variable defined in the wrong script
Solution:   Move variable to autoload/filetype.vim.
2017-11-09 21:05:31 +01:00
851ee6c3da patch 8.0.1281: loading file type detection slows down startup
Problem:    Loading file type detection slows down startup.
Solution:   Move functions to an autoload script.
2017-11-09 20:46:17 +01:00
de323093e1 patch 8.0.1280: Python None cannot be converted to a Vim type
Problem:    Python None cannot be converted to a Vim type.
Solution:   Convert it to v:none. (Ken Takata)
2017-11-09 19:56:08 +01:00
040c1feb21 patch 8.0.1279: initializing menus can be slow
Problem:    Initializing menus can be slow, especially when there are many
            keymaps, color schemes, etc.
Solution:   Do the globbing for runtime files lazlily. (Ken Takata)
2017-11-09 19:45:48 +01:00
8ac441576f patch 8.0.1278: GUI window always resizes when adding scrollbar
Problem:    GUI window always resizes when adding/removing a scrollbar,
            toolbar, etc.
Solution:   Add the 'k' flag in 'guioptions' to keep the GUI window size and
            change the number of lines/columns instead. (Ychin, closes #703)
2017-11-09 18:33:29 +01:00
26d205dcd8 patch 8.0.1277: terminal window CR-NL conversions may cause problems
Problem:    Terminal window CR-NL conversions may cause problems.
Solution:   Avoid most conversions, only fetch the current backspace key value
            from the tty. (mostly by Ozaki Kiichi, closes #2278)
2017-11-09 17:33:11 +01:00
a3f7e58bf8 patch 8.0.1276: key lost when window closed in exit callback
Problem:    Typed key is lost when the terminal window is closed in exit
            callback. (Gabriel Barta)
Solution:   When the current window changes bail out of the wait loop. (closes
            #2302)
2017-11-09 13:21:58 +01:00
c9e9c71409 patch 8.0.1275: CmdlineLeave autocmd prevents fold from opening
Problem:    CmdlineLeave autocmd prevents fold from opening. (Waivek)
Solution:   Save and restore KeyTyped. (closes #2305)
2017-11-09 12:29:35 +01:00
0c4dc88a63 patch 8.0.1274: setbufline() fails when using folding
Problem:    setbufline() fails when using folding.
Solution:   Set "curwin" if needed. (Ozaki Kiichi, closes #2293)
2017-11-06 21:32:54 +01:00
4148be468f patch 8.0.1273: old test file remaining
Problem:    Old test file remaining.
Solution:   Delete it.
2017-11-06 20:41:19 +01:00
53ec79537a patch 8.0.1272: warnings for unused variables in tiny build
Problem:    Warnings for unused variables in tiny build.
Solution:   Add #ifdef. (Dominique Pelle, closes #2288)
2017-11-05 21:24:23 +01:00
fb094e14c1 patch 8.0.1271: still too many old style tests
Problem:    Still too many old style tests.
Solution:   Convert a few more tests to new style. (Yegappan Lakshmanan,
            closes #2290)
2017-11-05 20:59:28 +01:00
8fdb35a974 patch 8.0.1270: mismatching file name with Filelist
Problem:    Mismatching file name with Filelist.
Solution:   Rename color_ramp.vim to xterm_ramp.vim
2017-11-05 18:23:16 +01:00
b0d45e7f53 Update runtime files. 2017-11-05 18:19:24 +01:00
aace215813 patch 8.0.1269: effect of autocommands on marks is not tested
Problem:    Effect of autocommands on marks is not tested.
Solution:   Add a couple of tests. (James McCoy, closes #2271)
2017-11-05 16:23:10 +01:00
3bf8c3c38f patch 8.0.1268: PC install instructions are incomplete
Problem:    PC install instructions are incomplete.
Solution:   Update the instructions. (Ken Takata)
2017-11-05 16:04:43 +01:00
5842a748be patch 8.0.1267: Test_swap_group may leave file behind
Problem:    Test_swap_group may leave file behind.
Solution:   Add a try/finally.
2017-11-04 22:36:53 +01:00
ffe010fa03 patch 8.0.1266: Test_swap_directory was commented out
Problem:    Test_swap_directory was accidentally commented out.
Solution:   Uncomment the test.
2017-11-04 22:30:40 +01:00
ad7dac85c3 patch 8.0.1265: swap test not skipped when there is one group
Problem:    Swap test not skipped when there is one group.
Solution:   Convert list to string for the message.
2017-11-04 22:21:21 +01:00
c363251630 patch 8.0.1264: terminal debugger gets stuck in small window
Problem:    Terminal debugger gets stuck in small window.
Solution:   Add "-quiet" to the gdb command. (Christian Brabandt, closes #2154)
2017-11-04 21:44:59 +01:00
5a73e0ca54 patch 8.0.1263: others can read the swap file if a user is careless
Problem:    Others can read the swap file if a user is careless with his
            primary group.
Solution:   If the group permission allows for reading but the world
            permissions doesn't, make sure the group is right.
2017-11-04 21:35:01 +01:00
7dd88c5133 patch 8.0.1262: terminal redir test is flaky
Problem:    Terminal redir test is flaky.
Solution:   Add it to the list of flaky tests.
2017-11-04 20:46:40 +01:00
1232624ae5 patch 8.0.1261: program in terminal window gets NL instead of CR
Problem:    Program in terminal window gets NL instead of CR. (Lifepillar)
Solution:   Check the tty setup more often. (closes #1998)
2017-11-04 20:12:14 +01:00
ab8b1c14a3 patch 8.0.1260: using global variables for WaitFor()
Problem:    Using global variables for WaitFor().
Solution:   Use a lambda function instead.  Don't check a condition if
            WaitFor() already checked it.
2017-11-04 19:24:31 +01:00
13deab8d08 patch 8.0.1259: search test can be flaky
Problem:    Search test can be flaky.
Solution:   Use WaitFor() instead of a delay.  Make it possible to pass a
            funcref to WaitFor() to avoid the need for global variables.
            (James McCoy, closes #2282)
2017-11-04 18:48:43 +01:00
52a2f0f1da patch 8.0.1258: 'ttymouse' is set to "sgr" even though it's not supported
Problem:    'ttymouse' is set to "sgr" even though it's not supported. (Gary
            Johnson)
Solution:   Adjust #ifdef
2017-11-04 15:16:56 +01:00
2973daafe1 patch 8.0.1257: no test for fix of undefined behavior
Problem:    No test for fix of undefined behavior.
Solution:   Add a test. (closes #2255)
2017-11-02 23:15:40 +01:00
a88254f704 patch 8.0.1256: typo in configure variable vim_cv_tgent
Problem:    Typo in configure variable vim_cv_tgent. (Matthieu Guillard)
Solution:   Rename the variable. (closes #2281)
2017-11-02 23:04:14 +01:00
01164a6546 Long overdue runtime update. 2017-11-02 22:58:42 +01:00
ea84df8041 patch 8.0.1255: duplicate badge README file
Problem:    duplicate badge README file.
Solution:   Remove one. (Dominique Pelle)
2017-11-02 22:38:51 +01:00
4c22a91d20 patch 8.0.1254: undefined left shift in gethexchrs()
Problem:    Undefined left shift in gethexchrs(). (geeknik)
Solution:   Use unsigned long. (idea by Christian Brabandt, closes #2255)
2017-11-02 22:29:38 +01:00
430dc5d360 patch 8.0.1253: still too many old style tests
Problem:    Still too many old style tests.
Solution:   Convert a few more tests to new style. (Yegappan Lakshmanan,
            closes #2272)
2017-11-02 21:04:47 +01:00
8889a5c305 patch 8.0.1252: incomplete translations makefile for MinGW/Cygwin
Problem:    Incomplete translations makefile for MinGW/Cygwin.
Solution:   Add missing source files.  Make it work with msys2's bash. (Ken
            Takata)
2017-11-02 19:27:36 +01:00
d97fbf171e patch 8.0.1251: invalid expressin passed to WaitFor()
Problem:    Invalid expressin passed to WaitFor().
Solution:   Check if the variable exists.
2017-11-02 19:23:03 +01:00
f8f8b2eadb patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Problem:    'hlsearch' highlighting not removed after incsearch (lacygoill)
Solution:   Redraw all windows. Start search at the end of the match.  Improve
            how CTRL-G works with incremental search. Add tests. (Christian
            Brabandt, Hirohito Higashi, haya14busa, closes #2267)
2017-11-02 19:08:48 +01:00
c20e0d5207 patch 8.0.1249: no error when WaitFor() gets an invalid wrong expression
Problem:    No error when WaitFor() gets an invalid wrong expression.
Solution:   Do not ignore errors in evaluationg the expression.  Fix places
            where the expression was wrong.
2017-11-02 18:19:19 +01:00
5130f31661 patch 8.0.1248: stray + in README file
Problem:    Stray + in README file.
Solution:   Remove the +.  Add a line break.
2017-11-02 18:13:00 +01:00
86b21bb3e7 patch 8.0.1247: not easy to find Debian build info
Problem:    Not easy to find Debian build info.
Solution:   Add a badge in the README file. (Dominique Pelle)
2017-11-02 18:10:00 +01:00
b315876efa patch 8.0.1246: popup test has an arbitrary delay
Problem:    Popup test has an arbitrary delay.
Solution:   Wait for the ruler to show. (James McCoy)
2017-11-02 17:50:14 +01:00
3e1c617d49 patch 8.0.1245: when WaitFor() has a wrong expression it just waits a second
Problem:    When WaitFor() has a wrong expression it just waits a second,
            which goes unnoticed. (James McCoy)
Solution:   When WaitFor() times out throw an exception.  Fix places where the
            expression was wrong.
2017-11-02 16:58:00 +01:00
b94340c04f patch 8.0.1244: search test does not work correctly on MS-Windows
Problem:    Search test does not work correctly on MS-Windows.
Solution:   Put text in a file instead of sending it to the terminal.
            (Christian Brabandt)
2017-11-02 16:16:31 +01:00
f45938cc20 patch 8.0.1243: no test for what 8.0.1227 fixes
Problem:    No test for what 8.0.1227 fixes.
Solution:   Add a test that triggers the problem. (Christian Brabandt)
2017-11-02 15:59:57 +01:00
ffd99f729b patch 8.0.1242: function argument with only dash is seen as number zero
Problem:    Function argument with only dash is seen as number zero. (Wang
            Shidong)
Solution:   See a dash as a string. (Christian Brabandt)
2017-11-02 15:44:14 +01:00
89c394faca patch 8.0.1241: popup test is flaky
Problem:    Popup test is flaky. (James McCoy)
Solution:   Increase the wait time. (Dominique Pelle)
2017-10-31 22:19:58 +01:00
ba6febd380 patch 8.0.1240: MS-Windows: term_start() does not support environment
Problem:    MS-Windows: term_start() does not support environment.
Solution:   Implement the environment argument. (Yasuhiro Matsumoto, closes
            #2264)
2017-10-30 21:56:23 +01:00
48570488f1 patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Problem:    Cannot use a lambda for the skip argument to searchpair().
Solution:   Evaluate a partial, funcref and lambda. (LemonBoy, closes #1454,
            closes #2265)
2017-10-30 21:48:41 +01:00
2e51d9a097 patch 8.0.1238: incremental search only shows one match
Problem:    Incremental search only shows one match.
Solution:   When 'incsearch' and and 'hlsearch' are both set highlight all
            matches. (haya14busa, closes #2198)
2017-10-29 16:40:30 +01:00
af2d20c628 patch 8.0.1237: ":set scroll&" often gives an error
Problem:    ":set scroll&" often gives an error.
Solution:   Don't use a fixed default value, use half the window height. Add a
            test. (Ozaki Kiichi, closes #2104)
2017-10-29 15:26:57 +01:00
d057301b1f patch 8.0.1236: Mac features are confusing
Problem:    Mac features are confusing.
Solution:   Make feature names more consistent, add "osxdarwin". Rename
            feature flags, cleanup Mac code. (Kazunobu Kuriyama, closes #2178)
2017-10-28 21:11:06 +02:00
ef83956e1e patch 8.0.1235: cannot disable the terminal feature in a huge build
Problem:    Cannot disable the terminal feature in a huge build. (lindhobe)
Solution:   Adjust the autoconf check. (Kazunobu Kuriyama, closes #2242)
2017-10-28 20:28:23 +02:00
a6ce1ccf5c patch 8.0.1234: MS-Windows: composing chars are not shown properly
Problem:    MS-Windows: composing characters are not shown properly.
Solution:   Pass base character and composing characters to the renderer at
            once. (Ken Takata, closes #2206)
2017-10-28 19:23:11 +02:00
b9fce6cbf7 patch 8.0.1233: typo in dos installer
Problem:    Typo in dos installer.
Solution:   Remove comma.
2017-10-28 18:50:01 +02:00
c3fdf7f80b patch 8.0.1232: MS-Windows users are confused about default mappings
Problem:    MS-Windows users are confused about default mappings.
Solution:   Don't map keys in the console where they don't work.  Add a choice
            in the installer to use MS-Windows key bindings or not. (Christian
            Brabandt, Ken Takata, closes #2093)
2017-10-28 18:36:48 +02:00
c312b8b87a patch 8.0.1231: expanding file name drops dash
Problem:    Expanding file name drops dash. (stucki)
Solution:   Use the right position. (Christian Brabandt, closes #2184)
2017-10-28 17:53:04 +02:00
ce15775026 patch 8.0.1230: CTRL-A in Visual mode uses character after selection
Problem:    CTRL-A in Visual mode uses character after selection. (Nikolai
            Pavlov)
Solution:   Check the length before using a character.
2017-10-28 16:07:33 +02:00
9a91c7a1f9 patch 8.0.1229: condition in vim_str2nr() is always true
Problem:    Condition in vim_str2nr() is always true. (Nikolai Pavlov)
Solution:   Remove the condition. (Closes #2259)
2017-10-28 15:38:40 +02:00
0e19fc07e7 patch 8.0.1228: invalid memory access in GUI test
Problem:    Invalid memory access in GUI test.
Solution:   Check that the row is not outside of the screen.
2017-10-28 14:45:16 +02:00
dc1c981294 patch 8.0.1227: undefined left shift in readfile()
Problem:    Undefined left shift in readfile(). (Brian 'geeknik' Carpenter)
Solution:   Add cast to unsigned. (Dominique Pelle, closes #2253)
2017-10-27 22:15:24 +02:00
2a45d64d0a patch 8.0.1226: edit and popup tests failing
Problem:    Edit and popup tests failing.
Solution:   Make the tests pass.
2017-10-27 01:35:00 +02:00
ee03b94124 patch 8.0.1225: no check for spell region being zero
Problem:    No check for spell region being zero. (geeknik)
Solution:   Check for zero. (closes #2252)
2017-10-27 00:57:05 +02:00
cf1ba35fc2 patch 8.0.1224: still interference between test functions
Problem:    Still interference between test functions.
Solution:   Clear autocommands. Wipe all buffers.  Fix tests that depend on a
            specific start context.
2017-10-27 00:55:04 +02:00
9ad89c6c4f patch 8.0.1223: crash when using autocomplete and tab pages
Problem:    Crash when using autocomplete and tab pages.
Solution:   Check if the current tab changed. (Christian Brabandt, closes
            #2239)
2017-10-26 22:04:04 +02:00
ce11de87e2 patch 8.0.1222: test functions interfere with each other
Problem:    Test functions interfere with each other.
Solution:   Cleanup tab pages, windows and buffers.  Reset option.
2017-10-26 22:00:00 +02:00
15993ce921 patch 8.0.1221: still too many old style tests
Problem:    Still too many old style tests.
Solution:   Convert a few more tests to new style. (Yegappan Lakshmanan,
            closes #2256)
2017-10-26 20:21:44 +02:00
235dddf1f4 patch 8.0.1220: skipping empty statusline groups is not correct
Problem:    Skipping empty statusline groups is not correct.
Solution:   Also set group_end_userhl. (itchyny)
2017-10-26 18:21:24 +02:00
f204e05ae9 patch 8.0.1219: terminal test is flaky
Problem:    Terminal test is flaky.
Solution:   Add test function to list of flaky tests.
2017-10-26 17:14:01 +02:00
8d84ff1a3c patch 8.0.1218: writing to freed memory in autocmd
Problem:    Writing to freed memory in autocmd.
Solution:   Make a copy of the tag line. (Dominique Pelle, closes #2245)
2017-10-26 16:42:16 +02:00
d99388ba85 patch 8.0.1217: can't use remote eval to inspect vars in debug mode
Problem:    Can't use remote eval to inspect vars in debug mode.
Solution:   Don't discard the call stack in debug mode. (closes #2237, #2247)
2017-10-26 14:28:32 +02:00
6ce6504808 patch 8.0.1216: tabline is not always updated for :file command
Problem:    Tabline is not always updated for :file command. (Norio Takagi)
Solution:   Set redraw_tabline. (Hirohito Higashi)
2017-10-24 22:32:59 +02:00
2f40d129bf patch 8.0.1215: newer gcc warns for implicit fallthrough
Problem:    Newer gcc warns for implicit fallthrough.
Solution:   Consistently use a FALLTHROUGH comment. (Christian Brabandt)
2017-10-24 21:49:36 +02:00
4f1982800f patch 8.0.1214: accessing freed memory when EXITFREE is set
Problem:    Accessing freed memory when EXITFREE is set and there is more than
            one tab and window. (Dominique Pelle)
Solution:   Free options later.  Skip redraw when exiting.
2017-10-23 21:53:30 +02:00
2e4cb3b042 patch 8.0.1213: setting 'mzschemedll' has no effect
Problem:    Setting 'mzschemedll' has no effect.
Solution:   Move loading .vimrc to before call to mzscheme_main().
2017-10-22 21:11:17 +02:00
66857f4104 patch 8.0.1212: MS-Windows: tear-off menu does not work on 64 bit
Problem:    MS-Windows: tear-off menu does not work on 64 bit. (shaggyaxe)
Solution:   Change how the menu handle is looked up. (Ken Takata, closes
            #1205)
2017-10-22 16:43:20 +02:00
ca05aa24af patch 8.0.1211: cannot reorder tab pages with drag & drop
Problem:    Cannot reorder tab pages with drag & drop.
Solution:   Support drag & drop for GTK and MS-Windows. (Ken Takata, Masamichi
            Abe)
2017-10-22 15:36:14 +02:00
f8e8c0643b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Problem:    When typing a search pattern CTRL-G and CTRL-T are ignored when
            there is typeahead.
Solution:   Don't pass SEARCH_PEEK and don't call char_avail(). (haya14busa,
            closes #2233)
2017-10-22 14:44:17 +02:00
53f0c96239 patch 8.0.1209: still too many old style tests
Problem:    Still too many old style tests.
Solution:   Convert a few more tests to new style. (Yegappan Lakshmanan,
            closes #2230)
2017-10-22 14:23:59 +02:00
6b89dbb55f patch 8.0.1208: 'statusline' drops empty group with highlight change
Problem:    'statusline' drops empty group with highlight change.
Solution:   Do not drop an empty group if it changes highlighting. (Marius
            Gedminas, closes #2228)
2017-10-22 14:22:16 +02:00
67435d9983 patch 8.0.1207: profiling skips the first and last script line
Problem:    Profiling skips the first and last script line.
Solution:   Check for BOM after setting script ID. (Lemonboy, closes #2103,
            closes #2112) Add a test. List the trailing script lines.
2017-10-19 21:04:37 +02:00
fafcf0dd59 patch 8.0.1206: no autocmd for entering or leaving the command line
Problem:    No autocmd for entering or leaving the command line.
Solution:   Add CmdlineEnter and CmdlineLeave.
2017-10-19 18:35:51 +02:00
ff930cad8a patch 8.0.1205: it is possible to unload a changed buffer
Problem:    Using "1q" it is possible to unload a changed buffer. (Rick Howe)
Solution:   Check the right window for changes.
2017-10-19 17:12:10 +02:00
87ffb5c1a3 patch 8.0.1204: a QuitPre autocommand may get the wrong file name
Problem:    A QuitPre autocommand may get the wrong file name.
Solution:   Pass the buffer being closed to apply_autocmds(). (Rich Howe)
2017-10-19 12:37:42 +02:00
6daeef1933 patch 8.0.1203: terminal window mistreats composing characters
Problem:    Terminal window mistreats composing characters.
Solution:   Count composing characters with the base character. (Ozaki Kiichi,
            closes #2195)
2017-10-15 22:56:49 +02:00
059db5c29f patch 8.0.1202: :wall gives an errof for a terminal window
Problem:    :wall gives an errof for a terminal window. (Marius Gedminas)
Solution:   Don't try writing a buffer that can't be written. (Yasuhiro
            Matsumoto, closes #2190)
2017-10-15 22:42:23 +02:00
44cc4cf72f patch 8.0.1201: "yL" is affected by 'scrolloff'
Problem:    "yL" is affected by 'scrolloff'. (Eli the Bearded)
Solution:   Don't use 'scrolloff' when an operator is pending.
2017-10-15 22:13:37 +02:00
67418d97b4 patch 8.0.1200: tests switch the bell off twice
Problem:    Tests switch the bell off twice.
Solution:   Don't set 'belloff' in individual tests. (Christian Brabandt)
2017-10-15 22:07:39 +02:00
8bfe07b708 patch 8.0.1199: when 'clipboard' is "autoselectplus" star register is set
Problem:    When 'clipboard' is "autoselectplus" the star register is also
            set. (Gilles Moris)
Solution:   Don't set the star register in this situation.
2017-10-15 21:47:05 +02:00
00ce63dc23 patch 8.0.1198: older compilers don't know uint8_t
Problem:    Older compilers don't know uint8_t.
Solution:   Use char_u instead.
2017-10-15 21:44:45 +02:00
81b07b527e patch 8.0.1197: MS-Windows build instructions are not up to date
Problem:    MS-Windows build instructions are not up to date.
Solution:   Adjust the instructions.  Fix the nsis script.
2017-10-15 21:43:21 +02:00
a20f83df1d patch 8.0.1196: crash when t_RF is not set
Problem:    Crash when t_RF is not set. (Brian Pina)
Solution:   Add t_RF to the list of terminal options. (Hirohito Higashi)
2017-10-15 13:35:01 +02:00
9377df3ecd patch 8.0.1195: can't build on MS-Windows
Problem:    Can't build on MS-Windows.
Solution:   Adjust #ifdef and add #ifdefs.
2017-10-15 13:22:01 +02:00
65e4c4f686 patch 8.0.1194: actual fg and bg colors of terminal are unknown
Problem:    Actual fg and bg colors of terminal are unknown.
Solution:   Add t_RF.  Store response to t_RB and t_RF, use for terminal.
2017-10-14 23:24:25 +02:00
b2c8750c4e patch 8.0.1193: crash when wiping out a buffer after using getbufinfo()
Problem:    Crash when wiping out a buffer after using getbufinfo().
            (Yegappan Lakshmanan)
Solution:   Remove b:changedtick from the buffer variables.
2017-10-14 21:15:58 +02:00
ac8069bb63 patch 8.0.1192: MS-Windows: terminal feature not enabled by default
Problem:    MS-Windows: terminal feature not enabled by default.
Solution:   Enable it. (Ken Takata)
2017-10-14 20:24:19 +02:00
6199d43f4b patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Problem:    MS-Windows: missing 32 and 64 bit files in installer.
Solution:   Include both 32 and 64 bit GvimExt and related dll files. Remove
            old Windows code from the installer. (Ken Takata, closes #2144)
2017-10-14 19:05:44 +02:00
2c33d7bb69 patch 8.0.1190: unusable after opening new window in BufWritePre event
Problem:    Vim becomes unusable after opening new window in BufWritePre
            event.
Solution:   Call not_exiting(). (Martin Tournoij, closes #2205)
            Also for "2q" when a help window is open.  Add a test.
2017-10-14 16:06:20 +02:00
6047e2c722 patch 8.0.1189: E172 is not actually useful
Problem:    E172 is not actually useful, it's only on Unix anyway.
Solution:   Remove the check and the error.
2017-10-14 15:24:49 +02:00
1d68d9b2bd patch 8.0.1188: autocmd test fails on MS-Windows
Problem:    Autocmd test fails on MS-Windows.
Solution:   Give the buffer a name and find the buffer to be wiped out by
            name.
2017-10-13 22:33:32 +02:00
8065cf2bfb patch 8.0.1187: building with lua fails for OSX on Travis
Problem:    Building with lua fails for OSX on Travis.
Solution:   Separate brew-update and brew-install. (Ozaki Kiichi, closes #2203)
2017-10-12 21:45:23 +02:00
4a6fcf8047 patch 8.0.1186: still quite a few old style tests
Problem:    Still quite a few old style tests.
Solution:   Convert old to new style tests. (Yegappan Lakshmanan)
            Avoid ringing the bell while running tests.
2017-10-12 21:29:22 +02:00
9202162c5c patch 8.0.1185: Ruby library includes minor version number
Problem:    Ruby library includes minor version number.
Solution:   Only use the API version number. (Ben Boeckel, closes #2199)
2017-10-12 12:33:43 +02:00
9b69f22e66 patch 8.0.1184: the :marks command is not tested
Problem:    The :marks command is not tested.
Solution:   Add a test. (Dominique Pelle, closes #2197)
2017-10-08 21:53:15 +02:00
18cfa940e2 patch 8.0.1183: MS-Windows build instructions are outdated
Problem:    MS-Windows build instructions are outdated.
Solution:   Update instructions for MSVC 2015.  Update the build script.
2017-10-08 17:58:44 +02:00
0ab35b279f patch 8.0.1182: cannot see or change mzscheme dll name
Problem:    Cannot see or change mzscheme dll name.
Solution:   Add 'mzschemedll' and 'mzschemegcdll'.
2017-10-08 17:41:37 +02:00
4635e11c6b patch 8.0.1181: tests using Vim command fail on MS-Windows
Problem:    Tests using Vim command fail on MS-Windows.
Solution:   Do not add quotes around the Vim command.
2017-10-07 21:05:18 +02:00
75f69e5a18 patch 8.0.1180: MS-Windows testclean target deletes the color script
Problem:    MS-Windows testclean target deletes the color script.
Solution:   Rename the script file.
2017-10-07 20:10:29 +02:00
631820536e patch 8.0.1179: Test_popup_and_window_resize() does not always pass
Problem:    Test_popup_and_window_resize() does not always pass.
Solution:   Do not use $VIMPROG, pass the Vim executable in the vimcmd file.
            (Ozaki Kiichi, closes #2186)
2017-10-07 20:03:23 +02:00
73f4439ca6 patch 8.0.1178: using old compiler on MS-Windows
Problem:    Using old compiler on MS-Windows.
Solution:   Switch default build on MS-Windows to use MSVC 2015. (Ken Takata)
2017-10-07 18:38:43 +02:00
54e5dbf58e patch 8.0.1177: in a terminal window the popup menu is not cleared
Problem:    In a terminal window the popup menu is not cleared. (Gerry
            Agbobada)
Solution:   Redraw when SOME_VALID is used instead of NOT_VALID. (closes
            #2194)
2017-10-07 17:35:09 +02:00
d78f03f860 patch 8.0.1176: job_start() does not handle quote and backslash correctly
Problem:    Job_start() does not handle quote and backslash correctly.
Solution:   Remove quotes, recognize and remove backslashes.
2017-10-06 01:07:41 +02:00
c902609f69 patch 8.0.1175: build failure without +termresponse
Problem:    Build failure without +termresponse.
Solution:   Add #ifdef.
2017-10-04 19:35:02 +02:00
a0a6f2776e patch 8.0.1174: Mac Terminal.app has wrong color for white
Problem:    Mac Terminal.app has wrong color for white.
Solution:   Use white from the color cube.
2017-10-04 18:04:16 +02:00
19a3d68b2c patch 8.0.1173: terminal window is not redrawn after CTRL-L
Problem:    Terminal window is not redrawn after CTRL-L. (Marcin Szamotulski)
Solution:   Redraw the whole terminal when w_redr_type is NOT_VALID.
2017-10-02 21:54:59 +02:00
2a6a6c3014 patch 8.0.1172: when E734 is given option is still set
Problem:    When E734 is given option is still set.
Solution:   Assign NULL to "s". (Christian Brabandt)
2017-10-02 19:29:48 +02:00
712549e04e patch 8.0.1171: popup test is still a bit flaky
Problem:    Popup test is still a bit flaky.
Solution:   Change term_wait() calls. (Ozaki Kiichi)
2017-10-01 16:59:18 +02:00
f33606112a patch 8.0.1170: using termdebug results in 100% CPU time
Problem:    Using termdebug results in 100% CPU time. (tomleb)
Solution:   Use polling instead of select().
2017-10-01 16:21:31 +02:00
5ece3e359c patch 8.0.1169: highlignting one char too many with 'list' and 'cul'
Problem:    Highlignting one char too many with 'list' and 'cul'.
Solution:   Check for 'list' being active. (Ozaki Kiichi, closes #2177)
2017-10-01 14:35:02 +02:00
0aa398f55a patch 8.0.1168: wrong highlighting with combination of match and 'cursorline'
Problem:    wrong highlighting with combination of match and 'cursorline'.
Solution:   Use "line_attr" when appropriate. (Ozaki Kiichi, closes #2111)
            But don't highlight more than one character.
2017-09-30 21:23:55 +02:00
3a497e1a41 patch 8.0.1167: Motif: typing in terminal window is slow
Problem:    Motif: typing in terminal window is slow.
Solution:   Do not redraw the whole terminal window but only was was changed.
2017-09-30 20:40:27 +02:00
c958b31638 patch 8.0.1166: :terminal doesn't work on Mac High Sierra
Problem:    :terminal doesn't work on Mac High Sierra.
Solution:   Change #ifdef for OpenPTY(). (Ozaki Kiichi, Kazunobu Kuriyama,
            closes #2162)
2017-09-30 20:04:36 +02:00
f52c383156 patch 8.0.1165: popup test is still flaky
Problem:    Popup test is still flaky.
Solution:   Add a term_wait() call. (Ozaki Kiichi)
2017-09-30 16:49:19 +02:00
65ed136844 patch 8.0.1164: changing StatusLine highlight does not always work
Problem:    Changing StatusLine highlight while evaluating 'statusline' may
            not change the status line color.
Solution:   When changing highlighting while redrawing don't cause another
            redraw. (suggested by Ozaki Kiichi, closes #2171, closes #2120)
2017-09-30 16:00:14 +02:00
c79977a437 patch 8.0.1163: popup test is flaky
Problem:    Popup test is flaky.
Solution:   Add a WaitFor() and fix another.
2017-09-30 14:39:27 +02:00
660b85e39a patch 8.0.1162: shared script for tests cannot be included twice
Problem:    Shared script for tests cannot be included twice.
Solution:   Include it where needed, it will "finish" if loaded again.
2017-09-30 14:26:58 +02:00
a5e6621aad patch 8.0.1161: popup menu drawing problem when resizing terminal
Problem:    Popup menu drawing problem when resizing terminal.
Solution:   Redraw after resizing also when a popup menu is visible. (Ozaki
            Kiichi, closes #2110)
2017-09-29 22:42:33 +02:00
816968defc patch 8.0.1160: getting tab-local variable fails after closing window
Problem:    Getting tab-local variable fails after closing window.
Solution:   set tp_firstwin and tp_lastwin. (Jason Franklin, closes #2170)
2017-09-29 21:29:18 +02:00
d371bbe0ab patch 8.0.1159: typo in #ifdef
Problem:    Typo in #ifdef.
Solution:   Change "PROT" to "PROTO". (Nobuhiro Takasaki, closes #2165)
2017-09-28 22:35:25 +02:00
db51007108 patch 8.0.1158: still old style tests
Problem:    Still old style tests.
Solution:   Convert serveral tests to new style. (Yegappan Lakshmanan)
2017-09-28 21:52:17 +02:00
24a98a0eb7 Update runtime files 2017-09-27 22:23:55 +02:00
9cf39cc57f patch 8.0.1157: compiler warning on MS-Windows
Problem:    Compiler warning on MS-Windows.
Solution:   Add type cast. (Yasuhiro Matsomoto)
2017-09-27 21:46:19 +02:00
1ec96c9269 patch 8.0.1156: trouble from removing one -W argument from Perl CFLAGS
Problem:    Removing one -W argument from Perl CFLAGS may cause trouble.
Solution:   Remove all -W flags. (Christian Brabandt)
2017-09-27 21:42:08 +02:00
d1bc96ce24 patch 8.0.1155: Ruby command triggers a warning
Problem:    Ruby command triggers a warning when RUBYOPT is set to "-w".
Solution:   use "-e_=0" instead of "-e0". (Masataka Pocke Kuwabara, closes
            #2143)
2017-09-26 21:21:44 +02:00
1b38344e00 patch 8.0.1154: 'indentkeys' does not work properly
Problem:    'indentkeys' does not work properly. (Gary Johnson)
Solution:   Get the cursor line again. (Christian Brabandt, closes #2151)
2017-09-26 20:04:54 +02:00
97fbc404fc patch 8.0.1153: no tests for diff_hlID() and diff_filler()
Problem:    No tests for diff_hlID() and diff_filler().
Solution:   Add tests. (Dominique Pelle, closes #2156)
2017-09-26 19:41:46 +02:00
2a02745709 patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Problem:    Encoding of error message wrong in Cygwin terminal.
Solution:   Get locale from environment variables. (Ken Takata)
2017-09-26 19:10:37 +02:00
09ca932f8e patch 8.0.1151: "vim -c startinsert!" doesn't append
Problem:    "vim -c startinsert!" doesn't append.
Solution:   Correct line number on startup. (Christian Brabandt, closes #2117)
2017-09-26 17:40:45 +02:00
6edeaf387c patch 8.0.1150: MS-Windows GUI: dialog font size is incorrect
Problem:    MS-Windows GUI: dialog font size is incorrect.
Solution:   Pass flag to indicate 'encoding' or active codepage. (Yasuhiro
            Matsomoto, closes #2160)
2017-09-26 14:46:04 +02:00
a8fc0d3817 patch 8.0.1149: libvterm colors differ from xterm
Problem:    libvterm colors differ from xterm.
Solution:   Use the xterm colors for libvterm.
2017-09-26 13:59:47 +02:00
22ab547dc2 patch 8.0.1148: gN doesn't work on last match with 'wrapscan' off
Problem:    "gN" doesn't work on last match with 'wrapscan' off. (fcpg)
Solution:   Adjust for searching backward. (Christian Brabandt)
2017-09-26 12:28:45 +02:00
7c456a4511 patch 8.0.1147: fail to build with tiny features
Problem:    Fail to build with tiny features. (Tony Mechelynck)
Solution:   Move #ifdefs.
2017-09-26 11:15:53 +02:00
452030e530 patch 8.0.1146: redraw when highlight is set with same names
Problem:    Redraw when highlight is set with same names. (Ozaki Kiichi)
Solution:   Only free and save a name when it changed. (closes #2120)
2017-09-25 22:57:27 +02:00
0c6a32963d patch 8.0.1145: warning when compiling with Perl
Problem:    Warning when compiling with Perl.
Solution:   Remove unused variable. (Ken Takata0
2017-09-25 22:02:32 +02:00
0b05e491b4 patch 8.0.1144: using wrong #ifdef for computing length
Problem:    Using wrong #ifdef for computing length.
Solution:   use BACKSLASH_IN_FILENAME instead of COLON_IN_FILENAME. (Yasuhiro
            Matsomoto, closes #2153)
2017-09-24 19:39:09 +02:00
e0de17d84e patch 8.0.1143: macros always expand to the same thing
Problem:    Macros always expand to the same thing.
Solution:   Remove W_VSEP_WIDTH() and W_STATUS_HEIGHT().
2017-09-24 16:24:34 +02:00
378daf87d3 patch 8.0.1142: window toolbar menu gets a tear-off item
Problem:    Window toolbar menu gets a tear-off item.
Solution:   Recognize the window toolbar.
2017-09-23 23:58:28 +02:00
96e7a6ee45 patch 8.0.1141: MS-Windows build dependencies are incomplete
Problem:    MS-Windows build dependencies are incomplete.
Solution:   Fix the dependencies. (Ken Takata)
2017-09-23 19:48:29 +02:00
bb3e6416f1 patch 8.0.1140: still old style tests
Problem:    Still old style tests.
Solution:   Convert two tests to new style. (Yegappan Lakshmanan)
2017-09-23 19:24:46 +02:00
a21a6a9ade patch 8.0.1139: using window toolbar changes state
Problem:    Using window toolbar changes state.
Solution:   Always execute window toolbar actions in Normal mode.
2017-09-23 16:33:50 +02:00
eb163d73b1 patch 8.0.1138: click in window toolbar starts Visual mode
Problem:    Click in window toolbar starts Visual mode.
Solution:   Add the MOUSE_WINBAR flag.
2017-09-23 15:08:17 +02:00
e745d75c3e patch 8.0.1137: cannot build with Ruby
Problem:    Cannot build with Ruby.
Solution:   Fix misplaced brace.
2017-09-22 16:56:22 +02:00
0263146b5d patch 8.0.1136: W_WIDTH() is always the same
Problem:    W_WIDTH() is always the same.
Solution:   Expand the macro.
2017-09-22 15:20:32 +02:00
53f8174eae patch 8.0.1135: W_WINCOL() is always the same
Problem:    W_WINCOL() is always the same.
Solution:   Expand the macro.
2017-09-22 14:35:51 +02:00
76301956f0 patch 8.0.1134: superfluous call to syn_get_final_id()
Problem:    Superfluous call to syn_get_final_id().
Solution:   Remove it. (Ken Takata)
2017-09-22 13:53:37 +02:00
f3d769a585 patch 8.0.1133: syntax timeout not used correctly
Problem:    Syntax timeout not used correctly.
Solution:   Do not pass the timeout to syntax_start() but set it explicitly.
            (Yasuhiro Matsumoto, closes #2139)
2017-09-22 13:44:56 +02:00
8b21de33bb Missing part of 8.0.1131. 2017-09-22 11:13:52 +02:00
fc7649f8b8 patch 8.0.1132: #if condition is not portable
Problem:    #if condition is not portable.
Solution:   Add defined(). (Zuloloxi, closes #2136)
2017-09-21 22:46:47 +02:00
b00fdf6eed patch 8.0.1131: not easy to trigger an autocommand for new terminal window
Problem:    It is not easy to trigger an autocommand for new terminal window.
            (Marco Restelli)
Solution:   Trigger BufWinEnter after setting 'buftype'.
2017-09-21 22:16:21 +02:00
9cb03716c9 patch 8.0.1130: the qf_jump() function is still too long
Problem:    The qf_jump() function is still too long.
Solution:   Split of parts to separate functions. (Yegappan Lakshmanan)
2017-09-20 22:43:02 +02:00
2e6ab18729 Add back terminal.c 2017-09-20 10:03:07 +02:00
a5a2be26fe patch 8.0.1129: window toolbar missing a part of the patch
Problem:    Window toolbar missing a part of the patch.
Solution:   Add change in vim.h.
2017-09-19 22:08:04 +02:00
37c64c78fd Update runtime files. 2017-09-19 22:06:03 +02:00
e22bbf6508 patch 8.0.1128: old xterm sends CTRL-X in response to t_RS
Problem:    Old xterm sends CTRL-X in response to t_RS.
Solution:   Only send t_RS for xterm 279 and later.  Remove the workaround to
            ignore CTRL-X.
2017-09-19 20:47:16 +02:00
a8e93d63e3 patch 8.0.1127: Test_peek_and_get_char fails on 32 bit system
Problem:    Test_peek_and_get_char fails on 32 bit system. (Eliminate
            Riesebieter)
Solution:   Avoid an integer overflow. (James McCoy, closes #2116)
2017-09-18 21:50:47 +02:00
71b2964066 patch 8.0.1126: endless resize when terminal showing in two buffers
Problem:    Endless resize when terminal showing in two buffers. (Hirohito
            Higashi)
Solution:   Set a flag to prevent resizing the window.
2017-09-18 21:24:56 +02:00
d326ad6e93 patch 8.0.1125: wrong window height when splitting window with window toolbar
Problem:    Wrong window height when splitting window with window toolbar.
Solution:   Add or subtract the window toolbar height.
2017-09-18 20:31:41 +02:00
f16c71b669 patch 8.0.1124: use of MZSCHEME_VER is unclear
Problem:    Use of MZSCHEME_VER is unclear.
Solution:   Add a comment. (Ken Takata)
2017-09-18 20:01:02 +02:00
1b9645de3c patch 8.0.1123: cannot define a toolbar for a window
Problem:    Cannot define a toolbar for a window.
Solution:   Add a window-local toolbar.
2017-09-17 23:03:31 +02:00
dde403c2d8 patch 8.0.1122: vimtutor.bat doesn't work well with vim.bat
Problem:    vimtutor.bat doesn't work well with vim.bat.
Solution:   Use "call vim". (Ken Takata, closes #2105)
2017-09-17 21:43:00 +02:00
49150a41f8 patch 8.0.1121: can uncheck executables in MS-Windows installer
Problem:    Can uncheck executables in MS-Windows installer.
Solution:   Make the choice read-only. (Ken Takata, closes #2106)
2017-09-17 21:00:03 +02:00
63c4e8a198 patch 8.0.1120: :tm means :tmap instead of :tmenu
Problem:    :tm means :tmap instead of :tmenu. (Taro Muraoka)
Solution:   Move the new entry below the old entry. (closes #2102)
2017-09-17 20:32:20 +02:00
8adb0d03ca patch 8.0.1119: quitting a split terminal window kills the job
Problem:    Quitting a split terminal window kills the job. (Yasuhiro
            Matsumoto)
Solution:   Only stop terminal job if it is the last window.
2017-09-17 19:08:02 +02:00
4033c55eca patch 8.0.1118: FEAT_WINDOWS adds a lot of #ifdefs
Problem:    FEAT_WINDOWS adds a lot of #ifdefs while it is nearly always
            enabled and only adds 7% to the binary size of the tiny build.
Solution:   Graduate FEAT_WINDOWS.
2017-09-16 20:54:51 +02:00
e738a1a033 patch 8.0.1117: Test_terminal_no_cmd hangs on MS-Windows with GUI
Problem:    Test_terminal_no_cmd hangs on MS-Windows with GUI. (Christian
            Brabandt)
Solution:   Run the command with "start" and wait for the text to appear.
            (micbou, closes #2096)
2017-09-16 17:42:41 +02:00
1514e8f427 patch 8.0.1116: terminal test fails on MS-Windows
Problem:    Terminal test fails on MS-Windows.
Solution:   Wait for the text to appear. (micbou, closes #2097)
2017-09-16 17:35:13 +02:00
495b7dd213 patch 8.0.1115: crash when using foldtextresult() recursively
Problem:    Crash when using foldtextresult() recursively.
Solution:   Avoid recursive calls. (Yasuhiro Matsumoto, closes #2098)
2017-09-16 17:19:22 +02:00
4cf56bbc85 patch 8.0.1114: default for 'iminsert' is annoying
Problem:    Default for 'iminsert' is annoying.
Solution:   Make the default always zero. (Yasuhiro Matsumoto, closes #2071)
2017-09-16 15:50:32 +02:00
eef9adddab patch 8.0.1113: can go to Insert mode from Terminal-Normal mode
Problem:    Can go to Insert mode from Terminal-Normal mode.
Solution:   Prevent :startinsert and "VA" to enter Insert mode. (Yasuhiro
            Matsumoto, closes #2092)
2017-09-16 15:38:04 +02:00
fc2b270cfd patch 8.0.1112: can't get size or current index from quickfix list
Problem:    Can't get size or current index from quickfix list.
Solution:   Add "idx" and "size" options. (Yegappan Lakshmanan)
2017-09-15 22:43:07 +02:00
b5e79ef5a9 patch 8.0.1111: syntax error in configure when using Perl
Problem:    Syntax error in configure when using Perl.
Solution:   Add missing quote
2017-09-15 12:40:53 +02:00
e8ff56b28e patch 8.0.1110: FORTIFY_SOURCE from Perl causes problems
Problem:    FORTIFY_SOURCE from Perl causes problems. (Scott Baker)
Solution:   Filter out the flag. (Christian Brabandt, closes #2068)
2017-09-14 23:06:23 +02:00
f5291f301e patch 8.0.1109: timer causes error on exit from Ex mode
Problem:    Timer causes error on exit from Ex mode. (xtal8)
Solution:   save and restore the ex_pressedreturn flag. (Christian Brabandt,
            closes #2079)
2017-09-14 22:55:37 +02:00
69fbc9e1da patch 8.0.1108: cannot specify mappings for the terminal window
Problem:    Cannot specify mappings for the terminal window.
Solution:   Add the :tmap command and associated code.  (Jacob Askeland,
            closes #2073)
2017-09-14 20:37:57 +02:00
38baa3e634 patch 8.0.1107: terminal debugger jumps to non-existing file
Problem:    Terminal debugger jumps to non-existing file.
Solution:   Check that the file exists.  Add an option to make the Vim wide
            wide. Fix removing highlight groups.
2017-09-14 16:10:38 +02:00
69e8aa7511 patch 8.0.1106: terminal colors wrong on an MS-Windows console
Problem:    Terminal colors on an MS-Windows console are not matching the
            normal colors.
Solution:   Use the normal colors for the terminal. (Yasuhiro Matsumoto,
            closes #2087)
2017-09-14 15:55:13 +02:00
1190cf68e2 patch 8.0.1105: match() and matchend() are not tested
Problem:    match() and matchend() are not tested.
Solution:   Add tests. (Ozaki Kiichi, closes #2088)
2017-09-14 14:31:18 +02:00
ef6b8de42f patch 8.0.1104: the qf_jump() function is too long
Problem:    The qf_jump() function is too long.
Solution:   Split of parts to separate functions. (Yegappan Lakshmanan)
2017-09-14 13:57:37 +02:00
478e3a78c3 patch 8.0.1103: converting cterm color fails for grey ramp
Problem:    Converting cterm color fails for grey ramp.
Solution:   Use index instead of number.
2017-09-14 13:37:00 +02:00
c71053c611 patch 8.0.1102: terminal window does not use Normal colors
Problem:    Terminal window does not use Normal colors.
Solution:   For the GUI and when 'termguicolors' is enabled, use the actual
            foreground and background colors for the terminal.  (Yasuhiro
            Matsumoto, closes #2067)
            Use the "Terminal" highlight group if defined.
2017-09-14 00:00:44 +02:00
71eeb74a60 patch 8.0.1101: channel write fails if writing to log fails
Problem:    Channel write fails if writing to log fails.
Solution:   Ignore return value of fwrite(). (Ozaki Kiichi, closes #2081)
2017-09-13 22:18:01 +02:00
072412ed45 patch 8.0.1100: stuck in redraw loop when 'lazyredraw' is set
Problem:    Stuck in redraw loop when 'lazyredraw' is set.
Solution:   Don't loop on update_screen() when not redrawing. (Yasuhiro
            Matsumoto, closes #2082)
2017-09-13 22:11:35 +02:00
518d699699 patch 8.0.1099: warnings for GDK calls
Problem:    Warnings for GDK calls.
Solution:   Use other calls for GTK 3 and fix a few problems. (Kazunobu
            Kuriyama)
2017-09-13 22:09:58 +02:00
b984b80cd8 patch 8.0.1098: build failure if libvterm installed
Problem:    Build failure if libvterm installed on the system. (Oleh
            Hushchenkov)
Solution:   Change the CCCTERM argument order. (Ken Takata, closes #2080)
2017-09-12 22:59:58 +02:00
49a613f84a patch 8.0.1097: background color wrong if job changes background color
Problem:    Background color wrong if job changes background color.
Solution:   Get the background color from vterm.
2017-09-11 23:05:44 +02:00
238d43b328 patch 8.0.1096: terminal window in Normal mode has wrong background
Problem:    Terminal window in Normal mode has wrong background.
Solution:   Store the default background and use it for clearning until the
            end of the line.  Not for below the last line, since there is no
            text there.
2017-09-11 22:00:51 +02:00
a038cb5eab patch 8.0.1095: terminal multibyte escrape test is flaky
Problem:    Terminal multibyte escrape test is flaky.
Solution:   Add another condition to wait for.
2017-09-11 20:45:23 +02:00
c212798333 patch 8.0.1094: using ssh from Terminal.app runs into xterm incompatibility
Problem:    Using ssh from Terminal.app runs into xterm incompatibility.
Solution:   Also detect Terminal.app on non-Mac systems.
2017-09-11 20:34:13 +02:00
b4d5fbabc9 patch 8.0.1093: various small quickfix issues
Problem:    Various small quickfix issues.
Solution:   Remove ":" prefix from title set by a user. Add the qf_id2nr().
            function. Add a couple more tests.  Update documentation.
            (Yegappan Lakshmanan)
2017-09-11 19:31:28 +02:00
45d5f26d11 patch 8.0.1092: terminal debugger can't evaluate expressions
Problem:    Terminal debugger can't evaluate expressions.
Solution:   Add :Evaluate and K.  Various other improvements.
2017-09-10 19:14:31 +02:00
95c83c64be patch 8.0.1091: test for <cexpr> fails without +balloon_eval feature
Problem:    Test for <cexpr> fails without +balloon_eval feature.
Solution:   Remove #ifdefs.
2017-09-10 18:44:29 +02:00
65f084749b patch 8.0.1090: cannot get the text under the cursor like v:beval_text
Problem:    cannot get the text under the cursor like v:beval_text
Solution:   Add <cexpr>.
2017-09-10 18:16:20 +02:00
c168bd4bd3 patch 8.0.1089: cannot get range count in user command
Problem:    Cannot get range count in user command.
Solution:   Add <range> argument.
2017-09-10 17:34:35 +02:00
414168d97f patch 8.0.1088: occasional memory use after free
Problem:    Occasional memory use after free.
Solution:   Use the highlight table directly, don't keep a pointer.
2017-09-10 15:21:55 +02:00
e9f6fd27d0 patch 8.0.1087: Test_terminal_cwd is flaky
Problem:    Test_terminal_cwd is flaky. MS-Windows: term_start() "cwd"
            argument does not work.
Solution:   Wait for the condition to be true instead of using a sleep.
            Pass the directory to winpty.
2017-09-10 14:25:49 +02:00
8696bbaf52 patch 8.0.1086: can't build with GTK 3
Problem:    Can't build with GTK 3.
Solution:   Rename function argument. (Kazunobu Kuriyama)
2017-09-09 23:00:56 +02:00
e09ba7bae5 patch 8.0.1085: terminal debugger can't set breakpoints
Problem:    The terminal debugger can't set breakpoints.
Solution:   Add :Break and :Delete commands.  Also commands for stepping
            through code.
2017-09-09 22:19:47 +02:00
7be9b50fd7 patch 8.0.1084: GTK build has compiler warnings
Problem:    GTK build has compiler warnings. (Christian Brabandt)
Solution:   Get screen size with a different function. (Ken Takata, Yasuhiro
            Matsumoto)
2017-09-09 18:45:26 +02:00
5b5adf5b9c patch 8.0.1083: leaking memory in input part of channel
Problem:    Leaking memory in input part of channel.
Solution:   Clear the input part of channel.  Free the entry. Move failing
            command test to a separate file to avoid bogus leak reports
            clouding tests that should not leak.
2017-09-09 18:16:43 +02:00
9d18961323 patch 8.0.1082: tests fail when run under valgrind
Problem:    Tests fail when run under valgrind.
Solution:   Increase waiting times.
2017-09-09 18:11:00 +02:00
aba680a851 patch 8.0.1081: memory leak for the channel write queue
Problem:    Memory leak for the channel write queue.
Solution:   Free the write queue when clearing a channel.
2017-09-09 16:42:53 +02:00
74121231be patch 8.0.1080: memory leak for eof_chars terminal option and buffer name
Problem:    Memory leak for eof_chars terminal option and buffer name.
Solution:   Free job options. Free the buffer name
2017-09-09 16:34:32 +02:00
09d6c3818d patch 8.0.1079: memory leak when remote_foreground() fails
Problem:    Memory leak when remote_foreground() fails.
Solution:   Free the error message.
2017-09-09 16:25:54 +02:00
b4ea1914b8 patch 8.0.1078: using freed memory with ":hi Normal"
Problem:    Using freed memory with ":hi Normal".
Solution:   Get "item" again after updating the table.
2017-09-09 15:28:14 +02:00
fe386641b0 patch 8.0.1077: no debugger making use of the terminal window
Problem:    No debugger making use of the terminal window.
Solution:   Add the term debugger plugin.  So far only displays the current
            line when stopped.
2017-09-08 21:10:04 +02:00
3c518400d1 patch 8.0.1076: term_start() does not take callbacks
Problem:    term_start() does not take callbacks. When using two terminals
            without a job only one is read from.  A terminal without a window
            returns the wrong pty.
Solution:   Support "callback", "out_cb" and "err_cb".  Fix terminal without a
            window. Fix reading from multiple channels.
2017-09-08 20:47:00 +02:00
1a735d6c9b patch 8.0.1075: MS-Windows: mouse does not work in terminal
Problem:    MS-Windows: mouse does not work in terminal.
Solution:   Force the winpty mouse on. (Yasuhiro Matsumoto, closes #2072)
2017-09-08 16:25:54 +02:00
2dc9d26c14 patch 8.0.1074: ":term NONE" does not work on MS-Windows
Problem:    ":term NONE" does not work on MS-Windows.
Solution:   Make it work.  Split "pty" into "pty_in" and "pty_out". (Yasuhiro
            Matsumoto, closes #2058, closes #2045)
2017-09-08 14:39:30 +02:00
ba2929b6af patch 8.0.1073: may get an endless loop if 'statusline' changes a highlight
Problem:    May get an endless loop if 'statusline' changes a highlight.
Solution:   Do not let evaluating 'statusline' trigger a redraw.
2017-09-08 13:59:21 +02:00
99433291b1 patch 8.0.1072: :highlight command causes a redraw even when nothing changed
Problem:    The :highlight command causes a redraw even when nothing changed.
Solution:   Only set "need_highlight_changed" when an attribute changed.
2017-09-08 12:37:47 +02:00
c6da01a5b8 patch 8.0.1071: putty-color and cygwin-color are not recognized
Problem:    $TERM names starting with "putty" and "cygwin" are likely to have
            a dark background, but are not recognized.
Solution:   Only check the first few characters of $TERM to match "putty" or
            "cygwin". (Christian Brabandt)
2017-09-07 22:37:36 +02:00
75a60f74ce patch 8.0.1070: terminal test is flaky on Mac
Problem:    Terminal test is flaky on Mac.
Solution:   Add Test_terminal_noblock() to list of flaky tests.
2017-09-07 22:24:41 +02:00
37b53270e1 patch 8.0.1069: still get CTRL-X sometimes
Problem:    Still get CTRL-X sometimes for t_RS request.
Solution:   Also skip 0x18 after a key code response.
2017-09-07 20:18:40 +02:00
618d6d277e patch 8.0.1068: vandyke SecureCRT terminal can't handle cursor mode request
Problem:    Vandyke SecureCRT terminal can't handle cursor mode request.
            (Steven Hartland)
Solution:   Fix pointer computation. (closes #2008)
2017-09-07 12:59:25 +02:00
e723c42836 patch 8.0.1067: try/catch in timer does not prevent it from being stopped
Problem:    Using try/catch in timer does not prevent it from being stopped.
Solution:   Reset the exception context and use did_emsg instead of
            called_emsg.
2017-09-06 23:40:10 +02:00
2e49b6b20c patch 8.0.1066: some terminals can't handle requesting cursor mode
Problem:    Some terminals can't handle requesting cursor mode. (Steven
            Hartland)
Solution:   Recognize vandyke SecureCRT. (closes #2008)
2017-09-06 22:08:16 +02:00
c35e4cb4fe patch 8.0.1065: not all macro examples are included
Problem:    Not all macro examples are included in the self-installing
            executable. (lkintact)
Solution:   Add the directories to the NSIS script. (closes #2065)
2017-09-06 21:43:10 +02:00
1b9f9d315f patch 8.0.1064: Coverity warns for leaking resource
Problem:    Coverity warns for leaking resource.
Solution:   Free pty_master_fd on failure.
2017-09-05 23:32:38 +02:00
28550b74bb patch 8.0.1063: Coverity warns for NULL check and array use
Problem:    Coverity warns for NULL check and using variable pointer as an
            array.
Solution:   Remove the NULL check.  Make "argvar" an array.
2017-09-05 23:31:01 +02:00
c3f81394ef patch 8.0.1062: Coverity warnings in libvterm
Problem:    Coverity warnings in libvterm.
Solution:   Add (void) to avoid warning for not checking return value.
            Add "break" before "case".
2017-09-05 23:29:34 +02:00
6756c7037f patch 8.0.1061: Coverity: no check for NULL command
Problem:    Coverity: no check for NULL command.
Solution:   Check for NULL list item.
2017-09-05 23:01:12 +02:00
3971905bac patch 8.0.1060: when imstyle is one, mapping <Left> breaks preediting
Problem:    When imstyle is one, mapping <Left> breaks preediting.
Solution:   Pass though preediting key-events. (Yasuhiro Matsumoto, closes
            #2064, closes #2063)
2017-09-05 22:20:46 +02:00
3d8d2c7ca5 patch 8.0.1059: older Gnome terminal returns smaller version number
Problem:    older Gnome terminal returns smaller version number. (antarestrue)
Solution:   Lower version limit from 2800 to 2500. (#2032)
2017-09-05 21:57:27 +02:00
8b53b79ea5 patch 8.0.1058: terminal redirection test is flaky
Problem:    Terminal redirection test is flaky.
Solution:   Wait for job to finish.
2017-09-05 20:29:25 +02:00
1bfdc07a49 patch 8.0.1057: terminal scrape test waits too long
Problem:    Terminal scrape test waits too long, it checks for one instead of
            three.
Solution:   Check there are three characters. (micbou)
2017-09-05 20:19:42 +02:00
6e32f615eb patch 8.0.1056: cannot build with +diff but without +multi_byte
Problem:    Cannot build with the diff feature but without the mutli-byte
            feature.
Solution:   Remove #ifdefs. (John Marriott)
2017-09-04 23:21:07 +02:00
11aa62f8f9 patch 8.0.1055: bufline test hangs on MS-Windows
Problem:    Bufline test hangs on MS-Windows.
Solution:   Avoid message for writing file.  Source shared.vim when running
            test individually.
2017-09-04 22:56:01 +02:00
178333783f patch 8.0.1054: terminal test fails on MS-Windows
Problem:    Terminal test fails on MS-Windows.
Solution:   Disable the redirection test for now.  Improve scrape test to make
            it less flaky.
2017-09-04 22:23:19 +02:00
9d954207e2 patch 8.0.1053: setline() does not work on startup
Problem:    setline() does not work on startup. (Manuel Ortega)
Solution:   Do not check for ml_mfp to be set for the current buffer.
            (Christian Brabandt)
2017-09-04 20:34:19 +02:00
e88fc7a574 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Problem:    term_start() does not allow in_io, out_io and err_io options.
Solution:   Add JO_OUT_IO to get_job_options().
2017-09-03 20:59:40 +02:00
9d654a8d8c patch 8.0.1051: cannot run terminal with spaces in argument
Problem:    Cannot run terminal with spaces in argument.
Solution:   Accept backslash to escape space and other characters. (closes
            #1999)
2017-09-03 19:52:17 +02:00
595a40226e patch 8.0.1050: terminal window feature not included by default
Problem:    Terminal window feature not included by default.
Solution:   Include the terminal feature for the "huge" build.
2017-09-03 19:15:57 +02:00
d8d85bfb7d patch 8.0.1049: shell on Mac can't handle long text
Problem:    Shell on Mac can't handle long text, making terminal test fail.
Solution:   Only write 1000 characters instead of 5000.
2017-09-03 18:08:00 +02:00
5e80de3f3e patch 8.0.1048: no test for what 8.0.1020 fixes
Problem:    No test for what 8.0.1020 fixes.
Solution:   Add test_feedinput().  Add a test. (Ozaki Kiichi, closes #2046)
2017-09-03 15:48:12 +02:00
00ccf54630 patch 8.0.1047: buffer overflow in Ruby
Problem:    Buffer overflow in Ruby.
Solution:   Allocate one more byte. (Dominique Pelle)
2017-09-03 15:17:48 +02:00
ae96b8d058 patch 8.0.1046: code duplication in diff mode
Problem:    Code duplication in diff mode.
Solution:   Use diff_equal_char() also in diff_cmp(). (Rick Howe)
2017-09-03 15:04:21 +02:00
6a8691d483 patch 8.0.1045: running tests may pollute shell history
Problem:    Running tests may pollute shell history. (Manuel Ortega)
Solution:   Make $HISTFILE empty.
2017-09-03 14:31:02 +02:00
2254a8ad0c patch 8.0.1044: warning for uninitialized variable
Problem:    Warning for uninitialized variable. (John Marriott)
Solution:   Initialize ind_pre.
2017-09-03 14:03:43 +02:00
4ec86ddd77 patch 8.0.1043: warning for uninitialized variable
Problem:    Warning for uninitialized variable. (John Marriott)
Solution:   Move code to check indent inside "if".
2017-09-02 23:28:54 +02:00
9f45ccd1bf patch 8.0.1042: without the syntax feature highlighting doesn't work
Problem:    Without the syntax feature highlighting doesn't work.
Solution:   Always use unsigned short to store attributes.
2017-09-02 20:40:35 +02:00
e2e69e4813 patch 8.0.1041: bogus characters when indenting during visual-block append
Problem:    Bogus characters appear when indenting kicks in while doing a
            visual-block append.
Solution:   Recompute when indenting is done. (Christian Brabandt)
2017-09-02 20:30:35 +02:00
3653822546 patch 8.0.1040: cannot use another error format in getqflist()
Problem:    Cannot use another error format in getqflist().
Solution:   Add the "efm" argument to getqflist(). (Yegappan Lakshmanan)
2017-09-02 19:51:44 +02:00
b31cf2bb0b patch 8.0.1039: cannot change a line in not current buffer
Problem:    Cannot change a line in a buffer other than the current one.
Solution:   Add setbufline(). (Yasuhiro Matsumoto, Ozaki Kiichi, closes #1953)
2017-09-02 19:45:19 +02:00
cf4b00c856 patch 8.0.1038: strike-through text not supported
Problem:    Strike-through text not supported.
Solution:   Add support for the "strikethrough" attribute. (Christian
            Brabandt, Ken Takata)
2017-09-02 18:33:56 +02:00
da22b8cc8b patch 8.0.1037: "icase" of 'diffopt' is not used for highlighting
Problem:    "icase" of 'diffopt' is not used for highlighting differences.
Solution:   Also use "icase". (Rick Howe)
2017-09-02 18:01:50 +02:00
dada6d2a8e patch 8.0.1036: ++eof argument for terminal only available on MS-Windows
Problem:    ++eof argument for terminal only available on MS-Windows.
Solution:   Also support ++eof on Unix.  Add a test.
2017-09-02 17:18:35 +02:00
ef68e4fa52 patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Problem:    Sending buffer lines to terminal doesn't work on MS-Windows.
Solution:   Use CR instead of NL after every line.  Make the EOF text work
            properly.  Add the ++eof argument to :terminal.
2017-09-02 16:28:36 +02:00
3346cc4ffb patch 8.0.1034: sending buffer lines to terminal doesn't work on MS-Windows
Problem:    Sending buffer lines to terminal doesn't work on MS-Windows.
Solution:   Send CTRL-D to mark the end of the text. (Yasuhiro Matsumoto,
            closes #2043) Add the "eof_chars" option.
2017-09-02 14:54:21 +02:00
995e4afcfe patch 8.0.1033: detecting background color does not work in screen
Problem:    Detecting background color does not work in screen, even when it
            is working like an xterm.
Solution:   Make "screen.xterm" use termcap entries like an xterm. (Lubomir
            Rintel, closes #2048)  When termresponse version is huge also
            recognize as not being an xterm.
2017-09-01 20:24:03 +02:00
9ac9dfa9e2 patch 8.0.1032: "make tags" doesn't work well on MS-Windows
Problem:    "make tags" doesn't work well on MS-Windows.
Solution:   Add or fix tags target. (Ken Takata)
2017-09-01 18:41:26 +02:00
2c809b7c7d patch 8.0.1031: "text" argument for getqflist() is confusing
Problem:    "text" argument for getqflist() is confusing. (Lcd47)
Solution:   Use "lines" instead. (Yegappan Lakshmanan)
2017-09-01 18:34:02 +02:00
9e8dcf9d6f patch 8.0.1030: MS-Windows: wrong size computation in is_cygpty()
Problem:    MS-Windows: wrong size computation in is_cygpty().
Solution:   Compute the size properly. (Ken Takata)
2017-08-31 21:35:45 +02:00
da73253a0b patch 8.0.1029: return value of getqflist() is inconsistent
Problem:    Return value of getqflist() is inconsistent.  (Lcd47)
Solution:   Always return an "items" entry.
2017-08-31 20:58:02 +02:00
3d593c2dc9 patch 8.0.1028: MS-Windows: viminfo uses $VIM/_viminfo if $HOME not set
Problem:    MS-Windows: viminfo uses $VIM/_viminfo if $HOME not set. (Yongwei
            Wu)
Solution:   Use vim_getenv() but check it's returning the default "C:/".
2017-08-31 20:42:18 +02:00
2db0ec4b2e patch 8.0.1027: more terminals can't handle requesting cursor mode
Problem:    More terminals can't handle requesting cursor mode.
Solution:   Recognize Putty. (Hirohito Higashi)  Also include Xfce in the
            version check. (Dominique Pelle)  Recognize Konsole.
2017-08-31 20:17:59 +02:00
5c6dbcb03f patch 8.0.1026: GTK on-the-spot input has problems
Problem:    GTK on-the-spot input has problems. (Gerd Wachsmuth)
Solution:   Support over-the-spot. (Yukihiro Nakadaira, Ketn Takata, closes
            #1215)
2017-08-30 22:00:20 +02:00
4e83961985 patch 8.0.1025: stray copy command in test
Problem:    Stray copy command in test.
Solution:   Remove the copy command.
2017-08-30 21:58:03 +02:00
4bebc9a056 patch 8.0.1024: folds lost when session file has a buffer in two windows
Problem:    Manual folds are lost when a session file has the same buffer in
            two windows. (Jeansen)
Solution:   Use ":edit" only once. (Christian Brabandt, closes #1958)
2017-08-30 21:07:38 +02:00
a539f4f1ae patch 8.0.1023: it is not easy to identify a quickfix list
Problem:    It is not easy to identify a quickfix list.
Solution:   Add the "id" field. (Yegappan Lakshmanan)
2017-08-30 20:33:55 +02:00
1a333bc44a patch 8.0.1022: test 80 is old style
Problem:    Test 80 is old style.
Solution:   Turn it into a new style test. (Yegappan Lakshmanan)
2017-08-30 20:21:58 +02:00
dc5471d482 patch 8.0.1021: older Gnome terminal still echoes t_RC
Problem:    Older Gnome terminal still echoes t_RC. (Fracois Ingelrest)
Solution:   Check for version > 3000 instead of 4000.
2017-08-30 18:59:03 +02:00
0f0f230012 patch 8.0.1020: when a timer calls getchar(1) input is overwritten
Problem:    When a timer calls getchar(1) input is overwritten.
Solution:   Increment tb_change_cnt in inchar(). (closes #1940)
2017-08-30 18:52:56 +02:00
d41babef89 patch 8.0.1019: pasting in virtual edit happens in the wrong place
Problem:    Pasting in virtual edit happens in the wrong place.
Solution:   Do not adjust coladd when after the end of the line (closes #2015)
2017-08-30 17:01:35 +02:00
4ad3b2b588 patch 8.0.1018: warnings from 64-bit compiler
Problem:    Warnings from 64-bit compiler. (Christian Brabandt)
Solution:   Add type casts.
2017-08-30 15:57:33 +02:00
dde6034111 patch 8.0.1017: test for MS-Windows $HOME always passes
Problem:    Test for MS-Windows $HOME always passes.
Solution:   Rename the test function.  Make the test pass.
2017-08-30 14:55:42 +02:00
f3af54eeb1 patch 8.0.1016: gnome terminal echoes t_RC
Problem:    Gnome terminal echoes t_RC.
Solution:   Detect Gnome terminal by the version string.  Add v: variables for
            all the term responses.
2017-08-30 14:53:06 +02:00
97a80e440a patch 8.0.1015: missing update to terminal test
Problem:    Missing update to terminal test.
Solution:   Add the changes to the test.
2017-08-30 13:31:49 +02:00
b47a2597e6 patch 8.0.1014: old compiler doesn't know uint32_t
Problem:    Old compiler doesn't know uint32_t. Warning for using NULL instead
            of NUL.
Solution:   Use UINT32_T.  Use NUL instead of NULL.
2017-08-30 13:22:28 +02:00
e561a7e2fa patch 8.0.1013: terminal window behaves different from a buffer with changes
Problem:    A terminal window with a running job behaves different from a
            window containing a changed buffer.
Solution:   Do not set 'bufhidden' to "hide".  Fix that a buffer where a
            terminal used to run is listed as "[Scratch]".
2017-08-29 22:44:59 +02:00
48340b62e8 patch 8.0.1012: MS-Windows: problem with $HOME when is was set internally
Problem:    MS-Windows: Problem with $HOME when is was set internally.
Solution:   Only use the $HOME default internally. (Yasuhiro Matsumoto, closes
            #2013)
2017-08-29 22:08:53 +02:00
97f65fafdb patch 8.0.1011: terminal test fails with Athena and Motif
Problem:    Terminal test fails with Athena and Motif.
Solution:   Ignore the error for the input context. (Kazunobu Kuriyama)
2017-08-29 20:42:07 +02:00
3c37a8e660 patch 8.0.1010: build failure without termresponse feature
Problem:    Build failure without termresponse feature.
Solution:   Add #ifdef.
2017-08-28 23:00:55 +02:00
4db2554954 patch 8.0.1009: Xterm cursor blinking status may be inverted
Problem:    Xterm cursor blinking status may be inverted.
Solution:   Use another request to get the blink status and compare with the
            cursor style report
2017-08-28 22:43:05 +02:00
1dccf6351d patch 8.0.1008: slow updating of terminal window in Motif
Problem:    Slow updating of terminal window in Motif.
Solution:   Add a timeout to the wait-for-character loop.
2017-08-27 17:38:27 +02:00
cbe6944956 patch 8.0.1007: no test for filetype detection for scripts
Problem:    No test for filetype detection for scripts.
Solution:   Add a first test file script filetype detection.
2017-08-27 16:54:26 +02:00
c572da5f67 Update runtime files 2017-08-27 16:52:01 +02:00
7adf06f4e2 patch 8.0.1006: quickfix list changes when parsing text with 'erroformat'
Problem:    Cannot parse text with 'erroformat' without changing a quickfix
            list.
Solution:   Add the "text" argument to getqflist(). (Yegappan Lakshmanan)
2017-08-27 15:23:41 +02:00
4ab7968aa9 patch 8.0.1005: terminal without job updates slowly in GUI
Problem:    Terminal without job updates slowly in GUI.
Solution:   Poll for input when a channel has the keep_open flag.
2017-08-27 14:50:47 +02:00
8d9f0ef5c6 patch 8.0.1004: matchstrpos() without a match returns too many items
Problem:    Matchstrpos() without a match returns too many items.
Solution:   Also remove the second item when the position is beyond the end of
            the string. (Hirohito Higashi)  Use an enum for the type.
2017-08-27 13:51:01 +02:00
e85928a324 patch 8.0.1003: 64 bit compiler warning
Problem:    64 bit compiler warning
Solution:   Add type cast. (Mike Williams)
2017-08-27 13:10:10 +02:00
02e177d3e8 patch 8.0.1002: unnecessarily updating screen after timer callback
Problem:    Unnecessarily updating screen after timer callback.
Solution:   Check if calling the timer sets must_redraw.
2017-08-26 23:43:28 +02:00
0903d56f5c patch 8.0.1001: setting 'encoding' makes 'printheader' invalid
Problem:    Setting 'encoding' makes 'printheader' invalid.
Solution:   Do not translate the default value of 'printheader'. (Yasuhiro
            Matsumoto, closes #2026)
2017-08-26 22:30:15 +02:00
13ebb03e75 patch 8.0.1000: cannot open a terminal without running a job in it
Problem:    Cannot open a terminal without running a job in it.
Solution:   Make ":terminal NONE" open a terminal with a pty.
2017-08-26 22:02:51 +02:00
dde81312b0 patch 8.0.0999: indenting raw C++ strings is wrong
Problem:    Indenting raw C++ strings is wrong.
Solution:   Add special handling of raw strings. (Christian Brabandt)
2017-08-26 17:49:01 +02:00
a4f99f5a8b patch 8.0.0998: strange error when using K while only spaces are selected
Problem:    Strange error when using K while only spaces are selected.
            (Christian J. Robinson)
Solution:   Check for blank argument.
2017-08-26 16:25:32 +02:00
e922460394 patch 8.0.0997
Problem:    Libvterm and Terminal.app not regognized from termresponse.
Solution:   Adjust string compare.
2017-08-26 15:29:47 +02:00
833e0e3c8c patch 8.0.0996: Mac: t_RS is echoed on the screne in Terminal.app
Problem:    Mac: t_RS is echoed on the screne in Terminal.app.  Even though
            $TERM is set to "xterm-256colors" it cannot handle this xterm
            escape sequence.
Solution:   Recognize Terminal.app from the termresponse and skip sending t_RS
            if it looks like Terminal.app.
2017-08-26 15:16:03 +02:00
753289f9bf patch 8.0.0995: terminal tests fail on Mac
Problem:    Terminal tests fail on Mac.
Solution:   Add workaround: sleep a moment in between sending keys.
2017-08-25 23:22:05 +02:00
be0b72977f patch 8.0.0994: MS-Windows: cursor in terminal blinks undesirably
Problem:    MS-Windows: cursor in terminal blinks even though the blinking
            cursor was disabled on the system.
Solution:   Use GetCaretBlinkTime(). (Ken Takata)
2017-08-24 21:48:26 +02:00
f6d9f96b2d patch 8.0.0993: sometimes an xterm sends an extra CTRL-X
Problem:    Sometimes an xterm sends an extra CTRL-X after the response for
            the background color.  Related to t_RS.
Solution:   Check for the CTRL-X after the terminating 0x7.
2017-08-24 20:21:16 +02:00
33d66bd9fa patch 8.0.0992: terminal title is wrong when 'encoding' is DBCS
Problem:    Terminal title is wrong when 'encoding' is DBCS.
Solution:   Convert the title from DBCS to utf-8. (Yasuhiro Matsumoto, closes
            #2009)
2017-08-23 23:51:58 +02:00
6c4d12c527 patch 8.0.0991: using wrong character conversion for DBCS
Problem:    Using wrong character conversion for DBCS.
Solution:   Use utf_char2bytes instead of mb_char2bytes. (Yasuhiro Matsumoto,
            closes #2012)
2017-08-23 23:36:25 +02:00
285f243e50 patch 8.0.0990: with DBCS 'encoding' wrong pasting register into terminal
Problem:    When 'encoding' is a double-byte encoding, pasting a register into
            a terminal ends up with the wrong characters.
Solution:   Convert from 'encoding' to utf-8. (Yasuhiro Matsumoto, closes
            #2007)
2017-08-23 23:10:21 +02:00
77f7474d08 patch 8.0.0989: ActiveTcl dll name has changed in 8.6.6
Problem:    ActiveTcl dll name has changed in 8.6.6.
Solution:   Adjust the makefile. (Ken Takata)
2017-08-23 22:40:41 +02:00
829aa64cf5 patch 8.0.0988: warning from Covscan about using NULL pointer
Problem:    Warning from Covscan about using NULL pointer.
Solution:   Add extra check for NULL. (zdohnal)
2017-08-23 22:32:35 +02:00
d2c45a1964 patch 8.0.0987: terminal: second byte of double-byte char wrong
Problem:    terminal: second byte of double-byte char wrong
Solution:   Set the second byte to NUL only for utf-8 and non-multibyte.
2017-08-22 22:29:00 +02:00
ec0e07a324 patch 8.0.0986: terminal feature always requires multi-byte feature
Problem:    Terminal feature always requires multi-byte feature.
Solution:   Remove #ifdef FEAT_MBYTE, disable terminal without multi-byte.
2017-08-22 22:21:37 +02:00
6d0826dfbb patch 8.0.0985: libvterm has its own idea of character width
Problem:    Libvterm has its own idea of character width.
Solution:   Use the Vim functions for character width and composing to avoid a
            mismatch. (idea by Yasuhiro Matsumoto)
2017-08-22 22:12:17 +02:00
5830232c02 patch 8.0.0984: terminal blinking cursor not correct in the GUI
Problem:    Terminal blinking cursor not correct in the GUI.
Solution:   Set blinkoff correctly.  Also make the cursor blink on MS-Windows
            by default. (Ken Takata)
2017-08-22 20:33:53 +02:00
3f9a1ff141 patch 8.0.0983: unnecessary check for NULL pointer
Problem:    Unnecessary check for NULL pointer.
Solution:   Remove the NULL check in dialog_changed(), it already happens in
            dialog_msg(). (Ken Takata)
2017-08-21 22:06:02 +02:00
740c433c59 patch 8.0.0982: cannot use a terminal when 'encoding' is non-utf8 multi-byte
Problem:    When 'encoding' is set to a multi-byte encoding other than utf-8
            the characters from ther terminal are messed up.
Solution:   Convert displayed text from utf-8 to 'encoding' for MS-Windows.
            (Yasuhiro Matsumoto, close #2000)
2017-08-21 22:01:27 +02:00
0cbba82359 patch 8.0.0981: cursor in terminal window blinks by default
Problem:    Cursor in terminal window blinks by default, while in a real xterm
            it does not blink, unless the -bc argument is used.
Solution:   Do not use a blinking cursor by default.
2017-08-21 21:39:28 +02:00
b109bb4e12 patch 8.0.0980: Coverity warning for failing to open /dev/null
Problem:    Coverity warning for failing to open /dev/null.
Solution:   When /dev/null can't be opened exit the child.
2017-08-21 21:07:29 +02:00
eef0531621 patch 8.0.0979: terminal noblock test fails on MS-Windows
Problem:    Terminal noblock test fails on MS-Windows. (Christian Brabandt)
Solution:   Ignore empty line below "done".
2017-08-20 20:21:23 +02:00
37819ed540 patch 8.0.0978: writing to terminal job is not tested
Problem:    Writing to terminal job is not tested.
Solution:   Add a test.
2017-08-20 19:33:47 +02:00
5983d50247 patch 8.0.0977: cannot send lines to a terminal job on MS-Windows
Problem:    Cannot send lines to a terminal job on MS-Windows.
Solution:   Set jv_in_buf.  Command doesn't get EOF yet though.
2017-08-20 19:22:56 +02:00
b241208a13 patch 8.0.0976: cannot send lines to a terminal job
Problem:    Cannot send lines to a terminal job.
Solution:   Make [range]terminal send selected lines to the job.
            Use ++rows and ++cols for the terminal size.
2017-08-20 18:09:14 +02:00
edbc0d46cf patch 8.0.0975: using freed memory when setting 'backspace'
Problem:    Using freed memory when setting 'backspace'.
Solution:   When changing oldval also change origval.
2017-08-20 16:11:51 +02:00
8efa026a25 patch 8.0.0974: resetting a string option does not trigger OptionSet
Problem:    Resetting a string option does not trigger OptionSet. (Rick Howe)
Solution:   Set the origval.
2017-08-20 15:47:20 +02:00
ce1c32780a patch 8.0.0973: initial info about blinking cursor is wrong
Problem:    initial info about blinking cursor is wrong
Solution:   Invert the blink flag.  Add t_VS to stop a blinking cursor.
2017-08-20 15:05:15 +02:00
37b9b81997 patch 8.0.0972: compiler warnings for unused variables
Problem:    Compiler warnings for unused variables. (Tony Mechelynck)
Solution:   Add #ifdefs.
2017-08-19 23:23:43 +02:00
0aed9a2e2e patch 8.0.0971: 'winptydll' missing from :options
Problem:    'winptydll' missing from :options.
Solution:   Add the entry.
2017-08-19 23:18:02 +02:00
d6a7b3e6bb patch 8.0.0970: passing invalid highlight id
Problem:    if there is no StatusLine highlighting and there is StatusLineNC
            or StatusLineTermNC highlighting then an invalid highlight id is
            passed to combine_stl_hlt(). (Coverity)
Solution:   Check id_S to be -1 instead of zero.
2017-08-19 21:35:35 +02:00
dc926dd0dd patch 8.0.0969: Coverity warning for unused return value
Problem:    Coverity warning for unused return value.
Solution:   Add (void) to avoid the warning.
2017-08-19 21:26:44 +02:00
77ac9b5c62 patch 8.0.0968: crash when switching terminal modes
Problem:    Crash when switching terminal modes. (Nikolai Pavlov)
Solution:   Check that there are scrollback lines.
2017-08-19 21:23:05 +02:00
93c92eff26 patch 8.0.0967: using a terminal may cause the cursor to blink
Problem:    Using a terminal may cause the cursor to blink.
Solution:   Do not set t_vs, since we cannot restore the old blink state.
2017-08-19 21:11:57 +02:00
fc8bec0be4 patch 8.0.0966: build failure without terminal feature
Problem:    Build failure without terminal feature.
Solution:   Move #endif.
2017-08-19 19:57:34 +02:00
3eee06e7d4 patch 8.0.0965: not restoring cursor shape after it was set in a terminal
Problem:    The cursor shape is not reset after it was changed in a terminal.
Solution:   Request the original cursor shape and restore it.  Add t_RS.
            Do not add t_SH for now, it does not work properly.
2017-08-19 19:40:50 +02:00
683b796725 patch 8.0.0964: channel write buffer does not work with poll()
Problem:    Channel write buffer does not work with poll().
Solution:   Use the same mechanism as with select().
2017-08-19 15:51:59 +02:00
d21f8b54b2 patch 8.0.0963: terminal test fails on MacOS
Problem:    Terminal test fails on MacOS. (chdiza)
Solution:   Wait for the shell to echo the characters. (closes #1991)
2017-08-19 15:40:01 +02:00
9aa1569128 patch 8.0.0962: crash with virtualedit and joining lines
Problem:    Crash with virtualedit and joining lines. (Joshua T Corbin, Neovim
            #6726)
Solution:   When using a mark check that coladd is valid.
2017-08-19 15:05:32 +02:00
98ebd2bbec patch 8.0.0961: the script to build the installer does not include winpty
Problem:    The script to build the installer does not include winpty.
Solution:   Add winpty32.dll and winpty-agent.exe like diff.exe
2017-08-19 13:29:19 +02:00
8e539c51c3 patch 8.0.0960: job in terminal does not get CTRL-C
Problem:    Job in terminal does not get CTRL-C, we send a SIGINT instead.
Solution:   Don't call may_send_sigint() on CTRL-C.  Make CTRL-W CTRL-C end
            the job.
2017-08-18 22:57:06 +02:00
f66a2cda2c patch 8.0.0959: build failure on MS-Windows
Problem:    Build failure on MS-Windows.
Solution:   Use ioctlsocket() instead of fcntl().
2017-08-18 21:53:22 +02:00
ea5d6fadbb patch 8.0.0958: terminal test fails on Windows when winpty dll is missing
Problem:    The terminal test fails on MS-Windows when compiled with the
            terminal feature but the winpty DLL is missing.
Solution:   Check if the terminal feature works. (Ken Takata)
2017-08-18 21:07:11 +02:00
97bd5e6527 patch 8.0.0957: a terminal job can deadlock when sending many keys
Problem:    When term_sendkeys() sends many keys it may get stuck in writing
            to the job.
Solution:   Make the write non-blocking, buffer keys to be sent.
2017-08-18 20:50:30 +02:00
cfce71710b patch 8.0.0956: scrolling in a terminal window has flicker
Problem:    Scrolling in a terminal hwindow as flicker when the Normal
            background differs from the terminal window background.
Solution:   Set the attribute to clear with.
2017-08-17 20:31:48 +02:00
82de3c2c03 patch 8.0.0955: Test_existent_file() fails on some file systems
Problem:    Test_existent_file() fails on some file systems.
Solution:   Run the test again with a sleep when the test fails without a
            sleep. (James McCoy, closes #1984)
2017-08-17 17:35:36 +02:00
bc906e445c patch 8.0.0954: /proc/self/exe might be a relative path
Problem:    /proc/self/exe might be a relative path.
Solution:   Make the path a full path. (James McCoy, closes #1983)
2017-08-17 17:21:05 +02:00
f5be7cd016 patch 8.0.0953: get "no write since last change" error in terminal window
Problem:    Get "no write since last change" error in terminal window.
Solution:   Use another message when closing a terminal window. Make ":quit!"
            also end the job.
2017-08-17 16:55:13 +02:00
a83e3962ac patch 8.0.0952: has('terminal') does not check existence of dll file
Problem:    MS-Windows: has('terminal') does not check existence of dll file.
Solution:   Check if the winpty dll file can be loaded. (Ken Takata)
2017-08-17 14:39:07 +02:00
84ed4ad084 patch 8.0.0951: another wrong #ifdef
Problem:    Another wrong #ifdef.
Solution:   Change TERMINAL to FEAT_TERMINAL. (closes #1981)
2017-08-17 11:33:42 +02:00
ade59630c7 patch 8.0.0950: MS-Windows: wrong #ifdef, compiler warnings
Problem:    MS-Windows: wrong #ifdef, compiler warnings for signed/unsigned.
Solution:   Change variable type. Change TERMINAL to FEAT_TERMINAL.
2017-08-17 11:22:46 +02:00
9e13aa7729 patch 8.0.0949: winpty.dll name is fixed
Problem:    winpty.dll name is fixed.
Solution:   Add the 'winptydll' option. Make the default name depend on
            whether it is a 32-bit or 64-bit build. (idea by Yasuhiro
            Matsumoto, closes #1978)
2017-08-16 23:14:08 +02:00
989a70c590 patch 8.0.0948: crash if timer closes window while dragging status line
Problem:    Crash if timer closes window while dragging status line.
Solution:   Check if the window still exists. (Yasuhiro Matsumoto, closes
            #1979)
2017-08-16 22:46:01 +02:00
6fe15bbc87 patch 8.0.0947: entering terminal using C-O C-W C-W goes to Insert mode
Problem:    When in Insert mode and using CTRL-O CTRL-W CTRL-W to move to a
            termainal window, get in a weird Insert mode.
Solution:   Don't go to Insert mode in a terminal window. (closes #1977)
2017-08-16 21:09:18 +02:00
a9f8ee05f4 patch 8.0.0946: using PATH_MAX does not work well on some systems
Problem:    Using PATH_MAX does not work well on some systems.
Solution:   use MAXPATHL instead. (James McCoy, closes #1973)
2017-08-14 23:40:45 +02:00
60104f183c patch 8.0.0945: 64-bit compiler warnings
Problem:    64-bit compiler warnings.
Solution:   Use "size_t" instead of "int". (Mike Williams)
2017-08-14 23:25:04 +02:00
d21b16f3c0 patch 8.0.0944: test_profile is a little bit flaky
Problem:    Test_profile is a little bit flaky.
Solution:   Accept a match when self and total time are the same. (James
            McCoy, closes #1972)
2017-08-14 23:13:30 +02:00
3678393baa patch 8.0.0943: MS-Windows: Test_terminal_scrape_multibyte may fail
Problem:    Test_terminal_scrape_multibyte fails if the codepage is not utf-8.
Solution:   Start "cmd" with the utf-8 codepage. (micbou, closes #1975)
2017-08-14 23:07:30 +02:00
4fa1019f80 patch 8.0.0942: using freed memory with ":terminal"
Problem:    Using freed memory with ":terminal" if an autocommand changes
            'shell' when splitting the window. (Marius Gedminas)
Solution:   Make a copy of 'shell'. (closes #1974)
2017-08-14 22:56:27 +02:00
05fbfdcda4 patch 8.0.0941: existing color schemes don't like StatusLineTerm
Problem:    Existing color schemes don't work well with StatusLineTerm.
Solution:   Don't use "reverse", use fg and bg colors.  Also add
            StatusLineTermNC.
2017-08-14 22:35:08 +02:00
c08706135d patch 8.0.0940: Test_terminal_scrape_multibyte is flaky
Problem:    Test_terminal_scrape_multibyte is flaky. (James McCoy)
Solution:   Use WaitFor() instead of term_wait().
2017-08-14 22:01:16 +02:00
51c23687a9 patch 8.0.0939: Test_terminal_env is flaky
Problem:    Test_terminal_env is flaky. (James McCoy)
Solution:   Use WaitFor() instead of term_wait().
2017-08-14 21:45:00 +02:00
6bb18a878c patch 8.0.0938: scrolling in terminal window is inefficient
Problem:    Scrolling in terminal window is inefficient.
Solution:   Use win_del_lines().
2017-08-13 22:14:17 +02:00
bce4f62d30 patch 8.0.0937: user highlight groups not adjusted for terminal
Problem:    User highlight groups are not adjusted for StatusLineTerm.
Solution:   Combine attributes like for StatusLineNC.
2017-08-13 21:37:43 +02:00
2bb7b6b0e4 patch 8.0.0936: mode() returns wrong value for a terminal window
Problem:    Mode() returns wrong value for a terminal window.
Solution:   Return 't' when typed keys go to a job.
2017-08-13 20:58:33 +02:00
304b64c9e6 patch 8.0.0935: cannot recognize a terminal buffer in :ls output
Problem:    Cannot recognize a terminal buffer in :ls output.
Solution:   Use R for a running job and F for a finished job.
2017-08-13 20:43:48 +02:00
6b93b0e838 patch 8.0.0934: change to struts.h missing in patch
Problem:    Change to struts.h missing in patch.
Solution:   Include adding ttyinfo_T.
2017-08-13 20:28:53 +02:00
9f0139a2a8 patch 8.0.0933: terminal test tries to start GUI when it's not possible
Problem:    Terminal test tries to start GUI when it's not possible.
Solution:   Check if the GUI can run. (James McCoy, closes #1971)
2017-08-13 20:26:20 +02:00
4f44b88684 patch 8.0.0932: terminal may not use right characters for BS and Enter
Problem:    Terminal may not use right characters for BS and Enter.
Solution:   Get the characters from the tty.
2017-08-13 20:06:18 +02:00
69905d108b patch 8.0.0931: getwininfo() does not indicate a terminal window
Problem:    getwininfo() does not indicate a terminal window.
Solution:   Add "terminal" to the dictionary.
2017-08-13 18:14:47 +02:00
e62780543f patch 8.0.0930: terminal buffers are stored in the viminfo file
Problem:    Terminal buffers are stored in the viminfo file while they can't
            be useful.
Solution:   Skip terminal buffers for file marks and buffer list
2017-08-13 18:11:17 +02:00
2438ae3d67 patch 8.0.0929: :term without argument does not work
Problem:    :term without argument does not work.
Solution:   Use shell for empty command. (Yasuhiro Matsumoto, closes #1970)
2017-08-13 17:38:11 +02:00
dcaa61384c patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Problem:    MS-Windows: passing arglist to job has escaping problems.
Solution:   Improve escaping. (Yasuhiro Matsumoto, closes #1954)
2017-08-13 17:13:09 +02:00
274a52fd58 patch 8.0.0927: if a terminal job sends a blank title "running" is not shown
Problem:    If a terminal job sends a blank title "running" is not shown.
Solution:   When the title is blank make it empty.
2017-08-13 16:09:31 +02:00
e0f314aa8d patch 8.0.0926: when job in terminal window ends topline is wrong
Problem:    When job in terminal window ends topline may be wrong.
Solution:   When the job ends adjust topline so that the active part of the
            terminal is displayed.
2017-08-13 16:01:31 +02:00
62426e168e patch 8.0.0925: MS-Windows GUI: channel I/O not handled right away
Problem:    MS-Windows GUI: channel I/O not handled right away.
Solution:   Don't call process_message() unless a message is available.
            (Yasuhiro Matsumoto, closes #1969)
2017-08-13 15:37:58 +02:00
5cc1f2c477 patch 8.0.0924: terminal window not updated after using term_sendkeys()
Problem:    Terminal window not updated after using term_sendkeys().
Solution:   Call redraw_after_callback().
2017-08-13 15:16:53 +02:00
679653e59c patch 8.0.0923: crash in GUI when terminal job exits
Problem:    Crash in GUI when terminal job exits. (Kazunobu Kuriyama)
Solution:   reset in_terminal_loop when a terminal is freed.
2017-08-13 14:13:19 +02:00
55b6926450 patch 8.0.0922: quickfix list always added after current one
Problem:    Quickfix list always added after current one.
Solution:   Make it possible to add a quickfix list after the last one.
            (Yegappan Lakshmanan)
2017-08-13 13:42:01 +02:00
3d9bdfebf1 patch 8.0.0921: terminal window cursor shape not supported in the GUI
Problem:    Terminal window cursor shape not supported in the GUI.
Solution:   Use the terminal window cursor shape in the GUI.
2017-08-12 22:55:58 +02:00
893029ab20 patch 8.0.0920: cursor wrong after switching altscreen in terminal
Problem:    The cursor shape is wrong after switch back from an alternate
            screen in a terminal window. (arius Gedminas)
Solution:   Change bitfield to unsigned.  Set flag that cursor shape was set.
2017-08-12 21:15:34 +02:00
c977092053 patch 8.0.0919: cursor color isn't set on startup
Problem:    Cursor color isn't set on startup.
Solution:   Initialize showing_mode to invalid value.
2017-08-12 20:11:53 +02:00
3cd43ccccb patch 8.0.0918: cannot get terminal window cursor shape or attributes
Problem:    Cannot get terminal window cursor shape or attributes.
Solution:   Support cursor shape, attributes and color.
2017-08-12 19:51:41 +02:00
589b1109c5 patch 8.0.0917: MS-Windows:CTRL-C handling in terminal window is wrong
Problem:    MS-Windows:CTRL-C handling in terminal window is wrong
Solution:   Pass CTRL-C as a key. Turn CTRL-BREAK into a key stroke. (Yasuhiro
            Matsumoto, closes #1965)
2017-08-12 16:39:05 +02:00
37c4583594 patch 8.0.0916: cannot specify properties of window for terminal open
Problem:    Cannot specify properties of window for when opening a window for
            a finished terminal job.
Solution:   Add "term_opencmd".
2017-08-12 16:01:04 +02:00
7eedd4398a patch 8.0.0915: wrong initialisation of global
Problem:    Wrong initialisation of global.
Solution:   Use INIT().
2017-08-12 15:15:33 +02:00
0cd2a94a40 patch 8.0.0914: highlight attributes are always combined
Problem:    Highlight attributes are always combined.
Solution:   Add the 'nocombine' value to replace attributes instead of
            combining them. (scauligi, closes #1963)
2017-08-12 15:12:30 +02:00
9698ad7201 patch 8.0.0913: MS-Windows: CTRL-C kills shell in terminal window
Problem:    MS-Windows: CTRL-C kills shell in terminal window instead of the
            command running in the shell.
Solution:   Make CTRL-C only send a CTRL_C_EVENT and have CTRL-BREAK kill the
            job. (partly by Yasuhiro Matsumoto, closes #1962)
2017-08-12 14:52:15 +02:00
8cad930a25 patch 8.0.0912: cannot run a job in a hidden terminal
Problem:    Cannot run a job in a hidden terminal.
Solution:   Add option "hidden" and ++hidden.
2017-08-12 14:32:32 +02:00
b81bc77ae7 patch 8.0.0911: terminal test takes too long
Problem:    Terminal test takes too long.
Solution:   Instead of "sleep 1" use a Python program to briefly sleep.
2017-08-11 22:45:01 +02:00
da43b61ddd patch 8.0.0910: cannot create a terminal in the current window
Problem:    Cannot create a terminal in the current window.
Solution:   Add option "curwin" and ++curwin.
2017-08-11 22:27:50 +02:00
8ed5400739 patch 8.0.0909: channel test fails
Problem:    Channel test fails.
Solution:   Allow for "cwd" and "env" arguments.
2017-08-11 22:22:36 +02:00
08d384ff3a patch 8.0.0908: cannot set terminal size with options
Problem:    Cannot set terminal size with options.
Solution:   Add "term_rows", "term_cols" and "vertical".
2017-08-11 21:51:23 +02:00
89e06c807a patch 8.0.0907: with cp932 font names might be misinterpreted
Problem:    With cp932 font names might be misinterpreted.
Solution:   Do not see "_" as a space when it is the second byte of a double
            byte character. (Ken Takata)
2017-08-11 20:55:55 +02:00
d9bc8a801a patch 8.0.0906: don't recognize Couchbase files
Problem:    Don't recognize Couchbase files.
Solution:   Add filetype detection. (Eugene Ciurana, closes #1951)
2017-08-11 20:50:04 +02:00
444fda2084 patch 8.0.0905: MS-Windows: broken multi-byte characters in the console
Problem:    MS-Windows: broken multi-byte characters in the console.
Solution:   Restore all regions of the console buffer. (Ken Takata)
2017-08-11 20:37:00 +02:00
ae33833850 patch 8.0.0904: cannot set a location list from text
Problem:    Cannot set a location list from text.
Solution:   Add the "text" argument to setqflist(). (Yegappan Lakshmanan)
2017-08-11 20:25:26 +02:00
cf8d840ce9 patch 8.0.0903: early return from test function
Problem:    Early return from test function.
Solution:   Remove the return.
2017-08-11 20:20:27 +02:00
1ccd8fff8a Update runtime files. 2017-08-11 19:50:37 +02:00
05aafed54b patch 8.0.0902: cannot specify directory or environment for a job
Problem:    Cannot specify directory or environment for a job.
Solution:   Add the "cwd" and "env" arguments to job options. (Yasuhiro
            Matsumoto, closes #1160)
2017-08-11 19:12:11 +02:00
76ca1b4041 patch 8.0.0901: asan suppress file missing from distribution
Problem:    Asan suppress file missing from distribution.
Solution:   Add the file.
2017-08-11 17:56:21 +02:00
ab6c8587ba patch 8.0.0900: :tab options doesn't open a new tab page
Problem:    :tab options doesn't open a new tab page. (Aviany)
Solution:   Support the :tab modifier. (closes #1960)
2017-08-11 17:15:09 +02:00
2d33e90f81 patch 8.0.0899: function name mch_stop_job() is confusing
Problem:    Function name mch_stop_job() is confusing.
Solution:   Rename to mch_signal_job().
2017-08-11 16:31:54 +02:00
449 changed files with 33531 additions and 19580 deletions

1
.gitignore vendored
View File

@ -38,6 +38,7 @@ src/pathdef.c
src/Obj*/pathdef.c
gvimext.dll
gvimext.lib
gvim.lib
runtime/doc/uganda.nsis.txt
# Borland C++

View File

@ -67,6 +67,7 @@ addons:
apt:
packages:
- autoconf
- clang
- lcov
- libperl-dev
- python-dev
@ -87,7 +88,7 @@ before_install:
# building cffi only works with gcc, not with clang
- if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
# Lua is not installed on Travis OSX
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then export HOMEBREW_NO_AUTO_UPDATE=1; brew update; brew install lua; export LUA_PREFIX=/usr/local; fi
# Use llvm-cov instead of gcov when compiler is clang.
- if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$CC" = "clang" ]; then ln -sf $(which llvm-cov) /home/travis/bin/gcov; fi
@ -102,9 +103,8 @@ script:
- (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi)
# Show Vim version and also if_xx versions.
- if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; ${SRCDIR}/vim --not-a-term -u NONE -S ${SRCDIR}/testdir/if_ver-1.vim -c quit > /dev/null; ${SRCDIR}/vim --not-a-term -u NONE -S ${SRCDIR}/testdir/if_ver-2.vim -c quit > /dev/null; cat if_ver.txt; fi
- if [ -n "$ASAN_OPTIONS" ]; then export PATH=/usr/lib/llvm-$(clang -v 2>&1 | sed -n 's/.*version \([1-9]\.[0-9][0-9]*\).*/\1/p')/bin:$PATH; fi
- make $SHADOWOPT $TEST
- if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do cat "$log"; err=1; done; fi
- if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do asan_symbolize < "$log"; err=1; done; fi
- if [ -n "$err" ]; then exit 1; fi
after_success:

View File

@ -12,6 +12,8 @@ SRC_ALL = \
src/arabic.c \
src/arabic.h \
src/ascii.h \
src/beval.c \
src/beval.h \
src/blowfish.c \
src/buffer.c \
src/channel.c \
@ -41,7 +43,6 @@ SRC_ALL = \
src/gui.c \
src/gui.h \
src/gui_beval.c \
src/gui_beval.h \
src/hardcopy.c \
src/hashtab.c \
src/json.c \
@ -105,6 +106,7 @@ SRC_ALL = \
src/testdir/Make_all.mak \
src/testdir/*.in \
src/testdir/*.py \
src/testdir/lsan-suppress.txt \
src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \
src/testdir/shared.vim \
@ -134,7 +136,9 @@ SRC_ALL = \
src/testdir/bench*.in \
src/testdir/bench*.vim \
src/testdir/samples/*.txt \
src/testdir/samples/test000 \
src/testdir/if_ver*.vim \
src/testdir/xterm_ramp.vim \
src/proto.h \
src/proto/arabic.pro \
src/proto/blowfish.pro \
@ -404,6 +408,7 @@ SRC_DOS = \
src/msvcsetup.bat \
src/msvc2008.bat \
src/msvc2010.bat \
src/msvc2015.bat \
src/dimm.idl \
src/dlldata.c \
src/dosinst.c \
@ -448,6 +453,7 @@ SRC_DOS = \
src/xxd/Make_mvc.mak \
nsis/gvim.nsi \
nsis/gvim_version.nsh \
nsis/vimrc.ini \
nsis/README.txt \
uninstal.txt \
src/VisVim/Commands.cpp \
@ -637,6 +643,7 @@ RT_ALL = \
runtime/pack/dist/opt/matchit/doc/tags \
runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim \
runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim \
# runtime files for all distributions without CR-NL translation
RT_ALL_BIN = \
@ -654,6 +661,7 @@ RT_SCRIPTS = \
runtime/makemenu.vim \
runtime/autoload/*.vim \
runtime/autoload/README.txt \
runtime/autoload/dist/*.vim \
runtime/autoload/xml/*.vim \
runtime/colors/*.vim \
runtime/colors/README.txt \

View File

@ -120,28 +120,28 @@ MINOR = 0
#
# MS-Windows:
# - Run make on Unix to update the ".mo" files.
# - Get libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
# - Get 32 bit libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
# https://mlocati.github.io/gettext-iconv-windows/ .
# Use the "shared-32.zip file and extract the archive to get the files.
# Put them in the top directory, "make dosrt" uses them.
# Put them in the gettext32 directory, "make dosrt" uses them.
# - Get 64 bit libintl-8.dll and libiconv-2.dll. E.g. from
# https://mlocati.github.io/gettext-iconv-windows/ .
# Use the "shared-64.zip file and extract the archive to get the files.
# Put them in the gettext64 directory, "make dosrt" uses them.
# - > make dossrc
# > make dosrt
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
# This creates the directory vim/vim80 and puts all files in there.
# Win32 console version build:
# - Set environment for Visual C++ 2008, e.g.:
# > src/msvc2008.bat
# Or:
# > C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat
# Or, when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the
# paths when necessary).
# For Windows 98/ME the 2003 version is required, but then the executable
# won't work on Windows 7 and 64 bit systems.
# - > cd src
# - See src/INSTALLpc.txt for installing the compiler and SDK.
# - Set environment for Visual C++ 2015:
# > cd src
# > msvc2015.bat
# - Build the console binary:
# > nmake -f Make_mvc.mak
# - Run the tests:
# - Run the tests and check the ouput:
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak test
# - check the output.
# - Rename (using ../tools/rename.bat):
# vim.exe to vimw32.exe
# tee/tee.exe to teew32.exe
@ -152,19 +152,18 @@ MINOR = 0
# Win32 GUI version build:
# - > cd src
# > nmake -f Make_mvc.mak GUI=yes
# - Run the tests:
# - Run the tests and check the output:
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak testgvim
# - check the output.
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move gvim.pdb to here.
# - Copy "GvimExt/gvimext.dll" to here.
# - Delete vimrun.exe, install.exe and uninstal.exe.
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
# - Install the interfaces you want, see src/INSTALLpc.txt
# Adjust bigvim.bat to match the version of each interface you want.
# - Build:
# > cd src
# Adjust bigvim.bat to match the version of each interface you want.
# > bigvim.bat
# - Run the tests:
# > nmake -f Make_mvc.mak testclean
@ -188,10 +187,11 @@ MINOR = 0
# gvimext64.dll in src/GvimExt
# VisVim.dll in src/VisVim
# 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.
# gvimext64.dll can be obtained from:
# https://github.com/vim/vim-win32-installer/releases
# It is part of gvim_8.0.*_x64.zip as vim/vim80/GvimExt/gvimext64.dll.
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
# version).
# version). Also put winpty32.dll and winpty-agent.exe there.
# - go to ../nsis and do:
# > makensis gvim.nsi (takes a few minutes).
# ignore warning for libwinpthread-1.dll
@ -467,9 +467,13 @@ dosrt_files: dist prepare no_title.vim
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
fi \
done
cp libintl-8.dll dist/vim/$(VIMRTDIR)/
cp libiconv-2.dll dist/vim/$(VIMRTDIR)/
cp libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/
mkdir dist/vim/$(VIMRTDIR)/gettext32
cp gettext32/libintl-8.dll dist/vim/$(VIMRTDIR)/gettext32/
cp gettext32/libiconv-2.dll dist/vim/$(VIMRTDIR)/gettext32/
cp gettext32/libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/gettext32/
mkdir dist/vim/$(VIMRTDIR)/gettext64
cp gettext64/libintl-8.dll dist/vim/$(VIMRTDIR)/gettext64/
cp gettext64/libiconv-2.dll dist/vim/$(VIMRTDIR)/gettext64/
# Used before uploading. Don't delete the AAPDIR/sign files!
@ -496,7 +500,10 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
mkdir dist/vim/$(VIMRTDIR)/GvimExt32
cp gvimext.dll dist/vim/$(VIMRTDIR)/GvimExt32/gvimext.dll
mkdir dist/vim/$(VIMRTDIR)/GvimExt64
cp gvimext64.dll dist/vim/$(VIMRTDIR)/GvimExt64/gvimext.dll
cd dist && zip -9 -rD -z gvim$(VERSION).zip vim <$(COMMENT_GVIM)
cp gvim.pdb dist/gvim$(VERSION).pdb

View File

@ -1,9 +1,11 @@
`README.md` for version 8.0 of Vim: Vi IMproved.
[![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
[![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master)
[![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master)
[![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim)
[![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim)
[![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim)
## What is Vim? ##

View File

@ -1,5 +1,5 @@
This builds a one-click install for Vim for Win32 using the Nullsoft
Installation System (NSIS), available at http://www.nullsoft.com/free/nsis/
Installation System (NSIS), available at http://nsis.sourceforge.net/
To build the installable .exe:
@ -17,8 +17,14 @@ To build the installable .exe:
uninstal.exe,
xxd/xxd.exe,
Then execute tools/rename.bat to rename the executables. (mv command is
required.)
3. Go to the GvimExt directory and build gvimext.dll (or get it from a binary
archive).
archive). Both 64- and 32-bit versions are needed and should be placed
as follows:
64-bit: src/GvimExt/gvimext64.dll
32-bit: src/GvimExt/gvimext.dll
4. Go to the VisVim directory and build VisVim.dll (or get it from a binary
archive).
@ -27,13 +33,35 @@ To build the installable .exe:
get them from a binary archive).
6. Get a "diff.exe" program and put it in the "../.." directory (above the
"vim61" directory, it's the same for all Vim versions).
"vim80" directory, it's the same for all Vim versions).
You can find one in previous Vim versions or in this archive:
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
Also put winpty32.dll and winpty-agent.exe there.
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
to do this on Unix. Make sure the file is in DOS file format!
8. Get gettext and iconv DLLs from the following site:
https://github.com/mlocati/gettext-iconv-windows/releases
Both 64- and 32-bit versions are needed.
Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract
DLLs and place them as follows:
<GETTEXT directory>
|
+ gettext32/
| libintl-8.dll
| libiconv-2.dll
| libgcc_s_sjlj-1.dll
|
` gettext64/
libintl-8.dll
libiconv-2.dll
The default <GETTEXT directory> is "..", however, you can change it by
passing /DGETTEXT=... option to the makensis command.
Install NSIS if you didn't do that already.
Also install UPX, if you want a compressed file.

View File

@ -20,8 +20,15 @@
!define VIMTOOLS ..\..
!endif
# Location of gettext.
# It must contain two directories: gettext32 and gettext64.
# See README.txt for detail.
!ifndef GETTEXT
!define GETTEXT ${VIMRT}
!endif
# Comment the next line if you don't have UPX.
# Get it at http://upx.sourceforge.net
# Get it at https://upx.github.io/
!define HAVE_UPX
# comment the next line if you do not want to add Native Language Support
@ -76,6 +83,7 @@ SilentInstall normal
# These are the pages we use
Page license
Page components
Page custom SetCustom ValidateCustom ": _vimrc setting"
Page directory "" "" CheckInstallDir
Page instfiles
UninstPage uninstConfirm
@ -128,6 +136,10 @@ Function .onInit
StrCpy $1 "-register-OLE"
StrCpy $2 "gvim evim gview gvimdiff vimtutor"
# Extract InstallOptions files
# $PLUGINSDIR will automatically be removed when the installer closes
InitPluginsDir
File /oname=$PLUGINSDIR\vimrc.ini "vimrc.ini"
FunctionEnd
Function .onUserAbort
@ -179,7 +191,7 @@ FunctionEnd
##########################################################
Section "Vim executables and runtime files"
SectionIn 1 2 3
SectionIn 1 2 3 RO
# we need also this here if the user changes the instdir
StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}"
@ -191,13 +203,16 @@ Section "Vim executables and runtime files"
File ${VIMSRC}\vimrun.exe
File /oname=tee.exe ${VIMSRC}\teew32.exe
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
File ${VIMTOOLS}\diff.exe
File ${VIMRT}\vimtutor.bat
File ${VIMRT}\README.txt
File ..\uninstal.txt
File ${VIMRT}\*.vim
File ${VIMRT}\rgb.txt
File ${VIMTOOLS}\diff.exe
File ${VIMTOOLS}\winpty32.dll
File ${VIMTOOLS}\winpty-agent.exe
SetOutPath $0\colors
File ${VIMRT}\colors\*.*
@ -216,6 +231,14 @@ Section "Vim executables and runtime files"
SetOutPath $0\macros
File ${VIMRT}\macros\*.*
SetOutPath $0\macros\hanoi
File ${VIMRT}\macros\hanoi\*.*
SetOutPath $0\macros\life
File ${VIMRT}\macros\life\*.*
SetOutPath $0\macros\maze
File ${VIMRT}\macros\maze\*.*
SetOutPath $0\macros\urm
File ${VIMRT}\macros\urm\*.*
SetOutPath $0\pack\dist\opt\dvorak\dvorak
File ${VIMRT}\pack\dist\opt\dvorak\dvorak\*.*
@ -245,6 +268,9 @@ Section "Vim executables and runtime files"
SetOutPath $0\autoload
File ${VIMRT}\autoload\*.*
SetOutPath $0\autoload\dist
File ${VIMRT}\autoload\dist\*.*
SetOutPath $0\autoload\xml
File ${VIMRT}\autoload\xml\*.*
@ -317,24 +343,67 @@ Section "Add an Edit-with-Vim context menu entry"
SetOutPath $0
ClearErrors
SetOverwrite try
${If} ${RunningX64}
# Install 64-bit gvimext.dll into the GvimExt64 directory.
SetOutPath $0\GvimExt64
ClearErrors
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
${Else}
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
!ifdef HAVE_NLS
File ${GETTEXT}\gettext64\libintl-8.dll
File ${GETTEXT}\gettext64\libiconv-2.dll
!endif
IfErrors 0 GvimExt64Done
# Can't copy gvimext.dll, create it under another name and rename it
# on next reboot.
GetTempFileName $3 $0\GvimExt64
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
Rename /REBOOTOK $3 $0\GvimExt64\gvimext.dll
!ifdef HAVE_NLS
GetTempFileName $3 $0\GvimExt64
File /oname=$3 ${GETTEXT}\gettext64\libintl-8.dll
Rename /REBOOTOK $3 $0\GvimExt64\libintl-8.dll
GetTempFileName $3 $0\GvimExt64
File /oname=$3 ${GETTEXT}\gettext64\libiconv-2.dll
Rename /REBOOTOK $3 $0\GvimExt64\libiconv-2.dll
!endif
${EndIf}
IfErrors 0 GvimExtDone
GvimExt64Done:
# Install 32-bit gvimext.dll into the GvimExt32 directory.
SetOutPath $0\GvimExt32
ClearErrors
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
!ifdef HAVE_NLS
File ${GETTEXT}\gettext32\libintl-8.dll
File ${GETTEXT}\gettext32\libiconv-2.dll
File ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
!endif
IfErrors 0 GvimExt32Done
# Can't copy gvimext.dll, create it under another name and rename it on
# next reboot.
GetTempFileName $3 $0
${If} ${RunningX64}
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
${Else}
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
${EndIf}
Rename /REBOOTOK $3 $0\gvimext.dll
GetTempFileName $3 $0\GvimExt32
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
Rename /REBOOTOK $3 $0\GvimExt32\gvimext.dll
!ifdef HAVE_NLS
GetTempFileName $3 $0\GvimExt32
File /oname=$3 ${GETTEXT}\gettext32\libintl-8.dll
Rename /REBOOTOK $3 $0\GvimExt32\libintl-8.dll
GetTempFileName $3 $0\GvimExt32
File /oname=$3 ${GETTEXT}\gettext32\libiconv-2.dll
Rename /REBOOTOK $3 $0\GvimExt32\libiconv-2.dll
GetTempFileName $3 $0\GvimExt32
File /oname=$3 ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
Rename /REBOOTOK $3 $0\GvimExt32\libgcc_s_sjlj-1.dll
!endif
GvimExtDone:
GvimExt32Done:
SetOverwrite lastused
# We don't have a separate entry for the "Open With..." menu, assume
@ -343,7 +412,7 @@ Section "Add an Edit-with-Vim context menu entry"
SectionEnd
##########################################################
Section "Create a _vimrc if it doesn't exist"
Section "Create a _vimrc if it doesn't exist" sec_vimrc_id
SectionIn 1 3
StrCpy $1 "$1 -create-vimrc"
@ -383,10 +452,10 @@ SectionEnd
File ${VIMRT}\keymap\README.txt
File ${VIMRT}\keymap\*.vim
SetOutPath $0
File ${VIMRT}\libintl-8.dll
File ${VIMRT}\libiconv-2.dll
File /nonfatal ${VIMRT}\libwinpthread-1.dll
File /nonfatal ${VIMRT}\libgcc_s_sjlj-1.dll
File ${GETTEXT}\gettext32\libintl-8.dll
File ${GETTEXT}\gettext32\libiconv-2.dll
#File /nonfatal ${VIMRT}\libwinpthread-1.dll
File /nonfatal ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
SectionEnd
!endif
@ -401,6 +470,45 @@ Section -post
BringToFront
SectionEnd
##########################################################
Function SetCustom
# Display the InstallOptions dialog
# Check if a _vimrc should be created
SectionGetFlags ${sec_vimrc_id} $0
IntOp $0 $0 & 1
StrCmp $0 "1" +2 0
Abort
Push $3
InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
Pop $3
Pop $3
FunctionEnd
Function ValidateCustom
ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 2" "State"
StrCmp $3 "1" 0 +3
StrCpy $1 "$1 -vimrc-remap no"
Goto behave
StrCpy $1 "$1 -vimrc-remap win"
behave:
ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 5" "State"
StrCmp $3 "1" 0 +3
StrCpy $1 "$1 -vimrc-behave unix"
Goto done
ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 6" "State"
StrCmp $3 "1" 0 +3
StrCpy $1 "$1 -vimrc-behave mswin"
Goto done
StrCpy $1 "$1 -vimrc-behave default"
done:
FunctionEnd
##########################################################
Section Uninstall
# Apparently $INSTDIR is set to the directory where the uninstaller is
@ -426,6 +534,11 @@ Section Uninstall
$\nIt contains the Vim executables and runtime files." IDNO NoRemoveExes
Delete /REBOOTOK $0\*.dll
Delete /REBOOTOK $0\GvimExt32\*.dll
${If} ${RunningX64}
Delete /REBOOTOK $0\GvimExt64\*.dll
${EndIf}
ClearErrors
# Remove everything but *.dll files. Avoids that
# a lot remains when gvimext.dll cannot be deleted.

68
nsis/vimrc.ini Normal file
View File

@ -0,0 +1,68 @@
[Settings]
NumFields=7
[Field 1]
Type=GroupBox
Left=0
Right=-1
Top=0
Bottom=53
Text=" Key remapping "
[Field 2]
Type=radiobutton
Text=Do not remap keys for Windows behavior (Default)
Left=10
Right=-10
Top=17
Bottom=25
State=1
Flags=GROUP
[Field 3]
Type=radiobutton
Text=Remap a few keys for Windows behavior (<C-V>, <C-C>, <C-A>, <C-S>, <C-F>, etc)
Left=10
Right=-10
Top=30
Bottom=47
State=0
Flags=NOTABSTOP
[Field 4]
Type=GroupBox
Left=0
Right=-1
Top=55
Bottom=-5
Text=" Mouse behavior "
[Field 5]
Type=radiobutton
Text=Right button extends selection, left button starts visual mode (Unix)
Left=10
Right=-5
Top=72
Bottom=80
State=0
Flags=GROUP
[Field 6]
Type=radiobutton
Text=Right button has a popup menu, left button starts select mode (Windows)
Left=10
Right=-5
Top=85
Bottom=93
State=0
Flags=NOTABSTOP
[Field 7]
Type=radiobutton
Text=Right button has a popup menu, left button starts visual mode (Default)
Left=10
Right=-5
Top=98
Bottom=106
State=1
Flags=NOTABSTOP

View File

@ -591,7 +591,7 @@ function ada#Map_Menu (Text, Keys, Command)
\" :" . a:Command
execute
\ "inoremap <buffer>" .
\ " <Learder>a" . a:Keys .
\ " <Leader>a" . a:Keys .
\" <C-O>:" . a:Command
endif
return

741
runtime/autoload/dist/ft.vim vendored Normal file
View File

@ -0,0 +1,741 @@
" Vim functions for file type detection
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Nov 11
" These functions are moved here from runtime/filetype.vim to make startup
" faster.
" Line continuation is used here, remove 'C' from 'cpoptions'
let s:cpo_save = &cpo
set cpo&vim
func dist#ft#Check_inp()
if getline(1) =~ '^\*'
setf abaqus
else
let n = 1
if line("$") > 500
let nmax = 500
else
let nmax = line("$")
endif
while n <= nmax
if getline(n) =~? "^header surface data"
setf trasys
break
endif
let n = n + 1
endwhile
endif
endfunc
" This function checks for the kind of assembly that is wanted by the user, or
" can be detected from the first five lines of the file.
func dist#ft#FTasm()
" make sure b:asmsyntax exists
if !exists("b:asmsyntax")
let b:asmsyntax = ""
endif
if b:asmsyntax == ""
call dist#ft#FTasmsyntax()
endif
" if b:asmsyntax still isn't set, default to asmsyntax or GNU
if b:asmsyntax == ""
if exists("g:asmsyntax")
let b:asmsyntax = g:asmsyntax
else
let b:asmsyntax = "asm"
endif
endif
exe "setf " . fnameescape(b:asmsyntax)
endfunc
func dist#ft#FTasmsyntax()
" see if file contains any asmsyntax=foo overrides. If so, change
" b:asmsyntax appropriately
let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
\" ".getline(5)." "
let match = matchstr(head, '\sasmsyntax=\zs[a-zA-Z0-9]\+\ze\s')
if match != ''
let b:asmsyntax = match
elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
let b:asmsyntax = "vmasm"
endif
endfunc
" Check if one of the first five lines contains "VB_Name". In that case it is
" probably a Visual Basic file. Otherwise it's assumed to be "alt" filetype.
func dist#ft#FTVB(alt)
if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
setf vb
else
exe "setf " . a:alt
endif
endfunc
func dist#ft#FTbtm()
if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm
setf dosbatch
else
setf btm
endif
endfunc
func dist#ft#BindzoneCheck(default)
if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
setf bindzone
elseif a:default != ''
exe 'setf ' . a:default
endif
endfunc
func dist#ft#FTlpc()
if exists("g:lpc_syntax_for_c")
let lnum = 1
while lnum <= 12
if getline(lnum) =~# '^\(//\|inherit\|private\|protected\|nosave\|string\|object\|mapping\|mixed\)'
setf lpc
return
endif
let lnum = lnum + 1
endwhile
endif
setf c
endfunc
func dist#ft#FTheader()
if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)') > -1
if exists("g:c_syntax_for_h")
setf objc
else
setf objcpp
endif
elseif exists("g:c_syntax_for_h")
setf c
elseif exists("g:ch_syntax_for_h")
setf ch
else
setf cpp
endif
endfunc
" This function checks if one of the first ten lines start with a '@'. In
" that case it is probably a change file.
" If the first line starts with # or ! it's probably a ch file.
" If a line has "main", "include", "//" ir "/*" it's probably ch.
" Otherwise CHILL is assumed.
func dist#ft#FTchange()
let lnum = 1
while lnum <= 10
if getline(lnum)[0] == '@'
setf change
return
endif
if lnum == 1 && (getline(1)[0] == '#' || getline(1)[0] == '!')
setf ch
return
endif
if getline(lnum) =~ "MODULE"
setf chill
return
endif
if getline(lnum) =~ 'main\s*(\|#\s*include\|//'
setf ch
return
endif
let lnum = lnum + 1
endwhile
setf chill
endfunc
func dist#ft#FTent()
" This function checks for valid cl syntax in the first five lines.
" Look for either an opening comment, '#', or a block start, '{".
" If not found, assume SGML.
let lnum = 1
while lnum < 6
let line = getline(lnum)
if line =~ '^\s*[#{]'
setf cl
return
elseif line !~ '^\s*$'
" Not a blank line, not a comment, and not a block start,
" so doesn't look like valid cl code.
break
endif
let lnum = lnum + 1
endw
setf dtd
endfunc
func dist#ft#EuphoriaCheck()
if exists('g:filetype_euphoria')
exe 'setf ' . g:filetype_euphoria
else
setf euphoria3
endif
endfunc
func dist#ft#DtraceCheck()
let lines = getline(1, min([line("$"), 100]))
if match(lines, '^module\>\|^import\>') > -1
" D files often start with a module and/or import statement.
setf d
elseif match(lines, '^#!\S\+dtrace\|#pragma\s\+D\s\+option\|:\S\{-}:\S\{-}:') > -1
setf dtrace
else
setf d
endif
endfunc
func dist#ft#FTe()
if exists('g:filetype_euphoria')
exe 'setf ' . g:filetype_euphoria
else
let n = 1
while n < 100 && n < line("$")
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
setf specman
return
endif
let n = n + 1
endwhile
setf eiffel
endif
endfunc
" Distinguish between HTML, XHTML and Django
func dist#ft#FThtml()
let n = 1
while n < 10 && n < line("$")
if getline(n) =~ '\<DTD\s\+XHTML\s'
setf xhtml
return
endif
if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+'
setf htmldjango
return
endif
let n = n + 1
endwhile
setf html
endfunc
" Distinguish between standard IDL and MS-IDL
func dist#ft#FTidl()
let n = 1
while n < 50 && n < line("$")
if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"'
setf msidl
return
endif
let n = n + 1
endwhile
setf idl
endfunc
" Distinguish between "default" and Cproto prototype file. */
func dist#ft#ProtoCheck(default)
" Cproto files have a comment in the first line and a function prototype in
" the second line, it always ends in ";". Indent files may also have
" comments, thus we can't match comments to see the difference.
" IDL files can have a single ';' in the second line, require at least one
" chacter before the ';'.
if getline(2) =~ '.;$'
setf cpp
else
exe 'setf ' . a:default
endif
endfunc
func dist#ft#FTm()
let n = 1
let saw_comment = 0 " Whether we've seen a multiline comment leader.
while n < 100
let line = getline(n)
if line =~ '^\s*/\*'
" /* ... */ is a comment in Objective C and Murphi, so we can't conclude
" it's either of them yet, but track this as a hint in case we don't see
" anything more definitive.
let saw_comment = 1
endif
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|//\)'
setf objc
return
endif
if line =~ '^\s*%'
setf matlab
return
endif
if line =~ '^\s*(\*'
setf mma
return
endif
if line =~ '^\c\s*\(\(type\|var\)\>\|--\)'
setf murphi
return
endif
let n = n + 1
endwhile
if saw_comment
" We didn't see anything definitive, but this looks like either Objective C
" or Murphi based on the comment leader. Assume the former as it is more
" common.
setf objc
elseif exists("g:filetype_m")
" Use user specified default filetype for .m
exe "setf " . g:filetype_m
else
" Default is matlab
setf matlab
endif
endfunc
func dist#ft#FTmms()
let n = 1
while n < 10
let line = getline(n)
if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
setf mmix
return
endif
if line =~ '^\s*#'
setf make
return
endif
let n = n + 1
endwhile
setf mmix
endfunc
" This function checks if one of the first five lines start with a dot. In
" that case it is probably an nroff file: 'filetype' is set and 1 is returned.
func dist#ft#FTnroff()
if getline(1)[0] . getline(2)[0] . getline(3)[0] . getline(4)[0] . getline(5)[0] =~ '\.'
setf nroff
return 1
endif
return 0
endfunc
func dist#ft#FTmm()
let n = 1
while n < 10
let line = getline(n)
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
setf objcpp
return
endif
let n = n + 1
endwhile
setf nroff
endfunc
func dist#ft#FTpl()
if exists("g:filetype_pl")
exe "setf " . g:filetype_pl
else
" recognize Prolog by specific text in the first non-empty line
" require a blank after the '%' because Perl uses "%list" and "%translate"
let l = getline(nextnonblank(1))
if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
setf prolog
else
setf perl
endif
endif
endfunc
func dist#ft#FTinc()
if exists("g:filetype_inc")
exe "setf " . g:filetype_inc
else
let lines = getline(1).getline(2).getline(3)
if lines =~? "perlscript"
setf aspperl
elseif lines =~ "<%"
setf aspvbs
elseif lines =~ "<?"
setf php
else
call dist#ft#FTasmsyntax()
if exists("b:asmsyntax")
exe "setf " . fnameescape(b:asmsyntax)
else
setf pov
endif
endif
endif
endfunc
func dist#ft#FTprogress_cweb()
if exists("g:filetype_w")
exe "setf " . g:filetype_w
return
endif
if getline(1) =~ '&ANALYZE' || getline(3) =~ '&GLOBAL-DEFINE'
setf progress
else
setf cweb
endif
endfunc
func dist#ft#FTprogress_asm()
if exists("g:filetype_i")
exe "setf " . g:filetype_i
return
endif
" This function checks for an assembly comment the first ten lines.
" If not found, assume Progress.
let lnum = 1
while lnum <= 10 && lnum < line('$')
let line = getline(lnum)
if line =~ '^\s*;' || line =~ '^\*'
call dist#ft#FTasm()
return
elseif line !~ '^\s*$' || line =~ '^/\*'
" Not an empty line: Doesn't look like valid assembly code.
" Or it looks like a Progress /* comment
break
endif
let lnum = lnum + 1
endw
setf progress
endfunc
func dist#ft#FTprogress_pascal()
if exists("g:filetype_p")
exe "setf " . g:filetype_p
return
endif
" This function checks for valid Pascal syntax in the first ten lines.
" Look for either an opening comment or a program start.
" If not found, assume Progress.
let lnum = 1
while lnum <= 10 && lnum < line('$')
let line = getline(lnum)
if line =~ '^\s*\(program\|unit\|procedure\|function\|const\|type\|var\)\>'
\ || line =~ '^\s*{' || line =~ '^\s*(\*'
setf pascal
return
elseif line !~ '^\s*$' || line =~ '^/\*'
" Not an empty line: Doesn't look like valid Pascal code.
" Or it looks like a Progress /* comment
break
endif
let lnum = lnum + 1
endw
setf progress
endfunc
func dist#ft#FTr()
let max = line("$") > 50 ? 50 : line("$")
for n in range(1, max)
" Rebol is easy to recognize, check for that first
if getline(n) =~? '\<REBOL\>'
setf rebol
return
endif
endfor
for n in range(1, max)
" R has # comments
if getline(n) =~ '^\s*#'
setf r
return
endif
" Rexx has /* comments */
if getline(n) =~ '^\s*/\*'
setf rexx
return
endif
endfor
" Nothing recognized, use user default or assume Rexx
if exists("g:filetype_r")
exe "setf " . g:filetype_r
else
" Rexx used to be the default, but R appears to be much more popular.
setf r
endif
endfunc
func dist#ft#McSetf()
" Rely on the file to start with a comment.
" MS message text files use ';', Sendmail files use '#' or 'dnl'
for lnum in range(1, min([line("$"), 20]))
let line = getline(lnum)
if line =~ '^\s*\(#\|dnl\)'
setf m4 " Sendmail .mc file
return
elseif line =~ '^\s*;'
setf msmessages " MS Message text file
return
endif
endfor
setf m4 " Default: Sendmail .mc file
endfunc
" Called from filetype.vim and scripts.vim.
func dist#ft#SetFileTypeSH(name)
if expand("<amatch>") =~ g:ft_ignore_pat
return
endif
if a:name =~ '\<csh\>'
" Some .sh scripts contain #!/bin/csh.
call dist#ft#SetFileTypeShell("csh")
return
elseif a:name =~ '\<tcsh\>'
" Some .sh scripts contain #!/bin/tcsh.
call dist#ft#SetFileTypeShell("tcsh")
return
elseif a:name =~ '\<zsh\>'
" Some .sh scripts contain #!/bin/zsh.
call dist#ft#SetFileTypeShell("zsh")
return
elseif a:name =~ '\<ksh\>'
let b:is_kornshell = 1
if exists("b:is_bash")
unlet b:is_bash
endif
if exists("b:is_sh")
unlet b:is_sh
endif
elseif exists("g:bash_is_sh") || a:name =~ '\<bash\>' || a:name =~ '\<bash2\>'
let b:is_bash = 1
if exists("b:is_kornshell")
unlet b:is_kornshell
endif
if exists("b:is_sh")
unlet b:is_sh
endif
elseif a:name =~ '\<sh\>'
let b:is_sh = 1
if exists("b:is_kornshell")
unlet b:is_kornshell
endif
if exists("b:is_bash")
unlet b:is_bash
endif
endif
call dist#ft#SetFileTypeShell("sh")
endfunc
" For shell-like file types, check for an "exec" command hidden in a comment,
" as used for Tcl.
" Also called from scripts.vim, thus can't be local to this script.
func dist#ft#SetFileTypeShell(name)
if expand("<amatch>") =~ g:ft_ignore_pat
return
endif
let l = 2
while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)'
" Skip empty and comment lines.
let l = l + 1
endwhile
if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~ '^\s*#.*\\$'
" Found an "exec" line after a comment with continuation
let n = substitute(getline(l),'\s*exec\s\+\([^ ]*/\)\=', '', '')
if n =~ '\<tclsh\|\<wish'
setf tcl
return
endif
endif
exe "setf " . a:name
endfunc
func dist#ft#CSH()
if exists("g:filetype_csh")
call dist#ft#SetFileTypeShell(g:filetype_csh)
elseif &shell =~ "tcsh"
call dist#ft#SetFileTypeShell("tcsh")
else
call dist#ft#SetFileTypeShell("csh")
endif
endfunc
let s:ft_rules_udev_rules_pattern = '^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*'
func dist#ft#FTRules()
let path = expand('<amatch>:p')
if path =~ '^/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|lib/udev/\%(rules\.d/\)\=.*\.rules\)$'
setf udevrules
return
endif
if path =~ '^/etc/ufw/'
setf conf " Better than hog
return
endif
if path =~ '^/\(etc\|usr/share\)/polkit-1/rules\.d'
setf javascript
return
endif
try
let config_lines = readfile('/etc/udev/udev.conf')
catch /^Vim\%((\a\+)\)\=:E484/
setf hog
return
endtry
let dir = expand('<amatch>:p:h')
for line in config_lines
if line =~ s:ft_rules_udev_rules_pattern
let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1', "")
if dir == udev_rules
setf udevrules
endif
break
endif
endfor
setf hog
endfunc
func dist#ft#SQL()
if exists("g:filetype_sql")
exe "setf " . g:filetype_sql
else
setf sql
endif
endfunc
" If the file has an extension of 't' and is in a directory 't' or 'xt' then
" it is almost certainly a Perl test file.
" If the first line starts with '#' and contains 'perl' it's probably a Perl
" file.
" (Slow test) If a file contains a 'use' statement then it is almost certainly
" a Perl file.
func dist#ft#FTperl()
let dirname = expand("%:p:h:t")
if expand("%:e") == 't' && (dirname == 't' || dirname == 'xt')
setf perl
return 1
endif
if getline(1)[0] == '#' && getline(1) =~ 'perl'
setf perl
return 1
endif
if search('^use\s\s*\k', 'nc', 30)
setf perl
return 1
endif
return 0
endfunc
" Choose context, plaintex, or tex (LaTeX) based on these rules:
" 1. Check the first line of the file for "%&<format>".
" 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords.
" 3. Default to "latex" or to g:tex_flavor, can be set in user's vimrc.
func dist#ft#FTtex()
let firstline = getline(1)
if firstline =~ '^%&\s*\a\+'
let format = tolower(matchstr(firstline, '\a\+'))
let format = substitute(format, 'pdf', '', '')
if format == 'tex'
let format = 'latex'
elseif format == 'plaintex'
let format = 'plain'
endif
elseif expand('%') =~ 'tex/context/.*/.*.tex'
let format = 'context'
else
" Default value, may be changed later:
let format = exists("g:tex_flavor") ? g:tex_flavor : 'plain'
" Save position, go to the top of the file, find first non-comment line.
let save_cursor = getpos('.')
call cursor(1,1)
let firstNC = search('^\s*[^[:space:]%]', 'c', 1000)
if firstNC " Check the next thousand lines for a LaTeX or ConTeXt keyword.
let lpat = 'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>'
let cpat = 'start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\>'
let kwline = search('^\s*\\\%(' . lpat . '\)\|^\s*\\\(' . cpat . '\)',
\ 'cnp', firstNC + 1000)
if kwline == 1 " lpat matched
let format = 'latex'
elseif kwline == 2 " cpat matched
let format = 'context'
endif " If neither matched, keep default set above.
" let lline = search('^\s*\\\%(' . lpat . '\)', 'cn', firstNC + 1000)
" let cline = search('^\s*\\\%(' . cpat . '\)', 'cn', firstNC + 1000)
" if cline > 0
" let format = 'context'
" endif
" if lline > 0 && (cline == 0 || cline > lline)
" let format = 'tex'
" endif
endif " firstNC
call setpos('.', save_cursor)
endif " firstline =~ '^%&\s*\a\+'
" Translation from formats to file types. TODO: add AMSTeX, RevTex, others?
if format == 'plain'
setf plaintex
elseif format == 'context'
setf context
else " probably LaTeX
setf tex
endif
return
endfunc
func dist#ft#FTxml()
let n = 1
while n < 100 && n < line("$")
let line = getline(n)
" DocBook 4 or DocBook 5.
let is_docbook4 = line =~ '<!DOCTYPE.*DocBook'
let is_docbook5 = line =~ ' xmlns="http://docbook.org/ns/docbook"'
if is_docbook4 || is_docbook5
let b:docbk_type = "xml"
if is_docbook5
let b:docbk_ver = 5
else
let b:docbk_ver = 4
endif
setf docbk
return
endif
if line =~ 'xmlns:xbl="http://www.mozilla.org/xbl"'
setf xbl
return
endif
let n += 1
endwhile
setf xml
endfunc
func dist#ft#FTy()
let n = 1
while n < 100 && n < line("$")
let line = getline(n)
if line =~ '^\s*%'
setf yacc
return
endif
if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include'
setf racc
return
endif
let n = n + 1
endwhile
setf yacc
endfunc
func dist#ft#Redif()
let lnum = 1
while lnum <= 5 && lnum < line('$')
if getline(lnum) =~ "^\ctemplate-type:"
setf redif
return
endif
let lnum = lnum + 1
endwhile
endfunc
" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
" netrwSettings.vim: makes netrw settings simpler
" Date: Dec 30, 2014
" Date: Nov 09, 2016
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
" Version: 15
" Version: 16
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
@ -19,7 +19,7 @@
if exists("g:loaded_netrwSettings") || &cp
finish
endif
let g:loaded_netrwSettings = "v15"
let g:loaded_netrwSettings = "v16"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
@ -154,9 +154,13 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
put = 'let g:netrw_liststyle = '.g:netrw_liststyle
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
put = 'let g:netrw_localcopycmdopt = '.g:netrw_localcopycmdopt
put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
put = 'let g:netrw_localmkdiropt = '.g:netrw_localmkdiropt
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
put = 'let g:netrw_localmovecmdopt = '.g:netrw_localmovecmdopt
put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir
put = 'let g:netrw_localrmdiropt = '.g:netrw_localrmdiropt
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
put = 'let g:netrw_menu = '.g:netrw_menu
put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps

View File

@ -1,6 +1,6 @@
" Vim support file to help with paste mappings and menus
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 Jun 23
" Last Change: 2017 Aug 30
" Define the string to use for items that are present both in Edit, Popup and
" Toolbar menu. Also used in mswin.vim and macmap.vim.
@ -12,7 +12,7 @@
if has("virtualedit")
let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
let paste#paste_cmd['i'] = 'x<BS><Esc>' . paste#paste_cmd['n'] . 'gi'
let paste#paste_cmd['i'] = "\<c-\>\<c-o>\"+gP"
func! paste#Paste()
let ove = &ve

View File

@ -2,7 +2,7 @@
" Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 16.0
" Last Change: 2015 Dec 29
" Last Change: 2017 Oct 15
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
" Usage: For detailed help
" ":help sql.txt"
@ -860,7 +860,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" Start characterwise visual mode
" Advance right one character
" Search foward until one of the following:
" Search forward until one of the following:
" 1. Another select/update/delete statement
" 2. A ; at the end of a line (the delimiter)
" 3. The end of the file (incase no delimiter)

View File

@ -343,7 +343,7 @@ xxd.man: xxd.1
nroff -man xxd.1 | sed -e s/.//g > xxd.man
uganda.nsis.txt: uganda.txt
sed -e 's/[ ]*\*[-a-zA-Z0-9.]*\*//g' -e 's/vim:tw=78://' \
sed -e 's/[ ]*\*[-a-zA-Z0-9.]*\*//g' -e 's/vim:tw=78:.*//' \
uganda.txt | uniq >uganda.nsis.txt
# Awk version of .txt to .html conversion.

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.0. Last change: 2017 Jul 14
*autocmd.txt* For Vim version 8.0. Last change: 2017 Nov 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -68,7 +68,14 @@ Note: The ":autocmd" command can only be followed by another command when the
'|' appears before {cmd}. This works: >
:augroup mine | au! BufRead | augroup END
But this sees "augroup" as part of the defined command: >
:augroup mine | au! BufRead * | augroup END
:augroup mine | au BufRead * set tw=70 | augroup END
Instead you can put the group name into the command: >
:au! mine BufRead *
:au mine BufRead * set tw=70
Or use `:execute`: >
:augroup mine | exe "au! BufRead *" | augroup END
:augroup mine | exe "au BufRead * set tw=70" | augroup END
Note that special characters (e.g., "%", "<cword>") in the ":autocmd"
arguments are not expanded when the autocommand is defined. These will be
@ -492,6 +499,22 @@ CmdUndefined When a user command is used but it isn't
command is defined. An alternative is to
always define the user command and have it
invoke an autoloaded function. See |autoload|.
*CmdlineEnter*
CmdlineEnter After moving the cursor to the command line,
where the user can type a command or search
string.
<afile> is set to a single character,
indicating the type of command-line.
|cmdwin-char|
*CmdlineLeave*
CmdlineLeave Before leaving the command line.
Also when abandoning the command line, after
typing CTRL-C or <Esc>.
When the commands result in an error the
command line is still executed.
<afile> is set to a single character,
indicating the type of command-line.
|cmdwin-char|
*CmdwinEnter*
CmdwinEnter After entering the command-line window.
Useful for setting options specifically for

View File

@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.0. Last change: 2017 Jul 22
*channel.txt* For Vim version 8.0. Last change: 2017 Aug 11
VIM REFERENCE MANUAL by Bram Moolenaar
@ -427,8 +427,8 @@ When no message was available then the result is v:none for a JSON or JS mode
channels, an empty string for a RAW or NL channel. You can use |ch_canread()|
to check if there is something to read.
Note that when there is no callback message are dropped. To avoid that add a
close callback to the channel.
Note that when there is no callback, messages are dropped. To avoid that add
a close callback to the channel.
To read all output from a RAW channel that is available: >
let output = ch_readraw(channel)
@ -696,6 +696,10 @@ See |job_setoptions()| and |ch_setoptions()|.
"block_write": number only for testing: pretend every other write to stdin
will block
"env": dict environment variables for the new process
"cwd": "/path/to/dir" current working directory for the new process;
if the directory does not exist an error is given
Writing to a buffer ~
*out_io-buffer*
@ -731,10 +735,6 @@ The "out_msg" option can be used to specify whether a new buffer will have the
first line set to "Reading from channel output...". The default is to add the
message. "err_msg" does the same for channel error.
'modifiable' option off, or write to a buffer that has 'modifiable' off. That
means that lines will be appended to the buffer, but the user can't easily
change the buffer.
When an existing buffer is to be written where 'modifiable' is off and the
"out_modifiable" or "err_modifiable" options is not zero, an error is given
and the buffer will not be written to.

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.0. Last change: 2017 Jul 11
*cmdline.txt* For Vim version 8.0. Last change: 2017 Oct 19
VIM REFERENCE MANUAL by Bram Moolenaar
@ -826,14 +826,21 @@ Also see |`=|.
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
*:<cexpr>* *<cexpr>*
*<slnum>* *E495* *E496* *E497* *E499* *E500*
Note: these are typed literally, they are not special keys!
<cword> is replaced with the word under the cursor (like |star|)
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
<cexpr> is replaced with the word under the cursor, including more
to form a C expression. E.g., when the cursor is on "arg"
of "ptr->arg" then the result is "ptr->arg"; when the
cursor is on "]" of "list[idx]" then the result is
"list[idx]". This is used for |v:beval_text|.
<cfile> is replaced with the path name under the cursor (like what
|gf| uses)
<afile> When executing autocommands, is replaced with the file name
for a file read or write.
of the buffer being manipulated, or the file for a read or
write.
<abuf> When executing autocommands, is replaced with the currently
effective buffer number (for ":r file" and ":so file" it is
the current buffer, the file being read/sourced is not in a

View File

@ -1,4 +1,4 @@
*diff.txt* For Vim version 8.0. Last change: 2017 Feb 03
*diff.txt* For Vim version 8.0. Last change: 2017 Oct 03
VIM REFERENCE MANUAL by Bram Moolenaar
@ -10,7 +10,7 @@ eight versions of the same file.
The basics are explained in section |08.7| of the user manual.
1. Starting diff mode |vimdiff|
1. Starting diff mode |start-vimdiff|
2. Viewing diffs |view-diffs|
3. Jumping to diffs |jumpto-diffs|
4. Copying diffs |copy-diffs|
@ -19,7 +19,7 @@ The basics are explained in section |08.7| of the user manual.
{not in Vi}
==============================================================================
1. Starting diff mode
1. Starting diff mode *start-vimdiff*
The easiest way to start editing in diff mode is with the "vimdiff" command.
This starts Vim as usual, and additionally sets up for viewing the differences
@ -226,8 +226,8 @@ The diffs are highlighted with these groups:
(searching from the end of the line). The
text in between is highlighted. This means
that parts in the middle that are still the
same are highlighted anyway. Only "iwhite" of
'diffopt' is used here.
same are highlighted anyway. The 'diffopt'
flags "iwhite" and "icase" are used here.
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
because they don't really exist in this
buffer.
@ -326,7 +326,7 @@ g:diff_translations to zero: >
let g:diff_translations = 0
<
After setting this variable, Reload the syntax script: >
After setting this variable, reload the syntax script: >
set syntax=diff
<

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.0. Last change: 2017 Aug 01
*editing.txt* For Vim version 8.0. Last change: 2017 Aug 21
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1109,6 +1109,7 @@ The names can be in upper- or lowercase.
window in the current tab page the current tab page is
closed |tab-page|.
Triggers the |QuitPre| autocommand event.
See |CTRL-W_q| for quitting another window.
:conf[irm] q[uit] Quit, but give prompt when changes have been made, or
the last file in the argument list has not been

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
*filetype.txt* For Vim version 8.0. Last change: 2017 Mar 28
*filetype.txt* For Vim version 8.0. Last change: 2017 Oct 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -43,7 +43,7 @@ Detail: The ":filetype on" command will load one of these files:
BufNewFile and BufRead events. If the file type is not found by the
name, the file $VIMRUNTIME/scripts.vim is used to detect it from the
contents of the file.
When the GUI is running or will start soon, the menu.vim script is
When the GUI is running or will start soon, the |menu.vim| script is
also sourced. See |'go-M'| about avoiding that.
To add your own file types, see |new-filetype| below. To search for help on a
@ -602,11 +602,12 @@ MANPAGER *manpager.vim*
The :Man command allows you to turn Vim into a manpager (that syntax highlights
manpages and follows linked manpages on hitting CTRL-]).
Works on:
Tested on:
- Linux
- Mac OS
- FreeBSD
- OpenBSD
- Cygwin
- Win 10 under Bash
@ -616,21 +617,36 @@ Untested:
- BeOS
- OS/2
For bash,zsh,ksh or dash by adding to the config file (.bashrc,.zshrc, ...)
If man sets the $MAN_PN environment variable, like man-db, the most common
implementation on Linux, then the "env MAN_PN=1 " part below should NOT be
set, that is, the "env MAN_PN=1" should be omitted! Otherwise, the Vim
manpager does not correctly recognize manpages whose title contains a capital
letter. See the discussion on
https://groups.google.com/forum/#!topic/vim_dev/pWZmt_7GkxI
For bash,zsh,ksh or dash, add to the config file (.bashrc,.zshrc, ...)
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER -"
For (t)csh by adding to the config file
For (t)csh, add to the config file
setenv MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
For fish by adding to the config file
For fish, add to the config file
set -x MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
If man sets the $MAN_PN environment variable, like man-db, the most common
implementation on Linux and Mac OS, then the "env MAN_PN=1 " part above is
superfluous.
On OpenBSD:
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER"
If you experience still issues on manpages whose titles do not contain capital
letters, then try adding MANPATH=${MANPATH} after MAN_PN=1. If your manpages do
not show up localized, then try adding, LANGUAGE=${LANG} after MAN_PN=1. See
https://github.com/vim/vim/issues/1002
PDF *ft-pdf-plugin*

View File

@ -199,7 +199,7 @@ COMMANDS *rust-commands*
|g:rust_playpen_url| is the base URL to the playpen, by default
"https://play.rust-lang.org/".
|g:rust_shortener_url| is the base URL for the shorterner, by
|g:rust_shortener_url| is the base URL for the shortener, by
default "https://is.gd/"
:RustFmt *:RustFmt*

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 8.0. Last change: 2017 Jul 15
*gui.txt* For Vim version 8.0. Last change: 2017 Nov 09
VIM REFERENCE MANUAL by Bram Moolenaar
@ -67,7 +67,7 @@ When the GUI starts up initializations are carried out, in this order:
executed as an Ex command.
- If the user gvimrc file exists, it is sourced. The name of this file is
normally "$HOME/.gvimrc". You can check this with ":version".
- For Win32, when $HOME is not set, "$VIM\_gvimrc" is used.
- For Win32, $HOME is set by Vim if needed, see |$HOME-windows|.
- When a "_gvimrc" file is not found, ".gvimrc" is tried too. And vice
versa.
The name of the first file found is stored in $MYGVIMRC, unless it was
@ -162,7 +162,7 @@ window Vim is running in with these commands: >
*gui-IME* *iBus*
Input methods for international characters in X that rely on the XIM
framework, most notably iBus, have been known to produce undesirable results
in gVim. These may include an inability to enter spaces, or long delays
in gvim. These may include an inability to enter spaces, or long delays
between typing a character and it being recognized by the application.
One workaround that has been successful, for unknown reasons, is to prevent
@ -482,6 +482,7 @@ menus and menu items. They are most useful for things that you can't remember
what the key sequence was.
For creating menus in a different language, see |:menutrans|.
If you don't want to use menus at all, see |'go-M'|.
*menu.vim*
The default menus are read from the file "$VIMRUNTIME/menu.vim". See
@ -498,7 +499,22 @@ in the menu (which can take a bit of time to load). If you want to have all
filetypes already present at startup, add: >
:let do_syntax_sel_menu = 1
<
The following menuitems show all available color schemes, keymaps and compiler
settings:
Edit > Color Scheme ~
Edit > Keymap ~
Tools > Set Compiler ~
However, they can also take a bit of time to load, because they search all
related files from the directories in 'runtimepath'. Therefore they are
loaded lazily (by the |CursorHold| event), or you can also load them manually.
If you want to have all these items already present at startup, add: >
:let do_no_lazyload_menus = 1
Note that the menu.vim is sourced when `:syntax on` or `:filetype on` is
executed or after your .vimrc file is sourced. This means that the 'encoding'
option and the language of messages (`:language messages`) must be set before
that (if you want to change them).
*console-menus*
Although this documentation is in the GUI section, you can actually use menus
in console mode too. You will have to load |menu.vim| explicitly then, it is
@ -784,10 +800,40 @@ In the Win32 and GTK+ GUI, starting a menu name with ']' excludes that menu
from the main menu bar. You must then use the |:popup| or |:tearoff| command
to display it.
*window-toolbar* *WinBar*
Each window can have a local toolbar. This uses the first line of the window,
thus reduces the space for the text by one line. The items in the toolbar
must start with "WinBar".
Only text can be used. When using Unicode, special characters can be used to
make the items look like icons.
If the items do not fit then the last ones cannot be used. The toolbar does
not wrap.
Note that Vim may be in any mode when executing these commands. The menu
should be defined for Normal mode and will be executed without changing the
current mode. Thus if the current window is in Visual mode and the menu
command does not intentionally change the mode, Vim will remain in Visual
mode. Best is to use `:nnoremenu` to avoid side effects.
Example for debugger tools: >
nnoremenu 1.10 WinBar.Step :Step<CR>
nnoremenu 1.20 WinBar.Next :Next<CR>
nnoremenu 1.30 WinBar.Finish :Finish<CR>
nnoremenu 1.40 WinBar.Cont :Continue<CR>
<
The window toolbar uses the ToolbarLine and ToolbarButton highlight groups.
When splitting the window the window toolbar is not copied to the new window.
*popup-menu*
In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the
special menu "PopUp". This is the menu that is displayed when the right mouse
button is pressed, if 'mousemodel' is set to popup or popup_setpos.
Example: >
nnoremenu 1.40 PopUp.&Paste "+gP
menu PopUp
5.3 Showing What Menus Are Mapped To *showing-menus*

View File

@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 8.0. Last change: 2014 Dec 20
*gui_w32.txt* For Vim version 8.0. Last change: 2017 Oct 27
VIM REFERENCE MANUAL by Bram Moolenaar
@ -382,38 +382,8 @@ Note that a menu that starts with ']' will not be displayed.
==============================================================================
7. Command line arguments *gui-w32-cmdargs*
Analysis of a command line into parameters is not standardised in MS Windows.
Gvim has to provide logic to analyse a command line. This logic is likely to
be different from the default logic provided by a compilation system used to
build vim. The differences relate to unusual double quote (") usage.
The arguments "C:\My Music\freude.txt" and "+/Sch\"iller" are handled in the
same way. The argument "+/Sch""iller" may be handled different by gvim and
vim, depending what it was compiled with.
The rules are:
a) A parameter is a sequence of graphic characters.
b) Parameters are separated by white space.
c) A parameter can be enclosed in double quotes to include white space.
d) A sequence of zero or more backslashes (\) and a double quote (")
is special. The effective number of backslashes is halved, rounded
down. An even number of backslashes reverses the acceptability of
spaces and tabs, an odd number of backslashes produces a literal
double quote.
So:
" is a special double quote
\" is a literal double quote
\\" is a literal backslash and a special double quote
\\\" is a literal backslash and a literal double quote
\\\\" is 2 literal backslashes and a special double quote
\\\\\" is 2 literal backslashes and a literal double quote
etc.
Example: >
gvim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
opens "C:\My Music\freude" and executes the line mode commands: >
set ignorecase; /"foo\ and /bar\"
Command line arguments behave the same way as with the console application,
see |win32-cmdargs|.
==============================================================================
8. Various *gui-w32-various*

View File

@ -1,4 +1,4 @@
*help.txt* For Vim version 8.0. Last change: 2016 Sep 12
*help.txt* For Vim version 8.0. Last change: 2017 Oct 28
VIM - main help file
k
@ -142,6 +142,7 @@ Special issues ~
|print.txt| printing
|remote.txt| using Vim as a server or client
|term.txt| using different terminals and mice
|terminal.txt| Terminal window support
|digraph.txt| list of available digraphs
|mbyte.txt| multi-byte text support
|mlang.txt| non-English language support
@ -150,6 +151,7 @@ Special issues ~
|hebrew.txt| Hebrew language support and editing
|russian.txt| Russian language support and editing
|ft_ada.txt| Ada (the programming language) support
|ft_rust.txt| Filetype plugin for Rust
|ft_sql.txt| about the SQL filetype plugin
|hangulin.txt| Hangul (Korean) input mode
|rileft.txt| right-to-left editing mode
@ -202,6 +204,7 @@ Standard plugins ~
|pi_logipat.txt| Logical operators on patterns
|pi_netrw.txt| Reading and writing files over a network
|pi_paren.txt| Highlight matching parens
|pi_spec.txt| Filetype plugin to work with rpm spec files
|pi_tar.txt| Tar file explorer
|pi_vimball.txt| Create a self-installing Vim script
|pi_zip.txt| Zip archive explorer

View File

@ -1,4 +1,4 @@
*if_mzsch.txt* For Vim version 8.0. Last change: 2016 Jan 24
*if_mzsch.txt* For Vim version 8.0. Last change: 2017 Oct 08
VIM REFERENCE MANUAL by Sergey Khorev
@ -278,12 +278,15 @@ When you don't use the MzScheme interface you don't need them, thus you can
use Vim without these DLL files.
NOTE: Newer version of MzScheme (Racket) require earlier (trampolined)
initialisation via scheme_main_setup. So Vim always loads the MzScheme DLL at
startup if possible.
startup if possible. This may make Vim startup slower.
To use the MzScheme interface the MzScheme DLLs must be in your search path.
In a console window type "path" to see what directories are used.
The names of the DLLs must match the MzScheme version Vim was compiled with.
On MS-Windows the options 'mzschemedll' and 'mzschemegcdll' are used for the
name of the library to load. The initial value is specified at build time.
The version of the DLL must match the MzScheme version Vim was compiled with.
For MzScheme version 209 they will be "libmzsch209_000.dll" and
"libmzgc209_000.dll". To know for sure look at the output of the ":version"
command, look for -DDYNAMIC_MZSCH_DLL="something" and

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 8.0. Last change: 2017 Mar 09
*if_pyth.txt* For Vim version 8.0. Last change: 2017 Nov 09
VIM REFERENCE MANUAL by Paul Moore
@ -715,6 +715,8 @@ To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
functions to evaluate Python expressions and pass their values to Vim script.
|pyxeval()| is also available.
The Python value "None" is converted to v:none.
==============================================================================
9. Dynamic loading *python-dynamic*
@ -894,10 +896,10 @@ On Ubuntu you will want to install these packages for Python 2:
python-dev
For Python 3:
python3
pytyon3-dev
python3-dev
For Python 3.6:
python3.6
pytyon3.6-dev
python3.6-dev
If you have more than one version of Python 3, you need to link python3 to the
one you prefer, before running configure.

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 8.0. Last change: 2017 Jul 30
*index.txt* For Vim version 8.0. Last change: 2017 Aug 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -540,7 +540,7 @@ tag command action in Normal mode ~
|CTRL-W_J| CTRL-W J move current window to the very bottom
|CTRL-W_K| CTRL-W K move current window to the very top
|CTRL-W_L| CTRL-W L move current window to the far right
|CTRL-W_N| CTRL-W N terminal window: go to Terminal mode
|CTRL-W_N| CTRL-W N terminal window: go to Terminal Normal mode
|CTRL-W_P| CTRL-W P go to preview window
|CTRL-W_R| CTRL-W R rotate windows upwards N times
|CTRL-W_S| CTRL-W S same as "CTRL-W s"
@ -1583,13 +1583,17 @@ tag command action ~
|:tjump| :tj[ump] like ":tselect", but jump directly when there
is only one match
|:tlast| :tl[ast] jump to last matching tag
|:tmapclear| :tmapc[lear] remove all mappings for Terminal-Job mode
|:tmap| :tma[p] like ":map" but for Terminal-Job mode
|:tmenu| :tm[enu] define menu tooltip
|:tnext| :tn[ext] jump to next matching tag
|:tnoremap| :tno[remap] like ":noremap" but for Terminal-Job mode
|:topleft| :to[pleft] make split window appear at top or far left
|:tprevious| :tp[revious] jump to previous matching tag
|:trewind| :tr[ewind] jump to first matching tag
|:try| :try execute commands, abort on error or exception
|:tselect| :ts[elect] list matching tags and select one
|:tunmap| :tunma[p] like ":unmap" but for Terminal-Job mode
|:tunmenu| :tu[nmenu] remove menu tooltip
|:undo| :u[ndo] undo last change(s)
|:undojoin| :undoj[oin] join next change with previous undo block

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 8.0. Last change: 2017 Jul 30
*intro.txt* For Vim version 8.0. Last change: 2017 Sep 04
VIM REFERENCE MANUAL by Bram Moolenaar
@ -264,6 +264,10 @@ Vim would never have become what it is now, without the help of these people!
Juergen Weigert Lattice version, AUX improvements, UNIX and
MS-DOS ports, autoconf
Stefan 'Sec' Zehl Maintainer of vim.org
Yasuhiro Matsumoto many MS-Windows improvements
Ken Takata fixes and features
Kazunobu Kuriyama GTK 3
Christian Brabandt many fixes, features, user support, etc.
I wish to thank all the people that sent me bug reports and suggestions. The
list is too long to mention them all here. Vim would not be the same without
@ -530,7 +534,7 @@ examples and use them directly. Or type them literally, including the '<' and
==============================================================================
5. Modes, introduction *vim-modes-intro* *vim-modes*
Vim has six BASIC modes:
Vim has seven BASIC modes:
*Normal* *Normal-mode* *command-mode*
Normal mode In Normal mode you can enter all the normal editor
@ -566,6 +570,11 @@ Ex mode Like Command-line mode, but after entering a command
you remain in Ex mode. Very limited editing of the
command line. |Ex-mode|
Terminal-Job mode Interacting with a job in a terminal window. Typed
keys go to the job and the job output is displayed in
the terminal window. See |terminal| about how to
switch to other modes.
There are seven ADDITIONAL modes. These are variants of the BASIC modes:
*Operator-pending* *Operator-pending-mode*
@ -592,10 +601,9 @@ Insert Normal mode Entered when CTRL-O given in Insert mode. This is
If the 'showmode' option is on "-- (insert) --" is
shown at the bottom of the window.
Terminal Normal mode Using Normal mode in a terminal window. Making
changes is impossible. Use a insert command, such as
"a" or "i", to return control to the job running in
the terminal. Also called |Terminal-mode|.
Terminal-Normal mode Using Normal mode in a terminal window. Making
changes is impossible. Use an insert command, such as
"a" or "i", to return to Terminal-Job mode.
Insert Visual mode Entered when starting a Visual selection from Insert
mode, e.g., by using CTRL-O and then "v", "V" or
@ -671,6 +679,8 @@ Normal mode from any other mode. This can be used to make sure Vim is in
Normal mode, without causing a beep like <Esc> would. However, this does not
work in Ex mode. When used after a command that takes an argument, such as
|f| or |m|, the timeout set with 'ttimeoutlen' applies.
When focus is in a terminal window, CTRL-\ CTRL-N goes to Normal mode for only
one command, see |t_CTRL-\_CTRL-N|.
*CTRL-\_CTRL-G* *i_CTRL-\_CTRL-G* *c_CTRL-\_CTRL-G* *v_CTRL-\_CTRL-G*
The command CTRL-\ CTRL-G or <C-\><C-G> can be used to go to Insert mode when
@ -833,10 +843,12 @@ by Vim. {Vi: not ok}
==============================================================================
8. Definitions *definitions*
buffer Contains lines of text, usually read from a file.
screen The whole area that Vim uses to work in. This can be
a terminal emulator window. Also called "the Vim
window".
window A view on a buffer.
window A view on a buffer. There can be multiple windows for
one buffer.
A screen contains one or more windows, separated by status lines and with the
command line at the bottom.

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 8.0. Last change: 2017 May 30
*map.txt* For Vim version 8.0. Last change: 2017 Sep 23
VIM REFERENCE MANUAL by Bram Moolenaar
@ -29,7 +29,7 @@ manual.
1. Key mapping *key-mapping* *mapping* *macro*
Key mapping is used to change the meaning of typed keys. The most common use
is to define a sequence commands for a function key. Example: >
is to define a sequence of commands for a function key. Example: >
:map <F2> a<C-R>=strftime("%c")<CR><Esc>
@ -55,6 +55,7 @@ modes.
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lmap*
:cm[ap] {lhs} {rhs} |mapmode-c| *:cm* *:cmap*
:tma[p] {lhs} {rhs} |mapmode-t| *:tma* *:tmap*
Map the key sequence {lhs} to {rhs} for the modes
where the map command applies. The result, including
{rhs}, is then further scanned for mappings. This
@ -71,6 +72,7 @@ modes.
:ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inoremap*
:ln[oremap] {lhs} {rhs} |mapmode-l| *:ln* *:lnoremap*
:cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnoremap*
:tno[remap] {lhs} {rhs} |mapmode-t| *:tno* *:tnoremap*
Map the key sequence {lhs} to {rhs} for the modes
where the map command applies. Disallow mapping of
{rhs}, to avoid nested and recursive mappings. Often
@ -87,6 +89,7 @@ modes.
:iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap*
:lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap*
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cunmap*
:tunma[p] {lhs} |mapmode-t| *:tunma* *:tunmap*
Remove the mapping of {lhs} for the modes where the
map command applies. The mapping may remain defined
for other modes where it applies.
@ -105,6 +108,7 @@ modes.
:imapc[lear] |mapmode-i| *:imapc* *:imapclear*
:lmapc[lear] |mapmode-l| *:lmapc* *:lmapclear*
:cmapc[lear] |mapmode-c| *:cmapc* *:cmapclear*
:tmapc[lear] |mapmode-t| *:tmapc* *:tmapclear*
Remove ALL mappings for the modes where the map
command applies. {not in Vi}
Use the <buffer> argument to remove buffer-local
@ -121,6 +125,7 @@ modes.
:im[ap] |mapmode-i|
:lm[ap] |mapmode-l|
:cm[ap] |mapmode-c|
:tma[p] |mapmode-t|
List all key mappings for the modes where the map
command applies. Note that ":map" and ":map!" are
used most often, because they include the other modes.
@ -135,6 +140,7 @@ modes.
:im[ap] {lhs} |mapmode-i| *:imap_l*
:lm[ap] {lhs} |mapmode-l| *:lmap_l*
:cm[ap] {lhs} |mapmode-c| *:cmap_l*
:tma[p] {lhs} |mapmode-t| *:tmap_l*
List the key mappings for the key sequences starting
with {lhs} in the modes where the map command applies.
{not in Vi}
@ -318,6 +324,7 @@ Overview of which map command works in which mode. More details below.
:imap :inoremap :iunmap Insert
:lmap :lnoremap :lunmap Insert, Command-line, Lang-Arg
:cmap :cnoremap :cunmap Command-line
:tmap :tnoremap :tunmap Terminal-Job
COMMANDS MODES ~
@ -358,6 +365,10 @@ Therefore the ":map" and ":map!" commands enter and display mappings for
several modes. In Vim you can use the ":nmap", ":vmap", ":omap", ":cmap" and
":imap" commands to enter mappings for each mode separately.
*mapmode-t*
The terminal mappings are used in a terminal window, when typing keys for the
job running in the terminal. See |terminal-typing|.
*omap-info*
Operator-pending mappings can be used to define a movement command that can be
used with any operator. Simple example: ":omap { w" makes "y{" work like "yw"
@ -418,6 +429,7 @@ When listing mappings the characters in the first two columns are:
i Insert
l ":lmap" mappings for Insert, Command-line and Lang-Arg
c Command-line
t Terminal-Job
Just before the {rhs} a special character can appear:
* indicates that it is not remappable
@ -682,7 +694,7 @@ option). After that it assumes that the 'q' is to be interpreted as such. If
you type slowly, or your system is slow, reset the 'timeout' option. Then you
might want to set the 'ttimeout' option.
*map-precedence*
*map-precedence*
Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
global mappings. When a buffer-local mapping is the same as a global mapping,
Vim will use the buffer-local mapping. In addition, Vim will use a complete
@ -1415,6 +1427,8 @@ The valid escape sequences are
<line1> The starting line of the command range.
*<line2>*
<line2> The final line of the command range.
*<range>*
<range> The number of items in the command range: 0, 1 or 2
*<count>*
<count> Any count supplied (as described for the '-range'
and '-count' attributes).

View File

@ -832,6 +832,9 @@ Use the RPM or port for your system.
Currently, GUI Vim supports three styles, |OverTheSpot|, |OffTheSpot| and
|Root|.
When compiled with |+GUI_GTK| feature, GUI Vim supports two styles,
|OnTheSpot| and |OverTheSpot|. You can select the style with the 'imstyle'
option.
*. on-the-spot *OnTheSpot*
Preedit Area and Status Area are performed by the client application in

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 8.0. Last change: 2017 Mar 25
*message.txt* For Vim version 8.0. Last change: 2017 Oct 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -463,12 +463,6 @@ changed. To avoid the message reset the 'warn' option.
Something inside Vim went wrong and resulted in a NULL pointer. If you know
how to reproduce this problem, please report it. |bugs|
*E172* >
Only one file name allowed
The ":edit" command only accepts one file name. When you want to specify
several files for editing use ":next" |:next|.
*E41* *E82* *E83* *E342* >
Out of memory!
Out of memory! (allocating {number} bytes)
@ -645,6 +639,9 @@ starts. It can be fixed in one of these ways:
- Just write the file again the next day. Or set your clock to the next day,
write the file twice and set the clock back.
If you get W11 all the time, you may need to disable "Acronis Active
Protection" or register Vim as a trusted service/application.
*W12* >
Warning: File "{filename}" has changed and the buffer was changed in Vim as well

View File

@ -1,4 +1,4 @@
*motion.txt* For Vim version 8.0. Last change: 2017 Mar 12
*motion.txt* For Vim version 8.0. Last change: 2017 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1317,7 +1317,10 @@ the current line is included. You can then use "%" to go to the matching line.
H To line [count] from top (Home) of window (default:
first line on the window) on the first non-blank
character |linewise|. See also 'startofline' option.
Cursor is adjusted for 'scrolloff' option.
Cursor is adjusted for 'scrolloff' option, unless an
operator is pending, in which case the text may
scroll. E.g. "yH" yanks from the first visible line
until the cursor line (inclusive).
*M*
M To Middle line of window, on the first non-blank
@ -1327,7 +1330,10 @@ M To Middle line of window, on the first non-blank
L To line [count] from bottom of window (default: Last
line on the window) on the first non-blank character
|linewise|. See also 'startofline' option.
Cursor is adjusted for 'scrolloff' option.
Cursor is adjusted for 'scrolloff' option, unless an
operator is pending, in which case the text may
scroll. E.g. "yL" yanks from the cursor to the last
visible line.
<LeftMouse> Moves to the position on the screen where the mouse
click is |exclusive|. See also |<LeftMouse>|. If the

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 8.0. Last change: 2017 Jul 31
*options.txt* For Vim version 8.0. Last change: 2017 Nov 18
VIM REFERENCE MANUAL by Bram Moolenaar
@ -417,12 +417,23 @@ On Unix systems the form "${HOME}" can be used too. The name between {} can
contain non-id characters then. Note that if you want to use this for the
"gf" command, you need to add the '{' and '}' characters to 'isfname'.
On MS-Windows, if $HOME is not defined as an environment variable, then
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
NOTE: expanding environment variables and "~/" is only done with the ":set"
command, not when assigning a value to an option with ":let".
*$HOME-windows*
On MS-Windows, if $HOME is not defined as an environment variable, then
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
If $HOMEDRIVE is not set then $USERPROFILE is used.
This expanded value is not exported to the environment, this matters when
running an external command: >
:echo system('set | findstr ^HOME=')
and >
:echo luaeval('os.getenv("HOME")')
should echo nothing (an empty string) despite exists('$HOME') being true.
When setting $HOME to a non-empty string it will be exported to the
subprocesses.
Note the maximum length of an expanded option is limited. How much depends on
the system, mostly it is something like 256 or 1024 characters.
@ -721,7 +732,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Vim may set this option automatically at startup time when Vim is
compiled with the |+termresponse| feature and if |t_u7| is set to the
escape sequence to request cursor position report.
escape sequence to request cursor position report. The response can
be found in |v:termu7resp|.
*'antialias'* *'anti'* *'noantialias'* *'noanti'*
'antialias' 'anti' boolean (default: off)
@ -869,11 +881,12 @@ A jump table for the options with a short description can be found at |Q_op|.
< Vim will guess the value. In the GUI this should work correctly,
in other cases Vim might not be able to guess the right value.
When the t_BG option is set, Vim will use it to request the background
When the |t_RB| option is set, Vim will use it to request the background
color from the terminal. If the returned RGB value is dark/light and
'background' is not dark/light, 'background' will be set and the
screen is redrawn. This may have side effects, make t_BG empty in
your .vimrc if you suspect this problem.
your .vimrc if you suspect this problem. The response to |t_RB| can
be found in |v:termrbgresp|.
When starting the GUI, the default value for 'background' will be
"light". When the value is not set in the .gvimrc, and Vim detects
@ -889,6 +902,10 @@ A jump table for the options with a short description can be found at |Q_op|.
"screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark
background. Otherwise the default is "light".
The |:terminal| command and the |term_start()| function use the
'background' value to decide whether the terminal window will start
with a white or black background.
Normally this option would be set in the .vimrc file. Possibly
depending on the terminal name. Example: >
:if &term == "pcterm"
@ -1110,7 +1127,16 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
{only available when compiled with the |+balloon_eval|
feature}
Switch on the |balloon-eval| functionality.
Switch on the |balloon-eval| functionality for the GUI.
*'balloonevalterm'* *'bevalterm'* *'noballoonevalterm'*
*'nobevalterm'*
'balloonevalterm' 'bevalterm' boolean (default off)
global
{not in Vi}
{only available when compiled with the
|+balloon_eval_term| feature}
Switch on the |balloon-eval| functionality for the terminal.
*'balloonexpr'* *'bexpr'*
'balloonexpr' 'bexpr' string (default "")
@ -3504,6 +3530,8 @@ A jump table for the options with a short description can be found at |Q_op|.
systems without an fsync() implementation, this variable is always
off.
Also see 'swapsync' for controlling fsync() on swap files.
'fsync' also applies to |writefile()|, unless a flag is used to
overrule it.
*'gdefault'* *'gd'* *'nogdefault'* *'nogd'*
'gdefault' 'gd' boolean (default off)
@ -3878,7 +3906,7 @@ A jump table for the options with a short description can be found at |Q_op|.
that this flag must be added in the .vimrc file, before
switching on syntax or filetype recognition (when the |gvimrc|
file is sourced the system menu has already been loaded; the
":syntax on" and ":filetype on" commands load the menu too).
`:syntax on` and `:filetype on` commands load the menu too).
*'go-g'*
'g' Grey menu items: Make menu items that are not active grey. If
'g' is not included inactive menu items are not shown at all.
@ -3922,7 +3950,13 @@ A jump table for the options with a short description can be found at |Q_op|.
removing it after the GUI has started has no effect.
*'go-F'*
'F' Add a footer. Only for Motif. See |gui-footer|.
*'go-k'*
'k' Keep the GUI window size when adding/removing a scrollbar, or
toolbar, tabline, etc. Instead, the behavior is similar to
when the window is maximized and will adjust 'lines' and
'columns' to fit to the window. Without the 'k' flag Vim will
try to keep 'lines' and 'columns' the same when adding and
removing GUI components.
*'guipty'* *'noguipty'*
'guipty' boolean (default on)
@ -4041,7 +4075,7 @@ A jump table for the options with a short description can be found at |Q_op|.
x:PmenuSbar,X:PmenuThumb,*:TabLine,
#:TabLineSel,_:TabLineFill,!:CursorColumn,
.:CursorLine,o:ColorColumn,q:QuickFixLine,
$:StatusLineTerm")
z:StatusLineTerm,Z:StatusLineTermNC")
global
{not in Vi}
This option can be used to set highlighting mode for various
@ -4066,7 +4100,7 @@ A jump table for the options with a short description can be found at |Q_op|.
set.
|hl-Question| r |hit-enter| prompt and yes/no questions
|hl-StatusLine| s status line of current window |status-line|
|hl-StatusLineNC| S status lines of not-current windows
|hl-StatusLineNC| S status lines of not-current windows
|hl-Title| t Titles for output from ":set all", ":autocmd" etc.
|hl-VertSplit| c column used to separate vertically split windows
|hl-Visual| v Visual mode
@ -4100,6 +4134,7 @@ A jump table for the options with a short description can be found at |Q_op|.
s standout (termcap entry "so" and "se")
u underline (termcap entry "us" and "ue")
c undercurl (termcap entry "Cs" and "Ce")
t strikethrough (termcap entry "Ts" and "Te")
n no highlighting
- no highlighting
: use a highlight group
@ -4293,7 +4328,7 @@ A jump table for the options with a short description can be found at |Q_op|.
may change in later releases.
*'iminsert'* *'imi'*
'iminsert' 'imi' number (default 0, 2 when an input method is supported)
'iminsert' 'imi' number (default 0)
local to buffer
{not in Vi}
Specifies whether :lmap or an Input Method (IM) is to be used in
@ -4316,7 +4351,7 @@ A jump table for the options with a short description can be found at |Q_op|.
methods. Use 'imdisable' to disable XIM then.
*'imsearch'* *'ims'*
'imsearch' 'ims' number (default 0, 2 when an input method is supported)
'imsearch' 'ims' number (default -1)
local to buffer
{not in Vi}
Specifies whether :lmap or an Input Method (IM) is to be used when
@ -4351,6 +4386,23 @@ A jump table for the options with a short description can be found at |Q_op|.
<
NOTE: This function is invoked very often. Keep it fast.
*'imstyle'* *'imst'*
'imstyle' 'imst' number (default 1)
global
{not in Vi}
{only available when compiled with |+xim| and
|+GUI_GTK|}
This option specifies the input style of Input Method:
0 use on-the-spot style
1 over-the-spot style
See: |xim-input-style|
For a long time on-the-spot style had been used in the GTK version of
vim, however, it is known that it causes troubles when using mappings,
|single-repeat|, etc. Therefore over-the-spot style becomes the
default now. This should work fine for most people, however if you
have any problem with it, try using on-the-spot style.
*'include'* *'inc'*
'include' 'inc' string (default "^\s*#\s*include")
global or local to buffer |global-local|
@ -4412,7 +4464,17 @@ A jump table for the options with a short description can be found at |Q_op|.
match may not be found. This is to avoid that Vim hangs while you
are typing the pattern.
The highlighting can be set with the 'i' flag in 'highlight'.
See also: 'hlsearch'.
When 'hlsearch' is on, all matched strings are highlighted too while typing
a search command. See also: 'hlsearch'.
If you don't want turn 'hlsearch' on, but want to highlight all matches
while searching, you can turn on and off 'hlsearch' with autocmd.
Example: >
augroup vimrc-incsearch-highlight
autocmd!
autocmd CmdlineEnter /,\? :set hlsearch
autocmd CmdlineLeave /,\? :set nohlsearch
augroup END
<
CTRL-L can be used to add one character from after the current match
to the command line. If 'ignorecase' and 'smartcase' are set and the
command line has no uppercase characters, the added character is
@ -5082,7 +5144,7 @@ A jump table for the options with a short description can be found at |Q_op|.
:au FileType c,cpp,java set mps+==:;
< For a more advanced way of using "%", see the matchit.vim plugin in
the $VIMRUNTIME/macros directory. |add-local-help|
the $VIMRUNTIME/pack/dist/opt/matchit directory. |add-local-help|
*'matchtime'* *'mat'*
'matchtime' 'mat' number (default 5)
@ -5285,7 +5347,7 @@ A jump table for the options with a short description can be found at |Q_op|.
sysmouse and Linux console with gpm). For using the mouse in the
GUI, see |gui-mouse|.
The mouse can be enabled for different modes:
n Normal mode
n Normal mode and Terminal modes
v Visual mode
i Insert mode
c Command-line mode
@ -5433,6 +5495,33 @@ A jump table for the options with a short description can be found at |Q_op|.
time in msec between two mouse clicks for the second click to be
recognized as a multi click.
*'mzschemedll'*
'mzschemedll' string (default depends on the build)
global
{not in Vi}
{only available when compiled with the |+mzscheme/dyn|
feature}
Specifies the name of the MzScheme shared library. The default is
DYNAMIC_MZSCH_DLL which was specified at compile time.
Environment variables are expanded |:set_env|.
The value must be set in the |vimrc| script or earlier. In the
startup, before the |load-plugins| step.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'mzschemegcdll'*
'mzschemegcdll' string (default depends on the build)
global
{not in Vi}
{only available when compiled with the |+mzscheme/dyn|
feature}
Specifies the name of the MzScheme GC shared library. The default is
DYNAMIC_MZGC_DLL which was specified at compile time.
The value can be equal to 'mzschemedll' if it includes the GC code.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'mzquantum'* *'mzq'*
'mzquantum' 'mzq' number (default 100)
global
@ -8143,7 +8232,7 @@ A jump table for the options with a short description can be found at |Q_op|.
number, more intelligent detection process runs.
The "xterm2" value will be set if the xterm version is reported to be
from 95 to 276. The "sgr" value will be set if the xterm version is
277 or highter.
277 or highter and when Vim detects Mac Terminal.app or Iterm2.
If you do not want 'ttymouse' to be set to "xterm2" or "sgr"
automatically, set t_RV to an empty string: >
:set t_RV=
@ -8224,7 +8313,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Save the whole buffer for undo when reloading it. This applies to the
":e!" command and reloading for when the buffer changed outside of
Vim. |FileChangedShell|
The save only happens when this options is negative or when the number
The save only happens when this option is negative or when the number
of lines is smaller than the value of this option.
Set this option to zero to disable undo for a reload.
@ -8309,7 +8398,7 @@ A jump table for the options with a short description can be found at |Q_op|.
security reasons.
*'viewoptions'* *'vop'*
'viewoptions' 'vop' string (default: "folds,options,cursor")
'viewoptions' 'vop' string (default: "folds,options,cursor,curdir")
global
{not in Vi}
{not available when compiled without the |+mksession|
@ -8327,6 +8416,7 @@ A jump table for the options with a short description can be found at |Q_op|.
slashes
unix with Unix end-of-line format (single <NL>), even when
on Windows or DOS
curdir the window-local directory, if set with `:lcd`
"slash" and "unix" are useful on Windows when sharing view files
with Unix. The Unix version of Vim cannot source dos format scripts,
@ -8831,6 +8921,20 @@ A jump table for the options with a short description can be found at |Q_op|.
large number, it will cause errors when opening more than a few
windows. A value of 0 to 12 is reasonable.
*'winptydll'*
'winptydll' string (default "winpty32.dll" or "winpty64.dll")
global
{not in Vi}
{only available when compiled with the |terminal|
feature on MS-Windows}
Specifies the name of the winpty shared library, used for the
|:terminal| command. The default depends on whether was build as a
32-bit or 64-bit executable. If not found, "winpty.dll" is tried as
a fallback.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'winwidth'* *'wiw'* *E592*
'winwidth' 'wiw' number (default 20)
global

View File

@ -164,8 +164,9 @@ If you want to disable it, pass `--disable-darwin` to the configure script: >
and then run `make` to build Vim. The order of the options doesn't matter.
To make sure at runtime whether or not the darwin feature is compiled in, you
can use `has('macunix')` which returns 1 if the feature is compiled in; 0
otherwise.
can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0
otherwise. For backwards comptibility, you can still use `macunix` instead of
`osxdarwin`.
Notable use cases where `--disable-darwin` is turned out to be useful are:

View File

@ -81,10 +81,45 @@ The directory of the Vim executable is appended to $PATH. This is mostly to
make "!xxd" work, as it is in the Tools menu. And it also means that when
executable() returns 1 the executable can actually be executed.
Quotes in file names *win32-quotes*
Command line arguments *win32-cmdargs*
Quotes inside a file name (or any other command line argument) can be escaped
with a backslash. E.g. >
Analysis of a command line into parameters is not standardised in MS Windows.
Vim and gvim used to use different logic to parse it (before 7.4.432), and the
logic was also depended on what it was compiled with. Now Vim and gvim both
use the CommandLineToArgvW() Win32 API, so they behave in the same way.
The basic rules are: *win32-backslashes*
a) A parameter is a sequence of graphic characters.
b) Parameters are separated by white space.
c) A parameter can be enclosed in double quotes to include white space.
d) A sequence of zero or more backslashes (\) and a double quote (")
is special. The effective number of backslashes is halved, rounded
down. An even number of backslashes reverses the acceptability of
spaces and tabs, an odd number of backslashes produces a literal
double quote.
So:
" is a special double quote
\" is a literal double quote
\\" is a literal backslash and a special double quote
\\\" is a literal backslash and a literal double quote
\\\\" is 2 literal backslashes and a special double quote
\\\\\" is 2 literal backslashes and a literal double quote
etc.
Example: >
vim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
opens "C:\My Music\freude" and executes the line mode commands: >
set ignorecase; /"foo\ and /bar\"
These rules are also described in the reference of the CommandLineToArgvW API:
https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391.aspx
*win32-quotes*
There are additional rules for quotes (which are not well documented).
As described above, quotes inside a file name (or any other command line
argument) can be escaped with a backslash. E.g. >
vim -c "echo 'foo\"bar'"
Alternatively use three quotes to get one: >

View File

@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 8.0. Last change: 2016 Apr 20
*pi_netrw.txt* For Vim version 8.0. Last change: 2017 Nov 03
------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell
@ -6,7 +6,7 @@
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
(remove NOSPAM from Campbell's email first)
Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
The VIM LICENSE applies to the files in this package, including
netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, netrwSettings.vim, and
syntax/netrw.vim. Like anything else that's free, netrw.vim and its
@ -17,7 +17,6 @@ Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
holder be liable for any damages resulting from the use of this
software. Use at your own risk!
*netrw*
*dav* *ftp* *netrw-file* *rcp* *scp*
*davs* *http* *netrw.vim* *rsync* *sftp*
@ -73,7 +72,7 @@ Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
Improving Browsing..................................|netrw-ssh-hack|
Listing Bookmarks And History.......................|netrw-qb|
Making A New Directory..............................|netrw-d|
Making The Browsing Directory The Current Directory.|netrw-c|
Making The Browsing Directory The Current Directory.|netrw-cd|
Marking Files.......................................|netrw-mf|
Unmarking Files.....................................|netrw-mF|
Marking Files By Location List......................|netrw-qL|
@ -83,6 +82,7 @@ Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
Marked Files: Arbitrary Shell Command, En Bloc......|netrw-mX|
Marked Files: Arbitrary Vim Command.................|netrw-mv|
Marked Files: Argument List.........................|netrw-ma| |netrw-mA|
Marked Files: Buffer List...........................|netrw-cb| |netrw-cB|
Marked Files: Compression And Decompression.........|netrw-mz|
Marked Files: Copying...............................|netrw-mc|
Marked Files: Diff..................................|netrw-md|
@ -155,7 +155,7 @@ Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: >
let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\MyUserName\MACHINE'
<
Netrw will substitute the host's machine name for "MACHINE" from the url it is
Netrw will substitute the host's machine name for "MACHINE" from the URL it is
attempting to open, and so one may specify >
userid
password
@ -212,7 +212,7 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
http: g:netrw_http_cmd = "fetch" elseif fetch is available
http: *g:netrw_http_put_cmd* = "curl -T"
rcp: *g:netrw_rcp_cmd* = "rcp"
rsync: *g:netrw_rsync_cmd* = "rsync -a"
rsync: *g:netrw_rsync_cmd* = "rsync" (see |g:netrw_rsync_sep|)
scp: *g:netrw_scp_cmd* = "scp -q"
sftp: *g:netrw_sftp_cmd* = "sftp"
file: *g:netrw_file_cmd* = "elinks" or "links"
@ -223,7 +223,7 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
elinks : "-source >"
links : "-dump >"
curl : "-o"
curl : "-L -o"
wget : "-q -O"
fetch : "-o"
<
@ -238,7 +238,7 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
READING *netrw-read* *netrw-nread* {{{2
Generally, one may just use the url notation with a normal editing
Generally, one may just use the URL notation with a normal editing
command, such as >
:e ftp://[user@]machine/path
@ -260,7 +260,7 @@ READING *netrw-read* *netrw-nread* {{{2
WRITING *netrw-write* *netrw-nwrite* {{{2
One may just use the url notation with a normal file writing
One may just use the URL notation with a normal file writing
command, such as >
:w ftp://[user@]machine/path
@ -281,7 +281,7 @@ WRITING *netrw-write* *netrw-nwrite* {{{2
SOURCING *netrw-source* {{{2
One may just use the url notation with the normal file sourcing
One may just use the URL notation with the normal file sourcing
command, such as >
:so ftp://[user@]machine/path
@ -479,7 +479,7 @@ file using root-relative paths, use the full path:
==============================================================================
4. Network-Oriented File Transfer *netrw-xfer* {{{1
Network-oriented file transfer under Vim is implemented by a VimL-based script
Network-oriented file transfer under Vim is implemented by a vim script
(<netrw.vim>) using plugin techniques. It currently supports both reading and
writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
dav/cadaver, rsync, or sftp.
@ -532,7 +532,7 @@ variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
<
(note: it has been reported that windows 7 with putty v0.6's "-batch" option
doesn't work, so it's best to leave it off for that system)
doesn't work, so its best to leave it off for that system)
See |netrw-p8| for more about putty, pscp, psftp, etc.
@ -734,11 +734,11 @@ such as netrw.
The usual read/write commands are supported. There are also a few
additional commands available. Often you won't need to use Nwrite or
Nread as shown in |netrw-transparent| (ie. simply use >
:e url
:r url
:w url
:e URL
:r URL
:w URL
instead, as appropriate) -- see |netrw-urls|. In the explanations
below, a {netfile} is an url to a remote file.
below, a {netfile} is a URL to a remote file.
*:Nwrite* *:Nw*
:[range]Nw[rite] Write the specified lines to the current
@ -868,9 +868,11 @@ variables listed below, and may be modified by the user.
g:netrw_http_cmd var ="fetch -o" if fetch is available
g:netrw_http_cmd var ="wget -O" else if wget is available
g:netrw_http_put_cmd var ="curl -T"
|g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
|g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
g:netrw_rcp_cmd var ="rcp"
g:netrw_rsync_cmd var ="rsync -a"
g:netrw_rsync_cmd var ="rsync"
*g:netrw_rsync_sep* var ="/" used to separate the hostname
from the file spec
g:netrw_scp_cmd var ="scp -q"
g:netrw_sftp_cmd var ="sftp" >
-------------------------------------------------------------------------
@ -1007,7 +1009,7 @@ where [protocol] is typically scp or ftp. As an example, try: >
vim ftp://ftp.home.vim.org/pub/vim/
<
For local directories, the trailing slash is not required. Again, because it's
easy to miss: to browse remote directories, the url must terminate with a
easy to miss: to browse remote directories, the URL must terminate with a
slash!
If you'd like to avoid entering the password repeatedly for remote directory
@ -1077,9 +1079,9 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
<c-r> Browse using a gvim server |netrw-ctrl-r|
<c-tab> Shrink/expand a netrw/explore window |netrw-c-tab|
- Makes Netrw go up one directory |netrw--|
a Toggles between normal display, |netrw-a|
a Cycles between normal display, |netrw-a|
hiding (suppress display of files matching g:netrw_list_hide)
showing (display only files which match g:netrw_list_hide)
and showing (display only files which match g:netrw_list_hide)
c Make browsing directory the current directory |netrw-c|
C Setting the editing window |netrw-C|
d Make a directory |netrw-d|
@ -1090,6 +1092,7 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
gh Quick hide/unhide of dot-files |netrw-gh|
gn Make top of tree the directory below the cursor |netrw-gn|
i Cycle between thin, long, wide, and tree listings |netrw-i|
I Toggle the displaying of the banner |netrw-I|
mb Bookmark current directory |netrw-mb|
mc Copy marked files to marked-file target directory |netrw-mc|
md Apply diff to marked files (up to 3) |netrw-md|
@ -1169,25 +1172,26 @@ QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
BANNER DISPLAY *netrw-I*
One may toggle the banner display on and off by pressing "I".
One may toggle the displaying of the banner by pressing "I".
Also See: |g:netrw_banner|
BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
One may easily "bookmark" the currently browsed directory by using >
mb
<
*.netrwbook*
Bookmarks are retained in between sessions in a $HOME/.netrwbook file, and are
kept in sorted order.
Bookmarks are retained in between sessions of vim in a file called .netrwbook
as a |List|, which is typically stored in the first directory on the user's
'|runtimepath|'; entries are kept in sorted order.
If there are marked files and/or directories, mb will add them to the bookmark
list.
*netrw-:NetrwMB*
*netrw-:NetrwMB*
Addtionally, one may use :NetrwMB to bookmark files or directories. >
:NetrwMB[!] [files/directories]
@ -1206,7 +1210,7 @@ The :NetrwMB command is available outside of netrw buffers (once netrw has been
invoked in the session).
The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
default, it's stored on the first directory on the user's |'runtimepath'|.
default, its stored on the first directory on the user's |'runtimepath'|.
Related Topics:
|netrw-gb| how to return (go) to a bookmark
@ -1418,20 +1422,20 @@ Related Topics:
CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir* {{{2
Every time you change to a new directory (new for the current session),
netrw will save the directory in a recently-visited directory history
list (unless |g:netrw_dirhistmax| is zero; by default, it's ten). With the
"u" map, one can change to an earlier directory (predecessor). To do
the opposite, see |netrw-U|.
Every time you change to a new directory (new for the current session), netrw
will save the directory in a recently-visited directory history list (unless
|g:netrw_dirhistmax| is zero; by default, it holds ten entries). With the "u"
map, one can change to an earlier directory (predecessor). To do the
opposite, see |netrw-U|.
The "u" map also accepts counts to go back in the history several slots.
For your convenience, qb (see |netrw-qb|) lists the history number which may
be used in that count.
The "u" map also accepts counts to go back in the history several slots. For
your convenience, qb (see |netrw-qb|) lists the history number which may be
used in that count.
*.netrwhist*
See |g:netrw_dirhistmax| for how to control the quantity of history stack
slots. The file ".netrwhist" holds history when netrw (and vim) is not
active. By default, it's stored on the first directory on the user's
active. By default, its stored on the first directory on the user's
|'runtimepath'|.
Related Topics:
@ -1467,10 +1471,10 @@ changing the top of the tree listing.
NETRW CLEAN *netrw-clean* *:NetrwClean* {{{2
With NetrwClean one may easily remove netrw from one's home directory;
With :NetrwClean one may easily remove netrw from one's home directory;
more precisely, from the first directory on your |'runtimepath'|.
With NetrwClean!, netrw will attempt to remove netrw from all directories on
With :NetrwClean!, netrw will attempt to remove netrw from all directories on
your |'runtimepath'|. Of course, you have to have write/delete permissions
correct to do this.
@ -1502,7 +1506,7 @@ Netrw determines which special handler by the following method:
If g:netrw_browsex_viewer == '-', then netrwFileHandlers#Invoke() will be
used instead (see |netrw_filehandler|).
* for Windows 32 or 64, the url and FileProtocolHandler dlls are used.
* for Windows 32 or 64, the URL and FileProtocolHandler dlls are used.
* for Gnome (with gnome-open): gnome-open is used.
* for KDE (with kfmclient) : kfmclient is used
* for Mac OS X : open is used.
@ -1518,9 +1522,10 @@ will apply a special handler to it (like "x" works when in a netrw buffer).
One may also use visual mode (see |visual-start|) to select the text that the
special handler will use. Normally gx uses expand("<cfile>") to pick up the
text under the cursor; one may change what |expand()| uses via the
|g:netrw_gx| variable. Alternatively, one may select the text to be used by
gx via first making a visual selection (see |visual-block|) or by changing
the |'isfname'| option (which is global, so netrw doesn't modify it).
|g:netrw_gx| variable (options include "<cword>", "<cWORD>"). Note that
expand("<cfile>") depends on the |'isfname'| setting. Alternatively, one may
select the text to be used by gx by making a visual selection (see
|visual-block|) and then pressing gx.
Associated setting variables:
|g:netrw_gx| control how gx picks up the text under the cursor
@ -1612,6 +1617,11 @@ A further approach is to delete files which match a pattern.
This will cause the matching files to be marked. Then,
press "D".
If your vim has 7.4 with patch#1107, then |g:netrw_localrmdir| no longer
is used to remove directories; instead, vim's |delete()| is used with
the "d" option. Please note that only empty directories may be deleted
with the "D" mapping. Regular files are deleted with |delete()|, too.
The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
used to control the attempts to remove remote files and directories. The
g:netrw_rm_cmd is used with files, and its default value is:
@ -1675,17 +1685,18 @@ DIRECTORY EXPLORATION COMMANDS {{{2
The [N] specifies a |g:netrw_winsize| just for the new :Lexplore
window.
Those who like this method often also often like tree style displays;
Those who like this method often also like tree style displays;
see |g:netrw_liststyle|.
:[N]Lexplore! [dir] is similar to :Lexplore, except that the full-height
Explorer window will open on the right hand side and an
uninitialized |g:netrw_chgwin| will be set to 1 (eg. edits will
preferentially occur in the leftmost window).
Also see: |netrw-C| |g:netrw_browse_split| |g:netrw_wiw|
|netrw-p| |netrw-P| |g:netrw_chgwin|
|netrw-c-tab| |g:netrw_winsize|
:[N]Lexplore! is like :Lexplore, except that the full-height Explorer window
will open on the right hand side and an uninitialized |g:netrw_chgwin|
will be set to 1.
*netrw-:Sexplore*
:[N]Sexplore will always split the window before invoking the local-directory
browser. As with Explore, the splitting is normally done
@ -1847,9 +1858,11 @@ EXECUTING FILE UNDER CURSOR VIA SYSTEM() *netrw-X* {{{2
Pressing X while the cursor is atop an executable file will yield a prompt
using the filename asking for any arguments. Upon pressing a [return], netrw
will then call |system()| with that command and arguments. The result will
be displayed by |:echomsg|, and so |:messages| will repeat display of the
result. Ansi escape sequences will be stripped out.
will then call |system()| with that command and arguments. The result will be
displayed by |:echomsg|, and so |:messages| will repeat display of the result.
Ansi escape sequences will be stripped out.
See |cmdline-window| for directions for more on how to edit the arguments.
FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2
@ -2072,7 +2085,7 @@ Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
|g:netrw_remote_mkdir| |netrw-%|
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* {{{2
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-cd* {{{2
By default, |g:netrw_keepdir| is 1. This setting means that the current
directory will not track the browsing directory. (done for backwards
@ -2087,6 +2100,9 @@ the two directories the same, use the "c" map (just type c). That map will
set Vim's notion of the current directory to netrw's current browsing
directory.
*netrw-c* : This map's name has been changed from "c" to cd (see |netrw-cd|).
This change was done to allow for |netrw-cb| and |netrw-cB| maps.
Associated setting variable: |g:netrw_keepdir|
MARKING FILES *netrw-:MF* *netrw-mf* {{{2
@ -2131,6 +2147,7 @@ The following netrw maps make use of marked files:
|netrw-mg| Apply vimgrep to marked files
|netrw-mm| Move marked files to target
|netrw-mp| Print marked files
|netrw-ms| Netrw will source marked files
|netrw-mt| Set target for |netrw-mm| and |netrw-mc|
|netrw-mT| Generate tags using marked files
|netrw-mv| Apply vim command to marked files
@ -2205,6 +2222,9 @@ converts "*" into ".*" (see |regexp|) and marks files based on that. In the
future I may make it possible to use |regexp|s instead of glob()-style
expressions (yet-another-option).
See |cmdline-window| for directions on more on how to edit the regular
expression.
MARKED FILES, ARBITRARY VIM COMMAND *netrw-mv* {{{2
(See |netrw-mf| and |netrw-mr| for how to mark files)
@ -2218,8 +2238,9 @@ the local marked file list, individually:
* run vim command
* sil! keepalt wq!
A prompt, "Enter vim command: ", will be issued to elicit the vim command
you wish used.
A prompt, "Enter vim command: ", will be issued to elicit the vim command you
wish used. See |cmdline-window| for directions for more on how to edit the
command.
MARKED FILES, ARBITRARY SHELL COMMAND *netrw-mx* {{{2
@ -2270,7 +2291,17 @@ MARKED FILES: ARGUMENT LIST *netrw-ma* *netrw-mA*
Using ma, one moves filenames from the marked file list to the argument list.
Using mA, one moves filenames from the argument list to the marked file list.
See Also: |netrw-qF| |argument-list| |:args|
See Also: |netrw-cb| |netrw-cB| |netrw-qF| |argument-list| |:args|
MARKED FILES: BUFFER LIST *netrw-cb* *netrw-cB*
(See |netrw-mf| and |netrw-mr| for how to mark files)
(uses the global marked-file list)
Using cb, one moves filenames from the marked file list to the buffer list.
Using cB, one copies filenames from the buffer list to the marked file list.
See Also: |netrw-ma| |netrw-mA| |netrw-qF| |buffer-list| |:buffers|
MARKED FILES: COMPRESSION AND DECOMPRESSION *netrw-mz* {{{2
@ -2306,8 +2337,8 @@ One may also copy directories and their contents (local only) to a target
directory.
Associated setting variables:
|g:netrw_localcopycmd|
|g:netrw_localcopydircmd|
|g:netrw_localcopycmd| |g:netrw_localcopycmdopt|
|g:netrw_localcopydircmd| |g:netrw_localcopydircmdopt|
|g:netrw_ssh_cmd|
MARKED FILES: DIFF *netrw-md* {{{2
@ -2452,8 +2483,8 @@ When a remote set of files are tagged, the resulting tags file is "obtained";
ie. a copy is transferred to the local system's directory. The now local tags
file is then modified so that one may use it through the network. The
modification made concerns the names of the files in the tags; each filename is
preceded by the netrw-compatible url used to obtain it. When one subsequently
uses one of the go to tag actions (|tags|), the url will be used by netrw to
preceded by the netrw-compatible URL used to obtain it. When one subsequently
uses one of the go to tag actions (|tags|), the URL will be used by netrw to
edit the desired file and go to the tag.
Associated setting variables: |g:netrw_ctags| |g:netrw_ssh_cmd|
@ -2555,8 +2586,8 @@ your browsing preferences. (see also: |netrw-settings|)
editing. It will also use the specified tab
and window numbers to perform editing
(see |clientserver|, |netrw-ctrl-r|)
This option does not affect |:Lexplore|
windows.
This option does not affect the production of
|:Lexplore| windows.
Related topics:
|g:netrw_alto| |g:netrw_altv|
@ -2715,6 +2746,7 @@ your browsing preferences. (see also: |netrw-settings|)
*g:netrw_home* The home directory for where bookmarks and
history are saved (as .netrwbook and
.netrwhist).
Netrw uses |expand()|on the string.
default: the first directory on the
|'runtimepath'|
@ -2735,7 +2767,7 @@ your browsing preferences. (see also: |netrw-settings|)
default: (if ssh is executable)
"ssh HOSTNAME ls -FLa"
*g:netrw_list_cmd_options* If this variable exists, then its contents are
*g:netrw_list_cmd_options* If this variable exists, then its contents are
appended to the g:netrw_list_cmd. For
example, use "2>/dev/null" to get rid of banner
messages on unix systems.
@ -2761,26 +2793,52 @@ your browsing preferences. (see also: |netrw-settings|)
let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
default: ""
*g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
="copy" Windows
*g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
=expand("$COMSPEC") Windows
Copies marked files (|netrw-mf|) to target
directory (|netrw-mt|, |netrw-mc|)
*g:netrw_localcopydircmd* ="cp -R" Linux/Unix/MacOS/Cygwin
="xcopy /e /c /h/ /i /k" Windows
*g:netrw_localcopycmdopt* ='' Linux/Unix/MacOS/Cygwin
=' \c copy' Windows
Options for the |g:netrw_localcopycmd|
*g:netrw_localcopydircmd* ="cp" Linux/Unix/MacOS/Cygwin
=expand("$COMSPEC") Windows
Copies directories to target directory.
(|netrw-mc|, |netrw-mt|)
*g:netrw_localmkdir* command for making a local directory
default: "mkdir"
*g:netrw_localcopydircmdopt* =" -R" Linux/Unix/MacOS/Cygwin
=" /c xcopy /e /c /h/ /i /k" Windows
Options for |g:netrw_localcopydircmd|
*g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
="move" Windows
*g:netrw_localmkdir* ="mkdir" Linux/Unix/MacOS/Cygwin
=expand("$COMSPEC") Windows
command for making a local directory
*g:netrw_localmkdiropt* ="" Linux/Unix/MacOS/Cygwin
=" /c mkdir" Windows
Options for |g:netrw_localmkdir|
*g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
=expand("$COMSPEC") Windows
Moves marked files (|netrw-mf|) to target
directory (|netrw-mt|, |netrw-mm|)
*g:netrw_localrmdir* remove directory command (rmdir)
default: "rmdir"
*g:netrw_localmovecmdopt* ="" Linux/Unix/MacOS/Cygwin
=" /c move" Windows
Options for |g:netrw_localmovecmd|
*g:netrw_localrmdir* ="rmdir" Linux/Unix/MacOS/Cygwin
=expand("$COMSPEC") Windows
Remove directory command (rmdir)
This variable is only used if your vim is
earlier than 7.4 or if your vim doesn't
have patch#1107. Otherwise, |delete()|
is used with the "d" option.
*g:netrw_localrmdiropt* ="" Linux/Unix/MacOS/Cygwin
=" /c rmdir" Windows
Options for |g:netrw_localrmdir|
*g:netrw_maxfilenamelen* =32 by default, selected so as to make long
listings fit on 80 column displays.
@ -2893,17 +2951,23 @@ your browsing preferences. (see also: |netrw-settings|)
netrwTilde : *
netrwTmp : tmp* *tmp
These syntax highlighting groups are linked
to Folded or DiffChange by default
(see |hl-Folded| and |hl-DiffChange|), but
one may put lines like >
In addition, those groups mentioned in
|'suffixes'| are also added to the special
file highlighting group.
These syntax highlighting groups are linked
to netrwGray or Folded by default
(see |hl-Folded|), but one may put lines like >
hi link netrwCompress Visual
< into one's <.vimrc> to use one's own
preferences. Alternatively, one may
put such specifications into
.vim/after/syntax/netrw.vim.
As an example, I myself use a dark-background
put such specifications into >
.vim/after/syntax/netrw.vim.
< The netrwGray highlighting is set up by
netrw when >
* netrwGray has not been previously
defined
* the gui is running
< As an example, I myself use a dark-background
colorscheme with the following in
.vim/after/syntax/netrw.vim: >
@ -3138,8 +3202,8 @@ If there are no marked files: (see |netrw-mf|)
Renaming files and directories involves moving the cursor to the
file/directory to be moved (renamed) and pressing "R". You will then be
queried for what you want the file/directory to be renamed to You may select
a range of lines with the "V" command (visual selection), and then
queried for what you want the file/directory to be renamed to. You may
select a range of lines with the "V" command (visual selection), and then
press "R"; you will be queried for each file as to what you want it
renamed to.
@ -3171,16 +3235,20 @@ If there are marked files: (see |netrw-mf|)
Note that moving files is a dangerous operation; copies are safer. That's
because a "move" for remote files is actually a copy + delete -- and if
the copy fails and the delete does not, you may lose the file.
the copy fails and the delete succeeds you may lose the file.
Use at your own risk.
The g:netrw_rename_cmd variable is used to implement remote renaming. By
default its value is:
The *g:netrw_rename_cmd* variable is used to implement remote renaming. By
default its value is: >
ssh HOSTNAME mv
<
One may rename a block of files and directories by selecting them with
V (|linewise-visual|) when using thin style
V (|linewise-visual|) when using thin style.
See |cmdline-editing| for more on how to edit the command line; in particular,
you'll find <ctrl-f> (initiates cmdline window editing) and <ctrl-c> (uses the
command line under the cursor) useful in conjunction with the R command.
SELECTING SORTING STYLE *netrw-s* *netrw-sort* {{{2
@ -3201,8 +3269,8 @@ number. Subsequent selection of a file to edit (|netrw-cr|) will use that
window.
* C : by itself, will select the current window holding a netrw buffer
for editing via |netrw-cr|. The C mapping is only available while in
netrw buffers.
for subsequent editing via |netrw-cr|. The C mapping is only available
while in netrw buffers.
* [count]C : the count will be used as the window number to be used
for subsequent editing via |netrw-cr|.
@ -3215,7 +3283,7 @@ window.
Using >
let g:netrw_chgwin= -1
will restore the default editing behavior
(ie. editing will use the current window).
(ie. subsequent editing will use the current window).
Related topics: |netrw-cr| |g:netrw_browse_split|
Associated setting variables: |g:netrw_chgwin|
@ -3236,9 +3304,9 @@ only if your terminal supports differentiating <c-tab> from a plain
* Else bring up a |:Lexplore| window
If |g:netrw_usetab| exists or is zero, or if there is a pre-existing mapping
If |g:netrw_usetab| exists and is zero, or if there is a pre-existing mapping
for <c-tab>, then the <c-tab> will not be mapped. One may map something other
than a <c-tab>, too: (but you'll still need to have had g:netrw_usetab set) >
than a <c-tab>, too: (but you'll still need to have had |g:netrw_usetab| set). >
nmap <unique> (whatever) <Plug>NetrwShrink
<
@ -3271,9 +3339,10 @@ The user function is passed one argument; it resembles >
fun! ExampleUserMapFunc(islocal)
<
where a:islocal is 1 if it's a local-directory system call or 0 when
where a:islocal is 1 if its a local-directory system call or 0 when
remote-directory system call.
*netrw-call* *netrw-expose* *netrw-modify*
Use netrw#Expose("varname") to access netrw-internal (script-local)
variables.
Use netrw#Modify("varname",newvalue) to change netrw-internal variables.
@ -3595,7 +3664,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
*netrw-p16*
P16. When editing remote files (ex. :e ftp://hostname/path/file),
under Windows I get an |E303| message complaining that it's unable
under Windows I get an |E303| message complaining that its unable
to open a swap file.
(romainl) It looks like you are starting Vim from a protected
@ -3649,7 +3718,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
P21. I've made a directory (or file) with an accented character, but
netrw isn't letting me enter that directory/read that file:
It's likely that the shell or o/s is using a different encoding
Its likely that the shell or o/s is using a different encoding
than you have vim (netrw) using. A patch to vim supporting
"systemencoding" may address this issue in the future; for
now, just have netrw use the proper encoding. For example: >
@ -3765,6 +3834,102 @@ netrw:
==============================================================================
12. History *netrw-history* {{{1
v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors
with a patch; these are now fixed.
Oct 26, 2016 * I started using mate-terminal and found that
x and gx (|netrw-x| and |netrw-gx|) were no
longer working. Fixed (using atril when
$DESKTOP_SESSION is "mate").
Nov 04, 2016 * (Martin Vuille) pointed out that @+ was
being restored with keepregstar rather than
keepregplus.
Nov 09, 2016 * Broke apart the command from the options,
mostly for Windows. Introduced new netrw
settings: |g:netrw_localcopycmdopt|
|g:netrw_localcopydircmdopt| |g:netrw_localmkdiropt|
|g:netrw_localmovecmdopt| |g:netrw_localrmdiropt|
Nov 21, 2016 * (mattn) provided a patch for preview; swapped
winwidth() with winheight()
Nov 22, 2016 * (glacambre) reported that files containing
spaces weren't being obtained properly via
scp. Fix: apparently using single quotes
such as with 'file name' wasn't enough; the
spaces inside the quotes also had to be
escaped (ie. 'file\ name').
* Also fixed obtain (|netrw-O|) to be able to
obtain files with spaces in their names
Dec 20, 2016 * (xc1427) Reported that using "I" (|netrw-I|)
when atop "Hiding" in the banner also caused
the active-banner hiding control to occur
Jan 03, 2017 * (Enno Nagel) reported that attempting to
apply netrw to a directory that was without
read permission caused a syntax error.
Jan 13, 2017 * (Ingo Karkat) provided a patch which makes
using netrw#Call() better. Now returns
value of internal routines return, for example.
Jan 13, 2017 * (Ingo Karkat) changed netrw#FileUrlRead to
use |:edit| instead of |:read|. I also
changed the routine name to netrw#FileUrlEdit.
Jan 16, 2017 * (Sayem) reported a problem where :Lexplore
could generate a new listing buffer and
window instead of toggling the netrw display.
Unfortunately, the directions for eliciting
the problem weren't complete, so I may or
may not have fixed that issue.
Feb 06, 2017 * Implemented cb and cB. Changed "c" to "cd".
(see |netrw-cb|, |netrw-cB|, and |netrw-cd|)
Mar 21, 2017 * previously, netrw would specify (safe) settings
even when the setting was already safe for
netrw. Netrw now attempts to leave such
already-netrw-safe settings alone.
(affects s:NetrwOptionRestore() and
s:NetrwSafeOptions(); also introduced
s:NetrwRestoreSetting())
Jun 26, 2017 * (Christian Brabandt) provided a patch to
allow curl to follow redirects (ie. -L
option)
Jun 26, 2017 * (Callum Howard) reported a problem with
:Lexpore not removing the Lexplore window
after a change-directory
Aug 30, 2017 * (Ingo Karkat) one cannot switch to the
previously edited file (e.g. with CTRL-^)
after editing a file:// URL. Patch to
have a "keepalt" included.
Oct 17, 2017 * (Adam Faryna) reported that gn (|netrw-gn|)
did not work on directories in the current
tree
v157: Apr 20, 2016 * (Nicola) had set up a "nmap <expr> ..." with
a function that returned a 0 while silently
invoking a shell command. The shell command
activated a ShellCmdPost event which in turn
called s:LocalBrowseRefresh(). That looks
over all netrw buffers for changes needing
refreshes. However, inside a |:map-<expr>|,
tab and window changes are disallowed. Fixed.
(affects netrw's s:LocalBrowseRefresh())
* |g:netrw_localrmdir| not used any more, but
the relevant patch that causes |delete()| to
take over was #1107 (not #1109).
* |expand()| is now used on |g:netrw_home|;
consequently, g:netrw_home may now use
environment variables
* s:NetrwLeftmouse and s:NetrwCLeftmouse will
return without doing anything if invoked
when inside a non-netrw window
Jun 15, 2016 * gx now calls netrw#GX() which returns
the word under the cursor. The new
wrinkle: if one is in a netrw buffer,
then netrw's s:NetrwGetWord().
Jun 22, 2016 * Netrw was executing all its associated
Filetype commands silently; I'm going
to try doing that "noisily" and see if
folks have a problem with that.
Aug 12, 2016 * Changed order of tool selection for
handling http://... viewing.
(Nikolay Aleksandrovich Pavlov)
Aug 21, 2016 * Included hiding/showing/all for tree
listings
* Fixed refresh (^L) for tree listings
v156: Feb 18, 2016 * Changed =~ to =~# where appropriate
Feb 23, 2016 * s:ComposePath(base,subdir) now uses
fnameescape() on the base portion
@ -3796,9 +3961,9 @@ netrw:
tell me how they're useful and should be
retained?
Nov 20, 2015 * Added |netrw-ma| and |netrw-mA| support
Nov 20, 2015 * gx (|netrw-gx|) on an url downloaded the
Nov 20, 2015 * gx (|netrw-gx|) on a URL downloaded the
file in addition to simply bringing up the
url in a browser. Fixed.
URL in a browser. Fixed.
Nov 23, 2015 * Added |g:netrw_sizestyle| support
Nov 27, 2015 * Inserted a lot of <c-u>s into various netrw
maps.

View File

@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 8.0. Last change: 2017 Jun 13
*quickfix.txt* For Vim version 8.0. Last change: 2017 Sep 13
VIM REFERENCE MANUAL by Bram Moolenaar
@ -44,6 +44,13 @@ From inside Vim an easy way to run a command and handle the output is with the
The 'errorformat' option should be set to match the error messages from your
compiler (see |errorformat| below).
*quickfix-ID*
Each quickfix list has a unique identifier called the quickfix ID and this
number will not change within a Vim session. The getqflist() function can be
used to get the identifier assigned to a list. There is also a quickfix list
number which may change whenever more than ten lists are added to a quickfix
stack.
*location-list* *E776*
A location list is a window-local quickfix list. You get one after commands
like `:lvimgrep`, `:lgrep`, `:lhelpgrep`, `:lmake`, etc., which create a

View File

@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.0. Last change: 2017 Aug 01
*quickref.txt* For Vim version 8.0. Last change: 2017 Oct 19
VIM REFERENCE MANUAL by Bram Moolenaar
@ -749,6 +749,7 @@ Short explanation of each option: *option-list*
'iminsert' 'imi' use :lmap or IM in Insert mode
'imsearch' 'ims' use :lmap or IM when typing a search pattern
'imstatusfunc' 'imsf' function to obtain X input method status
'imstyle' 'imst' specifies the input style of the input method
'include' 'inc' pattern to be used to find an include file
'includeexpr' 'inex' expression used to process an include line
'incsearch' 'is' highlight match while typing search pattern
@ -779,6 +780,8 @@ Short explanation of each option: *option-list*
'listchars' 'lcs' characters for displaying in list mode
'loadplugins' 'lpl' load plugin scripts when starting up
'luadll' name of the Lua dynamic library
'mzschemedll' name of the MzScheme dynamic library
'mzschemegcdll' name of the MzScheme dynamic library for GC
'macatsui' Mac GUI: use ATSUI text drawing
'magic' changes special characters in search patterns
'makeef' 'mef' name of the errorfile for ":make"
@ -974,6 +977,7 @@ Short explanation of each option: *option-list*
'winfixwidth' 'wfw' keep window width when opening/closing windows
'winminheight' 'wmh' minimum number of lines for any window
'winminwidth' 'wmw' minimal number of columns for any window
'winptydll' name of the winpty dynamic library
'winwidth' 'wiw' minimal number of columns for current window
'wrap' long lines wrap and continue on the next line
'wrapmargin' 'wm' chars from the right where wrapping starts

View File

@ -1,4 +1,4 @@
*spell.txt* For Vim version 8.0. Last change: 2016 Jan 08
*spell.txt* For Vim version 8.0. Last change: 2017 Oct 26
VIM REFERENCE MANUAL by Bram Moolenaar
@ -723,7 +723,7 @@ Additionally the following items are recognized:
= Case must match exactly.
? Rare word.
! Bad (wrong) word.
digit A region in which the word is valid. If no regions are
1 to 9 A region in which the word is valid. If no regions are
specified the word is valid in all regions.
Example:

View File

@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.0. Last change: 2017 Jul 15
*starting.txt* For Vim version 8.0. Last change: 2017 Nov 11
VIM REFERENCE MANUAL by Bram Moolenaar
@ -873,6 +873,9 @@ accordingly. Vim proceeds in this order:
(*) Using this file or environment variable will cause 'compatible' to be
off by default. See |compatible-default|.
Note: When using the |mzscheme| interface, it is initialized after loading
the vimrc file. Changing 'mzschemedll' later has no effect.
4. Load the plugin scripts. *load-plugins*
This does the same as the command: >
:runtime! plugin/**/*.vim
@ -1044,7 +1047,7 @@ details. NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
patch 7.4.2111 to be exact).
This should work well for new Vim users. If you create your own .vimrc, it is
recommended to add this line somewhere near the top: >
recommended to add these lines somewhere near the top: >
unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim
Then Vim works like before you had a .vimrc. Copying $VIMRUNTIME/vimrc_example
@ -1415,7 +1418,7 @@ The output of ":mkview" contains these items:
5. The scroll position and the cursor position in the file. Doesn't work very
well when there are closed folds.
6. The local current directory, if it is different from the global current
directory.
directory and 'viewoptions' contains "curdir".
Note that Views and Sessions are not perfect:
- They don't restore everything. For example, defined functions, autocommands
@ -1527,7 +1530,7 @@ Notes for Unix:
you have worked with.
- If you want to share the viminfo file with other users (e.g. when you "su"
to another user), you can make the file writable for the group or everybody.
Vim will preserve this when writing new viminfo files. Be careful, don't
Vim will preserve this when replacing the viminfo file. Be careful, don't
allow just anybody to read and write your viminfo file!
- Vim will not overwrite a viminfo file that is not writable by the current
"real" user. This helps for when you did "su" to become root, but your

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.0. Last change: 2017 Jul 14
*syntax.txt* For Vim version 8.0. Last change: 2017 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@ -61,10 +61,12 @@ fine. If it doesn't, try setting the VIM environment variable to the
directory where the Vim stuff is located. For example, if your syntax files
are in the "/usr/vim/vim50/syntax" directory, set $VIMRUNTIME to
"/usr/vim/vim50". You must do this in the shell, before starting Vim.
This command also sources the |menu.vim| script when the GUI is running or
will start soon. See |'go-M'| about avoiding that.
*:syn-on* *:syntax-on*
The ":syntax enable" command will keep your current color settings. This
allows using ":highlight" commands to set your preferred colors before or
The `:syntax enable` command will keep your current color settings. This
allows using `:highlight` commands to set your preferred colors before or
after using this command. If you want Vim to overrule your settings with the
defaults, use: >
:syntax on
@ -810,12 +812,9 @@ See |mysyntaxfile-add| for installing script languages permanently.
APACHE *apache.vim* *ft-apache-syntax*
The apache syntax file provides syntax highlighting depending on Apache HTTP
server version, by default for 1.3.x. Set "apache_version" to Apache version
(as a string) to get highlighting for another version. Example: >
The apache syntax file provides syntax highlighting for Apache HTTP server
version 2.2.3.
:let apache_version = "2.0"
<
*asm.vim* *asmh8300.vim* *nasm.vim* *masm.vim* *asm68k*
ASSEMBLY *ft-asm-syntax* *ft-asmh8300-syntax* *ft-nasm-syntax*
@ -2138,6 +2137,16 @@ set "msql_minlines" to the value you desire. Example: >
:let msql_minlines = 200
N1QL *n1ql.vim* *ft-n1ql-syntax*
N1QL is a SQL-like declarative language for manipulating JSON documents in
Couchbase Server databases.
Vim syntax highlights N1QL statements, keywords, operators, types, comments,
and special values. Vim ignores syntactical elements specific to SQL or its
many dialects, like COLUMN or CHAR, that don't exist in N1QL.
NCF *ncf.vim* *ft-ncf-syntax*
There is one option for NCF syntax highlighting.
@ -4689,23 +4698,26 @@ the same syntax file on all terminals, and use the optimal highlighting.
*bold* *underline* *undercurl*
*inverse* *italic* *standout*
*nocombine* *strikethrough*
term={attr-list} *attr-list* *highlight-term* *E418*
attr-list is a comma separated list (without spaces) of the
following items (in any order):
bold
underline
undercurl not always available
strikethrough not always available
reverse
inverse same as reverse
italic
standout
nocombine override attributes instead of combining them
NONE no attributes used (used to reset it)
Note that "bold" can be used here and by using a bold font. They
have the same effect.
"undercurl" is a curly underline. When "undercurl" is not possible
then "underline" is used. In general "undercurl" is only available in
the GUI. The color is set with |highlight-guisp|.
then "underline" is used. In general "undercurl" and "strikethrough"
is only available in the GUI. The color is set with |highlight-guisp|.
start={term-list} *highlight-start* *E422*
stop={term-list} *term-list* *highlight-stop*
@ -4870,7 +4882,8 @@ guifg={color-name} *highlight-guifg*
guibg={color-name} *highlight-guibg*
guisp={color-name} *highlight-guisp*
These give the foreground (guifg), background (guibg) and special
(guisp) color to use in the GUI. "guisp" is used for undercurl.
(guisp) color to use in the GUI. "guisp" is used for undercurl and
strikethrough.
There are a few special names:
NONE no color (transparent)
bg use normal background color

View File

@ -4,6 +4,7 @@
$ motion.txt /*$*
$HOME options.txt /*$HOME*
$HOME-use version5.txt /*$HOME-use*
$HOME-windows options.txt /*$HOME-windows*
$MYGVIMRC gui.txt /*$MYGVIMRC*
$MYVIMRC starting.txt /*$MYVIMRC*
$VIM starting.txt /*$VIM*
@ -306,6 +307,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'go-g' options.txt /*'go-g'*
'go-h' options.txt /*'go-h'*
'go-i' options.txt /*'go-i'*
'go-k' options.txt /*'go-k'*
'go-l' options.txt /*'go-l'*
'go-m' options.txt /*'go-m'*
'go-p' options.txt /*'go-p'*
@ -366,7 +368,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'ims' options.txt /*'ims'*
'imsearch' options.txt /*'imsearch'*
'imsf' options.txt /*'imsf'*
'imst' options.txt /*'imst'*
'imstatusfunc' options.txt /*'imstatusfunc'*
'imstyle' options.txt /*'imstyle'*
'inc' options.txt /*'inc'*
'include' options.txt /*'include'*
'includeexpr' options.txt /*'includeexpr'*
@ -474,6 +478,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'msm' options.txt /*'msm'*
'mzq' options.txt /*'mzq'*
'mzquantum' options.txt /*'mzquantum'*
'mzschemedll' options.txt /*'mzschemedll'*
'mzschemegcdll' options.txt /*'mzschemegcdll'*
'nf' options.txt /*'nf'*
'noacd' options.txt /*'noacd'*
'noai' options.txt /*'noai'*
@ -935,6 +941,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
't_Co' term.txt /*'t_Co'*
't_Cs' term.txt /*'t_Cs'*
't_DL' term.txt /*'t_DL'*
't_EC' term.txt /*'t_EC'*
't_EI' term.txt /*'t_EI'*
't_F1' term.txt /*'t_F1'*
't_F2' term.txt /*'t_F2'*
@ -971,12 +978,20 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
't_PE' term.txt /*'t_PE'*
't_PS' term.txt /*'t_PS'*
't_RB' term.txt /*'t_RB'*
't_RC' term.txt /*'t_RC'*
't_RF' term.txt /*'t_RF'*
't_RI' term.txt /*'t_RI'*
't_RS' term.txt /*'t_RS'*
't_RV' term.txt /*'t_RV'*
't_SC' term.txt /*'t_SC'*
't_SH' term.txt /*'t_SH'*
't_SI' term.txt /*'t_SI'*
't_SR' term.txt /*'t_SR'*
't_Sb' term.txt /*'t_Sb'*
't_Sf' term.txt /*'t_Sf'*
't_Te' term.txt /*'t_Te'*
't_Ts' term.txt /*'t_Ts'*
't_VS' term.txt /*'t_VS'*
't_WP' term.txt /*'t_WP'*
't_WS' term.txt /*'t_WS'*
't_ZH' term.txt /*'t_ZH'*
@ -1167,6 +1182,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'winheight' options.txt /*'winheight'*
'winminheight' options.txt /*'winminheight'*
'winminwidth' options.txt /*'winminwidth'*
'winptydll' options.txt /*'winptydll'*
'winwidth' options.txt /*'winwidth'*
'wiv' options.txt /*'wiv'*
'wiw' options.txt /*'wiw'*
@ -1315,6 +1331,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+tcl various.txt /*+tcl*
+tcl/dyn various.txt /*+tcl\/dyn*
+termguicolors various.txt /*+termguicolors*
+terminal various.txt /*+terminal*
+terminfo various.txt /*+terminfo*
+termresponse various.txt /*+termresponse*
+textobjects various.txt /*+textobjects*
@ -1322,6 +1339,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+timers various.txt /*+timers*
+title various.txt /*+title*
+toolbar various.txt /*+toolbar*
+unix eval.txt /*+unix*
+user_commands various.txt /*+user_commands*
+vertsplit various.txt /*+vertsplit*
+viminfo various.txt /*+viminfo*
@ -1886,6 +1904,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:<afile> cmdline.txt /*:<afile>*
:<amatch> cmdline.txt /*:<amatch>*
:<cWORD> cmdline.txt /*:<cWORD>*
:<cexpr> cmdline.txt /*:<cexpr>*
:<cfile> cmdline.txt /*:<cfile>*
:<cword> cmdline.txt /*:<cword>*
:<sfile> cmdline.txt /*:<sfile>*
@ -1945,6 +1964,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:Sexplore pi_netrw.txt /*:Sexplore*
:TOhtml syntax.txt /*:TOhtml*
:TarDiff pi_tar.txt /*:TarDiff*
:Termdebug terminal.txt /*:Termdebug*
:Texplore pi_netrw.txt /*:Texplore*
:UseVimball pi_vimball.txt /*:UseVimball*
:Vexplore pi_netrw.txt /*:Vexplore*
@ -3116,9 +3136,16 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:tl tagsrch.txt /*:tl*
:tlast tagsrch.txt /*:tlast*
:tm gui.txt /*:tm*
:tma map.txt /*:tma*
:tmap map.txt /*:tmap*
:tmap_l map.txt /*:tmap_l*
:tmapc map.txt /*:tmapc*
:tmapclear map.txt /*:tmapclear*
:tmenu gui.txt /*:tmenu*
:tn tagsrch.txt /*:tn*
:tnext tagsrch.txt /*:tnext*
:tno map.txt /*:tno*
:tnoremap map.txt /*:tnoremap*
:topleft windows.txt /*:topleft*
:tp tagsrch.txt /*:tp*
:tprevious tagsrch.txt /*:tprevious*
@ -3128,6 +3155,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:ts tagsrch.txt /*:ts*
:tselect tagsrch.txt /*:tselect*
:tu gui.txt /*:tu*
:tunma map.txt /*:tunma*
:tunmap map.txt /*:tunmap*
:tunmenu gui.txt /*:tunmenu*
:u undo.txt /*:u*
:un undo.txt /*:un*
@ -3392,6 +3421,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
<bang> map.txt /*<bang>*
<buffer=N> autocmd.txt /*<buffer=N>*
<buffer=abuf> autocmd.txt /*<buffer=abuf>*
<cexpr> cmdline.txt /*<cexpr>*
<cfile> cmdline.txt /*<cfile>*
<character> intro.txt /*<character>*
<count> map.txt /*<count>*
@ -3422,6 +3452,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
<mods> map.txt /*<mods>*
<nomodeline> autocmd.txt /*<nomodeline>*
<q-args> map.txt /*<q-args>*
<range> map.txt /*<range>*
<reg> map.txt /*<reg>*
<register> map.txt /*<register>*
<sfile> cmdline.txt /*<sfile>*
@ -3627,6 +3658,8 @@ Cmd-event autocmd.txt /*Cmd-event*
CmdUndefined autocmd.txt /*CmdUndefined*
Cmdline cmdline.txt /*Cmdline*
Cmdline-mode cmdline.txt /*Cmdline-mode*
CmdlineEnter autocmd.txt /*CmdlineEnter*
CmdlineLeave autocmd.txt /*CmdlineLeave*
CmdwinEnter autocmd.txt /*CmdwinEnter*
CmdwinLeave autocmd.txt /*CmdwinLeave*
ColorScheme autocmd.txt /*ColorScheme*
@ -3729,7 +3762,6 @@ E169 message.txt /*E169*
E17 message.txt /*E17*
E170 eval.txt /*E170*
E171 eval.txt /*E171*
E172 message.txt /*E172*
E173 message.txt /*E173*
E174 map.txt /*E174*
E175 map.txt /*E175*
@ -4535,6 +4567,8 @@ E943 message.txt /*E943*
E944 pattern.txt /*E944*
E945 pattern.txt /*E945*
E946 terminal.txt /*E946*
E947 terminal.txt /*E947*
E948 terminal.txt /*E948*
E95 message.txt /*E95*
E96 diff.txt /*E96*
E97 diff.txt /*E97*
@ -4821,6 +4855,7 @@ W22 eval.txt /*W22*
WORD motion.txt /*WORD*
WWW intro.txt /*WWW*
Win32 os_win32.txt /*Win32*
WinBar gui.txt /*WinBar*
WinEnter autocmd.txt /*WinEnter*
WinLeave autocmd.txt /*WinLeave*
WinNew autocmd.txt /*WinNew*
@ -6132,6 +6167,7 @@ ft-mathematica-syntax syntax.txt /*ft-mathematica-syntax*
ft-mma-syntax syntax.txt /*ft-mma-syntax*
ft-moo-syntax syntax.txt /*ft-moo-syntax*
ft-msql-syntax syntax.txt /*ft-msql-syntax*
ft-n1ql-syntax syntax.txt /*ft-n1ql-syntax*
ft-nasm-syntax syntax.txt /*ft-nasm-syntax*
ft-ncf-syntax syntax.txt /*ft-ncf-syntax*
ft-nroff-syntax syntax.txt /*ft-nroff-syntax*
@ -6358,10 +6394,15 @@ g:netrw_list_cmd_options pi_netrw.txt /*g:netrw_list_cmd_options*
g:netrw_list_hide pi_netrw.txt /*g:netrw_list_hide*
g:netrw_liststyle pi_netrw.txt /*g:netrw_liststyle*
g:netrw_localcopycmd pi_netrw.txt /*g:netrw_localcopycmd*
g:netrw_localcopycmdopt pi_netrw.txt /*g:netrw_localcopycmdopt*
g:netrw_localcopydircmd pi_netrw.txt /*g:netrw_localcopydircmd*
g:netrw_localcopydircmdopt pi_netrw.txt /*g:netrw_localcopydircmdopt*
g:netrw_localmkdir pi_netrw.txt /*g:netrw_localmkdir*
g:netrw_localmkdiropt pi_netrw.txt /*g:netrw_localmkdiropt*
g:netrw_localmovecmd pi_netrw.txt /*g:netrw_localmovecmd*
g:netrw_localmovecmdopt pi_netrw.txt /*g:netrw_localmovecmdopt*
g:netrw_localrmdir pi_netrw.txt /*g:netrw_localrmdir*
g:netrw_localrmdiropt pi_netrw.txt /*g:netrw_localrmdiropt*
g:netrw_maxfilenamelen pi_netrw.txt /*g:netrw_maxfilenamelen*
g:netrw_menu pi_netrw.txt /*g:netrw_menu*
g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd*
@ -6371,11 +6412,13 @@ g:netrw_nogx pi_netrw.txt /*g:netrw_nogx*
g:netrw_preview pi_netrw.txt /*g:netrw_preview*
g:netrw_rcp_cmd pi_netrw.txt /*g:netrw_rcp_cmd*
g:netrw_remote_mkdir pi_netrw.txt /*g:netrw_remote_mkdir*
g:netrw_rename_cmd pi_netrw.txt /*g:netrw_rename_cmd*
g:netrw_retmap pi_netrw.txt /*g:netrw_retmap*
g:netrw_rm_cmd pi_netrw.txt /*g:netrw_rm_cmd*
g:netrw_rmdir_cmd pi_netrw.txt /*g:netrw_rmdir_cmd*
g:netrw_rmf_cmd pi_netrw.txt /*g:netrw_rmf_cmd*
g:netrw_rsync_cmd pi_netrw.txt /*g:netrw_rsync_cmd*
g:netrw_rsync_sep pi_netrw.txt /*g:netrw_rsync_sep*
g:netrw_scp_cmd pi_netrw.txt /*g:netrw_scp_cmd*
g:netrw_scpport pi_netrw.txt /*g:netrw_scpport*
g:netrw_sepchr pi_netrw.txt /*g:netrw_sepchr*
@ -6493,6 +6536,7 @@ ga various.txt /*ga*
garbagecollect() eval.txt /*garbagecollect()*
gd pattern.txt /*gd*
gdb debug.txt /*gdb*
gdb-version terminal.txt /*gdb-version*
ge motion.txt /*ge*
get() eval.txt /*get()*
get-ms-debuggers debug.txt /*get-ms-debuggers*
@ -7261,6 +7305,7 @@ mapmode-n map.txt /*mapmode-n*
mapmode-nvo map.txt /*mapmode-nvo*
mapmode-o map.txt /*mapmode-o*
mapmode-s map.txt /*mapmode-s*
mapmode-t map.txt /*mapmode-t*
mapmode-v map.txt /*mapmode-v*
mapmode-x map.txt /*mapmode-x*
mapping map.txt /*mapping*
@ -7375,6 +7420,7 @@ mzscheme-vim if_mzsch.txt /*mzscheme-vim*
mzscheme-vimext if_mzsch.txt /*mzscheme-vimext*
mzscheme-window if_mzsch.txt /*mzscheme-window*
n pattern.txt /*n*
n1ql.vim syntax.txt /*n1ql.vim*
nasm.vim syntax.txt /*nasm.vim*
navigation motion.txt /*navigation*
nb-commands netbeans.txt /*nb-commands*
@ -7447,7 +7493,11 @@ netrw-browser-var pi_netrw.txt /*netrw-browser-var*
netrw-browsing pi_netrw.txt /*netrw-browsing*
netrw-c pi_netrw.txt /*netrw-c*
netrw-c-tab pi_netrw.txt /*netrw-c-tab*
netrw-cB pi_netrw.txt /*netrw-cB*
netrw-cadaver pi_netrw.txt /*netrw-cadaver*
netrw-call pi_netrw.txt /*netrw-call*
netrw-cb pi_netrw.txt /*netrw-cb*
netrw-cd pi_netrw.txt /*netrw-cd*
netrw-chgup pi_netrw.txt /*netrw-chgup*
netrw-clean pi_netrw.txt /*netrw-clean*
netrw-contents pi_netrw.txt /*netrw-contents*
@ -7473,6 +7523,7 @@ netrw-enter pi_netrw.txt /*netrw-enter*
netrw-ex pi_netrw.txt /*netrw-ex*
netrw-explore pi_netrw.txt /*netrw-explore*
netrw-explore-cmds pi_netrw.txt /*netrw-explore-cmds*
netrw-expose pi_netrw.txt /*netrw-expose*
netrw-externapp pi_netrw.txt /*netrw-externapp*
netrw-file pi_netrw.txt /*netrw-file*
netrw-filigree pi_netrw.txt /*netrw-filigree*
@ -7522,6 +7573,7 @@ netrw-mh pi_netrw.txt /*netrw-mh*
netrw-middlemouse pi_netrw.txt /*netrw-middlemouse*
netrw-ml_get pi_netrw.txt /*netrw-ml_get*
netrw-mm pi_netrw.txt /*netrw-mm*
netrw-modify pi_netrw.txt /*netrw-modify*
netrw-mouse pi_netrw.txt /*netrw-mouse*
netrw-move pi_netrw.txt /*netrw-move*
netrw-mp pi_netrw.txt /*netrw-mp*
@ -7718,6 +7770,7 @@ no-type-checking eval.txt /*no-type-checking*
no_buffers_menu gui.txt /*no_buffers_menu*
no_mail_maps filetype.txt /*no_mail_maps*
no_plugin_maps filetype.txt /*no_plugin_maps*
nocombine syntax.txt /*nocombine*
non-greedy pattern.txt /*non-greedy*
non-zero-arg eval.txt /*non-zero-arg*
none-variable eval.txt /*none-variable*
@ -7766,6 +7819,7 @@ option-summary options.txt /*option-summary*
option-window options.txt /*option-window*
options options.txt /*options*
options-changed version5.txt /*options-changed*
options-in-terminal terminal.txt /*options-in-terminal*
options.txt options.txt /*options.txt*
optwin options.txt /*optwin*
or() eval.txt /*or()*
@ -7994,6 +8048,7 @@ qnx-terminal os_qnx.txt /*qnx-terminal*
quake.vim syntax.txt /*quake.vim*
quickfix quickfix.txt /*quickfix*
quickfix-6 version6.txt /*quickfix-6*
quickfix-ID quickfix.txt /*quickfix-ID*
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
quickfix-error-lists quickfix.txt /*quickfix-error-lists*
quickfix-functions usr_41.txt /*quickfix-functions*
@ -8223,6 +8278,7 @@ servername-variable eval.txt /*servername-variable*
session-file starting.txt /*session-file*
set-option options.txt /*set-option*
set-spc-auto spell.txt /*set-spc-auto*
setbufline() eval.txt /*setbufline()*
setbufvar() eval.txt /*setbufvar()*
setcharsearch() eval.txt /*setcharsearch()*
setcmdpos() eval.txt /*setcmdpos()*
@ -8429,6 +8485,7 @@ star pattern.txt /*star*
starstar editing.txt /*starstar*
starstar-wildcard editing.txt /*starstar-wildcard*
start-of-file pattern.txt /*start-of-file*
start-vimdiff diff.txt /*start-vimdiff*
starting starting.txt /*starting*
starting-amiga starting.txt /*starting-amiga*
starting.txt starting.txt /*starting.txt*
@ -8449,6 +8506,7 @@ strdisplaywidth() eval.txt /*strdisplaywidth()*
strftime() eval.txt /*strftime()*
strgetchar() eval.txt /*strgetchar()*
stridx() eval.txt /*stridx()*
strikethrough syntax.txt /*strikethrough*
string eval.txt /*string*
string() eval.txt /*string()*
string-functions usr_41.txt /*string-functions*
@ -8535,11 +8593,14 @@ t_AL term.txt /*t_AL*
t_BD term.txt /*t_BD*
t_BE term.txt /*t_BE*
t_CS term.txt /*t_CS*
t_CTRL-W_CTRL-C terminal.txt /*t_CTRL-W_CTRL-C*
t_CTRL-\_CTRL-N terminal.txt /*t_CTRL-\\_CTRL-N*
t_CV term.txt /*t_CV*
t_Ce term.txt /*t_Ce*
t_Co term.txt /*t_Co*
t_Cs term.txt /*t_Cs*
t_DL term.txt /*t_DL*
t_EC term.txt /*t_EC*
t_EI term.txt /*t_EI*
t_F1 term.txt /*t_F1*
t_F2 term.txt /*t_F2*
@ -8576,12 +8637,20 @@ t_KL term.txt /*t_KL*
t_PE term.txt /*t_PE*
t_PS term.txt /*t_PS*
t_RB term.txt /*t_RB*
t_RC term.txt /*t_RC*
t_RF term.txt /*t_RF*
t_RI term.txt /*t_RI*
t_RS term.txt /*t_RS*
t_RV term.txt /*t_RV*
t_SC term.txt /*t_SC*
t_SH term.txt /*t_SH*
t_SI term.txt /*t_SI*
t_SR term.txt /*t_SR*
t_Sb term.txt /*t_Sb*
t_Sf term.txt /*t_Sf*
t_Te term.txt /*t_Te*
t_Ts term.txt /*t_Ts*
t_VS term.txt /*t_VS*
t_WP term.txt /*t_WP*
t_WS term.txt /*t_WS*
t_ZH term.txt /*t_ZH*
@ -8794,19 +8863,25 @@ temp-file-name eval.txt /*temp-file-name*
tempfile change.txt /*tempfile*
template autocmd.txt /*template*
tempname() eval.txt /*tempname()*
term++close terminal.txt /*term++close*
term++open terminal.txt /*term++open*
term-dependent-settings term.txt /*term-dependent-settings*
term-list syntax.txt /*term-list*
term.txt term.txt /*term.txt*
term_getaltscreen() eval.txt /*term_getaltscreen()*
term_getattr() eval.txt /*term_getattr()*
term_getcursor() eval.txt /*term_getcursor()*
term_getjob() eval.txt /*term_getjob()*
term_getline() eval.txt /*term_getline()*
term_getscrolled() eval.txt /*term_getscrolled()*
term_getsize() eval.txt /*term_getsize()*
term_getstatus() eval.txt /*term_getstatus()*
term_gettitle() eval.txt /*term_gettitle()*
term_gettty() eval.txt /*term_gettty()*
term_list() eval.txt /*term_list()*
term_scrape() eval.txt /*term_scrape()*
term_sendkeys() eval.txt /*term_sendkeys()*
term_setsize() eval.txt /*term_setsize()*
term_start() eval.txt /*term_start()*
term_wait() eval.txt /*term_wait()*
termcap term.txt /*termcap*
@ -8816,14 +8891,29 @@ termcap-cursor-color term.txt /*termcap-cursor-color*
termcap-cursor-shape term.txt /*termcap-cursor-shape*
termcap-options term.txt /*termcap-options*
termcap-title term.txt /*termcap-title*
termdebug-commands terminal.txt /*termdebug-commands*
termdebug-communication terminal.txt /*termdebug-communication*
termdebug-customizing terminal.txt /*termdebug-customizing*
termdebug-example terminal.txt /*termdebug-example*
termdebug-starting terminal.txt /*termdebug-starting*
termdebug-stepping terminal.txt /*termdebug-stepping*
termdebug-variables terminal.txt /*termdebug-variables*
terminal terminal.txt /*terminal*
terminal-colors os_unix.txt /*terminal-colors*
terminal-cursor-style terminal.txt /*terminal-cursor-style*
terminal-debug terminal.txt /*terminal-debug*
terminal-functions usr_41.txt /*terminal-functions*
terminal-info term.txt /*terminal-info*
terminal-key-codes term.txt /*terminal-key-codes*
terminal-ms-windows terminal.txt /*terminal-ms-windows*
terminal-options term.txt /*terminal-options*
terminal-output-codes term.txt /*terminal-output-codes*
terminal-resizing terminal.txt /*terminal-resizing*
terminal-size-color terminal.txt /*terminal-size-color*
terminal-special-keys terminal.txt /*terminal-special-keys*
terminal-testing terminal.txt /*terminal-testing*
terminal-typing terminal.txt /*terminal-typing*
terminal-unix terminal.txt /*terminal-unix*
terminal-use terminal.txt /*terminal-use*
terminal.txt terminal.txt /*terminal.txt*
terminfo term.txt /*terminfo*
@ -8831,6 +8921,7 @@ termresponse-variable eval.txt /*termresponse-variable*
test-functions usr_41.txt /*test-functions*
test_alloc_fail() eval.txt /*test_alloc_fail()*
test_autochdir() eval.txt /*test_autochdir()*
test_feedinput() eval.txt /*test_feedinput()*
test_garbagecollect_now() eval.txt /*test_garbagecollect_now()*
test_ignore_error() eval.txt /*test_ignore_error()*
test_null_channel() eval.txt /*test_null_channel()*
@ -9057,7 +9148,12 @@ v:t_list eval.txt /*v:t_list*
v:t_none eval.txt /*v:t_none*
v:t_number eval.txt /*v:t_number*
v:t_string eval.txt /*v:t_string*
v:termblinkresp eval.txt /*v:termblinkresp*
v:termrbgresp eval.txt /*v:termrbgresp*
v:termresponse eval.txt /*v:termresponse*
v:termrfgresp eval.txt /*v:termrfgresp*
v:termstyleresp eval.txt /*v:termstyleresp*
v:termu7resp eval.txt /*v:termu7resp*
v:testing eval.txt /*v:testing*
v:this_session eval.txt /*v:this_session*
v:throwpoint eval.txt /*v:throwpoint*
@ -9340,6 +9436,8 @@ wildmenumode() eval.txt /*wildmenumode()*
win32 os_win32.txt /*win32*
win32-!start gui_w32.txt /*win32-!start*
win32-PATH os_win32.txt /*win32-PATH*
win32-backslashes os_win32.txt /*win32-backslashes*
win32-cmdargs os_win32.txt /*win32-cmdargs*
win32-colors gui_w32.txt /*win32-colors*
win32-compiling os_win32.txt /*win32-compiling*
win32-curdir os_win32.txt /*win32-curdir*
@ -9377,6 +9475,7 @@ window-resize windows.txt /*window-resize*
window-size term.txt /*window-size*
window-size-functions usr_41.txt /*window-size-functions*
window-tag windows.txt /*window-tag*
window-toolbar gui.txt /*window-toolbar*
window-variable eval.txt /*window-variable*
windowid windows.txt /*windowid*
windowid-variable eval.txt /*windowid-variable*

View File

@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 8.0. Last change: 2016 Sep 20
*tagsrch.txt* For Vim version 8.0. Last change: 2017 Oct 20
VIM REFERENCE MANUAL by Bram Moolenaar
@ -195,6 +195,7 @@ the same entry.
information in the tags file(s).
When [ident] is not given, the last tag name from the
tag stack is used.
See |tag-!| for [!].
With a '>' in the first column is indicated which is
the current position in the list (if there is one).
[ident] can be a regexp pattern, see |tag-regexp|.

View File

@ -1,4 +1,4 @@
*term.txt* For Vim version 8.0. Last change: 2017 Jul 21
*term.txt* For Vim version 8.0. Last change: 2017 Oct 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -295,13 +295,11 @@ OUTPUT CODES *terminal-output-codes*
t_ts set window title start (to status line) *t_ts* *'t_ts'*
t_ue underline end *t_ue* *'t_ue'*
t_us underline mode *t_us* *'t_us'*
t_Ce undercurl end *t_Ce* *'t_Ce'*
t_Cs undercurl mode *t_Cs* *'t_Cs'*
t_ut clearing uses the current background color *t_ut* *'t_ut'*
t_vb visual bell *t_vb* *'t_vb'*
t_ve cursor visible *t_ve* *'t_ve'*
t_vi cursor invisible *t_vi* *'t_vi'*
t_vs cursor very visible *t_vs* *'t_vs'*
t_vs cursor very visible (blink) *t_vs* *'t_vs'*
*t_xs* *'t_xs'*
t_xs if non-empty, standout not erased by overwriting (hpterm)
*t_xn* *'t_xn'*
@ -311,11 +309,16 @@ OUTPUT CODES *terminal-output-codes*
t_ZR italics end *t_ZR* *'t_ZR'*
Added by Vim (there are no standard codes for these):
t_Ce undercurl end *t_Ce* *'t_Ce'*
t_Cs undercurl mode *t_Cs* *'t_Cs'*
t_Te strikethrough end *t_Te* *'t_Te'*
t_Ts strikethrough mode *t_Ts* *'t_Ts'*
t_IS set icon text start *t_IS* *'t_IS'*
t_IE set icon text end *t_IE* *'t_IE'*
t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
t_GP get window position (Y, X) in pixels *t_GP* *'t_GP'*
t_WS set window size (height, width in cells) *t_WS* *'t_WS'*
t_VS cursor normally visible (no blink) *t_VS* *'t_VS'*
t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'*
t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'*
@ -324,6 +327,7 @@ Added by Vim (there are no standard codes for these):
|xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes|
t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
see |'ambiwidth'|
t_RF request terminal foreground color *t_RF* *'t_RF'*
t_RB request terminal background color *t_RB* *'t_RB'*
t_8f set foreground color (R, G, B) *t_8f* *'t_8f'*
|xterm-true-color|
@ -333,6 +337,29 @@ Added by Vim (there are no standard codes for these):
|xterm-bracketed-paste|
t_BD disable bracketed paste mode *t_BD* *'t_BD'*
|xterm-bracketed-paste|
t_SC set cursor color start *t_SC* *'t_SC'*
t_EC set cursor color end *t_EC* *'t_EC'*
t_SH set cursor shape *t_SH* *'t_SH'*
t_RC request terminal cursor blinking *t_RC* *'t_RC'*
t_RS request terminal cursor style *t_RS* *'t_RS'*
Some codes have a start, middle and end part. The start and end are defined
by the termcap option, the middle part is text.
set title text: t_ts {title text} t_fs
set icon text: t_IS {icon text} t_IE
set cursor color: t_SC {color name} t_EC
t_SH must take one argument:
0, 1 or none blinking block cursor
2 block cursor
3 blinking underline cursor
4 underline cursor
5 blinking vertical bar cursor
6 vertical bar cursor
t_RS is sent only if the response to t_RV has been received. It is not used
on Mac OS when Terminal.app could be recognized from the termresponse.
KEY CODES *terminal-key-codes*
Note: Use the <> form if possible

View File

@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.0. Last change: 2017 Aug 10
*terminal.txt* For Vim version 8.0. Last change: 2017 Nov 12
VIM REFERENCE MANUAL by Bram Moolenaar
@ -14,11 +14,30 @@ The terminal feature is optional, use this to check if your Vim has it: >
If the result is "1" you have it.
1. Basic use |terminal-use|
2. Remote testing |terminal-testing|
3. Debugging |terminal-debug|
1. Basic use |terminal-use|
Typing |terminal-typing|
Size and color |terminal-size-color|
Syntax |:terminal|
Resizing |terminal-resizing|
Terminal Modes |Terminal-mode|
Cursor style |terminal-cursor-style|
Special keys |terminal-special-keys|
Unix |terminal-unix|
MS-Windows |terminal-ms-windows|
2. Remote testing |terminal-testing|
3. Debugging |terminal-debug|
Starting |termdebug-starting|
Example session |termdebug-example|
Stepping through code |termdebug-stepping|
Inspecting variables |termdebug-variables|
Other commands |termdebug-commands|
Communication |termdebug-communication|
Customizing |termdebug-customizing|
{Vi does not have any of these commands}
{only available when compiled with the |+terminal| feature}
The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.
==============================================================================
1. Basic use *terminal-use*
@ -27,21 +46,21 @@ This feature is for running a terminal emulator in a Vim window. A job can be
started connected to the terminal emulator. For example, to run a shell: >
:term bash
Or to run a debugger: >
:term gdb vim
Or to run build command: >
:term make myprogram
The job runs asynchronously from Vim, the window will be updated to show
output from the job, also while editing in any other window.
output from the job, also while editing in another window.
Typing ~
*terminal-typing*
When the keyboard focus is in the terminal window, typed keys will be sent to
the job. This uses a pty when possible. You can click outside of the
terminal window to move keyboard focus elsewhere.
CTRL-W can be used to navigate between windows and other CTRL-W commands, e.g.:
CTRL-W CTRL-W move focus to the next window
CTRL-W CTRL-W move focus to the next window
CTRL-W : enter an Ex command
See |CTRL-W| for more commands.
@ -52,6 +71,7 @@ Special in the terminal window: *CTRL-W_.* *CTRL-W_N*
CTRL-W " {reg} paste register {reg} *CTRL-W_quote*
Also works with the = register to insert the result of
evaluating an expression.
CTRL-W CTRL-C ends the job, see below |t_CTRL-W_CTRL-C|
See option 'termkey' for specifying another key instead of CTRL-W that
will work like CTRL-W. However, typing 'termkey' twice sends 'termkey' to
@ -60,18 +80,47 @@ the job. For example:
'termkey' : enter an Ex command
'termkey' 'termkey' send 'termkey' to the job in the terminal
'termkey' . send a CTRL-W to the job in the terminal
'termkey' N go to terminal Normal mode, see below
'termkey' N go to terminal Normal mode, see below
'termkey' CTRL-N same as CTRL-W N
'termkey' CTRL-C same as |t_CTRL-W_CTRL-C|
*t_CTRL-\_CTRL-N*
The special key combination CTRL-\ CTRL-N can be used to switch to Normal
mode, just like this works in any other mode.
*t_CTRL-W_CTRL-C*
CTRL-W CTRL-C can be typed to forcefully end the job. On MS-Windows a
CTRL-BREAK will also kill the job.
If you type CTRL-C the effect depends on what the pty has been configured to
do. For simple commands this causes a SIGINT to be sent to the job, which
would end it. Other commands may ignore the SIGINT or handle the CTRL-C
themselves (like Vim does).
To change the keys you type use terminal mode mappings, see |:tmap|.
These are defined like any mapping, but apply only when typing keys that are
sent to the job running in the terminal. For example, to make Escape switch
to Terminal-Normal mode: >
tnoremap <Esc> <C-W>N
< *options-in-terminal*
After opening the terminal window and setting 'buftype' to "terminal" the
BufWinEnter autocommand event is triggered. This makes it possible to set
options specifically for the window and buffer. Example: >
au BufWinEnter * if &buftype == 'terminal' | setlocal bufhidden=hide | endif
Size ~
Size and color ~
*terminal-size-color*
See option 'termsize' for controlling the size of the terminal window.
(TODO: scrolling when the terminal is larger than the window)
The job running in the terminal can change the colors. The default foreground
and background colors are taken from Vim, the Normal highlight group.
For a color terminal the 'background' option is used to decide whether the
terminal window will start with a white or black background.
To use a different color the Terminal highlight group can be used: >
hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
Syntax ~
@ -81,6 +130,8 @@ Syntax ~
If [command] is provided run it as a job and connect
the input and output to the terminal.
If [command] is not given the 'shell' option is used.
if [command] is NONE no job is started, the pty of the
terminal can be used by a command like gdb.
A new buffer will be created, using [command] or
'shell' as the name, prefixed with a "!". If a buffer
@ -88,10 +139,10 @@ Syntax ~
parentheses. E.g. if "gdb" exists the second terminal
buffer will use "!gdb (1)".
If [range] is given it is used for the terminal size.
One number specifies the number of rows. Unless the
"vertical" modifier is used, then it is the number of
columns.
If [range] is given the specified lines are used as
input for the job. It will not be possible to type
keys in the terminal window. For MS-Windows see the
++eof argument below.
Two comma separated numbers are used as "rows,cols".
E.g. `:24,80gdb` opens a terminal with 24 rows and 80
@ -103,18 +154,55 @@ Syntax ~
++close The terminal window will close
automatically when the job terminates.
++open When the job terminates and no window
show it, a window will be opened.
shows it, a window will be opened.
Note that this can be interruptive.
++curwin Open the terminal in the current
window, do not split the current
window. Fails if the current buffer
cannot be |abandon|ed.
++hidden Open the terminal in a hidden buffer,
no window will be used.
++rows={height} Use {height} for the terminal window
height.
++cols={width} Use {width} for the terminal window
width.
++eof={text} when using [range]: text to send after
the last line was written. Cannot
contain white space. A CR is
appended. For MS-Windows the default
is to send CTRL-D.
E.g. for a shell use "++eof=exit" and
for Python "++eof=exit()". Special
codes can be used like with `:map`,
e.g. "<C-Z>" for CTRL-Z.
When the buffer associated with the terminal is wiped out the job is killed,
similar to calling `job_stop(job, "kill")`
If you want to use more options use the |term_start()|
function.
By default the 'bufhidden' option of the buffer will be set to "hide".
So long as the job is running: If the window is closed the buffer becomes
hidden. The command will not be stopped. The `:buffer` command can be used
to turn the current window into a terminal window. If there are unsaved
changes this fails, use ! to force, as usual.
*E947*
When the buffer associated with the terminal is unloaded or wiped out the job
is killed, similar to calling `job_stop(job, "kill")`
So long as the job is running the window behaves like it contains a modified
buffer. Trying to close the window with `CTRL-W :quit` fails. When using
`CTRL-W :quit!` the job is ended. The text in the window is lost. The buffer
still exists, but getting it in a window with `:buffer` will show an empty
buffer.
Trying to close the window with `CTRL-W :close` also fails. Using
`CTRL-W :close!` will close the window and make the buffer hidden.
You can use `CTRL-W :hide` to close the terminal window and make the buffer
hidden, the job keeps running. The `:buffer` command can be used to turn the
current window into a terminal window. If there are unsaved changes this
fails, use ! to force, as usual.
To have a background job run without a window, and open the window when it's
done, use options like this: >
:term ++hidden ++open make
Note that the window will open at an unexpected moment, this will interrupt
what you are doing.
*E947* *E948*
So long as the job is running, the buffer is considered modified and Vim
cannot be quit easily, see |abandon|.
@ -129,7 +217,7 @@ the buffer name will still be set to the command.
Resizing ~
*terminal-resizing*
The size of the terminal can be in one of three modes:
1. The 'termsize' option is empty: The terminal size follows the window size.
@ -160,20 +248,52 @@ mode.
Use CTRL-W N (or 'termkey' N) to switch to Terminal-Normal mode. Now the
contents of the terminal window is under control of Vim, the job output is
suspended. CTRL-\ CTRL-N does the same.
Terminal-Job mode is where |:tmap| mappings are applied. Keys sent by
|term_sendkeys()| are not subject to tmap, but keys from |feedkeys()| are.
*E946*
In Terminal-Normal mode you can move the cursor around with the usual Vim
commands, Visually mark text, yank text, etc. But you cannot change the
contents of the buffer. The commands that would start insert mode, such as
'i' and 'a', return to Terminal-Job mode. The window will be updated to show
the contents of the terminal.
the contents of the terminal. |:startinsert| is ineffective.
In Terminal-Normal mode the statusline and window title show "(Terminal)". If
the job ends while in Terminal-Normal mode this changes to
"(Terminal-finished)".
It is not possible to enter Insert mode from Terminal-Job mode.
Cursor style ~
*terminal-cursor-style*
By default the cursor in the terminal window uses a not blinking block. The
normal xterm escape sequences can be used to change the blinking state and the
shape. Once focus leaves the terminal window Vim will restore the original
cursor.
An exception is when xterm is started with the "-bc" argument, or another way
that causes the cursor to blink. This actually means that the blinking flag
is inverted. Since Vim cannot detect this, the terminal window cursor
blinking will also be inverted.
Special keys ~
*terminal-special-keys*
Since the terminal emulator simulates an xterm, only escape sequences that
both Vim and xterm recognize will be available in the terminal window. If you
want to pass on other escape sequences to the job running in the terminal you
need to set up forwarding. Example: >
tmap <expr> <Esc>]b SendToTerm("\<Esc>]b")
func SendToTerm(what)
call term_sendkeys('', a:what)
return ''
endfunc
Unix ~
*terminal-unix*
On Unix a pty is used to make it possible to run all kinds of commands. You
can even run Vim in the terminal! That's used for debugging, see below.
@ -196,7 +316,7 @@ This will open the file "some_file.c" and put the cursor on line 123.
MS-Windows ~
*terminal-ms-windows*
On MS-Windows winpty is used to make it possible to run all kind of commands.
Obviously, they must be commands that run in a terminal, not open their own
window.
@ -210,7 +330,10 @@ You can download them from the following page:
https://github.com/rprichard/winpty
Just put the files somewhere in your PATH.
Just put the files somewhere in your PATH. You can set the 'winptydll' option
to point to the right file, if needed. If you have both the 32-bit and 64-bit
version, rename to winpty32.dll and winpty64.dll to match the way Vim was
build.
==============================================================================
2. Remote testing *terminal-testing*
@ -222,7 +345,7 @@ inspects the resulting screen state.
Functions ~
term_sendkeys() send keystrokes to a terminal
term_sendkeys() send keystrokes to a terminal (not subject to tmap)
term_wait() wait for screen to be updated
term_scrape() inspect terminal screen
@ -231,25 +354,187 @@ term_scrape() inspect terminal screen
3. Debugging *terminal-debug*
The Terminal debugging plugin can be used to debug a program with gdb and view
the source code in a Vim window. For example: >
the source code in a Vim window. Since this is completely contained inside
Vim this also works remotely over an ssh connection.
:TermDebug vim
This opens three windows:
- A terminal window in which "gdb vim" is executed. Here you can directly
interact with gdb.
- A terminal window for the executed program. When "run" is used in gdb the
program I/O will happen in this window, so that it does not interfere with
controlling gdb.
- A normal Vim window used to show the source code. When gdb jumps to a
source file location this window will display the code, if possible. Values
of variables can be inspected, breakpoints set and cleared, etc.
Starting ~
*termdebug-starting*
Load the plugin with this command: >
packadd termdebug
< *:Termdebug*
To start debugging use `:TermDebug` folowed by the command name, for example: >
:Termdebug vim
This uses two terminal windows. To open the gdb window: >
:term gdb [arguments]
To open the terminal to run the tested program |term_start()| is used.
This opens two windows:
gdb window A terminal window in which "gdb vim" is executed. Here you
can directly interact with gdb. The buffer name is "!gdb".
program window A terminal window for the executed program. When "run" is
used in gdb the program I/O will happen in this window, so
that it does not interfere with controlling gdb. The buffer
name is "gdb program".
The current window is used to show the source code. When gdb pauses the
source file location will be displayed, if possible. A sign is used to
highlight the current position (using highlight group debugPC).
If the buffer in the current window is modified, another window will be opened
to display the current gdb position.
Focus the terminal of the executed program to interact with it. This works
the same as any command running in a terminal window.
When the debugger ends, typically by typing "quit" in the gdb window, the two
opened windows are closed.
Example session ~
*termdebug-example*
Start in the Vim "src" directory and build Vim: >
% make
Start Vim: >
% ./vim
Load the termdebug plugin and start debugging Vim: >
:packadd termdebug
:Termdebug vim
You should now have three windows:
source - where you started, has a window toolbar with buttons
gdb - you can type gdb commands here
program - the executed program will use this window
You can use CTRL-W CTRL-W or the mouse to move focus between windows.
Put focus on the gdb window and type: >
break ex_help
run
Vim will start running in the program window. Put focus there and type: >
:help gui
Gdb will run into the ex_help breakpoint. The source window now shows the
ex_cmds.c file. A ">>" marker will appear where the breakpoint was set. The
line where the debugger stopped is highlighted. You can now step through the
program. Let's use the mouse: click on the "Next" button in the window
toolbar. You will see the highlighting move as the debugger executes a line
of source code.
Click "Next" a few times until the for loop is highlighted. Put the cursor on
the end of "eap->arg", then click "Eval" in the toolbar. You will see this
displayed:
"eap->arg": 0x555555e68855 "gui" ~
This way you can inspect the value of local variables. You can also focus the
gdb window and use a "print" command, e.g.: >
print *eap
Now go back to the source window and put the cursor on the first line after
the for loop, then type: >
:Break
You will see a ">>" marker appear, this indicates the new breakpoint. Now
click "Cont" in the toolbar and the code until the breakpoint will be
executed.
You can type more advanced commands in the gdb window. For example, type: >
watch curbuf
Now click "Cont" in the toolbar (or type "cont" in the gdb window). Execution
will now continue until the value of "curbuf" changes, which is in do_ecmd().
To remove this watchpoint again type in the gdb window: >
delete 3
You can see the stack by typing in the gdb window: >
where
Move through the stack frames, e.g. with: >
frame 3
The source window will show the code, at the point where the call was made to
a deeper level.
Stepping through code ~
*termdebug-stepping*
Put focus on the gdb window to type commands there. Some common ones are:
- CTRL-C interrupt the program
- next execute the current line and stop at the next line
- step execute the current line and stop at the next statement,
entering functions
- finish execute until leaving the current function
- where show the stack
- frame N go to the Nth stack frame
- continue continue execution
In the window showing the source code these commands can used to control gdb:
:Run [args] run the program with [args] or the previous arguments
:Arguments {args} set arguments for the next :Run
:Break set a breakpoint at the current line; a sign will be displayed
:Delete delete a breakpoint at the current line
:Step execute the gdb "step" command
:Over execute the gdb "next" command (:Next is a Vim command)
:Finish execute the gdb "finish" command
:Continue execute the gdb "continue" command
:Stop interrupt the program
The plugin adds a window toolbar with these entries:
Step :Step
Next :Over
Finish :Finish
Cont :Continue
Stop :Stop
Eval :Evaluate
This way you can use the mouse to perform the most common commands.
Inspecting variables ~
*termdebug-variables*
:Evaluate evaluate the expression under the cursor
K same
:Evaluate {expr} evaluate {expr}
:'<,'>Evaluate evaluate the Visually selected text
This is similar to using "print" in the gdb window.
Other commands ~
*termdebug-commands*
:Gdb jump to the gdb window
:Program jump to the window with the running program
Communication ~
*termdebug-communication*
There is another, hidden, buffer, which is used for Vim to communicate with
gdb. The buffer name is "gdb communication". Do not delete this buffer, it
will break the debugger.
Customizing ~
*termdebug-customizing*
To change the name of the gdb command, set the "termdebugger" variable before
invoking `:Termdebug`: >
let termdebugger = "mygdb"
< *gdb-version*
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
interface. This probably requires gdb version 7.12. if you get this error:
Undefined command: "new-ui". Try "help".~
Then your gdb is too old.
The color of the signs can be adjusted with these highlight groups:
- debugPC the current position
- debugBreakpoint a breakpoint
The defaults are, when 'background' is "light":
hi debugPC term=reverse ctermbg=lightblue guibg=lightblue
hi debugBreakpoint term=reverse ctermbg=red guibg=red
When 'background' is "dark":
hi debugPC term=reverse ctermbg=darkblue guibg=darkblue
hi debugBreakpoint term=reverse ctermbg=red guibg=red
To change the width of the Vim window when debugging starts, and use a
vertical split: >
let g:termdebug_wide = 163
This will set &columns to 163 when :Termdebug is used. The value is restored
when quitting the debugger.
If g:termdebug_wide is set and &Columns is already larger than
g:termdebug_wide then a vertical split will be used without changing &columns.
Set it to 1 to get a vertical split without every changing &columns (useful
for when the terminal can't be resized by Vim).
TODO
vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.0. Last change: 2017 Aug 01
*todo.txt* For Vim version 8.0. Last change: 2017 Nov 11
VIM REFERENCE MANUAL by Bram Moolenaar
@ -7,9 +7,9 @@
TODO list for Vim *todo*
This is a veeeery long list of known bugs, current work and desired
improvements. To make it a little bit accessible, the items are grouped by
subject. In the first column of the line a classification is used to be able
to look for "the next thing to do":
improvements. To make it a little bit accessible, the older items are grouped
by subject. In the first column of the line a classification is used to be
able to look for "the next thing to do":
Priority classification:
9 next point release
@ -35,34 +35,40 @@ entered there will not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Check out coverity reports.
Permission of viminfo tempfile can be wrong. (Simon Ruderich)
Always use 600 ? Also avoids groups problem.
patch from Simon Ruderich, Nov 8
No maintainer for Vietnamese translations.
No maintainer for Simplified Chinese translations.
Terminal emulator window:
- Lots of stuff to implement, see src/terminal.c
- Running a shell command from the GUI still has limitations. Look into how
the terminal emulator of the Vim shell project can help:
http://code.hootsuite.com/vimshell/
- Add winpty.dll and winpty-agent.exe in the NSIS build.
- Add debugger interface. Implementation for gdb by Xavier de Gaye. Should
work like an IDE. Try to keep it generic. Now found here:
http://clewn.sf.net.
- Look into the idevim plugin/script.
- Related wishes for NetBeans commands:
- make it possible to have 'defineAnnoType' also handle terminal colors.
- Improve debugger interface:
Include all debug features of Agide.
- Implement the right-click popup menu for the terminal. Can use the
completion popup menu code and mouse dragging.
Use it for "set breakpoint", "remove breakpoint", etc.
- make showballoon() work in a terminal. Requires getting mouse-move
events.
- send 'balloonText' events for the cursor position (using CursorHold ?)
in terminal mode.
- get ideas from http://clewn.sf.net
- Look into the idevim plugin/script.
- Improve testing:
Make a screenshot of a terminal, store in a file.
Display a stored screenshot, display diff with another one.
Make a test that puts Vim in a specific state, make a screenshot and compare
with the expected screenshot. Set t_Co to 256.
+channel:
- Add a separate timeout for opening a socket. Currently it's fixed at 50
msec, which is too small for a remote connection. (tverniquet, #2130)
- Try out background make plugin:
https://github.com/AndrewVos/vim-make-background
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
- Add 'cwd' argument to start_job(): directory to change to in the child.
check for valid directory before forking.
Part of patch for environment, Yasuhiro Matsumoto, #1160
- Writing raw mode to a buffer should still handle NL characters as line
breaks. (Dmitry Zotikov, 2017 Aug 16)
- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
2016 Dec 11, #1320)
- Implement |job-term| ?
@ -77,11 +83,13 @@ Terminal emulator window:
Feb 9) How to do this on MS-Windows?
- For connection to server, a "keep open" flag would be useful. Retry
connecting in the main loop with zero timeout.
- job_start(): run job in a newly opened terminal.
- job_start(): run job in a newly opened terminal (not a terminal window).
With xterm could use -S{pty}.
Although user could use "xterm -e 'cmd arg'".
Regexp problems:
- [:space:] only matches ASCII spaces. Add [:white:] for all space-like
characters, esp. including 0xa0. Use character class zero.
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
(Manuel Ortega, 2016 Apr 24)
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
@ -125,15 +133,46 @@ Regexp problems:
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
(2017 May 15, #1252)
test_gui fails with gnome2: cannot create .gnome2 dir
use testdir/Xfakehome instead of does/not/exist?
Include a few color schemes, based on popularity:
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
http://vimawesome.com/?q=tag:color-scheme
Use names that indicate their apperance (Christian Brabandt, 2017 Aug 3)
- monokai - Xia Crusoe (2017 Aug 4)
- seoul256 - Christian Brabandt (2017 Aug 3)
- gruvbox - Christian Brabandt (2017 Aug 3)
- janah - Marco Hinz (2017 Aug 4)
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
Suggested by Hiroki Kokubun:
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
- [hybrid](https://github.com/w0ng/vim-hybrid)
Include solarized color scheme?, it does not support termguicolors.
-> Make check for colorscheme that it's sane.
Patch for quickfix: parse lines for any quickfix list. (Yegappan Lakshmanan,
2017 Jul 20)
Compiler warnings (geeknik, 2017 Oct 26):
- signed integer overflow in do_sub() (#2249)
- signed integer overflow in get_address() (#2248)
- signed integer overflow in getdecchrs() (#2254)
- signed integer overflow in nfa_regatom() (#2251)
- undefined left shift in get_string_tv() (#2250)
When starting with --clean packages under "start" are not loaded. Make this
work: :packadd START {name} similar to :runtime START name
When using :packadd files under "later" are not used, which is inconsistent
with packages under "start". (xtal8, #1994)
Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
(Marcin Szewczyk, 2017 Apr 26)
Using 'wildignore' also applies to literally entered file name. Also with
:drop (remote commands).
"gvim --remote" from a directory with non-word characters changes the current
directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
Also see #1689.
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
Lemonboy can reproduce (2017 Jun 5)
@ -141,38 +180,64 @@ ml_get errors with buggy script. (Dominique, 2017 Apr 30)
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
Patch for Murphi syntax. (Matthew Fernandez, 2017 Jul 24)
When a timer is running and typing CTRL-R on the command line, it is not
redrawn properly. (xtal8, 2017 Oct 23, #2241)
Better detection of strace file. (Steven Fernandez, 2017 Jul 12, #1837)
Universal solution to detect if t_RS is working, using cursor position.
Koichi Iwamoto, #2126
Bug with conceal mode: 3rd element returned by synconcealed() differs for
every call. (Dominique Pelle, 2017 Jun 18)
Default install on MS-Windows should source defaults.vim.
Ask whether to use Windows or Vim key behavior?
When using command line window, CmdlineLeave is triggered without
CmdlineEnter. (xtal8, 2017 Oct 30, #2263)
Add some way to get the nested state. Although CmdwinEnter is obviously
always nested.
matchit hasn't been maintained for a long time. #955.
MS-Windows: buffer completetion doesn't work when using backslash (or slash)
for a path separator. (xtal8, #2201)
Test runtime files.
Start with filetype detection: testdir/test_filetype.vim
Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029)
Add options_default() / options_restore() to set several options to Vim
defaults for a plugin. Comments from Zyx, 2017 May 10.
Perhaps use a vimcontext / endvimcontext command block.
Signs drawn on top of messages. (worp, #1907)
Folds open when job writes to another buffer. (Jonathan Fudger, 2017 Jul 31)
Already fixed?
After using :noautocmd CursorMoved may still trigger. (Andy Stewart, 2017 Sep
13, #2084). Set old position after the command.
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
Still happens (2017 Jul 9)
Memory leak in test_arabic.
When bracketed paste is used, pasting at the ":append" prompt does not get the
line breaks. (Ken Takata, 2017 Aug 22)
Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
Patch for 24 bit color support in MS-Windows console, using vcon. (Nobuhiro
Takasaki, 2017 Oct 1, #2060). Ready to include now?
Memory leaks in test_channel? (or is it because of fork())
Memory leak in test_arabic.
Using uninitialized value in test_crypt.
Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
It can replace the BeOS code, which is likely not used anymore.
Now on github: #1856. Is now up-to-date?
Now on github: #1856. Updated Oct 2017
Got permission to include this under the Vim license.
Refactored HTML indent file. (Michael Lee, #1821)
Using uninitialzed value in test_crypt.
Test_writefile_fails_conversion failure on Solaris because if different iconv
behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
'tagrelative' is broken in specific situation. (xaizek, 2017 Oct 19, #2221)
All functions are global, which makes functions like get() and len() awkward.
For the future use the ~get() and ~len() syntax, e.g.:
mylist~get(idx)
@ -185,6 +250,14 @@ Alternatives for ~:
@ list@get() harder to read
-> list->get() two characters, used for lambda
The ++ options for the :edit command are also useful on the Vim command line.
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
#2089) Patch with possible solution by Björn Linse.
The change list index is local to a buffer, but it doesn't make sense using it
for another buffer. (lacygoll) Copy w_changelistidx to wininfo_S and back.
X11: Putting more than about 262040 characters of text on the clipboard and
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
clip_x11_request_selection_cb() is called with zero value and length.
@ -195,15 +268,31 @@ Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)
Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
Creating a partial with an autoload function is confused about the "self"
attribute of the function. For an unknown function assume "self" and make
that optiona? (Bjorn Linse, 2017 Aug 5)
Cindent: returning a structure has more indent for the second item.
(Sam Pagenkopf, 2017 Sep 14, #2090)
Completion mixes results from the current buffer with tags and other files.
Happens when typing CTRL-N while still search for results. E.g., type "b_" in
terminal.c and then CTRL-N twice.
Should do current file first and not split it up when more results are found.
(Also #1890)
Patch from Christian Brabandt to preserve upper case marks when wiping out a
buffer. (2013 Dec 9)
Also fixes #2166?
Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
Python: After "import vim" error messages only show the first line of the
stack trace. (Yggdroot, 2017 Jul 28, #1887)
Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
8, #1757)
When checking if a bufref is valid, also check the buffer number, to catch the
case of :bwipe followed by :new.
@ -239,8 +328,6 @@ Use gvimext.dll from the nightly build? (Issue #249)
Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
8, #1690)
Include solarized color scheme?
Running test_gui and test_gui_init with Motif sometimes kills the window
manager. Problem with Motif?
@ -278,12 +365,7 @@ Still need maplist() to find the mappings. What can we use to identify a
mapping? Something unique would be better than the LHS.
Perhaps simpler: actually delete the mappings. Use maplist() to list matching
mappings (with a lhs prefix, like maparg()), mapdelete() to delete,
maprestore() to restore (using the output of maplist().
Patch to add setbufline(). (email from Yasuhiro Matsumoto, patch by Ozaki
Kiichi, 2016 Feb 28)
Update Mar 8: https://gist.github.com/mattn/23c1f50999084992ca98
Update Mar 13: https://gist.github.com/mattn/23c1f50999084992ca98
maprestore() to restore (using the output of maplist()).
Add an argument to :mkvimrc (or add aother command) to skip mappings from
plugins (source is a Vim script). No need to put these in a .vimrc, they will
@ -322,10 +404,6 @@ Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
Completion for :!cmd shows each match twice. #1435
Patch to change GUI behavior: instead of changing the window size change the
lines/columns when menu/toolbar/etc. is added/removed. (Ychin, 2016 Mar 20,
#703)
GTK: When adding a timer from 'balloonexpr' it won't fire, because
g_main_context_iteration() doesn't return. Need to trigger an event when the
timer expires.
@ -360,9 +438,6 @@ Implement optional arguments for functions.
call Foo(12, all = 0)
call Foo(12, 15, 0)
Patch to support on-the-spot and over-the-spot input method. (Ken Takata, 2017
Feb 14).
Change the Farsi code to work with UTF-8. Possibly combined with the Arabic
support, or similar.
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
@ -377,11 +452,9 @@ Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
Alternative from Christian Brabandt. (2010 Sep 19)
New one from Yasuhiro Matsumoto, #1277.
Patch for restoring wide characters in the console buffer.
(Ken Takata, 2016 Jun 7)
Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5)
Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
Update Aug 2017: #1954
Characters deleted on completion. (Adrià Farrés, 2017 Apr 20, #1645)
Remarks from Christian Brabandt (Apr 21)
@ -404,7 +477,7 @@ MS-Windows. Perhaps in \# the \ is seen as a path separator. (Axel Bender,
2017 Feb 9) Can we expand wildcards first and send the path literally to the
receiving Vim? Or make an exception for #, it's not useful remotely.
":sbr" docs state it respect 'switchbuf', but "vsplit" does not cause a
":sbr" docs state it respects 'switchbuf', but "vsplit" does not cause a
vertical split. (Haldean Brown, 2017 Mar 1)
Use ADDR_OTHER instead of ADDR_LINES for many more commands.
@ -423,8 +496,6 @@ Patch for wrong cursor position on wrapped line, involving breakindent.
(Ozaki Kiichi, 2016 Nov 25)
Does this also fix #1408 ?
Patch to add "module" to quickfix entries. (Coot, 2017 Jun 8, #1757)
'cursorline' and match interfere. (Ozaki Kiichi, 2017 Jun 23, #1792)
Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
@ -543,9 +614,6 @@ Patch to add ":syn foldlevel" to use fold level further down the line.
Completion for input() does not expand environment variables. (chdiza, 2016
Jul 25, #948)
Patch to fix wrong encoding of error message on Cygwin/MSYS terminal.
(Ken Takata, 2016 Oct 4)
Patch to add 'systemencoding', convert between 'encoding' and this for file
names, shell commands and the like. (Kikuchan, 2010 Oct 14)
Assume the system converts between the actual encoding of the filesystem to
@ -585,11 +653,6 @@ Patch to improve map documentation. Issue #799.
Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)
Patch for drag&drop reordering of GUI tab pages reordering.
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
Now on Git: https://gist.github.com/nocd5/165286495c782b815b94
Update 2016 Aug 10.
We can use '. to go to the last change in the current buffer, but how about
the last change in any buffer? Can we use ', (, is next to .)?
@ -604,11 +667,6 @@ Reject the value? #710.
Patch to fix increment/decrement not working properly when 'virtualedit' is
set. (Hirohito Higashi, 2016 Aug 1, #923)
Patch to support strikethrough next to bold and italic. (Christian Brabandt,
2013 Jul 30) Update from Ken Takata, 2013 Oct 12.
Update mentioned by Christian, 2016 Apr 25.
Update from Ken Takata, 2016 Jul 17.
When doing "vi buf.md" a BufNew autocommand for *.md is not triggered.
Because of using the initial buffer? (Dun Peal, 2016 May 12)
@ -966,8 +1024,6 @@ Jun 8)
Bug: Autocompleting ":tag/pat" replaces "/pat" with a match but does not
insert a space. (Micha Mos, 2014 Nov 7)
Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
No error for missing endwhile. (ZyX, 2014 Mar 20)
Patch to make extend() fail early when it might fail at some point.
@ -1113,9 +1169,6 @@ When evaluating expression in backticks, autoload doesn't work.
Using <nr>ifoobar<esc> can slow down Vim. Patch by Christian Brabandt, 2013
Dec 13.
Patch from Christian Brabandt to preserve upper case marks when wiping out a
buffer. (2013 Dec 9)
GTK: problem with 'L' in 'guioptions' changing the window width.
(Aaron Cornelius, 2012 Feb 6)
@ -1376,9 +1429,6 @@ Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
When using a Vim server, a # in the path causes an error message.
(Jeff Lanzarotta, 2011 Feb 17)
Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben
Fritz (2011 Oct 27).
When there is a ">" in a line that "gq" wraps to the start of the next line,
then the following line will pick it up as a leader. Should get the leader
from the first line, not a wrapped line. (Matt Ackeret, 2012 Feb 27)
@ -1392,8 +1442,6 @@ Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
BT regexp engine: After trying a \@> match and failing, submatches are not
cleared. See test64.
Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
Patch to make "z=" work when 'spell' is off. Does this have nasty side
effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
Would also need to do this for spellbadword() and spellsuggest().
@ -1483,6 +1531,9 @@ GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
Win32: tear-off menu does not work when menu language is German. (Markus
Bossler, 2011 Mar 2) Fixed by 7.3.095?
Wish for NetBeans commands:
- make it possible to have 'defineAnnoType' also handle terminal colors.
Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
7.3.014 changed how backslash at end of line works, but still get a NUL when
@ -2166,9 +2217,6 @@ with "gvim -nb:localhost:55555:foo". From nc do: '1:editFile!0 "foo"'. Then
go to Insert mode and add a few lines. Then backspacing every other time
moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
Windows installer should install 32-bit version of right-click handler also on
64-bit systems. (Brian Cunningham, 2011 Dec 28)
Windows installer could add a "open in new tab of existing Vim" menu entry.
Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
Just have two choices, always using one Vim and selecting between using an
@ -3673,7 +3721,7 @@ Multi-byte characters:
at a multi-byte character >= 0x100.
- Add the possibility to enter mappings which are used whenever normal text
could be entered. E.g., for "f" command. But not in Normal mode. Sort
of opposite of 'langmap'. Use ":tmap" command?
of opposite of 'langmap'. Use ":amap" command?
- When breaking a line, take properties of multi-byte characters into
account. The "linebreak" program from Bruno Haible can do it:
ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
@ -5153,7 +5201,7 @@ Swap (.swp) files:
- Add an option to create a swap file only when making the first change to
the buffer. (Liang) Or only when the buffer is not read-only.
- Add option to set "umask" for backup files and swap files (Antwerpen).
'backupumask' and 'swapumask'? Or 'umaskback' and 'umaskswap'?
'backupumask' and 'swapumask'? Or 'umaskbackup' and 'umaskswap'?
- When editing a readonly file, don't use a swap file but read parts from the
original file. Also do this when the file is huge (>'maxmem'). We do
need to load the file once to count the number of lines? Perhaps keep a

View File

@ -1,4 +1,4 @@
*usr_07.txt* For Vim version 8.0. Last change: 2006 Apr 24
*usr_07.txt* For Vim version 8.0. Last change: 2017 Sep 18
VIM USER MANUAL - by Bram Moolenaar
@ -215,14 +215,14 @@ change: >
`.
Suppose you are editing the file "one.txt". Somewhere halfway the file you
use "x" to delete a character. Then you go to the last line with "G" and
write the file with ":w". You edit several other files, and then use ":edit
one.txt" to come back to "one.txt". If you now use `" Vim jumps to the last
line of the file. Using `. takes you to the position where you deleted the
character. Even when you move around in the file `" and `. will take you to
the remembered position. At least until you make another change or leave the
file.
Suppose you are editing the file "one.txt". Somewhere halfway through the
file you use "x" to delete a character. Then you go to the last line with "G"
and write the file with ":w". You edit several other files, and then use
":edit one.txt" to come back to "one.txt". If you now use `" Vim jumps to the
last line of the file. Using `. takes you to the position where you deleted
the character. Even when you move around in the file `" and `. will take you
to the remembered position. At least until you make another change or leave
the file.
FILE MARKS
@ -233,8 +233,8 @@ another file and place marks there, these are specific for that file. Thus
each file has its own set of marks, they are local to the file.
So far we were using marks with a lowercase letter. There are also marks
with an uppercase letter. These are global, they can be used from any file.
For example suppose that we are editing the file "foo.txt". Go to halfway the
file ("50%") and place the F mark there (F for foo): >
For example suppose that we are editing the file "foo.txt". Go to halfway
down the file ("50%") and place the F mark there (F for foo): >
50%mF
@ -355,7 +355,7 @@ a sentence to the f register (f for First): >
"fyas
The "yas" command yanks a sentence like before. It's the "f that tells Vim
the text should be place in the f register. This must come just before the
the text should be placed in the f register. This must come just before the
yank command.
Now yank three whole lines to the l register (l for line): >

View File

@ -1,4 +1,4 @@
*usr_08.txt* For Vim version 8.0. Last change: 2014 Jul 06
*usr_08.txt* For Vim version 8.0. Last change: 2017 Aug 11
VIM USER MANUAL - by Bram Moolenaar
@ -45,7 +45,7 @@ top one:
+----------------------------------+
What you see here is two windows on the same file. The line with "====" is
that status line. It displays information about the window above it. (In
the status line. It displays information about the window above it. (In
practice the status line will be in reverse video.)
The two windows allow you to view two parts of the same file. For example,
you could make the top window show the variable declarations of a program, and

View File

@ -1,4 +1,4 @@
*usr_09.txt* For Vim version 8.0. Last change: 2006 Apr 24
*usr_09.txt* For Vim version 8.0. Last change: 2017 Aug 11
VIM USER MANUAL - by Bram Moolenaar
@ -21,7 +21,7 @@ Table of contents: |usr_toc.txt|
==============================================================================
*09.1* Parts of the GUI
You might have an icon on your desktop that starts gVim. Otherwise, one of
You might have an icon on your desktop that starts gvim. Otherwise, one of
these commands should do it: >
gvim file.txt
@ -60,7 +60,7 @@ THE WINDOW TITLE
At the very top is the window title. This is drawn by your window system.
Vim will set the title to show the name of the current file. First comes the
name of the file. Then some special characters and the directory of the file
in parens. These special character can be present:
in parens. These special characters can be present:
- The file cannot be modified (e.g., a help file)
+ The file contains changes
@ -184,12 +184,12 @@ currently highlighted. In Vim this is the Visual area (this assumes you are
using the default option settings). You can paste this selection in another
application without any further action.
For example, in this text select a few words with the mouse. Vim will
switch to Visual mode and highlight the text. Now start another gVim, without
switch to Visual mode and highlight the text. Now start another gvim, without
a file name argument, so that it displays an empty window. Click the middle
mouse button. The selected text will be inserted.
The "current selection" will only remain valid until some other text is
selected. After doing the paste in the other gVim, now select some characters
selected. After doing the paste in the other gvim, now select some characters
in that window. You will notice that the words that were previously selected
in the other gvim window are displayed differently. This means that it no
longer is the current selection.
@ -204,10 +204,10 @@ Now for the other place with which text can be exchanged. We call this the
"real clipboard", to avoid confusion. Often both the "current selection" and
the "real clipboard" are called clipboard, you'll have to get used to that.
To put text on the real clipboard, select a few different words in one of
the gVims you have running. Then use the Edit/Copy menu entry. Now the text
the gvims you have running. Then use the Edit/Copy menu entry. Now the text
has been copied to the real clipboard. You can't see this, unless you have
some application that shows the clipboard contents (e.g., KDE's klipper).
Now select the other gVim, position the cursor somewhere and use the
some application that shows the clipboard contents (e.g., KDE's Klipper).
Now select the other gvim, position the cursor somewhere and use the
Edit/Paste menu. You will see the text from the real clipboard is inserted.

View File

@ -1,4 +1,4 @@
*usr_12.txt* For Vim version 8.0. Last change: 2007 May 11
*usr_12.txt* For Vim version 8.0. Last change: 2017 Aug 11
VIM USER MANUAL - by Bram Moolenaar
@ -290,7 +290,7 @@ command: >
The line range "%" is used, thus this works on the whole file. The pattern
that the ":substitute" command matches with is "\s\+$". This finds white
space characters (\s), 1 or more of them (\+), before the end-of-line ($).
Later will be explained how you write patterns like this |usr_27.txt|.
Later will be explained how you write patterns like this, see |usr_27.txt|.
The "to" part of the substitute command is empty: "//". Thus it replaces
with nothing, effectively deleting the matched white space.

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.0. Last change: 2017 Jul 19
*usr_41.txt* For Vim version 8.0. Last change: 2017 Oct 15
VIM USER MANUAL - by Bram Moolenaar
@ -889,7 +889,7 @@ GUI: *gui-functions*
Vim server: *server-functions*
serverlist() return the list of server names
remote_startserve() run a server
remote_startserver() run a server
remote_send() send command characters to a Vim server
remote_expr() evaluate an expression in a Vim server
server2client() send a reply to a client of a Vim server
@ -966,6 +966,23 @@ Jobs: *job-functions*
job_info() get information about a job
job_setoptions() set options for a job
Terminal window: *terminal-functions*
term_start() open a terminal window and run a job
term_list() get the list of terminal buffers
term_sendkeys() send keystrokes to a terminal
term_wait() wait for screen to be updated
term_getjob() get the job associated with a terminal
term_scrape() get row of a terminal screen
term_getline() get a line of text from a terminal
term_getattr() get the value of attribute {what}
term_getcursor() get the cursor position of a terminal
term_getscrolled() get the scroll count of a terminal
term_getaltscreen() get the alternate screen flag
term_getsize() get the size of a terminal
term_getstatus() get the status of a terminal
term_gettitle() get the title of a terminal
term_gettty() get the tty name of a terminal
Timers: *timer-functions*
timer_start() create a timer
timer_pause() pause or unpause a timer

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 8.0. Last change: 2017 Feb 24
*various.txt* For Vim version 8.0. Last change: 2017 Sep 16
VIM REFERENCE MANUAL by Bram Moolenaar
@ -309,6 +309,7 @@ g8 Print the hex values of the bytes used in the
*+ARP* Amiga only: ARP support included
B *+arabic* |Arabic| language support
N *+autocmd* |:autocmd|, automatic commands
H *+autoservername* Automatically enable |clientserver|
m *+balloon_eval* |balloon-eval| support. Included when compiling with
supported GUI (Motif, GTK, GUI) and either
Netbeans/Sun Workshop integration or |+eval| feature.
@ -322,7 +323,7 @@ N *+cindent* |'cindent'|, C indenting
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
*+clipboard* |clipboard| support
N *+cmdline_compl* command line completion |cmdline-completion|
N *+cmdline_hist* command line history |cmdline-history|
S *+cmdline_hist* command line history |cmdline-history|
N *+cmdline_info* |'showcmd'| and |'ruler'|
N *+comments* |'comments'| support
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
@ -361,7 +362,7 @@ m *+hangul_input* Hangul input support |hangul|
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
N *+insert_expand* |insert_expand| Insert mode completion
m *+job* starting and stopping jobs |job|
N *+jumplist* |jumplist|
S *+jumplist* |jumplist|
B *+keymap* |'keymap'|
N *+lambda* |lambda| and |closure|
B *+langmap* |'langmap'|
@ -427,6 +428,7 @@ N *+tag_old_static* old method for static tags |tag-old-static|
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
m *+tcl* Tcl interface |tcl|
m *+tcl/dyn* Tcl interface |tcl-dynamic| |/dyn|
m *+terminal* Support for terminal window |terminal|
*+terminfo* uses |terminfo| instead of termcap
N *+termresponse* support for |t_RV| and |v:termresponse|
B *+termguicolors* 24-bit color in xterm-compatible terminals support
@ -437,14 +439,16 @@ N *+title* Setting the window 'title' and 'icon'
N *+toolbar* |gui-toolbar|
N *+user_commands* User-defined commands. |user-commands|
N *+viminfo* |'viminfo'|
N *+vertsplit* Vertically split windows |:vsplit|
*+vertsplit* Vertically split windows |:vsplit|; Always enabled
since 8.0.1118.
in sync with the |+windows| feature
N *+virtualedit* |'virtualedit'|
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
N *+visualextra* extra Visual mode commands |blockwise-operators|
N *+vreplace* |gR| and |gr|
N *+wildignore* |'wildignore'|
N *+wildmenu* |'wildmenu'|
S *+windows* more than one window
*+windows* more than one window; Always enabled since 8.0.1118.
m *+writebackup* |'writebackup'| is default on
m *+xim* X input method |xim|
*+xfontset* X fontset support |xfontset|

View File

@ -11778,7 +11778,7 @@ Files: src/os_unix.c
Patch 7.4.1915
Problem: The effect of the PopupMenu autocommand isn't directly visible.
Solution: Call gui_update_menus() before displaying the popup menu. (Shane
Harper, closs #855)
Harper, closes #855)
Files: src/menu.c
Patch 7.4.1916 (after 7.4.1906)
@ -15398,7 +15398,7 @@ Files: src/testdir/test_undo.vim, src/undo.c
Patch 8.0.0150
Problem: When the pattern of :filter does not have a separator then
completion of the command fails.
Solution: Skip over the pattern. (Ozaki Kiichi, clodes #1299)
Solution: Skip over the pattern. (Ozaki Kiichi, closes #1299)
Files: src/ex_docmd.c, src/testdir/test_filter_cmd.vim
Patch 8.0.0151

View File

@ -1,6 +1,6 @@
.TH VIM 1 "2006 Apr 11"
.SH NAME
vim \- Vi IMproved, a programmers text editor
vim \- Vi IMproved, a programmer's text editor
.SH SYNOPSIS
.br
.B vim
@ -325,7 +325,7 @@ You can still edit the buffer, but will be prevented from accidentally
overwriting a file.
If you do want to overwrite a file, add an exclamation mark to the Ex command,
as in ":w!".
The \-R option also implies the \-n option (see below).
The \-R option also implies the \-n option (see above).
The 'readonly' option can be reset with ":set noro".
See ":help 'readonly'".
.TP

View File

@ -3,7 +3,7 @@ VIM(1) General Commands Manual VIM(1)
NAME
vim - Vi IMproved, a programmers text editor
vim - Vi IMproved, a programmer's text editor
SYNOPSIS
vim [options] [file ..]
@ -225,7 +225,7 @@ OPTIONS
dentally overwriting a file. If you do want to overwrite a
file, add an exclamation mark to the Ex command, as in
":w!". The -R option also implies the -n option (see
below). The 'readonly' option can be reset with ":set
above). The 'readonly' option can be reset with ":set
noro". See ":help 'readonly'".
-r List swap files, with information about using them for

View File

@ -1,4 +1,4 @@
*visual.txt* For Vim version 8.0. Last change: 2014 Mar 23
*visual.txt* For Vim version 8.0. Last change: 2017 Sep 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -314,8 +314,8 @@ Visual-block Insert *v_b_I*
With a blockwise selection, I{string}<ESC> will insert {string} at the start
of block on every line of the block, provided that the line extends into the
block. Thus lines that are short will remain unmodified. TABs are split to
retain visual columns.
See |v_b_I_example|.
retain visual columns. Works only for adding text to a line, not for
deletions. See |v_b_I_example|.
Visual-block Append *v_b_A*
With a blockwise selection, A{string}<ESC> will append {string} to the end of
@ -331,6 +331,7 @@ See |v_b_A_example|.
Note: "I" and "A" behave differently for lines that don't extend into the
selected block. This was done intentionally, so that you can do it the way
you want.
Works only for adding text to a line, not for deletions.
Visual-block change *v_b_c*
All selected text in the block will be replaced by the same text string. When

View File

@ -1,4 +1,4 @@
*windows.txt* For Vim version 8.0. Last change: 2017 Jul 23
*windows.txt* For Vim version 8.0. Last change: 2017 Sep 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -344,8 +344,9 @@ CTRL-W CTRL-C *CTRL-W_CTRL-C*
*:hide*
:hid[e]
:{count}hid[e]
Quit the current window, unless it is the last window on the
screen. For {count} see |:quit| command.
Without {count}: Quit the current window, unless it is the
last window on the screen.
If {count} is given quit the {count} window.
The buffer becomes hidden (unless there is another window
editing it or 'bufhidden' is "unload", "delete" or "wipe").
@ -618,7 +619,8 @@ The minimal height and width of a window is set with 'winminheight' and
41. :buffers list of buffers
The meaning of [N] depends on the command:
[N] is number of buffers to go forward/backward on ?2, ?3, and ?4
[N] is the number of buffers to go forward/backward on 2/12/22/32,
3/13/23/33, and 4/14/24/34
[N] is an argument number, defaulting to current argument, for 1 and 21
[N] is a buffer number, defaulting to current buffer, for 11 and 31
[N] is a count for 19 and 39
@ -1031,6 +1033,9 @@ list of buffers. |unlisted-buffer|
displayed in a window |hidden-buffer|
- a buffer with 'modifiable' off
= a readonly buffer
R a terminal buffer with a running job
F a terminal buffer with a finished job
? a terminal buffer without a job: `:terminal NONE`
+ a modified buffer
x a buffer with read errors

View File

@ -1,6 +1,6 @@
" Vim script for Evim key bindings
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Jul 24
" Last Change: 2017 Sep 20
" Don't use Vi-compatible mode.
set nocompatible
@ -67,8 +67,10 @@ endif " has("autocmd")
"
" The matchit plugin makes the % command work better, but it is not backwards
" compatible.
" The ! means the package won't be loaded right away but when plugins are
" loaded during initialization.
if has('syntax') && has('eval')
packadd matchit
packadd! matchit
endif
" vim: set sw=2 :

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Jun 12
" Last Change: 2017 Sep 28
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@ -35,8 +35,8 @@ if has("vms")
endif
" When the matchit plugin is loaded, this makes the % command skip parens and
" braces in comments.
let b:match_words = &matchpairs . ',^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
" braces in comments properly.
let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
let b:match_skip = 's:comment\|string\|character\|special'
" Win32 can filter files in the browse dialog

12
runtime/ftplugin/gdb.vim Normal file
View File

@ -0,0 +1,12 @@
" Vim filetype plugin file
" Language: gdb
" Maintainer: Michaël Peeters <NOSPAMm.vim@noekeon.org>
" Last Changed: 26 Oct 2017
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
setlocal commentstring=#%s
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal cms<"

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: man
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2017 Jan 18
" Last Change: 2017 Nov 11
" To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file.
@ -15,12 +15,6 @@ if &filetype == "man"
endif
let b:did_ftplugin = 1
" Ensure Vim is not recursively invoked (man-db does this)
" when doing ctrl-[ on a man page reference.
if exists("$MANPAGER")
let $MANPAGER = ""
endif
" allow dot and dash in manual page name.
setlocal iskeyword+=\.,-
@ -176,7 +170,11 @@ func <SID>GetPage(...)
let $MANWIDTH = winwidth(0)
let unsetwidth = 1
endif
silent exec "r !man ".s:GetCmdArg(sect, page)." | col -b"
" Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[
" on a man page reference by unsetting MANPAGER.
silent exec "r !env -u MANPAGER man ".s:GetCmdArg(sect, page)." | col -b"
if unsetwidth
let $MANWIDTH = ''
endif

View File

@ -0,0 +1,23 @@
" Vim filetype plugin file
" Language: NeoMutt RC File
" Previous Maintainer: Guillaume Brogi <gui-gui@netcourrier.com>
" Latest Revision: 2017-09-17
" Original version copied from ftplugin/muttrc.vim
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin = "setl com< cms< inc< fo<"
setlocal comments=:# commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql
let &l:include = '^\s*source\>'
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -3,7 +3,7 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-07-21
" Last Change: 2015-02-09
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@ -33,14 +33,14 @@ endif
setlocal include=\\<\\(use\\\|require\\)\\>
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
setlocal define=[^A-Za-z_]
setlocal iskeyword+=:
" The following line changes a global variable but is necessary to make
" gf and similar commands work. The change to iskeyword was incorrect.
" Thanks to Andrew Pimlott for pointing out the problem. If this causes a
" problem for you, add an after/ftplugin/perl.vim file that contains
" gf and similar commands work. Thanks to Andrew Pimlott for pointing
" out the problem. If this causes a problem for you, add an
" after/ftplugin/perl.vim file that contains
" set isfname-=:
set isfname+=:
set iskeyword+=:
" Set this once, globally.
if !exists("perlpath")
@ -77,11 +77,12 @@ endif
"---------------------------------------------
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
\ " | unlet! b:browsefilter"
" proper matching for matchit plugin
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
let b:match_words = '\<if\>:\<elsif\>:\<else\>'
" Restore the saved compatibility options.
let &cpo = s:save_cpo

View File

@ -1,9 +1,10 @@
" Vim filetype plugin file
" Language: python
" Maintainer: James Sully <sullyj3@gmail.com>
" Maintainer: Tom Picton <tom@tompicton.co.uk>
" Previous Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Tue, 09 October 2016
" https://github.com/sullyj3/vim-ftplugin-python
" Last Change: Thur, 09 November 2017
" https://github.com/tpict/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@ -24,31 +25,51 @@ set wildignore+=*.pyc
let b:next_toplevel='\v%$\|^(class\|def\|async def)>'
let b:prev_toplevel='\v^(class\|def\|async def)>'
let b:next_endtoplevel='\v%$\|\S.*\n+(def\|class)'
let b:prev_endtoplevel='\v\S.*\n+(def\|class)'
let b:next='\v%$\|^\s*(class\|def\|async def)>'
let b:prev='\v^\s*(class\|def\|async def)>'
let b:next_end='\v\S\n*(%$\|^(\s*\n*)*(class\|def\|async def)\|^\S)'
let b:prev_end='\v\S\n*(^(\s*\n*)*(class\|def\|async def)\|^\S)'
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W')<cr>"
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb')<cr>"
execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W')<cr>"
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb')<cr>"
execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', 0)<cr>"
execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', 0)<cr>"
execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W')<cr>"
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb')<cr>"
execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('o', '". b:next_endtoplevel."', 'W', 0)<cr>"
execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('o', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W')<cr>"
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb')<cr>"
execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', 0)<cr>"
execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', 0)<cr>"
execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W')<cr>"
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb')<cr>"
execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('x', '". b:next_endtoplevel."', 'W', 0)<cr>"
execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('x', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W')<cr>"
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb')<cr>"
execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', 0)<cr>"
execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', 0)<cr>"
if !exists('*<SID>Python_jump')
fun! <SID>Python_jump(mode, motion, flags) range
fun! <SID>Python_jump(mode, motion, flags, ...) range
let l:startofline = (a:0 >= 1) ? a:1 : 1
if a:mode == 'x'
normal! gv
endif
normal! 0
if l:startofline == 1
normal! 0
endif
let cnt = v:count1
mark '
@ -57,7 +78,9 @@ if !exists('*<SID>Python_jump')
let cnt = cnt - 1
endwhile
normal! ^
if l:startofline == 1
normal! ^
endif
endfun
endif

View File

@ -1,8 +1,12 @@
" Vim filetype plugin file
" Language: Verilog HDL
" Maintainer: Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
" Last Change: Wed Sep 3 15:24:49 CST 2008
" URL: http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
" Last Change: 2017 Aug 25 by Chih-Tsun Huang
" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
"
" Credits:
" Suggestions for improvement, bug reports by
" Shao <shaominghai2005@163.com>
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@ -45,11 +49,16 @@ if exists("loaded_matchit")
\ '\<begin\>:\<end\>,' .
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
\ '\<module\>:\<endmodule\>,' .
\ '\<if\>:\<else\>,' .
\ '\<if\>:`\@<!\<else\>,' .
\ '\<function\>:\<endfunction\>,' .
\ '`ifdef\>:`else\>:`endif\>,' .
\ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
\ '\<task\>:\<endtask\>,' .
\ '\<specify\>:\<endspecify\>'
\ '\<specify\>:\<endspecify\>,' .
\ '\<config\>:\<endconfig\>,' .
\ '\<generate\>:\<endgenerate\>,' .
\ '\<fork\>:\<join\>,' .
\ '\<primitive\>:\<endprimitive\>,' .
\ '\<table\>:\<endtable\>'
endif
" Reset 'cpoptions' back to the user's setting

View File

@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Vim
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2014 Sep 07
" Last Change: 2017 Nov 06
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@ -25,6 +25,9 @@ setlocal fo-=t fo+=croql
" keyword character. E.g., for netrw#Nread().
setlocal isk+=#
" Use :help to lookup the keyword under the cursor with K.
setlocal keywordprg=:help
" Set 'comments' to format dashed lists in comments
setlocal com=sO:\"\ -,mO:\"\ \ ,eO:\"\",:\"

View File

@ -1,14 +1,12 @@
" Vim indent file
" Program: CMake - Cross-Platform Makefile Generator
" Module: $RCSfile: cmake-indent.vim,v $
" Language: CMake (ft=cmake)
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
" Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
" Last Change: $Date: 2008-01-16 16:53:53 $
" Version: $Revision: 1.9 $
" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
" Last Change: 2017 Sep 24
"
" Licence: The CMake license applies to this file. See
" http://www.cmake.org/HTML/Copyright.html
" https://cmake.org/licensing
" This implies that distribution with Vim is allowed
if exists("b:did_indent")

View File

@ -1,8 +1,10 @@
" Vim indent file
" Language: gitolite configuration
" URL: https://github.com/tmatilai/gitolite.vim
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
" Last Change: 2017 Jun 13
" URL: https://github.com/sitaramc/gitolite/blob/master/contrib/vim/indent/gitolite.vim
" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/indent/gitolite.vim)
" Maintainer: Sitaram Chamarty <sitaramc@gmail.com>
" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
" Last Change: 2017 Oct 05
if exists("b:did_indent")
finish
@ -30,6 +32,8 @@ function! GetGitoliteIndent()
return shiftwidth()
elseif cline =~ '^\s*config\s'
return shiftwidth()
elseif cline =~ '^\s*option\s'
return shiftwidth()
elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
return shiftwidth()
elseif cline =~ '^\s*#'

View File

@ -2,7 +2,7 @@
" Language: Javascript
" Maintainer: Chris Paul ( https://github.com/bounceme )
" URL: https://github.com/pangloss/vim-javascript
" Last Change: March 21, 2017
" Last Change: September 18, 2017
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
@ -10,6 +10,10 @@ if exists('b:did_indent')
endif
let b:did_indent = 1
" indent correctly if inside <script>
" vim/vim@690afe1 for the switch from cindent
let b:html_indent_script1 = 'inc'
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetJavascriptIndent()
setlocal autoindent nolisp nosmartindent
@ -21,6 +25,13 @@ setlocal indentkeys+=0],0)
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
" Regex of syntax group names that are or delimit string or are comments.
let b:syng_strcom = get(b:,'syng_strcom','string\|comment\|regex\|special\|doc\|template\%(braces\)\@!')
let b:syng_str = get(b:,'syng_str','string\|template\|special')
" template strings may want to be excluded when editing graphql:
" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'
" Only define the function once.
if exists('*GetJavascriptIndent')
finish
@ -36,7 +47,7 @@ if exists('*shiftwidth')
endfunction
else
function s:sw()
return &l:shiftwidth == 0 ? &l:tabstop : &l:shiftwidth
return &l:shiftwidth ? &l:shiftwidth : &l:tabstop
endfunction
endif
@ -44,272 +55,301 @@ endif
" matches before pos.
let s:z = has('patch-7.4.984') ? 'z' : ''
" Expression used to check whether we should skip a match with searchpair().
let s:skip_expr = "s:SynAt(line('.'),col('.')) =~? b:syng_strcom"
let s:in_comm = s:skip_expr[:-14] . "'comment\\|doc'"
let s:rel = has('reltime')
" searchpair() wrapper
if has('reltime')
function s:GetPair(start,end,flags,skip,time,...)
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 2000,0] + a:000),a:time)
if s:rel
function s:GetPair(start,end,flags,skip)
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1,a:skip ==# 's:SkipFunc()' ? 2000 : 200)
endfunction
else
function s:GetPair(start,end,flags,skip,...)
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 1000,get(a:000,1)]))
function s:GetPair(start,end,flags,skip)
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1)
endfunction
endif
" Regex of syntax group names that are or delimit string or are comments.
let s:syng_strcom = 'string\|comment\|regex\|special\|doc\|template\%(braces\)\@!'
let s:syng_str = 'string\|template\|special'
let s:syng_com = 'comment\|doc'
" Expression used to check whether we should skip a match with searchpair().
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
function s:parse_cino(f) abort
return float2nr(eval(substitute(substitute(join(split(
\ matchstr(&cino,'.*'.a:f.'\zs[^,]*'), 's',1), '*'.s:W)
\ , '^-\=\zs\*','',''), '^-\=\zs\.','0.','')))
endfunction
function s:skip_func()
if getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
return eval(s:skip_expr)
elseif s:checkIn || search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn)
let s:checkIn = eval(s:skip_expr)
function s:SynAt(l,c)
let byte = line2byte(a:l) + a:c - 1
let pos = index(s:synid_cache[0], byte)
if pos == -1
let s:synid_cache[:] += [[byte], [synIDattr(synID(a:l, a:c, 0), 'name')]]
endif
let s:looksyn = line('.')
return s:checkIn
return s:synid_cache[1][pos]
endfunction
function s:alternatePair(stop)
let pos = getpos('.')[1:2]
let pat = '[][(){};]'
while search('\m'.pat,'bW',a:stop)
if s:skip_func() | continue | endif
let idx = stridx('])};',s:looking_at())
if idx is 3 | let pat = '[{}()]' | continue | endif
if idx + 1
if s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,a:stop) <= 0
function s:ParseCino(f)
let [divider, n, cstr] = [0] + matchlist(&cino,
\ '\%(.*,\)\=\%(\%d'.char2nr(a:f).'\(-\)\=\([.s0-9]*\)\)\=')[1:2]
for c in split(cstr,'\zs')
if c == '.' && !divider
let divider = 1
elseif c ==# 's'
if n !~ '\d'
return n . s:sw() + 0
endif
let n = str2nr(n) * s:sw()
break
else
let [n, divider] .= [c, 0]
endif
endfor
return str2nr(n) / max([str2nr(divider),1])
endfunction
" Optimized {skip} expr, only callable from the search loop which
" GetJavascriptIndent does to find the containing [[{(] (side-effects)
function s:SkipFunc()
if s:top_col == 1
throw 'out of bounds'
endif
let s:top_col = 0
if s:check_in
if eval(s:skip_expr)
return 1
endif
let s:check_in = 0
elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
if eval(s:skip_expr)
let s:looksyn = a:firstline
return 1
endif
elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn) && eval(s:skip_expr)
let s:check_in = 1
return 1
endif
let [s:looksyn, s:top_col] = getpos('.')[1:2]
endfunction
function s:AlternatePair()
let [pat, l:for] = ['[][(){};]', 2]
while s:SearchLoop(pat,'bW','s:SkipFunc()')
if s:LookingAt() == ';'
if !l:for
if s:GetPair('{','}','bW','s:SkipFunc()')
return
endif
break
else
let [pat, l:for] = ['[{}();]', l:for - 1]
endif
else
return
let idx = stridx('])}',s:LookingAt())
if idx == -1
return
elseif !s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
break
endif
endif
endwhile
call call('cursor',pos)
throw 'out of bounds'
endfunction
function s:save_pos(f,...)
let l:pos = getpos('.')[1:2]
let ret = call(a:f,a:000)
call call('cursor',l:pos)
return ret
function s:Nat(int)
return a:int * (a:int > 0)
endfunction
function s:syn_at(l,c)
return synIDattr(synID(a:l,a:c,0),'name')
endfunction
function s:looking_at()
function s:LookingAt()
return getline('.')[col('.')-1]
endfunction
function s:token()
return s:looking_at() =~ '\k' ? expand('<cword>') : s:looking_at()
function s:Token()
return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt()
endfunction
function s:previous_token()
let l:pos = getpos('.')[1:2]
if search('\m\k\{1,}\zs\k\|\S','bW')
if (getline('.')[col('.')-2:col('.')-1] == '*/' || line('.') != l:pos[0] &&
\ getline('.') =~ '\%<'.col('.').'c\/\/') && s:syn_at(line('.'),col('.')) =~? s:syng_com
while search('\m\S\ze\_s*\/[/*]','bW')
if s:syn_at(line('.'),col('.')) !~? s:syng_com
return s:token()
endif
endwhile
function s:PreviousToken()
let l:col = col('.')
if search('\m\k\{1,}\|\S','ebW')
if search('\m\*\%#\/\|\/\/\%<'.a:firstline.'l','nbW',line('.')) && eval(s:in_comm)
if s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm)
return s:Token()
endif
call cursor(a:firstline, l:col)
else
return s:token()
return s:Token()
endif
endif
call call('cursor',l:pos)
return ''
endfunction
function s:expr_col()
if getline('.')[col('.')-2] == ':'
return 1
endif
function s:Pure(f,...)
return eval("[call(a:f,a:000),cursor(a:firstline,".col('.').")][0]")
endfunction
function s:SearchLoop(pat,flags,expr)
return s:GetPair(a:pat,'\_$.',a:flags,a:expr)
endfunction
function s:ExprCol()
let bal = 0
while search('\m[{}?:;]','bW')
if eval(s:skip_expr) | continue | endif
" switch (looking_at())
exe { '}': "if s:GetPair('{','}','bW',s:skip_expr,200) <= 0 | return | endif",
\ ';': "return",
\ '{': "return getpos('.')[1:2] != b:js_cache[1:] && !s:IsBlock()",
\ ':': "let bal -= getline('.')[max([col('.')-2,0]):col('.')] !~ '::'",
\ '?': "let bal += 1 | if bal > 0 | return 1 | endif" }[s:looking_at()]
while s:SearchLoop('[{}?]\|\_[^:]\zs::\@!','bW',s:skip_expr)
if s:LookingAt() == ':'
let bal -= 1
elseif s:LookingAt() == '?'
let bal += 1
if bal == 1
break
endif
elseif s:LookingAt() == '{'
let bal = !s:IsBlock()
break
elseif !s:GetPair('{','}','bW',s:skip_expr)
break
endif
endwhile
return s:Nat(bal)
endfunction
" configurable regexes that define continuation lines, not including (, {, or [.
let s:opfirst = '^' . get(g:,'javascript_opfirst',
\ '\C\%([<>=,?^%|*/&]\|\([-.:+]\)\1\@!\|!=\|in\%(stanceof\)\=\>\)')
\ '\C\%([<>=,.?^%|/&]\|\([-:+]\)\1\@!\|\*\+\|!=\|in\%(stanceof\)\=\>\)')
let s:continuation = get(g:,'javascript_continuation',
\ '\C\%([-+<>=,.~!?/*^%|&:]\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
\ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
function s:continues(ln,con)
if !cursor(a:ln, match(' '.a:con,s:continuation))
let teol = s:looking_at()
if teol == '/'
return s:syn_at(line('.'),col('.')) !~? 'regex'
elseif teol =~ '[-+>]'
return getline('.')[col('.')-2] != tr(teol,'>','=')
elseif teol =~ '\l'
return s:previous_token() != '.'
elseif teol == ':'
return s:expr_col()
endif
return 1
function s:Continues(ln,con)
let tok = matchstr(a:con[-15:],s:continuation)
if tok =~ '[a-z:]'
call cursor(a:ln, len(a:con))
return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.'
elseif tok !~ '[/>]'
return tok isnot ''
endif
endfunction
" get the line of code stripped of comments and move cursor to the last
" non-comment char.
function s:Trim(ln)
let pline = substitute(getline(a:ln),'\s*$','','')
let l:max = max([strridx(pline,'//'), strridx(pline,'/*')])
while l:max != -1 && s:syn_at(a:ln, strlen(pline)) =~? s:syng_com
let pline = pline[: l:max]
let l:max = max([strridx(pline,'//'), strridx(pline,'/*')])
let pline = substitute(pline[:-2],'\s*$','','')
endwhile
return pline is '' || cursor(a:ln,strlen(pline)) ? pline : pline
endfunction
" Find line above 'lnum' that isn't empty or in a comment
function s:PrevCodeLine(lnum)
let [l:pos, l:n] = [getpos('.')[1:2], prevnonblank(a:lnum)]
while l:n
if getline(l:n) =~ '^\s*\/[/*]'
let l:n = prevnonblank(l:n-1)
elseif stridx(getline(l:n), '*/') + 1 && s:syn_at(l:n,1) =~? s:syng_com
call cursor(l:n,1)
keepjumps norm! [*
let l:n = search('\m\S','nbW')
else
break
endif
endwhile
call call('cursor',l:pos)
return l:n
return s:SynAt(a:ln, len(a:con)) !~? (tok == '>' ? 'jsflow\|^html' : 'regex')
endfunction
" Check if line 'lnum' has a balanced amount of parentheses.
function s:Balanced(lnum)
let l:open = 0
let l:line = getline(a:lnum)
let pos = match(l:line, '[][(){}]', 0)
let [l:open, l:line] = [0, getline(a:lnum)]
let pos = match(l:line, '[][(){}]')
while pos != -1
if s:syn_at(a:lnum,pos + 1) !~? s:syng_strcom
if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom
let l:open += match(' ' . l:line[pos],'[[({]')
if l:open < 0
return
endif
endif
let pos = match(l:line, (l:open ?
\ '['.escape(tr(l:line[pos],'({[]})',')}][{(').l:line[pos],']').']' :
\ '[][(){}]'), pos + 1)
let pos = match(l:line, !l:open ? '[][(){}]' : '()' =~ l:line[pos] ?
\ '[()]' : '{}' =~ l:line[pos] ? '[{}]' : '[][]', pos + 1)
endwhile
return !l:open
endfunction
function s:OneScope(lnum)
let pline = s:Trim(a:lnum)
let kw = 'else do'
if pline[-1:] == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
if s:previous_token() =~# '^\%(await\|each\)$'
call s:previous_token()
let kw = 'for'
else
let kw = 'for if let while with'
endif
function s:OneScope()
if s:LookingAt() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr)
let tok = s:PreviousToken()
return (count(split('for if let while with'),tok) ||
\ tok =~# '^await$\|^each$' && s:PreviousToken() ==# 'for') &&
\ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile())
elseif s:Token() =~# '^else$\|^do$'
return s:Pure('s:PreviousToken') != '.'
endif
return pline[-2:] == '=>' || index(split(kw),s:token()) + 1 &&
\ s:save_pos('s:previous_token') != '.'
return strpart(getline('.'),col('.')-2,2) == '=>'
endfunction
" returns braceless levels started by 'i' and above lines * shiftwidth().
" 'num' is the lineNr which encloses the entire context, 'cont' if whether
" line 'i' + 1 is a continued expression, which could have started in a
" braceless context
function s:iscontOne(i,num,cont)
let [l:i, l:num, bL] = [a:i, a:num + !a:num, 0]
let pind = a:num ? indent(l:num) + s:W : 0
let ind = indent(l:i) + (a:cont ? 0 : s:W)
while l:i >= l:num && (ind > pind || l:i == l:num)
if indent(l:i) < ind && s:OneScope(l:i)
let bL += s:W
let l:i = line('.')
elseif !a:cont || bL || ind < indent(a:i)
function s:DoWhile()
let cpos = searchpos('\m\<','cbW')
if s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr)
if s:{s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) ?
\ 'Previous' : ''}Token() ==# 'do' && s:IsBlock()
return 1
endif
call call('cursor',cpos)
endif
endfunction
" returns total offset from braceless contexts. 'num' is the lineNr which
" encloses the entire context, 'cont' if whether a:firstline is a continued
" expression, which could have started in a braceless context
function s:IsContOne(num,cont)
let [l:num, b_l] = [a:num + !a:num, 0]
let pind = a:num ? indent(a:num) + s:sw() : 0
let ind = indent('.') + !a:cont
while line('.') > l:num && ind > pind || line('.') == l:num
if indent('.') < ind && s:OneScope()
let b_l += 1
elseif !a:cont || b_l || ind < indent(a:firstline)
break
else
call cursor(0,1)
endif
let ind = min([ind, indent('.')])
if s:PreviousToken() is ''
break
endif
let ind = min([ind, indent(l:i)])
let l:i = s:PrevCodeLine(l:i - 1)
endwhile
return bL
return b_l
endfunction
function s:Class()
return (s:Token() ==# 'class' || s:PreviousToken() =~# '^class$\|^extends$') &&
\ s:PreviousToken() != '.'
endfunction
function s:IsSwitch()
return s:PreviousToken() !~ '[.*]' &&
\ (!s:GetPair('{','}','cbW',s:skip_expr) || s:IsBlock() && !s:Class())
endfunction
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
function s:IsBlock()
if s:looking_at() == '{'
let l:n = line('.')
let char = s:previous_token()
if match(s:stack,'\cxml\|jsx') + 1 && s:syn_at(line('.'),col('.')-1) =~? 'xml\|jsx'
return char != '{'
elseif char =~ '\k'
if char ==# 'type'
return s:previous_token() !~# '^\%(im\|ex\)port$'
endif
return index(split('return const let import export extends yield default delete var await void typeof throw case new of in instanceof')
\ ,char) < (line('.') != l:n) || s:save_pos('s:previous_token') == '.'
elseif char == '>'
return getline('.')[col('.')-2] == '=' || s:syn_at(line('.'),col('.')) =~? '^jsflow'
elseif char == ':'
return !s:save_pos('s:expr_col')
elseif char == '/'
return s:syn_at(line('.'),col('.')) =~? 'regex'
let tok = s:PreviousToken()
if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx'
return tok != '{'
elseif tok =~ '\k'
if tok ==# 'type'
return s:Pure('eval',"s:PreviousToken() !~# '^\\%(im\\|ex\\)port$' || s:PreviousToken() == '.'")
elseif tok ==# 'of'
return s:Pure('eval',"!s:GetPair('[[({]','[])}]','bW',s:skip_expr) || s:LookingAt() != '(' ||"
\ ."s:{s:PreviousToken() ==# 'await' ? 'Previous' : ''}Token() !=# 'for' || s:PreviousToken() == '.'")
endif
return char !~ '[=~!<*,?^%|&([]' &&
\ (char !~ '[-+]' || l:n != line('.') && getline('.')[col('.')-2] == char)
return index(split('return const let import export extends yield default delete var await void typeof throw case new in instanceof')
\ ,tok) < (line('.') != a:firstline) || s:Pure('s:PreviousToken') == '.'
elseif tok == '>'
return getline('.')[col('.')-2] == '=' || s:SynAt(line('.'),col('.')) =~? 'jsflow\|^html'
elseif tok == '*'
return s:Pure('s:PreviousToken') == ':'
elseif tok == ':'
return s:Pure('eval',"s:PreviousToken() =~ '^\\K\\k*$' && !s:ExprCol()")
elseif tok == '/'
return s:SynAt(line('.'),col('.')) =~? 'regex'
elseif tok !~ '[=~!<,.?^%|&([]'
return tok !~ '[-+]' || line('.') != a:firstline && getline('.')[col('.')-2] == tok
endif
endfunction
function GetJavascriptIndent()
let b:js_cache = get(b:,'js_cache',[0,0,0])
" Get the current line.
call cursor(v:lnum,1)
let l:line = getline('.')
let s:synid_cache = [[],[]]
let l:line = getline(v:lnum)
" use synstack as it validates syn state and works in an empty line
let s:stack = map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
let syns = get(s:stack,-1,'')
let s:stack = [''] + map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
" start with strings,comments,etc.
if syns =~? s:syng_com
if s:stack[-1] =~? 'comment\|doc'
if l:line =~ '^\s*\*'
return cindent(v:lnum)
elseif l:line !~ '^\s*\/[/*]'
return -1
endif
elseif syns =~? s:syng_str
elseif s:stack[-1] =~? b:syng_str
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
let b:js_cache[0] = v:lnum
endif
return -1
endif
let l:lnum = s:PrevCodeLine(v:lnum - 1)
if !l:lnum
let s:l1 = max([0,prevnonblank(v:lnum) - (s:rel ? 2000 : 1000),
\ get(get(b:,'hi_indent',{}),'blocklnr')])
call cursor(v:lnum,1)
if s:PreviousToken() is ''
return
endif
let [l:lnum, pline] = [line('.'), getline('.')[:col('.')-1]]
let l:line = substitute(l:line,'^\s*','','')
let l:line_raw = l:line
if l:line[:1] == '/*'
let l:line = substitute(l:line,'^\%(\/\*.\{-}\*\/\s*\)*','','')
endif
@ -318,60 +358,91 @@ function GetJavascriptIndent()
endif
" the containing paren, bracket, or curly. Many hacks for performance
call cursor(v:lnum,1)
let idx = index([']',')','}'],l:line[0])
if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum &&
\ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum))
if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum ||
\ b:js_cache[0] == l:lnum && s:Balanced(l:lnum)
call call('cursor',b:js_cache[1:])
else
let [s:looksyn, s:checkIn, top] = [v:lnum - 1, 0, (!indent(l:lnum) &&
\ s:syn_at(l:lnum,1) !~? s:syng_str) * l:lnum]
if idx + 1
call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:skip_func()',2000,top)
elseif getline(v:lnum) !~ '^\S' && syns =~? 'block'
call s:GetPair('{','}','bW','s:skip_func()',2000,top)
else
call s:alternatePair(top)
endif
let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0,
\ max([s:l1, &smc ? search('\m^.\{'.&smc.',}','nbW',s:l1 + 1) + 1 : 0])]
try
if idx != -1
call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
elseif getline(v:lnum) !~ '^\S' && s:stack[-1] =~? 'block\|^jsobject$'
call s:GetPair('{','}','bW','s:SkipFunc()')
else
call s:AlternatePair()
endif
catch /^\Cout of bounds$/
call cursor(v:lnum,1)
endtry
let b:js_cache[1:] = line('.') == v:lnum ? [0,0] : getpos('.')[1:2]
endif
let b:js_cache = [v:lnum] + (line('.') == v:lnum ? [0,0] : getpos('.')[1:2])
let num = b:js_cache[1]
let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]]
let [s:W, isOp, bL, switch_offset] = [s:sw(),0,0,0]
if !num || s:IsBlock()
let [num_ind, is_op, b_l, l:switch_offset] = [s:Nat(indent(num)),0,0,0]
if !num || s:LookingAt() == '{' && s:IsBlock()
let ilnum = line('.')
let pline = s:save_pos('s:Trim',l:lnum)
if num && s:looking_at() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
let num = ilnum == num ? line('.') : num
if idx < 0 && s:previous_token() ==# 'switch' && s:previous_token() != '.'
if &cino !~ ':'
let switch_offset = s:W
else
let switch_offset = max([-indent(num),s:parse_cino(':')])
endif
if num && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr)
if ilnum == num
let [num, num_ind] = [line('.'), indent('.')]
endif
if idx == -1 && s:PreviousToken() ==# 'switch' && s:IsSwitch()
let l:switch_offset = &cino !~ ':' ? s:sw() : s:ParseCino(':')
if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
return indent(num) + switch_offset
return s:Nat(num_ind + l:switch_offset)
elseif &cino =~ '='
let l:case_offset = s:ParseCino('=')
endif
endif
endif
if idx < 0 && pline[-1:] !~ '[{;]'
let isOp = (l:line =~# s:opfirst || s:continues(l:lnum,pline)) * s:W
let bL = s:iscontOne(l:lnum,b:js_cache[1],isOp)
let bL -= (bL && l:line[0] == '{') * s:W
if idx == -1 && pline[-1:] !~ '[{;]'
let sol = matchstr(l:line,s:opfirst)
if sol is '' || sol == '/' && s:SynAt(v:lnum,
\ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex'
if s:Continues(l:lnum,pline)
let is_op = s:sw()
endif
elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$'
call call('cursor',b:js_cache[1:])
if s:PreviousToken() =~ '\k' && s:Class()
return num_ind + s:sw()
endif
let is_op = s:sw()
else
let is_op = s:sw()
endif
call cursor(l:lnum, len(pline))
let b_l = s:Nat(s:IsContOne(b:js_cache[1],is_op) - (!is_op && l:line =~ '^{')) * s:sw()
endif
elseif idx < 0 && getline(b:js_cache[1])[b:js_cache[2]-1] == '(' && &cino =~ '('
let pval = s:parse_cino('(')
return !pval ? (s:parse_cino('w') ? 0 : -(!!search('\m\S','W'.s:z,num))) + virtcol('.') :
\ max([indent('.') + pval + (s:GetPair('(',')','nbrmW',s:skip_expr,100,num) * s:W),0])
elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U'))
let pval = s:ParseCino('(')
if !pval
let [Wval, vcol] = [s:ParseCino('W'), virtcol('.')]
if search('\m\S','W',num)
return s:ParseCino('w') ? vcol : virtcol('.')-1
endif
return Wval ? s:Nat(num_ind + Wval) : vcol
endif
return s:Nat(num_ind + pval + searchpair('\m(','','\m)','nbrmW',s:skip_expr,num) * s:sw())
endif
" main return
if l:line =~ '^\%([])}]\||}\)'
return max([indent(num),0])
if l:line =~ '^[])}]\|^|}'
if l:line_raw[0] == ')' && getline(num)[b:js_cache[2]-1] == '('
if s:ParseCino('M')
return indent(l:lnum)
elseif &cino =~# 'm' && !s:ParseCino('m')
return virtcol('.') - 1
endif
endif
return num_ind
elseif num
return indent(num) + s:W + switch_offset + bL + isOp
return s:Nat(num_ind + get(l:,'case_offset',s:sw()) + l:switch_offset + b_l + is_op)
endif
return bL + isOp
return b_l + is_op
endfunction
let &cpo = s:cpo_save

View File

@ -3,7 +3,7 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2017 Jun 13
" Last Change: 2017-01-04
" Suggestions and improvements by :
" Aaron J. Sherman (use syntax for hints)
@ -48,11 +48,6 @@ function! GetPerlIndent()
return 0
endif
" Don't reindent comments on first column
if cline =~ '^#.'
return 0
endif
" Get current syntax item at the line's first char
let csynid = ''
if b:indent_use_syntax
@ -134,6 +129,7 @@ function! GetPerlIndent()
\ || synid == "perlMatchStartEnd"
\ || synid == "perlHereDoc"
\ || synid == "perlBraces"
\ || synid == "perlStatementIndirObj"
\ || synid =~ "^perlFiledescStatement"
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let brace = strpart(line, bracepos, 1)
@ -151,6 +147,7 @@ function! GetPerlIndent()
if synid == ""
\ || synid == "perlMatchStartEnd"
\ || synid == "perlBraces"
\ || synid == "perlStatementIndirObj"
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let ind = ind - shiftwidth()
endif

View File

@ -3,10 +3,11 @@
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Original Author: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2017-05-02
" Latest Revision: 2017-08-08
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent
" Changelog:
" 20170808: - better indent of line continuation
" 20170502: - get rid of buffer-shiftwidth function
" 20160912: - preserve indentation of here-doc blocks
" 20160627: - detect heredocs correctly
@ -117,7 +118,8 @@ function! GetShIndent()
endfunction
function! s:is_continuation_line(line)
return a:line =~ '\%(\%(^\|[^\\]\)\\\|&&\|||\)$'
return a:line =~ '\%(\%(^\|[^\\]\)\\\|&&\|||\||\)' .
\ '\s*\({\s*\)\=\(#.*\)\=$'
endfunction
function! s:find_continued_lnum(lnum)

View File

@ -1,6 +1,6 @@
" Language: Verilog HDL
" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
" Last Change: 2017 Feb 24 by Chih-Tsun Huang
" Last Change: 2017 Aug 25 by Chih-Tsun Huang
" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/indent/verilog.vim
"
" Credits:
@ -25,7 +25,8 @@ let b:did_indent = 1
setlocal indentexpr=GetVerilogIndent()
setlocal indentkeys=!^F,o,O,0),=begin,=end,=join,=endcase
setlocal indentkeys+==endmodule,=endfunction,=endtask,=endspecify
setlocal indentkeys+==`else,=`endif
setlocal indentkeys+==endconfig,=endgenerate,=endprimitive,=endtable
setlocal indentkeys+==`else,=`elsif,=`endif
" Only define the function once.
if exists("*GetVerilogIndent")
@ -84,7 +85,9 @@ function GetVerilogIndent()
endif
" Indent after if/else/for/case/always/initial/specify/fork blocks
elseif last_line =~ '`\@<!\<\(if\|else\)\>' ||
" Note: We exclude '`if' or '`else' and consider 'end else'
" 'end if' is redundant here
elseif last_line =~ '^\s*\(end\)\=\s*`\@<!\<\(if\|else\)\>' ||
\ last_line =~ '^\s*\<\(for\|case\%[[zx]]\)\>' ||
\ last_line =~ '^\s*\<\(always\|initial\)\>' ||
\ last_line =~ '^\s*\<\(specify\|fork\)\>'
@ -93,8 +96,8 @@ function GetVerilogIndent()
let ind = ind + offset
if vverb | echo vverb_str "Indent after a block statement." | endif
endif
" Indent after function/task blocks
elseif last_line =~ '^\s*\<\(function\|task\)\>'
" Indent after function/task/config/generate/primitive/table blocks
elseif last_line =~ '^\s*\<\(function\|task\|config\|generate\|primitive\|table\)\>'
if last_line !~ '\<end\>\s*' . vlog_comment . '*$' ||
\ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . vlog_comment . '*$'
let ind = ind + offset
@ -161,11 +164,11 @@ function GetVerilogIndent()
let ind = ind - offset
if vverb | echo vverb_str "De-indent after a close statement." | endif
" `ifdef and `else
elseif last_line =~ '^\s*`\<\(ifdef\|else\)\>'
" `ifdef or `ifndef or `elsif or `else
elseif last_line =~ '^\s*`\<\(ifn\?def\|elsif\|else\)\>'
let ind = ind + offset
if vverb
echo vverb_str "Indent after a `ifdef or `else statement."
echo vverb_str "Indent after a `ifdef or `ifndef or `elsif or `else statement."
endif
endif
@ -175,7 +178,8 @@ function GetVerilogIndent()
" De-indent on the end of the block
" join/end/endcase/endfunction/endtask/endspecify
if curr_line =~ '^\s*\<\(join\|end\|endcase\)\>' ||
\ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>'
\ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>' ||
\ curr_line =~ '^\s*\<\(endconfig\|endgenerate\|endprimitive\|endtable\)\>'
let ind = ind - offset
if vverb | echo vverb_str "De-indent the end of a block." | endif
elseif curr_line =~ '^\s*\<endmodule\>'
@ -186,7 +190,7 @@ function GetVerilogIndent()
" De-indent on a stand-alone 'begin'
elseif curr_line =~ '^\s*\<begin\>'
if last_line !~ '^\s*\<\(function\|task\|specify\|module\)\>' &&
if last_line !~ '^\s*\<\(function\|task\|specify\|module\|config\|generate\|primitive\|table\)\>' &&
\ last_line !~ '^\s*\()*\s*;\|)\+\)\s*' . vlog_comment . '*$' &&
\ ( last_line =~
\ '\<\(`\@<!if\|`\@<!else\|for\|case\%[[zx]]\|always\|initial\)\>' ||
@ -208,10 +212,10 @@ function GetVerilogIndent()
echo vverb_str "De-indent the end of a multiple statement."
endif
" De-indent `else and `endif
elseif curr_line =~ '^\s*`\<\(else\|endif\)\>'
" De-indent `elsif or `else or `endif
elseif curr_line =~ '^\s*`\<\(elsif\|else\|endif\)\>'
let ind = ind - offset
if vverb | echo vverb_str "De-indent `else and `endif statement." | endif
if vverb | echo vverb_str "De-indent `elsif or `else or `endif statement." | endif
endif

View File

@ -1,8 +1,8 @@
" VHDL indent ('93 syntax)
" Language: VHDL
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
" Version: 1.60
" Last Change: 2017 Jun 13
" Version: 1.62
" Last Change: 2017 Oct 17
" URL: http://www.vim.org/scripts/script.php?script_id=1450
" only load this indent file when no other was loaded
@ -412,11 +412,12 @@ function GetVHDLindent()
" ****************************************************************************************
" indent: maintain indent of previous opening statement
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
" where: start of current line
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
return ind2
endif
" ****************************************************************************************
" indent: maintain indent of previous opening statement, corner case which
" does not end in ;, but is part of a mapping
@ -424,10 +425,10 @@ function GetVHDLindent()
" prevline without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
" where: start of current line
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*[^;].*$'
if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
return ind2
endif
endif
if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
return ind2
endif
endif
" return leftover filtered indent
return ind

View File

@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Mar 04
" Last Change: 2017 Nov 09
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
@ -159,7 +159,7 @@ nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p [p
inoremenu &Edit.Put\ &Before<Tab>[p <C-O>[p
nnoremenu 20.380 &Edit.Put\ &After<Tab>]p ]p
inoremenu &Edit.Put\ &After<Tab>]p <C-O>]p
if has("win32") || has("win16")
if has("win32")
vnoremenu 20.390 &Edit.&Delete<Tab>x x
endif
noremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG :<C-U>call <SID>SelectAll()<CR>
@ -167,7 +167,7 @@ inoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-O>:call <SID>S
cnoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-U>call <SID>SelectAll()<CR>
an 20.405 &Edit.-SEP2- <Nop>
if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
if has("win32") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
an 20.410 &Edit.&Find\.\.\. :promptfind<CR>
vunmenu &Edit.&Find\.\.\.
vnoremenu <silent> &Edit.&Find\.\.\. y:promptfind <C-R>=<SID>FixFText()<CR><CR>
@ -339,51 +339,65 @@ fun! s:FileFormat()
endif
endfun
let s:did_setup_color_schemes = 0
" Setup the Edit.Color Scheme submenu
func! s:SetupColorSchemes() abort
if s:did_setup_color_schemes
return
endif
let s:did_setup_color_schemes = 1
" get NL separated string with file names
let s:n = globpath(&runtimepath, "colors/*.vim")
let n = globpath(&runtimepath, "colors/*.vim", 1, 1)
" split at NL, Ignore case for VMS and windows, sort on name
let s:names = sort(map(split(s:n, "\n"), 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1)
" Ignore case for VMS and windows, sort on name
let names = sort(map(n, 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1)
" define all the submenu entries
let s:idx = 100
for s:name in s:names
exe "an 20.450." . s:idx . ' &Edit.C&olor\ Scheme.' . s:name . " :colors " . s:name . "<CR>"
let s:idx = s:idx + 10
endfor
unlet s:name s:names s:n s:idx
" define all the submenu entries
let idx = 100
for name in names
exe "an 20.450." . idx . ' &Edit.C&olor\ Scheme.' . name . " :colors " . name . "<CR>"
let idx = idx + 10
endfor
silent! aunmenu &Edit.Show\ C&olor\ Schemes\ in\ Menu
endfun
if exists("do_no_lazyload_menus")
call s:SetupColorSchemes()
else
an <silent> 20.450 &Edit.Show\ C&olor\ Schemes\ in\ Menu :call <SID>SetupColorSchemes()<CR>
endif
" Setup the Edit.Keymap submenu
if has("keymap")
let s:n = globpath(&runtimepath, "keymap/*.vim")
if s:n != ""
let s:idx = 100
an 20.460.90 &Edit.&Keymap.None :set keymap=<CR>
while strlen(s:n) > 0
let s:i = stridx(s:n, "\n")
if s:i < 0
let s:name = s:n
let s:n = ""
else
let s:name = strpart(s:n, 0, s:i)
let s:n = strpart(s:n, s:i + 1, 19999)
endif
" Ignore case for VMS and windows
let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:_]*\)\(_[0-9a-zA-Z-]*\)\=\.vim', '\1', '')
exe "an 20.460." . s:idx . ' &Edit.&Keymap.' . s:name . " :set keymap=" . s:name . "<CR>"
unlet s:name
unlet s:i
let s:idx = s:idx + 10
endwhile
unlet s:idx
let s:did_setup_keymaps = 0
func! s:SetupKeymaps() abort
if s:did_setup_keymaps
return
endif
let s:did_setup_keymaps = 1
let n = globpath(&runtimepath, "keymap/*.vim", 1, 1)
if !empty(n)
let idx = 100
an 20.460.90 &Edit.&Keymap.None :set keymap=<CR>
for name in n
" Ignore case for VMS and windows
let name = substitute(name, '\c.*[/\\:\]]\([^/\\:_]*\)\(_[0-9a-zA-Z-]*\)\=\.vim', '\1', '')
exe "an 20.460." . idx . ' &Edit.&Keymap.' . name . " :set keymap=" . name . "<CR>"
let idx = idx + 10
endfor
endif
silent! aunmenu &Edit.Show\ &Keymaps\ in\ Menu
endfun
if exists("do_no_lazyload_menus")
call s:SetupKeymaps()
else
an <silent> 20.460 &Edit.Show\ &Keymaps\ in\ Menu :call <SID>SetupKeymaps()<CR>
endif
unlet s:n
endif
if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
if has("win32") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
an 20.470 &Edit.Select\ Fo&nt\.\.\. :set guifont=*<CR>
endif
@ -441,10 +455,10 @@ if has("spell")
endif
let found = 0
let s = globpath(&rtp, "spell/*." . enc . ".spl")
if s != ""
let s = globpath(&runtimepath, "spell/*." . enc . ".spl", 1, 1)
if !empty(s)
let n = 300
for f in split(s, "\n")
for f in s
let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "")
if nm != "en" && nm !~ '/'
let _nm = nm
@ -574,27 +588,46 @@ func! s:XxdFind()
endif
endfun
let s:did_setup_compilers = 0
" Setup the Tools.Compiler submenu
let s:n = globpath(&runtimepath, "compiler/*.vim")
let s:idx = 100
while strlen(s:n) > 0
let s:i = stridx(s:n, "\n")
if s:i < 0
let s:name = s:n
let s:n = ""
else
let s:name = strpart(s:n, 0, s:i)
let s:n = strpart(s:n, s:i + 1, 19999)
func! s:SetupCompilers() abort
if s:did_setup_compilers
return
endif
" Ignore case for VMS and windows
let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '')
exe "an 30.440." . s:idx . ' &Tools.Se&t\ Compiler.' . s:name . " :compiler " . s:name . "<CR>"
unlet s:name
unlet s:i
let s:idx = s:idx + 10
endwhile
unlet s:n
unlet s:idx
let s:did_setup_compilers = 1
let n = globpath(&runtimepath, "compiler/*.vim", 1, 1)
let idx = 100
for name in n
" Ignore case for VMS and windows
let name = substitute(name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '')
exe "an 30.440." . idx . ' &Tools.Se&t\ Compiler.' . name . " :compiler " . name . "<CR>"
let idx = idx + 10
endfor
silent! aunmenu &Tools.Show\ Compiler\ Se&ttings\ in\ Menu
endfun
if exists("do_no_lazyload_menus")
call s:SetupCompilers()
else
an <silent> 30.440 &Tools.Show\ Compiler\ Se&ttings\ in\ Menu :call <SID>SetupCompilers()<CR>
endif
" Load ColorScheme, Compiler Setting and Keymap menus when idle.
if !exists("do_no_lazyload_menus")
func! s:SetupLazyloadMenus()
call s:SetupColorSchemes()
call s:SetupCompilers()
if has("keymap")
call s:SetupKeymaps()
endif
endfunc
augroup SetupLazyloadMenus
au!
au CursorHold,CursorHoldI * call <SID>SetupLazyloadMenus() | au! SetupLazyloadMenus
augroup END
endif
if !exists("no_buffers_menu")
@ -1095,7 +1128,7 @@ if (exists("did_load_filetypes") || exists("syntax_on"))
if exists("do_syntax_sel_menu")
runtime! synmenu.vim
else
an 50.10 &Syntax.&Show\ File\ Types\ in\ Menu :let do_syntax_sel_menu = 1<Bar>runtime! synmenu.vim<Bar>aunmenu &Syntax.&Show\ File\ Types\ in\ Menu<CR>
an <silent> 50.10 &Syntax.&Show\ File\ Types\ in\ Menu :let do_syntax_sel_menu = 1<Bar>runtime! synmenu.vim<Bar>aunmenu &Syntax.&Show\ File\ Types\ in\ Menu<CR>
an 50.195 &Syntax.-SEP1- <Nop>
endif

View File

@ -1,7 +1,7 @@
" Set options and add mapping such that Vim behaves a lot like MS-Windows
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2017 Feb 09
" Last change: 2017 Oct 28
" bail out if this isn't wanted (mrsvim.vim uses this).
if exists("g:skip_loading_mswin") && g:skip_loading_mswin
@ -105,14 +105,15 @@ onoremap <C-F4> <C-C><C-W>c
if has("gui")
" CTRL-F is the search dialog
noremap <C-F> :promptfind<CR>
inoremap <C-F> <C-\><C-O>:promptfind<CR>
cnoremap <C-F> <C-\><C-C>:promptfind<CR>
noremap <expr> <C-F> has("gui_running") ? ":promptfind\<CR>" : "/"
inoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-O>:promptfind\<CR>" : "\<C-\>\<C-O>/"
cnoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-C>:promptfind\<CR>" : "\<C-\>\<C-O>/"
" CTRL-H is the replace dialog
noremap <C-H> :promptrepl<CR>
inoremap <C-H> <C-\><C-O>:promptrepl<CR>
cnoremap <C-H> <C-\><C-C>:promptrepl<CR>
" CTRL-H is the replace dialog,
" but in console, it might be backspace, so don't map it there
nnoremap <expr> <C-H> has("gui_running") ? ":promptrepl\<CR>" : "\<C-H>"
inoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-O>:promptrepl\<CR>" : "\<C-H>"
cnoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-C>:promptrepl\<CR>" : "\<C-H>"
endif
" restore 'cpoptions'

View File

@ -1,20 +1,17 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Aug 01
" Last Change: 2017 Oct 19
" If there already is an option window, jump to that one.
if bufwinnr("option-window") > 0
let s:thiswin = winnr()
while 1
if @% == "option-window"
let buf = bufnr('option-window')
if buf >= 0
let winids = win_findbuf(buf)
if len(winids) > 0
if win_gotoid(winids[0]) == 1
finish
endif
wincmd w
if s:thiswin == winnr()
break
endif
endwhile
endif
endif
" Make sure the '<' flag is not included in 'cpoptions', otherwise <CR> would
@ -141,8 +138,8 @@ while exists("b:current_syntax") && b:current_syntax == "help"
endif
endwhile
" Open the window
new option-window
" Open the window. $OPTWIN_CMD is set to "tab" for ":tab options".
exe $OPTWIN_CMD . ' new option-window'
setlocal ts=15 tw=0 noro buftype=nofile
" Insert help and a "set" command for each option.
@ -513,6 +510,10 @@ if has("terminal")
call append("$", "termkey\tkey that precedes Vim commands in a terminal window")
call append("$", "\t(local to window)")
call <SID>OptionL("tk")
if exists("&winptydll")
call append("$", "winptydll\tname of the winpty dynamic library")
call <SID>OptionG("winptydll", &winptydll)
endif
endif
@ -1224,6 +1225,8 @@ endif
call append("$", "iminsert\tin Insert mode: 1: use :lmap; 2: use IM; 0: neither")
call append("$", "\t(local to window)")
call <SID>OptionL("imi")
call append("$", "imstyle\tinput method style, 0: on-the-spot, 1: over-the-spot")
call <SID>OptionG("imst", &imst)
call append("$", "imsearch\tentering a search pattern: 1: use :lmap; 2: use IM; 0: neither")
call append("$", "\t(local to window)")
call <SID>OptionL("ims")
@ -1357,6 +1360,12 @@ if exists("&tcldll")
call append("$", "tcldll\tname of the Tcl dynamic library")
call <SID>OptionG("tcldll", &tcldll)
endif
if exists("&mzschemedll")
call append("$", "mzschemedll\tname of the Tcl dynamic library")
call <SID>OptionG("mzschemedll", &mzschemedll)
call append("$", "mzschemegcdll\tname of the Tcl GC dynamic library")
call <SID>OptionG("mzschemegcdll", &mzschemegcdll)
endif
set cpo&vim

View File

@ -1,5 +1,5 @@
" matchit.vim: (global plugin) Extended "%" matching
" Last Change: 2017 March 26
" Last Change: 2017 Sep 15
" Maintainer: Benji Fisher PhD <benji@member.AMS.org>
" Version: 1.13.3, for Vim 6.3+
" Fix from Fernando Torres included.
@ -704,9 +704,8 @@ fun! s:MultiMatch(spflag, mode)
let skip = 's:comment\|string'
endif
let skip = s:ParseSkip(skip)
" let restore_cursor = line(".") . "G" . virtcol(".") . "|"
" normal! H
" let restore_cursor = "normal!" . line(".") . "Gzt" . restore_cursor
" save v:count1 variable, might be reset from the restore_cursor command
let level = v:count1
let restore_cursor = virtcol(".") . "|"
normal! g0
let restore_cursor = line(".") . "G" . virtcol(".") . "|zs" . restore_cursor
@ -726,7 +725,6 @@ fun! s:MultiMatch(spflag, mode)
execute "if " . skip . "| let skip = '0' | endif"
endif
mark '
let level = v:count1
while level
if searchpair(openpat, '', closepat, a:spflag, skip) < 1
call s:CleanUp(restore_options, a:mode, startline, startcol)

View File

@ -0,0 +1,484 @@
" Debugger plugin using gdb.
"
" WORK IN PROGRESS - much doesn't work yet
"
" Open two visible terminal windows:
" 1. run a pty, as with ":term NONE"
" 2. run gdb, passing the pty
" The current window is used to view source code and follows gdb.
"
" A third terminal window is hidden, it is used for communication with gdb.
"
" The communication with gdb uses GDB/MI. See:
" https://sourceware.org/gdb/current/onlinedocs/gdb/GDB_002fMI.html
"
" Author: Bram Moolenaar
" Copyright: Vim license applies, see ":help license"
" In case this gets loaded twice.
if exists(':Termdebug')
finish
endif
" Uncomment this line to write logging in "debuglog".
" call ch_logfile('debuglog', 'w')
" The command that starts debugging, e.g. ":Termdebug vim".
" To end type "quit" in the gdb window.
command -nargs=* -complete=file Termdebug call s:StartDebug(<q-args>)
" Name of the gdb command, defaults to "gdb".
if !exists('termdebugger')
let termdebugger = 'gdb'
endif
let s:pc_id = 12
let s:break_id = 13
let s:stopped = 1
if &background == 'light'
hi default debugPC term=reverse ctermbg=lightblue guibg=lightblue
else
hi default debugPC term=reverse ctermbg=darkblue guibg=darkblue
endif
hi default debugBreakpoint term=reverse ctermbg=red guibg=red
func s:StartDebug(cmd)
let s:startwin = win_getid(winnr())
let s:startsigncolumn = &signcolumn
let s:save_columns = 0
if exists('g:termdebug_wide')
if &columns < g:termdebug_wide
let s:save_columns = &columns
let &columns = g:termdebug_wide
endif
let vertical = 1
else
let vertical = 0
endif
" Open a terminal window without a job, to run the debugged program
let s:ptybuf = term_start('NONE', {
\ 'term_name': 'gdb program',
\ 'vertical': vertical,
\ })
if s:ptybuf == 0
echoerr 'Failed to open the program terminal window'
return
endif
let pty = job_info(term_getjob(s:ptybuf))['tty_out']
let s:ptywin = win_getid(winnr())
if vertical
" Assuming the source code window will get a signcolumn, use two more
" columns for that, thus one less for the terminal window.
exe (&columns / 2 - 1) . "wincmd |"
endif
" Create a hidden terminal window to communicate with gdb
let s:commbuf = term_start('NONE', {
\ 'term_name': 'gdb communication',
\ 'out_cb': function('s:CommOutput'),
\ 'hidden': 1,
\ })
if s:commbuf == 0
echoerr 'Failed to open the communication terminal window'
exe 'bwipe! ' . s:ptybuf
return
endif
let commpty = job_info(term_getjob(s:commbuf))['tty_out']
" Open a terminal window to run the debugger.
" Add -quiet to avoid the intro message causing a hit-enter prompt.
let cmd = [g:termdebugger, '-quiet', '-tty', pty, a:cmd]
echomsg 'executing "' . join(cmd) . '"'
let s:gdbbuf = term_start(cmd, {
\ 'exit_cb': function('s:EndDebug'),
\ 'term_finish': 'close',
\ })
if s:gdbbuf == 0
echoerr 'Failed to open the gdb terminal window'
exe 'bwipe! ' . s:ptybuf
exe 'bwipe! ' . s:commbuf
return
endif
let s:gdbwin = win_getid(winnr())
" Connect gdb to the communication pty, using the GDB/MI interface
" If you get an error "undefined command" your GDB is too old.
call term_sendkeys(s:gdbbuf, 'new-ui mi ' . commpty . "\r")
" Interpret commands while the target is running. This should usualy only be
" exec-interrupt, since many commands don't work properly while the target is
" running.
call s:SendCommand('-gdb-set mi-async on')
" Sign used to highlight the line where the program has stopped.
" There can be only one.
sign define debugPC linehl=debugPC
" Sign used to indicate a breakpoint.
" Can be used multiple times.
sign define debugBreakpoint text=>> texthl=debugBreakpoint
" Install debugger commands in the text window.
call win_gotoid(s:startwin)
call s:InstallCommands()
call win_gotoid(s:gdbwin)
" Enable showing a balloon with eval info
if has("balloon_eval") || has("balloon_eval_term")
set balloonexpr=TermDebugBalloonExpr()
if has("balloon_eval")
set ballooneval
endif
if has("balloon_eval_term")
set balloonevalterm
endif
endif
let s:breakpoints = {}
augroup TermDebug
au BufRead * call s:BufRead()
au BufUnload * call s:BufUnloaded()
augroup END
endfunc
func s:EndDebug(job, status)
exe 'bwipe! ' . s:ptybuf
exe 'bwipe! ' . s:commbuf
let curwinid = win_getid(winnr())
call win_gotoid(s:startwin)
let &signcolumn = s:startsigncolumn
call s:DeleteCommands()
call win_gotoid(curwinid)
if s:save_columns > 0
let &columns = s:save_columns
endif
if has("balloon_eval") || has("balloon_eval_term")
set balloonexpr=
if has("balloon_eval")
set noballooneval
endif
if has("balloon_eval_term")
set noballoonevalterm
endif
endif
au! TermDebug
endfunc
" Handle a message received from gdb on the GDB/MI interface.
func s:CommOutput(chan, msg)
let msgs = split(a:msg, "\r")
for msg in msgs
" remove prefixed NL
if msg[0] == "\n"
let msg = msg[1:]
endif
if msg != ''
if msg =~ '^\(\*stopped\|\*running\|=thread-selected\)'
call s:HandleCursor(msg)
elseif msg =~ '^\^done,bkpt=' || msg =~ '^=breakpoint-created,'
call s:HandleNewBreakpoint(msg)
elseif msg =~ '^=breakpoint-deleted,'
call s:HandleBreakpointDelete(msg)
elseif msg =~ '^\^done,value='
call s:HandleEvaluate(msg)
elseif msg =~ '^\^error,msg='
call s:HandleError(msg)
endif
endif
endfor
endfunc
" Install commands in the current window to control the debugger.
func s:InstallCommands()
command Break call s:SetBreakpoint()
command Delete call s:DeleteBreakpoint()
command Step call s:SendCommand('-exec-step')
command Over call s:SendCommand('-exec-next')
command Finish call s:SendCommand('-exec-finish')
command -nargs=* Run call s:Run(<q-args>)
command -nargs=* Arguments call s:SendCommand('-exec-arguments ' . <q-args>)
command Stop call s:SendCommand('-exec-interrupt')
command Continue call s:SendCommand('-exec-continue')
command -range -nargs=* Evaluate call s:Evaluate(<range>, <q-args>)
command Gdb call win_gotoid(s:gdbwin)
command Program call win_gotoid(s:ptywin)
" TODO: can the K mapping be restored?
nnoremap K :Evaluate<CR>
if has('menu')
nnoremenu WinBar.Step :Step<CR>
nnoremenu WinBar.Next :Over<CR>
nnoremenu WinBar.Finish :Finish<CR>
nnoremenu WinBar.Cont :Continue<CR>
nnoremenu WinBar.Stop :Stop<CR>
nnoremenu WinBar.Eval :Evaluate<CR>
endif
endfunc
" Delete installed debugger commands in the current window.
func s:DeleteCommands()
delcommand Break
delcommand Delete
delcommand Step
delcommand Over
delcommand Finish
delcommand Run
delcommand Arguments
delcommand Stop
delcommand Continue
delcommand Evaluate
delcommand Gdb
delcommand Program
nunmap K
if has('menu')
aunmenu WinBar.Step
aunmenu WinBar.Next
aunmenu WinBar.Finish
aunmenu WinBar.Cont
aunmenu WinBar.Stop
aunmenu WinBar.Eval
endif
exe 'sign unplace ' . s:pc_id
for key in keys(s:breakpoints)
exe 'sign unplace ' . (s:break_id + key)
endfor
sign undefine debugPC
sign undefine debugBreakpoint
unlet s:breakpoints
endfunc
" :Break - Set a breakpoint at the cursor position.
func s:SetBreakpoint()
" Setting a breakpoint may not work while the program is running.
" Interrupt to make it work.
let do_continue = 0
if !s:stopped
let do_continue = 1
call s:SendCommand('-exec-interrupt')
sleep 10m
endif
call s:SendCommand('-break-insert --source '
\ . fnameescape(expand('%:p')) . ' --line ' . line('.'))
if do_continue
call s:SendCommand('-exec-continue')
endif
endfunc
" :Delete - Delete a breakpoint at the cursor position.
func s:DeleteBreakpoint()
let fname = fnameescape(expand('%:p'))
let lnum = line('.')
for [key, val] in items(s:breakpoints)
if val['fname'] == fname && val['lnum'] == lnum
call term_sendkeys(s:commbuf, '-break-delete ' . key . "\r")
" Assume this always wors, the reply is simply "^done".
exe 'sign unplace ' . (s:break_id + key)
unlet s:breakpoints[key]
break
endif
endfor
endfunc
" :Next, :Continue, etc - send a command to gdb
func s:SendCommand(cmd)
call term_sendkeys(s:commbuf, a:cmd . "\r")
endfunc
func s:Run(args)
if a:args != ''
call s:SendCommand('-exec-arguments ' . a:args)
endif
call s:SendCommand('-exec-run')
endfunc
func s:SendEval(expr)
call s:SendCommand('-data-evaluate-expression "' . a:expr . '"')
let s:evalexpr = a:expr
endfunc
" :Evaluate - evaluate what is under the cursor
func s:Evaluate(range, arg)
if a:arg != ''
let expr = a:arg
elseif a:range == 2
let pos = getcurpos()
let reg = getreg('v', 1, 1)
let regt = getregtype('v')
normal! gv"vy
let expr = @v
call setpos('.', pos)
call setreg('v', reg, regt)
else
let expr = expand('<cexpr>')
endif
call s:SendEval(expr)
endfunc
let s:evalFromBalloonExpr = 0
" Handle the result of data-evaluate-expression
func s:HandleEvaluate(msg)
let value = substitute(a:msg, '.*value="\(.*\)"', '\1', '')
let value = substitute(value, '\\"', '"', 'g')
if s:evalFromBalloonExpr
if s:evalFromBalloonExprResult == ''
let s:evalFromBalloonExprResult = s:evalexpr . ': ' . value
else
let s:evalFromBalloonExprResult .= ' = ' . value
endif
call balloon_show(s:evalFromBalloonExprResult)
else
echomsg '"' . s:evalexpr . '": ' . value
endif
if s:evalexpr[0] != '*' && value =~ '^0x' && value != '0x0' && value !~ '"$'
" Looks like a pointer, also display what it points to.
call s:SendEval('*' . s:evalexpr)
else
let s:evalFromBalloonExpr = 0
endif
endfunc
" Show a balloon with information of the variable under the mouse pointer,
" if there is any.
func TermDebugBalloonExpr()
if v:beval_winid != s:startwin
return
endif
call s:SendEval(v:beval_text)
let s:evalFromBalloonExpr = 1
let s:evalFromBalloonExprResult = ''
return ''
endfunc
" Handle an error.
func s:HandleError(msg)
if a:msg =~ 'No symbol .* in current context'
\ || a:msg =~ 'Cannot access memory at address '
\ || a:msg =~ 'Attempt to use a type name as an expression'
\ || a:msg =~ 'A syntax error in expression,'
" Result of s:SendEval() failed, ignore.
return
endif
echoerr substitute(a:msg, '.*msg="\(.*\)"', '\1', '')
endfunc
" Handle stopping and running message from gdb.
" Will update the sign that shows the current position.
func s:HandleCursor(msg)
let wid = win_getid(winnr())
if a:msg =~ '^\*stopped'
let s:stopped = 1
elseif a:msg =~ '^\*running'
let s:stopped = 0
endif
if win_gotoid(s:startwin)
let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
if a:msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname)
let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
if lnum =~ '^[0-9]*$'
if expand('%:p') != fnamemodify(fname, ':p')
if &modified
" TODO: find existing window
exe 'split ' . fnameescape(fname)
let s:startwin = win_getid(winnr())
else
exe 'edit ' . fnameescape(fname)
endif
endif
exe lnum
exe 'sign unplace ' . s:pc_id
exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
setlocal signcolumn=yes
endif
else
exe 'sign unplace ' . s:pc_id
endif
call win_gotoid(wid)
endif
endfunc
" Handle setting a breakpoint
" Will update the sign that shows the breakpoint
func s:HandleNewBreakpoint(msg)
let nr = substitute(a:msg, '.*number="\([0-9]\)*\".*', '\1', '') + 0
if nr == 0
return
endif
if has_key(s:breakpoints, nr)
let entry = s:breakpoints[nr]
else
let entry = {}
let s:breakpoints[nr] = entry
endif
let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
let entry['fname'] = fname
let entry['lnum'] = lnum
if bufloaded(fname)
call s:PlaceSign(nr, entry)
endif
endfunc
func s:PlaceSign(nr, entry)
exe 'sign place ' . (s:break_id + a:nr) . ' line=' . a:entry['lnum'] . ' name=debugBreakpoint file=' . a:entry['fname']
let a:entry['placed'] = 1
endfunc
" Handle deleting a breakpoint
" Will remove the sign that shows the breakpoint
func s:HandleBreakpointDelete(msg)
let nr = substitute(a:msg, '.*id="\([0-9]*\)\".*', '\1', '') + 0
if nr == 0
return
endif
if has_key(s:breakpoints, nr)
let entry = s:breakpoints[nr]
if has_key(entry, 'placed')
exe 'sign unplace ' . (s:break_id + nr)
unlet entry['placed']
endif
unlet s:breakpoints[nr]
endif
endfunc
" Handle a BufRead autocommand event: place any signs.
func s:BufRead()
let fname = expand('<afile>:p')
for [nr, entry] in items(s:breakpoints)
if entry['fname'] == fname
call s:PlaceSign(nr, entry)
endif
endfor
endfunc
" Handle a BufUnloaded autocommand event: unplace any signs.
func s:BufUnloaded()
let fname = expand('<afile>:p')
for [nr, entry] in items(s:breakpoints)
if entry['fname'] == fname
let entry['placed'] = 0
endif
endfor
endfunc

View File

@ -1,6 +1,6 @@
" Vim plugin for using Vim as manpager.
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
" Last Change: 2016 May 20
" Last Change: 2017 November 07
" $MAN_PN is supposed to be set by MANPAGER, see ":help manpager.vim".
if empty($MAN_PN)
@ -10,17 +10,17 @@ endif
command! -nargs=0 MANPAGER call s:MANPAGER() | delcommand MANPAGER
function! s:MANPAGER()
let page_pattern = '\v\w+%([-_.]\w+)*'
let page_pattern = '\v\w[-_.:0-9A-Za-z]*'
let sec_pattern = '\v\w+%(\+\w+)*'
let pagesec_pattern = '\v(' . page_pattern . ')\((' . sec_pattern . ')\)'
if $MAN_PN is '1'
let manpage = matchstr( getline(1), '^' . pagesec_pattern )
let manpage = tolower(matchstr( getline(nextnonblank(1)), '^' . pagesec_pattern ))
else
let manpage = expand('$MAN_PN')
let manpage = expand($MAN_PN)
endif
let page_sec = matchlist(tolower(manpage), '^' . pagesec_pattern . '$')
let page_sec = matchlist(manpage, '^' . pagesec_pattern . '$')
bwipe!

View File

@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Feb 16
" Last Change: 2017 Sep 30
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@ -186,9 +186,23 @@ function! s:Highlight_Matching_Pair()
endfunction
" Define commands that will disable and enable the plugin.
command! NoMatchParen windo silent! call matchdelete(3) | unlet! g:loaded_matchparen |
\ au! matchparen
command! DoMatchParen runtime plugin/matchparen.vim | windo doau CursorMoved
command! DoMatchParen call s:DoMatchParen()
command! NoMatchParen call s:NoMatchParen()
func! s:NoMatchParen()
let w = winnr()
noau windo silent! call matchdelete(3)
unlet! g:loaded_matchparen
exe "noau ". w . "wincmd w"
au! matchparen
endfunc
func! s:DoMatchParen()
runtime plugin/matchparen.vim
let w = winnr()
silent windo doau CursorMoved
exe "noau ". w . "wincmd w"
endfunc
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -20,7 +20,7 @@
if &cp || exists("g:loaded_netrwPlugin")
finish
endif
let g:loaded_netrwPlugin = "v156"
let g:loaded_netrwPlugin = "v162"
let s:keepcpo = &cpo
set cpo&vim
"DechoRemOn
@ -42,8 +42,8 @@ augroup END
" Network Browsing Reading Writing: {{{2
augroup Network
au!
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
au BufReadCmd file://* call netrw#FileUrlEdit(expand("<amatch>"))
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
@ -59,7 +59,7 @@ com! -count=1 -nargs=* Nread let s:svpos= winsaveview()<bar>call netrw#NetRead(
com! -range=% -nargs=* Nwrite let s:svpos= winsaveview()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call winrestview(s:svpos)
com! -nargs=* NetUserPass call NetUserPass(<f-args>)
com! -nargs=* Nsource let s:svpos= winsaveview()<bar>call netrw#NetSource(<f-args>)<bar>call winrestview(s:svpos)
com! -nargs=? Ntree call netrw#SetTreetop(<q-args>)
com! -nargs=? Ntree call netrw#SetTreetop(1,<q-args>)
" Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{2
com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
@ -81,7 +81,7 @@ if !exists("g:netrw_nogx")
if !hasmapto('<Plug>NetrwBrowseX')
nmap <unique> gx <Plug>NetrwBrowseX
endif
nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(expand((exists("g:netrw_gx")? g:netrw_gx : '<cfile>')),netrw#CheckIfRemote())<cr>
nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX()))<cr>
endif
if maparg('gx','v') == ""
if !hasmapto('<Plug>NetrwBrowseXVis')
@ -129,19 +129,15 @@ fun! s:LocalBrowse(dirname)
elseif isdirectory(a:dirname)
" call Decho("(LocalBrowse) dirname<".a:dirname."> ft=".&ft." (isdirectory, not amiga)")
" call Dredir("LocalBrowse ft last set: ","verbose set ft")
" call Decho("(s:LocalBrowse) COMBAK#23: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
sil! call netrw#LocalBrowseCheck(a:dirname)
" call Decho("(s:LocalBrowse) COMBAK#24: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
exe w:netrw_bannercnt
" call Decho("(s:LocalBrowse) COMBAK#25: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
endif
else
" not a directory, ignore it
" call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...")
endif
" call Decho("(s:LocalBrowse) COMBAK#26: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
" call Dret("s:LocalBrowse")
endfun

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types in scripts
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2017 Jun 11
" Last change: 2017 Nov 11
" This file is called by an autocommand for every file that has just been
" loaded into a buffer. It checks if the type of file can be recognized by
@ -66,19 +66,19 @@ if s:line1 =~# "^#!"
" Bourne-like shell scripts: bash bash2 ksh ksh93 sh
if s:name =~# '^\(bash\d*\|\|ksh\d*\|sh\)\>'
call SetFileTypeSH(s:line1) " defined in filetype.vim
call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim
" csh scripts
elseif s:name =~# '^csh\>'
if exists("g:filetype_csh")
call SetFileTypeShell(g:filetype_csh)
call dist#ft#SetFileTypeShell(g:filetype_csh)
else
call SetFileTypeShell("csh")
call dist#ft#SetFileTypeShell("csh")
endif
" tcsh scripts
elseif s:name =~# '^tcsh\>'
call SetFileTypeShell("tcsh")
call dist#ft#SetFileTypeShell("tcsh")
" Z shell scripts
elseif s:name =~# '^zsh\>'
@ -185,7 +185,7 @@ else
" Bourne-like shell scripts: sh ksh bash bash2
if s:line1 =~# '^:$'
call SetFileTypeSH(s:line1) " defined in filetype.vim
call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim
" Z shell scripts
elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
@ -306,7 +306,7 @@ else
set ft=virata
" Strace
elseif s:line1 =~# '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
elseif s:line1 =~# '[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
set ft=strace
" VSE JCL
@ -324,7 +324,7 @@ else
set ft=sindacmp
" DNS zone files
elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
set ft=bindzone
" BAAN

View File

@ -2,7 +2,7 @@
" This file is normally sourced from menu.vim.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2014 Aug 13
" Last Change: 2017 Oct 28
" Define the SetSyn function, used for the Syntax menu entries.
" Set 'filetype' and also 'syntax' if it is manually selected.
@ -351,12 +351,13 @@ an 50.70.510 &Syntax.M.Muttrc :cal SetSyn("muttrc")<CR>
an 50.80.100 &Syntax.NO.Nanorc :cal SetSyn("nanorc")<CR>
an 50.80.110 &Syntax.NO.Nastran\ input/DMAP :cal SetSyn("nastran")<CR>
an 50.80.120 &Syntax.NO.Natural :cal SetSyn("natural")<CR>
an 50.80.130 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
an 50.80.140 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
an 50.80.150 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
an 50.80.160 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
an 50.80.170 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
an 50.80.180 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
an 50.80.130 &Syntax.NO.Neomuttrc :cal SetSyn("neomuttrc")<CR>
an 50.80.140 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
an 50.80.150 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
an 50.80.160 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
an 50.80.170 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
an 50.80.180 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
an 50.80.190 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
an 50.80.200 &Syntax.NO.Obj\ 3D\ wavefront :cal SetSyn("obj")<CR>
an 50.80.210 &Syntax.NO.Objective\ C :cal SetSyn("objc")<CR>
an 50.80.220 &Syntax.NO.Objective\ C++ :cal SetSyn("objcpp")<CR>

View File

@ -2,7 +2,7 @@
" Language: BibTeX (bibliographic database format for (La)TeX)
" Maintainer: Bernd Feige <Bernd.Feige@gmx.net>
" Filenames: *.bib
" Last Change: 2016 Sep 12
" Last Change: 2017 Sep 29
" Thanks to those who pointed out problems with this file or supplied fixes!
@ -81,16 +81,18 @@ syn match bibUnescapedSpecial contained /[^\\][%&]/hs=s+1
syn match bibKey contained /\s*[^ \t}="]\+,/hs=s,he=e-1 nextgroup=bibField
syn match bibVariable contained /[^{}," \t=]/
syn region bibComment start=/./ end=/^\s*@/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
syn region bibMath contained start=/\$/ end=/\$/ skip=/\(\\\$\)/
syn region bibMath contained start=/\(\\\)\@<!\$/ end=/\$/ skip=/\(\\\$\)/
syn region bibQuote contained start=/"/ end=/"/ skip=/\(\\"\)/ contains=@bibVarContents
syn region bibBrace contained start=/{/ end=/}/ skip=/\(\\[{}]\)/ contains=@bibVarContents
syn region bibParen contained start=/(/ end=/)/ skip=/\(\\[()]\)/ contains=@bibVarContents
syn region bibField contained start="\S\+\s*=\s*" end=/[}),]/me=e-1 contains=bibEntryKw,bibNSEntryKw,bibBrace,bibParen,bibQuote,bibVariable
syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField
syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField,bibComment3
" Actually, 5.8 <= Vim < 6.0 would ignore the `fold' keyword anyway, but Vim<5.8 would produce
" an error, so we explicitly distinguish versions with and without folding functionality:
syn region bibEntry start=/@\S\+\s*[{(]/ end=/^\s*[})]/ transparent fold contains=bibType,bibEntryData nextgroup=bibComment
syn region bibComment2 start=/@Comment\s*[{(]/ end=/^\s*[})]/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
" biblatex style comments inside a bibEntry
syn match bibComment3 "%.*"
" Synchronization
" ===============
@ -111,6 +113,7 @@ hi def link bibVariable Constant
hi def link bibUnescapedSpecial Error
hi def link bibComment Comment
hi def link bibComment2 Comment
hi def link bibComment3 Comment
let b:current_syntax = "bib"

View File

@ -136,7 +136,7 @@ syntax match clojureRegexpBoundary "[$^]" contained display
syntax match clojureRegexpQuantifier "[?*+][?+]\=" contained display
syntax match clojureRegexpQuantifier "\v\{\d+%(,|,\d+)?}\??" contained display
syntax match clojureRegexpOr "|" contained display
syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[a-zA-z]+\>)" contained display
syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[a-zA-Z]+\>)" contained display
" Mode modifiers, mode-modified spans, lookaround, regular and atomic
" grouping, and named-capturing.

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2016 Aug 30
" Last Change: 2017 Nov 04
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debcontrol.vim
" Standard syntax initialization
@ -17,31 +17,59 @@ set cpo&vim
" Should match case except for the keys of each field
syn case match
syn iskeyword @,48-57,-,/
" Everything that is not explicitly matched by the rules below
syn match debcontrolElse "^.*$"
" Common seperators
syn match debControlComma ", *"
syn match debControlSpace " "
syn match debControlComma ",[ \t]*"
syn match debControlSpace "[ \t]"
let s:kernels = '\%(linux\|hurd\|kfreebsd\|knetbsd\|kopensolaris\|netbsd\)'
let s:archs = '\%(alpha\|amd64\|armeb\|armel\|armhf\|arm64\|avr32\|hppa\|i386'
\ . '\|ia64\|lpia\|m32r\|m68k\|mipsel\|mips64el\|mips\|powerpcspe\|powerpc\|ppc64el'
\ . '\|ppc64\|s390x\|s390\|sh3eb\|sh3\|sh4eb\|sh4\|sh\|sparc64\|sparc\|x32\)'
let s:pairs = 'hurd-i386\|kfreebsd-i386\|kfreebsd-amd64\|knetbsd-i386\|kopensolaris-i386\|netbsd-alpha\|netbsd-i386'
let s:kernels = ['linux', 'hurd', 'kfreebsd', 'knetbsd', 'kopensolaris', 'netbsd']
let s:archs = [
\ 'alpha', 'amd64', 'armeb', 'armel', 'armhf', 'arm64', 'avr32', 'hppa'
\, 'i386', 'ia64', 'lpia', 'm32r', 'm68k', 'mipsel', 'mips64el', 'mips'
\, 'powerpcspe', 'powerpc', 'ppc64el', 'ppc64', 's390x', 's390', 'sh3eb'
\, 'sh3', 'sh4eb', 'sh4', 'sh', 'sparc64', 'sparc', 'x32'
\ ]
let s:pairs = [
\ 'hurd-i386', 'kfreebsd-i386', 'kfreebsd-amd64', 'knetbsd-i386'
\, 'kopensolaris-i386', 'netbsd-alpha', 'netbsd-i386'
\ ]
" Define some common expressions we can use later on
exe 'syn match debcontrolArchitecture contained "\%(all\|'. s:kernels .'-any\|\%(any-\)\='. s:archs .'\|'. s:pairs .'\|any\)"'
syn keyword debcontrolArchitecture contained all any
exe 'syn keyword debcontrolArchitecture contained '. join(map(s:kernels, {k,v -> v .'-any'}))
exe 'syn keyword debcontrolArchitecture contained '. join(map(s:archs, {k,v -> 'any-'.v}))
exe 'syn keyword debcontrolArchitecture contained '. join(s:archs)
exe 'syn keyword debcontrolArchitecture contained '. join(s:pairs)
unlet s:kernels s:archs s:pairs
syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)"
let s:sections = [
\ 'admin', 'cli-mono', 'comm', 'database', 'debian-installer', 'debug'
\, 'devel', 'doc', 'editors', 'education', 'electronics', 'embedded'
\, 'fonts', 'games', 'gnome', 'gnustep', 'gnu-r', 'golang', 'graphics'
\, 'hamradio', 'haskell', 'httpd', 'interpreters', 'introspection'
\, 'java', 'javascript', 'kde', 'kernel', 'libs', 'libdevel', 'lisp'
\, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net'
\, 'news', 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python'
\, 'ruby', 'rust', 'science', 'shells', 'sound', 'text', 'tex'
\, 'utils', 'vcs', 'video', 'web', 'x11', 'xfce', 'zope'
\ ]
syn keyword debcontrolMultiArch contained no foreign allowed same
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|javascript|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
syn match debcontrolPackageType contained "u\?deb"
syn keyword debcontrolPriority contained extra important optional required standard
exe 'syn match debcontrolSection contained "\%(\%(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\%('.join(s:sections, '\|').'\)"'
syn keyword debcontrolPackageType contained udeb deb
syn match debcontrolVariable contained "\${.\{-}}"
syn match debcontrolDmUpload contained "\cyes"
syn keyword debcontrolDmUpload contained yes
syn keyword debcontrolYesNo contained yes no
syn match debcontrolR3 contained "\<\%(no\|binary-targets\|[[:graph:]]\+/[[:graph:]]\+\%( \+[[:graph:]]\+/[[:graph:]]\+\)*\)\>"
unlet s:sections
" A URL (using the domain name definitions from RFC 1034 and 1738), right now
" only enforce protocol and some sanity on the server/path part;
@ -59,15 +87,28 @@ syn match debcontrolComment "^#.*$" contains=@Spell
syn case ignore
" List of all legal keys
syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\): *"
" List of all legal keys, in order, from deb-src-control(5)
" Source fields
syn match debcontrolKey contained "^\%(Source\|Maintainer\|Uploaders\|Standards-Version\|Description\|Homepage\|Bugs\|Rules-Requires-Root\): *"
syn match debcontrolKey contained "^\%(XS-\)\=Vcs-\%(Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\|Browser\): *"
syn match debcontrolKey contained "^\%(Origin\|Section\|Priority\): *"
syn match debcontrolKey contained "^Build-\%(Depends\|Conflicts\)\%(-Arch\|-Indep\)\=: *"
" Binary fields
syn match debcontrolKey contained "^\%(Package\%(-Type\)\=\|Architecture\|Build-Profiles\): *"
syn match debcontrolKey contained "^\%(\%(Build-\)\=Essential\|Multi-Arch\|Tag\): *"
syn match debcontrolKey contained "^\%(\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\): *"
syn match debcontrolKey contained "^\%(Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): *"
" User-defined fields
syn match debcontrolKey contained "^X[SBC]\{0,3\}\%(-Private\)\=-[-a-zA-Z0-9]\+: *"
syn match debcontrolDeprecatedKey contained "^\%(\%(XS-\)\=DM-Upload-Allowed\): *"
" Fields for which we do strict syntax checking
syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
syn region debcontrolStrictField start="^Multi-Arch" end="$" contains=debcontrolKey,debcontrolMultiArch oneline
syn region debcontrolStrictField start="^\(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline
syn region debcontrolStrictField start="^\%(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline
syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline
syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline
syn region debcontrolStrictField start="^\%(XC-\)\=Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline
@ -77,11 +118,13 @@ syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Svn" end="$" contains=deb
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolDeprecatedKey,debcontrolDmUpload oneline
syn region debcontrolStrictField start="^Rules-Requires-Root" end="$" contains=debcontrolKey,debcontrolR3 oneline
syn region debcontrolStrictField start="^\%(Build-\)\=Essential" end="$" contains=debcontrolKey,debcontrolYesNo oneline
" Catch-all for the other legal fields
syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
" Associate our matches and regions with pretty colours
hi def link debcontrolKey Keyword
@ -102,6 +145,8 @@ hi def link debcontrolVcsCvs Identifier
hi def link debcontrolVcsGit Identifier
hi def link debcontrolHTTPUrl Identifier
hi def link debcontrolDmUpload Identifier
hi def link debcontrolYesNo Identifier
hi def link debcontrolR3 Identifier
hi def link debcontrolComment Comment
hi def link debcontrolElse Special

View File

@ -2,7 +2,7 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2017 Apr 22
" Last Change: 2017 Oct 28
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim
" Standard syntax initialization
@ -23,18 +23,18 @@ let s:cpo = &cpo
set cpo-=C
let s:supported = [
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
\ 'squeeze', 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
\ 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
\
\ 'trusty', 'xenial', 'yakkety', 'zesty', 'artful', 'devel'
\ 'trusty', 'xenial', 'zesty', 'artful', 'bionic', 'devel'
\ ]
let s:unsupported = [
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
\ 'woody', 'sarge', 'etch', 'lenny',
\ 'woody', 'sarge', 'etch', 'lenny', 'squeeze',
\
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
\ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
\ 'utopic', 'vivid', 'wily'
\ 'utopic', 'vivid', 'wily', 'yakkety'
\ ]
let &cpo=s:cpo

View File

@ -2,7 +2,8 @@
" Language: doxygen on top of c, cpp, idl, java, php
" Maintainer: Michael Geddes <vimmer@frog.wheelycreek.net>
" Author: Michael Geddes
" Last Change: Jan 2009 (\tparam by Domnique Pelle, Aug 2013)
" Last Changes: Jan 2009 (\tparam by Domnique Pelle, Aug 2013)
" Nov 2017 (@throws by Domnique Pelle)
" Version: 1.23
"
" Copyright 2004-2008 Michael Geddes
@ -181,13 +182,13 @@ endif
syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite
syn keyword doxygenParam contained param tparam nextgroup=doxygenParamName,doxygenParamDirection skipwhite
syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
syn keyword doxygenRetval contained retval throw exception nextgroup=doxygenParamName skipwhite
syn keyword doxygenRetval contained retval throw throws exception nextgroup=doxygenParamName skipwhite
" Match one line identifiers.
syn keyword doxygenOther contained addindex anchor
\ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
\ example htmlonly image include ingroup internal latexonly line
\ overload relates relatesalso sa skip skipline
\ overload related relates relatedalso relatesalso sa skip skipline
\ until verbinclude version addtogroup htmlinclude copydoc dotfile
\ xmlonly endxmlonly
\ nextgroup=doxygenSpecialOnelineDesc
@ -223,7 +224,7 @@ endif
syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOther contained arg author date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOther contained arg author authors date deprecated li result return returns see invariant note post pre remark remarks since test nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc

View File

@ -85,7 +85,7 @@ syn match formComment "\;\ *\*.*$" contains=formTodo
syn region formString start=+"+ end=+"+ contains=formSpecial
syn region formString start=+'+ end=+'+
syn region formNestedString start=+`+ end=+'+ contains=formNestedString
syn match formPreProc "^\=\#[a-zA-z][a-zA-Z0-9]*\>"
syn match formPreProc "^\=\#[a-zA-Z][a-zA-Z0-9]*\>"
syn match formNumber "\<\d\+\>"
syn match formNumber "\<\d\+\.\d*\>"
syn match formNumber "\.\d\+\>"
@ -94,13 +94,13 @@ syn match formNumber "-\.\d" contains=Number
syn match formNumber "i_\+\>"
syn match formNumber "fac_\+\>"
" pattern matching wildcards
syn match formNumber "?[A-z0-9]*"
syn match formNumber "?[a-zA-Z0-9]*"
" dollar-variables (new in 3.x)
syn match formNumber "\\$[A-z0-9]*"
syn match formNumber "\\$[a-zA-Z0-9]*"
" scalar products
syn match formNumber "^\=[a-zA-z][a-zA-Z0-9]*\.[a-zA-z][a-zA-Z0-9]*\>"
syn match formNumber "^\=[a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z0-9]*\>"
syn match formDirective "^\=\.[a-zA-z][a-zA-Z0-9]*\>"
syn match formDirective "^\=\.[a-zA-Z][a-zA-Z0-9]*\>"
" hi User Labels
syn sync ccomment formComment minlines=10

View File

@ -2,8 +2,8 @@
" Language: fstab file
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
" URL: https://raw.github.com/rid9/vim-fstab/master/fstab.vim
" Last Change: 2013 May 21
" Version: 1.0
" Last Change: 2017 Nov 09
" Version: 1.2
"
" Credits:
" David Necas (Yeti) <yeti@physics.muni.cz>
@ -38,10 +38,14 @@ syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained
syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs
syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel
syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID
syn keyword fsDeviceKeyword contained PARTLABEL nextgroup=fsDevicePARTLABEL
syn keyword fsDeviceKeyword contained PARTUUID nextgroup=fsDevicePARTUUID
syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs
syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/
syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator
syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
syn match fsDevicePARTLABEL contained /=[^ \t]\+/hs=s+1 contains=fsOperator
syn match fsDevicePARTUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator
" Mount Point
@ -64,7 +68,7 @@ syn match fsOptionsString /[a-zA-Z0-9_-]\+/
syn keyword fsOptionsYesNo yes no
syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck
syn keyword fsOptionsSize 512 1024 2048
syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand nosuid nosymfollow nouser owner rbind rdonly remount ro rq rw suid suiddir supermount sw sync union update user users xx
syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand norelatime nosuid nosymfollow nouser owner rbind rdonly relatime remount ro rq rw suid suiddir supermount sw sync union update user users wxallowed xx
syn match fsOptionsGeneral /_netdev/
" Options: adfs
@ -137,7 +141,7 @@ syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOp
syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber
" Options: ffs
syn keyword fsOptionsKeyWords contained softdep
syn keyword fsOptionsKeyWords contained noperm softdep
" Options: hpfs
syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase
@ -228,7 +232,6 @@ syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster
" Whole line comments
syn match fsCommentLine /^#.*$/ contains=@Spell
hi def link fsOperator Operator
hi def link fsComment Comment
hi def link fsCommentLine Comment
@ -237,15 +240,17 @@ hi def link fsTypeKeyword Type
hi def link fsDeviceKeyword Identifier
hi def link fsDeviceLabel String
hi def link fsDeviceUUID String
hi def link fsDevicePARTLABEL String
hi def link fsDevicePARTUUID String
hi def link fsDeviceSshfs String
hi def link fsFreqPassNumber Number
if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1
hi def link fsTypeUnknown Error
hi def link fsTypeUnknown Error
endif
if !exists('fstab_unknown_device_errors') || fstab_unknown_device_errors == 1
hi def link fsDeviceError Error
hi def link fsDeviceError Error
endif
hi def link fsMountPointError Error
@ -278,7 +283,6 @@ hi def link fsOptionsUfsError String
hi def link fsOptionsVfatShortname String
let b:current_syntax = "fstab"
let &cpo = s:cpo_save

View File

@ -1,8 +1,10 @@
" Vim syntax file
" Language: gitolite configuration
" URL: https://github.com/tmatilai/gitolite.vim
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
" Last Change: 2011-12-25
" URL: https://github.com/sitaramc/gitolite/blob/master/contrib/vim/syntax/gitolite.vim
" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/syntax/gitolite.vim)
" Maintainer: Sitaram Chamarty <sitaramc@gmail.com>
" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
" Last Change: 2017 Oct 05
if exists("b:current_syntax")
finish
@ -11,74 +13,80 @@ endif
let s:cpo_save = &cpo
set cpo&vim
" Comment
syn match gitoliteComment "\(^\|\s\)#.*" contains=gitoliteTodo
syn keyword gitoliteTodo TODO FIXME XXX NOT contained
" this seems to be the best way, for now.
syntax sync fromstart
" Groups, users and repos
syn match gitoliteGroupDef "\(^\s*\)\@<=@[^=]\{-1,}\(\s*=\)\@=" contains=gitoliteSpaceError,gitoliteUserError nextgroup=gitoliteGroupDefSep
syn match gitoliteGroupDefSep "\s*=" contained nextgroup=gitoliteRepoLine
syn match gitoliteRepoDef "^\s*repo\s" nextgroup=gitoliteRepoLine
" ---- common stuff
syn match gitoliteRepoLine ".*" contained transparent contains=gitoliteGroup,gitoliteWildRepo,gitoliteCreator,gitoliteExtCmdHelper,gitoliteRepoError,gitoliteComment
syn match gitoliteUserLine ".*" contained transparent contains=gitoliteGroup,gitolitePreProc,gitoliteUserError,gitoliteComment
syn match gitoliteGroup '@\S\+'
syn match gitoliteWildRepo "[ \t=]\@<=[^ \t]*[\\^$|()[\]*?{},][^ \t]*" contained contains=gitoliteCreator,gitoliteRepoError
syn match gitoliteGroup "[ \t=]\@<=@[^ \t]\+" contained contains=gitoliteUserError
syn match gitoliteComment '#.*' contains=gitoliteTodo
syn keyword gitoliteTodo TODO FIXME XXX NOT contained
syn keyword gitoliteCreator CREATER CREATOR contained
syn keyword gitolitePreProc CREATER CREATOR READERS WRITERS contained
" ---- main section
syn match gitoliteExtCmdHelper "[ \t=]\@<=EXTCMD/" contained nextgroup=gitoliteExtCmd
syn match gitoliteExtCmd "rsync\(\s\|$\)" contained
" catch template-data syntax appearing outside template-data section
syn match gitoliteRepoError '^\s*repo.*='
syn match gitoliteRepoError '^\s*\S\+\s*=' " this gets overridden later when first word is a perm, don't worry
" Illegal characters
syn match gitoliteRepoError "[^ \t0-9a-zA-Z._@+/\\^$|()[\]*?{},-]\+" contained
syn match gitoliteUserError "[^ \t0-9a-zA-Z._@+-]\+" contained
syn match gitoliteSpaceError "\s\+" contained
" normal gitolite group and repo lines
syn match gitoliteGroupLine '^\s*@\S\+\s*=\s*\S.*$' contains=gitoliteGroup,gitoliteComment
syn match gitoliteRepoLine '^\s*repo\s\+[^=]*$' contains=gitoliteRepo,gitoliteGroup,gitoliteComment
syn keyword gitoliteRepo repo contained
" Permission
syn match gitoliteKeyword "^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\)[ \t=]\@=" nextgroup=gitoliteRefex
syn match gitoliteKeyword "^\s*-[ \t=]\@=" nextgroup=gitoliteDenyRefex
syn match gitoliteRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteUserLine
syn match gitoliteDenyRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteDenyUsers
syn match gitoliteSpecialRefex "\sNAME/"he=e-1 contained
syn match gitoliteSpecialRefex "/USER/"hs=s+1,he=e-1 contained
syn match gitoliteDenyUsers ".*" contained contains=gitoliteUserError,gitoliteComment
syn keyword gitoliteSpecialRepo CREATOR
" Configuration
syn match gitoliteKeyword "^\s*config\s\+" nextgroup=gitoliteConfVariable
syn match gitoliteConfVariable "[^=]*" contained
" normal gitolite rule lines
syn match gitoliteRuleLine '^\s*\(-\|C\|R\|RW+\?C\?D\?\)\s[^#]*' contains=gitoliteRule,gitoliteCreateRule,gitoliteDenyRule,gitoliteRefex,gitoliteUsers,gitoliteGroup
syn match gitoliteRule '\(^\s*\)\@<=\(-\|C\|R\|RW+\?C\?D\?\)\s\@=' contained
syn match gitoliteRefex '\(^\s*\(-\|R\|RW+\?C\?D\?\)\s\+\)\@<=\S.\{-}\(\s*=\)\@=' contains=gitoliteSpecialRefex
syn match gitoliteSpecialRefex 'NAME/'
syn match gitoliteSpecialRefex '/USER/'
syn match gitoliteCreateRule '\(^\s*C\s.*=\s*\)\@<=\S[^#]*[^# ]' contained contains=gitoliteGroup
syn match gitoliteDenyRule '\(^\s*-\s.*=\s*\)\@<=\S[^#]*[^# ]' contained
" Include
syn match gitoliteInclude "^\s*\(include\|subconf\)\s"
" normal gitolite config (and similar) lines
syn match gitoliteConfigLine '^\s*\(config\|option\|include\|subconf\)\s[^#]*' contains=gitoliteConfigKW,gitoliteConfigKey,gitoliteConfigVal,gitoliteComment
syn keyword gitoliteConfigKW config option include subconf contained
syn match gitoliteConfigKey '\(\(config\|option\)\s\+\)\@<=[^ =]*' contained
syn match gitoliteConfigVal '\(=\s*\)\@<=\S.*' contained
" String
syn region gitoliteString start=+"+ end=+"+ oneline
" ---- template-data section
" Define the default highlighting
hi def link gitoliteComment Comment
hi def link gitoliteTodo Todo
hi def link gitoliteGroupDef gitoliteGroup
hi def link gitoliteGroup Identifier
hi def link gitoliteWildRepo Special
hi def link gitoliteRepoError gitoliteError
hi def link gitoliteUserError gitoliteError
hi def link gitoliteSpaceError gitoliteError
hi def link gitoliteError Error
hi def link gitoliteCreator gitolitePreProc
hi def link gitolitePreProc PreProc
hi def link gitoliteExtCmdHelper PreProc
hi def link gitoliteExtCmd Special
hi def link gitoliteRepoDef Type
hi def link gitoliteKeyword Keyword
hi def link gitoliteRefex String
hi def link gitoliteDenyRefex gitoliteRefex
hi def link gitoliteSpecialRefex PreProc
hi def link gitoliteDenyUsers WarningMsg
hi def link gitoliteConfVariable Identifier
hi def link gitoliteInclude Include
hi def link gitoliteString String
syn region gitoliteTemplateLine matchgroup=PreProc start='^=begin template-data$' end='^=end$' contains=gitoliteTplRepoLine,gitoliteTplRoleLine,gitoliteGroup,gitoliteComment,gitoliteTplError
syn match gitoliteTplRepoLine '^\s*repo\s\+\S.*=.*' contained contains=gitoliteTplRepo,gitoliteTplTemplates,gitoliteGroup
syn keyword gitoliteTplRepo repo contained
syn match gitoliteTplTemplates '\(=\s*\)\@<=\S.*' contained contains=gitoliteGroup,gitoliteComment
syn match gitoliteTplRoleLine '^\s*\S\+\s*=\s*.*' contained contains=gitoliteTplRole,gitoliteGroup,gitoliteComment
syn match gitoliteTplRole '\S\+\s*='he=e-1 contained
" catch normal gitolite rules appearing in template-data section
syn match gitoliteTplError '^\s*repo[^=]*$' contained
syn match gitoliteTplError '^\s*\(-\|R\|RW+\?C\?D\?\)\s'he=e-1 contained
syn match gitoliteTplError '^\s*\(config\|option\|include\|subconf\)\s'he=e-1 contained
syn match gitoliteTplError '^\s*@\S\+\s*=' contained contains=NONE
hi def link gitoliteGroup Identifier
hi def link gitoliteComment Comment
hi def link gitoliteTodo ToDo
hi def link gitoliteRepoError Error
hi def link gitoliteGroupLine PreProc
hi def link gitoliteRepo Keyword
hi def link gitoliteSpecialRepo PreProc
hi def link gitoliteRule Keyword
hi def link gitoliteCreateRule PreProc
hi def link gitoliteDenyRule WarningMsg
hi def link gitoliteRefex Constant
hi def link gitoliteSpecialRefex PreProc
hi def link gitoliteConfigKW Keyword
hi def link gitoliteConfigKey Identifier
hi def link gitoliteConfigVal String
hi def link gitoliteTplRepo Keyword
hi def link gitoliteTplTemplates Constant
hi def link gitoliteTplRole Constant
hi def link gitoliteTplError Error
let b:current_syntax = "gitolite"

View File

@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
" Last Change: 2017 Jun 13
" Last Change: 2017 Oct 19
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@ -60,6 +60,7 @@ syn match helpSpecial "\<N\>"
syn match helpSpecial "\<N\.$"me=e-1
syn match helpSpecial "\<N\.\s"me=e-2
syn match helpSpecial "(N\>"ms=s+1
syn match helpSpecial "\[N]"
" avoid highlighting N N in help.txt
syn match helpSpecial "N N"he=s+1
@ -85,6 +86,9 @@ syn match helpSpecial "\[arguments]"
syn match helpSpecial "\[ident]"
syn match helpSpecial "\[addr]"
syn match helpSpecial "\[group]"
" Don't highlight [converted] and others that do not have a tag
syn match helpNormal "\[\(readonly\|fifo\|socket\|converted\|crypted\)]"
syn match helpSpecial "CTRL-."
syn match helpSpecial "CTRL-Break"
syn match helpSpecial "CTRL-PageUp"

View File

@ -3,8 +3,9 @@
" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
" Repository: https://notabug.org/jorgesumle/vim-html-syntax
" Last Change: 2017 Jan 21
" included patch from Jorge Maldonado Ventura
" Last Change: 2017 Sep 30
" included patch from Christian Brabandt to make use of the strikethrough attributes
"
" Please check :help html.vim for some comments and a description of the options
@ -45,13 +46,13 @@ syn keyword htmlTagName contained cite code dd dfn dir div dl dt font
syn keyword htmlTagName contained form hr html img
syn keyword htmlTagName contained input isindex kbd li link map menu
syn keyword htmlTagName contained meta ol option param pre p samp span
syn keyword htmlTagName contained select small strike sub sup
syn keyword htmlTagName contained select small sub sup
syn keyword htmlTagName contained table td textarea th tr tt ul var xmp
syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>"
" new html 4.0 tags
syn keyword htmlTagName contained abbr acronym bdo button col label
syn keyword htmlTagName contained colgroup del fieldset iframe ins legend
syn keyword htmlTagName contained colgroup fieldset iframe ins legend
syn keyword htmlTagName contained object optgroup q s tbody tfoot thead
" new html 5 tags
@ -135,6 +136,9 @@ if !exists("html_no_rendering")
" rendering
syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
syn region htmlStrike start="<del\>" end="</del>"me=e-6 contains=@htmlTop
syn region htmlStrike start="<strike\>" end="</strike>"me=e-9 contains=@htmlTop
syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
@ -268,6 +272,11 @@ if !exists("html_no_rendering")
hi def htmlUnderline term=underline cterm=underline gui=underline
hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
hi def htmlItalic term=italic cterm=italic gui=italic
if v:version > 800 || v:version == 800 && has("patch1038")
hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough
else
hi def htmlStrike term=underline cterm=underline gui=underline
endif
endif
endif

View File

@ -1,15 +1,13 @@
" Vim syntax file
" Language: Mason (Perl embedded in HTML)
" Maintainer: Andrew Smith <andrewdsmith@yahoo.com>
" Last change: 2003 May 11
" URL: http://www.masonhq.com/editors/mason.vim
" Language: Mason (Perl embedded in HTML)
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl/tree/master
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2017-09-12
" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Andrew Smith <andrewdsmith@yahoo.com>
"
" This seems to work satisfactorily with html.vim and perl.vim for version 5.5.
" Please mail any fixes or improvements to the above address. Things that need
" doing include:
"
" - Add match for component names in <& &> blocks.
" - Add match for component names in <%def> and <%method> block delimiters.
" TODO:
" - Fix <%text> blocks to show HTML tags but ignore Mason tags.
"
@ -34,30 +32,38 @@ syn cluster htmlPreproc add=@masonTop
" Now pull in the Perl syntax.
"
syn include @perlTop syntax/perl.vim
unlet b:current_syntax
syn include @podTop syntax/pod.vim
" It's hard to reduce down to the correct sub-set of Perl to highlight in some
" of these cases so I've taken the safe option of just using perlTop in all of
" them. If you have any suggestions, please let me know.
"
syn region masonLine matchgroup=Delimiter start="^%" end="$" contains=@perlTop
syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop
syn region masonPerl matchgroup=Delimiter start="<%perl>" end="</%perl>" contains=@perlTop
syn region masonComp keepend matchgroup=Delimiter start="<&" end="&>" contains=@perlTop
syn region masonPod start="^=[a-z]" end="^=cut" keepend contained contains=@podTop
syn cluster perlTop remove=perlBraces
syn region masonLine matchgroup=Delimiter start="^%" end="$" keepend contains=@perlTop
syn region masonPerlComment start="#" end="\%(%>\)\@=\|$" contained contains=perlTodo,@Spell
syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop,masonPerlComment
syn region masonPerl matchgroup=Delimiter start="<%perl>" end="</%perl>" contains=masonPod,@perlTop
syn region masonComp keepend matchgroup=Delimiter start="<&\s*\%([-._/[:alnum:]]\+:\)\?[-._/[:alnum:]]*" end="&>" contains=@perlTop
syn region masonComp keepend matchgroup=Delimiter skipnl start="<&|\s*\%([-._/[:alnum:]]\+:\)\?[-._/[:alnum:]]*" end="&>" contains=@perlTop nextgroup=masonCompContent
syn region masonCompContent matchgroup=Delimiter start="" end="</&>" contained contains=@masonTop
syn region masonArgs matchgroup=Delimiter start="<%args>" end="</%args>" contains=@perlTop
syn region masonArgs matchgroup=Delimiter start="<%args>" end="</%args>" contains=masonPod,@perlTop
syn region masonInit matchgroup=Delimiter start="<%init>" end="</%init>" contains=@perlTop
syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="</%cleanup>" contains=@perlTop
syn region masonOnce matchgroup=Delimiter start="<%once>" end="</%once>" contains=@perlTop
syn region masonShared matchgroup=Delimiter start="<%shared>" end="</%shared>" contains=@perlTop
syn region masonInit matchgroup=Delimiter start="<%init>" end="</%init>" contains=masonPod,@perlTop
syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="</%cleanup>" contains=masonPod,@perlTop
syn region masonOnce matchgroup=Delimiter start="<%once>" end="</%once>" contains=masonPod,@perlTop
syn region masonClass matchgroup=Delimiter start="<%class>" end="</%class>" contains=masonPod,@perlTop
syn region masonShared matchgroup=Delimiter start="<%shared>" end="</%shared>" contains=masonPod,@perlTop
syn region masonDef matchgroup=Delimiter start="<%def[^>]*>" end="</%def>" contains=@htmlTop
syn region masonMethod matchgroup=Delimiter start="<%method[^>]*>" end="</%method>" contains=@htmlTop
syn region masonDef matchgroup=Delimiter start="<%def\s*[-._/[:alnum:]]\+\s*>" end="</%def>" contains=@htmlTop
syn region masonMethod matchgroup=Delimiter start="<%method\s*[-._/[:alnum:]]\+\s*>" end="</%method>" contains=@htmlTop
syn region masonFlags matchgroup=Delimiter start="<%flags>" end="</%flags>" contains=@perlTop
syn region masonAttr matchgroup=Delimiter start="<%attr>" end="</%attr>" contains=@perlTop
syn region masonFlags matchgroup=Delimiter start="<%flags>" end="</%flags>" contains=masonPod,@perlTop
syn region masonAttr matchgroup=Delimiter start="<%attr>" end="</%attr>" contains=masonPod,@perlTop
syn region masonFilter matchgroup=Delimiter start="<%filter>" end="</%filter>" contains=@perlTop
syn region masonFilter matchgroup=Delimiter start="<%filter>" end="</%filter>" contains=masonPod,@perlTop
syn region masonDoc matchgroup=Delimiter start="<%doc>" end="</%doc>"
syn region masonText matchgroup=Delimiter start="<%text>" end="</%text>"
@ -67,6 +73,8 @@ syn cluster masonTop contains=masonLine,masonExpr,masonPerl,masonComp,masonArgs,
" Set up default highlighting. Almost all of this is done in the included
" syntax files.
hi def link masonDoc Comment
hi def link masonPod Comment
hi def link masonPerlComment perlComment
let b:current_syntax = "mason"

View File

@ -1,7 +1,7 @@
" Vim syntax file
" Language: Murphi model checking language
" Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>
" Last Change: 2017 May 3
" Last Change: 2017 Aug 27
" Version: 2
" Remark: Originally authored by Diego Ongaro <ongaro@cs.stanford.edu>
@ -105,23 +105,23 @@ syn region murphiComment start="--" end="$" contains=murphiTodo
syn region murphiComment start="/\*" end="\*/" contains=murphiTodo
" Link the rules to some groups.
highlight link murphiComment Comment
highlight link murphiString String
highlight link murphiNumber Number
highlight link murphiBoolean Boolean
highlight link murphiIdentifier Identifier
highlight link murphiFunction Function
highlight link murphiStatement Statement
highlight link murphiConditional Conditional
highlight link murphiRepeat Repeat
highlight link murphiLabel Label
highlight link murphiOperator Operator
highlight link murphiKeyword Keyword
highlight link murphiType Type
highlight link murphiStructure Structure
highlight link murphiSpecial Special
highlight link murphiDelimiter Delimiter
highlight link murphiError Error
highlight link murphiTodo Todo
hi def link murphiComment Comment
hi def link murphiString String
hi def link murphiNumber Number
hi def link murphiBoolean Boolean
hi def link murphiIdentifier Identifier
hi def link murphiFunction Function
hi def link murphiStatement Statement
hi def link murphiConditional Conditional
hi def link murphiRepeat Repeat
hi def link murphiLabel Label
hi def link murphiOperator Operator
hi def link murphiKeyword Keyword
hi def link murphiType Type
hi def link murphiStructure Structure
hi def link murphiSpecial Special
hi def link murphiDelimiter Delimiter
hi def link murphiError Error
hi def link murphiTodo Todo
let b:current_syntax = "murphi"

434
runtime/syntax/n1ql.vim Normal file
View File

@ -0,0 +1,434 @@
" Vim syntax file
" Language: N1QL / Couchbase Server
" Maintainer: Eugene Ciurana <n1ql AT cime.net>
" Version: 1.0
" Source: https://github.com/pr3d4t0r/n1ql-vim-syntax
"
" License: Vim is Charityware. n1ql.vim syntax is Charityware.
" (c) Copyright 2017 by Eugene Ciurana / pr3d4t0r. Licensed
" under the standard VIM LICENSE - Vim command :help uganda.txt
" for details.
"
" Questions, comments: <n1ql AT cime.net>
" https://ciurana.eu/pgp, https://keybase.io/pr3d4t0r
"
" vim: set fileencoding=utf-8:
if exists("b:current_syntax")
finish
endif
syn case ignore
syn keyword n1qlSpecial DATASTORES
syn keyword n1qlSpecial DUAL
syn keyword n1qlSpecial FALSE
syn keyword n1qlSpecial INDEXES
syn keyword n1qlSpecial KEYSPACES
syn keyword n1qlSpecial MISSING
syn keyword n1qlSpecial NAMESPACES
syn keyword n1qlSpecial NULL
syn keyword n1qlSpecial TRUE
"
" *** keywords ***
"
syn keyword n1qlKeyword ALL
syn keyword n1qlKeyword ANY
syn keyword n1qlKeyword ASC
syn keyword n1qlKeyword BEGIN
syn keyword n1qlKeyword BETWEEN
syn keyword n1qlKeyword BREAK
syn keyword n1qlKeyword BUCKET
syn keyword n1qlKeyword CALL
syn keyword n1qlKeyword CASE
syn keyword n1qlKeyword CAST
syn keyword n1qlKeyword CLUSTER
syn keyword n1qlKeyword COLLATE
syn keyword n1qlKeyword COLLECTION
syn keyword n1qlKeyword CONNECT
syn keyword n1qlKeyword CONTINUE
syn keyword n1qlKeyword CORRELATE
syn keyword n1qlKeyword COVER
syn keyword n1qlKeyword DATABASE
syn keyword n1qlKeyword DATASET
syn keyword n1qlKeyword DATASTORE
syn keyword n1qlKeyword DECLARE
syn keyword n1qlKeyword DECREMENT
syn keyword n1qlKeyword DERIVED
syn keyword n1qlKeyword DESC
syn keyword n1qlKeyword DESCRIBE
syn keyword n1qlKeyword DO
syn keyword n1qlKeyword EACH
syn keyword n1qlKeyword ELEMENT
syn keyword n1qlKeyword ELSE
syn keyword n1qlKeyword END
syn keyword n1qlKeyword EVERY
syn keyword n1qlKeyword EXCLUDE
syn keyword n1qlKeyword EXISTS
syn keyword n1qlKeyword FETCH
syn keyword n1qlKeyword FIRST
syn keyword n1qlKeyword FLATTEN
syn keyword n1qlKeyword FOR
syn keyword n1qlKeyword FORCE
syn keyword n1qlKeyword FROM
syn keyword n1qlKeyword FUNCTION
syn keyword n1qlKeyword GROUP
syn keyword n1qlKeyword GSI
syn keyword n1qlKeyword HAVING
syn keyword n1qlKeyword IF
syn keyword n1qlKeyword IGNORE
syn keyword n1qlKeyword INCLUDE
syn keyword n1qlKeyword INCREMENT
syn keyword n1qlKeyword INDEX
syn keyword n1qlKeyword INITIAL
syn keyword n1qlKeyword INLINE
syn keyword n1qlKeyword INNER
syn keyword n1qlKeyword INTO
syn keyword n1qlKeyword KEY
syn keyword n1qlKeyword KEYS
syn keyword n1qlKeyword KEYSPACE
syn keyword n1qlKeyword KNOWN
syn keyword n1qlKeyword LAST
syn keyword n1qlKeyword LET
syn keyword n1qlKeyword LETTING
syn keyword n1qlKeyword LIMIT
syn keyword n1qlKeyword LOOP
syn keyword n1qlKeyword LSM
syn keyword n1qlKeyword MAP
syn keyword n1qlKeyword MAPPING
syn keyword n1qlKeyword MATCHED
syn keyword n1qlKeyword MATERIALIZED
syn keyword n1qlKeyword MERGE
syn keyword n1qlKeyword NAMESPACE
syn keyword n1qlKeyword NEST
syn keyword n1qlKeyword OPTION
syn keyword n1qlKeyword ORDER
syn keyword n1qlKeyword OUTER
syn keyword n1qlKeyword OVER
syn keyword n1qlKeyword PARSE
syn keyword n1qlKeyword PARTITION
syn keyword n1qlKeyword PASSWORD
syn keyword n1qlKeyword PATH
syn keyword n1qlKeyword POOL
syn keyword n1qlKeyword PRIMARY
syn keyword n1qlKeyword PRIVATE
syn keyword n1qlKeyword PRIVILEGE
syn keyword n1qlKeyword PROCEDURE
syn keyword n1qlKeyword PUBLIC
syn keyword n1qlKeyword REALM
syn keyword n1qlKeyword REDUCE
syn keyword n1qlKeyword RETURN
syn keyword n1qlKeyword RETURNING
syn keyword n1qlKeyword ROLE
syn keyword n1qlKeyword SATISFIES
syn keyword n1qlKeyword SCHEMA
syn keyword n1qlKeyword SELF
syn keyword n1qlKeyword SEMI
syn keyword n1qlKeyword SHOW
syn keyword n1qlKeyword START
syn keyword n1qlKeyword STATISTICS
syn keyword n1qlKeyword SYSTEM
syn keyword n1qlKeyword THEN
syn keyword n1qlKeyword TRANSACTION
syn keyword n1qlKeyword TRIGGER
syn keyword n1qlKeyword UNDER
syn keyword n1qlKeyword UNKNOWN
syn keyword n1qlKeyword UNSET
syn keyword n1qlKeyword USE
syn keyword n1qlKeyword USER
syn keyword n1qlKeyword USING
syn keyword n1qlKeyword VALIDATE
syn keyword n1qlKeyword VALUE
syn keyword n1qlKeyword VALUED
syn keyword n1qlKeyword VALUES
syn keyword n1qlKeyword VIEW
syn keyword n1qlKeyword WHEN
syn keyword n1qlKeyword WHERE
syn keyword n1qlKeyword WHILE
syn keyword n1qlKeyword WITHIN
syn keyword n1qlKeyword WORK
"
" *** functions ***
"
syn keyword n1qlOperator ABS
syn keyword n1qlOperator ACOS
syn keyword n1qlOperator ARRAY_AGG
syn keyword n1qlOperator ARRAY_APPEND
syn keyword n1qlOperator ARRAY_AVG
syn keyword n1qlOperator ARRAY_CONCAT
syn keyword n1qlOperator ARRAY_CONTAINS
syn keyword n1qlOperator ARRAY_COUNT
syn keyword n1qlOperator ARRAY_DISTINCT
syn keyword n1qlOperator ARRAY_FLATTEN
syn keyword n1qlOperator ARRAY_IFNULL
syn keyword n1qlOperator ARRAY_INSERT
syn keyword n1qlOperator ARRAY_INTERSECT
syn keyword n1qlOperator ARRAY_LENGTH
syn keyword n1qlOperator ARRAY_MAX
syn keyword n1qlOperator ARRAY_MIN
syn keyword n1qlOperator ARRAY_POSITION
syn keyword n1qlOperator ARRAY_PREPEND
syn keyword n1qlOperator ARRAY_PUT
syn keyword n1qlOperator ARRAY_RANGE
syn keyword n1qlOperator ARRAY_REMOVE
syn keyword n1qlOperator ARRAY_REPEAT
syn keyword n1qlOperator ARRAY_REPLACE
syn keyword n1qlOperator ARRAY_REVERSE
syn keyword n1qlOperator ARRAY_SORT
syn keyword n1qlOperator ARRAY_START
syn keyword n1qlOperator ARRAY_SUM
syn keyword n1qlOperator ARRAY_SYMDIFF
syn keyword n1qlOperator ARRAY_UNION
syn keyword n1qlOperator ASIN
syn keyword n1qlOperator ATAN
syn keyword n1qlOperator ATAN2
syn keyword n1qlOperator AVG
syn keyword n1qlOperator BASE64
syn keyword n1qlOperator BASE64_DECODE
syn keyword n1qlOperator BASE64_ENCODE
syn keyword n1qlOperator CEIL
syn keyword n1qlOperator CLOCK_LOCAL
syn keyword n1qlOperator CLOCK_STR
syn keyword n1qlOperator CLOCK_TZ
syn keyword n1qlOperator CLOCK_UTC
syn keyword n1qlOperator CLOCL_MILLIS
syn keyword n1qlOperator CONTAINS
syn keyword n1qlOperator COS
syn keyword n1qlOperator COUNT
syn keyword n1qlOperator DATE_ADD_MILLIS
syn keyword n1qlOperator DATE_ADD_STR
syn keyword n1qlOperator DATE_DIFF_MILLIS
syn keyword n1qlOperator DATE_DIFF_STR
syn keyword n1qlOperator DATE_FORMAT_STR
syn keyword n1qlOperator DATE_PART_MILLIS
syn keyword n1qlOperator DATE_PART_STR
syn keyword n1qlOperator DATE_RANGE_MILLIS
syn keyword n1qlOperator DATE_RANGE_STR
syn keyword n1qlOperator DATE_TRUC_STR
syn keyword n1qlOperator DATE_TRUNC_MILLIS
syn keyword n1qlOperator DECODE_JSON
syn keyword n1qlOperator DEGREES
syn keyword n1qlOperator DURATION_TO_STR
syn keyword n1qlOperator E
syn keyword n1qlOperator ENCODED_SIZE
syn keyword n1qlOperator ENCODE_JSON
syn keyword n1qlOperator EXP
syn keyword n1qlOperator FLOOR
syn keyword n1qlOperator GREATEST
syn keyword n1qlOperator IFINF
syn keyword n1qlOperator IFMISSING
syn keyword n1qlOperator IFMISSINGORNULL
syn keyword n1qlOperator IFNAN
syn keyword n1qlOperator IFNANORINF
syn keyword n1qlOperator IFNULL
syn keyword n1qlOperator INITCAP
syn keyword n1qlOperator ISARRAY
syn keyword n1qlOperator ISATOM
syn keyword n1qlOperator ISBOOLEAN
syn keyword n1qlOperator ISNUMBER
syn keyword n1qlOperator ISOBJECT
syn keyword n1qlOperator ISSTRING
syn keyword n1qlOperator LEAST
syn keyword n1qlOperator LENGTH
syn keyword n1qlOperator LN
syn keyword n1qlOperator LOG
syn keyword n1qlOperator LOWER
syn keyword n1qlOperator LTRIM
syn keyword n1qlOperator MAX
syn keyword n1qlOperator META
syn keyword n1qlOperator MILLIS
syn keyword n1qlOperator MILLIS_TO_LOCAL
syn keyword n1qlOperator MILLIS_TO_STR
syn keyword n1qlOperator MILLIS_TO_TZ
syn keyword n1qlOperator MILLIS_TO_UTC
syn keyword n1qlOperator MILLIS_TO_ZONE_NAME
syn keyword n1qlOperator MIN
syn keyword n1qlOperator MISSINGIF
syn keyword n1qlOperator NANIF
syn keyword n1qlOperator NEGINFIF
syn keyword n1qlOperator NOW_LOCAL
syn keyword n1qlOperator NOW_MILLIS
syn keyword n1qlOperator NOW_STR
syn keyword n1qlOperator NOW_TZ
syn keyword n1qlOperator NOW_UTC
syn keyword n1qlOperator NULLIF
syn keyword n1qlOperator OBJECT_ADD
syn keyword n1qlOperator OBJECT_CONCAT
syn keyword n1qlOperator OBJECT_INNER_PAIRS
syn keyword n1qlOperator OBJECT_INNER_VALUES
syn keyword n1qlOperator OBJECT_LENGTH
syn keyword n1qlOperator OBJECT_NAMES
syn keyword n1qlOperator OBJECT_PAIRS
syn keyword n1qlOperator OBJECT_PUT
syn keyword n1qlOperator OBJECT_REMOVE
syn keyword n1qlOperator OBJECT_RENAME
syn keyword n1qlOperator OBJECT_REPLACE
syn keyword n1qlOperator OBJECT_UNWRAP
syn keyword n1qlOperator OBJECT_VALUES
syn keyword n1qlOperator PI
syn keyword n1qlOperator POLY_LENGTH
syn keyword n1qlOperator POSINIF
syn keyword n1qlOperator POSITION
syn keyword n1qlOperator POWER
syn keyword n1qlOperator RADIANS
syn keyword n1qlOperator RANDOM
syn keyword n1qlOperator REGEXP_CONTAINS
syn keyword n1qlOperator REGEXP_LIKE
syn keyword n1qlOperator REGEXP_POSITION
syn keyword n1qlOperator REGEXP_REPLACE
syn keyword n1qlOperator REPEAT
syn keyword n1qlOperator REPLACE
syn keyword n1qlOperator REVERSE
syn keyword n1qlOperator ROUND
syn keyword n1qlOperator RTRIM
syn keyword n1qlOperator SIGN
syn keyword n1qlOperator SIN
syn keyword n1qlOperator SPLIT
syn keyword n1qlOperator SQRT
syn keyword n1qlOperator STR_TO_DURATION
syn keyword n1qlOperator STR_TO_MILLIS
syn keyword n1qlOperator STR_TO_TZ
syn keyword n1qlOperator STR_TO_UTC
syn keyword n1qlOperator STR_TO_ZONE_NAME
syn keyword n1qlOperator SUBSTR
syn keyword n1qlOperator SUFFIXES
syn keyword n1qlOperator SUM
syn keyword n1qlOperator TAN
syn keyword n1qlOperator TITLE
syn keyword n1qlOperator TOARRAY
syn keyword n1qlOperator TOATOM
syn keyword n1qlOperator TOBOOLEAN
syn keyword n1qlOperator TOKENS
syn keyword n1qlOperator TONUMBER
syn keyword n1qlOperator TOOBJECT
syn keyword n1qlOperator TOSTRING
syn keyword n1qlOperator TRIM
syn keyword n1qlOperator TRUNC
syn keyword n1qlOperator TYPE
syn keyword n1qlOperator UPPER
syn keyword n1qlOperator UUID
syn keyword n1qlOperator WEEKDAY_MILLIS
syn keyword n1qlOperator WEEKDAY_STR
"
" *** operators ***
"
syn keyword n1qlOperator AND
syn keyword n1qlOperator AS
syn keyword n1qlOperator BY
syn keyword n1qlOperator DISTINCT
syn keyword n1qlOperator EXCEPT
syn keyword n1qlOperator ILIKE
syn keyword n1qlOperator IN
syn keyword n1qlOperator INTERSECT
syn keyword n1qlOperator IS
syn keyword n1qlOperator JOIN
syn keyword n1qlOperator LEFT
syn keyword n1qlOperator LIKE
syn keyword n1qlOperator MINUS
syn keyword n1qlOperator NEST
syn keyword n1qlOperator NESTING
syn keyword n1qlOperator NOT
syn keyword n1qlOperator OFFSET
syn keyword n1qlOperator ON
syn keyword n1qlOperator OR
syn keyword n1qlOperator OUT
syn keyword n1qlOperator RIGHT
syn keyword n1qlOperator SOME
syn keyword n1qlOperator TO
syn keyword n1qlOperator UNION
syn keyword n1qlOperator UNIQUE
syn keyword n1qlOperator UNNEST
syn keyword n1qlOperator VIA
syn keyword n1qlOperator WITH
syn keyword n1qlOperator XOR
"
" *** statements ***
"
syn keyword n1qlStatement ALTER
syn keyword n1qlStatement ANALYZE
syn keyword n1qlStatement BUILD
syn keyword n1qlStatement COMMIT
syn keyword n1qlStatement CREATE
syn keyword n1qlStatement DELETE
syn keyword n1qlStatement DROP
syn keyword n1qlStatement EXECUTE
syn keyword n1qlStatement EXPLAIN
syn keyword n1qlStatement GRANT
syn keyword n1qlStatement INFER
syn keyword n1qlStatement INSERT
syn keyword n1qlStatement MERGE
syn keyword n1qlStatement PREPARE
syn keyword n1qlStatement RENAME
syn keyword n1qlStatement REVOKE
syn keyword n1qlStatement ROLLBACK
syn keyword n1qlStatement SELECT
syn keyword n1qlStatement SET
syn keyword n1qlStatement TRUNCATE
syn keyword n1qlStatement UPDATE
syn keyword n1qlStatement UPSERT
"
" *** types ***
"
syn keyword n1qlType ARRAY
syn keyword n1qlType BINARY
syn keyword n1qlType BOOLEAN
syn keyword n1qlType NUMBER
syn keyword n1qlType OBJECT
syn keyword n1qlType RAW
syn keyword n1qlType STRING
"
" *** strings and characters ***
"
syn region n1qlString start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region n1qlString start=+'+ skip=+\\\\\|\\'+ end=+'+
syn region n1qlBucketSpec start=+`+ skip=+\\\\\|\\'+ end=+`+
"
" *** numbers ***
"
syn match n1qlNumber "-\=\<\d*\.\=[0-9_]\>"
"
" *** comments ***
"
syn region n1qlComment start="/\*" end="\*/" contains=n1qlTODO
syn match n1qlComment "--.*$" contains=n1qlTODO
syn sync ccomment n1qlComment
"
" *** TODO ***
"
syn keyword n1qlTODO contained TODO FIXME XXX DEBUG NOTE
"
" *** enable ***
"
hi def link n1qlBucketSpec Underlined
hi def link n1qlComment Comment
hi def link n1qlKeyword Macro
hi def link n1qlOperator Function
hi def link n1qlSpecial Special
hi def link n1qlStatement Statement
hi def link n1qlString String
hi def link n1qlTODO Todo
hi def link n1qlType Type
let b:current_syntax = "n1ql"

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