Compare commits

...

1075 Commits

Author SHA1 Message Date
1abb502635 patch 7.4.1567
Problem:    Crash in assert_fails().
Solution:   Check for NULL. (Dominique Pelle)  Add a test.
2016-03-15 13:33:55 +01:00
4f118be2bb patch 7.4.1566
Problem:    Compiler warning for shadowed variable. (Kazunobu Kuriyama)
Solution:   Remove the inner one.
2016-03-15 13:09:53 +01:00
f155196444 patch 7.4.1565
Problem:    Crash when assert_equal() runs into a NULL string.
Solution:   Check for NULL. (Dominique) Add a test.
2016-03-15 12:55:58 +01:00
346418c624 patch 7.4.1564
Problem:    An empty list in function() causes an error.
Solution:   Handle an empty list like there is no list of arguments.
2016-03-15 12:36:08 +01:00
790500a8e6 patch 7.4.1563
Problem:    Partial test fails on windows.
Solution:   Return 1 or -1 from compare function.
2016-03-15 11:05:45 +01:00
9eb3bb2930 patch 7.4.1562
Problem:    ":helptags ALL" crashes. (Lcd)
Solution:   Don't free twice.
2016-03-14 23:45:35 +01:00
39afdea203 patch 7.4.1561
Problem:    Missing update to proto file.
Solution:   Change the proto file.
2016-03-14 23:27:29 +01:00
d6c2f05260 patch 7.4.1560
Problem:    Dict options with a dash are more difficult to use.
Solution:   Use an underscore, so that dict.err_io can be used.
2016-03-14 23:22:59 +01:00
1735bc988c patch 7.4.1559
Problem:    Passing cookie to a callback is clumsy.
Solution:   Change function() to take arguments and return a partial.
2016-03-14 23:05:14 +01:00
9cdf86b86f patch 7.4.1558
Problem:    It is not easy to find out what windows display a buffer.
Solution:   Add win_findbuf().
2016-03-13 19:04:51 +01:00
86edef664e patch 7.4.1557
Problem:    Windows cannot be identified.
Solution:   Add a unique window number to each window and functions to use it.
2016-03-13 18:07:30 +01:00
a3442cb505 patch 7.4.1556
Problem:    "make install" changes the help tags file, causing it to differ
            from the repository.
Solution:   Move it aside and restore it.
2016-03-13 14:34:12 +01:00
fff341eb59 patch 7.4.1555
Problem:    List of test targets incomplete.
Solution:   Add newly added tests.
2016-03-13 13:27:36 +01:00
52f9c19015 patch 7.4.1554
Problem:    Completion for :colorscheme does not use 'packpath'.
Solution:   Make it work, add a test. (Hirohito Higashi)
2016-03-13 13:24:45 +01:00
8dcf259d90 patch 7.4.1553
Problem:    ":runtime" does not use 'packpath'.
Solution:   Add "what" argument.
2016-03-12 22:47:14 +01:00
7f8989dd8a patch 7.4.1552
Problem:    ":colorscheme" does not use 'packpath'.
Solution:   Also use in "start" and "opt" directories in 'packpath'.
2016-03-12 22:11:39 +01:00
6bef5306e4 patch 7.4.1551
Problem:    Cannot generate help tags in all doc directories.
Solution:   Make ":helptags ALL" work.
2016-03-12 21:28:26 +01:00
2d8f56acb3 patch 7.4.1550
Problem:    Cannot load packages early.
Solution:   Add the ":packloadall" command.
2016-03-12 20:34:27 +01:00
c835293d54 patch 7.4.1549
Problem:    Test for syntax attributes fails in Win32 GUI.
Solution:   Use an existing font name.
2016-03-12 20:15:21 +01:00
5a2800fd14 patch 7.4.1548
Problem:    Two tests fail.
Solution:   Adjust the expected error number. Remove check for type.
2016-03-12 19:33:49 +01:00
385111bd86 patch 7.4.1547
Problem:    Getting a cterm highlight attribute that is not set results in the
            string "-1".
Solution:   Return an empty string. (Taro Muraoka)
2016-03-12 19:23:00 +01:00
f6f32c38bf patch 7.4.1546
Problem:    Sticky type checking is more annoying than useful.
Solution:   Remove the error for changing a variable type.
2016-03-12 19:03:59 +01:00
b4ebf9ae3b patch 7.4.1545
Problem:    GTK3: horizontal cursor movement in Visual selection not good.
Solution:   Make it work better. (Kazunobu Kuriyama)
2016-03-12 16:28:18 +01:00
583c1f14a4 patch 7.4.1544
Problem:    On Win32 escaping the command does not work properly.
Solution:   Reset 'ssl' when escaping the command. (Yasuhiro Matsumoto)
2016-03-12 15:58:34 +01:00
5a6ec52392 patch 7.4.1543
Problem:    Channel log methods are not tested.
Solution:   Log job activity and check it.
2016-03-12 15:51:44 +01:00
1adda3403d patch 7.4.1542
Problem:    job_start() with a list is not tested.
Solution:   Call job_start() with a list.
2016-03-12 15:39:40 +01:00
8950a563b3 patch 7.4.1541
Problem:    Missing job_info().
Solution:   Implement it.
2016-03-12 15:22:55 +01:00
ac42afd10b patch 7.4.1540
Problem:    Channel test is a bit flaky.
Solution:   Increase expected wait time.
2016-03-12 13:48:49 +01:00
8e2c942ce4 patch 7.4.1539
Problem:    Too much code in eval.c.
Solution:   Move job and channel code to channel.c.
2016-03-12 13:43:33 +01:00
77cdfd1038 Updated runtime files. 2016-03-12 12:57:59 +01:00
4fc563b397 patch 7.4.1538
Problem:    Selection with the mouse does not work in command line mode.
Solution:   Use cairo functions. (Kazunobu Kuriyama)
2016-03-12 12:40:58 +01:00
509ce2a558 patch 7.4.1537
Problem:    Too many feature flags for pipes, jobs and channels.
Solution:   Only use FEAT_JOB_CHANNEL.
2016-03-11 22:52:15 +01:00
de27989157 patch 7.4.1536
Problem:    Cannot re-use a channel for another job.
Solution:   Add the "channel" option to job_start().
2016-03-11 22:19:44 +01:00
9e496854a9 patch 7.4.1535
Problem:    The feedkeys test has a one second delay.
Solution:   Avoid need_wait_return() to delay. (Hirohito Higashi)
2016-03-11 19:31:47 +01:00
846cdb2275 patch 7.4.1534
Problem:    Compiler warning for shadowed variable. (Kazunobu Kuriyama)
Solution:   Rename it.
2016-03-11 18:52:22 +01:00
74c5bbf134 patch 7.4.1533
Problem:    Using feedkeys() with an empty string disregards 'x' option.
Solution:   Make 'x' work with an empty string. (Thinca)
2016-03-10 22:19:53 +01:00
7bffaa9f9b patch 7.4.1532
Problem:    MS-Windows channel leaks file descriptor.
Solution:   Use CreateFile with the right options. (Yasuhiro Matsumoto)
2016-03-10 21:46:03 +01:00
40e8cb292c patch 7.4.1531
Problem:    Compiler warning for unitinialized variable. (Dominique Pelle)
Solution:   Always give the variable a value.
2016-03-10 21:10:58 +01:00
75578a388d patch 7.4.1530
Problem:    MS-Windows job_start() closes wrong handle.
Solution:   Close hThread on the process info. (Ken Takata)
2016-03-10 16:33:31 +01:00
29fd03878c patch 7.4.1529
Problem:    Specifying buffer number for channel not implemented yet.
Solution:   Implement passing a buffer number.
2016-03-09 23:14:07 +01:00
af1a0e371e patch 7.4.1528
Problem:    Using "ever" for packages is confusing.
Solution:   Use "start", as it's related to startup.
2016-03-09 22:19:26 +01:00
562ca71428 patch 7.4.1527
Problem:    Channel test is flaky on MS-Windows.
Solution:   Limit the select() timeout to 50 msec and try with a new socket if
            it fails.
2016-03-09 21:50:05 +01:00
d5d3d307dd patch 7.4.1526
Problem:    Writing to file and not connecting a channel doesn't work for
            MS-Windows.
Solution:   Make it work. (Yasuhiro Matsumoto)
2016-03-09 20:54:51 +01:00
beb003b303 patch 7.4.1525
Problem:    On a high resolution screen the toolbar icons are too small.
Solution:   Add "huge" and "giant" to 'toolbariconsize'. (Brian Gix)
2016-03-08 22:47:17 +01:00
045a284a83 patch 7.4.1524
Problem:    Channel test fails on BSD.
Solution:   Break out of the loop when connect() succeeds. (Ozaki Kiichi)
2016-03-08 22:33:07 +01:00
0622732b32 patch 7.4.1523
Problem:    Writing channel to a file fails on MS-Windows.
Solution:   Disable it for now.
2016-03-08 20:58:29 +01:00
6ff02c9651 patch 7.4.1522
Problem:    Cannot write channel err to a buffer.
Solution:   Implement it.
2016-03-08 20:12:44 +01:00
8322e1f06e patch 7.4.1521
Problem:    File permission test fails on MS-Windows.
Solution:   Expect a different permission.
2016-03-08 19:20:04 +01:00
d9d473ea12 patch 7.4.1520
Problem:    Channel test: Waiting for a file to appear doesn't work.
Solution:   In waitFor() ignore errors.
2016-03-08 19:07:22 +01:00
13d6fb17a2 patch 7.4.1519
Problem:    Channel output to file not implemented for MS-Windows.
Solution:   Implement it. (Yasuhiro Matsumoto)
2016-03-08 18:40:52 +01:00
f65333c9b5 patch 7.4.1518
Problem:    Channel with disconnected in/out/err is not supported.
Solution:   Implement it for Unix.
2016-03-08 18:27:21 +01:00
367aabdbf7 patch 7.4.1517
Problem:    Compiler warning with 64bit compiler.
Solution:   Add typecast. (Mike Williams)
2016-03-08 17:13:06 +01:00
8049253b96 patch 7.4.1516
Problem:    Cannot change file permissions.
Solution:   Add setfperm().
2016-03-08 17:08:53 +01:00
9fe885e49a patch 7.4.1515
Problem:    Channel test is a bit flaky.
Solution:   Instead of a fixed sleep time wait until an expression evaluates
            to true.
2016-03-08 16:06:55 +01:00
e98d121052 patch 7.4.1514
Problem:    Channel output to file not implemented yet.
Solution:   Implement it for Unix.
2016-03-08 15:37:41 +01:00
41e0f2f48f patch 7.4.1513
Problem:    "J" fails if there are not enough lines. (Christian Neukirchen)
Solution:   Reduce the count, only fail on the last line.
2016-03-08 14:44:42 +01:00
94d0191dbc patch 7.4.1512
Problem:    Channel input from file not supported on MS-Windows.
Solution:   Implement it. (Yasuhiro Matsumoto)
2016-03-08 13:48:51 +01:00
af6e36ff16 patch 7.4.1511
Problem:    Statusline highlighting is sometimes wrong.
Solution:   Check for Highlight type. (Christian Brabandt)
2016-03-08 12:56:33 +01:00
5f148ec0b5 Update runtime files. 2016-03-07 22:59:26 +01:00
304563c0b3 patch 7.4.1510
Problem:    Channel test fails on AppVeyor.
Solution:   Wait longer than 10 msec if needed.
2016-03-07 22:26:28 +01:00
151f656e17 patch 7.4.1509
Problem:    Keeping both a variable for a job and the channel it refers to is
            a hassle.
Solution:   Allow passing the job where a channel is expected. (Damien)
2016-03-07 21:19:38 +01:00
47cff3a444 patch 7.4.1508
Problem:    Can't build GvimExt with MingW.
Solution:   Adjust the makefile. (Ben Fritz)
2016-03-07 20:58:50 +01:00
4e329fcaf7 patch 7.4.1507
Problem:    Crash when starting a job fails.
Solution:   Check for the channel to be NULL.  (idea by Yasuhiro Matsumoto)
2016-03-07 15:24:03 +01:00
b69fccf377 patch 7.4.1506
Problem:    Job cannot read from a file.
Solution:   Implement reading from a file for Unix.
2016-03-06 23:06:25 +01:00
d0b6502a7a patch 7.4.1505
Problem:    When channel log is enabled get too many "looking for messages"
            log entries.
Solution:   Only give the message after another message.
2016-03-06 21:50:33 +01:00
3f39f64866 patch 7.4.1504
Problem:    No test for reading last-but-one line.
Solution:   Add a test.
2016-03-06 21:35:57 +01:00
839fd11d7e patch 7.4.1503
Problem:    Crash when using ch_getjob(). (Damien)
Solution:   Check for a NULL job.
2016-03-06 21:34:03 +01:00
99ef06296f patch 7.4.1502
Problem:    Writing last-but-one line of buffer to a channel isn't implemented
            yet.
Solution:   Implement it.  Fix leaving a swap file behind.
2016-03-06 20:22:25 +01:00
38fd4bb284 patch 7.4.1501
Problem:    Garbage collection with an option channel is not tested.
Solution:   Call garbagecollect() in the test.
2016-03-06 16:38:28 +01:00
9ef00be261 patch 7.4.1500
Problem:    Should_free flag set to FALSE.
Solution:   Set it to TRUE. (Neovim 4415)
2016-03-06 14:58:28 +01:00
be82c25486 patch 7.4.1499
Problem:    No error message when :packadd does not find anything.
Solution:   Add an error message. (Hirohito Higashi)
2016-03-06 14:44:08 +01:00
2588b5a43f patch 7.4.1498
Problem:    Error for locked item when using json_decode(). (Shougo)
Solution:   Initialize v_lock.
2016-03-05 23:23:02 +01:00
0ecbe33718 patch 7.4.1497
Problem:    Cursor drawing problem with GTK 3.
Solution:   Handle blinking differently. (Kazunobu Kuriyama)
2016-03-05 22:40:52 +01:00
a96909cfaf patch 7.4.1496
Problem:    Crash when built with GUI but it's not active. (Dominique Pelle)
Solution:   Check gui.in_use.
2016-03-05 22:19:41 +01:00
802d559431 patch 7.4.1495
Problem:    Compiler warnings when building on Unix with the job feature but
            without the channel feature.
Solution:   Move #ifdefs. (Dominique Pelle)
2016-03-05 22:05:27 +01:00
119d4693e0 patch 7.4.1494
Problem:    clr_history() does not work properly.
Solution:   Increment hisptr. Add a test. (Yegappan Lakshmanan)
2016-03-05 21:21:24 +01:00
5983ad0b03 patch 7.4.1493
Problem:    Wrong callback invoked for zero-id messages.
Solution:   Don't use the first one-time callback when the sequence number
            doesn't match.
2016-03-05 20:54:36 +01:00
35ca0e7a1c patch 7.4.1492
Problem:    No command line completion for ":packadd".
Solution:   Implement completion. (Hirohito Higashi)
2016-03-05 17:41:49 +01:00
019b9c644e Add new test file. 2016-03-05 17:26:00 +01:00
20b4f463f4 patch 7.4.1491
Problem:    Visual-block shift breaks multi-byte characters.
Solution:   Compute column differently. (Yasuhiro Matsumoto) Add a test.
2016-03-05 17:25:39 +01:00
2369c15407 patch 7.4.1490
Problem:    Compiler warning for unused function.
Solution:   Add #ifdef. (Dominique Pelle)
2016-03-04 23:08:25 +01:00
0c171716c0 patch 7.4.1489
Problem:    "inline" is not supported by old MSVC.
Solution:   use "__inline". (Ken Takata)
2016-03-04 22:57:20 +01:00
179f1b9a7d patch 7.4.1488
Problem:    Not using key when result from hangul_string_convert() is NULL.
Solution:   Fall back to not converted string.
2016-03-04 22:52:34 +01:00
328da0dcb7 Update runtime files. 2016-03-04 22:22:32 +01:00
6300317b15 patch 7.4.1487
Problem:    For WIN32 isinf() is defined as a macro.
Solution:   Define it as an inline function. (ZyX)
2016-03-04 22:19:21 +01:00
f365482736 patch 7.4.1486
Problem:    ":loadplugin" is not optimal, some people find it confusing.
Solution:   Only use ":packadd" with an optional "!".
2016-03-04 22:12:23 +01:00
014069a7ac patch 7.4.1485
Problem:    Job input from buffer is not implemented.
Solution:   Implement it.  Add "in-top" and "in-bot" options.
2016-03-03 22:51:40 +01:00
c25558bff4 patch 7.4.1484
Problem:    Channel "err-io" value "out" is not supported.
Solution:   Connect stderr to stdout if wanted.
2016-03-03 21:02:23 +01:00
d6547fc647 patch 7.4.1483
Problem:    A one-time callback is not used for a raw channel.
Solution:   Use a one-time callback when it exists.
2016-03-03 19:35:02 +01:00
da94fdf258 patch 7.4.1482
Problem:    "timeout" option not supported on ch_send*() and ch_eval*().
Solution:   Get and use the timeout option from the argument.
2016-03-03 18:09:10 +01:00
9f7820f83b patch 7.4.1481
Problem:    Can't build with small features.
Solution:   Add #ifdef.
2016-03-03 17:22:49 +01:00
91715873d1 patch 7.4.1480
Problem:    Cannot add a pack direcory without loading a plugin.
Solution:   Add the :packadd command.
2016-03-03 17:13:03 +01:00
863c1a9079 patch 7.4.1479
Problem:    No testfor ":loadplugin".
Solution:   Add a test.  Fix how option is being set.
2016-03-03 15:47:06 +01:00
1bdd42627d patch 7.4.1478
Problem:    ":loadplugin" doesn't take care of ftdetect files.
Solution:   Also load ftdetect scripts when appropriate.
2016-03-03 14:23:10 +01:00
b5760a1ce5 patch 7.4.1477
Problem:    Test_reltime is flaky, it depends on timing.
Solution:   When it fails run it a second time.
2016-03-03 13:10:44 +01:00
f1d2501ebe patch 7.4.1476
Problem:    Function arguments marked as unused while they are not.
Solution:   Remove UNUSED. (Yegappan Lakshmanan)
2016-03-03 12:22:53 +01:00
00ded43a5a patch 7.4.1475
Problem:    When using hangulinput with utf-8 a CSI character is
            misintepreted.
Solution:   Convert CSI to K_CSI. (SungHyun Nam)
2016-03-03 11:45:15 +01:00
5fac467474 patch 7.4.1474
Problem:    Compiler warnings without the float feature.
Solution:   Move #ifdefs. (John Marriott)
2016-03-02 22:16:32 +01:00
d1413d9098 patch 7.4.1473
Problem:    Can't build without the autocommand feature.
Solution:   Add #ifdefs. (Yegappan Lakshmanan)
2016-03-02 21:51:56 +01:00
4ca812b153 patch 7.4.1472
Problem:    Coverity warning for not using return value.
Solution:   Add "(void)".
2016-03-02 21:51:16 +01:00
bf73b91c66 patch 7.4.1471
Problem:    Missing out-of-memory check.  And Coverity warning.
Solution:   Bail out when msg is NULL.
2016-03-02 21:16:59 +01:00
289a90551d patch 7.4.1470
Problem:    Coverity reports missing restore.
Solution:   Move json_encode() call up.
2016-03-02 21:09:32 +01:00
42bc6dde46 patch 7.4.1469
Problem:    Channel test sometimes fails, especially on OS/X. (Kazunobu
            Kuriyama)
Solution:   Change the && into ||, call getsockopt() in more situations.
            (Ozaki Kiichi)
2016-03-02 20:48:47 +01:00
51d1d53680 patch 7.4.1468
Problem:    Sort test doesn't test with "1" argument.
Solution:   Also test ignore-case sorting. (Yasuhiro Matsumoto)
2016-03-01 22:51:46 +01:00
10b369f670 patch 7.4.1467
Problem:    Can't build without the float feature.
Solution:   Add #ifdefs. (Nick Owens, closes #667)
2016-02-29 23:12:49 +01:00
6b584af3d7 patch 7.4.1466
Problem:    Coverity reports dead code.
Solution:   Remove the two lines.
2016-02-29 23:03:23 +01:00
cc7f8be3e0 patch 7.4.1465
Problem:    Coverity reported possible use of NULL pointer when using buffer
            output with JSON mode.
Solution:   Make it actually possible to use JSON mode with a buffer.
            Re-encode the JSON to append it to the buffer.
2016-02-29 22:55:56 +01:00
5131c144fe patch 7.4.1464
Problem:    When the argument of sort() is zero or empty it fails.
Solution:   Make zero work as documented. (suggested by Yasuhiro Matsumoto)
2016-02-29 22:05:26 +01:00
a6b8976bb7 patch 7.4.1463
Problem:    Configure doesn't find isinf() and isnan() on some systems.
Solution:   Use a configure check that includes math.h.
2016-02-29 21:38:26 +01:00
2f6271b1e7 patch 7.4.1462
Problem:    Two more rarily used functions with errors.
Solution:   Add proper argument types. (Dominique Pelle)
2016-02-29 21:20:48 +01:00
a86f14a923 patch 7.4.1461
Problem:    When starting job on MS-Windows all parts of the command are put
            in quotes.
Solution:   Only use quotes when needed. (Yasuhiro Matsumoto)
2016-02-29 21:05:48 +01:00
fdcc9afb71 patch 7.4.1460
Problem:    Syntax error in rarily used code.
Solution:   Fix the mch_rename() declaration. (Ken Takata)
2016-02-29 12:52:39 +01:00
e081e21f76 patch 7.4.1459
Problem:    MS-Windows doesn't know socklen_t.
Solution:   Use previous method for WIN32.
2016-02-28 22:33:46 +01:00
fdd6ce4a2f patch 7.4.1458
Problem:    When a JSON channel has a callback it may never be cleared.
Solution:   Do not write "DETACH" into a JS or JSON channel.
2016-02-28 22:21:38 +01:00
d42119fff2 patch 7.4.1457
Problem:    Opening a channel with select() is not done properly.
Solution:   Also used read-fds. Use getsockopt() to check for errors. (Ozaki
            Kiichi)
2016-02-28 20:51:49 +01:00
29e1951e14 patch 7.4.1456
Problem:    Test 87 fails with Python 3.5.
Solution:   Work around difference. (Taro Muraoka)
2016-02-28 20:13:18 +01:00
fc2457e21d patch 7.4.1455
Problem:    JSON decoding test for surrogate pairs is in the wrong place.
Solution:   Move the test lines. (Ken Takata)
2016-02-28 20:04:09 +01:00
9730f74a0b patch 7.4.1454
Problem:    The exit callback test is flaky.
Solution:   Loop to wait for a short time up to a second.
2016-02-28 19:50:51 +01:00
9bfdba3de3 patch 7.4.1453
Problem:    Missing --not-a-term.
Solution:   Add the argument.
2016-02-28 19:39:20 +01:00
18b5d6df10 patch 7.4.1452
Problem:    When a callback adds a syntax item either the redraw doesn't
            happen right away or in the GUI the cursor is in the wrong
            position for a moment. (Jakson Alves de Aquino)
Solution:   Redraw after the callback was invoked.
2016-02-28 19:30:24 +01:00
707659490d patch 7.4.1451
Problem:    Vim hangs when a channel has a callback but isn't referenced.
Solution:   Have channel_unref() only return TRUE when the channel was
            actually freed.
2016-02-28 19:28:59 +01:00
1c39102666 patch 7.4.1450
Problem:    Json encoding still fails when encoding is not utf-8.
Solution:   Set 'encoding' before :scriptencoding.  Run the json test
            separately to avoid affecting other tests.
2016-02-28 18:04:00 +01:00
8cc6977a96 patch 7.4.1449
Problem:    Build fails with job feature but without channel feature.
Solution:   Add #ifdef.
2016-02-28 16:42:03 +01:00
c5215e943b patch 7.4.1448
Problem:    JSON tests fail if 'encoding' is not utf-8.
Solution:   Force encoding to utf-8.
2016-02-28 16:29:50 +01:00
d6051b5eb8 patch 7.4.1447
Problem:    Memory leak when using ch_read(). (Dominique Pelle)
            No log message when stopping a job and a few other situations.
            Too many "Nothing to read" messages.  Channels are not freed.
Solution:   Free the listtv.  Add more log messages. Remove "Nothing to read"
            message.  Remove the channel from the job when its refcount
            becomes zero.
2016-02-28 15:49:03 +01:00
80e7884739 patch 7.4.1446
Problem:    Crash when using json_decode().
Solution:   Terminate string with a NUL byte.
2016-02-28 15:21:13 +01:00
b362872837 patch 7.4.1445
Problem:    Memory corruption when 'encoding' is not utf-8.
Solution:   Convert decoded string later.
2016-02-28 14:56:39 +01:00
0f526f5652 patch 7.4.1444
Problem:    Can't build with JSON but without multi-byte.
Solution:   Fix pointer name.
2016-02-27 22:59:41 +01:00
dae8d21dd2 Updated runtime files 2016-02-27 22:40:16 +01:00
3f2a5d8dfb patch 7.4.1443
Problem:    Can't build GTK3 with small features.
Solution:   Use gtk_widget_get_window().  Fix typos. (Dominique Pelle)
2016-02-27 22:08:16 +01:00
e0fd2aa8f6 patch 7.4.1442
Problem:    MS-Windows: more compilation warnings for destructor.
Solution:   Add "virtual". (Ken Takata)
2016-02-27 21:59:51 +01:00
e26643e6bc patch 7.4.1441
Problem:    Using empty name instead of no name for channel buffer.
Solution:   Remove the empty name.
2016-02-27 21:53:02 +01:00
fefecb0fbe patch 7.4.1440
Problem:    Can't build on Windows.
Solution:   Change #ifdefs.  Only define isnan when used.
2016-02-27 21:27:20 +01:00
f97ddbeb25 patch 7.4.1439
Problem:    Using uninitialzed variable.
Solution:   Initialize vc_type.
2016-02-27 21:13:38 +01:00
c7f0ebc6d1 patch 7.4.1438
Problem:    Can't get buffer number of a channel.
Solution:   Add ch_getbufnr().
2016-02-27 21:10:09 +01:00
136f29a91d patch 7.4.1437
Problem:    Old system doesn't have isinf() and NAN. (Ben Fritz)
Solution:   Adjust #ifdefs.  Detect isnan() and isinf() functions with
            configure. Use a replacement when missing. (Kazunobu Kuriyama)
2016-02-27 20:14:15 +01:00
e98991b8cf patch 7.4.1436
Problem:    Sniff files still referenced in distribution.
Solution:   Remove sniff files from distribution.
2016-02-27 19:26:01 +01:00
8b1862a316 patch 7.4.1435
Problem:    It is confusing that ch_sendexpr() and ch_sendraw() wait for a
            response.
Solution:   Add ch_evalexpr() and ch_evalraw().
2016-02-27 19:21:24 +01:00
b6ff81188d patch 7.4.1434
Problem:    JSON encoding doesn't hanel surrogate pair.
Solution:   Improve multi-byte handling of JSON. (Yasuhiro Matsumoto)
2016-02-27 18:41:27 +01:00
85b11769ab patch 7.4.1433
Problem:    The Sniff interface is no longer useful, the tool has not been
            available for may years.
Solution:   Delete the Sniff interface and related code.
2016-02-27 18:13:23 +01:00
4d1961783f patch 7.4.1432
Problem:    Typo in button text.
Solution:   Fix the typo. (Dominique Pelle)
2016-02-27 18:07:44 +01:00
9e24f0c5c1 patch 7.4.1431
Problem:    Including header files twice.
Solution:   Remove the extra includes.
2016-02-27 17:22:27 +01:00
7ce686c990 patch 7.4.1430
Problem:    When encoding JSON, turning NaN and Infinity into null without
            giving an error is not useful.
Solution:   Pass NaN and Infinity on.  If the receiver can't handle them it
            will generate the error.
2016-02-27 16:33:22 +01:00
d804fdf4c2 patch 7.4.1429
Problem:    On MS-Windows, when not use renderoptions=type:directx, drawing
            emoji will be broken.
Solution:   Fix usage of unicodepdy. (Yasuhiro Matsumoto)
2016-02-27 16:04:58 +01:00
edb4f2b360 patch 7.4.1428
Problem:    Compiler warning for non-virtual destructor.
Solution:   Make it virtual. (Yasuhiro Matsumoto)
2016-02-27 15:27:23 +01:00
43acbce1bb patch 7.4.1427
Problem:    Trailing comma in enums is not ANSI C.
Solution:   Remove the trailing commas.
2016-02-27 15:21:32 +01:00
187db50d04 patch 7.4.1426
Problem:    The "out-io" option for jobs is not implemented yet.
Solution:   Implement the "buffer" value: append job output to a buffer.
2016-02-27 14:44:26 +01:00
6e722e2f94 patch 7.4.1425
Problem:    There are still references to MS-DOS support.
Solution:   Remove most of the help txt and install instructions. (Ken Takata)
2016-02-26 19:58:58 +01:00
0c0dac1fb1 patch 7.4.1424
Problem:    Not using --not-a-term when running tests on MS-Windows.
Solution:   Use NO_PLUGIN. (Christian Brabandt)
2016-02-26 15:56:42 +01:00
4cafa6dc7f patch 7.4.1423
Problem:    Channel test fails on MS-Windows.
Solution:   Do not give an error message when reading fails, assume the other
            end exited.
2016-02-26 11:52:39 +01:00
46c85439c9 patch 7.4.1422
Problem:    Error when reading fails uses wrong errno.  Keeping channel open
            after job stops results in test failing.
Solution:   Move the error up.  Add ch_job_killed.
2016-02-26 11:17:46 +01:00
c8dcbb12c5 patch 7.4.1421
Problem:    May free a channel when a callback may need to be invoked.
Solution:   Keep the channel when refcount is zero.
2016-02-25 23:10:17 +01:00
d2227a02b0 patch 7.4.1420
Problem:    Missing makefile.
Solution:   Type the path correctly.
2016-02-25 22:37:42 +01:00
49c39ff678 patch 7.4.1419
Problem:    Tests slowed down because of the "not a terminal" warning.
Solution:   Add the --not-a-term command line argument.
2016-02-25 21:21:52 +01:00
923d926d57 patch 7.4.1418
Problem:    job_stop() on MS-Windows does not really stop the job.
Solution:   Make the default to stop the job forcefully. (Ken Takata)
            Make MS-Windows and Unix more similar.
2016-02-25 20:56:01 +01:00
265f64efcf patch 7.4.1417
Problem:    Missing appveyor.bat from the distribution.
Solution:   Add it to the list of files.
2016-02-25 20:37:40 +01:00
669cac0a80 patch 7.4.1416
Problem:    Using "u_char" intead of "char_u", which doesn't work everywhere.
            (Jörg Plate)
Solution:   Use "char_u" always.
2016-02-25 15:25:03 +01:00
f391327adb Updated runtime files. 2016-02-25 00:00:01 +01:00
84f4996d2a patch 7.4.1415
Problem:    Dropped the skip-tags setting.
Solution:   Put it back.
2016-02-24 22:27:05 +01:00
81275ca9ce patch 7.4.1414
Problem:    Appveyor only builds one feature set.
Solution:   Build a combination of features and GUI/console. (Christian
            Brabandt)
2016-02-24 21:02:20 +01:00
8b374215cc patch 7.4.1413
Problem:    When calling ch_close() the close callback is invoked, even though
            the docs say it isn't. (Christian J. Robinson)
Solution:   Don't call the close callback.
2016-02-24 20:43:06 +01:00
68c85fcdf3 patch 7.4.1412
Problem:    Compiler warning for indent. (Dominique Pelle)
Solution:   Fix the indent.
2016-02-24 12:57:50 +01:00
9e34110816 patch 7.4.1411
Problem:    Compiler warning for indent. (Ajit Thakkar)
Solution:   Indent normally.
2016-02-23 23:04:36 +01:00
42dd7aee41 patch 7.4.1410
Problem:    Leaking memory in cscope interface.
Solution:   Free memory when no tab is found. (Christian Brabandt)
2016-02-23 22:50:12 +01:00
1858a842af patch 7.4.1409
Problem:    Configure includes GUI despite --disable-gui flag.
Solution:   Add SKIP_GTK3. (Kazunobu Kuriyama)
2016-02-23 22:30:31 +01:00
3ea0f1ae31 patch 7.4.1408
Problem:    MS-Windows doesn't have isnan() and isinf().
Solution:   Use _isnan() and _isinf().
2016-02-23 22:07:32 +01:00
f1b6ac7229 patch 7.4.1407
Problem:    json_encode() does not handle NaN and inf properly. (David
            Barnett)
Solution:   For JSON turn them into "null".  For JS use "NaN" and "Infinity".
            Add isnan().
2016-02-23 21:26:43 +01:00
e16e5a9d8d patch 7.4.1406
Problem:    Leaking memory in cs_print_tags_priv().
Solution:   Free tbuf. (idea by Forrest Fleming)
2016-02-23 20:44:08 +01:00
8aefbe0ad5 patch 7.4.1405
Problem:    Completion menu flickers.
Solution:   Delay showing the popup menu. (Shougo, Justin M. Keyes, closes
            #656)
2016-02-23 20:13:16 +01:00
9186a27622 patch 7.4.1404
Problem:    ch_read() doesn't time out on MS-Windows.
Solution:   Instead of WM_NETBEANS use select(). (Yukihiro Nakadaira)
2016-02-23 19:34:01 +01:00
0106e3d0bf patch 7.4.1403
Problem:    Can't build without the quickfix feature.
Solution:   Add #ifdefs. Call ex_ni() for unimplemented commands. (Yegappan
            Lakshmanan)
2016-02-23 18:55:43 +01:00
9892189d2e patch 7.4.1402
Problem:    GTK 3 is not supported.
Solution:   Add GTK 3 support. (Kazunobu Kuriyama)
2016-02-23 17:14:37 +01:00
6bd364e084 patch 7.4.1401
Problem:    Having 'autochdir' set during startup and using diff mode doesn't
            work. (Axel Bender)
Solution:   Don't use 'autochdir' while still starting up. (Christian
            Brabandt)
2016-02-23 16:19:07 +01:00
254ebaf068 patch 7.4.1400
Problem:    Perl eval doesn't work properly on 64-bit big-endian machine.
Solution:   Use 32 bit type for the key. (Danek Duvall)
2016-02-23 16:06:28 +01:00
48e330aff9 patch 7.4.1399
Problem:    The MS-DOS code does not build.
Solution:   Remove the old MS-DOS code.
2016-02-23 14:53:34 +01:00
4e221c99e8 patch 7.4.1398
Problem:    The close-cb option is not implemented yet.
Solution:   Implemente close-cb. (Yasuhiro Matsumoto)
2016-02-23 13:20:22 +01:00
0bb6108eb4 patch 7.4.1397
Problem:    Sort test fails on MS-Windows.
Solution:   Correct the compare function.
2016-02-22 23:50:28 +01:00
1daae446e5 patch 7.4.1396
Problem:    Compiler warnings for conversions.
Solution:   Add type cast.
2016-02-22 23:25:25 +01:00
eed284a169 patch 7.4.1395
Problem:    Using DETACH in quotes is not compatible with the Netbeans
            interface. (Xavier de Gaye)
Solution:   Remove the quotes, only use them for JSON and JS mode.
2016-02-22 23:13:33 +01:00
0b962473dd patch 7.4.1394
Problem:    Can't sort inside a sort function.
Solution:   Use a struct to store the sort parameters. (Jacob Niehus)
2016-02-22 22:51:33 +01:00
bd73ae1bc6 patch 7.4.1393
Problem:    Starting a job hangs in the GUI. (Takuya Fujiwara)
Solution:   Don't check if ch_job is NULL when checking for an error.
            (Yasuhiro Matsumoto)
2016-02-22 22:19:22 +01:00
2cd5bb2505 patch 7.4.1392
Problem:    Some tests fail for Win32 console version.
Solution:   Move the tests to SCRIPTS_MORE2.  Pass VIMRUNTIME. (Christian
            Brabandt)
2016-02-22 22:05:32 +01:00
4db20ab091 patch 7.4.1391
Problem:    Warning for uninitialzed variable.
Solution:   Set it to zero. (Christian Brabandt)
2016-02-22 21:48:30 +01:00
33c31d5abf patch 7.4.1390
Problem:    When building with GTK and glib-compile-resources cannot be found
            building Vim fails. (Michael Gehring)
Solution:   Make GLIB_COMPILE_RESOURCES empty instead of leaving it at "no".
            (nuko8, closes #655)
2016-02-22 21:07:06 +01:00
b2bd6a087d patch 7.4.1389
Problem:    Incomplete function declaration.
Solution:   Add "void". (Yasuhiro Matsumoto)
2016-02-22 20:20:25 +01:00
bdcd752750 patch 7.4.1388
Problem:    Compiler warning. (Cesar Romani)
Solution:   Initialize variable.
2016-02-22 20:19:03 +01:00
8f8ae40ce4 patch 7.4.1387
Problem:    Win16 docs still referenced.
Solution:   Remove Win16 files from the docs Makefile. (Kenichi Ito)
2016-02-22 20:07:49 +01:00
23c463a157 patch 7.4.1386
Problem:    When the Job exit callback is invoked, the job may be freed too
            soon. (Yasuhiro Matsumoto)
Solution:   Increase refcount.
2016-02-22 11:39:27 +01:00
5e83840756 patch 7.4.1385
Problem:    Compiler warning for using array.
Solution:   Use the right member name. (Yegappan Lakshmanan)
2016-02-21 23:12:41 +01:00
f6fee0e2d4 patch 7.4.1384
Problem:    It is not easy to use a set of plugins and their dependencies.
Solution:   Add packages, ":loadopt", 'packpath'.
2016-02-21 23:02:49 +01:00
271273c39f patch 7.4.1383
Problem:    GvimExt only loads the old libintl.dll.
Solution:   Also try loading libint-8.dll. (Ken Takata, closes #608)
2016-02-21 20:30:22 +01:00
02e83b438e patch 7.4.1382
Problem:    Can't get the job of a channel.
Solution:   Add ch_getjob().
2016-02-21 20:10:26 +01:00
eab089d22f patch 7.4.1381
Problem:    Exit value not available on MS-Windows.
Solution:   Set the exit value.
2016-02-21 19:32:02 +01:00
ee1cffc07a patch 7.4.1380
Problem:    The job exit callback is not implemented.
Solution:   Add the "exit-cb" option.
2016-02-21 19:14:41 +01:00
b7522a2f0c patch 7.4.1379
Problem:    Channel test fails on Win32 console.
Solution:   Don't sleep when timeout is zero. Call channel_wait() before
            channel_read(). Channels are not polled during ":sleep". (Yukihiro
            Nakadaira)
2016-02-21 17:20:55 +01:00
65edff8f51 patch 7.4.1378
Problem:    Can't change job settings after it started.
Solution:   Add job_setoptions() with the "stoponexit" flag.
2016-02-21 16:40:11 +01:00
08298fa1d3 patch 7.4.1377
Problem:    Test_connect_waittime() is flaky.
Solution:   Ignore the "Connection reset by peer" error.
2016-02-21 13:01:53 +01:00
decb14d68c Update channel.txt 2016-02-20 23:32:02 +01:00
b6b5252bcd patch 7.4.1376
Problem:    ch_setoptions() cannot set all options.
Solution:   Support more options.
2016-02-20 23:30:07 +01:00
e89ff0472b patch 7.4.1375
Problem:    Still some Win16 code.
Solution:   Remove FEAT_GUI_W16.(Hirohito Higashi)
2016-02-20 22:17:05 +01:00
af7559f666 patch 7.4.1374
Problem:    Channel test hangs on MS-Windows.
Solution:   Disable the ch_read() that is supposed to time out.
2016-02-20 21:48:25 +01:00
ece61b06ef patch 7.4.1373
Problem:    Calling a Vim function over a channel requires turning the
            arguments into a string.
Solution:   Add the "call" command. (Damien)  Also merge "expr" and "eval"
            into one.
2016-02-20 21:39:05 +01:00
6f3a544228 patch 7.4.1372
Problem:    channel read implementation is incomplete.
Solution:   Add ch_read() and options for ch_readraw().
2016-02-20 19:56:13 +01:00
fffd5560c6 patch 7.4.1371
Problem:    X11 GUI callbacks don't specify the part of the channel.
Solution:   Pass the fd instead of the channel ID.
2016-02-20 18:44:39 +01:00
ddbe7d26b1 patch 7.4.1370
Problem:    The Python test script may keep on running.
Solution:   Join the threads. (Yasuhiro Matsumoto)
2016-02-20 18:26:48 +01:00
42d38a2db1 patch 7.4.1369
Problem:    Channels don't have a queue for stderr.
Solution:   Have a queue for each part of the channel.
2016-02-20 18:18:59 +01:00
914331648d patch 7.4.1368
Problem:    One more Win16 file remains.
Solution:   Delete it.
2016-02-20 15:50:18 +01:00
e0fa3742ea Updated runtime files. 2016-02-20 15:47:01 +01:00
c6b14f0a83 patch 7.4.1367
Problem:    Compiler warning for unreachable code.
Solution:   Remove a "break". (Danek Duvall)
2016-02-20 15:26:42 +01:00
663128270e patch 7.4.1366
Problem:    Typo in test and resulting error in test result.
Solution:   Fix the typo and correct the result. (James McCoy, close #650)
2016-02-20 15:10:50 +01:00
befb366aff patch 7.4.1365
Problem:    Cannot execute a single test function.
Solution:   Add an argument to filter the functions with. (Yasuhiro Matsumoto)
2016-02-20 14:41:40 +01:00
cf7164a088 patch 7.4.1364
Problem:    The Win 16 code is not maintained and unused.
Solution:   Remove the Win 16 support.
2016-02-20 13:55:06 +01:00
065bbac8ad patch 7.4.1363
Problem:    Compiler warnings with tiny build.
Solution:   Add #ifdefs.
2016-02-20 13:08:46 +01:00
8600ace876 patch 7.4.1362
Problem:    Using unitinialized value.
Solution:   Initialize jo_set.
2016-02-19 23:31:40 +01:00
254e00d714 patch 7.4.1361
Problem:    Channel test fails on Solaris.
Solution:   Use the 1 msec waittime for all systems.
2016-02-19 23:23:12 +01:00
0ba75a9714 patch 7.4.1360
Problem:    Can't remove a callback with ch_setoptions().
Solution:   When passing zero or an empty string remove the callback.
2016-02-19 23:21:26 +01:00
1f6ef66254 patch 7.4.1359
Problem:    Channel test ch_sendexpr() times out.
Solution:   Increase the timeout
2016-02-19 22:59:44 +01:00
1d6fbe6540 patch 7.4.1358
Problem:    Compiler warning when not building with +crypt.
Solution:   Add #ifdef. (John Marriott)
2016-02-19 22:46:34 +01:00
132006c3d0 patch 7.4.1357
Problem:    Error for returning value from void function.
Solution:   Don't do that.
2016-02-19 22:38:15 +01:00
40ea1da14b patch 7.4.1356
Problem:    Job and channel options parsing is scattered.
Solution:   Move all option value parsing to get_job_options();
2016-02-19 22:33:35 +01:00
ed5a78e11c patch 7.4.1355
Problem:    Win32 console and GUI handle channels differently.
Solution:   Consolidate code between Win32 console and GUI.
2016-02-19 21:05:03 +01:00
223b723be0 patch 7.4.1354
Problem:    MS-Windows: Mismatch between default compile options and what the
            code expects.
Solution:   Change the default WINVER from 0x0500 to 0x0501. (Ken Takata)
2016-02-19 19:43:49 +01:00
922d25f99c patch 7.4.1353
Problem:    Test_connect_waittime is skipped for MS-Windows.
Solution:   Add the test back, it works now.
2016-02-18 22:58:26 +01:00
93bf558cae patch 7.4.1352
Problem:    The test script lists all functions before executing them.
Solution:   Only list the function currently being executed.
2016-02-18 22:25:47 +01:00
81661fb868 patch 7.4.1351
Problem:    When the port isn't opened yet when ch_open() is called it may
            fail instead of waiting for the specified time.
Solution:   Loop when select() succeeds but when connect() failed. Also use
            channel logging for jobs.  Add ch_log().
2016-02-18 22:23:34 +01:00
ec70bdd68a patch 7.4.1350
Problem:    When the test server fails to start Vim hangs.
Solution:   Check that there is actually something to read from the tty fd.
2016-02-18 22:17:42 +01:00
74a97b1ea0 patch 7.4.1349
Problem:    And some more MingW compiler warnings. (Cesar Romani)
Solution:   Add type casts.
2016-02-18 21:19:21 +01:00
7f0608fb52 patch 7.4.1348
Problem:    More compiler warnings. (John Marriott)
Solution:   Add type casts, remove unused variable.
2016-02-18 20:46:39 +01:00
8b778d5599 patch 7.4.1347
Problem:    When there is any error Vim will use a non-zero exit code.
Solution:   When using ":silent!" do not set the exit code. (Yasuhiro
            Matsumoto)
2016-02-18 20:31:34 +01:00
a1e24b9bc9 patch 7.4.1346
Problem:    Compiler warnings in build with -O2.
Solution:   Add inintializations.
2016-02-18 20:18:09 +01:00
a87e2c277e patch 7.4.1345
Problem:    A few more compiler warnings. (Axel Bender)
Solution:   Add type casts.
2016-02-17 20:48:19 +01:00
203219048f patch 7.4.1344
Problem:    Can't compile Win32 GUI with tiny features.
Solution:   Add #ifdef. (Christian Brabandt)
2016-02-17 12:30:17 +01:00
cd39bbcd1d patch 7.4.1343
Problem:    Can't compile with +job but without +channel. (Andrei Olsen)
Solution:   Move get_job_options up and adjust #ifdef.
2016-02-17 10:05:42 +01:00
e74e8e7d75 patch 7.4.1342
Problem:    On Mac OS/X the waittime must be > 0 for connect to work.
Solution:   Use select() in a different way. (partly by Kazunobu Kuriyama)
            Always use a waittime of 1 or more.
2016-02-16 22:01:30 +01:00
910b8aac5d patch 7.4.1341
Problem:    It's difficult to add more arguments to ch_sendraw() and
            ch_sendexpr().
Solution:   Make the third option a dictionary.
2016-02-16 21:03:07 +01:00
7d63f62460 patch 7.4.1340
Problem:    Merge left extra #endif behind.
Solution:   Remove the #endif
2016-02-16 20:31:31 +01:00
418f81b5fa patch 7.4.1339
Problem:    Warnings when building the GUI with MingW. (Cesar Romani)
Solution:   Add type cats. (Yasuhiro Matsumoto)
2016-02-16 20:12:02 +01:00
0c2c96e47c patch 7.4.1338
Problem:    Another part of the change is missing.
Solution:   Type os_unix.c right this time.
2016-02-16 19:44:20 +01:00
ba093bc000 patch 7.4.1337
Problem:    Part of the change is missing.
Solution:   Add changes to eval.c
2016-02-16 19:37:29 +01:00
9a6e33a19b patch 7.4.1336
Problem:    Channel NL mode is not supported yet.
Solution:   Add NL mode support to channels.
2016-02-16 19:25:12 +01:00
5d54a04598 patch 7.4.1335
Problem:    Can't build on MS-Windows with +job but without +channel. (Cesar
            Romani)
Solution:   Add #ifdefs. (Yasuhiro Matsumoto)
2016-02-16 16:39:51 +01:00
6aa2cd4be2 patch 7.4.1334
Problem:    Many compiler warnings with MingW.
Solution:   Add type casts. (Yasuhiro Matsumoto)
2016-02-16 15:06:59 +01:00
f8df7addc5 patch 7.4.1333
Problem:    Channel test fails on non-darwin builds.
Solution:   Add the "osx" feature and test for that. (Kazunobu Kuriyama)
2016-02-16 14:07:40 +01:00
acd58ef676 patch 7.4.1332
Problem:    Problem using Python3 when compiled with MingW.
Solution:   Define PYTHON3_HOME as a wide character string. (Yasuhiro
            Matsumoto)
2016-02-16 13:42:24 +01:00
d46ae142aa patch 7.4.1331
Problem:    Crash when closing the channel in a callback. (Christian J.
            Robinson)
Solution:   Take the callback out of the list before invoking it.
2016-02-16 13:33:52 +01:00
0943a09db8 patch 7.4.1330
Problem:    fd_read() has an unused argument.
Solution:   Remove the timeout. (Yasuhiro Matsumoto)
2016-02-16 13:11:17 +01:00
5cefd40982 patch 7.4.1329
Problem:    Crash when using channel that failed to open.
Solution:   Check for NULL.  Update messages. (Yukihiro Nakadaira)
2016-02-16 12:44:26 +01:00
12dcf024e9 patch 7.4.1328
Problem:    Can't compile with +job but without +channel. (John Marriott)
Solution:   Add more #ifdefs.
2016-02-15 23:09:04 +01:00
b6a7737938 patch 7.4.1327
Problem:    Channel test doesn't work if Python executable is python.exe.
Solution:   Find py.exe or python.exe. (Ken Takata)
2016-02-15 22:55:28 +01:00
97eba78f69 patch 7.4.1326
Problem:    Build rules are bit too complicated.
Solution:   Remove -lwsock32 from Netbeans, it's already added for the channel
            feature that it depends on. (Tony Mechelynck)
2016-02-15 22:45:12 +01:00
2368917d8f patch 7.4.1325
Problem:    Channel test fails on difference between Unix and DOS line endings.
Solution:   Strip off CR.  Make assert show difference better.
2016-02-15 22:37:37 +01:00
38a55639d6 Update runtime files. 2016-02-15 22:07:32 +01:00
d807036d10 patch 7.4.1324
Problem:    Channels with pipes don't work on MS-Windows.
Solution:   Add pipe I/O support. (Yasuhiro Matsumoto)
2016-02-15 21:56:54 +01:00
a971df849f patch 7.4.1323
Problem:    Do not get warnings when building with MingW.
Solution:   Remove the -w flag. (Ken Takata)
2016-02-15 21:22:10 +01:00
3bece9fee9 patch 7.4.1322
Problem:    Crash when unletting the variable that holds the channel in a
            callback function.  (Christian Robinson)
Solution:   Increase the reference count while invoking the callback.
2016-02-15 20:39:46 +01:00
71b0f7b5c0 patch 7.4.1321
Problem:    Compiler complains about missing statement.
Solution:   Add an empty statement. (Andrei Olsen)
2016-02-15 12:44:20 +01:00
44d571868f patch 7.4.1320
Problem:    Building with Cygwin or MingW with channel but without Netbeans
            doesn't work.
Solution:   Set NETBEANS to "no" when not used.
2016-02-14 23:11:23 +01:00
16eb4f8800 patch 7.4.1319
Problem:    Tests fail on MS-Windows and on Unix with GUI.
Solution:   Fix unregistering.
2016-02-14 23:02:34 +01:00
7b3ca76a45 patch 7.4.1318
Problem:    Channel with pipes doesn't work in GUI.
Solution:   Register input handlers for pipes.
2016-02-14 19:13:43 +01:00
0727d362b4 patch 7.4.1317
Problem:    MS-Windows: channel test fails.
Solution:   Temporarily disable Test_connect_waittime().
2016-02-14 00:19:59 +01:00
fa4bce7dd2 patch 7.4.1316
Problem:    Can't build MS-Windows console version. (Tux)
Solution:   Add #ifdefs.
2016-02-13 23:50:08 +01:00
7707344dde patch 7.4.1315
Problem:    Using a channel handle does not allow for freeing it when unused.
Solution:   Add the Channel variable type.
2016-02-13 23:23:53 +01:00
e516c39ee9 patch 7.4.1314
Problem:    Warning for uninitialzed variable.
Solution:   Initialize it. (Dominique Pelle)
2016-02-13 18:50:38 +01:00
bfa1ffca8b patch 7.4.1313
Problem:    MS-Windows: Using socket after it was closed causes an exception.
Solution:   Don't give an error when handling WM_NETBEANS.  Re-enable tests
            for MS-Windows.
2016-02-13 18:40:30 +01:00
f8b7d890f1 patch 7.4.1312
Problem:    sock_T is not defined without the +channel feature.
Solution:   Always define it.
2016-02-13 17:24:26 +01:00
d090d7bab5 patch 7.4.1311
Problem:    sock_T is defined too late.
Solution:   Move it up.
2016-02-13 17:09:53 +01:00
6463ca229c patch 7.4.1310
Problem:    Jobs don't open a channel.
Solution:   Create pipes and add them to the channel.  Add ch_logfile().
            Only Unix for now.
2016-02-13 17:04:46 +01:00
00af60bbb6 patch 7.4.1309
Problem:    When a test fails not all relevant info is listed.
Solution:   Add the errors to the messages.
2016-02-13 14:06:14 +01:00
45c7f05473 patch 7.4.1308
Problem:    Typo in test.
Solution:   Change endf to endif.
2016-02-12 22:35:51 +01:00
f02c5cffd8 patch 7.4.1307
Problem:    Some channel tests fail on MS-Windows.
Solution:   Disable the failing tests temporarily.
2016-02-12 22:25:56 +01:00
76467dfcaf patch 7.4.1306
Problem:    Job control doesn't work well on MS-Windows.
Solution:   Various fixes. (Ken Takata, Ozaki Kiichi , Yukihiro Nakadaira,
            Yasuhiro Matsumoto)
2016-02-12 19:30:26 +01:00
7c29f38781 patch 7.4.1305
Problem:    "\%1l^#.*" does not match on a line starting with "#".
Solution:   Do not clear the start-of-line flag. (Christian Brabandt)
2016-02-12 19:08:15 +01:00
7823a3bd2e patch 7.4.1304
Problem:    Function names are difficult to read.
Solution:   Rename jsonencode to json_encode, jsondecode to json_decode,
            jsencode to js_encode and jsdecode to js_decode.
2016-02-11 21:08:32 +01:00
b6a4fee37e patch 7.4.1303
Problem:    A Funcref is not accepted as a callback.
Solution:   Make a Funcref work. (Damien)
2016-02-11 20:48:34 +01:00
6119e6156e patch 7.4.1302
Problem:    Typo in struct field name. (Ken Takata)
Solution:   Rename jf_pi to jv_pi.
2016-02-11 12:48:36 +01:00
39b21272d5 patch 7.4.1301
Problem:    Missing options in ch_open().
Solution:   Add s:chopt like in the other calls. (Ozaki Kiichi)
2016-02-10 23:28:21 +01:00
2ab375e54e patch 7.4.1300
Problem:    Cannot test CursorMovedI because there is typeahead.
Solution:   Add disable_char_avail_for_testing().
2016-02-10 22:23:06 +01:00
f6157284de patch 7.4.1299
Problem:    When the server sends a message with ID zero the channel handler
            is not invoked. (Christian J.  Robinson)
Solution:   Recognize zero value for the request ID.  Add a test for invoking
            the channel handler.
2016-02-10 21:07:14 +01:00
d6a8d48587 patch 7.4.1298
Problem:    When the channel test fails in an unexpected way the server keeps
            running.
Solution:   Use try/catch. (Ozaki Kiichi)
2016-02-10 20:32:20 +01:00
a483326e3b patch 7.4.1297
Problem:    On Mac test_channel leaves python instances running.
Solution:   Use a small waittime to make ch_open() work. (Ozaki Kiichi)
2016-02-09 23:33:25 +01:00
f068dcafcf patch 7.4.1296
Problem:    Cursor changes column with up motion when the matchparen plugin
            saves and restores the cursor position. (Martin Kunev)
Solution:   Make sure curswant is updated before invoking the autocommand.
2016-02-09 21:24:46 +01:00
4d8747cdfc patch 7.4.1295
Problem:    string(job) doesn't work well on MS-Windows.
Solution:   Use the process ID. (Yasuhiro Matsumoto)
2016-02-09 20:39:26 +01:00
7280140c08 patch 7.4.1294
Problem:    job_stop() only kills the started process.
Solution:   Send the signal to the process group. (Olaf Dabrunz)
2016-02-09 11:37:50 +01:00
e56bf15c16 patch 7.4.1293
Problem:    Sometimes a channel may hang waiting for a message that was
            already discarded. (Ken Takata)
Solution:   Store the ID of the message blocking on in the channel.
2016-02-08 23:23:42 +01:00
2fc83fcd1d patch 7.4.1292
Problem:    Some compilers complain about uninitialzed variable, even though
            all possible cases are handled. (Dominique Pelle)
Solution:   Add a default initialization.
2016-02-08 22:57:24 +01:00
b92abad0c5 patch 7.4.1291
Problem:    On MS-Windows the channel test server doesn't quit.
Solution:   Use return instead of break. (Ken Takata)
2016-02-08 22:37:24 +01:00
cbebd4879c Updated runtime files. 2016-02-07 23:02:56 +01:00
ee5aeae22b patch 7.4.1290
Problem:    Coverity complains about uneccessary check for NULL.
Solution:   Remove the check.
2016-02-07 22:30:47 +01:00
0fa98e7b85 patch 7.4.1289
Problem:    Channel test fails on MS-Windows, connect() takes too long.
Solution:   Adjust the test for MS-Windows using "waittime".
2016-02-07 22:21:19 +01:00
ae8eb3ca92 patch 7.4.1288
Problem:    ch_sendexpr() does not use JS encoding.
Solution:   Use the encoding that fits the channel mode.  Refuse using
            ch_sendexpr() on a raw channel.
2016-02-07 21:59:26 +01:00
74f5e65bcc patch 7.4.1287
Problem:    Channel test fails.
Solution:   Use reltimefloat().
2016-02-07 21:44:49 +01:00
7a84dbe6be patch 7.4.1286
Problem:    ch_open() with a timeout doesn't work correctly.
Solution:   Change how select() is used.  Don't give an error on timeout.
            Add a test for ch_open() failing.
2016-02-07 21:29:00 +01:00
cb00f03933 Add missing test file. 2016-02-07 21:25:56 +01:00
79c2c881bb patch 7.4.1285
Problem:    Cannot measure elapsed time.
Solution:   Add reltimefloat().
2016-02-07 21:19:28 +01:00
dc94a26a64 patch 7.4.1284
Problem:    Test 49 fails.
Solution:   Check for a different error message.
2016-02-07 20:29:00 +01:00
942d6b2268 patch 7.4.1283
Problem:    The job feature isn't available on MS-Windows.
Solution:   Add the job feature.  Fix argument of job_stop(). (Yasuhiro
            Matsumoto)
2016-02-07 19:57:16 +01:00
768ce2435a patch 7.4.1282
Problem:    Crash when evaluating the pattern of ":catch" causes an error.
            (Dominique Pelle)
Solution:   Block error messages at this point.
2016-02-07 19:46:12 +01:00
ea8c219ca8 patch 7.4.1281
Problem:    No test for skipping over code that isn't evaluated.
Solution:   Add a test with code that would fail when not skipped.
2016-02-07 19:27:53 +01:00
eba6d8c66c patch 7.4.1280
Problem:    Missing case value.
Solution:   Add VAR_JOB.
2016-02-07 19:25:51 +01:00
595e64e259 patch 7.4.1279
Problem:    jsonencode() is not producing strict JSON.
Solution:   Add jsencode() and jsdecode().  Make jsonencode() and jsondecode()
            strict.
2016-02-07 19:19:53 +01:00
55fab439a6 patch 7.4.1278
Problem:    When jsonencode() fails it still returns something.
Solution:   Return an empty string on failure.
2016-02-07 16:53:13 +01:00
a6f72ba7c6 patch 7.4.1277
Problem:    Compiler can complain about missing enum value in switch with some
            combination of features.
Solution:   Remove #ifdefs around case statements.
2016-02-07 15:57:00 +01:00
fbc4b4db3a patch 7.4.1276
Problem:    Warning for not using return value of fcntl().
Solution:   Explicitly ignore the return value.
2016-02-07 15:14:01 +01:00
cb4b01230b patch 7.4.1275
Problem:    Build fails on MS-Windows.
Solution:   Fix wrong #ifdef.
2016-02-07 14:53:21 +01:00
835dc636a5 patch 7.4.1274
Problem:    Cannot run a job.
Solution:   Add job_start(), job_status() and job_stop(). Currently only works
            for Unix.
2016-02-07 14:27:38 +01:00
c5f98ee987 patch 7.4.1273
Problem:    assert_false(v:false) still fails.
Solution:   Fix the typo.
2016-02-07 00:00:35 +01:00
1701481c53 patch 7.4.1272
Problem:    Using future enum value.
Solution:   Remove it.
2016-02-06 20:32:25 +01:00
3712792637 patch 7.4.1271
Problem:    assert_false(v:false) reports an error. (Nikolai Pavlov)
Solution:   Recognize v:true and v:false. (Closes #625)
2016-02-06 20:29:28 +01:00
81e7a9c3fb patch 7.4.1270
Problem:    Warnings for missing values in switch.
Solution:   Change switch to if-else or add values.
2016-02-06 19:57:20 +01:00
4f8b8faec3 patch 7.4.1269
Problem:    Encoding {'key':} to JSON doesn't give an error (Tyru)
Solution:   Give an error.
2016-02-06 18:42:07 +01:00
26dfc41335 patch 7.4.1268
Problem:    Waittime is used as seconds instead of milliseconds. (Hirohito
            Higashi)
Solution:   Divide by 1000.
2016-02-06 18:18:54 +01:00
a03f233515 patch 7.4.1267
Problem:    Easy to miss handling all types of variables.
Solution:   Change the variable type into an enum.
2016-02-06 18:09:59 +01:00
ab9fc7e0cf patch 7.4.1266
Problem:    A BufAdd autocommand may cause an ml_get error (Christian
            Brabandt)
Solution:   Increment RedrawingDisabled earlier.
2016-02-06 15:29:40 +01:00
f416086f26 patch 7.4.1265
Problem:    Not all channel commands are tested.
Solution:   Add a test for "normal", "expr" and "redraw".
2016-02-05 23:09:12 +01:00
6076fe1986 patch 7.4.1264
Problem:    Crash when receiving an empty array.
Solution:   Check for array with wrong number of arguments. (Damien)
2016-02-05 22:49:56 +01:00
4d919d748e patch 7.4.1263
Problem:    ch_open() hangs when the server isn't running.
Solution:   Add a timeout. Use a dict to pass arguments. (Yasuhiro Matsumoto)
2016-02-05 22:36:41 +01:00
a07fec9c85 patch 7.4.1262
Problem:    The channel callback is not invoked.
Solution:   Make a list of pending callbacks.
2016-02-05 21:04:08 +01:00
4b6a6dcbe7 patch 7.4.1261
Problem:    Pending channel messages are garbage collected. Leaking memory in
            ch_sendexpr().  Leaking memory for a decoded JSON string.
Solution:   Mark the message list as used. Free the encoded JSON.  Don't save
            the JSON string.
2016-02-04 22:49:49 +01:00
a8343c1808 patch 7.4.1260
Problem:    The channel feature doesn't work on Win32 GUI.
Solution:   Use WSAGetLastError(). (Ken Takata)
2016-02-04 22:09:48 +01:00
3fc3e14282 patch 7.4.1259
Problem:    No test for what patch 7.3.414 fixed.
Solution:   Add a test. (Elias Diem)
2016-02-04 21:53:33 +01:00
a02b321686 patch 7.4.1258
Problem:    The channel test can fail if messages arrive later.
Solution:   Add a short sleep. (Jun T.)
2016-02-04 21:03:33 +01:00
681baaf4a4 Update runtime files. 2016-02-04 20:57:07 +01:00
e24692573a patch 7.4.1257
Problem:    Channel test fails in some configurations.
Solution:   Add check for the +channel feature.
2016-02-04 10:54:34 +01:00
b3e2f00f39 patch 7.4.1256
Problem:    On Mac sys.exit(0) doesn't kill the test server.
Solution:   Use self.server.shutdown(). (Jun Takimoto)
2016-02-04 00:11:37 +01:00
66624ff0d9 patch 7.4.1255
Problem:    Crash for channel "eval" command without third argument.
Solution:   Check for missing argument.
2016-02-03 23:59:43 +01:00
3b05b135e3 patch 7.4.1254
Problem:    Opening a second channel causes a crash. (Ken Takata)
Solution:   Don't re-allocate the array with channels.
2016-02-03 23:25:07 +01:00
608a8919ca patch 7.4.1253
Problem:    Python test server not displaying second of two commands.
            Solaris doesn't have "pkill --full".
Solution:   Also echo the second command. Use "pkill -f".
2016-02-03 22:39:51 +01:00
e7bed627c8 patch 7.4.1252
Problem:    The channel test server may receive two messages concatenated.
Solution:   Split the messages.
2016-02-03 22:20:29 +01:00
bf087cead9 patch 7.4.1251
Problem:    New test file missing from distribution.
Solution:   Add src/testdir/*.py.
2016-02-03 21:56:42 +01:00
2212c4154c patch 7.4.1250
Problem:    Running tests in shadow directory fails.
Solution:   Also link testdir/*.py
2016-02-03 21:45:27 +01:00
fcb1e3d168 patch 7.4.1249
Problem:    Crash when the process a channel is connected to exits.
Solution:   Use the file descriptor properly.  Add a test. (Damien)
            Also add a test for eval().
2016-02-03 21:32:46 +01:00
f92591f7f9 patch 7.4.1248
Problem:    Can't reliably stop the channel test server.  Can't start the
            server if the python file is not executable.
Solution:   Use "pkill" instead of "killall".  Run the python file as an
            argument instead of as an executable.
2016-02-03 20:22:32 +01:00
a0f9cd148e patch 7.4.1247
Problem:    The channel test doesn't run on MS-Windows.
Solution:   Make it work on the MS-Windows console. (Ken Takata)
2016-02-03 20:13:24 +01:00
7c764f7bbf Make the python script executable. 2016-02-02 23:33:43 +01:00
d7ece1008e patch 7.4.1246
Problem:    The channel functionality isn't tested.
Solution:   Add a test using a Python test server.
2016-02-02 23:23:02 +01:00
d087566a41 patch 7.4.1245
Problem:    File missing from distribution.
Solution:   Add json_test.c.
2016-02-02 20:52:42 +01:00
f57969a20a patch 7.4.1244
Problem:    The channel functions don't sort together.
Solution:   Use a common "ch_" prefix.
2016-02-02 20:47:49 +01:00
fbf9c6b6c3 patch 7.4.1243
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it. (Elias Diem)
2016-02-02 19:43:57 +01:00
8d8c509ac8 patch 7.4.1242
Problem:    json_test fails without the eval feature.
Solution:   Add #ifdef.
2016-02-02 19:15:38 +01:00
04b08c3de6 patch 7.4.1241
Problem:    Missing change in Makefile due to diff mismatch
Solution:   Update the list of object files.
2016-02-02 19:01:55 +01:00
bc07309225 patch 7.4.1240
Problem:    Visual studio tools are noisy.
Solution:   Suppress startup info. (Mike Williams)
2016-02-02 18:50:45 +01:00
df5b27b20e patch 7.4.1239
Problem:    JSON message after the first one is dropped.
Solution:   Put remainder of message back in the queue.
2016-02-02 18:43:17 +01:00
56ead341a7 patch 7.4.1238
Problem:    Can't handle two messages right after each other.
Solution:   Find the end of the JSON.  Read more when incomplete.  Add a C
            test for the JSON decoding.
2016-02-02 18:20:08 +01:00
d9ea9069f5 patch 7.4.1237
Problem:    Can't translate message without adding a line break.
Solution:   Join the two parts of the message.
2016-02-02 12:38:02 +01:00
885f24fbca patch 7.4.1236
Problem:    When "syntax manual" was used switching between buffers removes
            the highlighting.
Solution:   Set the syntax option without changing the value. (Anton
            Lindqvist)
2016-02-01 22:54:46 +01:00
11e0afa00a patch 7.4.1235
Problem:    Missing change to eval.c.
Solution:   Include that change.
2016-02-01 22:41:00 +01:00
5e9b2fa9bb Updated runtime files and translations. 2016-02-01 22:37:05 +01:00
488a130ea2 patch 7.4.1234
Problem:    Demo server only runs with Python 2.
Solution:   Make it run with Python 3 as well. (Ken Takata)
2016-02-01 22:01:10 +01:00
14ad611ca4 patch 7.4.1233
Problem:    Channel command may cause a crash.
Solution:   Check for NULL argument. (Damien)
2016-02-01 21:47:13 +01:00
1357caf31f patch 7.4.1232
Problem:    Compiler warnings when the Sniff feature is enabled.
Solution:   Add UNUSED.
2016-02-01 21:40:14 +01:00
19d2f15898 patch 7.4.1231
Problem:    JSON messages are not parsed properly.
Solution:   Queue received messages.
2016-02-01 21:38:19 +01:00
ca568aeec6 patch 7.4.1230
Problem:    Win32: opening a channel may hang.  Not checking for messages
            while waiting for characters.
Solution:   Add a zero timeout.  Call parse_queued_messages(). (Yasuhiro
            Matsumoto)
2016-02-01 21:32:58 +01:00
fb1f62691e patch 7.4.1229
Problem:    "eval" and "expr" channel commands don't work yet.
Solution:   Implement them.  Update the error numbers.  Also add "redraw".
2016-01-31 20:24:32 +01:00
155500077c patch 7.4.1228
Problem:    copy() and deepcopy() fail with special variables. (Nikolai
            Pavlov)
Solution:   Make it work.  Add a test.  Closes #614.
2016-01-31 18:45:24 +01:00
448a22549b patch 7.4.1227
Problem:    Compiler warnings.
Solution:   Add UNUSED.  Add type cast. (Yegappan Lakshmanan)
2016-01-31 18:08:34 +01:00
3803bad99d patch 7.4.1226
Problem:    GRESOURCE_HDR is unused.
Solution:   Remove it. (Kazunobu Kuriyama)
2016-01-31 17:56:07 +01:00
d14e00ea67 patch 7.4.1225
Problem:    Still a few old style function declarations.
Solution:   Make them new style. (Hirohito Higashi)
2016-01-31 17:30:51 +01:00
bbb3339dbf patch 7.4.1224
Problem:    Build problems with GTK on BSD. (Mike Williams)
Solution:   Don't use "$<". Skip building gui_gtk_gresources.h when it doesn't
            work. (Kazunobu Kuriyama)
2016-01-31 16:37:33 +01:00
a542c680a8 patch 7.4.1223
Problem:    Crash when setting v:errors to a number.
Solution:   Free the typval without assuming its type. (Yasuhiro Matsumoto)
2016-01-31 16:28:04 +01:00
e2c3810c2a patch 7.4.1222
Problem:    ":normal" command and others missing in tiny build.
Solution:   Graduate FEAT_EX_EXTRA.
2016-01-31 14:55:40 +01:00
3c124e3ac8 patch 7.4.1221
Problem:    Including netbeans and channel support in small and tiny builds.
            Build fails with some interfaces.
Solution:   Only include these features in small build and above.  Let
            configure fail if trying to enable an interface that won't build.
2016-01-31 14:36:58 +01:00
fa399af7ec patch 7.4.1220
Problem:    Warnings for unused variables in tiny build. (Tony Mechelynck)
Solution:   Move declarations inside #ifdef. (Hirohito Higashi)
2016-01-31 14:13:21 +01:00
937204a917 patch 7.4.1219
Problem:    Build fails with +channel but without +float.
Solution:   Add #ifdef.
2016-01-30 23:37:38 +01:00
779a7759ad patch 7.4.1218
Problem:    Missing change in configure.  More changes for function style.
Solution:   Avoid the typos.
2016-01-30 23:26:34 +01:00
20fb9f3464 patch 7.4.1217
Problem:    Execution of command on channel doesn't work yet.
Solution:   Implement the "ex" and "normal" commands.
2016-01-30 23:20:33 +01:00
ba4ef2757c patch 7.4.1216
Problem:    Still using HAVE_STDARG_H.
Solution:   Assume it's always defined.
2016-01-30 21:48:49 +01:00
b638a7be95 patch 7.4.1215
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 21:29:58 +01:00
764b23c8fd patch 7.4.1214
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 21:10:09 +01:00
055409764c patch 7.4.1213
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 20:31:25 +01:00
c1ab67674a patch 7.4.1212
Problem:    Can't build with Motif.
Solution:   Fix function declaration.(Dominique Pelle)
2016-01-30 19:45:49 +01:00
9b57814db1 patch 7.4.1211
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 19:39:49 +01:00
52ea13da0f patch 7.4.1210
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 18:51:09 +01:00
02fdaeaa69 patch 7.4.1209
Problem:    Can't build with Athena.
Solution:   Fix function declarations.
2016-01-30 18:13:55 +01:00
68c2f638e6 patch 7.4.1208
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 17:24:07 +01:00
66f948e928 patch 7.4.1207
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 16:39:25 +01:00
78c0b7d43e patch 7.4.1206
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 15:52:46 +01:00
7454a06e26 patch 7.4.1205
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 15:14:10 +01:00
305598b712 patch 7.4.1204
Problem:    Latin1 characters cause encoding conversion.
Solution:   Remove the characters.
2016-01-30 13:53:36 +01:00
4349c57543 patch 7.4.1203
Problem:    Still more files still using __ARGS.
Solution:   Remove __ARGS in really the last files.
2016-01-30 13:28:28 +01:00
3e96c3d241 patch 7.4.1202
Problem:    Still one more file still using __ARGS.
Solution:   Remove __ARGS in the last file. (script by Hirohito Higashi)
            (closes #612)
2016-01-29 23:46:21 +01:00
569850724e patch 7.4.1201
Problem:    One more file still using __ARGS.
Solution:   Remove __ARGS in the last file. (script by Hirohito Higashi)
2016-01-29 23:23:06 +01:00
d99df423c5 patch 7.4.1200
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
2016-01-29 23:20:40 +01:00
baaa7e9ec7 patch 7.4.1199
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
2016-01-29 22:47:03 +01:00
92b8b2d307 patch 7.4.1198
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
            Also remove use of HAVE_STDARG_H.
2016-01-29 22:36:45 +01:00
d25c16e2f2 patch 7.4.1197
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
2016-01-29 22:13:30 +01:00
f28dbcea37 patch 7.4.1196
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
2016-01-29 22:03:47 +01:00
f12d983dea patch 7.4.1195
Problem:    The channel feature does not work in the MS-Windows console.
Solution:   Add win32 console support. (Yasuhiro Matsumoto)
2016-01-29 21:11:25 +01:00
83162468b3 patch 7.4.1194
Problem:    Compiler warning for not using return value of fwrite().
Solution:   Return OK/FAIL. (Charles Campbell)
2016-01-28 23:10:07 +01:00
b8b6511fc1 patch 7.4.1193
Problem:    Can't build the channel feature on MS-Windows.
Solution:   Add #ifdef HAVE_POLL.
2016-01-28 23:01:49 +01:00
fa06a517b5 patch 7.4.1192
Problem:    Can't build with FEAT_EVAL but without FEAT_MBYTE. (John
            Marriott)
Solution:   Add #ifdef for FEAT_MBYTE.
2016-01-28 22:46:58 +01:00
298b440930 Update runtime files. 2016-01-28 22:38:53 +01:00
3b5f929b18 patch 7.4.1191
Problem:    The channel feature isn't working yet.
Solution:   Add the connect(), disconnect(), sendexpr() and sendraw()
            functions.  Add initial documentation.  Add a demo server.
2016-01-28 22:37:01 +01:00
ba59ddbd36 patch 7.4.1190
Problem:    On OSX the default flag for dlopen() is different.
Solution:   Add RTLD_LOCAL in the configure check. (sv99, closes #604)
2016-01-28 15:34:25 +01:00
923e43b837 patch 7.4.1189
Problem:    Using another language on MS-Windows does not work. (Yongwei Wu)
Solution:   Undo the change to try loading libintl-8.dll first.
2016-01-28 15:07:38 +01:00
009d84a34f patch 7.4.1188
Problem:    Using older JSON standard.
Solution:   Update the link.  Adjust the text a bit.
2016-01-28 14:12:00 +01:00
85be35f33e patch 7.4.1187
Problem:    MS-Windows channel code only supports one channel.  Doesn't build
            without netbeans support.
Solution:   Get the channel index from the socket in the message. Closes #600.
2016-01-27 21:08:18 +01:00
4a1314cb9c patch 7.4.1186
Problem:    Error messages for security context are hard to translate.
Solution:   Use one string with %s. (Ken Takata)
2016-01-27 20:47:18 +01:00
0d6f835683 patch 7.4.1185
Problem:    Can't build with TCL on some systems.
Solution:   Rename the channel_ functions.
2016-01-27 11:07:47 +01:00
54e09e7198 patch 7.4.1184
Problem:    MS-Windows build is still broken.
Solution:   Change nbsock to ch_fd.
2016-01-26 23:49:31 +01:00
fb4194e4e0 patch 7.4.1183
Problem:    MS-Windows build is broken.
Solution:   Remove init in wrong place.
2016-01-26 23:39:55 +01:00
d04a020a8a patch 7.4.1182
Problem:    Still socket code intertwined with netbeans.
Solution:   Move code from netbeans.c to channel.c
2016-01-26 23:30:18 +01:00
6650a69454 patch 7.4.1181
Problem:    free_tv() can't handle special variables. (Damien)
Solution:   Add the variable type.
2016-01-26 19:59:10 +01:00
ac80999985 add missing test file 2016-01-25 22:44:54 +01:00
7465c6375f patch 7.4.1180
Problem:    Crash with invalid argument to glob2regpat().
Solution:   Check for NULL. (Justin M. Keyes, closes #596)  Add a test.
2016-01-25 22:20:27 +01:00
f4f79b84a5 patch 7.4.1179
Problem:    test_writefile and test_viml do not delete the tempfile.
Solution:   Delete the tempfile. (Charles Cooper)  Add DeleteTheScript().
2016-01-25 20:38:30 +01:00
767d8c1a1a patch 7.4.1178
Problem:    empty() doesn't work for the new special variables.
Solution:   Make empty() work. (Damien)
2016-01-25 20:22:54 +01:00
5aec481097 patch 7.4.1177
Problem:    The +channel feature is not in :version output. (Tony Mechelynck)
Solution:   Add the feature string.
2016-01-25 20:15:45 +01:00
1d63539cc7 patch 7.4.1176
Problem:    Missing change to proto file.
Solution:   Update the proto file. (Charles Cooper)
2016-01-25 16:05:56 +01:00
f75612fd99 patch 7.4.1175
Problem:    Can't build with Mingw and Cygwin.
Solution:   Remove extra "endif". (Christian J. Robinson)
2016-01-25 14:17:04 +01:00
3e53c700a2 patch 7.4.1174
Problem:    Netbeans contains dead code insde #ifdef.
Solution:   Remove the dead code.
2016-01-24 22:17:03 +01:00
65591001e4 patch 7.4.1173
Problem:    No test for new behavior of v:true et al.
Solution:   Add a test.
2016-01-24 21:51:57 +01:00
16435480f0 patch 7.4.1172
Problem:    Configure is overly positive.
Solution:   Insert "test".
2016-01-24 21:31:54 +01:00
2e2301437c patch 7.4.1171
Problem:    Makefile dependencies are outdated.
Solution:   Run "make depend". Add GTK resource dependencies.
2016-01-24 20:54:37 +01:00
0e7f88e73e patch 7.4.1170
Problem:    Missing changes in src/Makefile, Filelist.
Solution:   Add the missing changes.
2016-01-24 20:41:51 +01:00
e0874f8cbc patch 7.4.1169
Problem:    The socket I/O is intertwined with the netbeans code.
Solution:   Start refactoring the netbeans communication to split off the
            socket I/O.  Add the +channel feature.
2016-01-24 20:36:41 +01:00
705ada1aff Update a few runtime files. 2016-01-24 17:56:50 +01:00
f48aa160fd patch 7.4.1168
Problem:    This doesn't give the right result: eval(string(v:true)). (Nikolay
            Pavlov)
Solution:   Make the string "v:true" instead of "true".
2016-01-24 17:54:24 +01:00
0436922965 patch 7.4.1167
Problem:    No tests for "is" and "isnot" with the new variables.
Solution:   Add tests.
2016-01-24 17:21:29 +01:00
fcaaae6b3f patch 7.4.1166
Problem:    Can't encode a Funcref into JSON.  jsonencode() doesn't handle the
            same list or dict twice properly.  (Nikolay Pavlov)
Solution:   Give an error.  Reset copyID when the list or dict is finished.
2016-01-24 16:49:11 +01:00
938ee834d3 patch 7.4.1165
Problem:    When defining DYNAMIC_ICONV_DLL in the makefile, the build fails.
Solution:   Add #ifdef's. (Taro Muraoka)  Try the newer version first.
2016-01-24 15:36:03 +01:00
6039c7f053 patch 7.4.1164
Problem:    No tests for comparing special variables.  Error in jsondecode()
            not reported.  test_json does not work Japanse system.
Solution:   Set scriptencoding. (Ken Takata) Add a few more tests. Add error.
2016-01-24 15:05:32 +01:00
17a13437c9 patch 7.4.1163
Problem:    Expressions "0 + v:true" and "'' . v:true" cause an error.
Solution:   Return something sensible when using a special variable as a
            number or as a string. (suggested by Damien)
2016-01-24 14:22:10 +01:00
9e3be26872 patch 7.4.1162
Problem:    Missing error number in MzScheme. (Dominique Pelle)
Solution:   Add a proper error number.
2016-01-24 13:58:40 +01:00
2faa29f896 patch 7.4.1161
Problem:    ":argadd" without argument is supposed to add the current buffer
            name to the arglist.
Solution:   Make it work as documented. (Coot, closes #577)
2016-01-23 23:02:34 +01:00
bd4593ffb1 patch 7.4.1160
Problem:    No error for jsondecode('"').
Solution:   Give an error message for missing double quote.
2016-01-23 22:51:07 +01:00
e240c2da79 patch 7.4.1159
Problem:    Automatically generated function prototypes use __ARGS.
Solution:   Remove __ARGS from osdef.sh.
2016-01-23 22:46:10 +01:00
48e697e4b6 patch 7.4.1158
Problem:    Still using __ARGS().
Solution:   Remove __ARGS() from eval.c
2016-01-23 22:17:30 +01:00
f95534c3d4 patch 7.4.1157
Problem:    type() does not work for v:true, v:none, etc.
Solution:   Add new type numbers.
2016-01-23 21:59:52 +01:00
2dedb45260 patch 7.4.1156
Problem:    Coverity warns for NULL pointer and ignoring return value.
Solution:   Check for NULL pointer. When dict_add() returns FAIL free the item.
2016-01-23 21:38:51 +01:00
64922b9014 patch 7.4.1155
Problem:    Build with normal features fails.
Solution:   Always deinfe dict_lookup().
2016-01-23 19:54:30 +01:00
520e1e41f3 patch 7.4.1154
Problem:    No support for JSON.
Solution:   Add jsonencode() and jsondecode().  Also add v:false, v:true,
            v:null and v:none.
2016-01-23 19:46:28 +01:00
6920c72d4d patch 7.4.1153
Problem:    Autocommands triggered by quickfix cannot always get the current
            title value.
Solution:   Call qf_fill_buffer() later. (Christian Brabandt)
2016-01-22 22:44:10 +01:00
09e786e7a7 patch 7.4.1152
Problem:    Langmap test fails with normal build.
Solution:   Check for +langmap feature.
2016-01-21 23:53:06 +01:00
13d5aeef56 Update runtime files 2016-01-21 23:36:05 +01:00
5f8a14b9de patch 7.4.1151
Problem:    Missing change to eval.c
Solution:   Also change feedkeys().
2016-01-21 23:34:58 +01:00
25281634cd patch 7.4.1150
Problem:    'langmap' applies to the first character typed in Select mode.
            (David Watson)
Solution:   Check for SELECTMODE. (Christian Brabandt, closes #572)
            Add the 'x' flag to feedkeys().
2016-01-21 23:32:32 +01:00
d6357e8f93 patch 7.4.1149
Problem:    Using the local value of 'errorformat' causes more problems than
            it solves.
Solution:   Revert 7.4.1013.
2016-01-21 21:48:09 +01:00
e5f2be6159 patch 7.4.1148
Problem:    Default for MingW and Cygwin is still "normal".
Solution:   Use "huge" as default. (Ken Takata)
2016-01-21 20:24:34 +01:00
88e8f9f144 patch 7.4.1147
Problem:    Conflict for "chartab". (Kazunobu Kuriyama)
Solution:   Rename the global one to something less obvious.  Move it into
            src/chartab.c.
2016-01-20 22:48:02 +01:00
a7c3795a2e patch 7.4.1146
Problem:    Can't build with Python 3 interface using MingW.
Solution:   Update the Makefile. (Yasuhiro Matsumoto, Ken Takata)
2016-01-20 22:23:15 +01:00
23c4f7183c patch 7.4.1145
Problem:    Default features are conservative.
Solution:   Make the default feature set for most of todays systems "huge".
2016-01-20 22:11:59 +01:00
17576a1e33 patch 7.4.1144
Problem:    Can't build on several systems.
Solution:   Include float.h. (Christian Robinson, closes #570 #571)
2016-01-20 20:05:44 +01:00
f7edf40448 patch 7.4.1143
Problem:    Can't sort on floating point numbers.
Solution:   Add the "f" flag to ":sort".  (Alex Jakushev)  Also add the "f"
            flag to sort().
2016-01-19 23:36:15 +01:00
b8060fe862 patch 7.4.1142
Problem:    Cannot define keyword characters for a syntax file.
Solution:   Add the ":syn iskeyword" command. (Christian Brabandt)
2016-01-19 22:29:28 +01:00
6773a348da patch 7.4.1141
Problem:    Using searchpair() with a skip expression that uses syntax
            highlighting sometimes doesn't work. (David Fishburn)
Solution:   Reset next_match_idx. (Christian Brabandt)
2016-01-19 20:52:44 +01:00
e266d6d664 patch 7.4.1140
Problem:    Recognizing <sid> does not work when the language is Turkish.
            (Christian Brabandt)
Solution:   Use MB_STNICMP() instead of STNICMP().
2016-01-19 20:51:32 +01:00
fce7b3d24f patch 7.4.1139
Problem:    MS-Windows: getftype() returns "file for symlink to directory.
Solution:   Make it return "dir". (Ken Takata)
2016-01-19 19:00:32 +01:00
3a466a8718 patch 7.4.1138
Problem:    When running gvim in the foreground some icons are missing.
            (Taylor Venable)
Solution:   Move the call to gui_gtk_register_resource(). (Kazunobu Kuriyama)
2016-01-19 17:47:25 +01:00
62ef797496 patch 7.4.1137
Problem:    Illegal memory access when using :copen and :cclose.
Solution:   Avoid that curbuf is invalid. (suggestion by Justin M. Keyes)
            Add a test.
2016-01-19 14:51:54 +01:00
da5dcd9366 patch 7.4.1136
Problem:    Wrong argument to assert_exception() causes a crash. (reported by
            Coverity)
Solution:   Check for NULL pointer.  Add a test.
2016-01-19 14:31:20 +01:00
301417041b patch 7.4.1135
Problem:    One more arglist test fails on MS-Windows.
Solution:   Don't edit "Y" after editing "y".
2016-01-19 14:14:08 +01:00
82e4184d48 patch 7.4.1134
Problem:    The arglist test fails on MS-Windows.
Solution:   Only check for failure of argedit on Unix.
2016-01-19 13:50:57 +01:00
ef26954a35 patch 7.4.1133
Problem:    Generated function prototypes still have __ARGS().
Solution:   Generate function prototypes without __ARGS().
2016-01-19 13:22:12 +01:00
99dbe291f5 patch 7.4.1132
Problem:    Old style tests for the argument list.
Solution:   Add more new style tests. (Yegappan Lakshmanan)
2016-01-19 13:07:23 +01:00
b20e334859 patch 7.4.1131
Problem:    New lines in the viminfo file are dropped.
Solution:   Copy lines starting with "|".  Fix that when using :rviminfo in a
            function global variables were restored as function-local
            variables.
2016-01-18 23:29:01 +01:00
61ff4dd6a4 patch 7.4.1130
Problem:    Memory leak in :vimgrep.
Solution:   Call FreeWild(). (Yegappan Lakshmanan)
2016-01-18 20:30:17 +01:00
77324fc9d3 patch 7.4.1129
Problem:    Python None value can't be converted to a Vim value.
Solution:   Just use zero. (Damien)
2016-01-17 22:37:03 +01:00
85084ef1e9 Update help files. 2016-01-17 22:26:33 +01:00
203258c3ad patch 7.4.1128
Problem:    MS-Windows: delete() does not recognize junctions.
Solution:   Add mch_isrealdir() for MS-Windows. Update mch_is_symbolic_link().
            (Ken Takata)
2016-01-17 22:15:16 +01:00
021b593e7e patch 7.4.1127
Problem:    Both old and new style tests for Perl.
Solution:   Merge the old tests with the new style tests.
2016-01-17 22:05:48 +01:00
c970330676 patch 7.4.1126
Problem:    Can only get the directory of the current window.
Solution:   Add window and tab arguments to getcwd() and haslocaldir().
            (Thinca, Hirohito Higashi)
2016-01-17 21:49:33 +01:00
e9b892ebcd patch 7.4.1125
Problem:    There is no perleval().
Solution:   Add perleval(). (Damien)
2016-01-17 21:15:58 +01:00
25b2b94ea7 patch 7.4.1124
Problem:    MS-Windows: dead key behavior is not ideal.
Solution:   Handle dead keys differently when not in Insert or Select mode.
            (John Wellesz, closes #399)
2016-01-17 20:53:12 +01:00
a24f0a550f patch 7.4.1123
Problem:    Using ":argadd" when there are no arguments results in the second
            argument to be the current one. (Yegappan Lakshmanan)
Solution:   Correct the w_arg_idx value.
2016-01-17 19:39:00 +01:00
42c9cfa7f4 patch 7.4.1122
Problem:    Test 92 and 93 fail when using gvim on a system with a non utf-8
            locale.
Solution:   Avoid using .gvimrc by adding -U NONE. (Yukihiro Nakadaira)
2016-01-17 18:49:57 +01:00
08b270a8a4 patch 7.4.1121
Problem:    test_expand leaves files behind.
Solution:   Edit another file before deleting, otherwise the swap file
            remains.
2016-01-17 18:34:19 +01:00
336bd622c3 patch 7.4.1120
Problem:    delete(x, 'rf') fails if a directory is empty. (Lcd)
Solution:   Ignore not finding matches in an empty directory.
2016-01-17 18:23:58 +01:00
72defda84e patch 7.4.1119
Problem:    argidx() has a wrong value after ":%argdelete". (Yegappan
            Lakshmanan)
Solution:   Correct the value of w_arg_idx.  Add a test.
2016-01-17 18:04:33 +01:00
a99b90437a patch 7.4.1118
Problem:    Tests hang in 24 line terminal.
Solution:   Set the 'more' option off.
2016-01-17 17:10:59 +01:00
d82103ed85 patch 7.4.1117
Problem:    No longer get "." and ".." in directory list.
Solution:   Do not skip "." and ".." unless EW_DODOT is set.
2016-01-17 17:04:05 +01:00
b0967d587f patch 7.4.1116
Problem:    delete(x, 'rf') does not delete files starting with a dot.
Solution:   Also delete files starting with a dot.
2016-01-17 16:49:43 +01:00
d0232917ce patch 7.4.1115
Problem:    MS-Windows: make clean in testdir doesn't clean everything.
Solution:   Add command to delete X* directories. (Ken Takata)
2016-01-17 16:15:32 +01:00
43a34f9f74 patch 7.4.1114
Problem:    delete() does not work well with symbolic links.
Solution:   Recognize symbolik links.
2016-01-17 15:56:34 +01:00
4119cf80e1 patch 7.4.1113
Problem:    Using {ns} in variable name does not work. (lilydjwg)
Solution:   Fix recognizing colon.  Add a test.
2016-01-17 14:59:01 +01:00
2db5c3b3ce patch 7.4.1112
Problem:    When using ":next" with an illegal file name no error is reported.
Solution:   Give an error message.
2016-01-16 22:49:34 +01:00
f60b796fa9 patch 7.4.1111
Problem:    test_expand fails on MS-Windows.
Solution:   Always use forward slashes.  Remove references to test27.
2016-01-16 22:47:23 +01:00
8c600052fa patch 7.4.1110
Problem:    Test 108 fails when language is French.
Solution:   Force English messages. (Dominique Pelle)
2016-01-16 22:08:11 +01:00
4cf7679383 patch 7.4.1109
Problem:    MS-Windows doesn't have rmdir().
Solution:   Add mch_rmdir().
2016-01-16 22:02:57 +01:00
58adb14739 patch 7.4.1108
Problem:    Expanding "~" halfway a file name.
Solution:   Handle the file name as one name. (Marco Hinz)  Add a test.
            Closes #564.
2016-01-16 21:50:51 +01:00
da440d21a6 patch 7.4.1107
Problem:    Vim can create a directory but not delete it.
Solution:   Add an argument to delete() to make it possible to delete a
            directory, also recursively.
2016-01-16 21:27:23 +01:00
286eacd3f6 patch 7.4.1106
Problem:    The nsis script can't be used from the appveyor build.
Solution:   Add "ifndef" to allow for variables to be set from the command
            line. Remove duplicate SetCompressor command. Support using other
            gettext binaries. (Ken Takata)  Update build instructions to use
            libintl-8.dll.
2016-01-16 18:05:50 +01:00
9bbf63dbf8 patch 7.4.1105
Problem:    When using slices there is a mixup of variable name and namespace.
Solution:   Recognize variables that can't be a namespace. (Hirohito Higashi)
2016-01-16 16:49:28 +01:00
4e640bd930 patch 7.4.1104
Problem:    Various problems building with MzScheme/Racket.
Solution:   Make it work with new versions of Racket. (Yukihiro Nakadaira, Ken
            Takata)
2016-01-16 16:20:38 +01:00
d125001297 patch 7.4.1103
Problem:    Removed file still in distribution.
Solution:   Remove Make_cyg.mak from the list of files.
2016-01-16 15:45:15 +01:00
f1f60f859c patch 7.4.1102
Problem:    Debugger has no stack backtrace support.
Solution:   Add "backtrace", "frame", "up" and "down" commands. (Alberto
            Fanjul, closes #433)
2016-01-16 15:40:53 +01:00
e39b3d9fb4 patch 7.4.1101
Problem:    With 'rightleft' and concealing the cursor may move to the wrong
            position.
Solution:   Compute the column differently when 'rightleft' is set. (Hirohito
            Higashi)
2016-01-15 22:52:22 +01:00
abfa9efb98 patch 7.4.1100
Problem:    Cygwin makefiles are unused.
Solution:   Remove them.
2016-01-15 22:34:45 +01:00
36d7cd8965 patch 7.4.1099
Problem:    It's not easy to know if Vim supports blowfish. (Smu Johnson)
Solution:   Add has('crypt-blowfish') and has('crypt-blowfish2').
2016-01-15 22:08:23 +01:00
b7604cc19f patch 7.4.1098
Problem:    Still using old style C function declarations.
Solution:   Always define __ARGS() to include types.  Turn a few functions
            into ANSI style to find out if this causes problems for anyone.
2016-01-15 21:23:22 +01:00
345efa013d Update runtime files 2016-01-15 20:57:49 +01:00
065ee9aebf patch 7.4.1097
Problem:    Looking up the alloc ID for tests fails.
Solution:   Fix the line computation.  Use assert_fails() for unlet test.
2016-01-15 20:53:38 +01:00
a260b87d9d patch 7.4.1096
Problem:    Need several lines to verify a command produces an error.
Solution:   Add assert_fails(). (suggested by Nikolay Pavlov)
            Make the quickfix alloc test actually work.
2016-01-15 20:48:22 +01:00
3d6d5cc3a4 patch 7.4.1095
Problem:    Can't build GvimExt with SDK 7.1.
Solution:   Support using setenv.bat instead of vcvars32.bat. (Ken Takata)
2016-01-15 18:03:32 +01:00
5a46a58eb6 Add missing test file. 2016-01-15 15:56:58 +01:00
ccb80989f2 patch 7.4.1094
Problem:    Test for :hardcopy fails on MS-Windows.
Solution:   Check for the +postscript feature.
2016-01-15 15:56:35 +01:00
24c4d539ee patch 7.4.1093
Problem:    Typo in test goes unnoticed.
Solution:   Fix the typo. Give error for wrong arguments to cursor().
            (partly by Hirohito Higashi) Add a test for cursor().
2016-01-15 15:37:20 +01:00
a803c7f940 patch 7.4.1092
Problem:    It is not simple to test for an exception and give a proper error
            message.
Solution:   Add assert_exception().
2016-01-15 15:31:39 +01:00
b01f357791 patch 7.4.1091
Problem:    When making a change while need_wait_return is set there is a two
            second delay.
Solution:   Do not assume the ATTENTION prompt was given when need_wait_return
            was set already.
2016-01-15 15:17:04 +01:00
b5690794cf patch 7.4.1090
Problem:    No tests for :hardcopy and related options.
Solution:   Add test_hardcopy.
2016-01-14 22:10:41 +01:00
ef2b5036b3 patch 7.4.1089
Problem:    Repeating CTRL-A doesn't work.
Solution:   Call prep_redo_cmd(). (Hirohito Higashi)
2016-01-12 22:20:58 +01:00
7ae4fbca55 patch 7.4.1088
Problem:    Coverity warns for uninitialized variables.  Only one is an actual
            problem.
Solution:   Move the conditions.  Don't use endpos if handling an error.
2016-01-12 21:00:40 +01:00
d79e55016c patch 7.4.1087
Problem:    CTRL-A and CTRL-X do not work properly with blockwise visual
            selection if there is a mix of Tab and spaces.
Solution:   Add OP_NR_ADD and OP_NR_SUB. (Hirohito Higashi)
2016-01-10 22:13:02 +01:00
507edf63df patch 7.4.1086
Problem:    Crash with an extremely long buffer name.
Solution:   Limit the return value of vim_snprintf(). (Dominique Pelle)
2016-01-10 20:54:17 +01:00
a52dfaed10 patch 7.4.1085
Problem:    The CTRL-A and CTRL-X commands do not update the '[ and '] marks.
Solution:   (Yukihiro Nakadaira)
2016-01-10 20:21:57 +01:00
e1edc1caba patch 7.4.1084
Problem:    Using "." to repeat CTRL-A in Visual mode increments the wrong
            numbers.
Solution:   Append right size to the redo buffer. (Ozaki Kiichi)
2016-01-10 20:08:03 +01:00
4514d2769b patch 7.4.1083
Problem:    Building GvimExt with VS2015 may fail.
Solution:   Adjust the makefile. (Mike Williams)
2016-01-10 19:21:36 +01:00
858b96f382 patch 7.4.1082
Problem:    The Tcl interface is always skipping memory free on exit.
Solution:   Only skip for dynamically loaded Tcl.
2016-01-10 16:12:24 +01:00
254b105b75 patch 7.4.1081
Problem:    No test for what previously caused a crash.
Solution:   Add test for unletting errmsg.
2016-01-10 16:10:17 +01:00
f32c5cd6e0 patch 7.4.1080
Problem:    VS2015 has a function HandleToLong() that is shadowed by the macro
            that Vim defines.
Solution:   Do not define HandleToLong() for MSVC version 1400 and later.
            (Mike Williams)
2016-01-10 16:07:44 +01:00
b86a343280 patch 7.4.1079
Problem:    New include file missing from distribution.  Missing changes to
            quickfix code.
Solution:   Add alloc.h to the list of distributed files. Use the enum in
            quickfix code.
2016-01-10 16:00:53 +01:00
acb4f221c7 Updated runtime files. 2016-01-10 15:59:26 +01:00
d08a8d4a31 patch 7.4.1078
Problem:    MSVC: "make clean" doesn't cleanup in the tee directory.
Solution:   Add the commands to cleanup tee. (Erich Ritz)
2016-01-10 15:20:29 +01:00
30a89473ee patch 7.4.1077
Problem:    The build instructions for MS-Windows are incomplete.
Solution:   Add explanations for how to build with various interfaces. (Ken
            Takata)
2016-01-10 14:35:58 +01:00
6a3c8aff04 patch 7.4.1076
Problem:    CTRL-A does not work well in right-left mode.
Solution:   Remove reversing the line, add a test. (Hirohito Higashi)
2016-01-10 14:13:40 +01:00
05fe017c1a patch 7.4.1075
Problem:    Crash when using an invalid command.
Solution:   Fix generating the error message. (Dominique Pelle)
2016-01-10 13:54:48 +01:00
5fa4d448fb patch 7.4.1074
Problem:    Warning from VX2015 compiler.
Solution:   Add a type cast. (Mike Williams)
2016-01-10 13:25:55 +01:00
28fb79db6b patch 7.4.1073
Problem:    Alloc_id depends on numbers, may use the same one twice.  It's not
            clear from the number what it's for.
Solution:   Use an enum.  Add a function to lookup the enum value from the
            name.
2016-01-09 22:28:33 +01:00
44132a10ae add missing test file 2016-01-09 21:09:10 +01:00
450919587d patch 7.4.1072
Problem:    Increment test is old style.
Solution:   Make the increment test a new style test. (Hirohito Higashi)
2016-01-09 21:08:35 +01:00
cfc0a350a9 patch 7.4.1071
Problem:    New style tests are executed in arbitrary order.
Solution:   Sort the test function names. (Hirohito Higashi)
            Fix the quickfix test that depended on the order.
2016-01-09 20:23:00 +01:00
8a5115cf18 patch 7.4.1070
Problem:    The Tcl interface can't be loaded dynamically on Unix.
Solution:   Make it possible to load it dynamically. (Ken Takata)
2016-01-09 19:41:11 +01:00
5f24542e5e patch 7.4.1069
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2016-01-09 18:52:40 +01:00
71bcfdf301 patch 7.4.1068
Problem:    Wrong way to check for unletting internal variables.
Solution:   Use a better way. (Olaf Dabrunz)
2016-01-09 18:20:46 +01:00
449538c3d2 patch 7.4.1067
Problem:    Can't build with MingW and Python on MS-Windows.
Solution:   Move the build flags to CFLAGS.
2016-01-09 17:49:15 +01:00
64496ffc9c patch 7.4.1066
Problem:    Build fails on MS-Windows.
Solution:   Adjust the #ifdefs for "dll" options.
2016-01-09 15:08:03 +01:00
25e4fcde76 patch 7.4.1065
Problem:    Cannot use the "dll" options on MS-Windows.
Solution:   Support the options on all platforms.  Use the built-in name as
            the default, so that it's clear what Vim is looking for.
2016-01-09 14:57:47 +01:00
7b877b3605 patch 7.4.1064
Problem:    When a spell file has single letter compounding creating
            suggestions takes an awful long time.
Solution:   Add th eNOCOMPOUNDSUGS flag.
2016-01-09 13:51:34 +01:00
4d1c0a4441 Update to newer English spell files,
but without the COMPOUND rules that make suggestions very slow.
2016-01-09 13:23:54 +01:00
eca99bd45f patch 7.4.1063
Problem:    TCL_VER_LONG and DYNAMIC_TCL_VER are not set when building with
            Cygwin and MingW.
Solution:   Add TCL_VER_LONG and DYNAMIC_TCL_VER to the makefile.
2016-01-07 22:50:05 +01:00
0bee2fe25a patch 7.4.1062
Problem:    Building with Ruby on MS-Windows requires a lot of arguments.
Solution:   Make it simpler. (Ken Takata)
2016-01-07 22:45:09 +01:00
285bf84b4b patch 7.4.1061
Problem:    Compiler warning for ignoring return value of fwrite().
Solution:   Do use the return value. (idea: Charles Campbell)
2016-01-07 22:34:01 +01:00
6602af7fe0 patch 7.4.1060
Problem:    Instructions for writing tests are outdated.
Solution:   Mention Make_all.mak.  Add steps for new style tests.
2016-01-07 22:01:01 +01:00
fd39d08fb6 patch 7.4.1059
Problem:    Code will never be executed.
Solution:   Remove the code.
2016-01-07 21:28:24 +01:00
75bdf6aa30 patch 7.4.1058
Problem:    It is not possible to test code that is only reached when memory
            allocation fails.
Solution:   Add the alloc_fail() function.  Try it out with :vimgrep.
2016-01-07 21:25:08 +01:00
2b7db933b0 patch 7.4.1057
Problem:    Typos in the :options window.
Solution:   Fix the typos. (Dominique Pelle)
2016-01-07 16:52:10 +01:00
ca1fe98517 patch 7.4.1056
Problem:    Don't know why finding spell suggestions is slow.
Solution:   Add some code to gather profiling information.
2016-01-07 16:22:06 +01:00
a61018d7e0 Revert English spell file update 2016-01-07 16:19:13 +01:00
e7893a4088 patch 7.4.1055
Problem:    Running "make newtests" in src/testdir has no output.
Solution:   List the messages file when a test fails. (Christian Brabandt)
            Update the list of tests.
2016-01-06 21:23:56 +01:00
2795e21eaa patch 7.4.1054
Problem:    Illegal memory access.
Solution:   Check for missing pattern. (Dominique Pelle)
2016-01-05 22:04:49 +01:00
da59dd5da6 patch 7.4.1053
Problem:    Insufficient testing for quickfix commands.
Solution:   Add a new style quickfix test. (Yegappan Lakshmanan)
2016-01-05 21:59:58 +01:00
04bff88df6 patch 7.4.1052
Problem:    Illegal memory access with weird syntax command. (Dominique Pelle)
Solution:   Check for column past end of line.
2016-01-05 20:46:16 +01:00
af8af8bfac patch 7.4.1051
Problem:    Segfault when unletting "count".
Solution:   Check for readonly and locked first. (Dominique Pelle)
            Add a test.
2016-01-04 22:05:24 +01:00
c71982b239 patch 7.4.1050
Problem:    Warning for unused var with tiny features. (Tony Mechelynck)
Solution:   Add #ifdef.  Use vim_snprintf().  Reduce number of statemements.
2016-01-04 21:43:08 +01:00
485dace817 patch 7.4.1049
Problem:    Wordcount test still still fails on MS-Windows.
Solution:   Set 'fileformats' to "unix".
2016-01-04 12:45:29 +01:00
c7803a1c42 patch 7.4.1048
Problem:    Wordcount test still fail on MS-Windows.
Solution:   Set 'fileformat' to "unix".
2016-01-04 12:26:23 +01:00
7f68203168 patch 7.4.1047
Problem:    Tests fail on MS-Windows.
Solution:   Set 'selection' to inclusive.
2016-01-04 12:13:05 +01:00
2d6c800272 patch 7.4.1046
Problem:    No test coverage for menus.
Solution:   Load the standard menus and check there is no error.
2016-01-03 23:31:24 +01:00
47707f6f34 patch 7.4.1045
Problem:    Having shadow and coverage on the same build results in the source
            files not being available in the coverage view.
Solution:   Move using shadow to the normal build.
2016-01-03 23:06:34 +01:00
718272a7e1 patch 7.4.1044
Problem:    Can't build without the +eval feature.
Solution:   Add #ifdef.
2016-01-03 22:56:45 +01:00
d7a08a23bf patch 7.4.1043
Problem:    Another small thing.
Solution:   Now really update the Mac install text.
2016-01-03 22:51:16 +01:00
ed767a2073 patch 7.4.1042
Problem:    g-CTRL-G shows the word count, but there is no way to get the word
            count in a script.
Solution:   Add the wordcount() function. (Christian Brabandt)
2016-01-03 22:49:16 +01:00
022b896592 patch 7.4.1041
Problem:    Various small things.
Solution:   Add file to list of distributed files.  Adjust README.  Fix typo.
2016-01-03 22:16:20 +01:00
fa7353428f Updated runtime files. 2016-01-03 22:14:44 +01:00
24db72958f patch 7.4.1040
Problem:    The tee command is not available on MS-Windows.
Solution:   Adjust tee.c for MSVC and add a makefile. (Yasuhiro Matsumoto)
2016-01-03 16:56:10 +01:00
d798af8c77 patch 7.4.1039
Problem:    Test 31 fails with small build.
Solution:   Bail out for small build. (Hirohito Higashi)
2016-01-03 14:32:41 +01:00
d2e03f02c4 patch 7.4.1038
Problem:    Still get a warning for a deprecated function with gdk-pixbuf
            2.31.
Solution:   Change minimum minor version from 32 to 31.
2016-01-02 22:46:36 +01:00
027387f70c patch 7.4.1037
Problem:    Using "q!" when there is a modified hidden buffer does not unload
            the current buffer, resulting in the need to abandon it again.
Solution:   When using "q!" unload the current buffer when needed. (Yasuhiro
            Matsumoto, Hirohito Higashi)
2016-01-02 22:25:52 +01:00
fa03fd6c4a patch 7.4.1036
Problem:    Only terminals with up to 256 colors work properly.
Solution:   Use the 256 color behavior for all terminals with 256 or more
            colors. (Robert de Bath, closes #504)
2016-01-02 22:03:00 +01:00
a3306958dc patch 7.4.1035
Problem:    An Ex range gets adjusted for folded lines even when the range is
            not using line numbers.
Solution:   Only adjust line numbers for folding. (Christian Brabandt)
2016-01-02 21:41:06 +01:00
27a82e31ee Add new file left out from patch 7.4.1034. 2016-01-02 21:39:09 +01:00
aac624bacd patch 7.4.1034
Problem:    There is no test for the 'backspace' option behavior.
Solution:   Add a test. (Hirohito Higashi)
2016-01-02 21:31:39 +01:00
ee2739787f patch 7.4.1033
Problem:    Memory use on MS-Windows is very conservative.
Solution:   Use the global memory status to estimate amount of memory.
            (Mike Williams)
2016-01-02 21:11:51 +01:00
cbfe32953a patch 7.4.1032
Problem:    message from assert_false() does not look nice.
Solution:   Handle missing sourcing_name. Use right number of spaces. (Watiko)
            Don't use line number if it's zero.
2016-01-02 20:59:10 +01:00
3c6f92e52e patch 7.4.1031
Problem:    Can't build with Python interface using MingW.
Solution:   Update the Makefile. (Yasuhiro Matsumoto)
2016-01-02 20:26:36 +01:00
a2cce86307 patch 7.4.1030
Problem:    test49 is still slow.
Solution:   Move more tests from old to new style.
2016-01-02 19:50:04 +01:00
d3343960d7 patch 7.4.1029
Problem:    test_increment fails on systems with 32 bit long.
Solution:   Only test with 32 bits.
2016-01-02 18:17:16 +01:00
92c23d8ab8 patch 7.4.1028
Problem:    Nsis version file missing from the distribution.
Solution:   Add the file to the list.
2016-01-02 18:08:01 +01:00
89b24fcfc2 Update ignored files. Delete file that should have been deleted by patch 7.4.1016. 2016-01-02 18:05:10 +01:00
887c1fea4a patch 7.4.1027
Problem:    No support for binary numbers.
Solution:   Add "bin" to nrformats. (Jason Schulz)
2016-01-02 17:56:35 +01:00
acf92d27c9 patch 7.4.1026
Problem:    When using MingW the tests do not clean up all files.  E.g. test
            17 leaves Xdir1 behind. (Michael Soyka)
Solution:   Also delete directories, like Make_dos.mak.  Delete files after
            directories to reduce warnings.
2016-01-02 16:00:20 +01:00
6c7b44472f patch 7.4.1025
Problem:    Version in installer needs to be updated manually.
Solution:   Generate a file with the version number. (Guopeng Wen)
2016-01-02 15:44:32 +01:00
d5c899a3f1 patch 7.4.1024
Problem:    Interfaces for MS-Windows are outdated.
Solution:   Use Python 2.7.10, Python 3.4.4, Perl 5.22, TCL 8.6.
2016-01-02 15:07:02 +01:00
2c15f6aa8f patch 7.4.1023
Problem:    The distribution files for MS-Windows use CR-LF, which is
            inconsistent with what one gets from github.
Solution:   Use LF in the distribution files.
2016-01-02 15:00:30 +01:00
43f837dea5 patch 7.4.1022
Problem:    The README file contains some outdated information.
Solution:   Update the information about supported systems.
2016-01-01 18:34:39 +01:00
17b609ed7f patch 7.4.1021
Problem:    Some makefiles are outdated.
Solution:   Add a note to warn developers.
2016-01-01 17:56:17 +01:00
7eae47af89 patch 7.4.1020
Problem:    On MS-Windows there is no target to run tests with gvim.
Solution:   Add the testgvim target.
2016-01-01 17:49:44 +01:00
40a346dc19 Update gitignore for files created when running tests. 2016-01-01 17:29:40 +01:00
39373819fd patch 7.4.1019
Problem:    Directory listing of "src" is too long.
Solution:   Rename the resources file to make it shorter.
2016-01-01 17:20:27 +01:00
af2dff8fbc patch 7.4.1018
Problem:    Failure running tests.
Solution:   Add missing change to list of old style tests.
2016-01-01 14:57:51 +01:00
8f79acdf7e patch 7.4.1017
Problem:    When there is a backslash in an option ":set -=" doesn't work.
Solution:   Handle a backslash better. (Jacob Niehus)  Add a new test, merge
            in old test.
2016-01-01 14:48:20 +01:00
8dfc5eb328 patch 7.4.1016
Problem:    Still a few OS/2 pieces remain.
Solution:   Delete more.
2015-12-31 22:37:52 +01:00
c21d67e33c patch 7.4.1015
Problem:    The column is not restored properly when the matchparen plugin is
            used in Insert mode and the cursor is after the end of the line.
Solution:   Set the curswant flag. (Christian Brabandt).  Also fix
            highlighting the match of the character before the cursor.
2015-12-31 22:27:55 +01:00
06b0734d9c patch 7.4.1014
Problem:    fnamemodify('.', ':.') returns an empty string in Cygwin.
Solution:   Use CCP_RELATIVE in the call to cygwin_conv_path. (Jacob Niehus,
            closes #505)
2015-12-31 22:26:28 +01:00
9b05a0d0f9 patch 7.4.1013
Problem:    The local value of 'errorformat' is not used for ":lexpr" and
            ":cexpr".
Solution:   Use the local value if it exists. (Christian Brabandt) Adjust the
            help for this.
2015-12-31 21:19:49 +01:00
1000565c3a patch 7.4.1012
Problem:    Vim overwrites the value of $PYTHONHOME.
Solution:   Do not set $PYTHONHOME if it is already set. (Kazuki Sakamoto,
            closes #500)
2015-12-31 21:03:23 +01:00
2bf2417612 patch 7.4.1011
Problem:    Can't build with Strawberry Perl.
Solution:   Include stdbool.h. (Ken Takata, closes #328)
2015-12-31 20:54:51 +01:00
2d820808cd patch 7.4.1010
Problem:    Some developers are unhappy while running tests.
Solution:   Add a test and some color.
2015-12-31 20:46:39 +01:00
53076830fe patch 7.4.1009
Problem:    There are still #ifdefs for ARCHIE.
Solution:   Remove references to ARCHIE, the code was removed in Vim 5.
2015-12-31 19:53:21 +01:00
e7fedb6ebe patch 7.4.1008
Problem:    The OS/2 code pollutes the source while nobody uses it these days.
Solution:   Drop the support for OS/2.
2015-12-31 19:07:19 +01:00
e3303cb081 patch 7.4.1007
Problem:    When a symbolic link points to a file in the root directory, the
            swapfile is not correct.
Solution:   Do not try getting the full name of a file in the root directory.
            (Milly, closes #501)
2015-12-31 18:29:46 +01:00
96c664af27 patch 7.4.1006
Problem:    The fix in patch 7.3.192 is not tested.
Solution:   Add a test, one for each regexp engine. (Elias Diem)
2015-12-31 16:21:52 +01:00
86e179dbe7 patch 7.4.1005
Problem:    Vim users are not always happy.
Solution:   Make them happy.
2015-12-31 16:10:23 +01:00
cc7ff3fcd8 Update English spell files. 2015-12-30 19:13:24 +01:00
08b7bae91a patch 7.4.1004
Problem:    Using Makefile when auto/config.mk does not exists results in
            warnings.
Solution:   Use default values for essential variables.
2015-12-30 17:56:05 +01:00
7b5f0a15bc patch 7.4.1003
Problem:    Travis could check a few more things.
Solution:   Run autoconf on one of the builds. (James McCoy, closes #510)
            Also build with normal features.
2015-12-30 17:40:43 +01:00
604619784c patch 7.4.1002
Problem:    Cannot run an individual test on MS-Windows.
Solution:   Move the rule to run test1 downwards. (Ken Takata)
2015-12-30 17:17:10 +01:00
f49e240c2d patch 7.4.1001
Problem:    test_viml isn't run.
Solution:   Include change in makefile.
2015-12-30 15:59:25 +01:00
c06624661a patch 7.4.1000
Problem:    Test 49 is slow and doesn't work on MS-Windows.
Solution:   Start moving parts of test 49 to test_viml.
2015-12-30 15:49:05 +01:00
b8cb643eab patch 7.4.999
Problem:    "make shadow" creates a broken link. (Tony Mechelynck)
Solution:   Remove vimrc.unix from the list.
2015-12-30 13:43:56 +01:00
f9c8bd2137 patch 7.4.998
Problem:    Running tests in shadow directory fails.  Test 49 fails.
Solution:   Link more files for the shadow directory. Make test 49 end up in
            the right buffer.
2015-12-29 21:34:48 +01:00
4c7bb12c82 patch 7.4.997
Problem:    "make shadow" was sometimes broken.
Solution:   Add a test for it. (James McCoy, closes #520)
2015-12-29 20:32:23 +01:00
256972a984 Updated runtime files. 2015-12-29 19:10:25 +01:00
e292d80bed patch 7.4.996
Problem:    New GDK files and testdir/Make_all.mak missing from distribution.
            PC build instructions are outdated.
Solution:   Add the file to the list.  Update PC build instructions.
2015-12-29 19:03:21 +01:00
36e294c00c patch 7.4.995
Problem:    gdk_pixbuf_new_from_inline() is deprecated.
Solution:   Generate auto/gui_gtk_gresources.c. (Kazunobu Kazunobu,
            closes #507)
2015-12-29 18:55:46 +01:00
4e5a31c8b3 patch 7.4.994
Problem:    New style tests are not run on MS-Windows.
Solution:   Add the new style tests.
2015-12-29 17:11:15 +01:00
52f6ae1366 patch 7.4.993
Problem:    Test 87 is flaky on AppVeyor.
Solution:   Reduce the minimum background thread count.
2015-12-29 16:34:06 +01:00
013806229a patch 7.4.992
Problem:    Makefiles for MS-Windows in src/po are outdated.
Solution:   Make them work. (Ken Takata, Taro Muraoka)
2015-12-29 16:04:42 +01:00
096c8bb40d patch 7.4.991
Problem:    When running new style tests the output is not visible.
Solution:   Add the testdir/messages file and show it.  Update the list of
            test names.
2015-12-29 14:26:57 +01:00
e5c5f0c66c patch 7.4.990
Problem:    Test 86 fails on AppVeyor.
Solution:   Do some registry magic. (Ken Takata)
2015-12-29 13:59:29 +01:00
0107f5ba87 patch 7.4.989
Problem:    Leaking memory when hash_add() fails. Coverity error 99126.
Solution:   When hash_add() fails free the memory.
2015-12-28 22:51:20 +01:00
40bbceee22 patch 7.4.988
Problem:    Default test target is test49.out.
Solution:   Add a build rule before including Make_all.mak.
2015-12-28 22:24:41 +01:00
0d27f64f71 patch 7.4.987
Problem:    Can't build with Ruby 1.9.2.
Solution:   Require Rub 2.0 for defining USE_TYPEDDATA.
2015-12-28 22:05:28 +01:00
da9888a3f0 patch 7.4.986
Problem:    Test49 doesn't work on MS-Windows.  test70 is listed twice.
Solution:   Move test49 to the group not used on Amiga and MS-Windows.
            Remove test70 from SCRIPTS_WIN32.
2015-12-28 21:35:14 +01:00
f2f6d29796 patch 7.4.985
Problem:    Can't build with Ruby 2.3.0.
Solution:   Use the new TypedData_XXX macro family instead of Data_XXX. Use
            TypedData. (Ken Takata)
2015-12-28 20:57:10 +01:00
ad4d8a192a patch 7.4.984
Problem:    searchpos() always starts searching in the first column, which is
            not what some people expect. (Brett Stahlman)
Solution:   Add the 'z' flag: start at the specified column.
2015-12-28 19:20:36 +01:00
a60824308c patch 7.4.983
Problem:    Executing one test after "make testclean" doesn't work.
Solution:   Add a dependency on test1.out.
2015-12-28 16:26:45 +01:00
7b6156f4cd patch 7.4.982
Problem:    Keeping the list of tests updated is a hassle.
Solution:   Move the list to a separate file, so that it only needs to be
            udpated in one place.
2015-12-28 16:01:26 +01:00
4686b323e4 patch 7.4.981
Problem:    An error in a test script goes unnoticed.
Solution:   Source the test script inside try/catch. (Hirohito Higashi)
2015-12-28 14:44:10 +01:00
57d7971b5f patch 7.4.980
Problem:    Tests for :cdo, :ldo, etc. are outdated.
Solution:   Add new style tests for these commands. (Yegappan Lakshmanan)
2015-12-28 14:04:47 +01:00
4a8c2cfc56 patch 7.4.979
Problem:    When changing the crypt key the blocks read from disk are not
            decrypted.
Solution:   Also call ml_decrypt_data() when mf_old_key is set. (Ken Takata)
2015-12-19 15:28:18 +01:00
c42b9c670e patch 7.4.978
Problem:    test_cdo fails when using another language than English.
Solution:   Set the language to C. (Dominique Pelle)
2015-12-19 15:15:54 +01:00
9bc01ebb95 patch 7.4.977
Problem:    'linebreak' does not work properly when using "space" in
            'listchars'.
Solution:   (Hirohito Higashi, Christian Brabandt)
2015-12-17 21:14:58 +01:00
8def26a0f5 patch 7.4.976
Problem:    When compiling Vim for MSYS2 (linked with msys-2.0.dll), the Win32
            clipboard is not enabled.
Solution:   Recognize MSYS like CYGWIN. (Ken Takata)
2015-12-17 15:34:53 +01:00
75e3ad0199 patch 7.4.975
Problem:    Using ":sort" on a very big file sometimes causes text to be
            corrupted. (John Beckett)
Solution:   Copy the line into a buffer before calling ml_append().
2015-12-17 15:07:32 +01:00
f29a82dcd0 patch 7.4.974
Problem:    When using :diffsplit the cursor jumps to the first line.
Solution:   Put the cursor on the line related to where the cursor was before
            the split.
2015-12-17 15:03:55 +01:00
6f62fed349 patch 7.4.973
Problem:    When pasting on the command line line breaks result in literal
            <CR> characters. This makes pasting a long file name difficult.
Solution:   Skip the characters.
2015-12-17 14:04:24 +01:00
a988496706 patch 7.4.972
Problem:    Memory leak when there is an error in setting an option.
Solution:   Free the saved value (Christian Brabandt)
2015-12-13 15:08:56 +01:00
099fdde0f0 patch 7.4.971
Problem:    The asin() function can't be used.
Solution:   Sort the function table properly. (Watiko)
2015-12-13 14:45:21 +01:00
9ec021a2b0 patch 7.4.970
Problem:    Rare crash in getvcol(). (Timo Mihaljov)
Solution:   Check for the buffer being NULL in init_preedit_start_col.
            (Hirohito Higashi, Christian Brabandt)
2015-12-12 16:23:29 +01:00
35be4534c0 patch 7.4.969
Problem:    Compiler warnings on Windowx x64 build.
Solution:   Add type casts. (Mike Williams)
2015-12-11 22:38:36 +01:00
b65c749ac5 patch 7.4.968
Problem:    test86 and test87 are flaky in Appveyor.
Solution:   Reduce the count from 8 to 7. (suggested by ZyX)
2015-12-11 20:53:58 +01:00
6b90351786 patch 7.4.967
Problem:    Cross compilation on MS-windows doesn't work well.
Solution:   Tidy up cross compilation across architectures with Visual Studio.
            (Mike Williams)
2015-12-11 19:38:44 +01:00
49222bee65 patch 7.4.966
Problem:    Configure doesn't work with a space in a path.
Solution:   Put paths in quotes. (James McCoy, close #525)
2015-12-11 18:11:30 +01:00
941aea2b97 patch 7.4.965
Problem:    On FreeBSD /dev/fd/ files are special.
Solution:   Use is_dev_fd_file() also for FreeBSD. (Derek Schrock, closes #521)
2015-12-11 17:14:27 +01:00
91376b6387 patch 7.4.964
Problem:    Test 87 doesn't work in a shadow directory.
Solution:   Handle the extra subdirectory. (James McCoy, closes #515)
2015-12-11 16:17:02 +01:00
1c57fe8b94 patch 7.4.963
Problem:    test_listlbr_utf8 sometimes fails.
Solution:   Don't use a literal multibyte character but <C-V>uXXXX. Do not
            dump the screen highlighting. (Christian Brabandt, closes #518)
2015-12-06 14:53:18 +01:00
2c5e8e80ea Updated runtime files. 2015-12-05 20:59:21 +01:00
3f12a2421b patch 7.4.962
Problem:    Cannot run the tests with gvim.  Cannot run individual new stests.
Solution:   Add the -f flag. Add new test targets in Makefile.
2015-12-05 20:56:57 +01:00
9dc2ce398b patch 7.4.961
Problem:    Test107 fails in some circunstances.
Solution:   When using "zt", "zb" and "z=" recompute the fraction.
2015-12-05 19:47:04 +01:00
90f5d0a5c3 patch 7.4.960
Problem:    Detecting every version of nmake is clumsy.
Solution:   Use a tiny C program to get the version of _MSC_VER. (Ken Takata)
2015-12-03 22:37:21 +01:00
0379d01c52 patch 7.4.959
Problem:    When setting 'term' the clipboard ownership is lost.
Solution:   Do not call clip_init(). (James McCoy)
2015-12-03 21:17:24 +01:00
e1a61991d9 patch 7.4.958
Problem:    Vim checks if the directory "$TMPDIR" exists.
Solution:   Do not check if the name starts with "$".
2015-12-03 21:02:27 +01:00
bc96c29ffc patch 7.4.957
Problem:    Test_tagcase fails when using another language than English.
Solution:   Set the messages language to C. (Kenichi Ito)
2015-12-03 20:46:20 +01:00
f882d9f89d patch 7.4.956
Problem:    A few more file name extensions not recognized.
Solution:   Add .asciidoc, .bzl, .gradle, etc.
2015-12-03 20:18:24 +01:00
3b8fcd945c patch 7.4.955
Problem:    Vim doesn't recognize .pl6 and .pod6 files.
Solution:   Recognize them as perl6 and pod6. (Mike Eve, closes #511)
2015-12-03 20:14:12 +01:00
f609dcf8c1 patch 7.4.954
Problem:    When using Lua there may be a crash. (issue #468)
Solution:   Avoid using an unitialized tv. (Yukihiro Nakadaira)
2015-12-03 17:43:17 +01:00
de0ad40cb3 patch 7.4.953
Problem:    When a test script navigates to another buffer the .res file is
            created with the wrong name.
Solution:   Use the "testname" for the .res file. (Damien)
2015-12-03 17:21:28 +01:00
6cd1345307 patch 7.4.952
Problem:    'lispwords' is tested in the old way.
Solution:   Make a new style test for 'lispwords'.
2015-12-03 16:54:53 +01:00
b00da1d6d1 patch 7.4.951
Problem:    Sorting number strings does not work as expected. (Luc Hermitte)
Solution:   Add the 'N" argument to sort()
2015-12-03 16:33:12 +01:00
4649ded287 patch 7.4.950
Problem:    v:errors is not initialized.
Solution:   Initialze it to an empty list. (Thinca)
2015-12-03 14:55:55 +01:00
32a214e78d patch 7.4.949
Problem:    When using 'colorcolumn' and there is a sign with a fullwidth
            character the highlighting is wrong. (Andrew Stewart)
Solution:   Only increment vcol when in the right state. (Christian Brabandt)
2015-12-03 14:29:02 +01:00
20ad69ccfb patch 7.4.948
Problem:    Can't build when the insert_expand feature is disabled.
Solution:   Add #ifdefs. (Dan Pasanen, closes #499)
2015-12-03 13:52:52 +01:00
5311c02f25 patch 7.4.947
Problem:    Test_listchars fails with MingW. (Michael Soyka)
Solution:   Add the test to the ones that need the fileformat fixed.
            (Christian Brabandt)
2015-12-01 20:19:26 +01:00
bbfbaf9741 patch 7.4.946
Problem:    Missing changes in source file.
Solution:   Include changes to the eval.c file.
2015-12-01 15:32:56 +01:00
683fa185a4 patch 7.4.945
Problem:    New style testing is incomplete.
Solution:   Add the runtest script to the list of distributed files.
            Add the new functions to the function overview.
            Rename the functions to match Vim function style.
            Move undolevels testing into a new style test script.
2015-11-30 21:38:24 +01:00
43345546ae patch 7.4.944
Problem:    Writing tests for Vim script is hard.
Solution:   Add assertEqual(), assertFalse() and assertTrue() functions.  Add
            the v:errors variable.  Add the runtest script. Add a first new
            style test script.
2015-11-29 17:35:35 +01:00
48a969b488 patch 7.4.943
Problem:    Tests are not run.
Solution:   Add test_writefile to makefiles. (Ken Takata)
2015-11-28 14:29:26 +01:00
60422e68a3 patch 7.4.942
Problem:    test_tagcase breaks for small builds.
Solution:   Bail out of the test early. (Hirohito Higashi)
2015-11-25 23:53:01 +01:00
d042dc825c Update runtime files. 2015-11-24 19:18:36 +01:00
0f6562e903 patch 7.4.941
Problem:    There is no way to ignore case only for tag searches.
Solution:   Add the 'tagcase' option. (Gary Johnson)
2015-11-24 18:48:14 +01:00
2a1b474fd8 patch 7.4.940
Problem:    vt52 terminal codes are not correct.
Solution:   Move entries outside of #if. (Random)  Adjustments based on
            documented codes.
2015-11-24 18:15:51 +01:00
9a7d58e42e patch 7.4.939
Problem:    Memory leak when encountering a syntax error.
Solution:   Free the memory. (Dominique Pelle)
2015-11-24 17:23:56 +01:00
88e484bf1b patch 7.4.938
Problem:    X11 and GTK have moure mouse buttons than Vim supports.
Solution:   Recognize more mouse buttons. (Benoit Pierre, closes #498)
2015-11-24 15:38:44 +01:00
5ad075c073 patch 7.4.937
Problem:    Segfault reading unitialized memory.
Solution:   Do not read match \z0, it does not exist. (Marius Gedminas, closes
            #497)
2015-11-24 15:18:32 +01:00
294a7e55b0 patch 7.4.936
Problem:    Crash when dragging with the mouse.
Solution:   Add safety check for NULL pointer. Check mouse position for valid
            value. (Hirohito Higashi)
2015-11-22 19:39:38 +01:00
6040256d8b patch 7.4.935
Problem:    test_utf8 fails on MS-Windows when executed with gvim.
Solution:   Use the insert flag on feedkeys() to put the string before the
            ":" that was already read when checking for available chars.
2015-11-22 15:08:59 +01:00
7487792ab1 patch 7.4.934
Problem:    Appveyor also builds on a tag push.
Solution:   Add a skip_tags line. (Kenichi Ito, closes #489)
2015-11-21 17:15:33 +01:00
e4eda3bc71 patch 7.4.933
Problem:    Crash when using longest completion match.
Solution:   Fix array index.
2015-11-21 16:28:50 +01:00
8f08dab18d patch 7.4.932
Problem:    test_utf8 has confusing dummy command.
Solution:   Use a real command instead of a colon.
2015-11-21 14:31:33 +01:00
cfcd1ddd10 patch 7.4.931
Problem:    Test 94 fails on some systems.
Solution:   Set 'encoding' to utf-8.
2015-11-21 14:24:50 +01:00
e392eb41f8 Update runtime files. 2015-11-19 20:38:09 +01:00
97b0b0ec76 patch 7.4.930
Problem:    MS-Windows: Most users appear not to like the window border.
Solution:   Remove WS_EX_CLIENTEDGE. (Ian Halliday)
2015-11-19 20:23:37 +01:00
d29c6fea94 patch 7.4.929
Problem:    "gv" after paste selects one character less if 'selection' is
            "exclusive".
Solution:   Increment the end position. (Christian Brabandt)
2015-11-19 20:11:54 +01:00
5d8afebb5b patch 7.4.928
Problem:    A clientserver message interrupts handling keys of a mapping.
Solution:   Have mch_inchar() send control back to WaitForChar when it is
            interrupted by server message. (James Kolb)
2015-11-19 19:55:16 +01:00
9b1067e038 patch 7.4.927
Problem:    Ruby crashes when there is a runtime error.
Solution:   Use ruby_options() instead of ruby_process_options(). (Damien)
2015-11-19 19:33:15 +01:00
4f8fa1633c patch 7.4.926
Problem:    Completing the longest match doesn't work properly with multi-byte
            characters.
Solution:   When using multi-byte characters use another way to find the
            longest match. (Hirohito Higashi)
2015-11-19 19:00:05 +01:00
a0ed84a268 patch 7.4.925
Problem:    User may yank or put using the register being recorded in.
Solution:   Add the recording register in the message. (Christian Brabandt,
            closes #470)
2015-11-19 17:56:13 +01:00
32d03b34ac patch 7.4.924
Problem:    DEVELOPER_DIR gets reset by configure.
Solution:   Do not reset DEVELOPER_DIR when there is no --with-developer-dir
            argument. (Kazuki Sakamoto, closes #482)
2015-11-19 13:46:48 +01:00
6a2697ffd7 patch 7.4.923
Problem:    Prototypes not always generated.
Solution:   Change #if to OR with PROTO.
2015-11-19 13:14:30 +01:00
b4ff518d95 Updated runtime files. 2015-11-10 21:15:48 +01:00
1c2836e268 patch 7.4.922
Problem:    Leaking memory with ":helpt {dir-not-exists}".
Solution:   Free dirname. (Dominique Pelle)
2015-11-10 21:05:48 +01:00
cd1c55f706 patch 7.4.921
Problem:    Missing proto file update. (Randall W. Morris)
Solution:   Add the missing line for mch_ishidden.
2015-11-10 20:52:04 +01:00
a93f975e8b patch 7.4.920
Problem:    The rubydll option is not in the options window.
Solution:   Add the rubydll option.
2015-11-10 20:45:09 +01:00
d4ece23e2e patch 7.4.919
Problem:    The dll options are not in the options window.
Solution:   Add the dll options.  And other fixes.
2015-11-10 19:48:14 +01:00
0796c0625f patch 7.4.918
Problem:    A digit in an option name has problems.
Solution:   Rename 'python3dll' to 'pythonthreedll'.
2015-11-10 19:41:37 +01:00
1be2ed6c11 patch 7.4.917
Problem:    Compiler warning for comparing signed and unsigned.
Solution:   Add a type cast.
2015-11-10 19:11:58 +01:00
8648357841 patch 7.4.916
Problem:    When running out of memory while copying a dict memory may be
            freed twice. (ZyX)
Solution:   Do not call the garbage collector when running out of memory.
2015-11-10 19:04:23 +01:00
174674743d patch 7.4.915
Problem:    When removing from 'path' and then adding, a comma may go missing.
            (Malcolm Rowe)
Solution:   Fix the check for P_ONECOMMA. (closes #471)
2015-11-10 17:50:24 +01:00
98b30a473a patch 7.4.914
Problem:    New compiler warning: logical-not-parentheses
Solution:   Silence the warning.
2015-11-10 15:18:02 +01:00
72f4cc4a98 patch 7.4.913
Problem:    No utf-8 support for the hangul input feature.
Solution:   Add utf-8 support. (Namsh)
2015-11-10 14:35:18 +01:00
e01f4f86ce patch 7.4.912
Problem:    Wrong indenting for C++ constructor.
Solution:   Recognize ::.  (Anhong)
2015-11-10 14:06:53 +01:00
450ca4335e patch 7.4.911
Problem:    t_Ce and t_Cs are documented but not supported. (Hirohito Higashi)
Solution:   Define the options.
2015-11-10 13:30:39 +01:00
e7427f4b7e patch 7.4.910
Problem:    Compiler complains about type punned pointer.
Solution:   Use another way to increment the ref count.
2015-11-10 13:24:20 +01:00
de59ba33aa patch 7.4.909
Problem:    "make install" fails.
Solution:   Only try installing desktop files if the destination directory
            exists.
2015-11-03 22:03:16 +01:00
a16f472edf patch 7.4.908
Problem:    Build error with MingW compiler. (Cesar Romani)
Solution:   Change #if into #ifdef.
2015-11-02 17:35:43 +01:00
d94464ee29 patch 7.4.907
Problem:    Libraries for dynamically loading interfaces can only be defined
            at compile time.
Solution:   Add options to specify the dll names. (Kazuki Sakamoto,
            closes #452)
2015-11-02 15:28:18 +01:00
8a52ba7918 patch 7.4.906
Problem:    On MS-Windows the viminfo file is (always) given the hidden
            attribute. (raulnac)
Solution:   Check the hidden attribute in a different way. (Ken Takata)
2015-11-02 14:45:56 +01:00
1d8d9c0bec Add files in patch 7.4.904 missing from commit. 2015-11-02 13:29:53 +01:00
d424747d58 patch 7.4.905
Problem:    Python interface can produce error "vim.message' object has no
            attribute 'isatty'".
Solution:   Add dummy isatty(), readable(), etc. (closes #464)
2015-11-02 13:28:59 +01:00
6407b3e80d patch 7.4.904
Problem:    Vim does not provide .desktop files.
Solution:   Include and install .desktop files. (James McCoy, closes #455)
2015-11-02 12:50:55 +01:00
d7464be974 Updated runtime files. 2015-11-01 16:49:04 +01:00
7314efd87d patch 7.4.903
Problem:    MS-Windows: When 'encoding' differs from the current code page,
            expandinig wildcards may cause illegal memory access.
Solution:   Allocate a longer buffer. (Ken Takata)
2015-10-31 15:32:52 +01:00
4c0aac5759 patch 7.4.902
Problem:    Problems with using the MS-Windows console.
Solution:   Revert patches 7.4.851, 7.4.876 and 7.4.886 until we find a better
            solution. (suggested by Ken Takata)
2015-10-30 16:46:55 +01:00
a0f849ee40 Update runtime files. 2015-10-30 14:37:44 +01:00
e7d1376b63 patch 7.4.901
Problem:    When a BufLeave autocommand changes folding in a way it syncs
            undo, undo can be corrupted.
Solution:   Prevent undo sync. (Jacob Niehus)
2015-10-30 14:23:33 +01:00
f1a4c98ea6 patch 7.4.900
Problem:    README file can still be improved
Solution:   Add a couple of links. (Christian Brabandt)
2015-10-25 22:42:00 +01:00
c92399f4ee patch 7.4.899
Problem:    README file is not optimal.
Solution:   Move buttons, update some text. (closes #460)
2015-10-25 13:55:00 +01:00
60cce2fb73 Update runtime files. 2015-10-13 23:21:27 +02:00
04dfd51229 patch 7.4.898
Problem:    The 'fixendofline' option is set on with ":edit".
Solution:   Don't set the option when clearing a buffer. (Yasuhiro Matsumoto)
2015-10-13 20:55:50 +02:00
4e86150ec5 patch 7.4.897
Problem:    Freeze and crash when there is a sleep in a remote command.
            (Karl Yngve Lervåg)
Solution:   Remove a message from the queue before dealing with it. (James
            Kolb)
2015-10-13 20:21:49 +02:00
b4f6a46b01 patch 7.4.896
Problem:    Editing a URL, which netrw should handle, doesn't work.
Solution:   Avoid changing slashes to backslashes. (Yasuhiro Matsumoto)
2015-10-13 19:43:17 +02:00
23d1b62746 patch 7.4.895
Problem:    Custom command line completion does not work for a command
            containing digits.
Solution:   Skip over the digits. (suggested by Yasuhiro Matsumoto)
2015-10-13 19:18:04 +02:00
f59c73da1e patch 7.4.894
Problem:    vimrun.exe is picky about the number of spaces before -s.
Solution:   Skip all spaces. (Cam Sinclair)
2015-10-13 17:52:59 +02:00
d1b15dec4d patch 7.4.893
Problem:    C indenting is wrong below a "case (foo):" because it is
            recognized as a C++ base class construct.  Issue #38.
Solution:   Check for the case keyword.
2015-10-13 16:13:39 +02:00
9d6ca1cc5e patch 7.4.892
Problem:    On MS-Windows the iconv DLL may have a different name.
Solution:   Also try libiconv2.dll and libiconv-2.dll. (Yasuhiro Matsumoto)
2015-10-13 13:49:09 +02:00
089af18d1f patch 7.4.891
Problem:    Indentation of array initializer is wrong.
Solution:   Avoid that calling find_start_rawstring() changes the position
            returned by find_start_comment(), add a test. (Hirohito Higashi)
2015-10-07 11:41:49 +02:00
094454fa70 patch 7.4.890
Problem:    Build failure when using dynamic python but not python3.
Solution:   Adjust the #if to also include DYNAMIC_PYTHON3 and UNIX.
2015-10-07 10:39:55 +02:00
74b738d414 patch 7.4.889
Problem:    Triggering OptionSet from setwinvar() isn't tested.
Solution:   Add a test. (Christian Brabandt)
2015-09-29 18:08:33 +02:00
ba117c23df patch 7.4.888
Problem:    The OptionSet autocommands are not triggered from setwinvar().
Solution:   Do not use switch_win() when not needed. (Hirohito Higashi)
2015-09-29 16:53:22 +02:00
c2b717ebd6 patch 7.4.887
Problem:    Using uninitialized memory for regexp with back reference.
            (Dominique Pelle)
Solution:   Initialize end_lnum.
2015-09-29 15:06:14 +02:00
1d478a6242 patch 7.4.886
Problem:    Windows7: Switching screen buffer causes flicker when using
            system().
Solution:   Instead of actually switching screen buffer, duplicate the handle.
            (Yasuhiro Matsumoto)
2015-09-29 14:01:12 +02:00
c79a5452ac patch 7.4.885
Problem:    When doing an upwards search without wildcards the search fails if
            the initial directory doesn't exist.
Solution:   Fix the non-wildcard case. (Stefan Kempf)
2015-09-29 12:08:42 +02:00
ca63501fbc Update various runtime files. 2015-09-25 20:34:21 +02:00
c1d20998d7 patch 7.4.884
Problem:    Travis also builds on a tag push.
Solution:   Filter out tag pushes. (Kenichi Ito)
2015-09-25 20:30:58 +02:00
10ad1d90da patch 7.4.883
Problem:    Block-mode replace works characterwise instead of blockwise after
            column 147. (Issue #422)
Solution:   Set Visual mode. (Christian Brabandt)
2015-09-25 19:35:02 +02:00
5f1fea28f5 patch 7.4.882
Problem:    When leaving the command line window with CTRL-C while a
            completion menu is displayed the menu isn't removed.
Solution:   Force a screen update. (Hirohito Higashi)
2015-09-25 19:12:22 +02:00
0a777ab989 patch 7.4.881
Problem:    Test 49 fails.
Solution:   Add line number to check of call stack.
2015-09-25 17:56:50 +02:00
02d803fc0c patch 7.4.880
Problem:    No build and coverage status.
Solution:   Add links to the README file. (Christian Brabandt)
2015-09-25 17:50:22 +02:00
1d6328ca00 patch 7.4.879
Problem:    Can't see line numbers in nested function calls.
Solution:   Add line number to the file name. (Alberto Fanjul)
2015-09-25 17:37:16 +02:00
69b67f7e77 patch 7.4.878
Problem:    Coverity error for clearing only one byte of struct.
Solution:   Clear the whole struct. (Dominique Pelle)
2015-09-25 16:59:47 +02:00
4d0c7bc74a patch 7.4.877
Problem:    ":find" sometimes fails. (Excanoe)
Solution:   Compare current characters instead of previous ones.
2015-09-25 16:38:01 +02:00
b0262f239e patch 7.4.876
Problem:    Windows7: when using vim.exe with msys or msys2, conhost.exe
            (console window provider on Windows7) will freeze or crash.
Solution:   Make original screen buffer active, before executing external
            program.  And when the program is finished, revert to vim's one.
            (Taro Muraoka)
2015-09-25 15:28:38 +02:00
3fe076f0fe patch 7.4.875
Problem:    Not obvious how to contribute.
Solution:   Add a remark about CONTRIBUTING.md to README.md
2015-09-25 15:00:56 +02:00
8919554fe1 patch 7.4.874
Problem:    MS-Windows: When Vim runs inside another application, the size
            isn't right.
Solution:   When in child mode compute the size differently. (Agorgianitis
            Loukas)
2015-09-25 15:00:31 +02:00
b8603882b1 patch 7.4.873
Problem:    Compiler warning for unused variable. (Tony Mechelynck)
Solution:   Remove the variable.  Also fix int vs long_u mixup.
2015-09-17 23:20:42 +02:00
0600f3511c patch 7.4.872
Problem:    Not using CI services available.
Solution:   Add configuration files for travis and appveyor. (PR #401)
2015-09-15 19:18:18 +02:00
7b256fe744 patch 7.4.871
Problem:    Vim leaks memory, when 'wildignore' filters out all matches.
Solution:   Free the files array when it becomes empty.
2015-09-15 19:05:59 +02:00
2455c4ede8 patch 7.4.870
Problem:    May get into an invalid state when using getchar() in an
            expression mapping.
Solution:   Anticipate mod_mask to change. (idea by Yukihiro Nakadaira)
2015-09-15 18:29:39 +02:00
3b59755862 patch 7.4.869
Problem:    MS-Windows: scrolling may cause text to disappear when using an
            Intel GPU.
Solution:   Call GetPixel(). (Yohei Endo)
2015-09-15 17:58:29 +02:00
54f018cd59 patch 7.4.868
Problem:    'smarttab' is also effective when 'paste' is enabled. (Alexander
            Monakov)
Solution:   Disable 'smarttab' when 'paste' is set. (Christian Brabandt)
            Do the same for 'expandtab'.
2015-09-15 17:30:40 +02:00
9534680731 patch 7.4.867
Problem:    Can't build on MS-Windows. (Taro Muraoka)
Solution:   Adjust #ifdef.
2015-09-15 15:57:29 +02:00
93c88e0f6a patch 7.4.866
Problem:    Crash when changing the 'tags' option from a remote command.
            (Benjamin Fritz)
Solution:   Instead of executing messages immediately, use a queue, like for
            netbeans. (James Kolb)
2015-09-15 14:12:05 +02:00
ed84b76021 patch 7.4.865
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize.
2015-09-09 22:35:29 +02:00
e906c50207 patch 7.4.864
Problem:    Tiny build fails.
Solution:   Put qf_ items inside #ifdef.
2015-09-09 21:10:39 +02:00
43335ea394 patch 7.4.863
Problem:    plines_nofill() used without the diff feature.
Solution:   Define PLINES_NOFILL().
2015-09-09 20:59:37 +02:00
5325b9bbae patch 7.4.862
Problem:    Still problems with pango_shape_full() not available.
Solution:   Change AC_TRY_COMPILE to AC_TRY_LINK.
2015-09-09 20:27:02 +02:00
12969c04fe Update documentation and syntax files. 2015-09-08 23:36:10 +02:00
3cbe0c01ad patch 7.4.861
Problem:    pango_shape_full() is not always available.
Solution:   Add a configure check.
2015-09-08 20:00:22 +02:00
a122b5e98a patch 7.4.860
Problem:    Filetype detection is outdated.
Solution:   Include all recent and not-so-recent changes.
2015-09-08 19:13:51 +02:00
d8986fd914 patch 7.4.859
Problem:    Vim doesn't recognize all htmldjango files.
Solution:   Recognize a comment. (Daniel Hahler, PR #410)
2015-09-08 19:10:55 +02:00
aa23b37942 patch 7.4.858
Problem:    It's a bit clumsy to execute a command on a list of matches.
Solution:   Add the ":ldo", ":lfdo", ":cdo" and ":cfdo" commands. (Yegappan
            Lakshmanan)
2015-09-08 18:46:31 +02:00
4a4b821085 patch 7.4.857
Problem:    Dragging the current tab with the mouse doesn't work properly.
Solution:   Take the current tabpage index into account. (Hirohito Higashi)
2015-09-08 17:50:41 +02:00
a09a2c5857 patch 7.4.856
Problem:    "zt" still doesn't work well with filler lines. (Gary Johnson)
Solution:   Check for filler lines above the cursor. (Christian Brabandt)
2015-09-08 17:31:59 +02:00
7e2ec008f5 patch 7.4.855
Problem:    GTK: font glitches for combining characters
Solution:   Use pango_shape_full() instead of pango_shape(). (luchr, PR #393)
2015-09-08 16:31:06 +02:00
b58988b832 patch 7.4.854
Problem:    Missing information about runtime files.
Solution:   Add section about runtime files. (Christian Brabandt)
2015-09-01 21:25:44 +02:00
cf619daa8e patch 7.4.853
Problem:    "zt" in diff mode does not always work properly. (Gary Johnson)
Solution:   Don't count filler lines twice. (Christian Brabandt)
2015-09-01 20:53:24 +02:00
ac360bf2ca patch 7.4.852
Problem:    On MS-Windows console Vim uses ANSI APIs for keyboard input and
            console output, it cannot input/output Unicode characters.
Solution:   Use Unicode APIs for console I/O. (Ken Takata, Yasuhiro Matsumoto)
2015-09-01 20:31:20 +02:00
615942452e patch 7.4.851
Problem:    Saving and restoring the console buffer does not work properly.
Solution:   Instead of ReadConsoleOutputA/WriteConsoleOutputA use
            CreateConsoleScreenBuffer and SetConsoleActiveScreenBuffer.
            (Ken Takata)
2015-09-01 20:23:37 +02:00
544780248b patch 7.4.850
Problem:    <Esc> does not show up.
Solution:   Use &gt; and &lt;. (Kazunobu Kuriyama)
2015-09-01 19:50:09 +02:00
8b5f65a527 patch 7.4.849
Problem:    Moving the cursor in Insert mode starts new undo sequence.
Solution:   Add CTRL-G U to keep the undo sequence for the following cursor
            movement command. (Christian Brabandt)
2015-09-01 19:26:12 +02:00
5adfea1ac6 patch 7.4.848
Problem:    CTRL-A on hex number in Visual block mode is incorrect.
Solution:   Account for the "0x". (Hirohito Higashi)
2015-09-01 18:51:39 +02:00
8667d66ca9 patch 7.4.847
Problem:    "vi)d" may leave a character behind.
Solution:   Skip over multi-byte character. (Christian Brabandt)
2015-09-01 18:27:49 +02:00
6017f3799d patch 7.4.846
Problem:    Some GitHub users don't know how to use issues.
Solution:   Add a file that explains the basics of contributing.
2015-09-01 17:50:48 +02:00
5df1ed2de3 patch 7.4.845
Problem:    Compiler warning for possible loss of data.
Solution:   Add a type cast. (Erich Ritz)
2015-09-01 16:25:34 +02:00
37a8de17d4 patch 7.4.844
Problem:    When '#' is in 'isident' the is# comparator doesn't work.
Solution:   Don't use vim_isIDc(). (Yasuhiro Matsumoto)
2015-09-01 16:05:00 +02:00
d43f0951bc patch 7.4.843
Problem:    Still possible to go beyond the end of a string.
Solution:   Check for NUL also in second string. (Dominique Pelle)
2015-08-27 22:30:47 +02:00
cdf0442d00 patch 7.4.842
Problem:    Sending too many messages to close the balloon.
Solution:   Only send a WM_CLOSE message. (Jurgen Kramer)
2015-08-27 22:25:10 +02:00
5ea87a0496 patch 7.4.841
Problem:    Can't compile without the multi-byte feature. (John Marriott)
Solution:   Add more #ifdef's.
2015-08-26 23:24:09 +02:00
8e5f5b47c2 patch 7.4.840
Problem:    Tooltip window stays open.
Solution:   Send a WM_CLOSE message. (Jurgen Kramer)
2015-08-26 23:12:38 +02:00
6ed535dbc0 patch 7.4.839
Problem:    Compiler warning on 64-bit system.
Solution:   Add cast to int. (Mike Williams)
2015-08-26 23:01:21 +02:00
8060687905 patch 7.4.838
Problem:    Can't compile without the crypt feature. (John Marriott)
Solution:   Add #ifdef.
2015-08-25 21:27:35 +02:00
88774fdd23 Updated runtime files and Italian messages. 2015-08-25 19:52:04 +02:00
80ce282107 patch 7.4.837
Problem:    Compiler warning with MSVC compiler when using +sniff.
Solution:   Use Sleep() instead of _sleep(). (Tux)
2015-08-25 19:49:50 +02:00
0a38dd29d6 patch 7.4.836
Problem:    Accessing unitinialized memory.
Solution:   Add missing calls to init_tv(). (Dominique Pelle)
2015-08-25 16:49:01 +02:00
f6470c288c patch 7.4.835
Problem:    Comparing utf-8 sequences does not handle different byte sizes
            correctly.
Solution:   Get the byte size of each character. (Dominique Pelle)
2015-08-25 16:31:40 +02:00
7e47d1ac6a patch 7.4.834
Problem:    gettabvar() doesn't work after Vim start. (Szymon Wrozynski)
Solution:   Handle first window in tab still being NULL. (Christian Brabandt)
2015-08-25 16:19:05 +02:00
e68c25c677 patch 7.4.833
Problem:    More side effects of ":set all&" are missing. (Björn Linse)
Solution:   Call didset_options() and add didset_options2() to collect more
            side effects to take care of.  Still not everything...
2015-08-25 15:39:55 +02:00
be83b73ddb patch 7.4.832
Problem:    $HOME in  is expanded too early.
Solution:   Skip over  when expanding environment names.
2015-08-25 14:21:19 +02:00
3f188935ec patch 7.4.831
Problem:    When expanding  on the command line and encountering an
            error, the command is executed anyway.
Solution:   Bail out when an error is detected.
2015-08-25 13:57:04 +02:00
b341dda575 patch 7.4.830
Problem:    Resetting 'encoding' when doing ":set all&" causes problems.
            (Bjorn Linse) Display is not updated.
Solution:   Do not reset 'encoding'. Do a full redraw.
2015-08-25 12:56:31 +02:00
7fb7d34caf patch 7.4.829
Problem:    Crash when clicking in beval balloon. (Travis Lebsock)
Solution:   Use PostMessage() instead of DestroyWindow(). (Raymond Ko, PR 298)
2015-08-25 12:21:32 +02:00
670acbc70f patch 7.4.828
Problem:    Crash when using "syn keyword x c". (Dominique Pelle)
Solution:   Initialize the keyword tabble. (Raymond Ko, PR 397)
2015-08-25 11:58:36 +02:00
8cba8ba3e0 patch 7.4.827
Problem:    Not all test targets are in the Makefile.
Solution:   Add the missing targets.
2015-08-18 13:48:54 +02:00
3cfd5289ca patch 7.4.826
Problem:    Compiler warnings and errors.
Solution:   Make it build properly without the multi-byte feature.
2015-08-13 23:28:43 +02:00
1560d07045 patch 7.4.825
Problem:    Invalid memory access for ":syn keyword x a[".
Solution:   Do not skip over the NUL. (Dominique Pelle)
2015-08-13 22:53:29 +02:00
8e8b486727 patch 7.4.824
Problem:    Can't compile without the multi-byte feature. (John Marriott)
Solution:   Add #ifdef.
2015-08-12 22:56:58 +02:00
fc39ecf8de Update runtime files. 2015-08-11 20:34:49 +02:00
25c2f6783a patch 7.4.823
Problem:    Cursor moves after CTRL-A on alphabetic character.
Solution:   (Hirohito Higashi, test by Christian Brabandt)
2015-08-11 19:36:42 +02:00
cde8854730 patch 7.4.822
Problem:    More problems reported by coverity.
Solution:   Avoid the warnings. (Christian Brabandt)
2015-08-11 19:14:00 +02:00
bd8539aac3 patch 7.4.821
Problem:    Coverity reports a few problems.
Solution:   Avoid the warnings. (Christian Brabandt)
2015-08-11 18:53:03 +02:00
8fee878fe2 patch 7.4.820
Problem:    Invalid memory access in file_pat_to_reg_pat.
Solution:   Avoid looking before the start of a string. (Dominique Pelle)
2015-08-11 18:45:48 +02:00
901e58c243 patch 7.4.819
Problem:    Beeping when running the tests.
Solution:   Fix 41 beeps. (Roland Eggner)
2015-08-11 18:33:48 +02:00
89c17c02ca patch 7.4.818
Problem:    'linebreak' breaks c% if the last Visual selection was block.
            (Chris Morganiser, Issue 389)
Solution:   Handle Visual block mode differently. (Christian Brabandt)
2015-08-11 17:46:36 +02:00
2288afed42 patch 7.4.817
Problem:    Invalid memory access in file_pat_to_reg_pat().
Solution:   Use vim_isspace() instead of checking for a space only. (Dominique
            Pelle)
2015-08-11 16:20:05 +02:00
dd8a5286e1 patch 7.4.816
Problem:    Invalid memory access when doing ":fun X(".
Solution:   Check for missing ')'. (Dominique Pelle)
2015-08-11 15:54:52 +02:00
73627d0bd4 patch 7.4.815
Problem:    Invalid memory access when doing ":call g:".
Solution:   Check for an empty name. (Dominique Pelle)
2015-08-11 15:46:09 +02:00
382197865c patch 7.4.814
Problem:    Illegal memory access with "sy match a fold".
Solution:   Check for empty string. (Dominique Pelle)
2015-08-11 15:27:13 +02:00
dbd24b5967 patch 7.4.813
Problem:    It is not possible to save and restore character search state.
Solution:   Add getcharsearch() and setcharsearch().  (James McCoy)
2015-08-11 14:26:19 +02:00
fbd302ff38 patch 7.4.812
Problem:    Gcc sanitizer complains about using a NULL pointer to memmove().
Solution:   Only call memmove when there is something to move. (Vittorio
            Zecca)
2015-08-08 18:23:46 +02:00
204b93f958 patch 7.4.811
Problem:    Invalid memory access when using "exe 'sc'".
Solution:   Avoid going over the end of the string. (Dominique Pelle)
2015-08-04 22:02:51 +02:00
9dd33af4ba patch 7.4.810
Problem:    With a sequence of commands using buffers in diff mode E749 is
            given. (itchyny)
Solution:   Skip unloaded buffer. (Hirohito Higashi)
2015-08-04 21:51:25 +02:00
75e6413546 patch 7.4.809
Problem:    Test is duplicated.
Solution:   Roll back 7.4.802.
2015-08-04 21:27:11 +02:00
bb86ebb0ef patch 7.4.808
Problem:    On MS-Windows 8 IME input doen't work correctly.
Solution:   Read console input before calling MsgWaitForMultipleObjects().
            (vim-jp, Nobuhiro Takasaki)
2015-08-04 19:27:05 +02:00
0bbcb5c8ef patch 7.4.807
Problem:    After CTRL-V CTRL-A mode isn't updated. (Hirohito Higashi)
Solution:   Clear the command line or update the displayed command.
2015-08-04 19:18:52 +02:00
cc218ab3ca patch 7.4.806
Problem:    CTRL-A in Visual mode doesn't work properly with "alpha" in
            'nrformat'.
Solution:   Make it work. (Christian Brabandt)
2015-08-04 18:23:22 +02:00
29bc9db36e patch 7.4.805
Problem:    The ruler shows "Bot" even when there are only filler lines
            missing. (Gary Johnson)
Solution:   Use "All" when the first line and one filler line are visible.
2015-08-04 17:43:25 +02:00
43fe32900c patch 7.4.804
Problem:    Xxd doesn't have a license notice.
Solution:   Add license as indicated by Juergen.
2015-08-04 17:29:07 +02:00
f7bb86dc59 patch 7.4.803
Problem:    C indent does not support C11 raw strings. (Mark Lodato)
Solution:   Do not change indent inside the raw string.
2015-07-28 21:17:36 +02:00
52e21cf057 patch 7.4.802
Problem:    Using "A" in Visual mode while 'linebreak' is set is not tested.
Solution:   Add a test for this, verifies the problem is fixed. (Ingo Karkat)
2015-07-28 17:16:33 +02:00
278236000f patch 7.4.801
Problem:    Test for ":diffoff" doesn't catch all potential problems.
Solution:   Add a :diffthis and a :diffoff command. (Olaf Dabrunz)
2015-07-28 14:42:45 +02:00
829aef1eb4 patch 7.4.800
Problem:    Using freed memory when triggering CmdUndefined autocommands.
Solution:   Set pointer to NULL. (Dominique Pelle)
2015-07-28 14:25:48 +02:00
6b9be1b6f2 patch 7.4.799
Problem:    Accessing memory before an allocated block.
Solution:   Check for not going before the start of a pattern. (Dominique
            Pelle)
2015-07-28 13:33:45 +02:00
31b259bf95 patch 7.4.798
Problem:    Repeating a change in Visual mode does not work as expected.
            (Urtica Dioica)
Solution:   Make redo in Visual mode work better. (Christian Brabandt)
2015-07-28 11:21:32 +02:00
5f95f288a2 patch 7.4.797
Problem:    Crash when using more lines for the command line than
            'maxcombine'.
Solution:   Use the correct array index.  Also, do not try redrawing when
            exiting.  And use screen_Columns instead of Columns.
2015-07-25 22:53:00 +02:00
33c3a694fc patch 7.4.796
Problem:    Warning from 64 bit compiler.
Solution:   Add type cast. (Mike Williams)
2015-07-22 22:46:13 +02:00
dd1616e6ce Correct optwin script, update PHP complete. 2015-07-22 22:22:59 +02:00
b388be0abf patch 7.4.795
Problem:    The 'fixeol' option is not copied to a new window.
Solution:   Copy the option value. (Yasuhiro Matsumoto)
2015-07-22 22:19:38 +02:00
d4a95c3bc5 patch 7.4.794
Problem:    Visual Studio 2015 is not recognized.
Solution:   Add the version numbers to the makefile. (Taro Muraoka)
2015-07-21 20:22:12 +02:00
f91328100d Updated and new runtime files. 2015-07-21 19:19:13 +02:00
165bc69d1b patch 7.4.793
Problem:    Can't specify when not to ring the bell.
Solution:   Add the 'belloff' option. (Christian Brabandt)
2015-07-21 17:53:25 +02:00
6561d52ecb patch 7.4.792
Problem:    Can only conceal text by defining syntax items.
Solution:   Use matchadd() to define concealing. (Christian Brabandt)
2015-07-21 15:48:27 +02:00
d51cb706a4 patch 7.4.791
Problem:    The buffer list can be very long.
Solution:   Add an argument to ":ls" to specify the type of buffer to list.
            (Marcin Szamotulski)
2015-07-21 15:03:06 +02:00
d113a80c77 patch 7.4.790
Problem:    Test fails when the autochdir feature is not available.  Test
            output contains the test script.
Solution:   Check for the autochdir feature. (Kazunobu Kuriyama)  Only write
            the relevant test output.
2015-07-21 10:57:44 +02:00
9cac424d05 patch 7.4.789
Problem:    Using freed memory and crash. (Dominique Pellej)
Solution:   Correct use of pointers. (Hirohito Higashi)
2015-07-19 14:42:23 +02:00
5cbb8dbc32 patch 7.4.788
Problem:    Can't build without the crypt feature. (John Marriott)
Solution:   Add #ifdef's.
2015-07-17 23:08:29 +02:00
fb9bc4829a patch 7.4.787
Problem:    snprintf() isn't available everywhere.
Solution:   Use vim_snprintf(). (Ken Takata)
2015-07-17 22:04:48 +02:00
537443018d patch 7.4.786
Problem:    It is not possible for a plugin to adjust to a changed setting.
Solution:   Add the OptionSet autocommand event. (Christian Brabandt)
2015-07-17 17:38:22 +02:00
34d72d4b6c patch 7.4.785
Problem:    On some systems automatically adding the missing EOL causes
            problems. Setting 'binary' has too many side effects.
Solution:   Add the 'fixeol' option, default on. (Pavel Samarkin)
2015-07-17 14:18:08 +02:00
2cf6938706 patch 7.4.784
Problem:    Using both "noinsert" and "noselect" in 'completeopt' does not
            work properly.
Solution:   Change the ins_complete() calls. (Ozaki Kiichi)
2015-07-17 13:42:23 +02:00
2536d4f396 patch 7.4.783
Problem:    copy_chars() and copy_spaces() are inefficient.
Solution:   Use memset() instead. (Dominique Pelle)
2015-07-17 13:22:51 +02:00
5d1bc78a2b patch 7.4.782
Problem:    Still a few problems with CTRL-A and CTRL-X in Visual mode.
Solution:   Fix the reported problems. (Christian Brabandt)
2015-07-17 13:03:48 +02:00
fe6f186877 patch 7.4.781
Problem:    line2byte() returns one less when 'bin' and 'noeol' are set.
Solution:   Only adjust the size for the last line. (Rob Wu)
2015-07-12 17:52:57 +02:00
1db43b1145 patch 7.4.780
Problem:    Compiler complains about uninitialized variable and clobbered
            variables.
Solution:   Add Initialization.  Make variables static.
2015-07-12 16:21:23 +02:00
3ec3261980 patch 7.4.779
Problem:    Using CTRL-A in a line without a number moves the cursor. May
            cause a crash when at the start of the line. (Urtica Dioica)
Solution:   Do not move the cursor if no number was changed.
2015-07-12 15:02:38 +02:00
ae2fe73abc patch 7.4.778
Problem:    Coverity warns for uninitialized variable.
Solution:   Change condition of assignment.
2015-07-10 22:38:00 +02:00
86ae720d75 Updated runtime files. 2015-07-10 19:31:35 +02:00
694cac7a35 patch 7.4.777
Problem:    The README file doesn't look nice on github.
Solution:   Add a markdown version of the README file.
2015-07-10 19:22:03 +02:00
2c61ec65e8 patch 7.4.776
Problem:    Equivalence class for 'd' does not work correctly.
Solution:   Fix 0x1e0f and 0x1d0b. (Dominique Pelle)
2015-07-10 19:16:34 +02:00
efcabd6892 Add files missing from patch 7.4.771. 2015-07-10 18:23:59 +02:00
b6be1e2390 patch 7.4.775
Problem:    It is not possible to avoid using the first item of completion.
Solution:   Add the "noinsert" and "noselect" values to 'completeopt'. (Shougo
            Matsu)
2015-07-10 18:18:40 +02:00
42a4512f62 patch 7.4.774
Problem:    When using the CompleteDone autocommand event it's difficult to
            get to the completed items.
Solution:   Add the v:completed_items variable. (Shougo Matsu)
2015-07-10 17:56:23 +02:00
ae94b7718a patch 7.4.773
Problem:    'langmap' is used in command-line mode when checking for mappings.
            Issue 376.
Solution:   Do not use 'langmap' in command-line mode. (Larry Velazquez)
2015-07-10 17:19:30 +02:00
5c5c9801b1 patch 7.4.772
Problem:    Racket 6.2 is not supported on MS-Windows.
Solution:   Check for the "racket" subdirectory. (Weiyong Mao)
2015-07-10 16:12:48 +02:00
5f1e68b7bc patch 7.4.771
Problem:    Search does not handle multi-byte character at the start position
            correctly.
Solution:   Take byte size of character into account. (Yukihiro Nakadaira)
2015-07-10 14:43:35 +02:00
46fd4df719 patch 7.4.770
Problem:    Background color response with transparency is not ignored.
Solution:   Change the way escape sequences are recognized. (partly by
            Hirohito Higashi)
2015-07-10 14:05:10 +02:00
2693ca21ce patch 7.4.769
Problem:    Behavior of :diffoff is not tested.
Solution:   Add a bit of testing. (Olaf Dabrunz)
2015-07-04 15:05:14 +02:00
4392996461 patch 7.4.768
Problem:    :diffoff only works properly once.
Solution:   Also make :diffoff work when used a second time. (Olaf Dabrunz)
2015-07-03 15:06:56 +02:00
fafeee6b9e patch 7.4.767
Problem:    --remote-tab-silent can fail on MS-Windows.
Solution:   Use single quotes to avoid problems with backslashes. (Idea by
            Weiyong Mao)
2015-07-03 13:33:01 +02:00
92abe859ed patch 7.4.766
Problem:    Background color check does not work on Tera Term.
Solution:   Also recognize ST as a termination character. (Hirohito Higashi)
2015-07-03 13:05:50 +02:00
9bb1930af9 patch 7.4.765
Problem:    CTRL-A and CTRL-X in Visual mode do not always work well.
Solution:   Improvements for increment and decrement. (Christian Brabandt)
2015-07-03 12:44:07 +02:00
6a57cce048 patch 7.4.764
Problem:    test_increment fails on MS-Windows. (Ken Takata)
Solution:   Clear Visual mappings. (Taro Muraoka)
2015-06-28 19:24:39 +02:00
1f860d8590 patch 7.4.763
Problem:    Building with Lua 5.1 doesn't work.
Solution:   Define lua_replace and lua_remove. (KF Leong)
2015-06-27 18:36:16 +02:00
4921c24b31 patch 7.4.762
Problem:    Comment for may_req_bg_color() is wrong. (Christ van Willegen)
Solution:   Rewrite the comment.
2015-06-27 18:34:24 +02:00
979243b990 Update help files. 2015-06-26 19:35:49 +02:00
e5401220b0 patch 7.4.761
Problem:    The request-background termcode implementation is incomplete.
Solution:   Add the missing pieces.
2015-06-25 19:16:56 +02:00
5081d20247 patch 7.4.760
Problem:    Spelling mistakes are not displayed after ":syn spell".
Solution:   Force a redraw after ":syn spell" command. (Christian Brabandt)
2015-06-25 18:36:26 +02:00
9514b1f9a1 patch 7.4.759
Problem:    Building with Lua 5.3 doesn't work, symbols have changed.
Solution:   Use the new names for the new version. (Felix Schnizlein)
2015-06-25 18:27:32 +02:00
fa67fbe6b8 patch 7.4.758
Problem:    When 'conceallevel' is 1 and quitting the command-line window with
            CTRL-C the first character ':' is erased.
Solution:   Reset 'conceallevel' in the command-line window. (Hirohito
            Higashi)
2015-06-25 18:20:36 +02:00
b5c3265521 patch 7.4.757
Problem:    Cannot detect the background color of a terminal.
Solution:   Add T_RBG to request the background color if possible. (Lubomir
            Rintel)
2015-06-25 17:03:36 +02:00
367fbf17da patch 7.4.756
Problem:    Can't use strawberry Perl 5.22 x64 on MS-Windows.
Solution:   Add new defines and #if. (Ken Takata)
2015-06-25 16:13:46 +02:00
641e48c224 patch 7.4.755
Problem:    It is not easy to count the number of characters.
Solution:   Add the skipcc argument to strchars(). (Hirohito Higashi, Ken
            Takata)
2015-06-25 16:09:26 +02:00
3a304b2382 patch 7.4.754
Problem:    Using CTRL-A in Visual mode does not work well. (Gary Johnson)
Solution:   Make it increment all numbers in the Visual area. (Christian
            Brabandt)
2015-06-25 13:57:36 +02:00
74db34cc91 patch 7.4.753
Problem:    Appending in Visual mode with 'linebreak' set does not work
            properly.  Also when 'selection' is "exclusive". (Ingo Karkat)
Solution:   Recalculate virtual columns. (Christian Brabandt)
2015-06-25 13:30:46 +02:00
66312acf14 patch 7.4.752
Problem:    Unicode 8.0 not supported.
Solution:   Update tables for Unicode 8.0.  Avoid E36 when running the script.
            (James McCoy)
2015-06-21 14:22:00 +02:00
70b5a5f5b9 patch 7.4.751
Problem:    It is not obvious how to enable the address sanitizer.
Solution:   Add commented-out flags in the Makefile. (Dominique Pelle)
            Also add missing test targets.
2015-06-21 13:44:13 +02:00
280a868a24 patch 7.4.750
Problem:    Cannot build with clang 3.5 on Cygwin with perl enabled.
Solution:   Strip "-fdebug-prefix-map" in configure. (Ken Takata)
2015-06-21 13:41:08 +02:00
0e7c4b99c6 patch 7.4.749
Problem:    For some options two consecutive commas are OK. (Nikolay Pavlov)
Solution:   Add the P_ONECOMMA flag.
2015-06-20 15:30:03 +02:00
6a7e2a668b patch 7.4.748
Problem:    Buffer overflow.
Solution:   Make the buffer larger. (Kazunobu Kuriyama)
2015-06-19 21:06:11 +02:00
e2db6c975b Add the logiPat plugin to the distribution. 2015-06-19 18:48:41 +02:00
b8c890035e patch 7.4.747
Problem:    ":cnext" may jump to the wrong column when setting
            'virtualedit=all' (cs86661)
Solution:   Reset the coladd field. (Hirohito Higashi)
2015-06-19 18:35:34 +02:00
01cf376da1 patch 7.4.746
Problem:    ":[count]tag" is not always working. (cs86661)
Solution:   Set cur_match a bit later. (Hirohito Higashi)
2015-06-19 16:45:43 +02:00
0fce425772 patch 7.4.745
Problem:    The entries added by matchaddpos() are returned by getmatches()
            but can't be set with setmatches(). (Lcd)
Solution:   Fix setmatches(). (Christian Brabandt)
2015-06-19 16:32:57 +02:00
cf0213ef7e patch 7.4.744
Problem:    No tests for Ruby and Perl.
Solution:   Add minimal tests. (Ken Takata)
2015-06-19 15:45:29 +02:00
c004bc2726 patch 7.4.743
Problem:    "p" in Visual mode causes an unexpected line split.
Solution:   Advance the cursor first. (Yukihiro Nakadaira)
2015-06-19 15:17:55 +02:00
a594d77ffc patch 7.4.742
Problem:    Cannot specify a vertical split when loading a buffer for a
            quickfix command.
Solution:   Add the "vsplit" value to 'switchbuf'. (Brook Hong)
2015-06-19 14:41:49 +02:00
a7b7b1cef9 patch 7.4.741
Problem:    When using += with ":set" a trailing comma is not recognized.
            (Issue 365)
Solution:   Don't add a second comma. Add a test. (partly by Christian
            Brabandt)
2015-06-19 14:06:43 +02:00
541f92d6cf Updated runtime files. 2015-06-19 13:27:23 +02:00
c7a0d32c83 patch 7.4.740
Problem:    ":1quit" works like ":.quit". (Bohr Shaw)
Solution:   Don't exit Vim when a range is specified. (Christian Brabandt)
2015-06-19 12:43:07 +02:00
acc39888cd patch 7.4.739
Problem:    In a string "\U" only takes 4 digits, while after CTRL-V U eight
            digits can be used.
Solution:   Make "\U" also take eight digits. (Christian Brabandt)
2015-06-19 12:08:13 +02:00
d710e0d247 patch 7.4.738
Problem:    Can't compile without the syntax highlighting feature.
Solution:   Add #ifdef around use of w_p_cul. (Hirohito Higashi)
2015-06-10 12:16:47 +02:00
6e8d3b0d41 patch 7.4.737
Problem:    On MS-Windows vimgrep over arglist doesn't work (Issue 361)
Solution:   Only escape backslashes in ## expansion when it is not used as the
            path separator. (James McCoy)
2015-06-09 21:33:31 +02:00
b878bbbca6 patch 7.4.736
Problem:    Invalid memory access.
Solution:   Avoid going over the end of a NUL terminated string. (Dominique
            Pelle)
2015-06-09 20:39:24 +02:00
e2e4b98622 patch 7.4.735
Problem:    Wrong argument for sizeof().
Solution:   Use a pointer argument. (Chris Hall)
2015-06-09 20:30:51 +02:00
d009e86826 patch 7.4.734
Problem:    ml_get error when using "p" in a Visual selection in the last
            line.
Solution:   Change the behavior at the last line. (Yukihiro Nakadaira)
2015-06-09 20:20:03 +02:00
d68f2219b5 patch 7.4.733
Problem:    test_listchars breaks on MS-Windows. (Kenichi Ito)
Solution:   Set fileformat to "unix". (Christian Brabandt)
2015-06-09 19:58:32 +02:00
f2571c61d5 Updated runtime files. 2015-06-09 19:44:55 +02:00
d0d0fe09cf patch 7.4.732
Problem:    The cursor line is not always updated for the "O" command.
Solution:   Reset the VALID_CROW flag. (Christian Brabandt)
2015-06-09 19:23:46 +02:00
7098ee5c37 patch 7.4.731
Problem:    The tab menu shows "Close tab" even when it doesn't work.
Solution:   Don't show "Close tab" for the last tab. (John Marriott)
2015-06-09 19:14:24 +02:00
bc56336bb4 patch 7.4.730
Problem:    When setting the crypt key and using a swap file, text may be
            encrypted twice or unencrypted text remains in the swap file.
            (Issue 369)
Solution:   Call ml_preserve() before re-encrypting.  Set correct index for
            next pointer block.
2015-06-09 18:35:25 +02:00
0481fee488 patch 7.4.729
Problem:    Occasional crash with 'list' set.
Solution:   Fix off-by-one error. (Christian Brabandt)
2015-05-14 05:56:09 +02:00
4270496716 patch 7.4.728
Problem:    Can't build with some version of Visual Studio 2015.
Solution:   Recognize another version 14 number. (Sinan)
2015-05-06 11:33:47 +02:00
9c60161888 patch 7.4.727
Problem:    Cannot build GvimExt with MingW.
Solution:   Add -lgdi32.  (KF Leong)
2015-05-06 06:51:50 +02:00
1fd3e30ce9 patch 7.4.726
Problem:    Cannot build GvimExt.
Solution:   Set APPVER to 5.0.  (KF Leong)
2015-05-05 10:25:16 +02:00
659c94d483 patch 7.4.725
Problem:    ":call setreg('"', [])" reports an internal error.
Solution:   Make the register empty. (Yasuhiro Matsumoto)
2015-05-04 20:19:21 +02:00
7bc25aed33 patch 7.4.724
Problem:    Vim icon does not show in Windows context menu. (issue 249)
Solution:   Load the icon in GvimExt.
2015-05-04 18:27:36 +02:00
4032cfdf17 patch 7.4.723
Problem:    For indenting, finding the C++ baseclass can be slow.
Solution:   Cache the result. (Hirohito Higashi)
2015-05-04 17:50:33 +02:00
73284b973a patch 7.4.722
Problem:    0x202f is not recognized as a non-breaking space character.
Solution:   Add 0x202f to the list. (Christian Brabandt)
2015-05-04 17:28:22 +02:00
d59c099120 patch 7.4.721
Problem:    When 'list' is set Visual mode does not highlight anything in
            empty lines. (mgaleski)
Solution:   Check the value of lcs_eol in another place. (Christian Brabandt)
2015-05-04 16:52:01 +02:00
f300ad230b patch 7.4.720
Problem:    Can't build with Visual Studio 2015.
Solution:   Recognize the "version 14" numbers and omit /nodefaultlib when
            appropriate. (Paul Moore)
2015-05-04 16:18:42 +02:00
c4dc286fe6 patch 7.4.719
Problem:    Overflow when adding MAXCOL to a pointer.
Solution:   Subtract pointers instead. (James McCoy)
2015-05-04 16:10:26 +02:00
81278efadf patch 7.4.718
Problem:    Autocommands triggered by quickfix cannot get the current title
            value.
Solution:   Set w:quickfix_title earlier. (Yannick)
            Also move the check for a title into the function.
2015-05-04 12:34:22 +02:00
1cd5e613b0 patch 7.4.717
Problem:    ":let list += list" can change a locked list.
Solution:   Check for the lock earlier. (Olaf Dabrunz)
2015-05-04 11:10:27 +02:00
cad2fc9935 patch 7.4.716
Problem:    When using the 'c' flag of ":substitute" and selecting "a" or "l"
            at the prompt the flags are not remembered for ":&&". (Ingo
            Karkat)
Solution:   Save the flag values and restore them. (Hirohito Higashi)
2015-05-04 10:46:03 +02:00
2186ffa2c7 patch 7.4.715
Problem:    Invalid memory access when there are illegal bytes.
Solution:   Get the length from the text, not from the character. (Dominique
            Pelle)
2015-05-04 10:33:15 +02:00
069dd08d8d patch 7.4.714
Problem:    Illegal memory access when there are illegal bytes.
Solution:   Check the byte length of the character. (Dominique Pelle)
2015-05-04 09:56:49 +02:00
ea98f8b4d6 patch 7.4.713
Problem:    Wrong condition for #ifdef.
Solution:   Change USR_EXRC_FILE2 to USR_VIMRC_FILE2. (Mikael Fourrier)
2015-05-04 09:31:11 +02:00
1510f996c5 patch 7.4.712
Problem:    Missing change in another file.
Solution:   Also change message.c
2015-04-22 22:18:22 +02:00
4c6b3b20dd patch 7.4.711
Problem:    Missing change in one file.
Solution:   Also change option.c
2015-04-21 19:10:48 +02:00
7927836733 patch 7.4.710
Problem:    It is not possible to make spaces visibible in list mode.
Solution:   Add the "space" item to 'listchars'. (David Bürgin, issue 350)
2015-04-21 18:33:48 +02:00
40ce3a4e1f patch 7.4.709
Problem:    ":tabmove" does not work as documented.
Solution:   Make it work consistently.  Update documentation and add tests.
            (Hirohito Higashi)
2015-04-21 18:08:39 +02:00
77354e78a8 patch 7.4.708
Problem:    gettext() is called too often.
Solution:   Do not call gettext() for messages until they are actually used.
            (idea by Yasuhiro Matsumoto)
2015-04-21 16:49:05 +02:00
3cbac309f7 patch 7.4.707
Problem:    Undo files can have their executable bit set.
Solution:   Strip of the executable bit. (Mikael Berthe)
2015-04-21 16:12:06 +02:00
5b14f89164 patch 7.4.706
Problem:    Window drawn wrong when 'laststatus' is zero and there is a
            command-line window. (Yclept Nemo)
Solution:   Set the status height a bit later. (Christian Brabandt)
2015-04-21 15:43:05 +02:00
bbc1a592a0 patch 7.4.705
Problem:    Can't build with Ruby 2.2.
Solution:   Add #ifdefs to handle the incompatible change. (Andrei Olsen)
2015-04-21 15:25:31 +02:00
d82a2a990b patch 7.4.704
Problem:    Searching for a character matches an illegal byte and causes
            invalid memory access. (Dominique Pelle)
Solution:   Do not match an invalid byte when search for a character in a
            string.  Fix equivalence classes using negative numbers, which
            result in illegal bytes.
2015-04-21 14:02:35 +02:00
f9bde2b152 patch 7.4.703
Problem:    Compiler warning for start_dir unused when building unittests.
Solution:   Move start_dir inside the #ifdef.
2015-04-17 22:08:16 +02:00
d39a751280 patch 7.4.702
Problem:    Joining an empty list does uneccessary work.
Solution:   Let join() return early. (Marco Hinz)
2015-04-16 22:51:22 +02:00
ec45c4a6df patch 7.4.701
Problem:    Compiler warning for using uninitialized variable. (Yasuhiro
            Matsumoto)
Solution:   Initialize it.
2015-04-15 14:27:49 +02:00
ba172f2eab Remove local-additions entries from help.txt. 2015-04-15 14:13:18 +02:00
0a63dedf99 Updated runtime files. 2015-04-15 13:31:24 +02:00
d5f6933d5c patch 7.4.700
Problem:    Fold can't be opened after ":move". (Ein Brown)
Solution:   Delete the folding information and update it afterwards.
            (Christian Brabandt)
2015-04-15 12:43:50 +02:00
05b20fb14e patch 7.4.699
Problem:    E315 when trying to delete a fold. (Yutao Yuan)
Solution:   Make sure the fold doesn't go beyond the last buffer line.
            (Christian Brabandt)
2015-04-13 20:52:36 +02:00
9bc174b69d patch 7.4.698
Problem:    Various problems with locked and fixed lists and dictionaries.
Solution:   Disallow changing locked items, fix a crash, add tests. (Olaf
            Dabrunz)
2015-04-13 16:16:38 +02:00
d94682ffb4 patch 7.4.697
Problem:    The filename used for ":profile" must be given literally.
Solution:   Expand "~" and environment variables. (Marco Hinz)
2015-04-13 15:37:56 +02:00
50ab994ab3 patch 7.4.696
Problem:    Not freeing memory when encountering an error.
Solution:   Free the stack before returning. (Eliseo Martínez)
2015-04-13 15:28:12 +02:00
7c94ce910f patch 7.4.695
Problem:    Out-of-bounds read, dectected by Coverity.
Solution:   Remember the value of cmap for the first matching encoding.  Reset
            cmap to that value if first matching encoding is going to be used.
            (Eliseo Martínez)
2015-04-13 14:45:27 +02:00
83d1b19015 More updated runtime files. 2015-04-13 14:22:40 +02:00
29d54df5cd patch 7.4.694
Problem:    Running tests changes the .viminfo file.
Solution:   Disable viminfo in the text objects test.
2015-04-13 12:58:12 +02:00
5a5f45917d Updated runtime files. 2015-04-13 12:43:06 +02:00
695baeefe1 patch 7.4.693
Problem:    Session file is not correct when there are multiple tab pages.
Solution:   Reset the current window number for each tab page. (Jacob Niehus)
2015-04-13 12:39:22 +02:00
de1502f2b4 patch 7.4.692 for Problem: Defining SOLARIS for no good reason. (Danek Duvall)
Solution:   Remove it.
2015-04-09 22:08:21 +02:00
f630387827 patch 7.4.691 for Problem: Can't build with MzScheme.
Solution:   Change "cwd" into the global variable "start_dir".
2015-04-03 17:59:43 +02:00
da6365774d patch 7.4.690 for Problem: Memory access errors when changing indent in Ex mode. Also missing
redraw when using CTRL-U. (Knil Ino)
Solution:   Update pointers after calling ga_grow().
2015-04-03 17:11:45 +02:00
d87c36ea5e updated for version 7.4.689
Problem:    On MS-Windows, when 'autochdir' is set, diff mode with files in
            different directories does not work. (Axel Bender)
Solution:   Remember the current directory and use it where needed. (Christian
            Brabandt)
2015-04-03 14:56:49 +02:00
478c46e50f updated for version 7.4.688
Problem:    When "$" is in 'cpo' the popup menu isn't undrawn correctly.
            (Issue 166)
Solution:   When using the popup menu remove the "$".
2015-03-31 19:18:00 +02:00
1e7813a187 updated for version 7.4.687
Problem:    There is no way to use a different in Replace mode for a terminal.
Solution:   Add t_SR. (Omar Sandoval)
2015-03-31 18:31:03 +02:00
7d2757a472 updated for version 7.4.686
Problem:    "zr" and "zm" do not take a count.
Solution:   Implement the count, restrict the fold level to the maximum
            nesting depth.  (Marcin Szamotulski)
2015-03-31 17:46:22 +02:00
0e462411ca updated for version 7.4.685
Problem:    When there are illegal utf-8 characters the old regexp engine may
            go past the end of a string.
Solution:   Only advance to the end of the string. (Dominique Pelle)
2015-03-31 14:17:31 +02:00
e5c421cfd7 updated for version 7.4.684
Problem:    When starting several Vim instances in diff mode, the temp files
            used may not be unique. (Issue 353)
Solution:   Add an argument to vim_tempname() to keep the file.
2015-03-31 13:33:08 +02:00
1ca2e361a8 updated for version 7.4.683
Problem:    Typo in the vimtutor command.
Solution:   Fix the typo. (Corey Farwell, github pull 349)
2015-03-25 20:24:04 +01:00
09deeb7c94 updated for version 7.4.682
Problem:    The search highlighting and match highlighting replaces the
            cursorline highlighting, this doesn't look good.
Solution:   Combine the highlighting. (Yasuhiro Matsumoto)
2015-03-24 18:22:41 +01:00
dbcf19dc49 Add test files for patch 7.4.680. 2015-03-24 17:57:45 +01:00
71371b1579 updated for version 7.4.681
Problem:    MS-Windows: When Vim is minimized the window height is computed
            incorrectly.
Solution:   When minimized use the previously computed size. (Ingo Karkat)
2015-03-24 17:57:12 +01:00
310f2d59b2 updated for version 7.4.680
Problem:    CTRL-W in Insert mode does not work well for multi-byte
            characters.
Solution:   Use mb_get_class(). (Yasuhiro Matsumoto)
2015-03-24 17:49:51 +01:00
6383b92d8c updated for version 7.4.679
Problem:    Color values greater than 255 cause problems on MS-Windows.
Solution:   Truncate to 255 colors. (Yasuhiro Matsumoto)
2015-03-24 17:12:19 +01:00
f11ce667b0 updated for version 7.4.678
Problem:    When using --remote the directory may end up being wrong.
Solution:   Use localdir() to find out what to do. (Xaizek)
2015-03-24 16:48:58 +01:00
a161e26d55 updated for version 7.4.677
Problem:    Configure fails when specifying a python-config-dir. (Lcd)
Solution:   Check if PYTHONFRAMEWORKPREFIX is set.
2015-03-24 15:14:27 +01:00
6c927557e2 updated for version 7.4.676
Problem:    On Mac, when not using the default Python framework configure
            doesn't do the right thing.
Solution:   Use a linker search path. (Kazunobu Kuriyama)
2015-03-24 12:21:33 +01:00
eab316bdf9 updated for version 7.4.675
Problem:    When a FileReadPost autocommand moves the cursor inside a line it
            gets moved back.
Solution:   When checking whether an autocommand moved the cursor store the
            column as well. (Christian Brabandt)
2015-03-24 11:46:30 +01:00
77b7710d4e updated for version 7.4.674
Problem:    Missing changes in one file.
Solution:   Also change the win32 file.
2015-03-21 22:18:41 +01:00
e7154eb5c3 updated for version 7.4.673
Problem:    The first syntax entry gets sequence number zero, which doesn't
            work. (Clinton McKay)
Solution:   Start at number one. (Bjorn Linse)
2015-03-21 21:46:13 +01:00
5837f1f447 Update runtime files. 2015-03-21 18:06:14 +01:00
b5971141df updated for version 7.4.672
Problem:    When completing a shell command, directories in the current
            directory are not listed.
Solution:   When "." is not in $PATH also look in the current directory for
            directories.
2015-03-21 17:32:19 +01:00
4df702999d updated for version 7.4.671
Problem:    Warning for shadowing a variable.
Solution:   Rename off to mb_off. (Kazunobu Kuriyama)
2015-03-21 14:20:16 +01:00
dcefba9934 updated for version 7.4.670
Problem:    Using 'cindent' for Javascript is less than perfect.
Solution:   Improve indenting of continuation lines. (Hirohito Higashi)
2015-03-20 19:06:06 +01:00
3b7b83649c updated for version 7.4.669
Problem:    When netbeans is active the sign column always shows up.
Solution:   Only show the sign column once a sign has been added. (Xavier de
            Gaye)
2015-03-20 18:11:48 +01:00
825e7ab423 updated for version 7.4.668
Problem:    Can't use a glob pattern as a regexp pattern.
Solution:   Add glob2regpat(). (Christian Brabandt)
2015-03-20 17:36:42 +01:00
fbc25b20cb updated for version 7.4.667
Problem:    'colorcolumn' isn't drawn in a closed fold while 'cursorcolumn'
            is. (Carlos Pita)
Solution:   Make it consistent. (Christian Brabandt)
2015-03-20 17:16:27 +01:00
b1fc2bf29c updated for version 7.4.666
Problem:    There is a chance that Vim may lock up.
Solution:   Handle timer events differently. (Aaron Burrow)
2015-03-20 16:26:54 +01:00
76feaf1bfe updated for version 7.4.665
Problem:    'linebreak' does not work properly with multi-byte characters.
Solution:   Compute the pointer offset with mb_head_off().  (Yasuhiro
            Matsumoto)
2015-03-20 15:58:52 +01:00
6b31467aa7 updated for version 7.4.664
Problem:    When 'compatible' is reset 'numberwidth' is set to 4, but the
            effect doesn't show until a change is made.
Solution:   Check if 'numberwidth' changed. (Christian Brabandt)
2015-03-20 15:42:10 +01:00
404c942fb8 updated for version 7.4.663
Problem:    When using netbeans a buffer is not found in another tab.
Solution:   When 'switchbuf' is set to "usetab" then switch to another tab
            when possible. (Xavier de Gaye)
2015-03-14 15:35:52 +01:00
438b64ab71 updated for version 7.4.662
Problem:    When 'M' is in the 'cpo' option then selecting a text object in
            parenthesis does not work correctly.
Solution:   Keep 'M' in 'cpo' when finding a match. (Hirohito Higashi)
2015-03-13 15:03:00 +01:00
6c5bdb751c updated for version 7.4.661
Problem:    Using "0 CTRL-D" in Insert mode may have CursorHoldI interfere.
            (Gary Johnson)
Solution:   Don't store K_CURSORHOLD as the last character. (Christian
            Brabandt)
2015-03-13 13:24:23 +01:00
c7dc1f4a53 updated for version 7.4.660
Problem:    Using freed memory when g:colors_name is changed in the colors
            script. (oni-link)
Solution:   Make a copy of the variable value.
2015-03-13 12:53:37 +01:00
488eb26ec7 updated for version 7.4.659
Problem:    When 'ruler' is set the preferred column is reset. (Issue 339)
Solution:   Don't set curswant when redrawing the status lines.
2015-03-13 11:23:50 +01:00
0f8dd840fc updated for version 7.4.658
Problem:    'formatexpr' is evaluated too often.
Solution:   Only invoke it when beyond the 'textwidth' column, as it is
            documented. (James McCoy)
2015-03-08 14:48:49 +01:00
ab11a5914b updated for version 7.4.657
Problem:    Compiler warnings for pointer mismatch.
Solution:   Add a typecast. (John Marriott)
2015-03-06 22:00:11 +01:00
d8b77f7dc0 updated for version 7.4.656
Problem:    Missing changes for glob() in one file.
Solution:   Add the missing changes.
2015-03-05 21:21:19 +01:00
b6c2735c56 updated for version 7.4.655
Problem:    Text deleted by "dit" depends on indent of closing tag.
            (Jan Parthey)
Solution:   Do not adjust oap->end in do_pending_operator(). (Christian
            Brabandt)
2015-03-05 19:57:49 +01:00
a245bc79b4 updated for version 7.4.654
Problem:    glob() and globpath() cannot include links to non-existing files.
            (Charles Campbell)
Solution:   Add an argument to include all links with glob(). (James McCoy)
            Also for globpath().
2015-03-05 19:35:25 +01:00
e421450a5e updated for version 7.4.653
Problem:    Insert mode completion with complete() may have CTRL-L work like
            CTRL-P.
Solution:   Handle completion with complete() differently. (Yasuhiro
            Matsumoto, Christian Brabandt, Hirohito Higashi)
2015-03-05 18:08:43 +01:00
4dcdf29910 updated for version 7.4.652
Problem:    Xxd lacks a few features.
Solution:   Use 8 characters for the file position.  Add the -e and -o
            arguments. (Vadim Vygonets)
2015-03-05 17:51:15 +01:00
4f36dc3bf7 updated for version 7.4.651
Problem:    Can't match "%>80v" properly for multi-byte characters.
Solution:   Multiply the character number by the maximum number of bytes in a
            character. (Yasuhiro Matsumoto)
2015-03-05 17:16:06 +01:00
5d3fbf3bfe updated for version 7.4.650
Problem:    Configure check may fail because the dl library is not used.
Solution:   Put "-ldl" in LIBS rather than LDFLAGS. (Oazki Kiichi)
2015-03-05 16:47:20 +01:00
cf48767cd1 updated for version 7.4.649
Problem:    Compiler complains about ignoring return value of fwrite().
            (Michael Jarvis)
Solution:   Add (void).
2015-03-05 13:36:00 +01:00
f3c2afb77f Update a few runtime files. 2015-03-02 23:16:07 +01:00
2b8388bd01 Updated runtime files. 2015-02-28 13:11:45 +01:00
bac203ea2d updated for version 7.4.648
Problem:    Tests broken on MS-Windows.
Solution:   Delete wrong copy line. (Ken Takata)
2015-02-27 22:12:34 +01:00
13cf77ba17 updated for version 7.4.647
Problem:    After running the tests on MS-Windows many files differ from their
            originals as they were checked out.
Solution:   Use a temp directory for executing the tests. (Ken Takata, Taro
            Muraoka)
2015-02-27 21:11:02 +01:00
e25bb90b2e updated for version 7.4.646
Problem:    ":bufdo" may start at a deleted buffer.
Solution:   Find the first not deleted buffer. (Shane Harper)
2015-02-27 20:33:37 +01:00
8da9bbfd02 updated for version 7.4.645
Problem:    When splitting the window in a BufAdd autocommand while still in
            the first, empty buffer the window count is wrong.
Solution:   Do not reset b_nwindows to zero and don't increment it.
2015-02-27 19:34:56 +01:00
ba17ed6797 updated for version 7.4.644
Problem:    Stratus VOS doesn't have sync().
Solution:   Use fflush(). (Karli Aurelia)
2015-02-27 18:25:16 +01:00
c6b7217ff5 updated for version 7.4.643
Problem:    Using the default file format for Mac files. (Issue 77)
Solution:   Reset the try_mac counter in the right place. (Oswald)
2015-02-27 17:48:09 +01:00
d45c07ac74 updated for version 7.4.642
Problem:    When using "gf" escaped spaces are not handled.
Solution:   Recognize escaped spaces.
2015-02-27 17:19:10 +01:00
dfd7691bb8 updated for version 7.4.641
Problem:    The tabline menu was using ":999tabnew" which is now invalid.
Solution:   Use ":$tabnew" instead. (Florian Degner)
2015-02-27 15:03:58 +01:00
c3bbad085c updated for version 7.4.640
Problem:    After deleting characters in Insert mode such that lines are
            joined undo does not work properly. (issue 324)
Solution:   Use Insstart instead of Insstart_orig. (Christian Brabandt)
2015-02-17 17:50:26 +01:00
8fc6bc7126 updated for version 7.4.639
Problem:    Combination of linebreak and conceal doesn't work well.
Solution:   Fix the display problems. (Christian Brabandt)
2015-02-17 17:26:10 +01:00
46538ee46c updated for version 7.4.638
Problem:    Can't build with Lua 5.3 on Windows.
Solution:   use luaL_optinteger() instead of LuaL_optlong(). (Ken Takata)
2015-02-17 16:28:55 +01:00
1e997827f1 updated for version 7.4.637
Problem:    Incorrectly read the number of buffer for which an autocommand
            should be registered.
Solution:   Reverse check for "<buffer=abuf>". (Lech Lorens)
2015-02-17 16:04:57 +01:00
35e7594dd4 Add missing test files from 7.4.634 to the repository. 2015-02-17 15:47:46 +01:00
4653911950 updated for version 7.4.636
Problem:    A search with end offset gets stuck at end of file. (Gary Johnson)
Solution:   When a search doesn't move the cursor repeat it with a higher
            count. (Christian Brabandt)
2015-02-17 15:43:57 +01:00
05eb612ff3 updated for version 7.4.635
Problem:    If no NL or CR is found in the first block of a file then the
            'fileformat' may be set to "mac". (Issue 77)
Solution:   Check if a CR was found. (eswald)
2015-02-17 14:15:19 +01:00
f65aad5554 updated for version 7.4.634
Problem:    Marks are not restored after redo + undo.
Solution:   Fix the way marks are restored. (Olaf Dabrunz)
2015-02-17 13:43:40 +01:00
be20f9fa5d updated for version 7.4.633
Problem:    After 7.4.630 the problem persists.
Solution:   Also skip redo when calling a user function.
2015-02-17 12:44:09 +01:00
eaa330e8e9 updated for version 7.4.632
Problem:    7.4.592 breaks the netrw plugin, because the autocommands are
            skipped.
Solution:   Roll back the change.
2015-02-17 12:17:14 +01:00
4a42710695 updated for version 7.4.631
Problem:    The default conceal character is documented to be a space but it's
            initially a dash. (Christian Brabandt)
Solution:   Make the intial value a space.
2015-02-17 11:11:48 +01:00
c51b02d7d9 updated for version 7.4.630
Problem:    When using Insert mode completion combined with autocommands the
            redo command may not work.
Solution:   Do not save the redo buffer when executing autocommands. (Yasuhiro
            Matsumoto)
2015-02-17 10:58:25 +01:00
98f52500b6 updated for version 7.4.629
Problem:    Coverity warning for Out-of-bounds read.
Solution:   Increase MAXWLEN to 254. (Eliseo Martínez)
2015-02-10 20:03:45 +01:00
8872ef1b4e updated for version 7.4.628
Problem:    Compiler warning for variable might be clobbered by longjmp.
Solution:   Add volatile. (Michael Jarvis)
2015-02-10 19:27:05 +01:00
494838a3fe updated for version 7.4.627
Problem:    The last screen cell is not updated.
Solution:   Respect the "tn" termcap feature. (Hayaki Saito)
2015-02-10 19:20:37 +01:00
eb2928595b updated for version 7.4.626
Problem:    MSVC with W4 gives useless warnings.
Solution:   Disable more warnings. (Mike Williams)
2015-02-10 18:47:58 +01:00
24a6ff88bc updated for version 7.4.625
Problem:    Possible NULL pointer dereference.
Solution:   Check for NULL before using it. (Mike Williams)
2015-02-10 18:41:58 +01:00
9abd5c6507 updated for version 7.4.624
Problem:    May leak memory or crash when vim_realloc() returns NULL.
Solution:   Handle a NULL value properly. (Mike Williams)
2015-02-10 18:34:01 +01:00
a1d2c58985 updated for version 7.4.623
Problem:    Crash with pattern: \(\)\{80000}  (Dominique Pelle)
Solution:   When the max limit is large fall back to the old engine.
2015-02-10 18:18:17 +01:00
168e04966c updated for version 7.4.622
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2015-02-05 20:29:59 +01:00
f554a3285e updated for version 7.4.621
Problem:    Returning 1 in the wrong function. (Raymond Ko)
Solution:   Return 1 in the right function (hopefully).
2015-02-04 23:08:01 +01:00
934b136193 updated for version 7.4.620
Problem:    Compiler warning for unitinialized variable. (Tony Mechelynck)
Solution:   Initialize "did_free". (Ben Fritz)
2015-02-04 23:06:45 +01:00
b84634de30 updated for version 7.4.619
Problem:    luaV_setref() not returning the correct value.
Solution:   Return one.
2015-02-04 22:02:37 +01:00
9d49da8cbb updated for version 7.4.618
Problem:    luaV_setref() is missing a return statement. (Ozaki Kiichi)
Solution:   Put the return statement back.
2015-02-03 23:10:46 +01:00
0122c4070f Update runtime files. 2015-02-03 19:13:34 +01:00
c0a37b9db3 updated for version 7.4.617
Problem:    Wrong ":argdo" range does not cause an error.
Solution:   Reset "cmd" to NULL. (Marcin Szamotulski, Ingo Karkat)
2015-02-03 19:10:53 +01:00
f2c03d7301 updated for version 7.4.616
Problem:    Cannot insert a tab in front of a block.
Solution:   Correctly compute aop->start. (Christian Brabandt)
2015-02-03 18:36:44 +01:00
e71eea801e updated for version 7.4.615
Problem:    Vim hangs when freeing a lot of objects.
Solution:   Do not go back to the start of the list every time.  (Yasuhiro
            Matsumoto and Ariya Mizutani)
2015-02-03 17:10:06 +01:00
d7ce7a9ad2 updated for version 7.4.614
Problem:    There is no test for what patch 7.4.601 fixes.
Solution:   Add a test. (Christian Brabandt)
2015-02-03 16:53:51 +01:00
70781ee403 updated for version 7.4.613
Problem:    The NFA engine does not implement the 'redrawtime' time limit.
Solution:   Implement the time limit.
2015-02-03 16:49:24 +01:00
e08dd4e49e updated for version 7.4.612
Problem:    test_eval fails on Mac.
Solution:   Use the * register instead of the + register. (Jun Takimoto)
2015-02-03 16:07:47 +01:00
b641df4965 updated for version 7.4.611
Problem:    Syntax error.
Solution:   Change statement to return.
2015-02-03 13:16:04 +01:00
016154919e updated for version 7.4.610
Problem:    Some function headers may be missing from generated .pro files.
Solution:   Add PROTO to the #ifdef.
2015-02-03 13:00:38 +01:00
2459a5ecaa updated for version 7.4.609
Problem:    For complicated list and dict use the garbage collector can run
            out of stack space.
Solution:   Use a stack of dicts and lists to be marked, thus making it
            iterative instead of recursive. (Ben Fritz)
2015-02-03 12:55:18 +01:00
4ac163ae5f updated for version 7.4.608
Problem:    test_eval fails when the clipboard feature is missing.
Solution:   Skip part of the test. Reduce the text used.
2015-01-27 22:52:15 +01:00
73a156bf36 updated for version 7.4.607
Problem:    Compiler warnings for unused variables.
Solution:   Move them inside #ifdef. (Kazunobu Kuriyama)
2015-01-27 21:39:05 +01:00
7cc8ec4720 updated for version 7.4.606
Problem:    May crash when using a small window.
Solution:   Avoid dividing by zero. (Christian Brabandt)
2015-01-27 20:59:31 +01:00
3b3a9498d1 updated for version 7.4.605
Problem:    The # register is not writable, it cannot be restored after
            jumping around.
Solution:   Make the # register writable. (Marcin Szamotulski)
2015-01-27 18:44:16 +01:00
6bf7c523ad updated for version 7.4.604
Problem:    Running tests changes viminfo.
Solution:   Disable viminfo.
2015-01-27 17:12:00 +01:00
1c93429c48 updated for version 7.4.603
Problem:    'foldcolumn' may be set such that it fills the whole window, not
            leaving space for text.
Solution:   Reduce the foldcolumn width when there is not sufficient room.
            (idea by Christian Brabandt)
2015-01-27 16:39:29 +01:00
18400e6430 updated for version 7.4.602
Problem:    ":set" does not accept hex numbers as documented.
Solution:   Use vim_str2nr(). (ZyX)
2015-01-27 15:58:40 +01:00
0a988df731 updated for version 7.4.601
Problem:    It is not possible to have feedkeys() insert characters.
Solution:   Add the 'i' flag.
2015-01-27 15:19:24 +01:00
0cd040b96a updated for version 7.4.600
Problem:    Memory wasted in struct because of aligning.
Solution:   Split pos in lnum and col. (Dominique Pelle)
2015-01-27 14:54:11 +01:00
aaf3047de2 updated for version 7.4.599
Problem:    Out-of-memory error.
Solution:   Avoid trying to allocate a negative amount of memory, use size_t
            instead of int. (Dominique Pelle)
2015-01-27 14:40:00 +01:00
5c27fd100a updated for version 7.4.598
Problem:    ":tabdo windo echo 'hi'" causes "* register not to be changed.
            (Salman Halim)
Solution:   Change how clip_did_set_selection is used and add
            clipboard_needs_update and global_change_count.  (Christian
            Brabandt)
2015-01-27 14:09:37 +01:00
9a492d456d updated for version 7.4.597
Problem:    Cannot change the result of systemlist().
Solution:   Initialize v_lock. (Yukihiro Nakadaira)
2015-01-27 13:49:31 +01:00
932d88662f updated for version 7.4.596
Problem:    Tiny build doesn't compile.  (Ike Devolder)
Solution:   Add #ifdef.
2015-01-27 13:33:23 +01:00
322a24af83 updated for version 7.4.595
Problem:    The test_command_count test fails when using Japanese.
Solution:   Force the language to C. (Hirohito Higashi)
2015-01-27 13:28:46 +01:00
1dc92334eb updated for version 7.4.594
Problem:    Using a block delete while 'breakindent' is set does not work
            properly.
Solution:   Use "line" instead of "prev_pend" as the first argument to
            lbr_chartabsize_adv().  (Hirohito Higashi)
2015-01-27 13:22:20 +01:00
e0ad365498 updated for version 7.4.593
Problem:    Crash when searching for "x\{0,90000}". (Dominique Pelle)
Solution:   Bail out from the NFA engine when the max limit is much higher
            than the min limit.
2015-01-27 12:59:55 +01:00
df5caa08f6 updated for version 7.4.592
Problem:    When doing ":e foobar" when already editing "foobar" and 'buftype'
            is "nofile" the buffer is cleared. (Xavier de Gaye)
Solution:   Do no clear the buffer.
2015-01-27 11:26:15 +01:00
8a94d873aa Update runtime files. 2015-01-25 13:02:57 +01:00
df82661c9c updated for version 7.4.591
Problem:    test_listlbr_utf8 fails when the conceal feature is not available.
Solution:   Check for the conceal feature. (Kazunobu Kuriyama)
2015-01-22 22:41:56 +01:00
eea478f885 updated for version 7.4.590
Problem:    Using ctrl_x_mode as if it contains flags.
Solution:   Don't use AND with CTRL_X_OMNI. (Hirohito Higashi)
2015-01-22 22:40:20 +01:00
1ec4dd41de updated for version 7.4.589
Problem:    In the MS-Windows console Vim can't handle greek characters when
            encoding is utf-8.
Solution:   Escape K_NUL. (Yasuhiro Matsumoto)
2015-01-20 19:39:35 +01:00
4bde00c595 updated for version 7.4.588
Problem:    ":0argedit foo" puts the new argument in the second place instead
            of the first.
Solution:   Adjust the range type. (Ingo Karkat)
2015-01-20 19:31:02 +01:00
6a6028cf4b updated for version 7.4.587
Problem:    Conceal does not work properly with 'linebreak'. (cs86661)
Solution:   Save and restore boguscols. (Christian Brabandt)
2015-01-20 19:01:35 +01:00
6bf7a5933f updated for version 7.4.586
Problem:    Parallel building of the documentation html files is not reliable.
Solution:   Remove a cyclic dependency. (Reiner Herrmann)
2015-01-20 17:27:22 +01:00
e823183254 updated for version 7.4.585
Problem:    Range for :bdelete does not work. (Ronald Schild)
Solution:   Also allow unloaded buffers.
2015-01-20 13:29:49 +01:00
ff8a75dab7 updated for version 7.4.584
Problem:    With tiny features test_command_count may fail.
Solution:   Source small.vim. (Christian Brabandt)
2015-01-20 12:39:39 +01:00
ff13610d7b updated for version 7.4.583
Problem:    With tiny features test 16 may fail.
Solution:   Source small.vim. (Christian Brabandt)
2015-01-20 12:14:01 +01:00
ef795d1a5b updated for version 7.4.582
Problem:    Can't match "%>80v" properly. (Axel Bender)
Solution:   Correctly handle ">". (Christian Brabandt)
2015-01-18 16:46:32 +01:00
7cbc703fdc updated for version 7.4.581
Problem:    Compiler warnings for unitinialized variables. (John Little)
Solution:   Initialize the variables.
2015-01-18 14:08:56 +01:00
164f3269b1 updated for version 7.4.580
Problem:    ":52wincmd v" still gives an invalid range error. (Charles
            Campbell)
Solution:   Skip over white space.
2015-01-14 21:22:01 +01:00
83caecf314 Updated runtime files. 2015-01-14 19:42:21 +01:00
d574ea2f80 updated for version 7.4.579
Problem:    Wrong cursor positioning when 'linebreak' is set and lines wrap.
Solution:   (Christian Brabandt)
2015-01-14 19:35:14 +01:00
084abaec06 updated for version 7.4.578
Problem:    Using getcurpos() after "$" in an empty line returns a negative
            number.
Solution:   Don't add one when this would overflow. (Hirohito Higashi)
2015-01-14 19:00:38 +01:00
a20bcad15c updated for version 7.4.577
Problem:    Matching with a virtual column has a lot of overhead on very long
            lines. (Issue 310)
Solution:   Bail out early if there can't be a match. (Christian Brabandt)
            Also check for CTRL-C at every position.
2015-01-14 18:40:28 +01:00
ba3f58e296 updated for version 7.4.576
Problem:    Redrawing problem with 'relativenumber' and 'linebreak'.
Solution:   Temporarily reset 'linebreak' and restore it in more places.
            (Christian Brabandt)
2015-01-14 17:52:30 +01:00
ea67672534 updated for version 7.4.575
Problem:    Unicode character properties are outdated.
Solution:   Update the tables with the latest version.
2015-01-14 17:40:09 +01:00
615b9978dd updated for version 7.4.574
Problem:    No error for eval('$').
Solution:   Check for empty name. (Yasuhiro Matsumoto)
2015-01-14 17:15:05 +01:00
5000869712 updated for version 7.4.573
Problem:    Mapping CTRL-C in Visual mode doesn't work. (Ingo Karkat)
Solution:   Call get_real_state() instead of using State directly.
2015-01-14 16:08:32 +01:00
84c8e5ab9c updated for version 7.4.572
Problem:    Address type of :wincmd depends on the argument.
Solution:   Check the argument.
2015-01-14 15:47:36 +01:00
435797304a updated for version 7.4.571
Problem:    Can't build with tiny features. (Ike Devolder)
Solution:   Add #ifdef.
2015-01-14 14:08:44 +01:00
0c7485fdbb updated for version 7.4.570
Problem:    Building with dynamic library does not work for Ruby 2.2.0
Solution:   Change #ifdefs and #defines. (Ken Takata)
2015-01-14 14:04:10 +01:00
9da7ff70cc Updated runtime files. 2015-01-14 12:52:36 +01:00
651863c94a updated for version 7.4.569
Problem:    Having CTRL-C interrupt or not does not check the mode of the
            mapping. (Ingo Karkat)
Solution:   Use a bitmask with the map mode. (Christian Brabandt)
2015-01-14 12:44:41 +01:00
8be6388b76 updated for version 7.4.568
Problem:    Giving an error for ":0wincmd w" is a problem for some plugins.
Solution:   Allow the zero in the range. (Marcin Szamotulski)
2015-01-14 11:25:05 +01:00
e271909625 Updated syntax files. 2015-01-10 15:09:25 +01:00
c60c4f6e06 updated for version 7.4.567
Problem:    Non-ascii vertical separater characters are always redrawn.
Solution:   Compare only the one byte that's stored. (Thiago Padilha)
2015-01-07 19:04:28 +01:00
8feef4ff62 Update runtime files. 2015-01-07 16:57:10 +01:00
a162bc555e updated for version 7.4.566
Problem:    :argdo, :bufdo, :windo and :tabdo don't take a range.
Solution:   Support the range. (Marcin Szamotulski)
2015-01-07 16:54:21 +01:00
3ffc79a4a8 updated for version 7.4.565
Problem:    Ranges for arguments, buffers, tabs, etc. are not checked to be
            valid but limited to the maximum.  This can cause the wrong thing
            to happen.
Solution:   Give an error for an invalid value. (Marcin Szamotulski)
            Use windows range for ":wincmd".
2015-01-07 15:57:17 +01:00
49a6ed8a8a updated for version 7.4.564
Problem:    FEAT_OSFILETYPE is used even though it's never defined.
Solution:   Remove the code. (Christian Brabandt)
2015-01-07 14:43:39 +01:00
684d409f63 updated for version 7.4.563
Problem:    No test for replacing on a tab in Virtual replace mode.
Solution:   Add a test. (Elias Diem)
2015-01-07 14:02:52 +01:00
0027c218e9 updated for version 7.4.562
Problem:    Segfault with wide screen and error in 'rulerformat'. (Ingo Karkat)
Solution:   Check there is enough space. (Christian Brabandt)
2015-01-07 13:31:52 +01:00
abe382cd2a updated for version 7.4.561
Problem:    Ex range handling is wrong for buffer-local user commands.
Solution:   Check for CMD_USER_BUF. (Marcin Szamotulski)
2015-01-07 13:15:45 +01:00
e88b0033f6 updated for version 7.4.560
Problem:    Memory leak using :wviminfo. Issue 296.
Solution:   Free memory when needed. (idea by Christian Brabandt)
2014-12-17 21:00:49 +01:00
fc3f23bedf updated for version 7.4.559
Problem:    Appending a block in the middle of a tab does not work correctly
            when virtualedit is set.
Solution:   Decrement spaces and count, don't reset them. (James McCoy)
2014-12-17 18:35:42 +01:00
718 changed files with 86540 additions and 53220 deletions

7
.gitignore vendored
View File

@ -3,6 +3,8 @@
src/vim src/vim
src/xxd/xxd src/xxd/xxd
src/auto/if_perl.c src/auto/if_perl.c
src/auto/gui_gtk_gresources.c
src/auto/gui_gtk_gresources.h
src/tags src/tags
# We do need src/auto/configure. # We do need src/auto/configure.
@ -35,6 +37,7 @@ src/pathdef.c
src/Obj*/pathdef.c src/Obj*/pathdef.c
gvimext.dll gvimext.dll
gvimext.lib gvimext.lib
runtime/doc/uganda.nsis.txt
# Borland C++ # Borland C++
bcc.cfg bcc.cfg
@ -69,5 +72,9 @@ src/testdir/lua.vim
src/testdir/small.vim src/testdir/small.vim
src/testdir/tiny.vim src/testdir/tiny.vim
src/testdir/test*.out src/testdir/test*.out
src/testdir/test*.failed
src/testdir/test.log src/testdir/test.log
src/testdir/dostmp/*
src/testdir/messages
src/testdir/viminfo
src/memfile_test src/memfile_test

45
.travis.yml Normal file
View File

@ -0,0 +1,45 @@
language: c
compiler:
- clang
- gcc
env:
- COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
CHECK_AUTOCONF=yes
- COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
- COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
sudo: false
branches:
except:
- /^v[0-9]/
addons:
apt:
packages:
- autoconf
- lcov
- libperl-dev
- python-dev
- python3-dev
- liblua5.1-0-dev
- lua5.1
before_install:
- pip install --user cpp-coveralls
script:
- NPROC=$(getconf _NPROCESSORS_ONLN)
- if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
- if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi && (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && make -j$NPROC)
- ${SRCDIR}/vim --version
- make $SHADOWOPT test
after_success:
- if [ x"$COVERAGE" = "xyes" ]; then ~/.local/bin/coveralls -b $SRCDIR -x .xs -e ${SRCDIR}/xxd -e ${SRCDIR}/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi
# vim:set sts=2 sw=2 tw=0 et:

54
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,54 @@
# Contributing to Vim
Patches are welcome in whatever form.
Discussions about patches happen on the vim-dev maillist.
If you create a pull request on GitHub it will be
forwarded to the vim-dev maillist. You can also send your patch there
directly. An attachment with a unified diff format is preferred.
Information about the maillist can be found [on the Vim website].
[on the Vim website]: http://www.vim.org/maillist.php#vim-dev
Please consider adding a test. Test coverage isn't very good yet, this needs
to improve. Look through recent patches for examples. The tests are located
under "src/testdir".
# Reporting issues
We use GitHub issues, but that is not a requirement. Writing to the Vim
maillist is also fine.
Please use the GitHub issues only for actual issues. If you are not 100% sure
that your problem is a Vim issue, please first discuss this on the Vim user
maillist. Try reproducing the problem without any plugins or settings:
vim -N -u NONE
If you report an issue, please describe exactly how to reproduce it.
For example, don't say "insert some text" but say what you did exactly:
"ahere is some text&lt;Esc&gt;".
Ideally, the steps you list can be used to write a test to verify the problem
is fixed.
Feel free to report even the smallest problem, also typos in the documentation.
You can find known issues in the todo file: ":help todo".
Or open [the todo file] on GitHub to see the latest version.
[the todo file]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
# Syntax, indent and other runtime files
The latest version of these files can be obtained from the repository.
They are usually not updated with numbered patches.
If you find a problem with one of these files or have a suggestion for
improvement, please first try to contact the maintainer directly.
Look in the header of the file for the name and email address.
The maintainer will take care of issues and send updates to Bram for
distribution with Vim.
If the maintainer does not react, contact the vim-dev maillist.

View File

@ -4,12 +4,17 @@
# source files for all source archives # source files for all source archives
SRC_ALL = \ SRC_ALL = \
.hgignore \ .hgignore \
.travis.yml \
appveyor.yml \
src/appveyor.bat \
src/README.txt \ src/README.txt \
src/alloc.h \
src/arabic.c \ src/arabic.c \
src/arabic.h \ src/arabic.h \
src/ascii.h \ src/ascii.h \
src/blowfish.c \ src/blowfish.c \
src/buffer.c \ src/buffer.c \
src/channel.c \
src/charset.c \ src/charset.c \
src/crypt.c \ src/crypt.c \
src/crypt_zip.c \ src/crypt_zip.c \
@ -36,6 +41,8 @@ SRC_ALL = \
src/gui_beval.h \ src/gui_beval.h \
src/hardcopy.c \ src/hardcopy.c \
src/hashtab.c \ src/hashtab.c \
src/json.c \
src/json_test.c \
src/keymap.h \ src/keymap.h \
src/macros.h \ src/macros.h \
src/main.c \ src/main.c \
@ -83,8 +90,11 @@ SRC_ALL = \
src/main.aap \ src/main.aap \
src/testdir/main.aap \ src/testdir/main.aap \
src/testdir/README.txt \ src/testdir/README.txt \
src/testdir/Make_all.mak \
src/testdir/*.in \ src/testdir/*.in \
src/testdir/*.py \
src/testdir/sautest/autoload/*.vim \ src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \
src/testdir/test[0-9]*.ok \ src/testdir/test[0-9]*.ok \
src/testdir/test[0-9]*a.ok \ src/testdir/test[0-9]*a.ok \
src/testdir/test_[a-z]*.ok \ src/testdir/test_[a-z]*.ok \
@ -108,6 +118,7 @@ SRC_ALL = \
src/proto.h \ src/proto.h \
src/proto/blowfish.pro \ src/proto/blowfish.pro \
src/proto/buffer.pro \ src/proto/buffer.pro \
src/proto/channel.pro \
src/proto/charset.pro \ src/proto/charset.pro \
src/proto/crypt.pro \ src/proto/crypt.pro \
src/proto/crypt_zip.pro \ src/proto/crypt_zip.pro \
@ -127,6 +138,7 @@ SRC_ALL = \
src/proto/gui_beval.pro \ src/proto/gui_beval.pro \
src/proto/hardcopy.pro \ src/proto/hardcopy.pro \
src/proto/hashtab.pro \ src/proto/hashtab.pro \
src/proto/json.pro \
src/proto/main.pro \ src/proto/main.pro \
src/proto/mark.pro \ src/proto/mark.pro \
src/proto/mbyte.pro \ src/proto/mbyte.pro \
@ -166,6 +178,7 @@ SRC_UNIX = \
README_src.txt \ README_src.txt \
configure \ configure \
pixmaps/*.xpm \ pixmaps/*.xpm \
pixmaps/*.png \
pixmaps/gen-inline-pixbufs.sh \ pixmaps/gen-inline-pixbufs.sh \
pixmaps/stock_icons.h \ pixmaps/stock_icons.h \
src/INSTALL \ src/INSTALL \
@ -186,6 +199,7 @@ SRC_UNIX = \
src/gui_gtk_f.c \ src/gui_gtk_f.c \
src/gui_gtk_f.h \ src/gui_gtk_f.h \
src/gui_gtk_x11.c \ src/gui_gtk_x11.c \
src/gui_gtk_res.xml \
src/gui_motif.c \ src/gui_motif.c \
src/gui_xmdlg.c \ src/gui_xmdlg.c \
src/gui_xmebw.c \ src/gui_xmebw.c \
@ -211,6 +225,7 @@ SRC_UNIX = \
src/proto/gui_athena.pro \ src/proto/gui_athena.pro \
src/proto/gui_gtk.pro \ src/proto/gui_gtk.pro \
src/proto/gui_gtk_x11.pro \ src/proto/gui_gtk_x11.pro \
src/proto/gui_gtk_gresources.pro \
src/proto/gui_motif.pro \ src/proto/gui_motif.pro \
src/proto/gui_xmdlg.pro \ src/proto/gui_xmdlg.pro \
src/proto/gui_x11.pro \ src/proto/gui_x11.pro \
@ -247,7 +262,6 @@ SRC_DOS_UNIX = \
src/if_python3.c \ src/if_python3.c \
src/if_py_both.h \ src/if_py_both.h \
src/if_ruby.c \ src/if_ruby.c \
src/if_sniff.h \
src/if_tcl.c \ src/if_tcl.c \
src/proto/if_cscope.pro \ src/proto/if_cscope.pro \
src/proto/if_lua.pro \ src/proto/if_lua.pro \
@ -277,16 +291,13 @@ SRC_DOS = \
src/GvimExt/uninst.bat \ src/GvimExt/uninst.bat \
README_srcdos.txt \ README_srcdos.txt \
src/INSTALLpc.txt \ src/INSTALLpc.txt \
src/Make_bc3.mak \
src/Make_bc5.mak \ src/Make_bc5.mak \
src/Make_cyg.mak \ src/Make_cyg.mak \
src/Make_cyg_ming.mak \ src/Make_cyg_ming.mak \
src/Make_djg.mak \
src/Make_ivc.mak \ src/Make_ivc.mak \
src/Make_dvc.mak \ src/Make_dvc.mak \
src/Make_ming.mak \ src/Make_ming.mak \
src/Make_mvc.mak \ src/Make_mvc.mak \
src/Make_w16.mak \
src/bigvim.bat \ src/bigvim.bat \
src/bigvim64.bat \ src/bigvim64.bat \
src/msvcsetup.bat \ src/msvcsetup.bat \
@ -300,30 +311,21 @@ SRC_DOS = \
src/glbl_ime.h \ src/glbl_ime.h \
src/gui_dwrite.cpp \ src/gui_dwrite.cpp \
src/gui_dwrite.h \ src/gui_dwrite.h \
src/gui_w16.c \
src/gui_w32.c \ src/gui_w32.c \
src/gui_w48.c \
src/guiw16rc.h \
src/gui_w32_rc.h \ src/gui_w32_rc.h \
src/if_ole.cpp \ src/if_ole.cpp \
src/if_ole.h \ src/if_ole.h \
src/if_ole.idl \ src/if_ole.idl \
src/if_perl_msvc/stdbool.h \
src/iid_ole.c \ src/iid_ole.c \
src/os_dos.h \ src/os_dos.h \
src/os_msdos.c \
src/os_msdos.h \
src/os_w32dll.c \ src/os_w32dll.c \
src/os_w32exe.c \ src/os_w32exe.c \
src/os_win16.c \
src/os_win32.c \ src/os_win32.c \
src/os_mswin.c \ src/os_mswin.c \
src/os_win16.h \
src/os_win32.h \ src/os_win32.h \
src/proto/gui_w16.pro \
src/proto/gui_w32.pro \ src/proto/gui_w32.pro \
src/proto/if_ole.pro \ src/proto/if_ole.pro \
src/proto/os_msdos.pro \
src/proto/os_win16.pro \
src/proto/os_win32.pro \ src/proto/os_win32.pro \
src/proto/os_mswin.pro \ src/proto/os_mswin.pro \
src/testdir/Make_dos.mak \ src/testdir/Make_dos.mak \
@ -334,19 +336,15 @@ SRC_DOS = \
src/vim.rc \ src/vim.rc \
src/vimio.h \ src/vimio.h \
src/gvim.exe.mnf \ src/gvim.exe.mnf \
src/vim16.def \
src/vim16.rc \
src/vimrun.c \ src/vimrun.c \
src/vimtbar.h \ src/vimtbar.h \
src/xpm_w32.c \ src/xpm_w32.c \
src/xpm_w32.h \ src/xpm_w32.h \
src/xxd/Make_bc3.mak \
src/xxd/Make_bc5.mak \ src/xxd/Make_bc5.mak \
src/xxd/Make_cyg.mak \
src/xxd/Make_djg.mak \
src/xxd/Make_ming.mak \ src/xxd/Make_ming.mak \
src/xxd/Make_mvc.mak \ src/xxd/Make_mvc.mak \
nsis/gvim.nsi \ nsis/gvim.nsi \
nsis/gvim_version.nsh \
nsis/README.txt \ nsis/README.txt \
uninstal.txt \ uninstal.txt \
src/VisVim/Commands.cpp \ src/VisVim/Commands.cpp \
@ -375,7 +373,6 @@ SRC_DOS_BIN = \
src/VisVim/Res/*.bmp \ src/VisVim/Res/*.bmp \
src/tearoff.bmp \ src/tearoff.bmp \
src/tools.bmp \ src/tools.bmp \
src/tools16.bmp \
src/vim*.ico \ src/vim*.ico \
src/vim.tlb \ src/vim.tlb \
src/vimtbar.lib \ src/vimtbar.lib \
@ -437,15 +434,6 @@ SRC_VMS = \
src/xxd/Make_vms.mms \ src/xxd/Make_vms.mms \
vimtutor.com \ vimtutor.com \
# source files for OS/2 (in the extra archive)
SRC_OS2 = \
src/Make_os2.mak \
src/os_os2_cfg.h \
src/testdir/Make_os2.mak \
src/testdir/todos.vim \
src/testdir/os2.vim \
src/xxd/Make_os2.mak \
# source files for QNX (in the extra archive) # source files for QNX (in the extra archive)
SRC_QNX = \ SRC_QNX = \
src/os_qnx.c \ src/os_qnx.c \
@ -462,12 +450,10 @@ SRC_EXTRA = \
$(SRC_DOS) \ $(SRC_DOS) \
$(SRC_DOS_BIN) \ $(SRC_DOS_BIN) \
$(SRC_MAC) \ $(SRC_MAC) \
$(SRC_OS2) \
$(SRC_QNX) \ $(SRC_QNX) \
$(SRC_VMS) \ $(SRC_VMS) \
README_os390.txt \ README_os390.txt \
src/Make_mint.mak \ src/Make_mint.mak \
src/if_sniff.c \
src/infplist.xml \ src/infplist.xml \
src/link.390 \ src/link.390 \
src/os_beos.c \ src/os_beos.c \
@ -481,6 +467,8 @@ SRC_EXTRA = \
# runtime files for all distributions # runtime files for all distributions
RT_ALL = \ RT_ALL = \
README.txt \ README.txt \
README.md \
CONTRIBUTING.md \
runtime/bugreport.vim \ runtime/bugreport.vim \
runtime/doc/*.awk \ runtime/doc/*.awk \
runtime/doc/*.pl \ runtime/doc/*.pl \
@ -580,6 +568,8 @@ RT_UNIX = \
runtime/vim32x32.xpm \ runtime/vim32x32.xpm \
runtime/vim48x48.png \ runtime/vim48x48.png \
runtime/vim48x48.xpm \ runtime/vim48x48.xpm \
runtime/gvim.desktop \
runtime/vim.desktop \
# Unix and DOS runtime without CR-LF translation # Unix and DOS runtime without CR-LF translation
RT_UNIX_DOS_BIN = \ RT_UNIX_DOS_BIN = \
@ -700,8 +690,8 @@ EXTRA = \
runtime/vimlogo.xpm \ runtime/vimlogo.xpm \
src/swis.s \ src/swis.s \
src/tee/Makefile \ src/tee/Makefile \
src/tee/Make_mvc.mak \
src/tee/tee.c \ src/tee/tee.c \
csdpmi4b.zip \
# generic language files # generic language files
LANG_GEN = \ LANG_GEN = \

129
Makefile
View File

@ -63,9 +63,6 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
# amirt vim##rt.tgz runtime for Amiga # amirt vim##rt.tgz runtime for Amiga
# amibin vim##bin.tgz binary for Amiga # amibin vim##bin.tgz binary for Amiga
# #
# os2bin vim##os2.zip binary for OS/2
# (use RT from dosrt)
#
# farsi farsi##.zip Farsi fonts # farsi farsi##.zip Farsi fonts
# #
# All output files are created in the "dist" directory. Existing files are # All output files are created in the "dist" directory. Existing files are
@ -89,9 +86,9 @@ MINOR = 4
# #
# - Update Vim version number. For a test version in: src/version.h, Contents, # - Update Vim version number. For a test version in: src/version.h, Contents,
# MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt, # MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt,
# runtime/doc/*.txt and nsis/gvim.nsi. Other things in README_os2.txt. For a # runtime/doc/*.txt and nsis/gvim.nsi.
# minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def, # For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def,
# src/gvim.exe.mnf. # src/vim16.def, src/gvim.exe.mnf.
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if # - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
# you can make it all work), Cscope and "huge" features. Exclude workshop # you can make it all work), Cscope and "huge" features. Exclude workshop
# and SNiFF. # and SNiFF.
@ -132,36 +129,61 @@ MINOR = 4
# flag). # flag).
# - "make amirt", "make amibin". # - "make amirt", "make amibin".
# #
# PC: # MS-Windows:
# - Run make on Unix to update the ".mo" files. # - Run make on Unix to update the ".mo" files.
# - "make dossrc" and "make dosrt". Unpack the archives on a PC. # - Get libintl-8.dll and libiconv-2.dll. E.g. from
# Win32 console version: # https://mlocati.github.io/gettext-iconv-windows/ .
# - Set environment for Visual C++ 2008, e.g.: "msvc2008.bat" Or: # Put them in the top directory, "make dosrt" uses them.
# "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat". # - > make dossrc
# > make dosrt
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
# 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 # Or, when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the
# paths when necessary). # paths when necessary).
# For Windows 98/ME the 2003 version is required, but then the executable # For Windows 98/ME the 2003 version is required, but then the executable
# won't work on Windows 7 and 64 bit systems. # won't work on Windows 7 and 64 bit systems.
# - "nmake -f Make_mvc.mak" (use the same path as for vcvars32.bat) # - > cd src
# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output. # > nmake -f Make_mvc.mak
# - Run the tests:
# > rm testdir/*.out testdir/*.res
# > nmake -f Make_mvc.mak test
# - check the output.
# - Rename vim.exe to vimw32.exe, xxd/xxd.exe to xxdw32.exe. # - Rename vim.exe to vimw32.exe, xxd/xxd.exe to xxdw32.exe.
# - Rename vim.pdb to vimw32.pdb. # - Rename vim.pdb to vimw32.pdb.
# - Rename install.exe to installw32.exe and uninstal.exe to uninstalw32.exe. # - Rename install.exe to installw32.exe and uninstal.exe to uninstalw32.exe.
# Win32 GUI version: # Win32 GUI version build:
# - "nmake -f Make_mvc.mak GUI=yes" # - > cd src
# > nmake -f Make_mvc.mak GUI=yes
# - Run the tests:
# > rm testdir/*.out testdir/*.res
# > nmake -f Make_mvc.mak testgvim
# - check the output.
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it). # - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move gvim.pdb to here. # - Move gvim.pdb to here.
# - Delete vimrun.exe, install.exe and uninstal.exe.
# - Copy "GvimExt/gvimext.dll" to here. # - Copy "GvimExt/gvimext.dll" to here.
# - Delete vimrun.exe, install.exe and uninstal.exe.
# Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME: # Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME:
# - Run src/bigvim.bat ("nmake -f Make_mvc.mak GUI=yes OLE=yes IME=yes ...) # - Install the interfaces you want, see src/INSTALLpc.txt
# - Build:
# > cd src
# Adjust bigvim.bat to match the version of each interface you want.
# > bigvim.bat
# - Run the tests:
# > rm testdir/*.out testdir/*.res
# > nmake -f Make_mvc.mak testgvim
# - check the output.
# - Rename "gvim.exe" to "gvim_ole.exe". # - Rename "gvim.exe" to "gvim_ole.exe".
# - Rename gvim.pdb to "gvim_ole.pdb". # - Rename gvim.pdb to "gvim_ole.pdb".
# - Delete install.exe and uninstal.exe. # - Delete install.exe and uninstal.exe.
# Create the archives: # Create the archives:
# - Copy all the "*.exe" files to where this Makefile is. # - Copy all the "*.exe" files to where this Makefile is.
# - Copy all the "*.pdb" files to where this Makefile is. # - Copy all the "*.pdb" files to where this Makefile is.
# - "make dosbin". # - in this directory:
# > make dosbin
# NSIS self installing exe: # NSIS self installing exe:
# - To get NSIS see http://nsis.sourceforge.net # - To get NSIS see http://nsis.sourceforge.net
# - Make sure gvim_ole.exe, vimw32.exe, installw32.exe, # - Make sure gvim_ole.exe, vimw32.exe, installw32.exe,
@ -173,17 +195,23 @@ MINOR = 4
# Note: VisVim needs to be build with MSVC 5, newer versions don't work. # Note: VisVim needs to be build with MSVC 5, newer versions don't work.
# gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/ # gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
# It is part of vim72.zip as vim72/gvimext.dll. # It is part of vim72.zip as vim72/gvimext.dll.
# - make sure there is a diff.exe two levels up # - Make sure there is a diff.exe two levels up (get it from a previous Vim
# - go to ../nsis and do "makensis gvim.nsi" (takes a few minutes). # version).
# - go to ../nsis and do:
# > makensis gvim.nsi (takes a few minutes).
# - Copy gvim##.exe to the dist directory. # - Copy gvim##.exe to the dist directory.
# #
# 64 bit builds (these are not in the normal distribution, the 32 bit build # 64 bit builds (these are not in the normal distribution, the 32 bit build
# works just fine on 64 bit systems). # works just fine on 64 bit systems).
# Like the console and GUI version, but first run vcvars64.bat or # Like the console and GUI version, but first run vcvars64.bat or
# "..\VC\vcvarsall.bat x86_amd64". # "..\VC\vcvarsall.bat x86_amd64".
# - "nmake -f Make_mvc.mak" # - Build the console version:
# - "nmake -f Make_mvc.mak GUI=yes" # > nmake -f Make_mvc.mak
# Or run src/bigvim64.bat for an OLE version. # - Build the GUI version:
# > nmake -f Make_mvc.mak GUI=yes
# - Build the OLE version with interfaces:
# > bigvim64.bat
#
# #
# OBSOLETE systems: You can build this if you have an appropriate system. # OBSOLETE systems: You can build this if you have an appropriate system.
# #
@ -204,7 +232,7 @@ MINOR = 4
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and # - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
# "uninstald32.exe". # "uninstald32.exe".
# #
# Win32s GUI version: (requires very old compiler) # Win32s GUI version: (requires a very old compiler)
# - Set environment for Visual C++ 4.1 (requires a new console window): # - Set environment for Visual C++ 4.1 (requires a new console window):
# "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin) # "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1) # - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
@ -257,7 +285,6 @@ COMMENT_GVIM = comment/$(VERSION)-bin-gvim
COMMENT_OLE = comment/$(VERSION)-bin-ole COMMENT_OLE = comment/$(VERSION)-bin-ole
COMMENT_W32S = comment/$(VERSION)-bin-w32s COMMENT_W32S = comment/$(VERSION)-bin-w32s
COMMENT_SRC = comment/$(VERSION)-src COMMENT_SRC = comment/$(VERSION)-src
COMMENT_OS2 = comment/$(VERSION)-bin-os2
COMMENT_HTML = comment/$(VERSION)-html COMMENT_HTML = comment/$(VERSION)-html
COMMENT_FARSI = comment/$(VERSION)-farsi COMMENT_FARSI = comment/$(VERSION)-farsi
@ -285,9 +312,6 @@ dist/$(COMMENT_W32S): dist/comment
dist/$(COMMENT_SRC): dist/comment dist/$(COMMENT_SRC): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) sources for MS-DOS and MS-Windows" > dist/$(COMMENT_SRC) echo "Vim - Vi IMproved - v$(VDOT) sources for MS-DOS and MS-Windows" > dist/$(COMMENT_SRC)
dist/$(COMMENT_OS2): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) binaries + runtime files for OS/2" > dist/$(COMMENT_OS2)
dist/$(COMMENT_HTML): dist/comment dist/$(COMMENT_HTML): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) documentation in HTML" > dist/$(COMMENT_HTML) echo "Vim - Vi IMproved - v$(VDOT) documentation in HTML" > dist/$(COMMENT_HTML)
@ -396,7 +420,9 @@ no_title.vim: Makefile
echo "set notitle noicon nocp nomodeline viminfo=" >no_title.vim echo "set notitle noicon nocp nomodeline viminfo=" >no_title.vim
# MS-DOS sources # MS-DOS sources
dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt dossrc: dist no_title.vim dist/$(COMMENT_SRC) \
runtime/doc/uganda.nsis.txt \
nsis/gvim_version.nsh
-rm -rf dist/vim$(VERSION)src.zip -rm -rf dist/vim$(VERSION)src.zip
-rm -rf dist/vim -rm -rf dist/vim
mkdir dist/vim mkdir dist/vim
@ -407,10 +433,12 @@ dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
$(SRC_AMI_DOS) \ $(SRC_AMI_DOS) \
$(SRC_DOS_UNIX) \ $(SRC_DOS_UNIX) \
runtime/doc/uganda.nsis.txt \ runtime/doc/uganda.nsis.txt \
nsis/gvim_version.nsh \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR) mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
rmdir dist/vim/$(VIMRTDIR)/runtime rmdir dist/vim/$(VIMRTDIR)/runtime
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \; # This file needs to be in dos fileformat for NSIS.
$(VIM) -e -X -u no_title.vim -c ":set tx|wq" dist/vim/$(VIMRTDIR)/doc/uganda.nsis.txt
tar cf - \ tar cf - \
$(SRC_DOS_BIN) \ $(SRC_DOS_BIN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
@ -419,12 +447,21 @@ dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt
cd runtime/doc && $(MAKE) uganda.nsis.txt cd runtime/doc && $(MAKE) uganda.nsis.txt
dosrt: dist dist/$(COMMENT_RT) dosrt_unix2dos nsis/gvim_version.nsh: Makefile
echo "# Generated from Makefile: define the version numbers" > $@
echo "!ifndef __GVIM_VER__NSH__" >> $@
echo "!define __GVIM_VER__NSH__" >> $@
echo "!define VER_MAJOR $(MAJOR)" >> $@
echo "!define VER_MINOR $(MINOR)" >> $@
echo "!endif" >> $@
dosrt: dist dist/$(COMMENT_RT) dosrt_files
-rm -rf dist/vim$(VERSION)rt.zip -rm -rf dist/vim$(VERSION)rt.zip
cd dist && zip -9 -rD -z vim$(VERSION)rt.zip vim <$(COMMENT_RT) cd dist && zip -9 -rD -z vim$(VERSION)rt.zip vim <$(COMMENT_RT)
# Split in two parts to avoid an "argument list too long" error. # Split in two parts to avoid an "argument list too long" error.
dosrt_unix2dos: dist prepare no_title.vim # We no longer convert the files from unix to dos fileformat.
dosrt_files: dist prepare no_title.vim
-rm -rf dist/vim -rm -rf dist/vim
mkdir dist/vim mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR) mkdir dist/vim/$(VIMRTDIR)
@ -440,7 +477,6 @@ dosrt_unix2dos: dist prepare no_title.vim
$(RT_AMI_DOS) \ $(RT_AMI_DOS) \
$(LANG_GEN) \ $(LANG_GEN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
tar cf - \ tar cf - \
$(RT_UNIX_DOS_BIN) \ $(RT_UNIX_DOS_BIN) \
$(RT_ALL_BIN) \ $(RT_ALL_BIN) \
@ -460,12 +496,12 @@ dosrt_unix2dos: dist prepare no_title.vim
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \ cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
fi \ fi \
done done
cp libintl.dll dist/vim/$(VIMRTDIR)/ cp libintl-8.dll dist/vim/$(VIMRTDIR)/
cp libiconv-2.dll dist/vim/$(VIMRTDIR)/
# Convert runtime files from Unix fileformat to dos fileformat.
# Used before uploading. Don't delete the AAPDIR/sign files! # Used before uploading. Don't delete the AAPDIR/sign files!
runtime_unix2dos: dosrt_unix2dos runtime_unix2dos: dosrt_files
-rm -rf `find runtime/dos -type f -print | sed -e /AAPDIR/d` -rm -rf `find runtime/dos -type f -print | sed -e /AAPDIR/d`
cd dist/vim/$(VIMRTDIR); tar cf - * \ cd dist/vim/$(VIMRTDIR); tar cf - * \
| (cd ../../../runtime/dos; tar xf -) | (cd ../../../runtime/dos; tar xf -)
@ -481,7 +517,6 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
@ -500,7 +535,6 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
@ -517,7 +551,6 @@ dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
@ -534,7 +567,6 @@ dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
@ -550,7 +582,6 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
@ -572,7 +603,6 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp README_w32s.txt dist/vim/$(VIMRTDIR) cp README_w32s.txt dist/vim/$(VIMRTDIR)
@ -580,21 +610,6 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S) cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
os2bin: dist no_title.vim dist/$(COMMENT_OS2)
-rm -rf dist/vim$(VERSION)os2.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(BIN_OS2) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimos2.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdos2.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp teeos2.exe dist/vim/$(VIMRTDIR)/tee.exe
cp emx.dll emxlibcs.dll dist/vim/$(VIMRTDIR)
cd dist && zip -9 -rD -z vim$(VERSION)os2.zip vim <$(COMMENT_OS2)
html: dist dist/$(COMMENT_HTML) html: dist dist/$(COMMENT_HTML)
-rm -rf dist/vim$(VERSION)html.zip -rm -rf dist/vim$(VERSION)html.zip
cd runtime/doc && zip -9 -z ../../dist/vim$(VERSION)html.zip *.html <../../dist/$(COMMENT_HTML) cd runtime/doc && zip -9 -z ../../dist/vim$(VERSION)html.zip *.html <../../dist/$(COMMENT_HTML)

124
README.md Normal file
View File

@ -0,0 +1,124 @@
`README.md` for version 7.4 of Vim: Vi IMproved.
[![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
[![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)
## What is Vim? ##
Vim is an almost compatible version of the UNIX editor Vi. Many new features
have been added: multi-level undo, syntax highlighting, command line history,
on-line help, spell checking, filename completion, block operations, etc.
There is also a Graphical User Interface (GUI) available. See
`runtime/doc/vi_diff.txt` for differences with Vi.
This editor is very useful for editing programs and other plain text files.
All commands are given with normal keyboard characters, so those who can type
with ten fingers can work very fast. Additionally, function keys can be
defined by the user, and the mouse can be used.
Vim runs under MS-DOS, MS-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh,
VMS and almost all flavours of UNIX. Porting to other systems should not be
very difficult. Older versions of Vim run on MS-Windows 95/98/Me, Amiga DOS,
Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
## Distribution ##
You can often use your favorite package manager to install Vim. On Mac and
Linux a small version of Vim is pre-installed, you still need to install Vim
if you want more features.
There are separate distributions for Unix, PC, Amiga and some other systems.
This `README.md` file comes with the runtime archive. It includes the
documentation, syntax files and other files that are used at runtime. To run
Vim you must get either one of the binary archives or a source archive.
Which one you need depends on the system you want to run it on and whether you
want or must compile it yourself. Check http://www.vim.org/download.php for
an overview of currently available distributions.
## Documentation ##
The vim tutor is a one hour training course for beginners. Mostly it can be
started as `vimtutor`. See `:help tutor` for more information.
The best is to use `:help` in Vim. If you don't have an executable yet, read
`runtime/doc/help.txt`. It contains pointers to the other documentation
files. The User Manual reads like a book and is recommended to learn to use
Vim. See `:help user-manual`.
## Copying ##
Vim is Charityware. You can use and copy it as much as you like, but you are
encouraged to make a donation to help orphans in Uganda. Please read the file
`runtime/doc/uganda.txt` for details (do `:help uganda` inside Vim).
Summary of the license: There are no restrictions on using or distributing an
unmodified copy of Vim. Parts of Vim may also be distributed, but the license
text must always be included. For modified versions a few restrictions apply.
The license is GPL compatible, you may compile Vim with GPL libraries and
distribute it.
## Sponsoring ##
Fixing bugs and adding new features takes a lot of time and effort. To show
your appreciation for the work and motivate Bram and others to continue
working on Vim please send a donation.
Since Bram is back to a paid job the money will now be used to help children
in Uganda. See `runtime/doc/uganda.txt`. But at the same time donations
increase Bram's motivation to keep working on Vim!
For the most recent information about sponsoring look on the Vim web site:
http://www.vim.org/sponsor/
## Compiling ##
If you obtained a binary distribution you don't need to compile Vim. If you
obtained a source distribution, all the stuff for compiling Vim is in the
`src` directory. See `src/INSTALL` for instructions.
## Installation ##
See one of these files for system-specific instructions:
README_ami.txt Amiga
README_unix.txt Unix
README_dos.txt MS-DOS and MS-Windows
README_mac.txt Macintosh
README_vms.txt VMS
There are more `README_*.txt` files, depending on the distribution you used.
## Contributing ##
If you would like to help making Vim better, see the [CONTRIBUTING.md](https://github.com/vim/vim/blob/master/CONTRIBUTING.md) file.
## Information ##
The latest news about Vim can be found on the Vim home page:
http://www.vim.org/
If you have problems, have a look at the Vim documentation or tips:
http://www.vim.org/docs.php
http://vim.wikia.com/wiki/Vim_Tips_Wiki
If you still have problems or any other questions, use one of the mailing
lists to discuss them with Vim users and developers:
http://www.vim.org/maillist.php
If nothing else works, report bugs directly:
Bram Moolenaar <Bram@vim.org>
## Main author ##
Send any other comments, patches, flowers and suggestions to:
Bram Moolenaar <Bram@vim.org>

View File

@ -1,7 +1,7 @@
README.txt for version 7.4 of Vim: Vi IMproved. README.txt for version 7.4 of Vim: Vi IMproved.
WHAT IS VIM WHAT IS VIM?
Vim is an almost compatible version of the UNIX editor Vi. Many new features Vim is an almost compatible version of the UNIX editor Vi. Many new features
have been added: multi-level undo, syntax highlighting, command line history, have been added: multi-level undo, syntax highlighting, command line history,
@ -14,13 +14,18 @@ All commands are given with normal keyboard characters, so those who can type
with ten fingers can work very fast. Additionally, function keys can be with ten fingers can work very fast. Additionally, function keys can be
defined by the user, and the mouse can be used. defined by the user, and the mouse can be used.
Vim runs under Amiga DOS, MS-DOS, MS-Windows (95, 98, Me, NT, 2000, XP, Vista, Vim runs under MS-DOS, MS-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh,
7), Atari MiNT, Macintosh, BeOS, VMS, RISC OS, OS/2 and almost all flavours of VMS and almost all flavours of UNIX. Porting to other systems should not be
UNIX. Porting to other systems should not be very difficult. very difficult. Older versions of Vim run on MS-Windows 95/98/Me, Amiga DOS,
Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
DISTRIBUTION DISTRIBUTION
You can often use your favorite package manager to install Vim. On Mac and
Linux a small version of Vim is pre-installed, you still need to install Vim
if you want more features.
There are separate distributions for Unix, PC, Amiga and some other systems. There are separate distributions for Unix, PC, Amiga and some other systems.
This README.txt file comes with the runtime archive. It includes the This README.txt file comes with the runtime archive. It includes the
documentation, syntax files and other files that are used at runtime. To run documentation, syntax files and other files that are used at runtime. To run
@ -82,7 +87,6 @@ See one of these files for system-specific instructions:
README_ami.txt Amiga README_ami.txt Amiga
README_unix.txt Unix README_unix.txt Unix
README_dos.txt MS-DOS and MS-Windows README_dos.txt MS-DOS and MS-Windows
README_os2.txt OS/2
README_mac.txt Macintosh README_mac.txt Macintosh
README_vms.txt VMS README_vms.txt VMS
@ -94,8 +98,9 @@ INFORMATION
The latest news about Vim can be found on the Vim home page: The latest news about Vim can be found on the Vim home page:
http://www.vim.org/ http://www.vim.org/
If you have problems, have a look at the Vim FAQ: If you have problems, have a look at the Vim documentation or tips:
http://vimdoc.sf.net/vimfaq.html http://www.vim.org/docs.php
http://vim.wikia.com/wiki/Vim_Tips_Wiki
If you still have problems or any other questions, use one of the mailing If you still have problems or any other questions, use one of the mailing
lists to discuss them with Vim users and developers: lists to discuss them with Vim users and developers:
@ -110,6 +115,3 @@ MAIN AUTHOR
Send any other comments, patches, flowers and suggestions to: Send any other comments, patches, flowers and suggestions to:
Bram Moolenaar E-mail: Bram@vim.org Bram Moolenaar E-mail: Bram@vim.org
Finsterruetihof 1
8134 Adliswil
Switzerland

View File

@ -1,58 +1,5 @@
README_os2.txt for version 7.4 of Vim: Vi IMproved. README_os2.txt for version 7.4 of Vim: Vi IMproved.
This file explains the installation of Vim on OS/2 systems. This file used to explain the installation of Vim on OS/2 systems.
However, support for OS/2 has been removed in patch 7.4.1008.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
NOTE: You will need two archives:
vim74rt.zip contains the runtime files (same as for the PC version)
vim74os2.zip contains the OS/2 executables
1. Go to the directory where you want to put the Vim files. Examples:
cd C:\
cd D:\editors
2. Unpack the zip archives. This will create a new directory "vim/vim74",
in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite
existing files.
Examples:
pkunzip -d vim74os2.zip
unzip vim74os2.zip
After you unpacked the files, you can still move the whole directory tree
to another location.
3. Add the directory where vim.exe is to your path. The simplest is to add a
line to your autoexec.bat. Examples:
set path=%path%;C:\vim\vim74
set path=%path%;D:\editors\vim\vim74
That's it!
Extra remarks:
- To avoid confusion between distributed files of different versions and your
own modified vim scripts, it is recommended to use this directory layout:
("C:\vim" is used here as the root, replace with the path you use)
Your own files:
C:\vim\_vimrc Your personal vimrc.
C:\vim\_viminfo Dynamic info for 'viminfo'.
C:\vim\... Other files you made.
Distributed files:
C:\vim\vim74\vim.exe The Vim version 7.4 executable.
C:\vim\vim74\doc\*.txt The version 7.4 documentation files.
C:\vim\vim74\bugreport.vim A Vim version 7.4 script.
C:\vim\vim74\... Other version 7.4 distributed files.
In this case the $VIM environment variable would be set like this:
set VIM=C:\vim
- You can put your Vim executable anywhere else. If the executable is not
with the other distributed Vim files, you should set $VIM. The simplest is
to add a line to your autoexec.bat. Examples:
set VIM=c:\vim
set VIM=d:\editors\vim
For further information, type this inside Vim:
:help os2

34
appveyor.yml Normal file
View File

@ -0,0 +1,34 @@
version: "{build}"
skip_tags: true
environment:
matrix:
- FEATURE: HUGE
- FEATURE: NORMAL
# disabled
# - FEATURE: TINY
# - FEATURE: SMALL
# - FEATURE: BIG
matrix:
fast_finish: true
before_build:
- '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release'
# Work around for Python 2.7.11's bug
- reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:32
- reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:64
build_script:
- src/appveyor.bat
test_script:
- cd src/testdir
# Testing with MSVC gvim
- nmake -f Make_dos.mak VIMPROG=..\gvim
- nmake -f Make_dos.mak clean
# Testing with MingW console version
- nmake -f Make_dos.mak VIMPROG=..\vim
# vim: sw=2 sts=2 et ts=2 sr

Binary file not shown.

View File

@ -6,13 +6,19 @@
# because uninstall deletes most files in $0. # because uninstall deletes most files in $0.
# Location of gvim_ole.exe, vimw32.exe, GvimExt/*, etc. # Location of gvim_ole.exe, vimw32.exe, GvimExt/*, etc.
!define VIMSRC "..\src" !ifndef VIMSRC
!define VIMSRC "..\src"
!endif
# Location of runtime files # Location of runtime files
!define VIMRT ".." !ifndef VIMRT
!define VIMRT ".."
!endif
# Location of extra tools: diff.exe # Location of extra tools: diff.exe
!define VIMTOOLS ..\.. !ifndef VIMTOOLS
!define VIMTOOLS ..\..
!endif
# Comment the next line if you don't have UPX. # Comment the next line if you don't have UPX.
# Get it at http://upx.sourceforge.net # Get it at http://upx.sourceforge.net
@ -21,8 +27,7 @@
# comment the next line if you do not want to add Native Language Support # comment the next line if you do not want to add Native Language Support
!define HAVE_NLS !define HAVE_NLS
!define VER_MAJOR 7 !include gvim_version.nsh # for version number
!define VER_MINOR 4
# ----------- No configurable settings below this line ----------- # ----------- No configurable settings below this line -----------
@ -33,9 +38,10 @@
Name "Vim ${VER_MAJOR}.${VER_MINOR}" Name "Vim ${VER_MAJOR}.${VER_MINOR}"
OutFile gvim${VER_MAJOR}${VER_MINOR}.exe OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
CRCCheck force CRCCheck force
SetCompressor lzma SetCompressor /SOLID lzma
SetDatablockOptimize on SetDatablockOptimize on
RequestExecutionLevel highest RequestExecutionLevel highest
XPStyle on
ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer." ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
DirText "Choose a directory to install Vim (should contain 'vim')" DirText "Choose a directory to install Vim (should contain 'vim')"
@ -56,9 +62,6 @@ LicenseData ${VIMRT}\doc\uganda.nsis.txt
!packhdr temp.dat "upx --best --compress-icons=1 temp.dat" !packhdr temp.dat "upx --best --compress-icons=1 temp.dat"
!endif !endif
SetCompressor /SOLID lzma
XPStyle on
# This adds '\vim' to the user choice automagically. The actual value is # This adds '\vim' to the user choice automagically. The actual value is
# obtained below with ReadINIStr. # obtained below with ReadINIStr.
InstallDir "$PROGRAMFILES\Vim" InstallDir "$PROGRAMFILES\Vim"
@ -356,7 +359,9 @@ SectionEnd
File ${VIMRT}\keymap\README.txt File ${VIMRT}\keymap\README.txt
File ${VIMRT}\keymap\*.vim File ${VIMRT}\keymap\*.vim
SetOutPath $0 SetOutPath $0
File ${VIMRT}\libintl.dll File ${VIMRT}\libintl-8.dll
File ${VIMRT}\libiconv-2.dll
File /nonfatal ${VIMRT}\libwinpthread-1.dll
SectionEnd SectionEnd
!endif !endif

6
nsis/gvim_version.nsh Normal file
View File

@ -0,0 +1,6 @@
# Generated from Makefile: define the version numbers
!ifndef __GVIM_VER__NSH__
!define __GVIM_VER__NSH__
!define VER_MAJOR 7
!define VER_MINOR 4
!endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
pixmaps/stock_vim_shell.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
" netrwSettings.vim: makes netrw settings simpler " netrwSettings.vim: makes netrw settings simpler
" Date: Aug 27, 2013 " Date: Dec 30, 2014
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz> " Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
" Version: 14 " Version: 15
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1 " Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
@ -19,7 +19,7 @@
if exists("g:loaded_netrwSettings") || &cp if exists("g:loaded_netrwSettings") || &cp
finish finish
endif endif
let g:loaded_netrwSettings = "v14" let g:loaded_netrwSettings = "v15"
if v:version < 700 if v:version < 700
echohl WarningMsg echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0" echo "***warning*** this version of netrwSettings needs vim 7.0"
@ -31,7 +31,7 @@ endif
" NetrwSettings: {{{1 " NetrwSettings: {{{1
fun! netrwSettings#NetrwSettings() fun! netrwSettings#NetrwSettings()
" this call is here largely just to insure that netrw has been loaded " this call is here largely just to insure that netrw has been loaded
call netrw#NetrwSavePosn() call netrw#SavePosn()
if !exists("g:loaded_netrw") if !exists("g:loaded_netrw")
echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
return return
@ -177,6 +177,7 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
put = 'let g:netrw_sort_options = '.g:netrw_sort_options put = 'let g:netrw_sort_options = '.g:netrw_sort_options
put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
put = 'let g:netrw_servername = '.g:netrw_servername
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd

View File

@ -61,9 +61,16 @@ function! netrw_gitignore#Hide(...)
" convert gitignore patterns to Netrw/Vim regex patterns " convert gitignore patterns to Netrw/Vim regex patterns
let escaped_lines = [] let escaped_lines = []
for line in gitignore_lines for line in gitignore_lines
let escaped = line let escaped = line
let escaped = substitute(escaped, '\.', '\\.', 'g') let escaped = substitute(escaped, '\*\*', '*', 'g')
let escaped = substitute(escaped, '*', '.*', 'g') let escaped = substitute(escaped, '\.', '\\.', 'g')
let escaped = substitute(escaped, '\$', '\\$', 'g')
let escaped = substitute(escaped, '*', '.*', 'g')
" correction: dot, dollar and asterisks chars shouldn't be escaped when
" within regex matching groups.
let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\.', '\.', 'g')
let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\$', '\$', 'g')
let escaped = substitute(escaped, '\(\[[^]]*\)\zs\.\*', '*', 'g')
let escaped_lines = add(escaped_lines, escaped) let escaped_lines = add(escaped_lines, escaped)
endfor endfor

View File

@ -3,7 +3,7 @@
" Maintainer: Dávid Szabó ( complex857 AT gmail DOT com ) " Maintainer: Dávid Szabó ( complex857 AT gmail DOT com )
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) " Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" URL: https://github.com/shawncplus/phpcomplete.vim " URL: https://github.com/shawncplus/phpcomplete.vim
" Last Change: 2014 Dec 01 " Last Change: 2015 Jul 13
" "
" OPTIONS: " OPTIONS:
" "
@ -141,71 +141,80 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
if a:base != "" if a:base != ""
let context = substitute(context, '\s*[$a-zA-Z_0-9\x7f-\xff]*$', '', '') let context = substitute(context, '\s*[$a-zA-Z_0-9\x7f-\xff]*$', '', '')
end end
else
let context = ''
end end
let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(getline(0, line('.'))) try
let winheight = winheight(0)
let winnr = winnr()
if context =~? '^use\s' let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(getline(0, line('.')))
return phpcomplete#CompleteUse(a:base)
endif
if context =~ '\(->\|::\)$' if context =~? '^use\s' || context ==? 'use'
" {{{ return phpcomplete#CompleteUse(a:base)
" Get name of the class endif
let classname = phpcomplete#GetClassName(line('.'), context, current_namespace, imports)
" Get location of class definition, we have to iterate through all if context =~ '\(->\|::\)$'
if classname != '' " {{{
if classname =~ '\' " Get name of the class
" split the last \ segment as a classname, everything else is the namespace let classname = phpcomplete#GetClassName(line('.'), context, current_namespace, imports)
let classname_parts = split(classname, '\')
let namespace = join(classname_parts[0:-2], '\') " Get location of class definition, we have to iterate through all
let classname = classname_parts[-1] if classname != ''
if classname =~ '\'
" split the last \ segment as a classname, everything else is the namespace
let classname_parts = split(classname, '\')
let namespace = join(classname_parts[0:-2], '\')
let classname = classname_parts[-1]
else
let namespace = '\'
endif
let classlocation = phpcomplete#GetClassLocation(classname, namespace)
else else
let namespace = '\' let classlocation = ''
endif endif
let classlocation = phpcomplete#GetClassLocation(classname, namespace)
if classlocation != ''
if classlocation == 'VIMPHP_BUILTINOBJECT' && has_key(g:php_builtin_classes, tolower(classname))
return phpcomplete#CompleteBuiltInClass(context, classname, a:base)
endif
if filereadable(classlocation)
let classfile = readfile(classlocation)
let classcontent = ''
let classcontent .= "\n".phpcomplete#GetClassContents(classlocation, classname)
let sccontent = split(classcontent, "\n")
let visibility = expand('%:p') == fnamemodify(classlocation, ':p') ? 'private' : 'public'
return phpcomplete#CompleteUserClass(context, a:base, sccontent, visibility)
endif
endif
return phpcomplete#CompleteUnknownClass(a:base, context)
" }}}
elseif context =~? 'implements'
return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports)
elseif context =~? 'extends\s\+.\+$' && a:base == ''
return ['implements']
elseif context =~? 'extends'
let kinds = context =~? 'class\s' ? ['c'] : ['i']
return phpcomplete#CompleteClassName(a:base, kinds, current_namespace, imports)
elseif context =~? 'class [a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
" special case when you've typed the class keyword and the name too, only extends and implements allowed there
return filter(['extends', 'implements'], 'stridx(v:val, a:base) == 0')
elseif context =~? 'new'
return phpcomplete#CompleteClassName(a:base, ['c'], current_namespace, imports)
endif
if a:base =~ '^\$'
return phpcomplete#CompleteVariable(a:base)
else else
let classlocation = '' return phpcomplete#CompleteGeneral(a:base, current_namespace, imports)
endif endif
finally
if classlocation != '' silent! exec winnr.'resize '.winheight
if classlocation == 'VIMPHP_BUILTINOBJECT' && has_key(g:php_builtin_classes, tolower(classname)) endtry
return phpcomplete#CompleteBuiltInClass(context, classname, a:base)
endif
if filereadable(classlocation)
let classfile = readfile(classlocation)
let classcontent = ''
let classcontent .= "\n".phpcomplete#GetClassContents(classlocation, classname)
let sccontent = split(classcontent, "\n")
let visibility = expand('%:p') == fnamemodify(classlocation, ':p') ? 'private' : 'public'
return phpcomplete#CompleteUserClass(context, a:base, sccontent, visibility)
endif
endif
return phpcomplete#CompleteUnknownClass(a:base, context)
" }}}
elseif context =~? 'implements'
return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports)
elseif context =~? 'extends\s\+.\+$'
return ['implements']
elseif context =~? 'extends'
let kinds = context =~? 'class\s' ? ['c'] : ['i']
return phpcomplete#CompleteClassName(a:base, kinds, current_namespace, imports)
elseif context =~? 'class [a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
" special case when you've typed the class keyword and the name too, only extends and implements allowed there
return filter(['extends', 'implements'], 'stridx(v:val, a:base) == 0')
elseif context =~? 'new'
return phpcomplete#CompleteClassName(a:base, ['c'], current_namespace, imports)
endif
if a:base =~ '^\$'
return phpcomplete#CompleteVariable(a:base)
else
return phpcomplete#CompleteGeneral(a:base, current_namespace, imports)
endif
endfunction endfunction
" }}} " }}}
@ -244,12 +253,13 @@ function! phpcomplete#CompleteUse(base) " {{{
if has_key(tag, 'namespace') if has_key(tag, 'namespace')
let patched_ctags_detected = 1 let patched_ctags_detected = 1
endif endif
if tag.kind ==? 'n' && tag.name =~? '^'.namespace_match_pattern if tag.kind ==? 'n' && tag.name =~? '^'.namespace_match_pattern
let patched_ctags_detected = 1 let patched_ctags_detected = 1
call add(namespaced_matches, {'word': tag.name, 'kind': 'n', 'menu': tag.filename, 'info': tag.filename }) call add(namespaced_matches, {'word': tag.name, 'kind': 'n', 'menu': tag.filename, 'info': tag.filename })
elseif has_key(tag, 'namespace') && (tag.kind ==? 'c' || tag.kind ==? 'i') && tag.namespace ==? namespace_for_class elseif has_key(tag, 'namespace') && (tag.kind ==? 'c' || tag.kind ==? 'i' || tag.kind ==? 't') && tag.namespace ==? namespace_for_class
call add(namespaced_matches, {'word': namespace_for_class.'\'.tag.name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename }) call add(namespaced_matches, {'word': namespace_for_class.'\'.tag.name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename })
elseif (tag.kind ==? 'c' || tag.kind ==? 'i') elseif (tag.kind ==? 'c' || tag.kind ==? 'i' || tag.kind ==? 't')
call add(no_namespace_matches, {'word': namespace_for_class.'\'.tag.name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename }) call add(no_namespace_matches, {'word': namespace_for_class.'\'.tag.name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename })
endif endif
endfor endfor
@ -272,6 +282,10 @@ function! phpcomplete#CompleteUse(base) " {{{
endfor endfor
endif endif
for comp in res
let comp.word = substitute(comp.word, '^\\', '', '')
endfor
return res return res
endfunction endfunction
" }}} " }}}
@ -304,7 +318,7 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze') \ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
if f_name =~? '^'.substitute(a:base, '\\', '\\\\', 'g') if f_name =~? '^'.substitute(a:base, '\\', '\\\\', 'g')
let f_args = matchstr(i, let f_args = matchstr(i,
\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\({\|$\)') \ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\(;\|{\|$\)')
let int_functions[f_name.'('] = f_args.')' let int_functions[f_name.'('] = f_args.')'
endif endif
endfor endfor
@ -326,6 +340,7 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
let ext_functions = {} let ext_functions = {}
let ext_constants = {} let ext_constants = {}
let ext_classes = {} let ext_classes = {}
let ext_traits = {}
let ext_interfaces = {} let ext_interfaces = {}
let ext_namespaces = {} let ext_namespaces = {}
@ -420,7 +435,7 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
endif endif
endif endif
endif endif
elseif tag.kind ==? 'c' || tag.kind ==? 'i' elseif tag.kind ==? 'c' || tag.kind ==? 'i' || tag.kind ==? 't'
let info = ' - '.tag.filename let info = ' - '.tag.filename
let key = '' let key = ''
@ -441,6 +456,8 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
let ext_classes[key] = info let ext_classes[key] = info
elseif tag.kind ==? 'i' elseif tag.kind ==? 'i'
let ext_interfaces[key] = info let ext_interfaces[key] = info
elseif tag.kind ==? 't'
let ext_traits[key] = info
endif endif
endif endif
endif endif
@ -463,7 +480,7 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
endfor endfor
for [interfacename, info] in items(g:php_builtin_interfacenames) for [interfacename, info] in items(g:php_builtin_interfacenames)
if interfacename =~? '^'.base if interfacename =~? '^'.base
let builtin_interfaces[leading_slash.interfacename] = info let builtin_interfaces[leading_slash.g:php_builtin_interfaces[tolower(interfacename)].name] = info
endif endif
endfor endfor
endif endif
@ -511,6 +528,8 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
else else
let ext_interfaces[imported_name] = ' '.import.name.' - '.import.filename let ext_interfaces[imported_name] = ' '.import.name.' - '.import.filename
endif endif
elseif import.kind ==? 't'
let ext_traits[imported_name] = ' '.import.name.' - '.import.filename
endif endif
" no builtin interfaces " no builtin interfaces
@ -540,6 +559,9 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
" Add external interfaces " Add external interfaces
call extend(all_values, ext_interfaces) call extend(all_values, ext_interfaces)
" Add external traits
call extend(all_values, ext_traits)
" Add built-in classes " Add built-in classes
call extend(all_values, builtin_classnames) call extend(all_values, builtin_classnames)
@ -566,6 +588,8 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
elseif has_key(ext_interfaces, i) || has_key(builtin_interfaces, i) elseif has_key(ext_interfaces, i) || has_key(builtin_interfaces, i)
let info = has_key(ext_interfaces, i) ? ext_interfaces[i] : builtin_interfaces[i].' - builtin' let info = has_key(ext_interfaces, i) ? ext_interfaces[i] : builtin_interfaces[i].' - builtin'
let final_list += [{'word':i, 'kind': 'i', 'menu': info, 'info': i.info}] let final_list += [{'word':i, 'kind': 'i', 'menu': info, 'info': i.info}]
elseif has_key(ext_traits, i)
let final_list += [{'word':i, 'kind': 't', 'menu': ext_traits[i], 'info': ext_traits[i]}]
elseif has_key(int_constants, i) || has_key(builtin_constants, i) elseif has_key(int_constants, i) || has_key(builtin_constants, i)
let info = has_key(int_constants, i) ? int_constants[i] : ' - builtin' let info = has_key(int_constants, i) ? int_constants[i] : ' - builtin'
let final_list += [{'word':i, 'kind': 'd', 'menu': info, 'info': i.info}] let final_list += [{'word':i, 'kind': 'd', 'menu': info, 'info': i.info}]
@ -622,7 +646,7 @@ function! phpcomplete#CompleteUnknownClass(base, context) " {{{
let f_name = matchstr(i, let f_name = matchstr(i,
\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze') \ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
let f_args = matchstr(i, let f_args = matchstr(i,
\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\({\|$\)') \ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\(;\|{\|$\)')
let int_functions[f_name.'('] = f_args.')' let int_functions[f_name.'('] = f_args.')'
endfor endfor
@ -784,7 +808,7 @@ function! phpcomplete#CompleteClassName(base, kinds, current_namespace, imports)
let tags = [] let tags = []
if len(tag_match_pattern) >= g:phpcomplete_min_num_of_chars_for_namespace_completion if len(tag_match_pattern) >= g:phpcomplete_min_num_of_chars_for_namespace_completion
let tags = phpcomplete#GetTaglist('^'.tag_match_pattern) let tags = phpcomplete#GetTaglist('^\c'.tag_match_pattern)
endif endif
if len(tags) if len(tags)
@ -861,6 +885,39 @@ function! phpcomplete#CompareCompletionRow(i1, i2) " {{{
endfunction endfunction
" }}} " }}}
function! s:getNextCharWithPos(filelines, current_pos) " {{{
let line_no = a:current_pos[0]
let col_no = a:current_pos[1]
let last_line = a:filelines[len(a:filelines) - 1]
let end_pos = [len(a:filelines) - 1, strlen(last_line) - 1]
if line_no > end_pos[0] || line_no == end_pos[0] && col_no > end_pos[1]
return ['EOF', 'EOF']
endif
" we've not reached the end of the current line break
if col_no + 1 < strlen(a:filelines[line_no])
let col_no += 1
else
" we've reached the end of the current line, jump to the next
" non-blank line (blank lines have no position where we can read from,
" not even a whitespace. The newline char does not positionable by vim
let line_no += 1
while strlen(a:filelines[line_no]) == 0
let line_no += 1
endwhile
let col_no = 0
endif
" return 'EOF' string to signal end of file, normal results only one char
" in length
if line_no == end_pos[0] && col_no > end_pos[1]
return ['EOF', 'EOF']
endif
return [[line_no, col_no], a:filelines[line_no][col_no]]
endfunction " }}}
function! phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibited_modifiers) " {{{ function! phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibited_modifiers) " {{{
" if theres no modifier, and no modifier is allowed and no modifier is required " if theres no modifier, and no modifier is allowed and no modifier is required
if len(a:modifiers) == 0 && len(a:required_modifiers) == 0 if len(a:modifiers) == 0 && len(a:required_modifiers) == 0
@ -924,7 +981,7 @@ function! phpcomplete#CompleteUserClass(context, base, sccontent, visibility) "
let f_name = matchstr(i, let f_name = matchstr(i,
\ 'function\s*&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze') \ 'function\s*&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
let f_args = matchstr(i, let f_args = matchstr(i,
\ 'function\s*&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\({\|\_$\)') \ 'function\s*&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\(;\|{\|\_$\)')
if f_name != '' && stridx(f_name, '__') != 0 if f_name != '' && stridx(f_name, '__') != 0
let c_functions[f_name.'('] = f_args let c_functions[f_name.'('] = f_args
if g:phpcomplete_parse_docblock_comments if g:phpcomplete_parse_docblock_comments
@ -1322,8 +1379,8 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
" Get Structured information of all classes and subclasses including namespace and includes " Get Structured information of all classes and subclasses including namespace and includes
" try to find the method's return type in docblock comment " try to find the method's return type in docblock comment
for classstructure in classcontents for classstructure in classcontents
let doclock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method let docblock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method
let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), doclock_target_pattern) let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
if doc_str != '' if doc_str != ''
break break
endif endif
@ -1475,21 +1532,19 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
return '' return ''
endif endif
if line =~? '\v^\s*(abstract\s+|final\s+)*\s*class' if line =~? '\v^\s*(abstract\s+|final\s+)*\s*class\s'
let class_name = matchstr(line, '\c\s*class\s*\zs'.class_name_pattern.'\ze') let class_name = matchstr(line, '\cclass\s\+\zs'.class_name_pattern.'\ze')
let extended_class = matchstr(line, '\cclass\s\+'.class_name_pattern.'\s\+extends\s\+\zs'.class_name_pattern.'\ze') let extended_class = matchstr(line, '\cclass\s\+'.class_name_pattern.'\s\+extends\s\+\zs'.class_name_pattern.'\ze')
let classname_candidate = a:context =~? 'parent::' ? extended_class : class_name let classname_candidate = a:context =~? 'parent::' ? extended_class : class_name
else if classname_candidate != ''
let i += 1 let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, class_candidate_imports, methodstack)
continue " return absolute classname, without leading \
return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
endif
endif endif
if classname_candidate != '' let i += 1
let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, class_candidate_imports, methodstack)
" return absolute classname, without leading \
return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
endif
endwhile endwhile
elseif a:context =~? '(\s*new\s\+'.class_name_pattern.'\s*)->' elseif a:context =~? '(\s*new\s\+'.class_name_pattern.'\s*)->'
let classname_candidate = matchstr(a:context, '\cnew\s\+\zs'.class_name_pattern.'\ze') let classname_candidate = matchstr(a:context, '\cnew\s\+\zs'.class_name_pattern.'\ze')
@ -1602,26 +1657,26 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
endif endif
endif endif
" in-file lookup for typehinted function arguments " function declaration line
" - the function can have a name or be anonymous (e.g., function qux() { ... } vs. function () { ... }) if line =~? 'function\(\s\+'.function_name_pattern.'\)\?\s*('
" - the type-hinted argument can be anywhere in the arguments list. let function_lines = join(reverse(copy(lines)), " ")
if line =~? 'function\(\s\+'.function_name_pattern.'\)\?\s*(.\{-}'.class_name_pattern.'\s\+'.object && !object_is_array " search for type hinted arguments
let f_args = matchstr(line, '\cfunction\(\s\+'.function_name_pattern.'\)\?\s*(\zs.\{-}\ze)') if function_lines =~? 'function\(\s\+'.function_name_pattern.'\)\?\s*(.\{-}'.class_name_pattern.'\s\+'.object && !object_is_array
let args = split(f_args, '\s*\zs,\ze\s*') let f_args = matchstr(function_lines, '\cfunction\(\s\+'.function_name_pattern.'\)\?\s*(\zs.\{-}\ze)')
for arg in args let args = split(f_args, '\s*\zs,\ze\s*')
if arg =~# object.'\(,\|$\)' for arg in args
let classname_candidate = matchstr(arg, '\s*\zs'.class_name_pattern.'\ze\s\+'.object) if arg =~# object.'\(,\|$\)'
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports) let classname_candidate = matchstr(arg, '\s*\zs'.class_name_pattern.'\ze\s\+'.object)
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
break
endif
endfor
if classname_candidate != ''
break break
endif endif
endfor
if classname_candidate != ''
break
endif endif
endif
" if we see a function declaration, try loading the docblock for it and look for matching @params " search for docblock for the function
if line =~? 'function\(\s\+'.function_name_pattern.'\)\?\s*(.\{-}'.object
let match_line = substitute(line, '\\', '\\\\', 'g') let match_line = substitute(line, '\\', '\\\\', 'g')
let sccontent = getline(0, a:start_line - i) let sccontent = getline(0, a:start_line - i)
let doc_str = phpcomplete#GetDocBlock(sccontent, match_line) let doc_str = phpcomplete#GetDocBlock(sccontent, match_line)
@ -1641,13 +1696,16 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
endif endif
" assignment for the variable in question with a variable on the right hand side " assignment for the variable in question with a variable on the right hand side
if line =~# '^\s*'.object.'\s*=&\?\s*'.variable_name_pattern if line =~# '^\s*'.object.'\s*=&\?\s\+\(clone\)\?\s*'.variable_name_pattern
" try to find the next non-comment or string ";" char " try to find the next non-comment or string ";" char
let start_col = match(line, '^\s*'.object.'\C\s*=\zs&\?\s*'.variable_name_pattern) let start_col = match(line, '^\s*'.object.'\C\s*=\zs&\?\s\+\(clone\)\?\s*'.variable_name_pattern)
let filelines = reverse(lines) let filelines = reverse(copy(lines))
let [pos, char] = s:getNextCharWithPos(filelines, [a:start_line - i - 1, start_col]) let [pos, char] = s:getNextCharWithPos(filelines, [len(filelines) - i, start_col])
let chars_read = 1 let chars_read = 1
let last_pos = pos
" function_boundary == 0 if we are not in a function
let real_lines_offset = len(function_boundary) == 1 ? 1 : function_boundary[0][0]
" read while end of the file " read while end of the file
while char != 'EOF' && chars_read < 1000 while char != 'EOF' && chars_read < 1000
let last_pos = pos let last_pos = pos
@ -1655,7 +1713,11 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let chars_read += 1 let chars_read += 1
" we got a candidate " we got a candidate
if char == ';' if char == ';'
let synIDName = synIDattr(synID(pos[0] + 1, pos[1] + 1, 0), 'name') " pos values is relative to the function's lines,
" line 0 need to be offsetted with the line number
" where te function was started to get the line number
" in real buffer terms
let synIDName = synIDattr(synID(real_lines_offset + pos[0], pos[1] + 1, 0), 'name')
" it's not a comment or string, end search " it's not a comment or string, end search
if synIDName !~? 'comment\|string' if synIDName !~? 'comment\|string'
break break
@ -1663,7 +1725,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
endif endif
endwhile endwhile
let prev_context = phpcomplete#GetCurrentInstruction(last_pos[0] + 1, last_pos[1], b:phpbegin) let prev_context = phpcomplete#GetCurrentInstruction(real_lines_offset + last_pos[0], last_pos[1], b:phpbegin)
if prev_context == '' if prev_context == ''
" cannot get previous context give up " cannot get previous context give up
return return
@ -1683,12 +1745,14 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
" assignment for the variable in question with a function on the right hand side " assignment for the variable in question with a function on the right hand side
if line =~# '^\s*'.object.'\s*=&\?\s*'.function_invocation_pattern if line =~# '^\s*'.object.'\s*=&\?\s*'.function_invocation_pattern
" try to find the next non-comment or string ";" char " try to find the next non-comment or string ";" char
let start_col = match(line, '\C^\s*'.object.'\s*=\zs&\?\s*'.function_invocation_pattern) let start_col = match(line, '\C^\s*'.object.'\s*=\zs&\?\s*'.function_invocation_pattern)
let filelines = reverse(lines) let filelines = reverse(copy(lines))
let [pos, char] = s:getNextCharWithPos(filelines, [a:start_line - i - 1, start_col]) let [pos, char] = s:getNextCharWithPos(filelines, [len(filelines) - i, start_col])
let chars_read = 1 let chars_read = 1
let last_pos = pos
" function_boundary == 0 if we are not in a function
let real_lines_offset = len(function_boundary) == 1 ? 1 : function_boundary[0][0]
" read while end of the file " read while end of the file
while char != 'EOF' && chars_read < 1000 while char != 'EOF' && chars_read < 1000
let last_pos = pos let last_pos = pos
@ -1696,7 +1760,11 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let chars_read += 1 let chars_read += 1
" we got a candidate " we got a candidate
if char == ';' if char == ';'
let synIDName = synIDattr(synID(pos[0] + 1, pos[1] + 1, 0), 'name') " pos values is relative to the function's lines,
" line 0 need to be offsetted with the line number
" where te function was started to get the line number
" in real buffer terms
let synIDName = synIDattr(synID(real_lines_offset + pos[0], pos[1] + 1, 0), 'name')
" it's not a comment or string, end search " it's not a comment or string, end search
if synIDName !~? 'comment\|string' if synIDName !~? 'comment\|string'
break break
@ -1704,7 +1772,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
endif endif
endwhile endwhile
let prev_context = phpcomplete#GetCurrentInstruction(last_pos[0] + 1, last_pos[1], b:phpbegin) let prev_context = phpcomplete#GetCurrentInstruction(real_lines_offset + last_pos[0], last_pos[1], b:phpbegin)
if prev_context == '' if prev_context == ''
" cannot get previous context give up " cannot get previous context give up
return return
@ -1807,6 +1875,9 @@ function! phpcomplete#GetClassLocation(classname, namespace) " {{{
if has_key(g:php_builtin_classes, tolower(a:classname)) && (a:namespace == '' || a:namespace == '\') if has_key(g:php_builtin_classes, tolower(a:classname)) && (a:namespace == '' || a:namespace == '\')
return 'VIMPHP_BUILTINOBJECT' return 'VIMPHP_BUILTINOBJECT'
endif endif
if has_key(g:php_builtin_interfaces, tolower(a:classname)) && (a:namespace == '' || a:namespace == '\')
return 'VIMPHP_BUILTINOBJECT'
endif
if a:namespace == '' || a:namespace == '\' if a:namespace == '' || a:namespace == '\'
let search_namespace = '\' let search_namespace = '\'
@ -1819,7 +1890,7 @@ function! phpcomplete#GetClassLocation(classname, namespace) " {{{
let i = 1 let i = 1
while i < line('.') while i < line('.')
let line = getline(line('.')-i) let line = getline(line('.')-i)
if line =~? '^\s*\(abstract\s\+\|final\s\+\)*\s*class\s*'.a:classname.'\(\s\+\|$\)' && tolower(current_namespace) == search_namespace if line =~? '^\s*\(abstract\s\+\|final\s\+\)*\s*\(class\|interface\|trait\)\s*'.a:classname.'\(\s\+\|$\|{\)' && tolower(current_namespace) == search_namespace
return expand('%:p') return expand('%:p')
else else
let i += 1 let i += 1
@ -1831,7 +1902,9 @@ function! phpcomplete#GetClassLocation(classname, namespace) " {{{
let no_namespace_candidate = '' let no_namespace_candidate = ''
let tags = phpcomplete#GetTaglist('^'.a:classname.'$') let tags = phpcomplete#GetTaglist('^'.a:classname.'$')
for tag in tags for tag in tags
if tag.kind == 'c' || tag.kind == 'i' " We'll allow interfaces and traits to be handled classes since you
" can't have colliding names with different kinds anyway
if tag.kind == 'c' || tag.kind == 'i' || tag.kind == 't'
if !has_key(tag, 'namespace') if !has_key(tag, 'namespace')
let no_namespace_candidate = tag.filename let no_namespace_candidate = tag.filename
else else
@ -1981,7 +2054,7 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
silent! below 1new silent! below 1new
silent! 0put =cfile silent! 0put =cfile
call search('\(class\|interface\)\_s\+'.a:class_name.'\(\>\|$\)') call search('\c\(class\|interface\|trait\)\_s\+'.a:class_name.'\(\>\|$\)')
let cfline = line('.') let cfline = line('.')
call search('{') call search('{')
let endline = line('.') let endline = line('.')
@ -1989,13 +2062,62 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
let content = join(getline(cfline, endline), "\n") let content = join(getline(cfline, endline), "\n")
" Catch extends " Catch extends
if content =~? 'extends' if content =~? 'extends'
let extends_class = matchstr(content, 'class\_s\+'.a:class_name.'\_s\+extends\_s\+\zs'.class_name_pattern.'\ze') let extends_string = matchstr(content, '\(class\|interface\)\_s\+'.a:class_name.'\_.\+extends\_s\+\zs\('.class_name_pattern.'\(,\|\_s\)*\)\+\ze\(extends\|{\)')
let extended_classes = map(split(extends_string, '\(,\|\_s\)\+'), 'substitute(v:val, "\\_s\\+", "", "g")')
else else
let extends_class = '' let extended_classes = ''
endif
" Catch implements
if content =~? 'implements'
let implements_string = matchstr(content, 'class\_s\+'.a:class_name.'\_.\+implements\_s\+\zs\('.class_name_pattern.'\(,\|\_s\)*\)\+\ze')
let implemented_interfaces = map(split(implements_string, '\(,\|\_s\)\+'), 'substitute(v:val, "\\_s\\+", "", "g")')
else
let implemented_interfaces = []
endif endif
call searchpair('{', '', '}', 'W') call searchpair('{', '', '}', 'W')
let classcontent = join(getline(cfline, line('.')), "\n") let class_closing_bracket_line = line('.')
let classcontent = join(getline(cfline, class_closing_bracket_line), "\n")
let used_traits = []
" move back to the line next to the class's definition
call cursor(endline + 1, 1)
let keep_searching = 1
while keep_searching != 0
" try to grab "use..." keywords
let [lnum, col] = searchpos('\c^\s\+use\s\+'.class_name_pattern, 'cW', class_closing_bracket_line)
let syn_name = synIDattr(synID(lnum, col, 0), "name")
if syn_name =~? 'string\|comment'
call cursor(lnum + 1, 1)
continue
endif
let trait_line = getline(lnum)
if trait_line !~? ';'
" try to find the next line containing ';'
let l = lnum
let search_line = trait_line
" add lines from the file until theres no ';' in them
while search_line !~? ';' && l > 0
" file lines are reversed so we need to go backwards
let l += 1
let search_line = getline(l)
let trait_line .= ' '.substitute(search_line, '\(^\s\+\|\s\+$\)', '', 'g')
endwhile
endif
let use_expression = matchstr(trait_line, '^\s*use\s\+\zs.\{-}\ze;')
let use_parts = map(split(use_expression, '\s*,\s*'), 'substitute(v:val, "\\s+", " ", "g")')
let used_traits += map(use_parts, 'substitute(v:val, "\\s", "", "g")')
call cursor(lnum + 1, 1)
if [lnum, col] == [0, 0]
let keep_searching = 0
endif
endwhile
silent! bw! % silent! bw! %
let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(a:file_lines[0:cfline]) let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(a:file_lines[0:cfline])
" go back to original window " go back to original window
exe phpcomplete_original_window.'wincmd w' exe phpcomplete_original_window.'wincmd w'
@ -2008,21 +2130,35 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
\ 'mtime': getftime(full_file_path), \ 'mtime': getftime(full_file_path),
\ }) \ })
if extends_class != '' let all_extends = used_traits
let [extends_class, namespace] = phpcomplete#ExpandClassName(extends_class, current_namespace, imports) if len(extended_classes) > 0
if namespace == '' call extend(all_extends, extended_classes)
let namespace = '\' endif
endif if len(implemented_interfaces) > 0
let classlocation = phpcomplete#GetClassLocation(extends_class, namespace) call extend(all_extends, implemented_interfaces)
if classlocation == "VIMPHP_BUILTINOBJECT" endif
let result += [phpcomplete#GenerateBuiltinClassStub(g:php_builtin_classes[tolower(extends_class)])] if len(all_extends) > 0
elseif classlocation != '' && filereadable(classlocation) for class in all_extends
let full_file_path = fnamemodify(classlocation, ':p') let [class, namespace] = phpcomplete#ExpandClassName(class, current_namespace, imports)
let result += phpcomplete#GetClassContentsStructure(full_file_path, readfile(full_file_path), extends_class) if namespace == ''
elseif tolower(current_namespace) == tolower(namespace) let namespace = '\'
" try to find the declaration in the same file. endif
let result += phpcomplete#GetClassContentsStructure(full_file_path, a:file_lines, extends_class) let classlocation = phpcomplete#GetClassLocation(class, namespace)
endif if classlocation == "VIMPHP_BUILTINOBJECT"
if has_key(g:php_builtin_classes, tolower(class))
let result += [phpcomplete#GenerateBuiltinClassStub('class', g:php_builtin_classes[tolower(class)])]
endif
if has_key(g:php_builtin_interfaces, tolower(class))
let result += [phpcomplete#GenerateBuiltinClassStub('interface', g:php_builtin_interfaces[tolower(class)])]
endif
elseif classlocation != '' && filereadable(classlocation)
let full_file_path = fnamemodify(classlocation, ':p')
let result += phpcomplete#GetClassContentsStructure(full_file_path, readfile(full_file_path), class)
elseif tolower(current_namespace) == tolower(namespace) && match(join(a:file_lines, "\n"), '\c\(class\|interface\|trait\)\_s\+'.class.'\(\>\|$\)') != -1
" try to find the declaration in the same file.
let result += phpcomplete#GetClassContentsStructure(full_file_path, a:file_lines, class)
endif
endfor
endif endif
return result return result
@ -2039,43 +2175,53 @@ function! phpcomplete#GetClassContents(classlocation, class_name) " {{{
endfunction endfunction
" }}} " }}}
function! phpcomplete#GenerateBuiltinClassStub(class_info) " {{{ function! phpcomplete#GenerateBuiltinClassStub(type, class_info) " {{{
let re = 'class '.a:class_info['name']." {" let re = a:type.' '.a:class_info['name']." {"
for [name, initializer] in items(a:class_info.constants) if has_key(a:class_info, 'constants')
let re .= "\n\tconst ".name." = ".initializer.";" for [name, initializer] in items(a:class_info.constants)
endfor let re .= "\n\tconst ".name." = ".initializer.";"
for [name, info] in items(a:class_info.properties) endfor
let re .= "\n\t// @var $".name." ".info.type endif
let re .= "\n\tpublic $".name.";" if has_key(a:class_info, 'properties')
endfor for [name, info] in items(a:class_info.properties)
for [name, info] in items(a:class_info.static_properties) let re .= "\n\t// @var $".name." ".info.type
let re .= "\n\t// @var ".name." ".info.type let re .= "\n\tpublic $".name.";"
let re .= "\n\tpublic static ".name." = ".info.initializer.";" endfor
endfor endif
for [name, info] in items(a:class_info.methods) if has_key(a:class_info, 'static_properties')
if name =~ '^__' for [name, info] in items(a:class_info.static_properties)
continue let re .= "\n\t// @var ".name." ".info.type
endif let re .= "\n\tpublic static ".name." = ".info.initializer.";"
let re .= "\n\t/**" endfor
let re .= "\n\t * ".name endif
let re .= "\n\t *" if has_key(a:class_info, 'methods')
let re .= "\n\t * @return ".info.return_type for [name, info] in items(a:class_info.methods)
let re .= "\n\t */" if name =~ '^__'
let re .= "\n\tpublic function ".name."(".info.signature."){" continue
let re .= "\n\t}" endif
endfor let re .= "\n\t/**"
for [name, info] in items(a:class_info.static_methods) let re .= "\n\t * ".name
let re .= "\n\t/**" let re .= "\n\t *"
let re .= "\n\t * ".name let re .= "\n\t * @return ".info.return_type
let re .= "\n\t *" let re .= "\n\t */"
let re .= "\n\t * @return ".info.return_type let re .= "\n\tpublic function ".name."(".info.signature."){"
let re .= "\n\t */" let re .= "\n\t}"
let re .= "\n\tpublic static function ".name."(".info.signature."){" endfor
let re .= "\n\t}" endif
endfor if has_key(a:class_info, 'static_methods')
for [name, info] in items(a:class_info.static_methods)
let re .= "\n\t/**"
let re .= "\n\t * ".name
let re .= "\n\t *"
let re .= "\n\t * @return ".info.return_type
let re .= "\n\t */"
let re .= "\n\tpublic static function ".name."(".info.signature."){"
let re .= "\n\t}"
endfor
endif
let re .= "\n}" let re .= "\n}"
return { 'class': a:class_info['name'], return { a:type : a:class_info['name'],
\ 'content': re, \ 'content': re,
\ 'namespace': '', \ 'namespace': '',
\ 'imports': {}, \ 'imports': {},
@ -2099,8 +2245,11 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
" start backward serch for the comment block " start backward serch for the comment block
while l != 0 while l != 0
let line = a:sccontent[l] let line = a:sccontent[l]
" if comment end found save line position and end search " if it's a one line docblock like comment and we can just return it right away
if line =~? '^\s*\*/' if line =~? '^\s*\/\*\*.\+\*\/\s*$'
return substitute(line, '\v^\s*(\/\*\*\s*)|(\s*\*\/)\s*$', '', 'g')
"... or if comment end found save line position and end search
elseif line =~? '^\s*\*/'
let comment_end = l let comment_end = l
break break
" ... or the line doesn't blank (only whitespace or nothing) end search " ... or the line doesn't blank (only whitespace or nothing) end search
@ -2122,6 +2271,7 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
endif endif
let l -= 1 let l -= 1
endwhile endwhile
" no docblock comment start found " no docblock comment start found
if comment_start == -1 if comment_start == -1
return '' return ''
@ -2270,19 +2420,48 @@ endfunction!
" }}} " }}}
function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let original_window = winnr()
silent! below 1new
silent! 0put =a:file_lines
normal! G
" clear out classes, functions and other blocks
while 1
let block_start_pos = searchpos('\c\(class\|trait\|function\|interface\)\s\+\_.\{-}\zs{', 'Web')
if block_start_pos == [0, 0]
break
endif
let block_end_pos = searchpairpos('{', '', '}\|\%$', 'W', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"')
if block_end_pos != [0, 0]
" end of the block found, just delete it
silent! exec block_start_pos[0].','.block_end_pos[0].'d _'
else
" block pair not found, use block start as beginning and the end
" of the buffer instead
silent! exec block_start_pos[0].',$d _'
endif
endwhile
normal! G
" grab the remains
let file_lines = reverse(getline(1, line('.') - 1))
silent! bw! %
exe original_window.'wincmd w'
let namespace_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*' let namespace_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
let file_lines = reverse(copy(a:file_lines))
let i = 0 let i = 0
let file_length = len(file_lines) let file_length = len(file_lines)
let imports = {} let imports = {}
let current_namespace = '\' let current_namespace = '\'
while i < file_length while i < file_length
let line = file_lines[i] let line = file_lines[i]
if line =~? '^\s*namespace\s*'.namespace_name_pattern if line =~? '^\(<?php\)\?\s*namespace\s*'.namespace_name_pattern
let current_namespace = matchstr(line, '^\s*namespace\s*\zs'.namespace_name_pattern.'\ze') let current_namespace = matchstr(line, '\c^\(<?php\)\?\s*namespace\s*\zs'.namespace_name_pattern.'\ze')
break break
endif endif
@ -2303,11 +2482,11 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let use_line .= ' '.substitute(search_line, '\(^\s\+\|\s\+$\)', '', 'g') let use_line .= ' '.substitute(search_line, '\(^\s\+\|\s\+$\)', '', 'g')
endwhile endwhile
endif endif
let use_expression = matchstr(use_line, '^\s*use\s\+\zs.\{-}\ze;') let use_expression = matchstr(use_line, '^\c\s*use\s\+\zs.\{-}\ze;')
let use_parts = map(split(use_expression, '\s*,\s*'), 'substitute(v:val, "\\s+", " ", "g")') let use_parts = map(split(use_expression, '\s*,\s*'), 'substitute(v:val, "\\s+", " ", "g")')
for part in use_parts for part in use_parts
if part =~? '\s\+as\s\+' if part =~? '\s\+as\s\+'
let [object, name] = split(part, '\s\+as\s\+') let [object, name] = split(part, '\s\+as\s\+\c')
let object = substitute(object, '^\\', '', '') let object = substitute(object, '^\\', '', '')
let name = substitute(name, '^\\', '', '') let name = substitute(name, '^\\', '', '')
else else
@ -2343,7 +2522,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
break break
endif endif
" if the name matches with the extracted classname and namespace " if the name matches with the extracted classname and namespace
if (tag.kind == 'c' || tag.kind == 'i') && tag.name == classname if (tag.kind == 'c' || tag.kind == 'i' || tag.kind == 't') && tag.name == classname
if has_key(tag, 'namespace') if has_key(tag, 'namespace')
let patched_ctags_detected = 1 let patched_ctags_detected = 1
if tag.namespace == namespace_for_classes if tag.namespace == namespace_for_classes
@ -2386,7 +2565,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let tags = phpcomplete#GetTaglist('^'.import['name'].'$') let tags = phpcomplete#GetTaglist('^'.import['name'].'$')
for tag in tags for tag in tags
" search for the first matchin namespace, class, interface with no namespace " search for the first matchin namespace, class, interface with no namespace
if !has_key(tag, 'namespace') && (tag.kind == 'n' || tag.kind == 'c' || tag.kind == 'i') if !has_key(tag, 'namespace') && (tag.kind == 'n' || tag.kind == 'c' || tag.kind == 'i' || tag.kind == 't')
call extend(import, tag) call extend(import, tag)
let import['builtin'] = 0 let import['builtin'] = 0
break break
@ -2445,7 +2624,7 @@ endfunction
function! phpcomplete#ExpandClassName(classname, current_namespace, imports) " {{{ function! phpcomplete#ExpandClassName(classname, current_namespace, imports) " {{{
" if there's an imported class, just use that class's information " if there's an imported class, just use that class's information
if has_key(a:imports, a:classname) && (a:imports[a:classname].kind == 'c' || a:imports[a:classname].kind == 'i') if has_key(a:imports, a:classname) && (a:imports[a:classname].kind == 'c' || a:imports[a:classname].kind == 'i' || a:imports[a:classname].kind == 't')
let namespace = has_key(a:imports[a:classname], 'namespace') ? a:imports[a:classname].namespace : '' let namespace = has_key(a:imports[a:classname], 'namespace') ? a:imports[a:classname].namespace : ''
return [a:imports[a:classname].name, namespace] return [a:imports[a:classname].name, namespace]
endif endif

View File

@ -1,7 +1,7 @@
"python3complete.vim - Omni Completion for python "python3complete.vim - Omni Completion for python
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com> " Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.9 " Version: 0.9
" Last Updated: 18 Jun 2009 " Last Updated: 18 Jun 2009 (small fix 2015 Sep 14 from Debian)
" "
" Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim " Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim
" "
@ -359,6 +359,7 @@ class PyParser:
def __init__(self): def __init__(self):
self.top = Scope('global',0) self.top = Scope('global',0)
self.scope = self.top self.scope = self.top
self.parserline = 0
def _parsedotname(self,pre=None): def _parsedotname(self,pre=None):
#returns (dottedname, nexttoken) #returns (dottedname, nexttoken)

View File

@ -377,6 +377,7 @@ class PyParser:
def __init__(self): def __init__(self):
self.top = Scope('global',0) self.top = Scope('global',0)
self.scope = self.top self.scope = self.top
self.parserline = 0
def _parsedotname(self,pre=None): def _parsedotname(self,pre=None):
#returns (dottedname, nexttoken) #returns (dottedname, nexttoken)

View File

@ -1,8 +1,8 @@
" Vim OMNI completion script for SQL " Vim OMNI completion script for SQL
" Language: SQL " Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com> " Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 15.0 " Version: 16.0
" Last Change: 2013 May 13 " Last Change: 2015 Dec 29
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572 " Homepage: http://www.vim.org/scripts/script.php?script_id=1572
" Usage: For detailed help " Usage: For detailed help
" ":help sql.txt" " ":help sql.txt"
@ -16,6 +16,12 @@
" look backwards to a FROM clause and find the first table " look backwards to a FROM clause and find the first table
" and complete it. " and complete it.
" "
" Version 16.0 (Dec 2015)
" - NF: If reseting the cache and table, procedure or view completion
" had been used via dbext, have dbext delete or recreate the
" dictionary so that new objects are picked up for the
" next completion.
"
" Version 15.0 (May 2013) " Version 15.0 (May 2013)
" - NF: Changed the SQL precached syntax items, omni_sql_precache_syntax_groups, " - NF: Changed the SQL precached syntax items, omni_sql_precache_syntax_groups,
" to use regular expressions to pick up extended syntax group names. " to use regular expressions to pick up extended syntax group names.
@ -103,7 +109,7 @@ endif
if exists('g:loaded_sql_completion') if exists('g:loaded_sql_completion')
finish finish
endif endif
let g:loaded_sql_completion = 150 let g:loaded_sql_completion = 160
let s:keepcpo= &cpo let s:keepcpo= &cpo
set cpo&vim set cpo&vim
@ -459,6 +465,29 @@ function! sqlcomplete#Complete(findstart, base)
let s:tbl_cols = [] let s:tbl_cols = []
let s:syn_list = [] let s:syn_list = []
let s:syn_value = [] let s:syn_value = []
if s:sql_file_table != ""
if g:loaded_dbext >= 2300
call DB_DictionaryDelete("table")
else
DBCompleteTables!
endif
endif
if s:sql_file_procedure != ""
if g:loaded_dbext >= 2300
call DB_DictionaryDelete("procedure")
else
DBCompleteProcedures!
endif
endif
if s:sql_file_view != ""
if g:loaded_dbext >= 2300
call DB_DictionaryDelete("view")
else
DBCompleteViews!
endif
endif
let s:sql_file_table = "" let s:sql_file_table = ""
let s:sql_file_procedure = "" let s:sql_file_procedure = ""
let s:sql_file_view = "" let s:sql_file_view = ""

View File

@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin. " Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com> " Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2013 Jun 19 " Last Change: 2013 Sep 03
" "
" Additional contributors: " Additional contributors:
" "
@ -302,7 +302,7 @@ func! tohtml#Convert2HTML(line1, line2) "{{{
else "{{{ else "{{{
let win_list = [] let win_list = []
let buf_list = [] let buf_list = []
windo | if &diff | call add(win_list, winbufnr(0)) | endif windo if &diff | call add(win_list, winbufnr(0)) | endif
let s:settings.whole_filler = 1 let s:settings.whole_filler = 1
let g:html_diff_win_num = 0 let g:html_diff_win_num = 0
for window in win_list for window in win_list

View File

@ -17,6 +17,7 @@ DOCS = \
arabic.txt \ arabic.txt \
autocmd.txt \ autocmd.txt \
change.txt \ change.txt \
channel.txt \
cmdline.txt \ cmdline.txt \
debug.txt \ debug.txt \
debugger.txt \ debugger.txt \
@ -31,7 +32,6 @@ DOCS = \
ft_ada.txt \ ft_ada.txt \
ft_sql.txt \ ft_sql.txt \
gui.txt \ gui.txt \
gui_w16.txt \
gui_w32.txt \ gui_w32.txt \
gui_x11.txt \ gui_x11.txt \
hangulin.txt \ hangulin.txt \
@ -75,6 +75,7 @@ DOCS = \
pattern.txt \ pattern.txt \
pi_getscript.txt \ pi_getscript.txt \
pi_gzip.txt \ pi_gzip.txt \
pi_logipat.txt \
pi_netrw.txt \ pi_netrw.txt \
pi_paren.txt \ pi_paren.txt \
pi_spec.txt \ pi_spec.txt \
@ -150,6 +151,7 @@ HTMLS = \
arabic.html \ arabic.html \
autocmd.html \ autocmd.html \
change.html \ change.html \
channel.html \
cmdline.html \ cmdline.html \
debug.html \ debug.html \
debugger.html \ debugger.html \
@ -164,7 +166,6 @@ HTMLS = \
ft_ada.html \ ft_ada.html \
ft_sql.html \ ft_sql.html \
gui.html \ gui.html \
gui_w16.html \
gui_w32.html \ gui_w32.html \
gui_x11.html \ gui_x11.html \
hangulin.html \ hangulin.html \
@ -207,6 +208,7 @@ HTMLS = \
pattern.html \ pattern.html \
pi_getscript.html \ pi_getscript.html \
pi_gzip.html \ pi_gzip.html \
pi_logipat.html \
pi_netrw.html \ pi_netrw.html \
pi_paren.html \ pi_paren.html \
pi_spec.html \ pi_spec.html \
@ -229,7 +231,6 @@ HTMLS = \
starting.html \ starting.html \
syntax.html \ syntax.html \
tabpage.html \ tabpage.html \
tags.html \
tagsrch.html \ tagsrch.html \
term.html \ term.html \
tips.html \ tips.html \
@ -385,9 +386,6 @@ hebrew.txt:
russian.txt: russian.txt:
touch russian.txt touch russian.txt
gui_w16.txt:
touch gui_w16.txt
gui_w32.txt: gui_w32.txt:
touch gui_w32.txt touch gui_w32.txt

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.4. Last change: 2014 Sep 23 *autocmd.txt* For Vim version 7.4. Last change: 2015 Dec 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -259,6 +259,7 @@ Name triggered by ~
|Syntax| when the 'syntax' option has been set |Syntax| when the 'syntax' option has been set
|EncodingChanged| after the 'encoding' option has been changed |EncodingChanged| after the 'encoding' option has been changed
|TermChanged| after the value of 'term' has changed |TermChanged| after the value of 'term' has changed
|OptionSet| after setting any option
Startup and exit Startup and exit
|VimEnter| after doing all the startup stuff |VimEnter| after doing all the startup stuff
@ -505,6 +506,8 @@ ColorScheme After loading a color scheme. |:colorscheme|
CompleteDone After Insert mode completion is done. Either CompleteDone After Insert mode completion is done. Either
when something was completed or abandoning when something was completed or abandoning
completion. |ins-completion| completion. |ins-completion|
The |v:completed_item| variable contains
information about the completed item.
*CursorHold* *CursorHold*
CursorHold When the user doesn't press a key for the time CursorHold When the user doesn't press a key for the time
@ -742,6 +745,29 @@ MenuPopup Just before showing the popup menu (under the
o Operator-pending o Operator-pending
i Insert i Insert
c Command line c Command line
*OptionSet*
OptionSet After setting an option. The pattern is
matched against the long option name.
The |v:option_old| variable indicates the
old option value, |v:option_new| variable
indicates the newly set value, the
|v:option_type| variable indicates whether
it's global or local scoped and |<amatch>|
indicates what option has been set.
Is not triggered on startup and for the 'key'
option for obvious reasons.
Usage example: Check for the existence of the
directory in the 'backupdir' and 'undodir'
options, create the directory if it doesn't
exist yet.
Note: It's a bad idea to reset an option
during this autocommand, this may break a
plugin. You can always use `:noa` to prevent
triggering this autocommand.
*QuickFixCmdPre* *QuickFixCmdPre*
QuickFixCmdPre Before a quickfix command is run (|:make|, QuickFixCmdPre Before a quickfix command is run (|:make|,
|:lmake|, |:grep|, |:lgrep|, |:grepadd|, |:lmake|, |:grep|, |:lgrep|, |:grepadd|,
@ -933,6 +959,13 @@ WinLeave Before leaving a window. If the window to be
============================================================================== ==============================================================================
6. Patterns *autocmd-patterns* *{pat}* 6. Patterns *autocmd-patterns* *{pat}*
The {pat} argument can be a comma separated list. This works as if the
command was given with each pattern separately. Thus this command: >
:autocmd BufRead *.txt,*.info set et
Is equivalent to: >
:autocmd BufRead *.txt set et
:autocmd BufRead *.info set et
The file pattern {pat} is tested for a match against the file name in one of The file pattern {pat} is tested for a match against the file name in one of
two ways: two ways:
1. When there is no '/' in the pattern, Vim checks for a match against only 1. When there is no '/' in the pattern, Vim checks for a match against only
@ -1039,7 +1072,7 @@ Instead of a pattern buffer-local autocommands use one of these forms:
Examples: > Examples: >
:au CursorHold <buffer> echo 'hold' :au CursorHold <buffer> echo 'hold'
:au CursorHold <buffer=33> echo 'hold' :au CursorHold <buffer=33> echo 'hold'
:au CursorHold <buffer=abuf> echo 'hold' :au BufNewFile * au CursorHold <buffer=abuf> echo 'hold'
All the commands for autocommands also work with buffer-local autocommands, All the commands for autocommands also work with buffer-local autocommands,
simply use the special string instead of the pattern. Examples: > simply use the special string instead of the pattern. Examples: >
@ -1098,6 +1131,9 @@ name!
:aug[roup] {name} Define the autocmd group name for the :aug[roup] {name} Define the autocmd group name for the
following ":autocmd" commands. The name "end" following ":autocmd" commands. The name "end"
or "END" selects the default group. or "END" selects the default group.
To avoid confusion, the name should be
different from existing {event} names, as this
most likely will not do what you intended.
*:augroup-delete* *E367* *:augroup-delete* *E367*
:aug[roup]! {name} Delete the autocmd group {name}. Don't use :aug[roup]! {name} Delete the autocmd group {name}. Don't use

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 7.4. Last change: 2014 Jun 26 *change.txt* For Vim version 7.4. Last change: 2016 Mar 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -98,10 +98,10 @@ These commands delete text. You can repeat them with the `.` command
An exception for the d{motion} command: If the motion is not linewise, the An exception for the d{motion} command: If the motion is not linewise, the
start and end of the motion are not in the same line, and there are only start and end of the motion are not in the same line, and there are only
blanks before the start and after the end of the motion, the delete becomes blanks before the start and there are no non-blanks after the end of the
linewise. This means that the delete also removes the line of blanks that you motion, the delete becomes linewise. This means that the delete also removes
might expect to remain. Use the |o_v| operator to force the motion to be the line of blanks that you might expect to remain. Use the |o_v| operator to
characterwise. force the motion to be characterwise.
Trying to delete an empty region of text (e.g., "d0" in the first column) Trying to delete an empty region of text (e.g., "d0" in the first column)
is an error when 'cpoptions' includes the 'E' flag. is an error when 'cpoptions' includes the 'E' flag.
@ -109,7 +109,9 @@ is an error when 'cpoptions' includes the 'E' flag.
*J* *J*
J Join [count] lines, with a minimum of two lines. J Join [count] lines, with a minimum of two lines.
Remove the indent and insert up to two spaces (see Remove the indent and insert up to two spaces (see
below). below). Fails when on the last line of the buffer.
If [count] is too big it is reduce to the number of
lines available.
*v_J* *v_J*
{Visual}J Join the highlighted lines, with a minimum of two {Visual}J Join the highlighted lines, with a minimum of two
@ -379,13 +381,56 @@ Adding and subtracting ~
CTRL-A Add [count] to the number or alphabetic character at CTRL-A Add [count] to the number or alphabetic character at
or after the cursor. {not in Vi} or after the cursor. {not in Vi}
*v_CTRL-A*
{Visual}CTRL-A Add [count] to the number or alphabetic character in
the highlighted text. {not in Vi}
*v_g_CTRL-A*
{Visual}g CTRL-A Add [count] to the number or alphabetic character in
the highlighted text. If several lines are
highlighted, each one will be incremented by an
additional [count] (so effectively creating a
[count] incrementing sequence). {not in Vi}
For Example, if you have this list of numbers:
1. ~
1. ~
1. ~
1. ~
Move to the second "1." and Visually select three
lines, pressing g CTRL-A results in:
1. ~
2. ~
3. ~
4. ~
*CTRL-X* *CTRL-X*
CTRL-X Subtract [count] from the number or alphabetic CTRL-X Subtract [count] from the number or alphabetic
character at or after the cursor. {not in Vi} character at or after the cursor. {not in Vi}
The CTRL-A and CTRL-X commands work for (signed) decimal numbers, unsigned *v_CTRL-X*
octal and hexadecimal numbers and alphabetic characters. This depends on the {Visual}CTRL-X Subtract [count] from the number or alphabetic
'nrformats' option. character in the highlighted text. {not in Vi}
On MS-Windows, this is mapped to cut Visual text
|dos-standard-mappings|. If you want to disable the
mapping, use this: >
silent! vunmap <C-X>
<
*v_g_CTRL-X*
{Visual}g CTRL-X Subtract [count] from the number or alphabetic
character in the highlighted text. If several lines
are highlighted, each value will be decremented by an
additional [count] (so effectively creating a [count]
decrementing sequence). {not in Vi}
The CTRL-A and CTRL-X commands can work for:
- signed and unsigned decimal numbers
- unsigned binary, octal and hexadecimal numbers
- alphabetic characters
This depends on the 'nrformats' option:
- When 'nrformats' includes "bin", Vim assumes numbers starting with '0b' or
'0B' are binary.
- When 'nrformats' includes "octal", Vim considers numbers starting with a '0' - When 'nrformats' includes "octal", Vim considers numbers starting with a '0'
to be octal, unless the number includes a '8' or '9'. Other numbers are to be octal, unless the number includes a '8' or '9'. Other numbers are
decimal and may have a preceding minus sign. decimal and may have a preceding minus sign.
@ -399,6 +444,10 @@ octal and hexadecimal numbers and alphabetic characters. This depends on the
under or after the cursor. This is useful to make lists with an alphabetic under or after the cursor. This is useful to make lists with an alphabetic
index. index.
For decimals a leading negative sign is considered for incrementing/
decrementing, for binary, octal and hex values, it won't be considered. To
ignore the sign Visually select the number before using CTRL-A or CTRL-X.
For numbers with leading zeros (including all octal and hexadecimal numbers), For numbers with leading zeros (including all octal and hexadecimal numbers),
Vim preserves the number of characters in the number when possible. CTRL-A on Vim preserves the number of characters in the number when possible. CTRL-A on
"0077" results in "0100", CTRL-X on "0x100" results in "0x0ff". "0077" results in "0100", CTRL-X on "0x100" results in "0x0ff".
@ -410,6 +459,10 @@ octal number.
Note that when 'nrformats' includes "octal", decimal numbers with leading Note that when 'nrformats' includes "octal", decimal numbers with leading
zeros cause mistakes, because they can be confused with octal numbers. zeros cause mistakes, because they can be confused with octal numbers.
Note similarly, when 'nrformats' includes "bin", binary numbers with a leading
'0x' or '0X' can be interpreted as hexadecimal rather than binary since '0b'
are valid hexadecimal digits.
The CTRL-A command is very useful in a macro. Example: Use the following The CTRL-A command is very useful in a macro. Example: Use the following
steps to make a numbered list. steps to make a numbered list.
@ -597,9 +650,9 @@ For other systems the tmpnam() library function is used.
may add [flags], see |:s_flags|. may add [flags], see |:s_flags|.
Note that after `:substitute` the '&' flag can't be Note that after `:substitute` the '&' flag can't be
used, it's recognized as a pattern separator. used, it's recognized as a pattern separator.
The space between `:substitute` and the 'c', 'g' and The space between `:substitute` and the 'c', 'g',
'r' flags isn't required, but in scripts it's a good 'i', 'I' and 'r' flags isn't required, but in scripts
idea to keep it to avoid confusion. it's a good idea to keep it to avoid confusion.
:[range]~[&][flags] [count] *:~* :[range]~[&][flags] [count] *:~*
Repeat last substitute with same substitute string Repeat last substitute with same substitute string
@ -826,6 +879,36 @@ either the first or second pattern in parentheses did not match, so either
:s/\([ab]\)\|\([cd]\)/\1x/g modifies "a b c d" to "ax bx x x" :s/\([ab]\)\|\([cd]\)/\1x/g modifies "a b c d" to "ax bx x x"
< <
*:sc* *:sce* *:scg* *:sci* *:scI* *:scl* *:scp* *:sg* *:sgc*
*:sge* *:sgi* *:sgI* *:sgl* *:sgn* *:sgp* *:sgr* *:sI* *:si*
*:sic* *:sIc* *:sie* *:sIe* *:sIg* *:sIl* *:sin* *:sIn* *:sIp*
*:sip* *:sIr* *:sir* *:sr* *:src* *:srg* *:sri* *:srI* *:srl*
*:srn* *:srp*
2-letter and 3-letter :substitute commands ~
List of :substitute commands
| c e g i I n p l r
| c :sc :sce :scg :sci :scI :scn :scp :scl ---
| e
| g :sgc :sge :sg :sgi :sgI :sgn :sgp :sgl :sgr
| i :sic :sie --- :si :siI :sin :sip --- :sir
| I :sIc :sIe :sIg :sIi :sI :sIn :sIp :sIl :sIr
| n
| p
| l
| r :src --- :srg :sri :srI :srn :srp :srl :sr
Exceptions:
:scr is `:scriptnames`
:se is `:set`
:sig is `:sign`
:sil is `:silent`
:sn is `:snext`
:sp is `:split`
:sl is `:sleep`
:sre is `:srewind`
Substitute with an expression *sub-replace-expression* Substitute with an expression *sub-replace-expression*
*sub-replace-\=* *s/\=* *sub-replace-\=* *s/\=*
When the substitute string starts with "\=" the remainder is interpreted as an When the substitute string starts with "\=" the remainder is interpreted as an
@ -901,8 +984,6 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
`:retab!` may also change a sequence of spaces by `:retab!` may also change a sequence of spaces by
<Tab> characters, which can mess up a printf(). <Tab> characters, which can mess up a printf().
{not in Vi} {not in Vi}
Not available when |+ex_extra| feature was disabled at
compile time.
*retab-example* *retab-example*
Example for using autocommands and ":retab" to edit a file which is stored Example for using autocommands and ":retab" to edit a file which is stored
@ -931,7 +1012,7 @@ inside of strings can change! Also see 'softtabstop' option. >
:reg[isters] {arg} Display the contents of the numbered and named :reg[isters] {arg} Display the contents of the numbered and named
registers that are mentioned in {arg}. For example: > registers that are mentioned in {arg}. For example: >
:dis 1a :reg 1a
< to display registers '1' and 'a'. Spaces are allowed < to display registers '1' and 'a'. Spaces are allowed
in {arg}. {not in Vi} in {arg}. {not in Vi}
@ -1098,16 +1179,17 @@ Rationale: In Vi the "y" command followed by a backwards motion would
With a linewise yank command the cursor is put in the first line, but the With a linewise yank command the cursor is put in the first line, but the
column is unmodified, thus it may not be on the first yanked character. column is unmodified, thus it may not be on the first yanked character.
There are nine types of registers: *registers* *E354* There are ten types of registers: *registers* *E354*
1. The unnamed register "" 1. The unnamed register ""
2. 10 numbered registers "0 to "9 2. 10 numbered registers "0 to "9
3. The small delete register "- 3. The small delete register "-
4. 26 named registers "a to "z or "A to "Z 4. 26 named registers "a to "z or "A to "Z
5. four read-only registers ":, "., "% and "# 5. three read-only registers ":, "., "%
6. the expression register "= 6. alternate buffer register "#
7. The selection and drop registers "*, "+ and "~ 7. the expression register "=
8. The black hole register "_ 8. The selection and drop registers "*, "+ and "~
9. Last search pattern register "/ 9. The black hole register "_
10. Last search pattern register "/
1. Unnamed register "" *quote_quote* *quotequote* 1. Unnamed register "" *quote_quote* *quotequote*
Vim fills this register with text deleted with the "d", "c", "s", "x" commands Vim fills this register with text deleted with the "d", "c", "s", "x" commands
@ -1153,7 +1235,7 @@ letters to replace their previous contents or as uppercase letters to append
to their previous contents. When the '>' flag is present in 'cpoptions' then to their previous contents. When the '>' flag is present in 'cpoptions' then
a line break is inserted before the appended text. a line break is inserted before the appended text.
5. Read-only registers ":, "., "% and "# 5. Read-only registers ":, ". and "%
These are '%', '#', ':' and '.'. You can use them only with the "p", "P", These are '%', '#', ':' and '.'. You can use them only with the "p", "P",
and ":put" commands and with CTRL-R. {not in Vi} and ":put" commands and with CTRL-R. {not in Vi}
*quote_.* *quote.* *E29* *quote_.* *quote.* *E29*
@ -1164,8 +1246,6 @@ and ":put" commands and with CTRL-R. {not in Vi}
('textwidth' and other options affect what is inserted). ('textwidth' and other options affect what is inserted).
*quote_%* *quote%* *quote_%* *quote%*
"% Contains the name of the current file. "% Contains the name of the current file.
*quote_#* *quote#*
"# Contains the name of the alternate file.
*quote_:* *quote:* *E30* *quote_:* *quote:* *E30*
": Contains the most recent executed command-line. Example: Use ": Contains the most recent executed command-line. Example: Use
"@:" to repeat the previous command-line command. "@:" to repeat the previous command-line command.
@ -1174,16 +1254,33 @@ and ":put" commands and with CTRL-R. {not in Vi}
the command was completely from a mapping. the command was completely from a mapping.
{not available when compiled without the |+cmdline_hist| {not available when compiled without the |+cmdline_hist|
feature} feature}
*quote_#* *quote#*
6. Alternate file register "#
Contains the name of the alternate file for the current window. It will
change how the |CTRL-^| command works.
This register is writable, mainly to allow for restoring it after a plugin has
changed it. It accepts buffer number: >
let altbuf = bufnr(@#)
...
let @# = altbuf
It will give error |E86| if you pass buffer number and this buffer does not
exist.
It can also accept a match with an existing buffer name: >
let @# = 'buffer_name'
Error |E93| if there is more than one buffer matching the given name or |E94|
if none of buffers matches the given name.
6. Expression register "= *quote_=* *quote=* *@=* 7. Expression register "= *quote_=* *quote=* *@=*
This is not really a register that stores text, but is a way to use an This is not really a register that stores text, but is a way to use an
expression in commands which use a register. The expression register is expression in commands which use a register. The expression register is
read-only; you cannot put text into it. After the '=', the cursor moves to read-write.
the command-line, where you can enter any expression (see |expression|). All
normal command-line editing commands are available, including a special When typing the '=' after " or CTRL-R the cursor moves to the command-line,
history for expressions. When you end the command-line by typing <CR>, Vim where you can enter any expression (see |expression|). All normal
computes the result of the expression. If you end it with <Esc>, Vim abandons command-line editing commands are available, including a special history for
the expression. If you do not enter an expression, Vim uses the previous expressions. When you end the command-line by typing <CR>, Vim computes the
result of the expression. If you end it with <Esc>, Vim abandons the
expression. If you do not enter an expression, Vim uses the previous
expression (like with the "/" command). expression (like with the "/" command).
The expression must evaluate to a String. A Number is always automatically The expression must evaluate to a String. A Number is always automatically
@ -1196,7 +1293,7 @@ If the "= register is used for the "p" command, the String is split up at <NL>
characters. If the String ends in a <NL>, it is regarded as a linewise characters. If the String ends in a <NL>, it is regarded as a linewise
register. {not in Vi} register. {not in Vi}
7. Selection and drop registers "*, "+ and "~ 8. Selection and drop registers "*, "+ and "~
Use these registers for storing and retrieving the selected text for the GUI. Use these registers for storing and retrieving the selected text for the GUI.
See |quotestar| and |quoteplus|. When the clipboard is not available or not See |quotestar| and |quoteplus|. When the clipboard is not available or not
working, the unnamed register is used instead. For Unix systems the clipboard working, the unnamed register is used instead. For Unix systems the clipboard
@ -1218,17 +1315,17 @@ GTK GUI}
Note: The "~ register is only used when dropping plain text onto Vim. Note: The "~ register is only used when dropping plain text onto Vim.
Drag'n'drop of URI lists is handled internally. Drag'n'drop of URI lists is handled internally.
8. Black hole register "_ *quote_* 9. Black hole register "_ *quote_*
When writing to this register, nothing happens. This can be used to delete When writing to this register, nothing happens. This can be used to delete
text without affecting the normal registers. When reading from this register, text without affecting the normal registers. When reading from this register,
nothing is returned. {not in Vi} nothing is returned. {not in Vi}
9. Last search pattern register "/ *quote_/* *quote/* 10. Last search pattern register "/ *quote_/* *quote/*
Contains the most recent search-pattern. This is used for "n" and 'hlsearch'. Contains the most recent search-pattern. This is used for "n" and 'hlsearch'.
It is writable with `:let`, you can change it to have 'hlsearch' highlight It is writable with `:let`, you can change it to have 'hlsearch' highlight
other matches without actually searching. You can't yank or delete into this other matches without actually searching. You can't yank or delete into this
register. The search direction is available in |v:searchforward|. register. The search direction is available in |v:searchforward|.
Note that the valued is restored when returning from a function Note that the value is restored when returning from a function
|function-search-undo|. |function-search-undo|.
{not in Vi} {not in Vi}
@ -1262,22 +1359,16 @@ The next three commands always work on whole lines.
Center lines in [range] between [width] columns Center lines in [range] between [width] columns
(default 'textwidth' or 80 when 'textwidth' is 0). (default 'textwidth' or 80 when 'textwidth' is 0).
{not in Vi} {not in Vi}
Not available when |+ex_extra| feature was disabled at
compile time.
:[range]ri[ght] [width] *:ri* *:right* :[range]ri[ght] [width] *:ri* *:right*
Right-align lines in [range] at [width] columns Right-align lines in [range] at [width] columns
(default 'textwidth' or 80 when 'textwidth' is 0). (default 'textwidth' or 80 when 'textwidth' is 0).
{not in Vi} {not in Vi}
Not available when |+ex_extra| feature was disabled at
compile time.
*:le* *:left* *:le* *:left*
:[range]le[ft] [indent] :[range]le[ft] [indent]
Left-align lines in [range]. Sets the indent in the Left-align lines in [range]. Sets the indent in the
lines to [indent] (default 0). {not in Vi} lines to [indent] (default 0). {not in Vi}
Not available when |+ex_extra| feature was disabled at
compile time.
*gq* *gq*
gq{motion} Format the lines that {motion} moves over. gq{motion} Format the lines that {motion} moves over.
@ -1443,10 +1534,10 @@ When you hit Return in a C-comment, Vim will insert the middle comment leader
for the new line: " * ". To close this comment you just have to type "/" for the new line: " * ". To close this comment you just have to type "/"
before typing anything else on the new line. This will replace the before typing anything else on the new line. This will replace the
middle-comment leader with the end-comment leader and apply any specified middle-comment leader with the end-comment leader and apply any specified
alignment, leaving just " */". There is no need to hit BackSpace first. alignment, leaving just " */". There is no need to hit Backspace first.
When there is a match with a middle part, but there also is a maching end part When there is a match with a middle part, but there also is a matching end
which is longer, the end part is used. This makes a C style comment work part which is longer, the end part is used. This makes a C style comment work
without requiring the middle part to end with a space. without requiring the middle part to end with a space.
Here is an example of alignment flags at work to make a comment stand out Here is an example of alignment flags at work to make a comment stand out
@ -1653,7 +1744,7 @@ Vim has a sorting function and a sorting command. The sorting function can be
found here: |sort()|, |uniq()|. found here: |sort()|, |uniq()|.
*:sor* *:sort* *:sor* *:sort*
:[range]sor[t][!] [i][u][r][n][x][o] [/{pattern}/] :[range]sor[t][!] [b][f][i][n][o][r][u][x] [/{pattern}/]
Sort lines in [range]. When no range is given all Sort lines in [range]. When no range is given all
lines are sorted. lines are sorted.
@ -1661,10 +1752,18 @@ found here: |sort()|, |uniq()|.
With [i] case is ignored. With [i] case is ignored.
Options [n][f][x][o][b] are mutually exclusive.
With [n] sorting is done on the first decimal number With [n] sorting is done on the first decimal number
in the line (after or inside a {pattern} match). in the line (after or inside a {pattern} match).
One leading '-' is included in the number. One leading '-' is included in the number.
With [f] sorting is done on the Float in the line.
The value of Float is determined similar to passing
the text (after or inside a {pattern} match) to
str2float() function. This option is available only
if Vim was compiled with Floating point support.
With [x] sorting is done on the first hexadecimal With [x] sorting is done on the first hexadecimal
number in the line (after or inside a {pattern} number in the line (after or inside a {pattern}
match). A leading "0x" or "0X" is ignored. match). A leading "0x" or "0X" is ignored.
@ -1673,10 +1772,13 @@ found here: |sort()|, |uniq()|.
With [o] sorting is done on the first octal number in With [o] sorting is done on the first octal number in
the line (after or inside a {pattern} match). the line (after or inside a {pattern} match).
With [u] only keep the first of a sequence of With [b] sorting is done on the first binary number in
identical lines (ignoring case when [i] is used). the line (after or inside a {pattern} match).
Without this flag, a sequence of identical lines
will be kept in their original order. With [u] (u stands for unique) only keep the first of
a sequence of identical lines (ignoring case when [i]
is used). Without this flag, a sequence of identical
lines will be kept in their original order.
Note that leading and trailing white space may cause Note that leading and trailing white space may cause
lines to be different. lines to be different.

640
runtime/doc/channel.txt Normal file
View File

@ -0,0 +1,640 @@
*channel.txt* For Vim version 7.4. Last change: 2016 Mar 14
VIM REFERENCE MANUAL by Bram Moolenaar
Inter-process communication *channel*
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Vim uses channels to communicate with other processes.
A channel uses a socket or pipes *socket-interface*
Jobs can be used to start processes and communicate with them.
Vim current supports up to 10 simultaneous channels.
The Netbeans interface also uses a channel. |netbeans|
1. Overview |job-channel-overview|
2. Channel demo |channel-demo|
3. Opening a channel |channel-open|
4. Using a JSON or JS channel |channel-use|
5. Channel commands |channel-commands|
6. Using a RAW or NL channel |channel-raw|
7. More channel functions |channel-more|
8. Starting a job with a channel |job-start|
9. Starting a job without a channel |job-start-nochannel|
10. Job options |job-options|
11. Controlling a job |job-control|
{Vi does not have any of these features}
{only when compiled with the |+channel| feature for channel stuff}
{only when compiled with the |+job| feature for job stuff}
==============================================================================
1. Overview *job-channel-overview*
There are four main types of jobs:
1. A deamon, serving several Vim instances.
Vim connects to it with a socket.
2. One job working with one Vim instance, asynchronously.
Uses a socket or pipes.
3. A job performing some work for a short time, asynchronously.
Uses a socket or pipes.
4. Running a filter, synchronously.
Uses pipes.
For when using sockets See |job-start|, |job-start-nochannel| and
|channel-open|. For 2 and 3, one or more jobs using pipes, see |job-start|.
For 4 use the ":{range}!cmd" command, see |filter|.
Over the socket and pipes these protocols are available:
RAW nothing known, Vim cannot tell where a message ends
NL every message ends in a NL (newline) character
JSON JSON encoding |json_encode()|
JS JavaScript style JSON-like encoding |js_encode()|
Common combination are:
- Using a job connected through pipes in NL mode. E.g., to run a style
checker and receive errors and warnings.
- Using a deamon, connecting over a socket in JSON mode. E.g. to lookup
crosss-refrences in a database.
==============================================================================
2. Channel demo *channel-demo*
This requires Python. The demo program can be found in
$VIMRUNTIME/tools/demoserver.py
Run it in one terminal. We will call this T1.
Run Vim in another terminal. Connect to the demo server with: >
let channel = ch_open('localhost:8765')
In T1 you should see:
=== socket opened === ~
You can now send a message to the server: >
echo ch_evalexpr(channel, 'hello!')
The message is received in T1 and a response is sent back to Vim.
You can see the raw messages in T1. What Vim sends is:
[1,"hello!"] ~
And the response is:
[1,"got it"] ~
The number will increase every time you send a message.
The server can send a command to Vim. Type this on T1 (literally, including
the quotes):
["ex","echo 'hi there'"] ~
And you should see the message in Vim. You can move the cursor a word forward:
["normal","w"] ~
To handle asynchronous communication a callback needs to be used: >
func MyHandler(channel, msg)
echo "from the handler: " . a:msg
endfunc
call ch_sendexpr(channel, 'hello!', {'callback': "MyHandler"})
Vim will not wait for a response. Now the server can send the response later
and MyHandler will be invoked.
Instead of giving a callback with every send call, it can also be specified
when opening the channel: >
call ch_close(channel)
let channel = ch_open('localhost:8765', {'callback': "MyHandler"})
call ch_sendexpr(channel, 'hello!')
When trying out channels it's useful to see what is going on. You can tell
Vim to write lines in log file: >
call ch_logfile('channellog', 'w')
See |ch_logfile()|.
==============================================================================
3. Opening a channel *channel-open*
To open a channel: >
let channel = ch_open({address} [, {options}])
if ch_status(channel) == "open"
" use the channel
Use |ch_status()| to see if the channel could be opened.
{address} has the form "hostname:port". E.g., "localhost:8765".
{options} is a dictionary with optional entries:
"mode" can be: *channel-mode*
"json" - Use JSON, see below; most convenient way. Default.
"js" - Use JS (JavaScript) encoding, more efficient than JSON.
"nl" - Use messages that end in a NL character
"raw" - Use raw messages
*in_mode* *out_mode* *err_mode*
"in_mode" mode specifically for stdin, only when using pipes
"out_mode" mode specifically for stdout, only when using pipes
"err_mode" mode specifically for stderr, only when using pipes
Note: when setting "mode" the part specific mode is
overwritten. Therefore set "mode" first and the part specific
mode later.
Note: when writing to a file or buffer and when reading from a
buffer NL mode is used by default.
*channel-callback* *E921*
"callback" A function that is called when a message is received that is
not handled otherwise. It gets two arguments: the channel
and the received message. Example: >
func Handle(channel, msg)
echo 'Received: ' . a:msg
endfunc
let channel = ch_open("localhost:8765", {"callback": "Handle"})
<
When "mode" is "json" or "js" the "msg" argument is the body
of the received message, converted to Vim types.
When "mode" is "nl" the "msg" argument is one message,
excluding the NL.
When "mode" is "raw" the "msg" argument is the whole message
as a string.
*out_cb*
"out_cb" A function like "callback" but used for stdout. Only for when
the channel uses pipes. When "out_cb" wasn't set the channel
callback is used.
*err_cb*
"err_cb" A function like "callback" but used for stderr. Only for when
the channel uses pipes. When "err_cb" wasn't set the channel
callback is used.
*close_cb*
"close_cb" A function that is called when the channel gets closed, other
than by calling ch_close(). It should be defined like this: >
func MyCloseHandler(channel)
< *waittime*
"waittime" The time to wait for the connection to be made in
milliseconds. A negative number waits forever.
The default is zero, don't wait, which is useful if a local
server is supposed to be running already. On Unix Vim
actually uses a 1 msec timeout, that is required on many
systems. Use a larger value for a remote server, e.g. 10
msec at least.
"timeout" The time to wait for a request when blocking, E.g. when using
ch_evalexpr(). In milliseconds. The default is 2000 (2
seconds).
*out_timeout* *err_timeout*
"out_timeout" Timeout for stdout. Only when using pipes.
"err_timeout" Timeout for stderr. Only when using pipes.
Note: when setting "timeout" the part specific mode is
overwritten. Therefore set "timeout" first and the part
specific mode later.
When "mode" is "json" or "js" the "callback" is optional. When omitted it is
only possible to receive a message after sending one.
To change the channel options after opening it use |ch_setoptions()|. The
arguments are similar to what is passed to |ch_open()|, but "waittime" cannot
be given, since that only applies to opening the channel.
For example, the handler can be added or changed: >
call ch_setoptions(channel, {'callback': callback})
When "callback" is empty (zero or an empty string) the handler is removed.
After a callback has been invoked Vim will update the screen and put the
cursor back where it belongs. Thus the callback should not need to do
`:redraw`.
The timeout can be changed: >
call ch_setoptions(channel, {'timeout': msec})
<
*channel-close* *E906*
Once done with the channel, disconnect it like this: >
call ch_close(channel)
When a socket is used this will close the socket for both directions. When
pipes are used (stdin/stdout/stderr) they are all closed. This might not be
what you want! Stopping the job with job_stop() might be better.
All readahead is discarded, callbacks will no longer be invoked.
When the channel can't be opened you will get an error message. There is a
difference between MS-Windows and Unix: On Unix when the port doesn't exist
ch_open() fails quickly. On MS-Windows "waittime" applies.
*E898* *E899* *E900* *E901* *E902*
If there is an error reading or writing a channel it will be closed.
*E896* *E630* *E631*
==============================================================================
4. Using a JSON or JS channel *channel-use*
If mode is JSON then a message can be sent synchronously like this: >
let response = ch_evalexpr(channel, {expr})
This awaits a response from the other side.
When mode is JS this works the same, except that the messages use
JavaScript encoding. See |js_encode()| for the difference.
To send a message, without handling a response or letting the channel callback
handle the response: >
call ch_sendexpr(channel, {expr})
To send a message and letting the response handled by a specific function,
asynchronously: >
call ch_sendexpr(channel, {expr}, {'callback': Handler})
Vim will match the response with the request using the message ID. Once the
response is received the callback will be invoked. Further responses with the
same ID will be ignored. If your server sends back multiple responses you
need to send them with ID zero, they will be passed to the channel callback.
The {expr} is converted to JSON and wrapped in an array. An example of the
message that the receiver will get when {expr} is the string "hello":
[12,"hello"] ~
The format of the JSON sent is:
[{number},{expr}]
In which {number} is different every time. It must be used in the response
(if any):
[{number},{response}]
This way Vim knows which sent message matches with which received message and
can call the right handler. Also when the messages arrive out of order.
The sender must always send valid JSON to Vim. Vim can check for the end of
the message by parsing the JSON. It will only accept the message if the end
was received.
When the process wants to send a message to Vim without first receiving a
message, it must use the number zero:
[0,{response}]
Then channel handler will then get {response} converted to Vim types. If the
channel does not have a handler the message is dropped.
On read error or ch_close(), when using a socket with RAW or NL mode, the
string "DETACH\n" is sent, if still possible. The channel will then be
inactive.
It is also possible to use ch_sendraw() and ch_evalraw() on a JSON or JS
channel. The caller is then completely responsible for correct encoding and
decoding.
==============================================================================
5. Channel commands *channel-commands*
With a JSON channel the process can send commands to Vim that will be
handled by Vim internally, it does not require a handler for the channel.
Possible commands are: *E903* *E904* *E905*
["redraw" {forced}]
["ex", {Ex command}]
["normal", {Normal mode command}]
["expr", {expression}, {number}]
["expr", {expression}]
["call", {func name}, {argument list}, {number}]
["call", {func name}, {argument list}]
With all of these: Be careful what these commands do! You can easily
interfere with what the user is doing. To avoid trouble use |mode()| to check
that the editor is in the expected state. E.g., to send keys that must be
inserted as text, not executed as a command:
["ex","if mode() == 'i' | call feedkeys('ClassName') | endif"] ~
Errors in these commands are normally not reported to avoid them messing up
the display. If you do want to see them, set the 'verbose' option to 3 or
higher.
Command "redraw" ~
The other commands do not update the screen, so that you can send a sequence
of commands without the cursor moving around. You must end with the "redraw"
command to show any changed text and show the cursor where it belongs.
The argument is normally an empty string:
["redraw", ""] ~
To first clear the screen pass "force":
["redraw", "force"] ~
Command "ex" ~
The "ex" command is executed as any Ex command. There is no response for
completion or error. You could use functions in an |autoload| script:
["ex","call myscript#MyFunc(arg)"]
You can also use "call |feedkeys()|" to insert any key sequence.
Command "normal" ~
The "normal" command is executed like with ":normal!", commands are not
mapped. Example to open the folds under the cursor:
["normal" "zO"]
Command "expr" with response ~
The "expr" command can be used to get the result of an expression. For
example, to get the number of lines in the current buffer:
["expr","line('$')", -2] ~
It will send back the result of the expression:
[-2, "last line"] ~
The format is:
[{number}, {result}]
Here {number} is the same as what was in the request. Use a negative number
to avoid confusion with message that Vim sends. Use a different number on
every request to be able to match the request with the response.
{result} is the result of the evaluation and is JSON encoded. If the
evaluation fails or the result can't be encoded in JSON it is the string
"ERROR".
Command "expr" without a response ~
This command is similar to "expr" above, but does not send back any response.
Example:
["expr","setline('$', ['one', 'two', 'three'])"] ~
There is no third argument in the request.
Command "call" ~
This is similar to "expr", but instead of passing the whole expression as a
string this passes the name of a function and a list of arguments. This
avoids the conversion of the arguments to a string and escaping and
concatenating them. Example:
["call", "line", ["$"], -2] ~
Leave out the fourth argument if no response is to be sent:
["call", "setline", ["$", ["one", "two", "three"]]] ~
==============================================================================
6. Using a RAW or NL channel *channel-raw*
If mode is RAW or NL then a message can be send like this: >
let response = ch_evalraw(channel, {string})
The {string} is sent as-is. The response will be what can be read from the
channel right away. Since Vim doesn't know how to recognize the end of the
message you need to take care of it yourself. The timeout applies for reading
the first byte, after that it will not wait for anything more.
If mode is "nl" you can send a message in a similar way. You are expected
to put in the NL after each message. Thus you can also send several messages
ending in a NL at once. The response will be the text up to and including the
first NL. This can also be just the NL for an empty response.
If no NL was read before the channel timeout an empty string is returned.
To send a message, without expecting a response: >
call ch_sendraw(channel, {string})
The process can send back a response, the channel handler will be called with
it.
To send a message and letting the response handled by a specific function,
asynchronously: >
call ch_sendraw(channel, {string}, {'callback': 'MyHandler'})
This {string} can also be JSON, use |json_encode()| to create it and
|json_decode()| to handle a received JSON message.
It is not possible to use |ch_evalexpr()| or |ch_sendexpr()| on a raw channel.
==============================================================================
7. More channel functions *channel-more*
To obtain the status of a channel: ch_status(channel). The possible results
are:
"fail" Failed to open the channel.
"open" The channel can be used.
"closed" The channel was closed.
To obtain the job associated with a channel: ch_getjob(channel)
To read one message from a channel: >
let output = ch_read(channel)
This uses the channel timeout. To read without a timeout, just get any
message that is available: >
let output = ch_read(channel, {'timeout': 0})
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.
To read all output from a RAW channel that is available: >
let output = ch_readraw(channel)
To read the error output: >
let output = ch_readraw(channel, {"part": "err"})
==============================================================================
8. Starting a job with a channel *job-start* *job*
To start a job and open a channel for stdin/stdout/stderr: >
let job = job_start(command, {options})
You can get the channel with: >
let channel = job_getchannel(job)
The channel will use NL mode. If you want another mode it's best to specify
this in {options}. When changing the mode later some text may have already
been received and not parsed correctly.
If the command produces a line of output that you want to deal with, specify
a handler for stdout: >
let job = job_start(command, {"out_cb": "MyHandler"})
The function will be called with the channel and a message. You would define
it like this: >
func MyHandler(channel, msg)
Without the handler you need to read the output with |ch_read()| or
|ch_readraw()|.
The handler defined for "out_cb" will not receive stderr. If you want to
handle that separately, add an "err_cb" handler: >
let job = job_start(command, {"out_cb": "MyHandler",
\ "err_cb": "ErrHandler"})
If you want to handle both stderr and stdout with one handler use the
"callback" option: >
let job = job_start(command, {"callback": "MyHandler"})
You can send a message to the command with ch_evalraw(). If the channel is in
JSON or JS mode you can use ch_evalexpr().
There are several options you can use, see |job-options|.
For example, to start a job and write its output in buffer "dummy": >
let logjob = job_start("tail -f /tmp/log",
\ {'out_io': 'buffer', 'out_name': 'dummy'})
sbuf dummy
Job input from a buffer ~
To run a job that reads from a buffer: >
let job = job_start({command},
\ {'in_io': 'buffer', 'in_name': 'mybuffer'})
<
*E915* *E918*
The buffer is found by name, similar to |bufnr()|. The buffer must exist and
be loaded when job_start() is called.
By default this reads the whole buffer. This can be changed with the "in_top"
and "in_bot" options.
A special mode is when "in_top" is set to zero and "in_bot" is not set: Every
time a line is added to the buffer, the last-but-one line will be send to the
job stdin. This allows for editing the last line and sending it when pressing
Enter.
==============================================================================
9. Starting a job without a channel *job-start-nochannel*
To start another process without creating a channel: >
let job = job_start(command,
\ {"in_io": "null", "out_io": "null", "err_io": "null"})
This starts {command} in the background, Vim does not wait for it to finish.
When Vim sees that neither stdin, stdout or stderr are connected, no channel
will be created. Often you will want to include redirection in the command to
avoid it getting stuck.
There are several options you can use, see |job-options|.
*job-start-if-needed*
To start a job only when connecting to an address does not work, do something
like this: >
let channel = ch_open(address, {"waittime": 0})
if ch_status(channel) == "fail"
let job = job_start(command)
let channel = ch_open(address, {"waittime": 1000})
endif
Note that the waittime for ch_open() gives the job one second to make the port
available.
==============================================================================
10. Job options *job-options*
The {options} argument in job_start() is a dictionary. All entries are
optional. Some options can be used after the job has started, using
job_setoptions(job, {options}). Many options can be used with the channel
related to the job, using ch_setoptions(channel, {options}).
See |job_setoptions()| and |ch_setoptions()|.
*job-callback*
"callback": handler Callback for something to read on any part of the
channel.
*job-out_cb*
"out_cb": handler Callback for when there is something to read on
stdout.
*job-err_cb*
"err_cb": handler Callback for when there is something to read on
stderr.
*job-close_cb*
"close_cb": handler Callback for when the channel is closed. Same as
"close_cb" on ch_open().
*job-exit_cb*
"exit_cb": handler Callback for when the job ends. The arguments are the
job and the exit status.
Vim checks about every 10 seconds for jobs that ended.
The callback can also be triggered by calling
|job_status()|.
*job-stoponexit*
"stoponexit": {signal} Send {signal} to the job when Vim exits. See
|job_stop()| for possible values.
"stoponexit": "" Do not stop the job when Vim exits.
The default is "term".
*job-term*
"term": "open" Start a terminal and connect the job
stdin/stdout/stderr to it.
NOTE: Not implemented yet!
"channel": {channel} Use an existing channel instead of creating a new one.
The parts of the channel that get used for the new job
will be disconnected from what they were used before.
If the channel was still use by another job this may
cause I/O errors.
Existing callbacks and other settings remain.
*job-in_io* *in_top* *in_bot* *in_name* *in_buf*
"in_io": "null" disconnect stdin (read from /dev/null)
"in_io": "pipe" stdin is connected to the channel (default)
"in_io": "file" stdin reads from a file
"in_io": "buffer" stdin reads from a buffer
"in_top": number when using "buffer": first line to send (default: 1)
"in_bot": number when using "buffer": last line to send (default: last)
"in_name": "/path/file" the name of the file or buffer to read from
"in_buf": number the number of the buffer to read from
*job-out_io* *out_name* *out_buf*
"out_io": "null" disconnect stdout (goes to /dev/null)
"out_io": "pipe" stdout is connected to the channel (default)
"out_io": "file" stdout writes to a file
"out_io": "buffer" stdout appends to a buffer
"out_name": "/path/file" the name of the file or buffer to write to
"out_buf": number the number of the buffer to write to
*job-err_io* *err_name* *err_buf*
"err_io": "out" stderr messages to go to stdout
"err_io": "null" disconnect stderr (goes to /dev/null)
"err_io": "pipe" stderr is connected to the channel (default)
"err_io": "file" stderr writes to a file
"err_io": "buffer" stderr appends to a buffer
"err_name": "/path/file" the name of the file or buffer to write to
"err_buf": number the number of the buffer to write to
Writing to a buffer ~
When the out_io or err_io mode is "buffer" and there is a callback, the text
is appended to the buffer before invoking the callback.
When a buffer is used both for input and output, the output lines are put
above the last line, since the last line is what is written to the channel
input. Otherwise lines are appended below the last line.
When using JS or JSON mode with "buffer", only messages with zero or negative
ID will be added to the buffer, after decoding + encoding. Messages with a
positive number will be handled by a callback, commands are handled as usual.
The name of the buffer is compared the full name of existing buffers. If
there is a match that buffer is used. Otherwise a new buffer is created.
Use an empty name to always create a new buffer. |ch_getbufnr()| can then be
used to get the buffer number.
For a new buffer 'buftype' is set to "nofile" and 'bufhidden' to "hide". If
you prefer other settings, create the buffer first and pass the buffer number.
When the buffer written to is displayed in a window and the cursor is in the
first column of the last line, the cursor will be moved to the newly added
line and the window is scrolled up to show the cursor if needed.
Undo is synced for every added line.
Writing to a file ~
*E920*
The file is created with permissions 600 (read-write for the user, not
accessible for others). Use |setfperm()| to change this.
If the file already exists it is truncated.
==============================================================================
11. Controlling a job *job-control*
To get the status of a job: >
echo job_status(job)
To make a job stop running: >
job_stop(job)
This is the normal way to end a job. On Unix it sends a SIGTERM to the job.
It is possible to use other ways to stop the job, or even send arbitrary
signals. E.g. to force a job to stop, "kill it": >
job_stop(job, "kill")
For more options see |job_stop()|.
vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.4. Last change: 2014 Sep 06 *cmdline.txt* For Vim version 7.4. Last change: 2015 Dec 17
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -101,6 +101,11 @@ CTRL-E or <End> *c_CTRL-E* *c_<End>* *c_End*
*c_<LeftMouse>* *c_<LeftMouse>*
<LeftMouse> Move the cursor to the position of the mouse click. <LeftMouse> Move the cursor to the position of the mouse click.
*c_<MiddleMouse>*
<MiddleMouse> Paste the contents of the clipboard (for X11 the primary
selection). This is similar to using CTRL-R *, but no CR
characters are inserted between lines.
CTRL-H *c_<BS>* *c_CTRL-H* *c_BS* CTRL-H *c_<BS>* *c_CTRL-H* *c_BS*
<BS> Delete the character in front of the cursor (see |:fixdel| if <BS> Delete the character in front of the cursor (see |:fixdel| if
your <BS> key does not do what you want). your <BS> key does not do what you want).
@ -511,6 +516,8 @@ followed by another Vim command:
:argdo :argdo
:autocmd :autocmd
:bufdo :bufdo
:cdo
:cfdo
:command :command
:cscope :cscope
:debug :debug
@ -521,6 +528,8 @@ followed by another Vim command:
:help :help
:helpfind :helpfind
:lcscope :lcscope
:ldo
:lfdo
:make :make
:normal :normal
:perl :perl
@ -597,6 +606,7 @@ starts editing the three files "foo bar", "goes to" and "school ".
When you want to use the special characters '"' or '|' in a command, or want When you want to use the special characters '"' or '|' in a command, or want
to use '%' or '#' in a file name, precede them with a backslash. The to use '%' or '#' in a file name, precede them with a backslash. The
backslash is not required in a range and in the ":substitute" command. backslash is not required in a range and in the ":substitute" command.
See also |`=|.
*:_!* *:_!*
The '!' (bang) character after an Ex command makes the command behave in a The '!' (bang) character after an Ex command makes the command behave in a
@ -749,13 +759,13 @@ to insert special things while typing you can use the CTRL-R command. For
example, "%" stands for the current file name, while CTRL-R % inserts the example, "%" stands for the current file name, while CTRL-R % inserts the
current file name right away. See |c_CTRL-R|. current file name right away. See |c_CTRL-R|.
Note: If you want to avoid the special characters in a Vim script you may want Note: If you want to avoid the effects of special characters in a Vim script
to use |fnameescape()|. you may want to use |fnameescape()|. Also see |`=|.
In Ex commands, at places where a file name can be used, the following In Ex commands, at places where a file name can be used, the following
characters have a special meaning. These can also be used in the expression characters have a special meaning. These can also be used in the expression
function expand() |expand()|. function |expand()|.
% Is replaced with the current file name. *:_%* *c_%* % Is replaced with the current file name. *:_%* *c_%*
# Is replaced with the alternate file name. *:_#* *c_#* # Is replaced with the alternate file name. *:_#* *c_#*
This is remembered for every window. This is remembered for every window.
@ -790,6 +800,7 @@ it, no matter how many backslashes.
# alternate.file # alternate.file
\# # \# #
\\# \# \\# \#
Also see |`=|.
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>* *:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
*:<sfile>* *<sfile>* *:<afile>* *<afile>* *:<sfile>* *<sfile>* *:<afile>* *<afile>*
@ -811,13 +822,13 @@ Note: these are typed literally, they are not special keys!
<afile> only when the file name isn't used to match with <afile> only when the file name isn't used to match with
(for FileType, Syntax and SpellFileMissing events). (for FileType, Syntax and SpellFileMissing events).
<sfile> When executing a ":source" command, is replaced with the <sfile> When executing a ":source" command, is replaced with the
file name of the sourced file. *E498* file name of the sourced file. *E498*
When executing a function, is replaced with When executing a function, is replaced with:
"function {function-name}"; function call nesting is "function {function-name}[{lnum}]"
indicated like this: function call nesting is indicated like this:
"function {function-name1}..{function-name2}". Note that "function {function-name1}[{lnum}]..{function-name2}[{lnum}]"
filename-modifiers are useless when <sfile> is used inside Note that filename-modifiers are useless when <sfile> is
a function. used inside a function.
<slnum> When executing a ":source" command, is replaced with the <slnum> When executing a ":source" command, is replaced with the
line number. *E842* line number. *E842*
When executing a function it's the line number relative to When executing a function it's the line number relative to
@ -880,7 +891,7 @@ These modifiers can be given, in this order:
:gs?pat?sub? :gs?pat?sub?
Substitute all occurrences of "pat" with "sub". Otherwise Substitute all occurrences of "pat" with "sub". Otherwise
this works like ":s". this works like ":s".
:S Escape special characters for use with a shell command (see :S Escape special characters for use with a shell command (see
|shellescape()|). Must be the last one. Examples: > |shellescape()|). Must be the last one. Examples: >
:!dir <cfile>:S :!dir <cfile>:S
:call system('chmod +w -- ' . expand('%:S')) :call system('chmod +w -- ' . expand('%:S'))
@ -933,9 +944,8 @@ name). This is included for backwards compatibility with version 3.0, the
Note: Where a file name is expected wildcards expansion is done. On Unix the Note: Where a file name is expected wildcards expansion is done. On Unix the
shell is used for this, unless it can be done internally (for speed). shell is used for this, unless it can be done internally (for speed).
Backticks also work, like in > Unless in |restricted-mode|, backticks work also, like in >
:n `echo *.c` :n `echo *.c`
(backtick expansion is not possible in |restricted-mode|)
But expansion is only done if there are any wildcards before expanding the But expansion is only done if there are any wildcards before expanding the
'%', '#', etc.. This avoids expanding wildcards inside a file name. If you '%', '#', etc.. This avoids expanding wildcards inside a file name. If you
want to expand the result of <cfile>, add a wildcard character to it. want to expand the result of <cfile>, add a wildcard character to it.
@ -946,6 +956,7 @@ Examples: (alternate file name is "?readme?")
:e #.* :e {files matching "?readme?.*"} :e #.* :e {files matching "?readme?.*"}
:cd <cfile> :cd {file name under cursor} :cd <cfile> :cd {file name under cursor}
:cd <cfile>* :cd {file name under cursor plus "*" and then expanded} :cd <cfile>* :cd {file name under cursor plus "*" and then expanded}
Also see |`=|.
When the expanded argument contains a "!" and it is used for a shell command When the expanded argument contains a "!" and it is used for a shell command
(":!cmd", ":r !cmd" or ":w !cmd"), the "!" is escaped with a backslash to (":!cmd", ":r !cmd" or ":w !cmd"), the "!" is escaped with a backslash to
@ -972,6 +983,8 @@ for the file "$home" in the root directory. A few examples:
/\$home file "$home" in root directory /\$home file "$home" in root directory
\\$home file "\\", followed by expanded $home \\$home file "\\", followed by expanded $home
Also see |`=|.
============================================================================== ==============================================================================
7. Command-line window *cmdline-window* *cmdwin* 7. Command-line window *cmdline-window* *cmdwin*
*command-line-window* *command-line-window*

View File

@ -1,4 +1,4 @@
*develop.txt* For Vim version 7.4. Last change: 2014 Mar 27 *develop.txt* For Vim version 7.4. Last change: 2016 Jan 31
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -166,12 +166,27 @@ This list is not complete. Look in the source code for more examples.
MAKING CHANGES *style-changes* MAKING CHANGES *style-changes*
The basic steps to make changes to the code: The basic steps to make changes to the code:
1. Adjust the documentation. Doing this first gives you an impression of how 1. Get the code from github. That makes it easier to keep your changed
version in sync with the main code base (it may be a while before your
changes will be included). You do need to spend some time learning git,
it's not the most user friendly tool.
2. Adjust the documentation. Doing this first gives you an impression of how
your changes affect the user. your changes affect the user.
2. Make the source code changes. 3. Make the source code changes.
3. Check ../doc/todo.txt if the change affects any listed item. 4. Check ../doc/todo.txt if the change affects any listed item.
4. Make a patch with "diff -c" against the unmodified code and docs. 5. Make a patch with "git diff". You can also create a pull request on
5. Make a note about what changed and include it with the patch. github, but it's the diff that matters.
6. Make a note about what changed, preferably mentioning the problem and the
solution. Send an email to the vim-dev maillist with an explanation and
include the diff. Or create a pull request on github.
C COMPILER *style-compiler*
The minimal C compiler version supported is C89, also known as ANSI C.
Later standards don't add much and C89 is the widest supported.
One restriction that this implies: no // comments, only /* comments */.
USE OF COMMON FUNCTIONS *style-functions* USE OF COMMON FUNCTIONS *style-functions*
@ -197,7 +212,7 @@ NAMES *style-names*
Function names can not be more than 31 characters long (because of VMS). Function names can not be more than 31 characters long (because of VMS).
Don't use "delete" as a variable name, C++ doesn't like it. Don't use "delete" or "this" as a variable name, C++ doesn't like it.
Because of the requirement that Vim runs on as many systems as possible, we Because of the requirement that Vim runs on as many systems as possible, we
need to avoid using names that are already defined by the system. This is a need to avoid using names that are already defined by the system. This is a
@ -288,8 +303,27 @@ OK: do
a = 1; a = 1;
while (cond); while (cond);
Wrong: if (cond) {
cmd;
cmd;
} else {
cmd;
cmd;
}
Functions start with: OK: if (cond)
{
cmd;
cmd;
}
else
{
cmd;
cmd;
}
Use ANSI (new style) function declarations with the return type on a separate
indented line.
Wrong: int function_name(int arg1, int arg2) Wrong: int function_name(int arg1, int arg2)
@ -299,16 +333,14 @@ OK: /*
* Return value explanation. * Return value explanation.
*/ */
int int
function_name(arg1, arg2) function_name(
int arg1; /* short comment about arg1 */ int arg1, /* short comment about arg1 */
int arg2; /* short comment about arg2 */ int arg2) /* short comment about arg2 */
{ {
int local; /* comment about local */ int local; /* comment about local */
local = arg1 * arg2; local = arg1 * arg2;
NOTE: Don't use ANSI style function declarations. A few people still have to
use a compiler that doesn't support it.
SPACES AND PUNCTUATION *style-spaces* SPACES AND PUNCTUATION *style-spaces*

View File

@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.4. Last change: 2014 Oct 31 *diff.txt* For Vim version 7.4. Last change: 2015 Nov 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -132,8 +132,9 @@ file for a moment and come back to the same file and be in diff mode again.
if the current window does not have 'diff' set then no options if the current window does not have 'diff' set then no options
in it are changed. in it are changed.
The ":diffoff" command resets the relevant options to the values they had when The `:diffoff` command resets the relevant options to the values they had when
using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode. using `:diffsplit`, `:diffpatch` , `:diffthis`. or starting Vim in diff mode.
When using `:diffoff` twice the last saved values are restored.
Otherwise they are set to their default value: Otherwise they are set to their default value:
'diff' off 'diff' off
@ -181,8 +182,8 @@ hidden buffers. You can use ":hide" to close a window without unloading the
buffer. If you don't want a buffer to remain used for the diff do ":set buffer. If you don't want a buffer to remain used for the diff do ":set
nodiff" before hiding it. nodiff" before hiding it.
*:diffu* *:diffupdate* *:dif* *:diffupdate*
:diffu[pdate][!] Update the diff highlighting and folds. :dif[fupdate][!] Update the diff highlighting and folds.
Vim attempts to keep the differences updated when you make changes to the Vim attempts to keep the differences updated when you make changes to the
text. This mostly takes care of inserted and deleted lines. Changes within a text. This mostly takes care of inserted and deleted lines. Changes within a
@ -314,6 +315,19 @@ name or a part of a buffer name. Examples:
Also see |'diffopt'| and the "diff" item of |'fillchars'|. Also see |'diffopt'| and the "diff" item of |'fillchars'|.
*diff-slow* *diff_translations*
For very long lines, the diff syntax highlighting might be slow, especially
since it tries to match all different kind of localisations. To disable
localisations and speed up the syntax highlighting, set the global variable
g:diff_translations to zero: >
let g:diff_translations = 0
<
After setting this variable, Reload the syntax script: >
set syntax=diff
<
FINDING THE DIFFERENCES *diff-diffexpr* FINDING THE DIFFERENCES *diff-diffexpr*

View File

@ -14,9 +14,7 @@
#define LINELEN 200 #define LINELEN 200
int int
main(argc, argv) main(int argc, char **argv)
int argc;
char **argv;
{ {
char line[LINELEN]; char line[LINELEN];
char *p1, *p2; char *p1, *p2;

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.4. Last change: 2014 Dec 05 *editing.txt* For Vim version 7.4. Last change: 2016 Feb 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -78,7 +78,9 @@ g CTRL-G Prints the current position of the cursor in five
than one position on the screen (<Tab> or special than one position on the screen (<Tab> or special
character), both the "real" column and the screen character), both the "real" column and the screen
column are shown, separated with a dash. column are shown, separated with a dash.
See also 'ruler' option. {not in Vi} Also see the 'ruler' option and the |wordcount()|
function.
{not in Vi}
*v_g_CTRL-G* *v_g_CTRL-G*
{Visual}g CTRL-G Similar to "g CTRL-G", but Word, Character, Line, and {Visual}g CTRL-G Similar to "g CTRL-G", but Word, Character, Line, and
@ -304,7 +306,8 @@ CTRL-^ Edit the alternate file. Mostly the alternate file is
Mnemonic: "goto file". Mnemonic: "goto file".
Uses the 'isfname' option to find out which characters Uses the 'isfname' option to find out which characters
are supposed to be in a file name. Trailing are supposed to be in a file name. Trailing
punctuation characters ".,:;!" are ignored. punctuation characters ".,:;!" are ignored. Escaped
spaces "\ " are reduced to a single space.
Uses the 'path' option as a list of directory names to Uses the 'path' option as a list of directory names to
look for the file. See the 'path' option for details look for the file. See the 'path' option for details
about relative directories and wildcards. about relative directories and wildcards.
@ -400,36 +403,54 @@ Note there are some commands where this works slightly differently, see
Example: > Example: >
:n **/*.txt :n **/*.txt
Finds files: Finds files:
ttt.txt aaa.txt ~
subdir/ttt.txt subdir/bbb.txt ~
a/b/c/d/ttt.txt a/b/c/d/ccc.txt ~
When non-wildcard characters are used these are only matched in the first When non-wildcard characters are used right before or after "**" these are
directory. Example: > only matched in the top directory. They are not used for directories further
:n /usr/inc**/*.h down in the tree. For example: >
:n /usr/inc**/types.h
Finds files: Finds files:
/usr/include/types.h /usr/include/types.h ~
/usr/include/sys/types.h /usr/include/sys/types.h ~
/usr/inc_old/types.h /usr/inc/old/types.h ~
Note that the path with "/sys" is included because it does not need to match
"/inc". Thus it's like matching "/usr/inc*/*/*...", not
"/usr/inc*/inc*/inc*".
*backtick-expansion* *`-expansion* *backtick-expansion* *`-expansion*
On Unix and a few other systems you can also use backticks in the file name, On Unix and a few other systems you can also use backticks for the file name
for example: > argument, for example: >
:e `find . -name ver\\*.c -print` :next `find . -name ver\\*.c -print`
The backslashes before the star are required to prevent "ver*.c" to be :view `ls -t *.patch \| head -n1`
expanded by the shell before executing the find program. The backslashes before the star are required to prevent the shell from
expanding "ver*.c" prior to execution of the find program. The backslash
before the shell pipe symbol "|" prevents Vim from parsing it as command
termination.
This also works for most other systems, with the restriction that the This also works for most other systems, with the restriction that the
backticks must be around the whole item. It is not possible to have text backticks must be around the whole item. It is not possible to have text
directly before the first or just after the last backtick. directly before the first or just after the last backtick.
*`=* *`=*
You can have the backticks expanded as a Vim expression, instead of an You can have the backticks expanded as a Vim expression, instead of as an
external command, by using the syntax `={expr}` e.g.: > external command, by putting an equal sign right after the first backtick,
e.g.: >
:e `=tempname()` :e `=tempname()`
The expression can contain just about anything, thus this can also be used to The expression can contain just about anything, thus this can also be used to
avoid the special meaning of '"', '|', '%' and '#'. However, 'wildignore' avoid the special meaning of '"', '|', '%' and '#'. However, 'wildignore'
does apply like to other wildcards. does apply like to other wildcards.
Environment variables in the expression are expanded when evaluating the
expression, thus this works: >
:e `=$HOME . '/.vimrc'`
This does not work, $HOME is inside a string and used literally: >
:e `='$HOME' . '/.vimrc'`
If the expression returns a string then names are to be separated with line If the expression returns a string then names are to be separated with line
breaks. When the result is a |List| then each item is used as a name. Line breaks. When the result is a |List| then each item is used as a name. Line
breaks also separate names. breaks also separate names.
Note that such expressions are only supported in places where a filename is
expected as an argument to an Ex-command.
*++opt* *[++opt]* *++opt* *[++opt]*
The [++opt] argument can be used to force the value of 'fileformat', The [++opt] argument can be used to force the value of 'fileformat',
@ -623,6 +644,7 @@ list of the current window.
:0argadd x x a b c :0argadd x x a b c
:1argadd x a x b c :1argadd x a x b c
:$argadd x a b c x :$argadd x a b c x
And after the last one:
:+2argadd y a b c x y :+2argadd y a b c x y
There is no check for duplicates, it is possible to There is no check for duplicates, it is possible to
add a file to the argument list twice. add a file to the argument list twice.
@ -832,8 +854,9 @@ current window. The two windows then share this list, until one of them uses
USING THE ARGUMENT LIST USING THE ARGUMENT LIST
*:argdo* *:argdo*
:argdo[!] {cmd} Execute {cmd} for each file in the argument list. :[range]argdo[!] {cmd} Execute {cmd} for each file in the argument list or
It works like doing this: > if [range] is specified only for arguments in that
range. It works like doing this: >
:rewind :rewind
:{cmd} :{cmd}
:next :next
@ -853,7 +876,8 @@ USING THE ARGUMENT LIST
each file. each file.
{not in Vi} {not available when compiled without the {not in Vi} {not available when compiled without the
|+listcmds| feature} |+listcmds| feature}
Also see |:windo|, |:tabdo| and |:bufdo|. Also see |:windo|, |:tabdo|, |:bufdo|, |:cdo|, |:ldo|,
|:cfdo| and |:lfdo|
Example: > Example: >
:args *.c :args *.c
@ -992,7 +1016,7 @@ the newly written file (it might be there but contain bogus data). In that
case try recovery, because the swap file is synced to disk and might still be case try recovery, because the swap file is synced to disk and might still be
there. |:recover| there. |:recover|
The directories given with the 'backupdir' option is used to put the backup The directories given with the 'backupdir' option are used to put the backup
file in. (default: same directory as the written file). file in. (default: same directory as the written file).
Whether the backup is a new file, which is a copy of the original file, or the Whether the backup is a new file, which is a copy of the original file, or the
@ -1089,10 +1113,10 @@ The names can be in upper- or lowercase.
the last file in the argument list has not been the last file in the argument list has not been
edited. See |:confirm| and 'confirm'. {not in Vi} edited. See |:confirm| and 'confirm'. {not in Vi}
:q[uit]! Quit without writing, also when currently visible :q[uit]! Quit without writing, also when the current buffer has
buffers have changes. Does not exit when this is the changes. If this is the last window and there is a
last window and there is a changed hidden buffer. modified hidden buffer, the current buffer is
In this case, the first changed hidden buffer becomes abandoned and the first changed hidden buffer becomes
the current buffer. the current buffer.
Use ":qall!" to exit always. Use ":qall!" to exit always.
@ -1361,7 +1385,7 @@ There are a few things to remember when editing binary files:
- <Nul> characters are shown on the screen as ^@. You can enter them with - <Nul> characters are shown on the screen as ^@. You can enter them with
"CTRL-V CTRL-@" or "CTRL-V 000" {Vi cannot handle <Nul> characters in the "CTRL-V CTRL-@" or "CTRL-V 000" {Vi cannot handle <Nul> characters in the
file} file}
- To insert a <NL> character in the file split up a line. When writing the - To insert a <NL> character in the file split a line. When writing the
buffer to a file a <NL> will be written for the <EOL>. buffer to a file a <NL> will be written for the <EOL>.
- Vim normally appends an <EOL> at the end of the file if there is none. - Vim normally appends an <EOL> at the end of the file if there is none.
Setting the 'binary' option prevents this. If you want to add the final Setting the 'binary' option prevents this. If you want to add the final
@ -1391,7 +1415,8 @@ reveal it to others. The 'viminfo' file is not encrypted.
You could do this to edit very secret text: > You could do this to edit very secret text: >
:set noundofile viminfo= :set noundofile viminfo=
:noswapfile edit secrets.txt :noswapfile edit secrets.txt
Keep in mind that without a swap file you risk loosing your work in a crash. Keep in mind that without a swap file you risk losing your work in the event
of a crash or a power failure.
WARNING: If you make a typo when entering the key and then write the file and WARNING: If you make a typo when entering the key and then write the file and
exit, the text will be lost! exit, the text will be lost!
@ -1439,6 +1464,18 @@ using zip, "[blowfish]" when using blowfish, etc.
When writing an undo file, the same key and method will be used for the text When writing an undo file, the same key and method will be used for the text
in the undo file. |persistent-undo|. in the undo file. |persistent-undo|.
To test for blowfish support you can use these conditions: >
has('crypt-blowfish')
has('crypt-blowfish2')
This works since Vim 7.4.1099 while blowfish support was added earlier.
Thus the condition failing doesn't mean blowfish is not supported. You can
test for blowfish with: >
v:version >= 703
And for blowfish2 with: >
v:version > 704 || (v:version == 704 && has('patch401'))
If you are sure Vim includes patch 7.4.237 a simpler check is: >
has('patch-7.4.401')
<
*E817* *E818* *E819* *E820* *E817* *E818* *E819* *E820*
When encryption does not work properly, you would be able to write your text When encryption does not work properly, you would be able to write your text
to a file and never be able to read it back. Therefore a test is performed to to a file and never be able to read it back. Therefore a test is performed to

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
*farsi.txt* For Vim version 7.4. Last change: 2010 Aug 07 *farsi.txt* For Vim version 7.4. Last change: 2015 Aug 29
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
@ -59,7 +59,7 @@ o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9
right-to-left mode, this function is also supported only in right-to-left right-to-left mode, this function is also supported only in right-to-left
mode. mode.
Farsi Fonts *farsi fonts* Farsi Fonts *farsi-fonts*
----------- -----------
The following files are found in the subdirectories of the '$VIM/farsi/fonts' The following files are found in the subdirectories of the '$VIM/farsi/fonts'
@ -222,7 +222,7 @@ o Keyboard
Note: Note:
<09> stands for Farsi PSP (break without space) <09> stands for Farsi PSP (break without space)
<09> stands for Farsi PCN (for HAMZE attribute ) <09> stands for Farsi PCN (for HAMZE attribute)
Restrictions Restrictions
------------ ------------

View File

@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.4. Last change: 2013 Dec 15 *filetype.txt* For Vim version 7.4. Last change: 2015 Dec 06
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -552,7 +552,7 @@ Local mappings:
to the end of the file in Normal mode. This means "> " is inserted in to the end of the file in Normal mode. This means "> " is inserted in
each line. each line.
MAN *ft-man-plugin* *:Man* MAN *ft-man-plugin* *:Man* *man.vim*
Displays a manual page in a nice way. Also see the user manual Displays a manual page in a nice way. Also see the user manual
|find-manpage|. |find-manpage|.
@ -577,6 +577,13 @@ Global mapping:
Local mappings: Local mappings:
CTRL-] Jump to the manual page for the word under the cursor. CTRL-] Jump to the manual page for the word under the cursor.
CTRL-T Jump back to the previous manual page. CTRL-T Jump back to the previous manual page.
q Same as ":quit"
To enable folding use this: >
let g:ft_man_folding_enable = 1
If you do not like the default folding, use an autocommand to add your desired
folding style instead. For example: >
autocmd FileType man setlocal foldmethod=indent foldenable
PDF *ft-pdf-plugin* PDF *ft-pdf-plugin*

View File

@ -1,4 +1,4 @@
*fold.txt* For Vim version 7.4. Last change: 2013 Dec 04 *fold.txt* For Vim version 7.4. Last change: 2016 Jan 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -97,9 +97,9 @@ These are the conditions with which the expression is evaluated:
lowest. lowest.
"=" use fold level from the previous line "=" use fold level from the previous line
"a1", "a2", .. add one, two, .. to the fold level of the previous "a1", "a2", .. add one, two, .. to the fold level of the previous
line line, use the result for the current line
"s1", "s2", .. subtract one, two, .. from the fold level of the "s1", "s2", .. subtract one, two, .. from the fold level of the
previous line previous line, use the result for the next line
"<1", "<2", .. a fold with this level ends at this line "<1", "<2", .. a fold with this level ends at this line
">1", ">2", .. a fold with this level starts at this line ">1", ">2", .. a fold with this level starts at this line
@ -122,6 +122,18 @@ method can be very slow!
Try to avoid the "=", "a" and "s" return values, since Vim often has to search Try to avoid the "=", "a" and "s" return values, since Vim often has to search
backwards for a line for which the fold level is defined. This can be slow. backwards for a line for which the fold level is defined. This can be slow.
An example of using "a1" and "s1": For a multi-line C comment, a line
containing "/*" would return "a1" to start a fold, and a line containing "*/"
would return "s1" to end the fold after that line: >
if match(thisline, '/\*') >= 0
return 'a1'
elseif match(thisline, '\*/') >= 0
return 's1'
else
return '='
endif
However, this won't work for single line comments, strings, etc.
|foldlevel()| can be useful to compute a fold level relative to a previous |foldlevel()| can be useful to compute a fold level relative to a previous
fold level. But note that foldlevel() may return -1 if the level is not known fold level. But note that foldlevel() may return -1 if the level is not known
yet. And it returns the level at the start of the line, while a fold might yet. And it returns the level at the start of the line, while a fold might
@ -365,7 +377,7 @@ zX Undo manually opened and closed folds: re-apply 'foldlevel'.
Also forces recomputing folds, like |zx|. Also forces recomputing folds, like |zx|.
*zm* *zm*
zm Fold more: Subtract one from 'foldlevel'. If 'foldlevel' was zm Fold more: Subtract |v:count1| from 'foldlevel'. If 'foldlevel' was
already zero nothing happens. already zero nothing happens.
'foldenable' will be set. 'foldenable' will be set.
@ -374,7 +386,7 @@ zM Close all folds: set 'foldlevel' to 0.
'foldenable' will be set. 'foldenable' will be set.
*zr* *zr*
zr Reduce folding: Add one to 'foldlevel'. zr Reduce folding: Add |v:count1| to 'foldlevel'.
*zR* *zR*
zR Open all folds. This sets 'foldlevel' to highest fold level. zR Open all folds. This sets 'foldlevel' to highest fold level.
@ -573,8 +585,9 @@ what you type!
When using an operator, a closed fold is included as a whole. Thus "dl" When using an operator, a closed fold is included as a whole. Thus "dl"
deletes the whole closed fold under the cursor. deletes the whole closed fold under the cursor.
For Ex commands the range is adjusted to always start at the first line of a For Ex commands that work on buffer lines the range is adjusted to always
closed fold and end at the last line of a closed fold. Thus this command: > start at the first line of a closed fold and end at the last line of a closed
fold. Thus this command: >
:s/foo/bar/g :s/foo/bar/g
when used with the cursor on a closed fold, will replace "foo" with "bar" in when used with the cursor on a closed fold, will replace "foo" with "bar" in
all lines of the fold. all lines of the fold.

View File

@ -25,7 +25,7 @@ Other GUI documentation:
First you must make sure you actually have a version of Vim with the GUI code First you must make sure you actually have a version of Vim with the GUI code
included. You can check this with the ":version" command, it says "with xxx included. You can check this with the ":version" command, it says "with xxx
GUI", where "xxx" is X11-Motif, X11-Athena, Photon, GTK, GTK2, etc., or GUI", where "xxx" is X11-Motif, X11-Athena, Photon, GTK2, GTK3, etc., or
"MS-Windows 32 bit GUI version". "MS-Windows 32 bit GUI version".
How to start the GUI depends on the system used. Mostly you can run the How to start the GUI depends on the system used. Mostly you can run the
@ -514,11 +514,14 @@ a menu entry. Hit <Enter> to execute it. Hit <Esc> if you want to cancel.
This does require the |+menu| feature enabled at compile time. This does require the |+menu| feature enabled at compile time.
*tear-off-menus* *tear-off-menus*
GTK+ and Motif support Tear-off menus. These are sort of sticky menus or GTK+ 2 and Motif support Tear-off menus. These are sort of sticky menus or
pop-up menus that are present all the time. If the resizing does not work pop-up menus that are present all the time. If the resizing does not work
correctly, this may be caused by using something like "Vim*geometry" in the correctly, this may be caused by using something like "Vim*geometry" in the
defaults. Use "Vim.geometry" instead. defaults. Use "Vim.geometry" instead.
As to GTK+ 3, tear-off menus have been deprecated since GTK+ 3.4.
Accordingly, they are disabled if gvim is linked against GTK+ 3.4 or later.
The Win32 GUI version emulates Motif's tear-off menus. Actually, a Motif user The Win32 GUI version emulates Motif's tear-off menus. Actually, a Motif user
will spot the differences easily, but hopefully they're just as useful. You will spot the differences easily, but hopefully they're just as useful. You
can also use the |:tearoff| command together with |hidden-menus| to create can also use the |:tearoff| command together with |hidden-menus| to create
@ -650,8 +653,8 @@ When no or zero priority is given, 500 is used.
The priority for the PopUp menu is not used. The priority for the PopUp menu is not used.
The Help menu will be placed on the far right side of the menu bar on systems The Help menu will be placed on the far right side of the menu bar on systems
which support this (Motif and GTK+). For GTK+ 2, this is not done anymore which support this (Motif and GTK+). For GTK+ 2 and 3, this is not done
because right-aligning the Help menu is now discouraged UI design. anymore because right-aligning the Help menu is now discouraged UI design.
You can use a priority higher than 9999, to make it go after the Help menu, You can use a priority higher than 9999, to make it go after the Help menu,
but that is non-standard and is discouraged. The highest possible priority is but that is non-standard and is discouraged. The highest possible priority is

View File

@ -1,186 +0,0 @@
*gui_w16.txt* For Vim version 7.4. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar
Vim's Graphical User Interface *gui-w16* *win16-gui*
1. Starting the GUI |win16-start|
2. Vim as default editor |win16-default-editor|
3. Using the clipboard |win16-clipboard|
4. Shell Commands |win16-shell|
5. Special colors |win16-colors|
6. Windows dialogs & browsers |win16-dialogs|
7. Various |win16-various|
Other relevant documentation:
|gui.txt| For generic items of the GUI.
|os_msdos.txt| For items common to DOS and Windows.
|gui_w32.txt| Some items here are also applicable to the Win16 version.
{Vi does not have a Windows GUI}
The Win16 version of Vim will run on Windows 3.1 or later. It has not been
tested on 3.0, it probably won't work without being recompiled and
modified. (But you really should upgrade to 3.11 anyway. :)
In most respects it behaves identically to the Win32 GUI version, including
having a flat-style toolbar(!). The chief differences:
1) Bold/Italic text is not available, to speed up repaint/reduce resource
usage. (You can re-instate this by undefining MSWIN16_FASTTEXT.)
2) No tearoff menu emulation.
3) No OLE interface.
4) No long filename support (of course).
5) No tooltips on toolbar buttons - instead they produce command-line tips
like menu items do.
6) Line length limited to 32767 characters (like 16-bit DOS version).
==============================================================================
1. Starting the GUI *win16-start*
The Win16 GUI version of Vim will always start the GUI, no matter how you
start it or what it's called. There is no 'console' version as such, but you
can use one of the DOS versions in a DOS box.
The Win16 GUI has an extra menu item: "Window/Select Font". It brings up the
standard Windows font selector. Note that bold and italic fonts are not
supported in an attempt to maximize GDI drawing speed.
Setting the menu height doesn't work for the Win16 GUI.
*win16-maximized*
If you want Vim to start with a maximized window, add this command to your
vimrc or gvimrc file: >
au GUIEnter * simalt ~x
<
There is a specific version of gvim.exe that runs under the Win32s subsystem
of Windows 3.1 or 3.11. See |win32s|.
==============================================================================
2. Vim as default editor *win16-default-editor*
To set Vim as the default editor for a file type you can use File Manager's
"Associate" feature.
When you open a file in Vim by double clicking it, Vim changes to that
file's directory.
See also |notepad|.
==============================================================================
3. Using the clipboard *win16-clipboard*
Windows has a clipboard, where you can copy text to, and paste text from. Vim
supports this in several ways.
The clipboard works in the same way as the Win32 version: see |gui-clipboard|.
==============================================================================
4. Shell Commands *win16-shell*
Vim spawns a DOS window for external commands, to make it possible to run any
DOS command. The window uses the _default.pif settings.
*win16-!start*
Normally, Vim waits for a command to complete before continuing (this makes
sense for most shell commands which produce output for Vim to use). If you
want Vim to start a program and return immediately, you can use the following
syntax:
:!start {command}
This may only work for a Windows program though.
Don't forget that you must tell Windows 3.1x to keep executing a DOS command
in the background while you switch back to Vim.
==============================================================================
5. Special colors *win16-colors*
On Win16, the normal DOS colors can be used. See |dos-colors|.
Additionally the system configured colors can also be used. These are known
by the names Sys_XXX, where XXX is the appropriate system color name, from the
following list (see the Win32 documentation for full descriptions). Case is
ignored.
Sys_BTNFace Sys_BTNShadow Sys_ActiveBorder
Sys_ActiveCaption Sys_AppWorkspace Sys_Background
Sys_BTNText Sys_CaptionText Sys_GrayText
Sys_Highlight Sys_HighlightText Sys_InactiveBorder
Sys_InactiveCaption Sys_InactiveCaptionText Sys_Menu
Sys_MenuText Sys_ScrollBar Sys_Window
Sys_WindowFrame Sys_WindowText
Probably the most useful values are
Sys_Window Normal window background
Sys_WindowText Normal window text
Sys_Highlight Highlighted background
Sys_HighlightText Highlighted text
These extra colors are also available:
Gray, Grey, LightYellow, SeaGreen, Orange, Purple, SlateBlue, Violet,
See also |rgb.txt|.
==============================================================================
*win16-dialogs*
6. Windows dialogs & browsers
The Win16 GUI can use familiar Windows components for some operations, as well
as the traditional interface shared with the console version.
6.1 Dialogs
The dialogs displayed by the "confirm" family (i.e. the 'confirm' option,
|:confirm| command and |confirm()| function) are GUI-based rather than the
console-based ones used by other versions. There is no option to change this.
6.2 File Browsers
When prepending ":browse" before file editing commands, a file requester is
used to allow you to select an existing file. See |:browse|.
==============================================================================
7. Various *win16-various*
*win16-printing*
The "File/Print" menu uses Notepad to print the current buffer. This is a bit
clumsy, but it's portable. If you want something else, you can define your
own print command. For example, you could look for the 16-bit version of
PrintFile. See $VIMRUNTIME/menu.vim for how it works by default.
Using this should also work: >
:w >>prn
Vim supports a number of standard MS Windows features. Some of these are
detailed elsewhere: see |'mouse'|, |win32-hidden-menus|.
Also see |:simalt|
*win16-drag-n-drop*
You can drag and drop one or more files into the vim window, where they will
be opened as normal. If you hold down Shift while doing this, Vim changes to
the (first) dropped file's directory. If you hold Ctrl, Vim will always split
a new window for the file. Otherwise it's only done if the current buffer has
been changed.
You can also drop a directory's icon, but rather than open all files in the
directory (which wouldn't usually be what you want) Vim instead changes to
that directory and begins a new file.
If Vim happens to be editing a command line, the names of the dropped files
and directories will be inserted at the cursor. This allows you to use these
names with any Ex command.
*win16-truetype*
It is recommended that you use a raster font and not a TrueType
fixed-pitch font. E.g. use Courier, not Courier New. This is not just
to use less resources but because there are subtle bugs in the
handling of fixed-pitch TrueType in Win3.1x. In particular, when you move
a block cursor over a pipe character '|', the cursor is drawn in the wrong
size and bits get left behind. This is a bug in the Win3.1x GDI, it doesn't
happen if you run the exe under 95/NT.
vim:tw=78:sw=4:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 7.4. Last change: 2012 Aug 04 *gui_w32.txt* For Vim version 7.4. Last change: 2014 Dec 20
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -452,9 +452,10 @@ detailed elsewhere: see |'mouse'|, |win32-hidden-menus|.
You can drag and drop one or more files into the Vim window, where they will You can drag and drop one or more files into the Vim window, where they will
be opened as normal. See |drag-n-drop|. be opened as normal. See |drag-n-drop|.
*:simalt* *:si* *:simalt* *:sim*
:sim[alt] {key} simulate pressing {key} while holding Alt pressed. :sim[alt] {key} simulate pressing {key} while holding Alt pressed.
{not in Vi} {only for Win32 versions} {not in Vi} {only for Win32 versions}
Note: ":si" means ":s" with the "i" flag.
Normally, Vim takes control of all Alt-<Key> combinations, to increase the Normally, Vim takes control of all Alt-<Key> combinations, to increase the
number of possible mappings. This clashes with the standard use of Alt as the number of possible mappings. This clashes with the standard use of Alt as the

View File

@ -369,6 +369,16 @@ Write this in the file ~/.gtkrc and it will be used by GTK+. For GTK+ 2
you might have to use the file ~/.gtkrc-2.0 instead, depending on your you might have to use the file ~/.gtkrc-2.0 instead, depending on your
distribution. distribution.
For GTK+ 3, an effect similar to the above can be obtained by adding the
following snippet of CSS code to $XDG_HOME_DIR/gtk-3.0/gtk.css (usually,
$HOME/.config/gtk-3.0/gtk.css):
>
.tooltip {
background-color: #ffffcc;
color: #000000;
}
<
Using Vim as a GTK+ plugin *gui-gtk-socketid* Using Vim as a GTK+ plugin *gui-gtk-socketid*
When the GTK+ version of Vim starts up normally, it creates its own top level When the GTK+ version of Vim starts up normally, it creates its own top level

View File

@ -1,11 +1,8 @@
*hangulin.txt* For Vim version 7.4. Last change: 2009 Jun 24 *hangulin.txt* For Vim version 7.4. Last change: 2015 Nov 24
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
NOTE: The |+hangul_input| feature is scheduled to be removed. If you want to
keep it, please send a message to the Vim user maillist.
Introduction *hangul* Introduction *hangul*
------------ ------------
@ -17,7 +14,8 @@ Compile
------- -------
Next is a basic option. You can add any other configure option. > Next is a basic option. You can add any other configure option. >
./configure --with-x --enable-multibyte --enable-fontset --enable-hangulinput ./configure --with-x --enable-multibyte --enable-hangulinput \
--disable-xim
And you should check feature.h. If |+hangul_input| feature is enabled And you should check feature.h. If |+hangul_input| feature is enabled
by configure, you can select more options such as keyboard type, 2 bulsik by configure, you can select more options such as keyboard type, 2 bulsik
@ -26,18 +24,21 @@ or 3 bulsik. You can find keywords like next in there. >
#define HANGUL_DEFAULT_KEYBOARD 2 #define HANGUL_DEFAULT_KEYBOARD 2
#define ESC_CHG_TO_ENG_MODE #define ESC_CHG_TO_ENG_MODE
/* #define X_LOCALE */ /* #define X_LOCALE */
/* #define SLOW_XSERVER */
Environment variables Environment variables
--------------------- ---------------------
You should set LANG variable to Korean locale such as ko or ko_KR.euc. You should set LANG variable to Korean locale such as ko, ko_KR.eucKR
or ko_KR.UTF-8.
If you set LC_ALL variable, it should be set to Korean locale also. If you set LC_ALL variable, it should be set to Korean locale also.
VIM resource VIM resource
------------ ------------
You should add nexts to your global vimrc ($HOME/.vimrc). > You may want to set 'encoding' and 'fileencodings'.
Next are examples: >
:set fileencoding=korea :set encoding=euc-kr
:set encoding=utf-8
:set fileencodings=ucs-bom,utf-8,cp949,euc-kr,latin1
Keyboard Keyboard
-------- --------
@ -52,8 +53,16 @@ If both are set, VIM_KEYBOARD has higher priority.
Hangul Fonts Hangul Fonts
------------ ------------
You can set text font using $HOME/.Xdefaults or in your gvimrc file. If you use GTK version of GVIM, you should set 'guifont' and 'guifontwide'.
But to use Hangul, you should set 'guifontset' in your vimrc. For example: >
set guifont=Courier\ 12
set guifontwide=NanumGothicCoding\ 12
If you use Motif or Athena version of GVIM, you should set 'guifontset' in
your vimrc. You can set fontset in the .Xdefaults file.
$HOME/.gvimrc: >
set guifontset=english_font,hangul_font
$HOME/.Xdefaults: > $HOME/.Xdefaults: >
Vim.font: english_font Vim.font: english_font
@ -66,40 +75,38 @@ $HOME/.Xdefaults: >
*international: True *international: True
Vim*fontList: english_font;hangul_font: Vim*fontList: english_font;hangul_font:
$HOME/.gvimrc: >
set guifontset=english_font,hangul_font
attention! the , (comma) or ; (semicolon) attention! the , (comma) or ; (semicolon)
And there should be no ':set guifont'. If it exists, then Gvim ignores And there should be no ':set guifont'. If it exists, then Gvim ignores
':set guifontset'. It means VIM runs without fontset supporting. ':set guifontset'. It means VIM runs without fontset supporting.
So, you can see only English. Hangul does not be correctly displayed. So, you can see only English. Hangul does not be correctly displayed.
After 'fontset' feature is enabled, VIM does not allow using 'font'. After 'fontset' feature is enabled, VIM does not allow using english
font only in 'font' setting for syntax.
For example, if you use > For example, if you use >
:set guifontset=eng_font,your_font :set guifontset=eng_font,your_font
in your .gvimrc, then you should do for syntax > in your .gvimrc, then you should do for syntax >
:hi Comment guifg=Cyan font=another_eng_font,another_your_font :hi Comment guifg=Cyan font=another_eng_font,another_your_font
If you just do > If you just do >
:hi Comment font=another_eng_font :hi Comment font=another_eng_font
then you can see a GOOD error message. Be careful! then you can see a error message. Be careful!
hangul_font width should be twice than english_font width. hangul_font width should be twice than english_font width.
Unsupported Feature Unsupported Feature
------------------- -------------------
Johab font not yet supported. And I don't have any plan. We don't support Johab font.
If you really want to use johab font, you can use the We don't support Hanja input.
hanguldraw.c in gau package. And We don't have any plan to support them.
Hanja input not yet supported. And I don't have any plan. If you really need such features, you can use console version of VIM with a
If you really want to input hanja, just use VIM with hanterm. capable terminal emulator.
Bug or Comment Bug or Comment
-------------- --------------
Send comments, patches and suggestions to: Send comments, patches and suggestions to:
Chi-Deok Hwang <hwang@mizi.co.kr>
SungHyun Nam <goweol@gmail.com> SungHyun Nam <goweol@gmail.com>
Chi-Deok Hwang <...>
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*help.txt* For Vim version 7.4. Last change: 2012 Dec 06 *help.txt* For Vim version 7.4. Last change: 2016 Feb 27
VIM - main help file VIM - main help file
k k
@ -10,20 +10,23 @@ Close this window: Use ":q<Enter>".
Jump to a subject: Position the cursor on a tag (e.g. |bars|) and hit CTRL-]. Jump to a subject: Position the cursor on a tag (e.g. |bars|) and hit CTRL-].
With the mouse: ":set mouse=a" to enable the mouse (in xterm or GUI). With the mouse: ":set mouse=a" to enable the mouse (in xterm or GUI).
Double-click the left mouse button on a tag, e.g. |bars|. Double-click the left mouse button on a tag, e.g. |bars|.
Jump back: Type CTRL-T or CTRL-O (repeat to go further back). Jump back: Type CTRL-T or CTRL-O. Repeat to go further back.
Get specific help: It is possible to go directly to whatever you want help Get specific help: It is possible to go directly to whatever you want help
on, by giving an argument to the |:help| command. on, by giving an argument to the |:help| command.
It is possible to further specify the context: Prepend something to specify the context: *help-context*
*help-context*
WHAT PREPEND EXAMPLE ~ WHAT PREPEND EXAMPLE ~
Normal mode command (nothing) :help x Normal mode command :help x
Visual mode command v_ :help v_u Visual mode command v_ :help v_u
Insert mode command i_ :help i_<Esc> Insert mode command i_ :help i_<Esc>
Command-line command : :help :quit Command-line command : :help :quit
Command-line editing c_ :help c_<Del> Command-line editing c_ :help c_<Del>
Vim command argument - :help -r Vim command argument - :help -r
Option ' :help 'textwidth' Option ' :help 'textwidth'
Regular expression / :help /[
See |help-summary| for more contexts and an explanation.
Search for help: Type ":help word", then hit CTRL-D to see matching Search for help: Type ":help word", then hit CTRL-D to see matching
help entries for "word". help entries for "word".
Or use ":helpgrep word". |:helpgrep| Or use ":helpgrep word". |:helpgrep|
@ -152,7 +155,6 @@ Special issues ~
GUI ~ GUI ~
|gui.txt| Graphical User Interface (GUI) |gui.txt| Graphical User Interface (GUI)
|gui_w16.txt| Windows 3.1 GUI
|gui_w32.txt| Win32 GUI |gui_w32.txt| Win32 GUI
|gui_x11.txt| X11 GUI |gui_x11.txt| X11 GUI
@ -162,7 +164,6 @@ Interfaces ~
|if_mzsch.txt| MzScheme interface |if_mzsch.txt| MzScheme interface
|if_perl.txt| Perl interface |if_perl.txt| Perl interface
|if_pyth.txt| Python interface |if_pyth.txt| Python interface
|if_sniff.txt| SNiFF+ interface
|if_tcl.txt| Tcl interface |if_tcl.txt| Tcl interface
|if_ole.txt| OLE automation interface for Win32 |if_ole.txt| OLE automation interface for Win32
|if_ruby.txt| Ruby interface |if_ruby.txt| Ruby interface
@ -196,6 +197,7 @@ Remarks about specific systems ~
Standard plugins ~ Standard plugins ~
|pi_getscript.txt| Downloading latest version of Vim scripts |pi_getscript.txt| Downloading latest version of Vim scripts
|pi_gzip.txt| Reading and writing compressed files |pi_gzip.txt| Reading and writing compressed files
|pi_logipat.txt| Logical operators on patterns
|pi_netrw.txt| Reading and writing files over a network |pi_netrw.txt| Reading and writing files over a network
|pi_paren.txt| Highlight matching parens |pi_paren.txt| Highlight matching parens
|pi_tar.txt| Tar file explorer |pi_tar.txt| Tar file explorer

View File

@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 7.4. Last change: 2013 Sep 04 *if_lua.txt* For Vim version 7.4. Last change: 2015 Oct 16
VIM REFERENCE MANUAL by Luis Carvalho VIM REFERENCE MANUAL by Luis Carvalho
@ -14,6 +14,7 @@ The Lua Interface to Vim *lua* *Lua*
6. Buffer userdata |lua-buffer| 6. Buffer userdata |lua-buffer|
7. Window userdata |lua-window| 7. Window userdata |lua-window|
8. The luaeval function |lua-luaeval| 8. The luaeval function |lua-luaeval|
9. Dynamic loading |lua-dynamic|
{Vi does not have any of these commands} {Vi does not have any of these commands}
@ -399,5 +400,24 @@ Examples: >
:echo Rand(1,10) :echo Rand(1,10)
==============================================================================
9. Dynamic loading *lua-dynamic*
On MS-Windows and Unix the Lua library can be loaded dynamically. The
|:version| output then includes |+lua/dyn|.
This means that Vim will search for the Lua DLL or shared library file only
when needed. When you don't use the Lua interface you don't need it, thus
you can use Vim without this file.
On MS-Windows to use the Lua interface the Lua DLL must be in your search path.
In a console window type "path" to see what directories are used. The version
of the DLL must match the Lua version Vim was compiled with.
On Unix the 'luadll' option can be used to specify the Lua shared library file
instead of DYNAMIC_LUA_DLL file what was specified at compile time. The
version of the shared library must match the Lua version Vim was compiled with.
============================================================================== ==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*if_mzsch.txt* For Vim version 7.4. Last change: 2012 Dec 17 *if_mzsch.txt* For Vim version 7.4. Last change: 2016 Jan 24
VIM REFERENCE MANUAL by Sergey Khorev VIM REFERENCE MANUAL by Sergey Khorev
@ -13,6 +13,7 @@ The MzScheme Interface to Vim *mzscheme* *MzScheme*
5. mzeval() Vim function |mzscheme-mzeval| 5. mzeval() Vim function |mzscheme-mzeval|
6. Using Function references |mzscheme-funcref| 6. Using Function references |mzscheme-funcref|
7. Dynamic loading |mzscheme-dynamic| 7. Dynamic loading |mzscheme-dynamic|
8. MzScheme setup |mzscheme-setup|
{Vi does not have any of these commands} {Vi does not have any of these commands}
@ -264,7 +265,7 @@ directly from Scheme. For instance: >
< <
============================================================================== ==============================================================================
7. Dynamic loading *mzscheme-dynamic* *E815* 7. Dynamic loading *mzscheme-dynamic* *E815*
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version| On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
output then includes |+mzscheme/dyn|. output then includes |+mzscheme/dyn|.
@ -272,6 +273,9 @@ output then includes |+mzscheme/dyn|.
This means that Vim will search for the MzScheme DLL files only when needed. This means that Vim will search for the MzScheme DLL files only when needed.
When you don't use the MzScheme interface you don't need them, thus you can When you don't use the MzScheme interface you don't need them, thus you can
use Vim without these DLL files. 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.
To use the MzScheme interface the MzScheme DLLs must be in your search path. 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. In a console window type "path" to see what directories are used.
@ -282,5 +286,24 @@ For MzScheme version 209 they will be "libmzsch209_000.dll" and
command, look for -DDYNAMIC_MZSCH_DLL="something" and command, look for -DDYNAMIC_MZSCH_DLL="something" and
-DDYNAMIC_MZGC_DLL="something" in the "Compilation" info. -DDYNAMIC_MZGC_DLL="something" in the "Compilation" info.
For example, if MzScheme (Racket) is installed at C:\Racket63, you may need
to set the environment variable as the following: >
PATH=%PATH%;C:\Racket63\lib
PLTCOLLECTS=C:\Racket63\collects
PLTCONFIGDIR=C:\Racket63\etc
<
==============================================================================
8. MzScheme setup *mzscheme-setup* *E895*
Vim requires "racket/base" module for if_mzsch core (fallback to "scheme/base"
if it doesn't exist), "r5rs" module for test and "raco ctool" command for
building Vim. If MzScheme did not have them, you can install them with
MzScheme's raco command:
>
raco pkg install scheme-lib # scheme/base module
raco pkg install r5rs-lib # r5rs module
raco pkg install cext-lib # raco ctool command
<
====================================================================== ======================================================================
vim:tw=78:ts=8:sts=4:ft=help:norl: vim:tw=78:ts=8:sts=4:ft=help:norl:

View File

@ -197,7 +197,7 @@ files in it.
--remote-silent "+call cursor(10, 27)" --remote-silent "+call cursor(10, 27)"
- Places the cursor on line 10 column 27 - Places the cursor on line 10 column 27
In Vim > In Vim >
:h --remote-silent for mor details :h --remote-silent for more details
[.Net remarks provided by Dave Fishburn and Brian Sturk] [.Net remarks provided by Dave Fishburn and Brian Sturk]

View File

@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 7.4. Last change: 2013 Oct 05 *if_perl.txt* For Vim version 7.4. Last change: 2015 Oct 16
VIM REFERENCE MANUAL by Sven Verdoolaege VIM REFERENCE MANUAL by Sven Verdoolaege
@ -290,5 +290,13 @@ The name of the DLL must match the Perl version Vim was compiled with.
Currently the name is "perl512.dll". That is for Perl 5.12. To know for Currently the name is "perl512.dll". That is for Perl 5.12. To know for
sure edit "gvim.exe" and search for "perl\d*.dll\c". sure edit "gvim.exe" and search for "perl\d*.dll\c".
Unix ~
The 'perldll' option can be used to specify the Perl shared library file
instead of DYNAMIC_PERL_DLL file what was specified at compile time. The
version of the shared library must match the Perl version Vim was compiled
with.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.4. Last change: 2014 Jul 23 *if_pyth.txt* For Vim version 7.4. Last change: 2015 Nov 10
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore
@ -679,20 +679,26 @@ functions to evaluate Python expressions and pass their values to VimL.
============================================================================== ==============================================================================
9. Dynamic loading *python-dynamic* 9. Dynamic loading *python-dynamic*
On MS-Windows the Python library can be loaded dynamically. The |:version| On MS-Windows and Unix the Python library can be loaded dynamically. The
output then includes |+python/dyn|. |:version| output then includes |+python/dyn| or |+python3/dyn|.
This means that Vim will search for the Python DLL file only when needed. This means that Vim will search for the Python DLL or shared library file only
When you don't use the Python interface you don't need it, thus you can use when needed. When you don't use the Python interface you don't need it, thus
Vim without this DLL file. you can use Vim without this file.
To use the Python interface the Python DLL must be in your search path. In a On MS-Windows to use the Python interface the Python DLL must be in your search
console window type "path" to see what directories are used. path. In a console window type "path" to see what directories are used.
The name of the DLL must match the Python version Vim was compiled with. The name of the DLL must match the Python version Vim was compiled with.
Currently the name is "python24.dll". That is for Python 2.4. To know for Currently the name is "python24.dll". That is for Python 2.4. To know for
sure edit "gvim.exe" and search for "python\d*.dll\c". sure edit "gvim.exe" and search for "python\d*.dll\c".
On Unix the 'pythondll' or 'pythonthreedll' option can be used to specify the
Python shared library file instead of DYNAMIC_PYTHON_DLL or
DYNAMIC_PYTHON3_DLL file what were specified at compile time. The version of
the shared library must match the Python 2.x or Python 3 version Vim was
compiled with.
============================================================================== ==============================================================================
10. Python 3 *python3* 10. Python 3 *python3*

View File

@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 7.4. Last change: 2012 Aug 02 *if_ruby.txt* For Vim version 7.4. Last change: 2015 Dec 03
VIM REFERENCE MANUAL by Shugo Maeda VIM REFERENCE MANUAL by Shugo Maeda
@ -7,9 +7,9 @@ The Ruby Interface to Vim *ruby* *Ruby*
1. Commands |ruby-commands| 1. Commands |ruby-commands|
2. The VIM module |ruby-vim| 2. The Vim module |ruby-vim|
3. VIM::Buffer objects |ruby-buffer| 3. Vim::Buffer objects |ruby-buffer|
4. VIM::Window objects |ruby-window| 4. Vim::Window objects |ruby-window|
5. Global variables |ruby-globals| 5. Global variables |ruby-globals|
6. Dynamic loading |ruby-dynamic| 6. Dynamic loading |ruby-dynamic|
@ -47,7 +47,7 @@ Example Vim script: >
ruby << EOF ruby << EOF
class Garnet class Garnet
def initialize(s) def initialize(s)
@buffer = VIM::Buffer.current @buffer = Vim::Buffer.current
vimputs(s) vimputs(s)
end end
def vimputs(s) def vimputs(s)
@ -74,19 +74,19 @@ Example Vim script: >
Executing Ruby commands is not possible in the |sandbox|. Executing Ruby commands is not possible in the |sandbox|.
============================================================================== ==============================================================================
2. The VIM module *ruby-vim* 2. The Vim module *ruby-vim*
Ruby code gets all of its access to vim via the "VIM" module. Ruby code gets all of its access to vim via the "Vim" module.
Overview > Overview: >
print "Hello" # displays a message print "Hello" # displays a message
VIM.command(cmd) # execute an Ex command Vim.command(cmd) # execute an Ex command
num = VIM::Window.count # gets the number of windows num = Vim::Window.count # gets the number of windows
w = VIM::Window[n] # gets window "n" w = Vim::Window[n] # gets window "n"
cw = VIM::Window.current # gets the current window cw = Vim::Window.current # gets the current window
num = VIM::Buffer.count # gets the number of buffers num = Vim::Buffer.count # gets the number of buffers
b = VIM::Buffer[n] # gets buffer "n" b = Vim::Buffer[n] # gets buffer "n"
cb = VIM::Buffer.current # gets the current buffer cb = Vim::Buffer.current # gets the current buffer
w.height = lines # sets the window height w.height = lines # sets the window height
w.cursor = [row, col] # sets the window cursor position w.cursor = [row, col] # sets the window cursor position
pos = w.cursor # gets an array [row, col] pos = w.cursor # gets an array [row, col]
@ -96,38 +96,42 @@ Overview >
b[n] = str # sets a line in the buffer b[n] = str # sets a line in the buffer
b.delete(n) # deletes a line b.delete(n) # deletes a line
b.append(n, str) # appends a line after n b.append(n, str) # appends a line after n
line = VIM::Buffer.current.line # gets the current line line = Vim::Buffer.current.line # gets the current line
num = VIM::Buffer.current.line_number # gets the current line number num = Vim::Buffer.current.line_number # gets the current line number
VIM::Buffer.current.line = "test" # sets the current line number Vim::Buffer.current.line = "test" # sets the current line number
< <
Module Functions: Module Functions:
*ruby-message* *ruby-message*
VIM::message({msg}) Vim::message({msg})
Displays the message {msg}. Displays the message {msg}.
*ruby-set_option* *ruby-set_option*
VIM::set_option({arg}) Vim::set_option({arg})
Sets a vim option. {arg} can be any argument that the ":set" command Sets a vim option. {arg} can be any argument that the ":set" command
accepts. Note that this means that no spaces are allowed in the accepts. Note that this means that no spaces are allowed in the
argument! See |:set|. argument! See |:set|.
*ruby-command* *ruby-command*
VIM::command({cmd}) Vim::command({cmd})
Executes Ex command {cmd}. Executes Ex command {cmd}.
*ruby-evaluate* *ruby-evaluate*
VIM::evaluate({expr}) Vim::evaluate({expr})
Evaluates {expr} using the vim internal expression evaluator (see Evaluates {expr} using the vim internal expression evaluator (see
|expression|). Returns the expression result as a string. |expression|). Returns the expression result as:
A |List| is turned into a string by joining the items and inserting - a Integer if the Vim expression evaluates to a number
line breaks. - a Float if the Vim expression evaluates to a float
- a String if the Vim expression evaluates to a string
- a Array if the Vim expression evaluates to a Vim list
- a Hash if the Vim expression evaluates to a Vim dictionary
Dictionaries and lists are recursively expanded.
============================================================================== ==============================================================================
3. VIM::Buffer objects *ruby-buffer* 3. Vim::Buffer objects *ruby-buffer*
VIM::Buffer objects represent vim buffers. Vim::Buffer objects represent vim buffers.
Class Methods: Class Methods:
@ -155,9 +159,9 @@ line_number Returns the number of the current line if the buffer is
active. active.
============================================================================== ==============================================================================
4. VIM::Window objects *ruby-window* 4. Vim::Window objects *ruby-window*
VIM::Window objects represent vim windows. Vim::Window objects represent vim windows.
Class Methods: Class Methods:
@ -195,6 +199,8 @@ This means that Vim will search for the Ruby DLL file or shared library only
when needed. When you don't use the Ruby interface you don't need it, thus when needed. When you don't use the Ruby interface you don't need it, thus
you can use Vim even though this library file is not on your system. you can use Vim even though this library file is not on your system.
MS-Windows ~
You need to install the right version of Ruby for this to work. You can find You need to install the right version of Ruby for this to work. You can find
the package to download from: the package to download from:
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
@ -212,5 +218,12 @@ and comment-out the check for _MSC_VER.
You may also need to rename the include directory name to match the version, You may also need to rename the include directory name to match the version,
strangely for Ruby 1.9.3 the directory is called 1.9.1. strangely for Ruby 1.9.3 the directory is called 1.9.1.
Unix ~
The 'rubydll' option can be used to specify the Ruby shared library file
instead of DYNAMIC_RUBY_DLL file what was specified at compile time. The
version of the shared library must match the Ruby version Vim was compiled
with.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,95 +1,11 @@
*if_sniff.txt* For Vim version 7.4. Last change: 2005 Mar 29 *if_sniff.txt* For Vim version 7.4. Last change: 2016 Feb 27
VIM REFERENCE MANUAL VIM REFERENCE MANUAL
by Anton Leherbauer (toni@takefive.co.at) by Anton Leherbauer (toni@takefive.co.at)
SNiFF+ and Vim *sniff* The SNiFF+ support was removed at patch 7.4.1433. If you want to check it out
sync to before that.
1. Introduction |sniff-intro|
2. Commands |sniff-commands|
3. Compiling Vim with SNiFF+ interface |sniff-compiling|
{Vi does not have any of these commands} *E275* *E274* *E276* *E278* *E279*
The SNiFF+ interface only works, when Vim was compiled with the |+sniff|
feature.
==============================================================================
1. Introduction *sniff-intro*
The following features for the use with SNiFF+ are available:
* Vim can be used for all editing requests
* SNiFF+ recognizes and updates all browsers when a file is saved in Vim
* SNiFF+ commands can be issued directly from Vim
How to use Vim with SNiFF+
1. Make sure SNiFF+ is running.
2. In the Editor view of the Preferences dialog set the Field named
'External Editor' to 'Emacs/Vim'.
4. Start Vim
5. Connect to SNiFF+ (:sniff connect)
Once a connection is established, SNiFF+ uses Vim for all requests to show or
edit source code. On the other hand, you can send queries to SNiFF+ with the
:sniff command.
==============================================================================
2. Commands *sniff-commands*
*:sniff* *:sni*
:sni[ff] request [symbol] Send request to sniff with optional symbol.
{not in Vi}
:sni[ff] Display all possible requests and the connection
status
Most requests require a symbol (identifier) as parameter. If it is omitted,
Vim will use the current word under the cursor.
The available requests are listed below:
request mapping description
-------------------------------------------------------------------------------
connect sc Establish connection with SNiFF+.
Make sure SNiFF+ is prepared for this in the
Preferences
disconnect sq Disconnect from SNiFF+. You can reconnect any
time with :sniff connect (or 'sc')
toggle st Toggle between implementation
and definition file
find-symbol sf Load the symbol into a Symbol Browser
browse-class sb Loads the class into a Class Browser
superclass ss Edit superclass of symbol
overridden so Edit overridden method of symbol
retrieve-file srf Retrieve symbol in current file
retrieve-project srp Retrieve symbol in current project
retrieve-all-projects srP Retrieve symbol in all projects
retrieve-next sR Retrieve symbol using current Retriever
settings
goto-symbol sg Goto definition or implementation of symbol
hierarchy sh Load symbol into the Hierarchy Browser
restr-hier sH same as above but show only related classes
xref-to sxt Start a refers-to query on symbol and
load the results into the Cross Referencer
xref-by sxb Start a referred-by query on symbol
xref-has sxh Start a refers-to components query on symbol
xref-used-by sxu Start a referred-by as component query on
symbol
show-docu sd Show documentation of symbol
gen-docu sD Generate documentation of symbol
The mappings are defined in a file 'sniff.vim', which is part of every SNiFF+
product ($SNIFF_DIR/config/sniff.vim). This file is sourced whenever Vim
connects to SNiFF+.
==============================================================================
3. Compiling Vim with SNiFF+ interface *sniff-compiling*
To compile Vim with SNiFF+ support, you need two source files of the extra
archive: if_sniff.c and if_sniff.h.
On Unix: Edit the Makefile and uncomment the line "--enable-sniff". Or run
configure manually with this argument.
On NT: Specify SNIFF=yes with your make command.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*if_tcl.txt* For Vim version 7.4. Last change: 2012 Aug 02 *if_tcl.txt* For Vim version 7.4. Last change: 2016 Jan 01
VIM REFERENCE MANUAL by Ingo Wilken VIM REFERENCE MANUAL by Ingo Wilken
@ -515,19 +515,29 @@ startup file (usually "~/.vimrc" on Unix):
============================================================================== ==============================================================================
9. Dynamic loading *tcl-dynamic* 9. Dynamic loading *tcl-dynamic*
On MS-Windows the Tcl library can be loaded dynamically. The |:version| On MS-Windows and Unix the Tcl library can be loaded dynamically. The
output then includes |+tcl/dyn|. |:version| output then includes |+tcl/dyn|.
This means that Vim will search for the Tcl DLL file only when needed. When This means that Vim will search for the Tcl DLL or shared library file only
you don't use the Tcl interface you don't need it, thus you can use Vim when needed. When you don't use the Tcl interface you don't need it, thus you
without this DLL file. can use Vim without this file.
MS-Windows ~
To use the Tcl interface the Tcl DLL must be in your search path. In a To use the Tcl interface the Tcl DLL must be in your search path. In a
console window type "path" to see what directories are used. console window type "path" to see what directories are used.
The name of the DLL must match the Tcl version Vim was compiled with. The name of the DLL must match the Tcl version Vim was compiled with.
Currently the name is "tcl83.dll". That is for Tcl 8.3. To know for sure Currently the name is "tcl86.dll". That is for Tcl 8.6. To know for sure
edit "gvim.exe" and search for "tcl\d*.dll\c". edit "gvim.exe" and search for "tcl\d*.dll\c".
Unix ~
The 'tcldll' option can be used to specify the Tcl shared library file instead
of DYNAMIC_TCL_DLL file what was specified at compile time. The version of
the shared library must match the Tcl version Vim was compiled with.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 7.4. Last change: 2014 Sep 19 *index.txt* For Vim version 7.4. Last change: 2016 Mar 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -702,12 +702,16 @@ tag char note action in Normal mode ~
|g'| g'{mark} 1 like |'| but without changing the jumplist |g'| g'{mark} 1 like |'| but without changing the jumplist
|g`| g`{mark} 1 like |`| but without changing the jumplist |g`| g`{mark} 1 like |`| but without changing the jumplist
|gstar| g* 1 like "*", but without using "\<" and "\>" |gstar| g* 1 like "*", but without using "\<" and "\>"
|g+| g+ go to newer text state N times
|g,| g, 1 go to N newer position in change list
|g-| g- go to older text state N times
|g0| g0 1 when 'wrap' off go to leftmost character of |g0| g0 1 when 'wrap' off go to leftmost character of
the current line that is on the screen; the current line that is on the screen;
when 'wrap' on go to the leftmost character when 'wrap' on go to the leftmost character
of the current screen line of the current screen line
|g8| g8 print hex value of bytes used in UTF-8 |g8| g8 print hex value of bytes used in UTF-8
character under the cursor character under the cursor
|g;| g; 1 go to N older position in change list
|g<| g< display previous command output |g<| g< display previous command output
|g?| g? 2 Rot13 encoding operator |g?| g? 2 Rot13 encoding operator
|g?g?| g?? 2 Rot13 encode current line |g?g?| g?? 2 Rot13 encode current line
@ -736,6 +740,7 @@ tag char note action in Normal mode ~
the screen; when 'wrap' on go to the the screen; when 'wrap' on go to the
leftmost non-white character of the current leftmost non-white character of the current
screen line screen line
|g_| g_ 1 cursor to the last CHAR N - 1 lines lower
|ga| ga print ascii value of character under the |ga| ga print ascii value of character under the
cursor cursor
|gd| gd 1 go to definition of word under the cursor |gd| gd 1 go to definition of word under the cursor
@ -1050,7 +1055,7 @@ tag command action in Command-line editing mode ~
|c_<Insert>| <Insert> toggle insert/overstrike mode |c_<Insert>| <Insert> toggle insert/overstrike mode
|c_<LeftMouse>| <LeftMouse> cursor at mouse click |c_<LeftMouse>| <LeftMouse> cursor at mouse click
You found it, Arthur! *holy-grail* You found it, Arthur! *holy-grail* *:smile*
============================================================================== ==============================================================================
5. EX commands *ex-cmd-index* *:index* 5. EX commands *ex-cmd-index* *:index*
@ -1133,6 +1138,8 @@ tag command action ~
|:cc| :cc go to specific error |:cc| :cc go to specific error
|:cclose| :ccl[ose] close quickfix window |:cclose| :ccl[ose] close quickfix window
|:cd| :cd change directory |:cd| :cd change directory
|:cdo| :cdo execute command in each valid error list entry
|:cfdo| :cfd[o] execute command in each file in error list
|:center| :ce[nter] format lines at the center |:center| :ce[nter] format lines at the center
|:cexpr| :cex[pr] read errors from expr and jump to first |:cexpr| :cex[pr] read errors from expr and jump to first
|:cfile| :cf[ile] read file with error messages and jump to first |:cfile| :cf[ile] read file with error messages and jump to first
@ -1169,7 +1176,7 @@ tag command action ~
|:cpfile| :cpf[ile] go to last error in previous file |:cpfile| :cpf[ile] go to last error in previous file
|:cquit| :cq[uit] quit Vim with an error code |:cquit| :cq[uit] quit Vim with an error code
|:crewind| :cr[ewind] go to the specified error, default first one |:crewind| :cr[ewind] go to the specified error, default first one
|:cscope| :cs[cope] execute cscope command |:cscope| :cs[cope] execute cscope command
|:cstag| :cst[ag] use cscope to jump to a tag |:cstag| :cst[ag] use cscope to jump to a tag
|:cunmap| :cu[nmap] like ":unmap" but for Command-line mode |:cunmap| :cu[nmap] like ":unmap" but for Command-line mode
|:cunabbrev| :cuna[bbrev] like ":unabbrev" but for Command-line mode |:cunabbrev| :cuna[bbrev] like ":unabbrev" but for Command-line mode
@ -1290,7 +1297,9 @@ tag command action ~
|:lcd| :lc[d] change directory locally |:lcd| :lc[d] change directory locally
|:lchdir| :lch[dir] change directory locally |:lchdir| :lch[dir] change directory locally
|:lclose| :lcl[ose] close location window |:lclose| :lcl[ose] close location window
|:lcscope| :lcs[cope] like ":cscope" but uses location list |:lcscope| :lcs[cope] like ":cscope" but uses location list
|:ldo| :ld[o] execute command in valid location list entries
|:lfdo| :lfd[o] execute command in each file in location list
|:left| :le[ft] left align lines |:left| :le[ft] left align lines
|:leftabove| :lefta[bove] make split window appear left or above |:leftabove| :lefta[bove] make split window appear left or above
|:let| :let assign a value to a variable or option |:let| :let assign a value to a variable or option
@ -1342,7 +1351,7 @@ tag command action ~
|:marks| :marks list all marks |:marks| :marks list all marks
|:match| :mat[ch] define a match to highlight |:match| :mat[ch] define a match to highlight
|:menu| :me[nu] enter a new menu item |:menu| :me[nu] enter a new menu item
|:menutranslate| :menut[ranslate] add a menu translation item |:menutranslate| :menut[ranslate] add a menu translation item
|:messages| :mes[sages] view previously displayed messages |:messages| :mes[sages] view previously displayed messages
|:mkexrc| :mk[exrc] write current mappings and settings to a file |:mkexrc| :mk[exrc] write current mappings and settings to a file
|:mksession| :mks[ession] write session info to a file |:mksession| :mks[ession] write session info to a file
@ -1385,6 +1394,7 @@ tag command action ~
|:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode |:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode
|:ounmenu| :ounme[nu] remove menu for Operator-pending mode |:ounmenu| :ounme[nu] remove menu for Operator-pending mode
|:ownsyntax| :ow[nsyntax] set new local syntax highlight for this window |:ownsyntax| :ow[nsyntax] set new local syntax highlight for this window
|:packadd| :pa[ckadd] add a plugin from 'packpath'
|:pclose| :pc[lose] close preview window |:pclose| :pc[lose] close preview window
|:pedit| :ped[it] edit file in the preview window |:pedit| :ped[it] edit file in the preview window
|:perl| :pe[rl] execute Perl command |:perl| :pe[rl] execute Perl command
@ -1465,7 +1475,7 @@ tag command action ~
buffer list buffer list
|:sbrewind| :sbr[ewind] split window and go to first file in the |:sbrewind| :sbr[ewind] split window and go to first file in the
buffer list buffer list
|:scriptnames| :scrip[tnames] list names of all sourced Vim scripts |:scriptnames| :scr[iptnames] list names of all sourced Vim scripts
|:scriptencoding| :scripte[ncoding] encoding used in sourced Vim script |:scriptencoding| :scripte[ncoding] encoding used in sourced Vim script
|:scscope| :scs[cope] split window and execute cscope command |:scscope| :scs[cope] split window and execute cscope command
|:set| :se[t] show or set options |:set| :se[t] show or set options
@ -1486,9 +1496,9 @@ tag command action ~
|:smap| :smap like ":map" but for Select mode |:smap| :smap like ":map" but for Select mode
|:smapclear| :smapc[lear] remove all mappings for Select mode |:smapclear| :smapc[lear] remove all mappings for Select mode
|:smenu| :sme[nu] add menu for Select mode |:smenu| :sme[nu] add menu for Select mode
|:smile| :smi[le] make the user happy
|:snext| :sn[ext] split window and go to next file in the |:snext| :sn[ext] split window and go to next file in the
argument list argument list
|:sniff| :sni[ff] send request to sniff
|:snomagic| :sno[magic] :substitute with 'nomagic' |:snomagic| :sno[magic] :substitute with 'nomagic'
|:snoremap| :snor[emap] like ":noremap" but for Select mode |:snoremap| :snor[emap] like ":noremap" but for Select mode
|:snoremenu| :snoreme[nu] like ":noremenu" but for Select mode |:snoremenu| :snoreme[nu] like ":noremenu" but for Select mode
@ -1508,7 +1518,7 @@ tag command action ~
|:stop| :st[op] suspend the editor or escape to a shell |:stop| :st[op] suspend the editor or escape to a shell
|:stag| :sta[g] split window and jump to a tag |:stag| :sta[g] split window and jump to a tag
|:startinsert| :star[tinsert] start Insert mode |:startinsert| :star[tinsert] start Insert mode
|:startgreplace| :startg[replace] start Virtual Replace mode |:startgreplace| :startg[replace] start Virtual Replace mode
|:startreplace| :startr[eplace] start Replace mode |:startreplace| :startr[eplace] start Replace mode
|:stopinsert| :stopi[nsert] stop Insert mode |:stopinsert| :stopi[nsert] stop Insert mode
|:stjump| :stj[ump] do ":tjump" and split window |:stjump| :stj[ump] do ":tjump" and split window
@ -1529,14 +1539,14 @@ tag command action ~
|:tabdo| :tabdo execute command in each tab page |:tabdo| :tabdo execute command in each tab page
|:tabedit| :tabe[dit] edit a file in a new tab page |:tabedit| :tabe[dit] edit a file in a new tab page
|:tabfind| :tabf[ind] find file in 'path', edit it in a new tab page |:tabfind| :tabf[ind] find file in 'path', edit it in a new tab page
|:tabfirst| :tabfir[st] got to first tab page |:tabfirst| :tabfir[st] go to first tab page
|:tablast| :tabl[ast] got to last tab page |:tablast| :tabl[ast] go to last tab page
|:tabmove| :tabm[ove] move tab page to other position |:tabmove| :tabm[ove] move tab page to other position
|:tabnew| :tabnew edit a file in a new tab page |:tabnew| :tabnew edit a file in a new tab page
|:tabnext| :tabn[ext] go to next tab page |:tabnext| :tabn[ext] go to next tab page
|:tabonly| :tabo[nly] close all tab pages except the current one |:tabonly| :tabo[nly] close all tab pages except the current one
|:tabprevious| :tabp[revious] go to previous tab page |:tabprevious| :tabp[revious] go to previous tab page
|:tabrewind| :tabr[ewind] got to first tab page |:tabrewind| :tabr[ewind] go to first tab page
|:tabs| :tabs list the tab pages and what they contain |:tabs| :tabs list the tab pages and what they contain
|:tab| :tab create new tab when opening new window |:tab| :tab create new tab when opening new window
|:tag| :ta[g] jump to tag |:tag| :ta[g] jump to tag

View File

@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.4. Last change: 2014 Aug 04 *insert.txt* For Vim version 7.4. Last change: 2016 Jan 31
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -81,9 +81,11 @@ CTRL-W Delete the word before the cursor (see |i_backspacing| about
joining lines). See the section "word motions", joining lines). See the section "word motions",
|word-motions|, for the definition of a word. |word-motions|, for the definition of a word.
*i_CTRL-U* *i_CTRL-U*
CTRL-U Delete all entered characters in the current line (see CTRL-U Delete all entered characters before the cursor in the current
|i_backspacing| about joining lines). line. If there are no newly entered characters and
'backspace' is not empty, delete all characters before the
cursor in the current line.
See |i_backspacing| about joining lines.
*i_CTRL-I* *i_<Tab>* *i_Tab* *i_CTRL-I* *i_<Tab>* *i_Tab*
<Tab> or CTRL-I Insert a tab. If the 'expandtab' option is on, the <Tab> or CTRL-I Insert a tab. If the 'expandtab' option is on, the
equivalent number of spaces is inserted (use CTRL-V <Tab> to equivalent number of spaces is inserted (use CTRL-V <Tab> to
@ -150,7 +152,7 @@ CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
CTRL-R a results in "ac". CTRL-R a results in "ac".
CTRL-R CTRL-R a results in "ab^Hc". CTRL-R CTRL-R a results in "ab^Hc".
< Options 'textwidth', 'formatoptions', etc. still apply. If < Options 'textwidth', 'formatoptions', etc. still apply. If
you also want to avoid these, use "<C-R><C-O>r", see below. you also want to avoid these, use CTRL-R CTRL-O, see below.
The '.' register (last inserted text) is still inserted as The '.' register (last inserted text) is still inserted as
typed. {not in Vi} typed. {not in Vi}
@ -375,6 +377,9 @@ CTRL-O execute one command, return to Insert mode *i_CTRL-O*
CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O* CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O*
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L* CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
CTRL-G u break undo sequence, start new change *i_CTRL-G_u* CTRL-G u break undo sequence, start new change *i_CTRL-G_u*
CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U*
movement (but only if the cursor stays
within same the line)
----------------------------------------------------------------------- -----------------------------------------------------------------------
Note: If the cursor keys take you out of Insert mode, check the 'noesckeys' Note: If the cursor keys take you out of Insert mode, check the 'noesckeys'
@ -414,6 +419,28 @@ that, with CTRL-O u. Another example: >
This breaks undo at each line break. It also expands abbreviations before This breaks undo at each line break. It also expands abbreviations before
this. this.
An example for using CTRL-G U: >
inoremap <Left> <C-G>U<Left>
inoremap <Right> <C-G>U<Right>
inoremap <expr> <Home> col('.') == match(getline('.'), '\S') + 1 ?
\ repeat('<C-G>U<Left>', col('.') - 1) :
\ (col('.') < match(getline('.'), '\S') ?
\ repeat('<C-G>U<Right>', match(getline('.'), '\S') + 0) :
\ repeat('<C-G>U<Left>', col('.') - 1 - match(getline('.'), '\S')))
inoremap <expr> <End> repeat('<C-G>U<Right>', col('$') - col('.'))
inoremap ( ()<C-G>U<Left>
This makes it possible to use the cursor keys in Insert mode, without breaking
the undo sequence and therefore using |.| (redo) will work as expected.
Also entering a text like (with the "(" mapping from above): >
Lorem ipsum (dolor
will be repeatable by the |.|to the expected
Lorem ipsum (dolor)
Using CTRL-O splits undo: the text typed before and after it is undone Using CTRL-O splits undo: the text typed before and after it is undone
separately. If you want to avoid this (e.g., in a mapping) you might be able separately. If you want to avoid this (e.g., in a mapping) you might be able
to use CTRL-R = |i_CTRL-R|. E.g., to call a function: > to use CTRL-R = |i_CTRL-R|. E.g., to call a function: >
@ -1845,8 +1872,6 @@ NOTE: These commands cannot be used with |:global| or |:vglobal|.
or script is finished. or script is finished.
This command does not work from |:normal|. This command does not work from |:normal|.
{not in Vi} {not in Vi}
{not available when compiled without the |+ex_extra|
feature}
*:stopi* *:stopinsert* *:stopi* *:stopinsert*
:stopi[nsert] Stop Insert mode as soon as possible. Works like :stopi[nsert] Stop Insert mode as soon as possible. Works like
@ -1864,15 +1889,11 @@ NOTE: These commands cannot be used with |:global| or |:vglobal|.
script that the replacement will only start after script that the replacement will only start after
the function or script is finished. the function or script is finished.
{not in Vi} {not in Vi}
{not available when compiled without the |+ex_extra|
feature}
*:startgreplace* *:startgreplace*
:startg[replace][!] Just like |:startreplace|, but use Virtual Replace :startg[replace][!] Just like |:startreplace|, but use Virtual Replace
mode, like with |gR|. mode, like with |gR|.
{not in Vi} {not in Vi}
{not available when compiled without the |+ex_extra|
feature}
============================================================================== ==============================================================================
10. Inserting a file *inserting-file* 10. Inserting a file *inserting-file*

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 7.4. Last change: 2014 May 24 *intro.txt* For Vim version 7.4. Last change: 2015 Jan 20
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -135,7 +135,7 @@ http://www.vim.org/maillist.php
Bug reports: *bugs* *bug-reports* *bugreport.vim* Bug reports: *bugs* *bug-reports* *bugreport.vim*
Send bug reports to: Vim Developers <vim_dev@vim.org> Send bug reports to: Vim Developers <vim-dev@vim.org>
This is a maillist, you need to become a member first and many people will see This is a maillist, you need to become a member first and many people will see
the message. If you don't want that, e.g. because it is a security issue, the message. If you don't want that, e.g. because it is a security issue,
send it to <bugs@vim.org>, this only goes to the Vim maintainer (that's Bram). send it to <bugs@vim.org>, this only goes to the Vim maintainer (that's Bram).

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 7.4. Last change: 2014 Dec 08 *map.txt* For Vim version 7.4. Last change: 2016 Jan 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -483,7 +483,7 @@ internal code is written to the script file.
1.6 SPECIAL CHARACTERS *:map-special-chars* 1.6 SPECIAL CHARACTERS *:map-special-chars*
*map_backslash* *map_backslash* *map-backslash*
Note that only CTRL-V is mentioned here as a special character for mappings Note that only CTRL-V is mentioned here as a special character for mappings
and abbreviations. When 'cpoptions' does not contain 'B', a backslash can and abbreviations. When 'cpoptions' does not contain 'B', a backslash can
also be used like CTRL-V. The <> notation can be fully used then |<>|. But also be used like CTRL-V. The <> notation can be fully used then |<>|. But
@ -494,21 +494,21 @@ To map a backslash, or use a backslash literally in the {rhs}, the special
sequence "<Bslash>" can be used. This avoids the need to double backslashes sequence "<Bslash>" can be used. This avoids the need to double backslashes
when using nested mappings. when using nested mappings.
*map_CTRL-C* *map_CTRL-C* *map-CTRL-C*
Using CTRL-C in the {lhs} is possible, but it will only work when Vim is Using CTRL-C in the {lhs} is possible, but it will only work when Vim is
waiting for a key, not when Vim is busy with something. When Vim is busy waiting for a key, not when Vim is busy with something. When Vim is busy
CTRL-C interrupts/breaks the command. CTRL-C interrupts/breaks the command.
When using the GUI version on MS-Windows CTRL-C can be mapped to allow a Copy When using the GUI version on MS-Windows CTRL-C can be mapped to allow a Copy
command to the clipboard. Use CTRL-Break to interrupt Vim. command to the clipboard. Use CTRL-Break to interrupt Vim.
*map_space_in_lhs* *map_space_in_lhs* *map-space_in_lhs*
To include a space in {lhs} precede it with a CTRL-V (type two CTRL-Vs for To include a space in {lhs} precede it with a CTRL-V (type two CTRL-Vs for
each space). each space).
*map_space_in_rhs* *map_space_in_rhs* *map-space_in_rhs*
If you want a {rhs} that starts with a space, use "<Space>". To be fully Vi If you want a {rhs} that starts with a space, use "<Space>". To be fully Vi
compatible (but unreadable) don't use the |<>| notation, precede {rhs} with a compatible (but unreadable) don't use the |<>| notation, precede {rhs} with a
single CTRL-V (you have to type CTRL-V two times). single CTRL-V (you have to type CTRL-V two times).
*map_empty_rhs* *map_empty_rhs* *map-empty-rhs*
You can create an empty {rhs} by typing nothing after a single CTRL-V (you You can create an empty {rhs} by typing nothing after a single CTRL-V (you
have to type CTRL-V two times). Unfortunately, you cannot do this in a vimrc have to type CTRL-V two times). Unfortunately, you cannot do this in a vimrc
file. file.
@ -583,7 +583,7 @@ Upper and lowercase differences are ignored.
It is not possible to put a comment after these commands, because the '"' It is not possible to put a comment after these commands, because the '"'
character is considered to be part of the {lhs} or {rhs}. character is considered to be part of the {lhs} or {rhs}.
*map_bar* *map_bar* *map-bar*
Since the '|' character is used to separate a map command from the next Since the '|' character is used to separate a map command from the next
command, you will have to do something special to include a '|' in {rhs}. command, you will have to do something special to include a '|' in {rhs}.
There are three methods: There are three methods:
@ -601,7 +601,7 @@ When 'b' is present in 'cpoptions', "\|" will be recognized as a mapping
ending in a '\' and then another command. This is Vi compatible, but ending in a '\' and then another command. This is Vi compatible, but
illogical when compared to other commands. illogical when compared to other commands.
*map_return* *map_return* *map-return*
When you have a mapping that contains an Ex command, you need to put a line When you have a mapping that contains an Ex command, you need to put a line
terminator after it to have it executed. The use of <CR> is recommended for terminator after it to have it executed. The use of <CR> is recommended for
this (see |<>|). Example: > this (see |<>|). Example: >

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 7.4. Last change: 2013 Feb 23 *message.txt* For Vim version 7.4. Last change: 2016 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -476,8 +476,6 @@ in memory, you can reduce that with these options:
helps for a change that affects all lines. helps for a change that affects all lines.
- 'undoreload' Set to zero to disable. - 'undoreload' Set to zero to disable.
Also see |msdos-limitations|.
*E339* > *E339* >
Pattern too long Pattern too long

View File

@ -1,4 +1,4 @@
*mlang.txt* For Vim version 7.4. Last change: 2012 Jan 15 *mlang.txt* For Vim version 7.4. Last change: 2016 Jan 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -97,13 +97,15 @@ If you used the self-installing .exe file, message translations should work
already. Otherwise get the libintl.dll file if you don't have it yet: already. Otherwise get the libintl.dll file if you don't have it yet:
http://sourceforge.net/projects/gettext http://sourceforge.net/projects/gettext
Or:
https://mlocati.github.io/gettext-iconv-windows/
This also contains tools xgettext, msgformat and others. This also contains tools xgettext, msgformat and others.
libintl.dll should be placed in same directory with (g)vim.exe, or some libintl.dll should be placed in same directory with (g)vim.exe, or some
place where PATH environment value describe. Message files (vim.mo) place where PATH environment value describe. Vim also finds libintl-8.dll.
have to be placed in "$VIMRUNTIME/lang/xx/LC_MESSAGES", where "xx" is the Message files (vim.mo) have to be placed in "$VIMRUNTIME/lang/xx/LC_MESSAGES",
abbreviation of the language (mostly two letters). where "xx" is the abbreviation of the language (mostly two letters).
If you write your own translations you need to generate the .po file and If you write your own translations you need to generate the .po file and
convert it to a .mo file. You need to get the source distribution and read convert it to a .mo file. You need to get the source distribution and read

View File

@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.4. Last change: 2014 Feb 11 *motion.txt* For Vim version 7.4. Last change: 2015 Jun 06
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -172,6 +172,8 @@ CTRL-H or *CTRL-H* *<BS>*
l or *l* l or *l*
<Right> or *<Right>* *<Space>* <Right> or *<Right>* *<Space>*
<Space> [count] characters to the right. |exclusive| motion. <Space> [count] characters to the right. |exclusive| motion.
See the 'whichwrap' option for adjusting the behavior
at end of line
*0* *0*
0 To the first character of the line. |exclusive| 0 To the first character of the line. |exclusive|

View File

@ -1,10 +1,10 @@
*netbeans.txt* For Vim version 7.4. Last change: 2012 Jan 26 *netbeans.txt* For Vim version 7.4. Last change: 2016 Feb 18
VIM REFERENCE MANUAL by Gordon Prieur et al. VIM REFERENCE MANUAL by Gordon Prieur et al.
*socket-interface* *netbeans* *netbeans-support* *netbeans* *netbeans-support*
Vim NetBeans Protocol: a socket interface for Vim integration into an IDE. Vim NetBeans Protocol: a socket interface for Vim integration into an IDE.
@ -194,6 +194,8 @@ There are two different ways to run Vim in NetBeans mode:
+ an IDE may start Vim with the |-nb| command line argument + an IDE may start Vim with the |-nb| command line argument
+ NetBeans can be started from within Vim with the |:nbstart| command + NetBeans can be started from within Vim with the |:nbstart| command
Vim uses a 3 second timeout on trying to make the connection.
*netbeans-parameters* *netbeans-parameters*
Three forms can be used to setup the NetBeans connection parameters. Three forms can be used to setup the NetBeans connection parameters.
When started from the command line, the |-nb| command line argument may be: When started from the command line, the |-nb| command line argument may be:
@ -306,7 +308,12 @@ bufID Buffer number. A message may be either for a specific buffer
or generic. Generic messages use a bufID of zero. NOTE: this or generic. Generic messages use a bufID of zero. NOTE: this
buffer ID is assigned by the IDE, it is not Vim's buffer buffer ID is assigned by the IDE, it is not Vim's buffer
number. The bufID must be a sequentially rising number, number. The bufID must be a sequentially rising number,
starting at one. starting at one. When the 'switchbuf' option is set to
"usetab" and the "bufID" buffer is not found in the current
tab page, the netbeans commands and functions that set this
buffer as the current buffer will jump to the first open
window that contains this buffer in other tab pages instead of
replacing the buffer in the current window.
seqno The IDE uses a sequence number for Commands and Functions. A seqno The IDE uses a sequence number for Commands and Functions. A
Reply must use the sequence number of the Function that it is Reply must use the sequence number of the Function that it is
@ -818,7 +825,7 @@ REJECT Not used.
6.7 Protocol errors *nb-protocol_errors* 6.7 Protocol errors *nb-protocol_errors*
These errors occur when a message violates the protocol: These errors occur when a message violates the protocol:
*E627* *E628* *E629* *E630* *E631* *E632* *E633* *E634* *E635* *E636* *E627* *E628* *E629* *E632* *E633* *E634* *E635* *E636*
*E637* *E638* *E639* *E640* *E641* *E642* *E643* *E644* *E645* *E646* *E637* *E638* *E639* *E640* *E641* *E642* *E643* *E644* *E645* *E646*
*E647* *E648* *E649* *E650* *E651* *E652* *E653* *E654* *E647* *E648* *E649* *E650* *E651* *E652* *E653* *E654*

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2014 Nov 05 *options.txt* For Vim version 7.4. Last change: 2016 Mar 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -50,18 +50,26 @@ achieve special effects. These options come in three forms:
:se[t] {option}&vi Reset option to its Vi default value. {not in Vi} :se[t] {option}&vi Reset option to its Vi default value. {not in Vi}
:se[t] {option}&vim Reset option to its Vim default value. {not in Vi} :se[t] {option}&vim Reset option to its Vim default value. {not in Vi}
:se[t] all& Set all options, except terminal options, to their :se[t] all& Set all options to their default value. The values of
default value. The values of 'term', 'lines' and these options are not changed:
'columns' are not changed. {not in Vi} all terminal options, starting with t_
'columns'
'cryptmethod'
'encoding'
'key'
'lines'
'term'
'ttymouse'
'ttytype'
Warning: This may have a lot of side effects.
{not in Vi}
*:set-args* *E487* *E521* *:set-args* *E487* *E521*
:se[t] {option}={value} or :se[t] {option}={value} or
:se[t] {option}:{value} :se[t] {option}:{value}
Set string or number option to {value}. Set string or number option to {value}.
For numeric options the value can be given in decimal, For numeric options the value can be given in decimal,
hex (preceded with 0x) or octal (preceded with '0') hex (preceded with 0x) or octal (preceded with '0').
(hex and octal are only available for machines which
have the strtol() function).
The old value can be inserted by typing 'wildchar' (by The old value can be inserted by typing 'wildchar' (by
default this is a <Tab> or CTRL-E if 'compatible' is default this is a <Tab> or CTRL-E if 'compatible' is
set). See |cmdline-completion|. set). See |cmdline-completion|.
@ -538,11 +546,11 @@ number can be specified where "vim:" or "Vim:" is used:
vim<{vers}: version before {vers} vim<{vers}: version before {vers}
vim={vers}: version {vers} vim={vers}: version {vers}
vim>{vers}: version after {vers} vim>{vers}: version after {vers}
{vers} is 600 for Vim 6.0 (hundred times the major version plus minor). {vers} is 700 for Vim 7.0 (hundred times the major version plus minor).
For example, to use a modeline only for Vim 6.0 and later: For example, to use a modeline only for Vim 7.0:
/* vim600: set foldmethod=marker: */ ~ /* vim700: set foldmethod=marker */ ~
To use a modeline for Vim before version 5.7: To use a modeline for Vim after version 7.2:
/* vim<570: set sw=4: */ ~ /* vim>702: set cole=2: */ ~
There can be no blanks between "vim" and the ":". There can be no blanks between "vim" and the ":".
@ -730,8 +738,6 @@ A jump table for the options with a short description can be found at |Q_op|.
open a file, switch buffers, delete a buffer or open/close a window. open a file, switch buffers, delete a buffer or open/close a window.
It will change to the directory containing the file which was opened It will change to the directory containing the file which was opened
or selected. or selected.
This option is provided for backward compatibility with the Vim
released with Sun ONE Studio 4 Enterprise Edition.
Note: When this option is on some plugins may not work. Note: When this option is on some plugins may not work.
*'arabic'* *'arab'* *'noarabic'* *'noarab'* *'arabic'* *'arab'* *'noarabic'* *'noarab'*
@ -790,7 +796,8 @@ A jump table for the options with a short description can be found at |Q_op|.
line. line.
When 'smartindent' or 'cindent' is on the indent is changed in When 'smartindent' or 'cindent' is on the indent is changed in
a different way. a different way.
The 'autoindent' option is reset when the 'paste' option is set. The 'autoindent' option is reset when the 'paste' option is set and
restored when 'paste' is reset.
{small difference from Vi: After the indent is deleted when typing {small difference from Vi: After the indent is deleted when typing
<Esc> or <CR>, the cursor position when moving up or down is after the <Esc> or <CR>, the cursor position when moving up or down is after the
deleted indent; Vi puts the cursor somewhere in the deleted indent}. deleted indent; Vi puts the cursor somewhere in the deleted indent}.
@ -1128,6 +1135,47 @@ A jump table for the options with a short description can be found at |Q_op|.
expression evaluates to a |List| this is equal to using each List item expression evaluates to a |List| this is equal to using each List item
as a string and putting "\n" in between them. as a string and putting "\n" in between them.
*'belloff'* *'bo'*
'belloff' 'bo' string (default "")
global
{not in Vi}
Specifies for which events the bell will not be rung. It is a comma
separated list of items. For each item that is present, the bell
will be silenced. This is most useful to specify specific events in
insert mode to be silenced.
item meaning when present ~
all All events.
backspace When hitting <BS> or <Del> and deleting results in an
error.
cursor Fail to move around using the cursor keys or
<PageUp>/<PageDown> in |Insert-mode|.
complete Error occurred when using |i_CTRL-X_CTRL-K| or
|i_CTRL-X_CTRL-T|.
copy Cannot copy char from insert mode using |i_CTRL-Y| or
|i_CTRL-E|.
ctrlg Unknown Char after <C-G> in Insert mode.
error Other Error occurred (e.g. try to join last line)
(mostly used in |Normal-mode| or |Cmdline-mode|).
esc hitting <Esc> in |Normal-mode|.
ex In |Visual-mode|, hitting |Q| results in an error.
hangul Error occurred when using hangul input.
insertmode Pressing <Esc> in 'insertmode'.
lang Calling the beep module for Lua/Mzscheme/TCL.
mess No output available for |g<|.
showmatch Error occurred for 'showmatch' function.
operator Empty region error |cpo-E|.
register Unknown register after <C-R> in |Insert-mode|.
shell Bell from shell output |:!|.
spell Error happened on spell suggest.
wildmode More matches in |cmdline-completion| available
(depends on the 'wildmode' setting).
This is most useful, to fine tune when in insert mode the bell should
be rung. For normal mode and ex commands, the bell is often rung to
indicate that an error occurred. It can be silenced by adding the
"error" keyword.
*'binary'* *'bin'* *'nobinary'* *'nobin'* *'binary'* *'bin'* *'nobinary'* *'nobin'*
'binary' 'bin' boolean (default off) 'binary' 'bin' boolean (default off)
local to buffer local to buffer
@ -1163,10 +1211,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'bioskey' 'biosk' boolean (default on) 'bioskey' 'biosk' boolean (default on)
global global
{not in Vi} {only for MS-DOS} {not in Vi} {only for MS-DOS}
When on the BIOS is called to obtain a keyboard character. This works This was for MS-DOS and is no longer supported.
better to detect CTRL-C, but only works for the console. When using a
terminal over a serial port reset this option.
Also see |'conskey'|.
*'bomb'* *'nobomb'* *'bomb'* *'nobomb'*
'bomb' boolean (default off) 'bomb' boolean (default off)
@ -1200,7 +1245,7 @@ A jump table for the options with a short description can be found at |Q_op|.
break if 'linebreak' is on. Only works for ASCII and also for 8-bit break if 'linebreak' is on. Only works for ASCII and also for 8-bit
characters when 'encoding' is an 8-bit encoding. characters when 'encoding' is an 8-bit encoding.
*'breakindent'* *'bri'* *'breakindent'* *'bri'* *'nobreakindent'* *'nobri'*
'breakindent' 'bri' boolean (default off) 'breakindent' 'bri' boolean (default off)
local to window local to window
{not in Vi} {not in Vi}
@ -1320,6 +1365,9 @@ A jump table for the options with a short description can be found at |Q_op|.
nofile only: The buffer name is fixed, it is not handled like a nofile only: The buffer name is fixed, it is not handled like a
file name. It is not modified in response to a |:cd| file name. It is not modified in response to a |:cd|
command. command.
both: When using ":e bufname" and already editing "bufname"
the buffer is made empty and autocommands are
triggered as usual for |:edit|.
*E676* *E676*
"acwrite" implies that the buffer name is not related to a file, like "acwrite" implies that the buffer name is not related to a file, like
"nofile", but it will be written. Thus, in contrast to "nofile" and "nofile", but it will be written. Thus, in contrast to "nofile" and
@ -1820,6 +1868,14 @@ A jump table for the options with a short description can be found at |Q_op|.
completion in the preview window. Only works in completion in the preview window. Only works in
combination with "menu" or "menuone". combination with "menu" or "menuone".
noinsert Do not insert any text for a match until the user selects
a match from the menu. Only works in combination with
"menu" or "menuone". No effect if "longest" is present.
noselect Do not select a match in the menu, force the user to
select one from the menu. Only works in combination with
"menu" or "menuone".
*'concealcursor'* *'cocu'* *'concealcursor'* *'cocu'*
'concealcursor' 'cocu' string (default: "") 'concealcursor' 'cocu' string (default: "")
@ -1887,13 +1943,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'conskey' 'consk' boolean (default off) 'conskey' 'consk' boolean (default off)
global global
{not in Vi} {only for MS-DOS} {not in Vi} {only for MS-DOS}
When on direct console I/O is used to obtain a keyboard character. This was for MS-DOS and is no longer supported.
This should work in most cases. Also see |'bioskey'|. Together,
three methods of console input are available:
'conskey' 'bioskey' action ~
on on or off direct console input
off on BIOS
off off STDIN
*'copyindent'* *'ci'* *'nocopyindent'* *'noci'* *'copyindent'* *'ci'* *'nocopyindent'* *'noci'*
'copyindent' 'ci' boolean (default off) 'copyindent' 'ci' boolean (default off)
@ -1910,7 +1960,7 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: 'copyindent' is reset when 'compatible' is set. NOTE: 'copyindent' is reset when 'compatible' is set.
Also see 'preserveindent'. Also see 'preserveindent'.
*'cpoptions'* *'cpo'* *'cpoptions'* *'cpo'* *cpo*
'cpoptions' 'cpo' string (Vim default: "aABceFs", 'cpoptions' 'cpo' string (Vim default: "aABceFs",
Vi default: all flags) Vi default: all flags)
global global
@ -2236,7 +2286,7 @@ A jump table for the options with a short description can be found at |Q_op|.
the encrypted bytes will be different. the encrypted bytes will be different.
*blowfish2* *blowfish2*
blowfish2 Blowfish method. Medium strong encryption. Requires blowfish2 Blowfish method. Medium strong encryption. Requires
Vim 7.4.399 or later, files can NOT be read by Vim 7.3 Vim 7.4.401 or later, files can NOT be read by Vim 7.3
and older. This adds a "seed" to the file, every time and older. This adds a "seed" to the file, every time
you write the file the encrypted bytes will be you write the file the encrypted bytes will be
different. The whole undo file is encrypted, not just different. The whole undo file is encrypted, not just
@ -2664,15 +2714,16 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer local to buffer
{not in Vi} {not in Vi}
When writing a file and this option is off and the 'binary' option When writing a file and this option is off and the 'binary' option
is on, no <EOL> will be written for the last line in the file. This is on, or 'fixeol' option is off, no <EOL> will be written for the
option is automatically set when starting to edit a new file, unless last line in the file. This option is automatically set or reset when
the file does not have an <EOL> for the last line in the file, in starting to edit a new file, depending on whether file has an <EOL>
which case it is reset. Normally you don't have to set or reset this for the last line in the file. Normally you don't have to set or
option. When 'binary' is off the value is not used when writing the reset this option.
file. When 'binary' is on it is used to remember the presence of a When 'binary' is off and 'fixeol' is on the value is not used when
<EOL> for the last line in the file, so that when you write the file writing the file. When 'binary' is on or 'fixeol' is off it is used
the situation from the original file can be kept. But you can change to remember the presence of a <EOL> for the last line in the file, so
it if you want to. that when you write the file the situation from the original file can
be kept. But you can change it if you want to.
*'equalalways'* *'ea'* *'noequalalways'* *'noea'* *'equalalways'* *'ea'* *'noequalalways'* *'noea'*
'equalalways' 'ea' boolean (default on) 'equalalways' 'ea' boolean (default on)
@ -2713,7 +2764,8 @@ A jump table for the options with a short description can be found at |Q_op|.
makes a difference for error messages, the bell will be used always makes a difference for error messages, the bell will be used always
for a lot of errors without a message (e.g., hitting <Esc> in Normal for a lot of errors without a message (e.g., hitting <Esc> in Normal
mode). See 'visualbell' on how to make the bell behave like a beep, mode). See 'visualbell' on how to make the bell behave like a beep,
screen flash or do nothing. screen flash or do nothing. See 'belloff' to finetune when to ring the
bell.
*'errorfile'* *'ef'* *'errorfile'* *'ef'*
'errorfile' 'ef' string (Amiga default: "AztecC.Err", 'errorfile' 'ef' string (Amiga default: "AztecC.Err",
@ -2775,6 +2827,8 @@ A jump table for the options with a short description can be found at |Q_op|.
<Tab>. Spaces are used in indents with the '>' and '<' commands and <Tab>. Spaces are used in indents with the '>' and '<' commands and
when 'autoindent' is on. To insert a real tab when 'expandtab' is when 'autoindent' is on. To insert a real tab when 'expandtab' is
on, use CTRL-V<Tab>. See also |:retab| and |ins-expandtab|. on, use CTRL-V<Tab>. See also |:retab| and |ins-expandtab|.
This option is reset when the 'paste' option is set and restored when
the 'paste' option is reset.
NOTE: This option is reset when 'compatible' is set. NOTE: This option is reset when 'compatible' is set.
*'exrc'* *'ex'* *'noexrc'* *'noex'* *'exrc'* *'ex'* *'noexrc'* *'noex'*
@ -2952,8 +3006,8 @@ A jump table for the options with a short description can be found at |Q_op|.
2. If a <NL> is found and 'fileformats' includes "unix", 'fileformat' 2. If a <NL> is found and 'fileformats' includes "unix", 'fileformat'
is set to "unix". Note that when a <NL> is found without a is set to "unix". Note that when a <NL> is found without a
preceding <CR>, "unix" is preferred over "dos". preceding <CR>, "unix" is preferred over "dos".
3. If 'fileformat' has not yet been set, and if 'fileformats' 3. If 'fileformat' has not yet been set, and if a <CR> is found, and
includes "mac", 'fileformat' is set to "mac". if 'fileformats' includes "mac", 'fileformat' is set to "mac".
This means that "mac" is only chosen when: This means that "mac" is only chosen when:
"unix" is not present or no <NL> is found in the file, and "unix" is not present or no <NL> is found in the file, and
"dos" is not present or no <CR><NL> is found in the file. "dos" is not present or no <CR><NL> is found in the file.
@ -3033,17 +3087,17 @@ A jump table for the options with a short description can be found at |Q_op|.
item default Used for ~ item default Used for ~
stl:c ' ' or '^' statusline of the current window stl:c ' ' or '^' statusline of the current window
stlnc:c ' ' or '-' statusline of the non-current windows stlnc:c ' ' or '=' statusline of the non-current windows
vert:c '|' vertical separators |:vsplit| vert:c '|' vertical separators |:vsplit|
fold:c '-' filling 'foldtext' fold:c '-' filling 'foldtext'
diff:c '-' deleted lines of the 'diff' option diff:c '-' deleted lines of the 'diff' option
Any one that is omitted will fall back to the default. For "stl" and Any one that is omitted will fall back to the default. For "stl" and
"stlnc" the space will be used when there is highlighting, '^' or '-' "stlnc" the space will be used when there is highlighting, '^' or '='
otherwise. otherwise.
Example: > Example: >
:set fillchars=stl:^,stlnc:-,vert:\|,fold:-,diff:- :set fillchars=stl:^,stlnc:=,vert:\|,fold:-,diff:-
< This is similar to the default, except that these characters will also < This is similar to the default, except that these characters will also
be used when there is highlighting. be used when there is highlighting.
@ -3057,6 +3111,17 @@ A jump table for the options with a short description can be found at |Q_op|.
fold:c Folded |hl-Folded| fold:c Folded |hl-Folded|
diff:c DiffDelete |hl-DiffDelete| diff:c DiffDelete |hl-DiffDelete|
*'fixendofline'* *'fixeol'* *'nofixendofline'* *'nofixeol'*
'fixendofline' 'fixeol' boolean (default on)
local to buffer
{not in Vi}
When writing a file and this option is on, <EOL> at the end of file
will be restored if missing. Turn this option off if you want to
preserve the situation from the original file.
When the 'binary' option is set the value of this option doesn't
matter.
See the 'endofline' option.
*'fkmap'* *'fk'* *'nofkmap'* *'nofk'* *'fkmap'* *'fk'* *'nofkmap'* *'nofk'*
'fkmap' 'fk' boolean (default off) *E198* 'fkmap' 'fk' boolean (default off) *E198*
global global
@ -3338,7 +3403,7 @@ A jump table for the options with a short description can be found at |Q_op|.
modeline, see |sandbox-option|. That stops the option from working, modeline, see |sandbox-option|. That stops the option from working,
since changing the buffer text is not allowed. since changing the buffer text is not allowed.
*'fsync'* *'fs'* *'fsync'* *'fs'* *'nofsync'* *'nofs'*
'fsync' 'fs' boolean (default on) 'fsync' 'fs' boolean (default on)
global global
{not in Vi} {not in Vi}
@ -3421,7 +3486,8 @@ A jump table for the options with a short description can be found at |Q_op|.
the height of the cursor can be changed. This can be done by the height of the cursor can be changed. This can be done by
specifying a block cursor, or a percentage for a vertical or specifying a block cursor, or a percentage for a vertical or
horizontal cursor. horizontal cursor.
For a console the 't_SI' and 't_EI' escape sequences are used. For a console the 't_SI', 't_SR', and 't_EI' escape sequences are
used.
The option is a comma separated list of parts. Each part consist of a The option is a comma separated list of parts. Each part consist of a
mode-list and an argument-list: mode-list and an argument-list:
@ -4034,7 +4100,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global global
Ignore case in search patterns. Also used when searching in the tags Ignore case in search patterns. Also used when searching in the tags
file. file.
Also see 'smartcase'. Also see 'smartcase' and 'tagcase'.
Can be overruled by using "\c" or "\C" in the pattern, see Can be overruled by using "\c" or "\C" in the pattern, see
|/ignorecase|. |/ignorecase|.
@ -4414,6 +4480,8 @@ A jump table for the options with a short description can be found at |Q_op|.
'*', '"' and '|' (so that CTRL-] on a command finds the help for that '*', '"' and '|' (so that CTRL-] on a command finds the help for that
command). command).
When the 'lisp' option is on the '-' character is always included. When the 'lisp' option is on the '-' character is always included.
This option also influences syntax highlighting, unless the syntax
uses |:syn-iskeyword|.
NOTE: This option is set to the Vi default value when 'compatible' is NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset. set and to the Vim default value when 'compatible' is reset.
@ -4528,7 +4596,7 @@ A jump table for the options with a short description can be found at |Q_op|.
feature} feature}
This option allows switching your keyboard into a special language This option allows switching your keyboard into a special language
mode. When you are typing text in Insert mode the characters are mode. When you are typing text in Insert mode the characters are
inserted directly. When in command mode the 'langmap' option takes inserted directly. When in Normal mode the 'langmap' option takes
care of translating these special characters to the original meaning care of translating these special characters to the original meaning
of the key. This means you don't have to change the keyboard mode to of the key. This means you don't have to change the keyboard mode to
be able to execute Normal mode commands. be able to execute Normal mode commands.
@ -4591,7 +4659,7 @@ A jump table for the options with a short description can be found at |Q_op|.
:source $VIMRUNTIME/menu.vim :source $VIMRUNTIME/menu.vim
< Warning: This deletes all menus that you defined yourself! < Warning: This deletes all menus that you defined yourself!
*'langnoremap'* *'lnr'* *'langnoremap'* *'lnr'* *'nolangnoremap'* *'nolnr'*
'langnoremap' 'lnr' boolean (default off) 'langnoremap' 'lnr' boolean (default off)
global global
{not in Vi} {not in Vi}
@ -4717,33 +4785,38 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi} {not in Vi}
Strings to use in 'list' mode and for the |:list| command. It is a Strings to use in 'list' mode and for the |:list| command. It is a
comma separated list of string settings. comma separated list of string settings.
*lcs-eol* *lcs-eol*
eol:c Character to show at the end of each line. When eol:c Character to show at the end of each line. When
omitted, there is no extra character at the end of the omitted, there is no extra character at the end of the
line. line.
*lcs-tab* *lcs-tab*
tab:xy Two characters to be used to show a tab. The first tab:xy Two characters to be used to show a tab. The first
char is used once. The second char is repeated to char is used once. The second char is repeated to
fill the space that the tab normally occupies. fill the space that the tab normally occupies.
"tab:>-" will show a tab that takes four spaces as "tab:>-" will show a tab that takes four spaces as
">---". When omitted, a tab is show as ^I. ">---". When omitted, a tab is show as ^I.
*lcs-trail* *lcs-space*
space:c Character to show for a space. When omitted, spaces
are left blank.
*lcs-trail*
trail:c Character to show for trailing spaces. When omitted, trail:c Character to show for trailing spaces. When omitted,
trailing spaces are blank. trailing spaces are blank. Overrides the "space"
*lcs-extends* setting for trailing spaces.
*lcs-extends*
extends:c Character to show in the last column, when 'wrap' is extends:c Character to show in the last column, when 'wrap' is
off and the line continues beyond the right of the off and the line continues beyond the right of the
screen. screen.
*lcs-precedes* *lcs-precedes*
precedes:c Character to show in the first column, when 'wrap' precedes:c Character to show in the first column, when 'wrap'
is off and there is text preceding the character is off and there is text preceding the character
visible in the first column. visible in the first column.
*lcs-conceal* *lcs-conceal*
conceal:c Character to show in place of concealed text, when conceal:c Character to show in place of concealed text, when
'conceallevel' is set to 1. 'conceallevel' is set to 1.
*lcs-nbsp* *lcs-nbsp*
nbsp:c Character to show for a non-breakable space (character nbsp:c Character to show for a non-breakable space character
0xA0, 160). Left blank when omitted. (0xA0 (160 decimal) and U+202F). Left blank when
omitted.
The characters ':' and ',' should not be used. UTF-8 characters can The characters ':' and ',' should not be used. UTF-8 characters can
be used when 'encoding' is "utf-8", otherwise only printable be used when 'encoding' is "utf-8", otherwise only printable
@ -4754,7 +4827,7 @@ A jump table for the options with a short description can be found at |Q_op|.
:set lcs=tab:>-,eol:<,nbsp:% :set lcs=tab:>-,eol:<,nbsp:%
:set lcs=extends:>,precedes:< :set lcs=extends:>,precedes:<
< The "NonText" highlighting will be used for "eol", "extends" and < The "NonText" highlighting will be used for "eol", "extends" and
"precedes". "SpecialKey" for "nbsp", "tab" and "trail". "precedes". "SpecialKey" for "nbsp", "space", "tab" and "trail".
|hl-NonText| |hl-SpecialKey| |hl-NonText| |hl-SpecialKey|
*'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'* *'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'*
@ -4767,6 +4840,17 @@ A jump table for the options with a short description can be found at |Q_op|.
Note that using the "-u NONE" and "--noplugin" command line arguments Note that using the "-u NONE" and "--noplugin" command line arguments
reset this option. |-u| |--noplugin| reset this option. |-u| |--noplugin|
*'luadll'*
'luadll' string (default depends on the build)
global
{not in Vi}
{only available when compiled with the |+lua/dyn|
feature}
Specifies the name of the Lua shared library. The default is
DYNAMIC_LUA_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'macatsui'* *'nomacatsui'* *'macatsui'* *'nomacatsui'*
'macatsui' boolean (default on) 'macatsui' boolean (default on)
global global
@ -4928,8 +5012,11 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi} {not in Vi}
Maximum amount of memory in Kbyte to use for all buffers together. Maximum amount of memory in Kbyte to use for all buffers together.
The maximum usable value is about 2000000 (2 Gbyte). Use this to work The maximum usable value is about 2000000 (2 Gbyte). Use this to work
without a limit. On 64 bit machines higher values might work. But without a limit.
hey, do you really need more than 2 Gbyte for text editing? On 64 bit machines higher values might work. But hey, do you really
need more than 2 Gbyte for text editing? Keep in mind that text is
stored in the swap file, one can edit files > 2 Gbyte anyay. We do
need the memory to store undo info.
Also see 'maxmem'. Also see 'maxmem'.
*'menuitems'* *'mis'* *'menuitems'* *'mis'*
@ -5203,7 +5290,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Negative or zero value means no thread scheduling. Negative or zero value means no thread scheduling.
*'nrformats'* *'nf'* *'nrformats'* *'nf'*
'nrformats' 'nf' string (default "octal,hex") 'nrformats' 'nf' string (default "bin,octal,hex")
local to buffer local to buffer
{not in Vi} {not in Vi}
This defines what bases Vim will consider for numbers when using the This defines what bases Vim will consider for numbers when using the
@ -5217,6 +5304,9 @@ A jump table for the options with a short description can be found at |Q_op|.
hex If included, numbers starting with "0x" or "0X" will be hex If included, numbers starting with "0x" or "0X" will be
considered to be hexadecimal. Example: Using CTRL-X on considered to be hexadecimal. Example: Using CTRL-X on
"0x100" results in "0x0ff". "0x100" results in "0x0ff".
bin If included, numbers starting with "0b" or "0B" will be
considered to be binary. Example: Using CTRL-X on
"0b1000" subtracts one, resulting in "0b0111".
Numbers which simply begin with a digit in the range 1-9 are always Numbers which simply begin with a digit in the range 1-9 are always
considered decimal. This also happens for numbers that are not considered decimal. This also happens for numbers that are not
recognized as octal or hex. recognized as octal or hex.
@ -5310,6 +5400,12 @@ A jump table for the options with a short description can be found at |Q_op|.
This option was supported on RISC OS, which has been removed. This option was supported on RISC OS, which has been removed.
*'packpath'* *'pp'*
'packpath' 'pp' string (default: see 'runtimepath')
{not in Vi}
Directories used to find packages. See |packages|.
*'paragraphs'* *'para'* *'paragraphs'* *'para'*
'paragraphs' 'para' string (default "IPLPPPQPP TPHPLIPpLpItpplpipbp") 'paragraphs' 'para' string (default "IPLPPPQPP TPHPLIPpLpItpplpipbp")
global global
@ -5335,19 +5431,21 @@ A jump table for the options with a short description can be found at |Q_op|.
When the 'paste' option is switched on (also when it was already on): When the 'paste' option is switched on (also when it was already on):
- mapping in Insert mode and Command-line mode is disabled - mapping in Insert mode and Command-line mode is disabled
- abbreviations are disabled - abbreviations are disabled
- 'textwidth' is set to 0
- 'wrapmargin' is set to 0
- 'autoindent' is reset - 'autoindent' is reset
- 'smartindent' is reset - 'expandtab' is reset
- 'softtabstop' is set to 0 - 'formatoptions' is used like it is empty
- 'revins' is reset - 'revins' is reset
- 'ruler' is reset - 'ruler' is reset
- 'showmatch' is reset - 'showmatch' is reset
- 'formatoptions' is used like it is empty - 'smartindent' is reset
- 'smarttab' is reset
- 'softtabstop' is set to 0
- 'textwidth' is set to 0
- 'wrapmargin' is set to 0
These options keep their value, but their effect is disabled: These options keep their value, but their effect is disabled:
- 'lisp'
- 'indentexpr'
- 'cindent' - 'cindent'
- 'indentexpr'
- 'lisp'
NOTE: When you start editing another file while the 'paste' option is NOTE: When you start editing another file while the 'paste' option is
on, settings from the modelines or autocommands may change the on, settings from the modelines or autocommands may change the
settings again, causing trouble when pasting text. You might want to settings again, causing trouble when pasting text. You might want to
@ -5468,6 +5566,17 @@ A jump table for the options with a short description can be found at |Q_op|.
< Replace the ';' with a ':' or whatever separator is used. Note that < Replace the ';' with a ':' or whatever separator is used. Note that
this doesn't work when $INCL contains a comma or white space. this doesn't work when $INCL contains a comma or white space.
*'perldll'*
'perldll' string (default depends on the build)
global
{not in Vi}
{only available when compiled with the |+perl/dyn|
feature}
Specifies the name of the Perl shared library. The default is
DYNAMIC_PERL_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'* *'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'*
'preserveindent' 'pi' boolean (default off) 'preserveindent' 'pi' boolean (default off)
local to buffer local to buffer
@ -5594,6 +5703,27 @@ A jump table for the options with a short description can be found at |Q_op|.
Insert mode completion. When zero as much space as available is used. Insert mode completion. When zero as much space as available is used.
|ins-completion-menu|. |ins-completion-menu|.
*'pythondll'*
'pythondll' string (default depends on the build)
global
{not in Vi}
{only available when compiled with the |+python/dyn|
feature}
Specifies the name of the Python 2.x shared library. The default is
DYNAMIC_PYTHON_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'pythonthreedll'*
'pythonthreedll' string (default depends on the build)
global
{not in Vi}
{only available when compiled with the |+python3/dyn|
feature}
Specifies the name of the Python 3 shared library. The default is
DYNAMIC_PYTHON3_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'quoteescape'* *'qe'* *'quoteescape'* *'qe'*
'quoteescape' 'qe' string (default "\") 'quoteescape' 'qe' string (default "\")
@ -5780,7 +5910,9 @@ A jump table for the options with a short description can be found at |Q_op|.
Inserting characters in Insert mode will work backwards. See "typing Inserting characters in Insert mode will work backwards. See "typing
backwards" |ins-reverse|. This option can be toggled with the CTRL-_ backwards" |ins-reverse|. This option can be toggled with the CTRL-_
command in Insert mode, when 'allowrevins' is set. command in Insert mode, when 'allowrevins' is set.
NOTE: This option is reset when 'compatible' or 'paste' is set. NOTE: This option is reset when 'compatible' is set.
This option is reset when 'paste' is set and restored when 'paste' is
reset.
*'rightleft'* *'rl'* *'norightleft'* *'norl'* *'rightleft'* *'rl'* *'norightleft'* *'norl'*
'rightleft' 'rl' boolean (default off) 'rightleft' 'rl' boolean (default off)
@ -5812,6 +5944,17 @@ A jump table for the options with a short description can be found at |Q_op|.
This is useful for languages such as Hebrew, Arabic and Farsi. This is useful for languages such as Hebrew, Arabic and Farsi.
The 'rightleft' option must be set for 'rightleftcmd' to take effect. The 'rightleft' option must be set for 'rightleftcmd' to take effect.
*'rubydll'*
'rubydll' string (default: depends on the build)
global
{not in Vi}
{only available when compiled with the |+ruby/dyn|
feature}
Specifies the name of the Ruby shared library. The default is
DYNAMIC_RUBY_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'ruler'* *'ru'* *'noruler'* *'noru'* *'ruler'* *'ru'* *'noruler'* *'noru'*
'ruler' 'ru' boolean (default off) 'ruler' 'ru' boolean (default off)
global global
@ -5836,7 +5979,8 @@ A jump table for the options with a short description can be found at |Q_op|.
separated with a dash. separated with a dash.
For an empty line "0-1" is shown. For an empty line "0-1" is shown.
For an empty buffer the line number will also be zero: "0,0-1". For an empty buffer the line number will also be zero: "0,0-1".
This option is reset when the 'paste' option is set. This option is reset when 'paste' is set and restored when 'paste' is
reset.
If you don't want to see the ruler all the time but want to know where If you don't want to see the ruler all the time but want to know where
you are, use "g CTRL-G" |g_CTRL-G|. you are, use "g CTRL-G" |g_CTRL-G|.
NOTE: This option is reset when 'compatible' is set. NOTE: This option is reset when 'compatible' is set.
@ -6389,6 +6533,7 @@ A jump table for the options with a short description can be found at |Q_op|.
c don't give |ins-completion-menu| messages. For example, c don't give |ins-completion-menu| messages. For example,
"-- XXX completion (YYY)", "match 1 of 2", "The only match", "-- XXX completion (YYY)", "match 1 of 2", "The only match",
"Pattern not found", "Back at original", etc. "Pattern not found", "Back at original", etc.
q use "recording" instead of "recording @a"
This gives you the opportunity to avoid that a change between buffers This gives you the opportunity to avoid that a change between buffers
requires you to hit <Enter>, but still gives as useful a message as requires you to hit <Enter>, but still gives as useful a message as
@ -6475,7 +6620,9 @@ A jump table for the options with a short description can be found at |Q_op|.
jump is only done if the match can be seen on the screen. The time to jump is only done if the match can be seen on the screen. The time to
show the match can be set with 'matchtime'. show the match can be set with 'matchtime'.
A Beep is given if there is no match (no matter if the match can be A Beep is given if there is no match (no matter if the match can be
seen or not). This option is reset when the 'paste' option is set. seen or not).
This option is reset when 'paste' is set and restored when 'paste' is
reset.
When the 'm' flag is not included in 'cpoptions', typing a character When the 'm' flag is not included in 'cpoptions', typing a character
will immediately move the cursor back to where it belongs. will immediately move the cursor back to where it belongs.
See the "sm" field in 'guicursor' for setting the cursor shape and See the "sm" field in 'guicursor' for setting the cursor shape and
@ -6584,8 +6731,9 @@ A jump table for the options with a short description can be found at |Q_op|.
mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H. mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H.
When using the ">>" command, lines starting with '#' are not shifted When using the ">>" command, lines starting with '#' are not shifted
right. right.
NOTE: 'smartindent' is reset when 'compatible' is set. When 'paste' NOTE: 'smartindent' is reset when 'compatible' is set.
is set smart indenting is disabled. This option is reset when 'paste' is set and restored when 'paste' is
reset.
*'smarttab'* *'sta'* *'nosmarttab'* *'nosta'* *'smarttab'* *'sta'* *'nosmarttab'* *'nosta'*
'smarttab' 'sta' boolean (default off) 'smarttab' 'sta' boolean (default off)
@ -6601,6 +6749,8 @@ A jump table for the options with a short description can be found at |Q_op|.
What gets inserted (a <Tab> or spaces) depends on the 'expandtab' What gets inserted (a <Tab> or spaces) depends on the 'expandtab'
option. Also see |ins-expandtab|. When 'expandtab' is not set, the option. Also see |ins-expandtab|. When 'expandtab' is not set, the
number of spaces is minimized by using <Tab>s. number of spaces is minimized by using <Tab>s.
This option is reset when 'paste' is set and restored when 'paste' is
reset.
NOTE: This option is reset when 'compatible' is set. NOTE: This option is reset when 'compatible' is set.
*'softtabstop'* *'sts'* *'softtabstop'* *'sts'*
@ -6615,7 +6765,8 @@ A jump table for the options with a short description can be found at |Q_op|.
commands like "x" still work on the actual characters. commands like "x" still work on the actual characters.
When 'sts' is zero, this feature is off. When 'sts' is zero, this feature is off.
When 'sts' is negative, the value of 'shiftwidth' is used. When 'sts' is negative, the value of 'shiftwidth' is used.
'softtabstop' is set to 0 when the 'paste' option is set. 'softtabstop' is set to 0 when the 'paste' option is set and restored
when 'paste' is reset.
See also |ins-expandtab|. When 'expandtab' is not set, the number of See also |ins-expandtab|. When 'expandtab' is not set, the number of
spaces is minimized by using <Tab>s. spaces is minimized by using <Tab>s.
The 'L' flag in 'cpoptions' changes how tabs are used when 'list' is The 'L' flag in 'cpoptions' changes how tabs are used when 'list' is
@ -6692,7 +6843,8 @@ A jump table for the options with a short description can be found at |Q_op|.
the two-letter, lower case region name. You can use more than one the two-letter, lower case region name. You can use more than one
region by listing them: "en_us,en_ca" supports both US and Canadian region by listing them: "en_us,en_ca" supports both US and Canadian
English, but not words specific for Australia, New Zealand or Great English, but not words specific for Australia, New Zealand or Great
Britain. Britain. (Note: currently en_au and en_nz dictionaries are older than
en_ca, en_gb and en_us).
If the name "cjk" is included East Asian characters are excluded from If the name "cjk" is included East Asian characters are excluded from
spell checking. This is useful when editing text that also has Asian spell checking. This is useful when editing text that also has Asian
words. words.
@ -6828,7 +6980,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The option consists of printf style '%' items interspersed with The option consists of printf style '%' items interspersed with
normal text. Each status line item is of the form: normal text. Each status line item is of the form:
%-0{minwid}.{maxwid}{item} %-0{minwid}.{maxwid}{item}
All fields except the {item} is optional. A single percent sign can All fields except the {item} are optional. A single percent sign can
be given as "%%". Up to 80 items can be specified. *E541* be given as "%%". Up to 80 items can be specified. *E541*
When the option starts with "%!" then it is used as an expression, When the option starts with "%!" then it is used as an expression,
@ -6936,7 +7088,7 @@ A jump table for the options with a short description can be found at |Q_op|.
become empty. This will make a group like the following disappear become empty. This will make a group like the following disappear
completely from the statusline when none of the flags are set. > completely from the statusline when none of the flags are set. >
:set statusline=...%(\ [%M%R%H]%)... :set statusline=...%(\ [%M%R%H]%)...
< < *g:actual_curbuf*
Beware that an expression is evaluated each and every time the status Beware that an expression is evaluated each and every time the status
line is displayed. The current buffer and current window will be set line is displayed. The current buffer and current window will be set
temporarily to that of the window (and buffer) whose statusline is temporarily to that of the window (and buffer) whose statusline is
@ -7062,6 +7214,7 @@ A jump table for the options with a short description can be found at |Q_op|.
split If included, split the current window before loading split If included, split the current window before loading
a buffer for a |quickfix| command that display errors. a buffer for a |quickfix| command that display errors.
Otherwise: do not split, use current window. Otherwise: do not split, use current window.
vsplit Just like "split" but split vertically.
newtab Like "split", but open a new tab page. Overrules newtab Like "split", but open a new tab page. Overrules
"split" when both are present. "split" when both are present.
@ -7192,19 +7345,22 @@ A jump table for the options with a short description can be found at |Q_op|.
< [The whitespace before and after the '0' must be a single <Tab>] < [The whitespace before and after the '0' must be a single <Tab>]
When a binary search was done and no match was found in any of the When a binary search was done and no match was found in any of the
files listed in 'tags', and 'ignorecase' is set or a pattern is used files listed in 'tags', and case is ignored or a pattern is used
instead of a normal tag name, a retry is done with a linear search. instead of a normal tag name, a retry is done with a linear search.
Tags in unsorted tags files, and matches with different case will only Tags in unsorted tags files, and matches with different case will only
be found in the retry. be found in the retry.
If a tag file indicates that it is case-fold sorted, the second, If a tag file indicates that it is case-fold sorted, the second,
linear search can be avoided for the 'ignorecase' case. Use a value linear search can be avoided when case is ignored. Use a value of '2'
of '2' in the "!_TAG_FILE_SORTED" line for this. A tag file can be in the "!_TAG_FILE_SORTED" line for this. A tag file can be case-fold
case-fold sorted with the -f switch to "sort" in most unices, as in sorted with the -f switch to "sort" in most unices, as in the command:
the command: "sort -f -o tags tags". For "Exuberant ctags" version "sort -f -o tags tags". For "Exuberant ctags" version 5.x or higher
5.x or higher (at least 5.5) the --sort=foldcase switch can be used (at least 5.5) the --sort=foldcase switch can be used for this as
for this as well. Note that case must be folded to uppercase for this well. Note that case must be folded to uppercase for this to work.
to work.
By default, tag searches are case-sensitive. Case is ignored when
'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
"ignore".
When 'tagbsearch' is off, tags searching is slower when a full match When 'tagbsearch' is off, tags searching is slower when a full match
exists, but faster when no full match exists. Tags in unsorted tags exists, but faster when no full match exists. Tags in unsorted tags
@ -7216,6 +7372,16 @@ A jump table for the options with a short description can be found at |Q_op|.
command-line completion and ":help"). command-line completion and ":help").
{Vi: always uses binary search in some versions} {Vi: always uses binary search in some versions}
*'tagcase'* *'tc'*
'tagcase' 'tc' string (default "followic")
global or local to buffer |global-local|
{not in Vi}
This option specifies how case is handled when searching the tags
file:
followic Follow the 'ignorecase' option
ignore Ignore case
match Match case
*'taglength'* *'tl'* *'taglength'* *'tl'*
'taglength' 'tl' number (default 0) 'taglength' 'tl' number (default 0)
global global
@ -7270,6 +7436,17 @@ A jump table for the options with a short description can be found at |Q_op|.
Resetting this option is useful when using a ":tag" command in a Resetting this option is useful when using a ":tag" command in a
mapping which should not change the tagstack. mapping which should not change the tagstack.
*'tcldll'*
'tcldll' string (default depends on the build)
global
{not in Vi}
{only available when compiled with the |+tcl/dyn|
feature}
Specifies the name of the Tcl shared library. The default is
DYNAMIC_TCL_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'term'* *E529* *E530* *E531* *'term'* *E529* *E530* *E531*
'term' string (default is $TERM, if that fails: 'term' string (default is $TERM, if that fails:
in the GUI: "builtin_gui" in the GUI: "builtin_gui"
@ -7318,14 +7495,12 @@ A jump table for the options with a short description can be found at |Q_op|.
the GUI it only applies to the keyboard ( 'encoding' is used for the the GUI it only applies to the keyboard ( 'encoding' is used for the
display). Except for the Mac when 'macatsui' is off, then display). Except for the Mac when 'macatsui' is off, then
'termencoding' should be "macroman". 'termencoding' should be "macroman".
In the Win32 console version the default value is the console codepage
when it differs from the ANSI codepage.
*E617* *E617*
Note: This does not apply to the GTK+ 2 GUI. After the GUI has been Note: This does not apply to the GTK+ 2 GUI. After the GUI has been
successfully initialized, 'termencoding' is forcibly set to "utf-8". successfully initialized, 'termencoding' is forcibly set to "utf-8".
Any attempts to set a different value will be rejected, and an error Any attempts to set a different value will be rejected, and an error
message is shown. message is shown.
For the Win32 GUI 'termencoding' is not used for typed characters, For the Win32 GUI and console versions 'termencoding' is not used,
because the Win32 system always passes Unicode characters. because the Win32 system always passes Unicode characters.
When empty, the same encoding is used as for the 'encoding' option. When empty, the same encoding is used as for the 'encoding' option.
This is the normal value. This is the normal value.
@ -7375,8 +7550,10 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi} {not in Vi}
Maximum width of text that is being inserted. A longer line will be Maximum width of text that is being inserted. A longer line will be
broken after white space to get this width. A zero value disables broken after white space to get this width. A zero value disables
this. 'textwidth' is set to 0 when the 'paste' option is set. When this.
'textwidth' is zero, 'wrapmargin' may be used. See also 'textwidth' is set to 0 when the 'paste' option is set and restored
when 'paste' is reset.
When 'textwidth' is zero, 'wrapmargin' may be used. See also
'formatoptions' and |ins-textwidth|. 'formatoptions' and |ins-textwidth|.
When 'formatexpr' is set it will be used to break the line. When 'formatexpr' is set it will be used to break the line.
NOTE: This option is set to 0 when 'compatible' is set. NOTE: This option is set to 0 when 'compatible' is set.
@ -7391,6 +7568,7 @@ A jump table for the options with a short description can be found at |Q_op|.
non-keyword characters (white space is preferred). Maximum line non-keyword characters (white space is preferred). Maximum line
length is 510 bytes. length is 510 bytes.
To obtain a file to be used here, check out this ftp site: To obtain a file to be used here, check out this ftp site:
[Sorry this link doesn't work anymore, do you know the right one?]
ftp://ftp.ox.ac.uk/pub/wordlists/ First get the README file. ftp://ftp.ox.ac.uk/pub/wordlists/ First get the README file.
To include a comma in a file name precede it with a backslash. Spaces To include a comma in a file name precede it with a backslash. Spaces
after a comma are ignored, otherwise spaces are included in the file after a comma are ignored, otherwise spaces are included in the file
@ -7591,13 +7769,15 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi} {not in Vi}
{only in the GTK+ 2 GUI} {only in the GTK+ 2 GUI}
Controls the size of toolbar icons. The possible values are: Controls the size of toolbar icons. The possible values are:
tiny Use tiny toolbar icons. tiny Use tiny icons.
small Use small toolbar icons (default). small Use small icons (default).
medium Use medium-sized toolbar icons. medium Use medium-sized icons.
large Use large toolbar icons. large Use large icons.
huge Use even larger icons.
giant Use very big icons.
The exact dimensions in pixels of the various icon sizes depend on The exact dimensions in pixels of the various icon sizes depend on
the current theme. Common dimensions are large=32x32, medium=24x24, the current theme. Common dimensions are giant=48x48, huge=32x32,
small=20x20 and tiny=16x16. large=24x24, medium=24x24, small=20x20 and tiny=16x16.
If 'toolbariconsize' is empty, the global default size as determined If 'toolbariconsize' is empty, the global default size as determined
by user preferences or the current theme is used. by user preferences or the current theme is used.
@ -7915,9 +8095,9 @@ A jump table for the options with a short description can be found at |Q_op|.
% When included, save and restore the buffer list. If Vim is % When included, save and restore the buffer list. If Vim is
started with a file name argument, the buffer list is not started with a file name argument, the buffer list is not
restored. If Vim is started without a file name argument, the restored. If Vim is started without a file name argument, the
buffer list is restored from the viminfo file. Buffers buffer list is restored from the viminfo file. Quickfix
without a file name and buffers for help files are not written ('buftype'), unlisted ('buflisted'), unnamed and buffers on
to the viminfo file. removable media (|viminfo-r|) are not saved.
When followed by a number, the number specifies the maximum When followed by a number, the number specifies the maximum
number of buffers that are stored. Without a number all number of buffers that are stored. Without a number all
buffers are stored. buffers are stored.
@ -8398,6 +8578,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Options that add a margin, such as 'number' and 'foldcolumn', cause Options that add a margin, such as 'number' and 'foldcolumn', cause
the text width to be further reduced. This is Vi compatible. the text width to be further reduced. This is Vi compatible.
When 'textwidth' is non-zero, this option is not used. When 'textwidth' is non-zero, this option is not used.
This option is set to 0 when 'paste' is set and restored when 'paste'
is reset.
See also 'formatoptions' and |ins-textwidth|. {Vi: works differently See also 'formatoptions' and |ins-textwidth|. {Vi: works differently
and less usefully} and less usefully}

View File

@ -1,4 +1,4 @@
*os_390.txt* For Vim version 7.4. Last change: 2010 May 30 *os_390.txt* For Vim version 7.4. Last change: 2016 Feb 27
VIM REFERENCE MANUAL by Ralf Schandl VIM REFERENCE MANUAL by Ralf Schandl
@ -108,7 +108,6 @@ Never tested:
- Langmap (|'langmap'|) - Langmap (|'langmap'|)
- Python support (|Python|) - Python support (|Python|)
- Right-to-left mode (|'rightleft'|) - Right-to-left mode (|'rightleft'|)
- SNiFF+ interface (|sniff|)
- TCL interface (|tcl|) - TCL interface (|tcl|)
... ...

View File

@ -94,6 +94,7 @@ Shift-Insert paste text (from clipboard) *<S-Insert>*
CTRL-Insert copy Visual text (to clipboard) *<C-Insert>* CTRL-Insert copy Visual text (to clipboard) *<C-Insert>*
CTRL-Del cut Visual text (to clipboard) *<C-Del>* CTRL-Del cut Visual text (to clipboard) *<C-Del>*
Shift-Del cut Visual text (to clipboard) *<S-Del>* Shift-Del cut Visual text (to clipboard) *<S-Del>*
CTRL-X cut Visual text (to clipboard)
These mappings accomplish this (Win32 and DJGPP versions of Vim): These mappings accomplish this (Win32 and DJGPP versions of Vim):
@ -102,6 +103,7 @@ Shift-Insert <M-N><M-T> "*P "-d"*P <C-R><C-O>*
CTRL-Insert <M-N><M-U> "*y CTRL-Insert <M-N><M-U> "*y
Shift-Del <M-N><M-W> "*d Shift-Del <M-N><M-W> "*d
CTRL-Del <M-N><M-X> "*d CTRL-Del <M-N><M-X> "*d
CTRL-X <C-X> "*d
Or these mappings (non-Win32 version of Vim): Or these mappings (non-Win32 version of Vim):

View File

@ -1,276 +1,15 @@
*os_msdos.txt* For Vim version 7.4. Last change: 2005 Mar 29 *os_msdos.txt* For Vim version 7.4. Last change: 2016 Feb 26
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
*msdos* *ms-dos* *MSDOS* *MS-DOS* *msdos* *ms-dos* *MSDOS* *MS-DOS*
This file contains the particularities for the MS-DOS version of Vim. This file used to contain the particularities for the MS-DOS version of Vim.
MS-DOS support was removed in patch 7.4.1399. If you want to use it you will
need to get a version older than that. Note that the MS-DOS version doesn't
work, there is not enough memory. The DOS32 version (using DJGPP) might still
work on older systems.
1. Two versions for MS-DOS |msdos-versions|
2. Known problems |msdos-problems|
3. Long file names |msdos-longfname|
4. Termcap codes |msdos-termcap|
5. Shifted arrow keys |msdos-arrows|
6. Filename extensions |msdos-fname-extensions|
7. Memory usage and limitations |msdos-limitations|
8. Symbolically linked files |msdos-linked-files|
9. Copy/paste in a dos box |msdos-copy-paste|
Additionally, there are a number of common Win32 and DOS items:
File locations |dos-locations|
Using backslashes |dos-backslash|
Standard mappings |dos-standard-mappings|
Screen output and colors |dos-colors|
File formats |dos-file-formats|
:cd command |dos-:cd|
Interrupting |dos-CTRL-Break|
Temp files |dos-temp-files|
Shell option default |dos-shell|
For compiling Vim see src/INSTALL.pc. *msdos-compiling*
==============================================================================
1. Two versions for MS-DOS *msdos-versions*
There are two versions of Vim that can be used with MS-DOS machines:
*dos16*
Dos16 version Can be used on any MS-DOS system, only uses up to 640 Kbyte of
memory. Also runs on OS/2, Windows 95, and NT. Excludes some
Vim-specific features (autocommands, syntax highlighting,
etc.). Recommended for use on pre-386 machines.
*dos32*
Dos32 version Requires 386 processor and a |DPMI| driver, uses all
available memory. Supports long file names and the Windows
clipboard, but NOT on Windows NT. Recommended for MS-DOS,
Windows 3.1 and Windows 95.
There are also two versions that run under Windows:
Win32 version Requires Windows 95 or Windows NT, uses all available
memory, supports long file names, etc. Has some problems on
Windows 95. Recommended for Windows NT. See |os_win32.txt|
Win32 GUI Requirements like the Win32 version, but runs in its own
window, instead of a console. Has scrollbars, menu, etc.
Recommended for Windows 95 and Windows NT. See |gui-w32|.
It is recommended to use the Dos32 or Win32 version. Although the Dos16
version is able to edit very big files, it quickly runs out of memory when
making big changes. Disabling undo helps: ":set ul=-1". The screen updating
of the Dos16 version is the fastest of the three on DOS or Windows 95; on
Windows NT, the Win32 version is just as fast.
*DPMI*
For the Dos32 version, you may need a DPMI driver when running in MS-DOS. If
you are running Windows or installed a clever memory manager, it will probably
work already. If you get the message "No DPMI", you need to install a DPMI
driver. Such a driver is included with the executable in CSDPMI4B.ZIP. Run
"cwsdpmi" just before starting Vim each time. Or you might want to include
"cwsdpmi -p" in your autoexec.bat to make it resident. The latest version of
"CSDPMI*.ZIP" can be obtained from: "ftp.neosoft.com:pub/users/s/sandmann".
*minimal-features*
The 16 bit DOS version has been compiled with minimal features. Check the
|+feature-list| which ones are included (marked with a "T").
You can include more features by editing feature.h and recompiling.
==============================================================================
2. Known problems *msdos-problems*
When using smartdrive (MS-DOS 6.x) with write-behind caching, it is possible
that Vim will try to create a swap file on a read-only file system (e.g.
write protected floppy). You will then be given the message >
A serious disk error has occurred .., Retry (r)?
There is nothing you can do but unprotect the floppy or switch off the
computer. Even CTRL-ALT-DEL will not get you out of this. This is really a
problem of smartdrive, not Vim. Smartdrive works fine otherwise. If this
bothers you, don't use the write-behind caching.
Vim can't read swap files that have been opened already, unless the "share"
command has been used. If you see stray warnings for existing swap files,
include the "share" command in your config.sys or autoexec.bat (see your MSDOS
documentation).
The Dos16 version can only have about 10 files open (in a window or hidden) at
one time. With more files you will get error messages when trying to read or
write a file, and for filter commands. Or Vim runs out of memory, and random
problems may result.
The Dos32 version cannot have an unlimited number of files open at any one
time. The limit depends on the setting of FILES in your CONFIG.SYS. This
defaults to 15; if you need to edit a lot of files, you should increase this.
If you do not set FILES high enough, you can get strange errors, and shell
commands may cause a crash!
The Dos32 version can work with long file names. When doing file name
completion, matches for the short file name will also be found. But this will
result in the corresponding long file name. For example, if you have the long
file name "this_is_a_test" with the short file name "this_i~1", the command
":e *1" will start editing "this_is_a_test".
When using the Dos32 version and you run into problems with DPMI support,
check if there is a program in your config.sys that eats resources. One
program known to cause this problem is "netx", which says "NetWare v. 3.26
Workstation shell". Replace it with version 3.32 to fix the problem.
The Dos32 version will parse its arguments to handle quotation. This is good
to edit a file with spaces in its name, for example: >
vim "program files\accessories\ppp.scp"
A side effect is that single quotes are removed. Insert a backslash to avoid
that. For example, to edit the file "fi'le.txt": >
vim fi\'le.txt
==============================================================================
3. Long file names *msdos-longfname*
If the Dos32 version is run on Windows 95, it can use long file names. It
will work by default. If you want to disable this, use this setting:
set LFN=N
You can put this in your autoexec.bat file.
Note: If you have installed DJGPP on your machine, you probably have a
"djgpp.env" file, which contains "LFN=n". You need to use "LFN=Y" to switch
on using long file names then.
==============================================================================
4. Termcap codes *msdos-termcap*
If you want to use another output method (e.g., when using a terminal on a COM
port), set the terminal name to "pcansi". You can change the termcap options
when needed (see |terminal-options|). Note that the
normal IBM ansi.sys does not support all the codes of the builtin pcansi
terminal. If you use ansi.sys, you will need to delete the termcap entries
t_al and t_dl with >
:set t_al= t_dl=
Otherwise, the screen will not be updated correctly. It is better to use
nansi.sys, nnansi.sys, or the like instead of ansi.sys.
If you want to use Vim on a terminal connected to a COM: port, reset the
'bioskey' option. Otherwise the commands will be read from the PC keyboard.
CTRL-C and CTRL-P may not work correctly with 'bioskey' reset.
==============================================================================
5. Shifted arrow keys *msdos-arrows*
Use CTRL-arrow-left and CTRL-arrow-right instead of SHIFT-arrow-left and
SHIFT-arrow-right. The arrow-up and arrow-down cannot be used with SHIFT or
CTRL.
==============================================================================
6. Filename extensions *msdos-fname-extensions*
MS-DOS allows for only one file name extension. Therefore, when appending an
extension, the '.' in the original file name is replaced with a '_', the name
is truncated to 8 characters, and the new extension (e.g., ".swp") is
appended. Two examples: "test.c" becomes "test_c.bak", "thisisat.est"
becomes "thisisat.bak". To reduce these problems, the default for
'backupext' is "~" instead of ".bak". The backup file for "thisisat.est"
then becomes "thisisat.es~". The 'shortname' option is not available,
because it would always be set.
==============================================================================
7. Memory usage and limitations *msdos-limitations*
A swap file is used to store most of the text. You should be able to edit
very large files. However, memory is used for undo and other things. If you
delete a lot of text, you can still run out of memory in the Dos16 version.
If Vim gives an "Out of memory" warning, you should stop editing. The result
of further editing actions is unpredictable. Setting 'undolevels' to 0 saves
some memory. Running the maze macros on a big maze is guaranteed to run out
of memory, because each change is remembered for undo. In this case set
'undolevels' to a negative number. This will switch off undo completely.
*msdos-clipboard-limits*
In the Dos32 version, extended memory is used to avoid these problems.
However, if you are using the clipboard, you can still run into memory
limitations because the Windows clipboard can only communicate with Vim using
Dos memory. This means that the largest amount of text that can be sent to
or received from the Windows clipboard is limited by how much free Dos memory
is available on your system.
You can usually maximize the amount of available Dos memory by adding the
following lines to Dos's "config.sys" file: >
DOS=HIGH,UMB
DEVICE=C:\WINDOWS\himem.sys
DEVICE=C:\WINDOWS\emm386.exe RAM
Modifying config.sys in this way will also help to make more memory available
for the Dos16 version, if you are using that.
In the Dos16 version the line length is limited to about 32000 characters.
When reading a file the lines are automatically split. But editing a line
in such a way that it becomes too long may give unexpected results.
==============================================================================
8. Symbolically linked files *msdos-linked-files*
When using Vim to edit a symbolically linked file on a unix NFS file server,
you may run into problems. When writing the file, Vim does not "write
through" the symlink. Instead, it deletes the symbolic link and creates a new
file in its place.
On Unix, Vim is prepared for links (symbolic or hard). A backup copy of the
original file is made and then the original file is overwritten. This assures
that all properties of the file remain the same. On non-Unix systems, the
original file is renamed and a new file is written. Only the protection bits
are set like the original file. However, this doesn't work properly when
working on an NFS-mounted file system where links and other things exist. The
only way to fix this in the current version is not making a backup file, by
":set nobackup nowritebackup" |'writebackup'|
A similar problem occurs when mounting a Unix filesystem through Samba or a
similar system. When Vim creates a new file it will get the default user ID
for the mounted file system. This may be different from the original user ID.
To avoid this set the 'backupcopy' option to "yes".
==============================================================================
9. Copy/paste in a dos box *msdos-copy-paste*
*E450* *E451* *E452* *E453* *E454*
The 32 bit version can copy/paste from/to the Windows clipboard directly. Use
the "* register. Large amounts of text can be copied this way, but it must be
possible to allocate memory for it, see |msdos-clipboard-limits|. When moving
text from one Vim to another, the type of the selection
(characterwise/linewise/blockwise) is passed on.
In other versions, the following can be used.
(posted to comp.editors by John Velman <velman@igate1.hac.com>)
How to copy/paste text from/to vim in a dos box:
1) To get VIM to run in a window, instead of full screen, press alt+enter.
This toggles back and forth between full screen and a dos window.
NOTE: In Windows 95 you must have the property "Fast Pasting" unchecked!
In the properties dialog box for the MS-DOS window, go to "MS-DOS
Prompt/Misc/Fast pasting" and make sure that it is NOT checked.
To make this permanent, change the properties for
"\windows\system\conagent.exe" (from Philip Nelson, unverified).
2) To paste something _into_ Vim, put Vim in insert mode.
3) Put the text you want to paste on the windows clipboard.
4) Click the control box in the upper left of the Vim window. (This looks
like a big minus sign.) If you don't want to use the mouse, you can get
this with alt+spacebar.
5) On the resulting dropdown menu choose "Edit".
6) On the child dropdown menu choose "Paste".
To copy something from the Vim window to the clipboard,
1) Select the control box to get the control drop down menu.
2) Select "Edit".
3) Select "Mark".
4) Using either the keys or the mouse, select the part of the Vim window that
you want to copy. To use the keys, use the arrow keys, and hold down shift
to extend the selection.
5) When you've completed your selection, press 'enter'. The selection
is now in the windows clipboard. By the way, this can be any
rectangular selection, for example columns 4-25 in rows 7-10. It can
include anything in the VIM window: the output of a :!dir, for
example.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,221 +1,13 @@
*os_os2.txt* For Vim version 7.4. Last change: 2007 Apr 22 *os_os2.txt* For Vim version 7.4. Last change: 2015 Dec 31
VIM REFERENCE MANUAL by Paul Slootman VIM REFERENCE MANUAL by Paul Slootman
*os2* *OS2* *OS/2* *os2* *OS2* *OS/2*
This file contains the particularities for the OS/2 version of Vim. This file used to contain the particularities for the OS/2 version of Vim.
At present there is no native PM version of the GUI version of Vim: The OS/2 The OS/2 support was removed in patch 7.4.1008.
version is a console application. However, there is now a Win32s-compatible
GUI version, which should be usable by owners of Warp 4 (which supports
Win32s) in a Win-OS/2 session. The notes in this file refer to the native
console version.
NOTE
This OS/2 port works well for me and a couple of other OS/2 users; however,
since I haven't had much feedback, that either means no (OS/2-specific) bugs
exist (besides the ones mentioned below), or no one has yet created a
situation in which any bugs are apparent. File I/O in Dos and Unix mode,
binary mode, and FAT handling all seem to work well, which would seem to be
the most likely places for trouble.
A known problem is that files opened by Vim are inherited by other programs
that are started via a shell escape from within Vim. This specifically means
that Vim won't be able to remove the swap file(s) associated with buffers open
at the time the other program was started, until the other program is stopped.
At that time, the swap file may be removed, but if Vim could not do that the
first time, it won't be removed at all. You'll get warnings that some other
Vim session may be editing the file when you start Vim up again on that file.
This can be reproduced with ":!start epm". Now quit Vim, and start Vim again
with the file that was in the buffer at the time epm was started. I'm working
on this!
A second problem is that Vim doesn't understand the situation when using it
when accessing the OS/2 system via the network, e.g. using telnet from a Unix
system, and then starting Vim. The problem seems to be that OS/2 =sometimes=
recognizes function / cursor keys, and tries to convert those to the
corresponding OS/2 codes generated by the "normal" PC keyboard. I've been
testing a workaround (mapping the OS/2 codes to the correct functions), but so
far I can't say anything conclusive (this is on Warp 3, by the way). In the
meantime any help will be appreciated.
PREREQUISITES
To run Vim, you need the emx runtime environment (at least rev. 0.9b). This
is generally available as (ask Archie about it):
emxrt.zip emx runtime package
I've included a copy of emx.dll, which should be copied to one of the
directories listed in your LIBPATH. Emx is GPL'ed, but the emx.dll library is
not (read COPYING.EMX to find out what that means to you).
This emx.dll is from the emxfix04.zip package, which unfortunately has a bug,
eh, I mean a POSIX feature, in select(). Versions of Vim before 3.27 will
appear to hang when starting (actually, while processing vimrc). Hit <Enter> a
couple of times until Vim starts working if this happens. Next, get an up to
date version of Vim!
HELP AND VIMRC FILE
If you unpack the archive that Vim came in and run Vim directly from where it
was unpacked, Vim should be able to find the runtime files and your .vimrc
without any settings.
If you put the runtime files separately from the binary, the VIM environment
variable is used to find the location of the help files and the system .vimrc.
Place an entry such as this in CONFIG.SYS: >
SET VIM=c:/local/lib/vim
Put your .vimrc and your other Vim files in this directory. Copy the runtime
directory to this directory. Each version of Vim has its own runtime
directory. It will be called something like "c:/local/lib/vim/vim54". Thus
you get a tree of Vim files like this:
c:/local/lib/vim/.vimrc
c:/local/lib/vim/vim54/filetype.vim
c:/local/lib/vim/vim54/doc/help.txt
etc.
Note: .vimrc may also be called _vimrc to accommodate those who have chosen to
install OS/2 on a FAT file system. Vim first tries to find .vimrc and if that
fails, looks for _vimrc in the same place. The existence of a .vimrc or
_vimrc file influences the 'compatible' options, which can have unexpected side
effects. See |'compatible'|.
If you're using network drives with OS/2, then you can install Vim on a
network drive (including .vimrc; this is then called the "system" vimrc file),
and then use a personal copy of .vimrc (the "user" vimrc file). This should be
located in a directory indicated by the HOME environment variable.
ENVIRONMENT VARIABLES IN FILE NAMES
This HOME environment variable is also used when using ~ in file names, so
":e ~/textfile" will edit the file "textfile" in the directory referred to by
HOME. Additionally you can use other environment variables in file names, as
in ":n $SRC/*.c".
The HOME environment variable is also used to locate the .viminfo file
(see |viminfo-file|). There is no support yet for .viminfo on FAT file
systems yet, sorry. You could try the -i startup flag (as in "vim -i
$HOME/_viminfo") however.
If the HOME environment variable is not set, the value "C:/" is used as a
default.
BACKSLASHES
Using slashes ('/') and backslashes ('\') can be a bit of a problem (see
|dos-backslash| for more explanation), but in almost all cases Vim does "The
Right Thing". Vim itself uses backslashes in file names, but will happily
accept forward slashes if they are entered (in fact, sometimes that works
better!).
TEMP FILES
Temporary files (for filtering) are put in the first directory in the next
list that exists and where a file can be created:
$TMP
$TEMP
C:\TMP
C:\TEMP
current directory
TERMINAL SETTING
*os2ansi*
Use "os2ansi" as the TERM environment variable (or don't set it at all, as the
default is the correct value). You can set term to os2ansi in the .vimrc, in
case you need TERM to be a different value for other applications. The
problem is that OS/2 ANSI emulation is quite limited (it doesn't have insert /
delete line, for example).
If you want to use a different value for TERM (because of other programs, for
example), make sure that the termcap entry for that TERM value has the
appropriate key mappings. The termcap.dat distributed with emx does not always
have them. Here are some suitable values to add to the termcap entry of your
choice; these allow the cursor keys and the named function keys (such as
pagedown) to work.
:ku=\316H:kd=\316P:kl=\316K:kr=\316M:%i=\316t:#4=\316s:\
:kD=\316S:kI=\316R:kN=\316Q:kP=\316I:kh=\316G:@7=\316O:\
:k1=\316;:k2=\316<:k3=\316=:k4=\316>:k5=\316?:k6=\316@:\
:k7=\316A:k8=\316B:k9=\316C:k;=\316D:
Paul Slootman
43 LINE WINDOW
A suggestion from Steven Tryon, on how to run Vim in a bigger window:
When I call Vim from an OS/2 WPS application such as PMMail it comes up
in the default 25-line mode. To get a more useful window size I make
my external editor "vimbig.cmd" which in turn calls "vimbig2.cmd".
Brute force and awkwardness, perhaps, but it works.
vimbig.cmd: >
@echo off
start "Vi Improved" /f vimbig2.cmd %1 %2 %3 %4
vimbig2.cmd: >
@echo off
mode 80,43
vim.exe %1 %2 %3 %4
exit
<
CLIPBOARD ACCESS (provided by Alexander Wagner)
Vim for OS/2 has no direct access to the system clipboard. To enable access
anyway you need an additional tool which gives you access to the clipboard
from within a vio application. The freeware package clipbrd.zip by Stefan
Gruendel can be used for this purpose. You might download the package
including precompiled binaries and all sources from:
http://www.os2site.com/sw/util/clipboard/index.html
http://download.uni-hd.de/ftp/pub/os2/pmtools/
Installation of this package is straight forward: just put the two executables
that come with this package into a directory within your PATH for Vim should
be able to call them from whatever directory you are working.
To copy text from the clipboard to your Vim session you can use the :r
command. Simply call clipbrd.exe from within Vim in the following way: >
:r !clipbrd -r
To copy text from Vim to the system clipboard just mark the text in the usual
vim-manner and call: >
:!clipbrd -w
which will write your selection right into OS/2's clipboard.
For ease of use you might want to add some maps for these commands. E.g. to
use F11 to paste the clipboard into Vim and F12 to copy selected text to the
clipboard you would use: >
if has("os2")
imap <F11> <ESC>:r !clipbrd -r<CR>i
vmap <F12> :!clipbrd -w<cr>
else
imap <F11> <ESC>"*p<CR>i
vmap <F12> "*y
endif
This will ensure that only on OS/2 clipbrd is called whereas on other
platforms vims build in mechanism is used. (To enable this functions on every
load of Vim place the above lines in your .vimrc.)
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 7.4. Last change: 2014 Sep 25 *os_win32.txt* For Vim version 7.4. Last change: 2016 Mar 05
VIM REFERENCE MANUAL by George Reilly VIM REFERENCE MANUAL by George Reilly
@ -96,6 +96,31 @@ 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 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. executable() returns 1 the executable can actually be executed.
Quotes in file names *win32-quotes*
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: >
vim -c "echo 'foo"""bar'"
The quotation rules are:
1. A `"` starts quotation.
2. Another `"` or `""` ends quotation. If the quotation ends with `""`, a `"`
is produced at the end of the quoted string.
Examples, with [] around an argument:
"foo" -> [foo]
"foo"" -> [foo"]
"foo"bar -> [foobar]
"foo" bar -> [foo], [bar]
"foo""bar -> [foo"bar]
"foo"" bar -> [foo"], [bar]
"foo"""bar" -> [foo"bar]
============================================================================== ==============================================================================
3. Restore screen contents *win32-restore* 3. Restore screen contents *win32-restore*

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.4. Last change: 2014 Sep 06 *pattern.txt* For Vim version 7.4. Last change: 2016 Jan 03
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -59,6 +59,8 @@ explanations are in chapter 27 |usr_27.txt|.
*n* *n*
n Repeat the latest "/" or "?" [count] times. n Repeat the latest "/" or "?" [count] times.
If the cursor doesn't move the search is repeated with
count + 1.
|last-pattern| {Vi: no count} |last-pattern| {Vi: no count}
*N* *N*
@ -391,8 +393,8 @@ Use of "\M" makes the pattern after it be interpreted as if 'nomagic' is used.
Use of "\v" means that in the pattern after it all ASCII characters except Use of "\v" means that in the pattern after it all ASCII characters except
'0'-'9', 'a'-'z', 'A'-'Z' and '_' have a special meaning. "very magic" '0'-'9', 'a'-'z', 'A'-'Z' and '_' have a special meaning. "very magic"
Use of "\V" means that in the pattern after it only the backslash has a Use of "\V" means that in the pattern after it only the backslash and the
special meaning. "very nomagic" terminating character (/ or ?) has a special meaning. "very nomagic"
Examples: Examples:
after: \v \m \M \V matches ~ after: \v \m \M \V matches ~
@ -400,6 +402,7 @@ after: \v \m \M \V matches ~
$ $ $ \$ matches end-of-line $ $ $ \$ matches end-of-line
. . \. \. matches any character . . \. \. matches any character
* * \* \* any number of the previous atom * * \* \* any number of the previous atom
~ ~ \~ \~ latest substitute string
() \(\) \(\) \(\) grouping into an atom () \(\) \(\) \(\) grouping into an atom
| \| \| \| separating alternatives | \| \| \| separating alternatives
\a \a \a \a alphabetic character \a \a \a \a alphabetic character
@ -478,6 +481,7 @@ More explanation and examples below, follow the links.
|/\%v| \%23v \%23v in virtual column 23 |/zero-width| |/\%v| \%23v \%23v in virtual column 23 |/zero-width|
Character classes {not in Vi}: */character-classes* Character classes {not in Vi}: */character-classes*
magic nomagic matches ~
|/\i| \i \i identifier character (see 'isident' option) |/\i| \i \i identifier character (see 'isident' option)
|/\I| \I \I like "\i", but excluding digits |/\I| \I \I like "\i", but excluding digits
|/\k| \k \k keyword character (see 'iskeyword' option) |/\k| \k \k keyword character (see 'iskeyword' option)
@ -508,6 +512,7 @@ Character classes {not in Vi}: */character-classes*
class with end-of-line included class with end-of-line included
(end of character classes) (end of character classes)
magic nomagic matches ~
|/\e| \e \e <Esc> |/\e| \e \e <Esc>
|/\t| \t \t <Tab> |/\t| \t \t <Tab>
|/\r| \r \r <CR> |/\r| \r \r <CR>
@ -533,6 +538,7 @@ Character classes {not in Vi}: */character-classes*
|/\Z| \Z \Z ignore differences in Unicode "combining characters". |/\Z| \Z \Z ignore differences in Unicode "combining characters".
Useful when searching voweled Hebrew or Arabic text. Useful when searching voweled Hebrew or Arabic text.
magic nomagic matches ~
|/\m| \m \m 'magic' on for the following chars in the pattern |/\m| \m \m 'magic' on for the following chars in the pattern
|/\M| \M \M 'magic' off for the following chars in the pattern |/\M| \M \M 'magic' off for the following chars in the pattern
|/\v| \v \v the following chars in the pattern are "very magic" |/\v| \v \v the following chars in the pattern are "very magic"
@ -1058,7 +1064,10 @@ x A single character, with no special meaning, matches itself
*E769* *E769*
When the ']' is not there Vim will not give an error message but When the ']' is not there Vim will not give an error message but
assume no collection is used. Useful to search for '['. However, you assume no collection is used. Useful to search for '['. However, you
do get E769 for internal searching. do get E769 for internal searching. And be aware that in a
`:substitute` command the whole command becomes the pattern. E.g.
":s/[/x/" searches for "[/x" and replaces it with nothing. It does
not search for "[" and replaces it with "x"!
If the sequence begins with "^", it matches any single character NOT If the sequence begins with "^", it matches any single character NOT
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'. in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.
@ -1093,7 +1102,10 @@ x A single character, with no special meaning, matches itself
plausible pattern for a UNIX filename: "[-./[:alnum:]_~]\+" That is, plausible pattern for a UNIX filename: "[-./[:alnum:]_~]\+" That is,
a list of at least one character, each of which is either '-', '.', a list of at least one character, each of which is either '-', '.',
'/', alphabetic, numeric, '_' or '~'. '/', alphabetic, numeric, '_' or '~'.
These items only work for 8-bit characters. These items only work for 8-bit characters, except [:lower:] and
[:upper:] also work for multi-byte characters when using the new
regexp engine. In the future these items may work for multi-byte
characters.
*/[[=* *[==]* */[[=* *[==]*
- An equivalence class. This means that characters are matched that - An equivalence class. This means that characters are matched that
have almost the same meaning, e.g., when ignoring accents. This have almost the same meaning, e.g., when ignoring accents. This

117
runtime/doc/pi_logipat.txt Normal file
View File

@ -0,0 +1,117 @@
*pi_logipat.txt* Logical Patterns Mar 13, 2013
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
Copyright: (c) 2004-2013 by Charles E. Campbell *logipat-copyright*
The VIM LICENSE applies to LogiPat.vim and LogiPat.txt
(see |copyright|) except use "LogiPat" instead of "Vim"
No warranty, express or implied. Use At-Your-Own-Risk.
==============================================================================
1. Contents *logipat* *logipat-contents*
1. Contents.................: |logipat-contents|
2. LogiPat Manual...........: |logipat-manual|
3. LogiPat Examples.........: |logipat-examples|
4. Caveat...................: |logipat-caveat|
5. LogiPat History..........: |logipat-history|
==============================================================================
2. LogiPat Manual *logipat-manual* *logipat-man*
*logipat-arg* *logipat-input* *logipat-pattern* *logipat-operators*
Boolean logic patterns are composed of
operators ! = not
| = logical-or
& = logical-and
grouping ( ... )
patterns "pattern"
:LogiPat {boolean-logic pattern} *:LogiPat*
:LogiPat is a command which takes a boolean-logic
argument (|logipat-arg|).
:LP {boolean-logic pattern} *:LP*
:LP is a shorthand command version of :LogiPat
(|:LogiPat|).
:ELP {boolean-logic pattern} *:ELP*
No search is done, but the conversion from the
boolean logic pattern to the regular expression
is performed and echoed onto the display.
:LogiPatFlags {search flags} *LogiPat-flags*
:LogiPatFlags {search flags}
LogiPat uses the |search()| command. The flags
passed to that call to search() may be specified
by the :LogiPatFlags command.
:LPF {search flags} *:LPF*
:LPF is a shorthand version of :LogiPatFlags.
:let pat=LogiPat({boolean-logic pattern}) *LogiPat()*
If one calls LogiPat() directly, no search
is done, but the transformation from the boolean
logic pattern into a regular expression pattern
is performed and returned.
To get a " inside a pattern, as opposed to having it delimit
the pattern, double it.
==============================================================================
3. LogiPat Examples *logipat-examples*
LogiPat takes Boolean logic arguments and produces a regular
expression which implements the choices. A series of examples
follows:
>
:LogiPat "abc"
< will search for lines containing the string :abc:
>
:LogiPat "ab""cd"
< will search for lines containing the string :ab"c:
>
:LogiPat !"abc"
< will search for lines which don't contain the string :abc:
>
:LogiPat "abc"|"def"
< will search for lines which contain either the string
:abc: or the string :def:
>
:LogiPat !("abc"|"def")
< will search for lines which don't contain either
of the strings :abc: or :def:
>
:LogiPat "abc"&"def"
< will search for lines which contain both of the strings
:abc: and :def:
>
:let pat= LogiPat('!"abc"')
< will return the regular expression which will match
all lines not containing :abc: . The double quotes
are needed to pass normal patterns to LogiPat, and
differentiate such patterns from boolean logic
operators.
==============================================================================
4. Caveat *logipat-caveat*
The "not" operator may be fragile; ie. it may not always play well
with the & (logical-and) and | (logical-or) operators. Please try out
your patterns, possibly with :set hls, to insure that what is matching
is what you want.
==============================================================================
3. LogiPat History *logipat-history*
v3 Sep 25, 2006 * LP_Or() fixed; it now encapsulates its output
in \%(...\) parentheses
Dec 12, 2011 * |:ELP| added
* "" is mapped to a single " and left inside patterns
v2 May 31, 2005 * LPF and LogiPatFlags commands weren't working
v1 May 23, 2005 * initial release
==============================================================================
vim:tw=78:ts=8:ft=help

File diff suppressed because it is too large Load Diff

View File

@ -693,7 +693,7 @@ It is possible to achieve a poor man's version of duplex printing using the PS
utility psselect. This utility has options -e and -o for printing just the utility psselect. This utility has options -e and -o for printing just the
even or odd pages of a PS file respectively. even or odd pages of a PS file respectively.
First generate a PS file with the 'hardcopy' command, then generate a new First generate a PS file with the 'hardcopy' command, then generate new
files with all the odd and even numbered pages with: > files with all the odd and even numbered pages with: >
psselect -o test.ps odd.ps psselect -o test.ps odd.ps

View File

@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 7.4. Last change: 2014 Mar 27 *quickfix.txt* For Vim version 7.4. Last change: 2016 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -299,6 +299,75 @@ use this code: >
au QuickfixCmdPost make call QfMakeConv() au QuickfixCmdPost make call QfMakeConv()
EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
*:cdo*
:cdo[!] {cmd} Execute {cmd} in each valid entry in the quickfix list.
It works like doing this: >
:cfirst
:{cmd}
:cnext
:{cmd}
etc.
< When the current file can't be |abandon|ed and the [!]
is not present, the command fails.
When an error is detected excecution stops.
The last buffer (or where an error occurred) becomes
the current buffer.
{cmd} can contain '|' to concatenate several commands.
Only valid entries in the quickfix list are used.
A range can be used to select entries, e.g.: >
:10,$cdo cmd
< To skip entries 1 to 9.
Note: While this command is executing, the Syntax
autocommand event is disabled by adding it to
'eventignore'. This considerably speeds up editing
each buffer.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|,
|:ldo|, |:cfdo| and |:lfdo|.
*:cfdo*
:cfdo[!] {cmd} Execute {cmd} in each file in the quickfix list.
It works like doing this: >
:cfirst
:{cmd}
:cnfile
:{cmd}
etc.
< Otherwise it works the same as `:cdo`.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
*:ldo*
:ld[o][!] {cmd} Execute {cmd} in each valid entry in the location list
for the current window.
It works like doing this: >
:lfirst
:{cmd}
:lnext
:{cmd}
etc.
< Only valid entries in the location list are used.
Otherwise it works the same as `:cdo`.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
*:lfdo*
:lfdo[!] {cmd} Execute {cmd} in each file in the location list for
the current window.
It works like doing this: >
:lfirst
:{cmd}
:lnfile
:{cmd}
etc.
< Otherwise it works the same as `:ldo`.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
============================================================================= =============================================================================
2. The error window *quickfix-window* 2. The error window *quickfix-window*

View File

@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.4. Last change: 2014 Nov 19 *quickref.txt* For Vim version 7.4. Last change: 2016 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -620,6 +620,7 @@ Short explanation of each option: *option-list*
'balloondelay' 'bdlay' delay in mS before a balloon may pop up 'balloondelay' 'bdlay' delay in mS before a balloon may pop up
'ballooneval' 'beval' switch on balloon evaluation 'ballooneval' 'beval' switch on balloon evaluation
'balloonexpr' 'bexpr' expression to show in balloon 'balloonexpr' 'bexpr' expression to show in balloon
'belloff' 'bo' do not ring the bell for these reasons
'binary' 'bin' read/write/edit file in binary mode 'binary' 'bin' read/write/edit file in binary mode
'bioskey' 'biosk' MS-DOS: use bios calls for input characters 'bioskey' 'biosk' MS-DOS: use bios calls for input characters
'bomb' prepend a Byte Order Mark to the file 'bomb' prepend a Byte Order Mark to the file
@ -696,6 +697,7 @@ Short explanation of each option: *option-list*
'fileignorecase' 'fic' ignore case when using file names 'fileignorecase' 'fic' ignore case when using file names
'filetype' 'ft' type of file, used for autocommands 'filetype' 'ft' type of file, used for autocommands
'fillchars' 'fcs' characters to use for displaying special items 'fillchars' 'fcs' characters to use for displaying special items
'fixendofline' 'fixeol' make sure last line in file has <EOL>
'fkmap' 'fk' Farsi keyboard mapping 'fkmap' 'fk' Farsi keyboard mapping
'foldclose' 'fcl' close a fold when the cursor leaves it 'foldclose' 'fcl' close a fold when the cursor leaves it
'foldcolumn' 'fdc' width of the column used to indicate folds 'foldcolumn' 'fdc' width of the column used to indicate folds
@ -710,10 +712,10 @@ Short explanation of each option: *option-list*
'foldnestmax' 'fdn' maximum fold depth 'foldnestmax' 'fdn' maximum fold depth
'foldopen' 'fdo' for which commands a fold will be opened 'foldopen' 'fdo' for which commands a fold will be opened
'foldtext' 'fdt' expression used to display for a closed fold 'foldtext' 'fdt' expression used to display for a closed fold
'formatexpr' 'fex' expression used with "gq" command
'formatlistpat' 'flp' pattern used to recognize a list header 'formatlistpat' 'flp' pattern used to recognize a list header
'formatoptions' 'fo' how automatic formatting is to be done 'formatoptions' 'fo' how automatic formatting is to be done
'formatprg' 'fp' name of external program used with "gq" command 'formatprg' 'fp' name of external program used with "gq" command
'formatexpr' 'fex' expression used with "gq" command
'fsync' 'fs' whether to invoke fsync() after file write 'fsync' 'fs' whether to invoke fsync() after file write
'gdefault' 'gd' the ":substitute" flag 'g' is default on 'gdefault' 'gd' the ":substitute" flag 'g' is default on
'grepformat' 'gfm' format of 'grepprg' output 'grepformat' 'gfm' format of 'grepprg' output
@ -732,15 +734,15 @@ Short explanation of each option: *option-list*
'helplang' 'hlg' preferred help languages 'helplang' 'hlg' preferred help languages
'hidden' 'hid' don't unload buffer when it is |abandon|ed 'hidden' 'hid' don't unload buffer when it is |abandon|ed
'highlight' 'hl' sets highlighting mode for various occasions 'highlight' 'hl' sets highlighting mode for various occasions
'hlsearch' 'hls' highlight matches with last search pattern
'history' 'hi' number of command-lines that are remembered 'history' 'hi' number of command-lines that are remembered
'hkmap' 'hk' Hebrew keyboard mapping 'hkmap' 'hk' Hebrew keyboard mapping
'hkmapp' 'hkp' phonetic Hebrew keyboard mapping 'hkmapp' 'hkp' phonetic Hebrew keyboard mapping
'hlsearch' 'hls' highlight matches with last search pattern
'icon' let Vim set the text of the window icon 'icon' let Vim set the text of the window icon
'iconstring' string to use for the Vim icon text 'iconstring' string to use for the Vim icon text
'ignorecase' 'ic' ignore case in search patterns 'ignorecase' 'ic' ignore case in search patterns
'imactivatekey' 'imak' key that activates the X input method
'imactivatefunc' 'imaf' function to enable/disable the X input method 'imactivatefunc' 'imaf' function to enable/disable the X input method
'imactivatekey' 'imak' key that activates the X input method
'imcmdline' 'imc' use IM when starting to edit a command line 'imcmdline' 'imc' use IM when starting to edit a command line
'imdisable' 'imd' do not use the IM in any mode 'imdisable' 'imd' do not use the IM in any mode
'iminsert' 'imi' use :lmap or IM in Insert mode 'iminsert' 'imi' use :lmap or IM in Insert mode
@ -775,6 +777,7 @@ Short explanation of each option: *option-list*
'list' show <Tab> and <EOL> 'list' show <Tab> and <EOL>
'listchars' 'lcs' characters for displaying in list mode 'listchars' 'lcs' characters for displaying in list mode
'loadplugins' 'lpl' load plugin scripts when starting up 'loadplugins' 'lpl' load plugin scripts when starting up
'luadll' name of the Lua dynamic library
'macatsui' Mac GUI: use ATSUI text drawing 'macatsui' Mac GUI: use ATSUI text drawing
'magic' changes special characters in search patterns 'magic' changes special characters in search patterns
'makeef' 'mef' name of the errorfile for ":make" 'makeef' 'mef' name of the errorfile for ":make"
@ -807,13 +810,15 @@ Short explanation of each option: *option-list*
'omnifunc' 'ofu' function for filetype-specific completion 'omnifunc' 'ofu' function for filetype-specific completion
'opendevice' 'odev' allow reading/writing devices on MS-Windows 'opendevice' 'odev' allow reading/writing devices on MS-Windows
'operatorfunc' 'opfunc' function to be called for |g@| operator 'operatorfunc' 'opfunc' function to be called for |g@| operator
'osfiletype' 'oft' no longer supported 'osfiletype' 'oft' no longer supported
'packpath' 'pp' list of directories used for packages
'paragraphs' 'para' nroff macros that separate paragraphs 'paragraphs' 'para' nroff macros that separate paragraphs
'paste' allow pasting text 'paste' allow pasting text
'pastetoggle' 'pt' key code that causes 'paste' to toggle 'pastetoggle' 'pt' key code that causes 'paste' to toggle
'patchexpr' 'pex' expression used to patch a file 'patchexpr' 'pex' expression used to patch a file
'patchmode' 'pm' keep the oldest version of a file 'patchmode' 'pm' keep the oldest version of a file
'path' 'pa' list of directories searched with "gf" et.al. 'path' 'pa' list of directories searched with "gf" et.al.
'perldll' name of the Perl dynamic library
'preserveindent' 'pi' preserve the indent structure when reindenting 'preserveindent' 'pi' preserve the indent structure when reindenting
'previewheight' 'pvh' height of the preview window 'previewheight' 'pvh' height of the preview window
'previewwindow' 'pvw' identifies the preview window 'previewwindow' 'pvw' identifies the preview window
@ -826,6 +831,8 @@ Short explanation of each option: *option-list*
'printmbfont' 'pmbfn' font names to be used for CJK output of :hardcopy 'printmbfont' 'pmbfn' font names to be used for CJK output of :hardcopy
'printoptions' 'popt' controls the format of :hardcopy output 'printoptions' 'popt' controls the format of :hardcopy output
'pumheight' 'ph' maximum height of the popup menu 'pumheight' 'ph' maximum height of the popup menu
'pythondll' name of the Python 2 dynamic library
'pythonthreedll' name of the Python 3 dynamic library
'quoteescape' 'qe' escape characters used in a string 'quoteescape' 'qe' escape characters used in a string
'readonly' 'ro' disallow writing the buffer 'readonly' 'ro' disallow writing the buffer
'redrawtime' 'rdt' timeout for 'hlsearch' and |:match| highlighting 'redrawtime' 'rdt' timeout for 'hlsearch' and |:match| highlighting
@ -838,6 +845,7 @@ Short explanation of each option: *option-list*
'revins' 'ri' inserting characters will work backwards 'revins' 'ri' inserting characters will work backwards
'rightleft' 'rl' window is right-to-left oriented 'rightleft' 'rl' window is right-to-left oriented
'rightleftcmd' 'rlc' commands for which editing works right-to-left 'rightleftcmd' 'rlc' commands for which editing works right-to-left
'rubydll' name of the Ruby dynamic library
'ruler' 'ru' show cursor line and column in the status line 'ruler' 'ru' show cursor line and column in the status line
'rulerformat' 'ruf' custom format for the ruler 'rulerformat' 'ruf' custom format for the ruler
'runtimepath' 'rtp' list of directories used for runtime files 'runtimepath' 'rtp' list of directories used for runtime files
@ -893,14 +901,16 @@ Short explanation of each option: *option-list*
'switchbuf' 'swb' sets behavior when switching to another buffer 'switchbuf' 'swb' sets behavior when switching to another buffer
'synmaxcol' 'smc' maximum column to find syntax items 'synmaxcol' 'smc' maximum column to find syntax items
'syntax' 'syn' syntax to be loaded for current buffer 'syntax' 'syn' syntax to be loaded for current buffer
'tabstop' 'ts' number of spaces that <Tab> in file uses
'tabline' 'tal' custom format for the console tab pages line 'tabline' 'tal' custom format for the console tab pages line
'tabpagemax' 'tpm' maximum number of tab pages for |-p| and "tab all" 'tabpagemax' 'tpm' maximum number of tab pages for |-p| and "tab all"
'tabstop' 'ts' number of spaces that <Tab> in file uses
'tagbsearch' 'tbs' use binary searching in tags files 'tagbsearch' 'tbs' use binary searching in tags files
'tagcase' 'tc' how to handle case when searching in tags files
'taglength' 'tl' number of significant characters for a tag 'taglength' 'tl' number of significant characters for a tag
'tagrelative' 'tr' file names in tag file are relative 'tagrelative' 'tr' file names in tag file are relative
'tags' 'tag' list of file names used by the tag command 'tags' 'tag' list of file names used by the tag command
'tagstack' 'tgst' push tags onto the tag stack 'tagstack' 'tgst' push tags onto the tag stack
'tcldll' name of the Tcl dynamic library
'term' name of the terminal 'term' name of the terminal
'termbidi' 'tbidi' terminal takes care of bi-directionality 'termbidi' 'tbidi' terminal takes care of bi-directionality
'termencoding' 'tenc' character encoding used by the terminal 'termencoding' 'tenc' character encoding used by the terminal

View File

@ -178,14 +178,14 @@ Hurrah for VIM!! It is "at your fingertips" like vi, and has the extensions
that vi sorely needs: highlighting for executing commands on blocks, an easily that vi sorely needs: highlighting for executing commands on blocks, an easily
navigable and digestible help screen, and more. (Paul Pax) navigable and digestible help screen, and more. (Paul Pax)
The reason WHY I don't have this amazingly useful macro any more, is that I The reason WHY I don't have this amazingly useful macro anymore, is that I
now use VIM - and this is built in!! (Stephen Riehm, Germany) now use VIM - and this is built in!! (Stephen Riehm, Germany)
I am a user of VIM and I love it. I use it to do all my programming, C, I am a user of VIM and I love it. I use it to do all my programming, C,
C++, HTML what ever. (Tim Allwine) C++, HTML what ever. (Tim Allwine)
I discovered VIM after years of struggling with the original vi, and I just I discovered VIM after years of struggling with the original vi, and I just
can't live without it any more. (Emmanuel Mogenet, USA) can't live without it anymore. (Emmanuel Mogenet, USA)
Emacs has not a bit of chance to survive so long as VIM is around. Besides, Emacs has not a bit of chance to survive so long as VIM is around. Besides,
it also has the most detailed software documentation I have ever seen---much it also has the most detailed software documentation I have ever seen---much

View File

@ -1,4 +1,4 @@
*remote.txt* For Vim version 7.4. Last change: 2008 May 24 *remote.txt* For Vim version 7.4. Last change: 2015 Mar 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -36,7 +36,8 @@ The following command line arguments are available:
The remote Vim is raised. If you don't want The remote Vim is raised. If you don't want
this use > this use >
vim --remote-send "<C-\><C-N>:n filename<CR>" vim --remote-send "<C-\><C-N>:n filename<CR>"
< --remote-silent [+{cmd}] {file} ... *--remote-silent* <
--remote-silent [+{cmd}] {file} ... *--remote-silent*
As above, but don't complain if there is no As above, but don't complain if there is no
server and the file is edited locally. server and the file is edited locally.
--remote-wait [+{cmd}] {file} ... *--remote-wait* --remote-wait [+{cmd}] {file} ... *--remote-wait*

View File

@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.4. Last change: 2014 Oct 29 *repeat.txt* For Vim version 7.4. Last change: 2016 Mar 09
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -12,8 +12,9 @@ Chapter 26 of the user manual introduces repeating |usr_26.txt|.
2. Multiple repeats |multi-repeat| 2. Multiple repeats |multi-repeat|
3. Complex repeats |complex-repeat| 3. Complex repeats |complex-repeat|
4. Using Vim scripts |using-scripts| 4. Using Vim scripts |using-scripts|
5. Debugging scripts |debug-scripts| 5. Using Vim packages |packages|
6. Profiling |profiling| 6. Debugging scripts |debug-scripts|
7. Profiling |profiling|
============================================================================== ==============================================================================
1. Single repeats *single-repeat* 1. Single repeats *single-repeat*
@ -109,7 +110,13 @@ To abort this type CTRL-C twice.
q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"} q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"}
(uppercase to append). The 'q' command is disabled (uppercase to append). The 'q' command is disabled
while executing a register, and it doesn't work inside while executing a register, and it doesn't work inside
a mapping and |:normal|. {Vi: no recording} a mapping and |:normal|.
Note: If the register being used for recording is also
used for |y| and |p| the result is most likely not
what is expected, because the put will paste the
recorded macro and the yank will overwrite the
recorded macro. {Vi: no recording}
q Stops recording. (Implementation note: The 'q' that q Stops recording. (Implementation note: The 'q' that
stops recording is not stored in the register, unless stops recording is not stored in the register, unless
@ -175,10 +182,12 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
{not in Vi} {not in Vi}
*:ru* *:runtime* *:ru* *:runtime*
:ru[ntime][!] {file} .. :ru[ntime][!] [where] {file} ..
Read Ex commands from {file} in each directory given Read Ex commands from {file} in each directory given
by 'runtimepath'. There is no error for non-existing by 'runtimepath' and/or 'packpath'. There is no error
files. Example: > for non-existing files.
Example: >
:runtime syntax/c.vim :runtime syntax/c.vim
< There can be multiple {file} arguments, separated by < There can be multiple {file} arguments, separated by
@ -192,6 +201,15 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
When it is not included only the first found file is When it is not included only the first found file is
sourced. sourced.
When [where] is omitted only 'runtimepath' is used.
Other values:
START search under "start" in 'packpath'
OPT search under "opt" in 'packpath'
PACK search under "start" and "opt" in
'packpath'
ALL first use 'runtimepath', then search
under "start" and "opt" in 'packpath'
When {file} contains wildcards it is expanded to all When {file} contains wildcards it is expanded to all
matching files. Example: > matching files. Example: >
:runtime! plugin/*.vim :runtime! plugin/*.vim
@ -206,6 +224,42 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
about each searched file. about each searched file.
{not in Vi} {not in Vi}
*:pa* *:packadd* *E919*
:pa[ckadd][!] {name} Search for an optional plugin directory in 'packpath'
and source any plugin files found. The directory must
match:
pack/*/opt/{name} ~
The directory is added to 'runtimepath' if it wasn't
there yet.
Note that {name} is the directory name, not the name
of the .vim file. If the "{name}/plugin" directory
contains more than one file they are all sourced.
If the filetype detection was not enabled yet (this
is usually done with a "syntax enable" or "filetype
on" command in your .vimrc file), this will also look
for "{name}/ftdetect/*.vim" files.
When the optional ! is added no plugin files or
ftdetect scripts are loaded, only the matching
directories are added to 'runtimepath'. This is
useful in your .vimrc. The plugins will then be
loaded during initialization, see |load-plugins|.
Also see |pack-add|.
:packloadall[!] Load all packages in the "start" directories under
'packpath'. The directories found are added to
'runtimepath'.
This normally done during startup, after loading your
.vimrc file. With this command it can be done
earlier.
Packages will be loaded only once. After this command
it won't happen again. When the optional ! is added
this command will load packages even when done before.
See |packages|.
:scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167* :scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167*
Specify the character encoding used in the script. Specify the character encoding used in the script.
The following lines will be converted from [encoding] The following lines will be converted from [encoding]
@ -235,8 +289,8 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
command is ignored. command is ignored.
{not in Vi} {not in Vi}
*:scrip* *:scriptnames* *:scr* *:scriptnames*
:scrip[tnames] List all sourced script names, in the order they were :scr[iptnames] List all sourced script names, in the order they were
first sourced. The number is used for the script ID first sourced. The number is used for the script ID
|<SID>|. |<SID>|.
{not in Vi} {not available when compiled without the {not in Vi} {not available when compiled without the
@ -382,7 +436,91 @@ Rationale:
< Therefore the unusual leading backslash is used. < Therefore the unusual leading backslash is used.
============================================================================== ==============================================================================
5. Debugging scripts *debug-scripts* 5. Using Vim packages *packages*
A Vim package is a directory that contains one or more plugins. The
advantages over normal plugins:
- A package can be downloaded as an archive and unpacked in its own directory.
Thus the files are not mixed with files of other plugins. That makes it
easy to update and remove.
- A package can be a git, mercurial, etc. repository. That makes it really
easy to update.
- A package can contain multiple plugins that depend on each other.
- A package can contain plugins that are automatically loaded on startup and
ones that are only loaded when needed with `:packadd`.
Using a package and loading automatically ~
Let's assume your Vim files are in the "~/.vim" directory and you want to add a
package from a zip archive "/tmp/foopack.zip":
% mkdir -p ~/.vim/pack/foo
% cd ~/.vim/pack/foo
% unzip /tmp/foopack.zip
The directory name "foo" is arbitrary, you can pick anything you like.
You would now have these files under ~/.vim:
pack/foo/README.txt
pack/foo/start/foobar/plugin/foo.vim
pack/foo/start/foobar/syntax/some.vim
pack/foo/opt/foodebug/plugin/debugger.vim
When Vim starts up, after processing your .vimrc, it scans all directories in
'packpath' for plugins under the "pack/*/start" directory and loads them. The
directory is added to 'runtimepath'.
In the example Vim will find "pack/foo/start/foobar/plugin/foo.vim" and adds
"~/.vim/pack/foo/start/foobar" to 'runtimepath'.
If the "foobar" plugin kicks in and sets the 'filetype' to "some", Vim will
find the syntax/some.vim file, because its directory is in 'runtimepath'.
Vim will also load ftdetect files, if there are any.
Note that the files under "pack/foo/opt" or not loaded automatically, only the
ones under "pack/foo/start". See |pack-add| below for how the "opt" directory
is used.
Loading packages automatically will not happen if loading plugins is disabled,
see |load-plugins|.
To load packages earlier, so that 'runtimepath' gets updated: >
:packloadall
This also works when loading plugins is disabled. The automatic loading will
only happen once.
Using a single plugin and loading it automatically ~
If you don't have a package but a single plugin, you need to create the extra
directory level:
% mkdir -p ~/.vim/pack/foo/start/foobar
% cd ~/.vim/pack/foo/start/foobar
% unzip /tmp/someplugin.zip
You would now have these files:
pack/foo/start/foobar/plugin/foo.vim
pack/foo/start/foobar/syntax/some.vim
From here it works like above.
Optional plugins ~
*pack-add*
To load an optional plugin from a pack use the `:packadd` command: >
:packadd foodebug
This searches for "pack/*/opt/foodebug" in 'packpath' and will find
~/.vim/pack/foo/opt/foodebug/plugin/debugger.vim and source it.
This could be done inside always.vim, if some conditions are met. Or you
could add this command to your |.vimrc|.
It is perfectly normal for a package to only have files in the "opt"
directory. You then need to load each plugin when you want to use it.
==============================================================================
6. Debugging scripts *debug-scripts*
Besides the obvious messages that you can add to your scripts to find out what Besides the obvious messages that you can add to your scripts to find out what
they are doing, Vim offers a debug mode. This allows you to step through a they are doing, Vim offers a debug mode. This allows you to step through a
@ -477,16 +615,44 @@ Additionally, these commands can be used:
finish Finish the current script or user function and come finish Finish the current script or user function and come
back to debug mode for the command after the one that back to debug mode for the command after the one that
sourced or called it. sourced or called it.
*>bt*
*>backtrace*
*>where*
backtrace Show the call stacktrace for current debugging session.
bt
where
*>frame*
frame N Goes to N backtrace level. + and - signs make movement
relative. E.g., ":frame +3" goes three frames up.
*>up*
up Goes one level up from call stacktrace.
*>down*
down Goes one level down from call stacktrace.
About the additional commands in debug mode: About the additional commands in debug mode:
- There is no command-line completion for them, you get the completion for the - There is no command-line completion for them, you get the completion for the
normal Ex commands only. normal Ex commands only.
- You can shorten them, up to a single character: "c", "n", "s" and "f". - You can shorten them, up to a single character, unless more than one command
starts with the same letter. "f" stands for "finish", use "fr" for "frame".
- Hitting <CR> will repeat the previous one. When doing another command, this - Hitting <CR> will repeat the previous one. When doing another command, this
is reset (because it's not clear what you want to repeat). is reset (because it's not clear what you want to repeat).
- When you want to use the Ex command with the same name, prepend a colon: - When you want to use the Ex command with the same name, prepend a colon:
":cont", ":next", ":finish" (or shorter). ":cont", ":next", ":finish" (or shorter).
The backtrace shows the hierarchy of function calls, e.g.:
>bt ~
3 function One[3] ~
2 Two[3] ~
->1 Three[3] ~
0 Four ~
line 1: let four = 4 ~
The "->" points to the current frame. Use "up", "down" and "frame N" to
select another frame.
In the current frame you can evaluate the local function variables. There is
no way to see the command at the current line yet.
DEFINING BREAKPOINTS DEFINING BREAKPOINTS
*:breaka* *:breakadd* *:breaka* *:breakadd*
@ -579,7 +745,7 @@ OBSCURE
user, don't use typeahead for debug commands. user, don't use typeahead for debug commands.
============================================================================== ==============================================================================
6. Profiling *profile* *profiling* 7. Profiling *profile* *profiling*
Profiling means that Vim measures the time that is spent on executing Profiling means that Vim measures the time that is spent on executing
functions and/or scripts. The |+profile| feature is required for this. functions and/or scripts. The |+profile| feature is required for this.
@ -600,6 +766,7 @@ For example, to profile the one_script.vim script file: >
:prof[ile] start {fname} *:prof* *:profile* *E750* :prof[ile] start {fname} *:prof* *:profile* *E750*
Start profiling, write the output in {fname} upon exit. Start profiling, write the output in {fname} upon exit.
"~/" and environment variables in {fname} will be expanded.
If {fname} already exists it will be silently overwritten. If {fname} already exists it will be silently overwritten.
The variable |v:profiling| is set to one. The variable |v:profiling| is set to one.

View File

@ -1,4 +1,4 @@
*spell.txt* For Vim version 7.4. Last change: 2014 Sep 19 *spell.txt* For Vim version 7.4. Last change: 2016 Jan 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1386,6 +1386,14 @@ the item name. Case is always ignored.
The Hunspell feature to use three arguments and flags is not supported. The Hunspell feature to use three arguments and flags is not supported.
*spell-NOCOMPOUNDSUGS*
This item indicates that using compounding to make suggestions is not a good
idea. Use this when compounding is used with very short or one-character
words. E.g. to make numbers out of digits. Without this flag creating
suggestions would spend most time trying all kind of weird compound words.
NOCOMPOUNDSUGS ~
*spell-SYLLABLE* *spell-SYLLABLE*
The SYLLABLE item defines characters or character sequences that are used to The SYLLABLE item defines characters or character sequences that are used to
count the number of syllables in a word. Example: count the number of syllables in a word. Example:

View File

@ -1,4 +1,4 @@
*starting.txt* For Vim version 7.4. Last change: 2014 Jul 09 *starting.txt* For Vim version 7.4. Last change: 2016 Mar 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -12,9 +12,10 @@ Starting Vim *starting*
4. Initialization |initialization| 4. Initialization |initialization|
5. $VIM and $VIMRUNTIME |$VIM| 5. $VIM and $VIMRUNTIME |$VIM|
6. Suspending |suspend| 6. Suspending |suspend|
7. Saving settings |save-settings| 7. Exiting |exiting|
8. Views and Sessions |views-sessions| 8. Saving settings |save-settings|
9. The viminfo file |viminfo-file| 9. Views and Sessions |views-sessions|
10. The viminfo file |viminfo-file|
============================================================================== ==============================================================================
1. Vim arguments *vim-arguments* 1. Vim arguments *vim-arguments*
@ -44,6 +45,7 @@ filename One or more file names. The first one will be the current
vim -- -filename vim -- -filename
< All arguments after the "--" will be interpreted as file names, < All arguments after the "--" will be interpreted as file names,
no other options or "+command" argument can follow. no other options or "+command" argument can follow.
For behavior of quotes on MS-Windows, see |win32-quotes|.
*--* *--*
- This argument can mean two things, depending on whether Ex - This argument can mean two things, depending on whether Ex
@ -413,6 +415,11 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
not needed, because Vim will be able to find out what type not needed, because Vim will be able to find out what type
of terminal you are using. (See |terminal-info|.) {not in Vi} of terminal you are using. (See |terminal-info|.) {not in Vi}
*--not-a-term*
--not-a-term Tells Vim that the user knows that the input and/or output is
not connected to a terminal. This will avoid the warning and
the two second delay that would happen. {not in Vi}
*-d* *-d*
-d Start in diff mode, like |vimdiff|. -d Start in diff mode, like |vimdiff|.
{not in Vi} {not available when compiled without the |+diff| {not in Vi} {not available when compiled without the |+diff|
@ -826,6 +833,8 @@ accordingly. Vim proceeds in this order:
- The user exrc file(s). Same as for the user vimrc file, but with - The user exrc file(s). Same as for the user vimrc file, but with
"vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is "vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is
used, depending on the system. And without the (*)! used, depending on the system. And without the (*)!
- You would usually have "syntax on" and/or "filetype on" commands,
which trigger initializing filetype detection, see |syntax-loading|.
d. If the 'exrc' option is on (which is not the default), the current d. If the 'exrc' option is on (which is not the default), the current
directory is searched for three files. The first that exists is used, directory is searched for three files. The first that exists is used,
@ -856,6 +865,10 @@ accordingly. Vim proceeds in this order:
commands from the command line have not been executed yet. You can commands from the command line have not been executed yet. You can
use "--cmd 'set noloadplugins'" |--cmd|. use "--cmd 'set noloadplugins'" |--cmd|.
Plugin packs are loaded. These are plugins, as above, but found in
'packpath' directories. Every plugin directory found is added in
'runtimepath'. See |packages|.
5. Set 'shellpipe' and 'shellredir' 5. Set 'shellpipe' and 'shellredir'
The 'shellpipe' and 'shellredir' options are set according to the The 'shellpipe' and 'shellredir' options are set according to the
value of the 'shell' option, unless they have been set before. value of the 'shell' option, unless they have been set before.
@ -1133,7 +1146,20 @@ can't paste it in another application (since Vim is going to sleep an attempt
to get the selection would make the program hang). to get the selection would make the program hang).
============================================================================== ==============================================================================
7. Saving settings *save-settings* 7. Exiting *exiting*
There are several ways to exit Vim:
- Close the last window with `:quit`. Only when there are no changes.
- Close the last window with `:quit!`. Also when there are changes.
- Close all windows with `:qall`. Only when there are no changes.
- Close all windows with `:qall!`. Also when there are changes.
- Use `:cquit`. Also when there are changes.
When using `:cquit` or when there was an error message Vim exits with exit
code 1. Errors can be avoided by using `:silent!`.
==============================================================================
8. Saving settings *save-settings*
Mostly you will edit your vimrc files manually. This gives you the greatest Mostly you will edit your vimrc files manually. This gives you the greatest
flexibility. There are a few commands to generate a vimrc file automatically. flexibility. There are a few commands to generate a vimrc file automatically.
@ -1195,7 +1221,7 @@ option, which has several side effects. See |'compatible'|.
'compatible' option to the output file first, because of these side effects. 'compatible' option to the output file first, because of these side effects.
============================================================================== ==============================================================================
8. Views and Sessions *views-sessions* 9. Views and Sessions *views-sessions*
This is introduced in sections |21.4| and |21.5| of the user manual. This is introduced in sections |21.4| and |21.5| of the user manual.
@ -1342,7 +1368,7 @@ To automatically save and restore views for *.c files: >
au BufWinEnter *.c silent loadview au BufWinEnter *.c silent loadview
============================================================================== ==============================================================================
9. The viminfo file *viminfo* *viminfo-file* *E136* 10. The viminfo file *viminfo* *viminfo-file* *E136*
*E575* *E576* *E577* *E575* *E576* *E577*
If you exit Vim and later start it again, you would normally lose a lot of If you exit Vim and later start it again, you would normally lose a lot of
information. The viminfo file can be used to remember that information, which information. The viminfo file can be used to remember that information, which

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.4. Last change: 2014 Nov 19 *syntax.txt* For Vim version 7.4. Last change: 2016 Feb 25
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -211,7 +211,8 @@ thing. These are then linked to a highlight group that specifies the color.
A syntax group name doesn't specify any color or attributes itself. A syntax group name doesn't specify any color or attributes itself.
The name for a highlight or syntax group must consist of ASCII letters, digits The name for a highlight or syntax group must consist of ASCII letters, digits
and the underscore. As a regexp: "[a-zA-Z0-9_]*" and the underscore. As a regexp: "[a-zA-Z0-9_]*". However, Vim does not give
an error when using other characters.
To be able to allow each user to pick his favorite set of colors, there must To be able to allow each user to pick his favorite set of colors, there must
be preferred names for highlight groups that are common for many languages. be preferred names for highlight groups that are common for many languages.
@ -421,18 +422,19 @@ and last line to be converted. Example, using the last set Visual area: >
*:TOhtml* *:TOhtml*
:[range]TOhtml The ":TOhtml" command is defined in a standard plugin. :[range]TOhtml The ":TOhtml" command is defined in a standard plugin.
This command will source |2html.vim| for you. When a This command will source |2html.vim| for you. When a
range is given, set |g:html_start_line| and range is given, this command sets |g:html_start_line|
|g:html_end_line| to the start and end of the range, and |g:html_end_line| to the start and end of the
respectively. Default range is the entire buffer. range, respectively. Default range is the entire
buffer.
If the current window is part of a |diff|, unless If the current window is part of a |diff|, unless
|g:html_diff_one_file| is set, :TOhtml will convert |g:html_diff_one_file| is set, :TOhtml will convert
all windows which are part of the diff in the current all windows which are part of the diff in the current
tab and place them side-by-side in a <table> element tab and place them side-by-side in a <table> element
in the generated HTML. With |g:html_line_ids| you can in the generated HTML. With |g:html_line_ids| you can
jump to lines in specific windows with (for example) jump to lines in specific windows with (for example)
#W1L42 for line 42 in the first diffed window, or #W1L42 for line 42 in the first diffed window, or
#W3L87 for line 87 in the third. #W3L87 for line 87 in the third.
Examples: > Examples: >
@ -746,6 +748,22 @@ and UTF-32 instead, use: >
Note that documents encoded in either UTF-32 or UTF-16 have known Note that documents encoded in either UTF-32 or UTF-16 have known
compatibility problems with some major browsers. compatibility problems with some major browsers.
*g:html_font*
Default: "monospace"
You can specify the font or fonts used in the converted document using
g:html_font. If this option is set to a string, then the value will be
surrounded with single quotes. If this option is set to a list then each list
item is surrounded by single quotes and the list is joined with commas. Either
way, "monospace" is added as the fallback generic family name and the entire
result used as the font family (using CSS) or font face (if not using CSS).
Examples: >
" font-family: 'Consolas', monospace;
:let g:html_font = "Consolas"
" font-family: 'DejaVu Sans Mono', 'Consolas', monospace;
:let g:html_font = ["DejaVu Sans Mono", "Consolas"]
<
*convert-to-XML* *convert-to-XHTML* *g:html_use_xhtml* *convert-to-XML* *convert-to-XHTML* *g:html_use_xhtml*
Default: 0. Default: 0.
When 0, generate standard HTML 4.01 (strict when possible). When 0, generate standard HTML 4.01 (strict when possible).
@ -1063,7 +1081,8 @@ CPP *cpp.vim* *ft-cpp-syntax*
Most of things are same as |ft-c-syntax|. Most of things are same as |ft-c-syntax|.
Variable Highlight ~ Variable Highlight ~
cpp_no_c11 don't highlight C++11 standard items cpp_no_cpp11 don't highlight C++11 standard items
cpp_no_cpp14 don't highlight C++14 standard items
CSH *csh.vim* *ft-csh-syntax* CSH *csh.vim* *ft-csh-syntax*
@ -1128,6 +1147,16 @@ to standard by placing this in your vimrc file: >
:let enforce_freedesktop_standard = 1 :let enforce_freedesktop_standard = 1
DIFF *diff.vim*
The diff highlighting normally finds translated headers. This can be slow if
there are very long lines in the file. To disable translations: >
:let diff_translations = 0
Also see |diff-slow|.
DIRCOLORS *dircolors.vim* *ft-dircolors-syntax* DIRCOLORS *dircolors.vim* *ft-dircolors-syntax*
The dircolors utility highlighting definition has one option. It exists to The dircolors utility highlighting definition has one option. It exists to
@ -1409,34 +1438,27 @@ form, then >
:let fortran_fixed_source=1 :let fortran_fixed_source=1
in your .vimrc prior to the :syntax on command. in your .vimrc prior to the :syntax on command.
If the form of the source code depends upon the file extension, then it is If the form of the source code depends, in a non-standard way, upon the file
most convenient to set fortran_free_source in a ftplugin file. For more extension, then it is most convenient to set fortran_free_source in a ftplugin
information on ftplugin files, see |ftplugin|. For example, if all your file. For more information on ftplugin files, see |ftplugin|. Note that this
fortran files with an .f90 extension are written in free source form and the will work only if the "filetype plugin indent on" command precedes the "syntax
rest in fixed source form, add the following code to your ftplugin file > on" command in your .vimrc file.
let s:extfname = expand("%:e")
if s:extfname ==? "f90"
let fortran_free_source=1
unlet! fortran_fixed_source
else
let fortran_fixed_source=1
unlet! fortran_free_source
endif
Note that this will work only if the "filetype plugin indent on" command
precedes the "syntax on" command in your .vimrc file.
When you edit an existing fortran file, the syntax script will assume free When you edit an existing fortran file, the syntax script will assume free
source form if the fortran_free_source variable has been set, and assumes source form if the fortran_free_source variable has been set, and assumes
fixed source form if the fortran_fixed_source variable has been set. If fixed source form if the fortran_fixed_source variable has been set. If
neither of these variables have been set, the syntax script attempts to neither of these variables have been set, the syntax script attempts to
determine which source form has been used by examining the first five columns determine which source form has been used by examining the file extension
of the first 250 lines of your file. If no signs of free source form are using conventions common to the ifort, gfortran, Cray, NAG, and PathScale
detected, then the file is assumed to be in fixed source form. The algorithm compilers (.f, .for, .f77 for fixed-source, .f90, .f95, .f03, .f08 for
should work in the vast majority of cases. In some cases, such as a file that free-source). If none of this works, then the script examines the first five
begins with 250 or more full-line comments, the script may incorrectly decide columns of the first 500 lines of your file. If no signs of free source form
that the fortran code is in fixed form. If that happens, just add a are detected, then the file is assumed to be in fixed source form. The
non-comment statement beginning anywhere in the first five columns of the algorithm should work in the vast majority of cases. In some cases, such as a
first twenty five lines, save (:w) and then reload (:e!) the file. file that begins with 500 or more full-line comments, the script may
incorrectly decide that the fortran code is in fixed form. If that happens,
just add a non-comment statement beginning anywhere in the first five columns
of the first twenty five lines, save (:w) and then reload (:e!) the file.
Tabs in fortran files ~ Tabs in fortran files ~
Tabs are not recognized by the Fortran standards. Tabs are not a good idea in Tabs are not recognized by the Fortran standards. Tabs are not a good idea in
@ -2868,7 +2890,7 @@ You may wish to embed languages into sh. I'll give an example courtesy of
Lorance Stinson on how to do this with awk as an example. Put the following Lorance Stinson on how to do this with awk as an example. Put the following
file into $HOME/.vim/after/syntax/sh/awkembed.vim: > file into $HOME/.vim/after/syntax/sh/awkembed.vim: >
" AWK Embedding: {{{1 " AWK Embedding:
" ============== " ==============
" Shamelessly ripped from aspperl.vim by Aaron Hope. " Shamelessly ripped from aspperl.vim by Aaron Hope.
if exists("b:current_syntax") if exists("b:current_syntax")
@ -3220,7 +3242,8 @@ improve screen updating rates (see |:syn-sync| for more on this). >
The g:vimsyn_embed option allows users to select what, if any, types of The g:vimsyn_embed option allows users to select what, if any, types of
embedded script highlighting they wish to have. > embedded script highlighting they wish to have. >
g:vimsyn_embed == 0 : don't embed any scripts g:vimsyn_embed == 0 : don't support any embedded scripts
g:vimsyn_embed =~ 'l' : support embedded lua
g:vimsyn_embed =~ 'm' : support embedded mzscheme g:vimsyn_embed =~ 'm' : support embedded mzscheme
g:vimsyn_embed =~ 'p' : support embedded perl g:vimsyn_embed =~ 'p' : support embedded perl
g:vimsyn_embed =~ 'P' : support embedded python g:vimsyn_embed =~ 'P' : support embedded python
@ -3238,6 +3261,7 @@ Some folding is now supported with syntax/vim.vim: >
g:vimsyn_folding == 0 or doesn't exist: no syntax-based folding g:vimsyn_folding == 0 or doesn't exist: no syntax-based folding
g:vimsyn_folding =~ 'a' : augroups g:vimsyn_folding =~ 'a' : augroups
g:vimsyn_folding =~ 'f' : fold functions g:vimsyn_folding =~ 'f' : fold functions
g:vimsyn_folding =~ 'l' : fold lua script
g:vimsyn_folding =~ 'm' : fold mzscheme script g:vimsyn_folding =~ 'm' : fold mzscheme script
g:vimsyn_folding =~ 'p' : fold perl script g:vimsyn_folding =~ 'p' : fold perl script
g:vimsyn_folding =~ 'P' : fold python script g:vimsyn_folding =~ 'P' : fold python script
@ -3311,6 +3335,39 @@ must not click outside of the pixel strings, but feel free to improve it.
It will look much better with a font in a quadratic cell size, e.g. for X: > It will look much better with a font in a quadratic cell size, e.g. for X: >
:set guifont=-*-clean-medium-r-*-*-8-*-*-*-*-80-* :set guifont=-*-clean-medium-r-*-*-8-*-*-*-*-80-*
YAML *yaml.vim* *ft-yaml-syntax*
*g:yaml_schema* *b:yaml_schema*
A YAML schema is a combination of a set of tags and a mechanism for resolving
non-specific tags. For user this means that YAML parser may, depending on
plain scalar contents, treat plain scalar (which can actually be only string
and nothing else) as a value of the other type: null, boolean, floating-point,
integer. `g:yaml_schema` option determines according to which schema values
will be highlighted specially. Supported schemas are
Schema Description ~
failsafe No additional highlighting.
json Supports JSON-style numbers, booleans and null.
core Supports more number, boolean and null styles.
pyyaml In addition to core schema supports highlighting timestamps,
but there are some differences in what is recognized as
numbers and many additional boolean values not present in core
schema.
Default schema is `core`.
Note that schemas are not actually limited to plain scalars, but this is the
only difference between schemas defined in YAML specification and the only
difference defined in the syntax file.
ZSH *zsh.vim* *ft-zsh-syntax*
The syntax script for zsh allows for syntax-based folding: >
:let g:zsh_fold_enable = 1
============================================================================== ==============================================================================
5. Defining a syntax *:syn-define* *E410* 5. Defining a syntax *:syn-define* *E410*
@ -3388,6 +3445,32 @@ SPELL CHECKING *:syn-spell*
To activate spell checking the 'spell' option must be set. To activate spell checking the 'spell' option must be set.
SYNTAX ISKEYWORD SETTING *:syn-iskeyword*
:sy[ntax] iskeyword [clear | {option}]
This defines the keyword characters. It's like the 'iskeyword' option
for but only applies to syntax highlighting.
clear: Syntax specific iskeyword setting is disabled and the
buffer-local 'iskeyword' setting is used.
{option} Set the syntax 'iskeyword' option to a new value.
Example: >
:syntax iskeyword @,48-57,192-255,$,_
<
This would set the syntax specific iskeyword option to include all
alphabetic characters, plus the numeric characters, all accented
characters and also includes the "_" and the "$".
If no argument is given, the current value will be output.
Setting this option influences what |/\k| matches in syntax patterns
and also determines where |:syn-keyword| will be checked for a new
match.
It is recommended when writing syntax files, to use this command
to the correct value for the specific syntax language and not change
the 'iskeyword' option.
DEFINING KEYWORDS *:syn-keyword* DEFINING KEYWORDS *:syn-keyword*
@ -3408,7 +3491,7 @@ DEFINING KEYWORDS *:syn-keyword*
:syntax keyword Type contained int long char :syntax keyword Type contained int long char
:syntax keyword Type int long contained char :syntax keyword Type int long contained char
:syntax keyword Type int long char contained :syntax keyword Type int long char contained
< *E789* < *E789* *E890*
When you have a keyword with an optional tail, like Ex commands in When you have a keyword with an optional tail, like Ex commands in
Vim, you can put the optional characters inside [], to define all the Vim, you can put the optional characters inside [], to define all the
variations at once: > variations at once: >
@ -3419,6 +3502,7 @@ DEFINING KEYWORDS *:syn-keyword*
isn't, the keyword will never be recognized. isn't, the keyword will never be recognized.
Multi-byte characters can also be used. These do not have to be in Multi-byte characters can also be used. These do not have to be in
'iskeyword'. 'iskeyword'.
See |:syn-iskeyword| for defining syntax specific iskeyword settings.
A keyword always has higher priority than a match or region, the A keyword always has higher priority than a match or region, the
keyword is used if more than one item matches. Keywords do not nest keyword is used if more than one item matches. Keywords do not nest
@ -3662,6 +3746,7 @@ Whether or not it is actually concealed depends on the value of the
'conceallevel' option. The 'concealcursor' option is used to decide whether 'conceallevel' option. The 'concealcursor' option is used to decide whether
concealable items in the current line are displayed unconcealed to be able to concealable items in the current line are displayed unconcealed to be able to
edit the line. edit the line.
Another way to conceal text with with |matchadd()|.
concealends *:syn-concealends* concealends *:syn-concealends*
@ -4108,7 +4193,7 @@ example, for instance, can be done like this: >
As can be seen here, the \z actually does double duty. In the start pattern, As can be seen here, the \z actually does double duty. In the start pattern,
it marks the "\(\I\i*\)" sub-expression as external; in the end pattern, it it marks the "\(\I\i*\)" sub-expression as external; in the end pattern, it
changes the \1 back-reference into an external reference referring to the changes the \z1 back-reference into an external reference referring to the
first external sub-expression in the start pattern. External references can first external sub-expression in the start pattern. External references can
also be used in skip patterns: > also be used in skip patterns: >
:syn region foo start="start \(\I\i*\)" skip="not end \z1" end="end \z1" :syn region foo start="start \(\I\i*\)" skip="not end \z1" end="end \z1"
@ -4243,7 +4328,7 @@ If the "maxlines={N}" argument is given, the number of lines that are searched
for a comment or syncing pattern is restricted to N lines backwards (after for a comment or syncing pattern is restricted to N lines backwards (after
adding "minlines"). This is useful if you have few things to sync on and a adding "minlines"). This is useful if you have few things to sync on and a
slow machine. Example: > slow machine. Example: >
:syntax sync ccomment maxlines=500 :syntax sync maxlines=500 ccomment
< <
*:syn-sync-linebreaks* *:syn-sync-linebreaks*
When using a pattern that matches multiple lines, a change in one line may When using a pattern that matches multiple lines, a change in one line may
@ -4637,6 +4722,8 @@ ctermbg={color-nr} *highlight-ctermbg*
Note that for some color terminals these names may result in the wrong Note that for some color terminals these names may result in the wrong
colors! colors!
You can also use "NONE" to remove the color.
*:hi-normal-cterm* *:hi-normal-cterm*
When setting the "ctermfg" or "ctermbg" colors for the Normal group, When setting the "ctermfg" or "ctermbg" colors for the Normal group,
these will become the colors used for the non-highlighted text. these will become the colors used for the non-highlighted text.

View File

@ -1,4 +1,4 @@
*tabpage.txt* For Vim version 7.4. Last change: 2014 Nov 27 *tabpage.txt* For Vim version 7.4. Last change: 2015 Jan 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -202,30 +202,38 @@ REORDERING TAB PAGES:
Move the current tab page to after tab page N. Use zero to Move the current tab page to after tab page N. Use zero to
make the current tab page the first one. Without N the tab make the current tab page the first one. Without N the tab
page is made the last one. > page is made the last one. >
:.tabmove " do nothing
:-tabmove " move the tab page to the left :-tabmove " move the tab page to the left
:tabmove " move the tab page to the right :+tabmove " move the tab page to the right
:.tabmove " as above :0tabmove " move the tab page to the beginning of the tab
:+tabmove " as above
:0tabmove " move the tab page to the begining of the tab
" list " list
:$tabmove " move the tab page to the end of the tab list :tabmove 0 " as above
< :tabmove " move the tab page to the last
:$tabmove " as above
:tabmove $ " as above
:tabm[ove] +[N] :tabm[ove] +[N]
:tabm[ove] -[N] :tabm[ove] -[N]
Move the current tab page N places to the right (with +) or to Move the current tab page N places to the right (with +) or to
the left (with -). the left (with -). >
:tabmove - " move the tab page to the left
:tabmove -1 " as above
:tabmove + " move the tab page to the right
:tabmove +1 " as above
Note that although it is possible to move a tab behind the N-th one by using Note that although it is possible to move a tab behind the N-th one by using
:Ntabmove, it is impossible to move it by N places by using :+Ntabmove. For :Ntabmove. And move it by N places by using :+Ntabmove. For clarification what
clarification what +N means in this context see |[range]|. +N means in this context see |[range]|.
LOOPING OVER TAB PAGES: LOOPING OVER TAB PAGES:
*:tabd* *:tabdo* *:tabd* *:tabdo*
:tabd[o] {cmd} Execute {cmd} in each tab page. :[range]tabd[o] {cmd}
It works like doing this: > Execute {cmd} in each tab page or if [range] is given only in
tab pages which tab page number is in the [range]. It works
like doing this: >
:tabfirst :tabfirst
:{cmd} :{cmd}
:tabnext :tabnext
@ -240,7 +248,8 @@ LOOPING OVER TAB PAGES:
{cmd} must not open or close tab pages or reorder them. {cmd} must not open or close tab pages or reorder them.
{not in Vi} {not available when compiled without the {not in Vi} {not available when compiled without the
|+listcmds| feature} |+listcmds| feature}
Also see |:windo|, |:argdo| and |:bufdo|. Also see |:windo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo|
and |:lfdo|
============================================================================== ==============================================================================
3. Other items *tab-page-other* 3. Other items *tab-page-other*
@ -271,8 +280,8 @@ window on the same buffer and then edit another buffer. Thus ":tabnew"
triggers: triggers:
WinLeave leave current window WinLeave leave current window
TabLeave leave current tab page TabLeave leave current tab page
TabEnter enter new tab page
WinEnter enter window in new tab page WinEnter enter window in new tab page
TabEnter enter new tab page
BufLeave leave current buffer BufLeave leave current buffer
BufEnter enter new empty buffer BufEnter enter new empty buffer

File diff suppressed because it is too large Load Diff

View File

@ -85,11 +85,13 @@ changed, to avoid confusion when using ":tnext". It is changed when using
":tag {ident}". ":tag {ident}".
The ignore-case matches are not found for a ":tag" command when the The ignore-case matches are not found for a ":tag" command when the
'ignorecase' option is off. They are found when a pattern is used (starting 'ignorecase' option is off and 'tagcase' is "followic" or when 'tagcase' is
with a "/") and for ":tselect", also when 'ignorecase' is off. Note that "match". They are found when a pattern is used (starting with a "/") and for
using ignore-case tag searching disables binary searching in the tags file, ":tselect", also when 'ignorecase' is off and 'tagcase' is "followic" or when
which causes a slowdown. This can be avoided by fold-case sorting the tag 'tagcase' is "match". Note that using ignore-case tag searching disables
file. See the 'tagbsearch' option for an explanation. binary searching in the tags file, which causes a slowdown. This can be
avoided by fold-case sorting the tag file. See the 'tagbsearch' option for an
explanation.
============================================================================== ==============================================================================
2. Tag stack *tag-stack* *tagstack* *E425* 2. Tag stack *tag-stack* *tagstack* *E425*
@ -440,12 +442,13 @@ file "tags". It can also be used to access a common tags file.
The next file in the list is not used when: The next file in the list is not used when:
- A matching static tag for the current buffer has been found. - A matching static tag for the current buffer has been found.
- A matching global tag has been found. - A matching global tag has been found.
This also depends on the 'ignorecase' option. If it is off, and the tags file This also depends on whether case is ignored. Case is ignored when
only has a match without matching case, the next tags file is searched for a 'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
match with matching case. If no tag with matching case is found, the first "ignore". If case is not ignored, and the tags file only has a match without
match without matching case is used. If 'ignorecase' is on, and a matching matching case, the next tags file is searched for a match with matching case.
global tag with or without matching case is found, this one is used, no If no tag with matching case is found, the first match without matching case
further tags files are searched. is used. If case is ignored, and a matching global tag with or without
matching case is found, this one is used, no further tags files are searched.
When a tag file name starts with "./", the '.' is replaced with the path of When a tag file name starts with "./", the '.' is replaced with the path of
the current file. This makes it possible to use a tags file in the directory the current file. This makes it possible to use a tags file in the directory
@ -579,8 +582,10 @@ that indicates if the file was sorted. When this line is found, Vim uses
binary searching for the tags file: binary searching for the tags file:
!_TAG_FILE_SORTED<Tab>1<Tab>{anything} ~ !_TAG_FILE_SORTED<Tab>1<Tab>{anything} ~
A tag file may be case-fold sorted to avoid a linear search when 'ignorecase' A tag file may be case-fold sorted to avoid a linear search when case is
is on. See 'tagbsearch' for details. The value '2' should be used then: ignored. (Case is ignored when 'ignorecase' is set and 'tagcase' is
"followic", or when 'tagcase' is "ignore".) See 'tagbsearch' for details.
The value '2' should be used then:
!_TAG_FILE_SORTED<Tab>2<Tab>{anything} ~ !_TAG_FILE_SORTED<Tab>2<Tab>{anything} ~
The other tag that Vim recognizes, but only when compiled with the The other tag that Vim recognizes, but only when compiled with the

View File

@ -1,4 +1,4 @@
*term.txt* For Vim version 7.4. Last change: 2014 May 13 *term.txt* For Vim version 7.4. Last change: 2015 Nov 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -224,10 +224,11 @@ The options are listed below. The associated termcap code is always equal to
the last two characters of the option name. Only one termcap code is the last two characters of the option name. Only one termcap code is
required: Cursor motion, 't_cm'. required: Cursor motion, 't_cm'.
The options 't_da', 't_db', 't_ms', 't_xs' represent flags in the termcap. The options 't_da', 't_db', 't_ms', 't_xs', 't_xn' represent flags in the
When the termcap flag is present, the option will be set to "y". But any termcap. When the termcap flag is present, the option will be set to "y".
non-empty string means that the flag is set. An empty string means that the But any non-empty string means that the flag is set. An empty string means
flag is not set. 't_CS' works like this too, but it isn't a termcap flag. that the flag is not set. 't_CS' works like this too, but it isn't a termcap
flag.
OUTPUT CODES OUTPUT CODES
option meaning ~ option meaning ~
@ -281,6 +282,9 @@ OUTPUT CODES
t_vs cursor very visible *t_vs* *'t_vs'* t_vs cursor very visible *t_vs* *'t_vs'*
*t_xs* *'t_xs'* *t_xs* *'t_xs'*
t_xs if non-empty, standout not erased by overwriting (hpterm) t_xs if non-empty, standout not erased by overwriting (hpterm)
*t_xn* *'t_xn'*
t_xn if non-empty, writing a character at the last screen cell
does not cause scrolling
t_ZH italics mode *t_ZH* *'t_ZH'* t_ZH italics mode *t_ZH* *'t_ZH'*
t_ZR italics end *t_ZR* *'t_ZR'* t_ZR italics end *t_ZR* *'t_ZR'*
@ -290,12 +294,15 @@ Added by Vim (there are no standard codes for these):
t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'* t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
t_WS set window size (height, width) in characters *t_WS* *'t_WS'* t_WS set window size (height, width) in characters *t_WS* *'t_WS'*
t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'* t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
t_EI end insert mode (block cursor shape) *t_EI* *'t_EI'* 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'*
|termcap-cursor-shape| |termcap-cursor-shape|
t_RV request terminal version string (for xterm) *t_RV* *'t_RV'* t_RV request terminal version string (for xterm) *t_RV* *'t_RV'*
|xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes| |xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes|
t_u7 request cursor position (for xterm) *t_u7* *'t_u7'* t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
see |'ambiwidth'| see |'ambiwidth'|
t_RB request terminal background color *t_RB* *'t_RB'*
see |'ambiwidth'|
KEY CODES KEY CODES
Note: Use the <> form if possible Note: Use the <> form if possible
@ -410,7 +417,7 @@ adjust the various t_ codes. This avoids the problem that the xterm can
produce different codes, depending on the mode it is in (8-bit, VT102, produce different codes, depending on the mode it is in (8-bit, VT102,
VT220, etc.). The result is that codes like <xF1> are no longer needed. VT220, etc.). The result is that codes like <xF1> are no longer needed.
Note: This is only done on startup. If the xterm options are changed after Note: This is only done on startup. If the xterm options are changed after
Vim has started, the escape sequences may not be recognized any more. Vim has started, the escape sequences may not be recognized anymore.
*xterm-resize* *xterm-resize*
Window resizing with xterm only works if the allowWindowOps resource is Window resizing with xterm only works if the allowWindowOps resource is
@ -434,13 +441,16 @@ If one of these is not available, 't_Sb' and 't_Sf' are used. 't_me' is used
to reset to the default colors. to reset to the default colors.
*termcap-cursor-shape* *termcap-cursor-color* *termcap-cursor-shape* *termcap-cursor-color*
When Vim enters Insert mode the 't_SI' escape sequence is sent. When leaving When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim
Insert mode 't_EI' is used. But only if both are defined. This can be used enters Replace mode the 't_SR' escape sequence is sent if it is set, otherwise
to change the shape or color of the cursor in Insert mode. These are not 't_SI' is sent. When leaving Insert mode or Replace mode 't_EI' is used. This
standard termcap/terminfo entries, you need to set them yourself. can be used to change the shape or color of the cursor in Insert or Replace
mode. These are not standard termcap/terminfo entries, you need to set them
yourself.
Example for an xterm, this changes the color of the cursor: > Example for an xterm, this changes the color of the cursor: >
if &term =~ "xterm" if &term =~ "xterm"
let &t_SI = "\<Esc>]12;purple\x7" let &t_SI = "\<Esc>]12;purple\x7"
let &t_SR = "\<Esc>]12;red\x7"
let &t_EI = "\<Esc>]12;blue\x7" let &t_EI = "\<Esc>]12;blue\x7"
endif endif
NOTE: When Vim exits the shape for Normal mode will remain. The shape from NOTE: When Vim exits the shape for Normal mode will remain. The shape from
@ -842,7 +852,7 @@ Mouse clicks can be mapped. The codes for mouse clicks are:
The X1 and X2 buttons refer to the extra buttons found on some mice. The The X1 and X2 buttons refer to the extra buttons found on some mice. The
'Microsoft Explorer' mouse has these buttons available to the right thumb. 'Microsoft Explorer' mouse has these buttons available to the right thumb.
Currently X1 and X2 only work on Win32 environments. Currently X1 and X2 only work on Win32 and X11 environments.
Examples: > Examples: >
:noremap <MiddleMouse> <LeftMouse><MiddleMouse> :noremap <MiddleMouse> <LeftMouse><MiddleMouse>

File diff suppressed because it is too large Load Diff

View File

@ -194,7 +194,7 @@ child, you should have the intention to do this for at least one year.
How do you know that the money will be spent right? First of all you have my How do you know that the money will be spent right? First of all you have my
personal guarantee as the author of Vim. I trust the people that are working personal guarantee as the author of Vim. I trust the people that are working
at the centre, I know them personally. Further more, the centre has been at the centre, I know them personally. Furthermore, the centre has been
co-sponsored and inspected by World Vision, Save the Children Fund and is now co-sponsored and inspected by World Vision, Save the Children Fund and is now
under the supervision of Pacific Academy Outreach Society. The centre is under the supervision of Pacific Academy Outreach Society. The centre is
visited about once a year to check the progress (at our own cost). I have visited about once a year to check the progress (at our own cost). I have

View File

@ -1,4 +1,4 @@
*usr_02.txt* For Vim version 7.4. Last change: 2010 Jul 20 *usr_02.txt* For Vim version 7.4. Last change: 2016 Jan 16
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -408,7 +408,15 @@ original version of the file.
Everything you always wanted to know can be found in the Vim help files. Everything you always wanted to know can be found in the Vim help files.
Don't be afraid to ask! Don't be afraid to ask!
To get generic help use this command: >
If you know what you are looking for, it is usually easier to search for it
using the help system, instead of using Google. Because the subjects follow
a certain style guide.
Also the help has the advantage of belonging to your particular Vim version.
You won't see help for commands added later. These would not work for you.
To get generic help use this command: >
:help :help
@ -482,7 +490,7 @@ example, use the following command: >
:help 'number' :help 'number'
The table with all mode prefixes can be found here: |help-context|. The table with all mode prefixes can be found below: |help-summary|.
Special keys are enclosed in angle brackets. To find help on the up-arrow key Special keys are enclosed in angle brackets. To find help on the up-arrow key
in Insert mode, for instance, use this command: > in Insert mode, for instance, use this command: >
@ -499,62 +507,191 @@ You can use the error ID at the start to find help about it: >
Summary: *help-summary* > Summary: *help-summary* >
:help
< Gives you very general help. Scroll down to see a list of all 1) Use Ctrl-D after typing a topic and let Vim show all available topics.
helpfiles, including those added locally (i.e. not distributed Or press Tab to complete: >
with Vim). > :help some<Tab>
:help user-toc.txt < More information on how to use the help: >
< Table of contents of the User Manual. > :help helphelp
:help :subject
< Ex-command "subject", for instance the following: > 2) Follow the links in bars to related help. You can go from the detailed
:help :help help to the user documentation, which describes certain commands more from
< Help on getting help. > a user perspective and less detailed. E.g. after: >
:help abc :help pattern.txt
< normal-mode command "abc". > < You can see the user guide topics |03.9| and |usr_27.txt| in the
:help CTRL-B introduction.
< Control key <C-B> in Normal mode. >
:help i_abc 3) Options are enclosed in single apostrophes. To go to the help topic for the
:help i_CTRL-B list option: >
< The same in Insert mode. > :help 'list'
:help v_abc < If you only know you are looking for a certain option, you can also do: >
:help v_CTRL-B :help options.txt
< The same in Visual mode. > < to open the help page which describes all option handling and then search
:help c_abc using regular expressions, e.g. textwidth.
:help c_CTRL-B Certain options have their own namespace, e.g.: >
< The same in Command-line mode. > :help cpo-<letter>
:help 'subject' < for the corresponding flag of the 'cpoptions' settings, substitute <letter>
< Option 'subject'. > by a specific flag, e.g.: >
:help subject() :help cpo-;
< Function "subject". > < And for the guioption flags: >
:help -subject :help go-<letter>
< Command-line option "-subject". >
:help +subject 4) Normal mode commands do not have a prefix. To go to the help page for the
< Compile-time feature "+subject". > "gt" command: >
:help EventName :help gt
< Autocommand event "EventName". >
:help digraphs.txt 5) Insert mode commands start with i_. Help for deleting a word: >
< The top of the helpfile "digraph.txt". :help i_CTRL-W
Similarly for any other helpfile. >
:help pattern<Tab> 6) Visual mode commands start with v_. Help for jumping to the other side of
< Find a help tag starting with "pattern". Repeat <Tab> for the Visual area: >
others. > :help v_o
:help pattern<Ctrl-D>
< See all possible help tag matches "pattern" at once. > 7) Command line editing and arguments start with c_. Help for using the
:helpgrep pattern command argument %: >
< Search the whole text of all help files for pattern "pattern". :help c_%
Jumps to the first match. Jump to other matches with: >
:cn 8) Ex-commands always start with ":", so to go to the :s command help: >
< next match > :help :s
:cprev
:cN 9) Commands specifically for debugging start with ">". To go to to the help
< previous match > for the "cont" debug command: >
:cfirst :help >cont
:clast
< first or last match > 10) Key combinations. They usually start with a single letter indicating
:copen the mode for which they can be used. E.g.: >
:cclose :help i_CTRL-X
< open/close the quickfix window; press <Enter> to jump < takes you to the family of Ctrl-X commands for insert mode which can be
to the item under the cursor used to auto complete different things. Note, that certain keys will
always be written the same, e.g. Control will always be CTRL.
For normal mode commands there is no prefix and the topic is available at
:h CTRL-<Letter>. E.g. >
:help CTRL-W
< In contrast >
:help c_CTRL-R
< will describe what the Ctrl-R does when entering commands in the Command
line and >
:help v_Ctrl-A
< talks about incrementing numbers in visual mode and >
:help g_CTRL-A
< talks about the g<C-A> command (e.g. you have to press "g" then <Ctrl-A>).
Here the "g" stand for the normal command "g" which always expects a second
key before doing something similar to the commands starting with "z"
11) Regexp items always start with /. So to get help for the "\+" quantifier
in Vim regexes: >
:help /\+
< If you need to know everything about regular expressions, start reading
at: >
:help pattern.txt
12) Registers always start with "quote". To find out about the special ":"
register: >
:help quote:
13) Vim Script (VimL) is available at >
:help eval.txt
< Certain aspects of the language are available at :h expr-X where "X" is a
single letter. E.g. >
:help expr-!
< will take you to the topic describing the "!" (Not) operator for
VimScript.
Also important is >
:help function-list
< to find a short description of all functions available. Help topics for
VimL functions always include the "()", so: >
:help append()
< talks about the append VimL function rather than how to append text in the
current buffer.
14) Mappings are talked about in the help page :h |map.txt|. Use >
:help mapmode-i
< to find out about the |:imap| command. Also use :map-topic
to find out about certain subtopics particular for mappings. e.g: >
:help :map-local
< for buffer-local mappings or >
:help map-bar
< for how the '|' is handled in mappings.
15) Command definitions are talked about :h command-topic, so use >
:help command-bar
< to find out about the '!' argument for custom commands.
16) Window management commands always start with CTRL-W, so you find the
corresponding help at :h CTRL-W_letter. E.g. >
:help CTRL-W_p
< for moving the previous accessed window. You can also access >
:help windows.txt
< and read your way through if you are looking for window handling
commands.
17) Use |:helpgrep| to search in all help pages (and also of any installed
plugins). See |:helpgrep| for how to use it.
To search for a topic: >
:helpgrep topic
< This takes you to the first match. To go to the next one: >
:cnext
< All matches are available in the quickfix window which can be opened
with: >
:copen
< Move around to the match you like and press Enter to jump to that help.
18) The user manual. This describes help topics for beginners in a rather
friendly way. Start at |usr_toc.txt| to find the table of content (as you
might have guessed): >
:help usr_toc.txt
< Skim over the contents to find interesting topics. The "Digraphs" and
"Entering special characters" items are in chapter 24, so to go to that
particular help page: >
:help usr_24.txt
< Also if you want to access a certain chapter in the help, the chapter
number can be accessed directly like this: >
:help 10.1
< goes to chapter 10.1 in |usr_10.txt| and talks about recording macros.
19) Highlighting groups. Always start with hl-groupname. E.g. >
:help hl-WarningMsg
< talks about the WarningMsg highlighting group.
20) Syntax highlighting is namespaced to :syn-topic e.g. >
:help :syn-conceal
< talks about the conceal argument for the :syn command.
21) Quickfix commands usually start with :c while location list commands
usually start with :l
22) Autocommand events can be found by their name: >
:help BufWinLeave
< To see all possible events: >
:help autocommands-events
23) Command-line switches always start with "-". So for the help of the -f
command switch of Vim use: >
:help -f
24) Optional features always start with "+". To find out about the
conceal feature use: >
:help +conceal
25) Documentation for included filetype specific functionality is usually
available in the form ft-<filetype>-<functionality>. So >
:help ft-c-syntax
< talks about the C syntax file and the option it provides. Sometimes,
additional sections for omni completion >
:help ft-php-omni
< or filetype plugins >
:help ft-tex-plugin
< are available.
26) Error and Warning codes can be looked up directly in the help. So >
:help E297
< takes you exactly to the description of the swap error message and >
:help W10
< talks about the warning "Changing a readonly file".
Sometimes however, those error codes are not described, but rather are
listed at the Vim command that usually causes this. So: >
:help E128
< takes you to the |:function| command
============================================================================== ==============================================================================

View File

@ -1,4 +1,4 @@
*usr_03.txt* For Vim version 7.4. Last change: 2006 Jun 21 *usr_03.txt* For Vim version 7.4. Last change: 2016 Jan 05
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -57,8 +57,11 @@ paragraph, much faster than using "l". "b" does the same in the other
direction. direction.
A word ends at a non-word character, such as a ".", "-" or ")". To change A word ends at a non-word character, such as a ".", "-" or ")". To change
what Vim considers to be a word, see the 'iskeyword' option. what Vim considers to be a word, see the 'iskeyword' option. If you try this
It is also possible to move by white-space separated WORDs. This is not a out in the help directly, 'iskeyword' needs to be reset for the examples to
work: >
:set iskeyword&
It is also possible to move by white-space separated WORDs. This is not a
word in the normal sense, that's why the uppercase is used. The commands for word in the normal sense, that's why the uppercase is used. The commands for
moving by WORDs are also uppercase, as this figure shows: moving by WORDs are also uppercase, as this figure shows:
@ -410,8 +413,8 @@ in "the" use: >
/the\> /the\>
The "\>" item is a special marker that only matches at the end of a word. The "\>" item is a special marker that only matches at the end of a word.
Similarly "\<" only matches at the begin of a word. Thus to search for the Similarly "\<" only matches at the beginning of a word. Thus to search for
word "the" only: > the word "the" only: >
/\<the\> /\<the\>
@ -532,7 +535,7 @@ MATCHING ANY SINGLE CHARACTER
The . (dot) character matches any existing character. For example, the The . (dot) character matches any existing character. For example, the
pattern "c.m" matches a string whose first character is a c, whose second pattern "c.m" matches a string whose first character is a c, whose second
character is anything, and whose the third character is m. Example: character is anything, and whose third character is m. Example:
We use a computer that became the cummin winter. ~ We use a computer that became the cummin winter. ~
xxx xxx xxx xxx xxx xxx

View File

@ -1,4 +1,4 @@
*usr_29.txt* For Vim version 7.4. Last change: 2008 Jun 28 *usr_29.txt* For Vim version 7.4. Last change: 2016 Feb 27
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -255,7 +255,8 @@ function.
RELATED ITEMS RELATED ITEMS
You can set 'ignorecase' to make case in tag names be ignored. To make case in tag names be ignored, you can set 'ignorecase' while leaving
'tagcase' as "followic", or set 'tagcase' to "ignore".
The 'tagbsearch' option tells if the tags file is sorted or not. The default The 'tagbsearch' option tells if the tags file is sorted or not. The default
is to assume a sorted tags file, which makes a tags search a lot faster, but is to assume a sorted tags file, which makes a tags search a lot faster, but
@ -264,9 +265,6 @@ doesn't work if the tags file isn't sorted.
The 'taglength' option can be used to tell Vim the number of significant The 'taglength' option can be used to tell Vim the number of significant
characters in a tag. characters in a tag.
When you use the SNiFF+ program, you can use the Vim interface to it |sniff|.
SNiFF+ is a commercial program.
Cscope is a free program. It does not only find places where an identifier is Cscope is a free program. It does not only find places where an identifier is
declared, but also where it is used. See |cscope|. declared, but also where it is used. See |cscope|.

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 7.4. Last change: 2014 Aug 16 *usr_41.txt* For Vim version 7.4. Last change: 2016 Feb 14
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -888,6 +888,19 @@ Mappings: *mapping-functions*
maparg() get rhs of a mapping maparg() get rhs of a mapping
wildmenumode() check if the wildmode is active wildmenumode() check if the wildmode is active
Testing: *test-functions*
assert_equal() assert that two expressions values are equal
assert_false() assert that an expression is false
assert_true() assert that an expression is true
Inter-process communication:
ch_open() open a channel
ch_close() close a channel
ch_sendexpr() send a JSON message over a channel
ch_sendraw() send a raw message over a channel
jsonencode() encode an expression to a JSON string
jsondecode() decode a JSON string to Vim types
Various: *various-functions* Various: *various-functions*
mode() get current editing mode mode() get current editing mode
visualmode() last visual mode used visualmode() last visual mode used
@ -916,8 +929,10 @@ Various: *various-functions*
luaeval() evaluate Lua expression luaeval() evaluate Lua expression
mzeval() evaluate |MzScheme| expression mzeval() evaluate |MzScheme| expression
perleval() evaluate Perl expression (|+perl|)
py3eval() evaluate Python expression (|+python3|) py3eval() evaluate Python expression (|+python3|)
pyeval() evaluate Python expression (|+python|) pyeval() evaluate Python expression (|+python|)
wordcount() get byte/word/char count of buffer
============================================================================== ==============================================================================
*41.7* Defining a function *41.7* Defining a function
@ -2220,7 +2235,7 @@ This construct makes sure the function is only defined once: >
:endif :endif
< <
UNDO *undo_ftplugin* UNDO *undo_indent* *undo_ftplugin*
When the user does ":setfiletype xyz" the effect of the previous filetype When the user does ":setfiletype xyz" the effect of the previous filetype
should be undone. Set the b:undo_ftplugin variable to the commands that will should be undone. Set the b:undo_ftplugin variable to the commands that will
@ -2235,6 +2250,9 @@ global value. That is mostly the best way to reset the option value.
This does require removing the "C" flag from 'cpoptions' to allow line This does require removing the "C" flag from 'cpoptions' to allow line
continuation, as mentioned above |use-cpo-save|. continuation, as mentioned above |use-cpo-save|.
For undoing the effect of an indent script, the b:undo_indent variable should
be set accordingly.
FILE NAME FILE NAME

View File

@ -1,4 +1,4 @@
*usr_43.txt* For Vim version 7.4. Last change: 2008 Dec 28 *usr_43.txt* For Vim version 7.4. Last change: 2015 Oct 23
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -46,6 +46,7 @@ three-line comment. You do this with only two steps:
setlocal softtabstop=4 setlocal softtabstop=4
noremap <buffer> <LocalLeader>c o/**************<CR><CR>/<Esc> noremap <buffer> <LocalLeader>c o/**************<CR><CR>/<Esc>
let b:undo_ftplugin = "setl softtabstop< | unmap <buffer> <LocalLeader>c"
Try editing a C file. You should notice that the 'softtabstop' option is set Try editing a C file. You should notice that the 'softtabstop' option is set
to 4. But when you edit another file it's reset to the default zero. That is to 4. But when you edit another file it's reset to the default zero. That is
@ -60,6 +61,11 @@ buffer. This works with any mapping command: ":map!", ":vmap", etc. The
|<LocalLeader>| in the mapping is replaced with the value of the |<LocalLeader>| in the mapping is replaced with the value of the
"maplocalleader" variable. "maplocalleader" variable.
The line to set b:undo_ftplugin is for when the filetype is set to another
value. In that case you will want to undo your preferences. The
b:undo_ftplugin variable is executed as a command. Watch out for characters
with a special meaning inside a string, such as a backslash.
You can find examples for filetype plugins in this directory: > You can find examples for filetype plugins in this directory: >
$VIMRUNTIME/ftplugin/ $VIMRUNTIME/ftplugin/

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 7.4. Last change: 2014 Aug 06 *various.txt* For Vim version 7.4. Last change: 2016 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -208,8 +208,6 @@ g8 Print the hex values of the bytes used in the
Example: > Example: >
:exe "normal \<c-w>\<c-w>" :exe "normal \<c-w>\<c-w>"
< {not in Vi, of course} < {not in Vi, of course}
{not available when the |+ex_extra| feature was
disabled at compile time}
:{range}norm[al][!] {commands} *:normal-range* :{range}norm[al][!] {commands} *:normal-range*
Execute Normal mode commands {commands} for each line Execute Normal mode commands {commands} for each line
@ -218,8 +216,6 @@ g8 Print the hex values of the bytes used in the
for each line. Otherwise it's the same as the for each line. Otherwise it's the same as the
":normal" command without a range. ":normal" command without a range.
{not in Vi} {not in Vi}
{not available when |+ex_extra| feature was disabled
at compile time}
*:sh* *:shell* *E371* *:sh* *:shell* *E371*
:sh[ell] This command starts a shell. When the shell exits :sh[ell] This command starts a shell. When the shell exits
@ -319,6 +315,7 @@ N *+builtin_terms* some terminals builtin |builtin-terms|
B *++builtin_terms* maximal terminals builtin |builtin-terms| B *++builtin_terms* maximal terminals builtin |builtin-terms|
N *+byte_offset* support for 'o' flag in 'statusline' option, "go" N *+byte_offset* support for 'o' flag in 'statusline' option, "go"
and ":goto" commands. and ":goto" commands.
m *+channel* inter process communication |channel|
N *+cindent* |'cindent'|, C indenting N *+cindent* |'cindent'|, C indenting
N *+clientserver* Unix and Win32: Remote invocation |clientserver| N *+clientserver* Unix and Win32: Remote invocation |clientserver|
*+clipboard* |clipboard| support *+clipboard* |clipboard| support
@ -341,8 +338,7 @@ m *+directx* Win32 GUI only: DirectX and |'renderoptions'|
*+dnd* Support for DnD into the "~ register |quote_~|. *+dnd* Support for DnD into the "~ register |quote_~|.
B *+emacs_tags* |emacs-tags| files B *+emacs_tags* |emacs-tags| files
N *+eval* expression evaluation |eval.txt| N *+eval* expression evaluation |eval.txt|
N *+ex_extra* Vim's extra Ex commands: |:center|, |:left|, N *+ex_extra* always on now, used to be for Vim's extra Ex commands
|:normal|, |:retab| and |:right|
N *+extra_search* |'hlsearch'| and |'incsearch'| options. N *+extra_search* |'hlsearch'| and |'incsearch'| options.
B *+farsi* |farsi| language B *+farsi* |farsi| language
N *+file_in_path* |gf|, |CTRL-W_f| and |<cfile>| N *+file_in_path* |gf|, |CTRL-W_f| and |<cfile>|
@ -362,6 +358,7 @@ m *+hangul_input* Hangul input support |hangul|
*+iconv* Compiled with the |iconv()| function *+iconv* Compiled with the |iconv()| function
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn| *+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
N *+insert_expand* |insert_expand| Insert mode completion N *+insert_expand* |insert_expand| Insert mode completion
m *+job* starting and stopping jobs |job|
N *+jumplist* |jumplist| N *+jumplist* |jumplist|
B *+keymap* |'keymap'| B *+keymap* |'keymap'|
B *+langmap* |'langmap'| B *+langmap* |'langmap'|
@ -414,7 +411,6 @@ m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn|
N *+scrollbind* |'scrollbind'| N *+scrollbind* |'scrollbind'|
B *+signs* |:sign| B *+signs* |:sign|
N *+smartindent* |'smartindent'| N *+smartindent* |'smartindent'|
m *+sniff* SniFF interface |sniff|
N *+startuptime* |--startuptime| argument N *+startuptime* |--startuptime| argument
N *+statusline* Options 'statusline', 'rulerformat' and special N *+statusline* Options 'statusline', 'rulerformat' and special
formats of 'titlestring' and 'iconstring' formats of 'titlestring' and 'iconstring'
@ -518,7 +514,7 @@ N *+X11* Unix only: can restore window title |X11|
:redi[r] END End redirecting messages. {not in Vi} :redi[r] END End redirecting messages. {not in Vi}
*:sil* *:silent* *:sil* *:silent* *:silent!*
:sil[ent][!] {command} Execute {command} silently. Normal messages will not :sil[ent][!] {command} Execute {command} silently. Normal messages will not
be given or added to the message history. be given or added to the message history.
When [!] is added, error messages will also be When [!] is added, error messages will also be
@ -647,6 +643,7 @@ K Run a program to lookup the keyword under the
g CTRL-A Only when Vim was compiled with MEM_PROFILING defined g CTRL-A Only when Vim was compiled with MEM_PROFILING defined
(which is very rare): print memory usage statistics. (which is very rare): print memory usage statistics.
Only useful for debugging Vim. Only useful for debugging Vim.
For incrementing in Visual mode see |v_g_CTRL-A|.
============================================================================== ==============================================================================
2. Using Vim like less or more *less* 2. Using Vim like less or more *less*
@ -665,4 +662,12 @@ highlighting.
The "h" key will give you a short overview of the available commands. The "h" key will give you a short overview of the available commands.
If you want to set options differently when using less, define the
LessInitFunc in your vimrc, for example: >
func LessInitFunc()
set nocursorcolumn nocursorline
endfunc
<
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*version5.txt* For Vim version 7.4. Last change: 2012 Aug 08 *version5.txt* For Vim version 7.4. Last change: 2016 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -848,7 +848,7 @@ putting a backslash before it. |+cmd|
After recovery, BufReadPost autocommands are applied. |:recover| After recovery, BufReadPost autocommands are applied. |:recover|
Added color support for "os2ansi", OS/2 console. (Slootman) |os2ansi| Added color support for "os2ansi", OS/2 console. (Slootman)
Allow "%:p:h" when % is empty. |:_%| Allow "%:p:h" when % is empty. |:_%|
@ -934,7 +934,7 @@ Don't add "-L/usr/lib" to the link line, causes problems on a few systems.
When compiling, allow a choice for minimal, normal or maximal features in an When compiling, allow a choice for minimal, normal or maximal features in an
easy way, by changing a single line in src/feature.h. easy way, by changing a single line in src/feature.h.
The DOS16 version has been compiled with minimal features to avoid running The DOS16 version has been compiled with minimal features to avoid running
out of memory too quickly. |dos16| out of memory too quickly.
The Win32, DJGPP, and OS/2 versions use maximal features, because they have The Win32, DJGPP, and OS/2 versions use maximal features, because they have
enough memory. enough memory.
The Amiga version is available with normal and maximal features. The Amiga version is available with normal and maximal features.

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