Compare commits

...

868 Commits

Author SHA1 Message Date
3a53ec8bdd patch 8.2.1330: Github workflow takes longer than needed
Problem:    Github workflow takes longer than needed.
Solution:   Do two test runs in parallel instead of sequentially. (Ken Takata,
            closes #6579)
2020-07-31 22:17:32 +02:00
38ddf333f6 patch 8.2.1329: Vim9: cannot define global function inside :def function
Problem:    Vim9: cannot define global function inside :def function.
Solution:   Assign to global variable instead of local. (closes #6584)
2020-07-31 22:05:04 +02:00
4d4d1cd5c8 patch 8.2.1328: no space allowed before comma in list
Problem:    No space allowed before comma in list.
Solution:   Legacy Vim script allows it. (closes #6577)
2020-07-30 22:14:33 +02:00
f4ee528086 patch 8.2.1327: Mac: configure can't find Tcl libraries
Problem:    Mac: configure can't find Tcl libraries.
Solution:   Adjust configure check. (closes #6575)
2020-07-30 20:18:08 +02:00
9d48956681 patch 8.2.1326: Vim9: skipping over white space after list
Problem:    Vim9: skipping over white space after list.
Solution:   Do not skip white space, a following [] would be misinterpreted.
            (closes #6552)  Fix a few side effects.
2020-07-30 20:08:50 +02:00
ea2d8d2571 patch 8.2.1325: Vim9: using Vim9 script for autaload not tested
Problem:    Vim9: using Vim9 script for autaload not tested.
Solution:   Add a test.  Update help.
2020-07-29 22:11:05 +02:00
c7e44a7e4c patch 8.2.1324: Vim9: line break after "=" does not work
Problem:    Vim9: line break after "=" does not work.
Solution:   Also allow for NUL after "=". (closes #6549)
2020-07-29 21:37:43 +02:00
696ba23149 patch 8.2.1323: Vim9: invalid operators only rejected in :def function
Problem:    Vim9: invalid operators only rejected in :def function.
Solution:   Also reject them at script level. (closes #6564)
2020-07-29 21:20:41 +02:00
1040956292 patch 8.2.1322: Vim9: method on double quoted string doesn't work
Problem:    Vim9: method on double quoted string doesn't work.
Solution:   Recognize double quoted string. (closes #6562)
2020-07-29 20:00:38 +02:00
7b7f78f51d patch 8.2.1321: GitHub CI also runs on tag push
Problem:    GitHub CI also runs on tag push.
Solution:   Skip CI on push. (Ken Takata, closes #6571)
2020-07-29 19:29:23 +02:00
33afa2447b patch 8.2.1320: Vim9: cannot declare some single letter variables
Problem:    Vim9: cannot declare some single letter variables.
Solution:   Do not recognize a colon for a namespace for single letter
            variables. (closes #6547)
2020-07-29 19:18:00 +02:00
ac7bf8c4bf patch 8.2.1319: status badge for Github CI has wrong link
Problem:    Status badge for Github CI has wrong link.
Solution:   Rename and use the right link
2020-07-29 17:43:55 +02:00
ed3c7e6339 patch 8.2.1318: no status badge for Github CI
Problem:    No status badge for Github CI.
Solution:   Add a badge.
2020-07-29 17:34:33 +02:00
f9a343f8bd patch 8.2.1317: MS-Windows tests on AppVeyor are slow
Problem:    MS-Windows tests on AppVeyor are slow.
Solution:   Use GitHub Actions. (Ken Takata, closes #6569)
2020-07-29 16:32:21 +02:00
b61ef01cce patch 8.2.1316: test 42 is still old style
Problem:    Test 42 is still old style.
Solution:   Turn it into a new style test. (Yegappan Lakshmanan, closes #6561)
2020-07-29 16:08:21 +02:00
45df2a01a7 patch 8.2.1315: MS-Windows: test log contains escape sequences
Problem:    MS-Windows: test log contains escape sequences.
Solution:   Do not use t_md and t_me but ANSI escape sequences. (Ken Takata,
            closes #6559)
2020-07-29 15:03:01 +02:00
9898107f54 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Problem:    Vim9: rule for comment after :function is confusing.
Solution:   Allow double quoted comment after :function in vim9script.
            (closes #6556)
2020-07-29 14:40:25 +02:00
b5ed266037 patch 8.2.1313: Vim9 script: cannot assign to environment variable
Problem:    Vim9 script: cannot assign to environment variable.
Solution:   Recognize environment variable assignment. (closes #6548)
            Also options and registers.
2020-07-28 22:38:37 +02:00
066b12e36c patch 8.2.1312: MS-Windows: terminal test may fail if dir.exe exists
Problem:    MS-Windows: terminal test may fail if dir.exe exists.
Solution:   Use dir.com. (Ken Takata, closes #6557)
2020-07-28 21:40:27 +02:00
68e30449a2 patch 8.2.1311: test failures with legacy Vim script
Problem:    Test failures with legacy Vim script.
Solution:   Actually check for Vim9 script.
2020-07-28 21:15:07 +02:00
bd7f7c123d patch 8.2.1310: configure with Xcode 12 fails to check for tgetent
Problem:    Configure with Xcode 12 fails to check for tgetent.
Solution:   Declare tgetent(). (Ozaki Kiichi, closes #6558)
2020-07-28 21:03:37 +02:00
461f21242a patch 8.2.1309: build failure with tiny version
Problem:    Build failure with tiny version.
Solution:   Add #ifdef.
2020-07-28 20:25:47 +02:00
ae616494d7 patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Problem:    Vim9: accidentally using "x" causes Vim to exit.
Solution:   Disallow using ":x" or "xit" in Vim9 script. (closes #6399)
2020-07-28 20:07:27 +02:00
0aac67a431 patch 8.2.1307: popup window width does not include number of sign columns
Problem:    popup window width does not include number, fold of sign column
            width.
Solution:   Take number, fold and sign column with into account.
2020-07-27 22:40:37 +02:00
b13ab99908 patch 8.2.1306: checking for first character of dict key is inconsistent
Problem:    Checking for first character of dict key is inconsistent.
Solution:   Add eval_isdictc(). (closes #6546)
2020-07-27 21:43:28 +02:00
622b3568fa patch 8.2.1305: some tests are still old style
Problem:    Some tests are still old style.
Solution:   Convert tests 52 and 70 to new style. (Yegappan Lakshmanan,
            closes #6544)  Fix error in FinishTesting().
2020-07-27 20:02:41 +02:00
6ca6ca4889 patch 8.2.1304: debug backtrace isn't tested much
Problem:    Debug backtrace isn't tested much.
Solution:   Add more specific tests. (Ben Jackson, closes #6540)
2020-07-27 19:47:07 +02:00
6d585f4c5c patch 8.2.1303: calling popup_setoptions() resets 'signcolumn'
Problem:    Calling popup_setoptions() resets 'signcolumn'.
Solution:   Only set 'signcolumn' when creating the popup. (closes #6542)
2020-07-26 22:20:54 +02:00
01865ade85 patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Problem:    Vim9: varargs arg after optional arg does not work
Solution:   Check for the "..." first. (issue #6507)
2020-07-26 18:33:09 +02:00
ace6132aa8 patch 8.2.1301: Vim9: varargs argument type not parsed properly
Problem:    Vim9: varargs argument type not parsed properly.
Solution:   Skip over the "...". (issue #6507)
2020-07-26 18:16:58 +02:00
4fc224ca1c patch 8.2.1300: Vim9: optional argument type not parsed properly
Problem:    Vim9: optional argument type not parsed properly.
Solution:   Skip over the "?". (issue #6507)
2020-07-26 17:56:25 +02:00
2547aa930b Update runtime files. 2020-07-26 17:00:44 +02:00
d3bb6a82a5 patch 8.2.1299: compiler warning for using size_t for int and void pointer
Problem:    Compiler warning for using size_t for int and void pointer.
Solution:   Add type casts.
2020-07-26 15:55:25 +02:00
cb4f69c2fd patch 8.2.1298: compiler warning for unused argument in small version
Problem:    Compiler warning for unused argument in small version.
Solution:   Add UNUSED.
2020-07-26 15:51:06 +02:00
a5d0423fa1 patch 8.2.1297: when a test fails it's often not easy to see where
Problem:    When a test fails it's often not easy to see what the call stack
            is.
Solution:   Add more entries from the call stack in the exception message.
2020-07-26 15:37:02 +02:00
d66cdcd43a patch 8.2.1296: some part of using 'smarcase' was not tested
Problem:    Some part of using 'smarcase' was not tested.
Solution:   Add more tests. (Dominique Pellé, closes #6538)
2020-07-26 13:27:16 +02:00
7d40b8a532 patch 8.2.1295: tests 44 and 99 are old style
Problem:    Tests 44 and 99 are old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #6536)
2020-07-26 12:52:59 +02:00
37394ff752 patch 8.2.1294: Vim9: error when using vim9script in TextYankPost
Problem:    Vim9: error when using vim9script in TextYankPost.
Solution:   Use EX_LOCKOK instead of the EX_CMDWIN flag for command that can
            be used when text is locked. (closes #6529)
2020-07-25 19:38:18 +02:00
2d6b20d6a9 patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Problem:    Vim9: error when using vim9script in TextYankPost.
Solution:   Use EX_LOCKOK instead of the EX_CMDWIN flag for command that can
            be used when text is locked. (closes #6529)
2020-07-25 19:30:59 +02:00
2afc3b4f77 patch 8.2.1292: AIDL filetype not recognized
Problem:    AIDL filetype not recognized.
Solution:   Add filetype detection. (Dominique Pellé, closes #6533)
2020-07-25 16:53:12 +02:00
24aa48b7a2 patch 8.2.1291: Vim9: type of varargs items is not checked
Problem:    Vim9: type of varargs items is not checked.
Solution:   Check the list item types. (closes #6523)
2020-07-25 16:33:02 +02:00
925e9fd633 patch 8.2.1290: Vim9: cannot replace a global function
Problem:    Vim9: cannot replace a global function.
Solution:   Allow for "!" on a global function. (closes #6524)  Also fix that
            :delfunc on a :def function only made it empty.
2020-07-25 15:41:11 +02:00
c841afff6a patch 8.2.1289: crash when using a custom completion function
Problem:    Crash when using a custom completion function.
Solution:   Initialize all of the expand_T. (closes #6532)
2020-07-25 14:11:55 +02:00
13e12b8a3c patch 8.2.1288: Vim9: cannot use mark in range
Problem:    Vim9: cannot use mark in range.
Solution:   Use the flag that a colon was seen. (closes #6528)
2020-07-24 18:47:22 +02:00
40f4f7a48c patch 8.2.1287: Vim9: crash when using an imported function
Problem:    Vim9: crash when using an imported function.
Solution:   Add the function type to the imported entry. (closes #6522)
2020-07-23 22:41:43 +02:00
43e969d3f9 patch 8.2.1286: Vim9: No error when using a type to a window variable
Problem:    Vim9: No error when using a type to a window variable
Solution:   Recognize the syntax and give an error. (closes #6521)
2020-07-23 21:14:43 +02:00
b8070e3173 patch 8.2.1285: Vim9: argument types are not checked on assignment
Problem:    Vim9: argument types are not checked on assignment.
Solution:   Check function argument types. (issue #6507)
2020-07-23 20:56:04 +02:00
bfba8651a5 patch 8.2.1284: Vim9: skipping over type includes following white space
Problem:    Vim9: skipping over type includes following white space, leading
            to an error for missing white space.
Solution:   Do not skip over white space after the type.
2020-07-23 20:09:10 +02:00
637cd7d1c9 patch 8.2.1283: Vim9: error for misplaced -> lacks argument
Problem:    Vim9: error for misplaced -> lacks argument.
Solution:   Use the pointer before it was advanced.
2020-07-23 19:06:23 +02:00
6c4bfe4b31 patch 8.2.1282: Vim9: crash when using CheckScriptFailure()
Problem:    Vim9: crash when using CheckScriptFailure() in
            Test_vim9script_call_fail_decl().
Solution:   Do not decrement the def_functions len unless the function was
            newly added.
2020-07-23 18:26:30 +02:00
2d06bfde29 patch 8.2.1281: the "trailing characters" error can be hard to understand
Problem:    The "trailing characters" error can be hard to understand.
Solution:   Add the trailing characters to the message.
2020-07-23 17:16:18 +02:00
8930caaa1a patch 8.2.1280: Ex command error cannot contain an argument
Problem:    Ex command error cannot contain an argument.
Solution:   Add ex_errmsg() and translate earlier.  Use e_trailing_arg where
            possible.
2020-07-23 16:37:03 +02:00
8d5f6af5e5 patch 8.2.1279: some tests on Travis have EXITFREE duplicated
Problem:    Some tests on Travis have EXITFREE duplicated.
Solution:   Remove EXITFREE from shadowopt.  Add "shadow" to job name.
2020-07-23 15:50:40 +02:00
dd1a9af00f patch 8.2.1278: Vim9: line break after "->" only allowed in :def function
Problem:    Vim9: line break after "->" only allowed in :def function.
Solution:   Only allow line break after "->". (closes #6492)
2020-07-23 15:38:03 +02:00
7a87b4e3fe patch 8.2.1277: tests on Travis do not run with EXITFREE
Problem:    Tests on Travis do not run with EXITFREE.
Solution:   Add EXITFREE to all builds to uncover any mistakes.
2020-07-23 14:59:07 +02:00
4cc45a3673 patch 8.2.1276: MS-Windows: system test may fail if more.exe is installed
Problem:    MS-Windows: system test may fail if more.exe is installed.
Solution:   Explicitly use more.com. (Taro Muraoka, Ken Takata, closes #6517)
2020-07-23 14:51:02 +02:00
5a67c37a55 patch 8.2.1275: Vim9: compiler warning for buffer size
Problem:    Vim9: compiler warning for buffer size.
Solution:   Change the offset from 10 to 15. (Dominique Pellé, closes #6518)
2020-07-23 14:39:47 +02:00
63be3d4ba0 patch 8.2.1274: Vim9: no error for missing white space at script level
Problem:    Vim9: no error for missing white space in assignment at script
            level.
Solution:   Check for white space. (closes #6495)
2020-07-23 13:11:37 +02:00
c69950ac17 patch 8.2.1273: MS-Windows: terminal test may leave file behind
Problem:    MS-Windows: terminal test may leave file behind.
Solution:   Wait a moment for process to end before deleting the file.
            (Taro Muraoka, closes #6513)
2020-07-22 22:23:40 +02:00
4cdb13ce81 patch 8.2.1272: Vim9: type not checked if declaration also assigns value
Problem:    Vim9: type not checked if declaration also assigns value.
Solution:   Check the type. (issue #6507)
2020-07-22 21:45:14 +02:00
0f60e80f9b patch 8.2.1271: Vim9: Error for Funcref function argument type
Problem:    Vim9: Error for Funcref function argument type.
Solution:   Find the actual function type if possible. (issue #6507)
2020-07-22 20:16:11 +02:00
2f1980f7b7 patch 8.2.1270: Vim9: not skipping over function type declaration
Problem:    Vim9: not skipping over function type declaration with only a
            return type.
Solution:   Skip over the return type. (issue #6507)
2020-07-22 19:30:06 +02:00
054f14bbe5 patch 8.2.1269: language and locale code spread out
Problem:    Language and locale code spread out.
Solution:   Move relevant code to src/locale.c. (Yegappan Lakshmanan,
            closes #6509)
2020-07-22 19:11:19 +02:00
e7e4838f25 patch 8.2.1268: Vim9: no error for using double quote comment
Problem:    Vim9: no error for using double quote comment after :func or :def.
Solution:   Only accept double quote when not in Vim9 script and not after
            :def. (closes #6483)
2020-07-22 18:17:08 +02:00
2690b5aed8 patch 8.2.1267: MS-Windows: tests may fail due to $PROMPT value
Problem:    MS-Windows: tests may fail due to $PROMPT value.
Solution:   Set $PROMPT for testing. (Taro Muraoka, closes #6510)
2020-07-22 18:14:58 +02:00
bc6fcbe4ce patch 8.2.1266: Makefile preference were accidentally included
Problem:    Makefile preference were accidentally included.
Solution:   Revert the Makefile changes.
2020-07-21 22:34:41 +02:00
7d5e744162 patch 8.2.1265: crash with EXITFREE when split() fails
Problem:    Crash with EXITFREE when split() fails.
Solution:   Restore 'cpoptions'.
2020-07-21 22:25:51 +02:00
420952175a patch 8.2.1264: terminal getwinpos() test is a bit flaky
Problem:    Terminal getwinpos() test is a bit flaky.
Solution:   Call getwinpos() a bit later.
2020-07-21 21:48:58 +02:00
c71f36a889 patch 8.2.1263: Vim9: comperators use 'ignorecase' in Vim9 script
Problem:    Vim9: comperators use 'ignorecase' in Vim9 script.
Solution:   Ignore 'ignorecase'.  Use true and false instead of 1 and 0.
            (closes #6497)
2020-07-21 21:31:00 +02:00
f868ba8903 patch 8.2.1262: src/ex_cmds.c file is too big
Problem:    src/ex_cmds.c file is too big.
Solution:   Move help related code to src/help.c. (Yegappan Lakshmanan,
            closes #6506)
2020-07-21 21:07:20 +02:00
c7db57788b patch 8.2.1261: Vim9: common type of function not tested
Problem:    Vim9: common type of function not tested.
Solution:   Add a test.  Fix uncovered problems.
2020-07-21 20:55:50 +02:00
7591116acf patch 8.2.1260: there is no good test for CursorHold
Problem:    There is no good test for CursorHold.
Solution:   Add a test.  Remove duplicated test. (Yegappan Lakshmanan,
            closes #6503
2020-07-21 19:44:47 +02:00
f56c95fdad patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Problem:    Empty group in 'tabline' may cause using an invalid pointer.
Solution:   Set the group start position. (closes #6505)
2020-07-21 19:25:18 +02:00
08815a1d03 patch 8.2.1258: CursorHold does not work well
Problem:    CursorHold does not work well.a (Shane-XB-Qian)
Solution:   Only restore did_cursorhold when using :normal.
2020-07-20 23:10:56 +02:00
b31be3f909 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Problem:    Vim9: list unpack doesn't work at the script level.
Solution:   Detect unpack assignment better. (closes #6494)
2020-07-20 22:37:44 +02:00
7892b953e0 patch 8.2.1256: Vim9: type wrong after getting dict item in lambda
Problem:    Vim9: type wrong after getting dict item in lambda.
Solution:   Set the type to "any" after enforcing dict type. (closes #6491)
2020-07-20 22:09:34 +02:00
d43906d2e5 patch 8.2.1255: cannot use a lambda with quickfix functions
Problem:    Cannot use a lambda with quickfix functions.
Solution:   Add support for lambda. (Yegappan Lakshmanan, closes #6499)
2020-07-20 21:31:32 +02:00
470adb827f patch 8.2.1254: MS-Windows: regexp test may fail if 'iskeyword' set wrongly
Problem:    MS-Windows: regexp test may fail if 'iskeyword' set wrongly.
Solution:   Override the 'iskeyword' value. (Taro Muraoka, closes #6502)
2020-07-20 21:21:30 +02:00
b146e01a7e patch 8.2.1253: CTRL-K in Insert mode gets <CursorHold> inserted
Problem:    CTRL-K in Insert mode gets <CursorHold> inserted. (Roland
            Puntaier)
Solution:   Do not reset did_cursorhold, restore it. (closes #6447)
2020-07-19 23:06:05 +02:00
54c3fcd852 patch 8.2.1252: ":marks" may show '< and '> mixed up
Problem:    ":marks" may show '< and '> mixed up.
Solution:   Show the mark position as where '< and '> would jump.
2020-07-19 22:09:06 +02:00
682d0a1546 patch 8.2.1251: Vim9: warning for pointer usage, test failure undetected
Problem:    Vim9: warning for pointer usage, test failure undetected.
Solution:   Fix pointer indirection.  Give error when executing function
            failed for any reason.  Fix instruction names.
2020-07-19 20:48:59 +02:00
2f8ce0ae8a patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Problem:    Vim9: cannot use the g:, b:, t: and w: namespaces.
Solution:   Add instructions to push a dict for the namespaces. (closes #6480)
2020-07-19 19:47:35 +02:00
747f11ad6e patch 8.2.1249: Vim9: disassemble test fails
Problem:    Vim9: disassemble test fails.
Solution:   Change INDEX to LISTINDEX.  Add test for STRINDEX.
2020-07-19 18:38:37 +02:00
956501594e patch 8.2.1248: Netbeans test is flaky in the GUI
Problem:    Netbeans test is flaky in the GUI.
Solution:   Filter out geometry messages. (Taro Muraoka, closes #6487)
2020-07-19 18:24:32 +02:00
bf9d8c3765 patch 8.2.1247: Vim9: cannot index a character in a string
Problem:    Vim9: cannot index a character in a string.
Solution:   Add ISN_STRINDEX instruction. (closes #6478)
2020-07-19 17:55:44 +02:00
b209750b5e patch 8.2.1246: Vim9: comment after assignment doesn't work
Problem:    Vim9: comment after assignment doesn't work.
Solution:   Skip over white space. (closes #6481)
2020-07-19 17:17:02 +02:00
f398238a37 patch 8.2.1245: build failure in tiny version
Problem:    Build failure in tiny version.
Solution:   Add #ifdef.
2020-07-19 16:32:09 +02:00
6802cce407 patch 8.2.1244: Vim9: in lambda index assumes a list
Problem:    Vim9: in lambda index assumes a list.
Solution:   Use the value type to decide about list or dict. (closes #6479)
2020-07-19 15:49:49 +02:00
75783bd84e patch 8.2.1243: Vim9: cannot have a comment line halfway a list
Problem:    Vim9: cannot have a comment or empty line halfway a list at script
            level.
Solution:   Skip more than one line if needed.
2020-07-19 14:41:58 +02:00
65b9545f44 patch 8.2.1242: Vim9: no error if calling a function with wrong type
Problem:    Vim9: no error if calling a function with wrong argument type.
Solution:   Check types of arguments. (closes #6469)
2020-07-19 14:03:09 +02:00
6434fc574d patch 8.2.1241: cannot use getbufinfo() as a method
Problem:    Cannot use getbufinfo() as a method.
Solution:   Support using getbufinfo() as a method. (closes #6458)
2020-07-18 22:24:22 +02:00
10e1d01aaf patch 8.2.1240: GUI tests sometimes fail because of translations
Problem:    GUI tests sometimes fail because of translations.
Solution:   Reload the menus without translation. (Taro Muraoka, closes #6486)
2020-07-18 22:03:11 +02:00
de2396fc87 patch 8.2.1239: "maxwidth" in 'completepopup' not obeyed
Problem:    "maxwidth" in 'completepopup' not obeyed. (Jay Sitter)
Solution:   Add separate field for value from option. (closes #6470)
2020-07-18 21:40:41 +02:00
d032f34a51 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Problem:    Vim9: a few remaining errors not caught by try/catch.
Solution:   Do not bail out if an error is inside try/catch.
2020-07-18 18:13:02 +02:00
447bfba24b patch 8.2.1237: changing 'completepopup' after opening popup has no effect
Problem:    Changing 'completepopup' after opening a popup has no effect. (Jay
            Sitter)
Solution:   Close the popup when the options are changed. (closes #6471)
2020-07-18 16:07:16 +02:00
e859312e74 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Problem:    Vim9: a few errors not caught by try/catch.
Solution:   Do not bail out if an error is inside try/catch.  Fix that a not
            matching catch doesn't jump to :endtry.
2020-07-18 15:17:02 +02:00
2764d06ab7 patch 8.2.1235: Not all mouse codes covered by tests
Problem:    Not all mouse codes covered by tests.
Solution:   Add more tests for the mouse. (Yegappan Lakshmanan, closes #6472)
2020-07-18 12:59:19 +02:00
066e7da3cd patch 8.2.1234: Lua build problem with old compiler
Problem:    Lua build problem with old compiler.
Solution:   Move declarations to start of the block. (Taro Muraoka,
            closes #6477)
2020-07-18 12:50:35 +02:00
f0b9f43c31 patch 8.2.1233: Vim9: various errors not caught by try/catch
Problem:    Vim9: various errors not caught by try/catch.
Solution:   Do not bail out if an error is inside try/catch.
2020-07-17 23:03:17 +02:00
b68ced5f07 patch 8.2.1232: MS-Windows GUI: Snap cancelled by split command
Problem:    MS-Windows GUI: Snap cancelled by split command.
Solution:   Do not cancel Snap when splitting a window. (Ken Takata,
            closes #6467)
2020-07-17 22:26:53 +02:00
945c857844 patch 8.2.1231: MS-Windows: GUI code can be cleaned up
Problem:    MS-Windows: GUI code can be cleaned up.
Solution:   Do a bit of cleaning up. (Ken Takata, closes #6465)
2020-07-17 22:17:03 +02:00
68d130c618 patch 8.2.1230: Vim9: list index error not caught by try/catch
Problem:    Vim9: list index error not caught by try/catch.
Solution:   Do not bail out if an error is inside try/catch. (closes #6462)
2020-07-17 22:06:44 +02:00
6e36b1c18e patch 8.2.1229: build error without the eval feature
Problem:    Build error without the eval feature.
Solution:   Declare starts_with_colon. Make function local.
2020-07-17 20:47:51 +02:00
203ec7760d patch 8.2.1228: scrollbars not flush against the window edges when maximised
Problem:    Scrollbars not flush against the window edges when maximised.
Solution:   Add padding. (Ken Takata, closes #5602, closes #6466)
2020-07-17 20:43:43 +02:00
f5be8cdb77 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Problem:    Vim9: allowing both quoted and # comments is confusing.
Solution:   Only support # comments in Vim9 script.
2020-07-17 20:36:00 +02:00
98af99f2d7 patch 8.2.1226: MS-Windows: windows positioning wrong depending on taskbar
Problem:    MS-Windows: windows positioning wrong when the taskbar is placed
            at the top or left of the screen.
Solution:   Use GetWindowRect and MoveWindow APIs. (Yukihiro Nakadaira,
            Ken Takata, closes #6455)
2020-07-16 22:30:31 +02:00
ee1b93169d patch 8.2.1225: linker errors when building with dynamic Python 3.9
Problem:    Linker errors when building with dynamic Python 3.9.
Solution:   Add #defined items. (closes #6461)
2020-07-16 22:15:53 +02:00
a90afb9a59 patch 8.2.1224: Vim9: arguments from partial are not used
Problem:    Vim9: arguments from partial are not used.
Solution:   Put the partial arguments on the stack. (closes #6460)
2020-07-15 22:38:56 +02:00
e30f64b4b5 patch 8.2.1223: Vim9: invalid type error for function default value
Problem:    Vim9: invalid type error for function default value.
Solution:   Use right argument index. (closes #6458)
2020-07-15 19:48:20 +02:00
657a826c07 patch 8.2.1222: using valgrind in Vim command started by test doesn't work
Problem:    When using valgrind a Vim command started by a test uses the same
            log file name which gets overwritten.
Solution:   Fix regexp to rename the log file.
2020-07-15 18:29:18 +02:00
02f9e6a60f patch 8.2.1221: memory leak when updating popup window
Problem:    Memory leak when updating popup window.
Solution:   Clear search highlighting.
2020-07-15 18:27:08 +02:00
452143c6bf patch 8.2.1220: memory access error when dragging a popup window
Problem:    memory access error when dragging a popup window over a buffer
            with folding.
Solution:   Avoid going over the end of the cache. (closes #6438)
2020-07-15 17:38:21 +02:00
5966ea105e patch 8.2.1219: symlink not followed if dirname ends in //
Problem:    Symlink not followed if dirname ends in //.
Solution:   Resolve symlink earlier. (Tomáš Janoušek, closes #6454)
2020-07-15 15:30:05 +02:00
3d48e25dcb patch 8.2.1218: Vim9: cannot use 'text'->func()
Problem:    Vim9: cannot use 'text'->func().
Solution:   Recognize string at start of command.
2020-07-15 14:15:52 +02:00
1e1f612bd4 patch 8.2.1217: startup test depends on random source file
Problem:    Startup test depends on random source file.
Solution:   Write a test file to find quickfix errors in.
2020-07-15 11:19:11 +02:00
b6e4e4c6f7 patch 8.2.1216: startup test fails
Problem:    Startup test fails.
Solution:   Adjust expected values for deleted lines.
2020-07-15 01:37:36 +02:00
e3f915d12c patch 8.2.1215: Atari MiNT support is outdated
Problem:    Atari MiNT support is outdated.
Solution:   Nobody responded this code is still useful, so let's delete it.
2020-07-14 23:02:44 +02:00
ceb56ddbaf patch 8.2.1214: MS-Windows: default _vimrc not correct in silent install mode
Problem:    MS-Windows: default _vimrc not correct in silent install mode.
Solution:   Add the LoadDefaultVimrc macro. (Ken Takata, closes #6451)
2020-07-14 22:24:40 +02:00
297bec0731 patch 8.2.1213: mouse codes not tested sufficiently
Problem:    Mouse codes not tested sufficiently.
Solution:   Add more tests for mouse codes. (closes #6436)
2020-07-14 22:11:04 +02:00
5551b131da patch 8.2.1212: cannot build with Lua 5.4
Problem:    Cannot build with Lua 5.4.
Solution:   Use luaL_typeerror instead defining it. (closes #6454)
2020-07-14 21:54:28 +02:00
8455c5ed31 patch 8.2.1211: removed more than dead code
Problem:    Removed more than dead code.
Solution:   Put back the decrement.
2020-07-14 21:22:30 +02:00
1f22cc5cdb patch 8.2.1210: using ht_used when looping through a hashtab is less reliable
Problem:    Using ht_used when looping through a hashtab is less reliable.
Solution:   Use ht_changed in a few more places.
2020-07-14 21:08:49 +02:00
21c16f868d patch 8.2.1209: Vim9: test failure
Problem:    Vim9: test failure.
Solution:   Add missing changes to hashtab.
2020-07-14 16:15:34 +02:00
49fe0d6b28 patch 8.2.1208: build failure
Problem:    Build failure.
Solution:   Add missing change.
2020-07-14 15:47:23 +02:00
7ce85be63b patch 8.2.1207: Vim9: crash in expr test when run in the GUI
Problem:    Vim9: crash in expr test when run in the GUI.
Solution:   Break out of loop over hashtab also when function got removed and
            added.
2020-07-14 15:01:05 +02:00
1bce831e13 patch 8.2.1206: Vim9: crash in expr test when run in the GUI
Problem:    Vim9: crash in expr test when run in the GUI.
Solution:   Temporarily comment out two test lines.
2020-07-13 23:22:54 +02:00
8c34ea54ad patch 8.2.1205: Vim9: && and || work different when not compiled
Problem:    Vim9: && and || work different when not compiled.
Solution:   Keep the value.
2020-07-13 22:29:02 +02:00
5d2eb0fff0 patch 8.2.1204: Vim9: true and false not recognized in Vim9 script
Problem:    Vim9: true and false not recognized in Vim9 script.
Solution:   Recognize true and false.
2020-07-13 21:59:33 +02:00
3ac9c4701a patch 8.2.1203: unused assignments in expression evaluation
Problem:    Unused assignments in expression evaluation.
Solution:   Move declarations and assignments to inner blocks where possible.
2020-07-13 21:28:03 +02:00
08f7a41b0a patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Problem:    Vim9: crash when calling a closure from a builtin function.
Solution:   Use the current execution context. (closes #6441)
2020-07-13 20:41:08 +02:00
f1a2368d81 patch 8.2.1201: Vim9: crash when passing number as dict key
Problem:    Vim9: crash when passing number as dict key.
Solution:   Check key type to be string. (closes #6449)
2020-07-13 18:55:48 +02:00
bfd65589d9 patch 8.2.1200: Vim9: cannot disassemble a lambda function
Problem:    Vim9: cannot disassemble a lambda function.
Solution:   Recognize "<lambda>123" as a function name.
2020-07-13 18:18:00 +02:00
7177da9dd4 patch 8.2.1199: not all assert functions are fully tested
Problem:    Not all assert functions are fully tested.
Solution:   Test more assert functions.
2020-07-12 23:09:20 +02:00
a4b442614c patch 8.2.1198: terminal2 test sometimes hangs in the GUI on Travis
Problem:    Terminal2 test sometimes hangs in the GUI on Travis.
Solution:   Move test function to terminal3 to see if the problem moves too.
2020-07-12 21:38:29 +02:00
c212dd0a34 patch 8.2.1197: clientserver test still fails on MS-Windows
Problem:    Clientserver test still fails on MS-Windows.
Solution:   Expect a different error message.
2020-07-12 20:49:29 +02:00
83e7450053 patch 8.2.1196: build failure with normal features
Problem:    Build failure with normal features.
Solution:   Add #ifdef.
2020-07-12 20:44:37 +02:00
4d57ba0202 patch 8.2.1195: clientserver test fails on MS-Windows
Problem:    Clientserver test fails on MS-Windows.
Solution:   Expect a different error message.
2020-07-12 20:00:24 +02:00
a4dc6f92bb patch 8.2.1194: test failure because shell prompt differs
Problem:    Test failure because shell prompt differs.
Solution:   Set the shell prompt.
2020-07-12 19:52:36 +02:00
35910f2d54 patch 8.2.1193: terminal window not redrawn when dragging a popup window
Problem:    Terminal window not redrawn when dragging a popup window over it.
Solution:   Redraw terminal window. (fixes #6438)
2020-07-12 19:24:10 +02:00
b898a029b0 patch 8.2.1192: Lua test fails with older Lua version
Problem:    Lua test fails with older Lua version.
Solution:   Adjust expected error messages. (closes #6444)
2020-07-12 18:33:53 +02:00
985116ae0b patch 8.2.1191: Vim9: crash when function calls itself
Problem:    Vim9: crash when function calls itself.
Solution:   Add status UF_COMPILING. (closes #6441)
2020-07-12 17:31:09 +02:00
eb6880b6eb patch 8.2.1190: Vim9: checking for Vim9 syntax is spread out
Problem:    Vim9: checking for Vim9 syntax is spread out.
Solution:   Use in_vim9script().
2020-07-12 17:07:05 +02:00
8af81d656a patch 8.2.1189: Vim9: line continuation in lambda doesn't always work
Problem:    Vim9: line continuation in lambda doesn't always work.
Solution:   Do not use a local evalarg unless there isn't one. (closes #6439)
2020-07-12 16:32:19 +02:00
6d3a7213f5 patch 8.2.1188: memory leak with invalid json input
Problem:    Memory leak with invalid json input.
Solution:   Free all keys at the end. (Dominique Pellé, closes #6443,
            closes #6442)
2020-07-12 14:34:00 +02:00
c85156bb89 patch 8.2.1187: terminal2 test sometimes hangs in the GUI on Travis
Problem:    Terminal2 test sometimes hangs in the GUI on Travis.
Solution:   Disable Test_zz2_terminal_guioptions_bang() for now.
2020-07-12 14:09:23 +02:00
13c046316b patch 8.2.1186: with SGR mouse codes balloon doesn't show up after click
Problem:    With SGR mouse codes balloon doesn't show up after click.
Solution:   Add the MOUSE_RELEASE bits to mouse_code.
2020-07-12 13:47:42 +02:00
ecdd14a427 patch 8.2.1185: some other tests fail
Problem:    Some other tests fail.
Solution:   Adjust tests for different assert_fails() behavior.
2020-07-11 22:49:59 +02:00
2b6ef856fb patch 8.2.1184: some tests fail
Problem:    Some tests fail.
Solution:   Adjust tests for different assert_fails() behavior.  Remove unused
            variable.
2020-07-11 22:25:57 +02:00
9b7bf9e98f patch 8.2.1183: assert_fails() checks the last error message
Problem:    assert_fails() checks the last error message.
Solution:   Check the first error, it is more relevant.  Fix all the tests
            that rely on the old behavior.
2020-07-11 22:14:59 +02:00
914e7eaa67 patch 8.2.1182: Vim9: no check for whitespace after comma in lambda
Problem:    Vim9: no check for whitespace after comma in lambda.
Solution:   Give error if white space is missing.
2020-07-11 15:20:48 +02:00
21e5bdd271 patch 8.2.1181: json code not fully tested
Problem:    Json code not fully tested.
Solution:   Add more test coverage. (Dominique Pellé, closes #6433)
2020-07-11 14:26:08 +02:00
1e624c912d patch 8.2.1180: build failure in small version
Problem:    Build failure in small version.
Solution:   Add #ifdef.
2020-07-11 14:08:04 +02:00
f65927fc8d patch 8.2.1179: Test_termwinscroll() sometimes hangs in the GUI
Problem:    Test_termwinscroll() sometimes hangs in the GUI.
Solution:   Skip the test in the GUI.
2020-07-11 14:04:28 +02:00
b074e8b8d4 patch 8.2.1178: Vim9: filter function recognized as command modifier
Problem:    Vim9: filter function recognized as command modifier, leading to a
            crash.
Solution:   Clear cmdmod after freeing items.  Do not recognize a command
            modifier followed by non-white space. (closes #6434)
2020-07-11 13:40:45 +02:00
18aa13d13b patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Problem:    Terminal2 test sometimes hangs in the GUI.
Solution:   Move some tests to other files to further locate the problem.
            Set the GUI to a fixed screen size.
2020-07-11 13:09:36 +02:00
543e6f3467 patch 8.2.1176: Vim9: not enough type checking in Vim9 script
Problem:    Vim9: not enough type checking in Vim9 script.
Solution:   Use same type checking as in a :def function.
2020-07-10 22:45:38 +02:00
7ff78465f7 Update runtime files 2020-07-10 22:00:53 +02:00
a7eedf317a patch 8.2.1175: Vim9: cannot split a line before ".member"
Problem:    Vim9: Cannot split a line before ".member".
Solution:   Check for ".member" after line break.
2020-07-10 21:50:41 +02:00
11a5b19a8c patch 8.2.1174: no test for the "recording @x" message
Problem:    No test for the "recording @x" message.
Solution:   Add a test. (Dominique Pellé, closes #6427)
2020-07-10 21:17:51 +02:00
4004315292 patch 8.2.1173: tee doesn't build on some systems
Problem:    Tee doesn't build on some systems.
Solution:   Include header files. (Dominique Pelle, closes #6431)
2020-07-10 20:45:31 +02:00
08fc48492a patch 8.2.1172: error messages when doing "make clean" in doc or tee
Problem:    Error messages when doing "make clean" in the runtime/doc or
            src/tee directories.
Solution:   Use "rm -f".
2020-07-10 20:40:23 +02:00
58bb61cf5e patch 8.2.1171: possible crash when out of memory
Problem:    Possible crash when out of memory.
Solution:   Check for NULL pointer. (Dominique Pellé, closes #6432)
2020-07-10 20:30:12 +02:00
ef85a9b2d9 patch 8.2.1170: cursor off by one with block paste while 'virtualedit' "all"
Problem:    Cursor off by one with block paste while 'virtualedit' is "all".
Solution:   Adjust condition. (Hugo Gualandi, closes #6430)
2020-07-10 20:24:07 +02:00
97d2f34c87 patch 8.2.1169: write NUL past allocated space using corrupted spell file
Problem:    Write NUL past allocated space using corrupted spell file.
            (Markus Vervier)
Solution:   Init "c" every time.
2020-07-10 20:03:03 +02:00
92053ce59e patch 8.2.1168: wrong method argument for appendbufline()
Problem:    Wrong method argument for appendbufline().
Solution:   Use FEARG_3.
2020-07-09 22:53:30 +02:00
389df259c4 patch 8.2.1167: Vim9: builtin function method call only supports first arg
Problem:    Vim9: builtin function method call only supports first argument.
Solution:   Shift arguments when needed. (closes #6305, closes #6419)
2020-07-09 21:20:47 +02:00
ae97b94176 patch 8.2.1166: once mouse move events are enabled getchar() returns them
Problem:    Once mouse move events are enabled getchar() returns them.
Solution:   Ignore K_MOUSEMOVE in getchar(). (closes #6424)
2020-07-09 19:16:35 +02:00
e4358906fd patch 8.2.1165: insufficient testing for the Tcl interface
Problem:    Insufficient testing for the Tcl interface.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6423)
2020-07-09 18:49:23 +02:00
96916ac67a patch 8.2.1164: text cleared by checking terminal properties not redrawn
Problem:    Text cleared by checking terminal properties not redrawn. (Alexey
            Radkov)
Solution:   Mark the screen characters as invalid. (closes #6422)
2020-07-08 23:09:28 +02:00
6e13530ca0 patch 8.2.1163: build error
Problem:    Build error.
Solution:   Add missing change to globals.
2020-07-08 22:36:17 +02:00
efaaaa683b patch 8.2.1162: crash when using a lambda
Problem:    Crash when using a lambda.
Solution:   Check for evalarg to be NULL.
2020-07-08 22:24:09 +02:00
8e2730a315 patch 8.2.1161: Vim9: using freed memory
Problem:    Vim9: using freed memory.
Solution:   Put pointer back in evalarg instead of freeing it.
2020-07-08 22:01:49 +02:00
6110e79a58 patch 8.2.1160: Vim9: memory leak in allocated types
Problem:    Vim9: memory leak in allocated types.
Solution:   Free the type pointers.
2020-07-08 19:35:21 +02:00
6b7a0a8c20 patch 8.2.1159: Vim9: no error for missing space after a comma
Problem:    Vim9: no error for missing space after a comma.
Solution:   Check for white space.
2020-07-08 18:38:08 +02:00
b335b29e1c patch 8.2.1158: build error
Problem:    Build error.
Solution:   Add missing change to globals.
2020-07-08 18:34:57 +02:00
0a47e0970a patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Problem:    Vim9: dict.name is not recognized as an expression.
Solution:   Recognize ".name". (closes #6418)
2020-07-08 18:30:06 +02:00
002262f4de patch 8.2.1156: Vim9: No error for invalid command in compiled function
Problem:    Vim9: No error for invalid command in compiled function.
Solution:   Handle CMD_SIZE.
2020-07-08 17:47:57 +02:00
7a4b8980ea patch 8.2.1155: Vim9: cannot handle line break inside lambda
Problem:    Vim9: cannot handle line break inside lambda.
Solution:   Pass the compilation context through. (closes #6407, closes #6409)
2020-07-08 17:36:21 +02:00
c620c055ce patch 8.2.1154: Vim9: crash when using imported function
Problem:    Vim9: crash when using imported function.
Solution:   Check for a function type.  Set the script context when calling a
            function. (closes #6412)
2020-07-08 15:16:19 +02:00
bed36b939a patch 8.2.1153: Vim9: script test fails on some systems
Problem:    Vim9: script test fails on some systems.
Solution:   Return proper value from Compare().
2020-07-07 23:31:36 +02:00
fe465a01cf patch 8.2.1152: Vim9: function reference is missing script prefix
Problem:    Vim9: function reference is missing script prefix.
Solution:   Use the actual function name instead of the name searched for in
            the script context. (closes #6412)
2020-07-07 22:50:12 +02:00
0ab55d6201 patch 8.2.1151: insufficient test coverage for Python
Problem:    Insufficient test coverage for Python.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #6415)
2020-07-07 20:50:39 +02:00
bb790dcc46 patch 8.2.1150: ml_get error when using Python
Problem:    ml_get error when using Python. (Yegappan Lakshmanan)
Solution:   Check the line number is not out of range.  Call "Check" with
            "fromObj" instead of "from".
2020-07-07 20:12:54 +02:00
007f9d6ed5 patch 8.2.1149: Vim9: :eval command not handled properly
Problem:    Vim9: :eval command not handled properly.
Solution:   Compile the :eval command. (closes #6408)
2020-07-06 23:04:49 +02:00
cbb6bdcd89 patch 8.2.1148: warning for using int instead of size_t
Problem:    Warning for using int instead of size_t.
Solution:   Change "len" argument to size_t. (Mike Williams)
2020-07-06 21:53:17 +02:00
27321dbeed patch 8.2.1147: :confirm may happen in cooked mode
Problem:    :confirm may happen in cooked mode. (Jason Franklin)
Solution:   Switch to raw mode before prompting. (Brandon Pfeifer)
2020-07-06 21:24:57 +02:00
ab58946384 patch 8.2.1146: not enough testing for Python
Problem:    Not enough testing for Python.
Solution:   Add more tests.  Fix uncovered problems. (Yegappan Lakshmanan,
            closes #6392)
2020-07-06 21:03:06 +02:00
0ad3e894d7 patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Problem:    Vim9: "for" only accepts a list at compile time.
Solution:   Also accept a list at runtime.
2020-07-05 21:38:11 +02:00
67627355ac patch 8.2.1144: Vim9: return type of reverse() is any
Problem:    Vim9: return type of reverse() is any.
Solution:   Use the type of the first argument.
2020-07-05 21:10:24 +02:00
ad7c249327 patch 8.2.1143: Vim9: return type of remove() is any
Problem:    Vim9: return type of remove() is any.
Solution:   Use the member type of the first argument, if known.
2020-07-05 20:55:29 +02:00
252e88a785 patch 8.2.1142: Vim9: return type of insert() is any
Problem:    Vim9: return type of insert() is any.
Solution:   Use type of the first argument.
2020-07-05 20:47:18 +02:00
0d94ad6958 patch 8.2.1141: Vim9: return type of filter() is any
Problem:    Vim9: return type of filter() is any.
Solution:   Use type of the argument.
2020-07-05 20:16:41 +02:00
b3c019cbc3 patch 8.2.1140: Vim9: return type of extend() is any
Problem:    Vim9: return type of extend() is any.
Solution:   Use type of the argument.
2020-07-05 20:08:39 +02:00
8f510afcd6 patch 8.2.1139: Vim9: test for silent echo fails in some environments
Problem:    Vim9: test for silent echo fails in some environments.
Solution:   Use :function instead of :def.
2020-07-05 18:48:23 +02:00
a66ba01a5f patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Problem:    Vim9: return type of copy() and deepcopy() is any.
Solution:   Use type of the argument.
2020-07-05 18:41:08 +02:00
47e7d70b58 patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Problem:    Vim9: modifiers not cleared after compiling function.
Solution:   Clear command modifiers. (closes #6396)
2020-07-05 18:18:42 +02:00
846178a72c patch 8.2.1136: Vim9: return type of argv() is always any
Problem:    Vim9: return type of argv() is always any.
Solution:   Use list<string> if there is no argument.
2020-07-05 17:04:13 +02:00
50788ef349 patch 8.2.1135: Vim9: getting a dict member may not work
Problem:    Vim9: getting a dict member may not work.
Solution:   Clear the dict only after copying the item.
2020-07-05 16:51:26 +02:00
435d89789e patch 8.2.1134: Vim9: getting a list member may not work
Problem:    Vim9: getting a list member may not work.
Solution:   Clear the list only after copying the item. (closes #6393)
2020-07-05 16:42:13 +02:00
fce82b3aa7 patch 8.2.1133: Vim9: return type of add() is not specific enough
Problem:    Vim9: return type of add() is not specific enough.
Solution:   Return the type of the first argument. (closes #6395)
2020-07-05 16:07:21 +02:00
9978d473e3 patch 8.2.1132: Vim9: return type of repeat() is not specific enough
Problem:    Vim9: return type of repeat() is not specific enough.
Solution:   Return the type of the first argument. (closes #6395)
2020-07-05 16:01:56 +02:00
05a5551a86 patch 8.2.1131: Vim9: error message for returning a value is not clear
Problem:    Vim9: error message for returning a value in a function that does
            not return anything is not clear.
Solution:   Add a specific message.
2020-07-05 15:52:19 +02:00
788123c00c patch 8.2.1130: Vim9: bar not recognized after function call
Problem:    Vim9: bar not recognized after function call
Solution:   Skip whitespace. (closes #6391)
2020-07-05 15:32:17 +02:00
e9f262bdff patch 8.2.1129: Vim9: bar not recognized after not compiled command
Problem:    Vim9: bar not recognized after not compiled command.
Solution:   Check for bar for commands where this is possible. (closes #6391)
2020-07-05 14:57:51 +02:00
3f40ce78f5 patch 8.2.1128: the write message mentions characters, but it's bytes
Problem:    The write message mentions characters, but it's actually bytes.
Solution:   Change "C" to "B" and "characters" to "bytes".
2020-07-05 14:10:13 +02:00
fb9d5c51c8 patch 8.2.1127: Vim9: getting a dict member may not work
Problem:    Vim9: getting a dict member may not work.
Solution:   Clear the dict only after copying the item. (closes #6390)
2020-07-04 19:19:43 +02:00
eeb27bfe28 patch 8.2.1126: Vim9: using :copen causes an error
Problem:    Vim9: using :copen causes an error.
Solution:   Add flag LET_NO_COMMAND in set_var().
2020-07-04 17:39:10 +02:00
962d721319 patch 8.2.1125: Vim9: double quote can be a string or a comment
Problem:    Vim9: double quote can be a string or a comment.
Solution:   Only support comments starting with # to avoid confusion.
2020-07-04 14:15:00 +02:00
1c991144c5 patch 8.2.1124: Vim9: no line break allowed in :import command
Problem:    Vim9: no line break allowed in :import command.
Solution:   Skip over line breaks.
2020-07-04 13:15:31 +02:00
effb0cd75d patch 8.2.1123: Python 3 test is old style
Problem:    Python 3 test is old style.
Solution:   Turn into new style test. (Yegappan Lakshmanan, closes #6385)
2020-07-03 21:17:34 +02:00
442af2f89e patch 8.2.1122: Vim9: line continuation in dict member not recognized
Problem:    Vim9: line continuation in dict member not recognized.
Solution:   Check for line continuation.
2020-07-03 21:09:52 +02:00
743d062020 patch 8.2.1121: command completion not working after ++arg
Problem:    Command completion not working after ++arg.
Solution:   Move skipping up. (Christian Brabandt, closes #6382)
2020-07-03 18:15:06 +02:00
92fdd1e75d patch 8.2.1120: Python code not tested properly
Problem:    Python code not tested properly.
Solution:   Add more tests and convert old-style test into new-style test.
            (Yegappan Lakshmanan, closes #6370)
2020-07-03 18:00:05 +02:00
5289783e0b patch 8.2.1119: configure fails with Xcode 12 beta
Problem:    Configure fails with Xcode 12 beta.
Solution:   use "return" instead of "exit()". (Nico Weber, closes #6381)
2020-07-02 22:50:37 +02:00
810af5ea46 patch 8.2.1118: condition can never be true, dead code
Problem:    Condition can never be true, dead code.
Solution:   Remove the dead code.
2020-07-02 21:23:42 +02:00
a9a8e5f0dc patch 8.2.1117: Coverity warns for unsing unitialized field
Problem:    Coverity warns for unsing unitialized field.
Solution:   Initialize v_lock.
2020-07-02 21:17:57 +02:00
d2ef6b320b patch 8.2.1116: Vim9: parsing command checks for list twice
Problem:    Vim9: parsing command checks for list twice.
Solution:   Adjust how a command is parsed.
2020-07-02 21:11:34 +02:00
c19fd917be patch 8.2.1115: iminsert test fails when compiled with VIMDLL
Problem:    Iminsert test fails when compiled with VIMDLL.
Solution:   Change condition. (Ken Takata, closes #6376)
2020-07-02 20:59:05 +02:00
1112c0febb patch 8.2.1114: terminal test sometimes times out
Problem:    Terminal test sometimes times out.
Solution:   Split the test in two parts.
2020-07-01 21:53:50 +02:00
a0d072ef82 patch 8.2.1113: no test for verbose output of :call
Problem:    No test for verbose output of :call.
Solution:   Add a test.
2020-07-01 20:19:37 +02:00
5f195938d4 patch 8.2.1112: Vim9: no line continuation allowed in method call
Problem:    Vim9: no line continuation allowed in method call.
Solution:   Handle line continuation in expression before method call.
2020-07-01 20:07:14 +02:00
9a78e6df17 patch 8.2.1111: inconsistent naming of get_list_tv() and eval_dict()
Problem:    Inconsistent naming of get_list_tv() and eval_dict().
Solution:   Rename get_list_tv() to eval_list().  Similarly for eval_number(),
            eval_string(), eval_lit_string() and a few others.
2020-07-01 18:29:55 +02:00
e6b5324e3a patch 8.2.1110: Vim9: line continuation does not work in function arguments
Problem:    Vim9: line continuation does not work in function arguments.
Solution:   Pass "evalarg" to get_func_tv().  Fix seeing double quoted string
            as comment.
2020-07-01 17:28:33 +02:00
086eb18ba1 patch 8.2.1109: still crashing when using s:variable
Problem:    Still crashing when using s:variable.
Solution:   Remove assignment. (Ken Takata)
2020-07-01 16:00:44 +02:00
d58d4f90ae patch 8.2.1108: mouse left-right scroll is not supported in terminal window
Problem:    Mouse left-right scroll is not supported in terminal window.
Solution:   Implement mouse codes 6 and 7. (Trygve Aaberge, closes #6363)
2020-07-01 15:49:29 +02:00
ef8c617b9c patch 8.2.1107: 'imactivatefunc' and 'imstatusfunc' are not used in the GUI
Problem:    'imactivatefunc' and 'imstatusfunc' are not used in the GUI.
Solution:   Adjust the #ifdefs. (closes #6367)
2020-07-01 15:12:44 +02:00
8e6cbb7232 patch 8.2.1106: crash when trying to use s: variable in typed command
Problem:    Crash when trying to use s: variable in typed command.
Solution:   Don't use the script index when not set. (Ken Takata,
            closes #6366)
2020-07-01 14:38:12 +02:00
e49b8e8d75 patch 8.2.1105: insufficient test coverage for Lua
Problem:    Insufficient test coverage for Lua.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6368)  Fix uncovered
            memory leak.  Avoid unnecessary copy/free.
2020-07-01 13:52:55 +02:00
11b6600c88 patch 8.2.1104: Coverity warnts for possible NULL pointer use
Problem:    Coverity warnts for possible NULL pointer use.
Solution:   Check "pbyts" is not NULL.
2020-07-01 13:15:24 +02:00
e707c882b2 patch 8.2.1103: Coverity reports an unnecessary NULL check
Problem:    Coverity reports an unnecessary NULL check.
Solution:   Remove the check for NULL.
2020-07-01 13:07:37 +02:00
9004949221 patch 8.2.1102: Coverity gets confused by an unnecessary NULL check
Problem:    Coverity gets confused by an unnecessary NULL check.
Solution:   Remove the check for NULL.
2020-07-01 13:04:05 +02:00
be7a50c22f patch 8.2.1101: no error when using wrong arguments for setqflist()
Problem:    No error when using wrong arguments for setqflist() or
            setloclist().
Solution:   Check for the error.
2020-06-30 22:11:44 +02:00
47e880d6c1 patch 8.2.1100: Vim9: cannot use line break in :execute argument
Problem:    Vim9: cannot use line break in :execute, :echomsg and :echoerr
            argument.
Solution:   Check for line break.
2020-06-30 22:02:02 +02:00
37c8371195 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Problem:    Vim9: cannot use line break in :cexpr argument.
Solution:   Check for line break.
2020-06-30 21:18:36 +02:00
006ad48b8a patch 8.2.1098: Vim9: cannot use line break in :throw argument
Problem:    Vim9: cannot use line break in :throw argument.
Solution:   Check for line break.
2020-06-30 20:55:15 +02:00
e46a440505 Runtime file updates 2020-06-30 20:38:27 +02:00
de8f0f47f6 patch 8.2.1097: highlight code not sufficiently tested
Problem:    Highlight code not sufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6359)
2020-06-30 18:45:43 +02:00
f151ad1c70 patch 8.2.1096: Vim9: return type of getqflist() is wrong
Problem:    Vim9: return type of getqflist() is wrong.
Solution:   Let the return type depend on the arguments.  Also for
            getloclist(). (closes #6367)
2020-06-30 13:38:01 +02:00
6b949615ed patch 8.2.1095: may use pointer after freeing it
Problem:    May use pointer after freeing it when text properties are used.
Solution:   Update redo buffer before calling ml_replace().
2020-06-29 23:18:42 +02:00
a53618dd1d patch 8.2.1094: dead code in libvterm
Problem:    Dead code in libvterm.
Solution:   Remove condition that is always true.
2020-06-29 23:14:02 +02:00
de19b745ee patch 8.2.1093: Python: double free when adding item to dict fails
Problem:    Python: double free when adding item to dict fails.
Solution:   Remove vim_free() call.
2020-06-29 23:07:44 +02:00
cf070112ca patch 8.2.1092: not checking if saving for undo succeeds
Problem:    Not checking if saving for undo succeeds.
Solution:   Bail out if u_savesub() returns FAIL.
2020-06-29 23:02:21 +02:00
d034220c54 patch 8.2.1091: no check if opening a pty works
Problem:    No check if opening a pty works.
Solution:   Check for invalid file descriptor.
2020-06-29 22:40:42 +02:00
9b5384b97e patch 8.2.1090: may use NULL pointer when skipping over name
Problem:    May use NULL pointer when skipping over name.
Solution:   Always set ll_name_end.
2020-06-29 22:31:36 +02:00
927b7dd0fe patch 8.2.1089: Coverity warns for pointer computation
Problem:    Coverity warns for pointer computation.
Solution:   Avoid computing a pointer to invalid memory.
2020-06-29 22:24:56 +02:00
6378b21d6d patch 8.2.1088: a very long translation might cause a buffer overflow
Problem:    A very long translation might cause a buffer overflow.
Solution:   Trunctate the message if needed.
2020-06-29 21:32:06 +02:00
566cc8c72b patch 8.2.1087: possible memory leak when file expansion fails
Problem:    Possible memory leak when file expansion fails.
Solution:   Clear the grow array when returning FAIL.  Use an error message
            instead of an empty string.
2020-06-29 21:14:51 +02:00
cf30643ae6 patch 8.2.1086: possibly using freed memory when text properties used
Problem:    Possibly using freed memory when text properties used when
            changing indent of a line.
Solution:   Compute the offset before calling ml_replace().
2020-06-29 20:40:37 +02:00
6d90c61c5a patch 8.2.1085: Coverity complains about ignoring dict_add() return value
Problem:    Coverity complains about ignoring dict_add() return value.
Solution:   Add (void).
2020-06-29 20:23:32 +02:00
7d2ac92ebc patch 8.2.1084: Lua: registering function has useless code
Problem:    Lua: registering function has useless code.
Solution:   Remove clearing grow arrays.
2020-06-29 20:20:33 +02:00
fda20c4cc5 patch 8.2.1083: crash when using reduce() on a NULL list
Problem:    Crash when using reduce() on a NULL list.
Solution:   Only access the list when not NULL.
2020-06-29 20:09:36 +02:00
91639195ef patch 8.2.1082: Coverity complains about ignoring dict_add() return value
Problem:    Coverity complains about ignoring dict_add() return value.
Solution:   Add (void).
2020-06-29 19:55:58 +02:00
a1f9f8666e patch 8.2.1081: Lua: cannot use table.insert() and table.remove()
Problem:    Lua: cannot use table.insert() and table.remove().
Solution:   Add the list functions. (Prabir Shrestha, closes #6353)
2020-06-28 22:41:26 +02:00
b7a78f7a67 patch 8.2.1080: Vim9: no line break allowed in a for loop
Problem:    Vim9: no line break allowed in a for loop.
Solution:   Skip line breaks in for command.
2020-06-28 18:43:40 +02:00
d5053d015a patch 8.2.1079: Vim9: no line break allowed in a while loop
Problem:    Vim9: no line break allowed in a while loop.
Solution:   Update stored loop lines when finding line breaks.
2020-06-28 15:51:16 +02:00
06cf97e714 patch 8.2.1078: highlight and match functionality together in one file
Problem:    Highlight and match functionality together in one file.
Solution:   Move match functionality to a separate file. (Yegappan Lakshmanan,
            closes #6352)
2020-06-28 13:17:26 +02:00
75e15670b8 patch 8.2.1077: no enough test coverage for highlighting
Problem:    No enough test coverage for highlighting.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6351)
2020-06-28 13:10:22 +02:00
faf8626b79 patch 8.2.1076: Vim9: no line break allowed in :if expression
Problem:    Vim9: no line break allowed in :if expression.
Solution:   Skip linebreak.
2020-06-27 23:07:36 +02:00
7e8967fdcd patch 8.2.1075: Vim9: no line break allowed in :echo expression
Problem:    Vim9: no line break allowed in :echo expression.
Solution:   Skip linebreak.
2020-06-27 21:56:17 +02:00
9215f01218 patch 8.2.1074: Vim9: no line break allowed after some operators
Problem:    Vim9: no line break allowed after some operators.
Solution:   Skip a line break after the operator.  Add
            eval_may_get_next_line() to simplify checking for a line break.
2020-06-27 21:18:00 +02:00
7a4981b936 patch 8.2.1073: Vim9: no line break allowed in () expression
Problem:    Vim9: no line break allowed in () expression.
Solution:   Skip a line break.
2020-06-27 20:46:29 +02:00
a0a0c4147f patch 8.2.1072: missing libvterm test
Problem:    Missing libvterm test.
Solution:   Sync with libvterm revision 768.
2020-06-27 18:13:10 +02:00
e40fbc2ca9 patch 8.2.1071: Vim9: no line break allowed inside a lambda
Problem:    Vim9: no line break allowed inside a lambda.
Solution:   Handle line break inside a lambda in Vim9 script.
2020-06-27 18:06:45 +02:00
ab19d495fd patch 8.2.1070: Vim9: leaking memory when lacking white space in dict
Problem:    Vim9: leaking memory when lacking white space in dict.
Solution:   Clear the typval.
2020-06-27 17:04:05 +02:00
e6e031739c patch 8.2.1069: Vim9: fail to check for white space in list
Problem:    Vim9: fail to check for white space in list.
Solution:   Add check for white space.
2020-06-27 16:36:05 +02:00
8ea9390b78 patch 8.2.1068: Vim9: no line break allowed inside a dict
Problem:    Vim9: no line break allowed inside a dict.
Solution:   Handle line break inside a dict in Vim9 script.
2020-06-27 14:11:53 +02:00
0b1cd52ff6 patch 8.2.1067: expression "!expr->func()" does not work
Problem:    Expression "!expr->func()" does not work.
Solution:   Apply plus and minus earlier. (closes #6348)
2020-06-27 13:11:50 +02:00
bd84617d1a patch 8.2.1066: Lua arrays are zero based
Problem:    Lua arrays are zero based.
Solution:   Make Lua arrays one based. (Prabir Shrestha, closes #6347)
            Note: this is not backwards compatible.
2020-06-27 12:32:57 +02:00
7147820cb9 patch 8.2.1065: Vim9: no line break allowed inside a list
Problem:    Vim9: no line break allowed inside a list.
Solution:   Handle line break inside a list in Vim9 script.
2020-06-26 22:46:27 +02:00
e6536aa766 patch 8.2.1064: Vim9: no line break allowed before comperators
Problem:    Vim9: no line break allowed before comperators.
Solution:   Check for comperator after line break.
2020-06-26 22:00:38 +02:00
be7ee48876 patch 8.2.1063: Vim9: no line break allowed before || or &&
Problem:    Vim9: no line break allowed before || or &&.
Solution:   Check for operator after line break.
2020-06-26 21:38:51 +02:00
793648fb56 patch 8.2.1062: Vim9: no line break allowed inside "cond ? val1 : val2"
Problem:    Vim9: no line break allowed inside "cond ? val1 : val2".
Solution:   Check for operator after line break.
2020-06-26 21:28:25 +02:00
5d3c9f8c2a patch 8.2.1061: insufficient testing for src/window.c
Problem:    Insufficient testing for src/window.c.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6345)
2020-06-26 20:41:39 +02:00
5f36d5fbb8 patch 8.2.1060: not all elinks files are recognized
Problem:    Not all elinks files are recognized.
Solution:   Just check for "elinks.conf". (Guido Cella, closes #6337)
2020-06-26 20:23:45 +02:00
cf8441704d patch 8.2.1059: crash when using :tabonly in an autocommand
Problem:    Crash when using :tabonly in an autocommand. (Yegappan Lakshmanan)
Solution:   Do not allow the autocommand window to be closed.
2020-06-26 19:44:06 +02:00
fc838d6cb0 patch 8.2.1058: multiline conceal causes display errors
Problem:    Multiline conceal causes display errors.
Solution:   Do not allow conceal cross over EOL. (closes #6326, closes #4854,
            closes #6302)
2020-06-25 22:23:48 +02:00
1e4c7d0ed2 patch 8.2.1057: cannot build with dynamic Lua
Problem:    Cannot build with dynamic Lua.
Solution:   Add dll variables.
2020-06-25 20:56:42 +02:00
211dd3fd82 patch 8.2.1056: wrong display when mixing match conceal and syntax conceal
Problem:    Wrong display when mixing match conceal and syntax conceal.
Solution:   Adjust how conceal flags are used. (closes #6327, closes #6303)
2020-06-25 20:07:04 +02:00
73b4465ba7 patch 8.2.1055: no filetype set for pacman config files
Problem:    No filetype set for pacman config files.
Solution:   Recognize pacman.conf and *.hook. (Guido Cella, closes #6335)
2020-06-25 19:53:24 +02:00
801ab06934 patch 8.2.1054: not so easy to pass a lua function to Vim
Problem:    Not so easy to pass a lua function to Vim.
Solution:   Convert a Lua function and closure to a Vim funcref. (Prabir
            Shrestha, closes #6246)
2020-06-25 19:27:56 +02:00
832adf9bb8 patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Problem:    Insufficient testing for 'statusline' and 'tabline'.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6333)
2020-06-25 19:01:36 +02:00
7acde51832 patch 8.2.1052: build failure with older compilers
Problem:    Build failure with older compilers.
Solution:   Move declaration to start of block.
2020-06-24 23:02:40 +02:00
ca275a05d8 patch 8.2.1051: crash when changing a list while using reduce() on it
Problem:    Crash when changing a list while using reduce() on it.
Solution:   Lock the list. (closes #6330)
2020-06-24 22:07:46 +02:00
65a8ed37f7 patch 8.2.1050: missing change in struct
Problem:    Missing change in struct.
Solution:   Add missing change.
2020-06-24 21:00:25 +02:00
b171fb1790 patch 8.2.1049: Vim9: leaking memory when using continuation line
Problem:    Vim9: leaking memory when using continuation line.
Solution:   Keep a pointer to the continuation line in evalarg_T.  Centralize
            checking for a next command.
2020-06-24 20:34:03 +02:00
9d40c63c7d patch 8.2.1048: build failure without the eval feature
Problem:    Build failure without the eval feature.
Solution:   Add dummy typedef.
2020-06-24 19:05:29 +02:00
5409f5d8c9 patch 8.2.1047: Vim9: script cannot use line continuation like :def function
Problem:    Vim9: script cannot use line continuation like in a :def function.
Solution:   Pass the getline function pointer to the eval() functions.  Use it
            for addition and multiplication operators.
2020-06-24 18:37:35 +02:00
b7e2483655 patch 8.2.1046: insufficient tests for src/buffer.c
Problem:    Insufficient tests for src/buffer.c.
Solution:   Add more tests.  Move comments related tests to a separate file.
            (Yegappan Lakshmanan, closes #6325)
2020-06-24 13:37:35 +02:00
67fbdfefd2 patch 8.2.1045: Vim9: line break before operator does not work
Problem:    Vim9: line break before operator does not work.
Solution:   Peek the next line for an operator.
2020-06-23 22:26:05 +02:00
ef6d86c173 patch 8.2.1044: not all systemd file types are recognized
Problem:    Not all systemd file types are recognized.
Solution:   Match several more files. (Guido Cella, closes #6319)
2020-06-23 21:01:38 +02:00
4014e2ceb0 patch 8.2.1043: %a item in 'statusline' not tested
Problem:    %a item in 'statusline' not tested.
Solution:   Add a test. (Dominique Pellé, closes #6318)
2020-06-23 20:00:50 +02:00
df069eec3b patch 8.2.1042: Vim9: cannot put an operator on the next line
Problem:    Vim9: cannot put an operator on the next line.
Solution:   Require a colon before a range to see if that causes problems.
2020-06-22 23:02:51 +02:00
7eaafe65ee patch 8.2.1041: test summary is missing executed count
Problem:    Test summary is missing executed count.
Solution:   Adjust pattern used for counting.
2020-06-22 22:10:06 +02:00
bdd2c290d3 patch 8.2.1040: not enough testing for movement commands
Problem:    Not enough testing for movement commands.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6313)
2020-06-22 21:34:30 +02:00
25fd267287 patch 8.2.1039: cannot put NUL byte on clipboard
Problem:    Cannot put NUL byte on clipboard.
Solution:   Use the text length. (Christian Brabandt, closes #6312,
            closes #6149)
2020-06-22 20:30:27 +02:00
b2b218d89b patch 8.2.1038: popupwin test fails
Problem:    Popupwin test fails.
Solution:   Fix WaitForAssert() argument.
2020-06-22 20:22:19 +02:00
acd4c5e914 patch 8.2.1037: Vim9: crash when using line continuation inside :def
Problem:    Vim9: crash when using line continuation inside :def.
Solution:   Check for no more lines available.
2020-06-22 19:39:03 +02:00
373c65104e patch 8.2.1036: popupwin test fails sometimes
Problem:    Popupwin test fails sometimes.
Solution:   Use WaitForAssert() instead of a sleep.
2020-06-22 19:24:23 +02:00
7633fe595e patch 8.2.1035: setreg() does not always clear the register
Problem:    setreg() does not always clear the register.
Solution:   Clear the register if the dict argument is empty. (Andy Massimino,
            closes #3370)
2020-06-22 19:10:56 +02:00
38041da1c2 patch 8.2.1034: compiler warning for uninitialized variables
Problem:    Compiler warning for uninitialized variables.
Solution:   Add initializations. (John Marriott)
2020-06-21 22:17:18 +02:00
73fef33014 Update runtime files 2020-06-21 22:12:03 +02:00
8d9437968b patch 8.2.1033: not easy to read the test time in the test output
Problem:    Not easy to read the test time in the test output.
Solution:   Align the times.  Make slow tests bold.
2020-06-21 20:39:37 +02:00
7fe875583b patch 8.2.1032: error message for declaring a variable cannot be translated
Problem:    Error message for declaring a variable cannot be translated.
Solution:   Enclose in _().  Make environment variable a separate message.
2020-06-21 20:38:28 +02:00
f5433fbfe4 patch 8.2.1031: build failure with Perl5.32
Problem:    Build failure with Perl5.32.
Solution:   Define a few more functions. (Felix Yan, closes #6310)
2020-06-21 20:06:54 +02:00
da58134eed patch 8.2.1030: reducing size of a terminal window may cause a crash
Problem:    Reducing size of a terminal window may cause a crash.
Solution:   Make sure the row and column don't become negative. (closes #6273)
2020-06-21 17:57:32 +02:00
23c5527373 patch 8.2.1029: Vim9: cannot chain function calls with -> at line start
Problem:    Vim9: cannot chain function calls with -> at line start.
Solution:   Peek ahead for a following line starting with "->". (closes #6306)
2020-06-21 16:58:13 +02:00
e55b1c098d patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Problem:    Vim9: no error for declaring buffer, window, etc. variable.
Solution:   Give an error.  Unify the error messages.
2020-06-21 15:52:59 +02:00
820ffa567c patch 8.2.1027: GUI: multi-byte characters do not work in a terminal
Problem:    GUI: multi-byte characters do not work in a terminal.
Solution:   Do not assume a key is one byte. (closes #6304)
2020-06-21 15:09:14 +02:00
a3b7fdc1bb patch 8.2.1026: Vim9: cannot break the line after "->"
Problem:    Vim9: cannot break the line after "->".
Solution:   Check for a continuation line after "->", "[" and ".".  Ignore
            trailing white space.
2020-06-21 14:12:17 +02:00
8c524f76eb patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Problem:    Tabpage menu and tabline not sufficiently tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6307)
2020-06-21 13:23:45 +02:00
6797966dfc patch 8.2.1024: Vim9: no error for using "let g:var = val"
Problem:    Vim9: no error for using "let g:var = val".
Solution:   Add an error.
2020-06-20 22:50:47 +02:00
0cb5bcf583 patch 8.2.1023: Vim9: redefining a function uses a new index every time
Problem:    Vim9: redefining a function uses a new index every time.
Solution:   When redefining a function clear the contents and re-use the
            index.
2020-06-20 18:19:09 +02:00
845e0ee594 patch 8.2.1022: various parts of code not covered by tests
Problem:    Various parts of code not covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6300)
2020-06-20 16:05:32 +02:00
a190548e91 patch 8.2.1021: Ruby interface not tested enough
Problem:    Ruby interface not tested enough.
Solution:   Add a couple more tests. (Dominique Pellé, closes #6301)
2020-06-20 16:00:25 +02:00
b326edf5b3 patch 8.2.1020: popupwin test fails in the GUI
Problem:    Popupwin test fails in the GUI.
Solution:   Send GUI byte sequence for <C-S-a>.
2020-06-20 15:03:38 +02:00
ef6746f637 patch 8.2.1019: mapping <M-S-a> does not work in the GUI
Problem:    Mapping <M-S-a> does not work in the GUI.
Solution:   Move the logic to remove the shift modifier to
            may_remove_shift_modifier() and also use it in the GUI.
2020-06-20 14:43:23 +02:00
280b0dc815 patch 8.2.1018: typo in enum value
Problem:    Typo in enum value. (James McCoy)
Solution:   Fix the typo.
2020-06-20 13:29:03 +02:00
1089374130 patch 8.2.1017: Appveyor output doesn't show MinGW console features
Problem:    Appveyor output doesn't show MinGW console features.
Solution:   List the features of the console build.
2020-06-19 22:37:47 +02:00
7e380030c1 patch 8.2.1016: Vim9: test fails when channel feature is missing
Problem:    Vim9: test fails when channel feature is missing.
Solution:   Process an :if command when skipping
2020-06-19 22:35:44 +02:00
20298ce679 patch 8.2.1015: popup filter gets key with modifier prepended
Problem:    Popup filter gets key with modifier prepended when using
            modifyOtherKeys.
Solution:   Remove the shift modifier when it is included in the key, also
            when the Alt or Meta modifier is used.
2020-06-19 21:46:52 +02:00
1e0b7b11db patch 8.2.1014: using "name" for a string result is confusing
Problem:    Using "name" for a string result is confusing.
Solution:   Rename to "end".
2020-06-19 19:30:53 +02:00
ec9b017b87 patch 8.2.1013: channel tests can be a bit flaky
Problem:    Channel tests can be a bit flaky.
Solution:   Set the g:test_is_flaky flag in SetUp().
2020-06-19 19:10:59 +02:00
3b74b6b4bb patch 8.2.1012: Vim9: cannot declare single character script variables
Problem:    Vim9: cannot declare single character script variables.
Solution:   Don't see "b:", "s:", etc. as namespace.  Fix item size of
            sn_var_vals.
2020-06-19 19:01:43 +02:00
c785b9a7f4 patch 8.2.1011: Vim9: some code not tested
Problem:    Vim9: some code not tested.
Solution:   Add a few more test cases.  Reorder checks for clearer error.
            Remove unreachable code.
2020-06-19 18:34:15 +02:00
128d307963 patch 8.2.1010: build failure in libvterm with debug enabled
Problem:    Build failure in libvterm with debug enabled. (John Little)
Solution:   Use "->" instead of ".".
2020-06-19 17:20:41 +02:00
c5b1c20b6b patch 8.2.1009: Vim9: some failures not checked for
Problem:    Vim9: some failures not checked for.
Solution:   Add test cases.  Remove unused code.
2020-06-18 22:43:27 +02:00
0779fab297 patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Problem:    Vim9: no test for disassambling newly added instructions.
Solution:   Add a function and check disassembly.
2020-06-18 22:18:18 +02:00
c8cb883015 patch 8.2.1007: completion doesn't work after ":r ++arg !"
Problem:    Completion doesn't work after ":r ++arg !".
Solution:   Skip over "++arg". (Christian Brabandt, closes #6275,
            closes #6258)
2020-06-18 21:14:30 +02:00
efd8855594 patch 8.2.1006: Vim9: require unnecessary return statement
Problem:    Vim9: require unnecessary return statement.
Solution:   Improve the use of the had_return flag. (closes #6270)
2020-06-18 20:50:10 +02:00
9b68c82b7c patch 8.2.1005: Vim9: using TRUE/FALSE/MAYBE for ctx_skip is confusing
Problem:    Vim9: using TRUE/FALSE/MAYBE for ctx_skip is confusing.
Solution:   Use an enum value.
2020-06-18 19:31:08 +02:00
511feec6f0 patch 8.2.1004: line numbers below filler lines not always updated
Problem:    Line numbers below filler lines not always updated.
Solution:   Don't break out of the win_line() loop too early. (Christian
            Brabandt, closes #6294, closes #6138)
2020-06-18 19:15:27 +02:00
865af6b990 patch 8.2.1003: Vim9: return type of sort() is too generic
Problem:    Vim9: return type of sort() is too generic.
Solution:   Get type from the first argument. (closes #6292)
2020-06-18 18:45:49 +02:00
ceb2e77510 patch 8.2.1002: test may fail when run directly
Problem:    Test may fail when run directly.
Solution:   Check if g:run_nr exists. (Christian Brabandt, closes #6285)
2020-06-18 18:33:59 +02:00
72abcf42d4 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Problem:    Vim9: crash with nested "if" and assignment.
Solution:   Skip more of the assignment.  Do not set ctx_skip when code is
            reachable.
2020-06-18 18:26:24 +02:00
158ea175a9 patch 8.2.1000: get error when leaving Ex mode with :visual
Problem:    Get error when leaving Ex mode with :visual and a CmdLineEnter
            autocommand was used.
Solution:   Reset ex_pressedreturn. (closes #6293)
2020-06-18 17:28:39 +02:00
2f03e5a0a9 patch 8.2.0999: moving to next sentence gets stuck on quote
Problem:    Moving to next sentence gets stuck on quote.
Solution:   When moving to the next sentence doesn't result in moving, advance
            a character and try again. (closes #6291)
2020-06-18 15:33:25 +02:00
3d9207ad2f patch 8.2.0998: not all tag code is tested
Problem:    Not all tag code is tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #6284)
2020-06-17 22:58:35 +02:00
856c1110c1 patch 8.2.0997: cannot execute a register containing line continuation
Problem:    Cannot execute a register containing line continuation.
Solution:   Concatenate lines where needed. (Yegappan Lakshmanan,
            closes #6272)
2020-06-17 21:47:23 +02:00
40a019f157 patch 8.2.0996: using "aucmdwin" in win_gettype() is not ideal
Problem:    Using "aucmdwin" in win_gettype() is not ideal.
Solution:   Rename to "autocmd".
2020-06-17 21:41:35 +02:00
e17f8817a1 patch 8.2.0995: insufficient testing for the readdir() sort option
Problem:    Insufficient testing for the readdir() sort option.
Solution:   Add a few more tests. (Christian Brabandt, closes #6278)
2020-06-17 20:30:44 +02:00
9bb3eb3e02 patch 8.2.0994: Vim9: missing function causes compilation error
Problem:    Vim9: missing function causes compilation error.
Solution:   Call test function indirectly.
2020-06-17 20:03:36 +02:00
f7d267ef20 patch 8.2.0993: Vim9 script test fails with normal features
Problem:    Vim9 script test fails with normal features.
Solution:   Use :func instead of :def for now.
2020-06-17 12:04:54 +02:00
101f4810e2 patch 8.2.0992: Vim9: crash when using :import in the Vim command
Problem:    Vim9: crash when using :import in the Vim command.
Solution:   Give an error when using :import outside of a script.
            (closes #6271)
2020-06-16 23:18:51 +02:00
0fe937fd86 patch 8.2.0991: cannot get window type for autocmd and preview window
Problem:    Cannot get window type for autocmd and preview window.
Solution:   Add types to win_gettype(). (Yegappan Lakshmanan, closes #6277)
2020-06-16 22:42:04 +02:00
a1bc6f1293 patch 8.2.0990: Using duplicate error number
Problem:    Using duplicate error number.
Solution:   Use an unused error number.  Add a test for it.
2020-06-16 22:27:39 +02:00
a6e8bf2d89 patch 8.2.0989: crash after resizing a terminal window
Problem:    Crash after resizing a terminal window. (August Masquelier)
Solution:   Add check for valid row in libvterm. (closes #6273)
2020-06-16 20:58:07 +02:00
84cf6bd81b patch 8.2.0988: getting directory contents is always case sorted
Problem:    Getting directory contents is always case sorted.
Solution:   Add sort options and v:collate. (Christian Brabandt, closes #6229)
2020-06-16 20:03:43 +02:00
9af78769ee patch 8.2.0987: Vim9: cannot assign to [var; var]
Problem:    Vim9: cannot assign to [var; var].
Solution:   Assign rest of items to a list.
2020-06-16 11:34:42 +02:00
c70222d12a patch 8.2.0986: MS-Windows: functions test fails
Problem:    MS-Windows: functions test fails.
Solution:   Only simplify ///path on Unix.
2020-06-15 23:18:12 +02:00
fdcbe3c3fe patch 8.2.0985: simplify() does not remove slashes from "///path"
Problem:    Simplify() does not remove slashes from "///path".
Solution:   Reduce > 2 slashes to one. (closes #6263)
2020-06-15 21:41:56 +02:00
ab176ce982 patch 8.2.0984: not using previous window when closing a shell popup window
Problem:    Not using previous window when closing a shell popup window.
Solution:   Use "prevwin" if it was set. (closes #6267)
2020-06-15 21:19:08 +02:00
ad72350360 patch 8.2.0983: SConstruct file type not recognized
Problem:    SConstruct file type not recognized.
Solution:   Use python for SConstruct files. (Roland Hieber)
2020-06-15 20:24:58 +02:00
b340baed9f patch 8.2.0982: insufficient testing for reading/writing files
Problem:    Insufficient testing for reading/writing files.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6257)
            Add "ui_delay" to test_override() and use it for the CTRL-O test.
2020-06-15 19:51:56 +02:00
47a519a933 patch 8.2.0981: Vim9: cannot compile "[var, var] = list"
Problem:    Vim9: cannot compile "[var, var] = list".
Solution:   Implement list assignment.
2020-06-14 23:05:10 +02:00
a65d8b5bb9 patch 8.2.0980: raku file extension not recognized
Problem:    Raku file extension not recognized. (Steven Penny)
Solution:   Recognize .raku and .rakumod. (closes #6255)
2020-06-14 20:04:32 +02:00
65e0d77a66 Update runtime files 2020-06-14 17:29:55 +02:00
8e20f75e58 patch 8.2.0979: a couple of screendump tests fail
Problem:    A couple of screendump tests fail.
Solution:   Do not redraw when clearing t_8u.
2020-06-14 16:43:47 +02:00
0c8059e0b6 patch 8.2.0978: leaking memory in termcodes test
Problem:    Leaking memory in termcodes test.
Solution:   Set t_8u with set_option_value().
2020-06-14 15:35:58 +02:00
8dff4cbf6d patch 8.2.0977: t_8u is made empty for the wrong terminals
Problem:    t_8u is made empty for the wrong terminals. (Dominique Pelle)
Solution:   Invert the check for TPR_YES. (closes #6254)
2020-06-14 14:34:16 +02:00
df7df59d85 patch 8.2.0976: some 'cpoptions' not tested
Problem:    Some 'cpoptions' not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6253)
2020-06-14 13:50:55 +02:00
984dddbef4 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Problem:    Vim9: script variable does not accept optional s: prefix.
Solution:   Adjust the accepted syntax.
2020-06-14 12:50:24 +02:00
f3decc5830 patch 8.2.0974: Vim9: memory leak when script var has wrong type
Problem:    Vim9: memory leak when script var has wrong type.
Solution:   Free the variable name.
2020-06-13 19:56:38 +02:00
34db91f7a4 patch 8.2.0973: Vim9: type is not checked when assigning to a script variable
Problem:    Vim9: type is not checked when assigning to a script variable.
Solution:   Check the type.
2020-06-13 19:00:10 +02:00
c82a5b5da5 patch 8.2.0972: Vim9 script variable declarations need a type
Problem:    Vim9 script variable declarations need a type.
Solution:   Make "let var: type" declare a script-local variable.
2020-06-13 18:09:19 +02:00
142499de33 patch 8.2.0971: build with tiny features fails
Problem:    Build with tiny features fails.
Solution:   Add #ifdef.
2020-06-13 16:39:31 +02:00
0c0eddd3dd patch 8.2.0970: terminal properties are not available in Vim script
Problem:    Terminal properties are not available in Vim script.
Solution:   Add the terminalprops() function.
2020-06-13 15:47:25 +02:00
4a021dfbee patch 8.2.0969: assert_equal() output for dicts is hard to figure out
Problem:    Assert_equal() output for dicts is hard to figure out.
Solution:   Only show the different items.
2020-06-13 15:13:38 +02:00
c9630d2658 patch 8.2.0968: no proper testing of the 'cpoptions' flags
Problem:    No proper testing of the 'cpoptions' flags.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6251)
2020-06-13 13:20:48 +02:00
71ccd03ee8 patch 8.2.0967: unnecessary type casts for vim_strnsave()
Problem:    Unnecessary type casts for vim_strnsave().
Solution:   Remove the type casts.
2020-06-12 22:59:11 +02:00
722e505d1a patch 8.2.0966: 'shortmess' flag "n" not used in two places
Problem:    'shortmess' flag "n" not used in two places.
Solution:   Make use of the "n" flag consistent. (Nick Jensen, closes #6245,
            closes #6244)
2020-06-12 22:31:00 +02:00
5055c56cfb patch 8.2.0965: has_funcundefined() is not used
Problem:    Has_funcundefined() is not used.
Solution:   Delete the function. (Dominique Pellé, closes #6242)
2020-06-12 22:15:31 +02:00
37d1673ce0 patch 8.2.0964: TextYankPost does not provide info about Visual selection
Problem:    TextYankPost does not provide info about Visual selection.
Solution:   Add the 'visual' key in v:event. (closes #6249)
2020-06-12 22:09:01 +02:00
6c6be9e88d patch 8.2.0963: number increment/decrement does not work with 'virtualedit'
Problem:    Number increment/decrement does not work with 'virtualedit'.
Solution:   Handle coladd changing. (Christian Brabandt, closes #6240,
            closes #923)
2020-06-12 20:19:44 +02:00
f6e020b122 patch 8.2.0962: terminal test sometimes hangs on Travis
Problem:    Terminal test sometimes hangs on Travis.
Solution:   Do show output for this test temporarily.
2020-06-12 20:11:55 +02:00
ec68028604 patch 8.2.0961: MS-Windows: no completion for locales
Problem:    MS-Windows: no completion for locales.
Solution:   Use the directories in $VIMRUNTIME/lang to complete locales.
            (Christian Brabandt, closes 36248)
2020-06-12 19:35:32 +02:00
9721fb4ea3 patch 8.2.0960: cannot use :import in legacy Vim script
Problem:    Cannot use :import in legacy Vim script.
Solution:   Support :import in any Vim script.
2020-06-11 23:10:46 +02:00
00e260bb6c patch 8.2.0959: using 'quickfixtextfunc' is a bit slow
Problem:    Using 'quickfixtextfunc' is a bit slow.
Solution:   Process a list of entries. (Yegappan Lakshmanan, closes #6234)
2020-06-11 19:35:52 +02:00
1de5f7c81d patch 8.2.0958: not sufficient testing for buffer writing
Problem:    Not sufficient testing for buffer writing.
Solution:   Add a few tests. (Yegappan Lakshmanan, closes #6238)
2020-06-11 19:22:43 +02:00
2d4070d3b0 patch 8.2.0957: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize one variable.
2020-06-11 12:30:13 +02:00
e0ebeda4d8 patch 8.2.0956: spell test fails
Problem:    Spell test fails.
Solution:   Add missing change the spell checking.
2020-06-10 22:17:58 +02:00
215f49c4d7 patch 8.2.0955: build fails
Problem:    Build fails.
Solution:   Add missing struct change.
2020-06-10 22:12:04 +02:00
f1f0ff9557 patch 8.2.0954: not all desktop files are recognized
Problem:    Not all desktop files are recognized.
Solution:   Add the *.directory pattern. (Eisuke Kawashima, closes #3317)
2020-06-10 22:07:52 +02:00
362b44bd4a patch 8.2.0953: spell checking doesn't work for CamelCased words
Problem:    Spell checking doesn't work for CamelCased words.
Solution:   Add the "camel" value in the new option 'spelloptions'.
            (closes #1235)
2020-06-10 21:47:00 +02:00
be5ee8686a patch 8.2.0952: no simple way to interrupt Vim
Problem:    No simple way to interrupt Vim.
Solution:   Add the SigUSR1 autocommand, triggered by SIGUSR1. (Jacob Hayes,
            closes #1718)
2020-06-10 20:56:58 +02:00
6ba24d8763 patch 8.2.0951: search stat test has leftover from debugging
Problem:    Search stat test has leftover from debugging.
Solution:   Remove line that writes a file. (Christian Brabandt, closes #6224)
2020-06-10 20:21:09 +02:00
13b8205b44 patch 8.2.0950: tagjump test fails
Problem:    Tagjump test fails.
Solution:   Adjust expected text of the prompt.
2020-06-10 17:13:48 +02:00
ea1233fccf patch 8.2.0949: strptime() does not use DST
Problem:    Strptime() does not use DST.
Solution:   Set the tm_isdst field to -1. (Tomáš Janoušek, closes #6230)
2020-06-10 16:54:13 +02:00
d281b7c227 patch 8.2.0948: spell test fails
Problem:    Spell test fails.
Solution:   Adjust expected text of the prompt.
2020-06-10 16:39:32 +02:00
ab54032f29 patch 8.2.0947: readdirex() doesn't handle broken link properly
Problem:    Readdirex() doesn't handle broken link properly.
Solution:   Small fixes to readdirex(). (Christian Brabandt, closes #6226,
            closes #6213)
2020-06-10 15:55:36 +02:00
eebd555733 patch 8.2.0946: cannot use "q" to cancel a number prompt
Problem:    Cannot use "q" to cancel a number prompt.
Solution:   Recognize "q" instead of ignoring it.
2020-06-10 15:45:57 +02:00
152e79e94b patch 8.2.0945: cannot use "z=" when 'spell' is off
Problem:    Cannot use "z=" when 'spell' is off.
Solution:   Make "z=" work even when 'spell' is off. (Christian Brabandt,
            Gary Johnson, closes #6227)
2020-06-10 15:32:08 +02:00
253ea9fa42 patch 8.2.0944: xxd test leaves file behind
Problem:    Xxd test leaves file behind.
Solution:   Delete the file "XXDfile". (Christian Brabandt, closes #6228)
2020-06-10 14:21:20 +02:00
32ee627750 patch 8.2.0943: displaying ^M or ^J depends on current buffer
Problem:    Displaying ^M or ^J depends on current buffer.
Solution:   Pass the displayed buffer to transchar(). (closes #6225)
2020-06-10 14:16:49 +02:00
0e390f40e9 patch 8.2.0942: expanding to local dir after homedir keeps "~/"
Problem:    Expanding to local dir after homedir keeps "~/".
Solution:   Adjust modify_fname(). (Christian Brabandt, closes #6205,
            closes #5979)
2020-06-10 13:12:28 +02:00
517f00f788 patch 8.2.0941: detecting terminal properties is unstructured
Problem:    Detecting terminal properties is unstructured.
Solution:   Add a table with terminal properties.  Set properties when a
            terminal is detected.
2020-06-10 12:15:51 +02:00
0ca8b5ba7b patch 8.2.0940: build failure with tiny features
Problem:    Build failure with tiny features.
Solution:   Add #ifdef.  Add UNUSED.  A bit more cleaning up.
2020-06-09 21:35:36 +02:00
218cb0fb62 patch 8.2.0939: checking for term escape sequences is long and confusing
Problem:    checking for term escape sequences is long and confusing
Solution:   Refactor code into separate functions.
2020-06-09 21:26:36 +02:00
59de417b90 patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Problem:    NFA regexp uses tolower() to compare ignore-case. (Thayne McCombs)
Solution:   Use utf_fold() when possible. (ref. neovim #12456)
2020-06-09 19:34:54 +02:00
dcf59c37d0 patch 8.2.0937: asan failure in the flatten() test
Problem:    Asan failure in the flatten() test.
Solution:   Free the flattened list.
2020-06-09 17:30:04 +02:00
a45551a535 patch 8.2.0936: some terminals misinterpret the code for getting cursor style
Problem:    Some terminals misinterpret the code for getting cursor style.
Solution:   Send a sequence to the terminal and check the result. (IWAMOTO
            Kouichi, closes #2126)  Merged with current code.
2020-06-09 15:57:37 +02:00
077a1e670a patch 8.2.0935: flattening a list with existing code is slow
Problem:    Flattening a list with existing code is slow.
Solution:   Add flatten(). (Mopp, closes #3676)
2020-06-08 20:50:43 +02:00
ec98e93a82 patch 8.2.0934: lhelpgrep twice in help window doesn't jump to the help topic
Problem:    Running lhelpgrep twice in a help window doesn't jump to the help
            topic.
Solution:   Check whether any window with the location list is present.
            (Yegappan Lakshmanan, closes #6215)
2020-06-08 19:35:59 +02:00
7ba5a7eff3 patch 8.2.0933: 'quickfixtextfunc' does not get window ID of location list
Problem:    'quickfixtextfunc' does not get window ID of location list.
Solution:   Add "winid" to the dict argument. (Yegappan Lakshmanan,
            closes #6222)
2020-06-08 19:20:27 +02:00
f154f3ab2c patch 8.2.0932: missspelling spelllang
Problem:    Missspelling spelllang.
Solution:   Add an "l". (Dominique Pelle)
2020-06-08 18:54:49 +02:00
6938e27abd patch 8.2.0931: some remarks about BeOS remain
Problem:    Some remarks about BeOS remain.
Solution:   Remove BeOS remarks from the help and other files. (Emir Sari,
            closes #6221)
2020-06-07 22:23:19 +02:00
b5e18f29fa patch 8.2.0930: script filetype detection trips over env -S argument
Problem:    Script filetype detection trips over env -S argument.
Solution:   Remove "-S" and "--ignore-environment". (closes #5013)
            Add tests.
2020-06-07 21:58:54 +02:00
cc613031b9 patch 8.2.0929: v:register is not cleared after an operator was executed
Problem:    v:register is not cleared after an operator was executed.
Solution:   Clear v:register after finishing an operator (Andy Massimino,
            closes #5305)
2020-06-07 21:31:18 +02:00
acc2240640 Update runtime files 2020-06-07 21:07:18 +02:00
df44a27b53 patch 8.2.0928: many type casts are used for vim_strnsave()
Problem:    Many type casts are used for vim_strnsave().
Solution:   Make the length argument size_t instead of int. (Ken Takata,
            closes #5633)  Remove some type casts.
2020-06-07 20:49:05 +02:00
da84ac2a6f patch 8.2.0927: some sshconfig and ssdhconfig files are not recognized
Problem:    Some sshconfig and ssdhconfig files are not recognized.
Solution:   Add filetype patterns.
2020-06-07 20:07:43 +02:00
951a2fb1b8 patch 8.2.0926: cmdline test fails on Appveyor
Problem:    Cmdline test fails on Appveyor.
Solution:   Add CR to the commands. (Naruhiko Nishino, closes #6220)
2020-06-07 19:38:10 +02:00
1f1fd44ef7 patch 8.2.0925: getcompletion() does not return command line arguments
Problem:    Getcompletion() does not return command line arguments.
Solution:   Add the "cmdline" option. (Shougo, closes #1140)
2020-06-07 18:45:14 +02:00
bb861e293e patch 8.2.0924: cannot save and restore a register properly
Problem:    Cannot save and restore a register properly.
Solution:   Add getreginfo() and make setreg() accept a dictionary. (Andy
            Massimino, closes #3370)
2020-06-07 18:16:36 +02:00
c82dd86084 patch 8.2.0923: cmdline test is slow
Problem:    Cmdline test is slow.
Solution:   Use WaitForAssert().
2020-06-07 17:30:33 +02:00
48af321a33 patch 8.2.0922: search test fails
Problem:    Search test fails.
Solution:   Remove failure tests for calls that no longer fail.
2020-06-07 17:20:02 +02:00
4fdb8bd054 patch 8.2.0921: CTRL-W T in cmdline window causes trouble
Problem:    CTRL-W T in cmdline window causes trouble.
Solution:   Disallow CTRL-W T in the cmdline window.  Add more tests.
            (Naruhiko Nishino, closes #6219)
2020-06-07 17:03:21 +02:00
5b157fe2ed patch 8.2.0920: writing viminfo fails with a circular reference
Problem:    Writing viminfo fails with a circular reference.
Solution:   Use copyID to detect the cycle. (closes #6217)
2020-06-07 16:08:08 +02:00
673fc3e23f patch 8.2.0919: merging modifier for modifyOtherKeys is done twice
Problem:    Merging modifier for modifyOtherKeys is done twice.
Solution:   Remove the merging done in vgetc().
2020-06-07 15:46:11 +02:00
a9c0104947 patch 8.2.0918: duplicate code for evaluating expression argument
Problem:    Duplicate code for evaluating expression argument.
Solution:   Merge the code and make the use more flexible.
2020-06-07 14:50:50 +02:00
e928366de5 patch 8.2.0917: quickfix entries do not suport a "note" type
Problem:    Quickfix entries do not suport a "note" type.
Solution:   Add support for "note". (partly by Yegappan Lakshmanan,
            closes #5527, closes #6216)
2020-06-07 14:10:47 +02:00
975a880a13 patch 8.2.0916: mapping with partly modifyOtherKeys code does not work
Problem:    Mapping with partly modifyOtherKeys code does not work.
Solution:   If there is no mapping with a separate modifier include the
            modifier in the key and then try mapping again. (closes #6200)
2020-06-06 22:36:24 +02:00
adc17a5f9d patch 8.2.0915: search() cannot skip over matches like searchpair() can
Problem:    Search() cannot skip over matches like searchpair() can.
Solution:   Add an optional "skip" argument. (Christian Brabandt, closes #861)
2020-06-06 18:37:51 +02:00
d8df304c59 patch 8.2.0914: MS-Windows: cannot specify a "modified by" text
Problem:    MS-Windows: cannot specify a "modified by" text.
Solution:   Add MODIFIED_BY in the MSVC build file.  (Chen Lei, closes #1275)
2020-06-06 16:18:46 +02:00
439c036ed0 patch 8.2.0913: code for resetting v:register is duplicated
Problem:    Code for resetting v:register is duplicated.
Solution:   Add reset_reg_var().
2020-06-06 15:58:03 +02:00
11f1ffd182 patch 8.2.0912: a few test cases for CJK formatting are disabled
Problem:    A few test cases for CJK formatting are disabled.
Solution:   Fix the tests and enable them. (closes #6212)
2020-06-06 15:23:26 +02:00
9b7cce28d5 patch 8.2.0911: crash when opening a buffer for the cmdline window fails
Problem:    Crash when opening a buffer for the cmdline window fails. (Chris
            Barber)
Solution:   Check do_ecmd() succeeds.  Reset got_int if "q" was used at the
            more prompt. (closes #6211)
2020-06-06 15:14:08 +02:00
87fda407f8 Also fix the patch number. 2020-06-06 13:25:31 +02:00
fe712ced6e Fix duplicated code that only appears in git. 2020-06-06 13:17:59 +02:00
8f1dde5021 patch 8.2.0910: Vim is not reproducibly buildable
Problem:    Vim is not reproducibly buildable.
Solution:   Use the $SOURCE_DATE_EPOCH environment variable in configure.
            (James McCoy, closes #513)  Give a warning about using it.
2020-06-05 23:16:29 +02:00
002bc79991 patch 8.2.0909: cannot go back to the previous local directory
Problem:    Cannot go back to the previous local directory.
Solution:   Add "tcd -" and "lcd -". (Yegappan Lakshmanan, closes #4362)
2020-06-05 22:33:42 +02:00
3fffa97159 patch 8.2.0908: crash when changing the function table while listing it
Problem:    Crash when changing the function table while listing it.
Solution:   Bail out when the function table changes. (closes #6209)
2020-06-05 21:06:10 +02:00
07188fc5ef patch 8.2.0907: when using :global clipboard isn't set correctly
Problem:    When using :global clipboard isn't set correctly.
Solution:   Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian
            Brabandt, closes #6203, closes #6198)
2020-06-05 20:03:16 +02:00
ea563cc22b patch 8.2.0906: when setting 'termguicolors' SpellBad is no longer red
Problem:    When setting 'termguicolors' SpellBad is no longer red.
Solution:   Only use the RGB guisp color for cterm when using the "underline"
            or "undercurl" attributes to avoid the background color to be
            cleared. Also make t_8u empty when the termresponse indicates a
            real xterm. (closes #6207)
2020-06-05 19:36:57 +02:00
e0c3c3d6cb patch 8.2.0905: test coverage could be better
Problem:    Test coverage could be better.
Solution:   Add a couple of tests. (Dominique Pelle, closes #6202)
2020-06-04 22:46:04 +02:00
46cd43bda1 patch 8.2.0904: assuming modifyOtherKeys for rhs of mapping
Problem:    Assuming modifyOtherKeys for rhs of mapping.
Solution:   Ignore seenModifyOtherKeys for mapped characters. (closes #6200)
2020-06-04 22:22:11 +02:00
852ea366d6 patch 8.2.0903: comparing WINVER does not work correctly
Problem:    comparing WINVER does not work correctly.
Solution:   Use arithmethic expansion. (Ozaki Kiichi, closes #6197)
2020-06-04 21:32:49 +02:00
442a85369f patch 8.2.0902: using searchcount() in 'statusline' causes an error
Problem:    Using searchcount() in 'statusline' causes an error.
Solution:   Avoid saving/restoring the search patten recursively.
            (closes #6194)
2020-06-04 20:56:09 +02:00
e52702f003 patch 8.2.0901: formatting CJK text isn't optimal
Problem:    Formatting CJK text isn't optimal.
Solution:   Properly break CJK lines. (closes #3875)
2020-06-04 18:22:13 +02:00
9155825b24 patch 8.2.0900: function list test fails on MS-Windows
Problem:    Function list test fails on MS-Windows.
Solution:   Make sure the fileformat is "unix"
2020-06-04 17:19:05 +02:00
30cc44a97f patch 8.2.0899: assert_equalfile() does not give a hint about the difference
Problem:    Assert_equalfile() does not give a hint about the difference.
Solution:   Display the last seen text.
2020-06-04 16:52:40 +02:00
6b0e528368 patch 8.2.0898: missing help for a function goes unnoticed
Problem:    Missing help for a function goes unnoticed.
Solution:   Add a test. (Gary Johnson)
2020-06-04 15:52:25 +02:00
ebacddbc16 patch 8.2.0897: list of functions in patched version is outdated
Problem:    List of functions in patched version is outdated.
Solution:   Update the function lists only.
2020-06-04 15:22:21 +02:00
14681627f3 patch 8.2.0896: crash when calling searchcount() with a string
Problem:    Crash when calling searchcount() with a string.
Solution:   Check the argument is a dict. (closes #6192)
2020-06-03 22:57:39 +02:00
408c23b079 patch 8.2.0895: :mkspell output does not mention the tree type
Problem:    :mkspell output does not mention the tree type.
Solution:   Back out increasing the limits, it has no effect.  Mention the
            tree being compressed.  Only give a message once per second.
2020-06-03 22:15:45 +02:00
59f88fbf24 patch 8.2.0894: :mkspell can take very long if the word count is high
Problem:    :mkspell can take very long if the word count is high.
Solution:   Use long to avoid negative numbers.  Increase the limits by 20% if
            the compression did not have effect.
2020-06-03 20:51:11 +02:00
fb517bac23 patch 8.2.0893: assert_equalfile() does not take a third argument
Problem:    Assert_equalfile() does not take a third argument.
Solution:   Implement the third argument. (Gary Johnson)
2020-06-03 19:55:35 +02:00
c5acc0f7fe patch 8.2.0892: ubsan warns for undefined behavior
Problem:    Ubsan warns for undefined behavior.
Solution:   Use unsigned instead of signed variable. (Dominique Pelle,
            closes #6193)
2020-06-03 18:55:38 +02:00
cc836556d9 patch 8.2.0891: clang warns for invalid conversion
Problem:    Clang warns for invalid conversion.
Solution:   Use zero instead of INVALCOLOR.
2020-06-03 10:04:49 +02:00
1e5f8f6d65 patch 8.2.0890: no color in terminal window when 'termguicolor' is set
Problem:    No color in terminal window when 'termguicolor' is set.
Solution:   Clear the underline color. (closes #6186)
2020-06-02 23:18:24 +02:00
791fb1bcda patch 8.2.0889: using old style comments
Problem:    Using old style comments.
Solution:   Use // comments. (Yegappan Lakshmanan, closes #6190)
2020-06-02 22:24:36 +02:00
441d60efd8 patch 8.2.0888: readdirex() returns size -2 for a directory
Problem:    Readdirex() returns size -2 for a directory.
Solution:   Add missing "else". (Ken Takata, closes #6185)
2020-06-02 22:19:50 +02:00
57f75a5a36 patch 8.2.0887: searchcount().exact_match is 1 right after a match
Problem:    Searchcount().exact_match is 1 right after a match.
Solution:   Use LT_POS() instead of LTOREQ_POS(). (closes #6189)
2020-06-02 22:06:21 +02:00
c17e66c5c0 patch 8.2.0886: cannot use octal numbers in scriptversion 4
Problem:    Cannot use octal numbers in scriptversion 4.
Solution:   Add the "0o" notation. (Ken Takata, closes #5304)
2020-06-02 21:38:22 +02:00
3ac498c8a1 patch 8.2.0885: "make shadow" does not link new lua test dir
Problem:    "make shadow" does not link new lua test dir.
Solution:   Also link testdir/testluaplugin. (Elimar Riesebieter)
2020-06-02 20:25:36 +02:00
ea6561af92 patch 8.2.0884: searchcount() test fails on slower systems
Problem:    Searchcount() test fails on slower systems.
Solution:   Set a longer timeout.
2020-06-01 21:32:45 +02:00
5fbf3bc3f9 patch 8.2.0883: memory leak in test 49
Problem:    Memory leak in test 49.
Solution:   Free "sfile" from the exception.
2020-06-01 21:13:11 +02:00
48b1c21809 patch 8.2.0882: leaking memory when using reduce()
Problem:    Leaking memory when using reduce().
Solution:   Free the intermediate value.
2020-06-01 20:11:02 +02:00
d6a77f95ee patch 8.2.0881: compiler warning for argument type
Problem:    Compiler warning for argument type.
Solution:   Add type cast. (Mike Williams)
2020-06-01 19:14:12 +02:00
109aece79d patch 8.2.0880: leaking memory when using searchcount()
Problem:    Leaking memory when using searchcount().
Solution:   Free the last used search pattern.
2020-06-01 19:08:54 +02:00
f9ca08e95f patch 8.2.0879: compiler warning for unused function argument
Problem:    Compiler warning for unused function argument.
Solution:   Add UNUSED.
2020-06-01 18:56:03 +02:00
85629985b7 patch 8.2.0878: no reduce() function
Problem:    No reduce() function.
Solution:   Add a reduce() function. (closes #5481)
2020-06-01 18:39:20 +02:00
e8f5ec0d30 patch 8.2.0877: cannot get the search statistics
Problem:    Cannot get the search statistics.
Solution:   Add the searchcount() function. (Fujiwara Takuya, closes #4446)
2020-06-01 17:28:35 +02:00
950587242c patch 8.2.0876: :pwd does not give a hint about the scope of the directory
Problem:    :pwd does not give a hint about the scope of the directory
Solution:   Make ":verbose pwd" show the scope. (Takuya Fujiwara, closes #5469)
2020-06-01 16:26:19 +02:00
6c9ba04280 patch 8.2.0875: getting attributes for directory entries is slow
Problem:    Getting attributes for directory entries is slow.
Solution:   Add readdirex(). (Ken Takata, closes #5619)
2020-06-01 16:09:41 +02:00
d14fd5285e patch 8.2.0874: signals test is a bit flaky
Problem:    Signals test is a bit flaky.
Solution:   Flush the XautoOut file.  Delete files that may be left behind
            from a failure. (Dominique Pelle, closes #6179)
2020-06-01 15:05:19 +02:00
2891459b81 patch 8.2.0873: a .jl file can be sawfish (lisp) or Julia
Problem:    A .jl file can be sawfish (lisp) or Julia.
Solution:   Do not recognize *.jl as lisp, since it might be Julia.
            (closes #6178)
2020-06-01 14:43:59 +02:00
f15c8b6eb3 patch 8.2.0872: XIM code is mixed with multi-byte code
Problem:    XIM code is mixed with multi-byte code.
Solution:   Move the XIM code to a separate file. (Yegappan Lakshmanan,
            closes #6177)
2020-06-01 14:34:43 +02:00
f17e7ea67a patch 8.2.0871: cannot use getmarklist() as a method
Problem:    Cannot use getmarklist() as a method.
Solution:   Make getmarklist() work as a method.  Add one to the column
            number to match getpos(). (Yegappan Lakshmanan, closes #6176)
2020-06-01 14:14:44 +02:00
ad772a63ec patch 8.2.0870: MS-Windows: Control keys don't work in the GUI
Problem:    MS-Windows: Control keys don't work in the GUI.
Solution:   Don't set seenModifyOtherKeys for now. (Yasuhiro Matsumoto,
            closes #6175)
2020-06-01 14:07:49 +02:00
858ba06d5f patch 8.2.0869: it is not possible to customize the quickfix window contents
Problem:    It is not possible to customize the quickfix window contents.
Solution:   Add 'quickfixtextfunc'. (Yegappan Lakshmanan, closes #5465)
2020-05-31 23:11:59 +02:00
2245ae18e3 patch 8.2.0868: trim() always trims both ends
Problem:    trim() always trims both ends.
Solution:   Add an argument to only trim the beginning or end. (Yegappan
            Lakshmanan, closes #6126)
2020-05-31 22:20:36 +02:00
fccd93f091 patch 8.2.0867: using \{xxx} for encoding a modifier is not nice
Problem:    Using \{xxx} for encoding a modifier is not nice.
Solution:   Use \<*xxx> instead, since it's the same as \<xxx> but producing a
            different code.
2020-05-31 22:06:51 +02:00
494e9069cb patch 8.2.0866: not enough tests for buffer writing
Problem:    Not enough tests for buffer writing.
Solution:   Add more tests. Use CheckRunVimInTerminal in more places.
            (Yegappan Lakshmanan, closes #6167)
2020-05-31 21:28:02 +02:00
e35a52aee7 patch 8.2.0865: syntax foldlevel is taken from the start of the line
Problem:    Syntax foldlevel is taken from the start of the line.
Solution:   Add ":syn foldlevel" to be able to use the minimal foldlevel in
            the line. (Brad King, closes #6087)
2020-05-31 19:48:53 +02:00
d881b516da patch 8.2.0864: pragmas are indented all the way to the left
Problem:    Pragmas are indented all the way to the left.
Solution:   Add an option to indent progmas like normal code. (Max Rumpf,
            closes #5468)
2020-05-31 17:49:30 +02:00
e023e88bed patch 8.2.0863: cannot set a separate color for underline/undercurl
Problem:    Cannot set a separate color for underline/undercurl.
Solution:   Add the t_AU and t_8u termcap codes. (Timur Celik, closes #6011)
2020-05-31 16:42:30 +02:00
b10090928c patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Problem:    ":term ++curwin" makes the current buffer hidden. (Harm te
            Hennepe)
Solution:   Do not hide the current buffer. (closes #6170)
2020-05-31 16:04:42 +02:00
cfb4b47de0 patch 8.2.0861: cannot easily get all the current marks
Problem:    Cannot easily get all the current marks.
Solution:   Add getmarklist(). (Yegappan Lakshmanan, closes #6032)
2020-05-31 15:41:57 +02:00
aaad995f83 patch 8.2.0860: cannot use CTRL-A and CTRL-X on unsigned numbers
Problem:    Cannot use CTRL-A and CTRL-X on unsigned numbers.
Solution:   Add "unsigned" to 'nrformats'. (Naruhiko Nishino, closes #6144)
2020-05-31 15:08:59 +02:00
f09715bc5c patch 8.2.0859: no Turkish translation of the manual
Problem:    No Turkish translation of the manual.
Solution:   Add Turkish translations. (Emir Sarı, closes #5641)
2020-05-31 14:25:22 +02:00
788fbb4707 patch 8.2.0858: not easy to require Lua modules
Problem:    Not easy to require Lua modules.
Solution:   Improve use of Lua path. (Prabir Shrestha, closes #6098)
2020-05-31 14:08:12 +02:00
5cd1cb9ff9 patch 8.2.0857: GTK cell height can be a pixel too much
Problem:    GTK cell height can be a pixel too much.
Solution:   Subtract 3 instead of 1 when rounding. (closes #6168)
2020-05-31 13:53:04 +02:00
928eec649b patch 8.2.0856: CTRL-S stops output
Problem:    CTRL-S stops output.
Solution:   Invert the IXON flag. (closes #6166)
2020-05-31 13:09:47 +02:00
ebe9d34aa0 patch 8.2.0855: GUI tests fail because the test doesn't use a modifier
Problem:    GUI tests fail because the test doesn't use a modifier.
Solution:   Add "\{xxx}" to be able to encode a modifier.
2020-05-30 21:52:54 +02:00
363d6148df patch 8.2.0854: xxd cannot show offset as a decimal number
Problem:    Xxd cannot show offset as a decimal number.
Solution:   Add the "-d" flag. (Aapo Rantalainen, closes #5616
2020-05-30 20:50:25 +02:00
ca70c07b72 patch 8.2.0853: ml_delete() often called with FALSE argument
Problem:    ml_delete() often called with FALSE argument.
Solution:   Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE.
2020-05-30 20:30:46 +02:00
d6cd5ffade patch 8.2.0852: cannot map CTRL-S on some systems
Problem:    Cannot map CTRL-S on some systems.
Solution:   Do not use CTRL-S for flow control.
2020-05-30 20:05:02 +02:00
f4ae6b245a patch 8.2.0851: can't distinguish <M-a> from accented "a" in the GUI
Problem:    Can't distinguish <M-a> from accented "a" in the GUI.
Solution:   Use another way to make mapping <C-bslash> work. (closes #6163)
2020-05-30 19:52:46 +02:00
95da136142 patch 8.2.0850: MS-Windows: exepath() works different from cmd.exe
Problem:    MS-Windows: exepath() works different from cmd.exe.
Solution:   Make exepath() work better on MS-Windows. (closes #6115)
2020-05-30 18:37:55 +02:00
041c7107f2 patch 8.2.0849: BeOS code is not maintained and probably unused
Problem:    BeOS code is not maintained and probably unused.
Solution:   Remove the BeOS code. (Emir Sari, closes #5817)
2020-05-30 18:14:57 +02:00
06b7b58455 patch 8.2.0848: MS-Windows: the Windows terminal code has some flaws
Problem:    MS-Windows: the Windows terminal code has some flaws.
Solution:   Do not redraw the right edge of the screen.  Remove the background
            color trick.  Flush the screen output buffer often.  (Nobuhiro
            Takasaki, #5546)
2020-05-30 17:49:25 +02:00
367d59e6ba patch 8.2.0847: typval related code is spread out
Problem:    Typval related code is spread out.
Solution:   Move code to new typval.c file. (Yegappan Lakshmanan, closes #6093)
2020-05-30 17:06:14 +02:00
d5c2c7763d patch 8.2.0846: build failure with small features
Problem:    Build failure with small features.
Solution:   Add #ifdef.
2020-05-30 16:17:33 +02:00
87be9be1db patch 8.2.0845: text properties crossing lines not handled correctly
Problem:    Text properties crossing lines not handled correctly.
Solution:   When joining lines merge text properties if possible.
            (Axel Forsman, closes #5839, closes #5683)
2020-05-30 15:32:02 +02:00
a9d4b84d97 patch 8.2.0844: text properties crossing lines not handled correctly
Problem:    Text properties crossing lines not handled correctly.
Solution:   When saving for undo include an extra line when needed and do not
            adjust properties when undoing. (Axel Forsman, closes #5875)
2020-05-30 14:46:52 +02:00
0016fd2e29 patch 8.2.0843: filetype elm not detected
Problem:    Filetype elm not detected.
Solution:   Recognize *.elm files. (closes #6157)
2020-05-30 13:15:14 +02:00
208534d9ae patch 8.2.0842: MS-Windows: channel tests fail
Problem:    MS-Windows: channel tests fail.
Solution:   Adjust #ifdefs. (closes #6162)
2020-05-30 13:07:39 +02:00
823654bc06 patch 8.2.0841: 'verbose' value 16 causes duplicate output
Problem:    'verbose' value 16 causes duplicate output.
Solution:   Combine levels 15 and 16 into one message. (Christian Brabandt,
            closes #6153)
2020-05-29 23:03:09 +02:00
6cb0726215 patch 8.2.0840: search match count wrong when only match is in fold
Problem:    Search match count wrong when only match is in fold.
Solution:   Update search stats when in a closed fold. (Christian Brabandt,
            closes #6160, closes #6152)
2020-05-29 22:49:43 +02:00
b42c0d5427 patch 8.2.0839: dropping modifier when putting a character back in typeahead
Problem:    Dropping modifier when putting a character back in typeahead.
Solution:   Add modifier to ins_char_typebuf(). (closes #6158)
2020-05-29 22:41:41 +02:00
09307e3bc1 patch 8.2.0838: MS-Windows: compiler warning for uninitialized variables
Problem:    MS-Windows: compiler warning for uninitialized variables.
Solution:   Initialize variables.
2020-05-29 21:42:55 +02:00
b60db8ba14 patch 8.2.0837: compiler warning for value set but not used
Problem:    Compiler warning for value set but not used.
Solution:   Move variable inside #ifdef.
2020-05-29 21:38:42 +02:00
14798ab9a5 patch 8.2.0836: not all :cdo output is visible
Problem:    Not all :cdo output is visible.
Solution:   Reset 'shortmess' temporarily. (Yegappan Lakshmanan, closes #6155)
2020-05-28 21:30:11 +02:00
c998370562 patch 8.2.0835: Motif: mapping <C-bslash> still doesn't work
Problem:    Motif: mapping <C-bslash> still doesn't work.
Solution:   Accept CSI for K_SPECIAL.  Do not apply CTRL to the character
            early.  (closes #6150)
2020-05-28 21:03:53 +02:00
3f65c66df9 patch 8.2.0834: :drop command in terminal popup causes problems
Problem:    :drop command in terminal popup causes problems.
Solution:   Check for using a popup window. (closes #6151)
2020-05-27 23:15:16 +02:00
ca5bc74607 patch 8.2.0833: mapping <C-bslash> doesn't work in the GUI
Problem:    Mapping <C-bslash> doesn't work in the GUI.
Solution:   Reset seenModifyOtherKeys when starting the GUI. (closes #6150)
2020-05-27 22:08:34 +02:00
a55ba06f69 patch 8.2.0832: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Add initial value.
2020-05-27 21:29:04 +02:00
f4b68e9056 patch 8.2.0831: compiler warnings for integer sizes
Problem:    Compiler warnings for integer sizes.
Solution:   Add type casts. (Mike Williams)
2020-05-27 21:22:14 +02:00
80a20df86a patch 8.2.0830: Motif: can't map "!"
Problem:    Motif: can't map "!". (Ben Jackson)
Solution:   Remove the shift modifier if it's already included in the key.
            (closes #6147)
2020-05-26 22:14:27 +02:00
388a5d4f20 Update runtime files 2020-05-26 21:20:45 +02:00
fcb0b61d15 patch 8.2.0829: filter() may give misleading error message
Problem:    filter() may give misleading error message.
Solution:   Also mention Blob as an allowed argument.
2020-05-26 20:22:01 +02:00
92c098d18e patch 8.2.0828: Travis: regexp patttern doesn't work everywhere
Problem:    Travis: regexp patttern doesn't work everywhere.
Solution:   Use [:blank:] instead of \b. (Ozaki Kiichi, closes #6146)
2020-05-26 20:09:11 +02:00
285b189260 patch 8.2.0827: Vim9: crash in :defcompile
Problem:    Vim9: crash in :defcompile.
Solution:   Fix off-by-one error.
2020-05-26 11:37:26 +02:00
ebc3de634f patch 8.2.0826: Vim9: crash in :defcompile
Problem:    Vim9: crash in :defcompile.
Solution:   Restart the loop after a call to compile_def_function() caused the
            hash table to resize.
2020-05-26 11:08:28 +02:00
a14e697547 patch 8.2.0825: def_function() may return pointer that was freed
Problem:    def_function() may return pointer that was freed.
Solution:   Set "fp" to NULL after freeing it.
2020-05-25 23:29:28 +02:00
1919371b2b patch 8.2.0824: still not enough memory allocated when converting string
Problem:    Still not enough memory allocated when converting string with
            special character.
Solution:   Reserve space for expanding K_SPECIAL. (closes #6130)
2020-05-25 23:01:42 +02:00
25e0f5863e patch 8.2.0823: Vim9: script reload test is disabled
Problem:    Vim9: script reload test is disabled.
Solution:   Compile a function in the context of the script where it was
            defined.  Set execution stack for compiled function.  Add a test
            that an error is reported for the right file/function.
2020-05-25 22:36:50 +02:00
2eec37926d patch 8.2.0822: Vim9: code left over from discovery phase
Problem:    Vim9: code left over from discovery phase.
Solution:   Remove the dead code.
2020-05-25 20:33:55 +02:00
45a1508a22 patch 8.2.0821: Vim9: memory leak in expr test
Problem:    Vim9: memory leak in expr test.
Solution:   Do not decrement the length of the list of functions if the
            current function is not at the end.
2020-05-25 00:28:33 +02:00
6ff71d8b7f patch 8.2.0820: Vim9: function type isn't set until compiled
Problem:    Vim9: function type isn't set until compiled.
Solution:   Set function type early.
2020-05-24 23:45:24 +02:00
f40e51a880 patch 8.2.0819: compiler warning for unused variable
Problem:    Compiler warning for unused variable.
Solution:   Remove the variable.
2020-05-24 23:14:23 +02:00
822ba24743 patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Problem:    Vim9: using a discovery phase doesn't work well.
Solution:   Remove the discovery phase, instead compile a function only when
            it is used.  Add :defcompile to compile def functions earlier.
2020-05-24 23:00:18 +02:00
f7271e8316 patch 8.2.0817: not enough memory allocated when converting string
Problem:    Not enough memory allocated when converting string with special
            character.
Solution:   Reserve space for modifier code. (closes #6130)
2020-05-24 18:45:07 +02:00
87202264f8 patch 8.2.0816: terminal test fails when compiled with Athena
Problem:    Terminal test fails when compiled with Athena.
Solution:   Do give an error when the GUI is not running. (hint by Dominique
            Pelle, closes #5928, closes #6132)
2020-05-24 17:23:45 +02:00
9c65253fe7 patch 8.2.0815: maparg() does not provide enough information for mapset()
Problem:    maparg() does not provide enough information for mapset().
Solution:   Add "lhsraw" and "lhsrawalt" items.  Drop "simplified"
2020-05-24 13:10:18 +02:00
3718427ba3 patch 8.2.0814: clang warning for implicit conversion
Problem:    Clang warning for implicit conversion.
Solution:   Add type cast. (Dominique Pelle, closes #6124)
2020-05-23 19:30:05 +02:00
591cec8366 patch 8.2.0813: libvterm code is slightly different from upstream
Problem:    libvterm code is slightly different from upstream.
Solution:   Use upstream text to avoid future merge problems.  Mainly comment
            style changes.
2020-05-22 22:06:06 +02:00
c94c1467b9 patch 8.2.0812: mapset() does not properly handle <> notation
Problem:    mapset() does not properly handle <> notation.
Solution:   Convert <> codes. (closes #6116)
2020-05-22 20:01:06 +02:00
9cdcd1d0dc patch 8.2.0811: terminal keycode test is flaky
Problem:    Terminal keycode test is flaky.
Solution:   Use WaitForAssert()
2020-05-22 14:44:26 +02:00
2e61e2d083 patch 8.2.0810: error when appending "tagfile" to 'wildoptions'
Problem:    Error when appending "tagfile" to 'wildoptions'.
Solution:   use flags P_ONECOMMA and P_NODUP. (Dmitri Vereshchagin,
            closes #6105)
2020-05-22 14:10:36 +02:00
5a80f8ad5d patch 8.2.0809: build failure with small features
Problem:    Build failure with small features. (Tony Mechelynck)
Solution:   Move "expr" inside #ifdef.
2020-05-22 13:38:18 +02:00
98f1671cc0 patch 8.2.0808: not enough testing for the terminal window
Problem:    Not enough testing for the terminal window.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6069)  Fix memory
            leak.
2020-05-22 13:34:01 +02:00
4c9243f9fb patch 8.2.0807: cannot easily restore a mapping
Problem:    Cannot easily restore a mapping.
Solution:   Add mapset().
2020-05-22 13:10:44 +02:00
74fae513f8 patch 8.2.0806: using "func!" after vim9script gives confusing error
Problem:    using "func!" after vim9script gives confusing error.
Solution:   Give E477. (closes #6107)
2020-05-21 21:50:58 +02:00
fe81389d60 patch 8.2.0805: terminal key codes test fails on some systems
Problem:    Terminal key codes test fails on some systems.
Solution:   Skip keypad 3 and 9. (Yegappan Lakshmanan, closes #6070)
2020-05-21 20:38:31 +02:00
e5886ccb51 patch 8.2.0804: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revision 727, but add the index instead of switching
            between RGB and indexed.
2020-05-21 20:10:04 +02:00
83a52533b2 patch 8.2.0803: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 764 - 767
2020-05-20 19:30:19 +02:00
d863728913 patch 8.2.0802: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 759 - 762.
2020-05-20 18:41:41 +02:00
eaa3e0dae5 patch 8.2.0801: terminal test fails on Mac
Problem:    Terminal test fails on Mac.
Solution:   Concatenate OSC pieces.
2020-05-19 23:11:00 +02:00
a09195f29e patch 8.2.0800: errors from failing test are unclear
Problem:    Errors from failing test are unclear.
Solution:   Include text where parsing failed.
2020-05-19 22:38:59 +02:00
74c6963656 patch 8.2.0799: build fails if snprintf is not available
Problem:    Build fails if snprintf is not available.
Solution:   Use vim_snprintf().
2020-05-19 21:43:47 +02:00
be593bf135 patch 8.2.0798: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 755 - 758.
2020-05-19 21:20:04 +02:00
904e48a22b patch 8.2.0797: MS-Windows: compiler still can't handle C99 construct
Problem:    MS-Windows: compiler still can't handle C99 construct.
Solution:   Change to C90 construct. (Dominique Pelle, closes #6106)
2020-05-19 10:33:02 +02:00
37ebd42f16 patch 8.2.0796: MS-Windows: compiler can't handle C99 construct in libvterm
Problem:    MS-Windows: compiler can't handle C99 construct in libvterm.
Solution:   Change to C90 construct.
2020-05-18 23:27:50 +02:00
88d68de95d patch 8.2.0795: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 748 - 754.
2020-05-18 21:51:01 +02:00
d098b824c1 patch 8.2.0794: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 743 - 747.
2020-05-18 21:12:59 +02:00
1e1d2e89fa patch 8.2.0793: MS-Windows: cannot build GUI with small features
Problem:    MS-Windows: cannot build GUI with small features. (Michael Soyka)
Solution:   Add #ifdef around use of windowsVersion. (Ken Takata)
2020-05-18 20:17:02 +02:00
c33b3216c8 patch 8.2.0792: build failure with small features
Problem:    Build failure with small features.
Solution:   Add #ifdef.
2020-05-18 20:12:09 +02:00
b5383b174b patch 8.2.0791: a second popup window with terminal causes trouble
Problem:    A second popup window with terminal causes trouble.
Solution:   Disallow opening a second terminal-popup window. (closes #6101,
            closes #6103) Avoid defaulting to an invalid line number.
2020-05-18 19:46:48 +02:00
843700875e patch 8.2.0790: Vim9: list index not well tested
Problem:    Vim9: list index not well tested.
Solution:   Add a few more tests.
2020-05-18 14:20:36 +02:00
66b3101672 patch 8.2.0789: Vim9: expression testing lost coverage using constants
Problem:    Vim9: expression testing lost coverage using constants.
Solution:   Use a few variables instead of constants.
2020-05-18 13:38:02 +02:00
deb17451ed patch 8.2.0788: memory leak in libvterm
Problem:    Memory leak in libvterm.
Solution:   free tmpbuffer.
2020-05-17 23:34:42 +02:00
a2e408f598 patch 8.2.0787: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 741 - 742.
2020-05-17 23:00:52 +02:00
0b39ec3c7d patch 8.2.0786: channel test is flaky on FreeBSD
Problem:    Channel test is flaky on FreeBSD.
Solution:   Set the sockiet TCP_NODELAY option. Adjust expected line count in
            netbeans test. (Ozaki Kiichi, closes #6097)
2020-05-17 22:33:53 +02:00
6fc3b59ee9 patch 8.2.0785: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 734 - 740.
2020-05-17 22:27:55 +02:00
94d729cbe8 patch 8.2.0784: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 730 - 733.
2020-05-17 21:50:16 +02:00
c4c9f7e43e patch 8.2.0783: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 728 - 729.
2020-05-17 20:52:45 +02:00
df1643a6a7 patch 8.2.0782: cannot build with Lua on MS-Windows
Problem:    Cannot build with Lua on MS-Windows.
Solution:   Add DLL symbol for luaL_Loadstring. (Ken Takata)
2020-05-17 18:53:27 +02:00
9309eb2f28 patch 8.2.0781: compiler warning for not using value in Lua
Problem:    Compiler warning for not using value in Lua.
Solution:   Add "(void)".
2020-05-17 16:53:56 +02:00
2d2970ea59 patch 8.2.0780: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 724 - 726.
2020-05-17 16:29:47 +02:00
f4e16ae041 patch 8.2.0779: tmode_T not used everywhere
Problem:    Tmode_T not used everywhere.
Solution:   Also use tmode_T for settmode().
2020-05-17 16:10:11 +02:00
d4a5f40c0c patch 8.2.0778: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 720 - 723.
2020-05-17 16:04:44 +02:00
ed37d9b324 Update feature_request.md 2020-05-17 15:17:26 +02:00
79ea680e6b patch 8.2.0777: terminal test fails
Problem:    Terminal test fails.
Solution:   Adjust character position for double-wide characters.
2020-05-17 15:09:27 +02:00
e178ba3654 patch 8.2.0776: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revision 719.
2020-05-17 14:59:47 +02:00
eb04f0893a patch 8.2.0775: not easy to call a Vim function from Lua
Problem:    Not easy to call a Vim function from Lua.
Solution:   Add vim.call() and vim.fn(). (Prabir Shrestha, closes #6063)
2020-05-17 14:32:35 +02:00
26e86445bf patch 8.2.0774: t_TI and t_TE are output when using 'visualbell'
Problem:    t_TI and t_TE are output when using 'visualbell'. (Dominique
            Pelle)
Solution:   Do not change the terminal mode for a short sleep.  Do not output
            t_TI and t_TE when switching to/from TMODE_SLEEP. Make tmode an
            enum.
2020-05-17 14:06:16 +02:00
3b1f18f785 patch 8.2.0773: switching to raw mode every time ":" is used
Problem:    Switching to raw mode every time ":" is used.
Solution:   When executing a shell set cur_tmode to TMODE_UNKNOWN, so that the
            next time TMODE_RAW is used it is set, but not every time.
2020-05-16 23:15:08 +02:00
df671b4629 patch 8.2.0772: Vim9: some variable initializations not tested
Problem:    Vim9: some variable initializations not tested.
Solution:   Add a few more tests
2020-05-16 22:33:33 +02:00
6f5b6dfb16 patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Problem:    Vim9: cannot call a compiled closure from not compiled code.
Solution:   Pass funcexe to call_user_func().
2020-05-16 21:20:12 +02:00
aa5fc4ec51 patch 8.2.0770: cannot map CTRL-B when using the GUI
Problem:    Cannot map CTRL-B when using the GUI.
Solution:   Reset the CTRL modifier when used. (closes #6092)
2020-05-16 18:57:53 +02:00
129d6bf6b3 patch 8.2.0769: VimLeavePre not triggered when Vim is terminated
Problem:    VimLeavePre not triggered when Vim is terminated.
Solution:   Unblock autocommands.
2020-05-16 16:08:35 +02:00
e75ba268b3 patch 8.2.0768: Vim9: memory leak in script test
Problem:    Vim9: memory leak in script test.
Solution:   Clear typval before giving an error message.
2020-05-16 15:43:31 +02:00
645e3fe3fe patch 8.2.0767: modifyOtherKeys active when using a shell command in autocmd
Problem:    ModifyOtherKeys active when using a shell command in autocmd.
Solution:   Output T_CTE when going to cooked mode. (closes 5617)
2020-05-16 15:05:04 +02:00
e882f7a73c patch 8.2.0766: display error when using 'number' and 'breakindent'
Problem:    Display error when using 'number' and 'breakindent'.
Solution:   Adjust extra spaces in the first row. (Ken Takata, closes #6089,
            closes #5986)
2020-05-16 14:07:39 +02:00
fd615a3c90 patch 8.2.0765: In the GUI can't use all the modifiers.
Problem:    In the GUI can't use all the modifiers. (Andri Möll)
Solution:   Do not apply Alt/Meta early, do it later like with the terminal.
            Avoid the Motif test from crashing.
2020-05-16 14:01:51 +02:00
a6e67e4f41 patch 8.2.0764: Vim9: assigning to option not fully tested
Problem:    Vim9: assigning to option not fully tested.
Solution:   Add more test cases. Allow using any type for assignment.
2020-05-15 23:36:40 +02:00
4457e1d98f patch 8.2.0763: GUI test fails without the terminal feature
Problem:    GUI test fails without the terminal feature.
Solution:   Check the terminal feature is supported. (Ken Takata,
            closes #6084)
2020-05-15 22:46:44 +02:00
76cb683097 patch 8.2.0762: buffer is not considered modified after setting crypt key
Problem:    Buffer is not considered modified after setting crypt key.
Solution:   Set the modified flag. (Christian Brabandt, closes #6082)
2020-05-15 22:30:38 +02:00
4aeeb63938 patch 8.2.0761: Vim9: instructions not tested
Problem:    Vim9: instructions not tested
Solution:   Use a variable instead of a constant.
2020-05-15 22:01:57 +02:00
4dac32caf3 patch 8.2.0760: Vim9: dict member errors not tested
Problem:    Vim9: dict member errors not tested.
Solution:   Delete unreachable error.  Add tests.
2020-05-15 21:44:19 +02:00
270d0388d2 patch 8.2.0759: Vim9: missing changes for performance improvements
Problem:    Vim9: missing changes for performance improvements
Solution:   Use GA_GROW().  Don't call breakcheck so often.
2020-05-15 21:42:53 +02:00
cb7904016e patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Problem:    Vim9: no test for STORELIST and STOREDICT.
Solution:   Add a test.  Make matches stricter.
2020-05-15 20:53:00 +02:00
4902ab16cb patch 8.2.0757: Vim9: no test for MEMBER instruction
Problem:    Vim9: no test for MEMBER instruction.
Solution:   Add a test.  Make matches stricter.
2020-05-15 19:21:31 +02:00
7e6f3fcc3c patch 8.2.0756: MS-Windows: still a compiler warning
Problem:    MS-Windows: still a compiler warning.
Solution:   Move flag to another place in the Makefile. (Ken Takata,
            closes #6083)
2020-05-15 18:21:51 +02:00
227a69de1e patch 8.2.0755: Vim9: No error when variable initializer is not a constant
Problem:    Vim9: No error when variable initializer is not a constant.
Solution:   Return FAIL when trying to get a variable value.  Do not execute a
            script when an error is deteted in the first or second phase.
2020-05-15 18:17:28 +02:00
a5d0077efb patch 8.2.0754: Vim9: No test for forward declaration
Problem:    Vim9: No test for forward declaration.
Solution:   Add a test.
2020-05-14 23:20:55 +02:00
32e351179e patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Problem:    Vim9: expressions are evaluated in the discovery phase.
Solution:   Bail out if an expression is not a constant.  Require a type for
            declared constants.
2020-05-14 22:41:15 +02:00
e06a28f5e3 patch 8.2.0752: terminal in popup window test is a bit flaky
Problem:    Terminal in popup window test is a bit flaky.
Solution:   Wait for shell job status to be "run".  Mark as flaky test.
2020-05-13 23:24:12 +02:00
2b72821924 Update version.c for missing patch number 2020-05-13 23:21:55 +02:00
7e9f351b2e patch 8.2.0751: Vim9: performance can be improved
Problem:    Vim9: performance can be improved.
Solution:   Don't call break.  Inline check for list materialize.  Make an
            inline version of ga_grow().
2020-05-13 22:44:22 +02:00
37d1b4f941 patch 8.2.0750: netbeans test is a bit flaky
Problem:    Netbeans test is a bit flaky.
Solution:   Allow for standard sign to be defined.  Use WaitForAssert().
2020-05-13 17:16:04 +02:00
55ba4b844f patch 8.2.0749: TERM signal test fails on FreeBSD
Problem:    TERM signal test fails on FreeBSD.
Solution:   Do not check the messages, the may appear anywhere. (Dominique
            Pelle, closes #6075)
2020-05-13 16:53:49 +02:00
ef6b979bfa patch 8.2.0748: cannot get a list of all popups
Problem:    Cannot get a list of all popups.
Solution:   Add popup_list().  Use it in the test runner.
2020-05-13 16:34:15 +02:00
03a9f84817 patch 8.2.0747: cannot forcefully close all popups
Problem:    Cannot forcefully close all popups.
Solution:   Add the "force" argument to popup_clear().  Use it after running a
            test.  Put back the check for a popup when editing a file.
2020-05-13 13:40:16 +02:00
d502aa4c10 patch 8.2.0746: popup_clear() hangs when a popup can't be closed
Problem:    popup_clear() hangs when a popup can't be closed.
Solution:   Bail out when a popup can't be closed.
2020-05-13 01:04:32 +02:00
06f0853cb0 patch 8.2.0745: crash on exit when not all popups are closed
Problem:    Crash on exit when not all popups are closed.
Solution:   Close popups when freeing all memory.  Disable checking for popup
            when editing a file for now.
2020-05-12 23:45:16 +02:00
47e13953ff Update runtime files 2020-05-12 22:49:12 +02:00
9e6ba8cbef patch 8.2.0744: the name vim is not capatilized in a message
Problem:    The name vim is not capatilized in a message.
Solution:   Use "Vim" instead of "vim".
2020-05-12 22:21:26 +02:00
5aed0ccb96 patch 8.2.0743: can move to another buffer from a terminal in popup window
Problem:    Can move to another buffer from a terminal in popup window.
Solution:   Do not allow "gf" or editing a file. (closes #6072)
2020-05-12 22:02:21 +02:00
48a687148c patch 8.2.0742: handling of a TERM signal not tested
Problem:    Handling of a TERM signal not tested.
Solution:   Add a test for SIGTERM. (Dominique Pelle, closes #6055)
2020-05-12 14:42:02 +02:00
c3fd98cf8e patch 8.2.0741: Python tests fail because of changed message
Problem:    Python tests fail because of changed message.
Solution:   Adjust the expected messages (Dominique Pelle, closes #6066)
2020-05-12 13:08:07 +02:00
86181df9f5 patch 8.2.0740: minor message mistakes
Problem:    Minor message mistakes.
Solution:   Change vim to Vim and other fixes.
2020-05-11 23:14:04 +02:00
b415168a98 patch 8.2.0739: incomplete profiling when exiting because of a dealy signal
Problem:    Incomplete profiling when exiting because of a dealy signal.
Solution:   Call __gcov_flush() if available.
2020-05-11 22:13:28 +02:00
91689ea8ae patch 8.2.0738: mouse handling in a terminal window not well tested
Problem:    Mouse handling in a terminal window not well tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6052)
2020-05-11 22:04:53 +02:00
5c3128efe6 patch 8.2.0737: when shell doesn't support CTRL-Z Vim still handles it
Problem:    When shell doesn't support CTRL-Z Vim still handles it.
Solution:   Ignore the STOP signal if it was ignored on startup.
            (Kurtis Rader, closes #5990, closes #6058)
2020-05-11 20:54:42 +02:00
aacc6afdb8 patch 8.2.0736: some files not recognized as pamenv
Problem:    Some files not recognized as pamenv.
Solution:   Add pam_inv.conf. (closes #6065)
2020-05-11 19:46:36 +02:00
bc38f25c02 patch 8.2.0735: Vim9: using unitialized memory
Problem:    Vim9: using unitialized memory.
Solution:   Clear the arg_lvar field.
2020-05-10 23:20:06 +02:00
04816717df patch 8.2.0734: Vim9: leaking memory when using :finish
Problem:    Vim9: leaking memory when using :finish.
Solution:   Do not check for next line in third pass.
2020-05-10 23:11:53 +02:00
cb2bdb1c6d patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Problem:    Vim9: assigning to dict or list argument does not work.
Solution:   Recognize an argument as assignment target.
2020-05-10 22:53:56 +02:00
f163bd5e41 patch 8.2.0732: Vim9: storing value in dict messes up stack
Problem:    Vim9: storing value in dict messes up stack.
Solution:   Correct item count of stack.
2020-05-10 21:47:43 +02:00
7e5bd91dc9 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Problem:    Vim9: parsing declarations continues after :finish.
Solution:   Bail out when encountering :finish.
2020-05-10 21:20:29 +02:00
1cc2a94f80 patch 8.2.0730: Vim9: Assignment to dict member does not work
Problem:    Vim9: Assignment to dict member does not work.
Solution:   Parse dict assignment. Implement getting dict member.
2020-05-10 19:10:31 +02:00
89483d4043 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Problem:    Vim9: When reloading a script variables are not cleared.
Solution:   When sourcing a script again clear all script-local variables.
2020-05-10 15:24:44 +02:00
69212b11d1 patch 8.2.0728: messages about a deadly signal are not left aligned
Problem:    Messages about a deadly signal are not left aligned.
Solution:   Output a CR before the NL. (Dominique Pelle, #6055)
2020-05-10 14:14:03 +02:00
d695ba732d patch 8.2.0727: MS-Windows: new gcc compiler does not support scanf format
Problem:    MS-Windows: new gcc compiler does not support scanf format.
Solution:   Use "%ll" instead of "%I". (Ken Takata)
2020-05-10 13:42:43 +02:00
3b6a6eb7b4 patch 8.2.0726: Vim9: leaking memory when calling not compiled :def function
Problem:    Vim9: leaking memory when calling not compiled :def function.
Solution:   Check if function is compiled earlier.
2020-05-09 23:20:20 +02:00
09689a0284 patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Problem:    Vim9: cannot call a function declared later in Vim9 script.
Solution:   Make two passes through the script file.
2020-05-09 22:50:08 +02:00
396f3138ca patch 8.2.0724: Vim9: appending to buffer/window/tab variable not tested
Problem:    Vim9: appending to buffer/window/tab variable not tested
Solution:   Add a test.
2020-05-09 18:44:56 +02:00
1c74721233 patch 8.2.0723: Vim9: nested constant expression not evaluated compile time
Problem:    Vim9: nested constant expression not evaluated compile time.
Solution:   Use compile_expr1() for parenthesis.
2020-05-09 18:28:34 +02:00
7f14155f42 patch 8.2.0722: Vim9: not handling constant expression for elseif
Problem:    Vim9: not handling constant expression for elseif.
Solution:   Use postponed constants.  Delete the code for evaluating a
            constant expression.
2020-05-09 17:35:53 +02:00
497f76bfbf patch 8.2.0721: Vim9: leaking memory when skipping
Problem:    Vim9: leaking memory when skipping.
Solution:   Disable skipping in generate_ppconst().
2020-05-09 16:44:22 +02:00
b1062eb23e patch 8.2.0720: occasional exit when encountering an X error
Problem:    Occasional exit when encountering an X error. (Manfred Lotz)
Solution:   On an X error do not exit, do preserve files.
2020-05-09 16:11:33 +02:00
a5565e4189 patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Problem:    Vim9: more expressions can be evaluated at compile time
Solution:   Recognize has('name').
2020-05-09 15:44:01 +02:00
7d3664df90 patch 8.2.0718: gcc warning for returning pointer to local variable
Problem:    Gcc warning for returning pointer to local variable. (John
            Marriott)
Solution:   Return another pointer.
2020-05-09 13:06:24 +02:00
7d131b0715 patch 8.2.0717: Vim9: postponed constant expressions does not scale
Problem:    Vim9: postponed constant expressions does not scale.
Solution:   Add a structure to pass around postponed constants.
2020-05-08 19:10:34 +02:00
5c2fe64443 patch 8.2.0716: Vim9: another memory leak
Problem:    Vim9: another memory leak.
Solution:   Clear typval when failing.
2020-05-07 23:20:21 +02:00
cca34aa4be patch 8.2.0715: Vim9: leaking memory
Problem:    Vim9: leaking memory.
Solution:   Free strings after concatenating them.
2020-05-07 22:23:58 +02:00
f0eefce93b patch 8.2.0714: Vim9: handling constant expression does not scale
Problem:    Vim9: handling constant expression does not scale.
Solution:   Use another solution, passint typval_T.
2020-05-07 22:19:01 +02:00
2cfb4a2a72 Update runtime files 2020-05-07 18:56:00 +02:00
6115481053 patch 8.2.0713: the pam_environment file is not recognized
Problem:    The pam_environment file is not recognized.
Solution:   Add a filetype pattern for pamenv. (closes #6051)
2020-05-07 18:51:27 +02:00
0ff5dedf0f patch 8.2.0712: various code not fully tested
Problem:    Various code not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6049)
2020-05-07 18:43:44 +02:00
b2d0e51366 patch 8.2.0711: temp directory might be cleared
Problem:    With a long running Vim the temp directory might be cleared on
            some systems.
Solution:   Lock the temp directory. (closes #6044)
2020-05-07 18:37:03 +02:00
4a070cc82e patch 8.2.0710: Netbeans test sometimes fails
Problem:    Netbeans test sometimes fails.
Solution:   Mark any test using an external command as flaky.
2020-05-07 18:16:35 +02:00
ea554ca4fa patch 8.2.0709: MS-Windows: compiler warning for int vs size_t
Problem:    MS-Windows: compiler warning for int vs size_t.
Solution:   Add type cast. (Mike Williams)
2020-05-07 17:46:59 +02:00
61a8981699 patch 8.2.0708: Vim9: constant expressions are not simplified
Problem:    Vim9: constant expressions are not simplified.
Solution:   Simplify string concatenation.
2020-05-07 16:58:17 +02:00
f391586f3f patch 8.2.0707: Vim9 function test fails
Problem:    Vim9 function test fails.
Solution:   Adjust expected error code.
2020-05-07 14:37:19 +02:00
8a1c101315 patch 8.2.0706: Vim9: using assert_fails() causes function to finish
Problem:    Vim9: using assert_fails() causes function to finish.
Solution:   Check did_emsg instead of called_emsg.
2020-05-07 14:07:25 +02:00
3657686a0e patch 8.2.0705: indent tests don't run on CI for FreeBSD
Problem:    Indent tests don't run on CI for FreeBSD.
Solution:   Set modeline. (Ozaki Kiichi, closes #6048)
2020-05-06 22:25:05 +02:00
f821ddaa0c patch 8.2.0704: Vim9: memory leak in disassemble test
Problem:    Vim9: memory leak in disassemble test.
Solution:   Decrement refcount when creating funccal.
2020-05-06 22:18:17 +02:00
b68b346e6d patch 8.2.0703: Vim9: closure cannot store value in outer context
Problem:    Vim9: closure cannot store value in outer context.
Solution:   Make storing value in outer context work.  Make :disassemble
            accept a function reference.
2020-05-06 21:06:30 +02:00
54ed0dff29 patch 8.2.0702: running channel tests may leave running process behind
Problem:    Running channel tests may leave running process behind.
Solution:   Make Python client exit when running into EOF. (Kurtis Rader,
            part of #6046)
2020-05-06 19:38:30 +02:00
2a1381c305 patch 8.2.0701: Vim9 test fails without job feature
Problem:    Vim9 test fails without job feature.
Solution:   Add feature check.
2020-05-05 23:32:58 +02:00
40ee466c36 patch 8.2.0700: Vim9: converting error message to exception not tested
Problem:    Vim9: converting error message to exception not tested.
Solution:   Test exception from error.  Do not continue after :echoerr.
2020-05-05 22:08:26 +02:00
015f4267f4 patch 8.2.0699: Vim9: not all errors tested
Problem:    Vim9: not all errors tested.
Solution:   Add test for deleted function.  Bail out on first error.
2020-05-05 21:25:22 +02:00
f9ab52e155 patch 8.2.0698: insert mode completion not fully tested
Problem:    Insert mode completion not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6041)
2020-05-05 19:57:18 +02:00
221fcc741a patch 8.2.0697: Vim9: memory leak when using nested function
Problem:    Vim9: memory leak when using nested function.
Solution:   Unreference function when deleting instructions. Adjust reference
            count for local variables.
2020-05-05 19:46:20 +02:00
0e65d3de0a patch 8.2.0696: Vim9: nested function does not work properly
Problem:    Vim9: nested function does not work properly
Solution:   Create a function reference.  Check argument count.
2020-05-05 17:53:16 +02:00
04b1269783 patch 8.2.0695: Vim9: cannot define a function inside a function
Problem:    Vim9: cannot define a function inside a function.
Solution:   Initial support for :def inside :def.
2020-05-04 23:24:44 +02:00
80a8d3889b patch 8.2.0694: Haiku: channel and terminal do not work
Problem:    Haiku: channel and terminal do not work.
Solution:   Close files when the job has finished. (Ozaki Kiichi,
            closes #6039)
2020-05-03 22:57:32 +02:00
2fd4cd755c patch 8.2.0693: closure using argument not tested
Problem:    Closure using argument not tested.
Solution:   Add a test, make it work.
2020-05-03 22:30:49 +02:00
4515bcdec8 patch 8.2.0692: startup test fails on MS-Windows
Problem:    Startup test fails on MS-Windows.
Solution:   Allow for any path.
2020-05-03 18:21:04 +02:00
7779ee30d9 patch 8.2.0691: startup test fails
Problem:    Startup test fails.
Solution:   Adjust expected output from -V2 argument.
2020-05-03 17:55:32 +02:00
5125874951 patch 8.2.0690: line number of option set by modeline is wrong
Problem:    Line number of option set by modeline is wrong.
Solution:   Do not double the line number. (Ozaki Kiichi, closes #6035)
2020-05-03 17:19:33 +02:00
a38b2b737e patch 8.2.0689: when using getaddrinfo() the error message is unclear
Problem:    When using getaddrinfo() the error message is unclear.
Solution:   Use gai_strerror() to get the message. (Ozaki Kiichi,
            closes #6034)
2020-05-03 17:03:29 +02:00
647a530b33 patch 8.2.0688: output clobbered if setting 'verbose' to see shell commands
Problem:    Output clobbered if setting 'verbose' to see shell commands.
Solution:   Only output "Searching for" when 'verbose' is 11 or higher.
2020-05-03 17:01:24 +02:00
41d4299f26 patch 8.2.0687: some tests do not work on FreeBSD
Problem:    Some tests do not work on FreeBSD.
Solution:   Enable modeline.  Use WaitFor() in more cases. (Ozaki Kiichi,
            closes #6036)
2020-05-03 16:29:50 +02:00
2eaeaf3c31 patch 8.2.0686: formatoptions not sufficiently tested
Problem:    Formatoptions not sufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6031)
2020-05-03 16:04:43 +02:00
3df02f507f patch 8.2.0685: Build failure
Problem:    Build failure.
Solution:   Include missing changes.
2020-05-03 15:47:33 +02:00
f7779c63d4 patch 8.2.0684: Vim9: memory leak when using lambda
Problem:    Vim9: memory leak when using lambda.
Solution:   Move the funccal context to the partial. Free the function when
            exiting.
2020-05-03 15:38:16 +02:00
5adc55cb74 patch 8.2.0683: Vim9: parsing type does not always work
Problem:    Vim9: parsing type does not always work.
Solution:   Handle func type without return value.  Test more closures.
            Fix type check offset.  Fix garbage collection.
2020-05-02 23:12:58 +02:00
1c0d44f8ef patch 8.2.0682: Vim9: parsing function argument type can get stuck
Problem:    Vim9: parsing function argument type can get stuck.
Solution:   Bail out when not making progress.
2020-05-02 19:04:58 +02:00
0b6849e9e3 patch 8.2.0681: pattern for 'hlsearch' highlighting may leak
Problem:    Pattern for 'hlsearch' highlighting may leak. (Dominique Pelle)
Solution:   Call end_search_hl() to make sure the previous pattern is freed.
            (closes #6028)
2020-05-02 18:33:25 +02:00
01f731e97c patch 8.2.0680: PTYGROUP and PTYMODE are unused
Problem:    PTYGROUP and PTYMODE are unused.
Solution:   Remove from autoconf. (closes #6024)
2020-05-02 18:14:37 +02:00
bf67ea1af0 patch 8.2.0679: Vim9: incomplete support for closures
Problem:    Vim9: incomplete support for closures.
Solution:   At the end of a function copy arguments and local variables if
            they are still used by a referenced closure.
2020-05-02 17:52:42 +02:00
d58a662f44 patch 8.2.0678: rare crash for popup menu
Problem:    Rare crash for popup menu.
Solution:   Check for NULL pointer. (Nobuhiro Takasaki, closes #6027)
2020-05-02 14:52:57 +02:00
c8cd2b34d1 patch 8.2.0677: Vim9: no support for closures
Problem:    Vim9: no support for closures.
Solution:   Find variables in the outer function scope, so long as the scope
            exists.
2020-05-01 19:29:08 +02:00
37addecc42 patch 8.2.0676: pattern in list of distributed files does not match
Problem:    Pattern in list of distributed files does not match.
Solution:   Drop "testdir/test_[a-z]*.ok".  Add CI sed files.
2020-05-01 16:08:11 +02:00
7ceefb35c8 Update runtime files 2020-05-01 16:07:38 +02:00
b84a381c75 patch 8.2.0675: Vim9: no support for closures
Problem:    Vim9: no support for closures.
Solution:   Do not re-use stack entries.
2020-05-01 15:44:29 +02:00
11abd09521 patch 8.2.0674: some source files are too big
Problem:    Some source files are too big.
Solution:   Move text formatting functions to a new file. (Yegappan
            Lakshmanan, closes #6021)
2020-05-01 14:26:37 +02:00
4cfde1d273 patch 8.2.0673: cannot build Haiku in shadow directory
Problem:    Cannot build Haiku in shadow directory.
Solution:   Add symlink. (Ozaki Kiichi, closes #6023)
2020-05-01 14:14:07 +02:00
6ab0953fef patch 8.2.0672: heredoc in scripts does not accept lower case marker
Problem:    Heredoc in scripts does not accept lower case marker.
Solution:   Allow lower case only in non-Vim scripts. (Ken Takata,
            closes #6019)
2020-05-01 14:10:13 +02:00
9e175141f3 patch 8.2.0671: Haiku: compiler warnings
Problem:    Haiku: compiler warnings.
Solution:   Avoid the warnings. Drop display_errors() copy. (Emir Sari,
            closes #6018)
2020-04-30 22:51:01 +02:00
6adb9ea0a6 patch 8.2.0670: cannot change window when evaluating 'completefunc'
Problem:    Cannot change window when evaluating 'completefunc'.
Solution:   Make a difference between not changing text or buffers and also
            not changing window.
2020-04-30 22:31:18 +02:00
4e5534fab7 patch 8.2.0669: MS-Windows: display in VTP is a bit slow
Problem:    MS-Windows: display in VTP is a bit slow.
Solution:   Optimize the code. (Nobuhiro Takasaki, closes #6014)
2020-04-30 20:59:57 +02:00
7f6f56f43c patch 8.2.0668: compiler warning for int/size_t usage
Problem:    Compiler warning for int/size_t usage.
Solution:   Change "int" to "size_t". (Mike Williams)
2020-04-30 20:21:43 +02:00
2c5c1638a9 patch 8.2.0667: cannot install Haiku version from source
Problem:    Cannot install Haiku version from source.
Solution:   Update Makefile and rdef file. (Emir Sari, closes #6013)
2020-04-30 19:54:38 +02:00
88e6cc2539 patch 8.2.0666: Ruby test fails on MS-Windows
Problem:    Ruby test fails on MS-Windows.
Solution:   Remove the "maintainer" line. (Ken Takata, closes #6015)
2020-04-30 19:19:29 +02:00
a161cb5ddd patch 8.2.0665: wrongly assuming Python executable is called "python"
Problem:    Wrongly assuming Python executable is called "python".
Solution:   Use detected python command. (Ken Takata, closes #6016)
            Also use CheckFunction if possible.
2020-04-30 19:09:35 +02:00
8dbafd0790 patch 8.2.0664: included undesired changes in Makefile
Problem:    Included undesired changes in Makefile.
Solution:   Revert the changes.
2020-04-29 23:11:32 +02:00
512fe833c3 patch 8.2.0663: not all systemd temp files are recognized
Problem:    Not all systemd temp files are recognized.
Solution:   Add two more patterns. (Jamie Macdonald, closes #6003)
2020-04-29 23:02:40 +02:00
dfc33a665d patch 8.2.0662: cannot use input() in a channel callback
Problem:    Cannot use input() in a channel callback.
Solution:   Reset vgetc_busy. (closes #6010)
2020-04-29 22:30:13 +02:00
339d60c89b patch 8.2.0661: eval test is still old style
Problem:    Eval test is still old style.
Solution:   Change into new style tests. (Yegappan Lakshmanan, closes #6009)
2020-04-29 22:01:21 +02:00
ed8ce057b7 patch 8.2.0660: the search.c file is a bit big
Problem:    The search.c file is a bit big.
Solution:   Split off the text object code to a separate file. (Yegappan
            Lakshmanan, closes #6007)
2020-04-29 21:04:15 +02:00
939b5db480 patch 8.2.0659: Vim9: no test for equal func type
Problem:    Vim9: no test for equal func type.
Solution:   Add a test.  Improve type check.
2020-04-28 22:49:08 +02:00
affc8fd2cd patch 8.2.0658: HP-UX build fails when setenv() is not defined
Problem:    HP-UX build fails when setenv() is not defined.
Solution:   Change "colors" to "t_colors". (John Marriott)
2020-04-28 21:58:29 +02:00
a0a9f43ab2 patch 8.2.0657: Vim9: no check if called variable is a FuncRef
Problem:    Vim9: no check if called variable is a FuncRef.
Solution:   Add a type check.
2020-04-28 21:29:34 +02:00
7ed8f59ae0 patch 8.2.0656: MS-Windows: redrawing right screen edge may not be needed
Problem:    MS-Windows: redrawing right screen edge may not be needed.
Solution:   Check the build version. (Nobuhiro Takasaki, closes #6002)
2020-04-28 20:44:42 +02:00
224a5f17c6 patch 8.2.0655: search code not sufficiently tested
Problem:    Search code not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5999)
2020-04-28 20:29:07 +02:00
a14bb7e113 patch 8.2.0654: building with Python fails
Problem:    Building with Python fails.
Solution:   Add missing argument.
2020-04-28 00:02:41 +02:00
03afdcf1f4 patch 8.2.0653: using uninitialized pointer
Problem:    using uninitialized pointer.
Solution:   Move assignment up. (John Marriott)
2020-04-27 23:39:30 +02:00
909ed7e902 patch 8.2.0652: compiler warning for char conversion
Problem:    Compiler warning for char conversion.
Solution:   Use unsigned char buffer.
2020-04-27 23:16:41 +02:00
57700ee4ac patch 8.2.0651: old style benchmark test still in list of distributed files
Problem:    Old style benchmark test still in list of distributed files.
Solution:   Remove the files from the list.
2020-04-27 22:51:33 +02:00
4c17ad94ec patch 8.2.0650: Vim9: script function can be deleted
Problem:    Vim9: script function can be deleted.
Solution:   Disallow deleting script function.  Delete functions when sourcing
            a script again.
2020-04-27 22:47:51 +02:00
db93495d27 patch 8.2.0649: undo problem whn an InsertLeave autocommand resets undo
Problem:    Undo problem whn an InsertLeave autocommand resets undo. (Kutsan
            Kaplan)
Solution:   Do not create a new undo block when leaving Insert mode.
2020-04-27 20:18:31 +02:00
0e71704b77 patch 8.2.0648: semicolon search does not work in first line
Problem:    Semicolon search does not work in first line.
Solution:   Allow the cursor to be in line zero. (Christian Brabandt,
            closes #5996)
2020-04-27 19:29:01 +02:00
bc970da807 patch 8.2.0647: MS-Windows: repeat count for events was not used
Problem:    MS-Windows: repeat count for events was not used.
Solution:   Check the repeat count. (Nobuhiro Takasaki, closes #5989)
2020-04-26 19:00:07 +02:00
759d81549c patch 8.2.0646: t_Co uses the value of $COLORS in the GUI
Problem:    t_Co uses the value of $COLORS in the GUI. (Masato Nishihata)
Solution:   Ignore $COLORS for the GUI. (closes #5992)
2020-04-26 16:52:49 +02:00
07b761a012 patch 8.2.0645: MS-Windows terminal: CTRL-C does not get to child job
Problem:    MS-Windows terminal: CTRL-C does not get to child job.
Solution:   Remove CREATE_NEW_PROCESS_GROUP from CreateProcessW(). (Nobuhiro
            Takasaki, closes #5987)
2020-04-26 16:06:01 +02:00
99fa721944 patch 8.2.0644: insufficient testing for invalid function arguments
Problem:    Insufficient testing for invalid function arguments.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5988)
2020-04-26 15:59:55 +02:00
e297802d6d patch 8.2.0643: terminal uses brown instead of dark yellow
Problem:    Terminal uses brown instead of dark yellow. (Romain Lafourcade)
Solution:   Use color index 3 instead of 130. (closes #5993)
2020-04-26 14:47:44 +02:00
7d41aa8874 patch 8.2.0642: Vim9: using invalid index
Problem:    Vim9: using invalid index.
Solution:   Check index for being valid.  Fix memory leak.
2020-04-26 14:29:56 +02:00
6378c4fef3 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Problem:    Vim9:  not expanded in :hardcopy and "syntax include".
Solution:   Add the EX_EXPAND flag.  Expend "syntax include".
2020-04-26 13:50:41 +02:00
cfe435d7fe patch 8.2.0640: Vim9: expanding does not work
Problem:    Vim9: expanding  does not work.
Solution:   Find wildcards in not compiled commands.  Reorganize test files.
2020-04-25 20:02:55 +02:00
49b2fb36ca patch 8.2.0639: MS-Windows: messages test still fails
Problem:    MS-Windows: messages test still fails.
Solution:   Filter out the maintainer message.
2020-04-25 17:13:56 +02:00
47a1a8baf9 patch 8.2.0638: MS-Windows: messages test fails
Problem:    MS-Windows: messages test fails.
Solution:   Clear environment variables.
2020-04-25 16:41:58 +02:00
333015a46e patch 8.2.0637: incsearch highlighting does not work for ":sort!"
Problem:    Incsearch highlighting does not work for ":sort!".
Solution:   Skip over the exclamation point. (closes #5983)
2020-04-25 15:54:16 +02:00
41f6918bf4 patch 8.2.0636: :messages does not show the maintainer when $LANG is unset
Problem:    :messages does not show the maintainer when $LANG is unset.
Solution:   Call get_mess_lang() if available. (closes #5978)
2020-04-25 15:45:37 +02:00
e93c968f52 patch 8.2.0635: when using 256 colors DarkYellow does not show expected color
Problem:    When using 256 colors DarkYellow does not show expected color.
Solution:   Use color 3 instead of 130. (Romain Lafourcade, closes #5985)
2020-04-25 15:35:32 +02:00
92b83ccfda patch 8.2.0634: crash with null partial and blob
Problem:    Crash with null partial and blob.
Solution:   Check for NULL pointer.  Add more tests. (Yegappan Lakshmanan,
            closes #5984)
2020-04-25 15:24:44 +02:00
9d8d0b5c64 patch 8.2.0633: crash when using null partial in filter()
Problem:    Crash when using null partial in filter().
Solution:   Fix crash.  Add more tests. (Yegappan Lakshmanan, closes #5976)
2020-04-24 22:47:31 +02:00
92c461ef1b patch 8.2.0632: crash when using Haiku
Problem:    Crash when using Haiku.
Solution:   Lock the screen. (closes #5975, closes #5973)
2020-04-24 22:19:00 +02:00
b52575f9cf patch 8.2.0631: Haiku file formatted with wrong tabstop
Problem:    Haiku file formatted with wrong tabstop.
Solution:   Use normal tabstop. Fix white space.
2020-04-24 22:16:13 +02:00
7714d7b31f patch 8.2.0630: "make tags" does not cover Haiku GUI file
Problem:    "make tags" does not cover Haiku GUI file.
Solution:   Add *.cc files.
2020-04-24 21:21:06 +02:00
65d032c779 patch 8.2.0629: setting a boolean option to v:false does not work
Problem:    Setting a boolean option to v:false does not work.
Solution:   Do not use the string representation of the value. (Christian
            Brabandt, closes #5974)
2020-04-24 20:57:01 +02:00
e71ebb46a2 patch 8.2.0628: error in menu translations
Problem:    Error in menu translations.
Solution:   Insert a backslash before a space in one more file. (Shun Bai,
            Emir Sari)
2020-04-23 23:54:04 +02:00
b8ce6b0005 patch 8.2.0627: Vim9: error message does not work
Problem:    Vim9: error message does not work. (Yegappan Lakshmanan)
Solution:   Swap lines.
2020-04-23 22:23:14 +02:00
f93c7fea08 patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Problem:    Vim9: wrong syntax of function in Vim9 script.
Solution:   Give error for missing space. Implement :echomsg and :echoerr.
            (closes #5670)
2020-04-23 22:16:53 +02:00
1df8b3fb04 patch 8.2.0625: Vim9: confusing error when calling unknown function
Problem:    Vim9: confusing error when calling unknown function.
Solution:   Give error while compiling.
2020-04-23 18:13:23 +02:00
a72cfb80cd patch 8.2.0624: Vim9: no check for space before #comment
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.  Fix :throw with double quoted string.
2020-04-23 17:07:30 +02:00
f7b398c6a9 patch 8.2.0623: typo in test comment
Problem:    Typo in test comment. (Christ van Willegen)
Solution:   Avoid mixing up a data structure with a body part.
2020-04-23 15:46:35 +02:00
beae4084fd patch 8.2.0622: Haiku: GUI does not compile
Problem:    Haiku: GUI does not compile.
Solution:   Various fixes. (Emir Sari, closes #5961)
2020-04-23 15:41:49 +02:00
95a467e7ee patch 8.2.0621: after running tests asan files may remain
Problem:    After running tests asan files may remain.
Solution:   Clean up asan files with "make testclean".
2020-04-23 14:41:46 +02:00
0d6fe631f7 patch 8.2.0620: error in menu translations
Problem:    Error in menu translations.
Solution:   Insert a backslash before a space.
2020-04-23 13:58:12 +02:00
ea04a6e8ba patch 8.2.0619: null dict is not handled like an empty dict
Problem:    Null dict is not handled like an empty dict.
Solution:   Fix the code and add tests. (Yegappan Lakshmanan, closes #5968)
2020-04-23 13:38:02 +02:00
db950e4c03 patch 8.2.0618: echoing a null list results in no output
Problem:    Echoing a null list results in no output. (Yegappan Lakshmanan)
Solution:   Return "[]" instead of NULL in echo_string_core().
2020-04-22 19:13:19 +02:00
d2662ad2de patch 8.2.0617: new error check triggers in Swedish menu
Problem:    New error check triggers in Swedish menu.
Solution:   Insert backslash. (Mats Tegner, closes #5966)
2020-04-22 14:30:31 +02:00
e770598f31 patch 8.2.0616: build error when disabling the diff feature
Problem:    Build error when disabling the diff feature.
Solution:   Move parenthesis outside of #ifdef. (Tom Ryder)
2020-04-21 22:23:15 +02:00
ad48e6c159 patch 8.2.0615: regexp benchmark stest is old style
Problem:    Regexp benchmark stest is old style.
Solution:   Make it a new style test.  Fix using a NULL list.  Add more tests.
            (Yegappan Lakshmanan, closes #5963)
2020-04-21 22:19:45 +02:00
ff06f283e3 patch 8.2.0614: get ml_get error when deleting a line in 'completefunc'
Problem:    Get ml_get error when deleting a line in 'completefunc'. (Yegappan
            Lakshmanan)
Solution:   Lock the text while evaluating 'completefunc'.
2020-04-21 22:01:14 +02:00
1966c24881 patch 8.2.0613: Vim9: no check for space before #comment
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.
2020-04-20 22:42:32 +02:00
2c7f8c574f Update runtime files 2020-04-20 19:52:53 +02:00
2c5ed4e330 patch 8.2.0612: Vim9: no check for space before #comment
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.
2020-04-20 19:42:10 +02:00
faac410409 patch 8.2.0611: Vim9: no check for space before #comment
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.
2020-04-20 17:46:14 +02:00
08f4157c5c patch 8.2.0610: some tests are still old style
Problem:    Some tests are still old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5957)
2020-04-20 16:50:00 +02:00
ad4dc83389 patch 8.2.0609: configure does not detect moonjit correctly
Problem:    Configure does not detect moonjit correctly.
Solution:   Double the brackets. (Ozaki Kiichi)
2020-04-20 16:21:53 +02:00
4da6df40f5 patch 8.2.0608: warning from clang when building message test
Problem:    Warning from clang when building message test.
Solution:   Use a void pointer.  (Dominique Pelle, closes #5958)
2020-04-20 16:12:09 +02:00
2bb76accc6 patch 8.2.0607: gcc warns for using uninitialized variable
Problem:    Gcc warns for using uninitialized variable. (John Marriott)
Solution:   Set name_end also for environment variables.
2020-04-19 22:57:44 +02:00
fbf2122cf9 patch 8.2.0606: several syntax HL errors not checked
Problem:    Several syntax HL errors not checked.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5954)
2020-04-19 18:31:25 +02:00
7bdaea6e0d patch 8.2.0605: Vim9: cannot unlet an environment variable
Problem:    Vim9: cannot unlet an environment variable.
Solution:   Implement unlet for $VAR.
2020-04-19 18:27:26 +02:00
eb58a24658 patch 8.2.0604: :startinsert in a terminal window used later
Problem:    :startinsert in a terminal window used later.
Solution:   Ignore :startinsert in a terminal window. (closes #5952)
2020-04-19 18:13:19 +02:00
f49e564082 patch 8.2.0603: configure does not detect moonjit
Problem:    Configure does not detect moonjit.
Solution:   Add check for moonjit. (Shlomi Fish, closes #5947)
2020-04-19 17:46:53 +02:00
7e0868efcf patch 8.2.0602: :unlet $VAR does not work properly
Problem:    :unlet $VAR does not work properly.
Solution:   Make ":lockvar $VAR" fail.  Check the "skip" flag.
2020-04-19 17:24:53 +02:00
d72c1bf0a6 patch 8.2.0601: Vim9: :unlet is not compiled
Problem:    Vim9: :unlet is not compiled.
Solution:   Implement :unlet instruction and check for errors.
2020-04-19 16:28:59 +02:00
d3aac2917d patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Problem:    Vim9: cannot read or write w:, t: and b: variables.
Solution:   Implement load and store for w:, t: and b: variables.
            (closes #5950)
2020-04-19 14:32:17 +02:00
173d841e86 patch 8.2.0599: Netbeans interface insufficiently tested
Problem:    Netbeans interface insufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5921)
2020-04-19 14:02:26 +02:00
61fbb3371e patch 8.2.0598: test_eval_stuff fails in normal terminal
Problem:    Test_eval_stuff fails in normal terminal.
Solution:   Close the new window.
2020-04-18 23:20:37 +02:00
90455cfa87 patch 8.2.0597: test_eval is old style
Problem:    Test_eval is old style.
Solution:   Change some tests to a new style test.
2020-04-18 21:56:38 +02:00
ec9749f33d patch 8.2.0596: crash in test49
Problem:    Crash in test49.
Solution:   Check the right pointer.
2020-04-18 20:51:40 +02:00
a26b9700d7 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Problem:    Vim9: not all commands using ends_excmd() tested.
Solution:   Find # comment after regular commands. Add more tests.  Report
            error for where it was caused.
2020-04-18 19:53:28 +02:00
b6fb0516ec patch 8.2.0594: MS-Windows: cannot build with WINVER set to 0x0501
Problem:    MS-Windows: cannot build with WINVER set to 0x0501.
Solution:   Only use inet_ntop() when available. (Ozaki Kiichi, closes #5946)
2020-04-18 18:24:18 +02:00
a494f56f88 patch 8.2.0593: finding a user command is not optimal
Problem:    Finding a user command is not optimal.
Solution:   Start further down in the list of commands.
2020-04-18 17:45:38 +02:00
2695de63e3 patch 8.2.0592: MS-Windows with VTP: cursor is not made invisible
Problem:    MS-Windows with VTP: cursor is not made invisible.
Solution:   Output the code to make the cursor visible or invisible. (Nobuhiro
            Takasaki, closes #5941)
2020-04-17 21:13:01 +02:00
aa82259fef patch 8.2.0591: MS-Windows: should always support IPv6
Problem:    MS-Windows: should always support IPv6
Solution:   Add build flag. (Ozaki Kiichi, closes #5944)
2020-04-17 20:48:57 +02:00
aa0489e12d patch 8.2.0590: no 'backspace' value allows ignoring the insertion point
Problem:    No 'backspace' value allows ignoring the insertion point.
Solution:   Add the "nostop" and 3 values. (Christian Brabandt, closes #5940)
2020-04-17 19:41:21 +02:00
0fc1288aef patch 8.2.0589: .bsd file type not recognized
Problem:    .bsd file type not recognized.
Solution:   Recognize .bsd as BSDL. (Daniel Kho, closes #5945)
2020-04-17 19:23:06 +02:00
314ca7cbb4 patch 8.2.0588: Putty does not use "sgr" 'ttymouse' by default
Problem:    Putty does not use "sgr" 'ttymouse' by default.
Solution:   Make "sgr" the default for Putty. (Christian Brabandt,
            closes #5942)
2020-04-17 16:40:31 +02:00
21cfe500f3 patch 8.2.0587: compiler warning for unused variable
Problem:    Compiler warning for unused variable.
Solution:   Add UNUSED.
2020-04-16 23:01:50 +02:00
4a8d9f2ed8 patch 8.2.0586: Vim9: # comment not sufficiently tested
Problem:    Vim9: # comment not sufficiently tested
Solution:   Check for preceding white space.
2020-04-16 22:54:32 +02:00
7a09224583 patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Problem:    Vim9: # comment not recognized after :vim9script.
Solution:   Check script type. Make comment after ":echo" work.  And in
            several other places.
2020-04-16 22:10:49 +02:00
c5f33db888 patch 8.2.0584: viminfo file uses obsolete function file_readable()
Problem:    Viminfo file uses obsolete function file_readable().
Solution:   Use filereadable(). (closes #5934)
2020-04-16 21:04:41 +02:00
cb711abf0f patch 8.2.0583: Vim9: # comment not recognized in :def function
Problem:    Vim9: # comment not recognized in :def function.
Solution:   Recognize and skip # comment.
2020-04-16 13:00:29 +02:00
b4a549fb16 patch 8.2.0582: color ramp test does not show text colors
Problem:    Color ramp test does not show text colors.
Solution:   Add a row of 16 text colors and 16 bold text colors.
2020-04-15 21:44:11 +02:00
81ccbf199f patch 8.2.0581: Win32 console: the cursor position is always top-left
Problem:    Win32 console: the cursor position is always top-left.
Solution:   Revert the patch for restoring screen.
2020-04-15 21:05:30 +02:00
edd327cc07 patch 8.2.0580: window size wrong if 'ea' is off and 'splitright' is on
Problem:    Window size wrong if 'ea' is off and 'splitright' is on and
            splitting then closing a window.
Solution:   Put abandoned window space in the right place. (Mark Waggoner)
2020-04-15 20:05:47 +02:00
4d5d0dfe94 patch 8.2.0579: Coverity warns for unused value
Problem:    Coverity warns for unused value.
Solution:   Change order and use "else if".
2020-04-14 20:56:31 +02:00
6c2b7b8055 patch 8.2.0578: heredoc for interfaces does not support "trim"
Problem:    Heredoc for interfaces does not support "trim".
Solution:   Update the script heredoc support to be same as the :let command.
            (Yegappan Lakshmanan, closes #5916)
2020-04-14 20:15:49 +02:00
7a1637f4c0 patch 8.2.0577: not all modifiers supported for :options
Problem:    Not all modifiers supported for :options.
Solution:   Use all cmdmod.split flags. (closes #4401)
2020-04-13 21:16:21 +02:00
067297e16a patch 8.2.0576: some errors are not covered by tests
Problem:    Some errors are not covered by tests.
Solution:   Add a few more tests. (Dominique Pelle, closes #5920)
2020-04-13 19:55:50 +02:00
e3242346cf patch 8.2.0575: :digraph! not tested
Problem:    :digraph! not tested.
Solution:   Add a test. (Dominique Pelle, closes #5925)
2020-04-13 19:46:43 +02:00
352f554b85 patch 8.2.0574: ipv6 feature not shown in :version output
Problem:    Ipv6 feature not shown in :version output.
Solution:   Add ipv6 in :version output. (Ozaki Kiichi, closes #5924)
2020-04-13 19:04:21 +02:00
278e83863b patch 8.2.0573: using :version twice leaks memory
Problem:    using :version twice leaks memory
Solution:   Only initialize variables once. (Dominique Pelle, closes #5917)
2020-04-13 18:25:33 +02:00
df1956075d patch 8.2.0572: using two lines for free and reset
Problem:    Using two lines for free and reset.
Solution:   Use VIM_CLEAR() instead. (Yegappan Lakshmanan)
2020-04-13 18:13:33 +02:00
0015795baa patch 8.2.0571: double free when passing invalid argument to job_start()
Problem:    Double free when passing invalid argument to job_start().
Solution:   Clear the argument when freed. (Masato Nishihata, closes #5926)
2020-04-13 17:44:47 +02:00
6e949784be patch 8.2.0570: Vim9: no error when omitting type from argument
Problem:    Vim9: no error when omitting type from argument.
Solution:   Enforce specifying argument types.
2020-04-13 17:21:00 +02:00
fbda69b309 patch 8.2.0569: build failure with tiny version
Problem:    Build failure with tiny version.
Solution:   Add #ifdef.
2020-04-13 15:06:53 +02:00
55b0fb7001 patch 8.2.0568: the man filetype plugin overwrites the unnamed register
Problem:    The man filetype plugin overwrites the unnamed register.
Solution:   Use the black hole register. (Jason Franklin)
2020-04-13 14:58:37 +02:00
2c330432cf patch 8.2.0567: Vim9: cannot put comments halfway expressions
Problem:    Vim9: cannot put comments halfway expressions.
Solution:   Support # comments in many places.
2020-04-13 14:41:35 +02:00
1a2f4bf6c8 patch 8.2.0566: Vim9: variable can be used uninitialized
Problem:    Vim9: variable can be used uninitialized.
Solution:   Jump to after where variable is used.
2020-04-12 23:09:25 +02:00
675f716efb patch 8.2.0565: Vim9: tests contain superfluous line continuation
Problem:    Vim9: tests contain superfluous line continuation.
Solution:   Remove line continuation no longer needed.  Skip empty lines.
2020-04-12 22:53:54 +02:00
23e032523e patch 8.2.0564: Vim9: calling a def function from non-vim9 may fail
Problem:    Vim9: calling a def function from non-vim9 may fail.
Solution:   Convert varargs to a list.
2020-04-12 22:22:31 +02:00
5e774c7579 patch 8.2.0563: Vim9: cannot split a function line
Problem:    Vim9: cannot split a function line.
Solution:   Continue in next line so long as the function isn't done.
2020-04-12 21:53:00 +02:00
9c7e6dd653 patch 8.2.0562: Vim9: cannot split an expression into multiple lines
Problem:    Vim9: cannot split an expression into multiple lines.
Solution:   Continue in next line after an operator.
2020-04-12 20:55:20 +02:00
e6085c5350 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Problem:    Vim9: cannot split function call in multiple lines.
Solution:   Find more arguments in following lines.
2020-04-12 20:19:16 +02:00
2196bce56f patch 8.2.0560: compiler warning in tiny build
Problem:    Compiler warning in tiny build.
Solution:   Move declaration inside #ifdef. (Dominique Pelle, closes #5915)
2020-04-12 20:01:11 +02:00
a80faa8930 patch 8.2.0559: clearing a struct is verbose
Problem:    Clearing a struct is verbose.
Solution:   Define and use CLEAR_FIELD() and CLEAR_POINTER().
2020-04-12 19:37:17 +02:00
82de464f76 patch 8.2.0558: Vim9: dict code not covered by tests
Problem:    Vim9: dict code not covered by tests.
Solution:   Remove dead code, adjust test case.
2020-04-12 18:02:06 +02:00
bfe13ccc58 patch 8.2.0557: no IPv6 support for channels
Problem:    No IPv6 support for channels.
Solution:   Add IPv6 support. (Ozaki Kiichi, closes #5893)
2020-04-12 17:53:12 +02:00
c5f1ef53c2 patch 8.2.0556: Vim9: memory leak when finding common type
Problem:    Vim9: memory leak when finding common type.
Solution:   Store allocated memory in type growarray.
2020-04-12 17:11:27 +02:00
4fdae9996f patch 8.2.0555: Vim9: line continuation is not always needed
Problem:    Vim9: line continuation is not always needed.
Solution:   Recognize continuation lines automatically in list and dict.
2020-04-12 16:38:57 +02:00
acc770a10f patch 8.2.0554: the GUI doesn't set t_Co
Problem:    The GUI doesn't set t_Co.
Solution:   In the GUI set t_Co to 256 * 256 * 256. (closes #5903)
2020-04-12 15:11:06 +02:00
cd630becc8 patch 8.2.0553: error for unused argument
Problem:    Error for unused argument.
Solution:   Add UNUSED.
2020-04-12 14:50:26 +02:00
99aaf0ce7c patch 8.2.0552: Vim9: some errors not covered by tests
Problem:    Vim9: some errors not covered by tests.
Solution:   Add more tests.  Check Funcref argument types.
2020-04-12 14:39:53 +02:00
1363a30cef patch 8.2.0551: not all code for options is tested
Problem:    Not all code for options is tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5913)
2020-04-12 13:50:26 +02:00
88c1ee84d6 patch 8.2.0550: some changes in the libvterm upstream code
Problem:    Some changes in the libvterm upstream code.
Solution:   Include some changes.
2020-04-12 13:38:57 +02:00
3b922f1138 patch 8.2.0549: user systemd files not recognized
Problem:    User systemd files not recognized.
Solution:   Add filetype patterns. (Kevin Locke, closes #5914)
2020-04-12 12:54:52 +02:00
08938eeba4 patch 8.2.0548: Vim9: not all possible func type errors tested
Problem:    Vim9: not all possible func type errors tested.
Solution:   Add more tests.
2020-04-11 23:17:17 +02:00
e7f234120f patch 8.2.0547: Win32: restoring screen not always done right
Problem:    Win32: restoring screen not always done right.
Solution:   Use a more appropriate method. (Nobuhiro Takasaki, closes #5909)
2020-04-11 22:38:34 +02:00
fe27081724 patch 8.2.0546: Vim9: varargs implementation is inefficient
Problem:    Vim9: varargs implementation is inefficient.
Solution:   Create list without moving the arguments.
2020-04-11 22:31:27 +02:00
d19a8f97ad patch 8.2.0545: unused arguments ignored in non-standard way
Problem:    Unused arguments ignored in non-standard way.
Solution:   Add UNUSED instead of (void).
2020-04-11 21:42:48 +02:00
880e4d9117 patch 8.2.0544: memory leak in search test
Problem:    Memory leak in search test.
Solution:   Free msgbuf. (Dominique Pelle, closes #5912)
2020-04-11 21:31:28 +02:00
1378fbc459 patch 8.2.0543: Vim9: function with varargs does not work properly
Problem:    Vim9: function with varargs does not work properly.
Solution:   Improve function type spec and add tests.  Fix bugs.
2020-04-11 20:50:33 +02:00
8832a34578 patch 8.2.0542: no test for E386
Problem:    No test for E386.
Solution:   Add a test. (Dominique Pelle, closes #5911)
2020-04-11 18:36:38 +02:00
81ea1dfb97 patch 8.2.0541: Travis CI does not give compiler warnings
Problem:    Travis CI does not give compiler warnings.
Solution:   Add flags for warnings.  Fix uncovered problems. (Ozaki Kiichi,
            closes #5898)
2020-04-11 18:01:41 +02:00
004a6781b3 patch 8.2.0540: regexp and other code not tested
Problem:    Regexp and other code not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5904)
2020-04-11 17:09:31 +02:00
d1caa941d8 Update runtime files 2020-04-10 22:10:56 +02:00
7b293c730b patch 8.2.0539: comparing two NULL list fails
Problem:    Comparing two NULL list fails.
Solution:   Change the order of comparing two lists.
2020-04-09 21:33:22 +02:00
9c8bb7c0e2 patch 8.2.0538: Vim9: VAR_PARTIAL is not used during compilation
Problem:    Vim9: VAR_PARTIAL is not used during compilation.
Solution:   Remove VAR_PARTIAL.
2020-04-09 21:08:09 +02:00
cab2767874 patch 8.2.0537: Vim9: no check for sandbox when setting v:var
Problem:    Vim9: no check for sandbox when setting v:var.
Solution:   Check for sandbox.
2020-04-09 20:10:55 +02:00
5da356e073 patch 8.2.0536: Vim9: some compilation code not tested
Problem:    Vim9: some compilation code not tested.
Solution:   Add more test cases.
2020-04-09 19:34:43 +02:00
4d23c52824 patch 8.2.0535: regexp patterns not fully tested
Problem:    Regexp patterns not fully tested.
Solution:   Add more regexp tests and others. (Yegappan Lakshmanan,
            closes #5901)
2020-04-09 18:42:11 +02:00
25d5700952 patch 8.2.0534: client-server test fails under valgrind
Problem:    Client-server test fails under valgrind.
Solution:   Use WaitForAssert().
2020-04-08 22:56:34 +02:00
6a2c5a7dd5 patch 8.2.0533: tests using term_wait() can still be flaky
Problem:    Tests using term_wait() can still be flaky.
Solution:   Increase the wait time when rerunning a test. (James McCoy,
            closes #5899)  Halve the initial times to make tests run faster
            when there is no rerun.
2020-04-08 21:50:25 +02:00
7035fd9d90 patch 8.2.0532: cannot use simplify() as a method
Problem:    Cannot use simplify() as a method.
Solution:   Add FEARG_1. (closes #5996)
2020-04-08 20:03:52 +02:00
476a613135 patch 8.2.0531: various errors not tested
Problem:    Various errors not tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5895)
2020-04-08 19:48:56 +02:00
a65c288134 patch 8.2.0530: test crashes on s390
Problem:    Test crashes on s390. (James McCoy)
Solution:   Explicitly define an 8 big signed type. (closes #5897)
2020-04-08 11:31:48 +02:00
49cf7cc8d2 patch 8.2.0529: Vim9: function argument with default not checked
Problem:    Vim9: function argument with default not checked.
Solution:   Check type of argument with default value.
2020-04-07 22:45:00 +02:00
0b76b42d0a patch 8.2.0528: Vim9: function arguments insufficiently tested
Problem:    Vim9: function arguments insufficiently tested.
Solution:   Check types.  Add more tests.  Fix function with varargs only.
2020-04-07 22:05:08 +02:00
ec5929d0fe patch 8.2.0527: Vim9: function types insufficiently tested
Problem:    Vim9: function types insufficiently tested.
Solution:   Add more tests.  Fix white space check.  Add "test_vim9" target.
2020-04-07 20:53:39 +02:00
86b9a3e8cd patch 8.2.0526: Gcc 9 complains about empty statement
Problem:    Gcc 9 complains about empty statement.
Solution:   Add {}. (Dominique Pelle, closes #5894)
2020-04-07 19:57:29 +02:00
40655d5016 patch 8.2.0525: Win32: typo in assignment and misplaced paren
Problem:    Win32: typo in assignment and misplaced paren.
Solution:   Fix the syntax.
2020-04-06 23:49:50 +02:00
c74fbfedfa patch 8.2.0524: Win32: searching for file matches is slow
Problem:    Win32: searching for file matches is slow.
Solution:   Instead of making another round to find any short filename, check
            for the short name right away. Avoid using an ordinary file like a
            directory.  (Nir Lichtman, closes #5883)
2020-04-06 22:56:28 +02:00
00d253e2b2 patch 8.2.0523: loops are repeated
Problem:    Loops are repeated.
Solution:   Use FOR_ALL_ macros. (Yegappan Lakshmanan, closes #5882)
2020-04-06 22:13:01 +02:00
ee4e0c1e9a patch 8.2.0522: several errors are not tested for
Problem:    Several errors are not tested for.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5892)
2020-04-06 21:35:05 +02:00
15352dc6ec patch 8.2.0521: crash when reading a blob fails
Problem:    Crash when reading a blob fails.
Solution:   Avoid keeping a pointer to a freed blob object. (Dominique Pelle,
            closes #5890)  Adjust error messages.
2020-04-06 21:12:42 +02:00
6c307dcd55 patch 8.2.0520: tests are not listed in sorted order
Problem:    Tests are not listed in sorted order.
Solution:   Move test_ex_mode. (Doug Richardson, closes #5889)
2020-04-05 23:04:57 +02:00
8922860afb patch 8.2.0519: Vim9: return type not properly checked
Problem:    Vim9: return type not properly checked.
Solution:   Check type properly, also at runtime.
2020-04-05 22:14:54 +02:00
5ba8d3578c patch 8.2.0518: a terminal falls back to setting $TERM to "xterm"
Problem:    A terminal falls back to setting $TERM to "xterm".
Solution:   Use "xterm-color" if more than 16 colors are supported and
            "xterm-256color" if at least 256 colors are supported.
            (closes #5887)
2020-04-05 21:42:12 +02:00
4c68375057 patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Problem:    Vim9: cannot separate "func" and "func(): void".
Solution:   Use VAR_ANY for "any" and VAR_UNKNOWN for "no type".
2020-04-05 21:38:23 +02:00
f87a0400fd patch 8.2.0516: client-server code is spread out
Problem:    Client-server code is spread out.
Solution:   Move client-server code to a new file. (Yegappan Lakshmanan,
            closes #5885)
2020-04-05 20:21:03 +02:00
b8ed3aa9e7 patch 8.2.0515: some compilers cannot add to "void *"
Problem:    Some compilers cannot add to "void *".
Solution:   Cast to "char *".
2020-04-05 19:09:05 +02:00
bdff012f44 patch 8.2.0514: several global functions are used in only one file
Problem:    Several global functions are used in only one file.
Solution:   Make the functions static. (Yegappan Lakshmanan, closes #5884)
2020-04-05 18:56:05 +02:00
5d905c2b96 patch 8.2.0513: reading past allocate memory when using varargs
Problem:    Reading past allocate memory when using varargs.
Solution:   Fix copying function argument types.
2020-04-05 18:20:45 +02:00
5deeb3f1f9 patch 8.2.0512: Vim9: no optional arguments in func type
Problem:    Vim9: no optional arguments in func type.
Solution:   Check for question mark after type.  Find function reference
            without function().
2020-04-05 17:08:17 +02:00
d7ffc0ba8c patch 8.2.0511: Cscope code not fully tested
Problem:    Cscope code not fully tested.
Solution:   Add more test cases. (Dominique Pelle, closes #5886)
2020-04-05 15:36:16 +02:00
8d4ed11da6 patch 8.2.0510: Coverity complains about using uninitialized variable
Problem:    Coverity complains about using uninitialized variable.
Solution:   Assign a value to "scol".  Move code inside NULL check.
2020-04-04 14:50:32 +02:00
cde0ff39da patch 8.2.0509: various code is not properly tested.
Problem:    various code is not properly tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5871)
2020-04-04 14:00:39 +02:00
d77a8525d5 patch 8.2.0508: Vim9: func and partial types not done yet
Problem:    Vim9: func and partial types not done yet
Solution:   Fill in details about func declaration, drop a separate partial
            declaration.
2020-04-03 21:59:57 +02:00
5259275347 patch 8.2.0507: getbufvar() may get the wrong dictionary
Problem:    Getbufvar() may get the wrong dictionary. (David le Blanc)
Solution:   Check for empty name. (closes #5878)
2020-04-03 18:43:35 +02:00
d1e9dc2723 patch 8.2.0506: Coverity complains about ignoring return value
Problem:    Coverity complains about ignoring return value.
Solution:   Add (void).
2020-04-03 18:13:57 +02:00
01603a9970 patch 8.2.0505: term_getty() not sufficiently tested
Problem:    term_getty() not sufficiently tested.
Solution:   Add more asserts. (Dominique Pelle, closes #5877)
2020-04-03 12:56:17 +02:00
3cca299520 patch 8.2.0504: Vim9: leaking scope memory when compilation fails
Problem:    Vim9: leaking scope memory when compilation fails.
Solution:   Cleanup the scope list.
2020-04-02 22:57:36 +02:00
585fea7b98 patch 8.2.0503: Vim9: some code is not tested
Problem:    Vim9: some code is not tested.
Solution:   Add tests.  Fix uncovered problems.
2020-04-02 22:33:21 +02:00
e8c4abbbd7 patch 8.2.0502: Vim9: some code is not tested
Problem:    Vim9: some code is not tested.
Solution:   Add more tests.  Fix uncovered problems.
2020-04-02 21:13:25 +02:00
2c869deeb7 patch 8.2.0501: Vim9: script test fails when channel feature is missing
Problem:    Vim9: script test fails when channel feature is missing.
Solution:   Add a has() condition.
2020-04-02 19:12:08 +02:00
aeea72151c patch 8.2.0500: using the same loop in many places
Problem:    Using the same loop in many places.
Solution:   Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339)
2020-04-02 18:50:46 +02:00
f10806b250 patch 8.2.0499: calling a lambda is slower than evaluating a string
Problem:    Calling a lambda is slower than evaluating a string.
Solution:   Make calling a lambda faster. (Ken Takata, closes #5727)
2020-04-02 18:34:35 +02:00
4227c789ff patch 8.2.0498: Coverity complains about uninitialized field
Problem:    Coverity complains about uninitialized field.
Solution:   Initialize the whole typval_T.
2020-04-02 16:00:04 +02:00
e5bae13da3 patch 8.2.0497: too verbose output from the asan build in Travis
Problem:    Too verbose output from the asan build in Travis.
Solution:   Filter out suppression messages. (Ozaki Kiichi, closes #5874)
2020-04-02 15:17:32 +02:00
a4d4cf490e patch 8.2.0496: Vim9: disassemble test fails
Problem:    Vim9: disassemble test fails.
Solution:   Separate test cases with recognized constant expressions.
2020-04-02 13:50:27 +02:00
80c34ca312 patch 8.2.0495: Vim9: some code not tested
Problem:    Vim9: some code not tested.
Solution:   Add more tests.  Support more const expressions.
2020-04-01 23:05:18 +02:00
ea94fbe83b patch 8.2.0494: Vim9: asan error
Problem:    Vim9: asan error.
Solution:   Only get the type when there is one.
2020-04-01 22:36:49 +02:00
e69f6d044c patch 8.2.0493: Vim9: some error messages not tested
Problem:    Vim9: some error messages not tested.
Solution:   Add more tests.  Fix uncovered bugs.
2020-04-01 22:11:01 +02:00
a8c1770469 patch 8.2.0492: Vim9: some error messages not tested
Problem:    Vim9: some error messages not tested.
Solution:   Add more tests.  Remove dead code.  Fix uncovered bugs.
2020-04-01 21:17:24 +02:00
2da0f0c445 patch 8.2.0491: cannot recognize a <script> mapping using maparg()
Problem:    Cannot recognize a <script> mapping using maparg().
Solution:   Add the "script" key. (closes #5873)
2020-04-01 19:22:12 +02:00
0afdcf8601 patch 8.2.0490: Win32: VTP doesn't respect 'restorescreen'
Problem:    Win32: VTP doesn't respect 'restorescreen'.
Solution:   Use escape codes to switch to alternate screen. (Nobuhiro
            Takasaki, closes #5872)
2020-04-01 18:29:10 +02:00
25b70c780a patch 8.2.0489: Vim9: memory leaks
Problem:    Vim9: memory leaks.
Solution:   Free memory in the right place.  Add hints for using asan.
2020-04-01 16:34:17 +02:00
05afceeddc patch 8.2.0488: Vim9: compiling can break when using a lambda inside :def
Problem:    Vim9: Compiling can break when using a lambda inside :def.
Solution:   Do not keep a pointer to the dfunc_T for longer time.
2020-03-31 23:32:31 +02:00
bd5da371aa patch 8.2.0487: Vim9: compiling not sufficiently tested
Problem:    Vim9: compiling not sufficiently tested.
Solution:   Add more tests.  Fix bug with PCALL.
2020-03-31 23:13:10 +02:00
9be61bbb17 patch 8.2.0486: Vim9: some code and error messages not tested
Problem:    Vim9: some code and error messages not tested.
Solution:   Add more tests.
2020-03-30 22:51:24 +02:00
01b3862956 patch 8.2.0485: Vim9 script test fails
Problem:    Vim9 script test fails.
Solution:   Stricter condition for adding new local variable.
2020-03-30 21:28:39 +02:00
92dba36fc8 patch 8.2.0484: Vim9: some error messages not tested
Problem:    Vim9: some error messages not tested.
Solution:   Add more tests.
2020-03-30 21:22:56 +02:00
d25ec2cfa0 patch 8.2.0483: Vim9: "let x = x + 1" does not give an error
Problem:    Vim9: "let x = x + 1" does not give an error.
Solution:   Hide the variable when compiling the expression.
2020-03-30 21:05:45 +02:00
ca68ae1311 patch 8.2.0482: channel and sandbox code not sufficiently tested
Problem:    Channel and sandbox code not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5855)
2020-03-30 19:32:53 +02:00
7d333a900d patch 8.2.0481: Travis is still using trusty
Problem:    Travis is still using trusty.
Solution:   Adjust config to use bionic. (Ozaki Kiichi, closes #5868)
2020-03-30 19:13:29 +02:00
0b37a2f379 patch 8.2.0480: Vim9: some code is not tested
Problem:    Vim9: some code is not tested.
Solution:   Add more tests.
2020-03-29 21:38:15 +02:00
2027973b5b patch 8.2.0479: unloading shared libraries on exit has no purpose
Problem:    Unloading shared libraries on exit has no purpose.
Solution:   Do not unload shared libraries on exit.
2020-03-29 20:51:07 +02:00
746 changed files with 72311 additions and 39666 deletions

View File

@ -13,5 +13,4 @@ freebsd_12_task:
- make -j${NPROC}
- src/vim --version
test_script:
# Runtime Indent tests do not work, run only the normal test suite
- cd src && make test
- make test

View File

@ -8,7 +8,7 @@ labels: enhancement
_Instructions: Replace the template text and remove irrelevant text (including this line)_
**Is your feature request related something that is currently hard to do? Please describe.**
**Is your feature request about something that is currently impossible or hard to do? Please describe the problem.**
A clear and concise description of what is hard to do. Ex. It is difficult to [...] when [...]
(If it is related to runtime files, please check their header for where to discuss enhancements.)

223
.github/workflows/ci-windows.yaml vendored Normal file
View File

@ -0,0 +1,223 @@
name: GitHub CI
on:
push:
branches:
- '*'
pull_request:
env:
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
# Interfaces
# Lua
LUA_VER: 54
LUA_VER_DOT: '5.4'
LUA_RELEASE: 5.4.0
LUA32_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win32_dllw6_lib.zip
LUA64_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win64_dllw6_lib.zip
LUA_DIR: D:\Lua
# Python 2
PYTHON_VER: 27
PYTHON_VER_DOT: '2.7'
# Python 3
PYTHON3_VER: 38
PYTHON3_VER_DOT: '3.8'
# Other dependencies
# winpty
WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip
# Escape sequences
COL_RED: "\x1b[31m"
COL_GREEN: "\x1b[32m"
COL_YELLOW: "\x1b[33m"
COL_RESET: "\x1b[m"
jobs:
build:
runs-on: windows-latest
strategy:
matrix:
toolchain: [msvc, mingw]
arch: [x64, x86]
features: [HUGE, NORMAL]
include:
- arch: x64
vcarch: amd64
warch: x64
bits: 64
msystem: MINGW64
cygreg: registry
pyreg: ""
- arch: x86
vcarch: x86
warch: ia32
bits: 32
msystem: MINGW32
cygreg: registry32
pyreg: "-32"
exclude:
- toolchain: msvc
arch: x64
features: NORMAL
- toolchain: mingw
arch: x86
features: NORMAL
steps:
- name: Initalize
id: init
shell: bash
run: |
git config --global core.autocrlf input
python_dir=$(cat "/proc/${{ matrix.cygreg }}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON_VER_DOT}/InstallPath/@")
python3_dir=$(cat "/proc/${{ matrix.cygreg }}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}${{ matrix.pyreg }}/InstallPath/@")
echo "::set-env name=PYTHON_DIR::$python_dir"
echo "::set-env name=PYTHON3_DIR::$python3_dir"
- uses: msys2/setup-msys2@v2
if: matrix.toolchain == 'mingw'
with:
msystem: ${{ matrix.msystem }}
release: false
- uses: actions/checkout@v2
- name: Create a list of download URLs
shell: cmd
run: |
type NUL > urls.txt
echo %LUA_RELEASE%>> urls.txt
echo %WINPTY_URL%>> urls.txt
- name: Cache downloaded files
uses: actions/cache@v2
with:
path: downloads
key: ${{ runner.os }}-${{ matrix.bits }}-${{ hashFiles('urls.txt') }}
- name: Download dependencies
shell: cmd
run: |
path C:\Program Files\7-Zip;%path%
if not exist downloads mkdir downloads
echo %COL_GREEN%Download Lua%COL_RESET%
call :downloadfile %LUA${{ matrix.bits }}_URL% downloads\lua.zip
7z x downloads\lua.zip -o%LUA_DIR% > nul || exit 1
echo %COL_GREEN%Download winpty%COL_RESET%
call :downloadfile %WINPTY_URL% downloads\winpty.zip
7z x -y downloads\winpty.zip -oD:\winpty > nul || exit 1
copy /Y D:\winpty\${{ matrix.warch }}\bin\winpty.dll src\winpty${{ matrix.bits }}.dll
copy /Y D:\winpty\${{ matrix.warch }}\bin\winpty-agent.exe src\
goto :eof
:downloadfile
:: call :downloadfile <URL> <localfile>
if not exist %2 (
curl -f -L %1 -o %2
)
if ERRORLEVEL 1 (
rem Retry once.
curl -f -L %1 -o %2 || exit 1
)
goto :eof
- name: Build (MSVC)
if: matrix.toolchain == 'msvc'
shell: cmd
run: |
call "%VCVARSALL%" ${{ matrix.vcarch }}
cd src
:: Filter out the progress bar from the build log
sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
if "${{ matrix.features }}"=="HUGE" (
nmake -nologo -f Make_mvc2.mak ^
FEATURES=${{ matrix.features }} ^
GUI=yes IME=yes ICONV=yes VIMDLL=yes ^
DYNAMIC_LUA=yes LUA=%LUA_DIR% ^
DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^
DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR%
) else (
nmake -nologo -f Make_mvc2.mak ^
FEATURES=${{ matrix.features }} ^
GUI=yes IME=yes ICONV=yes VIMDLL=yes
)
if not exist vim${{ matrix.bits }}.dll (
echo %COL_RED%Build failure.%COL_RESET%
exit 1
)
- name: Build (MinGW)
if: matrix.toolchain == 'mingw'
shell: msys2 {0}
run: |
cd src
if [ "${{ matrix.features }}" = "HUGE" ]; then
mingw32-make -f Make_ming.mak -j2 \
FEATURES=${{ matrix.features }} \
GUI=yes IME=yes ICONV=yes VIMDLL=yes \
DYNAMIC_LUA=yes LUA=${LUA_DIR} \
DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \
DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \
STATIC_STDCPLUS=yes
else
mingw32-make -f Make_ming.mak -j2 \
FEATURES=${{ matrix.features }} \
GUI=yes IME=yes ICONV=yes VIMDLL=yes \
STATIC_STDCPLUS=yes
fi
# - name: Prepare Artifact
# shell: cmd
# run: |
# mkdir artifacts
# copy src\*vim.exe artifacts
# copy src\vim*.dll artifacts
#
# - name: Upload Artifact
# uses: actions/upload-artifact@v1
# with:
# name: vim${{ matrix.bits }}-${{ matrix.toolchain }}
# path: ./artifacts
- name: Test
shell: cmd
timeout-minutes: 20
run: |
PATH %LUA_DIR%;C:\msys64\${{ matrix.msystem }}\bin;%PATH%;%PYTHON3_DIR%
call "%VCVARSALL%" ${{ matrix.vcarch }}
cd src
echo.
echo %COL_GREEN%vim version:%COL_RESET%
.\vim --version || exit 1
mkdir ..\src2
xcopy testdir ..\src2\testdir\ /E > nul || exit 1
copy evalfunc.c ..\src2 > nul
echo %COL_GREEN%Start testing vim in background.%COL_RESET%
start cmd /c "cd ..\src2\testdir & nmake -nologo -f Make_dos.mak VIMPROG=..\..\src\vim > nul & echo done>done.txt"
echo %COL_GREEN%Test gvim:%COL_RESET%
cd testdir
nmake -nologo -f Make_dos.mak VIMPROG=..\gvim || exit 1
cd ..
echo %COL_GREEN%Wait for vim tests to finish.%COL_RESET%
cd ..\src2\testdir
:: Wait about 5 minutes.
for /L %%i in (1,1,300) do (
if exist done.txt goto exitloop
ping -n 2 localhost > nul
)
echo %COL_RED%Timed out.%COL_RESET%
:exitloop
echo %COL_GREEN%Test results of vim:%COL_RESET%
if exist messages type messages
nmake -nologo -f Make_dos.mak report VIMPROG=..\..\src\vim || exit 1

1
.gitignore vendored
View File

@ -5,6 +5,7 @@ src/xxd/xxd
src/auto/if_perl.c
src/auto/gui_gtk_gresources.c
src/auto/gui_gtk_gresources.h
src/auto/os_haiku.rdef
src/objects/.dirstamp
src/objects
src/tags

View File

@ -3,21 +3,21 @@ language: c
_anchors:
envs:
- &tiny-nogui
BUILD=yes TEST=test FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
BUILD=yes TEST=test FEATURES=tiny CONFOPT="--disable-gui" LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &tiny
BUILD=yes TEST=test FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
BUILD=yes TEST=test FEATURES=tiny CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &small
BUILD=yes TEST=test FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
BUILD=yes TEST=test FEATURES=small CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &normal
BUILD=yes TEST=test FEATURES=normal CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
BUILD=yes TEST=test FEATURES=normal CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &linux-huge
BUILD=yes TEST="scripttests test_libvterm" CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
BUILD=yes TEST="scripttests test_libvterm" CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
- &osx-huge # macOS build
BUILD=yes TEST=test FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
BUILD=yes TEST=test FEATURES=huge LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
- &unittests
BUILD=no TEST=unittests CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
BUILD=no TEST=unittests CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
- &asan # ASAN build
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
@ -26,13 +26,10 @@ _anchors:
linux: &linux
os: linux
dist: trusty
dist: bionic
addons:
apt:
sources:
# Need msgfmt 0.19.8 to be able to generate .desktop files
- sourceline: 'ppa:ricotz/toolchain'
packages: &linux-packages
packages:
- autoconf
- clang
- lcov
@ -41,34 +38,31 @@ _anchors:
- libperl-dev
- python-dev
- python3-dev
- liblua5.2-dev
- lua5.2
- liblua5.3-dev
- lua5.3
- ruby-dev
- tcl-dev
- cscope
- libgtk2.0-dev
- desktop-file-utils
- libtool-bin
services:
- xvfb
before_install:
- rvm reset
# Remove /opt/python/3.x.x/bin from $PATH for using system python3.
# ("pyenv global system" doesn't seem to work.)
- |
if [[ "$(which python3)" =~ ^/opt/python/ ]]; then
export PATH=$(py3=$(which python3); echo ${PATH//${py3%/python3}:/})
fi
# Use llvm-cov instead of gcov when compiler is clang.
- |
if [[ "${CC}" = "clang" ]]; then
ln -sf "$(which llvm-cov)" /home/travis/bin/gcov
ln -sf "$(command -v llvm-cov)" /home/travis/bin/gcov
fi
# Setup lua5.3 manually since its package doesn't provide alternative.
# https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
- |
if [[ "${CONFOPT}" =~ luainterp ]]; then
sudo update-alternatives --install /usr/bin/lua lua /usr/bin/lua5.3 10
fi
before_script:
# Start virtual framebuffer to be able to test the GUI. For dists newer
# than trusty, the "services: xvfb" setting should be used instead
- |
if [[ ${TRAVIS_DIST} = trusty ]]; then
export DISPLAY=:99.0
sh -e /etc/init.d/xvfb start && sleep 3
fi
- sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
- sudo bash ci/load-snd-dummy.sh || true
- sudo usermod -a -G audio $USER
- do_test() { sg audio "sg $(id -gn) '$*'"; }
@ -90,7 +84,7 @@ _anchors:
- /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
before_install:
- rvm reset
# Lua is not installed on Travis OSX
# Lua is not installed on macOS
- export LUA_PREFIX=/usr/local
coverage: &coverage
@ -101,10 +95,10 @@ _anchors:
- (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash))
asan_symbolize: &asan_symbolize
- |
while read log; do
asan_symbolize < "${log}"
done < <(find . -type f -name 'asan.*' -size +0)
# Update pyenv to fix the error "/opt/pyenv/libexec/pyenv: line 43: cd: asan_symbolize-6.0: Not a directory".
# https://github.com/pyenv/pyenv/issues/580
- (cd "${PYENV_ROOT}" && git fetch -p origin && git checkout "$(git rev-list --tags -n1)") &>/dev/null || true
- find . -type f -name 'asan.*' -size +0 2>/dev/null | xargs grep -l '^==[[:digit:]]*==ERROR:' | xargs -I{} -n1 -t asan_symbolize -l{}
branches:
except:
@ -128,6 +122,15 @@ script:
- echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K"
- |
if [[ "${BUILD}" = "yes" ]]; then
# Append various warning flags to CFLAGS.
# BSD sed needs backup extension specified.
sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
if [[ "${TRAVIS_OS_NAME}" = "osx" ]]; then
# On macOS, the entity of gcc is clang.
sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk
else
sed -i.bak -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk
fi
make ${SHADOWOPT} -j${NPROC}
fi
- echo -en "travis_fold:end:build\\r\\033[0K"
@ -143,11 +146,10 @@ script:
- do_test make ${SHADOWOPT} ${TEST} && FOLD_MARKER=travis_fold
- echo -en "${FOLD_MARKER}:end:test\\r\\033[0K"
# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
# exclude some builds on mac os x and linux
# on mac os x "tiny" is always without GUI
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
# Instead of using all environments with both compilers on both systems,
# exclude some builds on mac os x and linux.
# On mac os x "tiny" is always without GUI, use 2 compilers in 2 environments.
# Linux: 2 compilers on some of the environments + gcc on os390
jobs:
include:
- <<: *osx
@ -189,13 +191,13 @@ jobs:
compiler: gcc
env: *small
- <<: *linux
name: normal/clang
name: normal+shadow/clang
compiler: clang
env:
- *normal
- *shadowopt
- <<: *linux
name: normal/gcc
name: normal+shadow/gcc
compiler: gcc
env:
- *normal
@ -205,26 +207,20 @@ jobs:
name: huge/gcc-s390x
compiler: gcc
env: *linux-huge
addons:
apt:
packages:
- *linux-packages
- libtool-bin
services: []
- <<: *linux
name: huge+coverage/clang
compiler: clang
env: *linux-huge
env:
- *linux-huge
# Clang cannot compile test_libvterm with "--coverage" flag.
- TEST=scripttests
after_success: *coverage
- <<: *linux
name: huge+coverage/gcc
compiler: gcc
env: *linux-huge
after_success: *coverage
- <<: *linux
name: unittests+coverage/gcc
compiler: gcc
env: *unittests
after_success: *coverage
- <<: *linux # ASAN
name: huge+asan/gcc
compiler: gcc
@ -239,6 +235,11 @@ jobs:
- *linux-huge
- TEST="-C src testgui"
after_success: *coverage
- <<: *linux
name: unittests+coverage/gcc
compiler: gcc
env: *unittests
after_success: *coverage
- <<: *linux
name: vimtags/gcc
compiler: gcc

View File

@ -9,10 +9,12 @@ SRC_ALL = \
.lgtm.yml \
.travis.yml \
.cirrus.yml \
.github/workflows/ci-windows.yaml \
appveyor.yml \
ci/appveyor.bat \
ci/if_ver*.vim \
ci/load-snd-dummy.sh \
ci/config.mk*.sed \
src/Make_all.mak \
src/README.md \
src/alloc.h \
@ -30,6 +32,7 @@ SRC_ALL = \
src/channel.c \
src/charset.c \
src/cindent.c \
src/clientserver.c \
src/clipboard.c \
src/cmdexpand.c \
src/cmdhist.c \
@ -66,6 +69,7 @@ SRC_ALL = \
src/gui_beval.c \
src/hardcopy.c \
src/hashtab.c \
src/help.c \
src/highlight.c \
src/indent.c \
src/insexpand.c \
@ -73,11 +77,13 @@ SRC_ALL = \
src/json_test.c \
src/kword_test.c \
src/list.c \
src/locale.c \
src/keymap.h \
src/macros.h \
src/main.c \
src/map.c \
src/mark.c \
src/match.c \
src/mbyte.c \
src/memfile.c \
src/memfile_test.c \
@ -127,8 +133,11 @@ SRC_ALL = \
src/term.h \
src/termlib.c \
src/testing.c \
src/textformat.c \
src/textobject.c \
src/textprop.c \
src/time.c \
src/typval.c \
src/ui.c \
src/undo.c \
src/usercmd.c \
@ -152,6 +161,7 @@ SRC_ALL = \
src/testdir/*.py \
src/testdir/lsan-suppress.txt \
src/testdir/sautest/autoload/*.vim \
src/testdir/testluaplugin/lua/testluaplugin/*.lua \
src/testdir/check.vim \
src/testdir/gui_init.vim \
src/testdir/gui_preinit.vim \
@ -161,12 +171,12 @@ SRC_ALL = \
src/testdir/setup.vim \
src/testdir/setup_gui.vim \
src/testdir/shared.vim \
src/testdir/vim9.vim \
src/testdir/summarize.vim \
src/testdir/term_util.vim \
src/testdir/view_util.vim \
src/testdir/test[0-9]*.ok \
src/testdir/test[0-9]*a.ok \
src/testdir/test_[a-z]*.ok \
src/testdir/test49.vim \
src/testdir/test83-tags? \
src/testdir/test77a.com \
@ -181,8 +191,6 @@ SRC_ALL = \
src/testdir/python_after/*.py \
src/testdir/python_before/*.py \
src/testdir/pyxfile/*.py \
src/testdir/bench*.in \
src/testdir/bench*.vim \
src/testdir/dumps/*.dump \
src/testdir/samples/*.txt \
src/testdir/samples/test000 \
@ -203,6 +211,7 @@ SRC_ALL = \
src/proto/channel.pro \
src/proto/charset.pro \
src/proto/cindent.pro \
src/proto/clientserver.pro \
src/proto/clipboard.pro \
src/proto/cmdexpand.pro \
src/proto/cmdhist.pro \
@ -234,14 +243,17 @@ SRC_ALL = \
src/proto/gui_beval.pro \
src/proto/hardcopy.pro \
src/proto/hashtab.pro \
src/proto/help.pro \
src/proto/highlight.pro \
src/proto/indent.pro \
src/proto/insexpand.pro \
src/proto/json.pro \
src/proto/list.pro \
src/proto/locale.pro \
src/proto/main.pro \
src/proto/map.pro \
src/proto/mark.pro \
src/proto/match.pro \
src/proto/mbyte.pro \
src/proto/memfile.pro \
src/proto/memline.pro \
@ -278,8 +290,11 @@ SRC_ALL = \
src/proto/terminal.pro \
src/proto/termlib.pro \
src/proto/testing.pro \
src/proto/textformat.pro \
src/proto/textobject.pro \
src/proto/textprop.pro \
src/proto/time.pro \
src/proto/typval.pro \
src/proto/ui.pro \
src/proto/undo.pro \
src/proto/usercmd.pro \
@ -296,10 +311,12 @@ SRC_ALL = \
src/libvterm/LICENSE \
src/libvterm/Makefile \
src/libvterm/README \
src/libvterm/CONTRIBUTING \
src/libvterm/tbl2inc_c.pl \
src/libvterm/vterm.pc.in \
src/libvterm/doc/URLs \
src/libvterm/doc/seqs.txt \
src/libvterm/find-wide-chars.pl \
src/libvterm/include/vterm.h \
src/libvterm/include/vterm_keycodes.h \
src/libvterm/src/encoding.c \
@ -307,6 +324,7 @@ SRC_ALL = \
src/libvterm/src/encoding/DECdrawing.tbl \
src/libvterm/src/encoding/uk.inc \
src/libvterm/src/encoding/uk.tbl \
src/libvterm/src/fullwidth.inc \
src/libvterm/src/keyboard.c \
src/libvterm/src/mouse.c \
src/libvterm/src/parser.c \
@ -337,16 +355,18 @@ SRC_ALL = \
src/libvterm/t/27state_reset.test \
src/libvterm/t/28state_dbl_wh.test \
src/libvterm/t/29state_fallback.test \
src/libvterm/t/30pen.test \
src/libvterm/t/40screen_ascii.test \
src/libvterm/t/41screen_unicode.test \
src/libvterm/t/42screen_damage.test \
src/libvterm/t/43screen_resize.test \
src/libvterm/t/44screen_pen.test \
src/libvterm/t/45screen_protect.test \
src/libvterm/t/46screen_extent.test \
src/libvterm/t/47screen_dbl_wh.test \
src/libvterm/t/48screen_termprops.test \
src/libvterm/t/30state_pen.test \
src/libvterm/t/31state_rep.test \
src/libvterm/t/32state_flow.test \
src/libvterm/t/60screen_ascii.test \
src/libvterm/t/61screen_unicode.test \
src/libvterm/t/62screen_damage.test \
src/libvterm/t/63screen_resize.test \
src/libvterm/t/64screen_pen.test \
src/libvterm/t/65screen_protect.test \
src/libvterm/t/66screen_extent.test \
src/libvterm/t/67screen_dbl_wh.test \
src/libvterm/t/68screen_termprops.test \
src/libvterm/t/90vttest_01-movement-1.test \
src/libvterm/t/90vttest_01-movement-2.test \
src/libvterm/t/90vttest_01-movement-3.test \
@ -406,6 +426,7 @@ SRC_UNIX = \
src/gui_gtk_x11.c \
src/gui_gtk_res.xml \
src/gui_motif.c \
src/gui_xim.c \
src/gui_xmdlg.c \
src/gui_xmebw.c \
src/gui_xmebw.h \
@ -429,6 +450,7 @@ SRC_UNIX = \
src/proto/gui_gtk_x11.pro \
src/proto/gui_gtk_gresources.pro \
src/proto/gui_motif.pro \
src/proto/gui_xim.pro \
src/proto/gui_xmdlg.pro \
src/proto/gui_x11.pro \
src/proto/if_xcmdsrv.pro \
@ -605,8 +627,9 @@ SRC_AMI = \
# source files for Haiku (also in the extra archive)
SRC_HAIKU = \
README_haiku.txt \
src/os_haiku.h \
src/os_haiku.rdef \
src/os_haiku.rdef.in \
src/gui_haiku.cc \
src/gui_haiku.h \
src/proto/gui_haiku.pro \
@ -657,14 +680,8 @@ SRC_EXTRA = \
$(SRC_QNX) \
$(SRC_VMS) \
README_os390.txt \
src/Make_mint.mak \
src/infplist.xml \
src/link.390 \
src/os_beos.c \
src/os_beos.h \
src/os_beos.rsrc \
src/proto/os_beos.pro \
src/os_mint.h \
src/os_vms_fix.com \
src/toolbar.phi \
@ -960,6 +977,8 @@ LANG_GEN = \
runtime/doc/*-pl.UTF-8.1 \
runtime/doc/*-ru.1 \
runtime/doc/*-ru.UTF-8.1 \
runtime/doc/*-tr.1 \
runtime/doc/*-tr.UTF-8.1 \
runtime/lang/README.txt \
runtime/lang/menu_*.vim \
runtime/keymap/README.txt \

View File

@ -2,6 +2,7 @@
[![Travis Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
[![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim)
[![Github Build status](https://github.com/vim/vim/workflows/GitHub%20CI/badge.svg)](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22)
[![Cirrus Build Status](https://api.cirrus-ci.com/github/vim/vim.svg)](https://cirrus-ci.com/github/vim/vim)
[![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master)
[![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim)
@ -26,8 +27,8 @@ 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
mapped to commands by the user, and the mouse can be used.
Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, VMS and almost all
flavours of UNIX. Porting to other systems should not be very difficult.
Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, Haiku, VMS and almost
all flavours of UNIX. Porting to other systems should not be very difficult.
Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
@ -72,6 +73,7 @@ archive):
README_unix.txt Unix
README_dos.txt MS-DOS and MS-Windows
README_mac.txt Macintosh
README_haiku.txt Haiku
README_vms.txt VMS
There are other `README_*.txt` files, depending on the distribution you used.

View File

@ -13,17 +13,12 @@ src/if_sniff.* Interface to SNiFF. If you don't know what SNiFF is,
src/os_amiga.* Files for the Amiga port.
src/gui_beos.*
src/os_beos.* Files for the BeOS port.
src/os_msdos.*
src/os_dos.* Files for the MS-DOS port.
src/gui_mac.*
src/os_mac.* Files for the Mac port.
src/os_mint.8 Files for the Atari Mint port.
src/os_vms* Files for the VMS port.
src/os_w32*

View File

@ -0,0 +1,13 @@
README_haiku.txt for version 8.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Haiku operating system.
See "README.txt" for general information about Vim.
Preferred (and easy) way to get Vim on Haiku is to use default Haiku
software repository HaikuPorts. To get Vim:
- Open HaikuDepot application and search for "vim" package, then install,
- Open a Terminal and type "pkgman install vim", then follow instructions.
If you prefer to install Vim from source, follow the instructions on
"runtime/doc/os_haiku.txt", "Compiling Vim" section.

View File

@ -5,16 +5,17 @@ skip_tags: true
environment:
matrix:
- FEATURE: HUGE
- FEATURE: NORMAL
# disabled
# - FEATURE: TINY
# - FEATURE: SMALL
# - FEATURE: NORMAL
# - FEATURE: BIG
matrix:
fast_finish: true
before_build:
# Use Windows SDK 7.1 (= MSVC 2010)
- '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release'
- 'set INCLUDE=%INCLUDE%C:\Program Files (x86)\Windows Kits\8.1\Include\um'
@ -25,9 +26,9 @@ test_script:
- cd src/testdir
# Testing with MSVC gvim
- path C:\Python35-x64;%PATH%
- nmake -f Make_dos.mak POSTSCRIPT=yes VIMPROG=..\gvim
- nmake -f Make_dos.mak VIMPROG=..\gvim
- nmake -f Make_dos.mak clean
# Testing with MingW console version
- nmake -f Make_dos.mak POSTSCRIPT=yes VIMPROG=..\vim
# Testing with MSVC console version
- nmake -f Make_dos.mak VIMPROG=..\vim
# vim: sw=2 sts=2 et ts=8 sr

View File

@ -5,44 +5,32 @@ setlocal ENABLEDELAYEDEXPANSION
cd %APPVEYOR_BUILD_FOLDER%
cd src
echo "Building MinGW 32bit console version"
set PATH=c:\msys64\mingw32\bin;%PATH%
mingw32-make.exe -f Make_ming.mak GUI=no OPTIMIZE=speed IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
:: Save vim.exe before Make clean, moved back below.
copy vim.exe testdir
mingw32-make.exe -f Make_ming.mak clean
:: Build Mingw huge version with python and channel support, or
:: with specified features without python.
echo "Building MinGW 32bit GUI version"
if "%FEATURE%" == "HUGE" (
mingw32-make.exe -f Make_ming.mak OPTIMIZE=speed CHANNEL=yes GUI=yes IME=yes ICONV=yes DEBUG=no PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27 PYTHON3_VER=35 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python35 FEATURES=%FEATURE% || exit 1
) ELSE (
mingw32-make.exe -f Make_ming.mak OPTIMIZE=speed GUI=yes IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
)
.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_ming.txt
:: Filter out the progress bar from the build log
sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
echo "Building MSVC 64bit console Version"
nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=no IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
nmake -f Make_mvc2.mak clean
nmake -f Make_mvc2.mak CPU=AMD64 ^
OLE=no GUI=no IME=yes ICONV=yes DEBUG=no ^
FEATURES=%FEATURE% || exit 1
:: build MSVC huge version with python and channel support
:: GUI needs to be last, so that testing works
echo "Building MSVC 64bit GUI Version"
if "%FEATURE%" == "HUGE" (
nmake -f Make_mvc2.mak DIRECTX=yes CPU=AMD64 CHANNEL=yes OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 PYTHON3_VER=35 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python35-x64 FEATURES=%FEATURE% || exit 1
nmake -f Make_mvc2.mak CPU=AMD64 ^
OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no POSTSCRIPT=yes ^
PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 ^
PYTHON3_VER=35 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python35-x64 ^
FEATURES=%FEATURE% || exit 1
) ELSE (
nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
nmake -f Make_mvc2.mak CPU=AMD64 ^
OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no ^
FEATURES=%FEATURE% || exit 1
)
.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_msvc.txt
:: Restore vim.exe, tests will run with this.
move /Y testdir\vim.exe .
echo "version output MinGW"
type ver_ming.txt
echo "version output MVC"
echo "version output MSVC console"
.\vim --version
echo "version output MSVC GUI"
type ver_msvc.txt
cd ..

2
ci/config.mk.clang.sed Normal file
View File

@ -0,0 +1,2 @@
/^CFLAGS[[:blank:]]*=/s/$/ -Wno-error=missing-field-initializers/
/^RUBY_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=unknown-attributes -Wno-error=ignored-attributes/

1
ci/config.mk.gcc.sed Normal file
View File

@ -0,0 +1 @@
/^CFLAGS[[:blank:]]*=/s/$/ -Wno-error=maybe-uninitialized/

2
ci/config.mk.sed Normal file
View File

@ -0,0 +1,2 @@
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror/
/^PERL_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=unused-function/

View File

@ -687,6 +687,15 @@ SectionEnd
${EndIf}
!macroend
!macro LoadDefaultVimrc out_var reg_value default_value
ClearErrors
ReadRegStr ${out_var} HKLM "${UNINST_REG_KEY_VIM}" ${reg_value}
${If} ${Errors}
${OrIf} ${out_var} == ""
StrCpy ${out_var} ${default_value}
${EndIf}
!macroend
Function .onInit
!ifdef HAVE_MULTI_LANG
# Select a language (or read from the registry).
@ -718,10 +727,10 @@ Function .onInit
!endif
${EndIf}
# Load the selections from the registry (if any).
${If} ${RunningX64}
SetRegView 64
${EndIf}
# Load the selections from the registry (if any).
!insertmacro LoadSectionSelection ${id_section_console} "select_console"
!insertmacro LoadSectionSelection ${id_section_batch} "select_batch"
!insertmacro LoadSectionSelection ${id_section_desktop} "select_desktop"
@ -736,6 +745,10 @@ Function .onInit
!ifdef HAVE_NLS
!insertmacro LoadSectionSelection ${id_section_nls} "select_nls"
!endif
# Load the default _vimrc settings from the registry (if any).
!insertmacro LoadDefaultVimrc $vim_compat_stat "vim_compat" "all"
!insertmacro LoadDefaultVimrc $vim_keymap_stat "vim_keyremap" "default"
!insertmacro LoadDefaultVimrc $vim_mouse_stat "vim_mouse" "default"
${If} ${RunningX64}
SetRegView lastused
${EndIf}
@ -799,17 +812,11 @@ Function SetCustom
${NSD_CB_AddString} $vim_nsd_compat $(str_msg_compat_defaults)
${NSD_CB_AddString} $vim_nsd_compat $(str_msg_compat_all)
# Default selection
${If} $vim_compat_stat == ""
ReadRegStr $3 HKLM "${UNINST_REG_KEY_VIM}" "vim_compat"
${Else}
StrCpy $3 $vim_compat_stat
${EndIf}
${If} $3 == "defaults"
${If} $vim_compat_stat == "defaults"
StrCpy $4 2
${ElseIf} $3 == "vim"
${ElseIf} $vim_compat_stat == "vim"
StrCpy $4 1
${ElseIf} $3 == "vi"
${ElseIf} $vim_compat_stat == "vi"
StrCpy $4 0
${Else} # default
StrCpy $4 3
@ -828,13 +835,7 @@ Function SetCustom
${NSD_CB_AddString} $vim_nsd_keymap $(str_msg_keymap_default)
${NSD_CB_AddString} $vim_nsd_keymap $(str_msg_keymap_windows)
# Default selection
${If} $vim_keymap_stat == ""
ReadRegStr $3 HKLM "${UNINST_REG_KEY_VIM}" "vim_keyremap"
${Else}
StrCpy $3 $vim_keymap_stat
${EndIf}
${If} $3 == "windows"
${If} $vim_keymap_stat == "windows"
StrCpy $4 1
${Else} # default
StrCpy $4 0
@ -854,15 +855,9 @@ Function SetCustom
${NSD_CB_AddString} $vim_nsd_mouse $(str_msg_mouse_windows)
${NSD_CB_AddString} $vim_nsd_mouse $(str_msg_mouse_unix)
# Default selection
${If} $vim_mouse_stat == ""
ReadRegStr $3 HKLM "${UNINST_REG_KEY_VIM}" "vim_mouse"
${Else}
StrCpy $3 $vim_mouse_stat
${EndIf}
${If} $3 == "xterm"
${If} $vim_mouse_stat == "xterm"
StrCpy $4 2
${ElseIf} $3 == "windows"
${ElseIf} $vim_mouse_stat == "windows"
StrCpy $4 1
${Else} # default
StrCpy $4 0

View File

@ -1,7 +1,7 @@
" Vim completion script
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2018 Aug 20
" Last Change: 2020 Apr 08
let s:cpo_save = &cpo
set cpo&vim
@ -635,3 +635,5 @@ endfunc
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: noet sw=2 sts=2

View File

@ -25,7 +25,7 @@ function decada#Unit_Name () dict " {{{1
" Convert filename into acs unit:
" 1: remove the file extenstion.
" 2: replace all double '_' or '-' with an dot (which denotes a separate)
" 3: remove a trailing '_' (wich denotes a specification)
" 3: remove a trailing '_' (which denotes a specification)
return substitute (substitute (expand ("%:t:r"), '__\|-', ".", "g"), '_$', "", '')
endfunction decada#Unit_Name " }}}1

View File

@ -1,7 +1,7 @@
" Vim functions for file type detection
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2020 Jan 02
" Last Change: 2020 Mar 30
" These functions are moved here from runtime/filetype.vim to make startup
" faster.
@ -325,7 +325,7 @@ endfunc
func dist#ft#FTmm()
let n = 1
while n < 10
while n < 20
let line = getline(n)
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
setf objcpp

View File

@ -1,15 +1,11 @@
" Vim script to download a missing spell file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Jan 08
" Last Change: 2020 Jul 10
if !exists('g:spellfile_URL')
" Prefer using http:// when netrw should be able to use it, since
" more firewalls let this through.
if executable("curl") || executable("wget") || executable("fetch")
let g:spellfile_URL = 'http://ftp.vim.org/pub/vim/runtime/spell'
else
let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell'
endif
" Always use https:// because it's secure. The certificate is for nluug.nl,
" thus we can't use the alias ftp.vim.org here.
let g:spellfile_URL = 'https://ftp.nluug.nl/pub/vim/runtime/spell'
endif
let s:spellfile_URL = '' " Start with nothing so that s:donedict is reset.

View File

@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: ESLint for JavaScript
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
" Last Change: 2020 May 17
if exists("current_compiler")
finish
endif
let current_compiler = "eslint"
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=eslint\ --format\ compact
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#

View File

@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: Standard for JavaScript
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
" Last Change: 2020 May 17
if exists("current_compiler")
finish
endif
let current_compiler = "standard"
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=standard
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#

View File

@ -141,6 +141,7 @@ DOCS = \
usr_43.txt \
usr_44.txt \
usr_45.txt \
usr_46.txt \
usr_90.txt \
usr_toc.txt \
various.txt \
@ -282,6 +283,7 @@ HTMLS = \
usr_43.html \
usr_44.html \
usr_45.html \
usr_46.html \
usr_90.html \
usr_toc.html \
various.html \
@ -317,7 +319,11 @@ CONVERTED = \
evim-ru.UTF-8.1 \
vimdiff-ru.UTF-8.1 \
vimtutor-ru.UTF-8.1 \
xxd-ru.UTF-8.1
xxd-ru.UTF-8.1 \
vim-tr.UTF-8.1 \
evim-tr.UTF-8.1 \
vimdiff-tr.UTF-8.1 \
vimtutor-tr.UTF-8.1
.SUFFIXES:
.SUFFIXES: .c .o .txt .html
@ -390,7 +396,7 @@ test_urls:
vim -S test_urls.vim
clean:
-rm doctags *.html tags.ref
-rm -f doctags *.html tags.ref
# These files are in the extra archive, skip if not present
@ -509,3 +515,15 @@ vimtutor-ru.UTF-8.1: vimtutor-ru.1
xxd-ru.UTF-8.1: xxd-ru.1
iconv -f KOI8-R -t utf-8 $< >$@
vim-tr.UTF-8.1: vim-tr.1
iconv -f latin5 -t utf-8 $< >$@
evim-tr.UTF-8.1: evim-tr.1
iconv -f latin5 -t utf-8 $< >$@
vimdiff-tr.UTF-8.1: vimdiff-tr.1
iconv -f latin5 -t utf-8 $< >$@
vimtutor-tr.UTF-8.1: vimtutor-tr.1
iconv -f latin5 -t utf-8 $< >$@

View File

@ -77,7 +77,7 @@ Arabic requires ISO-8859-6 as well as Presentation Form-B fonts
(without Form-B, Arabic will _NOT_ be usable). It is highly
recommended that users search for so-called 'ISO-10646-1' fonts.
Do an Internet search or check www.arabeyes.org for further
info on where to attain the necessary Arabic fonts.
info on where to obtain the necessary Arabic fonts.
Font Installation
@ -123,7 +123,7 @@ o Setting the appropriate character Encoding
>
:set encoding=utf-8
<
to your .vimrc file (entering the command manually into you Vim
to your .vimrc file (entering the command manually into your Vim
window is highly discouraged). In short, include ':set
encoding=utf-8' to your .vimrc file.

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.2. Last change: 2020 Jan 26
*autocmd.txt* For Vim version 8.2. Last change: 2020 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -380,6 +380,7 @@ Name triggered by ~
info
|User| to be used in combination with ":doautocmd"
|SigUSR1| after the SIGUSR1 signal has been detected
The alphabetical list of autocommand events: *autocmd-events-abc*
@ -1153,11 +1154,14 @@ TextYankPost After text has been yanked or deleted in the
register.
regtype Type of the register, see
|getregtype()|.
visual True if the operation is
performed on a |Visual| area.
Not triggered when |quote_| is used nor when
called recursively.
It is not allowed to change the buffer text,
see |textlock|.
{only when compiled with the +eval feature}
*User*
User Never executed automatically. To be used for
autocommands that are only executed with
@ -1166,6 +1170,15 @@ User Never executed automatically. To be used for
used while there are no matching autocommands,
you will get an error. If you don't want
that, define a dummy autocommand yourself.
*SigUSR1*
SigUSR1 After the SIGUSR1 signal has been detected.
Could be used if other ways of notifying Vim
are not feasible. E.g. to check for the
result of a build that takes a long time, or
when a motion sensor is triggered.
{only on Unix}
*UserGettingBored*
UserGettingBored When the user presses the same key 42 times.
Just kidding! :-)

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 8.2. Last change: 2020 Feb 09
*change.txt* For Vim version 8.2. Last change: 2020 Jun 04
VIM REFERENCE MANUAL by Bram Moolenaar
@ -209,7 +209,7 @@ gR Enter Virtual Replace mode: Each character you type
start insert (for {Visual} see |Visual-mode|).
*v_r*
{Visual}["x]r{char} Replace all selected characters by {char}.
{Visual}r{char} Replace all selected characters by {char}.
*v_C*
{Visual}["x]C Delete the highlighted lines [into register x] and
@ -996,9 +996,9 @@ inside of strings can change! Also see 'softtabstop' option. >
5. Copying and moving text *copy-move*
*quote*
"{a-zA-Z0-9.%#:-"} Use register {a-zA-Z0-9.%#:-"} for next delete, yank
or put (use uppercase character to append with
delete and yank) ({.%#:} only work with put).
"{register} Use {register} for next delete, yank or put. Use
an uppercase character to append with delete and yank.
Registers ".", "%", "#" and ":" only work with put.
*:reg* *:registers*
:reg[isters] Display the type and contents of all numbered and
@ -1458,7 +1458,7 @@ text. Put it in your autoload directory, e.g. ~/.vim/autoload/format.vim: >
func! format#Format()
" only reformat on explicit gq command
if mode() != 'n'
" fall back to Vims internal reformatting
" fall back to Vim's internal reformatting
return 1
endif
let lines = getline(v:lnum, v:lnum + v:count - 1)
@ -1688,6 +1688,10 @@ B When joining lines, don't insert a space between two multi-byte
characters. Overruled by the 'M' flag.
1 Don't break a line after a one-letter word. It's broken before it
instead (if possible).
] Respect textwidth rigorously. With this flag set, no line can be
longer than textwidth, unless line-break-prohibition rules make this
impossible. Mainly for CJK scripts and works only if 'encoding' is
"utf-8".
j Where it makes sense, remove a comment leader when joining lines. For
example, joining:
int i; // the index ~
@ -1751,7 +1755,7 @@ Some examples:
Automatic formatting *auto-format* *autoformat*
When the 'a' flag is present in 'formatoptions' text is formatted
automatically when inserting text or deleting text. This works nice for
automatically when inserting text or deleting text. This works nicely for
editing text paragraphs. A few hints on how to use this:
- You need to properly define paragraphs. The simplest is paragraphs that are

View File

@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.2. Last change: 2019 Dec 07
*channel.txt* For Vim version 8.2. Last change: 2020 Jul 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -120,6 +120,9 @@ Use |ch_status()| to see if the channel could be opened.
{address} has the form "hostname:port". E.g., "localhost:8765".
When using an IPv6 address, enclose it within square brackets. E.g.,
"[2001:db8::1]:8765".
{options} is a dictionary with optional entries: *channel-open-options*
"mode" can be: *channel-mode*
@ -621,6 +624,9 @@ ch_open({address} [, {options}]) *ch_open()*
{address} has the form "hostname:port", e.g.,
"localhost:8765".
When using an IPv6 address, enclose it within square brackets.
E.g., "[2001:db8::1]:8765".
If {options} is given it must be a |Dictionary|.
See |channel-open-options|.
@ -1229,8 +1235,8 @@ If you want to type input for the job in a Vim window you have a few options:
- Use a terminal window. This works well if what you type goes directly to
the job and the job output is directly displayed in the window.
See |terminal-window|.
- Use a prompt window. This works well when entering a line for the job in Vim
while displaying (possibly filtered) output from the job.
- Use a window with a prompt buffer. This works well when entering a line for
the job in Vim while displaying (possibly filtered) output from the job.
A prompt buffer is created by setting 'buftype' to "prompt". You would
normally only do that in a newly created buffer.
@ -1253,7 +1259,7 @@ can start typing a line.
The text of the prompt can be set with the |prompt_setprompt()| function.
The user can go to Normal mode and navigate through the buffer. This can be
useful see older output or copy text.
useful to see older output or copy text.
The CTRL-W key can be used to start a window command, such as CTRL-W w to
switch to the next window. This also works in Insert mode (use Shift-CTRL-W
@ -1264,5 +1270,46 @@ Any command that starts Insert mode, such as "a", "i", "A" and "I", will move
the cursor to the last line. "A" will move to the end of the line, "I" to the
start of the line.
Here is an example for Unix. It starts a shell in the background and prompts
for the next shell command. Output from the shell is displayed above the
prompt. >
" Create a channel log so we can see what happens.
call ch_logfile('logfile', 'w')
" Function handling a line of text has been typed.
func TextEntered(text)
" Send the text to a shell with Enter appended.
call ch_sendraw(g:shell_job, a:text .. "\n")
endfunc
" Function handling output from the shell: Added above the prompt.
func GotOutput(channel, msg)
call append(line("$") - 1, "- " . a:msg)
endfunc
" Function handling the shell exist: close the window.
func JobExit(job, status)
quit!
endfunc
" Start a shell in the background.
let shell_job = job_start(["/bin/sh"], #{
\ out_cb: function('GotOutput'),
\ err_cb: function('GotOutput'),
\ exit_cb: function('JobExit'),
\ })
let shell_ch = job_getchannel(shell_job)
new
set buftype=prompt
let buf = bufnr('')
call prompt_setcallback(buf, function("TextEntered"))
eval prompt_setprompt(buf, "shell command: ")
" start accepting shell commands
startinsert
<
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.2. Last change: 2020 Feb 29
*cmdline.txt* For Vim version 8.2. Last change: 2020 Jul 26
VIM REFERENCE MANUAL by Bram Moolenaar
@ -615,6 +615,7 @@ followed by another Vim command:
:tcl
:tcldo
:tclfile
:terminal
:vglobal
:windo
:write !
@ -875,7 +876,7 @@ Also see |`=|.
*:<cword>* *<cword>* *:<cWORD>* *<cWORD>*
*:<cexpr>* *<cexpr>* *:<cfile>* *<cfile>*
*:<afile>* *<afile>* *:<abuf>* *<abuf>*
*:<amatch>* *<amatch>*
*:<amatch>* *<amatch>* *:<stack>* *<stack>*
*:<sfile>* *<sfile>* *:<slnum>* *<slnum>*
*:<sflnum>* *<sflnum>* *E499* *E500*
Note: these are typed literally, they are not special keys!
@ -902,12 +903,16 @@ Note: these are typed literally, they are not special keys!
events).
<sfile> When executing a ":source" command, is replaced with the
file name of the sourced file. *E498*
When executing a function, is replaced with:
"function {function-name}[{lnum}]"
function call nesting is indicated like this:
"function {function-name1}[{lnum}]..{function-name2}[{lnum}]"
When executing a function, is replaced with the call stack,
as with <stack> (this is for backwards compatibility, using
<stack> is preferred).
Note that filename-modifiers are useless when <sfile> is
used inside a function.
not used inside a script.
<stack> is replaced with the call stack, using
"function {function-name}[{lnum}]" for a function line
and "script {file-name}[{lnum}]" for a script line, and
".." in between items. E.g.:
"function {function-name1}[{lnum}]..{function-name2}[{lnum}]"
<slnum> When executing a ":source" command, is replaced with the
line number. *E842*
When executing a function it's the line number relative to

View File

@ -1,4 +1,4 @@
*develop.txt* For Vim version 8.2. Last change: 2019 Nov 22
*develop.txt* For Vim version 8.2. Last change: 2020 Apr 13
VIM REFERENCE MANUAL by Bram Moolenaar
@ -151,7 +151,8 @@ VIM IS... NOT *design-not*
A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
everything but the kitchen sink, but some people say that you can clean one
with it. ;-)"
To use Vim with gdb see: http://www.agide.org and http://clewn.sf.net.
To use Vim with gdb see |terminal-debugger|. Other (older) tools can be
found at http://www.agide.org and http://clewn.sf.net.
- Vim is not a fancy GUI editor that tries to look nice at the cost of
being less consistent over all platforms. But functional GUI features are
welcomed.

View File

@ -1,4 +1,4 @@
*digraph.txt* For Vim version 8.2. Last change: 2019 May 05
*digraph.txt* For Vim version 8.2. Last change: 2020 Jul 16
VIM REFERENCE MANUAL by Bram Moolenaar
@ -33,6 +33,8 @@ An alternative is using the 'keymap' option.
it is the Unicode character, see |digraph-encoding|.
Example: >
:digr e: 235 a: 228
< You can use `:exe` to enter a hex number: >
:exe 'digr += ' .. 0x2A72
< Avoid defining a digraph with '_' (underscore) as the
first character, it has a special meaning in the
future.

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.2. Last change: 2019 Dec 22
*editing.txt* For Vim version 8.2. Last change: 2020 Jul 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -475,6 +475,9 @@ This edits the same file again with 'fileformat' set to "unix". >
:w ++enc=latin1 newfile
This writes the current buffer to "newfile" in latin1 format.
The message given when writing a file will show "[converted]" when
'fileencoding' or the value specified with ++enc differs from 'encoding'.
There may be several ++opt arguments, separated by white space. They must all
appear before any |+cmd| argument.
@ -1079,9 +1082,9 @@ The names can be in upper- or lowercase.
*:q* *:quit*
:q[uit] Quit the current window. Quit Vim if this is the last
window. This fails when changes have been made and
Vim refuses to |abandon| the current buffer, and when
the last file in the argument list has not been
|edit-window|. This fails when changes have been made
and Vim refuses to |abandon| the current buffer, and
when the last file in the argument list has not been
edited.
If there are other tab pages and quitting the last
window in the current tab page the current tab page is
@ -1107,18 +1110,22 @@ The names can be in upper- or lowercase.
|quickfix|).
*:wq*
:wq [++opt] Write the current file and quit. Writing fails when
the file is read-only or the buffer does not have a
name. Quitting fails when the last file in the
argument list has not been edited.
:wq [++opt] Write the current file and close the window. If this
was the last |edit-window| Vim quits.
Writing fails when the file is read-only or the buffer
does not have a name. Quitting fails when the last
file in the argument list has not been edited.
:wq! [++opt] Write the current file and quit. Writing fails when
the current buffer does not have a name.
:wq! [++opt] Write the current file and close the window. If this
was the last |edit-window| Vim quits. Writing fails
when the current buffer does not have a name.
:wq [++opt] {file} Write to {file} and quit. Quitting fails when the
:wq [++opt] {file} Write to {file} and close the window. If this was the
last |edit-window| Vim quits. Quitting fails when the
last file in the argument list has not been edited.
:wq! [++opt] {file} Write to {file} and quit.
:wq! [++opt] {file} Write to {file} and close the current window. Quit
Vim if this was the last |edit-window|.
:[range]wq[!] [++opt] [file]
Same as above, but only write the lines in [range].
@ -1135,10 +1142,10 @@ The names can be in upper- or lowercase.
Same as :xit.
*ZZ*
ZZ Write current file, if modified, and quit (same as
":x"). (Note: If there are several windows for the
current file, the file is written if it was modified
and the window is closed).
ZZ Write current file, if modified, and close the current
window (same as ":x").
If there are several windows for the current file,
only the current window is closed.
*ZQ*
ZQ Quit without checking for changes (same as ":q!").
@ -1319,6 +1326,10 @@ present in 'cpoptions' and "!" is not used in the command.
*:tch* *:tchdir*
:tch[dir][!] Same as |:tcd|.
*:tcd-*
:tcd[!] - Change to the previous current directory, before the
last ":tcd {path}" command.
*:lc* *:lcd*
:lc[d][!] {path} Like |:cd|, but only set the current directory when
the cursor is in the current window. The current
@ -1328,9 +1339,28 @@ present in 'cpoptions' and "!" is not used in the command.
*:lch* *:lchdir*
:lch[dir][!] Same as |:lcd|.
*:lcd-*
:lcd[!] - Change to the previous current directory, before the
last ":lcd {path}" command.
*:pw* *:pwd* *E187*
:pw[d] Print the current directory name.
Also see |getcwd()|.
*:pwd-verbose*
When 'verbose' is non-zero, |:pwd| will also display
what scope the current directory was set. Example: >
" Set by :cd
:verbose pwd
[global] /path/to/current
" Set by :lcd
:verbose pwd
[window] /path/to/current
" Set by :tcd
:verbose pwd
[tabpage] /path/to/current
So long as no |:lcd| or |:tcd| command has been used, all windows share the
same current directory. Using a command to jump to another window doesn't
@ -1372,7 +1402,7 @@ to 0, 'modeline' off, 'expandtab' off). Setting the 'binary' option has the
same effect. Don't forget to do this before reading the file.
There are a few things to remember when editing binary files:
- When editing executable files the number of characters must not change.
- When editing executable files the number of bytes must not change.
Use only the "R" or "r" command to change text. Do not delete characters
with "x" or by backspacing.
- Set the 'textwidth' option to 0. Otherwise lines will unexpectedly be
@ -1380,7 +1410,7 @@ There are a few things to remember when editing binary files:
- When there are not many <EOL>s, the lines will become very long. If you
want to edit a line that does not fit on the screen reset the 'wrap' option.
Horizontal scrolling is used then. If a line becomes too long (more than
about 32767 characters on the Amiga, much more on 32-bit systems, see
about 32767 bytes on the Amiga, much more on 32-bit and 64-bit systems, see
|limits|) you cannot edit that line. The line will be split when reading
the file. It is also possible that you get an "out of memory" error when
reading the file.

File diff suppressed because it is too large Load Diff

48
runtime/doc/evim-tr.1 Normal file
View File

@ -0,0 +1,48 @@
.TH EVIM 1 "16 <20>ubat 2002"
.SH AD
evim \- kolay Vim, bir dosyay<61> Vim ile herhangi bir kip olmadan d<>zenleyin
.SH <EFBFBD>ZET
.br
.B evim
[se<73>enekler] [dosya ..]
.br
.B eview
.SH TANIM
.B eVim,
.B Vim'i
ba<EFBFBD>lat<EFBFBD>r ve onu herhangi bir kipsiz d<>zenleyici gibi davranmas<61>n<EFBFBD> sa<73>lar.
Bu bildi<64>iniz Vim'dir, ancak bir t<>kla ve yaz d<>zenleyicisi gibi <20>al<61><6C><EFBFBD>r.
Bir <20>rnek vermek gerekirse MS-Windows <20>zerindeki Not Defteri gibi d<><64><EFBFBD>n<EFBFBD>n.
.B eVim
men<EFBFBD>lere ve ara<72> <20>ubuklar<61>na eri<72>im sa<73>layabilmeniz i<>in grafik arabirimde <20>al<61><6C><EFBFBD>r.
.PP
Yaln<EFBFBD>zca Vim ile normal bi<62>imde <20>al<61><6C>amayan ki<6B>ilerin kullan<61>m<EFBFBD> i<>indir.
Dosya d<>zenleme i<>i <20>ok daha verimsiz olacakt<6B>r.
.PP
.B eview'<27>n
ayn<EFBFBD>s<EFBFBD>d<EFBFBD>r, ancak saltokunur kipte ba<62>lar. evim \-R ile de ba<62>lat<61>labilir.
.PP
Vim hakk<6B>nda ayr<79>nt<6E>l<EFBFBD> bilgi i<>in: vim(1)
.PP
Do<EFBFBD>rudan metin giri<72>ini sa<73>layabilmek i<>in 'insertmode' se<73>ene<6E>i a<><61>l<EFBFBD>r.
.br
E<EFBFBD>lemlemeler Kopyala ve Yap<61><70>t<EFBFBD>r MS-Windows ile ayn<79> olacak bi<62>imde ayarlan<61>r.
CTRL-X metni keser, CTRL-C metni kopyalar ve CTRL-V metni yap<61><70>t<EFBFBD>r<EFBFBD>r.
CTRL-V'nin orijinal i<>levi i<>in CTRL-Q kullan<61>n.
.SH SE<EFBFBD>ENEKLER
Bilgi i<>in: vim(1).
.SH DOSYALAR
.TP 15
/usr/local/lib/vim/evim.vim
eVim'i ilklendirmek i<>in kullan<61>lan betik.
.SH NAM-I D<EFBFBD><EFBFBD>ER
Nam-<2D> di<64>er "Lastik <20>izmeliler i<>in Vim" (Gumbies, Monty Python).
eVim'i kullan<61>rken bir mendili al<61>p iki ucundan birer d<><64><EFBFBD>m yapman<61>z
ve kafan<61>za takman<61>z beklenir.
.SH AYRICA BAKINIZ
vim(1)
.SH YAZAR
.B Vim'in
b<EFBFBD>y<EFBFBD>k <20>o<EFBFBD>unlu<6C>u Bram Moolenaar taraf<61>ndan ba<62>kalar<61>n<EFBFBD>n kayda de<64>er
yard<EFBFBD>mlar<EFBFBD>yla yaz<61>lm<6C><6D>t<EFBFBD>r.
Ek bilgi i<>in Yard<72>m/Te<54>ekk<6B>rler men<65>s<EFBFBD>ne bak<61>n.

View File

@ -0,0 +1,48 @@
.TH EVIM 1 "16 Şubat 2002"
.SH AD
evim \- kolay Vim, bir dosyayı Vim ile herhangi bir kip olmadan düzenleyin
.SH ÖZET
.br
.B evim
[seçenekler] [dosya ..]
.br
.B eview
.SH TANIM
.B eVim,
.B Vim'i
başlatır ve onu herhangi bir kipsiz düzenleyici gibi davranmasını sağlar.
Bu bildiğiniz Vim'dir, ancak bir tıkla ve yaz düzenleyicisi gibi çalışır.
Bir örnek vermek gerekirse MS-Windows üzerindeki Not Defteri gibi düşünün.
.B eVim
menülere ve araç çubuklarına erişim sağlayabilmeniz için grafik arabirimde çalışır.
.PP
Yalnızca Vim ile normal biçimde çalışamayan kişilerin kullanımı içindir.
Dosya düzenleme işi çok daha verimsiz olacaktır.
.PP
.B eview'ün
aynısıdır, ancak saltokunur kipte başlar. evim \-R ile de başlatılabilir.
.PP
Vim hakkında ayrıntılı bilgi için: vim(1)
.PP
Doğrudan metin girişini sağlayabilmek için 'insertmode' seçeneği açılır.
.br
Eşlemlemeler Kopyala ve Yapıştır MS-Windows ile aynı olacak biçimde ayarlanır.
CTRL-X metni keser, CTRL-C metni kopyalar ve CTRL-V metni yapıştırır.
CTRL-V'nin orijinal işlevi için CTRL-Q kullanın.
.SH SEÇENEKLER
Bilgi için: vim(1).
.SH DOSYALAR
.TP 15
/usr/local/lib/vim/evim.vim
eVim'i ilklendirmek için kullanılan betik.
.SH NAM-I DİĞER
Nam-ı diğer "Lastik Çizmeliler için Vim" (Gumbies, Monty Python).
eVim'i kullanırken bir mendili alıp iki ucundan birer düğüm yapmanız
ve kafanıza takmanız beklenir.
.SH AYRICA BAKINIZ
vim(1)
.SH YAZAR
.B Vim'in
büyük çoğunluğu Bram Moolenaar tarafından başkalarının kayda değer
yardımlarıyla yazılmıştır.
Ek bilgi için Yardım/Teşekkürler menüsüne bakın.

View File

@ -312,7 +312,7 @@ can create any of the following: >
$VIM/vimfiles/indent/sqlite.vim
No changes are necessary to the SQLSetType function. It will automatically
pickup the new SQL files and load them when you issue the SQLSetType command.
pick up the new SQL files and load them when you issue the SQLSetType command.
==============================================================================
@ -519,7 +519,7 @@ beginning with those characters. >
4.3.2 Column Completion: *sql-completion-columns*
The SQL completion plugin can also display a list of columns for particular
tables. The column completion is trigger via <C-C>c.
tables. The column completion is triggered via <C-C>c.
NOTE: The following example uses <Right> to trigger a column list while
the popup window is active.
@ -727,7 +727,7 @@ your platform (often a case on *nix) you define the following variable in
your |vimrc|: >
let g:omni_sql_no_default_maps = 1
Do no edit ftplugin/sql.vim directly! If you change this file your changes
Do not edit ftplugin/sql.vim directly! If you change this file your changes
will be over written on future updates. Vim has a special directory structure
which allows you to make customizations without changing the files that are
included with the Vim distribution. If you wish to customize the maps

View File

@ -199,7 +199,7 @@ With..." menu. This means you can use Vim to edit many files. Not every file
One reason to add this is to be able to edit HTML files directly from Internet
Explorer. To enable this use the "Tools" menu, "Internet Options..." entry.
In the dialog select the "Programs" tab and select Vim in the "HTML editor"
choice. If it's not there than installing didn't work properly.
choice. If it's not there then installing didn't work properly.
Doing this manually can be done with this script:

View File

@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 8.2. Last change: 2019 May 05
*gui_x11.txt* For Vim version 8.2. Last change: 2020 Jun 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -356,6 +356,9 @@ need to set those up in some sort of gtkrc file. You'll have to refer
to the GTK documentation, however little there is, on how to do this.
See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
for more information.
*gtk3-slow*
If you are using GTK3 and Vim appears to be slow, try setting the environment
variable $GDK_RENDERING to "image".
Tooltip Colors ~

View File

@ -1,4 +1,4 @@
*help.txt* For Vim version 8.2. Last change: 2019 Jul 21
*help.txt* For Vim version 8.2. Last change: 2020 Apr 05
VIM - main help file
k
@ -31,7 +31,7 @@ Get specific help: It is possible to go directly to whatever you want help
help entries for "word".
Or use ":helpgrep word". |:helpgrep|
Getting started: Do the Vim tutor, a 20 minute interactive training for the
Getting started: Do the Vim tutor, a 30-minute interactive course for the
basic commands, see |vimtutor|.
Read the user manual from start to end: |usr_01.txt|
@ -41,7 +41,7 @@ through the help of many others. See |credits|.
*doc-file-list* *Q_ct*
BASIC:
|quickref| Overview of the most common commands you will use
|tutor| 20 minutes training course for beginners
|tutor| 30-minute interactive course for beginners
|copying| About copyrights
|iccf| Helping poor children in Uganda
|sponsor| Sponsor Vim development, become a registered Vim user
@ -144,7 +144,7 @@ Special issues ~
|remote.txt| using Vim as a server or client
|term.txt| using different terminals and mice
|terminal.txt| Terminal window support
|popup.txt| popop window support
|popup.txt| popup window support
Programming language support ~
|indent.txt| automatic indenting for C and other languages
@ -198,13 +198,13 @@ Remarks about specific systems ~
|os_amiga.txt| Amiga
|os_beos.txt| BeOS and BeBox
|os_dos.txt| MS-DOS and MS-Windows common items
|os_haiku.txt| Haiku
|os_mac.txt| Macintosh
|os_mint.txt| Atari MiNT
|os_msdos.txt| MS-DOS (plain DOS and DOS box under Windows)
|os_os2.txt| OS/2
|os_qnx.txt| QNX
|os_risc.txt| RISC-OS
|os_haiku.txt| Haiku
|os_unix.txt| Unix
|os_vms.txt| VMS
|os_win32.txt| MS-Windows

View File

@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 8.2. Last change: 2019 Jul 21
*if_lua.txt* For Vim version 8.2. Last change: 2020 Jun 28
VIM REFERENCE MANUAL by Luis Carvalho
@ -32,7 +32,7 @@ Examples:
:lua local curbuf = vim.buffer() curbuf[7] = "line #7"
<
:[range]lua << [endmarker]
:[range]lua << [trim] [{endmarker}]
{script}
{endmarker}
Execute Lua script {script}.
@ -40,10 +40,9 @@ Examples:
feature wasn't compiled in. To avoid errors, see
|script-here|.
The {endmarker} must NOT be preceded by any white space.
If [endmarker] is omitted from after the "<<", a dot '.' must be used after
{script}, like for the |:append| and |:insert| commands.
{script}, like for the |:append| and |:insert| commands. Refer to
|:let-heredoc| for more information.
This form of the |:lua| command is mainly useful for including Lua code
in Vim scripts.
@ -200,6 +199,15 @@ Vim evaluation and command execution, and others.
returns it. Note that the buffer is not set as
current.
vim.call({name} [,{args}])
Proxy to call Vim function named {name} with
arguments {args}. Example: >
:lua print(vim.call('has', 'timers'))
<
vim.fn Proxy to call Vim functions. Proxy methods are
created on demand. Example: >
:lua print(vim.fn.has('timers'))
<
==============================================================================
3. List userdata *lua-list*
@ -209,14 +217,27 @@ Vim's syntax for lists. Since lists are objects, changes in list references in
Lua are reflected in Vim and vice-versa. A list "l" has the following
properties and methods:
NOTE: In patch 8.2.1066 array indexes were changed from zero-based to
one-based. You can check with: >
if has("patch-8.2.1066")
Properties
----------
o "#l" is the number of items in list "l", equivalent to "len(l)"
in Vim.
o "l[k]" returns the k-th item in "l"; "l" is zero-indexed, as in Vim.
o "l[k]" returns the k-th item in "l"; "l" is one-indexed, as in Lua.
To modify the k-th item, simply do "l[k] = newitem"; in
particular, "l[k] = nil" removes the k-th item from "l".
particular, "l[k] = nil" removes the k-th item from "l". Item can
be added to the end of the list by "l[#l + 1] = newitem"
o "l()" returns an iterator for "l".
o "table.insert(l, newitem)" inserts an item at the end of the list.
(only Lua 5.3 and later)
o "table.insert(l, position, newitem)" inserts an item at the
specified position. "position" is one-indexed. (only Lua 5.3 and
later)
o "table.remove(l, position)" removes an item at the specified
position. "position" is one-indexed.
Methods
-------
@ -229,13 +250,16 @@ Examples:
:let l = [1, 'item']
:lua l = vim.eval('l') -- same 'l'
:lua l:add(vim.list())
:lua l[0] = math.pi
:lua l[1] = math.pi
:echo l[0] " 3.141593
:lua l[0] = nil -- remove first item
:lua l[1] = nil -- remove first item
:lua l:insert(true, 1)
:lua print(l, #l, l[0], l[1], l[-1])
:lua print(l, #l, l[1], l[2])
:lua l[#l + 1] = 'value'
:lua table.insert(l, 100)
:lua table.insert(l, 2, 200)
:lua table.remove(l, 1)
:lua for item in l() do print(item) end
<
==============================================================================
4. Dict userdata *lua-dict*
@ -325,6 +349,14 @@ Examples:
:lua l = d.len -- assign d as 'self'
:lua print(l())
<
Lua functions and closures are automatically converted to a Vim |Funcref| and
can be accessed in Vim scripts. Example:
>
lua <<EOF
vim.fn.timer_start(1000, function(timer)
print('timer callback')
end)
EOF
==============================================================================
7. Buffer userdata *lua-buffer*

View File

@ -39,7 +39,7 @@ To speed up the process, you might also want to use --disable-gracket and
:[range]mz[scheme] {stmt}
Execute MzScheme statement {stmt}.
:[range]mz[scheme] << [endmarker]
:[range]mz[scheme] << [trim] [{endmarker}]
{script}
{endmarker}
Execute inlined MzScheme script {script}.
@ -47,12 +47,11 @@ To speed up the process, you might also want to use --disable-gracket and
feature wasn't compiled in. To avoid errors, see
|script-here|.
The {endmarker} below the {script} must NOT be
preceded by any white space.
If [endmarker] is omitted from after the "<<", a dot
'.' must be used after {script}, like for the
|:append| and |:insert| commands.
|:append| and |:insert| commands. Refer to
|:let-heredoc| for more information.
*:mzfile* *:mzf*
:[range]mzf[ile] {file} Execute the MzScheme script in {file}.

View File

@ -55,7 +55,7 @@ The ActiveState one should work, Strawberry Perl is a good alternative.
working: >
:perl VIM::Msg("Hello")
:pe[rl] << [endmarker]
:pe[rl] << [trim] [{endmarker}]
{script}
{endmarker}
Execute Perl script {script}.

View File

@ -34,7 +34,7 @@ Both can be available at the same time, but read |python-2-and-3|.
the `:python` command is working: >
:python print "Hello"
:[range]py[thon] << [endmarker]
:[range]py[thon] << [trim] [{endmarker}]
{script}
{endmarker}
Execute Python script {script}.
@ -42,10 +42,9 @@ Both can be available at the same time, but read |python-2-and-3|.
feature wasn't compiled in. To avoid errors, see
|script-here|.
The {endmarker} below the {script} must NOT be preceded by any white space.
If [endmarker] is omitted from after the "<<", a dot '.' must be used after
{script}, like for the |:append| and |:insert| commands.
{script}, like for the |:append| and |:insert| commands. Refer to
|:let-heredoc| for more information.
This form of the |:python| command is mainly useful for including python code
in Vim scripts.
@ -768,12 +767,12 @@ match the Python 2.x or Python 3 version Vim was compiled with.
*:py3* *:python3*
:[range]py3 {stmt}
:[range]py3 << [endmarker]
:[range]py3 << [trim] [{endmarker}]
{script}
{endmarker}
:[range]python3 {stmt}
:[range]python3 << [endmarker]
:[range]python3 << [trim] [{endmarker}]
{script}
{endmarker}
The `:py3` and `:python3` commands work similar to `:python`. A

View File

@ -28,15 +28,15 @@ downloading Ruby there.
:rub[y] {cmd} Execute Ruby command {cmd}. A command to try it out: >
:ruby print "Hello"
:rub[y] << [endmarker]
:rub[y] << [trim] [{endmarker}]
{script}
{endmarker}
Execute Ruby script {script}.
The {endmarker} after {script} must NOT be preceded by
any white space.
If [endmarker] is omitted, it defaults to a dot '.'
like for the |:append| and |:insert| commands.
like for the |:append| and |:insert| commands. Refer
to |:let-heredoc| for more information.
This form of the |:ruby| command is mainly useful for
including ruby code in vim scripts.

View File

@ -30,7 +30,7 @@ comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
is working: >
:tcl puts "Hello"
:[range]tc[l] << [endmarker]
:[range]tc[l] << [trim] [{endmarker}]
{script}
{endmarker}
Execute Tcl script {script}.
@ -38,10 +38,9 @@ comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
wasn't compiled in. To avoid errors, see
|script-here|.
The {endmarker} after {script} must NOT be preceded by any white space.
If [endmarker] is omitted from after the "<<", a dot '.' must be used after
{script}, like for the |:append| and |:insert| commands.
{script}, like for the |:append| and |:insert| commands. Refer to
|:let-heredoc| for more information.
This form of the |:tcl| command is mainly useful for including tcl code in Vim
scripts.

View File

@ -570,9 +570,15 @@ The examples below assume a 'shiftwidth' of 4.
with "#" does not work.
PN When N is non-zero recognize C pragmas, and indent them like any
other code; does not concern other preprocessor directives.
When N is zero (default): don't recognize C pragmas, treating
them like every other preprocessor directive.
The defaults, spelled out in full, are:
cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,E0,ps,ts,is,+s,
c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0
c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0,P0
Vim puts a line in column 1 if:
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#0'.

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 8.2. Last change: 2020 Mar 27
*index.txt* For Vim version 8.2. Last change: 2020 May 31
VIM REFERENCE MANUAL by Bram Moolenaar
@ -85,7 +85,7 @@ tag char action in Insert mode ~
|i_CTRL-R_CTRL-P| CTRL-R CTRL-P {register}
insert the contents of a register literally
and fix indent.
CTRL-S (used for terminal control flow)
CTRL-S not used or used for terminal control flow
|i_CTRL-T| CTRL-T insert one shiftwidth of indent in current
line
|i_CTRL-U| CTRL-U delete all entered characters in the current
@ -220,9 +220,9 @@ tag char note action in Normal mode ~
|CTRL-N| CTRL-N 1 same as "j"
|CTRL-O| CTRL-O 1 go to N older entry in jump list
|CTRL-P| CTRL-P 1 same as "k"
CTRL-Q (used for terminal control flow)
CTRL-Q not used, or used for terminal control flow
|CTRL-R| CTRL-R 2 redo changes which were undone with 'u'
CTRL-S (used for terminal control flow)
CTRL-S not used, or used for terminal control flow
|CTRL-T| CTRL-T jump to N older Tag in tag list
|CTRL-U| CTRL-U scroll N lines Upwards (default: half a
screen)
@ -246,8 +246,7 @@ tag char note action in Normal mode ~
2 filter Nmove text through the {filter}
command
|!!| !!{filter} 2 filter N lines through the {filter} command
|quote| "{a-zA-Z0-9.%#:-"} use register {a-zA-Z0-9.%#:-"} for next
delete, yank or put (uppercase to append)
|quote| "{register} use {register} for next delete, yank or put
({.%#:} only work with put)
|#| # 1 search backward for the Nth occurrence of
the ident under the cursor
@ -365,8 +364,8 @@ tag char note action in Normal mode ~
register x]
|Y| ["x]Y yank N lines [into register x]; synonym for
"yy"
|ZZ| ZZ store current file if modified, and exit
|ZQ| ZQ exit current file always
|ZZ| ZZ write if buffer changed and close window
|ZQ| ZQ close window without writing
|[| [{char} square bracket command (see |[| below)
\ not used
|]| ]{char} square bracket command (see |]| below)
@ -829,7 +828,7 @@ tag char note action in Normal mode ~
|zD| zD delete folds recursively
|zE| zE eliminate all folds
|zF| zF create a fold for N lines
|zG| zG mark word as good spelled word
|zG| zG temporarily mark word as correctly spelled
|zH| zH when 'wrap' off scroll half a screenwidth
to the right
|zL| zL when 'wrap' off scroll half a screenwidth
@ -838,7 +837,7 @@ tag char note action in Normal mode ~
|zN| zN set 'foldenable'
|zO| zO open folds recursively
|zR| zR set 'foldlevel' to the deepest fold
|zW| zW mark word as wrong (bad) spelled word
|zW| zW temporarily mark word as incorrectly spelled
|zX| zX re-apply 'foldlevel'
|z^| z^ cursor on line N (default line above
window), otherwise like "z-"
@ -850,7 +849,7 @@ tag char note action in Normal mode ~
position the cursor at the end (right side)
of the screen
|zf| zf{motion} create a fold for Nmove text
|zg| zg mark word as good spelled word
|zg| zg permanently mark word as correctly spelled
|zh| zh when 'wrap' off scroll screen N characters
to the right
|zi| zi toggle 'foldenable'
@ -871,7 +870,7 @@ tag char note action in Normal mode ~
|zuW| zuW undo |zW|
|zuG| zuG undo |zG|
|zv| zv open enough folds to view the cursor line
|zw| zw mark word as wrong (bad) spelled word
|zw| zw permanently mark word as incorrectly spelled
|zx| zx re-apply 'foldlevel' and do "zv"
|zz| zz redraw, cursor line at center of window
|z<Left>| z<Left> same as "zh"
@ -1057,7 +1056,7 @@ tag command action in Command-line editing mode ~
|c_CTRL-R_CTRL-O| CTRL-R CTRL-O {regname}
insert the contents of a register or object
under the cursor literally
CTRL-S (used for terminal control flow)
CTRL-S not used, or used for terminal control flow
|c_CTRL-T| CTRL-T previous match when 'incsearch' is active
|c_CTRL-U| CTRL-U remove all characters
|c_CTRL-V| CTRL-V insert next non-digit literally, insert three
@ -1115,7 +1114,7 @@ tag char action in Terminal-Job mode ~
|t_CTRL-W_:| CTRL-W : enter an Ex command
|t_CTRL-W_.| CTRL-W . type CTRL-W in the terminal
CTRL-W CTRL-\ send a CTRL-\ to the job in the terminal
|t_CTRL-W_quote| CTRL-W " {0-9a-z"%#*:=}
|t_CTRL-W_quote| CTRL-W " {register}
paste register in the terminal
|t_CTRL-W_CTRL-C| CTRL-W CTRL-C forcefully ends the job
|t_CTRL-W_CTRL-W| CTRL-W CTRL-W move focus to the next window
@ -1263,6 +1262,7 @@ tag command action ~
|:debug| :deb[ug] run a command in debugging mode
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input
|:def| :def define a Vim9 user function
|:defcompile| :defc[ompile] compile Vim9 user functions in current script
|:delcommand| :delc[ommand] delete user-defined command
|:delfunction| :delf[unction] delete a user function
|:delmarks| :delm[arks] delete marks
@ -1722,7 +1722,7 @@ tag command action ~
|:wqall| :wqa[ll] write all changed buffers and quit Vim
|:wundo| :wu[ndo] write undo information to a file
|:wviminfo| :wv[iminfo] write to viminfo file
|:xit| :x[it] write if buffer changed and quit window or Vim
|:xit| :x[it] write if buffer changed and close window
|:xall| :xa[ll] same as ":wqall"
|:xmapclear| :xmapc[lear] remove all mappings for Visual mode
|:xmap| :xm[ap] like ":map" but for Visual mode

View File

@ -1,4 +1,4 @@
*insert.txt* For Vim version 8.2. Last change: 2020 Mar 25
*insert.txt* For Vim version 8.2. Last change: 2020 Apr 30
VIM REFERENCE MANUAL by Bram Moolenaar
@ -154,6 +154,8 @@ CTRL-R CTRL-R {register} *i_CTRL-R_CTRL-R*
you also want to avoid these, use CTRL-R CTRL-O, see below.
The '.' register (last inserted text) is still inserted as
typed.
After this command, the '.' register contains the text from
the register as if it was inserted by typing it.
CTRL-R CTRL-O {register} *i_CTRL-R_CTRL-O*
Insert the contents of a register literally and don't
@ -163,6 +165,9 @@ CTRL-R CTRL-O {register} *i_CTRL-R_CTRL-O*
Does not replace characters!
The '.' register (last inserted text) is still inserted as
typed.
After this command, the '.' register contains the command
typed and not the text. I.e., the literals "^R^O" and not the
text from the register.
CTRL-R CTRL-P {register} *i_CTRL-R_CTRL-P*
Insert the contents of a register literally and fix the
@ -170,6 +175,9 @@ CTRL-R CTRL-P {register} *i_CTRL-R_CTRL-P*
Does not replace characters!
The '.' register (last inserted text) is still inserted as
typed.
After this command, the '.' register contains the command
typed and not the text. I.e., the literals "^R^P" and not the
text from the register.
*i_CTRL-T*
CTRL-T Insert one shiftwidth of indent at the start of the current
@ -658,8 +666,10 @@ Note: The keys that are valid in CTRL-X mode are not mapped. This allows for
ends CTRL-X mode (any key that is not a valid CTRL-X mode command) is mapped.
Also, when doing completion with 'complete' mappings apply as usual.
Note: While completion is active Insert mode can't be used recursively.
Mappings that somehow invoke ":normal i.." will generate an E523 error.
*E578* *E565*
Note: While completion is active Insert mode can't be used recursively and
buffer text cannot be changed. Mappings that somehow invoke ":normal i.."
will generate an E565 error.
The following mappings are suggested to make typing the completion commands
a bit easier (although they will hide other commands): >

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 8.2. Last change: 2019 Nov 11
*intro.txt* For Vim version 8.2. Last change: 2020 May 30
VIM REFERENCE MANUAL by Bram Moolenaar
@ -121,14 +121,16 @@ http://www.vim.org/maillist.php
Bug reports: *bugs* *bug-reports* *bugreport.vim*
There are two ways to report bugs, both work:
1. Send bug reports to: Vim Developers <vim-dev@vim.org>
There are three ways to report bugs:
1. Open an issue on GitHub: https://github.com/vim/vim/issues
The text will be forwarded to the vim-dev maillist.
2. For issues with runtime files, look in the header for an email address or
any other way to report it to the maintainer.
3. 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 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).
2. Open an issue on GitHub: https://github.com/vim/vim/issues
The text will be forwarded to the vim-dev maillist.
Please be brief; all the time that is spent on answering mail is subtracted
from the time that is spent on improving Vim! Always give a reproducible

View File

@ -58,7 +58,7 @@ substr($0,length($0),1) == "~" { print "<B><FONT COLOR=\"PURPLE\">" substr($0,1,
#
#ad hoc code
#
/^"\|\& / {gsub(/\|/,"\\&#124;"); }
/^"\|& / {gsub(/\|/,"\\&#124;"); }
/ = b / {gsub(/ b /," \\&#98; "); }
#
# one letter tag

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 8.2. Last change: 2019 Dec 19
*map.txt* For Vim version 8.2. Last change: 2020 Apr 23
VIM REFERENCE MANUAL by Bram Moolenaar
@ -843,11 +843,10 @@ When modifyOtherKeys is enabled you can map <C-[> and <C-S-{>: >
imap <C-S-{> {{{
Without modifyOtherKeys <C-[> and <C-S-{> are indistinguishable from Esc.
A known side effect effect is that in Insert mode the raw escape sequence is
inserted after the CTRL-V key. This can be used to check whether
modifyOtherKeys is enabled: In Insert mode type CTRL-SHIFT-V CTRL-V, if you
get one byte then modifyOtherKeys is off, if you get <1b>27;5;118~ then it is
on.
A known side effect is that in Insert mode the raw escape sequence is inserted
after the CTRL-V key. This can be used to check whether modifyOtherKeys is
enabled: In Insert mode type CTRL-SHIFT-V CTRL-V, if you get one byte then
modifyOtherKeys is off, if you get <1b>27;5;118~ then it is on.
When the 'esckeys' option is off, then modifyOtherKeys will be disabled in
Insert mode to avoid every key with a modifier causing Insert mode to end.
@ -1492,7 +1491,7 @@ The valid escape sequences are
<bang> (See the '-bang' attribute) Expands to a ! if the
command was executed with a ! modifier, otherwise
expands to nothing.
*<mods>*
*<mods>* *:command-modifiers*
<mods> The command modifiers, if specified. Otherwise, expands to
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,

View File

@ -128,7 +128,7 @@ There are several ways to enter multi-byte characters:
- For MS-Windows IME can be used. See |IME|.
- For all systems keymaps can be used. See |mbyte-keymap|.
The options 'iminsert', 'imsearch' and 'imcmdline' can be used to chose
The options 'iminsert', 'imsearch' and 'imcmdline' can be used to choose
the different input methods or disable them temporarily.
==============================================================================
@ -141,8 +141,8 @@ in, or just use a certain locale inside Vim.
WHAT IS A LOCALE? *locale*
There are many of languages in the world. And there are different cultures
and environments at least as much as the number of languages. A linguistic
There are many languages in the world. And there are different cultures and
environments at least as many as the number of languages. A linguistic
environment corresponding to an area is called "locale". This includes
information about the used language, the charset, collating order for sorting,
date format, currency format and so on. For Vim only the language and charset
@ -889,7 +889,7 @@ input_server_name is your |IM-server| name (check your |IM-server|
your_input_style is one of |OverTheSpot|, |OffTheSpot|, |Root|. See
also |xim-input-style|.
*international may not necessary if you use X11R6.
*international may not be necessary if you use X11R6.
*.inputMethod and *.preeditType are optional if you use X11R6.
For example, when you are using kinput2 as |IM-server|, >
@ -952,7 +952,7 @@ automatically.
This works on not only insert-normal mode, but also search-command input and
replace mode.
The options 'iminsert', 'imsearch' and 'imcmdline' can be used to chose
The options 'iminsert', 'imsearch' and 'imcmdline' can be used to choose
the different input methods or disable them temporarily.
WHAT IS IME

View File

@ -1,4 +1,4 @@
*mlang.txt* For Vim version 8.2. Last change: 2019 May 05
*mlang.txt* For Vim version 8.2. Last change: 2020 Jun 16
VIM REFERENCE MANUAL by Bram Moolenaar
@ -37,6 +37,7 @@ use of "-" and "_".
:lan[guage] mes[sages]
:lan[guage] cty[pe]
:lan[guage] tim[e]
:lan[guage] col[late]
Print the current language (aka locale).
With the "messages" argument the language used for
messages is printed. Technical: LC_MESSAGES.
@ -44,15 +45,19 @@ use of "-" and "_".
character encoding is printed. Technical: LC_CTYPE.
With the "time" argument the language used for
strftime() is printed. Technical: LC_TIME.
With the "collate" argument the language used for
collation order is printed. Technical: LC_COLLATE.
Without argument all parts of the locale are printed
(this is system dependent).
The current language can also be obtained with the
|v:lang|, |v:ctype| and |v:lc_time| variables.
|v:lang|, |v:ctype|, |v:collate| and |v:lc_time|
variables.
:lan[guage] {name}
:lan[guage] mes[sages] {name}
:lan[guage] cty[pe] {name}
:lan[guage] tim[e] {name}
:lan[guage] col[late] {name}
Set the current language (aka locale) to {name}.
The locale {name} must be a valid locale on your
system. Some systems accept aliases like "en" or
@ -72,7 +77,10 @@ use of "-" and "_".
With the "time" argument the language used for time
and date messages is set. This affects strftime().
This sets $LC_TIME.
Without an argument both are set, and additionally
With the "collate" argument the language used for the
collation order is set. This affects sorting of
characters. This sets $LC_COLLATE.
Without an argument all are set, and additionally
$LANG is set.
When compiled with the |+float| feature the LC_NUMERIC
value will always be set to "C", so that floating

View File

@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 8.2. Last change: 2019 May 05
*netbeans.txt* For Vim version 8.2. Last change: 2020 Apr 19
VIM REFERENCE MANUAL by Gordon Prieur et al.
@ -40,21 +40,26 @@ or environment providing a socket interface can control Vim using this
protocol. There are existing implementations in C, C++, Python and Java. The
name NetBeans is kept today for historical reasons.
Current projects using the NetBeans protocol of Vim are:
- VimIntegration, description of various projects doing Vim Integration:
Active project using the NetBeans protocol of Vim:
- Eclim, http://eclim.org/
VimIntegration, description of various projects doing Vim Integration:
http://www.freehackers.org/VimIntegration
- Agide, an IDE for the AAP project, written in Python:
http://www.a-a-p.org
Projects using the NetBeans protocol of Vim are or were:
- Agide, an IDE for the AAP project, written in Python (now replaced by
|:Termdebug|): http://www.a-a-p.org
- Clewn, a gdb integration into Vim, written in C:
http://clewn.sourceforge.net/
- Pyclewn, a gdb integration into Vim, written in Python:
http://pyclewn.sourceforge.net/
- VimWrapper, library to easy Vim integration into IDE:
http://www.freehackers.org/VimWrapper
Outdated projects (links don't work):
- VimPlugin, integration of Vim inside Eclipse:
http://vimplugin.sourceforge.net/wiki/pmwiki.php
- PIDA, IDE written in Python integrating Vim:
http://pida.co.uk/
- VimWrapper, library to easy Vim integration into IDE:
http://www.freehackers.org/VimWrapper
Check the specific project pages to see how to use Vim with these projects.
@ -461,11 +466,13 @@ guard off len
initDone Mark the buffer as ready for use. Implicitly makes the buffer
the current buffer. Fires the BufReadPost autocommand event.
insertDone
insertDone starteol readonly
Sent by Vim Controller to tell Vim an initial file insert is
done. This triggers a read message being printed. Prior to
version 2.3, no read messages were displayed after opening a
file. New in version 2.3.
done. This triggers a read message being printed. If
"starteol" is "F" then the last line doesn't have a EOL. If
"readonly" is "T" then the file is marked as readonly. Prior
to version 2.3, no read messages were displayed after opening
a file. New in version 2.3.
moveAnnoToFront serNum
Not implemented.

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 8.2. Last change: 2020 Mar 02
*options.txt* For Vim version 8.2. Last change: 2020 Jul 18
VIM REFERENCE MANUAL by Bram Moolenaar
@ -915,6 +915,8 @@ A jump table for the options with a short description can be found at |Q_op|.
eol allow backspacing over line breaks (join lines)
start allow backspacing over the start of insert; CTRL-W and CTRL-U
stop once at the start of insert.
nostop like start, except CTRL-W and CTRL-U do not stop at the start of
insert.
When the value is empty, Vi compatible backspacing is used.
@ -923,6 +925,7 @@ A jump table for the options with a short description can be found at |Q_op|.
0 same as ":set backspace=" (Vi compatible)
1 same as ":set backspace=indent,eol"
2 same as ":set backspace=indent,eol,start"
3 same as ":set backspace=indent,eol,nostop"
See |:fixdel| if your <BS> or <Del> key does not do what you want.
NOTE: This option is set to "" when 'compatible' is set.
@ -1948,9 +1951,11 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the |+textprop|
or |+quickfix| feature}
When 'completeopt' contains "popup" then this option is used for the
properties of the info popup when it is created. You can also use
|popup_findinfo()| and then set properties for an existing info popup
with |popup_setoptions()|. See |complete-popup|.
properties of the info popup when it is created. If an info popup
window already exists it is closed, so that the option value is
applied when it is created again.
You can also use |popup_findinfo()| and then set properties for an
existing info popup with |popup_setoptions()|. See |complete-popup|.
*'concealcursor'* *'cocu'*
@ -4130,7 +4135,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
This option specifies a function that will be called to
activate or deactivate the Input Method.
It is not used in the GUI.
It is not used in the MS-Windows GUI version.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
@ -4239,7 +4244,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
This option specifies a function that is called to obtain the status
of Input Method. It must return a positive number when IME is active.
It is not used in the GUI.
It is not used in the MS-Windows GUI version.
Example: >
function ImStatusFunc()
@ -5229,7 +5234,7 @@ A jump table for the options with a short description can be found at |Q_op|.
< If your terminal can't overrule the mouse events going to the
application, use: >
:set mouse=nvi
< The you can press ":", select text for the system, and press Esc to go
< Then you can press ":", select text for the system, and press Esc to go
back to Vim using the mouse events.
In |defaults.vim| "nvi" is used if the 'term' option is not matching
"xterm".
@ -5424,6 +5429,15 @@ A jump table for the options with a short description can be found at |Q_op|.
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".
unsigned If included, numbers are recognized as unsigned. Thus a
leading dash or negative sign won't be considered as part of
the number. Examples:
Using CTRL-X on "2020" in "9-2020" results in "9-2019"
(without "unsigned" it would become "9-2021").
Using CTRL-A on "2020" in "9-2020" results in "9-2021"
(without "unsigned" it would become "9-2019").
Using CTRL-X on "0" or CTRL-A on "18446744073709551615"
(2^64 - 1) has no effect, overflow is prevented.
Numbers which simply begin with a digit in the range 1-9 are always
considered decimal. This also happens for numbers that are not
recognized as octal or hex.
@ -5886,6 +5900,22 @@ A jump table for the options with a short description can be found at |Q_op|.
'pyxversion' has no effect. The pyx* functions and commands are
always the same as the compiled version.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'quickfixtextfunc'* *'qftf'*
'quickfixtextfunc' 'qftf' string (default "")
global
{only available when compiled with the |+quickfix|
feature}
This option specifies a function to be used to get the text to display
in the quickfix and location list windows. This can be used to
customize the information displayed in the quickfix or location window
for each entry in the corresponding quickfix or location list. See
|quickfix-window-function| for an explanation of how to write the
function and an example. The value can be the name of a function or a
lambda.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@ -6703,7 +6733,7 @@ A jump table for the options with a short description can be found at |Q_op|.
flag meaning when present ~
f use "(3 of 5)" instead of "(file 3 of 5)"
i use "[noeol]" instead of "[Incomplete last line]"
l use "999L, 888C" instead of "999 lines, 888 characters"
l use "999L, 888B" instead of "999 lines, 888 bytes"
m use "[+]" instead of "[Modified]"
n use "[New]" instead of "[New File]"
r use "[RO]" instead of "[readonly]"
@ -7078,6 +7108,16 @@ A jump table for the options with a short description can be found at |Q_op|.
up to the first character that is not an ASCII letter or number and
not a dash. Also see |set-spc-auto|.
*'spelloptions'* *'spo'*
'spelloptions' 'spo' string (default "")
local to buffer
{not available when compiled without the |+syntax|
feature}
A comma separated list of options for spell checking:
camel When a word is CamelCased, assume "Cased" is a
separate word: every upper-case character in a word
that comes after a lower case character indicates the
start of a new word.
*'spellsuggest'* *'sps'*
'spellsuggest' 'sps' string (default "best")
@ -7669,10 +7709,8 @@ A jump table for the options with a short description can be found at |Q_op|.
'term' string (default is $TERM, if that fails:
in the GUI: "builtin_gui"
on Amiga: "amiga"
on BeOS: "beos-ansi"
on Haiku: "xterm"
on Mac: "mac-ansi"
on MiNT: "vt52"
on Unix: "ansi"
on VMS: "ansi"
on Win 32: "win32")
@ -7957,7 +7995,7 @@ A jump table for the options with a short description can be found at |Q_op|.
- VIM the server name |v:servername| or "VIM"
Only works if the terminal supports setting window titles
(currently Amiga console, Win32 console, all GUI versions and
terminals with a non- empty 't_ts' option - these are Unix xterm and
terminals with a non-empty 't_ts' option - these are Unix xterm and
iris-ansi by default, where 't_ts' is taken from the builtin termcap).
*X11*
When Vim was compiled with HAVE_X11 defined, the original title will
@ -8320,13 +8358,17 @@ A jump table for the options with a short description can be found at |Q_op|.
Currently, these messages are given:
>= 1 When the viminfo file is read or written.
>= 2 When a file is ":source"'ed.
>= 4 Shell commands.
>= 5 Every searched tags file and include file.
>= 8 Files for which a group of autocommands is executed.
>= 9 Every executed autocommand.
>= 11 Finding items in a path
>= 12 Every executed function.
>= 13 When an exception is thrown, caught, finished, or discarded.
>= 14 Anything pending in a ":finally" clause.
>= 15 Every executed Ex command (truncated at 200 characters).
>= 15 Every executed Ex command from a script (truncated at 200
characters).
>= 16 Every executed Ex command
This option can also be set with the "-V" argument. See |-V|.
This option is also set by the |:verbose| command.
@ -8516,8 +8558,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'virtualedit'* *'ve'*
'virtualedit' 've' string (default "")
global
{not available when compiled without the
|+virtualedit| feature}
A comma separated list of these words:
block Allow virtual editing in Visual block mode.
insert Allow virtual editing in Insert mode.

View File

@ -1,320 +1,13 @@
*os_beos.txt* For Vim version 8.2. Last change: 2016 Mar 28
*os_beos.txt* For Vim version 8.2. Last change: 2020 Jun 07
VIM REFERENCE MANUAL by Bram Moolenaar
*BeOS* *BeBox*
This is a port of Vim 5.1 to the BeOS Preview Release 2 (also known as PR2)
or later.
*beos* *BeOS* *BeBox*
This file used to contain particularities for the BeOS port of Vim.
This file contains the particularities for the BeBox/BeOS version of Vim. For
matters not discussed in this file, Vim behaves very much like the Unix
|os_unix.txt| version.
The BeOS support was removed in patch 8.2.0849.
1. General |beos-general|
2. Compiling Vim |beos-compiling|
3. Timeout in the Terminal |beos-timeout|
4. Unicode vs. Latin1 |beos-unicode|
5. The BeOS GUI |beos-gui|
6. The $VIM directory |beos-vimdir|
7. Drag & Drop |beos-dragndrop|
8. Single Launch vs. Multiple
Launch |beos-launch|
9. Fonts |beos-fonts|
10. The meta key modifier |beos-meta|
11. Mouse key mappings |beos-mouse|
12. Color names |beos-colors|
13. Compiling with Perl |beos-perl|
1. General *beos-general*
The default syntax highlighting mostly works with different foreground colors
to highlight items. This works best if you set your Terminal window to a
darkish background and light letters. Some middle-grey background (for
instance (r,g,b)=(168,168,168)) with black letters also works nicely. If you
use the default light background and dark letters, it may look better to
simply reverse the notion of foreground and background color settings. To do
this, add this to your .vimrc file (where <Esc> may need to be replaced with
the escape character): >
:if &term == "beos-ansi"
: set t_AB=<Esc>[3%dm
: set t_AF=<Esc>[4%dm
:endif
2. Compiling Vim *beos-compiling*
From the Advanced Access Preview Release (AAPR) on, Vim can be configured with
the standard configure script. To get the compiler and its flags right, use
the following command-line in the shell (you can cut and paste it in one go):
CC=$BE_C_COMPILER CFLAGS="$BE_DEFAULT_C_FLAGS -O7" \
./configure --prefix=/boot/home/config
$BE_C_COMPILER is usually "mwcc", $BE_DEFAULT_C_FLAGS is usually "-I- -I."
When configure has run, and you wish to enable GUI support, you must edit the
config.mk file so that the lines with GUI_xxx refer to $(BEOSGUI_xxx) instead
of $(NONE_xxx).
Alternatively you can make this change in the Makefile; it will have a
more permanent effect. Search for "NONE_".
After compilation you need to add the resources to the binary. Add the
following few lines near the end (before the line with "exit $exit_value") of
the link.sh script to do this automatically.
rmattr BEOS:TYPE vim
copyres os_beos.rsrc vim
mimeset vim
Also, create a dummy file "strip":
#!/bin/sh
mimeset $1
exit 0
You will need it when using "make install" to install Vim.
Now type "make" to compile Vim, then "make install" to install it.
If you want to install Vim by hand, you must copy Vim to $HOME/config/bin, and
create a bunch of symlinks to it ({g,r,rg}{vim,ex,view}). Furthermore you must
copy Vim's configuration files to $HOME/config/share/vim:
vim-5.0s/{*.vim,doc,syntax}. For completeness, you should also copy the nroff
manual pages to $HOME/config/man/man1. Don't forget ctags/ctags and xxd/xxd!
Obviously, you need the unlimited linker to actually link Vim. See
http://www.metrowerks.com for purchasing the CodeWarrior compiler for BeOS.
There are currently no other linkers that can do the job.
This won't be able to include the Perl or Python interfaces even if
you have the appropriate files installed. |beos-perl|
3. Timeout in the Terminal *beos-timeout*
Because some POSIX/UNIX features are still missing[1], there is no direct OS
support for read-with-timeout in the Terminal. This would mean that you cannot
use :mappings of more than one character, unless you also :set notimeout.
|'timeout'|
To circumvent this problem, I added a workaround to provide the necessary
input with timeout by using an extra thread which reads ahead one character.
As a side effect, it also makes Vim recognize when the Terminal window
resizes.
Function keys are not supported in the Terminal since they produce very
indistinctive character sequences.
These problems do not exist in the GUI.
[1]: there is no select() on file descriptors; also the termios VMIN and VTIME
settings do not seem to work properly. This has been the case since DR7 at
least and still has not been fixed as of PR2.
*beos-unicode*
4. Unicode vs. Latin1 *beos-utf8*
BeOS uses Unicode and UTF-8 for text strings (16-bit characters encoded to
8-bit characters). Vim assumes ISO-Latin1 or other 8-bit character codes.
This does not produce the desired results for non-ASCII characters. Try the
command :digraphs to see. If they look messed up, use :set isprint=@ to
(slightly) improve the display of ISO-Latin1 characters 128-255. This works
better in the GUI, depending on which font you use (below).
You may also use the /boot/bin/xtou command to convert UTF-8 files from (xtou
-f iso1 filename) or to (xtou -t iso1 filename) ISO-Latin1 characters.
5. The BeOS GUI *beos-gui*
The BeOS GUI is no longer included. It was not maintained for a while and
most likely didn't work. If you want to work on this: get the Vim 6.x version
and merge it back in.
6. The $VIM directory *beos-vimdir*
$VIM is the symbolic name for the place where Vims support files are stored.
The default value for $VIM is set at compile time and can be determined with >
:version
The normal value is /boot/home/config/share/vim. If you don't like it you can
set the VIM environment variable to override this, or set 'helpfile' in your
.vimrc: >
:if version >= 500
: set helpfile=~/vim/vim54/doc/help.txt
: syntax on
:endif
7. Drag & Drop *beos-dragndrop*
You can drop files and directories on either the Vim icon (starts a new Vim
session, unless you use the File Types application to set Vim to be "Single
Launch") or on the Vim window (starts editing the files). Dropping a folder
sets Vim's current working directory. |:cd| |:pwd| If you drop files or
folders with either SHIFT key pressed, Vim changes directory to the folder
that contains the first item dropped. When starting Vim, there is no need to
press shift: Vim behaves as if you do.
Files dropped set the current argument list. |argument-list|
8. Single Launch vs. Multiple Launch *beos-launch*
As distributed Vim's Application Flags (as seen in the FileTypes preference)
are set to Multiple Launch. If you prefer, you can set them to Single Launch
instead. Attempts to start a second copy of Vim will cause the first Vim to
open the files instead. This works from the Tracker but also from the command
line. In the latter case, non-file (option) arguments are not supported.
NB: Only the GUI version has a BApplication (and hence Application Flags).
This section does not apply to the GUI-less version, should you compile one.
9. Fonts *beos-fonts*
Set fonts with >
:set guifont=Courier10_BT/Roman/10
where the first part is the font family, the second part the style, and the
third part the size. You can use underscores instead of spaces in family and
style.
Best results are obtained with monospaced fonts (such as Courier). Vim
attempts to use all fonts in B_FIXED_SPACING mode but apparently this does not
work for proportional fonts (despite what the BeBook says).
Vim also tries to use the B_ISO8859_1 encoding, also known as ISO Latin 1.
This also does not work for all fonts. It does work for Courier, but not for
ProFontISOLatin1/Regular (strangely enough). You can verify this by giving the >
:digraphs
command, which lists a bunch of characters with their ISO Latin 1 encoding.
If, for instance, there are "box" characters among them, or the last character
isn't a dotted-y, then for this font the encoding does not work.
If the font you specify is unavailable, you get the system fixed font.
Standard fixed-width system fonts are:
ProFontISOLatin1/Regular
Courier10_BT/Roman
Courier10_BT/Italic
Courier10_BT/Bold
Courier10_BT/Bold_Italic
Standard proportional system fonts are:
Swis721_BT/Roman
Swis721_BT/Italic
Swis721_BT/Bold
Swis721_BT/Bold_Italic
Dutch801_Rm_BT/Roman
Dutch801_Rm_BT/Italic
Dutch801_Rm_BT/Bold
Dutch801_Rm_BT/Bold_Italic
Baskerville/Roman
Baskerville/Italic
Baskerville/Bold
Baskerville/Bold_Italic
SymbolProp_BT/Regular
Try some of them, just for fun.
10. The meta key modifier *beos-meta*
The META key modifier is obtained by the left or right OPTION keys. This is
because the ALT (aka COMMAND) keys are not passed to applications.
11. Mouse key mappings *beos-mouse*
Vim calls the various mouse buttons LeftMouse, MiddleMouse and RightMouse. If
you use the default Mouse preference settings these names indeed correspond to
reality. Vim uses this mapping:
Button 1 -> LeftMouse,
Button 2 -> RightMouse,
Button 3 -> MiddleMouse.
If your mouse has fewer than 3 buttons you can provide your own mapping from
mouse clicks with modifier(s) to other mouse buttons. See the swapmouse
package for an example: |gui-mouse-mapping|
$VIMRUNTIME/pack/dist/opt/swapmouse/plugin/swapmouse.vim
12. Color names *beos-colors*
Vim has a number of color names built-in. Additional names are read from the
file $VIMRUNTIME/rgb.txt, if present. This file is basically the color
database from X. Names used from this file are cached for efficiency.
13. Compiling with Perl *beos-perl*
Compiling with Perl support enabled is slightly tricky. The Metrowerks
compiler has some strange ideas where to search for include files. Since
several include files with Perl have the same names as some Vim header
files, the wrong ones get included. To fix this, run the following Perl
script while in the vim-5.0/src directory: >
preproc.pl > perl.h
#!/bin/env perl
# Simple #include expander, just good enough for the Perl header files.
use strict;
use IO::File;
use Config;
sub doinclude
{
my $filename = $_[0];
my $fh = new IO::File($filename, "r");
if (defined $fh) {
print "/* Start of $filename */\n";
while (<$fh>) {
if (/^#include "(.*)"/) {
doinclude($1);
print "/* Back in $filename */\n";
} else {
print $_;
}
}
print "/* End of $filename */\n";
undef $fh;
} else {
print "/* Cannot open $filename */\n";
print "#include \"$filename\"\n";
}
}
chdir $Config{installarchlib}."/CORE";
doinclude "perl.h";
It expands the "perl.h" header file, using only other Perl header files.
Now you can configure & make Vim with the --enable-perlinterp option.
Be warned though that this adds about 616 kilobytes to the size of Vim!
Without Perl, Vim with default features and GUI is about 575K, with Perl
it is about 1191K.
-Olaf Seibert
[Note: these addresses no longer work:]
<rhialto@polder.ubc.kun.nl>
http://polder.ubc.kun.nl/~rhialto/be
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*os_haiku.txt* For Vim version 8.2. Last change: 2020 Mar 19
*os_haiku.txt* For Vim version 8.2. Last change: 2020 May 13
VIM REFERENCE MANUAL by Bram Moolenaar
@ -25,8 +25,9 @@ targets personal computing.
9. The meta key modifier |haiku-meta|
10. Mouse key mappings |haiku-mouse|
11. Color names |haiku-colors|
12. Credits |haiku-support-credits|
13. Bugs & to-do |haiku-bugs|
12. GUI Toolbar Images |haiku-toolbar-images|
13. Credits |haiku-support-credits|
14. Bugs & to-do |haiku-bugs|
1. General *haiku-general*
@ -47,11 +48,10 @@ features you can enable/disable.
Haiku uses "ncurses6" as its terminal library, therefore you need to have
"ncurses6_devel" package installed from HaikuDepot in order to configure
the Haiku build. Just append "--with-tlib=ncurses6" to ./configure command
below for the initial build.
Now you should use "make" to compile Vim, then "make install" to install it.
For seamless integration into Haiku, the GUI-less vim binary should be
additionally installed over the GUI version. Typical build commands are: >
additionally installed over the GUI version. Typical build commands are:
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
@ -76,20 +76,20 @@ scheme is fooled if you use the command "vim - </dev/null".
Stuff that does not work yet:
- Mouse up events are not generated when outside the window. This may be a bug in
Haiku. You can notice this when selecting text and moving the cursor outside
the window, then letting go of the mouse button. Another way is when you
drag the scrollbar and do the same thing. Because Vim still thinks you are
still playing with the scrollbar it won't change it itself. I provided a
workaround which kicks in when the window is activated or deactivated (so it
works best with focus- follows-mouse turned on).
- Mouse up events are not generated when outside the window. You can notice
this when selecting text and moving the cursor outside the window, then
letting go of the mouse button. Another way is when you drag the scrollbar
and do the same thing. Because Vim still thinks you are still playing with
the scrollbar it won't change it itself. There is a workaround which kicks
in when the window is activated or deactivated (so it works best with focus-
follows-mouse turned on).
- The cursor does not flash.
4. The $VIM directory *haiku-vimdir*
$VIM is the symbolic name for the place where Vims support files are stored.
The default value for $VIM is set at compile time and can be determined with >
$VIM is the symbolic name for the place where Vim's support files are stored.
The default value for $VIM is set at compile time and can be determined with:
:version
@ -117,7 +117,7 @@ The normal value is /boot/home/config/settings.
You can drop files and directories on either the Vim icon (starts a new Vim
session, unless you use the File Types application to set Vim to be "Single
Launch") or on the Vim window (starts editing the files). Dropping a folder
sets Vim's current working directory. |:cd| |:pwd| If you drop files or
sets Vim's current working directory |:cd| |:pwd|. If you drop files or
folders with either SHIFT key pressed, Vim changes directory to the folder
that contains the first item dropped. When starting Vim, there is no need to
press shift: Vim behaves as if you do.
@ -164,7 +164,7 @@ isn't a dotted-y, then for this font the encoding does not work.
If the font you specify is unavailable, you get the system fixed font.
GUI Font Selection Dialog is available at giving the >
GUI Font Selection Dialog is available at giving the:
:set guifont=*
@ -221,7 +221,7 @@ All the changes and patches released under vim-license.
Thank you, all!
13. Bugs & to-do *haiku-bugs*
14. Bugs & to-do *haiku-bugs*
The port is under development now and far away from the perfect state. For bug
reports, patches and wishes, please use the Vim mailing list or Vim Github

View File

@ -1,39 +1,15 @@
*os_mint.txt* For Vim version 8.2. Last change: 2005 Mar 29
*os_mint.txt* For Vim version 8.2. Last change: 2020 Jul 14
VIM REFERENCE MANUAL by Jens M. Felderhoff
*MiNT* *Atari*
This file contains the particularities for the Atari MiNT version of Vim.
The Atari MiNT support was removed with patch 8.2.1215. It probably didn't
work at that time, since the code was old and not maintained.
For compiling Vim on the Atari running MiNT see "INSTALL" and "Makefile"
in the src directory.
Vim for MiNT behaves almost exactly like the Unix version.
The Unix behavior described in the documentation also refers to the
MiNT version of Vim unless explicitly stated otherwise.
Originally added by: Jens M. Felderhoff, e-mail: <jmf@infko.uni-koblenz.de>
For wildcard expansion of <~> (home directory) you need a shell that
expands the tilde. The vanilla Bourne shell doesn't recognize it.
With csh and ksh it should work OK.
The MiNT version of vim needs the termcap file /etc/termcap with the
terminal capabilities of your terminal. Builtin termcaps are
supported for the vt52 terminal. Termcap entries for the TOSWIN window
manager and the virtual console terminals have been appended to the
termcap file that comes with the Vim distribution.
If you should encounter problems with swapped <BS> and <Del> keys, see
|:fixdel|.
Because terminal updating under MiNT is often slow (e.g. serial line
terminal), the 'showcmd' and 'ruler' options are default off.
If you have a fast terminal, try setting them on. You might
also want to set 'ttyfast'.
Send bug reports to
Jens M. Felderhoff, e-mail: <jmf@infko.uni-koblenz.de>
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -30,8 +30,8 @@ can be changed at compile time.
Because terminal updating under Unix is often slow (e.g. serial line
terminal, shell window in suntools), the 'showcmd' and 'ruler' options
are default off. If you have a fast terminal, try setting them on. You might
also want to set 'ttyfast'.
are off by default. If you have a fast terminal, try setting them on. You
might also want to set 'ttyfast'.
When using Vim in an xterm the mouse clicks can be used by Vim by setting
'mouse' to "a". If there is access to an X-server gui style copy/paste will

View File

@ -1,4 +1,4 @@
*os_vms.txt* For Vim version 8.2. Last change: 2019 Jan 29
*os_vms.txt* For Vim version 8.2. Last change: 2020 Jun 07
VIM REFERENCE MANUAL
@ -432,7 +432,6 @@ Terminal entry not found in termcap
builtin_gui
builtin_riscos
builtin_amiga
builtin_beos-ansi
builtin_ansi
builtin_vt320
builtin_vt52

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 8.2. Last change: 2019 Dec 07
*pattern.txt* For Vim version 8.2. Last change: 2020 Jul 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1279,7 +1279,7 @@ not match in "càt" (where the a has the composing character 0x0300), but
0xe1, it does not have a compositing character). It does match "cat" (where
the a is just an a).
When a composing character appears at the start of the pattern of after an
When a composing character appears at the start of the pattern or after an
item that doesn't include the composing character, a match is found at any
character that includes this composing character.

View File

@ -1,4 +1,4 @@
*popup.txt* For Vim version 8.2. Last change: 2020 Mar 21
*popup.txt* For Vim version 8.2. Last change: 2020 May 18
VIM REFERENCE MANUAL by Bram Moolenaar
@ -150,6 +150,7 @@ different: *E863*
- When the job ends, the popup window closes.
- The popup window can be closed with `popup_close()`, the terminal buffer
then becomes hidden.
- It is not possible to open a second popup window with a terminal. *E861*
- The default Pmenu color is only used for the border and padding. To change
the color of the terminal itself set the Terminal highlight group before
creating the terminal. Setting 'wincolor' later can work but requires the
@ -197,6 +198,7 @@ Other:
|popup_getoptions()| get current options for a popup
|popup_getpos()| get actual position and size of a popup
|popup_locate()| find popup window at a screen position
|popup_list()| get list of all popups
DETAILS *popup-function-details*
@ -235,8 +237,15 @@ popup_beval({what}, {options}) *popup_beval()*
GetText()->popup_beval({})
<
*popup_clear()*
popup_clear() Emergency solution to a misbehaving plugin: close all popup
popup_clear([{force}])
Emergency solution to a misbehaving plugin: close all popup
windows for the current tab and global popups.
Close callbacks are not invoked.
When {force} is not present this will fail if the current
window is a popup.
When {force} is present and |TRUE| the popup is also closed
when it is the current window. If a terminal is running in a
popup it is killed.
popup_close({id} [, {result}]) *popup_close()*
@ -415,6 +424,10 @@ popup_hide({id}) *popup_hide()*
Can also be used as a |method|: >
GetPopup()->popup_hide()
popup_list() *popup_list()*
Return a List with the |window-ID| of all existing popups.
popup_locate({row}, {col}) *popup_locate()*
Return the |window-ID| of the popup at screen position {row}
and {col}. If there are multiple popups the one with the
@ -535,6 +548,8 @@ popup_setoptions({id}, {options}) *popup_setoptions()*
wrap
zindex
The options from |popup_move()| can also be used.
Generally, setting an option to zero or an empty string resets
it to the default value, but there are exceptions.
For "hidden" use |popup_hide()| and |popup_show()|.
"tabpage" cannot be changed.
@ -579,15 +594,15 @@ The second argument of |popup_create()| is a dictionary with options:
line Screen line where to position the popup. Can use a
number or "cursor", "cursor+1" or "cursor-1" to use
the line of the cursor and add or subtract a number of
lines. If omitted the popup is vertically centered.
The first line is 1.
lines. If omitted or zero the popup is vertically
centered. The first line is 1.
When using "textprop" the number is relative to the
text property and can be negative.
col Screen column where to position the popup. Can use a
number or "cursor" to use the column of the cursor,
"cursor+9" or "cursor-9" to add or subtract a number
of columns. If omitted the popup is horizontally
centered. The first column is 1.
of columns. If omitted or zero the popup is
horizontally centered. The first column is 1.
When using "textprop" the number is relative to the
text property and can be negative.
pos "topleft", "topright", "botleft" or "botright":

View File

@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 8.2. Last change: 2020 Jan 06
*quickfix.txt* For Vim version 8.2. Last change: 2020 May 31
VIM REFERENCE MANUAL by Bram Moolenaar
@ -15,6 +15,7 @@ This subject is introduced in section |30.1| of the user manual.
7. The error format |error-file-format|
8. The directory stack |quickfix-directory-stack|
9. Specific error file formats |errorformats|
10. Customizing the quickfix window |quickfix-window-function|
The quickfix commands are not available when the |+quickfix| feature was
disabled at compile time.
@ -1374,7 +1375,11 @@ Basic items
%v virtual column number (finds a number representing
screen column of the error (1 <tab> == 8 screen
columns))
%t error type (finds a single character)
%t error type (finds a single character):
e - error message
w - warning message
i - info message
n - note message
%n error number (finds a number)
%m error message (finds a string)
%r matches the "rest" of a single-line file message %O/P/Q
@ -1445,6 +1450,7 @@ prefixes are:
%E start of a multi-line error message
%W start of a multi-line warning message
%I start of a multi-line informational message
%N start of a multi-line note message
%A start of a multi-line message (unspecified type)
%> for next line start with current pattern again |efm-%>|
%C continuation of a multi-line message
@ -1921,6 +1927,70 @@ error messages into a format that quickfix mode will understand. See the
start of the file about how to use it. (This script is deprecated, see
|compiler-perl|.)
=============================================================================
10. Customizing the quickfix window *quickfix-window-function*
The default format for the lines displayed in the quickfix window and location
list window is:
<filename>|<lnum> col <col>|<text>
The values displayed in each line correspond to the "bufnr", "lnum", "col" and
"text" fields returned by the |getqflist()| function.
For some quickfix/location lists, the displayed text need to be customized.
For example, if only the filename is present for a quickfix entry, then the
two "|" field separator characters after the filename are not needed. Another
use case is to customize the path displayed for a filename. By default, the
complete path (which may be too long) is displayed for files which are not
under the current directory tree. The file path may need to be simplified to a
common parent directory.
The displayed text can be customized by setting the 'quickfixtextfunc' option
to a Vim function. This function will be called with a dict argument and
should return a List of strings to be displayed in the quickfix or location
list window. The dict argument will have the following fields:
quickfix set to 1 when called for a quickfix list and 0 when called for
a location list.
winid for a location list, set to the id of the window with the
location list. For a quickfix list, set to 0. Can be used in
getloclist() to get the location list entry.
id quickfix or location list identifier
start_idx index of the first entry for which text should be returned
end_idx index of the last entry for which text should be returned
The function should return a single line of text to display in the quickfix
window for each entry from start_idx to end_idx. The function can obtain
information about the entries using the |getqflist()| function and specifying
the quickfix list identifier "id". For a location list, getloclist() function
can be used with the 'winid' argument. If an empty list is returned, then the
default format is used to display all the entries. If an item in the returned
list is an empty string, then the default format is used to display the
corresponding entry.
If a quickfix or location list specific customization is needed, then the
'quickfixtextfunc' attribute of the list can be set using the |setqflist()| or
|setloclist()| function. This overrides the global 'quickfixtextfunc' option.
The example below displays the list of old files (|v:oldfiles|) in a quickfix
window. As there is no line, column number and error text information
associated with each entry, the 'quickfixtextfunc' function returns only the
filename.
Example: >
" create a quickfix list from v:oldfiles
call setqflist([], ' ', {'lines' : v:oldfiles, 'efm' : '%f',
\ 'quickfixtextfunc' : 'QfOldFiles'})
func QfOldFiles(info)
" get information about a range of quickfix entries
let items = getqflist({'id' : a:info.id, 'items' : 1}).items
let l = []
for idx in range(a:info.start_idx - 1, a:info.end_idx - 1)
" use the simplified file name
call add(l, fnamemodify(bufname(items[idx].bufnr), ':p:.'))
endfor
return l
endfunc
<
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.2. Last change: 2020 Jan 17
*quickref.txt* For Vim version 8.2. Last change: 2020 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -851,6 +851,7 @@ Short explanation of each option: *option-list*
'pythonthreedll' name of the Python 3 dynamic library
'pythonthreehome' name of the Python 3 home directory
'pyxversion' 'pyx' Python version used for pyx* commands
'quickfixtextfunc' 'qftf' function for the text in the quickfix window
'quoteescape' 'qe' escape characters used in a string
'readonly' 'ro' disallow writing the buffer
'redrawtime' 'rdt' timeout for 'hlsearch' and |:match| highlighting
@ -909,6 +910,7 @@ Short explanation of each option: *option-list*
'spellcapcheck' 'spc' pattern to locate end of a sentence
'spellfile' 'spf' files where |zg| and |zw| store words
'spelllang' 'spl' language(s) to do spell checking for
'spelloptions' 'spo' options for spell checking
'spellsuggest' 'sps' method(s) used to suggest spelling corrections
'splitbelow' 'sb' new window from split is below the current one
'splitright' 'spr' new window is put right of the current one

View File

@ -1,4 +1,4 @@
*recover.txt* For Vim version 8.2. Last change: 2020 Mar 24
*recover.txt* For Vim version 8.2. Last change: 2020 May 09
VIM REFERENCE MANUAL by Bram Moolenaar
@ -125,12 +125,12 @@ If you want to make sure that your changes are in the swap file use this
command:
*:pre* *:preserve* *E313* *E314*
:pre[serve] Write all text for all buffers into swap files. The
original file is no longer needed for recovery.
This sets a flag in the current buffer. When the '&'
flag is present in 'cpoptions' the swap file will not
be deleted for this buffer when Vim exits and the
buffer is still loaded |cpo-&|.
:pre[serve] Write all text for the current buffer into its swap
file. The original file is no longer needed for
recovery. This sets a flag in the current buffer.
When the '&' flag is present in 'cpoptions' the swap
file will not be deleted for this buffer when Vim
exits and the buffer is still loaded |cpo-&|.
A Vim swap file can be recognized by the first six characters: "b0VIM ".
After that comes the version number, e.g., "3.0".

View File

@ -1,4 +1,4 @@
*repeat.txt* For Vim version 8.2. Last change: 2019 Dec 07
*repeat.txt* For Vim version 8.2. Last change: 2020 May 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -126,6 +126,11 @@ q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"}
recorded macro and the yank will overwrite the
recorded macro.
Note: The recording happens while you type, replaying
the register happens as if the keys come from a
mapping. This matters, for example, for undo, which
only syncs when commands were typed.
q Stops recording. (Implementation note: The 'q' that
stops recording is not stored in the register, unless
it was the result of a mapping)
@ -137,7 +142,7 @@ q Stops recording. (Implementation note: The 'q' that
used.
The register is executed like a mapping, that means
that the difference between 'wildchar' and 'wildcharm'
applies.
applies, and undo might not be synced in the same way.
For "@=" you are prompted to enter an expression. The
result of the expression is then executed.
See also |@:|.
@ -158,6 +163,11 @@ q Stops recording. (Implementation note: The 'q' that
result of evaluating the expression is executed as an
Ex command.
Mappings are not recognized in these commands.
When the |line-continuation| character (\) is present
at the beginning of a line in a linewise register,
then it is combined with the previous line. This is
useful for yanking and executing parts of a Vim
script.
Future: Will execute the register for each line in the
address range.
@ -166,7 +176,7 @@ q Stops recording. (Implementation note: The 'q' that
[addr] (default is current line).
:[addr]@ *:@@*
:[addr]@@ Repeat the previous :@{0-9a-z"}. First set cursor at
:[addr]@@ Repeat the previous :@{register}. First set cursor at
line [addr] (default is current line).
==============================================================================
@ -632,7 +642,7 @@ disallowed though.
This assumes you write one or more plugins that you distribute as a package.
If you have two unrelated plugins you would use two packages, so that Vim
users can chose what they include or not. Or you can decide to use one
users can choose what they include or not. Or you can decide to use one
package with optional plugins, and tell the user to add the ones he wants with
`:packadd`.

View File

@ -69,7 +69,7 @@ o Invocations
+ 'rightleft' ('rl') sets window orientation to right-to-left.
+ 'delcombine' ('deco'), boolean, if editing UTF-8 encoded languages,
allows one to remove a composing character which gets superimposed
on those that proceeded them (some languages require this).
on those that preceded them (some languages require this).
+ 'rightleftcmd' ('rlc') sets the command-line within certain modes
(such as search) to be utilized in right-to-left orientation as well.

View File

@ -78,7 +78,7 @@ used by popup windows where 'cursorline' is set.
*sign-priority*
Each placed sign is assigned a priority value. When multiple signs are placed
on the same line, the attributes of the sign with the highest priority is used
independent of the sign group. The default priority for a sign is 10. The
independently of the sign group. The default priority for a sign is 10. The
priority is assigned at the time of placing a sign.
When the line on which the sign is placed is deleted, the sign is moved to the

View File

@ -1,4 +1,4 @@
*spell.txt* For Vim version 8.2. Last change: 2019 Aug 16
*spell.txt* For Vim version 8.2. Last change: 2020 Jul 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -215,6 +215,9 @@ When there is a line break right after a sentence the highlighting of the next
line may be postponed. Use |CTRL-L| when needed. Also see |set-spc-auto| for
how it can be set automatically when 'spelllang' is set.
The 'spelloptions' option has a few more flags that influence the way spell
checking works.
Vim counts the number of times a good word is encountered. This is used to
sort the suggestions: words that have been seen before get a small bonus,
words that have been seen often get a bigger bonus. The COMMON item in the
@ -650,11 +653,12 @@ ask you where to write the file (there must be a writable directory in
'runtimepath' for this).
The plugin has a default place where to look for spell files, on the Vim ftp
server. If you want to use another location or another protocol, set the
g:spellfile_URL variable to the directory that holds the spell files. The
|netrw| plugin is used for getting the file, look there for the specific
syntax of the URL. Example: >
let g:spellfile_URL = 'http://ftp.vim.org/vim/runtime/spell'
server. The protocol used is SSL (https://) for security. If you want to use
another location or another protocol, set the g:spellfile_URL variable to the
directory that holds the spell files. You can use http:// or ftp://, but you
are taking a security risk then. The |netrw| plugin is used for getting the
file, look there for the specific syntax of the URL. Example: >
let g:spellfile_URL = 'https://ftp.nluug.nl/vim/runtime/spell'
You may need to escape special characters.
The plugin will only ask about downloading a language once. If you want to

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.2. Last change: 2020 Feb 29
*syntax.txt* For Vim version 8.2. Last change: 2020 Jul 08
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1214,11 +1214,13 @@ DESKTOP *desktop.vim* *ft-desktop-syntax*
Primary goal of this syntax file is to highlight .desktop and .directory files
according to freedesktop.org standard:
http://standards.freedesktop.org/desktop-entry-spec/latest/
But actually almost none implements this standard fully. Thus it will
highlight all Unix ini files. But you can force strict highlighting according
to standard by placing this in your vimrc file: >
:let enforce_freedesktop_standard = 1
https://specifications.freedesktop.org/desktop-entry-spec/latest/
To highlight nonstandard extensions that does not begin with X-, set >
let g:desktop_enable_nonstd = 1
Note that this may cause wrong highlight.
To highlight KDE-reserved features, set >
let g:desktop_enable_kde = 1
g:desktop_enable_kde follows g:desktop_enable_nonstd if not supplied
DIFF *diff.vim*
@ -1401,7 +1403,7 @@ to your startup file.
EUPHORIA *euphoria3.vim* *euphoria4.vim* *ft-euphoria-syntax*
Two syntax highlighting files exists for Euphoria. One for Euphoria
Two syntax highlighting files exist for Euphoria. One for Euphoria
version 3.1.1, which is the default syntax highlighting file, and one for
Euphoria version 4.0.5 or later.
@ -1935,7 +1937,7 @@ new highlightings for the following groups.:
Debug, DebugSpecial, DebugString, DebugBoolean, DebugType
which are used for the statement itself, special characters used in debug
strings, strings, boolean constants and types (this, super) respectively. I
have opted to chose another background for those statements.
have opted to choose another background for those statements.
Javadoc is a program that takes special comments out of Java program files and
creates HTML pages. The standard configuration will highlight this HTML code
@ -3636,6 +3638,26 @@ DEFINING CASE *:syn-case* *E390*
:sy[ntax] case
Show either "syntax case match" or "syntax case ignore" (translated).
DEFINING FOLDLEVEL *:syn-foldlevel*
:sy[ntax] foldlevel [start | minimum]
This defines how the foldlevel of a line is computed when using
foldmethod=syntax (see |fold-syntax| and |:syn-fold|):
start: Use level of item containing start of line.
minimum: Use lowest local-minimum level of items on line.
The default is 'start'. Use 'minimum' to search a line horizontally
for the lowest level contained on the line that is followed by a
higher level. This produces more natural folds when syntax items
may close and open horizontally within a line.
:sy[ntax] foldlevel
Show either "syntax foldlevel start" or "syntax foldlevel minimum".
{not meaningful when Vim was compiled without |+folding| feature}
SPELL CHECKING *:syn-spell*
:sy[ntax] spell [toplevel | notoplevel | default]
@ -4099,6 +4121,8 @@ This will make each {} block form one fold.
The fold will start on the line where the item starts, and end where the item
ends. If the start and end are within the same line, there is no fold.
The 'foldnestmax' option limits the nesting of syntax folds.
See |:syn-foldlevel| to control how the foldlevel of a line is computed
from its syntax items.
{not available when Vim was compiled without |+folding| feature}
@ -4857,7 +4881,12 @@ term={attr-list} *attr-list* *highlight-term* *E418*
have the same effect.
"undercurl" is a curly underline. When "undercurl" is not possible
then "underline" is used. In general "undercurl" and "strikethrough"
is only available in the GUI. The color is set with |highlight-guisp|.
are only available in the GUI and some terminals. The color is set
with |highlight-guisp| or |highlight-ctermul|. You can try these
termcap entries to make undercurl work in a terminal: >
let &t_Cs = "\e[4:3m"
let &t_Ce = "\e[4:0m"
start={term-list} *highlight-start* *E422*
stop={term-list} *term-list* *highlight-stop*
@ -4901,6 +4930,10 @@ cterm={attr-list} *highlight-cterm*
ctermfg={color-nr} *highlight-ctermfg* *E421*
ctermbg={color-nr} *highlight-ctermbg*
ctermul={color-nr} *highlight-ctermul*
These give the foreground (ctermfg), background (ctermbg) and
underline (ctermul) color to use in the terminal.
The {color-nr} argument is a color number. Its range is zero to
(not including) the number given by the termcap entry "Co".
The actual color with this number depends on the type of terminal
@ -4978,14 +5011,14 @@ ctermbg={color-nr} *highlight-ctermbg*
needs to reset the color when exiting. This is done with the "op"
termcap entry |t_op|. If this doesn't work correctly, try setting the
't_op' option in your .vimrc.
*E419* *E420*
When Vim knows the normal foreground and background colors, "fg" and
"bg" can be used as color names. This only works after setting the
colors for the Normal group and for the MS-Windows console. Example,
for reverse video: >
*E419* *E420* *E453*
When Vim knows the normal foreground, background and underline colors,
"fg", "bg" and "ul" can be used as color names. This only works after
setting the colors for the Normal group and for the MS-Windows
console. Example, for reverse video: >
:highlight Visual ctermfg=bg ctermbg=fg
< Note that the colors are used that are valid at the moment this
command are given. If the Normal group colors are changed later, the
command is given. If the Normal group colors are changed later, the
"fg" and "bg" colors will not be adjusted.

View File

@ -810,6 +810,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'pyx' options.txt /*'pyx'*
'pyxversion' options.txt /*'pyxversion'*
'qe' options.txt /*'qe'*
'qftf' options.txt /*'qftf'*
'quickfixtextfunc' options.txt /*'quickfixtextfunc'*
'quote motion.txt /*'quote*
'quoteescape' options.txt /*'quoteescape'*
'rdt' options.txt /*'rdt'*
@ -913,11 +915,13 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'spellcapcheck' options.txt /*'spellcapcheck'*
'spellfile' options.txt /*'spellfile'*
'spelllang' options.txt /*'spelllang'*
'spelloptions' options.txt /*'spelloptions'*
'spellsuggest' options.txt /*'spellsuggest'*
'spf' options.txt /*'spf'*
'spl' options.txt /*'spl'*
'splitbelow' options.txt /*'splitbelow'*
'splitright' options.txt /*'splitright'*
'spo' options.txt /*'spo'*
'spr' options.txt /*'spr'*
'sps' options.txt /*'sps'*
'sr' options.txt /*'sr'*
@ -956,10 +960,12 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
't_&8' term.txt /*'t_&8'*
't_8b' term.txt /*'t_8b'*
't_8f' term.txt /*'t_8f'*
't_8u' term.txt /*'t_8u'*
't_@7' term.txt /*'t_@7'*
't_AB' term.txt /*'t_AB'*
't_AF' term.txt /*'t_AF'*
't_AL' term.txt /*'t_AL'*
't_AU' term.txt /*'t_AU'*
't_BD' term.txt /*'t_BD'*
't_BE' term.txt /*'t_BE'*
't_CS' term.txt /*'t_CS'*
@ -1315,6 +1321,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+iconv various.txt /*+iconv*
+iconv/dyn various.txt /*+iconv\/dyn*
+insert_expand various.txt /*+insert_expand*
+ipv6 various.txt /*+ipv6*
+job various.txt /*+job*
+jumplist various.txt /*+jumplist*
+keymap various.txt /*+keymap*
@ -1921,6 +1928,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
45.3 usr_45.txt /*45.3*
45.4 usr_45.txt /*45.4*
45.5 usr_45.txt /*45.5*
46.1 usr_46.txt /*46.1*
46.2 usr_46.txt /*46.2*
46.3 usr_46.txt /*46.3*
46.? usr_46.txt /*46.?*
8g8 various.txt /*8g8*
90.1 usr_90.txt /*90.1*
90.2 usr_90.txt /*90.2*
@ -1968,6 +1979,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:<sfile> cmdline.txt /*:<sfile>*
:<sflnum> cmdline.txt /*:<sflnum>*
:<slnum> cmdline.txt /*:<slnum>*
:<stack> cmdline.txt /*:<stack>*
:= various.txt /*:=*
:> change.txt /*:>*
:? cmdline.txt /*:?*
@ -2271,6 +2283,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:command-completion-custom map.txt /*:command-completion-custom*
:command-completion-customlist map.txt /*:command-completion-customlist*
:command-count map.txt /*:command-count*
:command-modifiers map.txt /*:command-modifiers*
:command-nargs map.txt /*:command-nargs*
:command-range map.txt /*:command-range*
:command-register map.txt /*:command-register*
@ -2315,6 +2328,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:debugg repeat.txt /*:debugg*
:debuggreedy repeat.txt /*:debuggreedy*
:def vim9.txt /*:def*
:defc vim9.txt /*:defc*
:defcompile vim9.txt /*:defcompile*
:del change.txt /*:del*
:delc map.txt /*:delc*
:delcommand map.txt /*:delcommand*
@ -2583,6 +2598,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:lbuffer quickfix.txt /*:lbuffer*
:lc editing.txt /*:lc*
:lcd editing.txt /*:lcd*
:lcd- editing.txt /*:lcd-*
:lch editing.txt /*:lch*
:lchdir editing.txt /*:lchdir*
:lcl quickfix.txt /*:lcl*
@ -2890,6 +2906,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:put change.txt /*:put*
:pw editing.txt /*:pw*
:pwd editing.txt /*:pwd*
:pwd-verbose editing.txt /*:pwd-verbose*
:py if_pyth.txt /*:py*
:py3 if_pyth.txt /*:py3*
:py3do if_pyth.txt /*:py3do*
@ -3193,6 +3210,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:syn-file-remarks syntax.txt /*:syn-file-remarks*
:syn-files syntax.txt /*:syn-files*
:syn-fold syntax.txt /*:syn-fold*
:syn-foldlevel syntax.txt /*:syn-foldlevel*
:syn-include syntax.txt /*:syn-include*
:syn-iskeyword syntax.txt /*:syn-iskeyword*
:syn-keepend syntax.txt /*:syn-keepend*
@ -3273,6 +3291,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:tags tagsrch.txt /*:tags*
:tc if_tcl.txt /*:tc*
:tcd editing.txt /*:tcd*
:tcd- editing.txt /*:tcd-*
:tch editing.txt /*:tch*
:tchdir editing.txt /*:tchdir*
:tcl if_tcl.txt /*:tcl*
@ -3629,6 +3648,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
<sfile> cmdline.txt /*<sfile>*
<sflnum> cmdline.txt /*<sflnum>*
<slnum> cmdline.txt /*<slnum>*
<stack> cmdline.txt /*<stack>*
<xCSI> intro.txt /*<xCSI>*
<xDown> term.txt /*<xDown>*
<xEnd> term.txt /*<xEnd>*
@ -3874,10 +3894,14 @@ E101 diff.txt /*E101*
E102 diff.txt /*E102*
E103 diff.txt /*E103*
E104 digraph.txt /*E104*
E1042 vim9.txt /*E1042*
E105 mbyte.txt /*E105*
E1050 vim9.txt /*E1050*
E107 eval.txt /*E107*
E108 eval.txt /*E108*
E109 eval.txt /*E109*
E1092 vim9.txt /*E1092*
E1094 vim9.txt /*E1094*
E11 cmdline.txt /*E11*
E110 eval.txt /*E110*
E111 eval.txt /*E111*
@ -4244,12 +4268,15 @@ E447 editing.txt /*E447*
E448 various.txt /*E448*
E449 eval.txt /*E449*
E45 message.txt /*E45*
E452 eval.txt /*E452*
E453 syntax.txt /*E453*
E455 print.txt /*E455*
E456 print.txt /*E456*
E457 print.txt /*E457*
E458 message.txt /*E458*
E459 message.txt /*E459*
E46 message.txt /*E46*
E460 eval.txt /*E460*
E461 eval.txt /*E461*
E462 editing.txt /*E462*
E463 netbeans.txt /*E463*
@ -4361,6 +4388,7 @@ E561 if_cscop.txt /*E561*
E562 if_cscop.txt /*E562*
E563 if_cscop.txt /*E563*
E564 if_cscop.txt /*E564*
E565 insert.txt /*E565*
E566 if_cscop.txt /*E566*
E567 if_cscop.txt /*E567*
E568 if_cscop.txt /*E568*
@ -4372,6 +4400,7 @@ E574 starting.txt /*E574*
E575 starting.txt /*E575*
E576 starting.txt /*E576*
E577 starting.txt /*E577*
E578 insert.txt /*E578*
E579 eval.txt /*E579*
E580 eval.txt /*E580*
E581 eval.txt /*E581*
@ -4673,6 +4702,8 @@ E855 autocmd.txt /*E855*
E858 eval.txt /*E858*
E859 eval.txt /*E859*
E86 windows.txt /*E86*
E860 textprop.txt /*E860*
E861 popup.txt /*E861*
E862 eval.txt /*E862*
E863 popup.txt /*E863*
E864 pattern.txt /*E864*
@ -4714,6 +4745,7 @@ E897 eval.txt /*E897*
E898 channel.txt /*E898*
E899 eval.txt /*E899*
E90 message.txt /*E90*
E900 eval.txt /*E900*
E901 channel.txt /*E901*
E902 channel.txt /*E902*
E903 channel.txt /*E903*
@ -4820,6 +4852,7 @@ E994 eval.txt /*E994*
E995 eval.txt /*E995*
E996 eval.txt /*E996*
E997 popup.txt /*E997*
E998 eval.txt /*E998*
E999 repeat.txt /*E999*
EX intro.txt /*EX*
EXINIT starting.txt /*EXINIT*
@ -5040,6 +5073,7 @@ SessionLoad-variable starting.txt /*SessionLoad-variable*
SessionLoadPost autocmd.txt /*SessionLoadPost*
ShellCmdPost autocmd.txt /*ShellCmdPost*
ShellFilterPost autocmd.txt /*ShellFilterPost*
SigUSR1 autocmd.txt /*SigUSR1*
SourceCmd autocmd.txt /*SourceCmd*
SourcePost autocmd.txt /*SourcePost*
SourcePre autocmd.txt /*SourcePre*
@ -5431,20 +5465,7 @@ bars help.txt /*bars*
base_font_name_list mbyte.txt /*base_font_name_list*
basic.vim syntax.txt /*basic.vim*
beep options.txt /*beep*
beos-colors os_beos.txt /*beos-colors*
beos-compiling os_beos.txt /*beos-compiling*
beos-dragndrop os_beos.txt /*beos-dragndrop*
beos-fonts os_beos.txt /*beos-fonts*
beos-general os_beos.txt /*beos-general*
beos-gui os_beos.txt /*beos-gui*
beos-launch os_beos.txt /*beos-launch*
beos-meta os_beos.txt /*beos-meta*
beos-mouse os_beos.txt /*beos-mouse*
beos-perl os_beos.txt /*beos-perl*
beos-timeout os_beos.txt /*beos-timeout*
beos-unicode os_beos.txt /*beos-unicode*
beos-utf8 os_beos.txt /*beos-utf8*
beos-vimdir os_beos.txt /*beos-vimdir*
beos os_beos.txt /*beos*
better-python-interface version7.txt /*better-python-interface*
beval_bufnr-variable eval.txt /*beval_bufnr-variable*
beval_col-variable eval.txt /*beval_col-variable*
@ -5783,6 +5804,7 @@ coding-style develop.txt /*coding-style*
col() eval.txt /*col()*
coldfusion.vim syntax.txt /*coldfusion.vim*
collapse tips.txt /*collapse*
collate-variable eval.txt /*collate-variable*
color-xterm syntax.txt /*color-xterm*
coloring syntax.txt /*coloring*
colortest.vim syntax.txt /*colortest.vim*
@ -6122,6 +6144,7 @@ edit-files editing.txt /*edit-files*
edit-intro editing.txt /*edit-intro*
edit-no-break usr_25.txt /*edit-no-break*
edit-paragraph-join usr_25.txt /*edit-paragraph-join*
edit-window windows.txt /*edit-window*
editing.txt editing.txt /*editing.txt*
efm-%> quickfix.txt /*efm-%>*
efm-entries quickfix.txt /*efm-entries*
@ -6322,6 +6345,7 @@ filetype.txt filetype.txt /*filetype.txt*
filetypedetect-changed version6.txt /*filetypedetect-changed*
filetypes filetype.txt /*filetypes*
filewritable() eval.txt /*filewritable()*
filler-lines windows.txt /*filler-lines*
filter change.txt /*filter*
filter() eval.txt /*filter()*
find-manpage usr_12.txt /*find-manpage*
@ -6344,6 +6368,7 @@ fixed-7.1 version7.txt /*fixed-7.1*
fixed-7.2 version7.txt /*fixed-7.2*
fixed-7.3 version7.txt /*fixed-7.3*
fixed-7.4 version7.txt /*fixed-7.4*
flatten() eval.txt /*flatten()*
flexwiki.vim syntax.txt /*flexwiki.vim*
float-e eval.txt /*float-e*
float-functions usr_41.txt /*float-functions*
@ -6900,6 +6925,7 @@ getjumplist() eval.txt /*getjumplist()*
getlatestvimscripts-install pi_getscript.txt /*getlatestvimscripts-install*
getline() eval.txt /*getline()*
getloclist() eval.txt /*getloclist()*
getmarklist() eval.txt /*getmarklist()*
getmatches() eval.txt /*getmatches()*
getmousepos() eval.txt /*getmousepos()*
getpid() eval.txt /*getpid()*
@ -6907,6 +6933,7 @@ getpos() eval.txt /*getpos()*
getqflist() eval.txt /*getqflist()*
getqflist-examples quickfix.txt /*getqflist-examples*
getreg() eval.txt /*getreg()*
getreginfo() eval.txt /*getreginfo()*
getregtype() eval.txt /*getregtype()*
getscript pi_getscript.txt /*getscript*
getscript-autoinstall pi_getscript.txt /*getscript-autoinstall*
@ -6977,6 +7004,7 @@ gstar pattern.txt /*gstar*
gt tabpage.txt /*gt*
gtk-css gui_x11.txt /*gtk-css*
gtk-tooltip-colors gui_x11.txt /*gtk-tooltip-colors*
gtk3-slow gui_x11.txt /*gtk3-slow*
gu change.txt /*gu*
gugu change.txt /*gugu*
gui gui.txt /*gui*
@ -7105,6 +7133,7 @@ highlight-changed version4.txt /*highlight-changed*
highlight-cterm syntax.txt /*highlight-cterm*
highlight-ctermbg syntax.txt /*highlight-ctermbg*
highlight-ctermfg syntax.txt /*highlight-ctermfg*
highlight-ctermul syntax.txt /*highlight-ctermul*
highlight-default syntax.txt /*highlight-default*
highlight-font syntax.txt /*highlight-font*
highlight-groups syntax.txt /*highlight-groups*
@ -7694,6 +7723,7 @@ mapmode-v map.txt /*mapmode-v*
mapmode-x map.txt /*mapmode-x*
mapping map.txt /*mapping*
mapping-functions usr_41.txt /*mapping-functions*
mapset() eval.txt /*mapset()*
mark motion.txt /*mark*
mark-functions usr_41.txt /*mark-functions*
mark-motions motion.txt /*mark-motions*
@ -8171,6 +8201,7 @@ no_plugin_maps filetype.txt /*no_plugin_maps*
nocombine syntax.txt /*nocombine*
non-greedy pattern.txt /*non-greedy*
non-zero-arg eval.txt /*non-zero-arg*
none-function_argument eval.txt /*none-function_argument*
none-variable eval.txt /*none-variable*
normal-index index.txt /*normal-index*
not-compatible usr_01.txt /*not-compatible*
@ -8377,6 +8408,7 @@ popup_findpreview() popup.txt /*popup_findpreview()*
popup_getoptions() popup.txt /*popup_getoptions()*
popup_getpos() popup.txt /*popup_getpos()*
popup_hide() popup.txt /*popup_hide()*
popup_list() popup.txt /*popup_list()*
popup_locate() popup.txt /*popup_locate()*
popup_menu() popup.txt /*popup_menu()*
popup_menu-shortcut-example popup.txt /*popup_menu-shortcut-example*
@ -8537,6 +8569,7 @@ quickfix-title quickfix.txt /*quickfix-title*
quickfix-valid quickfix.txt /*quickfix-valid*
quickfix-window quickfix.txt /*quickfix-window*
quickfix-window-ID quickfix.txt /*quickfix-window-ID*
quickfix-window-function quickfix.txt /*quickfix-window-function*
quickfix.txt quickfix.txt /*quickfix.txt*
quickref quickref.txt /*quickref*
quickref.txt quickref.txt /*quickref.txt*
@ -8578,6 +8611,7 @@ quote~ change.txt /*quote~*
r change.txt /*r*
r.vim syntax.txt /*r.vim*
rand() eval.txt /*rand()*
random eval.txt /*random*
range() eval.txt /*range()*
raw-terminal-mode term.txt /*raw-terminal-mode*
rcp pi_netrw.txt /*rcp*
@ -8586,6 +8620,7 @@ read-messages insert.txt /*read-messages*
read-only-share editing.txt /*read-only-share*
read-stdin version5.txt /*read-stdin*
readdir() eval.txt /*readdir()*
readdirex() eval.txt /*readdirex()*
readfile() eval.txt /*readfile()*
readline.vim syntax.txt /*readline.vim*
recording repeat.txt /*recording*
@ -8594,6 +8629,7 @@ recovery recover.txt /*recovery*
recursive_mapping map.txt /*recursive_mapping*
redo undo.txt /*redo*
redo-register undo.txt /*redo-register*
reduce() eval.txt /*reduce()*
ref intro.txt /*ref*
reference intro.txt /*reference*
reference_toc help.txt /*reference_toc*
@ -8758,6 +8794,7 @@ search-offset pattern.txt /*search-offset*
search-pattern pattern.txt /*search-pattern*
search-range pattern.txt /*search-range*
search-replace change.txt /*search-replace*
searchcount() eval.txt /*searchcount()*
searchdecl() eval.txt /*searchdecl()*
searchforward-variable eval.txt /*searchforward-variable*
searchpair() eval.txt /*searchpair()*
@ -8788,7 +8825,9 @@ setloclist() eval.txt /*setloclist()*
setmatches() eval.txt /*setmatches()*
setpos() eval.txt /*setpos()*
setqflist() eval.txt /*setqflist()*
setqflist-action eval.txt /*setqflist-action*
setqflist-examples quickfix.txt /*setqflist-examples*
setqflist-what eval.txt /*setqflist-what*
setreg() eval.txt /*setreg()*
settabvar() eval.txt /*settabvar()*
settabwinvar() eval.txt /*settabwinvar()*
@ -8848,11 +8887,13 @@ slow-terminal term.txt /*slow-terminal*
socket-interface channel.txt /*socket-interface*
sort() eval.txt /*sort()*
sorting change.txt /*sorting*
sound-functions usr_41.txt /*sound-functions*
sound_clear() eval.txt /*sound_clear()*
sound_playevent() eval.txt /*sound_playevent()*
sound_playfile() eval.txt /*sound_playfile()*
sound_stop() eval.txt /*sound_stop()*
soundfold() eval.txt /*soundfold()*
source-vim9-script usr_46.txt /*source-vim9-script*
space intro.txt /*space*
spec-customizing pi_spec.txt /*spec-customizing*
spec-how-to-use-it pi_spec.txt /*spec-how-to-use-it*
@ -9116,10 +9157,12 @@ t_%i term.txt /*t_%i*
t_&8 term.txt /*t_&8*
t_8b term.txt /*t_8b*
t_8f term.txt /*t_8f*
t_8u term.txt /*t_8u*
t_@7 term.txt /*t_@7*
t_AB term.txt /*t_AB*
t_AF term.txt /*t_AF*
t_AL term.txt /*t_AL*
t_AU term.txt /*t_AU*
t_BD term.txt /*t_BD*
t_BE term.txt /*t_BE*
t_CS term.txt /*t_CS*
@ -9348,6 +9391,7 @@ tags-file-format tagsrch.txt /*tags-file-format*
tags-option tagsrch.txt /*tags-option*
tagsrch.txt tagsrch.txt /*tagsrch.txt*
tagstack tagsrch.txt /*tagstack*
tagstack-examples tagsrch.txt /*tagstack-examples*
tan() eval.txt /*tan()*
tanh() eval.txt /*tanh()*
tar pi_tar.txt /*tar*
@ -9452,6 +9496,7 @@ termdebug-prompt terminal.txt /*termdebug-prompt*
termdebug-starting terminal.txt /*termdebug-starting*
termdebug-stepping terminal.txt /*termdebug-stepping*
termdebug-variables terminal.txt /*termdebug-variables*
termdebug_map_K terminal.txt /*termdebug_map_K*
termdebug_popup terminal.txt /*termdebug_popup*
termdebug_shortcuts terminal.txt /*termdebug_shortcuts*
termdebug_use_prompt terminal.txt /*termdebug_use_prompt*
@ -9489,6 +9534,7 @@ terminal-unix terminal.txt /*terminal-unix*
terminal-use terminal.txt /*terminal-use*
terminal-window terminal.txt /*terminal-window*
terminal.txt terminal.txt /*terminal.txt*
terminalprops() eval.txt /*terminalprops()*
terminfo term.txt /*terminfo*
termresponse-variable eval.txt /*termresponse-variable*
test-functions usr_41.txt /*test-functions*
@ -9503,6 +9549,7 @@ test_ignore_error() testing.txt /*test_ignore_error()*
test_null_blob() testing.txt /*test_null_blob()*
test_null_channel() testing.txt /*test_null_channel()*
test_null_dict() testing.txt /*test_null_dict()*
test_null_function() testing.txt /*test_null_function()*
test_null_job() testing.txt /*test_null_job()*
test_null_list() testing.txt /*test_null_list()*
test_null_partial() testing.txt /*test_null_partial()*
@ -9544,6 +9591,7 @@ text-prop-changes textprop.txt /*text-prop-changes*
text-prop-functions textprop.txt /*text-prop-functions*
text-prop-intro textprop.txt /*text-prop-intro*
text-properties textprop.txt /*text-properties*
text-property-functions usr_41.txt /*text-property-functions*
textlock eval.txt /*textlock*
textprop textprop.txt /*textprop*
textprop.txt textprop.txt /*textprop.txt*
@ -9663,6 +9711,7 @@ usr_42.txt usr_42.txt /*usr_42.txt*
usr_43.txt usr_43.txt /*usr_43.txt*
usr_44.txt usr_44.txt /*usr_44.txt*
usr_45.txt usr_45.txt /*usr_45.txt*
usr_46.txt usr_46.txt /*usr_46.txt*
usr_90.txt usr_90.txt /*usr_90.txt*
usr_toc.txt usr_toc.txt /*usr_toc.txt*
utf-8 mbyte.txt /*utf-8*
@ -9684,6 +9733,7 @@ v:charconvert_from eval.txt /*v:charconvert_from*
v:charconvert_to eval.txt /*v:charconvert_to*
v:cmdarg eval.txt /*v:cmdarg*
v:cmdbang eval.txt /*v:cmdbang*
v:collate eval.txt /*v:collate*
v:completed_item eval.txt /*v:completed_item*
v:count eval.txt /*v:count*
v:count1 eval.txt /*v:count1*
@ -9882,6 +9932,7 @@ val-variable eval.txt /*val-variable*
valgrind debug.txt /*valgrind*
values() eval.txt /*values()*
var-functions usr_41.txt /*var-functions*
variable-scope eval.txt /*variable-scope*
variables eval.txt /*variables*
various various.txt /*various*
various-cmds various.txt /*various-cmds*
@ -9954,11 +10005,17 @@ vim-variable eval.txt /*vim-variable*
vim.vim syntax.txt /*vim.vim*
vim7 version7.txt /*vim7*
vim8 version8.txt /*vim8*
vim9 vim9.txt /*vim9*
vim9-declaration vim9.txt /*vim9-declaration*
vim9-declarations usr_46.txt /*vim9-declarations*
vim9-differences vim9.txt /*vim9-differences*
vim9-export vim9.txt /*vim9-export*
vim9-gotchas vim9.txt /*vim9-gotchas*
vim9-import vim9.txt /*vim9-import*
vim9-rationale vim9.txt /*vim9-rationale*
vim9-scopes vim9.txt /*vim9-scopes*
vim9-script vim9.txt /*vim9-script*
vim9-script-intro usr_46.txt /*vim9-script-intro*
vim9-types vim9.txt /*vim9-types*
vim9.txt vim9.txt /*vim9.txt*
vim9script vim9.txt /*vim9script*

View File

@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 8.2. Last change: 2020 Jan 30
*tagsrch.txt* For Vim version 8.2. Last change: 2020 Apr 19
VIM REFERENCE MANUAL by Bram Moolenaar
@ -185,6 +185,29 @@ commands explained above the tag stack will look like this:
The |gettagstack()| function returns the tag stack of a specified window. The
|settagstack()| function modifies the tag stack of a window.
*tagstack-examples*
Write to the tag stack just like `:tag` but with a user-defined
jumper#jump_to_tag function: >
" Store where we're jumping from before we jump.
let tag = expand('<cword>')
let pos = [bufnr()] + getcurpos()[1:]
let item = {'bufnr': pos[0], 'from': pos, 'tagname': tag}
if jumper#jump_to_tag(tag)
" Jump was successful, write previous location to tag stack.
let winid = win_getid()
let stack = gettagstack(winid)
let stack['items'] = [item]
call settagstack(winid, stack, 't')
endif
<
Set current index of the tag stack to 4: >
call settagstack(1005, {'curidx' : 4})
<
Push a new item onto the tag stack: >
let pos = [bufnr('myfile.txt'), 10, 1, 0]
let newtag = [{'tagname' : 'mytag', 'from' : pos}]
call settagstack(2, {'items' : newtag}, 'a')
<
*E73*
When you try to use the tag stack while it doesn't contain anything you will
get an error message.
@ -504,10 +527,13 @@ a tag for each "#defined" macro, typedefs, enums, etc.
Some programs that generate tags files:
ctags As found on most Unix systems. Only supports C. Only
does the basic work.
universal ctags A maintained version of ctags based on exuberant
ctags. See https://ctags.io.
*Exuberant_ctags*
exuberant ctags This is a very good one. It works for C, C++, Java,
Fortran, Eiffel and others. It can generate tags for
many items. See http://ctags.sourceforge.net.
No new version since 2009.
etags Connected to Emacs. Supports many languages.
JTags For Java, in Java. It can be found at
http://www.fleiner.com/jtags/.

View File

@ -1,4 +1,4 @@
*term.txt* For Vim version 8.2. Last change: 2019 Dec 07
*term.txt* For Vim version 8.2. Last change: 2020 Apr 12
VIM REFERENCE MANUAL by Bram Moolenaar
@ -322,6 +322,7 @@ OUTPUT CODES *terminal-output-codes*
t_ZR italics end *t_ZR* *'t_ZR'*
Added by Vim (there are no standard codes for these):
t_AU set underline color (ANSI) *t_AU* *'t_AU'*
t_Ce undercurl end *t_Ce* *'t_Ce'*
t_Cs undercurl mode *t_Cs* *'t_Cs'*
t_Te strikethrough end *t_Te* *'t_Te'*
@ -350,6 +351,7 @@ Added by Vim (there are no standard codes for these):
|xterm-true-color|
t_8b set background color (R, G, B) *t_8b* *'t_8b'*
|xterm-true-color|
t_8u set underline color (R, G, B) *t_8u* *'t_8u'*
t_BE enable bracketed paste mode *t_BE* *'t_BE'*
|xterm-bracketed-paste|
t_BD disable bracketed paste mode *t_BD* *'t_BD'*
@ -545,6 +547,7 @@ Note about colors: The 't_Co' option tells Vim the number of colors available.
When it is non-zero, the 't_AB' and 't_AF' options are used to set the color.
If one of these is not available, 't_Sb' and 't_Sf' are used. 't_me' is used
to reset to the default colors. Also see 'termguicolors'.
When the GUI is running 't_Co' is set to 16777216.
*termcap-cursor-shape* *termcap-cursor-color*
When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim

View File

@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.2. Last change: 2020 Mar 26
*terminal.txt* For Vim version 8.2. Last change: 2020 Jun 06
VIM REFERENCE MANUAL by Bram Moolenaar
@ -113,14 +113,15 @@ sent to the job running in the terminal. For example, to make F1 switch
to Terminal-Normal mode: >
tnoremap <F1> <C-W>N
You can use Esc, but you need to make sure it won't cause other keys to
break (cursor keys start with an Esc, so they may break): >
break (cursor keys start with an Esc, so they may break), this probably only
works in the GUI: >
tnoremap <Esc> <C-W>N
set notimeout ttimeout timeoutlen=100
You can also create menus similar to terminal mode mappings, but you have to
use |:tlmenu| instead of |:tmenu|.
< *options-in-terminal*
*options-in-terminal*
After opening the terminal window and setting 'buftype' to "terminal" the
TerminalOpen autocommand event is triggered. This makes it possible to set
options specifically for the window and buffer. Example: >
@ -161,6 +162,7 @@ terminal windows may be configured using the variable
hexadecimal color codes, similar to those accepted by |highlight-guifg|. When
not using GUI colors, the terminal window always uses the 16 ANSI colors of
the underlying terminal.
When using `term_start()` the colors can be set with the "ansi_colors" option.
The |term_setansicolors()| function can be used to change the colors, and
|term_getansicolors()| to get the currently used colors.
@ -183,6 +185,10 @@ Command syntax ~
keep the terminal open in Terminal-Normal mode. This
can be changed with the ++close argument.
No Vim command can follow, any | is included in
[command]. Use `:execute` if you must have a Vim
command following in the same line.
A new buffer will be created, using [command] or
'shell' as the name, prefixed with a "!". If a buffer
by this name already exists a number is added in
@ -960,7 +966,7 @@ Currently supported commands:
directory, thus it's best to use the full path.
[options] is only used when opening a new window. If present,
it must be a Dict. Similarly to |++opt|, These entries are
it must be a Dict. Similarly to |++opt|, these entries are
recognized:
"ff" file format: "dos", "mac" or "unix"
"fileformat" idem
@ -1301,7 +1307,7 @@ breakpoint, or use the "Clear breakpoint" right-click menu entry.
Inspecting variables ~
*termdebug-variables* *:Evaluate*
`:Evaluate` evaluate the expression under the cursor
`K` same
`K` same (see |termdebug_map_K| to disable)
`:Evaluate` {expr} evaluate {expr}
`:'<,'>Evaluate` evaluate the Visually selected text
@ -1332,6 +1338,10 @@ in a buffer with 'buftype' set to "prompt". This works slightly differently:
*termdebug_use_prompt*
Prompt mode can be used even when the |+terminal| feature is present with: >
let g:termdebug_use_prompt = 1
<
*termdebug_map_K*
The K key is normally mapped to :Evaluate. If you do not want this use: >
let g:termdebug_map_K = 0
Communication ~

View File

@ -1,4 +1,4 @@
*testing.txt* For Vim version 8.2. Last change: 2020 Feb 22
*testing.txt* For Vim version 8.2. Last change: 2020 Jul 11
VIM REFERENCE MANUAL by Bram Moolenaar
@ -106,6 +106,10 @@ test_null_dict() *test_null_dict()*
Return a |Dict| that is null. Only useful for testing.
test_null_function() *test_null_function()*
Return a |Funcref| that is null. Only useful for testing.
test_null_job() *test_null_job()*
Return a |Job| that is null. Only useful for testing.
{only available when compiled with the +job feature}
@ -161,6 +165,10 @@ test_override({name}, {val}) *test_override()*
terminals
no_wait_return set the "no_wait_return" flag. Not restored
with "ALL".
ui_delay time in msec to use in ui_delay(); overrules a
wait time of up to 3 seconds for messages
term_props reset all terminal properties when the version
string is detected
ALL clear all overrides ({val} is not used)
"starting" is to be used when a test should behave like
@ -256,12 +264,12 @@ assert_equal({expected}, {actual} [, {msg}])
< Will result in a string to be added to |v:errors|:
test.vim line 12: Expected 'foo' but got 'bar' ~
Can also be used as a |method|: >
Can also be used as a |method|, the base is passed as the
second argument: >
mylist->assert_equal([1, 2, 3])
< *assert_equalfile()*
assert_equalfile({fname-one}, {fname-two})
assert_equalfile({fname-one}, {fname-two} [, {msg}])
When the files {fname-one} and {fname-two} do not contain
exactly the same text an error message is added to |v:errors|.
Also see |assert-return|.
@ -272,7 +280,6 @@ assert_equalfile({fname-one}, {fname-two})
Can also be used as a |method|: >
GetLog()->assert_equalfile('expected.log')
assert_exception({error} [, {msg}]) *assert_exception()*
When v:exception does not contain the string {error} an error
message is added to |v:errors|. Also see |assert-return|.
@ -288,8 +295,23 @@ assert_exception({error} [, {msg}]) *assert_exception()*
assert_fails({cmd} [, {error} [, {msg}]]) *assert_fails()*
Run {cmd} and add an error message to |v:errors| if it does
NOT produce an error. Also see |assert-return|.
When {error} is given it must match in |v:errmsg|.
NOT produce an error or when {error} is not found in the
error message. Also see |assert-return|.
When {error} is a string it must be found literally in the
first reported error. Most often this will be the error code,
including the colon, e.g. "E123:". >
assert_fails('bad cmd', 'E987:')
<
When {error} is a |List| with one or two strings, these are
used as patterns. The first pattern is matched against the
first reported error: >
assert_fails('cmd', ['E987:.*expected bool'])
< The second pattern, if present, is matched against the last
reported error. To only match the last error use an empty
string for the first error: >
assert_fails('cmd', ['', 'E987:'])
<
Note that beeping is not considered an error, and some failing
commands only beep. Use |assert_beeps()| for those.

View File

@ -101,7 +101,7 @@ Manipulating text property types:
prop_type_add({name}, {props}) define a new property type
prop_type_change({name}, {props}) change an existing property type
prop_type_delete({name} [, {props}]) delete a property type
prop_type_get([{name} [, {props}]) get property type values
prop_type_get([{name} [, {props}]]) get property type values
prop_type_list([{props}]) get list of property types
@ -111,7 +111,7 @@ prop_add({lnum}, {col}, {props}) add a text property
prop_clear({lnum} [, {lnum-end} [, {bufnr}]])
remove all text properties
prop_find({props} [, {direction}]) search for a text property
prop_list({lnum} [, {props}) text properties in {lnum}
prop_list({lnum} [, {props}]) text properties in {lnum}
prop_remove({props} [, {lnum} [, {lnum-end}]])
remove a text property
@ -220,7 +220,7 @@ prop_list({lnum} [, {props}]) *prop_list()*
Can also be used as a |method|: >
GetLnum()->prop_list()
<
*prop_remove()* *E968*
*prop_remove()* *E968* *E860*
prop_remove({props} [, {lnum} [, {lnum-end}]])
Remove a matching text property from line {lnum}. When
{lnum-end} is given, remove matching text properties from line
@ -291,7 +291,7 @@ prop_type_delete({name} [, {props}]) *prop_type_delete()*
Can also be used as a |method|: >
GetPropName()->prop_type_delete()
prop_type_get([{name} [, {props}]) *prop_type_get()*
prop_type_get([{name} [, {props}]]) *prop_type_get()*
Returns the properties of property type {name}. This is a
dictionary with the same fields as was given to
prop_type_add().

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.2. Last change: 2020 Mar 27
*todo.txt* For Vim version 8.2. Last change: 2020 Jul 26
VIM REFERENCE MANUAL by Bram Moolenaar
@ -38,21 +38,78 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs*
-------------------- Known bugs and current work -----------------------
Vim9 script:
- "func" inside "vim9script" doesn't work? (Ben Jackson, #5670)
- "let x = x + 1" should say that "x" is not defined (declare local after
evaluating expresion).
Making everything work:
- more items in https://github.com/vim/vim/issues/6507
- More "goto failed" with check for trylevel.
- memory leak in test_vim9_script
- Check that when sourcing a Vim9 script, only the global items can be used.
- :put with a "=" register argument doesn't work, need to find the expression
and compile it. (#6397)
- At the script level, keep script variables local to the block they are
declared in? Need to remember what variables were declared and delete them
when leaving the block.
- Implement { } block at the script level.
- need to check type when a declaration specifies a type: #6507
let nr: number = 'asdf'
- Make map() give an error if the resulting type is wrong.
Add mapnew() to create a new List/Dict for the result, which can have a
different value type.
- Implement "export {one, two three}".
- ISN_CHECKTYPE could use check_argtype()
- Slice of list: [1, 2, 3][1:2].
- give error for variable name:
let p = function('NoSuchFunc')
- Give runtime error if function argument is wrong.
def Increment(nr: number)
range(3)->Increment()
- Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
- Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
- Expand `=expr` in :mkspell
- Test that a function defined inside a :def function is local to that
function, g: functions can be defined and script-local functions cannot be
defined.
- Support passing v:none to use the default argument value. (#6504)
- make 0 == 'string' fail on the script level, like inside :def.
- Check that when using a user function name without prefix, it does not find
a global function. Prefixing g: is required.
- Compile: for [key, value] in items(map)
- Assignment to dict doesn't work:
let ret: dict<string> = #{}
ret[i] = string(i)
- Appending to dict item doesn't work:
let d[i] ..= value
- Compile replacement of :s command: s/pat/\=expr/
- Compile redir to local variable: var_redir_start().
- Compile builtin functions that access local variables:
islocked()
- possible memory leak in test_vim9_func through compile_nested_function.
- memory leaks in test_vim9_expr
- memory leaks in test_vim9_script
- memory leaks in test_vim9_cmd
- When evaluating constants for script variables, some functions could work:
has('asdf'), len('string')
- Implement "as Name" in "import Item as Name from ..."
- Disallow unlet for local/script/imported vars
- Make "++nr" work.
- Make closures work:
- Create closure in a loop. Need to make a list of them.
- expandcmd() with `=expr` in filename uses legacy expression.
- eval_expr() in ex_cexpr()
- eval_expr() call in dbg_parsearg() and debuggy_find()
- has() is compiled as a constant, but some checks are dynamic.
Check for dynamic values, such as "gui_running".
- Implement command modifiers, such as "silent". (#6530)
New syntax and functionality:
Improve error checking:
- "echo Func()" is an error if Func() does not return anything.
Test:
- Using a Vim9 autoload script (functions must be global).
Also:
- For range: make table of first ASCII character with flag to quickly check if
it can be a Vim9 command. E.g. "+" can, but "." can't.
- better implementation for partial and tests for that.
- Make "g:imported = Export.exported" work in Vim9 script.
- Make Foo.Bar() work to call the dict function. (#5676)
- make "let var: string" work in a vim9script.
- Disallow unlet for local/script/imported vars
- Support type for ":let"/":const" at script level for Vim9 script.
(Ben Jackson, #5671)
- :func inside vim9script must still use a:arg
- Make "++nr" work.
- Check that import in legacy script works and puts item in s:
- Error in any command in "vim9script" aborts sourcing.
- Find a way to test expressions in legacy and Vim9 script without duplication
- Fix memory leaks for test_vim9_disassemble, test_vim9_expr, test_vim9_script
@ -60,39 +117,45 @@ Vim9 script:
- Test try/catch and throw better, also nested.
Test return inside try/finally jumps to finally and then returns.
- call autoload function.
- Type checking arguments when calling :def function
- Implement more expressions, e.g. [a:b]
- can use func as reference:
def SomeFunc() ...
map(list, SomeFunc)
- define function and create funcref in one step:
let ref = def(arg: type): rettype
Also extends lambda
- Test: Function declared inside a :def function is local, disappears at the
end of the function. Unless g: is used, just like with variables.
- Can we omit \ for line continuation inside (), {}, ?
Requires parsing while reading a function. Like fgetline in do_one_cmd()?
- implement :type
- import type declaration?
- implement class
- implement interface
- predefined class: Promise<T>
- import statement for type declaration?
- implement enum
- Make accessing varargs faster: arg[expr]
EVAL expr
LOADVARARG (varags idx)
Further improvements:
- compile options that are an expression, e.g. "expr:" in 'spellsuggest',
'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'.
- Make inline function work, to be used as a funcref:
let ref = def(arg: type): rettype
body
enddef
- compile get_lambda_tv() in popup_add_timeout()
- inline call to map() and filter()
- compile "skip" argument of searchpair()
- compile "expr" and "call" expression of a channel in channel_exe_cmd()?
Popup windows:
- With some sequence get get hidden finished terminal buffer. (#5768)
Cannot close popup terminal (#5744)
Buffer can't be wiped, gets status "aF". (#5764)
Is buf->nwindows incorrect?
- popup_clear() and popup_close() should close the terminal popup, and
make the buffer hidden. #5745
- Cursor not updated before a redraw, making it jump. (#5943)
- Add a termcap entry for changing the cursor when it goes under the popup and
back. like t_SI and t_EI (t_SU and t_EU, where "U" means under?)
- With terminal in popup, allow for popup_hide() to temporarily hide it.?
- Fire some autocommand event after a new popup window was created and
positioned? PopupNew? Could be used to set some options or move it out of
the way. (#5737)
However, it may also cause trouble, changing the popup of another plugin.
- Add a way to use popup_menu() synchronously: instead of invoking the
callback, return the choice. (Ben Jackson, #6534)
- Use popup (or popup menu) for command line completion
- When using a popup for the info of a completion menu, and there is not
enough space, let the popup overlap with the menu. (#4544)
@ -106,6 +169,8 @@ Popup windows:
- Figure out the size and position better if wrapping inserts indent
Text properties:
- :goto does not go to the right place when test properties are present.
(#5930)
- "cc" does not call inserted_bytes(). (Axel Forsman, #5763)
- Get E685 with a sequence of commands. (#5674)
- Combining text property with 'cursorline' does not always work (Billie
@ -145,8 +210,20 @@ Terminal debugger:
with another Vim instance.
Terminal emulator window:
- No support for underline color, t_8u.
- When in terminal-Normal mode when the job finishes, the cursor jumps to the
end but the window is not updated. This only happens when typing "a".
:term bash -c "for V in {0..5}; do echo $V; sleep 1; done"
- When started with ":terminal ++close" and the shell exits but there is a
background process, the window remains open, because the channel still
exists (and output still shows). Perhaps close the window when an explicit
++close was used? (#5931)
- Using "CTRL-W :confirm quite" and selecting "yes" should work like ":quit!".
(Harm te Hennepe, #6129)
- When the job in the terminal doesn't use mouse events, let the scroll wheel
scroll the scrollback, like a terminal does at the shell prompt. #2490
A bit like using CTRL-W N first.
Jump back like with "a" when any key is typed.
And use modeless selection. #2962
- Use CTRL-W CTRL-K to enter a digraph? #5371
- When Vim runs in the terminal and changes the title, the statusline needs to
@ -176,52 +253,109 @@ Terminal emulator window:
conversions.
Error numbers available:
E451, E452, E453, E454, E460, E489, E491, E565, E578, E610, E611, E653,
E654, E856, E857, E861, E900
E610, E611, E653
Remove SPACE_IN_FILENAME ? It is only used for completion.
Patch to use collaction based sorting. (Christian Brabandt, #6229)
Can we detect true color support? https://gist.github.com/XVilka/8346728
Try setting a color then request the current color, like using t_u7.
Check out PR #543 (Roland Puntaier).
Patch for multi-byte characters in langmap and applying a mapping on them.
(Christian Brabandt, 2015 Jun 12, update July 25)
Is this the right solution? Need to cleanup langmap behavior:
- in vgetorpeek() apply langmap to the typeahead buffer and put the result in
a copy-buffer, only when langmap is appropriate for the current mode. Then
check for mapping and let gotchars() work on the copy-buffer.
- Remove LANGMAP_ADJUST() in other parts of the code. Make sure the mode is
covered by the above change.
So that replaying the register doesn't use keymap/langmap and still does the
same thing.
Also see #737: langmap not applied to replaying recording.
Buffer autocommands are a bit inconsistent. Add a separate set of
autocommands for the buffer lifecycle:
BufIsCreated (after buffer ID exists)
BufIsLoaded (after buffer ID has content)
BufIsUnloaded (after buffer ID no longer has)
BufIsWiped (after buffer ID was wiped)
BufIsRenamed (after buffer ID gets another name)
The buffer list and windows are locked, no changes possible
Make it possible to map (console and GUI): #6457
<C-[> 0x27 or is this <Esc> ?
<C-\> 0x28
<C-]> 0x29
<C-^> 0x30
<C-_> 0x31
Patch for Template string: #4634
Have another look at the implementation.
Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr"
replace this:
let left = GetLeftFunc()
let right = GetRightFunc()
let res = left < right ? lower : left == right ? equal : upper
by:
let res = GetLeftFunc() <=> GetRightFunc() ?< lower ?= equal ?> upper
Patch to make :q work with local arglist. (Christian Brabandt, #6286)
Lua: updating wrong buffer when using newly created, unloaded buffer.
(#6539)
When "+ register is set then "" points to it. If another Vim grabs the "+
register, then "" doesn't contain anything. Make it still follow "+.
(#6435)
Patch to fix drawing error with DirectX. (James Grant, #5688)
Causes flicker on resizing.
Patch to make lambda functions faster (Ken Takata)
https://github.com/vim/vim/pull/5727
LGTM remark: size derived from user input (getenv). Don't see how.
Patch to use more FOR_ALL_ macros and use them. (Yegappan Lakshmanan, #5339)
Patch to explain use of "%" in :!. (David Briscoe, #5591)
Patch to improve Windows terminal support. (Nobuhiro Takasaki, #5546)
Ready to include.
Patch to add "-d" to xxd. (#5616)
Patch to add Turkish manual. (Emir Sarı, #5641)
Patch to support cindent option to handle pragmas differently.
(Max Rumpf, #5468)
Causes flicker on resizing. Workaround from Ken Takata.
How about only setting the attribute when part of the Vim window is offscreen?
File marks merging has duplicates since 7.4.1925. (Ingo Karkat, #5733)
Running test_gui and test_gui_init with Motif sometimes kills the window
manager. Problem with Motif? Now test_gui crashes in submenu_change().
"make test_gui" crashed in submenu_change(). Fix and remove workaround in
add_pixmap_args().
Athena is OK.
Motif: Build on Ubuntu can't enter any text in dialog text fields.
Running test_gui and test_gui_init with Motif sometimes kills the window
manager. Problem with Motif?
Patch to properly break CJK lines: Anton Kochkov, #3875
Flag in 'formatoptions' is not used in the tests.
Patch to add :argdedupe. (Nir Lichtman, #6235)
Patch to add 'vtp' option. (#5344)
Needs better docs. Is there a better name?
:map output does not clear the reset of the command line.
(#5623, also see #5962)
Problem with auto-formatting - inserting space and putting cursor before added
character. (#6154)
undo result wrong: Masato Nishihata, #4798
Patch for Template string: #4491. New pull: #4634
Ready to include? Review the code.
When 'lazyredraw' is set sometimes the title is not updated.
(Jason Franklin, 2020 Feb 3) Looks like a race condition.
Patch to delete BeOS code. (#5817)
Regexp to search for duplicate lines does not work correctly:
/\(^.*\n\)\1 (Chris Morgan, #6239)
With bash ":make" does not set v:shell_error. Possible solution: set
'shellpipe' to "2>&1| tee %s; exit ${PIPESTATUS[0]}" #5994
Using mode() when "/pat" is used in Visual mode returns "v" instead of "c",
which is not useful. Return "c/v" instead. And "c/o" when using "d/pat".
#6127
When 'fileignorecase' is set ":e testfile.c" works to edit TestFile.c, but
":find testfile.c" does not ignore case.
Might be related to #6088.
When changing the crypt key the buffer should be considered modified.
Like when changing 'fileformat'. Save the old key in save_file_ff().
(Ninu-Ciprian Marginean)
Patch to implement the vimtutor with a plugin: #6414
Was originally writtten by Felipe Morales.
Strange sequence of BufWipeout and BufNew events while doing omni-complete.
(Paul Jolly, #5656)
@ -233,19 +367,25 @@ Get BufDelete without preceding BufNew. (Paul Jolly, #5694)
BufWinenter event not fired when saving unnamed buffer. (Paul Jolly, #5655)
Another spurious BufDelete. (Dani Dickstein, #5701)
Patch to add function to return the text used in the quickfix window.
(Yegappan, #5465)
Patch to add readdirex() (Ken Takata, #5619)
Wrong error when using local arglist. (Harm te Hennepe, #6133)
Request to support <Cmd> in mappings, similar to how Neovim does this.
(Daniel Hahler, #4784)
Test loose_clipboard() by selecting text before suspending.
Undo puts cursor in wrong line after "cG<Esc>" undo.
Implement completion for "breakadd". Should expand the second argument, e.g.
"func", and then function names after ":breakadd func". Including
script-local functions.
:unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019
Dec 19)
Patch to add an option to enable/disable VTP. (Nobuhiro Takasaki, #5344)
Should have three values: empty, "off", "on". Name it 'winterm'?
Patch to fix session file when using multiple tab pages. (Jason Franklin, 2019
May 20)
Also put :argadd commands at the start for all buffers, so that their order
@ -256,9 +396,6 @@ Also #5326: netrw buffers are not restored.
When 'backupdir' has a path ending in double slash (meaning: use full path of
the file) combined with 'patchmode' the file name is wrong. (#5791)
Patch to make ":verbose pwd" show the scope of the directory. (Takuya
Fujiwara, #5469)
Completion mixes results from the current buffer with tags and other files.
Happens when typing CTRL-N while still searching for results. E.g., type "b_"
in terminal.c and then CTRL-N twice.
@ -268,19 +405,13 @@ Should do current file first and not split it up when more results are found.
Undo history wrong when ":next file" re-uses a buffer. (#5426)
ex_next() should pass flag to do_argfile(), then to do_ecmd().
Patch to add "note" type to quickfix. (#5527) Missing tests.
Help for ":argadd fname" says that if "fname" is already in the argument list
that entry is used. But instead it's always added. (#6210)
Add flag AL_FIND_ADD, if there is one argument find it in the list.
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
(#4087)
FR: add search_status(), the current values displayed for search (current
match, total matches). (#5631)
Patch to provide search stats in a variable, so that it can be used in the
statusline. (Fujiwara Takuya, #4446)
Patch for ambiguous width characters in libvterm on MS-Windows 10.
(Nobuhiro Takasaki, #4411)
behavior of i_CTRl-R_CTRL-R differs from documentation. (Paul Desmond Parker,
#5771)
@ -288,10 +419,11 @@ behavior of i_CTRl-R_CTRL-R differs from documentation. (Paul Desmond Parker,
goes to any buffer, and then :bnext skips help buffers, since they are
unlisted. (#4478)
Patch to include reduce() function. (#5481)
Statusline highlighting error, off by one. (#5599)
":find" with 'path' set to "data*" does not find files, while completion does
find them. (Max Kukartsev, #6218)
Enable 'termbidi' if $VTE_VERSION >= 5703 ?
Universal solution to detect if t_RS is working, using cursor position.
@ -304,15 +436,16 @@ Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
The :syntax cchar value can only be a single character. It would be useful to
support combining characters. (Charles Campbell) Also #4687
Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
It can replace the BeOS code, which is likely not used anymore.
Now on github: #1856. Updated Oct 2017
Got permission to include this under the Vim license.
"--cleanFOO" does not result in an error. (#5537)
Output from assert_equalfile() doesn't give a hint about what's different.
Assuming the files are text, print the line with the difference.
Add "t" action to settagstack(): truncate and add new entries. (#5405)
When 'relativenumber' is set the line just below a diff change doesn't get
updated. (#6138)
Result of synID() sometimes wrong in help files. (#5252)
Status line is nut updated when splitting windows. (Marcin Szamotulski, #5496)
@ -327,7 +460,7 @@ When using :packadd files under "later" are not used, which is inconsistent
with packages under "start". (xtal8, #1994)
Patch to add new motion ]( and ]{. (Yasuhiro Matsumoto, #5320)
Or make "v" prefix work?
Better: use the "z" prefix. or ]t) and [t(.
Modeless selection doesn't work in gvim. (#4783)
Caused by patch 8.1.1534.
@ -335,8 +468,7 @@ Caused by patch 8.1.1534.
Visual highlight not removed when 'dipslay' is "lastline" and line doesn't
fit. (Kevin Lawler, #4457)
Patch to add per-tabpage and per-window previous directory: "lcd -" and "tcd
-". (Yegappan Lakshmanan, #4362)
Current position in the changelist should be local to the buffer. (#2173)
Does not build with MinGW out of the box:
- _stat64 is not defined, need to use "struct stat" in vim.h
@ -348,14 +480,6 @@ Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
Display messed up with matchparen, wrapping and scrolling. (#5638)
Patch to configure BUILD_DATE for reproducible builds. (James McCoy, #513)
Patch to add MODIFIED_BY to MSVC build file. (Chen Lei, 2016 Nov 24, #1275)
Patch to support "0o" for octal numbers. (Ken Takata, #5304)
Patch to enable IXON, avoid that CTRL-S stops terminal output. (#5775)
When getting a focus event halfway a mapping this aborts the mapping. E.g.
when "qq" is mapped and after the first "q" the mouse is moved outside of the
gvim window (with focus follows mouse), then the K_FOCUSLOST key is put in the
@ -384,21 +508,12 @@ Can be used to update highlighting. #3127 #5181
Incorrect formatting with autoindent. (Sebastian Gniazdowski, #4909)
Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)
Updated 2016 Jun 10, #858 Update 2017 Mar 28: use <buffer>
Updated 2016 Jun 10, #858 Update 2017 Mar 28: use <buffer>.
Better use ":bufgrep" ?
Errors found with random data:
heap-buffer-overflow in alist_add (#2472)
Patch to support CamelCase for spell checking: See a lower-to-upper case
change as a word boundary. (btucker-MPCData, 2016 Nov 6, #1235)
patch for 'spellcamelcase' option: spellcheck each CamelCased word.
(Ben Tucker, 2016 Dec 2)
Patch to add {skip} argument to search(). (Christian Brabandt, 2016 Feb 24)
Update 2016 Jun 10, #861
Patch to add "cmdline" completion to getcompletion(). (Shougo, Oct 1, #1140)
Improve fallback for menu translations, to avoid having to create lots of
files that source the actual file. E.g. menu_da_de -> menu_da
Include part of #3242?
@ -414,24 +529,9 @@ Added tests (James McCoy, 2016 Aug 3, #958). Still needs more work.
window 2. User expects 10 to be added to size of window 2. (Daniel Steinberg,
#5443)
Patch for multi-byte characters in langmap and applying a mapping on them.
(Christian Brabandt, 2015 Jun 12, update July 25)
Is this the right solution? Need to cleanup langmap behavior:
- in vgetorpeek() apply langmap to the typeahead buffer and put the result in
a copy-buffer, only when langmap is appropriate for the current mode. Then
check for mapping and let gotchars() work on the copy-buffer.
- Remove LANGMAP_ADJUST() in other parts of the code. Make sure the mode is
covered by the above change.
So that replaying the register doesn't use keymap/langmap and still does the
same thing. Remarks on PR #543 (Roland Puntaier).
Also see #737: langmap not applied to replaying recording.
Would be nice to set tab-local values for 'diffexpr' and 'diffopt'. Use
t:diffexpr_option t:diffopt_option? (#4782)
v:register isn't reset early enough, may be used by next command.
(Andy Massimino, #5294, possible fix in #5305)
Internal diff doesn't handle binary file like external diff does. (Mike
Williams, 2018 Oct 30)
@ -455,10 +555,10 @@ Give a few examples. (#4288)
Opening a file with --remote-tab-silent that matches 'wildignore' does not
work, results in (E479: No match". (#4610)
Patch for this (Tristan Konolige, #1011, only adds the option, no implem.):
7 Add an option to add one pixel column to the character width? Lucida
Console italic is wider than the normal font ("d" overlaps with next char).
Opposite of 'linespace': 'columnspace'.
Patch for this (Tristan Konolige, #1011, only added the option, no implem.)
Bug: script written with "-W scriptout" contains Key codes, while the script
read with "-s scriptin" expects escape codes. Probably "scriptout" needs to
@ -511,16 +611,9 @@ Should we include some part of pull request #4505, not increment changedtick
in some cases? E.g. for ":write" when the changed flag was already off, the
buffer didn't change at all.
Patch to add getreginfo() and setreg() with an option to set the unnamed
register "", So that registers can be saved and fully restored.
(Andy Massimino, 2018 Aug 24, #3370)
Line numbers in profile are off when function was defined with ":execute".
(Daniel Hahler, #4511)
Add a way to create an empty, hidden buffer. Like doing ":new|hide".
":let buf = bufcreate('name')
Session file contains absolute paths when "curdir" is removed form
'sessionoptions', making it impossible to have a session with a relative path.
(#4450)
@ -535,9 +628,6 @@ C syntax: {} inside () causes following {} to be highlighted as error.
Check: __attribute__((format(printf, on semsg() and siemsg(). Where was this
added?
Patch to add a flatten() function. #3676. Check that the doc explains the
maxdepth argument (applies to the input "recursiveness").
Add test for urxvt mouse codes. Also test that mouse coordinates can be
negative. (see #4326)
@ -608,11 +698,6 @@ punctuation is repeated. (Smylers, 2018 Nov 17, #3621)
ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
Patch to add more info to OptionSet. Should mention what triggered the change
":set", ":setlocal", ":setglobal", "modeline"; and the old global value.
#4118. Proposed implementation: 2019 Mar 27.
Updated 2019 May 25.
Using single wide base character with double wide composing character gives
drawing errors. Fill up the base character? (Dominique, #4328)
@ -663,26 +748,13 @@ Neovim uses "eob:X" in 'fillchars'.
Sourceforge Vim pages still have content, redirect from empty page.
Check for PHP errors. (Wayne Davison, 2018 Oct 26)
Patch to support ":tag <tagkind> <tagname>". (emmrk, 2018 May 7, #2871)
Use something like ":tag {kind}/{tagname}".
Not ready to include.
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
Nov 17) Asked about this, Dec 22. Christian will have a look.
Patch for larger icons in installer. (#978) Still not good.
Patch to fix that using "5gj" starting inside a closed fold does not work on
screen lines but on text lines. (Julius Hulsmann, #4095) Lacks a test.
Patch to implement 'diffref' option. (#3535)
Easier to use a 'diffmaster' option, is the extra complexity needed?
Not ready to include.
Patch to specify color for cterm=underline and cterm=undercurl, like "guisp".
Patch #2405 does something like this, but in the wrong way.
home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9)
When the status line uses term_gettitle(), it does not get updated when the
@ -710,7 +782,7 @@ Further xdiff changes:
Difference between two regexp engines: #3373
Patch to add ch_listen() (Yasuhiro Matsumoto, 2018 Nov 26, #3639)
What is the practical use for this?
What is the practical use for this? Need an example.
When the last line wraps, selecting with the mouse below that line only
includes the first screen line. (2018 Aug 23, #3368)
@ -734,8 +806,6 @@ when adding a sign for every quickfix entry. (#4557)
Win32 key codes are messy. Mike Williams tried to fix that, but now old
mappings no longer work. Create a new terminal for the better solution?
Patch to "fix" 'visualbell'. Add option to set delay? (#1789)
Script generated by :mksession does not work well if there are windows with
modified buffers
change "silent only" into "silent only!"
@ -825,9 +895,6 @@ deleting autocmds, not when adding them.
Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
Delete all the specific stuff for the Borland compiler? (#3374)
Patch in #3377 (Thomas Dziedzic)
With 'foldmethod' "indent" and appending an empty line, what follows isn't
included in the existing fold. Deleting the empty line and undo fixes it.
(Oleg Koshovetc, 2018 Jul 15, #3214)
@ -992,6 +1059,7 @@ The ":move" command does not honor closed folds. (Ryan Lue, #2351)
Patch to fix increment/decrement not working properly when 'virtualedit' is
set. (Hirohito Higashi, 2016 Aug 1, #923)
Was this fixed?
Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)
@ -1023,7 +1091,7 @@ Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
Creating a partial with an autoload function is confused about the "self"
attribute of the function. For an unknown function assume "self" and make
that optiona? (Bjorn Linse, 2017 Aug 5)
that optional? (Bjorn Linse, 2017 Aug 5)
Cindent: returning a structure has more indent for the second item.
(Sam Pagenkopf, 2017 Sep 14, #2090)
@ -1061,8 +1129,6 @@ Or is this not an actual problem?
Better TeX indent file. (Christian Brabandt, 2017 May 3)
Patch to use a separate code for BS on Windows. (Linwei, #1823)
Use gvimext.dll from the nightly build? (Issue #249)
'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,
@ -1164,20 +1230,13 @@ Make a function to check for function-like type?
Screen updated delayed when using CTRL-O u in Insert mode.
(Barlik, #1191) Perhaps because status message?
Implement named arguments for functions:
func Foo(start, count = 1 all = 1)
Implement named arguments for functions with optional arguments:
func Foo(start, count = 1, all = 1)
call Foo(12, all = 0)
Add a command to take a range of lines, filter them and put the output
somewhere else. :{range}copy {dest} !cmd
Patch to fix that empty first tab is not in session.
(Hirohito Higashi, 2016 Nov 25, #1282)
Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5)
Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
Update Aug 2017: #1954
The TermResponse event is not triggered when a plugin has set 'eventignore' to
"all". Netrw does this. (Gary Johnson, 2017 Jan 24)
Postpone the event until 'eventignore' is reset.
@ -1253,6 +1312,8 @@ sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
- Add ch_readlines(): for a channel in NL mode, reads as many lines as are
available. Should be more efficient than looping over ch_read() with
ch_status() to check for more.
- If buffer contents is changed in a callback, set w_redr_status so that it
gets redrawn in redraw_after_callback(). #6120
- Add a separate timeout for opening a socket. Currently it's fixed at 50
msec, which is too small for a remote connection. (tverniquet, #2130)
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
@ -1339,11 +1400,6 @@ Undo message is not always properly displayed. Patch by Ken Takata, 2013 oct
3. Doesn't work properly according to Yukihiro Nakadaira.
Also see #1635.
Patch for systemlist(), add empty item. (thinca, Sep 30, #1135)
Add an argument to choose binary or non-binary (like readfile()), when omitted
use the current behavior.
Include the test.
When 'keywordprg' starts with ":" the argument is still escaped as a shell
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
@ -1353,9 +1409,6 @@ Probably list of keystrokes, with some annotations for mode changes.
Could store in logfile to be able to analyse it with an external command.
E.g. to see when's the last time a plugin command was used.
execute() cannot be used with command completion. (Daniel Hahler, 2016 Oct 1,
#1141)
cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
:map X may print invalid data. (Nikolay Pavlov, 2017 Jul 3, #1816)
@ -1368,17 +1421,9 @@ synced. (Ryan Carney, 2016 Sep 14)
Syntax highlighting for messages with RFC3339 timestamp (#946)
Did maintainer reply?
Patch to avoid problem with special characters in file name.
(Shougo, 2016 Sept 19, #1099) Not finished?
ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
Also with latest version.
Cannot delete a file with square brackets with delete(). (#696)
Patch to add ":syn foldlevel" to use fold level further down the line.
(Brad King, 2016 Oct 19, update 2017 Jan 30)
Completion for input() does not expand environment variables. (chdiza, 2016
Jul 25, #948)
@ -1387,14 +1432,9 @@ names, shell commands and the like. (Kikuchan, 2010 Oct 14)
Assume the system converts between the actual encoding of the filesystem to
the system encoding (usually utf-8).
'hlsearch' interferes with a Conceal match. (Rom Grk, 2016 Aug 9)
MS-Windows: use WS_HIDE instead of SW_SHOWMINNOACTIVE in os_win32.c?
Otherwise task flickers in taskbar.
Should make ":@r" handle line continuation. (Cesar Romani, 2016 Jun 26)
Also for ":@.".
Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)
Have a way to get the call stack, in a function and from an exception.
@ -1403,14 +1443,10 @@ Have a way to get the call stack, in a function and from an exception.
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806)
Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
Patch to improve map documentation. Issue #799.
Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)
We can use '. to go to the last change in the current buffer, but how about
the last change in any buffer? Can we use ', (, is next to .)?
@ -1425,8 +1461,6 @@ Reject the value? #710.
When doing "vi buf.md" a BufNew autocommand for *.md is not triggered.
Because of using the initial buffer? (Dun Peal, 2016 May 12)
Add redrawtabline command. (Naruhiko Nishino, 2016 Jun 11)
Neovim patch for utfc_ptr2char_len() https://github.com/neovim/neovim/pull/4574
No test, needs some work to include.
@ -1467,11 +1501,6 @@ Mechelynck) Perhaps use exists("::tearoff") to check?
Use vim.vim syntax highlighting for help file examples, but without ":" in
'iskeyword' for syntax.
Patch to make "%:h:h" return "." instead of the full path.
(Coot, 2016 Jan 24, #592)
Remove SPACE_IN_FILENAME ? What could possibly go wrong?
When command names are very long :command output is difficult to read. Use a
maximum for the column width? (#871)
Patcy by varmanishant, 2016 Jun 18, #876
@ -1501,20 +1530,10 @@ If ":bd" also closes a Tab page then the " mark is not set. (Harm te Hennepe,
Patch to avoid redrawing tabline when the popup menu is visible.
(Christian Brabandt, 2016 Jan 28)
Patch to show search statistics. (Christian Brabandt, 2016 Jul 22)
When the CursorMovedI event triggers, and CTRL-X was typed, a script cannot
restore the mode properly. (Andrew Stewart, 2016 Apr 20)
Do not trigger the event?
Using ":windo" to set options in all windows has the side effect that it
changes the window layout and the current window. Make a variant that saves
and restores. Use in the matchparen plugin.
Perhaps we can use ":windo <restore> {cmd}"?
Patch to add <restore> to :windo, :bufdo, etc. (Christian Brabandt, 2015 Jan
6, 2nd message)
Alternative: ":keeppos" command modifier: ":keeppos windo {cmd}".
Patch to fix display of listchars on the cursorline. (Nayuri Aohime, 2013)
Update suggested by Yasuhiro Matsumoto, 2014 Nov 25:
https://gist.github.com/presuku/d3d6b230b9b6dcfc0477
@ -1543,10 +1562,6 @@ Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
Comparing nested structures with "==" uses a different comparator than when
comparing individual items.
Also, "'' == 0" evaluates to true, which isn't nice.
Add "===" to have a strict comparison (type and value match).
Add "==*" (?) to have a value match, but no automatic conversion, and v:true
equals 1 and 1.0, v:false equals 0 and 0.0.?
Using uninitialized memory. (Dominique Pelle, 2015 Nov 4)
@ -1717,8 +1732,6 @@ arguments.
Problem with transparent and matchgroup. Issue #475
Patch to add :arglocal and :arglists. (Marcin Szamotulski, 2014 Aug 6)
Spell files use a latin single quote. Unicode also has another single quote:
0x2019. (Ron Aaron, 2014 Apr 4)
New OpenOffice spell files support this with ICONV. But they are not
@ -1745,8 +1758,11 @@ from?
Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman,
2014 Jun 8)
Include a plugin manager with Vim? Neobundle seems to be the best currently.
Include a plugin manager with Vim? vim-plug seems to be the best currently:
https://github.com/junegunn/vim-plug.
Also Vundle: https://github.com/gmarik/vundle
Or minpac: https://github.com/k-takata/minpac, since it leverages the builtin
package feature.
Long message about this from ZyX, 2014 Mar 23. And following replies.
Also see http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
User view:
@ -1801,6 +1817,7 @@ instead. (Samuel Ferencik, 2013 Sep 28)
Patch for XDG base directory support. (Jean François Bignolles, 2014 Mar 4)
Remark on the docs. Should not be a compile time feature. But then what?
Also see #2034.
Completion of ":e" is ":earlier", should be ":edit". Complete to the matching
command instead of doing this alphabetically. (Mikel Jorgensen)
@ -1862,6 +1879,10 @@ Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}.
Exception caused by argument of return is not caught by try/catch.
(David Barnett, 2013 Nov 19)
Bug in try/catch: return with invalid compare throws error that isn't caught.
(ZyX, 2011 Jan 26)
try/catch not working for argument of return. (Matt Wozniski, 2008 Sep 15)
try/catch not working when inside a for loop. (ZyX, 2011 Jan 25)
Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt,
2013 Mar 19, later message)
@ -1897,6 +1918,8 @@ process that is running. It might actually be some other program, e.g. after
a reboot.
patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
Patch to add "combine" to :syntax, combines highlight attributes. (Nate
Soares, 2012 Dec 3)
Syntax update problem in one buffer opened in two windows, bottom window is
not correctly updated. (Paul Harris, 2012 Feb 27)
@ -1934,13 +1957,6 @@ Szamotulski, 2012 Nov 8)
Session file creation: 'autochdir' causes trouble. Keep it off until after
loading all files.
MS-Windows resizing problems:
- Windows window on screen positioning: Patch by Yukihiro Nakadaira, 2012 Jun
20. Uses getWindowRect() instead of GetWindowPlacement()
- Win32: When the taskbar is at the top of the screen creating the tabbar
causes the window to move unnecessarily. (William E. Skeith III, 2012 Jan
12) Patch: 2012 Jan 13 Needs more work (2012 Feb 2)
'iminsert' global value set when using ":setlocal iminsert"? (Wu, 2012 Jun 23)
Patch to append regexp to tag commands to make it possible to select one out
@ -2066,11 +2082,6 @@ Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
BT regexp engine: After trying a \@> match and failing, submatches are not
cleared. See test64.
Patch to make "z=" work when 'spell' is off. Does this have nasty side
effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
Would also need to do this for spellbadword() and spellsuggest().
https://github.com/chrisbra/vim-mq-patches/blob/master/enable_spellchecking
On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
64 bits value. Change all number options to use nropt_T and define it to the
right type.
@ -2089,12 +2100,6 @@ doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18)
Behavior of i" and a" text objects isn't logical. (Ben Fritz, 2013 Nov 19)
maparg() does not show the <script> flag. When temporarily changing a
mapping, how to restore the script ID?
Bug in try/catch: return with invalid compare throws error that isn't caught.
(ZyX, 2011 Jan 26)
When setting a local option value from the global value, add a script ID that
indicates this, so that ":verbose set" can give a hint. Check with options in
the help file.
@ -2283,9 +2288,6 @@ Add local time at start of --startuptime output.
Requires configure check for localtime().
Use format year-month-day hr:min:sec.
Patch to add "combine" to :syntax, combines highlight attributes. (Nate
Soares, 2012 Dec 3)
Patch to make ":hi link" also take arguments. (Nate Soares, 2012 Dec 4)
Shell not recognized properly if it ends in "csh -f". (James Vega, 2009 Nov 3)
@ -2480,6 +2482,9 @@ Sergey Khorev)
Consider making YankRing or something else that keeps a list of yanked text
part of standard Vim. The "1 to "9 registers are not sufficient.
6 When yanking into the unnamed registers several times, somehow make the
previous contents also available (like it's done for deleting). What
register names to use? g"1, g"2, etc.?
After doing "su" $HOME can be the old user's home, thus ~root/file is not
correct. Don't use it in the swap file.
@ -2686,10 +2691,6 @@ Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
In the swapfile dialog, add a H(elp) option that gives more info about what
each choice does. Similar to ":help swap-exists-choices"
try/catch not working for argument of return. (Matt Wozniski, 2008 Sep 15)
try/catch not working when inside a for loop. (ZyX, 2011 Jan 25)
":tab help" always opens a new tab, while ":help" re-uses an existing window.
Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
@ -3259,7 +3260,7 @@ Quickfix/Location List:
":grep" and ":helpgrep".
More generic solution: support a filter (e.g., by calling a function).
7 Add a command that goes back to the position from before jumping to the
first quickfix location. ":cbefore"?
first quickfix location.
Vi incompatibility:
- Try new POSIX tests, made after my comments. (Geoff Clare, 2005 April 7)
@ -3296,7 +3297,6 @@ Vi incompatibility:
7 The ":map" command output overwrites the command. Perhaps it should keep
the ":map" when it's used without arguments?
7 CTRL-L is not the end of a section? It is for Posix! Make it an option.
7 Implement 'prompt' option. Init to off when stdin is not a tty.
7 Add a way to send an email for a crashed edit session. Create a file when
making changes (containing name of the swap file), delete it when writing
the file. Supply a program that can check for crashed sessions (either
@ -3474,8 +3474,6 @@ GUI:
Solaris 2.6. (Marley)
9 On Solaris: Using a "-geometry" argument, bigger than the window where Vim
is started from, causes empty lines below the cmdline. (raf)
8 X11 GUI: When menu is disabled by excluding 'm' from 'guioptions', ALT key
should not be used to trigger a menu (like the Win32 version).
8 When setting 'langmenu', it should be effective immediately. Store both
the English and the translated text in the menu structure. Re-generate
the translation when 'langmenu' has changed.
@ -3514,10 +3512,6 @@ GUI:
When the "+0+0" is omitted it works.
8 When starting an external command, and 'guipty' set, BS and DEL are mixed
up. Set erase character somehow?
8 A dead circumflex followed by a space should give the '^' character
(Rommel). Look how xterm does this.
Also: Bednar has some code for dead key handling.
Also: Nedit 5.0.2 with USE_XMIM does it right. (Gaya)
8 The compose key doesn't work properly (Cepas). Both for Win32 and X11.
7 The cursor in an inactive window should be hollow. Currently it's not
visible.
@ -3614,17 +3608,8 @@ Macintosh:
"Small" problems:
- Can't disable terminal flow control, to enable the use of CTRL-S and
CTRL-Q. Add an option for it?
- When using e_secure in do_one_cmd() mention the command being executed,
otherwise it's not clear where it comes from.
- When the quickfix window is open and executing ":echo 'hello'" using the
Command-line window, the text is immediately removed by the redrawing.
(Michael Henry, 2008 Nov 1)
Generic solution: When redrawing while there is a message on the
cmdline, don't erase the display but draw over the existing text.
Other solution, redraw after closing the cmdline window, before executing
the command.
9 For Turkish vim_tolower() and vim_toupper() also need to use utf_
functions for characters below 0x80. (Sertacyildiz)
9 When the last edited file is a help file, using '0 in a new Vim doesn't
@ -4084,8 +4069,6 @@ Spell checking:
- Considering Hunspell 1.1.4:
What does MAXNGRAMSUGS do?
Is COMPLEXPREFIXES necessary when we have flags for affixes?
- Support spelling words in CamelCase as if they were two separate words.
Requires some option to enable it. (Timothy Knox)
- There is no Finnish spell checking file. For openoffice Voikko is now
used, which is based on Malaga: http://home.arcor.de/bjoern-beutel/malaga/
(Teemu Likonen)
@ -4460,8 +4443,6 @@ Vim script language:
7 Execute a function with standard option values. No need to save and
restore option values. Especially useful for new options. Problem: how
to avoid a performance penalty (esp. for string options)?
8 Add referring to key options with "&t_xx". Both for "echo &t_xx" and
":let &t_xx =". Useful for making portable mappings.
- range for ":exec", pass it on to the executed command. (Webb)
8 ":{range}source": source the lines from the current file.
You can already yank lines and use :@" to execute them.
@ -4692,8 +4673,6 @@ Messages:
- Delete message after new command has been entered and have waited for key.
Perhaps after ten seconds?
- Make message history available in "msg" variables: msg1, msg2, .. msg9.
8 When reading from stdin allow suppressing the "reading from stdin"
message.
9 Check handling of overwriting of messages and delays:
Very wrong: errors while redrawing cause endless loop.
When switching to another file and screen scrolls because of the long
@ -4872,9 +4851,6 @@ Win32 GUI:
GUI:
8 Make inputdialog() work for Photon, Amiga.
- <C--> cannot be mapped. Should be possible to recognize this as a
normal "-" with the Ctrl modifier.
7 Implement ":popup" for other systems than Windows.
8 Implement ":tearoff" for other systems than Win32 GUI.
6 Implement ":untearoff": hide a torn-off menu.
@ -5984,9 +5960,6 @@ Registers:
8 Add put command that overwrites existing text. Should also work for
blocks. Useful to move text around in a table. Works like using "R ^R r"
for every line.
6 When yanking into the unnamed registers several times, somehow make the
previous contents also available (like it's done for deleting). What
register names to use? g"1, g"2, etc.?
- When appending to a register, also report the total resulting number of
lines. Or just say "99 more lines yanked", add the "more".
- When inserting a register in Insert mode with CTRL-R, don't insert comment

View File

@ -1,4 +1,4 @@
*usr_11.txt* For Vim version 8.2. Last change: 2020 Jan 17
*usr_11.txt* For Vim version 8.2. Last change: 2020 Jul 08
VIM USER MANUAL - by Bram Moolenaar
@ -211,7 +211,7 @@ will automatically delete it:
- The flag that the file was modified is not set.
- The process is not running.
You can programatically deal with this situation with the |FileChangedShell|
You can programmatically deal with this situation with the |FileChangedShell|
autocommand event.
@ -256,7 +256,7 @@ O Open the file readonly. Use this when you just want to view the file and
E Edit the file anyway. Use this with caution! If the file is being edited
in another Vim, you might end up with two versions of the file. Vim will
try to warn you when this happens, but better be safe then sorry.
try to warn you when this happens, but better be safe than sorry.
R Recover the file from the swap file. Use this if you know that the swap
file contains changes that you want to recover.

View File

@ -1,4 +1,4 @@
*usr_22.txt* For Vim version 8.2. Last change: 2019 Dec 07
*usr_22.txt* For Vim version 8.2. Last change: 2020 Mar 28
VIM USER MANUAL - by Bram Moolenaar
@ -84,7 +84,7 @@ browser. This is what you get: >
a................Hiding Files or Directories................|netrw-a|
mb...............Bookmarking a Directory....................|netrw-mb|
gb...............Changing to a Bookmarked Directory.........|netrw-gb|
c................Make Browsing Directory The Current Dir....|netrw-c|
cd...............Make Browsing Directory The Current Dir....|netrw-c|
d................Make A New Directory.......................|netrw-d|
D................Deleting Files or Directories..............|netrw-D|
<c-h>............Edit File/Directory Hiding List............|netrw-ctrl-h|
@ -121,7 +121,7 @@ The following normal-mode commands may be used to control the browser display:
As a sampling of extra normal-mode commands:
c Change Vim's notion of the current directory to be
cd Change Vim's notion of the current directory to be
the same as the browser directory. (see
|g:netrw_keepdir| to control this, too)
R Rename the file or directory under the cursor; a

View File

@ -434,7 +434,7 @@ redefined without changing the search pattern.
/\f\+
The "\f" items stands for file name characters. Thus this matches a sequence
The "\f" item stands for file name characters. Thus this matches a sequence
of characters that can be a file name.
Which characters can be part of a file name depends on the system you are
using. On MS-Windows, the backslash is included, on Unix it is not. This is

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.2. Last change: 2020 Mar 15
*usr_41.txt* For Vim version 8.2. Last change: 2020 Jun 13
VIM USER MANUAL - by Bram Moolenaar
@ -41,6 +41,12 @@ prefer. And you can use any colon command in it (commands that start with a
specific file type. A complicated macro can be defined by a separate Vim
script file. You can think of other uses yourself.
If you are familiar with Python, you can find a comparison between
Python and Vim script here, with pointers to other documents:
https://gist.github.com/yegappan/16d964a37ead0979b05e655aa036cad0
And if you are familiar with Javascript:
https://w0rp.com/blog/post/vim-script-for-the-javascripter/
Let's start with a simple example: >
:let i = 1
@ -93,6 +99,8 @@ and the value of the variable i. Since i is one, this will print:
Then there is the ":let i += 1" command. This does the same thing as
":let i = i + 1". This adds one to the variable i and assigns the new value
to the same variable.
Note: this is how it works in legacy Vim script, which is what we discuss in
this file. In Vim9 script it's a bit different, see |usr_46.txt|.
The example was given to explain the commands, but would you really want to
make such a loop, it can be written much more compact: >
@ -631,6 +639,7 @@ List manipulation: *list-functions*
deepcopy() make a full copy of a List
filter() remove selected items from a List
map() change each List item
reduce() reduce a List to a value
sort() sort a List
reverse() reverse the order of a List
uniq() remove copies of repeated adjacent items
@ -644,6 +653,7 @@ List manipulation: *list-functions*
min() minimum value in a List
count() count number of times a value appears in a List
repeat() repeat a List multiple times
flatten() flatten a List
Dictionary manipulation: *dict-functions*
get() get an entry without an error for a wrong key
@ -687,6 +697,7 @@ Floating point computation: *float-functions*
sinh() hyperbolic sine
cosh() hyperbolic cosine
tanh() hyperbolic tangent
isinf() check for infinity
isnan() check for not a number
Other computation: *bitwise-function*
@ -695,6 +706,8 @@ Other computation: *bitwise-function*
or() bitwise OR
xor() bitwise XOR
sha256() SHA-256 hash
rand() get a pseudo-random number
srand() initialize seed used by rand()
Variables: *var-functions*
type() type of a variable
@ -724,6 +737,7 @@ Cursor and mark position: *cursor-functions* *mark-functions*
getcurpos() get position of the cursor
getpos() get position of cursor, mark, etc.
setpos() set position of cursor, mark, etc.
getmarklist() list of global/local marks
byte2line() get line number at a specific byte count
line2byte() byte count at a specific line
diff_filler() get the number of filler lines above a line
@ -743,6 +757,7 @@ Working with text in the current buffer: *text-functions*
prevnonblank() find previous non-blank line
search() find a match for a pattern
searchpos() find a match for a pattern
searchcount() get number of matches before/after the cursor
searchpair() find the other end of a start/skip/end
searchpairpos() find the other end of a start/skip/end
searchdecl() search for the declaration of a name
@ -790,6 +805,7 @@ System functions and manipulation of files:
hostname() name of the system
readfile() read a file into a List of lines
readdir() get a List of file names in a directory
readdirex() get a List of file information in a directory
writefile() write a List of lines or Blob into a file
Date and Time: *date-functions* *time-functions*
@ -826,9 +842,11 @@ Buffers, windows and the argument list:
listener_remove() remove a listener callback
win_findbuf() find windows containing a buffer
win_getid() get window ID of a window
win_gettype() get type of window
win_gotoid() go to window with ID
win_id2tabwin() get tab and window nr from window ID
win_id2win() get window nr from window ID
win_splitmove() move window to a split of another window
getbufinfo() get a list with buffer information
gettabinfo() get a list with tab page information
getwininfo() get a list with window information
@ -905,6 +923,7 @@ Interactive: *interactive-functions*
getchar() get a character from the user
getcharmod() get modifiers for the last typed character
getmousepos() get last known mouse position
echoraw() output characters as-is
feedkeys() put characters in the typeahead queue
input() get a line from the user
inputlist() let the user pick an entry from a list
@ -946,6 +965,7 @@ Mappings and Menus: *mapping-functions*
hasmapto() check if a mapping exists
mapcheck() check if a matching mapping exists
maparg() get rhs of a mapping
mapset() restore a mapping
menu_info() get information about a menu item
wildmenumode() check if the wildmode is active
@ -966,11 +986,13 @@ Testing: *test-functions*
test_autochdir() enable 'autochdir' during startup
test_override() test with Vim internal overrides
test_garbagecollect_now() free memory right now
test_garbagecollect_soon() set a flag to free memory soon
test_getvalue() get value of an internal variable
test_ignore_error() ignore a specific error message
test_null_blob() return a null Blob
test_null_channel() return a null Channel
test_null_dict() return a null Dict
test_null_function() return a null Funcref
test_null_job() return a null Job
test_null_list() return a null List
test_null_partial() return a null Partial function
@ -980,6 +1002,10 @@ Testing: *test-functions*
test_feedinput() add key sequence to input buffer
test_option_not_set() reset flag indicating option was set
test_scrollbar() simulate scrollbar movement in the GUI
test_refcount() return an expression's reference count
test_srand_seed() set the seed value for srand()
test_unknown() return a value with unknown type
test_void() return a value with void type
Inter-process communication: *channel-functions*
ch_canread() check if there is something to read
@ -991,8 +1017,8 @@ Inter-process communication: *channel-functions*
ch_readraw() read a raw message from a channel
ch_sendexpr() send a JSON message over a channel
ch_sendraw() send a raw message over a channel
ch_evalexpr() evaluates an expression over channel
ch_evalraw() evaluates a raw string over channel
ch_evalexpr() evaluate an expression over channel
ch_evalraw() evaluate a raw string over channel
ch_status() get status of a channel
ch_getbufnr() get the buffer number of a channel
ch_getjob() get the job associated with a channel
@ -1048,6 +1074,7 @@ Terminal window: *terminal-functions*
term_setkill() set signal to stop job in a terminal
term_setrestore() set command to restore a terminal
term_setsize() set the size of a terminal
term_setapi() set terminal JSON API function name prefix
Popup window: *popup-window-functions*
popup_create() create popup centered in the screen
@ -1066,9 +1093,13 @@ Popup window: *popup-window-functions*
popup_close() close one popup
popup_clear() close all popups
popup_filter_menu() select from a list of items
popup_filter_yesno() blocks until 'y' or 'n' is pressed
popup_filter_yesno() block until 'y' or 'n' is pressed
popup_getoptions() get current options for a popup
popup_getpos() get actual position and size of a popup
popup_findinfo() get window ID for popup info window
popup_findpreview() get window ID for popup preview window
popup_list() get list of all popup window IDs
popup_locate() get popup window ID from its screen position
Timers: *timer-functions*
timer_start() create a timer
@ -1088,8 +1119,27 @@ Prompt Buffer: *promptbuffer-functions*
prompt_setinterrupt() set interrupt callback for a buffer
prompt_setprompt() set the prompt text for a buffer
Text Properties: *text-property-functions*
prop_add() attach a property at a position
prop_clear() remove all properties from a line or lines
prop_find() search for a property
prop_list() return a list of all properties in a line
prop_remove() remove a property from a line
prop_type_add() add/define a property type
prop_type_change() change properties of a type
prop_type_delete() remove a text property type
prop_type_get() return the properties of a type
prop_type_list() return a list of all property types
Sound: *sound-functions*
sound_clear() stop playing all sounds
sound_playevent() play an event's sound
sound_playfile() play a sound file
sound_stop() stop playing a sound
Various: *various-functions*
mode() get current editing mode
state() get current busy state
visualmode() last visual mode used
exists() check if a variable, function, etc. exists
has() check if a feature is supported in Vim
@ -1098,6 +1148,10 @@ Various: *various-functions*
did_filetype() check if a FileType autocommand was used
eventhandler() check if invoked by an event handler
getpid() get process ID of Vim
getimstatus() check if IME status is active
interrupt() interrupt script execution
windowsversion() get MS-Windows version
terminalprops() properties of the terminal
libcall() call a function in an external library
libcallnr() idem, returning a number
@ -1106,6 +1160,7 @@ Various: *various-functions*
undotree() return the state of the undo tree
getreg() get contents of a register
getreginfo() get information about a register
getregtype() get type of a register
setreg() set contents and type of a register
reg_executing() return the name of the register being executed
@ -1115,12 +1170,14 @@ Various: *various-functions*
wordcount() get byte/word/char count of buffer
luaeval() evaluate Lua expression
luaeval() evaluate |Lua| expression
mzeval() evaluate |MzScheme| expression
perleval() evaluate Perl expression (|+perl|)
py3eval() evaluate Python expression (|+python3|)
pyeval() evaluate Python expression (|+python|)
pyxeval() evaluate |python_x| expression
rubyeval() evaluate |Ruby| expression
debugbreak() interrupt a program being debugged
==============================================================================

View File

@ -1,8 +1,8 @@
*usr_45.txt* For Vim version 8.2. Last change: 2008 Nov 15
*usr_45.txt* For Vim version 8.2. Last change: 2020 Jun 11
VIM USER MANUAL - by Bram Moolenaar
Select your language
Select your language (locale)
The messages in Vim can be given in several languages. This chapter explains
@ -15,7 +15,7 @@ in various languages is explained.
|45.4| Editing files with a different encoding
|45.5| Entering language text
Next chapter: |usr_90.txt| Installing Vim
Next chapter: |usr_46.txt| Write plugins using Vim9 script
Previous chapter: |usr_44.txt| Your own syntax highlighted
Table of contents: |usr_toc.txt|
@ -408,6 +408,6 @@ Don't type the spaces. See |i_CTRL-V_digit| for the details.
==============================================================================
Next chapter: |usr_90.txt| Installing Vim
Next chapter: |usr_46.txt| Write plugins using Vim9 script
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

192
runtime/doc/usr_46.txt Normal file
View File

@ -0,0 +1,192 @@
*usr_46.txt* For Vim version 8.2. Last change: 2020 Jun 14
VIM USER MANUAL - by Bram Moolenaar
Write plugins using Vim9 script
The Vim9 script language is used for writing plugins, especially larger ones
that use multiple files. This chapter explains how to split up a plugin into
modules, import and export items and keep the rest local.
|46.1| Introduction
|46.2| Variable declarations
|46.3| Functions and types
|46.?| Using a Vim9 script from legacy script
Next chapter: |usr_90.txt| Installing Vim
Previous chapter: |usr_45.txt| Select your language (locale)
Table of contents: |usr_toc.txt|
==============================================================================
*46.1* Introduction *vim9-script-intro*
Vim9 script was designed to make it easier to write large Vim scripts. It
looks more like other script languages, especially Typescript. Also,
functions are compiled into instructions that can be executed quickly. This
makes Vim9 script a lot faster, up to a 100 times.
The basic idea is that a script file has items that are private, only used
inside the script file, and items that are exported, used outside of the
script file. The exported items can then be used by scripts that import them.
That makes very clear what is defined where.
Let's start with an example, a script that exports one function and has one
private function: >
vim9script " This indicates a Vim9 script file,
export def GetMessage(): string
let result = ''
...
result = GetPart(count)
...
return result
enddef
def GetPart(nr: number): string
if nr == 4
return 'yes'
else
return 'no'
endif
enddef
The `vim9script` command must be the very first command in the file. Without
it Vim will assume legacy script syntax.
The `export def GetMessage(): string` line starts with `export`, meaning that
this function can be imported and called by other scripts. The line
`def GetPart(...` does not start with `export`, this is a script-local
function, it can only be used inside this script file.
In the `export def GetMessage(): string` line you will notice the colon and
the return type. Vim9 functions, defined with `def`, require specifying the
type of arguments and the return type. That way Vim can compile the code
efficiently. The GetPart function defines an argument "nr" of type "number".
Notice that the assignment `result = GetPart(count)` does not use the `let`
command. That is explained in the next section.
==============================================================================
*46.2* Variable declarations *vim9-declarations*
In Vim9 script variables are declared once with a `:let` or `:const` command.
Assigning a value is done without `:let` and it is not possible to `:unlet`
the variable.
In most cases you will want to declare the variable and initialize it at the
same time: >
let myText = 'some text'
...
myText = 'other text'
The type of the variable will be inferred from the expression. In this case
it is a string. If you initialize with a number, then the type is number: >
let myNumber = 1234
...
myNumber = 0
If you try to assign a string to this variable, you will get an error: >
let myNumber = 'this fails!'
In the rare case you want a variable that can take values of any type, you
have to specify the type: >
let myVar: any = 1234
myVar = 'text also works'
You can also declare a variable without assigning a value. In that case Vim
will initialize it to zero or empty: >
let word: string
if condition
word = 'yes'
else
word = 'no'
endif
Although it's shorter to do: >
let word = condition ? 'yes' : 'no'
==============================================================================
*46.3* Functions and types
Legacy Vim script does have type checking, but this happens at runtime, when
the code is executed. And it's permissive, often a computation gives an
unexpected value instead of reporting an error. Thus you can define a
function and think it's fine, but see a problem only later when it is called: >
let s:collected = ''
func ExtendAndReturn(add)
let s:collected += a:add
return s:collected
endfunc
Can you spot the error? Try this: >
echo ExtendAndReturn('text')
And you'll see zero. Why? Because in legacy Vim script "+=" will convert the
arguments to numbers, and any string without a number results in zero!
With `:def` the type checking happens when compiling the function. For that
you need to specify the argument types and the return type. Also notice that
the argument is used without the "a:" prefix: >
let s:collected = ''
def ExtendAndReturn(add: string): string
s:collected += add
return s:collected
enddef
defcompile
Here we use `:defcompile` to do the compilation right away, without it the
compilation would happen when the function is called. Vim will tell you what
you did wrong: >
E1013: type mismatch, expected number but got string
Vim9 script is strict, it uses the "+" operator only for numbers and floats.
For string concatenation ".." must be used. This avoids mistakes and avoids
the automatic conversion that gave a surprising result above. So you change
the first line of the function to: >
s:collected ..= add
And now it works.
If the function does not return anything, just leave out the return type: >
def ReportResult(result: string)
echo 'The result is: ' .. result
enddef
This is also checked, if you try to return a value you'll get an error.
In case you don't care about types or have a function that does work with
multiple types, you can use the "any" type: >
def Store(key: string, value: any)
resultDict[key] = value
enddef
==============================================================================
*46.?* Using a Vim9 script from legacy script *source-vim9-script*
In some cases you have a legacy Vim script where you want to use items from a
Vim9 script. For example in your .vimrc you want to initialize a plugin. The
best way to do this is to use `:import`. For example: >
import Init as NiceInit from 'myNicePlugin.vim'
call NiceInit('today')
This finds the exported function "Init" in the Vim9 script file and makes it
available as script-local item "NiceInit". `:import` always uses the script
namespace, even when "s:" is not given. If "myNicePlugin.vim" was already
sourced it is not sourced again.
Besides avoiding putting any items in the global namespace (where name clashes
can cause unexpected errors), this also means the script is sourced only once,
no matter how many times items from it are imported.
In some cases, e.g. for testing, you may just want to source the Vim9 script.
That is OK, but then only global items will be available. The Vim9 script
will have to make sure to use a unique name for these global items. Example: >
source ~/.vim/extra/myNicePlugin.vim
call g:NicePluginTest()
==============================================================================
Next chapter: |usr_90.txt| Installing Vim
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*usr_90.txt* For Vim version 8.2. Last change: 2008 Sep 10
*usr_90.txt* For Vim version 8.2. Last change: 2020 Jun 11
VIM USER MANUAL - by Bram Moolenaar
@ -15,7 +15,7 @@ upgrading to a new version is done.
|90.4| Common installation issues
|90.5| Uninstalling Vim
Previous chapter: |usr_45.txt| Select your language
Previous chapter: |usr_46.txt| Write plugins using Vim9 script
Table of contents: |usr_toc.txt|
==============================================================================
@ -226,7 +226,7 @@ We will use "82" here, which is version 8.2.
This is all you need for the second method. Just launch the executable, and
follow the prompts.
For the first method you must chose one of the binary archives. These are
For the first method you must choose one of the binary archives. These are
available:
gvim82.zip The normal MS-Windows GUI version.

View File

@ -1,4 +1,4 @@
*usr_toc.txt* For Vim version 8.2. Last change: 2019 May 24
*usr_toc.txt* For Vim version 8.2. Last change: 2020 Jun 15
VIM USER MANUAL - by Bram Moolenaar
@ -42,7 +42,8 @@ Tuning Vim
|usr_42.txt| Add new menus
|usr_43.txt| Using filetypes
|usr_44.txt| Your own syntax highlighted
|usr_45.txt| Select your language
|usr_45.txt| Select your language (locale)
|usr_46.txt| Write plugins using Vim9 script
Making Vim Run
|usr_90.txt| Installing Vim
@ -339,6 +340,12 @@ Make Vim work as you like it.
|45.4| Editing files with a different encoding
|45.5| Entering language text
|usr_46.txt| Write plugins using Vim9 script
|46.1| Introduction
|46.2| Variable declarations
|46.3| Functions and types
|46.?| Using a Vim9 script from legacy script
==============================================================================
Making Vim Run ~

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 8.2. Last change: 2020 Mar 19
*various.txt* For Vim version 8.2. Last change: 2020 Jul 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -251,14 +251,20 @@ g8 Print the hex values of the bytes used in the
it to append a Vim command. See |:bar|.
If {cmd} contains "%" it is expanded to the current
file name. Special characters are not escaped, use
quotes to avoid their special meaning: >
file name, "#" is expanded to the alternate file name.
Special characters in the file name are not escaped,
use quotes to avoid their special meaning: >
:!ls "%"
< If the file name contains a "$" single quotes might
work better (but a single quote causes trouble): >
< If the file name contains a "$" then single quotes
might work better, but this only works if the file
name does not contain a single quote: >
:!ls '%'
< This should always work, but it's more typing: >
:exe "!ls " . shellescape(expand("%"))
< To get a literal "%" or "#" prepend it with a
backslash. For example, to list all files starting
with "%": >
:!ls \%*
<
A newline character ends {cmd}, what follows is
interpreted as a following ":" command. However, if
@ -375,6 +381,7 @@ m *+hangul_input* Hangul input support |hangul|
*+iconv* Compiled with the |iconv()| function
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
T *+insert_expand* |insert_expand| Insert mode completion
m *+ipv6* Support for IPv6 networking |channel|
m *+job* starting and stopping jobs |job|
S *+jumplist* |jumplist|
B *+keymap* |'keymap'|
@ -463,7 +470,7 @@ B *+vartabs* Variable-width tabstops. |'vartabstop'|
N *+viminfo* |'viminfo'|
*+vertsplit* Vertically split windows |:vsplit|; Always enabled
since 8.0.1118.
N *+virtualedit* |'virtualedit'|
N *+virtualedit* |'virtualedit'| Always enabled since 8.1.826.
T *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
T *+visualextra* extra Visual mode commands |blockwise-operators|
T *+vreplace* |gR| and |gr|
@ -542,7 +549,7 @@ N *+X11* Unix only: can restore window title |X11|
locked or the variable type is changed, then further
command output messages will cause errors.
To get the output of one command the |execute()|
function can be used.
function can be used instead of redirection.
:redi[r] =>> {var} Append messages to an existing variable. Only string
variables can be used.
@ -747,7 +754,7 @@ up mappings to simulate the commands that less supports. Otherwise, you can
still use the Vim commands.
This isn't perfect. For example, when viewing a short file Vim will still use
the whole screen. But it works good enough for most uses, and you get syntax
the whole screen. But it works well enough for most uses, and you get syntax
highlighting.
The "h" key will give you a short overview of the available commands.

View File

@ -7882,7 +7882,7 @@ Files: src/buffer.c, src/ex_cmds.c, src/fileio.c, src/globals.h,
Patch 6.1.221
Problem: Changing case may not work properly, depending on the current
locale.
Solution: Add the 'casemap' option to let the user chose how changing case
Solution: Add the 'casemap' option to let the user choose how changing case
is to be done.
Also fix lowering case when an UTF-8 character doesn't keep the
same byte length.

View File

@ -1,4 +1,4 @@
*version8.txt* For Vim version 8.2. Last change: 2020 Feb 04
*version8.txt* For Vim version 8.2. Last change: 2020 Jun 08
VIM REFERENCE MANUAL by Bram Moolenaar
@ -30777,7 +30777,7 @@ Solution: Use a double quoted string. Add a test.
Files: src/ex_docmd.c, src/testdir/test_mksession.vim
Patch 8.1.0804
Problem: Crash when setting v:errmsg to empty list. (Jaon Franklin)
Problem: Crash when setting v:errmsg to empty list. (Jason Franklin)
Solution: Separate getting value and assigning result.
Files: src/eval.c, src/testdir/test_eval_stuff.vim
@ -33684,8 +33684,8 @@ Solution: Also change the textprop implementation.
Files: src/textprop.c
Patch 8.1.1279
Problem: Cannot set 'spellang' to "sr@latin". (Bojan Stipic)
Solution: Allow using '@' in 'spellang'. (closes #4342)
Problem: Cannot set 'spelllang' to "sr@latin". (Bojan Stipic)
Solution: Allow using '@' in 'spelllang'. (closes #4342)
Files: src/option.c, src/testdir/gen_opt_test.vim
Patch 8.1.1280

View File

@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 8.2. Last change: 2019 Dec 17
*vi_diff.txt* For Vim version 8.2. Last change: 2020 Jun 07
VIM REFERENCE MANUAL by Bram Moolenaar
@ -135,7 +135,6 @@ Support for different systems.
- Amiga (500, 1000, 1200, 2000, 3000, 4000, ...).
- MS-Windows
- VMS
- BeOS
- Macintosh
- IBM OS/390
Note that on some systems features need to be disabled to reduce
@ -162,7 +161,7 @@ Graphical User Interface (GUI). |gui|
define your own menus. Better support for CTRL/SHIFT/ALT keys in
combination with special keys and mouse. Supported for various
platforms, such as X11 (with Motif and Athena interfaces), GTK, Win32
(Windows 95 and later), BeOS, Amiga and Macintosh.
(Windows XP and later), Amiga and Macintosh.
Multiple windows and buffers. |windows.txt|
Vim can split the screen into several windows, each editing a

View File

@ -147,7 +147,7 @@ Se ":help search\-pattern" for tilg
{kommando} fortolkes som en Ex-kommando.
Hvis {kommando} indeholder mellemrum, s<> skal den omsluttes af
dobbelte citationstegn (det afh<66>nger af den skal der bruges).
Eksempel: Vim "+set si" main.c
Eksempel: vim "+set si" main.c
.br
Bem<EFBFBD>rk: Du kan bruge op til 10 "+"- eller "\-c"-kommandoer.
.TP

View File

@ -147,7 +147,7 @@ Se ":help search\-pattern" for tilgængelige søgemønstre.
{kommando} fortolkes som en Ex-kommando.
Hvis {kommando} indeholder mellemrum, så skal den omsluttes af
dobbelte citationstegn (det afhænger af den skal der bruges).
Eksempel: Vim "+set si" main.c
Eksempel: vim "+set si" main.c
.br
Bemærk: Du kan bruge op til 10 "+"- eller "\-c"-kommandoer.
.TP

View File

@ -156,7 +156,7 @@ Ex
{commande} est interpr<70>t<EFBFBD>e comme une commande Ex.
Si la {commande} contient des espaces, elle doit <20>tre entour<75>e
de doubles-apostrophes (cela d<>pend du shell utilis<69>).
Exemple : Vim "+set si" main.c
Exemple : vim "+set si" main.c
.br
Note : vous pouvez utiliser jusqu'<27> 10 commandes "+" ou "\-c".
.TP

View File

@ -156,7 +156,7 @@ Exécute {commande} après la lecture du premier fichier.
{commande} est interprétée comme une commande Ex.
Si la {commande} contient des espaces, elle doit être entourée
de doubles-apostrophes (cela dépend du shell utilisé).
Exemple : Vim "+set si" main.c
Exemple : vim "+set si" main.c
.br
Note : vous pouvez utiliser jusqu'à 10 commandes "+" ou "\-c".
.TP

View File

@ -150,7 +150,7 @@ primo file
{comando} <20> interpretato come un comando Ex.
Se il {comando} contiene spazi deve essere incluso fra doppi apici
(o altro delimitatore, a seconda della shell che si sta usando).
Esempio: Vim "+set si" main.c
Esempio: vim "+set si" main.c
.br
Note: Si possono avere fino a 10 comandi "+" o "\-c".
.TP

View File

@ -150,7 +150,7 @@ primo file è stato letto.
{comando} è interpretato come un comando Ex.
Se il {comando} contiene spazi deve essere incluso fra doppi apici
(o altro delimitatore, a seconda della shell che si sta usando).
Esempio: Vim "+set si" main.c
Esempio: vim "+set si" main.c
.br
Note: Si possono avere fino a 10 comandi "+" o "\-c".
.TP

View File

@ -150,7 +150,7 @@ wzorce wyszukiwania.
{polecenie} jest interpretowane jako polecenie Ex.
Je<EFBFBD>li {poleceni} zawiera bia<69>e znaki musi by<62> umieszczone w podw<64>jnych
cudzys<EFBFBD>owach (zale<6C>y to od u<>ywanej pow<6F>oki).
Przyk<EFBFBD>ad: Vim "+set si" main.c
Przyk<EFBFBD>ad: vim "+set si" main.c
.br
Uwaga: Mo<4D>na u<>y<EFBFBD> do 10 polece<63> "+" lub "\-c".
.TP

View File

@ -150,7 +150,7 @@ wzorce wyszukiwania.
{polecenie} jest interpretowane jako polecenie Ex.
Jeśli {poleceni} zawiera białe znaki musi być umieszczone w podwójnych
cudzysłowach (zależy to od używanej powłoki).
Przykład: Vim "+set si" main.c
Przykład: vim "+set si" main.c
.br
Uwaga: Można użyć do 10 poleceń "+" lub "\-c".
.TP

544
runtime/doc/vim-tr.1 Normal file
View File

@ -0,0 +1,544 @@
.TH VIM 1 "11 Nisan 2006"
.SH AD
vim \- Vi IMproved, bir programc<6D>n<EFBFBD>n metin d<>zenleyicisi
.SH <EFBFBD>ZET
.br
.B vim
[se<73>enekler] [dosya ..]
.br
.B vim
[se<73>enekler] \-
.br
.B vim
[se<73>enekler] \-t etiket
.br
.B vim
[se<73>enekler] \-q [hatadosyas<61>]
.PP
.br
.B ex
.br
.B view
.br
.B gvim
.B gview
.B evim
.B eview
.br
.B rvim
.B rview
.B rgvim
.B rgview
.SH TANIM
.B Vim,
Vi ile yukar<61>ya do<64>ru uyumlu olan bir metin d<>zenleyicisidir.
Her t<>r d<>z metni d<>zenlemede kullan<61>labilir.
<EFBFBD>zellikle programlar<61> d<>zenlemede yararl<72>d<EFBFBD>r.
.PP
Vi <20>zerine yap<61>lm<6C><6D> bir<69>ok geli<6C>tirme ve iyile<6C>tirmeyi i<>erir:
<EFBFBD>ok d<>zeyli geri alma, <20>oklu pencereler ve arabellekler, s<>zdizim vurgulama,
komut sat<61>r<EFBFBD> d<>zenleme, dosya ad<61> tamamlama, <20>evrimi<6D>i yard<72>m, g<>rsel se<73>im vb.
.B Vim
ve Vi aras<61>ndaki de<64>i<EFBFBD>ikliklerin bir <20>zeti i<>in ":help vi_diff.txt"
dosyas<EFBFBD>na bir g<>z at<61>n.
.PP
.B Vim'i
<EFBFBD>al<EFBFBD><EFBFBD>t<EFBFBD>r<EFBFBD>rken gerekli olan yard<72>m<EFBFBD>n <20>o<EFBFBD>u <20>evrimi<6D>i yard<72>m sisteminden elde
edilebilir. Bunun i<>in ":help" komutunu kullanabilirsiniz.
A<EFBFBD>a<EFBFBD><EFBFBD>da <20>EVR<56>M<EFBFBD><4D><EFBFBD> YARDIM b<>l<EFBFBD>m<EFBFBD>ne bak<61>n.
.PP
Genelde
.B Vim
tek bir dosyay<61> d<>zenlemek i<>in <20>u komutla <20>al<61><6C>t<EFBFBD>r<EFBFBD>l<EFBFBD>r:
.PP
vim dosya
.PP
Biraz daha a<>acak olursak:
.PP
vim [se<73>enekler] [dosyalistesi]
.PP
E<EFBFBD>er dosya listesi sa<73>lanmam<61><6D>sa, d<>zenleyici bo<62> bir arabellek a<>ar.
Bunun d<><64><EFBFBD>nda a<>a<EFBFBD><61>daki d<>rt se<73>enekten bir tanesi de bir veya birden <20>ok
dosyay<EFBFBD> d<>zenlemek i<>in kullan<61>labilir.
.TP 12
dosya ..
Dosya adlar<61>n<EFBFBD>n bir listesi.
Bunlardan ilki ekrana getirilip arabelle<6C>e y<>klenir.
<EFBFBD>mle<EFBFBD> arabelle<6C>in ilk sat<61>r<EFBFBD>nda konumland<6E>r<EFBFBD>l<EFBFBD>r.
Di<EFBFBD>er dosyalara ":next" komutu ile ge<67>ebilirsiniz.
Ad<EFBFBD> tire ile ba<62>layan bir dosyay<61> d<>zenlemek i<>in dosya listesinin ba<62><61>na
"\-\-" koyun.
.TP
\-
D<EFBFBD>zenlenecek dosya stdin'den okunur. Komutlar bir tty olmas<61> gereken
stderr'den okunur.
.TP
\-t {etiket}
D<EFBFBD>zenlenecek dosya ve bu dosyan<61>n ba<62>lang<6E><67> imle<6C> konumu bir "etiket"e
dayan<EFBFBD>r, bir t<>r b<>rakt<6B><74><EFBFBD>n<EFBFBD>z konumu belirten bir ayra<72> gibi.
Etiket dosyas<61>nda {etiket} aran<61>r, ili<6C>kin dosya <20>u anki dosya olur ve
ili<EFBFBD>kin komut <20>al<61><6C>t<EFBFBD>r<EFBFBD>l<EFBFBD>r.
Bu genelde C programlar<61> i<>in kullan<61>l<EFBFBD>r, {etiket} bu durumda bir i<>lev
olabilir.
Bunun sonucunda bu i<>levi i<>eren dosya o anki dosya olur ve imle<6C> bu
i<EFBFBD>levin ba<62>lang<6E>c<EFBFBD>na konumland<6E>r<EFBFBD>l<EFBFBD>r.
Ek bilgi i<>in: ":help tag\-commands".
.TP
\-q [hatadosyas<61>]
H<EFBFBD>zl<EFBFBD> d<>zelt kipinde ba<62>lat
[hatadosyas<61>] okunur ve ilk hata g<>r<EFBFBD>nt<6E>lenir.
E<EFBFBD>er [hatadosyas<61>] sa<73>lanmazsa, dosya ad<61> 'errorfile' se<73>ene<6E>inden al<61>n<EFBFBD>r
(<28>ntan<61>ml<6D> olarak Amiga i<>in "AztecC.Err", di<64>er sistemlerde "errors.err").
Sonraki hatalara ":cn" komutu ile ge<67>ilebilir.
Ek bilgi i<>in: ":help quickfix".
.PP
.B Vim
girilen komutun ad<61>na g<>re de<64>i<EFBFBD>ik bi<62>imde davran<61>r (<28>al<61><6C>t<EFBFBD>r<EFBFBD>labilir h<>l<EFBFBD>
ayn<EFBFBD> dosya olarak kalabilir).
.TP 10
vim
"Normal" kip, standart <20>al<61><6C>ma bi<62>imi.
.TP
ex
Ex kipinde ba<62>lat.
"\-e" de<64>i<EFBFBD>keni ile de ba<62>lat<61>labilir.
Normal kipe ":vi" komutu ile ge<67>ilebilir.
.TP
view
Saltokunur kipte ba<62>lat. Bu kipte dosya yaz<61>m<EFBFBD>na izin verilmez.
"\-R" de<64>i<EFBFBD>keni ile de ba<62>lat<61>labilir.
.TP
gvim gview
Grafik arabirim s<>r<EFBFBD>m<EFBFBD>.
Yeni bir pencere a<>ar.
"\-g" de<64>i<EFBFBD>keni ile de ba<62>lat<61>labilir.
.TP
evim eview
Kolay kipte ba<62>lat<61>lan grafik arabirim s<>r<EFBFBD>m<EFBFBD>.
Yeni bir pencere a<>ar.
"\-y" de<64>i<EFBFBD>keni ile de ba<62>lat<61>labilir.
.TP
rvim rview rgvim rgview
Yukar<EFBFBD>daki ile ayn<79>, ancak s<>n<EFBFBD>rlamalar i<>erir. Kabuk komutlar<61>
<EFBFBD>al<EFBFBD><EFBFBD>t<EFBFBD>r<EFBFBD>lamaz veya
.B Vim
ask<EFBFBD>ya al<61>namaz.
"\-Z" de<64>i<EFBFBD>keni ile de ba<62>lat<61>labilir.
.SH SE<EFBFBD>ENEKLER
Se<EFBFBD>enekler bir s<>ra g<>zetmeksizin dosya adlar<61>ndan <20>nce veya sonra
kullan<EFBFBD>labilir.
Herhangi bir de<64>i<EFBFBD>ken i<>ermeyen se<73>enekler bir tirenin ard<72>nda s<>ralanabilir.
.TP 12
+[num]
<EFBFBD>lk dosya i<>in imle<6C> "num" sat<61>r<EFBFBD>nda konumland<6E>r<EFBFBD>lacakt<6B>r.
E<EFBFBD>er "num" eksikse imle<6C> en son sat<61>rda ba<62>lar.
.TP
+/{dizge}
<EFBFBD>lk dosya i<>in imle<6C> {dizgi}'nin ilk e<>le<6C>mesinin oldu<64>u sat<61>rda
konumland<EFBFBD>r<EFBFBD>lacakt<EFBFBD>r.
Kullan<EFBFBD>labilir arama dizgileri i<>in ":help search\-pattern" yaz<61>n.
.TP
+{komut}
.TP
\-c {komut}
<EFBFBD>lk dosya okunduktan sonra {komut} <20>al<61><6C>t<EFBFBD>r<EFBFBD>l<EFBFBD>r.
{komut} bir Ex komutu olarak i<>letilir.
E<EFBFBD>er {komut} bo<62>luk i<>eriyorsa <20>ift t<>rnak i<>erisine al<61>nmal<61>d<EFBFBD>r (bu
kullan<EFBFBD>lan kabu<62>a ba<62>l<EFBFBD>d<EFBFBD>r).
<EFBFBD>rnek: vim "+set si" main.c
.br
Not: 10 taneye kadar "+" veya "\-c" komutu kullanabilirsiniz.
.TP
\-S {dosya}
<EFBFBD>lk dosya okunduktan sonra {dosya} kaynak al<61>n<EFBFBD>r.
\-c "source {dosya}" bu komutun e<>de<64>eridir.
{dosya}, '\-' ile ba<62>layamaz.
E<EFBFBD>er {dosya} sa<73>lanmazsa "Session.vim" kullan<61>l<EFBFBD>r (yaln<6C>zca \-S son
de<EFBFBD>i<EFBFBD>ken olarak kullan<61>ld<6C><64><EFBFBD>nda i<>e yarar).
.TP
\-\-cmd {komut}
"\-c" komutu gibi, ancak komut herhangi bir vimrc dosyas<61>n<EFBFBD> i<>letmeden
<EFBFBD>nce <20>al<61><6C>t<EFBFBD>r<EFBFBD>l<EFBFBD>r.
"\-c" komutundan ba<62><61>ms<6D>z olarak bu komutlardan 10 taneye kadar
<EFBFBD>al<EFBFBD><EFBFBD>t<EFBFBD>rabilirsiniz.
.TP
\-A
E<EFBFBD>er
.B Vim
sa<EFBFBD>dan sola yaz<61>lan dosyalar<61> ve Arap<61>a klavye dizilimini kullanabilmesi i<>in
ARAP<EFBFBD>A deste<74>i ile derlenmi<6D>e bu se<73>enek
.B Vim'i
Arap<EFBFBD>a kipinde ba<62>lat<61>r ('arabic' se<73>ene<6E>i a<><61>l<EFBFBD>r). Aksi durumda
.B Vim
hata verip <20><>kar.
.TP
\-b
<EFBFBD>kili kip.
Bir <20>al<61><6C>t<EFBFBD>r<EFBFBD>labiliri veya ikili dosyay<61> d<>zenlemeye olanacak sa<73>layacak
birka<EFBFBD> se<73>enek ayarlan<61>r.
.TP
\-C
Uyumlu kip. 'compatible' se<73>ene<6E>ini ayarlar.
Bu kipte
.B Vim
bir .vimrc dosyas<61> var olsa bile genelde Vi gibi davran<61>r.
.TP
\-d
Kar<EFBFBD><EFBFBD>la<EFBFBD>t<EFBFBD>rma kipinde ba<62>lat.
Bir, iki, <20><> veya d<>rt adet dosya ad<61> de<64>i<EFBFBD>keni olmal<61>d<EFBFBD>r.
.B Vim
b<EFBFBD>t<EFBFBD>n dosyalar<61> yan yana a<>ar ve aralar<61>ndaki de<64>i<EFBFBD>iklikleri g<>sterir.
vimdiff(1) gibi <20>al<61><6C><EFBFBD>r.
.TP
\-d {ayg<79>t}
{ayg<79>t}'<27> bir u<>birim olarak kullanmak i<>in a<>ar.
Yaln<EFBFBD>zca Amiga'da <20>al<61><6C><EFBFBD>r.
<EFBFBD>rnek:
"\-d con:20/30/600/150".
.TP
\-D
Hata ay<61>klama kipi. Bir beti<74>in ilk komutunu <20>al<61><6C>t<EFBFBD>r<EFBFBD>rken hata ay<61>klama
kipine ge<67>er.
.TP
\-e
.B Vim'i
Ex kipinde ba<62>lat<61>r, "ex" <20>al<61><6C>t<EFBFBD>r<EFBFBD>labiliri ile ayn<79> i<>levi g<>r<EFBFBD>r.
.TP
\-E
.B Vim'i
geli<EFBFBD>tirilmi<EFBFBD> Ex kipinde ba<62>lat<61>r, "exim" <20>al<61><6C>t<EFBFBD>r<EFBFBD>labiliri ile ayn<79>
i<EFBFBD>levi g<>r<EFBFBD>r.
.TP
\-f
<EFBFBD>nplan. Grafik arabirim s<>r<EFBFBD>m<EFBFBD> i<>in
.B Vim
ba<EFBFBD>lad<EFBFBD><EFBFBD><EFBFBD> kabuktan ayr<79>lmayacak ve kendisini <20>atallamayacakt<6B>r.
Amiga'da,
.B Vim
yeni bir pencere a<>mak i<>in yeniden ba<62>lat<61>lmaz.
Bu se<73>enek
.B Vim
d<EFBFBD>zenleme oturumunun bitmesini bekleyecek bir program taraf<61>ndan
ba<EFBFBD>lat<EFBFBD>ld<EFBFBD><EFBFBD><EFBFBD>nda kullan<61>lmal<61>d<EFBFBD>r (<28>rn. mail).
Amiga'da ":sh" ve ":!" komutlar<61> <20>al<61><6C>mayacakt<6B>r.
.TP
\-\-nofork
<EFBFBD>nplan. Grafik arabirim s<>r<EFBFBD>m<EFBFBD> i<>in
.B Vim
ba<EFBFBD>lad<EFBFBD><EFBFBD><EFBFBD> kabuktan ayr<79>lmayacak ve kendisini <20>atallamayacakt<6B>r.
.TP
\-F
E<EFBFBD>er
.B Vim
sa<EFBFBD>dan sola yaz<61>lan dosyalar<61> ve Fars<72>a klavye dizilimini kullanabilmesi i<>in
FKMAP deste<74>i ile derlenmi<6D>se, bu se<73>enek
.B Vim'i
Fars<EFBFBD>a kipinde ba<62>lat<61>r ('fkmap' ve 'rightleft' se<73>enekleri a<><61>l<EFBFBD>r).
Aksi durumda
.B Vim
hata verip <20><>kar.
.TP
\-g
E<EFBFBD>er
.B Vim
grafik arabirim deste<74>i ile derlenmi<6D>se bu se<73>enek grafik arabirimi <20>al<61><6C>t<EFBFBD>r<EFBFBD>r.
E<EFBFBD>er grafik arabirim deste<74>i eklenmemi<6D>se
.B Vim
hata verir ve <20><>kar.
.TP
\-h
Komut sat<61>r<EFBFBD> de<64>i<EFBFBD>kenleri ve se<73>enekleri <20>zerine biraz yard<72>m sa<73>lar.
Bu komuttan sonra
.B Vim
<EFBFBD><EFBFBD>kar.
.TP
\-H
E<EFBFBD>er
.B Vim
sa<EFBFBD>dan sola yaz<61>lan dosyalar<61> ve <20>branca klavye dizilimini kullanabilmesi i<>in
RIGHTLEFT deste<74>i ile derlenmi<6D>se, bu se<73>enek
.B Vim'i
<EFBFBD>branca kipinde ba<62>lat<61>r ('hkmap' ve 'rightleft' se<73>enekleri a<><61>l<EFBFBD>r).
Aksi durumda
.B Vim
hata verir ve <20><>kar.
.TP
\-i {viminfo}
<EFBFBD>ntan<EFBFBD>ml<EFBFBD> "~/.viminfo" dosyas<61> yerine kullan<61>lacak olan viminfo dosyas<61>n<EFBFBD>
belirtmek i<>in kullan<61>l<EFBFBD>r.
Bu komut ayn<79> zamanda viminfo kullan<61>m<EFBFBD>n<EFBFBD> atlamak i<>in de kullan<61>labilir.
Bunun i<>in dosya ad<61> yerine "NONE" vermeniz yeterlidir.
.TP
\-L
\-r ile ayn<79>.
.TP
\-l
Lisp kipi.
Bu de<64>i<EFBFBD>ken 'lisp' ve 'showmatch' se<73>eneklerini a<>ar.
.TP
\-m
Dosya yazma se<73>ene<6E>i kapal<61>d<EFBFBD>r.
\'write' se<73>ene<6E>ini s<>f<EFBFBD>rlar.
Arabelle<EFBFBD>i h<>l<EFBFBD> de<64>i<EFBFBD>tirebilirsiniz, ancak dosyay<61> yazmak olanakl<6B> de<64>ildir.
.TP
\-M
De<EFBFBD>i<EFBFBD>ikliklere izin verilmez. 'modifiable' ve 'write' se<73>enekleri kapat<61>l<EFBFBD>r,
b<EFBFBD>ylece de<64>i<EFBFBD>iklik yap<61>lamaz ve dosyalar yaz<61>lamaz.
Bu se<73>enekleri yeniden a<><61>p de<64>i<EFBFBD>iklik yapmay<61> etkinle<6C>tirebilirsiniz.
.TP
\-N
Uyumsuz kip. 'no-compatible' se<73>ene<6E>ini s<>f<EFBFBD>rlar.
Bu se<73>enekle birlikte
.B Vim
biraz daha d<>zg<7A>nce <20>al<61><6C><EFBFBD>r, ancak bir .vimrc dosyas<61> olmamas<61>na ra<72>men
Vi ile daha az uyumludur.
.TP
\-n
Bir takas dosyas<61> kullan<61>lmaz.
<EFBFBD><EFBFBD>kme sonras<61> kurtarma olanakl<6B> olmayacakt<6B>r.
E<EFBFBD>er <20>ok yava<76> bir ortamda dosya <20>al<61><6C><EFBFBD>yorsan<61>z (<28>rn. disket) yararl<72> olabilir.
":set uc=0" ile de yap<61>labilir.
Geri almak i<>in ":set uc=200" yap<61>n.
.TP
\-nb
NetBeans i<>in bir d<>zenleyici sunucusu olur. Ayr<79>nt<6E>lar i<>in belgelere bak<61>n.
.TP
\-o[N]
N say<61>da pencereyi <20>st <20>ste a<>ar.
N verilmezse, her dosya i<>in bir pencere a<>ar.
.TP
\-O[N]
N say<61>da pencereyi yan yana a<>ar.
N verilmezse, her dosya i<>in bir pencere a<>ar.
.TP
\-p[N]
N say<61>da sekme a<>ar.
N verilmezse, her dosya i<>in bir sekme a<>ar.
.TP
\-R
Saltokunur kip.
\'readonly' se<73>ene<6E>i a<><61>l<EFBFBD>r.
Arabelle<EFBFBD>i h<>l<EFBFBD> de<64>i<EFBFBD>tirebilirsiniz, ancak yanl<6E><6C>l<EFBFBD>kla dosyan<61>n <20>zerine
yazmaktan sizi korur.
Dosyan<EFBFBD>n <20>zerine yazmak istemiyorsan<61>z, Ex komutuna bir <20>nlem imi ekleyin,
<EFBFBD>rn. ":w!".
\-R se<73>ene<6E>i ayn<79> zamanda \-n se<73>ene<6E>ini de uygular (yukar<61>da bak<61>n).
\'readonly' se<73>ene<6E>i ":set noro" ile s<>f<EFBFBD>rlanabilir.
Ek bilgi i<>in: ":help 'readonly'".
.TP
\-r
Takas dosyalar<61>n<EFBFBD> i<>erdikleri kurtarma bilgilerini g<>sterecek bi<62>imde listeler.
.TP
\-r {dosya}
Kurtarma kipi.
<EFBFBD><EFBFBD>km<EFBFBD><EFBFBD> bir d<>zenleme oturumunu takas dosyas<61>n<EFBFBD> kullanarak kurtar<61>r.
Takas dosyas<61> dosya ile ayn<79> ada iye olup sonuna ".swp" eklenmi<6D>tir.
Ek bilgi i<>in: ":help recovery".
.TP
\-s
Sessiz kip. Yaln<6C>zca "Ex" olarak ba<62>lat<61>ld<6C><64><EFBFBD>nda veya "\-e" se<73>ene<6E>i
"\-s" se<73>ene<6E>inden <20>nce verildi<64>inde <20>al<61><6C><EFBFBD>r.
.TP
\-s {betikgir}
{betikgir} betik dosyas<61> okunur.
Dosyadaki karakterler onlar<61> siz girmi<6D>siniz gibi kabul edilir.
Ayn<EFBFBD>s<EFBFBD> ":source! {betikgir}" komutu ile de ger<65>ekle<6C>tirilebilir.
E<EFBFBD>er dosyan<61>n sonuna d<>zenleyici <20><>kmadan <20>nce gelinirse, sonraki karakterler
klavyeden okunur.
.TP
\-T {u<>birim}
.B Vim'e
kulland<EFBFBD><EFBFBD><EFBFBD>n<EFBFBD>z u<>birimin ad<61>n<EFBFBD> s<>yler.
Yaln<EFBFBD>zca kendili<6C>inden okunamazsa gereklidir.
.B Vim'in
tan<EFBFBD>d<EFBFBD><EFBFBD><EFBFBD> bir u<>birim olmal<61>d<EFBFBD>r veya termcap veya terminfo dosyas<61>nda
tan<EFBFBD>ml<EFBFBD> olmal<61>d<EFBFBD>r.
.TP
\-u {vimrc}
<EFBFBD>lklendirme i<>in {vimrc} dosyas<61>ndaki komutlar<61> kullan.
Di<EFBFBD>er t<>m ilklendirmeler atlan<61>r.
Bunu <20>zel t<>rde dosyalar<61> d<>zenlemek i<>in kullan<61>n.
Dosya ad<61> olarak "NONE" verilirse t<>m <20>zelle<6C>tirmeler atlan<61>r.
Ek bilgi i<>in vim i<>inde ":help initialization" b<>l<EFBFBD>m<EFBFBD>ne bak<61>n.
.TP
\-U {gvimrc}
Grafik arabirim ilklendirmesi i<>in {gvimrc} dosyas<61>ndaki komutlara bak<61>n.
Di<EFBFBD>er t<>m grafik arabirim ilklendirmeleri atlan<61>r.
Dosya ad<61> olarak "NONE" verilirse t<>m <20>zelle<6C>tirmeler atlan<61>r.
Ek bilgi i<>in vim i<>inde ":help gui\-init" b<>l<EFBFBD>m<EFBFBD>ne bak<61>n.
.TP
\-V[N]
S<EFBFBD>zl<EFBFBD> anlat<61>m. Hangi dosyalar<61>n kaynak al<61>nd<6E><64><EFBFBD>n<EFBFBD> ve viminfo dosyas<61>ndan
nelerin okundu<64>unu yazd<7A>r<EFBFBD>r. 'verbose' i<>in iste<74>e ba<62>l<EFBFBD> N se<73>ene<6E>i
kullan<EFBFBD>labilir. <20>ntan<61>ml<6D> say<61> 10'dur.
.TP
\-v
.B Vim'i
"vi" yazarak ba<62>lat<61>rm<72><6D> gibi Vi kipinde ba<62>lat<61>r. Bu yaln<6C>zca
<EFBFBD>al<EFBFBD><EFBFBD>t<EFBFBD>r<EFBFBD>labilir "ex" oldu<64>unda bir i<>e yarar.
.TP
\-w {betik<69><6B>k}
Girdi<EFBFBD>iniz t<>m karakterler siz
.B Vim'den
<EFBFBD><EFBFBD>kana de<64>in {betik<69><6B>k} dosyas<61>nda saklan<61>r.
Bu "vim \-s" veya ":source" komutu ile kullan<61>lacak bir betik yaratmaya yarar.
E<EFBFBD>er {betik<69><6B>k} dosyas<61> varsa karakterler dosyaya eklenir.
.TP
\-W {betik<69><6B>k}
\-w gibi, ancak var olan bir dosyan<61>n <20>zerine yazar.
.TP
\-x
Dosya yazarken <20>ifreleme kullan<61>r. Bir <20>ifre girmeniz istenecektir.
.TP
\-X
X sunucusuna ba<62>lanmaz. Vim'in u<>birimde ba<62>lama s<>resini azalt<6C>r ancak pencere ba<62>l<EFBFBD><6C><EFBFBD>
ve pano kullan<61>lamaz.
.TP
\-y
.B Vim'i
"evim" veya "eview" yazarak ba<62>lat<61>rm<72><6D> gibi kolay kipte ba<62>lat<61>r.
.B Vim'i
di<EFBFBD>er t<>kla ve yaz d<>zenleyicileri gibi <20>al<61><6C>t<EFBFBD>r<EFBFBD>r.
.TP
\-Z
K<EFBFBD>s<EFBFBD>tl<EFBFBD> kip. Program "r" yazarak ba<62>lat<61>lm<6C><6D> gibi davran<61>r.
.TP
\-\-
Se<EFBFBD>eneklerin bitti<74>ini belirtir.
Bundan sonraki de<64>i<EFBFBD>kenler art<72>k bir dosya ad<61> olarak i<>letilir.
Ayn<EFBFBD> zamanda '\-' ile ba<62>layan bir dosyay<61> tan<61>tmak i<>in de kullan<61>labilir.
.TP
\-\-echo\-wid
Yaln<EFBFBD>zca GTK grafik arabirimi: Pencere numaras<61>n<EFBFBD> stdout'a yank<6E>la.
.TP
\-\-help
Yard<EFBFBD>m iletisini yazd<7A>r<EFBFBD>r ve <20><>kar, "\-h" gibi.
.TP
\-\-literal
Dosya ad<61> de<64>i<EFBFBD>kenlerini ger<65>ek anlamda i<>let, joker karakterlerini
geni<EFBFBD>letme. Bunun kabu<62>un karakterleri kendili<6C>inden geni<6E>letti<74>i Unix'te
bir etkisi bulunmamaktad<61>r.
.TP
\-\-noplugin
Eklentileri y<>kleme. "\-u NONE" da ayn<79> i<>levi g<>r<EFBFBD>r.
.TP
\-\-remote
Bir Vim sunucusuna ba<62>lan ve geri kalan de<64>i<EFBFBD>kenlerde belirtilen dosyalar<61>
d<EFBFBD>zenle. E<>er bir sunucu bulunamazsa bir uyar<61> verilir ve dosyalar <20>u anki
Vim'de d<>zenlenir.
.TP
\-\-remote\-expr {ifade}
Bir Vim sunucusuna ba<62>lan ve {ifade}'yi de<64>erlendirip sonucu stdout'a yazd<7A>r.
.TP
\-\-remote\-send {anahtarlar}
Bir Vim sunucusuna ba<62>lan ve ona {anahtarlar} g<>nder.
.TP
\-\-remote\-silent
\-\-remote gibi, ancak bir sunucu bulunamazsa uyar<61> vermez.
.TP
\-\-remote\-wait
\-\-remote gibi, ancak Vim dosyalar d<>zenlenene kadar <20><>kmaz.
.TP
\-\-remote\-wait\-silent
\-\-remote\-wait gibi, ancak bir sunucu bulunamazsa uyar<61> vermez.
.TP
\-\-serverlist
Bulunabilecek b<>t<EFBFBD>n Vim sunucular<61>n<EFBFBD> listeler.
.TP
\-\-servername {ad}
{ad}'<27> bir sunucu ad<61> olarak kullan<61>r. Bir \-\-remote de<64>i<EFBFBD>keni ve
ba<EFBFBD>lanaca<EFBFBD><EFBFBD> sunucunun ad<61> ile kullan<61>lmad<61><64><EFBFBD> s<>rece <20>u anki Vim i<>in
kullan<EFBFBD>l<EFBFBD>r.
.TP
\-\-socketid {id}
Yaln<EFBFBD>zca GTK grafik arabirimi: GtkPlug mekanizmas<61>n<EFBFBD> kullanarak gvim'i ba<62>ka
bir pencerede <20>al<61><6C>t<EFBFBD>r.
.TP
\-\-version
S<EFBFBD>r<EFBFBD>m bilgisini yazd<7A>r<EFBFBD>r ve <20><>kar.
.SH <EFBFBD>EVR<EFBFBD>M<EFBFBD><EFBFBD><EFBFBD> YARDIM
.B Vim
i<EFBFBD>inde ":help" yazarak ba<62>lay<61>n.
Belirli bir konu <20>zerine yard<72>m almak i<>in ":help subject" yaz<61>n.
<EFBFBD>rne<EFBFBD>in: "ZZ" komutu <20>zerine bilgi almak i<>in ":help ZZ" yaz<61>n.
<Tab> ve CTRL-D kullanarak konular<61> tamamlay<61>n (":help cmdline\-completion").
Bir konumdan di<64>erini atlamak i<>in etiketler mevcuttur (bir t<>r k<>pr<70> gibi),
ek bilgi i<>in ":help").
T<EFBFBD>m belgelendirmeyi bu bi<62>imde okuyabilirsiniz, <20>rne<6E>in: ":help syntax.txt".
":help syntax.txt".
.SH DOSYALAR
.TP 15
/usr/local/lib/vim/doc/*.txt
.B Vim
belgelendirme dosyalar<61>.
T<EFBFBD>m listeyi g<>rmek i<>in ":help doc\-file\-list" yaz<61>n.
.TP
/usr/local/lib/vim/doc/tags
Belgelendirme i<>inde veri bulmak i<>in kullan<61>lan etiketler dosyas<61>.
.TP
/usr/local/lib/vim/syntax/syntax.vim
Sistem geneli s<>zdizim ilklendirmeleri.
.TP
/usr/local/lib/vim/syntax/*.vim
Programlama dilleri i<>in s<>zdizim dosyalar<61>.
.TP
/usr/local/lib/vim/vimrc
Sistem geneli
.B Vim
ilklendirmeleri.
.TP
~/.vimrc
Sizin ki<6B>isel
.B Vim
ilklendirmeleriniz.
.TP
/usr/local/lib/vim/gvimrc
Sistem geneli gvim ilklendirmeleri.
.TP
~/.gvimrc
Sizin ki<6B>isel gvim ilklendirmeleriniz.
.TP
/usr/local/lib/vim/optwin.vim
":options" komutu i<>in kullan<61>lan betik, g<>rsel se<73>enek ayarlar<61>.
.TP
/usr/local/lib/vim/menu.vim
gvim i<>in sistem geneli men<65> ilklendirmeleri.
.TP
/usr/local/lib/vim/bugreport.vim
Hata raporu olu<6C>turmak i<>in kullan<61>lan betik. Ek bilgi i<>in: ":help bugs".
.TP
/usr/local/lib/vim/filetype.vim
Dosya t<>r<EFBFBD>n<EFBFBD> ad<61>ndan tan<61>yan betik. Ek bilgi i<>in: ":help 'filetype'".
.TP
/usr/local/lib/vim/scripts.vim
Dosya t<>r<EFBFBD>n<EFBFBD> i<>eri<72>inden tan<61>yan betik. Ek bilgi i<>in: ":help 'filetype'".
.TP
/usr/local/lib/vim/print/*.ps
PostScript yazd<7A>rmas<61> i<>in kullan<61>lan dosyalar.
.PP
En g<>ncel bilgiler i<>in V<>M ana sayfas<61>n<EFBFBD> ziyaret edin:
.br
<URL:http://www.vim.org/>
.SH AYRICA BAKINIZ
vimtutor(1)
.SH YAZAR
.B Vim'in
b<EFBFBD>y<EFBFBD>k <20>o<EFBFBD>unlu<6C>u Bram Moolenaar taraf<61>ndan ba<62>kalar<61>n<EFBFBD>n kayda de<64>er
yard<EFBFBD>mlar<EFBFBD>yla yaz<61>lm<6C><6D>t<EFBFBD>r.
Ek bilgi i<>in
.B Vim
i<EFBFBD>inde ":help credits" yaz<61>n.
.br
.B Vim
Stevie tabanl<6E>d<EFBFBD>r, yazarlar<61>: Tim Thompson,
Tony Andrews ve G.R. (Fred) Walter.
Orijinal koddan geriye pek bir <20>ey kalmad<61><64><EFBFBD>n<EFBFBD> s<>ylemek yanl<6E><6C> olmaz.
.SH HATALAR
Bilinen hatalar<61>n bir listesi i<>in ":help todo" yaz<61>n.
.PP
Unutmay<EFBFBD>n ki, ba<62>kalar<61> taraf<61>ndan hata olarak de<64>erlendirilebilecek konular<61>n
bir <20>o<EFBFBD>u Vi'nin davran<61><6E>lar<61>na sad<61>k kal<61>nmas<61> nedeniyle vard<72>r. Yine de
baz<EFBFBD> <20>eylerin "Vi bunu de<64>i<EFBFBD>ik bi<62>imde yap<61>yor" diye hata olabilece<63>ini
d<EFBFBD><EFBFBD><EFBFBD>n<EFBFBD>yorsan<EFBFBD>z, "vi_diff.txt" dosyas<61>n<EFBFBD> dikkatle okuyun (veya Vim i<>inde
:help vi_diff.txt yaz<61>n.
Ek olarak 'compatible' ve 'cpoptions' se<73>eneklerine de bakabilirsiniz.

544
runtime/doc/vim-tr.UTF-8.1 Normal file
View File

@ -0,0 +1,544 @@
.TH VIM 1 "11 Nisan 2006"
.SH AD
vim \- Vi IMproved, bir programcının metin düzenleyicisi
.SH ÖZET
.br
.B vim
[seçenekler] [dosya ..]
.br
.B vim
[seçenekler] \-
.br
.B vim
[seçenekler] \-t etiket
.br
.B vim
[seçenekler] \-q [hatadosyası]
.PP
.br
.B ex
.br
.B view
.br
.B gvim
.B gview
.B evim
.B eview
.br
.B rvim
.B rview
.B rgvim
.B rgview
.SH TANIM
.B Vim,
Vi ile yukarıya doğru uyumlu olan bir metin düzenleyicisidir.
Her tür düz metni düzenlemede kullanılabilir.
Özellikle programları düzenlemede yararlıdır.
.PP
Vi üzerine yapılmış birçok geliştirme ve iyileştirmeyi içerir:
Çok düzeyli geri alma, çoklu pencereler ve arabellekler, sözdizim vurgulama,
komut satırı düzenleme, dosya adı tamamlama, çevrimiçi yardım, görsel seçim vb.
.B Vim
ve Vi arasındaki değişikliklerin bir özeti için ":help vi_diff.txt"
dosyasına bir göz atın.
.PP
.B Vim'i
çalıştırırken gerekli olan yardımın çoğu çevrimiçi yardım sisteminden elde
edilebilir. Bunun için ":help" komutunu kullanabilirsiniz.
Aşağıda ÇEVRİMİÇİ YARDIM bölümüne bakın.
.PP
Genelde
.B Vim
tek bir dosyayı düzenlemek için şu komutla çalıştırılır:
.PP
vim dosya
.PP
Biraz daha açacak olursak:
.PP
vim [seçenekler] [dosyalistesi]
.PP
Eğer dosya listesi sağlanmamışsa, düzenleyici boş bir arabellek açar.
Bunun dışında aşağıdaki dört seçenekten bir tanesi de bir veya birden çok
dosyayı düzenlemek için kullanılabilir.
.TP 12
dosya ..
Dosya adlarının bir listesi.
Bunlardan ilki ekrana getirilip arabelleğe yüklenir.
İmleç arabelleğin ilk satırında konumlandırılır.
Diğer dosyalara ":next" komutu ile geçebilirsiniz.
Adı tire ile başlayan bir dosyayı düzenlemek için dosya listesinin başına
"\-\-" koyun.
.TP
\-
Düzenlenecek dosya stdin'den okunur. Komutlar bir tty olması gereken
stderr'den okunur.
.TP
\-t {etiket}
Düzenlenecek dosya ve bu dosyanın başlangıç imleç konumu bir "etiket"e
dayanır, bir tür bıraktığınız konumu belirten bir ayraç gibi.
Etiket dosyasında {etiket} aranır, ilişkin dosya şu anki dosya olur ve
ilişkin komut çalıştırılır.
Bu genelde C programları için kullanılır, {etiket} bu durumda bir işlev
olabilir.
Bunun sonucunda bu işlevi içeren dosya o anki dosya olur ve imleç bu
işlevin başlangıcına konumlandırılır.
Ek bilgi için: ":help tag\-commands".
.TP
\-q [hatadosyası]
Hızlı düzelt kipinde başlat
[hatadosyası] okunur ve ilk hata görüntülenir.
Eğer [hatadosyası] sağlanmazsa, dosya adı 'errorfile' seçeneğinden alınır
(öntanımlı olarak Amiga için "AztecC.Err", diğer sistemlerde "errors.err").
Sonraki hatalara ":cn" komutu ile geçilebilir.
Ek bilgi için: ":help quickfix".
.PP
.B Vim
girilen komutun adına göre değişik biçimde davranır (çalıştırılabilir hâlâ
aynı dosya olarak kalabilir).
.TP 10
vim
"Normal" kip, standart çalışma biçimi.
.TP
ex
Ex kipinde başlat.
"\-e" değişkeni ile de başlatılabilir.
Normal kipe ":vi" komutu ile geçilebilir.
.TP
view
Saltokunur kipte başlat. Bu kipte dosya yazımına izin verilmez.
"\-R" değişkeni ile de başlatılabilir.
.TP
gvim gview
Grafik arabirim sürümü.
Yeni bir pencere açar.
"\-g" değişkeni ile de başlatılabilir.
.TP
evim eview
Kolay kipte başlatılan grafik arabirim sürümü.
Yeni bir pencere açar.
"\-y" değişkeni ile de başlatılabilir.
.TP
rvim rview rgvim rgview
Yukarıdaki ile aynı, ancak sınırlamalar içerir. Kabuk komutları
çalıştırılamaz veya
.B Vim
askıya alınamaz.
"\-Z" değişkeni ile de başlatılabilir.
.SH SEÇENEKLER
Seçenekler bir sıra gözetmeksizin dosya adlarından önce veya sonra
kullanılabilir.
Herhangi bir değişken içermeyen seçenekler bir tirenin ardında sıralanabilir.
.TP 12
+[num]
İlk dosya için imleç "num" satırında konumlandırılacaktır.
Eğer "num" eksikse imleç en son satırda başlar.
.TP
+/{dizge}
İlk dosya için imleç {dizgi}'nin ilk eşleşmesinin olduğu satırda
konumlandırılacaktır.
Kullanılabilir arama dizgileri için ":help search\-pattern" yazın.
.TP
+{komut}
.TP
\-c {komut}
İlk dosya okunduktan sonra {komut} çalıştırılır.
{komut} bir Ex komutu olarak işletilir.
Eğer {komut} boşluk içeriyorsa çift tırnak içerisine alınmalıdır (bu
kullanılan kabuğa bağlıdır).
Örnek: vim "+set si" main.c
.br
Not: 10 taneye kadar "+" veya "\-c" komutu kullanabilirsiniz.
.TP
\-S {dosya}
İlk dosya okunduktan sonra {dosya} kaynak alınır.
\-c "source {dosya}" bu komutun eşdeğeridir.
{dosya}, '\-' ile başlayamaz.
Eğer {dosya} sağlanmazsa "Session.vim" kullanılır (yalnızca \-S son
değişken olarak kullanıldığında işe yarar).
.TP
\-\-cmd {komut}
"\-c" komutu gibi, ancak komut herhangi bir vimrc dosyasını işletmeden
önce çalıştırılır.
"\-c" komutundan bağımsız olarak bu komutlardan 10 taneye kadar
çalıştırabilirsiniz.
.TP
\-A
Eğer
.B Vim
sağdan sola yazılan dosyaları ve Arapça klavye dizilimini kullanabilmesi için
ARAPÇA desteği ile derlenmişe bu seçenek
.B Vim'i
Arapça kipinde başlatır ('arabic' seçeneği açılır). Aksi durumda
.B Vim
hata verip çıkar.
.TP
\-b
İkili kip.
Bir çalıştırılabiliri veya ikili dosyayı düzenlemeye olanacak sağlayacak
birkaç seçenek ayarlanır.
.TP
\-C
Uyumlu kip. 'compatible' seçeneğini ayarlar.
Bu kipte
.B Vim
bir .vimrc dosyası var olsa bile genelde Vi gibi davranır.
.TP
\-d
Karşılaştırma kipinde başlat.
Bir, iki, üç veya dört adet dosya adı değişkeni olmalıdır.
.B Vim
bütün dosyaları yan yana açar ve aralarındaki değişiklikleri gösterir.
vimdiff(1) gibi çalışır.
.TP
\-d {aygıt}
{aygıt}'ı bir uçbirim olarak kullanmak için açar.
Yalnızca Amiga'da çalışır.
Örnek:
"\-d con:20/30/600/150".
.TP
\-D
Hata ayıklama kipi. Bir betiğin ilk komutunu çalıştırırken hata ayıklama
kipine geçer.
.TP
\-e
.B Vim'i
Ex kipinde başlatır, "ex" çalıştırılabiliri ile aynı işlevi görür.
.TP
\-E
.B Vim'i
geliştirilmiş Ex kipinde başlatır, "exim" çalıştırılabiliri ile aynı
işlevi görür.
.TP
\-f
Önplan. Grafik arabirim sürümü için
.B Vim
başladığı kabuktan ayrılmayacak ve kendisini çatallamayacaktır.
Amiga'da,
.B Vim
yeni bir pencere açmak için yeniden başlatılmaz.
Bu seçenek
.B Vim
düzenleme oturumunun bitmesini bekleyecek bir program tarafından
başlatıldığında kullanılmalıdır (örn. mail).
Amiga'da ":sh" ve ":!" komutları çalışmayacaktır.
.TP
\-\-nofork
Önplan. Grafik arabirim sürümü için
.B Vim
başladığı kabuktan ayrılmayacak ve kendisini çatallamayacaktır.
.TP
\-F
Eğer
.B Vim
sağdan sola yazılan dosyaları ve Farsça klavye dizilimini kullanabilmesi için
FKMAP desteği ile derlenmişse, bu seçenek
.B Vim'i
Farsça kipinde başlatır ('fkmap' ve 'rightleft' seçenekleri açılır).
Aksi durumda
.B Vim
hata verip çıkar.
.TP
\-g
Eğer
.B Vim
grafik arabirim desteği ile derlenmişse bu seçenek grafik arabirimi çalıştırır.
Eğer grafik arabirim desteği eklenmemişse
.B Vim
hata verir ve çıkar.
.TP
\-h
Komut satırı değişkenleri ve seçenekleri üzerine biraz yardım sağlar.
Bu komuttan sonra
.B Vim
çıkar.
.TP
\-H
Eğer
.B Vim
sağdan sola yazılan dosyaları ve İbranca klavye dizilimini kullanabilmesi için
RIGHTLEFT desteği ile derlenmişse, bu seçenek
.B Vim'i
İbranca kipinde başlatır ('hkmap' ve 'rightleft' seçenekleri açılır).
Aksi durumda
.B Vim
hata verir ve çıkar.
.TP
\-i {viminfo}
Öntanımlı "~/.viminfo" dosyası yerine kullanılacak olan viminfo dosyasını
belirtmek için kullanılır.
Bu komut aynı zamanda viminfo kullanımını atlamak için de kullanılabilir.
Bunun için dosya adı yerine "NONE" vermeniz yeterlidir.
.TP
\-L
\-r ile aynı.
.TP
\-l
Lisp kipi.
Bu değişken 'lisp' ve 'showmatch' seçeneklerini açar.
.TP
\-m
Dosya yazma seçeneği kapalıdır.
\'write' seçeneğini sıfırlar.
Arabelleği hâlâ değiştirebilirsiniz, ancak dosyayı yazmak olanaklı değildir.
.TP
\-M
Değişikliklere izin verilmez. 'modifiable' ve 'write' seçenekleri kapatılır,
böylece değişiklik yapılamaz ve dosyalar yazılamaz.
Bu seçenekleri yeniden açıp değişiklik yapmayı etkinleştirebilirsiniz.
.TP
\-N
Uyumsuz kip. 'no-compatible' seçeneğini sıfırlar.
Bu seçenekle birlikte
.B Vim
biraz daha düzgünce çalışır, ancak bir .vimrc dosyası olmamasına rağmen
Vi ile daha az uyumludur.
.TP
\-n
Bir takas dosyası kullanılmaz.
Çökme sonrası kurtarma olanaklı olmayacaktır.
Eğer çok yavaş bir ortamda dosya çalışıyorsanız (örn. disket) yararlı olabilir.
":set uc=0" ile de yapılabilir.
Geri almak için ":set uc=200" yapın.
.TP
\-nb
NetBeans için bir düzenleyici sunucusu olur. Ayrıntılar için belgelere bakın.
.TP
\-o[N]
N sayıda pencereyi üst üste açar.
N verilmezse, her dosya için bir pencere açar.
.TP
\-O[N]
N sayıda pencereyi yan yana açar.
N verilmezse, her dosya için bir pencere açar.
.TP
\-p[N]
N sayıda sekme açar.
N verilmezse, her dosya için bir sekme açar.
.TP
\-R
Saltokunur kip.
\'readonly' seçeneği açılır.
Arabelleği hâlâ değiştirebilirsiniz, ancak yanlışlıkla dosyanın üzerine
yazmaktan sizi korur.
Dosyanın üzerine yazmak istemiyorsanız, Ex komutuna bir ünlem imi ekleyin,
örn. ":w!".
\-R seçeneği aynı zamanda \-n seçeneğini de uygular (yukarıda bakın).
\'readonly' seçeneği ":set noro" ile sıfırlanabilir.
Ek bilgi için: ":help 'readonly'".
.TP
\-r
Takas dosyalarını içerdikleri kurtarma bilgilerini gösterecek biçimde listeler.
.TP
\-r {dosya}
Kurtarma kipi.
Çökmüş bir düzenleme oturumunu takas dosyasını kullanarak kurtarır.
Takas dosyası dosya ile aynı ada iye olup sonuna ".swp" eklenmiştir.
Ek bilgi için: ":help recovery".
.TP
\-s
Sessiz kip. Yalnızca "Ex" olarak başlatıldığında veya "\-e" seçeneği
"\-s" seçeneğinden önce verildiğinde çalışır.
.TP
\-s {betikgir}
{betikgir} betik dosyası okunur.
Dosyadaki karakterler onları siz girmişsiniz gibi kabul edilir.
Aynısı ":source! {betikgir}" komutu ile de gerçekleştirilebilir.
Eğer dosyanın sonuna düzenleyici çıkmadan önce gelinirse, sonraki karakterler
klavyeden okunur.
.TP
\-T {uçbirim}
.B Vim'e
kullandığınız uçbirimin adını söyler.
Yalnızca kendiliğinden okunamazsa gereklidir.
.B Vim'in
tanıdığı bir uçbirim olmalıdır veya termcap veya terminfo dosyasında
tanımlı olmalıdır.
.TP
\-u {vimrc}
İlklendirme için {vimrc} dosyasındaki komutları kullan.
Diğer tüm ilklendirmeler atlanır.
Bunu özel türde dosyaları düzenlemek için kullanın.
Dosya adı olarak "NONE" verilirse tüm özelleştirmeler atlanır.
Ek bilgi için vim içinde ":help initialization" bölümüne bakın.
.TP
\-U {gvimrc}
Grafik arabirim ilklendirmesi için {gvimrc} dosyasındaki komutlara bakın.
Diğer tüm grafik arabirim ilklendirmeleri atlanır.
Dosya adı olarak "NONE" verilirse tüm özelleştirmeler atlanır.
Ek bilgi için vim içinde ":help gui\-init" bölümüne bakın.
.TP
\-V[N]
Sözlü anlatım. Hangi dosyaların kaynak alındığını ve viminfo dosyasından
nelerin okunduğunu yazdırır. 'verbose' için isteğe bağlı N seçeneği
kullanılabilir. Öntanımlı sayı 10'dur.
.TP
\-v
.B Vim'i
"vi" yazarak başlatırmış gibi Vi kipinde başlatır. Bu yalnızca
çalıştırılabilir "ex" olduğunda bir işe yarar.
.TP
\-w {betikçık}
Girdiğiniz tüm karakterler siz
.B Vim'den
çıkana değin {betikçık} dosyasında saklanır.
Bu "vim \-s" veya ":source" komutu ile kullanılacak bir betik yaratmaya yarar.
Eğer {betikçık} dosyası varsa karakterler dosyaya eklenir.
.TP
\-W {betikçık}
\-w gibi, ancak var olan bir dosyanın üzerine yazar.
.TP
\-x
Dosya yazarken şifreleme kullanır. Bir şifre girmeniz istenecektir.
.TP
\-X
X sunucusuna bağlanmaz. Vim'in uçbirimde başlama süresini azaltır ancak pencere başlığı
ve pano kullanılamaz.
.TP
\-y
.B Vim'i
"evim" veya "eview" yazarak başlatırmış gibi kolay kipte başlatır.
.B Vim'i
diğer tıkla ve yaz düzenleyicileri gibi çalıştırır.
.TP
\-Z
Kısıtlı kip. Program "r" yazarak başlatılmış gibi davranır.
.TP
\-\-
Seçeneklerin bittiğini belirtir.
Bundan sonraki değişkenler artık bir dosya adı olarak işletilir.
Aynı zamanda '\-' ile başlayan bir dosyayı tanıtmak için de kullanılabilir.
.TP
\-\-echo\-wid
Yalnızca GTK grafik arabirimi: Pencere numarasını stdout'a yankıla.
.TP
\-\-help
Yardım iletisini yazdırır ve çıkar, "\-h" gibi.
.TP
\-\-literal
Dosya adı değişkenlerini gerçek anlamda işlet, joker karakterlerini
genişletme. Bunun kabuğun karakterleri kendiliğinden genişlettiği Unix'te
bir etkisi bulunmamaktadır.
.TP
\-\-noplugin
Eklentileri yükleme. "\-u NONE" da aynı işlevi görür.
.TP
\-\-remote
Bir Vim sunucusuna bağlan ve geri kalan değişkenlerde belirtilen dosyaları
düzenle. Eğer bir sunucu bulunamazsa bir uyarı verilir ve dosyalar şu anki
Vim'de düzenlenir.
.TP
\-\-remote\-expr {ifade}
Bir Vim sunucusuna bağlan ve {ifade}'yi değerlendirip sonucu stdout'a yazdır.
.TP
\-\-remote\-send {anahtarlar}
Bir Vim sunucusuna bağlan ve ona {anahtarlar} gönder.
.TP
\-\-remote\-silent
\-\-remote gibi, ancak bir sunucu bulunamazsa uyarı vermez.
.TP
\-\-remote\-wait
\-\-remote gibi, ancak Vim dosyalar düzenlenene kadar çıkmaz.
.TP
\-\-remote\-wait\-silent
\-\-remote\-wait gibi, ancak bir sunucu bulunamazsa uyarı vermez.
.TP
\-\-serverlist
Bulunabilecek bütün Vim sunucularını listeler.
.TP
\-\-servername {ad}
{ad}'ı bir sunucu adı olarak kullanır. Bir \-\-remote değişkeni ve
bağlanacağı sunucunun adı ile kullanılmadığı sürece şu anki Vim için
kullanılır.
.TP
\-\-socketid {id}
Yalnızca GTK grafik arabirimi: GtkPlug mekanizmasını kullanarak gvim'i başka
bir pencerede çalıştır.
.TP
\-\-version
Sürüm bilgisini yazdırır ve çıkar.
.SH ÇEVRİMİÇİ YARDIM
.B Vim
içinde ":help" yazarak başlayın.
Belirli bir konu üzerine yardım almak için ":help subject" yazın.
Örneğin: "ZZ" komutu üzerine bilgi almak için ":help ZZ" yazın.
<Tab> ve CTRL-D kullanarak konuları tamamlayın (":help cmdline\-completion").
Bir konumdan diğerini atlamak için etiketler mevcuttur (bir tür köprü gibi),
ek bilgi için ":help").
Tüm belgelendirmeyi bu biçimde okuyabilirsiniz, örneğin: ":help syntax.txt".
":help syntax.txt".
.SH DOSYALAR
.TP 15
/usr/local/lib/vim/doc/*.txt
.B Vim
belgelendirme dosyaları.
Tüm listeyi görmek için ":help doc\-file\-list" yazın.
.TP
/usr/local/lib/vim/doc/tags
Belgelendirme içinde veri bulmak için kullanılan etiketler dosyası.
.TP
/usr/local/lib/vim/syntax/syntax.vim
Sistem geneli sözdizim ilklendirmeleri.
.TP
/usr/local/lib/vim/syntax/*.vim
Programlama dilleri için sözdizim dosyaları.
.TP
/usr/local/lib/vim/vimrc
Sistem geneli
.B Vim
ilklendirmeleri.
.TP
~/.vimrc
Sizin kişisel
.B Vim
ilklendirmeleriniz.
.TP
/usr/local/lib/vim/gvimrc
Sistem geneli gvim ilklendirmeleri.
.TP
~/.gvimrc
Sizin kişisel gvim ilklendirmeleriniz.
.TP
/usr/local/lib/vim/optwin.vim
":options" komutu için kullanılan betik, görsel seçenek ayarları.
.TP
/usr/local/lib/vim/menu.vim
gvim için sistem geneli menü ilklendirmeleri.
.TP
/usr/local/lib/vim/bugreport.vim
Hata raporu oluşturmak için kullanılan betik. Ek bilgi için: ":help bugs".
.TP
/usr/local/lib/vim/filetype.vim
Dosya türünü adından tanıyan betik. Ek bilgi için: ":help 'filetype'".
.TP
/usr/local/lib/vim/scripts.vim
Dosya türünü içeriğinden tanıyan betik. Ek bilgi için: ":help 'filetype'".
.TP
/usr/local/lib/vim/print/*.ps
PostScript yazdırması için kullanılan dosyalar.
.PP
En güncel bilgiler için VİM ana sayfasını ziyaret edin:
.br
<URL:http://www.vim.org/>
.SH AYRICA BAKINIZ
vimtutor(1)
.SH YAZAR
.B Vim'in
büyük çoğunluğu Bram Moolenaar tarafından başkalarının kayda değer
yardımlarıyla yazılmıştır.
Ek bilgi için
.B Vim
içinde ":help credits" yazın.
.br
.B Vim
Stevie tabanlıdır, yazarları: Tim Thompson,
Tony Andrews ve G.R. (Fred) Walter.
Orijinal koddan geriye pek bir şey kalmadığını söylemek yanlış olmaz.
.SH HATALAR
Bilinen hataların bir listesi için ":help todo" yazın.
.PP
Unutmayın ki, başkaları tarafından hata olarak değerlendirilebilecek konuların
bir çoğu Vi'nin davranışlarına sadık kalınması nedeniyle vardır. Yine de
bazı şeylerin "Vi bunu değişik biçimde yapıyor" diye hata olabileceğini
düşünüyorsanız, "vi_diff.txt" dosyasını dikkatle okuyun (veya Vim içinde
:help vi_diff.txt yazın.
Ek olarak 'compatible' ve 'cpoptions' seçeneklerine de bakabilirsiniz.

View File

@ -146,7 +146,7 @@ See ":help search\-pattern" for the available search patterns.
{command} is interpreted as an Ex command.
If the {command} contains spaces it must be enclosed in double quotes (this
depends on the shell that is used).
Example: Vim "+set si" main.c
Example: vim "+set si" main.c
.br
Note: You can use up to 10 "+" or "\-c" commands.
.TP

View File

@ -110,7 +110,7 @@ OPTIONS
read. {command} is interpreted as an Ex command. If the
{command} contains spaces it must be enclosed in double
quotes (this depends on the shell that is used). Example:
Vim "+set si" main.c
vim "+set si" main.c
Note: You can use up to 10 "+" or "-c" commands.
-S {file} {file} will be sourced after the first file has been read.

View File

@ -1,4 +1,4 @@
*vim9.txt* For Vim version 8.2. Last change: 2020 Mar 01
*vim9.txt* For Vim version 8.2. Last change: 2020 Jul 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -6,7 +6,7 @@
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
Vim9 script commands and expressions.
Vim9 script commands and expressions. *vim9*
Most expression help is in |eval.txt|. This file is about the new syntax and
features in Vim9 script.
@ -28,29 +28,33 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
Vim script has been growing over time, while keeping backwards compatibility.
That means bad choices from the past often can't be changed. Execution is
quite slow, every line is parsed every time it is executed.
Vim script has been growing over time, while preserving backwards
compatibility. That means bad choices from the past often can't be changed
and compatibility with Vi restricts possible solutions. Execution is quite
slow, each line is parsed every time it is executed.
The main goal of Vim9 script is to drastically improve performance. An
increase in execution speed of 10 to 100 times can be expected. A secondary
goal is to avoid Vim-specific constructs and get closer to commonly used
programming languages, such as JavaScript, TypeScript and Java.
The main goal of Vim9 script is to drastically improve performance. This is
accomplished by compiling commands into instructions that can be efficiently
executed. An increase in execution speed of 10 to 100 times can be expected.
A secondary goal is to avoid Vim-specific constructs and get closer to
commonly used programming languages, such as JavaScript, TypeScript and Java.
The performance improvements can only be achieved by not being 100% backwards
compatible. For example, in a function the arguments are not available in the
"a:" dictionary, as creating that dictionary adds quite a lot of overhead.
Other differences are more subtle, such as how errors are handled.
compatible. For example, making function arguments available in the
"a:" dictionary adds quite a lot of overhead. In a Vim9 function this
dictionary is not available. Other differences are more subtle, such as how
errors are handled.
The Vim9 script syntax and semantics are used in:
- a function defined with the `:def` command
- a script file where the first command is `vim9script`
When using `:function` in a Vim9 script file the legacy syntax is used.
However, this is discouraged.
However, this can be confusing and is therefore discouraged.
Vim9 script and legacy Vim script can be mixed. There is no need to rewrite
old scripts, they keep working as before.
Vim9 script and legacy Vim script can be mixed. There is no requirement to
rewrite old scripts, they keep working as before.
==============================================================================
@ -58,23 +62,94 @@ old scripts, they keep working as before.
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
Comments starting with # ~
In legacy Vim script comments start with double quote. In Vim9 script
comments start with #. >
# declarations
let count = 0 # number of occurrences
The reason is that a double quote can also be the start of a string. In many
places, especially halfway an expression with a line break, it's hard to tell
what the meaning is, since both a string and a comment can be followed by
arbitrary text. To avoid confusion only # comments are recognized. This is
the same as in shell scripts and Python programs.
In Vi # is a command to list text with numbers. In Vim9 script you can use
`:number` for that. >
101 number
To improve readability there must be a space between a command and the #
that starts a comment. Note that #{ is the start of a dictionary, therefore
it does not start a comment.
Vim9 functions ~
`:def` has no extra arguments like `:function` does: "range", "abort", "dict"
or "closure". A `:def` function always aborts on an error, does not get a
range passed and cannot be a "dict" function.
A function defined with `:def` is compiled. Execution is many times faster,
often 10x to 100x times.
In the function body:
- Arguments are accessed by name, without "a:".
- There is no "a:" dictionary or "a:000" list. Variable arguments are defined
with a name and have a list type: >
def MyFunc(...itemlist: list<type>)
Many errors are already found when compiling, before the function is executed.
The syntax is strict, to enforce code that is easy to read and understand.
Compilation is done when the function is first called, or when the
`:defcompile` command is encountered in the script where the function was
defined. `:disassemble` also compiles the function.
`:def` has no options like `:function` does: "range", "abort", "dict" or
"closure". A `:def` function always aborts on an error, does not get a range
passed and cannot be a "dict" function.
The argument types and return type need to be specified. The "any" type can
be used, type checking will then be done at runtime, like with legacy
functions.
Arguments are accessed by name, without "a:". There is no "a:" dictionary or
"a:000" list. Just like any other language.
Variable arguments are defined as the last argument, with a name and have a
list type, similar to Typescript. For example, a list of numbers: >
def MyFunc(...itemlist: list<number>)
for item in itemlist
...
Variable declarations with :let and :const ~
Functions and variables are script-local by default ~
*vim9-scopes*
When using `:function` or `:def` to specify a new function at the script level
in a Vim9 script, the function is local to the script, as if "s:" was
prefixed. Using the "s:" prefix is optional. To define or use a global
function or variable the "g:" prefix must be used. For functions in an
autoload script the "name#" prefix is sufficient. >
def ThisFunction() # script-local
def s:ThisFunction() # script-local
def g:ThatFunction() # global
def scriptname#function() # autoload
When using `:function` or `:def` to specify a new function inside a function,
the function is local to the function. It is not possible to define a
script-local function inside a function. It is possible to define a global
function, using the "g:" prefix.
When referring to a function and no "s:" or "g:" prefix is used, Vim will
search for the function in this order:
- Local to the current scope and outer scopes up to the function scope.
- Local to the current script file.
- Imported functions, see `:import`.
In all cases the function must be defined before used. That is when it is
first called or when `:defcompile` causes the call to be compiled.
The result is that functions and variables without a namespace can always be
found in the script, either defined there or imported. Global functions and
variables could be defined anywhere (good luck finding where!).
Global functions can be still be defined and deleted at nearly any time. In
Vim9 script script-local functions are defined once when the script is sourced
and cannot be deleted or replaced.
Variable declarations with :let and :const ~
*vim9-declaration*
Local variables need to be declared with `:let`. Local constants need to be
declared with `:const`. We refer to both as "variables".
@ -105,8 +180,8 @@ The declaration must be done earlier: >
endif
echo inner
To intentionally use a variable that won't be available later, a block can be
used: >
To intentionally avoid a variable being available later, a block can be used:
>
{
let temp = 'temp'
...
@ -114,15 +189,30 @@ used: >
echo temp " Error!
An existing variable cannot be assigned to with `:let`, since that implies a
declaration. An exception is global variables: these can be both used with
and without `:let`, because there is no rule about where they are declared.
declaration. Global, window, tab, buffer and Vim variables can only be used
without `:let`, because they are are not really declared, they can also be
deleted with `:unlet`.
Variables cannot shadow previously defined variables.
Variables may shadow Ex commands, rename the variable if needed.
Global variables and user defined functions must be prefixed with "g:", also
at the script level. >
vim9script
let script_local = 'text'
g:global = 'value'
let Funcref = g:ThatFunction
Since "&opt = value" is now assigning a value to option "opt", ":&" cannot be
used to repeat a `:substitute` command.
*E1092*
Declaring more than one variable at a time, using the unpack notation, is
currently not supported: >
let [v1, v2] = GetValues() # Error!
That is because the type needs to be inferred from the list item type, which
isn't that easy.
Omitting :call and :eval ~
@ -131,29 +221,130 @@ Functions can be called without `:call`: >
Using `:call` is still possible, but this is discouraged.
A method call without `eval` is possible, so long as the start is an
identifier or can't be an Ex command. It does NOT work for string constants: >
myList->add(123) " works
g:myList->add(123) " works
[1, 2, 3]->Process() " works
#{a: 1, b: 2}->Process() " works
{'a': 1, 'b': 2}->Process() " works
"foobar"->Process() " does NOT work
("foobar")->Process() " works
'foobar'->Process() " does NOT work
('foobar')->Process() " works
identifier or can't be an Ex command. Examples: >
myList->add(123)
g:myList->add(123)
[1, 2, 3]->Process()
#{a: 1, b: 2}->Process()
{'a': 1, 'b': 2}->Process()
"foobar"->Process()
("foobar")->Process()
'foobar'->Process()
('foobar')->Process()
In case there is ambiguity between a function name and an Ex command, use ":"
to make clear you want to use the Ex command. For example, there is both the
`:substitute` command and the `substitute()` function. When the line starts
with `substitute(` this will use the function, prepend a colon to use the
command instead: >
In rare case there is ambiguity between a function name and an Ex command, use
":" to make clear you want to use the Ex command. For example, there is both
the `:substitute` command and the `substitute()` function. When the line
starts with `substitute(` this will use the function. Prepend a colon to use
the command instead: >
:substitute(pattern (replacement (
Note that while variables need to be defined before they can be used,
functions can be called before being defined. This is required to be able
have cyclic dependencies between functions. It is slightly less efficient,
since the function has to be looked up by name. And a typo in the function
name will only be found when the call is executed.
name will only be found when the function is called.
Omitting function() ~
A user defined function can be used as a function reference in an expression
without `function()`. The argument types and return type will then be checked.
The function must already have been defined. >
let Funcref = MyFunction
When using `function()` the resulting type is "func", a function with any
number of arguments and any return type. The function can be defined later.
Automatic line continuation ~
In many cases it is obvious that an expression continues on the next line. In
those cases there is no need to prefix the line with a backslash. For
example, when a list spans multiple lines: >
let mylist = [
'one',
'two',
]
And when a dict spans multiple lines: >
let mydict = #{
one: 1,
two: 2,
}
Function call: >
let result = Func(
arg1,
arg2
)
For binary operators in expressions not in [], {} or () a line break is
possible just before or after the operator. For example: >
let text = lead
.. middle
.. end
let total = start +
end -
correction
let result = positive
? PosFunc(arg)
: NegFunc(arg)
For a method call using "->" and a member using a dot, a line break is allowed
before it: >
let result = GetBuilder()
->BuilderSetWidth(333)
->BuilderSetHeight(777)
->BuilderBuild()
let result = MyDict
.member
< *E1050*
To make it possible for the operator at the start of the line to be
recognized, it is required to put a colon before a range. This will add
"start" and print: >
let result = start
+ print
Like this: >
let result = start + print
This will assign "start" and print a line: >
let result = start
:+ print
It is also possible to split a function header over multiple lines, in between
arguments: >
def MyFunc(
text: string,
separator = '-'
): string
Notes:
- "enddef" cannot be used at the start of a continuation line, it ends the
current function.
- No line break is allowed in the LHS of an assignment. Specifically when
unpacking a list |:let-unpack|. This is OK: >
[var1, var2] =
Func()
< This does not work: >
[var1,
var2] =
Func()
- No line break is allowed in between arguments of an `:echo`, `:execute` and
similar commands. This is OK: >
echo [1,
2] [3,
4]
< This does not work: >
echo [1, 2]
[3, 4]
- No line break is allowed in the arguments of a lambda, between the "{" and
"->". This is OK: >
filter(list, {k, v ->
v > 0})
< This does not work: >
filter(list, {k,
v -> v > 0})
No curly braces expansion ~
@ -161,9 +352,10 @@ No curly braces expansion ~
|curly-braces-names| cannot be used.
No :append, :change or :insert ~
No :xit, :append, :change or :insert ~
These commands are too quickly confused with local variable names.
These commands are too easily confused with local variable names. Instead of
`:x` or `:xit` you can use `:exit`.
Comparators ~
@ -179,6 +371,10 @@ Vim9 script enforces proper use of white space. This is no longer allowed: >
let var =234 " Error!
There must be white space before and after the "=": >
let var = 234 " OK
White space must also be put before the # that starts a comment after a
command: >
let var = 234# Error!
let var = 234 # OK
White space is required around most operators.
@ -213,8 +409,7 @@ few exceptions.
blob non-empty
list non-empty (different from JavaScript)
dictionary non-empty (different from JavaScript)
func when not NULL
partial when not NULL
func when there is a function name
special v:true
job when not NULL
channel when not NULL
@ -227,6 +422,7 @@ The boolean operators "||" and "&&" do not change the value: >
0 || '' == ''
8 && 2 == 2
0 && 2 == 0
2 && 0 == 0
[] && 2 == []
When using `..` for string concatenation the arguments are always converted to
@ -237,6 +433,51 @@ string. >
In Vim9 script one can use "true" for v:true and "false" for v:false.
What to watch out for ~
*vim9-gotchas*
Vim9 was designed to be closer to often used programming languages, but at the
same time tries to support the legacy Vim commands. Some compromises had to
be made. Here is a summary of what might be unexpected.
Ex command ranges need to be prefixed with a colon. >
-> " legacy Vim: shifts the previous line to the right
->func() " Vim9: method call in continuation line
:-> " Vim9: shifts the previous line to the right
%s/a/b " legacy Vim: substitute on all lines
x = alongname
% another " Vim9: line continuation without a backslash
:%s/a/b " Vim9: substitute on all lines
'text'->func() " Vim9: method call
:'t " legacy Vim: jump to mark m
Functions defined with `:def` compile the whole function. Legacy functions
can bail out, and the following lines are not parsed: >
func Maybe()
if !has('feature')
return
endif
use-feature
endfunc
Vim9 functions are compiled as a whole: >
def Maybe()
if !has('feature')
return
endif
use-feature " May give compilation error
enddef
For a workaround, split it in two functions: >
func Maybe()
if has('feature')
call MaybyInner()
endif
endfunc
if has('feature')
def MaybeInner()
use-feature
enddef
endif
==============================================================================
3. New style functions *fast-functions*
@ -249,8 +490,8 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
the function follows in the next lines, until the
matching `:enddef`.
When {return-type} is omitted the function is not
expected to return anything.
When {return-type} is omitted or is "void" the
function is not expected to return anything.
{arguments} is a sequence of zero or more argument
declarations. There are three forms:
@ -262,21 +503,33 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
The second and third form are optional arguments.
When the caller omits an argument the {value} is used.
NOTE: It is possible to nest `:def` inside another
`:def`, but it is not possible to nest `:def` inside
`:function`, for backwards compatibility.
The function will be compiled into instructions when
called, or when `:disassemble` or `:defcompile` is
used. Syntax and type errors will be produced at that
time.
[!] is used as with `:function`.
It is possible to nest `:def` inside another `:def` or
`:function` up to about 50 levels deep.
[!] is used as with `:function`. Note that in Vim9
script script-local functions cannot be deleted or
redefined later in the same script.
*:enddef*
:enddef End of a function defined with `:def`.
:enddef End of a function defined with `:def`. It should be on
a line by its own.
If the script the function is defined in is Vim9 script, then script-local
variables can be accessed without the "s:" prefix. They must be defined
before the function. If the script the function is defined in is legacy
script, then script-local variables must be accessed with the "s:" prefix.
before the function is compiled. If the script the function is defined in is
legacy script, then script-local variables must be accessed with the "s:"
prefix.
*:defc* *:defcompile*
:defc[ompile] Compile functions defined in the current script that
were not compiled yet.
This will report errors found during the compilation.
*:disa* *:disassemble*
:disa[ssemble] {func} Show the instructions generated for {func}.
@ -284,6 +537,22 @@ script, then script-local variables must be accessed with the "s:" prefix.
Note that for command line completion of {func} you
can prepend "s:" to find script-local functions.
Limitations ~
Local variables will not be visible to string evaluation. For example: >
def EvalString(): list<string>
let list = ['aa', 'bb', 'cc', 'dd']
return range(1, 2)->map('list[v:val]')
enddef
The map argument is a string expression, which is evaluated without the
function scope. Instead, use a lambda: >
def EvalString(): list<string>
let list = ['aa', 'bb', 'cc', 'dd']
return range(1, 2)->map({ _, v -> list[v] })
enddef
==============================================================================
4. Types *vim9-types*
@ -296,29 +565,51 @@ The following builtin types are supported:
float
string
blob
list<type>
dict<type>
(a: type, b: type): type
list<{type}>
dict<{type}>
job
channel
func
partial
func: {type}
func({type}, ...)
func({type}, ...): {type}
Not supported yet:
tuple<a: type, b: type, ...>
tuple<a: {type}, b: {type}, ...>
These types can be used in declarations, but no variable will have this type:
type|type
These types can be used in declarations, but no value will have this type:
{type}|{type} {not implemented yet}
void
any
There is no array type, use list<type> instead. For a list constant an
There is no array type, use list<{type}> instead. For a list constant an
efficient implementation is used that avoids allocating lot of small pieces of
memory.
A function defined with `:def` must declare the return type. If there is no
type then the function doesn't return anything. "void" is used in type
declarations.
A partial and function can be declared in more or less specific ways:
func any kind of function reference, no type
checking for arguments or return value
func: {type} any number and type of arguments with specific
return type
func({type}) function with argument type, does not return
a value
func({type}): {type} function with argument type and return type
func(?{type}) function with type of optional argument, does
not return a value
func(...{type}) function with type of variable number of
arguments, does not return a value
func({type}, ?{type}, ...{type}): {type}
function with:
- type of mandatory argument
- type of optional argument
- type of variable number of arguments
- return type
If the return type is "void" the function does not return a value.
The reference can also be a |Partial|, in which case it stores extra arguments
and/or a dictionary, which are not visible to the caller. Since they are
called in the same way the declaration is the same.
Custom types can be defined with `:type`: >
:type MyList list<string>
@ -373,9 +664,12 @@ Then "myvar" will only exist in this file. While without `vim9script` it would
be available as `g:myvar` from any other script and function.
The variables at the file level are very much like the script-local "s:"
variables in legacy Vim script, but the "s:" is omitted.
variables in legacy Vim script, but the "s:" is omitted. And they cannot be
deleted.
In Vim9 script the global "g:" namespace can still be used as before.
In Vim9 script the global "g:" namespace can still be used as before. And the
"w:", "b:" and "t:" namespaces. These have in common that variables are not
declared and they can be deleted.
A side effect of `:vim9script` is that the 'cpoptions' option is set to the
Vim default value, like with: >
@ -386,22 +680,21 @@ The original value of 'cpoptions' is restored at the end of the script.
Export ~
*:export* *:exp*
Exporting one item can be written as: >
Exporting an item can be written as: >
export const EXPORTED_CONST = 1234
export let someValue = ...
export def MyFunc() ...
export class MyClass ...
As this suggests, only constants, variables, `:def` functions and classes can
be exported.
be exported. {classes are not implemented yet}
Alternatively, an export statement can be used to export several already
defined (otherwise script-local) items: >
export {EXPORTED_CONST, someValue, MyFunc, MyClass}
*E1042*
`:export` can only be used in Vim9 script, at the script level.
Import ~
*:import* *:imp*
*:import* *:imp* *E1094*
The exported items can be imported individually in another Vim9 script: >
import EXPORTED_CONST from "thatscript.vim"
import MyClass from "myclass.vim"
@ -472,8 +765,8 @@ actually needed. A recommended mechanism:
Import in legacy Vim script ~
If an `import` statement is used in legacy Vim script, for identifier the
script-local "s:" namespace will be used, even when "s:" is not specified.
If an `import` statement is used in legacy Vim script, the script-local "s:"
namespace will be used for the imported item, even when "s:" is not specified.
==============================================================================
@ -516,12 +809,37 @@ widely used. The type names are what was used in Vim before, with some
additions such as "void" and "bool".
JavaScript/TypeScript syntax and semantics ~
Compiling functions early ~
Functions are compiled when called or when `:defcompile` is used. Why not
compile them early, so that syntax and type errors are reported early?
The functions can't be compiled right away when encountered, because there may
be forward references to functions defined later. Consider defining functions
A, B and C, where A calls B, B calls C, and C calls A again. It's impossible
to reorder the functions to avoid forward references.
An alternative would be to first scan through the file to locate items and
figure out their type, so that forward references are found, and only then
execute the script and compile the functions. This means the script has to be
parsed twice, which is slower, and some conditions at the script level, such
as checking if a feature is supported, are hard to use. An attempt was made
to see if it works, but it turned out to be impossible to make work nicely.
It would be possible to compile all the functions at the end of the script.
The drawback is that if a function never gets called, the overhead of
compiling it counts anyway. Since startup speed is very important, in most
cases it's better to do it later and accept that syntax and type errors are
only reported then. In case these errors should be found early, e.g. when
testing, the `:defcompile` command will help out.
TypeScript syntax and semantics ~
Script writers have complained that the Vim script syntax is unexpectedly
different from what they are used to. To reduce this complaint popular
languages will be used as an example. At the same time, we do not want to
abandon the well-known parts of legacy Vim script.
languages are used as an example. At the same time, we do not want to abandon
the well-known parts of legacy Vim script.
Since Vim already uses `:let` and `:const` and optional type checking is
desirable, the JavaScript/TypeScript syntax fits best for variable
@ -538,7 +856,7 @@ are doing. Some details are unexpected and can be fixed. For example how the
...
return result || 0 " returns 1
Vim9 script works like JavaScript, keep the value: >
Vim9 script works like JavaScript/Typescript, keep the value: >
let result = 44
...
return result || 0 " returns 44
@ -570,6 +888,16 @@ that works like one would expect:
avoided.
- The Vim-specific use of "s:" to make things script-local can be dropped.
When sourcing a Vim9 script from a legacy script, only the items defined
globally can be used, not the exported items. Alternatives considered:
- All the exported items become available as script-local items. This makes
it uncontrollable what items get defined.
- Use the exported items and make them global. Disadvantage is that it's then
not possible to avoid name clashes in the global namespace.
- Completely disallow sourcing a Vim9 script, require using `:import`. That
makes it difficult to use scripts for testing, or sourcing them from the
command line to try them out.
Classes ~

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