Compare commits

...

1037 Commits

Author SHA1 Message Date
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
5908fdf72f patch 8.2.0478: new buffers are not added to the Buffers menu
Problem:    New buffers are not added to the Buffers menu.
Solution:   Turn number into string. (Yee Cheng Chin, closes #5864)
2020-03-29 20:08:45 +02:00
c58164c5cf patch 8.2.0477: Vim9: error messages not tested
Problem:    Vim9: error messages not tested.
Solution:   Add more tests.
2020-03-29 18:40:30 +02:00
52ea92b19d patch 8.2.0476: terminal nasty callback test fails sometimes
Problem:    Terminal nasty callback test fails sometimes.
Solution:   use term_wait() instead of a sleep. (Yee Cheng Chin,closes #5865)
2020-03-29 17:50:48 +02:00
bf54dbeb5c patch 8.2.0475: channel out_cb test still fails sometimes on Mac
Problem:    Channel out_cb test still fails sometimes on Mac.
Solution:   Use an ever longer timeout.
2020-03-29 16:18:58 +02:00
0fff44152d patch 8.2.0474: cannot use :write when using a plugin with BufWriteCmd
Problem:    Cannot use :write when using a plugin with BufWriteCmd.
Solution:   Reset BF_NOTEDITED after BufWriteCmd. (closes #5807)
2020-03-29 16:06:29 +02:00
8601545338 patch 8.2.0473: variables declared in an outer scope
Problem:    Variables declared in an outer scope.
Solution:   Decleare variables only in the scope where they are used.
2020-03-29 15:12:15 +02:00
360bdbda81 patch 8.2.0472: terminal highlight name is set twice, leaking memory
Problem:    Terminal highlight name is set twice, leaking memory.
Solution:   Delete one.
2020-03-28 22:37:14 +01:00
a30590d3e7 patch 8.2.0471: missing change to compile_list()
Problem:    Missing change to compile_list().
Solution:   Add error message.
2020-03-28 22:06:23 +01:00
7b1b36b1cb patch 8.2.0470: Test_confirm_cmd_cancel() can fail on a slow system
Problem:    Test_confirm_cmd_cancel() can fail on a slow system.
Solution:   Use WaitForAssert(). (Ozaki Kiichi, closes #5861)
2020-03-28 21:48:55 +01:00
ee619e5bc0 patch 8.2.0469: Vim9: no error for missing ] after list
Problem:    Vim9: no error for missing ] after list.
Solution:   Add error message. Add more tests.
2020-03-28 21:38:06 +01:00
7c003aa314 patch 8.2.0468: GUI: pixel dust with some fonts and characters
Problem:    GUI: pixel dust with some fonts and characters.
Solution:   Always redraw the character before the cursor. (Nir Lichtman,
            closes #5549, closes #5856)
2020-03-28 20:44:41 +01:00
33fa29cf74 patch 8.2.0467: Vim9: some errors are not tested
Problem:    Vim9: some errors are not tested
Solution:   Add more tests.  Fix that Vim9 script flag is not reset.
2020-03-28 19:41:33 +01:00
09c569038c patch 8.2.0466: not parsing messages recursively breaks the govim plugin
Problem:    Not parsing messages recursively breaks the govim plugin.
Solution:   When called recursively do handle messages but do not close
            channels.
2020-03-28 18:06:31 +01:00
599c89c82f patch 8.2.0465: Vim9: dead code and wrong return type
Problem:    Vim9: dead code and wrong return type.
Solution:   Remove dead code.  Fix return type.  Add more tests.
2020-03-28 14:53:20 +01:00
495282b6e7 Correct list of patch numbers 2020-03-27 20:59:54 +01:00
14285cb801 patch 8.2.0464: typos and other small problems
Problem:    Typos and other small problems.
Solution:   Fix the typos.  Add missing files to the distribution.
2020-03-27 20:58:37 +01:00
2d9d409ad4 patch 8.2.0464: typos and other small problems
Problem:    Typos and other small problems.
Solution:   Fix the typos.  Add missing file to distribution.
2020-03-27 20:52:45 +01:00
191acfdeca Update runtime files 2020-03-27 20:42:43 +01:00
37bb030cd9 patch 8.2.0462: previewwindow test fails on some systems
Problem:    Previewwindow test fails on some systems. (James McCoy)
Solution:   Wait a bit after sending the "o". (closes #5849)
2020-03-27 20:24:14 +01:00
9207d1f523 patch 8.2.0461: confirm test fails on amd64 system
Problem:    Confirm test fails on amd64 system. (Alimar Riesebieter)
Solution:   Add an extra WaitForAssert(). (Dominique Pelle)
2020-03-27 19:41:02 +01:00
bd5e622bfa patch 8.2.0460: build failure because of wrong feature name
Problem:    Build failure because of wrong feature name.
Solution:   Correct feature name.
2020-03-26 23:13:34 +01:00
15c476023f patch 8.2.0459: cannot check if a function name is correct
Problem:    Cannot check if a function name is correct.
Solution:   Add "?funcname" to exists().
2020-03-26 22:16:48 +01:00
bea9023d42 patch 8.2.0458: missing feature check in test function
Problem:    Missing feature check in test function.
Solution:   Add check commands.
2020-03-26 22:09:52 +01:00
26bde6e2eb patch 8.2.0457: Test_quotestar() often fails when run under valgrind
Problem:    Test_quotestar() often fails when run under valgrind.
Solution:   Wait longer for the GUI to start.
2020-03-26 21:11:58 +01:00
72749f062f patch 8.2.0456: Test_confirm_cmd is flaky
Problem:    Test_confirm_cmd is flaky.
Solution:   Add a term_wait() call. (closes #5854)
2020-03-26 20:51:43 +01:00
83d4790a04 patch 8.2.0455: cannot set the highlight group for a specific terminal
Problem:    Cannot set the highlight group for a specific terminal.
Solution:   Add the "highlight" option to term_start(). (closes #5818)
2020-03-26 20:34:00 +01:00
3ed9efc2b1 patch 8.2.0454: some tests fail when the system is slow
Problem:    Some tests fail when the system is slow.
Solution:   Make the run number global, use in the test to increase the
            waiting time. (closes #5841)
2020-03-26 16:50:57 +01:00
7851b1ca99 patch 8.2.0453: trailing space in job_start() command causes empty argument
Problem:    Trailing space in job_start() command causes empty argument.
Solution:   Ignore trailing space. (closes #5851)
2020-03-26 16:27:38 +01:00
a9c3a30891 patch 8.2.0452: channel_parse_messages() fails when called recursively
Problem:    channel_parse_messages() fails when called recursively.
Solution:   Return for a recursive call. (closes #5835)
2020-03-26 16:03:45 +01:00
82e743c5b3 patch 8.2.0451: Win32: double-width character displayed incorrectly
Problem:    Win32: double-width character displayed incorrectly.
Solution:   First move the cursor to the first column. (Nobuhiro Takasaki,
            closes #5848)
2020-03-26 15:39:53 +01:00
7d941ee032 patch 8.2.0450: not enough testing for restricted mode and function calls
Problem:    Not enough testing for restricted mode and function calls.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5847)
2020-03-26 14:11:58 +01:00
cf3f8bf4dd patch 8.2.0449: Vim9: crash if return type is invalid
Problem:    Vim9: crash if return type is invalid. (Yegappan Lakshmanan)
Solution:   Always return some type, not NULL.
2020-03-26 13:15:42 +01:00
0e05de4622 patch 8.2.0448: various functions not properly tested
Problem:    Various functions not properly tested.
Solution:   Add more tests, especially for failures. (Yegappan Lakshmanan,
            closes #5843)
2020-03-25 22:23:46 +01:00
bfcfd5784a patch 8.2.0447: terminal scroll tests fails on some systems
Problem:    Terminal scroll tests fails on some systems.
Solution:   Remove the fixed 100msec wait for Win32.  Add a loop to wait until
            scrolling has finished. (James McCoy, closes #5842)
2020-03-25 21:27:22 +01:00
a07e31af54 patch 8.2.0446: listener with undo of deleting all lines not tested
Problem:    Listener with undo of deleting all lines not tested.
Solution:   Add a test.
2020-03-25 21:13:46 +01:00
f66ca9f1df patch 8.2.0445: png and xpm files not in MS-Windows zip file
Problem:    Png and xpm files not in MS-Windows zip file.
Solution:   Move files to shared between Unix and Windows target.
2020-03-25 20:17:00 +01:00
d36ef573b2 patch 8.2.0444: swap file test fails on some systems
Problem:    Swap file test fails on some systems.
Solution:   Preserve the swap file. Send NL terminated keys.
2020-03-24 21:44:51 +01:00
45fffdf10b patch 8.2.0443: clipboard code is spread out
Problem:    Clipboard code is spread out.
Solution:   Move clipboard code to its own file. (Yegappan Lakshmanan,
            closes #5827)
2020-03-24 21:42:01 +01:00
71658f74ae patch 8.2.0442: channel contents might be used after being freed
Problem:    Channel contents might be used after being freed.
Solution:   Reset the job channel before freeing the channel.
2020-03-24 20:35:19 +01:00
f3710ee22d patch 8.2.0441: terminal noblock test is still failing on BSD
Problem:    Terminal noblock test is still failing on BSD.
Solution:   Reduce the amount of text.
2020-03-24 12:12:30 +01:00
d06dbf3f42 patch 8.2.0440: terminal noblock test is still very flaky on BSD
Problem:    Terminal noblock test is still very flaky on BSD.
Solution:   Increase the waiting time.
2020-03-24 10:33:00 +01:00
1082772f4c patch 8.2.0439: :disassemble has minor flaws
Problem:    :disassemble has minor flaws.
Solution:   Format the code.  Use (int) instead of (char) for %c.
            (also by James McCoy, closes #5831)
2020-03-23 22:53:22 +01:00
d7b7770f11 patch 8.2.0438: terminal noblock test is very flaky on BSD
Problem:    Terminal noblock test is very flaky on BSD.
Solution:   Change WaitFor() to WaitForAssert() to be able to see why it
            failed.  Add a short wait in between sending keys.
2020-03-23 22:46:44 +01:00
0df541963d patch 8.2.0437: MS-Windows installer contains old stuff
Problem:    MS-Windows installer contains old stuff.
Solution:   Rely on Windows NT. (Ken Takata, closes #5832)
2020-03-23 22:17:11 +01:00
db99f9f29a patch 8.2.0436: no warnings for incorrect printf arguments
Problem:    No warnings for incorrect printf arguments.
Solution:   Fix attribute in declaration.  Fix uncovered mistakes. (Dominique
            Pelle, closes #5834)
2020-03-23 22:12:22 +01:00
dbbb0ef729 patch 8.2.0435: channel contents might be freed twice
Problem:    Channel contents might be freed twice.
Solution:   Call either channel_free_channel() or channel_free(), not both.
            (Nobuhiro Takasaki, closes #5835)
2020-03-23 22:01:17 +01:00
a8bd349638 patch 8.2.0434: MS-Windows with VTP: Normal color not working
Problem:    MS-Windows with VTP: Normal color not working.
Solution:   After changing the Normal color update the VTP console color.
            (Nobuhiro Takasaki, closes #5836)
2020-03-23 21:45:29 +01:00
bad8804cdd patch 8.2.0433: INT signal not properly tested
Problem:    INT signal not properly tested.
Solution:   Add a test.  Also clean up some unnecessary lines. (Dominique
            Pelle, closes #5828)
2020-03-23 20:54:32 +01:00
ab505b1a48 patch 8.2.0432: a few tests fail in a huge terminal
Problem:    A few tests fail in a huge terminal.
Solution:   Make the tests pass. (Dominique Pelle, closes #5829)
2020-03-23 19:28:44 +01:00
56ba21a156 patch 8.2.0431: some compilers don't support using \e for Esc
Problem:    Some compilers don't support using \e for Esc. (Yegappan
            Lakshmanan)
Solution:   use \033 instead.
2020-03-23 19:17:29 +01:00
5080b0a047 patch 8.2.0430: window creation failure not properly tested
Problem:    Window creation failure not properly tested.
Solution:   Improve the test. (Yegappan Lakshmanan, closes #5826)
2020-03-22 21:23:47 +01:00
c5a8fdc42d patch 8.2.0429: no warning when test checks for option that never exists
Problem:    No warning when test checks for option that never exists.
Solution:   In tests check that the option can exist.
2020-03-22 20:13:39 +01:00
d5bc32df20 patch 8.2.0428: buffer name may leak
Problem:    Buffer name may leak.
Solution:   Free the buffer name before overwriting it.
2020-03-22 19:25:50 +01:00
7929651e05 patch 8.2.0427: it is not possible to check for a typo in a feature name
Problem:    It is not possible to check for a typo in a feature name.
Solution:   Add an extra argument to has().
2020-03-22 16:17:14 +01:00
9b9be007e7 patch 8.2.0426: some errors were not tested for
Problem:    Some errors were not tested for.
Solution:   Add tests. (Dominique Pelle, closes #5824)
2020-03-22 14:41:22 +01:00
515545e11f patch 8.2.0425: code for modeless selection not sufficiently tested
Problem:    Code for modeless selection not sufficiently tested.
Solution:   Add tests.  Move mouse code functionality to a common script file.
            (Yegappan Lakshmanan, closes #5821)
2020-03-22 14:08:59 +01:00
97acfc781b patch 8.2.0424: checking for wrong return value
Problem:    Checking for wrong return value. (Tom)
Solution:   Invert the check and fix the test.
2020-03-22 13:44:28 +01:00
ce436de5a9 patch 8.2.0423: in some environments a few tests are expected to fail
Problem:    In some environments a few tests are expected to fail.
Solution:   Add $TEST_MAY_FAIL to list tests that should not cause make to
            fail.
2020-03-21 15:17:20 +01:00
0f1563ffee patch 8.2.0422: crash when passing popup window to win_splitmove()
Problem:    Crash when passing popup window to win_splitmove(). (john Devin)
Solution:   Disallow moving a popup window. (closes #5816)
2020-03-20 21:15:51 +01:00
9645e2d9fc patch 8.2.0421: interrupting with CTRL-C does not always work
Problem:    Interrupting with CTRL-C does not always work.
Solution:   Recognize CTRL-C while modifyOtherKeys is set.
2020-03-20 20:48:49 +01:00
f1ec378b01 patch 8.2.0420: Vim9: cannot interrupt a loop with CTRL-C
Problem:    Vim9: cannot interrupt a loop with CTRL-C.
Solution:   Check for CTRL-C once in a while.  Doesn't fully work yet.
2020-03-20 19:37:47 +01:00
20431c9dbb patch 8.2.0419: various memory leaks in Vim9 script code
Problem:    Various memory leaks in Vim9 script code.
Solution:   Fix the leaks. (Ozaki Kiichi, closes #5814)
2020-03-20 18:39:46 +01:00
8b63313510 patch 8.2.0418: code in eval.c not sufficiently covered by tests
Problem:    Code in eval.c not sufficiently covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5815)
2020-03-20 18:20:51 +01:00
98be7fecac patch 8.2.0417: Travis CI config can be improved
Problem:    Travis CI config can be improved.
Solution:   Remove COVERAGE variable. Add load-snd-dummy script. add "-i NONE"
            to avoid messages about viminfo. (Ozaki Kiichi, closes #5813)
2020-03-20 18:12:59 +01:00
ff78155aa1 Update runtime files 2020-03-19 20:37:11 +01:00
95e59a355b patch 8.2.0416: test leaves file behind
Problem:    Test leaves file behind.
Solution:   Delete the file.
2020-03-19 20:33:33 +01:00
40d235e730 patch 8.2.0415: bsdl filetype is not detected
Problem:    Bsdl filetype is not detected.
Solution:   Add an entry in the filetype list. (Daniel Kho, closes #5810)
2020-03-19 20:32:01 +01:00
373a876d0c patch 8.2.0414: channel connect_waittime() test is flaky
Problem:    Channel connect_waittime() test is flaky.
Solution:   Set the test_is_flaky flag.  Use test_is_flaky for more tests.
2020-03-19 19:44:32 +01:00
5e94a29ebb patch 8.2.0413: buffer menu does not handle special buffers properly
Problem:    Buffer menu does not handle special buffers properly.
Solution:   Keep a dictionary with buffer names to reliably keep track of
            entries.
            Also trigger BufFilePre and BufFilePost for command-line and
            terminal buffers when the name changes.
2020-03-19 18:46:57 +01:00
37f471df6e patch 8.2.0412: MS-Windows: cannot use vimtutor from the start menu
Problem:    MS-Windows: cannot use vimtutor from the start menu.
Solution:   Better check for writable directory. Use the right path for the
            executable. (Wu Yongwei, closes #5774, closes #5756)
2020-03-19 17:13:40 +01:00
24e9b6fe4b patch 8.2.0411: Mac: breakcheck is using a value from the stone ages
Problem:    Mac: breakcheck is using a value from the stone ages.
Solution:   Delete BREAKCHECK_SKIP from the Mac header file. (Ben Jackson)
2020-03-19 16:28:44 +01:00
3696839ef1 patch 8.2.0410: channel test fails too often on slow Mac
Problem:    Channel test fails too often on slow Mac.
Solution:   Increase waiting time to 10 seconds.
2020-03-19 16:22:44 +01:00
b68df220c5 patch 8.2.0409: search test leaves file behind
Problem:    Search test leaves file behind.
Solution:   Delete the file.  Also use Check commands.
2020-03-19 15:05:28 +01:00
22da5596d0 patch 8.2.0408: delete() commented out for testing
Problem:    Delete() commented out for testing.
Solution:   Undo commenting-out.
2020-03-19 14:52:20 +01:00
2d10cd4780 patch 8.2.0407: no early check if :find and :sfind have an argument
Problem:    No early check if :find and :sfind have an argument.
Solution:   Add EX_NEEDARG.
2020-03-19 14:37:30 +01:00
e32848780c patch 8.2.0406: FileReadCmd event not well tested
Problem:    FileReadCmd event not well tested.
Solution:   Add a test.
2020-03-19 13:55:03 +01:00
3fa5e13262 patch 8.2.0405: MSVC: build fails with some combination of features
Problem:    MSVC: build fails with some combination of features.
Solution:   Enable CHANNEL if TERMINAL is enabled. (Mike Williams)
2020-03-19 13:36:56 +01:00
18a2b87ca2 patch 8.2.0404: writefile() error does not give a hint
Problem:    Writefile() error does not give a hint.
Solution:   Add remark about first argument.
2020-03-19 13:08:45 +01:00
a3a9c8ef69 patch 8.2.0403: when 'buftype' is "nofile" there is no overwrite check
Problem:    When 'buftype' is "nofile" there is no overwrite check.
Solution:   Also check for existing file when 'buftype' is set.
            (closes #5807)
2020-03-19 12:38:34 +01:00
30d53e2c11 patch 8.2.0402: setting local instead of global flag
Problem:    Setting local instead of global flag.
Solution:   Prepend "g:" to "test_is_flaky".
2020-03-18 21:10:44 +01:00
8dfcce3a78 patch 8.2.0401: not enough test coverage for evalvars.c
Problem:    Not enough test coverage for evalvars.c.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5804)
2020-03-18 19:32:26 +01:00
3cdcb090a6 patch 8.2.0400: not all tests using a terminal are in the list of flaky tests
Problem:    Not all tests using a terminal are in the list of flaky tests.
Solution:   Introduce the test_is_flaky flag.
2020-03-18 19:18:10 +01:00
292b90d4fa patch 8.2.0399: various memory leaks
Problem:    Various memory leaks.
Solution:   Avoid the leaks. (Ozaki Kiichi, closes #5803)
2020-03-18 15:23:16 +01:00
a21df1db3c patch 8.2.0398: profile test fails when two functions take same time
Problem:    Profile test fails when two functions take same time.
Solution:   Add a short sleep in once function. (closes #5797)
2020-03-17 20:57:09 +01:00
5715b3147b patch 8.2.0397: delayed screen update when using undo from Insert mode
Problem:    Delayed screen update when using undo from Insert mode.
Solution:   Update w_topline and cursor shape before sleeping. (closes #5790)
2020-03-16 22:08:45 +01:00
24ebd83e03 patch 8.2.0396: cmdexpand.c insufficiently tested
Problem:    Cmdexpand.c insufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5789)
2020-03-16 21:25:24 +01:00
a2cbdea968 patch 8.2.0395: build fails with FEAT_EVAL but without FEAT_MENU
Problem:    Build fails with FEAT_EVAL but without FEAT_MENU.
Solution:   Add #ifdef. (John Marriott)
2020-03-16 21:08:31 +01:00
7f009dfa06 patch 8.2.0394: Coverity complains about using NULL pointer
Problem:    Coverity complains about using NULL pointer.
Solution:   Use empty string when option value is NULL.
2020-03-16 20:27:38 +01:00
c030063329 patch 8.2.0393: Coverity warns for not using return value
Problem:    Coverity warns for not using return value.
Solution:   Add (void).
2020-03-16 20:07:16 +01:00
56cb337872 patch 8.2.0392: Coverity warns for using array index out of range
Problem:    Coverity warns for using array index out of range.
Solution:   Add extra "if" to avoid warning.
2020-03-16 20:04:41 +01:00
b2e1f8a28f patch 8.2.0391: CI test coverage dropped
Problem:    CI test coverage dropped.
Solution:   Set $DISPLAY also for non-GUI builds. (James McCoy, closes #5788)
2020-03-16 12:09:30 +01:00
ddbfe238a5 patch 8.2.0390: terminal postponed scrollback test is flaky
Problem:    Terminal postponed scrollback test is flaky.
Solution:   Add delay in between sending keys.  Rename dump files.
2020-03-15 20:33:40 +01:00
e4fc746d13 patch 8.2.0389: delayed redraw when shifting text from Insert mode
Problem:    Delayed redraw when shifting text from Insert mode.
Solution:   Use msg_attr_keep() instead of msg(). (closes #5782)
2020-03-15 19:17:50 +01:00
833805a486 patch 8.2.0388: printmbcharset option not tested
Problem:    Printmbcharset option not tested.
Solution:   Add a test.  Enable PostScript for AppVeyor build. (Dominique
            Pelle, closes #5783)
2020-03-15 18:27:43 +01:00
bb65a5690c patch 8.2.0387: error for possible NULL argument to qsort()
Problem:    Error for possible NULL argument to qsort().
Solution:   Don't call qsort() when there is nothing to sort. (Dominique
            Pelle, closes #5780)
2020-03-15 18:15:03 +01:00
0bdbc10e8a patch 8.2.0386: part from unfinished patch got included
Problem:    Part from unfinished patch got included.
Solution:   Undo that part.
2020-03-15 16:51:40 +01:00
0eabd4dc8f patch 8.2.0385: menu functionality insufficiently tested
Problem:    Menu functionality insufficiently tested.
Solution:   Add tests.  Add menu_info(). (Yegappan Lakshmanan, closes #5760)
2020-03-15 16:13:53 +01:00
5e4d1eba95 patch 8.2.0384: Travis CI has warnings
Problem:    Travis CI has warnings.
Solution:   Avoid warnings, clean up the config. (Ozaki Kiichi, closes #5779)
2020-03-15 15:10:11 +01:00
4f32f9c90e patch 8.2.0383: wrong feature check causes test not to be run
Problem:    Wrong feature check causes test not to be run.
Solution:   Use CheckFunction instead of CheckFeature. (Ozaki Kiichi,
            closes #5781)
2020-03-15 14:53:35 +01:00
353c351bd2 patch 8.2.0382: some tests fail when run under valgrind
Problem:    Some tests fail when run under valgrind.
Solution:   Increase timeouts.
2020-03-15 14:19:26 +01:00
2573af3519 patch 8.2.0381: using freed memory with :lvimgrep and autocommand
Problem:    Using freed memory with :lvimgrep and autocommand. (extracted from
            POC by Dominique Pelle)
Solution:   Avoid deleting a dummy buffer used in a window. (closes #5777)
2020-03-14 17:21:34 +01:00
1939826509 patch 8.2.0380: tiny popup when creating a terminal popup without minwidth
Problem:    Tiny popup when creating a terminal popup without minwidth.
Solution:   Use a default mininum size of 5 lines of 20 characters.
2020-03-14 15:28:08 +01:00
b17893aa94 Update runtime files 2020-03-14 08:19:51 +01:00
965fd8d4dc patch 8.2.0379: gcc warns for ambiguous else
Problem:    Gcc warns for ambiguous else.
Solution:   Add braces. (Dominique Pelle, closes #5778)
2020-03-14 07:46:40 +01:00
346f18e5fe patch 8.2.0378: prop_find() does not find all props
Problem:    prop_find() does not find all props.
Solution:   Check being in the start line. (Axel Forsman, closes #5776)
2020-03-13 21:36:40 +01:00
d47e6f0b4c patch 8.2.0377: no CI test for a big-endian system
Problem:    No CI test for a big-endian system.
Solution:   Test with s390x. (James McCoy, closes #5772)
2020-03-13 15:44:49 +01:00
fa5d8a191d patch 8.2.0376: nasty callback test fails on some systems
Problem:    Nasty callback test fails on some systems.
Solution:   Increase the sleep time.
2020-03-13 14:55:23 +01:00
8210693795 patch 8.2.0375: Coverity warning for not using return value
Problem:    Coverity warning for not using return value.
Solution:   Move error message to separate function.
2020-03-13 14:34:38 +01:00
8a677a37d0 patch 8.2.0374: using wrong printf directive for jump location
Problem:    Using wrong printf directive for jump location.
Solution:   Change "%lld" to "%d". (James McCoy, closes #5773)
2020-03-12 19:15:45 +01:00
3a05ce63fe patch 8.2.0373: type of term_sendkeys() is unknown
Problem:    Type of term_sendkeys() is unknown.
Solution:   Just return zero. (closes #5762)
2020-03-11 19:30:01 +01:00
66b98854d8 patch 8.2.0372: prop_find() may not find text property at start of the line
Problem:    Prop_find() may not find text property at start of the line.
Solution:   Adjust the loop to find properties. (Axel Forsman, closes #5761,
            closes #5663)
2020-03-11 19:15:52 +01:00
cee52204ca patch 8.2.0371: crash with combination of terminal popup and autocmd
Problem:    Crash with combination of terminal popup and autocmd.
Solution:   Disallow closing a popup that is the current window.  Add a check
            that the current buffer is valid. (closes #5754)
2020-03-11 14:19:58 +01:00
e49b4bb895 patch 8.2.0370: the typebuf_was_filled flag is sometimes not reset
Problem:    The typebuf_was_filled flag is sometimes not reset, which may
            cause a hang.
Solution:   Make sure typebuf_was_filled is reset when the typeahead buffer is
            empty.
2020-03-11 13:01:40 +01:00
1671f44881 patch 8.2.0369: various Normal mode commands not fully tested
Problem:    Various Normal mode commands not fully tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5751)
2020-03-10 07:48:13 +01:00
5269bd2a72 patch 8.2.0368: Vim9: import that redefines local variable does not fail
Problem:    Vim9: import that redefines local variable does not fail.
Solution:   Check for already defined symbols.
2020-03-09 19:25:27 +01:00
3a2505cc18 patch 8.2.0367: can use :pedit in a popup window
Problem:    Can use :pedit in a popup window.
Solution:   Disallow it.
2020-03-09 16:40:41 +01:00
2e09634a78 patch 8.2.0366: hardcopy command not tested enough
Problem:    Hardcopy command not tested enough.
Solution:   Add tests for printing. (Dominique Pelle, closes #5748)
2020-03-09 12:13:27 +01:00
283e5f4e69 patch 8.2.0365: tag kind can't be a multi-byte character
Problem:    Tag kind can't be a multi-byte character. (Marcin Szamotulski)
Solution:   Recognize multi-byte character. (closes #5724)
2020-03-09 08:17:52 +01:00
693e80e938 patch 8.2.0364: printf test failing on Haiku
Problem:    Printf test failing on Haiku.
Solution:   Make a difference between int and short. (Dominique Pelle,
            closes #5749)
2020-03-08 18:41:09 +01:00
f5f1e10d0d patch 8.2.0363: some Normal mode commands not tested
Problem:    Some Normal mode commands not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5746)
2020-03-08 05:13:15 +01:00
d0d440f702 patch 8.2.0362: MS-Windows: channel test fails if grep is not available
Problem:    MS-Windows: channel test fails if grep is not available.
Solution:   Use another command. (Ken Takata, closes #5739)
2020-03-07 17:24:59 +01:00
14e57909e6 patch 8.2.0361: internal error when using "0" for a callback
Problem:    Internal error when using "0" for a callback.
Solution:   Give a normal error. (closes #5743)
2020-03-07 16:59:25 +01:00
8eab731328 patch 8.2.0360: yaml files are only recognized by the file extension
Problem:    Yaml files are only recognized by the file extension.
Solution:   Check for a line starting with "%YAML". (Jason Franklin)
2020-03-06 22:25:56 +01:00
ba2920fe97 patch 8.2.0359: popup_atcursor() may hang
Problem:    popup_atcursor() may hang. (Yasuhiro Matsumoto)
Solution:   Take the decoration into account. (closes #5728)
2020-03-06 21:43:17 +01:00
bd7206e02c patch 8.2.0358: insufficient testing for indent.c
Problem:    Insufficient testing for indent.c.
Solution:   Add indent tests. (Yegappan Lakshmanan, closes #5736)
2020-03-06 20:36:04 +01:00
49b79bd488 patch 8.2.0357: cannot delete a text property matching both id and type
Problem:    Cannot delete a text property matching both id and type. (Axel
            Forsman)
Solution:   Add the "both" argument.
2020-03-05 21:52:55 +01:00
8f027fe470 patch 8.2.0356: MS-Windows: feedkeys() with VIMDLL cannot handle CSI
Problem:    MS-Windows: feedkeys() with VIMDLL cannot handle CSI correctly.
Solution:   Modify mch_inchar() to encode CSI bytes. (Ozaki Kiichi, Ken
            Takata, closes #5726)
2020-03-04 23:21:35 +01:00
a471eeae75 patch 8.2.0355: Vim9: str_val is confusing, it's a number
Problem:    Vim9: str_val is confusing, it's a number
Solution:   Rename to stnr_val.
2020-03-04 22:20:26 +01:00
a65bb53514 patch 8.2.0354: Python 3.9 does not define _Py_DEC_REFTOTAL
Problem:    Python 3.9 does not define _Py_DEC_REFTOTAL. (Zdenek Dohnal)
Solution:   Remove it, it was only for debugging.
2020-03-04 22:06:07 +01:00
d0df1aacd8 patch 8.2.0353: Vim9: while loop not tested
Problem:    Vim9: while loop not tested.
Solution:   Add test with "while", "break" and "continue"
2020-03-04 21:50:46 +01:00
36ddf93831 patch 8.2.0352: FreeBSD: test for sourcing utf-8 is skipped
Problem:    FreeBSD: test for sourcing utf-8 is skipped.
Solution:   Run the matchadd_conceal test separately to avoid that setting
            'term' to "ansi" causes problems for other tests. (Ozaki Kiichi,
            closes #5721)
2020-03-03 23:06:48 +01:00
3e919d2924 patch 8.2.0351: terminal in popup test is still a bit flaky
Problem:    Terminal in popup test is still a bit flaky.
Solution:   Clear and redraw before opening the popup.
2020-03-03 22:56:39 +01:00
080457c02d patch 8.2.0350: Vim9: expression tests don't use recognized constants
Problem:    Vim9: expression tests don't use recognized constants.
Solution:   Recognize "true" and "false" as constants.  Make skipping work for
            assignment and expression evaluation.
2020-03-03 21:53:32 +01:00
6d69bf602b patch 8.2.0349: Vim9: constant expression not well tested
Problem:    Vim9: constant expression not well tested.
Solution:   Add tests for "if" with constant expression.
2020-03-03 19:02:12 +01:00
5381c7a162 patch 8.2.0348: Vim9: not all code tested
Problem:    Vim9: not all code tested.
Solution:   Add a few more tests. fix using "b:" in literal dictionary.
2020-03-02 22:53:32 +01:00
91ffc8a5f5 patch 8.2.0347: various code not covered by tests
Problem:    Various code not covered by tests.
Solution:   Add more test coverage. (Yegappan Lakshmanan, closes #5720)
2020-03-02 20:54:22 +01:00
61a6d4e48b patch 8.2.0346: Vim9: finding common list type not tested
Problem:    Vim9: finding common list type not tested.
Solution:   Add more tests.  Fix listing function.  Fix overwriting type.
2020-03-01 23:32:25 +01:00
815eb83b09 patch 8.2.0345: compiler warning when building without the float feature
Problem:    Compiler warning when building without the float feature.
Solution:   Add #ifdef. (John Marriott)
2020-03-01 20:34:26 +01:00
ab55c6826f patch 8.2.0344: ":def" not skipped properly
Problem:    ":def" not skipped properly.
Solution:   Add CMD_def to list of commands the require evaluation even when
            not being executed.
2020-03-01 19:41:43 +01:00
eab6dff19f Update runtime files 2020-03-01 19:06:45 +01:00
f51cb4e08e patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Problem:    Vim9: using wrong instruction, limited test coverage.
Solution:   Use ISN_PUSHJOB.  Add a few more tests.
2020-03-01 17:55:14 +01:00
0546d7df13 patch 8.2.0342: some code in ex_getln.c not covered by tests
Problem:    Some code in ex_getln.c not covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5717)
2020-03-01 16:53:09 +01:00
41fe061753 patch 8.2.0341: using ":for" in Vim9 script gives an error
Problem:    Using ":for" in Vim9 script gives an error.
Solution:   Pass the LET_NO_COMMAND flag. (closes #5715)
2020-03-01 16:22:40 +01:00
087d2e1518 patch 8.2.0340: Vim9: function and partial types not tested
Problem:    Vim9: function and partial types not tested.
Solution:   Support more for partial, add tests.
2020-03-01 15:36:42 +01:00
fbdd08ed9b patch 8.2.0339: Vim9: function return type may depend on arguments
Problem:    Vim9: function return type may depend on arguments.
Solution:   Instead of a fixed return type use a function to figure out the
            return type.
2020-03-01 14:04:46 +01:00
f4f190d821 patch 8.2.0338: build failure without the channel feature
Problem:    Build failure without the channel feature.
Solution:   Add #ifdef
2020-03-01 13:01:16 +01:00
b54b8e0c86 patch 8.2.0337: build fails on a few systems
Problem:    Build fails on a few systems.
Solution:   Use vim_snprintf() instead of snprintf().
2020-03-01 01:05:53 +01:00
42a480bf72 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Problem:    Vim9: insufficient test coverage for compiling.
Solution:   Add more tests.
2020-02-29 23:23:47 +01:00
cc390ff5b2 patch 8.2.0335: no completion for :disassemble
Problem:    No completion for :disassemble.
Solution:   Make completion work.  Also complete script-local functions if the
            name starts with "s:".
2020-02-29 22:06:30 +01:00
dd58923c6b patch 8.2.0334: abort called when using test_void()
Problem:    Abort called when using test_void(). (Dominique Pelle)
Solution:   Only give an error, don't abort.
2020-02-29 17:38:12 +01:00
57c339569e patch 8.2.0333: terminal in popup test is flaky
Problem:    Terminal in popup test is flaky.
Solution:   Make sure redraw is done before opening the popup.
2020-02-29 16:09:16 +01:00
d30ae2fc4a patch 8.2.0332: some code in ex_getln.c not covered by tests
Problem:    Some code in ex_getln.c not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5710)
2020-02-29 14:23:58 +01:00
7c215c5893 patch 8.2.0331: internal error when using test_void() and test_unknown()
Problem:    Internal error when using test_void() and test_unknown().
            (Dominique Pelle)
Solution:   Give a normal error.
2020-02-29 13:43:27 +01:00
57c732ed78 patch 8.2.0330: build error with popup window but without terminal
Problem:    Build error with popup window but without terminal.
Solution:   Add #ifdef.
2020-02-28 22:51:54 +01:00
ec084d3356 patch 8.2.0329: popup filter converts 0x80 bytes
Problem:    Popup filter converts 0x80 bytes.
Solution:   Keep 0x80 bytes as-is. (Ozaki Kiichi, closes #5706)
2020-02-28 22:44:47 +01:00
e52e0c89d1 patch 8.2.0328: no redraw when leaving term-normal mode in popup terminal
Problem:    No redraw when leaving terminal-normal mode in a terminal popup
            window.
Solution:   Redraw the popup window. (closes #5708)
2020-02-28 22:20:10 +01:00
80ae880f5f patch 8.2.0327: crash when opening and closing two popup terminal windows
Problem:    Crash when opening and closing two popup terminal windows.
Solution:   Check that prevwin is valid. (closes #5707)
2020-02-28 19:11:18 +01:00
d5aec0ced1 patch 8.2.0326: compiler warning for using uninitialized variable
Problem:    Compiler warning for using uninitialized variable. (Yegappan
            Lakshmanan)
Solution:   Do not jump to failed but return.
2020-02-27 21:48:51 +01:00
578fe947e3 patch 8.2.0325: ex_getln.c code not covered by tests
Problem:    Ex_getln.c code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5702)
2020-02-27 21:32:51 +01:00
12f2003871 patch 8.2.0324: text property not updated correctly when inserting/deleting
Problem:    Text property not updated correctly when inserting/deleting.
Solution:   Use the right column when deleting. Make zero-width text
            properties respect start_incl and end_incl. (Axel Forsman,
            closes #5696, closes #5679)
2020-02-26 22:06:00 +01:00
7eeefd4a39 patch 8.2.0323: Vim9: calling a function that is defined later is slow
Problem:    Vim9: calling a function that is defined later is slow.
Solution:   Once the function is found update the instruction so it can be
            called directly.
2020-02-26 21:24:23 +01:00
b35efa5ed0 patch 8.2.0322: Vim9: error checks not tested
Problem:    Vim9: error checks not tested.
Solution:   Add more test cases.  Avoid error for function loaded later.
2020-02-26 20:15:18 +01:00
ad39c094d2 patch 8.2.0321: Vim9: ":execute" does not work yet
Problem:    Vim9: ":execute" does not work yet.
Solution:   Add ISN_EXECUTE. (closes #5699) Also make :echo work with more
            than one argument.
2020-02-26 18:23:43 +01:00
b3f740695a patch 8.2.0320: no Haiku support
Problem:    No Haiku support.
Solution:   Add support for Haiku. (Emir Sari, closes #5605)
2020-02-26 16:16:53 +01:00
d672dde584 patch 8.2.0319: file missing in distribution, comments outdated
Problem:    File missing in distribution, comments outdated.
Solution:   Correct path of README file.  Update comments.
2020-02-26 13:43:51 +01:00
bc93cebb69 Update runtime files. 2020-02-26 13:36:21 +01:00
0c2ca58ef0 patch 8.2.0318: Vim9: types not sufficiently tested
Problem:    Vim9: types not sufficiently tested.
Solution:   Add tests with more types.
2020-02-25 22:58:29 +01:00
703ea9eaef patch 8.2.0317: MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build
Problem:    MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build.
Solution:   Move where CFLAGS is updated. (Ken Takata, closes #5692)
2020-02-25 22:04:55 +01:00
8d588ccee5 patch 8.2.0316: ex_getln.c code has insufficient test coverage
Problem:    ex_getln.c code has insufficient test coverage.
Solution:   Add more tests. Fix a problem. (Yegappan Lakshmanan, closes #5693)
2020-02-25 21:47:45 +01:00
c593bec412 patch 8.2.0315: build failure on HP-UX system
Problem:    Build failure on HP-UX system.
Solution:   Use LONG_LONG_MIN instead of LLONG_MIN.  Add type casts for switch
            statement. (John Marriott)
2020-02-25 21:26:49 +01:00
e010c720b2 patch 8.2.0314: short name not set for terminal buffer
Problem:    Short name not set for terminal buffer.
Solution:   Set the short name. (closes #5687)
2020-02-24 21:37:54 +01:00
fa29c8abd6 patch 8.2.0313: Vim9: insufficient script tests
Problem:    Vim9: insufficient script tests.
Solution:   Add tests.  Make import of alphanumeric name work.
2020-02-23 22:35:05 +01:00
f2d5c240a5 patch 8.2.0312: Vim9: insufficient script tests
Problem:    Vim9: insufficient script tests.
Solution:   Add more tests.  Make "import * as Name" work.
2020-02-23 21:25:54 +01:00
750802b55c patch 8.2.0311: Vim9: insufficient script tests
Problem:    Vim9: insufficient script tests.
Solution:   Add tests.  Free imports when re-using a script.
2020-02-23 18:08:33 +01:00
8fb1b47a5e patch 8.2.0310: autocmd test fails on a slow system
Problem:    Autocmd test fails on a slow system.
Solution:   Adjust the expectations. (James McCoy, closes #5685)
2020-02-23 16:16:26 +01:00
b81f56fb57 patch 8.2.0309: window-local values have confusing name
Problem:    Window-local values have confusing name.
Solution:   Rename w_p_bri* to w_briopt_*.
2020-02-23 15:29:46 +01:00
1aa76b8fd0 patch 8.2.0308: 'showbreak' does not work for a very long line
Problem:    'showbreak' does not work for a very long line. (John Little)
Solution:   Check whether 'briopt' contains "sbr". (Ken Takata, closes #5523,
            closes #5684)
2020-02-23 15:17:27 +01:00
026270c01d patch 8.2.0307: Python 3 vim.eval not well tested
Problem:    Python 3 vim.eval not well tested.
Solution:   Add a test. (Dominique Pelle, closes #5680)
2020-02-23 15:10:16 +01:00
83f37b9142 patch 8.2.0306: Vim9: :substitute(pat(repl does not work in Vim9 script
Problem:    Vim9: :substitute(pat(repl does not work in Vim9 script.
Solution:   Remember starting with a colon. (closes #5676)
2020-02-23 14:35:01 +01:00
8040a7147f patch 8.2.0305: relativenumber test fails on some systems
Problem:    Relativenumber test fails on some systems. (James McCoy)
Solution:   Clear the command line.
2020-02-23 13:38:08 +01:00
95ffd43f88 patch 8.2.0304: terminal test if failing on some systems
Problem:    Terminal test if failing on some systems.
Solution:   Wait for the job to finish. (James McCoy)
2020-02-23 13:29:31 +01:00
d28e0b3652 patch 8.2.0303: TermChanged test fails in the GUI
Problem:    TermChanged test fails in the GUI.
Solution:   Skip the test when running the GUI.
2020-02-22 23:08:52 +01:00
0c81d1b112 patch 8.2.0302: setting 'term' may cause error in TermChanged autocommand
Problem:    Setting 'term' may cause error in TermChanged autocommand.
Solution:   Use aucmd_prepbuf() to switch to the buffer where the autocommand
            is to be executed. (closes #5682)
2020-02-22 22:45:55 +01:00
b654103ad1 patch 8.2.0301: insufficient testing for exception handling
Problem:    Insufficient testing for exception handling and the "attention"
            prompt.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5681)
2020-02-22 21:21:27 +01:00
b4d2cb1083 patch 8.2.0300: Vim9: expression test fails without channel support
Problem:    Vim9: expression test fails without channel support.
Solution:   Add has('channel') check.
2020-02-22 20:33:08 +01:00
8ed04587d3 patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Problem:    Vim9: ISN_STORE with argument not tested.  Some cases in tv2bool()
            not tested.
Solution:   Add tests.  Add test_unknown() and test_void().
2020-02-22 19:07:28 +01:00
0c6ceaf903 patch 8.2.0298: Vim9 script: cannot start command with a string constant
Problem:    Vim9 script: cannot start command with a string constant.
Solution:   Recognize expression starting with '('.
2020-02-22 18:36:32 +01:00
8b430b4c1d patch 8.2.0297: compiler warnings for the Ruby interface
Problem:    Compiler warnings for the Ruby interface.
Solution:   Undefine a few macros, fix initialization. (Ozaki Kiichi,
            closes #5677)
2020-02-22 15:01:00 +01:00
f9706e9df0 patch 8.2.0296: mixing up "long long" and __int64 may cause problems
Problem:    Mixing up "long long" and __int64 may cause problems. (John
            Marriott)
Solution:   Pass varnumber_T to vim_snprintf().  Add v:numbersize.
2020-02-22 14:27:04 +01:00
c036e87bd7 patch 8.2.0295: highlighting for :s wrong when using different separator
Problem:    Highlighting for :s wrong when using different separator.
Solution:   Use separat argument for search direction and separator. (Rob
            Pilling, closes #5665)
2020-02-21 21:30:52 +01:00
5b1c8fe3d5 patch 8.2.0294: cannot use Ex command that is also a function name
Problem:    Cannot use Ex command that is also a function name.
Solution:   Recognize an Ex command by a colon prefix.
2020-02-21 18:42:43 +01:00
818fc9ad14 patch 8.2.0293: various Ex commands not sufficiently tested
Problem:    Various Ex commands not sufficiently tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5673)
2020-02-21 17:54:45 +01:00
09f28f49c9 patch 8.2.0292: Vim9: CHECKNR and CHECKTYPE instructions not tested
Problem:    Vim9: CHECKNR and CHECKTYPE instructions not tested.
Solution:   Add tests.
2020-02-20 23:08:34 +01:00
436472f5e0 patch 8.2.0291: Vim9: assigning [] to list<string> doesn't work
Problem:    Vim9: assigning [] to list<string> doesn't work.
Solution:   Use void for empty list and dict. (Ken Takata, closes #5669)
2020-02-20 22:54:43 +01:00
85683ec620 patch 8.2.0290: running individual test differs from all tests
Problem:    Running individual test differs from all tests.
Solution:   Pass on environment variables. (Yee Cheng Chin, closes #5672)
2020-02-20 22:35:02 +01:00
e0807ea4a7 patch 8.2.0289: Vim9: :echo did not clear the rest of the line
Problem:    Vim9: :echo did not clear the rest of the line.
Solution:   Call msg_clr_eos(). (Ken Takata, closes #5668)
2020-02-20 22:18:06 +01:00
0062c2d4f9 patch 8.2.0288: Vim9: some float and blob operators not tested
Problem:    Vim9: some float and blob operators not tested.
Solution:   Add float and blob tests.  Fix addition.
2020-02-20 22:14:31 +01:00
f575adff06 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Problem:    Vim9: return in try block not tested; catch with pattern not
            tested.
Solution:   Add tests.  Make it work.
2020-02-20 20:41:06 +01:00
11ec807639 patch 8.2.0286: cannot use popup_close() for a terminal popup
Problem:    Cannot use popup_close() for a terminal popup.
Solution:   Allow using popup_close(). (closes #5666)
2020-02-20 20:12:29 +01:00
0bbf722aaa patch 8.2.0285: unused error message; cannot create s:var
Problem:    Unused error message. Cannot create s:var.
Solution:   Remove the error message. Make assignment to s:var work.
2020-02-19 22:31:48 +01:00
c0d656c89d patch 8.2.0284: Vim9: assignment test fails
Problem:    Vim9: assignment test fails.
Solution:   Avoid duplicating "s:".
2020-02-19 21:12:40 +01:00
fd1823e0b7 patch 8.2.0283: Vim9: failing to load script var not tested
Problem:    Vim9: failing to load script var not tested.
Solution:   Add more tests.   Fix using s: in old script.
2020-02-19 20:23:11 +01:00
401d9ffb5a patch 8.2.0282: Vim9: setting number option not tested
Problem:    Vim9: setting number option not tested.
Solution:   Add more tests.   Fix assigning to global variable.
2020-02-19 18:14:44 +01:00
a2f6e42ded patch 8.2.0281: two placed signs in the same line are not combined
Problem:    Two placed signs in the same line are not combined.  E.g. in the
            terminal debugger a breakpoint and the PC cannot be both be
            displayed.
Solution:   Combine the sign column and line highlight attributes.
2020-02-19 17:13:04 +01:00
257cc5ee95 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Problem:    Vim9: throw in :def function not caught higher up.
Solution:   Set "need_rethrow".
2020-02-19 17:06:11 +01:00
63ce4849ef patch 8.2.0279: Vim9: no test for deleted :def function
Problem:    Vim9: no test for deleted :def function.
Solution:   Add a test.  Clear uf_cleared flag when redefining a function.
2020-02-19 15:46:48 +01:00
9ae3bbdb96 patch 8.2.0278: channel test is flaky on Mac
Problem:    Channel test is flaky on Mac.
Solution:   Reset variable before sending message.
2020-02-19 14:31:33 +01:00
ee2e52aa06 patch 8.2.0277: Vim9: not all instructions covered by tests
Problem:    Vim9: not all instructions covered by tests.
Solution:   Add more test cases.
2020-02-19 14:17:18 +01:00
38a5f517a7 patch 8.2.0276: Vim9: not allowing space before ")" in function call
Problem:    Vim9: not allowing space before ")" in function call is too
            restrictive. (Ben Jackson)
Solution:   Skip space before the ")".  Adjust other space checks.
2020-02-19 12:40:39 +01:00
406cd90f19 patch 8.2.0275: some Ex code not covered by tests
Problem:    Some Ex code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5659)
2020-02-18 21:54:41 +01:00
9e2bcb5d23 patch 8.2.0274: hang with combination of feedkeys(), Ex mode and :global
Problem:    Hang with combination of feedkeys(), Ex mode and :global.
            (Yegappan Lakshmanan)
Solution:   Add the pending_exmode_active flag.
2020-02-18 21:33:00 +01:00
1fa8d2c33d patch 8.2.0273: MS-Windows uninstall may delete wrong batch file
Problem:    MS-Windows uninstall may delete wrong batch file.
Solution:   Add specific marker in the generated batch file. (Ken Takata,
            closes #5654)
2020-02-17 22:53:14 +01:00
414b796627 patch 8.2.0272: ":helptags ALL" gives error for some directories
Problem:    ":helptags ALL" gives error for directories without write
            permission. (Matěj Cepl)
Solution:   Ignore errors for ":helptags ALL". (Ken Takata, closes #5026,
            closes #5652)
2020-02-17 22:39:35 +01:00
82f654e092 patch 8.2.0271: the "num64" feature is available everywhere
Problem:    The "num64" feature is available everywhere and building without
            it causes problems.
Solution:   Graduage the "num64" feature. (James McCoy, closes #5650)
2020-02-17 22:12:50 +01:00
bc2b71d44a patch 8.2.0270: some code not covered by tests
Problem:    Some code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5649)
2020-02-17 21:33:30 +01:00
b13af50f73 patch 8.2.0269: Vim9: operator after list index does not work
Problem:    Vim9: operator after list index does not work. (Yasuhiro
            Matsumoto)
Solution:   After indexing a list change the type to the list member type.
            (closes #5651)
2020-02-17 21:12:08 +01:00
40d9da2a43 patch 8.2.0268: trycatch test fails
Problem:    Trycatch test fails.
Solution:   When calling function fails only check for following command, do
            not give another error.
2020-02-17 10:01:24 +01:00
e51bb17dd0 patch 8.2.0267: no check for a following cmd when calling a function fails
Problem:    No check for a following command when calling a function fails.
Solution:   Also check for a following command when inside a try block.
            (closes #5642)
2020-02-16 19:42:23 +01:00
a28be85ccd patch 8.2.0266: terminal in popup test sometimes fails on Mac
Problem:    Terminal in popup test sometimes fails on Mac.
Solution:   Add a short delay.
2020-02-16 17:04:09 +01:00
a76b31542e patch 8.2.0265: "eval" after "if 0" doesn't check for following command
Problem:    "eval" after "if 0" doesn't check for following command.
Solution:   Add "eval" to list of commands that check for a following command.
            (closes #5640)
2020-02-16 16:20:21 +01:00
a36c830a32 patch 8.2.0264: fileformat test still fails on MS-Windows
Problem:    Fileformat test still fails on MS-Windows.
Solution:   Set fileformat of buffer in the right place.
2020-02-16 15:08:28 +01:00
df2ecddf9d patch 8.2.0263: a few new Vim9 messages are not localized
Problem:    A few new Vim9 messages are not localized.
Solution:   Add the gettext wrapper. (Dominique Pelle, closes #5647)
2020-02-16 15:03:48 +01:00
50434bd74c patch 8.2.0262: fileformat test fails on MS-Windows
Problem:    Fileformat test fails on MS-Windows.
Solution:   Set fileformat of buffer.
2020-02-16 14:55:22 +01:00
f0cee1971f patch 8.2.0261: some code not covered by tests
Problem:    Some code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5645)
2020-02-16 13:33:56 +01:00
f4140488c7 patch 8.2.0260: several lines of code are duplicated
Problem:    Several lines of code are duplicated.
Solution:   Move duplicated code to a function. (Yegappan Lakshmanan,
            closes #5330)
2020-02-15 23:06:45 +01:00
ebdf3c964a Update runtime files. 2020-02-15 21:41:42 +01:00
c2adc00fa7 patch 8.2.0259: terminal in popup test sometimes fails
Problem:    Terminal in popup test sometimes fails.
Solution:   Clear the command line.
2020-02-14 17:05:18 +01:00
4132eb505c patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Problem:    ModifyOtherKeys cannot be temporarily disabled.
Solution:   Add echoraw() with an example for modifyOtherKeys.
2020-02-14 16:53:00 +01:00
00f3b4e007 patch 8.2.0257: cannot recognize a terminal in a popup window
Problem:    Cannot recognize a terminal in a popup window.
Solution:   Add the win_gettype() function.
2020-02-14 14:32:22 +01:00
0a8fed6231 patch 8.2.0256: time and timer related code is spread out
Problem:    Time and timer related code is spread out.
Solution:   Move time and timer related code to a new file. (Yegappan
            Lakshmanan, closes #5604)
2020-02-14 13:22:17 +01:00
f2cecb6c10 patch 8.2.0255: VMS: missing files in build
Problem:    VMS: missing files in build.
Solution:   Add the files. (Zoltan Arpadffy)
2020-02-13 21:59:25 +01:00
ae8d2de3a9 patch 8.2.0254: compiler warning for checking size_t to be negative
Problem:    Compiler warning for checking size_t to be negative.
Solution:   Only check for zero. (Zoltan Arpadffy)
2020-02-13 21:42:24 +01:00
21456cdccb patch 8.2.0253: crash when using :disassamble without argument
Problem:    Crash when using :disassamble without argument. (Dhiraj Mishra)
Solution:   Check for missing argument. (Dominique Pelle, closes #5635,
            closes #5637)
2020-02-13 21:29:32 +01:00
3dd64608f6 patch 8.2.0252: Windows compiler warns for using size_t
Problem:    Windows compiler warns for using size_t.
Solution:   Change to int. (Mike Williams)
2020-02-13 20:31:28 +01:00
7306d6b1c9 patch 8.2.0251: a couple of function return types can be more specific
Problem:    A couple of function return types can be more specific.
Solution:   Use a better return type. (Ken Takata, closes #5629)
2020-02-12 22:25:56 +01:00
4f5776c17c patch 8.2.0250: test_clear_search_pat() is unused
Problem:    test_clear_search_pat() is unused.
Solution:   Remove the function. (Yegappan Lakshmanan, closes #5624)
2020-02-12 22:15:19 +01:00
3fb377fa78 patch 8.2.0249: MS-Windows: various warnings
Problem:    MS-Windows: various warnings.
Solution:   Set the charset to utf-8. Add _WIN32_WINNT and _USING_V110_SDK71_.
            (Ken Takata, closes #5625)
2020-02-12 21:52:32 +01:00
2f18975088 patch 8.2.0248: MS-Windows: dealing with deprecation is too complicated
Problem:    MS-Windows: dealing with deprecation is too complicated.
Solution:   Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build
            file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken
            Takata, closes #5626)
2020-02-12 21:15:43 +01:00
3b0ef8cfdb patch 8.2.0247: misleading comment in NSIS installer script
Problem:    Misleading comment in NSIS installer script.
Solution:   Negate the meaning of the comment. (Ken Takata, closes #5627)
2020-02-12 21:03:32 +01:00
49c99fcca0 patch 8.2.0246: MSVC: deprecation warnings with Ruby
Problem:    MSVC: deprecation warnings with Ruby.
Solution:   Move _CRT_SECURE_NO_DEPRECATE to build file. (Ken Takata,
            closes #5622)
2020-02-11 23:01:39 +01:00
5489eab345 patch 8.2.0245: MSVC: error message if the auto directory already exists
Problem:    MSVC: error message if the auto directory already exists.
Solution:   Add "if not exists". (Ken Takata, closes #5620)
2020-02-11 22:49:18 +01:00
5f1d3ae8a8 patch 8.2.0244: compiler warning in Lua interface
Problem:    Compiler warning in Lua interface.
Solution:   Add type cast. (Ken Takata, closes #5621)
2020-02-11 22:37:35 +01:00
9f6277bdde patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Problem:    Insufficient code coverage for ex_docmd.c functions.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5618)
2020-02-11 22:04:02 +01:00
799439a5d8 patch 8.2.0242: preview popup window test fails with long directory name
Problem:    Preview popup window test fails with long directory name. (Jakub
            Kądziołka)
Solution:   Use "silent cd". (closes #5615)
2020-02-11 21:44:17 +01:00
99234f29aa patch 8.2.0241: crash when setting 'buftype' to "quickfix"
Problem:    Crash when setting 'buftype' to "quickfix".
Solution:   Check that error list is not NULL. (closes #5613)
2020-02-10 22:56:54 +01:00
408030e8d0 patch 8.2.0240: using memory after it was freed
Problem:    Using memory after it was freed. (Dominique Pelle)
Solution:   Do not mix converion buffer with other buffer.
2020-02-10 22:44:32 +01:00
355757aed6 patch 8.2.0239: MS-Windows: 'env' job option does not override existing vars
Problem:    MS-Windows: 'env' job option does not override existing
            environment variables.  (Tim Pope)
Solution:   Set the environment variables later. (Yasuhiro Matsumoto,
            closes #5485, closes #5608)
2020-02-10 22:06:32 +01:00
b3e195cca7 patch 8.2.0238: MS-Windows: job_stop() results in exit value zero
Problem:    MS-Windows: job_stop() results in exit value zero.
Solution:   Call TerminateJobObject() with -1 instead of 0. (Yasuhiro
            Matsumoto, closes #5150, closes #5614)
2020-02-10 21:32:19 +01:00
7ba3b91e03 patch 8.2.0237: crash when setting 'wincolor' on finished terminal window
Problem:    Crash when setting 'wincolor' on finished terminal window.
            (Bakudankun)
Solution:   Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes
            #5607, closes #5610)
2020-02-10 20:34:04 +01:00
57ea2924e5 patch 8.2.0236: MS-Windows unintall doesn't delete vimtutur.bat
Problem:    MS-Windows unintall doesn't delete vimtutur.bat.
Solution:   Change directory before deletion. (Ken Takata, closes #5603)
2020-02-09 14:27:20 +01:00
dbe5d361fe patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Problem:    Draw error when an empty group is removed from 'statusline'.
Solution:   Do not use highlighting from a removed group.
2020-02-08 18:35:31 +01:00
d5b9914938 patch 8.2.0234: message test fails on SunOS
Problem:    Message test fails on SunOS.
Solution:   Adjust expectation for printf "%p". (Ozaki Kiichi, closes #5595)
2020-02-08 17:14:46 +01:00
4f645c54ef patch 8.2.0233: crash when using garbagecollect() in between rand()
Problem:    Crash when using garbagecollect() in between rand().
Solution:   Redesign the rand() and srand() implementation. (Yasuhiro
            Matsumoto, closes #5587, closes #5588)
2020-02-08 16:40:39 +01:00
165315584d patch 8.2.0232: the :compiler command causes a crash
Problem:    The :compiler command causes a crash. (Daniel Steinberg)
Solution:   Do not use the script index if it isn't set.
2020-02-08 16:00:46 +01:00
d02e508a18 patch 8.2.0231: silent system command may clear the screen
Problem:    Silent system command may clear the screen.
Solution:   Do not clear the screen in t_te.
2020-02-08 14:22:53 +01:00
670218839a patch 8.2.0230: terminal popup test is flaky
Problem:    Terminal popup test is flaky.
Solution:   Increase wait time a bit.
2020-02-07 22:20:53 +01:00
f2460a3aec patch 8.2.0229: compare instructions not tested
Problem:    Compare instructions not tested.
Solution:   Add test cases.  Fix disassemble with line continuation.
2020-02-07 22:09:54 +01:00
348808f7c0 patch 8.2.0228: configure does not recognize gcc version on BSD
Problem:    Configure does not recognize gcc version on BSD.
Solution:   Do not use "\+" in the pattern matching the version number. (Ozaki
            Kiichi, closes #5590)
2020-02-07 20:50:07 +01:00
c2a4b35b86 patch 8.2.0227: compiling a few instructions not tested
Problem:    Compiling a few instructions not tested.
Solution:   Add more test cases.
2020-02-06 22:41:16 +01:00
04d0522046 patch 8.2.0226: compiling for loop not tested
Problem:    Compiling for loop not tested.
Solution:   Add a test.  Make variable initialization work for more types.
2020-02-06 22:06:54 +01:00
777770fbb0 patch 8.2.0225: compiling lambda not tested yet
Problem:    compiling lambda not tested yet.
Solution:   Add test for lambda and funcref. Drop unused instruction arg.
2020-02-06 21:27:08 +01:00
158906cffc patch 8.2.0224: compiling :elseif not tested yet
Problem:    compiling :elseif not tested yet.
Solution:   Add test for :elseif.  Fix generating jumps.
2020-02-06 20:39:45 +01:00
5cab73f8cc patch 8.2.0223: some instructions not yet tested
Problem:    Some instructions not yet tested.
Solution:   Disassemble more instructions.  Move tests to a new file.  Compile
            call to s:function().
2020-02-06 19:25:19 +01:00
170fcfcf25 patch 8.2.0222: Vim9: optional function arguments don't work yet
Problem:    Vim9: optional function arguments don't work yet.
Solution:   Implement optional function arguments.
2020-02-06 17:51:35 +01:00
6e587dcbf3 patch 8.2.0221: no test for Vim9 += and ..=
Problem:    No test for Vim9 += and ..=.
Solution:   Add tests.
2020-02-06 13:15:52 +01:00
1af5ce01c3 patch 8.2.0220: terminal test did pass on Mac
Problem:    Terminal test did pass on Mac.
Solution:   Remove the skip again.
2020-02-06 11:54:35 +01:00
4af11174f7 patch 8.2.0219: terminal test still fails on Mac
Problem:    Terminal test still fails on Mac.
Solution:   Skip part of the test on Mac.
2020-02-05 23:01:34 +01:00
0de50864a7 patch 8.2.0218: several Vim9 instructions are not tested
Problem:    Several Vim9 instructions are not tested.
Solution:   Add more tests.
2020-02-05 22:55:48 +01:00
adbc11c2ee patch 8.2.0217: terminal test fails on Mac
Problem:    Terminal test fails on Mac.
Solution:   Add a short wait.
2020-02-05 22:21:08 +01:00
ff80cb6807 patch 8.2.0216: several Vim9 instructions are not tested
Problem:    Several Vim9 instructions are not tested.
Solution:   Add more tests. Fix :disassamble output. Make catch with pattern
            work.
2020-02-05 22:10:05 +01:00
a78e9c61a0 patch 8.2.0215: wrong file name shortening
Problem:    Wrong file name shortening. (Ingo Karkat)
Solution:   Better check for path separator. (Yasuhiro Matsumoto,
            closes #5583, closes #5584)
2020-02-05 21:14:00 +01:00
2e6638d5f0 patch 8.2.0214: a popup window with a terminal can be made hidden
Problem:    A popup window with a terminal can be made hidden.
Solution:   Disallow hiding a terminal popup.
2020-02-05 21:07:18 +01:00
7077892a79 patch 8.2.0213: configure does not recognize gcc 10.0 and later
Problem:    Configure does not recognize gcc 10.0 and later.
Solution:   Adjust the pattern matching the version number. (Sergei
            Trofimovich, closes #5580)
2020-02-05 20:44:24 +01:00
07ada5ff2f patch 8.2.0212: missing search/substitute pattern hardly tested
Problem:    Missing search/substitute pattern hardly tested.
Solution:   Add test_clear_search_pat() and tests. (Yegappan Lakshmanan,
            closes #5579)
2020-02-05 20:38:22 +01:00
94255df057 patch 8.2.0211: test for ANSI colors fails without an "ls" command
Problem:    Test for ANSI colors fails without an "ls" command.
Solution:   Use "dir". (Ken Takata, closes #5582)
2020-02-05 20:10:33 +01:00
eed3571fe0 patch 8.2.0210: Coverity complains about uninitialized field
Problem:    Coverity complains about uninitialized field.
Solution:   Initialize the field.
2020-02-04 23:08:14 +01:00
560979ed4f Update runtime files. 2020-02-04 22:53:05 +01:00
80147dda4f patch 8.2.0209: function a bit far away from where it's used
Problem:    Function a bit far away from where it's used.
Solution:   Move function close to where it's used. (Ken Takata, closes #5569)
2020-02-04 22:32:59 +01:00
d816cd94d8 patch 8.2.0208: fnamemodify() does not apply ":~" when followed by ":."
Problem:    Fnamemodify() does not apply ":~" when followed by ":.".
Solution:   Don't let a failing ":." cause the ":~" to be skipped. (Yasuhiro
            Matsumoto, closes #5577)
2020-02-04 22:23:09 +01:00
bfe1204312 patch 8.2.0207: crash when missing member type on list argument
Problem:    Crash when missing member type on list argument.
Solution:   Check for invalid type. (closes #5572)
2020-02-04 21:54:07 +01:00
26e117e9bc patch 8.2.0206: calling Vim9 function using default argument fails
Problem:    Calling Vim9 function using default argument fails.
Solution:   Give an appropriate error. (closes #5572)
2020-02-04 21:24:15 +01:00
a5edb670dc patch 8.2.0205: error code E899 used twice
Problem:    Error code E899 used twice.
Solution:   Use E863 for the terminal in popup error.
2020-02-03 22:58:48 +01:00
631ebc4814 patch 8.2.0204: crash when using winnr('j') in a popup window
Problem:    Crash when using winnr('j') in a popup window.
Solution:   Do not search for neighbors in a popup window. (closes #5568)
2020-02-03 22:15:26 +01:00
e20b9ececa patch 8.2.0203: :helptags and some other functionality not tested
Problem:    :helptags and some other functionality not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5567)
2020-02-03 21:40:04 +01:00
e7ddf4e337 patch 8.2.0202: when 'lazyredraw' is set the window title may not be updated
Problem:    When 'lazyredraw' is set the window title may not be updated.
Solution:   Set "do_redraw" before entering the main loop. (Jason Franklin)
2020-02-03 21:29:30 +01:00
4e12a5df37 patch 8.2.0201: cannot assign to an imported variable
Problem:    Cannot assign to an imported variable.
Solution:   Make it work.
2020-02-03 20:50:59 +01:00
b283a8a680 patch 8.2.0200: Vim9 script commands not sufficiently tested
Problem:    Vim9 script commands not sufficiently tested.
Solution:   Add more tests.  Fix storing global variable.  Make script
            variables work.
2020-02-02 22:24:04 +01:00
0f18b6d17b patch 8.2.0199: Vim9 script commands not sufficiently tested
Problem:    Vim9 script commands not sufficiently tested.
Solution:   Add more tests.  Fix script-local function use.
2020-02-02 17:22:27 +01:00
43c60eda2a patch 8.2.0198: no tests for y/n prompt
Problem:    No tests for y/n prompt.
Solution:   Add tests. (Dominique Pelle, closes #5564)
2020-02-02 15:55:19 +01:00
ea3db914c0 patch 8.2.0197: some Ex commands not sufficiently tested
Problem:    Some Ex commands not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5565)
2020-02-02 15:32:13 +01:00
d98c0b63ab patch 8.2.0196: blocking commands for a finished job in a popup window
Problem:    Blocking commands for a finished job in a popup window.
Solution:   Do not block commands if the job has finished.  Adjust test.
2020-02-02 15:25:16 +01:00
3180fe6c6d patch 8.2.0195: some tests fail when run in the GUI
Problem:    Some tests fail when run in the GUI.
Solution:   Make sure the window width is enough.  In the GUI run terminal Vim
            in the terminal, if possible.
2020-02-02 13:47:06 +01:00
3c01c4a028 patch 8.2.0194: some commands can cause problems in terminal popup
Problem:    Some commands can cause problems in terminal popup.
Solution:   Disallow more commands.
2020-02-01 23:04:24 +01:00
284d1c24e2 patch 8.2.0193: still build failure without +terminal feature
Problem:    Still build failure without +terminal feature.
Solution:   Add more #ifdefs.
2020-02-01 22:39:32 +01:00
91cd59a0a2 patch 8.2.0192: build failure without +terminal feature
Problem:    Build failure without +terminal feature.
Solution:   Add #ifdefs.
2020-02-01 22:18:37 +01:00
219c7d0638 patch 8.2.0191: cannot put a terminal in a popup window
Problem:    Cannot put a terminal in a popup window.
Solution:   Allow opening a terminal in a popup window.  It will always have
            keyboard focus until closed.
2020-02-01 21:57:29 +01:00
ab067a21b9 patch 8.2.0190: Kotlin files are not recognized
Problem:    Kotlin files are not recognized.
Solution:   Detect Kotlin files. (Alkeryn, closes #5560)
2020-01-31 22:57:59 +01:00
7cc96923c4 patch 8.2.0189: cd() with NULL argument crashes
Problem:    cd() with NULL argument crashes.
Solution:   Check for NULL. (Ken Takata, closes #5558)
2020-01-31 22:41:38 +01:00
7f829cab35 patch 8.2.0188: Check commands don't work well with Vim9 script
Problem:    Check commands don't work well with Vim9 script.
Solution:   Improve constant expression handling.
2020-01-31 22:12:41 +01:00
0b76ad53b3 patch 8.2.0187: reduntant code
Problem:    Reduntant code.
Solution:   Remove unused assignments. (Dominique Pelle, closes #5557)
2020-01-31 21:20:51 +01:00
705724e430 patch 8.2.0186: a couple of tests may fail when features are missing
Problem:    A couple of tests may fail when features are missing.
Solution:   Check for features. (Dominique Pelle, closes #5561)
2020-01-31 21:13:42 +01:00
a259d8d30b patch 8.2.0185: Vim9 script: cannot use "if has()" to skip lines
Problem:    Vim9 script: cannot use "if has()" to skip lines.
Solution:   Evaluate constant expression at runtime.
2020-01-31 20:10:50 +01:00
92be6e3f46 patch 8.2.0184: blob test fails
Problem:    Blob test fails.
Solution:   Check for different error when float feature is missing.
2020-01-30 19:39:04 +01:00
5feabe00c4 patch 8.2.0183: tests fail when the float feature is disabled
Problem:    Tests fail when the float feature is disabled.
Solution:   Skip tests that don't work without float support.
2020-01-30 18:24:53 +01:00
9f2d020d39 patch 8.2.0182: min() and max() materialize a range() list
Problem:    Min() and max() materialize a range() list.
Solution:   Compute the result without materializing the list. (#5541)
2020-01-30 16:40:10 +01:00
21109272f5 patch 8.2.0181: problems parsing :term arguments
Problem:    Problems parsing :term arguments.
Solution:   Improve parsing, fix memory leak, add tests. (Ozaki Kiichi,
            closes #5536)
2020-01-30 16:27:20 +01:00
0c3064b39b patch 8.2.0180: test for wrapmargin fails if terminal is not 80 columns
Problem:    Test for wrapmargin fails if terminal is not 80 columns.
Solution:   Vertical split the window. (Ken Takata, closes #5554)
2020-01-30 16:09:25 +01:00
b09920203a patch 8.2.0179: still a few places where range() does not work
Problem:    Still a few places where range() does not work.
Solution:   Fix using range() causing problems.
2020-01-30 14:55:42 +01:00
df54382eac patch 8.2.0178: with VTP the screen may not be restored properly
Problem:    With VTP the screen may not be restored properly.
Solution:   Add another set of saved RGB values. (Nobuhiro Takasaki,
            closes #5548)
2020-01-30 11:53:59 +01:00
70b3e706b4 patch 8.2.0177: memory leak in get_tags()
Problem:    Memory leak in get_tags().
Solution:   Free matches when finding a pseudo-tag line. (Dominique Pelle,
            closes #5553)
2020-01-29 22:38:45 +01:00
e258368b4f patch 8.2.0176: generating os headers does not work for Swedish
Problem:    Generating os headers does not work for Swedish.
Solution:   Set the locale to C. (Christian Brabandt, closes #5258)
2020-01-29 22:29:40 +01:00
db661fb95d patch 8.2.0175: crash when removing list element in map()
Problem:    Crash when removing list element in map().
Solution:   Lock the list. (closes #2652)
2020-01-29 22:17:16 +01:00
5d98dc2a48 patch 8.2.0174: various commands not completely tested
Problem:    Various commands not completely tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5551)
2020-01-29 21:57:34 +01:00
0ff6aad393 patch 8.2.0173: build fails with old compiler
Problem:    Build fails with old compiler.
Solution:   Do not use anonymous unions. (John Marriott)
2020-01-29 21:27:21 +01:00
4549ece47c patch 8.2.0172: Coverity warning for not restoring character
Problem:    Coverity warning for not restoring character.
Solution:   Restore the character also in case of failure.
2020-01-28 23:13:42 +01:00
9a5e5a3e33 patch 8.2.0171: Coverity warning for using uninitialized buffer
Problem:    Coverity warning for using uninitialized buffer.
Solution:   Check the skip flag.
2020-01-28 23:09:23 +01:00
a6d536829a patch 8.2.0170: Coverity warning for ignoring return value
Problem:    Coverity warning for ignoring return value.
Solution:   Check the return value and return if failed.
2020-01-28 23:04:06 +01:00
8cbd6dfc0c patch 8.2.0169: Coverity warning for dead code
Problem:    Coverity warning for dead code.
Solution:   Check if inside try-finally.
2020-01-28 22:59:45 +01:00
97a2af39cd patch 8.2.0168: Coverity warning for assigning NULL to an option
Problem:    Coverity warning for assigning NULL to an option.
Solution:   Use empty string instead of NULL.
2020-01-28 22:52:48 +01:00
58ceca5cae patch 8.2.0167: Coverity warning for ignoring return value
Problem:    Coverity warning for ignoring return value.
Solution:   Check the return value and jump if failed.
2020-01-28 22:46:22 +01:00
07da94b0f0 patch 8.2.0166: Coverity warning for using uninitialized variable
Problem:    Coverity warning for using uninitialized variable.
Solution:   Check for failure.
2020-01-28 22:39:19 +01:00
5b18c248d3 patch 8.2.0165: Coverity warning for using NULL pointer
Problem:    Coverity warning for using NULL pointer.
Solution:   Add missing "else".
2020-01-28 22:30:32 +01:00
842931cd7a patch 8.2.0164: test_alot takes too long
Problem:    Test_alot takes too long.
Solution:   Run several tests individually.
2020-01-28 21:53:28 +01:00
272ca95fc3 patch 8.2.0163: test hangs on MS-Windows console
Problem:    Test hangs on MS-Windows console.
Solution:   use feedkeys() instead of test_feedinput(). (Ken Takata)
2020-01-28 20:49:11 +01:00
7d8ea0b241 patch 8.2.0162: balloon test fails in the GUI
Problem:    Balloon test fails in the GUI.
Solution:   Skip test in the GUI.
2020-01-27 23:01:30 +01:00
f8ddb25789 patch 8.2.0161: not recognizing .gv file as dot filetype
Problem:    Not recognizing .gv file as dot filetype.
Solution:   Add *.gv to dot pattern. (closes #5544)
2020-01-27 22:47:09 +01:00
89bfc8218c patch 8.2.0160: range test fails
Problem:    Range test fails.
Solution:   Include change in list code. (#5541)
2020-01-27 22:37:23 +01:00
50985eb1f0 patch 8.2.0159: non-materialized range() list causes problems
Problem:    Non-materialized range() list causes problems. (Fujiwara Takuya)
Solution:   Materialize the list where needed.
2020-01-27 22:09:39 +01:00
3f169ce17e patch 8.2.0158: triggering CompleteDone earlier is not backwards compatible
Problem:    Triggering CompleteDone earlier is not backwards compatible.
            (Daniel Hahler)
Solution:   Add CompleteDonePre instead.
2020-01-26 22:43:31 +01:00
318e7a9c03 patch 8.2.0157: Vim9 script files not in list of distributed files
Problem:    Vim9 script files not in list of distributed files.
Solution:   Add the entries.
2020-01-26 22:05:06 +01:00
4b96df5a01 patch 8.2.0156: various typos in source files and tests
Problem:    Various typos in source files and tests.
Solution:   Fix the typos. (Emir Sari, closes #5532)
2020-01-26 22:00:26 +01:00
a5d5953d59 patch 8.2.0155: warnings from MinGW compiler; tests fail without +float
Problem:    Warnings from MinGW compiler. (John Marriott) Json test fails when
            building without +float feature.
Solution:   Init variables. Fix Json parsing. Skip a few tests that require
            the +float feature.
2020-01-26 21:42:03 +01:00
21b9e9773d patch 8.2.0154: reallocating the list of scripts is inefficient
Problem:    Reallocating the list of scripts is inefficient.
Solution:   Instead of using a growarray of scriptitem_T, store pointers and
            allocate each scriptitem_T separately.  Also avoids that the
            growarray pointers change when sourcing a new script.
2020-01-26 19:26:46 +01:00
b3de5114ac patch 8.2.0153: warning shows when listing version info
Problem:    Warning shows when listing version info.
Solution:   Use "-u NONE". (Ozaki Kiichi, closes #5534)
2020-01-26 18:56:34 +01:00
da812e282a patch 8.2.0152: restoring ctrl_x_mode is not needed
Problem:    Restoring ctrl_x_mode is not needed.
Solution:   Remove restoring the old value, it's changed again soon.
2020-01-26 18:35:31 +01:00
978d170bdc patch 8.2.0151: detecting a script was already sourced is unreliable
Problem:    Detecting a script was already sourced is unreliable.
Solution:   Do not use the inode number.
2020-01-26 17:38:12 +01:00
673660ab00 patch 8.2.0150: cannot define python function when using :execute
Problem:    Cannot define python function when using :execute. (Yasuhiro
            Matsumoto)
Solution:   Do not recognize "def" inside "function.
2020-01-26 16:50:05 +01:00
8a7d6542b3 patch 8.2.0149: maintaining a Vim9 branch separately is more work
Problem:    Maintaining a Vim9 branch separately is more work.
Solution:   Merge the Vim9 script changes.
2020-01-26 15:56:19 +01:00
1d9215b9aa Update runtime files. 2020-01-25 13:27:42 +01:00
7f51bbe0d1 patch 8.2.0148: mapping related function in wrong source file
Problem:    Mapping related function in wrong source file.
Solution:   Move the function.  Add a few more test cases. (Yegappan
            Lakshmanan, closes #5528)
2020-01-24 20:21:19 +01:00
03c3bd9fd0 patch 8.2.0147: block Visual mode operators not correct when 'linebreak' set
Problem:    Block Visual mode operators not correct when 'linebreak' set.
Solution:   Set w_p_lbr to lbr_saved more often. (Ken Takata, closes #5524)
2020-01-23 20:58:09 +01:00
dfede9a70b patch 8.2.0146: wrong indent when 'showbreak' and 'breakindent' are set
Problem:    Wrong indent when 'showbreak' and 'breakindent' are set and
            'briopt' includes "sbr".
Solution:   Reset "need_showbreak" where needed. (Ken Takata, closes #5523)
2020-01-23 19:59:22 +01:00
2c02d3843a patch 8.2.0145: using #error for compilation errors should be OK now
Problem:    Using #error for compilation errors should be OK now.
Solution:   Use #error. (Ken Takata, closes #5299)
2020-01-23 16:52:01 +01:00
c2a60ae10e patch 8.2.0144: some mapping code is not fully tested
Problem:    Some mapping code is not fully tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5519)
2020-01-23 16:19:54 +01:00
81c3ea7496 patch 8.2.0143: Coverity warning for possible use of NULL pointer
Problem:    Coverity warning for possible use of NULL pointer.
Solution:   Check argv is not NULL.
2020-01-23 15:48:42 +01:00
8bf716cdba patch 8.2.0142: possible to enter popup window with CTRL-W p
Problem:    Possible to enter popup window with CTRL-W p. (John Devin)
Solution:   Check entered window is not a popup window. (closes #5515)
2020-01-23 15:33:54 +01:00
0d76683e09 patch 8.2.0141: no swift filetype detection
Problem:    No swift filetype detection.
Solution:   Add swift, swiftgyb and sil. (Emir Sarı, closes #5517)
2020-01-22 22:10:54 +01:00
ade0d39468 Update runtime files. 2020-01-21 22:33:58 +01:00
2387773d93 patch 8.2.0140: CI does not test building doc tags
Problem:    CI does not test building doc tags.
Solution:   Add the vimtags/gcc build. Cleanup showing version. (Ozaki Kiichi,
            closes #5513)
2020-01-21 22:13:42 +01:00
f0764e8bb6 patch 8.2.0139: MS-Windows: default for IME is inconsistent
Problem:    MS-Windows: default for IME is inconsistent.
Solution:   Also make IME default enabled with MVC. (Ken Takata, closes #5508)
2020-01-20 22:05:34 +01:00
538feb56e8 patch 8.2.0138: memory leak when starting a job fails
Problem:    Memory leak when starting a job fails.
Solution:   Free the list of arguments. (Ozaki Kiichi, closes #5510)
2020-01-20 21:59:39 +01:00
a44b3eeafa patch 8.2.0137: crash when using win_execute() from a new tab
Problem:    Crash when using win_execute() from a new tab.
Solution:   Set the tp_*win pointers. (Ozaki Kiichi, closes #5512)
2020-01-20 21:44:31 +01:00
ed5adff1e6 patch 8.2.0136: stray ch_logfile() call
Problem:    Stray ch_logfile() call.
Solution:   Remove it. (closes #5503)
2020-01-20 21:32:51 +01:00
fe4bbac116 patch 8.2.0135: bracketed paste can still cause invalid memory access
Problem:    Bracketed paste can still cause invalid memory access. (Dominique
            Pelle)
Solution:   Check for NULL pointer.
2020-01-20 21:12:20 +01:00
8ba6bb7c94 patch 8.2.0134: some map functionality not covered by tests
Problem:    Some map functionality not covered by tests.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5504)
2020-01-20 20:41:42 +01:00
98a336dd49 patch 8.2.0133: invalid memory access with search command
Problem:    Invalid memory access with search command.
Solution:   When :normal runs out of characters in bracketed paste mode break
            out of the loop.(closes #5511)
2020-01-20 20:22:30 +01:00
ca33eb256e patch 8.2.0132: script may be re-used when deleting and creating a new one
Problem:    Script may be re-used when deleting and creating a new one.
Solution:   When the inode matches, also check the file name.
2020-01-19 20:18:09 +01:00
479950f6c9 patch 8.2.0131: command line is not cleared when switching tabs
Problem:    Command line is not cleared when switching tabs and the command
            line height differs.
Solution:   Set the "clear_cmdline" flag when needed. (Naruhiko Nishino,
            closes #5495)
2020-01-19 15:45:17 +01:00
904edabb64 patch 8.2.0130: Python3 ranges are not tested
Problem:    Python3 ranges are not tested.
Solution:   Add test. (Dominique Pelle, closes #5498)
2020-01-19 13:57:54 +01:00
1a928c2099 patch 8.2.0129: MS-Windows installer doesn't use Turkish translations
Problem:    MS-Windows installer doesn't use Turkish translations.
Solution:   Enable the Turkish translations and fix a few. (Emir Sarı,
            closes #5493)
2020-01-18 16:10:40 +01:00
6b915c0c0e patch 8.2.0128: cannot list options one per line
Problem:    Cannot list options one per line.
Solution:   Use ":set!" to list one option per line.
2020-01-18 15:53:19 +01:00
3029bcc094 patch 8.2.0127: some buffer commands work in a popup window
Problem:    Some buffer commands work in a popup window.
Solution:   Disallow :bnext, :bprev, etc. (Naruhiko Nishino, closes #5494)
2020-01-18 15:06:19 +01:00
94b6fb78c5 patch 8.2.0126: textprop test fails
Problem:    Textprop test fails.
Solution:   Fix sign in computation.
2020-01-17 21:00:59 +01:00
3c71aec696 patch 8.2.0125: :mode no longer works for any system
Problem:    :mode no longer works for any system.
Solution:   Always give an error message.
2020-01-17 19:32:20 +01:00
109ef128bd patch 8.2.0124: compiler warnings for variable types
Problem:    Compiler warnings for variable types.
Solution:   Change type, add type cast. (Mike Williams)
2020-01-17 19:12:03 +01:00
17e04781f2 patch 8.2.0123: complete_info() does not work when CompleteDone is triggered
Problem:    complete_info() does not work when CompleteDone is triggered.
Solution:   Trigger CompleteDone before clearing the info.
2020-01-17 18:58:59 +01:00
f2a44e5c48 patch 8.2.0122: readme files still mention MS-DOS
Problem:    Readme files still mention MS-DOS.
Solution:   Update readme files. (Ken Takata, closes #5486)
2020-01-16 19:40:38 +01:00
49c57ce500 patch 8.2.0121: filter() and map() on blob don't work
Problem:    filter() and map() on blob don't work.
Solution:   Correct the code. (closes #5483)
2020-01-15 20:51:34 +01:00
b3d33d8570 patch 8.2.0120: virtcol() does not check arguments to be valid
Problem:    virtcol() does not check arguments to be valid, which may lead to
            a crash.
Solution:   Check the column to be valid.  Do not decrement MAXCOL.
            (closes #5480)
2020-01-15 20:36:55 +01:00
1470dc35c4 patch 8.2.0119: message test fails on some platforms
Problem:    Message test fails on some platforms. (Elimar Riesebieter)
Solution:   Add type cast to vim_snprintf() argument. (Dominique Pelle)
2020-01-14 22:02:14 +01:00
ca7c078b79 patch 8.2.0118: crash when cycling to buffers involving popup window
Problem:    Crash when cycling to buffers involving popup window .
Solution:   Do not decrement buffer reference count.
2020-01-14 20:42:48 +01:00
8024f93636 Update runtime files. 2020-01-14 19:29:13 +01:00
ee93b737aa patch 8.2.0117: crash when using gettabwinvar() with invalid arguments
Problem:    Crash when using gettabwinvar() with invalid arguments. (Yilin
            Yang)
Solution:   Use "curtab" if "tp" is NULL. (closes #5475)
2020-01-14 19:05:39 +01:00
c10b521628 patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Problem:    BufEnter autocmd not triggered on ":tab drop". (Andy Stewart)
Solution:   Decrement autocmd_no_enter for the last file. (closes #1660,
            closes #5473)
2020-01-13 20:54:51 +01:00
9df53b62de patch 8.2.0115: byte2line() does not work correctly with text properties
Problem:    Byte2line() does not work correctly with text properties. (Billie
            Cleek)
Solution:   Take the bytes of the text properties into account.
            (closes #5334)
2020-01-13 20:40:51 +01:00
7ebcba61b2 patch 8.2.0114: info about sourced scripts is scattered
Problem:    Info about sourced scripts is scattered.
Solution:   Use scriptitem_T for info about a script, including s: variables.
            Drop ga_scripts.
2020-01-12 17:42:55 +01:00
9b24dfcb9f patch 8.2.0113: "make cmdidxs" fails
Problem:    "make cmdidxs" fails.
Solution:   Allow address for ":cquit".  Add --not-a-term to avoid a delay.
2020-01-12 15:46:08 +01:00
02ad46394e patch 8.2.0112: illegal memory access when using 'cindent'
Problem:    Illegal memory access when using 'cindent'.
Solution:   Check for NUL byte. (Dominique Pelle, closes #5470)
2020-01-12 13:48:18 +01:00
9b4a15d5db patch 8.2.0111: VAR_SPECIAL is also used for booleans
Problem:    VAR_SPECIAL is also used for booleans.
Solution:   Add VAR_BOOL for better type checking.
2020-01-11 16:05:23 +01:00
e05a89ac63 patch 8.2.0110: prop_find() is not implemented
Problem:    prop_find() is not implemented.
Solution:   Implement prop_find(). (Ryan Hackett, closes #5421, closes #4970)
2020-01-10 19:56:46 +01:00
2963456ff2 Update runtime files. 2020-01-09 21:46:04 +01:00
ac15fd8c67 patch 8.2.0109: corrupted text properties when expanding spaces
Problem:    Corrupted text properties when expanding spaces.
Solution:   Reallocate the line. (Nobuhiro Takasaki, closes #5457)
2020-01-09 21:35:48 +01:00
bf0acff012 patch 8.2.0108: when sign text is changed a manual redraw is needed
Problem:    When sign text is changed a manual redraw is needed. (Pontus
            Lietzler)
Solution:   Redraw automatically. (closes #5455)
2020-01-09 21:01:59 +01:00
4ba6441818 patch 8.2.0107: hgignore is out of sync from gitignore
Problem:    Hgignore is out of sync from gitignore.
Solution:   Add lines to hgignore. (Ken Takata)
2020-01-09 16:25:52 +01:00
b16ad96849 patch 8.2.0106: printf formats are not exactly right
Problem:    Printf formats are not exactly right.
Solution:   Adjust signed/unsigned conversions. (Frazer Clews, closes #5456)
2020-01-08 22:06:14 +01:00
c838626fea patch 8.2.0105: Vim license not easy to find on github
Problem:    Vim license not easy to find on github.
Solution:   Add a separate LICENCE file. (closes #5458)
2020-01-08 21:43:02 +01:00
b662591e50 patch 8.2.0104: using channel or job with ":execute" has strange effects
Problem:    Using channel or job with ":execute" has strange effects.
Solution:   Give an error message for Job and Channel.
2020-01-08 20:09:01 +01:00
e2a8f0773e patch 8.2.0103: using null object with execute() has strange effects
Problem:    Using null object with execute() has strange effects.
Solution:   Give an error message ofr Job and Channel.
2020-01-08 19:32:18 +01:00
da292b07af patch 8.2.0102: messages test fails in small version
Problem:    Messages test fails in small version.
Solution:   Only use test_null_job() when available.
2020-01-08 19:27:40 +01:00
9db2afe46d patch 8.2.0101: crash when passing null object to ":echomsg"
Problem:    Crash when passing null object to ":echomsg".
Solution:   Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460)
2020-01-08 18:56:20 +01:00
41a4141ecb patch 8.2.0100: macros for Ruby are too complicated
Problem:    Macros for Ruby are too complicated.
Solution:   Do not use DYNAMIC_RUBY_VER, use RUBY_VERSION. (Ken Takata,
            closes #5452)
2020-01-07 21:32:19 +01:00
8b7aa2f9b2 patch 8.2.0099: use of NULL pointer when out of memory
Problem:    Use of NULL pointer when out of memory.
Solution:   Check for NULL pointer. (Dominique Pelle, closes #5449)
2020-01-07 21:05:49 +01:00
e31ee86859 patch 8.2.0098: exe stack length can be wrong without being detected
Problem:    Exe stack length can be wrong without being detected.
Solution:   Add a check when ABORT_ON_INTERNAL_ERROR is defined.
2020-01-07 20:59:34 +01:00
ce6db0273f patch 8.2.0097: crash with autocommand and spellfile
Problem:    Crash with autocommand and spellfile. (Tim Pope)
Solution:   Do not pop exestack when not pushed. (closes #5450)
2020-01-07 20:11:42 +01:00
fbcdf671f0 patch 8.2.0096: cannot create tiny popup window in last column
Problem:    Cannot create tiny popup window in last column. (Daniel Steinberg)
Solution:   Remove position limit. (closes #5447)
2020-01-06 23:07:48 +01:00
1860bde9d3 patch 8.2.0095: cannot specify exit code for :cquit
Problem:    Cannot specify exit code for :cquit.
Solution:   Add optional argument. (Thinca, Yegappan Lakshmanan, closes #5442)
2020-01-06 21:47:21 +01:00
e73b38f8e1 patch 8.2.0094: MS-Windows: cannot build with Strawberry Perl 5.30
Problem:    MS-Windows: cannot build with Strawberry Perl 5.30.
Solution:   Define __builtin_expect() as a workaround. (Ken Takata,
            closes #5267)
2020-01-06 21:22:09 +01:00
7b94e77132 patch 8.2.0093: win_splitmove() can make Vim hang
Problem:    win_splitmove() can make Vim hang.
Solution:   Check windows exists in the current tab page. (closes #5444)
2020-01-06 21:03:24 +01:00
a1353b5352 patch 8.2.0092: tags functionality insufficiently tested
Problem:    Tags functionality insufficiently tested.
Solution:   Add more tags tests. (Yegappan Lakshmanan, closes #5446)
2020-01-06 20:09:13 +01:00
4d7a248b64 patch 8.2.0091: compiler warnings for size_t / int types
Problem:    Compiler warnings for size_t / int types.
Solution:   Change type to size_t. (Mike Williams)
2020-01-06 19:53:43 +01:00
b376ace1ae patch 8.2.0090: generated files show up in git status
Problem:    Generated files show up in git status.
Solution:   Ignore a few more files.
2020-01-05 22:10:31 +01:00
f0f8055102 patch 8.2.0089: crash when running out of memory in :setfiletype completion
Problem:    Crash when running out of memory in :setfiletype completion.
Solution:   Do not allocate memory. (Dominique Pelle, closes #5438)
2020-01-05 22:05:49 +01:00
830c1afc9d patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Problem:    Insufficient tests for tags; bug in using extra tag field when
            using an ex command to position the cursor.
Solution:   Fix the bug, add more tests. (Yegappan Lakshmanan, closes #5439)
2020-01-05 20:35:44 +01:00
61d7c0d52c patch 8.2.0087: crash in command line expansion when out of memory
Problem:    Crash in command line expansion when out of memory.
Solution:   Check for NULL pointer.  Also make ExpandGeneric() static.
            (Dominique Pelle, closes #5437)
2020-01-05 14:38:40 +01:00
ab782c5b6f patch 8.2.0086: build error for small version
Problem:    Build error for small version. (Tony Mechelynck)
Solution:   Only use "user_data" with the +eval feature. Remove unused
            variable.
2020-01-04 19:00:11 +01:00
3d8a513b46 patch 8.2.0085: dead code in builtin functions
Problem:    Dead code in builtin functions.
Solution:   Clean up the code.
2020-01-04 16:13:49 +01:00
0892832bb6 patch 8.2.0084: complete item "user_data" can only be a string
Problem:    Complete item "user_data" can only be a string.
Solution:   Accept any type of variable. (closes #5412)
2020-01-04 14:32:48 +01:00
5cb0b93d52 patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Problem:    Text properties wrong when tabs and spaces are exchanged.
Solution:   Take text properties into account. (Nobuhiro Takasaki,
            closes #5427)
2020-01-03 21:25:59 +01:00
f10997a154 patch 8.2.0082: when reusing a buffer listeners are not cleared
Problem:    When reusing a buffer listeners are not cleared. (Axel Forsman)
Solution:   Clear listeners when reusing a buffer. (closes #5431)
2020-01-03 21:00:02 +01:00
467c32bd72 patch 8.2.0081: MS-Windows also need the change to support INIT4()
Problem:    MS-Windows also need the change to support INIT4().
Solution:   Add the ctags arguments. (Ken Takata)
2020-01-03 19:12:09 +01:00
509ff0688d patch 8.2.0080: globals using INIT4() are not in the tags file
Problem:    Globals using INIT4() are not in the tags file.
Solution:   Adjust the tags command.
2020-01-02 22:38:49 +01:00
d7df279808 Update a few runtime files. 2020-01-02 21:34:42 +01:00
7fc4785ea1 patch 8.2.0079: Python 3 unicode test still fails on MS-Windows
Problem:    Python 3 unicode test still fails on MS-Windows.
Solution:   Do not set 'encoding' to "euc-tw" on MS-Windows.
2020-01-02 16:38:07 +01:00
b9adef79ec patch 8.2.0078: expanding <sfile> works differently the second time
Problem:    Expanding <sfile> works differently the second time.
Solution:   Keep the expanded name when redefining a function. (closes #5425)
2020-01-02 14:31:22 +01:00
271fa08a35 patch 8.2.0077: settagstack() cannot truncate at current index
Problem:    settagstack() cannot truncate at current index.
Solution:   Add the "t" action. (Yegappan Lakshmanan, closes #5417)
2020-01-02 14:02:16 +01:00
955f4e6f36 patch 8.2.0076: Python 3 unicode test fails on MS-Windows
Problem:    Python 3 unicode test fails on MS-Windows.
Solution:   Do not set 'encoding' to "debug" on MS-Windows.
2020-01-01 17:44:56 +01:00
2466aea508 patch 8.2.0075: Python 3 unicode test still sometimes fails
Problem:    Python 3 unicode test still sometimes fails.
Solution:   Skip the test when 'termencoding' is not empty.
2020-01-01 17:09:11 +01:00
4b7cdca230 patch 8.2.0074: Python 3 unicode test someitmes fails
Problem:    Python 3 unicode test someitmes fails.
Solution:   Make 'termencoding' empty.  Correct number of error message.
2020-01-01 16:18:38 +01:00
ea8b7aecab patch 8.2.0073: initializing globals with COMMA is clumsy
Problem:    Initializing globals with COMMA is clumsy.
Solution:   Use INIT2(), INIT3(), etc.
2020-01-01 15:46:47 +01:00
bb062c1588 patch 8.2.0072: memory test still fails on Cirrus CI
Problem:    Memory test still fails on Cirrus CI.
Solution:   Allow for a tiny bit more tolerance in the upper limit.
2020-01-01 15:26:32 +01:00
1832d12aea patch 8.2.0071: memory test often fails on Cirrus CI
Problem:    Memory test often fails on Cirrus CI.
Solution:   Allow for more tolerance in the upper limit.  Remove sleep.
2020-01-01 15:17:25 +01:00
d518f952f0 patch 8.2.0070: crash when using Python 3 with "debug" encoding
Problem:    Crash when using Python 3 with "debug" encoding. (Dominique Pelle)
Solution:   Use "euc-jp" whenever enc_dbcs is set.
2020-01-01 15:04:17 +01:00
87396072c5 patch 8.2.0069: ETYPE_ is used for two different enums
Problem:    ETYPE_ is used for two different enums.
Solution:   Rename one to use EXPR_.
2019-12-31 22:36:18 +01:00
556684ff71 patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Problem:    Crash when using Python 3 with "utf32" encoding. (Dominique Pelle)
Solution:   Use "utf-8" whenever enc_utf8 is set. (closes #5423)
2019-12-31 21:59:01 +01:00
ef140544f6 patch 8.2.0067: ERROR_UNKNOWN clashes on some systems
Problem:    ERROR_UNKNOWN clashes on some systems.
Solution:   Rename ERROR_ to FCERR_. (Ola Söder, closes #5415)
2019-12-31 21:27:13 +01:00
d2c946bacf patch 8.2.0066: some corners of vim_snprintf() are not tested
Problem:    Some corners of vim_snprintf() are not tested.
Solution:   Add a test in C. (Dominique Pelle, closes #5422)
2019-12-31 19:24:51 +01:00
dba7c85b61 patch 8.2.0065: Amiga and alikes: autoopen only used on Amiga OS4
Problem:    Amiga and alikes: autoopen only used on Amiga OS4.
Solution:   Adjust #ifdefs. (Ola Söder, closes #5413)
2019-12-30 22:33:17 +01:00
efcc329020 patch 8.2.0064: diffmode completion doesn't use per-window setting
Problem:    Diffmode completion doesn't use per-window setting.
Solution:   Check if a window is in diff mode. (Dominique Pell, closes #5419)
2019-12-30 21:59:03 +01:00
08b28b7ad5 patch 8.2.0063: wrong size argument to vim_snprintf()
Problem:    Wrong size argument to vim_snprintf(). (Dominique Pelle)
Solution:   Reduce the size by the length. (related to #5410)
2019-12-30 20:42:39 +01:00
e7538ae997 patch 8.2.0062: memory test is flaky on FreeBSD
Problem:    Memory test is flaky on FreeBSD.
Solution:   Add a short sleep before getting the first size.
2019-12-30 19:59:24 +01:00
3fbcc128cb patch 8.2.0061: the execute stack can grow big and never shrinks
Problem:    The execute stack can grow big and never shrinks.
Solution:   Reduce the size in gargage collect.
2019-12-30 19:19:53 +01:00
d0337e360e patch 8.2.0060: message test only runs with one encoding
Problem:    Message test only runs with one encoding. (Dominique Pelle)
Solution:   Run the test with "utf-8" and "latin1".  Fix underflow. (related
            to #5410)
2019-12-30 17:55:34 +01:00
85b0957616 patch 8.2.0059: compiler warnings for unused variables in small build
Problem:    Compiler warnings for unused variables in small build. (Tony
            Mechelynck)
Solution:   Add #ifdef.
2019-12-30 10:57:00 +01:00
eb698d0b32 patch 8.2.0058: running tests changes ~/.viminfo
Problem:    Running tests changes ~/.viminfo.
Solution:   Make 'viminfo' empty when summarizing tests results. (closes #5414)
2019-12-30 00:07:57 +01:00
09d4640f6c patch 8.2.0057: cannot build with small features
Problem:    Cannot build with small features.
Solution:   Add #ifdefs.
2019-12-29 23:53:01 +01:00
1a47ae32cd patch 8.2.0056: execution stack is incomplete and inefficient
Problem:    Execution stack is incomplete and inefficient.
Solution:   Introduce a proper execution stack and use it instead of
            sourcing_name/sourcing_lnum.  Create a string only when used.
2019-12-29 23:04:25 +01:00
257a396879 patch 8.2.0055: cannot use ":gui" in vimrc with VIMDLL enabled
Problem:    Cannot use ":gui" in vimrc with VIMDLL enabled.
Solution:   Change the logic, check "gui.starting". (Ken Takata, closes #5408)
2019-12-29 15:19:03 +01:00
ae7dba8969 patch 8.2.0054: :diffget and :diffput don't have good completion
Problem:    :diffget and :diffput don't have good completion.
Solution:   Add proper completion. (Dominique Pelle, closes #5409)
2019-12-29 13:56:33 +01:00
e20e68b40d patch 8.2.0053: windowsversion() does not always return the right value
Problem:    windowsversion() does not always return the right value.
Solution:   Add a compatibility section in the manifest. (Ken Takata,
            closes #5407)
2019-12-29 13:43:54 +01:00
c6d539b671 patch 8.2.0052: more-prompt not properly tested
Problem:    More-prompt not properly tested.
Solution:   Add a test case. (Dominique Pelle, closes #5404)
2019-12-28 17:10:46 +01:00
731a799bb9 patch 8.2.0051: command line completion test skipped
Problem:    Command line completion test skipped. (Christian Brabandt)
Solution:   Invert condition.
2019-12-28 14:06:50 +01:00
8cd6cd8087 patch 8.2.0050: after deleting a file mark it is still in viminfo
Problem:    After deleting a file mark it is still in viminfo.
Solution:   When a file mark was deleted more recently than the mark in the
            merged viminfo file was updated, do not store the mark. (Pavol
            Juhas, closes #5401, closes #1339)
2019-12-27 17:33:26 +01:00
297610ba4b patch 8.2.0049: command line completion not fully tested
Problem:    Command line completion not fully tested.
Solution:   Add more test cases.  Make help sorting stable. (Dominique Pelle,
            closes #5402)
2019-12-27 17:20:55 +01:00
5c463a28ff patch 8.2.0048: another timers test is flaky on Travis for Mac
Problem:    Another timers test is flaky on Travis for Mac.
Solution:   Increase maximum expected time.
2019-12-27 17:14:33 +01:00
0c1e3744ff patch 8.2.0047: cannot skip tests for specific MS-Windows platform
Problem:    Cannot skip tests for specific MS-Windows platform.
Solution:   Add windowsversion().
2019-12-27 13:49:24 +01:00
5666fcd0bd Update runtime files. 2019-12-26 14:35:26 +01:00
767340574b patch 8.2.0046: tests for spell suggestions are slow
Problem:    Tests for spell suggestions are slow.
Solution:   Use shorter words. Test with latin1 and utf-8 to cover more code.
            (Dominique Pelle, closes #5399)
2019-12-26 14:30:15 +01:00
ec57ec692e patch 8.2.0045: script test fails
Problem:    Script test fails.
Solution:   For numbers "is" and "isnot" work like "==" and "!=".
2019-12-25 19:33:22 +01:00
07a3db89b8 patch 8.2.0044: expression type is used inconsistently
Problem:    Expression type is used inconsistently.
Solution:   Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values.  Rename
            "TYPE_" to "ETYPE_" to avoid confusion.
2019-12-25 18:14:14 +01:00
818fed7a5e patch 8.2.0043: timers test is still flaky on Travis for Mac
Problem:    Timers test is still flaky on Travis for Mac.
Solution:   Increase maximum expected time.
2019-12-25 15:47:14 +01:00
eac7ce01e9 patch 8.2.0042: clearing funccal values twice
Problem:    Clearing funccal values twice.
Solution:   Remove clearing individual fields.
2019-12-25 15:04:03 +01:00
6c52f82371 patch 8.2.0041: leaking memory when selecting spell suggestion
Problem:    Leaking memory when selecting spell suggestion.
Solution:   Free previous value at the right time.
2019-12-25 14:13:03 +01:00
03af01f1cb patch 8.2.0040: timers test is still flaky on Travis for Mac
Problem:    Timers test is still flaky on Travis for Mac.
Solution:   Run separately instead of as part of test_alot.
2019-12-25 13:59:51 +01:00
569fea2c31 patch 8.2.0039: memory access error when "z=" has no suggestions
Problem:    Memory access error when "z=" has no suggestions.
Solution:   Check for negative index.
2019-12-25 13:55:24 +01:00
e9a8d1f9ad patch 8.2.0038: spell suggestions insufficiently tested
Problem:    Spell suggestions insufficiently tested.
Solution:   Add spell suggestion tests. (Dominique Pelle, closes #5398)
2019-12-25 13:36:36 +01:00
1500a42c42 patch 8.2.0037: missing renamed message
Problem:    Missing renamed message.
Solution:   Now really add the error number.
2019-12-24 15:38:21 +01:00
49d68bf5e4 patch 8.2.0036: not enough test coverage for match functions
Problem:    Not enough test coverage for match functions.
Solution:   Add a few more test cases.  (Dominique Pelle, closes #5394)
            Add error number.
2019-12-24 15:17:00 +01:00
53989554a4 patch 8.2.0035: saving and restoring called_emsg is clumsy
Problem:    Saving and restoring called_emsg is clumsy.
Solution:   Count the number of error messages.
2019-12-23 22:59:18 +01:00
70188f5b23 patch 8.2.0034: missing check for out of memory
Problem:    Missing check for out of memory.
Solution:   Check for NULL after vim_strsave(). (Dominique Pelle,
            closes #5393)
2019-12-23 18:18:52 +01:00
7c77b34967 patch 8.2.0033: crash when make_extmatch() runs out of memory
Problem:    Crash when make_extmatch() runs out of memory.
Solution:   Check for NULL. (Dominique Pelle, closs #5392)
2019-12-22 19:40:40 +01:00
7c2a2f869b patch 8.2.0032: MS-Windows: test for blank job fails
Problem:    MS-Windows: test for blank job fails
Solution:   Check before escaping.
2019-12-22 18:28:51 +01:00
ba0a7475c5 patch 8.2.0031: MS-Windows: test for empty job fails
Problem:    MS-Windows: test for empty job fails
Solution:   Check for error message, make it also fail on Unix.
2019-12-22 16:09:06 +01:00
64e74c9cc7 patch 8.2.0030: "gF" does not work on output of "verbose command"
Problem:    "gF" does not work on output of "verbose command".
Solution:   Recognize " line " and translations. (closes #5391)
2019-12-22 15:38:06 +01:00
a27655ef6d patch 8.2.0029: MS-Windows: crash with empty job command
Problem:    MS-Windows: crash with empty job command.
Solution:   Check for NULL result. (Yasuhiro Matsumoto, closes #5390)
2019-12-21 22:22:01 +01:00
3ba35409a6 patch 8.2.0028: searchpairpos() is not tested
Problem:    Searchpairpos() is not tested.
Solution:   Add tests.  Also improve searchpair() testing. (Dominique Pelle,
            closes #5388)
2019-12-21 22:00:50 +01:00
aa2f0ee639 patch 8.2.0027: still some /* */ comments
Problem:    Still some /* */ comments.
Solution:   Convert to // comments.
2019-12-21 18:47:26 +01:00
85a2002adb patch 8.2.0026: still some /* */ comments
Problem:    Still some /* */ comments.
Solution:   Convert to // comments.
2019-12-21 18:25:54 +01:00
fe72d08400 patch 8.2.0025: repeated word in comment
Problem:    Repeated word in comment.
Solution:   Remove one. (Rene Nyffenegger, closes #5384)
2019-12-20 19:07:00 +01:00
95a9dd1efc Update runtime files. 2019-12-19 22:12:03 +01:00
a4ce82fe2e patch 8.2.0024: filetype Rego not recognized
Problem:    Filetype Rego not recognized.
Solution:   Add *.rego. (Matt Dunford, closes #5376)
2019-12-19 15:57:42 +01:00
59cb041d0a patch 8.2.0023: command line editing not sufficiently tested
Problem:    Command line editing not sufficiently tested.
Solution:   Add more tests. (Dominique Pelle, closes #5374)
2019-12-18 22:26:31 +01:00
0ce3733f78 patch 8.2.0022: click in popup window doesn't close it in the GUI
Problem:    Click in popup window doesn't close it in the GUI. (Sergey Vlasov)
Solution:   When processing the selection also send a button release event.
            (closes #5367)
2019-12-18 21:33:22 +01:00
bc28e9f15b patch 8.2.0021: timer test fails too often on Travis with MacOS
Problem:    Timer test fails too often on Travis with MacOS.
Solution:   Be less strict with the time.
2019-12-18 20:10:23 +01:00
f19f8d1a4b patch 8.2.0020: mouse clicks in the command line not tested
Problem:    Mouse clicks in the command line not tested.
Solution:   Add tests. (Dominique Pelle, closes #5366)
2019-12-18 19:36:23 +01:00
a9e9679de3 patch 8.2.0019: cannot number of lines of another buffer
Problem:    Cannot number of lines of another buffer.
Solution:   Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto,
            closes #5370)
2019-12-17 22:40:15 +01:00
91b65e4944 patch 8.2.0018: :join does not add white space where it should
Problem:    :join does not add white space where it should. (Zdenek Dohnal)
Solution:   Handle joining multiple lines propely.
2019-12-17 22:10:58 +01:00
6f345a1458 patch 8.2.0017: OS/2 and MS-DOS are still mentioned
Problem:    OS/2 and MS-DOS are still mentioned, even though support was
            removed long ago.
Solution:   Update documentation. (Yegappan Lakshmanan, closes #5368)
2019-12-17 21:27:18 +01:00
a48e78e11f patch 8.2.0016: test name used twice, option not restored properly
Problem:    Test name used twice, option not restored properly.
Solution:   Rename function, restore option with "&".
2019-12-17 20:29:26 +01:00
e74331db4b patch 8.2.0015: not all modeline variants are tested
Problem:    Not all modeline variants are tested.
Solution:   Add modeline tests. (Dominique Pelle, closes #5369)
2019-12-17 19:22:40 +01:00
afc13bd827 patch 8.2.0014: test69 and test95 are old style
Problem:    Test69 and test95 are old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5365)
2019-12-16 22:43:31 +01:00
ddef129160 patch 8.2.0013: not using a typedef for condstack
Problem:    Not using a typedef for condstack.
Solution:   Add a typedef.
2019-12-16 17:10:33 +01:00
559b9c68fe patch 8.2.0012: some undo functionality is not tested
Problem:    Some undo functionality is not tested.
Solution:   Add a few more test cases. (Dominique Pelle, closes #5364)
2019-12-15 18:09:19 +01:00
5e5a98d7de patch 8.2.0011: screen updating wrong when opeing preview window
Problem:    Screen updating wrong when opeing preview window.
Solution:   Redraw the window when the preview window opens.
2019-12-15 14:55:33 +01:00
f9cb05c147 patch 8.2.0010: test64 is old style
Problem:    Test64 is old style.
Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5363)
2019-12-15 13:39:22 +01:00
95f0b6e5a5 patch 8.2.0009: VMS: terminal version doesn't build
Problem:    VMS: terminal version doesn't build.
Solution:   Move MIN definition.  Adjust #ifdefs. (Zoltan Arpadffy)
2019-12-15 12:54:18 +01:00
3e2d1c8cd6 patch 8.2.0008: test72 is old style
Problem:    Test72 is old style.
Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5362)
2019-12-14 20:35:01 +01:00
09dd2bb336 patch 8.2.0007: popup menu positioned wrong with folding in two tabs
Problem:    Popup menu positioned wrong with folding in two tabs.
Solution:   Update the cursor line height. (closes #5353)
2019-12-14 18:42:15 +01:00
6e43b30a85 patch 8.2.0006: test using long file name may fail
Problem:    Test using long file name may fail. (Vladimir Lomov)
Solution:   Limit the name length. (Christian Brabandt, closes #5358)
2019-12-14 17:53:27 +01:00
5021225656 patch 8.2.0005: duplication in version info
Problem:    Duplication in version info.
Solution:   Use preprocessor string concatenation. (Ken Takata, closes #5357)
2019-12-14 17:24:53 +01:00
a6e8f888e7 patch 8.2.0004: get E685 and E931 if buffer reload is interrupted
Problem:    Get E685 and E931 if buffer reload is interrupted.
Solution:   Do not abort deleting a dummy buffer. (closes #5361)
2019-12-14 16:18:15 +01:00
f5f4b6cb5f patch 8.2.0003: Build file dependencies are incomplete
Problem:    Build file dependencies are incomplete.
Solution:   Fix the dependencies. (Ken Takata, closes #5356)
2019-12-14 13:17:11 +01:00
3b68123cd2 patch 8.2.0002: "dj" only deletes first line of closed fold
Problem:    "dj" only deletes first line of closed fold.
Solution:   Adjust last line of operator for linewise motion. (closes #5354)
2019-12-13 19:35:55 +01:00
74ee5e2384 patch 8.2.0001: #endif comments do reflect corresponding #ifdef
Problem:    #endif comments do reflect corresponding #ifdef.
Solution:   Update the comments. (Rene Nyffenegger, closes #5351)
2019-12-13 18:13:22 +01:00
885 changed files with 90579 additions and 33371 deletions

View File

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

View File

@ -8,7 +8,7 @@ labels: enhancement
_Instructions: Replace the template text and remove irrelevant text (including this line)_ _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 [...] 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.) (If it is related to runtime files, please check their header for where to discuss enhancements.)

3
.gitignore vendored
View File

@ -5,9 +5,11 @@ src/xxd/xxd
src/auto/if_perl.c src/auto/if_perl.c
src/auto/gui_gtk_gresources.c src/auto/gui_gtk_gresources.c
src/auto/gui_gtk_gresources.h src/auto/gui_gtk_gresources.h
src/auto/os_haiku.rdef
src/objects/.dirstamp src/objects/.dirstamp
src/objects src/objects
src/tags src/tags
src/types.vim
# We do need src/auto/configure. # We do need src/auto/configure.
src/auto/config.cache src/auto/config.cache
@ -86,6 +88,7 @@ src/kword_test
# Generated by "make install" # Generated by "make install"
runtime/doc/tags runtime/doc/tags
runtime/doc/doctags
# Generated by "make shadow". The directory names could be anything but we # Generated by "make shadow". The directory names could be anything but we
# restrict them to shadow (the default) or shadow-* # restrict them to shadow (the default) or shadow-*

View File

@ -10,6 +10,7 @@ src/auto/gui_gtk_gresources.h
src/objects/.dirstamp src/objects/.dirstamp
src/objects src/objects
src/tags src/tags
src/types.vim
# We do need src/auto/configure. # We do need src/auto/configure.
src/auto/config.cache src/auto/config.cache
@ -86,6 +87,7 @@ src/kword_test
# Generated by "make install" # Generated by "make install"
runtime/doc/tags runtime/doc/tags
runtime/doc/doctags
# Generated by "make shadow". The directory names could be anything but we # Generated by "make shadow". The directory names could be anything but we
# restrict them to shadow (the default) or shadow-* # restrict them to shadow (the default) or shadow-*

View File

@ -1,35 +1,34 @@
language: c language: c
anchors: _anchors:
envs: envs:
- &tiny-nogui - &tiny-nogui
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no BUILD=yes TEST=test FEATURES=tiny CONFOPT="--disable-gui" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &tiny - &tiny
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no BUILD=yes TEST=test FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &small - &small
BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no BUILD=yes TEST=test FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &normal - &normal
BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no BUILD=yes TEST=test FEATURES=normal CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &linux-huge - &linux-huge
BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no BUILD=yes TEST="scripttests test_libvterm" CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
- &osx-huge # macOS build - &osx-huge # macOS build
BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no BUILD=yes TEST=test FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
- &unittests - &unittests
BUILD=no TEST=unittests COVERAGE=yes 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 SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
- &asan # ASAN build - &asan # ASAN build
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer" 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" ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
- &shadowopt
SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow
linux: &linux linux: &linux
os: linux os: linux
dist: trusty dist: bionic
addons: addons:
apt: apt:
sources:
# Need msgfmt 0.19.8 to be able to generate .desktop files
- sourceline: 'ppa:ricotz/toolchain'
packages: packages:
- autoconf - autoconf
- clang - clang
@ -39,46 +38,41 @@ anchors:
- libperl-dev - libperl-dev
- python-dev - python-dev
- python3-dev - python3-dev
- liblua5.2-dev - liblua5.3-dev
- lua5.2 - lua5.3
- ruby-dev - ruby-dev
- tcl-dev - tcl-dev
- cscope - cscope
- libgtk2.0-dev - libgtk2.0-dev
- desktop-file-utils - desktop-file-utils
- libtool-bin
services:
- xvfb
before_install: before_install:
- rvm reset - 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
- |
if [[ "${COVERAGE}" = "yes" ]]; then
pip install --user cpp-coveralls
fi
# needed for https support for coveralls
# building cffi only works with gcc, not with clang
- |
if [[ "${COVERAGE}" = "yes" ]]; then
CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1
fi
# Use llvm-cov instead of gcov when compiler is clang. # Use llvm-cov instead of gcov when compiler is clang.
- | - |
if [[ "${CC}" = "clang" ]]; then 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 fi
before_script: before_script:
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X. - sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
- export DISPLAY=:99.0 - sudo bash ci/load-snd-dummy.sh || true
- sh -e /etc/init.d/xvfb start && sleep 3
- sudo modprobe snd-dummy
- sudo usermod -a -G audio $USER - sudo usermod -a -G audio $USER
- do_test() { sg audio "sg $(id -gn) '$*'"; } - do_test() { sg audio "sg $(id -gn) '$*'"; }
osx: &osx osx: &osx
os: osx os: osx
before_script:
- do_test() { "$@"; }
homebrew: &osx-homebrew
addons: addons:
homebrew: homebrew:
packages: packages:
@ -87,25 +81,24 @@ anchors:
cache: cache:
directories: directories:
- /usr/local/Homebrew/Library/Homebrew/vendor/ - /usr/local/Homebrew/Library/Homebrew/vendor/
- /usr/local/Homebrew/Library/Taps/ - /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
before_install: before_install:
- rvm reset - rvm reset
# Lua is not installed on Travis OSX # Lua is not installed on macOS
- export LUA_PREFIX=/usr/local - export LUA_PREFIX=/usr/local
before_script:
- do_test() { "$@"; }
coverage: &coverage coverage: &coverage
# needed for https support for coveralls building cffi only works with gcc,
# not with clang
- CC=gcc pip install --user cpp-coveralls pyopenssl ndg-httpsclient pyasn1
- ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8 - ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
- (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash)) - (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash))
asan_symbolize: &asan_symbolize asan_symbolize: &asan_symbolize
- | # Update pyenv to fix the error "/opt/pyenv/libexec/pyenv: line 43: cd: asan_symbolize-6.0: Not a directory".
while read log; do # https://github.com/pyenv/pyenv/issues/580
asan_symbolize < "${log}" - (cd "${PYENV_ROOT}" && git fetch -p origin && git checkout "$(git rev-list --tags -n1)") &>/dev/null || true
done < <(find . -type f -name 'asan.*' -size +0) - find . -type f -name 'asan.*' -size +0 2>/dev/null | xargs grep -l '^==[[:digit:]]*==ERROR:' | xargs -I{} -n1 -t asan_symbolize -l{}
sudo: false
branches: branches:
except: except:
@ -129,31 +122,35 @@ script:
- echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K" - echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K"
- | - |
if [[ "${BUILD}" = "yes" ]]; then 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} make ${SHADOWOPT} -j${NPROC}
fi fi
- echo -en "travis_fold:end:build\\r\\033[0K" - echo -en "travis_fold:end:build\\r\\033[0K"
- set +o errexit - set +o errexit
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
# Show Vim version and also if_xx versions. # Show Vim version and also if_xx versions.
- | - |
if [[ "${BUILD}" = "yes" ]]; then if [[ "${BUILD}" = "yes" ]]; then
"${SRCDIR}"/vim --version "${SRCDIR}"/vim --version
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-1.vim -c quit > /dev/null "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-2.vim -c quit > /dev/null "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
cat if_ver.txt
fi fi
- > - echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
do_test make ${SHADOWOPT} ${TEST} && - do_test make ${SHADOWOPT} ${TEST} && FOLD_MARKER=travis_fold
make -C runtime/doc vimtags VIMEXE=../../"${SRCDIR}"/vim &&
FOLD_MARKER=travis_fold
- echo -en "${FOLD_MARKER}:end:test\\r\\033[0K" - echo -en "${FOLD_MARKER}:end:test\\r\\033[0K"
# Instead of using all environments with both compilers on both systems,
# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env), # exclude some builds on mac os x and linux.
# exclude some builds on mac os x and linux # On mac os x "tiny" is always without GUI, use 2 compilers in 2 environments.
# on mac os x "tiny" is always without GUI # Linux: 2 compilers on some of the environments + gcc on os390
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env jobs:
matrix:
include: include:
- <<: *osx - <<: *osx
name: tiny-nogui/clang name: tiny-nogui/clang
@ -164,10 +161,12 @@ matrix:
compiler: gcc compiler: gcc
env: *tiny-nogui env: *tiny-nogui
- <<: *osx - <<: *osx
<<: *osx-homebrew
name: huge/clang name: huge/clang
compiler: clang compiler: clang
env: *osx-huge env: *osx-huge
- <<: *osx - <<: *osx
<<: *osx-homebrew
name: huge/gcc name: huge/gcc
compiler: gcc compiler: gcc
env: *osx-huge env: *osx-huge
@ -194,26 +193,34 @@ matrix:
- <<: *linux - <<: *linux
name: normal/clang name: normal/clang
compiler: clang compiler: clang
env: *normal env:
- *normal
- *shadowopt
- <<: *linux - <<: *linux
name: normal/gcc name: normal/gcc
compiler: gcc compiler: gcc
env: *normal env:
- *normal
- *shadowopt
- <<: *linux
arch: s390x
name: huge/gcc-s390x
compiler: gcc
env: *linux-huge
services: []
- <<: *linux - <<: *linux
name: huge+coverage/clang name: huge+coverage/clang
compiler: clang compiler: clang
env: *linux-huge env:
- *linux-huge
# Clang cannot compile test_libvterm with "--coverage" flag.
- TEST=scripttests
after_success: *coverage after_success: *coverage
- <<: *linux - <<: *linux
name: huge+coverage/gcc name: huge+coverage/gcc
compiler: gcc compiler: gcc
env: *linux-huge env: *linux-huge
after_success: *coverage after_success: *coverage
- <<: *linux
name: unittests+coverage/gcc
compiler: gcc
env: *unittests
after_success: *coverage
- <<: *linux # ASAN - <<: *linux # ASAN
name: huge+asan/gcc name: huge+asan/gcc
compiler: gcc compiler: gcc
@ -228,5 +235,16 @@ matrix:
- *linux-huge - *linux-huge
- TEST="-C src testgui" - TEST="-C src testgui"
after_success: *coverage after_success: *coverage
- <<: *linux
name: unittests+coverage/gcc
compiler: gcc
env: *unittests
after_success: *coverage
- <<: *linux
name: vimtags/gcc
compiler: gcc
env:
- *normal
- TEST="-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
# vim:set sts=2 sw=2 tw=0 et: # vim:set sts=2 sw=2 tw=0 et:

104
Filelist
View File

@ -11,6 +11,9 @@ SRC_ALL = \
.cirrus.yml \ .cirrus.yml \
appveyor.yml \ appveyor.yml \
ci/appveyor.bat \ ci/appveyor.bat \
ci/if_ver*.vim \
ci/load-snd-dummy.sh \
ci/config.mk*.sed \
src/Make_all.mak \ src/Make_all.mak \
src/README.md \ src/README.md \
src/alloc.h \ src/alloc.h \
@ -28,6 +31,8 @@ SRC_ALL = \
src/channel.c \ src/channel.c \
src/charset.c \ src/charset.c \
src/cindent.c \ src/cindent.c \
src/clientserver.c \
src/clipboard.c \
src/cmdexpand.c \ src/cmdexpand.c \
src/cmdhist.c \ src/cmdhist.c \
src/crypt.c \ src/crypt.c \
@ -124,7 +129,11 @@ SRC_ALL = \
src/term.h \ src/term.h \
src/termlib.c \ src/termlib.c \
src/testing.c \ src/testing.c \
src/textformat.c \
src/textobject.c \
src/textprop.c \ src/textprop.c \
src/time.c \
src/typval.c \
src/ui.c \ src/ui.c \
src/undo.c \ src/undo.c \
src/usercmd.c \ src/usercmd.c \
@ -132,6 +141,10 @@ SRC_ALL = \
src/version.c \ src/version.c \
src/version.h \ src/version.h \
src/vim.h \ src/vim.h \
src/vim9.h \
src/vim9compile.c \
src/vim9execute.c \
src/vim9script.c \
src/viminfo.c \ src/viminfo.c \
src/winclip.c \ src/winclip.c \
src/window.c \ src/window.c \
@ -144,20 +157,22 @@ SRC_ALL = \
src/testdir/*.py \ src/testdir/*.py \
src/testdir/lsan-suppress.txt \ src/testdir/lsan-suppress.txt \
src/testdir/sautest/autoload/*.vim \ src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \ src/testdir/testluaplugin/lua/testluaplugin/*.lua \
src/testdir/summarize.vim \
src/testdir/check.vim \ src/testdir/check.vim \
src/testdir/shared.vim \
src/testdir/screendump.vim \
src/testdir/view_util.vim \
src/testdir/term_util.vim \
src/testdir/setup.vim \
src/testdir/gui_init.vim \ src/testdir/gui_init.vim \
src/testdir/setup_gui.vim \
src/testdir/gui_preinit.vim \ src/testdir/gui_preinit.vim \
src/testdir/mouse.vim \
src/testdir/runtest.vim \
src/testdir/screendump.vim \
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]*.ok \
src/testdir/test[0-9]*a.ok \ src/testdir/test[0-9]*a.ok \
src/testdir/test_[a-z]*.ok \
src/testdir/test49.vim \ src/testdir/test49.vim \
src/testdir/test83-tags? \ src/testdir/test83-tags? \
src/testdir/test77a.com \ src/testdir/test77a.com \
@ -172,12 +187,9 @@ SRC_ALL = \
src/testdir/python_after/*.py \ src/testdir/python_after/*.py \
src/testdir/python_before/*.py \ src/testdir/python_before/*.py \
src/testdir/pyxfile/*.py \ src/testdir/pyxfile/*.py \
src/testdir/bench*.in \
src/testdir/bench*.vim \
src/testdir/dumps/*.dump \ src/testdir/dumps/*.dump \
src/testdir/samples/*.txt \ src/testdir/samples/*.txt \
src/testdir/samples/test000 \ src/testdir/samples/test000 \
src/testdir/if_ver*.vim \
src/testdir/color_ramp.vim \ src/testdir/color_ramp.vim \
src/testdir/silent.wav \ src/testdir/silent.wav \
src/testdir/popupbounce.vim \ src/testdir/popupbounce.vim \
@ -195,6 +207,8 @@ SRC_ALL = \
src/proto/channel.pro \ src/proto/channel.pro \
src/proto/charset.pro \ src/proto/charset.pro \
src/proto/cindent.pro \ src/proto/cindent.pro \
src/proto/clientserver.pro \
src/proto/clipboard.pro \
src/proto/cmdexpand.pro \ src/proto/cmdexpand.pro \
src/proto/cmdhist.pro \ src/proto/cmdhist.pro \
src/proto/crypt.pro \ src/proto/crypt.pro \
@ -269,12 +283,19 @@ SRC_ALL = \
src/proto/terminal.pro \ src/proto/terminal.pro \
src/proto/termlib.pro \ src/proto/termlib.pro \
src/proto/testing.pro \ src/proto/testing.pro \
src/proto/textformat.pro \
src/proto/textobject.pro \
src/proto/textprop.pro \ src/proto/textprop.pro \
src/proto/time.pro \
src/proto/typval.pro \
src/proto/ui.pro \ src/proto/ui.pro \
src/proto/undo.pro \ src/proto/undo.pro \
src/proto/usercmd.pro \ src/proto/usercmd.pro \
src/proto/userfunc.pro \ src/proto/userfunc.pro \
src/proto/version.pro \ src/proto/version.pro \
src/proto/vim9compile.pro \
src/proto/vim9execute.pro \
src/proto/vim9script.pro \
src/proto/viminfo.pro \ src/proto/viminfo.pro \
src/proto/winclip.pro \ src/proto/winclip.pro \
src/proto/window.pro \ src/proto/window.pro \
@ -283,10 +304,12 @@ SRC_ALL = \
src/libvterm/LICENSE \ src/libvterm/LICENSE \
src/libvterm/Makefile \ src/libvterm/Makefile \
src/libvterm/README \ src/libvterm/README \
src/libvterm/CONTRIBUTING \
src/libvterm/tbl2inc_c.pl \ src/libvterm/tbl2inc_c.pl \
src/libvterm/vterm.pc.in \ src/libvterm/vterm.pc.in \
src/libvterm/doc/URLs \ src/libvterm/doc/URLs \
src/libvterm/doc/seqs.txt \ src/libvterm/doc/seqs.txt \
src/libvterm/find-wide-chars.pl \
src/libvterm/include/vterm.h \ src/libvterm/include/vterm.h \
src/libvterm/include/vterm_keycodes.h \ src/libvterm/include/vterm_keycodes.h \
src/libvterm/src/encoding.c \ src/libvterm/src/encoding.c \
@ -294,6 +317,7 @@ SRC_ALL = \
src/libvterm/src/encoding/DECdrawing.tbl \ src/libvterm/src/encoding/DECdrawing.tbl \
src/libvterm/src/encoding/uk.inc \ src/libvterm/src/encoding/uk.inc \
src/libvterm/src/encoding/uk.tbl \ src/libvterm/src/encoding/uk.tbl \
src/libvterm/src/fullwidth.inc \
src/libvterm/src/keyboard.c \ src/libvterm/src/keyboard.c \
src/libvterm/src/mouse.c \ src/libvterm/src/mouse.c \
src/libvterm/src/parser.c \ src/libvterm/src/parser.c \
@ -324,16 +348,18 @@ SRC_ALL = \
src/libvterm/t/27state_reset.test \ src/libvterm/t/27state_reset.test \
src/libvterm/t/28state_dbl_wh.test \ src/libvterm/t/28state_dbl_wh.test \
src/libvterm/t/29state_fallback.test \ src/libvterm/t/29state_fallback.test \
src/libvterm/t/30pen.test \ src/libvterm/t/30state_pen.test \
src/libvterm/t/40screen_ascii.test \ src/libvterm/t/31state_rep.test \
src/libvterm/t/41screen_unicode.test \ src/libvterm/t/32state_flow.test \
src/libvterm/t/42screen_damage.test \ src/libvterm/t/60screen_ascii.test \
src/libvterm/t/43screen_resize.test \ src/libvterm/t/61screen_unicode.test \
src/libvterm/t/44screen_pen.test \ src/libvterm/t/62screen_damage.test \
src/libvterm/t/45screen_protect.test \ src/libvterm/t/63screen_resize.test \
src/libvterm/t/46screen_extent.test \ src/libvterm/t/64screen_pen.test \
src/libvterm/t/47screen_dbl_wh.test \ src/libvterm/t/65screen_protect.test \
src/libvterm/t/48screen_termprops.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-1.test \
src/libvterm/t/90vttest_01-movement-2.test \ src/libvterm/t/90vttest_01-movement-2.test \
src/libvterm/t/90vttest_01-movement-3.test \ src/libvterm/t/90vttest_01-movement-3.test \
@ -393,6 +419,7 @@ SRC_UNIX = \
src/gui_gtk_x11.c \ src/gui_gtk_x11.c \
src/gui_gtk_res.xml \ src/gui_gtk_res.xml \
src/gui_motif.c \ src/gui_motif.c \
src/gui_xim.c \
src/gui_xmdlg.c \ src/gui_xmdlg.c \
src/gui_xmebw.c \ src/gui_xmebw.c \
src/gui_xmebw.h \ src/gui_xmebw.h \
@ -416,6 +443,7 @@ SRC_UNIX = \
src/proto/gui_gtk_x11.pro \ src/proto/gui_gtk_x11.pro \
src/proto/gui_gtk_gresources.pro \ src/proto/gui_gtk_gresources.pro \
src/proto/gui_motif.pro \ src/proto/gui_motif.pro \
src/proto/gui_xim.pro \
src/proto/gui_xmdlg.pro \ src/proto/gui_xmdlg.pro \
src/proto/gui_x11.pro \ src/proto/gui_x11.pro \
src/proto/if_xcmdsrv.pro \ src/proto/if_xcmdsrv.pro \
@ -521,7 +549,6 @@ SRC_DOS = \
src/uninstall.c \ src/uninstall.c \
src/vim.def \ src/vim.def \
src/vim.rc \ src/vim.rc \
src/vimio.h \
src/gvim.exe.mnf \ src/gvim.exe.mnf \
src/vimrun.c \ src/vimrun.c \
src/xpm_w32.c \ src/xpm_w32.c \
@ -591,6 +618,15 @@ SRC_AMI = \
src/testdir/amiga.vim \ src/testdir/amiga.vim \
src/xxd/Make_amiga.mak \ src/xxd/Make_amiga.mak \
# source files for Haiku (also in the extra archive)
SRC_HAIKU = \
README_haiku.txt \
src/os_haiku.h \
src/os_haiku.rdef.in \
src/gui_haiku.cc \
src/gui_haiku.h \
src/proto/gui_haiku.pro \
# source files for the Mac (also in the extra archive) # source files for the Mac (also in the extra archive)
SRC_MAC = \ SRC_MAC = \
src/INSTALLmac.txt \ src/INSTALLmac.txt \
@ -626,13 +662,13 @@ SRC_QNX = \
src/proto/gui_photon.pro \ src/proto/gui_photon.pro \
src/proto/os_qnx.pro \ src/proto/os_qnx.pro \
# source files for the extra archive (all sources that are not for Unix) # source files for the extra archive (all sources that are not for Unix)
SRC_EXTRA = \ SRC_EXTRA = \
$(SRC_AMI) \ $(SRC_AMI) \
$(SRC_AMI_DOS) \ $(SRC_AMI_DOS) \
$(SRC_DOS) \ $(SRC_DOS) \
$(SRC_DOS_BIN) \ $(SRC_DOS_BIN) \
$(SRC_HAIKU) \
$(SRC_MAC) \ $(SRC_MAC) \
$(SRC_QNX) \ $(SRC_QNX) \
$(SRC_VMS) \ $(SRC_VMS) \
@ -640,10 +676,6 @@ SRC_EXTRA = \
src/Make_mint.mak \ src/Make_mint.mak \
src/infplist.xml \ src/infplist.xml \
src/link.390 \ 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_mint.h \
src/os_vms_fix.com \ src/os_vms_fix.com \
src/toolbar.phi \ src/toolbar.phi \
@ -652,6 +684,8 @@ SRC_EXTRA = \
RT_ALL = \ RT_ALL = \
README.txt \ README.txt \
README.md \ README.md \
README_VIM9.md \
LICENSE \
CONTRIBUTING.md \ CONTRIBUTING.md \
runtime/bugreport.vim \ runtime/bugreport.vim \
runtime/doc/*.awk \ runtime/doc/*.awk \
@ -766,20 +800,20 @@ RT_UNIX = \
README_unix.txt \ README_unix.txt \
runtime/hi16-action-make.png \ runtime/hi16-action-make.png \
runtime/hi22-action-make.png \ runtime/hi22-action-make.png \
runtime/vim16x16.png \
runtime/vim16x16.xpm \
runtime/vim32x32.png \
runtime/vim32x32.xpm \
runtime/vim48x48.png \
runtime/vim48x48.xpm \
runtime/gvim.desktop \ runtime/gvim.desktop \
runtime/vim.desktop \ runtime/vim.desktop \
# Unix and DOS runtime without CR-LF translation # Unix and DOS runtime without CR-LF translation
RT_UNIX_DOS_BIN = \ RT_UNIX_DOS_BIN = \
runtime/vim16x16.gif \ runtime/vim16x16.gif \
runtime/vim16x16.png \
runtime/vim16x16.xpm \
runtime/vim32x32.gif \ runtime/vim32x32.gif \
runtime/vim32x32.png \
runtime/vim32x32.xpm \
runtime/vim48x48.gif \ runtime/vim48x48.gif \
runtime/vim48x48.png \
runtime/vim48x48.xpm \
# runtime not for unix or extra # runtime not for unix or extra
RT_NO_UNIX = \ RT_NO_UNIX = \
@ -938,6 +972,8 @@ LANG_GEN = \
runtime/doc/*-pl.UTF-8.1 \ runtime/doc/*-pl.UTF-8.1 \
runtime/doc/*-ru.1 \ runtime/doc/*-ru.1 \
runtime/doc/*-ru.UTF-8.1 \ runtime/doc/*-ru.UTF-8.1 \
runtime/doc/*-tr.1 \
runtime/doc/*-tr.UTF-8.1 \
runtime/lang/README.txt \ runtime/lang/README.txt \
runtime/lang/menu_*.vim \ runtime/lang/menu_*.vim \
runtime/keymap/README.txt \ runtime/keymap/README.txt \

78
LICENSE Normal file
View File

@ -0,0 +1,78 @@
VIM LICENSE
I) There are no restrictions on distributing unmodified copies of Vim except
that they must include this license text. You can also distribute
unmodified parts of Vim, likewise unrestricted except that they must
include this license text. You are also allowed to include executables
that you made from the unmodified Vim sources, plus your own usage
examples and Vim scripts.
II) It is allowed to distribute a modified (or extended) version of Vim,
including executables and/or source code, when the following four
conditions are met:
1) This license text must be included unmodified.
2) The modified Vim must be distributed in one of the following five ways:
a) If you make changes to Vim yourself, you must clearly describe in
the distribution how to contact you. When the maintainer asks you
(in any way) for a copy of the modified Vim you distributed, you
must make your changes, including source code, available to the
maintainer without fee. The maintainer reserves the right to
include your changes in the official version of Vim. What the
maintainer will do with your changes and under what license they
will be distributed is negotiable. If there has been no negotiation
then this license, or a later version, also applies to your changes.
The current maintainer is Bram Moolenaar <Bram@vim.org>. If this
changes it will be announced in appropriate places (most likely
vim.sf.net, www.vim.org and/or comp.editors). When it is completely
impossible to contact the maintainer, the obligation to send him
your changes ceases. Once the maintainer has confirmed that he has
received your changes they will not have to be sent again.
b) If you have received a modified Vim that was distributed as
mentioned under a) you are allowed to further distribute it
unmodified, as mentioned at I). If you make additional changes the
text under a) applies to those changes.
c) Provide all the changes, including source code, with every copy of
the modified Vim you distribute. This may be done in the form of a
context diff. You can choose what license to use for new code you
add. The changes and their license must not restrict others from
making their own changes to the official version of Vim.
d) When you have a modified Vim which includes changes as mentioned
under c), you can distribute it without the source code for the
changes if the following three conditions are met:
- The license that applies to the changes permits you to distribute
the changes to the Vim maintainer without fee or restriction, and
permits the Vim maintainer to include the changes in the official
version of Vim without fee or restriction.
- You keep the changes for at least three years after last
distributing the corresponding modified Vim. When the maintainer
or someone who you distributed the modified Vim to asks you (in
any way) for the changes within this period, you must make them
available to him.
- You clearly describe in the distribution how to contact you. This
contact information must remain valid for at least three years
after last distributing the corresponding modified Vim, or as long
as possible.
e) When the GNU General Public License (GPL) applies to the changes,
you can distribute the modified Vim under the GNU GPL version 2 or
any later version.
3) A message must be added, at least in the output of the ":version"
command and in the intro screen, such that the user of the modified Vim
is able to see that it was modified. When distributing as mentioned
under 2)e) adding the message is only required for as far as this does
not conflict with the license used for the changes.
4) The contact information as required under 2)a) and 2)d) must not be
removed or changed, except that the person himself can make
corrections.
III) If you distribute a modified version of Vim, you are encouraged to use
the Vim license for your changes and make them available to the
maintainer, including the source code. The preferred way to do this is
by e-mail or by uploading the files to a server and e-mailing the URL.
If the number of changes is small (e.g., a modified Makefile) e-mailing a
context diff will do. The e-mail address to be used is
<maintainer@vim.org>
IV) It is not allowed to remove this license from the distribution of the Vim
sources, parts of it or from a modified version. You may use this
license for previous Vim releases instead of the license that they came
with, at your option.

View File

@ -153,7 +153,7 @@ MINOR = 2
# > msvc2015.bat # > msvc2015.bat
# - Build the console binary: # - Build the console binary:
# > nmake -f Make_mvc.mak # > nmake -f Make_mvc.mak
# - Run the tests and check the ouput: # - Run the tests and check the output:
# > nmake -f Make_mvc.mak testclean # > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak test # > nmake -f Make_mvc.mak test
# - Rename (using ../tools/rename.bat): # - Rename (using ../tools/rename.bat):

View File

@ -26,10 +26,12 @@ All commands are given with normal keyboard characters, so those who can type
with ten fingers can work very fast. Additionally, function keys can be with ten fingers can work very fast. Additionally, function keys can be
mapped to commands by the user, and the mouse can be used. mapped to commands by the user, and the mouse can be used.
Vim runs under MS-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh, VMS and Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, Haiku, VMS and almost
almost all flavours of UNIX. Porting to other systems should not be very all flavours of UNIX. Porting to other systems should not be very difficult.
difficult. Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me, Amiga Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained. Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
For Vim9 script see [README_VIM9](README_VIM9.md).
## Distribution ## ## Distribution ##
@ -70,6 +72,7 @@ archive):
README_unix.txt Unix README_unix.txt Unix
README_dos.txt MS-DOS and MS-Windows README_dos.txt MS-DOS and MS-Windows
README_mac.txt Macintosh README_mac.txt Macintosh
README_haiku.txt Haiku
README_vms.txt VMS README_vms.txt VMS
There are other `README_*.txt` files, depending on the distribution you used. There are other `README_*.txt` files, depending on the distribution you used.

View File

@ -16,10 +16,10 @@ All commands are given with normal keyboard characters, so those who can type
with ten fingers can work very fast. Additionally, function keys can be with ten fingers can work very fast. Additionally, function keys can be
mapped to commands by the user, and the mouse can be used. mapped to commands by the user, and the mouse can be used.
Vim runs under MS-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh, VMS and Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, VMS and almost all
almost all flavours of UNIX. Porting to other systems should not be very flavours of UNIX. Porting to other systems should not be very difficult.
difficult. Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me, Amiga Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained. Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
DISTRIBUTION DISTRIBUTION

344
README_VIM9.md Normal file
View File

@ -0,0 +1,344 @@
![Vim Logo](https://github.com/vim/vim/blob/master/runtime/vimlogo.gif)
# What is Vim9?
This is an experimental side of [Vim](https://github.com/vim/vim).
It explores ways of making Vim script faster and better.
WARNING: The Vim9 script features are in the early stages of development,
anything can break!
# Why Vim9?
## 1. FASTER VIM SCRIPT
The third item on the poll results of 2018, after popup windows and text
properties, is faster Vim script. So how do we do that?
I have been throwing some ideas around, and soon came to the conclusion
that the current way functions are called and executed, with
dictionaries for the arguments and local variables, is never going to be
very fast. We're lucky if we can make it twice as fast. The overhead
of a function call and executing every line is just too high.
So what then? We can only make something fast by having a new way of
defining a function, with similar but different properties of the old
way:
* Arguments are only available by name, not through the a: dictionary or
the a:000 list.
* Local variables are not available in an l: dictionary.
* A few more things that slow us down, such as exception handling details.
I Implemented a "proof of concept" and measured the time to run a simple
for loop with an addition (Justin used this example in his presentation,
full code is below):
``` vim
let sum = 0
for i in range(1, 2999999)
let sum += i
endfor
```
| how | time in sec |
| --------| -------- |
| Vim old | 5.018541 |
| Python | 0.369598 |
| Lua | 0.078817 |
| Vim new | 0.073595 |
That looks very promising! It's just one example, but it shows how much
we can gain, and also that Vim script can be faster than builtin
interfaces.
In practice the script would not do something useless as counting but change
the text. For example, re-indent all the lines:
``` vim
let totallen = 0
for i in range(1, 100000)
call setline(i, ' ' .. getline(i))
let totallen += len(getline(i))
endfor
```
| how | time in sec |
| --------| -------- |
| Vim old | 0.853752 |
| Python | 0.304584 |
| Lua | 0.286573 |
| Vim new | 0.190276 |
The differences are smaller, but Vim 9 script is clearly the fastest.
How does Vim9 script work? The function is first compiled into a sequence of
instructions. Each instruction has one or two parameters and a stack is
used to store intermediate results. Local variables are also on the
stack, space is reserved during compilation. This is a fairly normal
way of compilation into an intermediate format, specialized for Vim,
e.g. each stack item is a typeval_T. And one of the instructions is
"execute Ex command", for commands that are not compiled.
## 2. PHASING OUT INTERFACES
Attempts have been made to implement functionality with built-in script
languages such as Python, Perl, Lua, Tcl and Ruby. This never gained much
foothold, for various reasons.
Instead of using script language support in Vim:
* Encourage implementing external tools in any language and communicate
with them. The job and channel support already makes this possible.
Really any language can be used, also Java and Go, which are not
available built-in.
* Phase out the built-in language interfaces, make maintenance a bit easier
and executables easier to build. They will be kept for backwards
compatibility, no new features.
* Improve the Vim script language, it is used to communicate with the external
tool and implements the Vim side of the interface. Also, it can be used when
an external tool is undesired.
All together this creates a clear situation: Vim with the +eval feature
will be sufficient for most plugins, while some plugins require
installing a tool that can be written in any language. No confusion
about having Vim but the plugin not working because some specific
language is missing. This is a good long term goal.
Rationale: Why is it better to run a tool separately from Vim than using a
built-in interface and interpreter? Take for example something that is
written in Python:
* The built-in interface uses the embedded python interpreter. This is less
well maintained than the python command. Building Vim with it requires
installing developer packages. If loaded dynamically there can be a version
mismatch.
* When running the tool externally the standard python command can be used,
which is quite often available by default or can be easily installed.
* The built-in interface has an API that is unique for Vim with Python. This is
an extra API to learn.
* A .py file can be compiled into a .pyc file and execute much faster.
* Inside Vim multi-threading can cause problems, since the Vim core is single
threaded. In an external tool there are no such problems.
* The Vim part is written in .vim files, the Python part is in .py files, this
is nicely separated.
* Disadvantage: An interface needs to be made between Vim and Python.
JSON is available for this, and it's fairly easy to use. But it still
requires implementing asynchronous communication.
## 3. BETTER VIM SCRIPT
To make Vim faster a new way of defining a function needs to be added.
While we are doing that, since the lines in this function won't be fully
backwards compatible anyway, we can also make Vim script easier to use.
In other words: "less weird". Making it work more like modern
programming languages will help. No surprises.
A good example is how in a function the arguments are prefixed with
"a:". No other language I know does that, so let's drop it.
Taking this one step further is also dropping "s:" for script-local variables;
everything at the script level is script-local by default. Since this is not
backwards compatible it requires a new script style: Vim9 script!
It should be possible to convert code from other languages to Vim
script. We can add functionality to make this easier. This still needs
to be discussed, but we can consider adding type checking and a simple
form of classes. If you look at JavaScript for example, it has gone
through these stages over time, adding real class support and now
TypeScript adds type checking. But we'll have to see how much of that
we actually want to include in Vim script. Ideally a conversion tool
can take Python, JavaScript or TypeScript code and convert it to Vim
script, with only some things that cannot be converted.
Vim script won't work the same as any specific language, but we can use
mechanisms that are commonly known, ideally with the same syntax. One
thing I have been thinking of is assignments without ":let". I often
make that mistake (after writing JavaScript especially). I think it is
possible, if we make local variables shadow commands. That should be OK,
if you shadow a command you want to use, just rename the variable.
Using "let" and "const" to declare a variable, like in JavaScript and
TypeScript, can work:
``` vim
def MyFunction(arg: number): number
let local = 1
let todo = arg
const ADD = 88
while todo > 0
local += ADD
--todo
endwhile
return local
enddef
```
The similarity with JavaScript/TypeScript can also be used for dependencies
between files. Vim currently uses the `:source` command, which has several
disadvantages:
* In the sourced script, is not clear what it provides. By default all
functions are global and can be used elsewhere.
* In a script that sources other scripts, it is not clear what function comes
from what sourced script. Finding the implementation is a hassle.
* Prevention of loading the whole script twice must be manually implemented.
We can use the `:import` and `:export` commands from the JavaScript standard to
make this much better. For example, in script "myfunction.vim" define a
function and export it:
``` vim
vim9script " Vim9 script syntax used here
let local = 'local variable is not exported, script-local'
export def MyFunction() " exported function
...
def LocalFunction() " not exported, script-local
...
```
And in another script import the function:
``` vim
vim9script " Vim9 script syntax used here
import MyFunction from 'myfunction.vim'
```
This looks like JavaScript/TypeScript, thus many users will understand the
syntax.
These are ideas, this will take time to design, discuss and implement.
Eventually this will lead to Vim 9!
## Code for sum time measurements
Vim was build with -O2.
``` vim
func VimOld()
let sum = 0
for i in range(1, 2999999)
let sum += i
endfor
return sum
endfunc
func Python()
py3 << END
sum = 0
for i in range(1, 3000000):
sum += i
END
return py3eval('sum')
endfunc
func Lua()
lua << END
sum = 0
for i = 1, 2999999 do
sum = sum + i
end
END
return luaeval('sum')
endfunc
def VimNew()
let sum = 0
for i in range(1, 2999999)
let sum += i
endfor
return sum
enddef
let start = reltime()
echo VimOld()
echo 'Vim old: ' .. reltimestr(reltime(start))
let start = reltime()
echo Python()
echo 'Python: ' .. reltimestr(reltime(start))
let start = reltime()
echo Lua()
echo 'Lua: ' .. reltimestr(reltime(start))
let start = reltime()
echo VimNew()
echo 'Vim new: ' .. reltimestr(reltime(start))
```
## Code for indent time measurements
``` vim
def VimNew(): number
let totallen = 0
for i in range(1, 100000)
setline(i, ' ' .. getline(i))
totallen += len(getline(i))
endfor
return totallen
enddef
func VimOld()
let totallen = 0
for i in range(1, 100000)
call setline(i, ' ' .. getline(i))
let totallen += len(getline(i))
endfor
return totallen
endfunc
func Lua()
lua << END
b = vim.buffer()
totallen = 0
for i = 1, 100000 do
b[i] = " " .. b[i]
totallen = totallen + string.len(b[i])
end
END
return luaeval('totallen')
endfunc
func Python()
py3 << END
cb = vim.current.buffer
totallen = 0
for i in range(0, 100000):
cb[i] = ' ' + cb[i]
totallen += len(cb[i])
END
return py3eval('totallen')
endfunc
new
call setline(1, range(100000))
let start = reltime()
echo VimOld()
echo 'Vim old: ' .. reltimestr(reltime(start))
bwipe!
new
call setline(1, range(100000))
let start = reltime()
echo Python()
echo 'Python: ' .. reltimestr(reltime(start))
bwipe!
new
call setline(1, range(100000))
let start = reltime()
echo Lua()
echo 'Lua: ' .. reltimestr(reltime(start))
bwipe!
new
call setline(1, range(100000))
let start = reltime()
echo VimNew()
echo 'Vim new: ' .. reltimestr(reltime(start))
bwipe!
```

View File

@ -1,6 +1,6 @@
README_dos.txt for version 8.2 of Vim: Vi IMproved. README_dos.txt for version 8.2 of Vim: Vi IMproved.
This file explains the installation of Vim on MS-DOS and MS-Windows systems. This file explains the installation of Vim on MS-Windows systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
There are two ways to install Vim: There are two ways to install Vim:
@ -64,10 +64,6 @@ These are the normal steps to install Vim from the .zip archives:
to another location. That is where they will stay, the install program to another location. That is where they will stay, the install program
won't move or copy the runtime files. won't move or copy the runtime files.
Only for the 32 bit DOS version on MS-DOS without DPMI support (trying to
run install.exe will produce an error message): Unpack the CSDPMI4B.ZIP
archive and follow the instructions in the documentation.
3. Change to the new directory: 3. Change to the new directory:
cd vim\vim82 cd vim\vim82
Run the "install.exe" program. It will ask you a number of questions about Run the "install.exe" program. It will ask you a number of questions about
@ -121,7 +117,7 @@ Remarks:
set VIM=d:\editors\vim set VIM=d:\editors\vim
- If you have told the "install.exe" program to add the "Edit with Vim" menu - If you have told the "install.exe" program to add the "Edit with Vim" menu
entry, you can remove it by running the "uninstal.exe". See entry, you can remove it by running the "uninstall.exe". See
":help win32-popup-menu". ":help win32-popup-menu".
- In Windows 95/98/NT you can create a shortcut to Vim. This works for all - In Windows 95/98/NT you can create a shortcut to Vim. This works for all
@ -150,5 +146,4 @@ Remarks:
For further information, type one of these inside Vim: For further information, type one of these inside Vim:
:help dos :help dos
:help msdos
:help win32 :help win32

View File

@ -13,9 +13,6 @@ src/if_sniff.* Interface to SNiFF. If you don't know what SNiFF is,
src/os_amiga.* Files for the Amiga port. src/os_amiga.* Files for the Amiga port.
src/gui_beos.*
src/os_beos.* Files for the BeOS port.
src/os_msdos.* src/os_msdos.*
src/os_dos.* Files for the MS-DOS port. src/os_dos.* Files for the MS-DOS port.
@ -24,9 +21,6 @@ src/os_mac.* Files for the Mac port.
src/os_mint.8 Files for the Atari Mint port. src/os_mint.8 Files for the Atari Mint port.
src/os_os2* Files for the OS/2 port.
src/tee/* Extra program for OS/2.
src/os_vms* Files for the VMS port. src/os_vms* Files for the VMS port.
src/os_w32* 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

@ -1,12 +1,12 @@
README_srcdos.txt for version 8.2 of Vim: Vi IMproved. README_srcdos.txt for version 8.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. See "README_dos.txt" for installation instructions for MS-Windows.
These files are in the runtime archive (vim82rt.zip). These files are in the runtime archive (vim82rt.zip).
The DOS source archive contains the files needed to compile Vim on MS-DOS or The DOS source archive contains the files needed to compile Vim on MS-Windows.
MS-Windows. It is packed for DOS systems, with CR-LF. It also includes the It is packed for MS-Windows systems, with CR-LF. It also includes the VisVim
VisVim sources. sources.
See "src/INSTALLpc.txt" for instructions on how to compile Vim on the PC. See "src/INSTALLpc.txt" for instructions on how to compile Vim on the PC.

View File

@ -1,15 +1,6 @@
README_w32s.txt for version 8.2 of Vim: Vi IMproved. README_w32s.txt for version 8.2 of Vim: Vi IMproved.
This archive contains the gvim.exe that was specifically compiled for use in This file used to explain the installation of Vim on MS-Windows 3.1 and 3.11
the Win32s subsystem in MS-Windows 3.1 and 3.11. systems. However, support for MS-Windows 3.1 and 3.11 has been removed in
patch 7.4.1364.
Also see the README_bindos.txt, README_dos.txt and README.txt files. See "README.txt" for general information about Vim.
Be careful not to overwrite the Win32s gvim.exe with the another gvim.exe when
unpacking another binary archive! Check the output of ":version":
Win32s - "MS-Windows 16/32 bit GUI version"
Win32 - "MS-Windows 32 bit GUI version"
Win32 with OLE - "MS-Windows 32 bit GUI version with OLE support"
For further information, type this inside Vim:
:help win32s

View File

@ -25,9 +25,9 @@ test_script:
- cd src/testdir - cd src/testdir
# Testing with MSVC gvim # Testing with MSVC gvim
- path C:\Python35-x64;%PATH% - path C:\Python35-x64;%PATH%
- nmake -f Make_dos.mak VIMPROG=..\gvim - nmake -f Make_dos.mak POSTSCRIPT=yes VIMPROG=..\gvim
- nmake -f Make_dos.mak clean - nmake -f Make_dos.mak clean
# Testing with MingW console version # Testing with MingW console version
- nmake -f Make_dos.mak VIMPROG=..\vim - nmake -f Make_dos.mak POSTSCRIPT=yes VIMPROG=..\vim
# vim: sw=2 sts=2 et ts=8 sr # vim: sw=2 sts=2 et ts=8 sr

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/

25
ci/if_ver-1.vim Normal file
View File

@ -0,0 +1,25 @@
" Print all interface versions for Ubuntu. Part 1.
if 1
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
echo "*** Interface versions ***\n"
echo 'Lua:'
PrintVer lua print(_VERSION)
echo 'MzScheme:'
PrintVer mzscheme (display (version))
echo 'Perl:'
PrintVer perl print $^V
echo 'Ruby:'
PrintVer ruby print RUBY_VERSION
echo 'Tcl:'
PrintVer tcl puts [info patchlevel]
echo 'Python 2:'
PrintVer python print sys.version
endif

8
ci/if_ver-2.vim Normal file
View File

@ -0,0 +1,8 @@
" Print py3 interface versions for Ubuntu. Part 2.
if 1
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
echo 'Python 3:'
PrintVer python3 print(sys.version)
endif

12
ci/if_ver-cmd.vim Normal file
View File

@ -0,0 +1,12 @@
" Provide 'PrintVer' command to print the interface versions.
func s:print_ver(lang, ...)
if has(a:lang)
exec a:lang join(a:000)
else
echo 'N/A'
endif
echo ''
endfunc
command -nargs=+ PrintVer call <SID>print_ver(<f-args>)

8
ci/load-snd-dummy.sh Normal file
View File

@ -0,0 +1,8 @@
#!/bin/bash
set -e
if ! modprobe snd-dummy; then
# snd-dummy is contained in linux-modules-extra (if exists)
apt install -y "linux-modules-extra-$(uname -r)"
modprobe snd-dummy
fi

View File

@ -32,12 +32,12 @@ To build the installable .exe:
5. Get a "diff.exe" program. If you skip this the built-in diff will always 5. Get a "diff.exe" program. If you skip this the built-in diff will always
be used (which is fine for most users). If you do have your own be used (which is fine for most users). If you do have your own
"diff.exe" put it in the "../.." directory (above the "vim81" directory, "diff.exe" put it in the "../.." directory (above the "vim82" directory,
it's the same for all Vim versions). it's the same for all Vim versions).
You can find one in previous Vim versions or in this archive: You can find one in previous Vim versions or in this archive:
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
6 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim81" 6 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim82"
directory). This is required for the terminal window. directory). This is required for the terminal window.
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have 7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have

View File

@ -39,7 +39,7 @@ Unicode true
# Uncomment the next line if you want to include VisVim extension: # Uncomment the next line if you want to include VisVim extension:
#!define HAVE_VIS_VIM #!define HAVE_VIS_VIM
# Comment the following line to create a multilanguage installer: # Comment the following line to create an English-only installer:
!define HAVE_MULTI_LANG !define HAVE_MULTI_LANG
# Uncomment the next line if you want to create a 64-bit installer. # Uncomment the next line if you want to create a 64-bit installer.
@ -176,6 +176,7 @@ Page custom SetCustom ValidateCustom
!include "lang\japanese.nsi" !include "lang\japanese.nsi"
!include "lang\simpchinese.nsi" !include "lang\simpchinese.nsi"
!include "lang\tradchinese.nsi" !include "lang\tradchinese.nsi"
!include "lang\turkish.nsi"
!endif !endif
########################################################## ##########################################################

View File

@ -66,12 +66,12 @@ LangString str_desc_start_menu ${LANG_TURKISH} \
LangString str_section_edit_with ${LANG_TURKISH} \ LangString str_section_edit_with ${LANG_TURKISH} \
"Vim ile Aç" "Vim ile Aç"
LangString str_desc_edit_with ${LANG_TURKISH} \ LangString str_desc_edit_with ${LANG_TURKISH} \
"Vim'i $\"Birlikte $\" sağ tıklama menüsüne ekler." "Vim'i $\"Birlikte $\" sağ tık menüsüne ekler."
LangString str_section_vim_rc ${LANG_TURKISH} \ LangString str_section_vim_rc ${LANG_TURKISH} \
"Bir konfigürasyon dosyası oluştur" "Bir yapılandırma dosyası oluştur"
LangString str_desc_vim_rc ${LANG_TURKISH} \ LangString str_desc_vim_rc ${LANG_TURKISH} \
"Eğer yoksa bir konfigürasyon dosyası (_vimrc) oluşturur." "Eğer yoksa bir yapılandırma dosyası (_vimrc) oluşturur."
LangString str_group_plugin ${LANG_TURKISH} \ LangString str_group_plugin ${LANG_TURKISH} \
"Eklenti dizinleri oluştur" "Eklenti dizinleri oluştur"
@ -108,7 +108,7 @@ LangString str_desc_unregister ${LANG_TURKISH} \
LangString str_unsection_exe ${LANG_TURKISH} \ LangString str_unsection_exe ${LANG_TURKISH} \
"Vim programını ve çalıştırma dosyalarını kaldır" "Vim programını ve çalıştırma dosyalarını kaldır"
LangString str_desc_rm_exe ${LANG_TURKISH} \ LangString str_desc_rm_exe ${LANG_TURKISH} \
"Tüm Vim çalıştırılabilir dosyalarını ve diğer dosyaları kaldırır." "Vim çalıştırılabilir dosyalarını ve diğer dosyaları kaldırır."
LangString str_ungroup_plugin ${LANG_TURKISH} \ LangString str_ungroup_plugin ${LANG_TURKISH} \
"Eklenti dizinlerini kaldır" "Eklenti dizinlerini kaldır"
@ -128,7 +128,7 @@ LangString str_desc_rm_plugin_vim ${LANG_TURKISH} \
LangString str_unsection_rootdir ${LANG_TURKISH} \ LangString str_unsection_rootdir ${LANG_TURKISH} \
"Vim kök dizinini kaldır" "Vim kök dizinini kaldır"
LangString str_desc_rm_rootdir ${LANG_TURKISH} \ LangString str_desc_rm_rootdir ${LANG_TURKISH} \
"Vim kök dizinini kaldırır. Bu dizin Vim konfigürasyon dosyalarını içerir!" "Vim kök dizinini kaldırır. Bu dizin Vim yapılandırma dosyalarını içerir!"
LangString str_msg_install_fail ${LANG_TURKISH} \ LangString str_msg_install_fail ${LANG_TURKISH} \
"Yükleme başarısız oldu. Yeniden deneyin." "Yükleme başarısız oldu. Yeniden deneyin."

View File

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

View File

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

View File

@ -22,7 +22,7 @@ if &cp
endif endif
if v:version < 702 if v:version < 702
echohl WarningMsg echohl WarningMsg
echo "***warning*** this version of getscript needs vim 7.2" echo "***warning*** this version of GetLatestVimScripts needs vim 7.2"
echohl Normal echohl Normal
finish finish
endif endif

View File

@ -1,8 +1,8 @@
" netrw.vim: Handles file transfer and remote directory listing across " netrw.vim: Handles file transfer and remote directory listing across
" AUTOLOAD SECTION " AUTOLOAD SECTION
" Date: Nov 29, 2019 " Date: Jan 07, 2020
" Version: 167 " Version: 168
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> " Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
@ -43,7 +43,7 @@ if exists("s:needspatches")
endfor endfor
endif endif
let g:loaded_netrw = "v167" let g:loaded_netrw = "v168"
if !exists("s:NOTE") if !exists("s:NOTE")
let s:NOTE = 0 let s:NOTE = 0
let s:WARNING = 1 let s:WARNING = 1
@ -68,7 +68,7 @@ setl cpo&vim
" Usage: netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,"some message",error-number) " Usage: netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,"some message",error-number)
" netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,["message1","message2",...],error-number) " netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,["message1","message2",...],error-number)
" (this function can optionally take a list of messages) " (this function can optionally take a list of messages)
" Mar 21, 2017 : max errnum currently is 105 " Dec 2, 2019 : max errnum currently is 106
fun! netrw#ErrorMsg(level,msg,errnum) fun! netrw#ErrorMsg(level,msg,errnum)
" call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow) " call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow)
@ -447,23 +447,9 @@ if !exists("g:netrw_localmovecmd")
let g:netrw_localmovecmd= "" let g:netrw_localmovecmd= ""
endif endif
endif endif
if v:version < 704 || (v:version == 704 && !has("patch1107")) " following serves as an example for how to insert a version&patch specific test
" 1109 provides for delete(tmpdir,"d") which is what will be used "if v:version < 704 || (v:version == 704 && !has("patch1107"))
if exists("g:netrw_local_rmdir") "endif
let g:netrw_localrmdir= g:netrw_local_rmdir
call netrw#ErrorMsg(s:NOTE,"g:netrw_local_rmdir is deprecated in favor of g:netrw_localrmdir",86)
endif
if has("win32") || has("win95") || has("win64") || has("win16")
if g:netrw_cygwin
call s:NetrwInit("g:netrw_localrmdir","rmdir")
else
let g:netrw_localrmdir = expand("$COMSPEC")
let g:netrw_localrmdiropt= " /c rmdir"
endif
else
call s:NetrwInit("g:netrw_localrmdir","rmdir")
endif
endif
call s:NetrwInit("g:netrw_liststyle" , s:THINLIST) call s:NetrwInit("g:netrw_liststyle" , s:THINLIST)
" sanity checks " sanity checks
if g:netrw_liststyle < 0 || g:netrw_liststyle >= s:MAXLIST if g:netrw_liststyle < 0 || g:netrw_liststyle >= s:MAXLIST
@ -5217,8 +5203,8 @@ fun! netrw#BrowseX(fname,remote)
if a:remote == 0 && isdirectory(a:fname) if a:remote == 0 && isdirectory(a:fname)
" if its really just a local directory, then do a "gf" instead " if its really just a local directory, then do a "gf" instead
" call Decho("remote≡0 and a:fname<".a:fname."> ".(isdirectory(a:fname)? "is a directory" : "is not a directory"),'~'.expand("<slnum>")) " call Decho("remote≡0 and a:fname<".a:fname."> ".(isdirectory(a:fname)? "is a directory" : "is not a directory"),'~'.expand("<slnum>"))
" call Decho("..appears to be a local directory; using gf instead",'~'.expand("<slnum>")) " call Decho("..appears to be a local directory; using e ".a:fname." instead",'~'.expand("<slnum>"))
norm! gf exe "e ".a:fname
" call Dret("netrw#BrowseX") " call Dret("netrw#BrowseX")
return return
elseif a:remote == 1 && a:fname !~ '^https\=:' && a:fname =~ '/$' elseif a:remote == 1 && a:fname !~ '^https\=:' && a:fname =~ '/$'
@ -7158,17 +7144,8 @@ fun! s:NetrwMarkFileCopy(islocal,...)
" call Dret("s:NetrwMarkFileCopy : lcd failure") " call Dret("s:NetrwMarkFileCopy : lcd failure")
return return
endif endif
if v:version < 704 || (v:version == 704 && !has("patch1107")) if delete(tmpdir,"d")
call s:NetrwExe("sil !".g:netrw_localrmdir.g:netrw_localrmdiropt." ".s:ShellEscape(tmpdir,1)) call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".tmpdir.">!",103)
if v:shell_error != 0
call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localrmdir<".g:netrw_localrmdir."> to something that works",80)
" " call Dret("s:NetrwMarkFileCopy : failed: sil !".g:netrw_localrmdir." ".s:ShellEscape(tmpdir,1) )
return
endif
else
if delete(tmpdir,"d")
call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".tmpdir.">!",103)
endif
endif endif
else else
if s:NetrwLcd(curdir) if s:NetrwLcd(curdir)
@ -9587,6 +9564,7 @@ fun! s:NetrwWideListing()
" call Decho("setl ma noro",'~'.expand("<slnum>")) " call Decho("setl ma noro",'~'.expand("<slnum>"))
let b:netrw_cpf= 0 let b:netrw_cpf= 0
if line("$") >= w:netrw_bannercnt if line("$") >= w:netrw_bannercnt
" determine the maximum filename size; use that to set cpf
exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif' exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif'
NetrwKeepj call histdel("/",-1) NetrwKeepj call histdel("/",-1)
else else
@ -9594,6 +9572,7 @@ fun! s:NetrwWideListing()
" call Dret("NetrwWideListing") " call Dret("NetrwWideListing")
return return
endif endif
" allow for two spaces to separate columns
let b:netrw_cpf= b:netrw_cpf + 2 let b:netrw_cpf= b:netrw_cpf + 2
" call Decho("b:netrw_cpf=max_filename_length+2=".b:netrw_cpf,'~'.expand("<slnum>")) " call Decho("b:netrw_cpf=max_filename_length+2=".b:netrw_cpf,'~'.expand("<slnum>"))
@ -9621,10 +9600,11 @@ fun! s:NetrwWideListing()
if newcolend > line("$") | let newcolend= line("$") | endif if newcolend > line("$") | let newcolend= line("$") | endif
let newcolqty= newcolend - newcolstart let newcolqty= newcolend - newcolstart
exe newcolstart exe newcolstart
" COMBAK: both of the visual-mode using lines below are problematic vis-a-vis @*
if newcolqty == 0 if newcolqty == 0
exe "sil! NetrwKeepj norm! 0\<c-v>$h\"ax".w:netrw_bannercnt."G$\"ap" exe "sil! NetrwKeepj norm! 0\<c-v>$h\"ax".w:netrw_bannercnt."G$\"ap"
else else
exe "sil! NetrwKeepj norm! 0\<c-v>".newcolqty.'j$h\"ax'.w:netrw_bannercnt.'G$\"ap' exe "sil! NetrwKeepj norm! 0\<c-v>".newcolqty.'j$h"ax'.w:netrw_bannercnt.'G$"ap'
endif endif
exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _' exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _'
exe 'sil! NetrwKeepj '.w:netrw_bannercnt exe 'sil! NetrwKeepj '.w:netrw_bannercnt
@ -11048,9 +11028,10 @@ fun! s:NetrwLocalRename(path) range
" call Dfunc("NetrwLocalRename(path<".a:path.">)") " call Dfunc("NetrwLocalRename(path<".a:path.">)")
" preparation for removing multiple files/directories " preparation for removing multiple files/directories
let ykeep = @@ let ykeep = @@
let ctr = a:firstline let ctr = a:firstline
let svpos = winsaveview() let svpos = winsaveview()
let all = 0
" call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
" rename files given by the markfilelist " rename files given by the markfilelist
@ -11078,6 +11059,23 @@ fun! s:NetrwLocalRename(path) range
let newname = substitute(oldname,subfrom,subto,'') let newname = substitute(oldname,subfrom,subto,'')
endif endif
endif endif
if !all && filereadable(newname)
call inputsave()
let response= input("File<".newname."> already exists; do you want to overwrite it? (y/all/n) ")
call inputrestore()
if response == "all"
let all= 1
elseif response != "y" && response != "yes"
" refresh the directory
" call Decho("refresh the directory listing",'~'.expand("<slnum>"))
NetrwKeepj call s:NetrwRefresh(1,s:NetrwBrowseChgDir(1,'./'))
" call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
NetrwKeepj call winrestview(svpos)
let @@= ykeep
" call Dret("NetrwLocalRename")
return
endif
endif
call rename(oldname,newname) call rename(oldname,newname)
endfor endfor
call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir) call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)
@ -11101,14 +11099,14 @@ fun! s:NetrwLocalRename(path) range
NetrwKeepj norm! 0 NetrwKeepj norm! 0
let oldname= s:ComposePath(a:path,curword) let oldname= s:ComposePath(a:path,curword)
" call Decho("oldname<".oldname.">",'~'.expand("<slnum>")) " call Decho("oldname<".oldname.">",'~'.expand("<slnum>"))
call inputsave() call inputsave()
let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e')) let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e'))
call inputrestore() call inputrestore()
call rename(oldname,newname) call rename(oldname,newname)
" call Decho("renaming <".oldname."> to <".newname.">",'~'.expand("<slnum>")) " call Decho("renaming <".oldname."> to <".newname.">",'~'.expand("<slnum>"))
let ctr= ctr + 1 let ctr= ctr + 1
endwhile endwhile
@ -11896,6 +11894,9 @@ fun! s:NetrwExe(cmd)
" call Decho("exe ".a:cmd,'~'.expand("<slnum>")) " call Decho("exe ".a:cmd,'~'.expand("<slnum>"))
exe a:cmd exe a:cmd
endif endif
if v:shell_error
call netrw#ErrorMsg(s:WARNING,"shell signalled an error",106)
endif
" call Dret("s:NetrwExe : v:shell_error=".v:shell_error) " call Dret("s:NetrwExe : v:shell_error=".v:shell_error)
endfun endfun

View File

@ -1,6 +1,6 @@
" netrwSettings.vim: makes netrw settings simpler " netrwSettings.vim: makes netrw settings simpler
" Date: Nov 09, 2016 " Date: Nov 09, 2016
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz> " Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Version: 16 " Version: 16
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1 " Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,

View File

@ -1,13 +1,13 @@
" tar.vim: Handles browsing tarfiles " tar.vim: Handles browsing tarfiles
" AUTOLOAD PORTION " AUTOLOAD PORTION
" Date: Apr 17, 2013 " Date: Jan 07, 2020
" Version: 29 " Version: 32
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> " Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" License: Vim License (see vim's :help license) " License: Vim License (see vim's :help license)
" "
" Contains many ideas from Michael Toren's <tar.vim> " Contains many ideas from Michael Toren's <tar.vim>
" "
" Copyright: Copyright (C) 2005-2011 Charles E. Campbell {{{1 " Copyright: Copyright (C) 2005-2017 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free, " notice is copied with it. Like anything else that's free,
@ -22,7 +22,7 @@
if &cp || exists("g:loaded_tar") if &cp || exists("g:loaded_tar")
finish finish
endif endif
let g:loaded_tar= "v29" let g:loaded_tar= "v32"
if v:version < 702 if v:version < 702
echohl WarningMsg echohl WarningMsg
echo "***warning*** this version of tar needs vim 7.2" echo "***warning*** this version of tar needs vim 7.2"
@ -48,6 +48,9 @@ endif
if !exists("g:tar_writeoptions") if !exists("g:tar_writeoptions")
let g:tar_writeoptions= "uf" let g:tar_writeoptions= "uf"
endif endif
if !exists("g:tar_delfile")
let g:tar_delfile="--delete -f"
endif
if !exists("g:netrw_cygwin") if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$' if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
@ -109,6 +112,7 @@ fun! tar#Browse(tarfile)
" sanity checks " sanity checks
if !executable(g:tar_cmd) if !executable(g:tar_cmd)
redraw! redraw!
" call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
let &report= repkeep let &report= repkeep
" call Dret("tar#Browse") " call Dret("tar#Browse")
@ -119,6 +123,7 @@ fun! tar#Browse(tarfile)
if a:tarfile !~# '^\a\+://' if a:tarfile !~# '^\a\+://'
" if it's an url, don't complain, let url-handlers such as vim do its thing " if it's an url, don't complain, let url-handlers such as vim do its thing
redraw! redraw!
" call Decho("***error*** (tar#Browse) File not readable<".a:tarfile.">")
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
endif endif
let &report= repkeep let &report= repkeep
@ -152,12 +157,27 @@ fun! tar#Browse(tarfile)
" assuming cygwin " assuming cygwin
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e') let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif endif
let curlast= line("$") let curlast= line("$")
if tarfile =~# '\.\(gz\|tgz\)$'
let gzip_command = s:get_gzip_command(tarfile) if tarfile =~# '\.\(gz\)$'
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") " call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! " . gzip_command . " -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$'
if has("unix") && executable("file")
let filekind= system("file ".shellescape(tarfile,1)) =~ "bzip2"
else
let filekind= ""
endif
if filekind =~ "bzip2"
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif filekind =~ "XZ"
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
else
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
endif
elseif tarfile =~# '\.lrp' elseif tarfile =~# '\.lrp'
" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ") " call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - " exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
@ -184,7 +204,7 @@ fun! tar#Browse(tarfile)
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">") " call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
return return
endif endif
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)') if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~# '\c\%(warning\|error\|inappropriate\|unrecognized\)')
redraw! redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
keepj sil! %d keepj sil! %d
@ -197,8 +217,13 @@ fun! tar#Browse(tarfile)
return return
endif endif
" set up maps supported for tar
setlocal noma nomod ro setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr> noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
noremap <silent> <buffer> x :call tar#Extract()<cr>
if &mouse != ""
noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>TarBrowseSelect()<cr>
endif
let &report= repkeep let &report= repkeep
" call Dret("tar#Browse : b:tarfile<".b:tarfile.">") " call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
@ -235,7 +260,8 @@ fun! s:TarBrowseSelect()
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e') let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif endif
new " open a new window (tar#Read will read a file into it)
noswapfile new
if !exists("g:tar_nomax") || g:tar_nomax == 0 if !exists("g:tar_nomax") || g:tar_nomax == 0
wincmd _ wincmd _
endif endif
@ -267,7 +293,7 @@ fun! tar#Read(fname,mode)
if fname =~ '\.bz2$' && executable("bzcat") if fname =~ '\.bz2$' && executable("bzcat")
let decmp= "|bzcat" let decmp= "|bzcat"
let doro = 1 let doro = 1
elseif fname =~ '\.gz$' && executable("zcat") elseif fname =~ '\.t\=gz$' && executable("zcat")
let decmp= "|zcat" let decmp= "|zcat"
let doro = 1 let doro = 1
elseif fname =~ '\.lzma$' && executable("lzcat") elseif fname =~ '\.lzma$' && executable("lzcat")
@ -291,20 +317,29 @@ fun! tar#Read(fname,mode)
endif endif
if tarfile =~# '\.bz2$' if tarfile =~# '\.bz2$'
" call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(gz\|tgz\)$' elseif tarfile =~# '\.\(gz\)$'
let gzip_command = s:get_gzip_command(tarfile) exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
" call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
exe "sil! r! " . gzip_command . " -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp elseif tarfile =~# '\(\.tgz\|\.tbz\|\.txz\)'
if has("unix") && executable("file")
let filekind= system("file ".shellescape(tarfile,1))
else
let filekind= ""
endif
if filekind =~ "bzip2"
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif filekind =~ "XZ"
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
else
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
endif
elseif tarfile =~# '\.lrp$' elseif tarfile =~# '\.lrp$'
" call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.lzma$' elseif tarfile =~# '\.lzma$'
" call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(xz\|txz\)$' elseif tarfile =~# '\.\(xz\|txz\)$'
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
else else
if tarfile =~ '^\s*-' if tarfile =~ '^\s*-'
@ -348,13 +383,14 @@ fun! tar#Write(fname)
" sanity checks " sanity checks
if !executable(g:tar_cmd) if !executable(g:tar_cmd)
redraw! redraw!
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' " call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
let &report= repkeep let &report= repkeep
" call Dret("tar#Write") " call Dret("tar#Write")
return return
endif endif
if !exists("*mkdir") if !exists("*mkdir")
redraw! redraw!
" call Decho("***error*** (tar#Write) sorry, mkdir() doesn't work on your system")
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
let &report= repkeep let &report= repkeep
" call Dret("tar#Write") " call Dret("tar#Write")
@ -375,6 +411,7 @@ fun! tar#Write(fname)
exe "cd ".fnameescape(tmpdir) exe "cd ".fnameescape(tmpdir)
catch /^Vim\%((\a\+)\)\=:E344/ catch /^Vim\%((\a\+)\)\=:E344/
redraw! redraw!
" call Decho("***error*** (tar#Write) cannot cd to temporary directory")
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
let &report= repkeep let &report= repkeep
" call Dret("tar#Write") " call Dret("tar#Write")
@ -393,8 +430,6 @@ fun! tar#Write(fname)
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','') let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','') let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
let gzip_command = s:get_gzip_command(tarfile)
" handle compressed archives " handle compressed archives
if tarfile =~# '\.bz2' if tarfile =~# '\.bz2'
call system("bzip2 -d -- ".shellescape(tarfile,0)) call system("bzip2 -d -- ".shellescape(tarfile,0))
@ -402,12 +437,12 @@ fun! tar#Write(fname)
let compress= "bzip2 -- ".shellescape(tarfile,0) let compress= "bzip2 -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">") " call Decho("compress<".compress.">")
elseif tarfile =~# '\.gz' elseif tarfile =~# '\.gz'
call system(gzip_command . " -d -- ".shellescape(tarfile,0)) call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.gz','','e') let tarfile = substitute(tarfile,'\.gz','','e')
let compress= "gzip -- ".shellescape(tarfile,0) let compress= "gzip -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">") " call Decho("compress<".compress.">")
elseif tarfile =~# '\.tgz' elseif tarfile =~# '\.tgz'
call system(gzip_command . " -d -- ".shellescape(tarfile,0)) call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.tgz','.tar','e') let tarfile = substitute(tarfile,'\.tgz','.tar','e')
let compress= "gzip -- ".shellescape(tarfile,0) let compress= "gzip -- ".shellescape(tarfile,0)
let tgz = 1 let tgz = 1
@ -427,6 +462,7 @@ fun! tar#Write(fname)
if v:shell_error != 0 if v:shell_error != 0
redraw! redraw!
" call Decho("***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname)
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
else else
@ -459,10 +495,11 @@ fun! tar#Write(fname)
endif endif
" delete old file from tarfile " delete old file from tarfile
" call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")") " call Decho("system(".g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0)) call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0 if v:shell_error != 0
redraw! redraw!
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
else else
@ -471,6 +508,7 @@ fun! tar#Write(fname)
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0)) call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0 if v:shell_error != 0
redraw! redraw!
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
elseif exists("compress") elseif exists("compress")
" call Decho("call system(".compress.")") " call Decho("call system(".compress.")")
@ -486,11 +524,11 @@ fun! tar#Write(fname)
if s:tblfile_{winnr()} =~ '^\a\+://' if s:tblfile_{winnr()} =~ '^\a\+://'
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">") " call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
let tblfile= s:tblfile_{winnr()} let tblfile= s:tblfile_{winnr()}
1split|enew 1split|noswapfile enew
let binkeep= &l:binary let binkeep= &l:binary
let eikeep = &ei let eikeep = &ei
set binary ei=all set binary ei=all
exe "e! ".fnameescape(tarfile) exe "noswapfile e! ".fnameescape(tarfile)
call netrw#NetWrite(tblfile) call netrw#NetWrite(tblfile)
let &ei = eikeep let &ei = eikeep
let &l:binary = binkeep let &l:binary = binkeep
@ -524,7 +562,7 @@ fun! tar#Diff(userfname,fname)
" sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes) " sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes)
diffthis diffthis
wincmd v wincmd v
exe "e ".fnameescape(fname) exe "noswapfile e ".fnameescape(fname)
diffthis diffthis
else else
redraw! redraw!
@ -533,6 +571,119 @@ fun! tar#Diff(userfname,fname)
" call Dret("tar#Diff") " call Dret("tar#Diff")
endfun endfun
" ---------------------------------------------------------------------
" tar#Extract: extract a file from a (possibly compressed) tar archive {{{2
fun! tar#Extract()
" call Dfunc("tar#Extract()")
let repkeep= &report
set report=10
let fname= getline(".")
" call Decho("fname<".fname.">")
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
redraw!
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
return
endif
" sanity check
if fname =~ '^"'
let &report= repkeep
" call Dret("TarBrowseSelect")
return
endif
let tarball = expand("%")
" call Decho("tarball<".tarball.">")
let tarbase = substitute(tarball,'\..*$','','')
" call Decho("tarbase<".tarbase.">")
let extractcmd= netrw#WinPath(g:tar_extractcmd)
if filereadable(tarbase.".tar")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tgz")
let extractcmd= substitute(extractcmd,"-","-z","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tgz ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd."t ".tarbase.".tgz ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tar.gz")
let extractcmd= substitute(extractcmd,"-","-z","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tbz")
let extractcmd= substitute(extractcmd,"-","-j","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tar.bz2")
let extractcmd= substitute(extractcmd,"-","-j","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".txz")
let extractcmd= substitute(extractcmd,"-","-J","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tar.xz")
let extractcmd= substitute(extractcmd,"-","-J","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
endif
" restore option
let &report= repkeep
" call Dret("tar#Extract")
endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" s:Rmdir: {{{2 " s:Rmdir: {{{2
fun! s:Rmdir(fname) fun! s:Rmdir(fname)
@ -587,10 +738,7 @@ fun! tar#Vimuntar(...)
" if necessary, decompress the tarball; then, extract it " if necessary, decompress the tarball; then, extract it
if tartail =~ '\.tgz' if tartail =~ '\.tgz'
let gzip_command = s:get_gzip_command(tarfile) if executable("gunzip")
if executable(gzip_command)
silent exe "!" . gzip_command . " -d ".shellescape(tartail)
elseif executable("gunzip")
silent exe "!gunzip ".shellescape(tartail) silent exe "!gunzip ".shellescape(tartail)
elseif executable("gzip") elseif executable("gzip")
silent exe "!gzip -d ".shellescape(tartail) silent exe "!gzip -d ".shellescape(tartail)
@ -628,28 +776,6 @@ fun! tar#Vimuntar(...)
" call Dret("tar#Vimuntar") " call Dret("tar#Vimuntar")
endfun endfun
func s:get_gzip_command(file)
" Try using the "file" command to get the actual compression type, since
" there is no standard way for the naming: ".tgz", ".tbz", ".txz", etc.
" If the "file" command doesn't work fall back to just using the file name.
if a:file =~# 'z$'
let filetype = system('file ' . a:file)
if filetype =~ 'bzip2 compressed' && executable('bzip2')
return 'bzip2'
endif
if filetype =~ 'XZ compressed' && executable('xz')
return 'xz'
endif
endif
if a:file =~# 'bz2$'
return 'bzip2'
endif
if a:file =~# 'xz$'
return 'xz'
endif
return 'gzip'
endfunc
" ===================================================================== " =====================================================================
" Modelines And Restoration: {{{1 " Modelines And Restoration: {{{1
let &cpo= s:keepcpo let &cpo= s:keepcpo

View File

@ -1,6 +1,6 @@
" Vim plugin for formatting XML " Vim plugin for formatting XML
" Last Change: 2019 Oct 24 " Last Change: 2020 Jan 06
" Version: 0.2 " Version: 0.3
" Author: Christian Brabandt <cb@256bit.org> " Author: Christian Brabandt <cb@256bit.org>
" Repository: https://github.com/chrisbra/vim-xml-ftplugin " Repository: https://github.com/chrisbra/vim-xml-ftplugin
" License: VIM License " License: VIM License
@ -15,7 +15,7 @@ let s:keepcpo = &cpo
set cpo&vim set cpo&vim
" Main function: Format the input {{{1 " Main function: Format the input {{{1
func! xmlformat#Format() func! xmlformat#Format() abort
" only allow reformatting through the gq command " only allow reformatting through the gq command
" (e.g. Vim is in normal mode) " (e.g. Vim is in normal mode)
if mode() != 'n' if mode() != 'n'
@ -40,14 +40,16 @@ func! xmlformat#Format()
continue continue
elseif line !~# '<[/]\?[^>]*>' elseif line !~# '<[/]\?[^>]*>'
let nextmatch = match(list, '<[/]\?[^>]*>', current) let nextmatch = match(list, '<[/]\?[^>]*>', current)
let line .= join(list[(current + 1):(nextmatch-1)], "\n") if nextmatch > -1
call remove(list, current+1, nextmatch-1) let line .= ' '. join(list[(current + 1):(nextmatch-1)], " ")
call remove(list, current+1, nextmatch-1)
endif
endif endif
" split on `>`, but don't split on very first opening < " split on `>`, but don't split on very first opening <
" this means, items can be like ['<tag>', 'tag content</tag>'] " this means, items can be like ['<tag>', 'tag content</tag>']
for item in split(line, '.\@<=[>]\zs') for item in split(line, '.\@<=[>]\zs')
if s:EndTag(item) if s:EndTag(item)
let s:indent = s:DecreaseIndent() call s:DecreaseIndent()
call add(result, s:Indent(item)) call add(result, s:Indent(item))
elseif s:EmptyTag(lastitem) elseif s:EmptyTag(lastitem)
call add(result, s:Indent(item)) call add(result, s:Indent(item))
@ -59,13 +61,23 @@ func! xmlformat#Format()
" Simply split on '<', if there is one, " Simply split on '<', if there is one,
" but reformat according to &textwidth " but reformat according to &textwidth
let t=split(item, '.<\@=\zs') let t=split(item, '.<\@=\zs')
" if the content fits well within a single line, add it there
" so that the output looks like this:
"
" <foobar>1</foobar>
if s:TagContent(lastitem) is# s:TagContent(t[1]) && strlen(result[-1]) + strlen(item) <= s:Textwidth()
let result[-1] .= item
let lastitem = t[1]
continue
endif
" t should only contain 2 items, but just be safe here " t should only contain 2 items, but just be safe here
if s:IsTag(lastitem) if s:IsTag(lastitem)
let s:indent+=1 let s:indent+=1
endif endif
let result+=s:FormatContent([t[0]]) let result+=s:FormatContent([t[0]])
if s:EndTag(t[1]) if s:EndTag(t[1])
let s:indent = s:DecreaseIndent() call s:DecreaseIndent()
endif endif
"for y in t[1:] "for y in t[1:]
let result+=s:FormatContent(t[1:]) let result+=s:FormatContent(t[1:])
@ -97,15 +109,15 @@ func! xmlformat#Format()
return 0 return 0
endfunc endfunc
" Check if given tag is XML Declaration header {{{1 " Check if given tag is XML Declaration header {{{1
func! s:IsXMLDecl(tag) func! s:IsXMLDecl(tag) abort
return a:tag =~? '^\s*<?xml\s\?\%(version="[^"]*"\)\?\s\?\%(encoding="[^"]*"\)\? ?>\s*$' return a:tag =~? '^\s*<?xml\s\?\%(version="[^"]*"\)\?\s\?\%(encoding="[^"]*"\)\? ?>\s*$'
endfunc endfunc
" Return tag indented by current level {{{1 " Return tag indented by current level {{{1
func! s:Indent(item) func! s:Indent(item) abort
return repeat(' ', shiftwidth()*s:indent). s:Trim(a:item) return repeat(' ', shiftwidth()*s:indent). s:Trim(a:item)
endfu endfu
" Return item trimmed from leading whitespace {{{1 " Return item trimmed from leading whitespace {{{1
func! s:Trim(item) func! s:Trim(item) abort
if exists('*trim') if exists('*trim')
return trim(a:item) return trim(a:item)
else else
@ -113,44 +125,53 @@ func! s:Trim(item)
endif endif
endfunc endfunc
" Check if tag is a new opening tag <tag> {{{1 " Check if tag is a new opening tag <tag> {{{1
func! s:StartTag(tag) func! s:StartTag(tag) abort
let is_comment = s:IsComment(a:tag) let is_comment = s:IsComment(a:tag)
return a:tag =~? '^\s*<[^/?]' && !is_comment return a:tag =~? '^\s*<[^/?]' && !is_comment
endfunc endfunc
" Check if tag is a Comment start {{{1 " Check if tag is a Comment start {{{1
func! s:IsComment(tag) func! s:IsComment(tag) abort
return a:tag =~? '<!--' return a:tag =~? '<!--'
endfunc endfunc
" Remove one level of indentation {{{1 " Remove one level of indentation {{{1
func! s:DecreaseIndent() func! s:DecreaseIndent() abort
return (s:indent > 0 ? s:indent - 1 : 0) let s:indent = (s:indent > 0 ? s:indent - 1 : 0)
endfunc endfunc
" Check if tag is a closing tag </tag> {{{1 " Check if tag is a closing tag </tag> {{{1
func! s:EndTag(tag) func! s:EndTag(tag) abort
return a:tag =~? '^\s*</' return a:tag =~? '^\s*</'
endfunc endfunc
" Check that the tag is actually a tag and not {{{1 " Check that the tag is actually a tag and not {{{1
" something like "foobar</foobar>" " something like "foobar</foobar>"
func! s:IsTag(tag) func! s:IsTag(tag) abort
return s:Trim(a:tag)[0] == '<' return s:Trim(a:tag)[0] == '<'
endfunc endfunc
" Check if tag is empty <tag/> {{{1 " Check if tag is empty <tag/> {{{1
func! s:EmptyTag(tag) func! s:EmptyTag(tag) abort
return a:tag =~ '/>\s*$' return a:tag =~ '/>\s*$'
endfunc endfunc
func! s:TagContent(tag) abort "{{{1
" Return content of a tag
return substitute(a:tag, '^\s*<[/]\?\([^>]*\)>\s*$', '\1', '')
endfunc
func! s:Textwidth() abort "{{{1
" return textwidth (or 80 if not set)
return &textwidth == 0 ? 80 : &textwidth
endfunc
" Format input line according to textwidth {{{1 " Format input line according to textwidth {{{1
func! s:FormatContent(list) func! s:FormatContent(list) abort
let result=[] let result=[]
let limit = 80 let limit = s:Textwidth()
if &textwidth > 0
let limit = &textwidth
endif
let column=0 let column=0
let idx = -1 let idx = -1
let add_indent = 0 let add_indent = 0
let cnt = 0 let cnt = 0
for item in a:list for item in a:list
for word in split(item, '\s\+\S\+\zs') for word in split(item, '\s\+\S\+\zs')
if match(word, '^\s\+$') > -1
" skip empty words
continue
endif
let column += strdisplaywidth(word, column) let column += strdisplaywidth(word, column)
if match(word, "^\\s*\n\\+\\s*$") > -1 if match(word, "^\\s*\n\\+\\s*$") > -1
call add(result, '') call add(result, '')

View File

@ -1,10 +1,10 @@
" zip.vim: Handles browsing zipfiles " zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION " AUTOLOAD PORTION
" Date: Sep 13, 2016 " Date: Jan 07, 2020
" Version: 28 " Version: 30
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> " Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" License: Vim License (see vim's :help license) " License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1 " Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free, " notice is copied with it. Like anything else that's free,
@ -20,7 +20,7 @@
if &cp || exists("g:loaded_zip") if &cp || exists("g:loaded_zip")
finish finish
endif endif
let g:loaded_zip= "v28" let g:loaded_zip= "v30"
if v:version < 702 if v:version < 702
echohl WarningMsg echohl WarningMsg
echo "***warning*** this version of zip needs vim 7.2 or later" echo "***warning*** this version of zip needs vim 7.2 or later"
@ -68,7 +68,7 @@ fun! zip#Browse(zipfile)
" sanity check: ensure that the zipfile has "PK" as its first two letters " sanity check: ensure that the zipfile has "PK" as its first two letters
" (zipped files have a leading PK as a "magic cookie") " (zipped files have a leading PK as a "magic cookie")
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK' if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
exe "noautocmd e ".fnameescape(a:zipfile) exe "noswapfile noautocmd noswapfile e ".fnameescape(a:zipfile)
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">") " call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
return return
" else " Decho " else " Decho
@ -141,8 +141,11 @@ fun! zip#Browse(zipfile)
" Maps associated with zip plugin " Maps associated with zip plugin
setlocal noma nomod ro setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr> noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
noremap <silent> <buffer> x :call zip#Extract()<cr> noremap <silent> <buffer> x :call zip#Extract()<cr>
if &mouse != ""
noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>ZipBrowseSelect()<cr>
endif
let &report= repkeep let &report= repkeep
" call Dret("zip#Browse") " call Dret("zip#Browse")
@ -175,17 +178,17 @@ fun! s:ZipBrowseSelect()
" get zipfile to the new-window " get zipfile to the new-window
let zipfile = b:zipfile let zipfile = b:zipfile
let curfile= expand("%") let curfile = expand("%")
" call Decho("zipfile<".zipfile.">") " call Decho("zipfile<".zipfile.">")
" call Decho("curfile<".curfile.">") " call Decho("curfile<".curfile.">")
new noswapfile new
if !exists("g:zip_nomax") || g:zip_nomax == 0 if !exists("g:zip_nomax") || g:zip_nomax == 0
wincmd _ wincmd _
endif endif
let s:zipfile_{winnr()}= curfile let s:zipfile_{winnr()}= curfile
" call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname)) " call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
exe "e ".fnameescape("zipfile:".zipfile.'::'.fname) exe "noswapfile e ".fnameescape("zipfile:".zipfile.'::'.fname)
filetype detect filetype detect
let &report= repkeep let &report= repkeep
@ -339,7 +342,7 @@ fun! zip#Write(fname)
let binkeep= &binary let binkeep= &binary
let eikeep = &ei let eikeep = &ei
set binary ei=all set binary ei=all
exe "e! ".fnameescape(zipfile) exe "noswapfile e! ".fnameescape(zipfile)
call netrw#NetWrite(netzipfile) call netrw#NetWrite(netzipfile)
let &ei = eikeep let &ei = eikeep
let &binary = binkeep let &binary = binkeep

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

@ -64,6 +64,7 @@ DOCS = \
os_amiga.txt \ os_amiga.txt \
os_beos.txt \ os_beos.txt \
os_dos.txt \ os_dos.txt \
os_haiku.txt \
os_mac.txt \ os_mac.txt \
os_mint.txt \ os_mint.txt \
os_msdos.txt \ os_msdos.txt \
@ -140,6 +141,7 @@ DOCS = \
usr_43.txt \ usr_43.txt \
usr_44.txt \ usr_44.txt \
usr_45.txt \ usr_45.txt \
usr_46.txt \
usr_90.txt \ usr_90.txt \
usr_toc.txt \ usr_toc.txt \
various.txt \ various.txt \
@ -149,6 +151,7 @@ DOCS = \
version7.txt \ version7.txt \
version8.txt \ version8.txt \
vi_diff.txt \ vi_diff.txt \
vim9.txt \
visual.txt \ visual.txt \
windows.txt \ windows.txt \
workshop.txt workshop.txt
@ -203,6 +206,7 @@ HTMLS = \
os_amiga.html \ os_amiga.html \
os_beos.html \ os_beos.html \
os_dos.html \ os_dos.html \
os_haiku.html \
os_mac.html \ os_mac.html \
os_mint.html \ os_mint.html \
os_msdos.html \ os_msdos.html \
@ -279,6 +283,7 @@ HTMLS = \
usr_43.html \ usr_43.html \
usr_44.html \ usr_44.html \
usr_45.html \ usr_45.html \
usr_46.html \
usr_90.html \ usr_90.html \
usr_toc.html \ usr_toc.html \
various.html \ various.html \
@ -289,6 +294,7 @@ HTMLS = \
version8.html \ version8.html \
vi_diff.html \ vi_diff.html \
vimindex.html \ vimindex.html \
vim9.html \
visual.html \ visual.html \
windows.html \ windows.html \
workshop.html workshop.html
@ -313,7 +319,11 @@ CONVERTED = \
evim-ru.UTF-8.1 \ evim-ru.UTF-8.1 \
vimdiff-ru.UTF-8.1 \ vimdiff-ru.UTF-8.1 \
vimtutor-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:
.SUFFIXES: .c .o .txt .html .SUFFIXES: .c .o .txt .html
@ -323,10 +333,7 @@ all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED)
# Use Vim to generate the tags file. Can only be used when Vim has been # Use Vim to generate the tags file. Can only be used when Vim has been
# compiled and installed. Supports multiple languages. # compiled and installed. Supports multiple languages.
vimtags: $(DOCS) vimtags: $(DOCS)
@if command -v $(VIMEXE); then \ @$(VIMEXE) --clean -esX -V1 -u doctags.vim
$(VIMEXE) --clean -eX -u doctags.vim >/dev/null && \
echo "help tags updated"; \
else echo "vim executable $(VIMEXE) not found; help tags not updated"; fi
# Use "doctags" to generate the tags file. Only works for English! # Use "doctags" to generate the tags file. Only works for English!
tags: doctags $(DOCS) tags: doctags $(DOCS)
@ -423,6 +430,9 @@ os_beos.txt:
os_dos.txt: os_dos.txt:
touch os_dos.txt touch os_dos.txt
os_haiku.txt:
touch os_haiku.txt
os_mac.txt: os_mac.txt:
touch os_mac.txt touch os_mac.txt
@ -505,3 +515,15 @@ vimtutor-ru.UTF-8.1: vimtutor-ru.1
xxd-ru.UTF-8.1: xxd-ru.1 xxd-ru.UTF-8.1: xxd-ru.1
iconv -f KOI8-R -t utf-8 $< >$@ 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

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.2. Last change: 2019 Dec 11 *autocmd.txt* For Vim version 8.2. Last change: 2020 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -374,9 +374,13 @@ Name triggered by ~
|MenuPopup| just before showing the popup menu |MenuPopup| just before showing the popup menu
|CompleteChanged| after Insert mode completion menu changed |CompleteChanged| after Insert mode completion menu changed
|CompleteDone| after Insert mode completion is done |CompleteDonePre| after Insert mode completion is done, before clearing
info
|CompleteDone| after Insert mode completion is done, after clearing
info
|User| to be used in combination with ":doautocmd" |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* The alphabetical list of autocommand events: *autocmd-events-abc*
@ -589,8 +593,8 @@ ColorSchemePre Before loading a color scheme. |:colorscheme|
CompleteChanged *CompleteChanged* CompleteChanged *CompleteChanged*
After each time the Insert mode completion After each time the Insert mode completion
menu changed. Not fired on popup menu hide, menu changed. Not fired on popup menu hide,
use |CompleteDone| for that. Never triggered use |CompleteDonePre| or |CompleteDone| for
recursively. that. Never triggered recursively.
Sets these |v:event| keys: Sets these |v:event| keys:
completed_item See |complete-items|. completed_item See |complete-items|.
@ -606,10 +610,22 @@ CompleteChanged *CompleteChanged*
The size and position of the popup are also The size and position of the popup are also
available by calling |pum_getpos()|. available by calling |pum_getpos()|.
*CompleteDonePre*
CompleteDonePre After Insert mode completion is done. Either
when something was completed or abandoning
completion. |ins-completion|
|complete_info()| can be used, the info is
cleared after triggering CompleteDonePre.
The |v:completed_item| variable contains
information about the completed item.
*CompleteDone* *CompleteDone*
CompleteDone After Insert mode completion is done. Either CompleteDone After Insert mode completion is done. Either
when something was completed or abandoning when something was completed or abandoning
completion. |ins-completion| completion. |ins-completion|
|complete_info()| cannot be used, the info is
cleared before triggering CompleteDone. Use
CompleteDonePre if you need it.
The |v:completed_item| variable contains The |v:completed_item| variable contains
information about the completed item. information about the completed item.
@ -639,7 +655,7 @@ CursorHold When the user doesn't press a key for the time
Hint: to force an update of the status lines Hint: to force an update of the status lines
use: > use: >
:let &ro = &ro :let &ro = &ro
< {only on Amiga, Unix, Win32, MSDOS and all GUI < {only on Amiga, Unix, Win32 and all GUI
versions} versions}
*CursorHoldI* *CursorHoldI*
CursorHoldI Just like CursorHold, but in Insert mode. CursorHoldI Just like CursorHold, but in Insert mode.
@ -1138,11 +1154,14 @@ TextYankPost After text has been yanked or deleted in the
register. register.
regtype Type of the register, see regtype Type of the register, see
|getregtype()|. |getregtype()|.
visual True if the operation is
performed on a |Visual| area.
Not triggered when |quote_| is used nor when Not triggered when |quote_| is used nor when
called recursively. called recursively.
It is not allowed to change the buffer text, It is not allowed to change the buffer text,
see |textlock|. see |textlock|.
{only when compiled with the +eval feature} {only when compiled with the +eval feature}
*User* *User*
User Never executed automatically. To be used for User Never executed automatically. To be used for
autocommands that are only executed with autocommands that are only executed with
@ -1151,6 +1170,15 @@ User Never executed automatically. To be used for
used while there are no matching autocommands, used while there are no matching autocommands,
you will get an error. If you don't want you will get an error. If you don't want
that, define a dummy autocommand yourself. 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*
UserGettingBored When the user presses the same key 42 times. UserGettingBored When the user presses the same key 42 times.
Just kidding! :-) Just kidding! :-)
@ -1289,8 +1317,8 @@ The pattern is interpreted like mostly used in file names:
[^ch] match any character but 'c' and 'h' [^ch] match any character but 'c' and 'h'
Note that for all systems the '/' character is used for path separator (even Note that for all systems the '/' character is used for path separator (even
MS-DOS and OS/2). This was done because the backslash is difficult to use for MS-Windows). This was done because the backslash is difficult to use in a
in a pattern and to make the autocommands portable across different systems. pattern and to make the autocommands portable across different systems.
It is possible to use |pattern| items, but they may not work as expected, It is possible to use |pattern| items, but they may not work as expected,
because of the translation done for the above. because of the translation done for the above.

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 8.2. Last change: 2019 Sep 28 *change.txt* For Vim version 8.2. Last change: 2020 Jun 04
VIM REFERENCE MANUAL by Bram Moolenaar 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|). start insert (for {Visual} see |Visual-mode|).
*v_r* *v_r*
{Visual}["x]r{char} Replace all selected characters by {char}. {Visual}r{char} Replace all selected characters by {char}.
*v_C* *v_C*
{Visual}["x]C Delete the highlighted lines [into register x] and {Visual}["x]C Delete the highlighted lines [into register x] and
@ -611,7 +611,7 @@ attack or other people reading your file). When Vim exits the directory and
all files in it are deleted. When Vim has the setuid bit set this may cause all files in it are deleted. When Vim has the setuid bit set this may cause
problems, the temp file is owned by the setuid user but the filter command problems, the temp file is owned by the setuid user but the filter command
probably runs as the original user. probably runs as the original user.
On MS-DOS and OS/2 the first of these directories that works is used: $TMP, On MS-Windows the first of these directories that works is used: $TMP,
$TEMP, c:\TMP, c:\TEMP. $TEMP, c:\TMP, c:\TEMP.
For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME. For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
For MS-Windows the GetTempFileName() system function is used. For MS-Windows the GetTempFileName() system function is used.
@ -636,6 +636,8 @@ For other systems the tmpnam() library function is used.
|cmdline-ranges|. |cmdline-ranges|.
See |:s_flags| for [flags]. See |:s_flags| for [flags].
The delimiter doesn't need to be /, see
|pattern-delimiter|.
:[range]s[ubstitute] [flags] [count] :[range]s[ubstitute] [flags] [count]
:[range]&[&][flags] [count] *:&* :[range]&[&][flags] [count] *:&*
@ -775,7 +777,7 @@ This deletes "TESTING" from all lines, but only one per line.
For compatibility with Vi these two exceptions are allowed: For compatibility with Vi these two exceptions are allowed:
"\/{string}/" and "\?{string}?" do the same as "//{string}/r". "\/{string}/" and "\?{string}?" do the same as "//{string}/r".
"\&{string}&" does the same as "//{string}/". "\&{string}&" does the same as "//{string}/".
*E146* *pattern-delimiter* *E146*
Instead of the '/' which surrounds the pattern and replacement string, you Instead of the '/' which surrounds the pattern and replacement string, you
can use any other single-byte character, but not an alphanumeric character, can use any other single-byte character, but not an alphanumeric character,
'\', '"' or '|'. This is useful if you want to include a '/' in the search '\', '"' or '|'. This is useful if you want to include a '/' in the search
@ -994,9 +996,9 @@ inside of strings can change! Also see 'softtabstop' option. >
5. Copying and moving text *copy-move* 5. Copying and moving text *copy-move*
*quote* *quote*
"{a-zA-Z0-9.%#:-"} Use register {a-zA-Z0-9.%#:-"} for next delete, yank "{register} Use {register} for next delete, yank or put. Use
or put (use uppercase character to append with an uppercase character to append with delete and yank.
delete and yank) ({.%#:} only work with put). Registers ".", "%", "#" and ":" only work with put.
*:reg* *:registers* *:reg* *:registers*
:reg[isters] Display the type and contents of all numbered and :reg[isters] Display the type and contents of all numbered and
@ -1456,7 +1458,7 @@ text. Put it in your autoload directory, e.g. ~/.vim/autoload/format.vim: >
func! format#Format() func! format#Format()
" only reformat on explicit gq command " only reformat on explicit gq command
if mode() != 'n' if mode() != 'n'
" fall back to Vims internal reformatting " fall back to Vim's internal reformatting
return 1 return 1
endif endif
let lines = getline(v:lnum, v:lnum + v:count - 1) let lines = getline(v:lnum, v:lnum + v:count - 1)
@ -1686,6 +1688,10 @@ B When joining lines, don't insert a space between two multi-byte
characters. Overruled by the 'M' flag. characters. Overruled by the 'M' flag.
1 Don't break a line after a one-letter word. It's broken before it 1 Don't break a line after a one-letter word. It's broken before it
instead (if possible). 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 j Where it makes sense, remove a comment leader when joining lines. For
example, joining: example, joining:
int i; // the index ~ int i; // the index ~

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 Jun 01
VIM REFERENCE MANUAL by Bram Moolenaar 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". {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* {options} is a dictionary with optional entries: *channel-open-options*
"mode" can be: *channel-mode* "mode" can be: *channel-mode*
@ -621,6 +624,9 @@ ch_open({address} [, {options}]) *ch_open()*
{address} has the form "hostname:port", e.g., {address} has the form "hostname:port", e.g.,
"localhost:8765". "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|. If {options} is given it must be a |Dictionary|.
See |channel-open-options|. 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 - 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. the job and the job output is directly displayed in the window.
See |terminal-window|. See |terminal-window|.
- Use a prompt window. This works well when entering a line for the job in Vim - Use a window with a prompt buffer. This works well when entering a line for
while displaying (possibly filtered) output from the job. the job in Vim while displaying (possibly filtered) output from the job.
A prompt buffer is created by setting 'buftype' to "prompt". You would A prompt buffer is created by setting 'buftype' to "prompt". You would
normally only do that in a newly created buffer. normally only do that in a newly created buffer.
@ -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 the cursor to the last line. "A" will move to the end of the line, "I" to the
start of the line. 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: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.2. Last change: 2019 Nov 26 *cmdline.txt* For Vim version 8.2. Last change: 2020 Apr 23
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -75,7 +75,7 @@ CTRL-V Insert next non-digit literally. Up to three digits form the
decimal value of a single byte. The non-digit and the three decimal value of a single byte. The non-digit and the three
digits are not considered for mapping. This works the same digits are not considered for mapping. This works the same
way as in Insert mode (see above, |i_CTRL-V|). way as in Insert mode (see above, |i_CTRL-V|).
Note: Under Windows CTRL-V is often mapped to paste text. Note: Under MS-Windows CTRL-V is often mapped to paste text.
Use CTRL-Q instead then. Use CTRL-Q instead then.
When |modifyOtherKeys| is enabled then special Escape sequence When |modifyOtherKeys| is enabled then special Escape sequence
is converted back to what it was without |modifyOtherKeys|, is converted back to what it was without |modifyOtherKeys|,
@ -476,6 +476,10 @@ emulate it. For example, this mimics autolist=ambiguous:
This will find the longest match with the first 'wildchar', then list all This will find the longest match with the first 'wildchar', then list all
matching files with the next. matching files with the next.
*complete-script-local-functions*
When completing user function names, prepend "s:" to find script-local
functions.
*suffixes* *suffixes*
For file name completion you can use the 'suffixes' option to set a priority For file name completion you can use the 'suffixes' option to set a priority
between files with almost the same name. If there are multiple matches, between files with almost the same name. If there are multiple matches,
@ -586,6 +590,7 @@ followed by another Vim command:
:command :command
:cscope :cscope
:debug :debug
:eval
:folddoopen :folddoopen
:folddoclosed :folddoclosed
:function :function
@ -610,6 +615,7 @@ followed by another Vim command:
:tcl :tcl
:tcldo :tcldo
:tclfile :tclfile
:terminal
:vglobal :vglobal
:windo :windo
:write ! :write !
@ -933,8 +939,7 @@ These modifiers can be given, in this order:
directory. directory.
:. Reduce file name to be relative to current directory, if :. Reduce file name to be relative to current directory, if
possible. File name is unmodified if it is not below the possible. File name is unmodified if it is not below the
current directory, but on MS-Windows the drive is removed if current directory.
it is the current drive.
For maximum shortness, use ":~:.". For maximum shortness, use ":~:.".
:h Head of the file name (the last component and any separators :h Head of the file name (the last component and any separators
removed). Cannot be used with :e, :r or :t. removed). Cannot be used with :e, :r or :t.
@ -943,9 +948,9 @@ These modifiers can be given, in this order:
separator is removed. Thus ":p:h" on a directory name results separator is removed. Thus ":p:h" on a directory name results
on the directory name itself (without trailing slash). on the directory name itself (without trailing slash).
When the file name is an absolute path (starts with "/" for When the file name is an absolute path (starts with "/" for
Unix; "x:\" for MS-DOS, WIN32, OS/2; "drive:" for Amiga), that Unix; "x:\" for Win32; "drive:" for Amiga), that part is not
part is not removed. When there is no head (path is relative removed. When there is no head (path is relative to current
to current directory) the result is empty. directory) the result is empty.
:t Tail of the file name (last component of the name). Must :t Tail of the file name (last component of the name). Must
precede any :r or :e. precede any :r or :e.
:r Root of the file name (the last extension removed). When :r Root of the file name (the last extension removed). When
@ -1042,12 +1047,12 @@ option contains "sh", this is done twice, to avoid the shell trying to expand
the "!". the "!".
*filename-backslash* *filename-backslash*
For filesystems that use a backslash as directory separator (MS-DOS, Windows, For filesystems that use a backslash as directory separator (MS-Windows), it's
OS/2), it's a bit difficult to recognize a backslash that is used to escape a bit difficult to recognize a backslash that is used to escape the special
the special meaning of the next character. The general rule is: If the meaning of the next character. The general rule is: If the backslash is
backslash is followed by a normal file name character, it does not have a followed by a normal file name character, it does not have a special meaning.
special meaning. Therefore "\file\foo" is a valid file name, you don't have Therefore "\file\foo" is a valid file name, you don't have to type the
to type the backslash twice. backslash twice.
An exception is the '$' sign. It is a valid character in a file name. But An exception is the '$' sign. It is a valid character in a file name. But
to avoid a file name like "$home" to be interpreted as an environment variable, to avoid a file name like "$home" to be interpreted as an environment variable,

View File

@ -1,4 +1,4 @@
*debugger.txt* For Vim version 8.2. Last change: 2019 Jul 06 *debugger.txt* For Vim version 8.2. Last change: 2019 Dec 21
VIM REFERENCE MANUAL by Gordon Prieur VIM REFERENCE MANUAL by Gordon Prieur
@ -12,8 +12,6 @@ For the debugger running in a Vim terminal window see |terminal-debugger|.
1. Debugger Features |debugger-features| 1. Debugger Features |debugger-features|
2. Vim Compile Options |debugger-compilation| 2. Vim Compile Options |debugger-compilation|
3. Integrated Debuggers |debugger-integration|
============================================================================== ==============================================================================
1. Debugger Features *debugger-features* 1. Debugger Features *debugger-features*
@ -114,10 +112,10 @@ other settings apply.
============================================================================== ==============================================================================
2. Vim Compile Options *debugger-compilation* 2. Vim Compile Options *debugger-compilation*
The debugger features were added explicitly for use with Sun's Visual The debugger features were added for use with Sun's Visual WorkShop Integrated
WorkShop Integrated Programming Environment (ipe). However, they were done Programming Environment (ipe). However, they were done in as generic a manner
in as generic a manner as possible so that integration with other debuggers as possible so that integration with other debuggers could also use these
could also use some or all of the tools used with Sun's ipe. features.
The following compile time preprocessor variables control the features: The following compile time preprocessor variables control the features:
@ -127,18 +125,10 @@ The following compile time preprocessor variables control the features:
Message Footer FEAT_FOOTER Message Footer FEAT_FOOTER
Balloon Evaluation FEAT_BEVAL Balloon Evaluation FEAT_BEVAL
The first integration with a full IPE/IDE was with Sun Visual WorkShop. To The support specifically for Sun Visual WorkShop has been removed, since the
compile a gvim which interfaces with VWS set the following flag, which sets product no longer exists.
all the above flags:
Sun Visual WorkShop FEAT_SUN_WORKSHOP
==============================================================================
3. Integrated Debuggers *debugger-integration*
One fully integrated debugger/IPE/IDE is Sun's Visual WorkShop Integrated
Programming Environment.
For Sun NetBeans support see |netbeans|. For Sun NetBeans support see |netbeans|.
vim:tw=78:sw=4:ts=8:noet:ft=help:norl: vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

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 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 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 everything but the kitchen sink, but some people say that you can clean one
with it. ;-)" 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 - 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 being less consistent over all platforms. But functional GUI features are
welcomed. welcomed.

View File

@ -2,5 +2,12 @@
" "
" Usage: vim -eX -u doctags.vim " Usage: vim -eX -u doctags.vim
helptags ++t . try
helptags ++t .
echo 'help tags updated'
catch
echo v:exception
echo 'help tags failed update'
endtry
echo ''
qa! qa!

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.2. Last change: 2019 Dec 07 *editing.txt* For Vim version 8.2. Last change: 2020 Jun 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -131,7 +131,7 @@ You can use this file if you discover that you need the original file. See
also the 'patchmode' option. The name of the backup file is normally the same also the 'patchmode' option. The name of the backup file is normally the same
as the original file with 'backupext' appended. The default "~" is a bit as the original file with 'backupext' appended. The default "~" is a bit
strange to avoid accidentally overwriting existing files. If you prefer ".bak" strange to avoid accidentally overwriting existing files. If you prefer ".bak"
change the 'backupext' option. Extra dots are replaced with '_' on MS-DOS change the 'backupext' option. Extra dots are replaced with '_' on MS-Windows
machines, when Vim has detected that an MS-DOS-like filesystem is being used machines, when Vim has detected that an MS-DOS-like filesystem is being used
(e.g., messydos or crossdos) or when the 'shortname' option is on. The (e.g., messydos or crossdos) or when the 'shortname' option is on. The
backup file can be placed in another directory by setting 'backupdir'. backup file can be placed in another directory by setting 'backupdir'.
@ -331,10 +331,13 @@ CTRL-^ Edit the alternate file. Mostly the alternate file is
*gF* *gF*
[count]gF Same as "gf", except if a number follows the file [count]gF Same as "gf", except if a number follows the file
name, then the cursor is positioned on that line in name, then the cursor is positioned on that line in
the file. The file name and the number must be the file.
separated by a non-filename (see 'isfname') and The file name and the number must be separated by a
non-numeric character. White space between the non-filename (see 'isfname') and non-numeric
filename, the separator and the number are ignored. character. " line " is also recognized, like it is
used in the output of `:verbose command UserCmd`
White space between the filename, the separator and
the number are ignored.
Examples: Examples:
eval.c:10 ~ eval.c:10 ~
eval.c @ 20 ~ eval.c @ 20 ~
@ -472,6 +475,9 @@ This edits the same file again with 'fileformat' set to "unix". >
:w ++enc=latin1 newfile :w ++enc=latin1 newfile
This writes the current buffer to "newfile" in latin1 format. 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 There may be several ++opt arguments, separated by white space. They must all
appear before any |+cmd| argument. appear before any |+cmd| argument.
@ -519,9 +525,9 @@ The 'fileformat' option sets the <EOL> style for a file:
Previously 'textmode' was used. It is obsolete now. Previously 'textmode' was used. It is obsolete now.
When reading a file, the mentioned characters are interpreted as the <EOL>. When reading a file, the mentioned characters are interpreted as the <EOL>.
In DOS format (default for MS-DOS, OS/2 and Win32), <CR><NL> and <NL> are both In DOS format (default for Win32), <CR><NL> and <NL> are both interpreted as
interpreted as the <EOL>. Note that when writing the file in DOS format, the <EOL>. Note that when writing the file in DOS format, <CR> characters
<CR> characters will be added for each single <NL>. Also see |file-read|. will be added for each single <NL>. Also see |file-read|.
When writing a file, the mentioned characters are used for <EOL>. For DOS When writing a file, the mentioned characters are used for <EOL>. For DOS
format <CR><NL> is used. Also see |DOS-format-write|. format <CR><NL> is used. Also see |DOS-format-write|.
@ -542,15 +548,16 @@ If you start editing a new file and the 'fileformats' option is not empty
(which is the default), Vim will try to detect whether the lines in the file (which is the default), Vim will try to detect whether the lines in the file
are separated by the specified formats. When set to "unix,dos", Vim will are separated by the specified formats. When set to "unix,dos", Vim will
check for lines with a single <NL> (as used on Unix and Amiga) or by a <CR> check for lines with a single <NL> (as used on Unix and Amiga) or by a <CR>
<NL> pair (MS-DOS). Only when ALL lines end in <CR><NL>, 'fileformat' is set <NL> pair (MS-Windows). Only when ALL lines end in <CR><NL>, 'fileformat' is
to "dos", otherwise it is set to "unix". When 'fileformats' includes "mac", set to "dos", otherwise it is set to "unix". When 'fileformats' includes
and no <NL> characters are found in the file, 'fileformat' is set to "mac". "mac", and no <NL> characters are found in the file, 'fileformat' is set to
"mac".
If the 'fileformat' option is set to "dos" on non-MS-DOS systems the message If the 'fileformat' option is set to "dos" on non-MS-Windows systems the
"[dos format]" is shown to remind you that something unusual is happening. On message "[dos format]" is shown to remind you that something unusual is
MS-DOS systems you get the message "[unix format]" if 'fileformat' is set to happening. On MS-Windows systems you get the message "[unix format]" if
"unix". On all systems but the Macintosh you get the message "[mac format]" 'fileformat' is set to "unix". On all systems but the Macintosh you get the
if 'fileformat' is set to "mac". message "[mac format]" if 'fileformat' is set to "mac".
If the 'fileformats' option is empty and DOS format is used, but while reading If the 'fileformats' option is empty and DOS format is used, but while reading
a file some lines did not end in <CR><NL>, "[CR missing]" will be included in a file some lines did not end in <CR><NL>, "[CR missing]" will be included in
@ -1023,11 +1030,11 @@ lost the original file.
*DOS-format-write* *DOS-format-write*
If the 'fileformat' is "dos", <CR> <NL> is used for <EOL>. This is default If the 'fileformat' is "dos", <CR> <NL> is used for <EOL>. This is default
for MS-DOS, Win32 and OS/2. On other systems the message "[dos format]" is for Win32. On other systems the message "[dos format]" is shown to remind you
shown to remind you that an unusual <EOL> was used. that an unusual <EOL> was used.
*Unix-format-write* *Unix-format-write*
If the 'fileformat' is "unix", <NL> is used for <EOL>. On MS-DOS, Win32 and If the 'fileformat' is "unix", <NL> is used for <EOL>. On Win32 the message
OS/2 the message "[unix format]" is shown. "[unix format]" is shown.
*Mac-format-write* *Mac-format-write*
If the 'fileformat' is "mac", <CR> is used for <EOL>. On non-Mac systems the If the 'fileformat' is "mac", <CR> is used for <EOL>. On non-Mac systems the
message "[mac format]" is shown. message "[mac format]" is shown.
@ -1056,11 +1063,11 @@ When the file name is actually a device name, Vim will not make a backup (that
would be impossible). You need to use "!", since the device already exists. would be impossible). You need to use "!", since the device already exists.
Example for Unix: > Example for Unix: >
:w! /dev/lpt0 :w! /dev/lpt0
and for MS-DOS or MS-Windows: > and for MS-Windows: >
:w! lpt0 :w! lpt0
For Unix a device is detected when the name doesn't refer to a normal file or For Unix a device is detected when the name doesn't refer to a normal file or
a directory. A fifo or named pipe also looks like a device to Vim. a directory. A fifo or named pipe also looks like a device to Vim.
For MS-DOS and MS-Windows the device is detected by its name: For MS-Windows the device is detected by its name:
AUX AUX
CON CON
CLOCK$ CLOCK$
@ -1075,9 +1082,9 @@ The names can be in upper- or lowercase.
*:q* *:quit* *:q* *:quit*
:q[uit] Quit the current window. Quit Vim if this is the last :q[uit] Quit the current window. Quit Vim if this is the last
window. This fails when changes have been made and |edit-window|. This fails when changes have been made
Vim refuses to |abandon| the current buffer, and when and Vim refuses to |abandon| the current buffer, and
the last file in the argument list has not been when the last file in the argument list has not been
edited. edited.
If there are other tab pages and quitting the last If there are other tab pages and quitting the last
window in the current tab page the current tab page is window in the current tab page the current tab page is
@ -1103,18 +1110,22 @@ The names can be in upper- or lowercase.
|quickfix|). |quickfix|).
*:wq* *:wq*
:wq [++opt] Write the current file and quit. Writing fails when :wq [++opt] Write the current file and close the window. If this
the file is read-only or the buffer does not have a was the last |edit-window| Vim quits.
name. Quitting fails when the last file in the Writing fails when the file is read-only or the buffer
argument list has not been edited. 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 :wq! [++opt] Write the current file and close the window. If this
the current buffer does not have a name. 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. 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] :[range]wq[!] [++opt] [file]
Same as above, but only write the lines in [range]. Same as above, but only write the lines in [range].
@ -1131,10 +1142,10 @@ The names can be in upper- or lowercase.
Same as :xit. Same as :xit.
*ZZ* *ZZ*
ZZ Write current file, if modified, and quit (same as ZZ Write current file, if modified, and close the current
":x"). (Note: If there are several windows for the window (same as ":x").
current file, the file is written if it was modified If there are several windows for the current file,
and the window is closed). only the current window is closed.
*ZQ* *ZQ*
ZQ Quit without checking for changes (same as ":q!"). ZQ Quit without checking for changes (same as ":q!").
@ -1294,7 +1305,7 @@ present in 'cpoptions' and "!" is not used in the command.
Does not change the meaning of an already opened file, Does not change the meaning of an already opened file,
because its full path name is remembered. Files from because its full path name is remembered. Files from
the |arglist| may change though! the |arglist| may change though!
On MS-DOS this also changes the active drive. On MS-Windows this also changes the active drive.
To change to the directory of the current file: > To change to the directory of the current file: >
:cd %:h :cd %:h
< <
@ -1315,6 +1326,10 @@ present in 'cpoptions' and "!" is not used in the command.
*:tch* *:tchdir* *:tch* *:tchdir*
:tch[dir][!] Same as |:tcd|. :tch[dir][!] Same as |:tcd|.
*:tcd-*
:tcd[!] - Change to the previous current directory, before the
last ":tcd {path}" command.
*:lc* *:lcd* *:lc* *:lcd*
:lc[d][!] {path} Like |:cd|, but only set the current directory when :lc[d][!] {path} Like |:cd|, but only set the current directory when
the cursor is in the current window. The current the cursor is in the current window. The current
@ -1324,9 +1339,28 @@ present in 'cpoptions' and "!" is not used in the command.
*:lch* *:lchdir* *:lch* *:lchdir*
:lch[dir][!] Same as |:lcd|. :lch[dir][!] Same as |:lcd|.
*:lcd-*
:lcd[!] - Change to the previous current directory, before the
last ":lcd {path}" command.
*:pw* *:pwd* *E187* *:pw* *:pwd* *E187*
:pw[d] Print the current directory name. :pw[d] Print the current directory name.
Also see |getcwd()|. 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 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 same current directory. Using a command to jump to another window doesn't

File diff suppressed because it is too large Load Diff

0
runtime/doc/evim-it.1 Executable file → Normal file
View File

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

@ -34,8 +34,7 @@ if you didn't do that already.
Detail: The ":filetype on" command will load one of these files: Detail: The ":filetype on" command will load one of these files:
Amiga $VIMRUNTIME/filetype.vim Amiga $VIMRUNTIME/filetype.vim
Mac $VIMRUNTIME:filetype.vim Mac $VIMRUNTIME:filetype.vim
MS-DOS $VIMRUNTIME\filetype.vim MS-Windows $VIMRUNTIME\filetype.vim
RiscOS Vim:Filetype
Unix $VIMRUNTIME/filetype.vim Unix $VIMRUNTIME/filetype.vim
VMS $VIMRUNTIME/filetype.vim VMS $VIMRUNTIME/filetype.vim
This file is a Vim script that defines autocommands for the This file is a Vim script that defines autocommands for the
@ -308,13 +307,13 @@ all loaded. For example, if this command: >
produces this output: produces this output:
runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim60 ~ runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim82 ~
then Vim will load all plugins in these directories and below: then Vim will load all plugins in these directories and below:
/etc/vim/plugin/ ~ /etc/vim/plugin/ ~
~/.vim/plugin/ ~ ~/.vim/plugin/ ~
/usr/local/share/vim/vim60/plugin/ ~ /usr/local/share/vim/vim82/plugin/ ~
Note that the last one is the value of $VIMRUNTIME which has been expanded. Note that the last one is the value of $VIMRUNTIME which has been expanded.

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 8.2. Last change: 2019 Nov 16 *gui.txt* For Vim version 8.2. Last change: 2020 Mar 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -95,12 +95,11 @@ terminal version.
Recommended place for your personal GUI initializations: Recommended place for your personal GUI initializations:
Unix $HOME/.gvimrc or $HOME/.vim/gvimrc Unix $HOME/.gvimrc or $HOME/.vim/gvimrc
OS/2 $HOME/.gvimrc, $HOME/vimfiles/gvimrc Win32 $HOME/_gvimrc, $HOME/vimfiles/gvimrc
or $VIM/.gvimrc
MS-DOS and Win32 $HOME/_gvimrc, $HOME/vimfiles/gvimrc
or $VIM/_gvimrc or $VIM/_gvimrc
Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
or $VIM/.gvimrc or $VIM/.gvimrc
Haiku $HOME/config/settings/vim/gvimrc
The personal initialization files are searched in the order specified above The personal initialization files are searched in the order specified above
and only the first one that is found is read. and only the first one that is found is read.
@ -579,9 +578,11 @@ tooltips for menus. See |terminal-typing|.
Special characters in a menu name: Special characters in a menu name:
*menu-shortcut*
& The next character is the shortcut key. Make sure each & The next character is the shortcut key. Make sure each
shortcut key is only used once in a (sub)menu. If you want to shortcut key is only used once in a (sub)menu. If you want to
insert a literal "&" in the menu name use "&&". insert a literal "&" in the menu name use "&&".
*menu-text*
<Tab> Separates the menu name from right-aligned text. This can be <Tab> Separates the menu name from right-aligned text. This can be
used to show the equivalent typed command. The text "<Tab>" used to show the equivalent typed command. The text "<Tab>"
can be used here for convenience. If you are using a real can be used here for convenience. If you are using a real
@ -854,6 +855,8 @@ Special characters in the list, just before the rhs:
* The menu was defined with "nore" to disallow remapping. * The menu was defined with "nore" to disallow remapping.
& The menu was defined with "<script>" to allow remapping script-local & The menu was defined with "<script>" to allow remapping script-local
mappings only. mappings only.
s The menu was defined with "<silent>" to avoid showing what it is
mapped to when triggered.
- The menu was disabled. - The menu was disabled.
Note that hitting <Tab> while entering a menu name after a menu command may Note that hitting <Tab> while entering a menu name after a menu command may
@ -955,7 +958,7 @@ item for the keyword under the cursor. The register "z" is used. >
mappings, or put these lines in your gvimrc; "<C-R>" is CTRL-R, "<CR>" is mappings, or put these lines in your gvimrc; "<C-R>" is CTRL-R, "<CR>" is
the <CR> key. |<>|) the <CR> key. |<>|)
*tooltips* *menu-tips*
5.8 Tooltips & Menu tips 5.8 Tooltips & Menu tips
See section |42.4| in the user manual. See section |42.4| in the user manual.

View File

@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 8.2. Last change: 2019 May 05 *gui_w32.txt* For Vim version 8.2. Last change: 2020 Mar 25
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -106,8 +106,6 @@ when you have got a new version):
You can also install Vim in the "Send To" menu: You can also install Vim in the "Send To" menu:
1. Start a Windows Explorer 1. Start a Windows Explorer
2. Navigate to your sendto directory: 2. Navigate to your sendto directory:
Windows NT: %windir%\profiles\%user%\sendto (e.g.
"c:\winnt\profiles\mattha\sendto")
Windows XP: C:\Documents and Settings\%user%\SendTo Windows XP: C:\Documents and Settings\%user%\SendTo
Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo . Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
3. Right-click in the file pane and select New->Shortcut 3. Right-click in the file pane and select New->Shortcut
@ -115,7 +113,8 @@ You can also install Vim in the "Send To" menu:
When you 'send a file to Vim', Vim changes to that file's directory. Note, When you 'send a file to Vim', Vim changes to that file's directory. Note,
however, that any long directory names will appear in their short (MS-DOS) however, that any long directory names will appear in their short (MS-DOS)
form. This is a limitation of the Windows "Send To" mechanism. form on some Windows versions. This is a limitation of the Windows "Send To"
mechanism.
*notepad* *notepad*
You could replace notepad.exe with gvim.exe, but that has a few side effects. You could replace notepad.exe with gvim.exe, but that has a few side effects.
@ -169,8 +168,8 @@ you can.
Vim Shell Extension Vim Shell Extension
HKEY_LOCAL_MACHINE\Software\Vim\Gvim HKEY_LOCAL_MACHINE\Software\Vim\Gvim
path {path}\gvim.exe path {path}\gvim.exe
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 5.6 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 8.2
DisplayName Vim 5.6: Edit with Vim popup menu entry DisplayName Vim 8.2: Edit with Vim popup menu entry
UninstallString {path}\uninstall.exe UninstallString {path}\uninstall.exe
Replace {path} with the path that leads to the executable. Replace {path} with the path that leads to the executable.
@ -200,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 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. 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" 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: Doing this manually can be done with this script:
@ -214,7 +213,7 @@ REGEDIT4
[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit] [HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]
[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command] [HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command]
@="c:\\vim\\vim62\\gvim.exe \"%1\"" @="c:\\vim\\vim82\\gvim.exe \"%1\""
[HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe] [HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe]
@ -222,7 +221,7 @@ REGEDIT4
---------------------------------------------------------- ----------------------------------------------------------
Change the "c:\\vim\\vim62" bit to where gvim.exe is actually located. Change the "c:\\vim\\vim82" bit to where gvim.exe is actually located.
To uninstall this run the Vim uninstall program or manually delete the To uninstall this run the Vim uninstall program or manually delete the
registry entries with "regedit". registry entries with "regedit".
@ -457,8 +456,12 @@ See the Make_mvc.mak file for instructions, search for XPM.
To try out if XPM support works do this: > To try out if XPM support works do this: >
:help :help
:exe 'sign define vimxpm icon=' . $VIMRUNTIME . '\\vim16x16.xpm' :let runtime = escape($VIMRUNTIME, ' \')
:exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p') :exe 'sign define vimxpm icon=' .. runtime .. '\\vim16x16.xpm'
:exe 'sign place 1 line=1 name=vimxpm file=' .. expand('%:p')
< <
You may need to get the vim16x16.xpm file from github:
https://github.com/vim/vim/blob/master/runtime/vim16x16.xpm
vim:tw=78:sw=4:ts=8:noet:ft=help:norl: vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

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 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. 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 See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
for more information. 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 ~ 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 VIM - main help file
k k
@ -31,7 +31,7 @@ Get specific help: It is possible to go directly to whatever you want help
help entries for "word". help entries for "word".
Or use ":helpgrep word". |:helpgrep| 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|. basic commands, see |vimtutor|.
Read the user manual from start to end: |usr_01.txt| 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* *doc-file-list* *Q_ct*
BASIC: BASIC:
|quickref| Overview of the most common commands you will use |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 |copying| About copyrights
|iccf| Helping poor children in Uganda |iccf| Helping poor children in Uganda
|sponsor| Sponsor Vim development, become a registered Vim user |sponsor| Sponsor Vim development, become a registered Vim user
@ -144,7 +144,7 @@ Special issues ~
|remote.txt| using Vim as a server or client |remote.txt| using Vim as a server or client
|term.txt| using different terminals and mice |term.txt| using different terminals and mice
|terminal.txt| Terminal window support |terminal.txt| Terminal window support
|popup.txt| popop window support |popup.txt| popup window support
Programming language support ~ Programming language support ~
|indent.txt| automatic indenting for C and other languages |indent.txt| automatic indenting for C and other languages
@ -197,7 +197,8 @@ Remarks about specific systems ~
|os_390.txt| OS/390 Unix |os_390.txt| OS/390 Unix
|os_amiga.txt| Amiga |os_amiga.txt| Amiga
|os_beos.txt| BeOS and BeBox |os_beos.txt| BeOS and BeBox
|os_dos.txt| MS-DOS and MS-Windows NT/95 common items |os_dos.txt| MS-DOS and MS-Windows common items
|os_haiku.txt| Haiku
|os_mac.txt| Macintosh |os_mac.txt| Macintosh
|os_mint.txt| Atari MiNT |os_mint.txt| Atari MiNT
|os_msdos.txt| MS-DOS (plain DOS and DOS box under Windows) |os_msdos.txt| MS-DOS (plain DOS and DOS box under Windows)
@ -206,7 +207,7 @@ Remarks about specific systems ~
|os_risc.txt| RISC-OS |os_risc.txt| RISC-OS
|os_unix.txt| Unix |os_unix.txt| Unix
|os_vms.txt| VMS |os_vms.txt| VMS
|os_win32.txt| MS-Windows 95/98/NT |os_win32.txt| MS-Windows
*standard-plugin-list* *standard-plugin-list*
Standard plugins ~ Standard plugins ~
|pi_getscript.txt| Downloading latest version of Vim scripts |pi_getscript.txt| Downloading latest version of Vim scripts

View File

@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 8.2. Last change: 2019 Oct 18 *helphelp.txt* For Vim version 8.2. Last change: 2020 Mar 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -368,4 +368,15 @@ highlighting. So do these:
You can find the details in $VIMRUNTIME/syntax/help.vim You can find the details in $VIMRUNTIME/syntax/help.vim
*inclusion*
Some people make a big deal about using "his" when referring to the user,
thinking it means we assume the user is male. That is of course not the case,
it's just a habit of writing help text, which quite often is many years old.
Also, a lot of the text is written by contributors for who English is not
their first language. We do not make any assumptions about the gender of the
user, no matter how the text is phrased. And we do not want to waste time on
this discussion. The goal is that the reader understands how Vim works, the
exact wording is secondary.
vim:tw=78:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 8.2. Last change: 2019 Jul 21 *if_lua.txt* For Vim version 8.2. Last change: 2020 May 17
VIM REFERENCE MANUAL by Luis Carvalho VIM REFERENCE MANUAL by Luis Carvalho
@ -32,7 +32,7 @@ Examples:
:lua local curbuf = vim.buffer() curbuf[7] = "line #7" :lua local curbuf = vim.buffer() curbuf[7] = "line #7"
< <
:[range]lua << [endmarker] :[range]lua << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
Execute Lua script {script}. Execute Lua script {script}.
@ -40,10 +40,9 @@ Examples:
feature wasn't compiled in. To avoid errors, see feature wasn't compiled in. To avoid errors, see
|script-here|. |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 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 This form of the |:lua| command is mainly useful for including Lua code
in Vim scripts. in Vim scripts.
@ -200,6 +199,15 @@ Vim evaluation and command execution, and others.
returns it. Note that the buffer is not set as returns it. Note that the buffer is not set as
current. 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* 3. List userdata *lua-list*

View File

@ -39,7 +39,7 @@ To speed up the process, you might also want to use --disable-gracket and
:[range]mz[scheme] {stmt} :[range]mz[scheme] {stmt}
Execute MzScheme statement {stmt}. Execute MzScheme statement {stmt}.
:[range]mz[scheme] << [endmarker] :[range]mz[scheme] << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
Execute inlined MzScheme script {script}. 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 feature wasn't compiled in. To avoid errors, see
|script-here|. |script-here|.
The {endmarker} below the {script} must NOT be
preceded by any white space.
If [endmarker] is omitted from after the "<<", a dot If [endmarker] is omitted from after the "<<", a dot
'.' must be used after {script}, like for the '.' 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* *:mzfile* *:mzf*
:[range]mzf[ile] {file} Execute the MzScheme script in {file}. :[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: > working: >
:perl VIM::Msg("Hello") :perl VIM::Msg("Hello")
:pe[rl] << [endmarker] :pe[rl] << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
Execute Perl script {script}. 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: > the `:python` command is working: >
:python print "Hello" :python print "Hello"
:[range]py[thon] << [endmarker] :[range]py[thon] << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
Execute Python script {script}. 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 feature wasn't compiled in. To avoid errors, see
|script-here|. |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 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 This form of the |:python| command is mainly useful for including python code
in Vim scripts. in Vim scripts.
@ -768,12 +767,12 @@ match the Python 2.x or Python 3 version Vim was compiled with.
*:py3* *:python3* *:py3* *:python3*
:[range]py3 {stmt} :[range]py3 {stmt}
:[range]py3 << [endmarker] :[range]py3 << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
:[range]python3 {stmt} :[range]python3 {stmt}
:[range]python3 << [endmarker] :[range]python3 << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
The `:py3` and `:python3` commands work similar to `:python`. A 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: > :rub[y] {cmd} Execute Ruby command {cmd}. A command to try it out: >
:ruby print "Hello" :ruby print "Hello"
:rub[y] << [endmarker] :rub[y] << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
Execute Ruby script {script}. 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 '.' 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 This form of the |:ruby| command is mainly useful for
including ruby code in vim scripts. including ruby code in vim scripts.

View File

@ -30,7 +30,7 @@ comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
is working: > is working: >
:tcl puts "Hello" :tcl puts "Hello"
:[range]tc[l] << [endmarker] :[range]tc[l] << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
Execute Tcl script {script}. 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 wasn't compiled in. To avoid errors, see
|script-here|. |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 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 This form of the |:tcl| command is mainly useful for including tcl code in Vim
scripts. scripts.

View File

@ -570,9 +570,15 @@ The examples below assume a 'shiftwidth' of 4.
with "#" does not work. 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: 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, 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: Vim puts a line in column 1 if:
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#0'. - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#0'.

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 8.2. Last change: 2019 Sep 27 *index.txt* For Vim version 8.2. Last change: 2020 May 31
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -73,6 +73,8 @@ tag char action in Insert mode ~
the cursor the cursor
|i_CTRL-Q| CTRL-Q same as CTRL-V, unless used for terminal |i_CTRL-Q| CTRL-Q same as CTRL-V, unless used for terminal
control flow control flow
|i_CTRL-SHIFT-Q| CTRL-SHIFT-Q {char}
like CTRL-Q unless |modifyOtherKeys| is active
|i_CTRL-R| CTRL-R {register} |i_CTRL-R| CTRL-R {register}
insert the contents of a register insert the contents of a register
|i_CTRL-R_CTRL-R| CTRL-R CTRL-R {register} |i_CTRL-R_CTRL-R| CTRL-R CTRL-R {register}
@ -83,12 +85,14 @@ tag char action in Insert mode ~
|i_CTRL-R_CTRL-P| CTRL-R CTRL-P {register} |i_CTRL-R_CTRL-P| CTRL-R CTRL-P {register}
insert the contents of a register literally insert the contents of a register literally
and fix indent. 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 |i_CTRL-T| CTRL-T insert one shiftwidth of indent in current
line line
|i_CTRL-U| CTRL-U delete all entered characters in the current |i_CTRL-U| CTRL-U delete all entered characters in the current
line line
|i_CTRL-V| CTRL-V {char} insert next non-digit literally |i_CTRL-V| CTRL-V {char} insert next non-digit literally
|i_CTRL-SHIFT-V| CTRL-SHIFT-V {char}
like CTRL-V unless |modifyOtherKeys| is active
|i_CTRL-V_digit| CTRL-V {number} insert three digit decimal number as a single |i_CTRL-V_digit| CTRL-V {number} insert three digit decimal number as a single
byte. byte.
|i_CTRL-W| CTRL-W delete word before the cursor |i_CTRL-W| CTRL-W delete word before the cursor
@ -216,9 +220,9 @@ tag char note action in Normal mode ~
|CTRL-N| CTRL-N 1 same as "j" |CTRL-N| CTRL-N 1 same as "j"
|CTRL-O| CTRL-O 1 go to N older entry in jump list |CTRL-O| CTRL-O 1 go to N older entry in jump list
|CTRL-P| CTRL-P 1 same as "k" |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-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-T| CTRL-T jump to N older Tag in tag list
|CTRL-U| CTRL-U scroll N lines Upwards (default: half a |CTRL-U| CTRL-U scroll N lines Upwards (default: half a
screen) screen)
@ -242,8 +246,7 @@ tag char note action in Normal mode ~
2 filter Nmove text through the {filter} 2 filter Nmove text through the {filter}
command command
|!!| !!{filter} 2 filter N lines 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 |quote| "{register} use {register} for next delete, yank or put
delete, yank or put (uppercase to append)
({.%#:} only work with put) ({.%#:} only work with put)
|#| # 1 search backward for the Nth occurrence of |#| # 1 search backward for the Nth occurrence of
the ident under the cursor the ident under the cursor
@ -361,8 +364,8 @@ tag char note action in Normal mode ~
register x] register x]
|Y| ["x]Y yank N lines [into register x]; synonym for |Y| ["x]Y yank N lines [into register x]; synonym for
"yy" "yy"
|ZZ| ZZ store current file if modified, and exit |ZZ| ZZ write if buffer changed and close window
|ZQ| ZQ exit current file always |ZQ| ZQ close window without writing
|[| [{char} square bracket command (see |[| below) |[| [{char} square bracket command (see |[| below)
\ not used \ not used
|]| ]{char} square bracket command (see |]| below) |]| ]{char} square bracket command (see |]| below)
@ -825,7 +828,7 @@ tag char note action in Normal mode ~
|zD| zD delete folds recursively |zD| zD delete folds recursively
|zE| zE eliminate all folds |zE| zE eliminate all folds
|zF| zF create a fold for N lines |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 |zH| zH when 'wrap' off scroll half a screenwidth
to the right to the right
|zL| zL when 'wrap' off scroll half a screenwidth |zL| zL when 'wrap' off scroll half a screenwidth
@ -834,7 +837,7 @@ tag char note action in Normal mode ~
|zN| zN set 'foldenable' |zN| zN set 'foldenable'
|zO| zO open folds recursively |zO| zO open folds recursively
|zR| zR set 'foldlevel' to the deepest fold |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' |zX| zX re-apply 'foldlevel'
|z^| z^ cursor on line N (default line above |z^| z^ cursor on line N (default line above
window), otherwise like "z-" window), otherwise like "z-"
@ -846,7 +849,7 @@ tag char note action in Normal mode ~
position the cursor at the end (right side) position the cursor at the end (right side)
of the screen of the screen
|zf| zf{motion} create a fold for Nmove text |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 |zh| zh when 'wrap' off scroll screen N characters
to the right to the right
|zi| zi toggle 'foldenable' |zi| zi toggle 'foldenable'
@ -867,7 +870,7 @@ tag char note action in Normal mode ~
|zuW| zuW undo |zW| |zuW| zuW undo |zW|
|zuG| zuG undo |zG| |zuG| zuG undo |zG|
|zv| zv open enough folds to view the cursor line |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" |zx| zx re-apply 'foldlevel' and do "zv"
|zz| zz redraw, cursor line at center of window |zz| zz redraw, cursor line at center of window
|z<Left>| z<Left> same as "zh" |z<Left>| z<Left> same as "zh"
@ -1053,7 +1056,7 @@ tag command action in Command-line editing mode ~
|c_CTRL-R_CTRL-O| CTRL-R CTRL-O {regname} |c_CTRL-R_CTRL-O| CTRL-R CTRL-O {regname}
insert the contents of a register or object insert the contents of a register or object
under the cursor literally 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-T| CTRL-T previous match when 'incsearch' is active
|c_CTRL-U| CTRL-U remove all characters |c_CTRL-U| CTRL-U remove all characters
|c_CTRL-V| CTRL-V insert next non-digit literally, insert three |c_CTRL-V| CTRL-V insert next non-digit literally, insert three
@ -1111,7 +1114,7 @@ tag char action in Terminal-Job mode ~
|t_CTRL-W_:| CTRL-W : enter an Ex command |t_CTRL-W_:| CTRL-W : enter an Ex command
|t_CTRL-W_.| CTRL-W . type CTRL-W in the terminal |t_CTRL-W_.| CTRL-W . type CTRL-W in the terminal
CTRL-W CTRL-\ send a CTRL-\ to the job 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 paste register in the terminal
|t_CTRL-W_CTRL-C| CTRL-W CTRL-C forcefully ends the job |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 |t_CTRL-W_CTRL-W| CTRL-W CTRL-W move focus to the next window
@ -1256,11 +1259,13 @@ tag command action ~
|:cunmenu| :cunme[nu] remove menu for Command-line mode |:cunmenu| :cunme[nu] remove menu for Command-line mode
|:cwindow| :cw[indow] open or close quickfix window |:cwindow| :cw[indow] open or close quickfix window
|:delete| :d[elete] delete lines |:delete| :d[elete] delete lines
|:delmarks| :delm[arks] delete marks
|:debug| :deb[ug] run a command in debugging mode |:debug| :deb[ug] run a command in debugging mode
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input |: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 |:delcommand| :delc[ommand] delete user-defined command
|:delfunction| :delf[unction] delete a user function |:delfunction| :delf[unction] delete a user function
|:delmarks| :delm[arks] delete marks
|:diffupdate| :dif[fupdate] update 'diff' buffers |:diffupdate| :dif[fupdate] update 'diff' buffers
|:diffget| :diffg[et] remove differences in current buffer |:diffget| :diffg[et] remove differences in current buffer
|:diffoff| :diffo[ff] switch off diff mode |:diffoff| :diffo[ff] switch off diff mode
@ -1270,9 +1275,9 @@ tag command action ~
|:diffthis| :diffthis make current window a diff window |:diffthis| :diffthis make current window a diff window
|:digraphs| :dig[raphs] show or enter digraphs |:digraphs| :dig[raphs] show or enter digraphs
|:display| :di[splay] display registers |:display| :di[splay] display registers
|:disassemble| :disa[ssemble] disassemble Vim9 user function
|:djump| :dj[ump] jump to #define |:djump| :dj[ump] jump to #define
|:dl| :dl short for |:delete| with the 'l' flag |:dl| :dl short for |:delete| with the 'l' flag
|:del| :del[ete]l short for |:delete| with the 'l' flag
|:dlist| :dli[st] list #defines |:dlist| :dli[st] list #defines
|:doautocmd| :do[autocmd] apply autocommands to current buffer |:doautocmd| :do[autocmd] apply autocommands to current buffer
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers |:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
@ -1291,15 +1296,17 @@ tag command action ~
|:else| :el[se] part of an :if command |:else| :el[se] part of an :if command
|:elseif| :elsei[f] part of an :if command |:elseif| :elsei[f] part of an :if command
|:emenu| :em[enu] execute a menu by name |:emenu| :em[enu] execute a menu by name
|:enddef| :enddef end of a user function started with :def
|:endif| :en[dif] end previous :if |:endif| :en[dif] end previous :if
|:endfor| :endfo[r] end previous :for |:endfor| :endfo[r] end previous :for
|:endfunction| :endf[unction] end of a user function |:endfunction| :endf[unction] end of a user function started with :function
|:endtry| :endt[ry] end previous :try |:endtry| :endt[ry] end previous :try
|:endwhile| :endw[hile] end previous :while |:endwhile| :endw[hile] end previous :while
|:enew| :ene[w] edit a new, unnamed buffer |:enew| :ene[w] edit a new, unnamed buffer
|:ex| :ex same as ":edit" |:ex| :ex same as ":edit"
|:execute| :exe[cute] execute result of expressions |:execute| :exe[cute] execute result of expressions
|:exit| :exi[t] same as ":xit" |:exit| :exi[t] same as ":xit"
|:export| :exp[ort] Vim9: export an item from a script
|:exusage| :exu[sage] overview of Ex commands |:exusage| :exu[sage] overview of Ex commands
|:file| :f[ile] show or set the current file name |:file| :f[ile] show or set the current file name
|:files| :files list all files in the buffer list |:files| :files list all files in the buffer list
@ -1341,6 +1348,7 @@ tag command action ~
|:imap| :im[ap] like ":map" but for Insert mode |:imap| :im[ap] like ":map" but for Insert mode
|:imapclear| :imapc[lear] like ":mapclear" but for Insert mode |:imapclear| :imapc[lear] like ":mapclear" but for Insert mode
|:imenu| :ime[nu] add menu for Insert mode |:imenu| :ime[nu] add menu for Insert mode
|:import| :imp[ort] Vim9: import an item from another script
|:inoremap| :ino[remap] like ":noremap" but for Insert mode |:inoremap| :ino[remap] like ":noremap" but for Insert mode
|:inoreabbrev| :inorea[bbrev] like ":noreabbrev" but for Insert mode |:inoreabbrev| :inorea[bbrev] like ":noreabbrev" but for Insert mode
|:inoremenu| :inoreme[nu] like ":noremenu" but for Insert mode |:inoremenu| :inoreme[nu] like ":noremenu" but for Insert mode
@ -1682,6 +1690,7 @@ tag command action ~
|:version| :ve[rsion] print version number and other info |:version| :ve[rsion] print version number and other info
|:verbose| :verb[ose] execute command with 'verbose' set |:verbose| :verb[ose] execute command with 'verbose' set
|:vertical| :vert[ical] make following command split vertically |:vertical| :vert[ical] make following command split vertically
|:vim9script| :vim9[script] indicates Vim9 script file
|:vimgrep| :vim[grep] search for pattern in files |:vimgrep| :vim[grep] search for pattern in files
|:vimgrepadd| :vimgrepa[dd] like :vimgrep, but append to current list |:vimgrepadd| :vimgrepa[dd] like :vimgrep, but append to current list
|:visual| :vi[sual] same as ":edit", but turns off "Ex" mode |:visual| :vi[sual] same as ":edit", but turns off "Ex" mode
@ -1713,7 +1722,7 @@ tag command action ~
|:wqall| :wqa[ll] write all changed buffers and quit Vim |:wqall| :wqa[ll] write all changed buffers and quit Vim
|:wundo| :wu[ndo] write undo information to a file |:wundo| :wu[ndo] write undo information to a file
|:wviminfo| :wv[iminfo] write to viminfo file |:wviminfo| :wv[iminfo] write to viminfo file
|:xit| :x[it] write if buffer changed and quit window or Vim |:xit| :x[it] write if buffer changed and close window
|:xall| :xa[ll] same as ":wqall" |:xall| :xa[ll] same as ":wqall"
|:xmapclear| :xmapc[lear] remove all mappings for Visual mode |:xmapclear| :xmapc[lear] remove all mappings for Visual mode
|:xmap| :xm[ap] like ":map" but 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: 2019 Nov 26 *insert.txt* For Vim version 8.2. Last change: 2020 Apr 30
VIM REFERENCE MANUAL by Bram Moolenaar 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. you also want to avoid these, use CTRL-R CTRL-O, see below.
The '.' register (last inserted text) is still inserted as The '.' register (last inserted text) is still inserted as
typed. 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* CTRL-R CTRL-O {register} *i_CTRL-R_CTRL-O*
Insert the contents of a register literally and don't 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! Does not replace characters!
The '.' register (last inserted text) is still inserted as The '.' register (last inserted text) is still inserted as
typed. 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* CTRL-R CTRL-P {register} *i_CTRL-R_CTRL-P*
Insert the contents of a register literally and fix the 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! Does not replace characters!
The '.' register (last inserted text) is still inserted as The '.' register (last inserted text) is still inserted as
typed. 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* *i_CTRL-T*
CTRL-T Insert one shiftwidth of indent at the start of the current CTRL-T Insert one shiftwidth of indent at the start of the current
@ -200,15 +208,15 @@ CTRL-V Insert next non-digit literally. For special keys, the
is converted back to what it was without |modifyOtherKeys|, is converted back to what it was without |modifyOtherKeys|,
unless the Shift key is also pressed. unless the Shift key is also pressed.
*i_CTRL-SHIFT-V*
CTRL-SHIFT-V Works just like CTRL-V, unless |modifyOtherKeys| is active,
then it inserts the Escape sequence for a key with modifiers.
*i_CTRL-Q* *i_CTRL-Q*
CTRL-Q Same as CTRL-V. CTRL-Q Same as CTRL-V.
Note: Some terminal connections may eat CTRL-Q, it doesn't Note: Some terminal connections may eat CTRL-Q, it doesn't
work then. It does work in the GUI. work then. It does work in the GUI.
CTRL-SHIFT-V *i_CTRL-SHIFT-V* *i_CTRL-SHIFT-Q*
CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
then it inserts the Escape sequence for a key with modifiers.
CTRL-X Enter CTRL-X mode. This is a sub-mode where commands can CTRL-X Enter CTRL-X mode. This is a sub-mode where commands can
be given to complete words or scroll the window. See be given to complete words or scroll the window. See
|i_CTRL-X| and |ins-completion|. |i_CTRL-X| and |ins-completion|.
@ -379,8 +387,8 @@ CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O*
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L* CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
CTRL-G u break undo sequence, start new change *i_CTRL-G_u* CTRL-G u break undo sequence, start new change *i_CTRL-G_u*
CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U* CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U*
movement, if the cursor stays within movement, if the cursor stays within the
same the line same line
----------------------------------------------------------------------- -----------------------------------------------------------------------
Note: If the cursor keys take you out of Insert mode, check the 'noesckeys' Note: If the cursor keys take you out of Insert mode, check the 'noesckeys'
@ -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. 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. Also, when doing completion with 'complete' mappings apply as usual.
Note: While completion is active Insert mode can't be used recursively. *E578* *E565*
Mappings that somehow invoke ":normal i.." will generate an E523 error. 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 The following mappings are suggested to make typing the completion commands
a bit easier (although they will hide other commands): > a bit easier (although they will hide other commands): >
@ -1079,7 +1089,8 @@ If you want to suppress the warning message for an empty result, return
Other items are ignored. Other items are ignored.
For acting upon end of completion, see the |CompleteDone| autocommand event. For acting upon end of completion, see the |CompleteDonePre| and
|CompleteDone| autocommand event.
For example, the function can contain this: > For example, the function can contain this: >
let matches = ... list of words ... let matches = ... list of words ...
@ -1108,7 +1119,8 @@ items:
empty when non-zero this match will be added even when it is empty when non-zero this match will be added even when it is
an empty string an empty string
user_data custom data which is associated with the item and user_data custom data which is associated with the item and
available in |v:completed_item| available in |v:completed_item|; it can be any type;
defaults to an empty string
All of these except "icase", "equal", "dup" and "empty" must be a string. If All of these except "icase", "equal", "dup" and "empty" must be a string. If
an item does not meet these requirements then an error message is given and an item does not meet these requirements then an error message is given and
@ -2008,11 +2020,11 @@ If the 'fileformats' option is not empty Vim tries to recognize the type of
changed, the detected format is only used while reading the file. changed, the detected format is only used while reading the file.
A similar thing happens with 'fileencodings'. A similar thing happens with 'fileencodings'.
On non-MS-DOS, Win32, and OS/2 systems the message "[dos format]" is shown if On non-Win32 systems the message "[dos format]" is shown if a file is read in
a file is read in DOS format, to remind you that something unusual is done. DOS format, to remind you that something unusual is done.
On Macintosh, MS-DOS, Win32, and OS/2 the message "[unix format]" is shown if On Macintosh and Win32 the message "[unix format]" is shown if a file is read
a file is read in Unix format. in Unix format.
On non-Macintosh systems, the message "[Mac format]" is shown if a file is On non-Macintosh systems, the message "[mac format]" is shown if a file is
read in Mac format. read in Mac format.
An example on how to use ":r !": > An example on how to use ":r !": >

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 VIM REFERENCE MANUAL by Bram Moolenaar
@ -121,14 +121,16 @@ http://www.vim.org/maillist.php
Bug reports: *bugs* *bug-reports* *bugreport.vim* Bug reports: *bugs* *bug-reports* *bugreport.vim*
There are two ways to report bugs, both work: There are three ways to report bugs:
1. Send bug reports to: Vim Developers <vim-dev@vim.org> 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 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 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 issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer
(that's Bram). (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 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 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 #ad hoc code
# #
/^"\|\& / {gsub(/\|/,"\\&#124;"); } /^"\|& / {gsub(/\|/,"\\&#124;"); }
/ = b / {gsub(/ b /," \\&#98; "); } / = b / {gsub(/ b /," \\&#98; "); }
# #
# one letter tag # one letter tag

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 8.2. Last change: 2019 Nov 09 *map.txt* For Vim version 8.2. Last change: 2020 Apr 23
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -845,8 +845,9 @@ 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 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 inserted after the CTRL-V key. This can be used to check whether
modifyOtherKeys is enabled: In Insert mode type CTRL-V CTRL-V, if you get modifyOtherKeys is enabled: In Insert mode type CTRL-SHIFT-V CTRL-V, if you
one byte then modifyOtherKeys is off, if you get <1b>27;5;118~ then it is on. 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 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. Insert mode to avoid every key with a modifier causing Insert mode to end.
@ -1044,7 +1045,8 @@ See |:verbose-cmd| for more information.
See |:map-<buffer>| for the optional <buffer> argument. See |:map-<buffer>| for the optional <buffer> argument.
*:una* *:unabbreviate* *:una* *:unabbreviate*
:una[bbreviate] {lhs} Remove abbreviation for {lhs} from the list. If none :una[bbreviate] [<buffer>] {lhs}
Remove abbreviation for {lhs} from the list. If none
is found, remove abbreviations in which {lhs} matches is found, remove abbreviations in which {lhs} matches
with the {rhs}. This is done so that you can even with the {rhs}. This is done so that you can even
remove abbreviations after expansion. To avoid remove abbreviations after expansion. To avoid
@ -1059,7 +1061,8 @@ See |:verbose-cmd| for more information.
Same as ":ab", but for Command-line mode only. Same as ":ab", but for Command-line mode only.
*:cuna* *:cunabbrev* *:cuna* *:cunabbrev*
:cuna[bbrev] {lhs} Same as ":una", but for Command-line mode only. :cuna[bbrev] [<buffer>] {lhs}
Same as ":una", but for Command-line mode only.
*:cnorea* *:cnoreabbrev* *:cnorea* *:cnoreabbrev*
:cnorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs] :cnorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
@ -1071,7 +1074,8 @@ See |:verbose-cmd| for more information.
Same as ":ab", but for Insert mode only. Same as ":ab", but for Insert mode only.
*:iuna* *:iunabbrev* *:iuna* *:iunabbrev*
:iuna[bbrev] {lhs} Same as ":una", but for insert mode only. :iuna[bbrev] [<buffer>] {lhs}
Same as ":una", but for insert mode only.
*:inorea* *:inoreabbrev* *:inorea* *:inoreabbrev*
:inorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs] :inorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
@ -1488,7 +1492,7 @@ The valid escape sequences are
<bang> (See the '-bang' attribute) Expands to a ! if the <bang> (See the '-bang' attribute) Expands to a ! if the
command was executed with a ! modifier, otherwise command was executed with a ! modifier, otherwise
expands to nothing. expands to nothing.
*<mods>* *<mods>* *:command-modifiers*
<mods> The command modifiers, if specified. Otherwise, expands to <mods> The command modifiers, if specified. Otherwise, expands to
nothing. Supported modifiers are |:aboveleft|, |:belowright|, nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|, |:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 8.2. Last change: 2019 Oct 19 *message.txt* For Vim version 8.2. Last change: 2020 Jan 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -76,7 +76,7 @@ See `:messages` above.
LIST OF MESSAGES LIST OF MESSAGES
*E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317* *E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317*
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322* *E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
*E323* *E341* *E473* *E570* *E685* *E950* > *E323* *E341* *E473* *E570* *E685* *E292* >
Add to read buffer Add to read buffer
makemap: Illegal mode makemap: Illegal mode
Cannot create BalloonEval with both message and callback Cannot create BalloonEval with both message and callback

View File

@ -37,6 +37,7 @@ use of "-" and "_".
:lan[guage] mes[sages] :lan[guage] mes[sages]
:lan[guage] cty[pe] :lan[guage] cty[pe]
:lan[guage] tim[e] :lan[guage] tim[e]
:lan[guage] col[late]
Print the current language (aka locale). Print the current language (aka locale).
With the "messages" argument the language used for With the "messages" argument the language used for
messages is printed. Technical: LC_MESSAGES. messages is printed. Technical: LC_MESSAGES.
@ -44,15 +45,19 @@ use of "-" and "_".
character encoding is printed. Technical: LC_CTYPE. character encoding is printed. Technical: LC_CTYPE.
With the "time" argument the language used for With the "time" argument the language used for
strftime() is printed. Technical: LC_TIME. 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 Without argument all parts of the locale are printed
(this is system dependent). (this is system dependent).
The current language can also be obtained with the 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] {name}
:lan[guage] mes[sages] {name} :lan[guage] mes[sages] {name}
:lan[guage] cty[pe] {name} :lan[guage] cty[pe] {name}
:lan[guage] tim[e] {name} :lan[guage] tim[e] {name}
:lan[guage] col[late] {name}
Set the current language (aka locale) to {name}. Set the current language (aka locale) to {name}.
The locale {name} must be a valid locale on your The locale {name} must be a valid locale on your
system. Some systems accept aliases like "en" or system. Some systems accept aliases like "en" or
@ -72,7 +77,10 @@ use of "-" and "_".
With the "time" argument the language used for time With the "time" argument the language used for time
and date messages is set. This affects strftime(). and date messages is set. This affects strftime().
This sets $LC_TIME. 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. $LANG is set.
When compiled with the |+float| feature the LC_NUMERIC When compiled with the |+float| feature the LC_NUMERIC
value will always be set to "C", so that floating 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. 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 protocol. There are existing implementations in C, C++, Python and Java. The
name NetBeans is kept today for historical reasons. name NetBeans is kept today for historical reasons.
Current projects using the NetBeans protocol of Vim are: Active project using the NetBeans protocol of Vim:
- VimIntegration, description of various projects doing Vim Integration: - Eclim, http://eclim.org/
VimIntegration, description of various projects doing Vim Integration:
http://www.freehackers.org/VimIntegration 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: - Clewn, a gdb integration into Vim, written in C:
http://clewn.sourceforge.net/ http://clewn.sourceforge.net/
- Pyclewn, a gdb integration into Vim, written in Python: - Pyclewn, a gdb integration into Vim, written in Python:
http://pyclewn.sourceforge.net/ 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: - VimPlugin, integration of Vim inside Eclipse:
http://vimplugin.sourceforge.net/wiki/pmwiki.php http://vimplugin.sourceforge.net/wiki/pmwiki.php
- PIDA, IDE written in Python integrating Vim: - PIDA, IDE written in Python integrating Vim:
http://pida.co.uk/ 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. 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 initDone Mark the buffer as ready for use. Implicitly makes the buffer
the current buffer. Fires the BufReadPost autocommand event. the current buffer. Fires the BufReadPost autocommand event.
insertDone insertDone starteol readonly
Sent by Vim Controller to tell Vim an initial file insert is Sent by Vim Controller to tell Vim an initial file insert is
done. This triggers a read message being printed. Prior to done. This triggers a read message being printed. If
version 2.3, no read messages were displayed after opening a "starteol" is "F" then the last line doesn't have a EOL. If
file. New in version 2.3. "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 moveAnnoToFront serNum
Not implemented. Not implemented.

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 8.2. Last change: 2019 Dec 06 *options.txt* For Vim version 8.2. Last change: 2020 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -22,9 +22,13 @@ achieve special effects. These options come in three forms:
1. Setting options *set-option* *E764* 1. Setting options *set-option* *E764*
*:se* *:set* *:se* *:set*
:se[t] Show all options that differ from their default value. :se[t][!] Show all options that differ from their default value.
When [!] is present every option is on a separate
line.
:se[t] all Show all but terminal options. :se[t][!] all Show all but terminal options.
When [!] is present every option is on a separate
line.
:se[t] termcap Show all terminal options. Note that in the GUI the :se[t] termcap Show all terminal options. Note that in the GUI the
key codes are not shown, because they are generated key codes are not shown, because they are generated
@ -196,11 +200,11 @@ the option value, use '\"' instead. This example sets the 'titlestring'
option to 'hi "there"': > option to 'hi "there"': >
:set titlestring=hi\ \"there\" :set titlestring=hi\ \"there\"
For MS-DOS and WIN32 backslashes in file names are mostly not removed. More For Win32 backslashes in file names are mostly not removed. More precise: For
precise: For options that expect a file name (those where environment options that expect a file name (those where environment variables are
variables are expanded) a backslash before a normal file name character is not expanded) a backslash before a normal file name character is not removed. But
removed. But a backslash before a special character (space, backslash, comma, a backslash before a special character (space, backslash, comma, etc.) is used
etc.) is used like explained above. like explained above.
There is one special situation, when the value starts with "\\": > There is one special situation, when the value starts with "\\": >
:set dir=\\machine\path results in "\\machine\path" :set dir=\\machine\path results in "\\machine\path"
:set dir=\\\\machine\\path results in "\\machine\path" :set dir=\\\\machine\\path results in "\\machine\path"
@ -287,7 +291,7 @@ happens when the buffer is not loaded, but they are lost when the buffer is
wiped out |:bwipe|. wiped out |:bwipe|.
*:setl* *:setlocal* *:setl* *:setlocal*
:setl[ocal] ... Like ":set" but set only the value local to the :setl[ocal][!] ... Like ":set" but set only the value local to the
current buffer or window. Not all options have a current buffer or window. Not all options have a
local value. If the option does not have a local local value. If the option does not have a local
value the global value is set. value the global value is set.
@ -309,7 +313,7 @@ wiped out |:bwipe|.
{option}, so that the global value will be used. {option}, so that the global value will be used.
*:setg* *:setglobal* *:setg* *:setglobal*
:setg[lobal] ... Like ":set" but set only the global value for a local :setg[lobal][!] ... Like ":set" but set only the global value for a local
option without changing the local value. option without changing the local value.
When displaying an option, the global value is shown. When displaying an option, the global value is shown.
With the "all" argument: display global values for all With the "all" argument: display global values for all
@ -513,10 +517,11 @@ Examples:
The second form (this is compatible with some versions of Vi): The second form (this is compatible with some versions of Vi):
[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text] [text{white}]{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]
[text] any text or empty [text{white}] empty or any text followed by at least one blank
{white} at least one blank character (<Space> or <Tab>) character (<Space> or <Tab>); "ex:" always requires at
least one blank character
{vi:|vim:|Vim:|ex:} the string "vi:", "vim:", "Vim:" or "ex:" {vi:|vim:|Vim:|ex:} the string "vi:", "vim:", "Vim:" or "ex:"
[white] optional white space [white] optional white space
se[t] the string "set " or "se " (note the space); When se[t] the string "set " or "se " (note the space); When
@ -576,9 +581,9 @@ If an error is detected the rest of the line is skipped.
If you want to include a ':' in a set command precede it with a '\'. The If you want to include a ':' in a set command precede it with a '\'. The
backslash in front of the ':' will be removed. Example: backslash in front of the ':' will be removed. Example:
/* vi:set dir=c\:\tmp: */ ~ /* vi:set fillchars=stl\:^,vert\:\|: */ ~
This sets the 'dir' option to "c:\tmp". Only a single backslash before the This sets the 'fillchars' option to "stl:^,vert:\|". Only a single backslash
':' is removed. Thus to include "\:" you have to specify "\\:". before the ':' is removed. Thus to include "\:" you have to specify "\\:".
*E992* *E992*
No other commands than "set" are supported, for security reasons (somebody No other commands than "set" are supported, for security reasons (somebody
might create a Trojan horse text file with modelines). And not all options might create a Trojan horse text file with modelines). And not all options
@ -652,7 +657,7 @@ supported use something like this: >
A jump table for the options with a short description can be found at |Q_op|. A jump table for the options with a short description can be found at |Q_op|.
*'aleph'* *'al'* *aleph* *Aleph* *'aleph'* *'al'* *aleph* *Aleph*
'aleph' 'al' number (default 128 for MS-DOS, 224 otherwise) 'aleph' 'al' number (default 128 for MS-Windows, 224 otherwise)
global global
{only available when compiled with the |+rightleft| {only available when compiled with the |+rightleft|
feature} feature}
@ -709,9 +714,9 @@ A jump table for the options with a short description can be found at |Q_op|.
(or Vim is run inside an xterm invoked with "-cjkwidth" option.), (or Vim is run inside an xterm invoked with "-cjkwidth" option.),
this option should be set to "double" to match the width perceived this option should be set to "double" to match the width perceived
by Vim with the width of glyphs in the font. Perhaps it also has by Vim with the width of glyphs in the font. Perhaps it also has
to be set to "double" under CJK Windows 9x/ME or Windows 2k/XP to be set to "double" under CJK MS-Windows when the system locale is
when the system locale is set to one of CJK locales. See Unicode set to one of CJK locales. See Unicode Standard Annex #11
Standard Annex #11 (http://www.unicode.org/reports/tr11). (http://www.unicode.org/reports/tr11).
Vim may set this option automatically at startup time when Vim is Vim may set this option automatically at startup time when Vim is
compiled with the |+termresponse| feature and if |t_u7| is set to the compiled with the |+termresponse| feature and if |t_u7| is set to the
@ -876,7 +881,7 @@ A jump table for the options with a short description can be found at |Q_op|.
putting a ":gui" command in the .gvimrc file, before where the value putting a ":gui" command in the .gvimrc file, before where the value
of 'background' is used (e.g., before ":syntax on"). of 'background' is used (e.g., before ":syntax on").
For MS-DOS, Windows and OS/2 the default is "dark". For MS-Windows the default is "dark".
For other systems "dark" is used when 'term' is "linux", For other systems "dark" is used when 'term' is "linux",
"screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark "screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark
background. Otherwise the default is "light". background. Otherwise the default is "light".
@ -910,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) eol allow backspacing over line breaks (join lines)
start allow backspacing over the start of insert; CTRL-W and CTRL-U start allow backspacing over the start of insert; CTRL-W and CTRL-U
stop once at the start of insert. 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. When the value is empty, Vi compatible backspacing is used.
@ -918,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) 0 same as ":set backspace=" (Vi compatible)
1 same as ":set backspace=indent,eol" 1 same as ":set backspace=indent,eol"
2 same as ":set backspace=indent,eol,start" 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. See |:fixdel| if your <BS> or <Del> key does not do what you want.
NOTE: This option is set to "" when 'compatible' is set. NOTE: This option is set to "" when 'compatible' is set.
@ -1007,7 +1015,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'backupdir'* *'bdir'* *'backupdir'* *'bdir'*
'backupdir' 'bdir' string (default for Amiga: ".,t:", 'backupdir' 'bdir' string (default for Amiga: ".,t:",
for MS-DOS and Win32: ".,$TEMP,c:/tmp,c:/temp" for Win32: ".,$TEMP,c:/tmp,c:/temp"
for Unix: ".,~/tmp,~/") for Unix: ".,~/tmp,~/")
global global
List of directories for the backup file, separated with commas. List of directories for the backup file, separated with commas.
@ -1018,9 +1026,9 @@ A jump table for the options with a short description can be found at |Q_op|.
impossible!). Writing may fail because of this. impossible!). Writing may fail because of this.
- A directory "." means to put the backup file in the same directory - A directory "." means to put the backup file in the same directory
as the edited file. as the edited file.
- A directory starting with "./" (or ".\" for MS-DOS et al.) means to - A directory starting with "./" (or ".\" for MS-Windows) means to put
put the backup file relative to where the edited file is. The the backup file relative to where the edited file is. The leading
leading "." is replaced with the path name of the edited file. "." is replaced with the path name of the edited file.
("." inside a directory name has no special meaning). ("." inside a directory name has no special meaning).
- Spaces after the comma are ignored, other spaces are considered part - Spaces after the comma are ignored, other spaces are considered part
of the directory name. To have a space at the start of a directory of the directory name. To have a space at the start of a directory
@ -1375,6 +1383,7 @@ A jump table for the options with a short description can be found at |Q_op|.
This option is used together with 'bufhidden' and 'swapfile' to This option is used together with 'bufhidden' and 'swapfile' to
specify special kinds of buffers. See |special-buffers|. specify special kinds of buffers. See |special-buffers|.
Also see |win_gettype()|, which returns the type of the window.
Be careful with changing this option, it can have many side effects! Be careful with changing this option, it can have many side effects!
@ -1770,7 +1779,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'esckeys' & off no <Esc>-keys in Insert mode 'esckeys' & off no <Esc>-keys in Insert mode
'expandtab' + off tabs not expanded to spaces 'expandtab' + off tabs not expanded to spaces
'fileformats' & "" no automatic file format detection, 'fileformats' & "" no automatic file format detection,
"dos,unix" except for DOS, Windows and OS/2 "dos,unix" except for MS-Windows
'formatexpr' + "" use 'formatprg' for auto-formatting 'formatexpr' + "" use 'formatprg' for auto-formatting
'formatoptions' & "vt" Vi compatible formatting 'formatoptions' & "vt" Vi compatible formatting
'gdefault' + off no default 'g' flag for ":s" 'gdefault' + off no default 'g' flag for ":s"
@ -1882,9 +1891,9 @@ A jump table for the options with a short description can be found at |Q_op|.
When this option is set it overrules 'shellslash' for completion: When this option is set it overrules 'shellslash' for completion:
- When this option is set to "slash", a forward slash is used for path - When this option is set to "slash", a forward slash is used for path
completion in insert mode. This is useful when editing HTML tag, or completion in insert mode. This is useful when editing HTML tag, or
Makefile with 'noshellslash' on Windows. Makefile with 'noshellslash' on MS-Windows.
- When this option is set to "backslash", backslash is used. This is - When this option is set to "backslash", backslash is used. This is
useful when editing a batch file with 'shellslash' set on Windows. useful when editing a batch file with 'shellslash' set on MS-Windows.
- When this option is empty, same character is used as for - When this option is empty, same character is used as for
'shellslash'. 'shellslash'.
For Insert mode completion the buffer-local value is used. For For Insert mode completion the buffer-local value is used. For
@ -2700,7 +2709,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'directory'* *'dir'* *'directory'* *'dir'*
'directory' 'dir' string (default for Amiga: ".,t:", 'directory' 'dir' string (default for Amiga: ".,t:",
for MS-DOS and Win32: ".,$TEMP,c:\tmp,c:\temp" for Win32: ".,$TEMP,c:\tmp,c:\temp"
for Unix: ".,~/tmp,/var/tmp,/tmp") for Unix: ".,~/tmp,/var/tmp,/tmp")
global global
List of directory names for the swap file, separated with commas. List of directory names for the swap file, separated with commas.
@ -2712,9 +2721,9 @@ A jump table for the options with a short description can be found at |Q_op|.
the edited file. On Unix, a dot is prepended to the file name, so the edited file. On Unix, a dot is prepended to the file name, so
it doesn't show in a directory listing. On MS-Windows the "hidden" it doesn't show in a directory listing. On MS-Windows the "hidden"
attribute is set and a dot prepended if possible. attribute is set and a dot prepended if possible.
- A directory starting with "./" (or ".\" for MS-DOS et al.) means to - A directory starting with "./" (or ".\" for MS-Windows) means to put
put the swap file relative to where the edited file is. The leading the swap file relative to where the edited file is. The leading "."
"." is replaced with the path name of the edited file. is replaced with the path name of the edited file.
- For Unix and Win32, if a directory ends in two path separators "//", - For Unix and Win32, if a directory ends in two path separators "//",
the swap file name will be built from the complete path to the file the swap file name will be built from the complete path to the file
with all path separators substituted to percent '%' signs. This will with all path separators substituted to percent '%' signs. This will
@ -3586,17 +3595,16 @@ A jump table for the options with a short description can be found at |Q_op|.
r-cr:hor20-Cursor/lCursor, r-cr:hor20-Cursor/lCursor,
sm:block-Cursor sm:block-Cursor
-blinkwait175-blinkoff150-blinkon175", -blinkwait175-blinkoff150-blinkon175",
for MS-DOS and Win32 console: for Win32 console:
"n-v-c:block,o:hor50,i-ci:hor15, "n-v-c:block,o:hor50,i-ci:hor15,
r-cr:hor30,sm:block") r-cr:hor30,sm:block")
global global
{only available when compiled with GUI enabled, and {only available when compiled with GUI enabled, and
for MS-DOS and Win32 console} for Win32 console}
This option tells Vim what the cursor should look like in different This option tells Vim what the cursor should look like in different
modes. It fully works in the GUI. In an MSDOS or Win32 console, only modes. It fully works in the GUI. In a Win32 console, only the
the height of the cursor can be changed. This can be done by height of the cursor can be changed. This can be done by specifying a
specifying a block cursor, or a percentage for a vertical or block cursor, or a percentage for a vertical or horizontal cursor.
horizontal cursor.
For a console the 't_SI', 't_SR', and 't_EI' escape sequences are For a console the 't_SI', 't_SR', and 't_EI' escape sequences are
used. used.
@ -3764,7 +3772,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'guitablabel' can be used to change the text in the labels. 'guitablabel' can be used to change the text in the labels.
When 'e' is missing a non-GUI tab pages line may be used. When 'e' is missing a non-GUI tab pages line may be used.
The GUI tabs are only supported on some systems, currently The GUI tabs are only supported on some systems, currently
GTK, Motif, Mac OS/X and MS-Windows. GTK, Motif, Mac OS/X, Haiku, and MS-Windows.
*'go-f'* *'go-f'*
'f' Foreground: Don't use fork() to detach the GUI from the shell 'f' Foreground: Don't use fork() to detach the GUI from the shell
where it was started. Use this for programs that wait for the where it was started. Use this for programs that wait for the
@ -3873,7 +3881,7 @@ A jump table for the options with a short description can be found at |Q_op|.
< <
*'helpfile'* *'hf'* *'helpfile'* *'hf'*
'helpfile' 'hf' string (default (MSDOS) "$VIMRUNTIME\doc\help.txt" 'helpfile' 'hf' string (default (MS-Windows) "$VIMRUNTIME\doc\help.txt"
(others) "$VIMRUNTIME/doc/help.txt") (others) "$VIMRUNTIME/doc/help.txt")
global global
Name of the main help file. All distributed help files should be Name of the main help file. All distributed help files should be
@ -4442,7 +4450,7 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: This option is reset when 'compatible' is set. NOTE: This option is reset when 'compatible' is set.
*'isfname'* *'isf'* *'isfname'* *'isf'*
'isfname' 'isf' string (default for MS-DOS, Win32 and OS/2: 'isfname' 'isf' string (default for Win32:
"@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=" "@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,="
for AMIGA: "@,48-57,/,.,-,_,+,,,$,:" for AMIGA: "@,48-57,/,.,-,_,+,,,$,:"
for VMS: "@,48-57,/,.,-,_,+,,,#,$,%,<,>,[,],:,;,~" for VMS: "@,48-57,/,.,-,_,+,,,#,$,%,<,>,[,],:,;,~"
@ -4496,7 +4504,7 @@ A jump table for the options with a short description can be found at |Q_op|.
See |option-backslash| about including spaces and backslashes. See |option-backslash| about including spaces and backslashes.
*'isident'* *'isi'* *'isident'* *'isi'*
'isident' 'isi' string (default for MS-DOS, Win32 and OS/2: 'isident' 'isi' string (default for Win32:
"@,48-57,_,128-167,224-235" "@,48-57,_,128-167,224-235"
otherwise: "@,48-57,_,192-255") otherwise: "@,48-57,_,192-255")
global global
@ -4510,7 +4518,7 @@ A jump table for the options with a short description can be found at |Q_op|.
expand "$HOME/.viminfo". Maybe you should change 'iskeyword' instead. expand "$HOME/.viminfo". Maybe you should change 'iskeyword' instead.
*'iskeyword'* *'isk'* *'iskeyword'* *'isk'*
'iskeyword' 'isk' string (Vim default for MS-DOS and Win32: 'iskeyword' 'isk' string (Vim default for Win32:
"@,48-57,_,128-167,224-235" "@,48-57,_,128-167,224-235"
otherwise: "@,48-57,_,192-255" otherwise: "@,48-57,_,192-255"
Vi default: "@,48-57,_") Vi default: "@,48-57,_")
@ -4530,7 +4538,7 @@ A jump table for the options with a short description can be found at |Q_op|.
set and to the Vim default value when 'compatible' is reset. set and to the Vim default value when 'compatible' is reset.
*'isprint'* *'isp'* *'isprint'* *'isp'*
'isprint' 'isp' string (default for MS-DOS, Win32, OS/2 and Macintosh: 'isprint' 'isp' string (default for Win32 and Macintosh:
"@,~-255"; otherwise: "@,161-255") "@,~-255"; otherwise: "@,161-255")
global global
The characters given by this option are displayed directly on the The characters given by this option are displayed directly on the
@ -4641,8 +4649,8 @@ A jump table for the options with a short description can be found at |Q_op|.
be able to execute Normal mode commands. be able to execute Normal mode commands.
This is the opposite of the 'keymap' option, where characters are This is the opposite of the 'keymap' option, where characters are
mapped in Insert mode. mapped in Insert mode.
Also consider resetting 'langremap' to avoid 'langmap' applies to Also consider setting 'langremap' to off, to prevent 'langmap' from
characters resulting from a mapping. applying to characters resulting from a mapping.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.
@ -4707,7 +4715,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'langnoremap' is set to the inverted value, and the other way around. 'langnoremap' is set to the inverted value, and the other way around.
*'langremap'* *'lrm'* *'nolangremap'* *'nolrm'* *'langremap'* *'lrm'* *'nolangremap'* *'nolrm'*
'langremap' 'lrm' boolean (default on, reset in |defaults.vim|) 'langremap' 'lrm' boolean (default on, set to off in |defaults.vim|)
global global
{only available when compiled with the |+langmap| {only available when compiled with the |+langmap|
feature} feature}
@ -5205,13 +5213,13 @@ A jump table for the options with a short description can be found at |Q_op|.
set and to the Vim default value when 'compatible' is reset. set and to the Vim default value when 'compatible' is reset.
*'mouse'* *E538* *'mouse'* *E538*
'mouse' string (default "", "a" for GUI, MS-DOS and Win32, 'mouse' string (default "", "a" for GUI and Win32,
set to "a" or "nvi" in |defaults.vim|) set to "a" or "nvi" in |defaults.vim|)
global global
Enable the use of the mouse. Works for most terminals (xterm, MS-DOS, Enable the use of the mouse. Works for most terminals (xterm, Win32
Win32 |win32-mouse|, QNX pterm, *BSD console with sysmouse and Linux |win32-mouse|, QNX pterm, *BSD console with sysmouse and Linux console
console with gpm). For using the mouse in the GUI, see |gui-mouse|. with gpm). For using the mouse in the GUI, see |gui-mouse|. The
The mouse can be enabled for different modes: mouse can be enabled for different modes:
n Normal mode and Terminal modes n Normal mode and Terminal modes
v Visual mode v Visual mode
i Insert mode i Insert mode
@ -5224,7 +5232,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 < If your terminal can't overrule the mouse events going to the
application, use: > application, use: >
:set mouse=nvi :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. back to Vim using the mouse events.
In |defaults.vim| "nvi" is used if the 'term' option is not matching In |defaults.vim| "nvi" is used if the 'term' option is not matching
"xterm". "xterm".
@ -5249,7 +5257,7 @@ A jump table for the options with a short description can be found at |Q_op|.
default because it makes using the pull down menus a little goofy, as default because it makes using the pull down menus a little goofy, as
a pointer transit may activate a window unintentionally. a pointer transit may activate a window unintentionally.
MS-Windows: Also see 'scrollfocus' for what window is scrolled when MS-Windows: Also see 'scrollfocus' for what window is scrolled when
using the mouse scroll whel. using the mouse scroll wheel.
*'mousehide'* *'mh'* *'nomousehide'* *'nomh'* *'mousehide'* *'mh'* *'nomousehide'* *'nomh'*
'mousehide' 'mh' boolean (default on) 'mousehide' 'mh' boolean (default on)
@ -5259,7 +5267,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The mouse pointer is restored when the mouse is moved. The mouse pointer is restored when the mouse is moved.
*'mousemodel'* *'mousem'* *'mousemodel'* *'mousem'*
'mousemodel' 'mousem' string (default "extend", "popup" for MS-DOS and Win32) 'mousemodel' 'mousem' string (default "extend", "popup" for Win32)
global global
Sets the model to use for the mouse. The name mostly specifies what Sets the model to use for the mouse. The name mostly specifies what
the right mouse button is used for: the right mouse button is used for:
@ -5362,7 +5370,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'mousetime'* *'mouset'* *'mousetime'* *'mouset'*
'mousetime' 'mouset' number (default 500) 'mousetime' 'mouset' number (default 500)
global global
Only for GUI, MS-DOS, Win32 and Unix with xterm. Defines the maximum Only for GUI, Win32 and Unix with xterm. Defines the maximum
time in msec between two mouse clicks for the second click to be time in msec between two mouse clicks for the second click to be
recognized as a multi click. recognized as a multi click.
@ -5419,6 +5427,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 bin If included, numbers starting with "0b" or "0B" will be
considered to be binary. Example: Using CTRL-X on considered to be binary. Example: Using CTRL-X on
"0b1000" subtracts one, resulting in "0b0111". "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 Numbers which simply begin with a digit in the range 1-9 are always
considered decimal. This also happens for numbers that are not considered decimal. This also happens for numbers that are not
recognized as octal or hex. recognized as octal or hex.
@ -5484,7 +5501,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'opendevice'* *'odev'* *'noopendevice'* *'noodev'* *'opendevice'* *'odev'* *'noopendevice'* *'noodev'*
'opendevice' 'odev' boolean (default off) 'opendevice' 'odev' boolean (default off)
global global
{only for MS-DOS, MS-Windows and OS/2} {only for MS-Windows}
Enable reading and writing from devices. This may get Vim stuck on a Enable reading and writing from devices. This may get Vim stuck on a
device that can be opened but doesn't actually do the I/O. Therefore device that can be opened but doesn't actually do the I/O. Therefore
it is off by default. it is off by default.
@ -5616,7 +5633,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'path'* *'pa'* *E343* *E345* *E347* *E854* *'path'* *'pa'* *E343* *E345* *E347* *E854*
'path' 'pa' string (default on Unix: ".,/usr/include,," 'path' 'pa' string (default on Unix: ".,/usr/include,,"
on OS/2: ".,/emx/include,,"
other systems: ".,,") other systems: ".,,")
global or local to buffer |global-local| global or local to buffer |global-local|
This is a list of directories which will be searched when using the This is a list of directories which will be searched when using the
@ -5882,6 +5898,21 @@ 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 'pyxversion' has no effect. The pyx* functions and commands are
always the same as the compiled version. 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.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.
@ -6077,7 +6108,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'restorescreen'* *'rs'* *'norestorescreen'* *'nors'* *'restorescreen'* *'rs'* *'norestorescreen'* *'nors'*
'restorescreen' 'rs' boolean (default on) 'restorescreen' 'rs' boolean (default on)
global global
{only in Windows 95/NT console version} {only in MS-Windows console version}
When set, the screen contents is restored when exiting Vim. This also When set, the screen contents is restored when exiting Vim. This also
happens when executing external commands. happens when executing external commands.
@ -6195,7 +6226,7 @@ A jump table for the options with a short description can be found at |Q_op|.
$VIMRUNTIME, $VIMRUNTIME,
$VIM/vimfiles/after, $VIM/vimfiles/after,
home:vimfiles/after" home:vimfiles/after"
PC, OS/2: "$HOME/vimfiles, PC: "$HOME/vimfiles,
$VIM/vimfiles, $VIM/vimfiles,
$VIMRUNTIME, $VIMRUNTIME,
$VIM/vimfiles/after, $VIM/vimfiles/after,
@ -6203,9 +6234,11 @@ A jump table for the options with a short description can be found at |Q_op|.
Macintosh: "$VIM:vimfiles, Macintosh: "$VIM:vimfiles,
$VIMRUNTIME, $VIMRUNTIME,
$VIM:vimfiles:after" $VIM:vimfiles:after"
RISC-OS: "Choices:vimfiles, Haiku: "$BE_USER_SETTINGS/vim,
$VIM/vimfiles,
$VIMRUNTIME, $VIMRUNTIME,
Choices:vimfiles/after" $VIM/vimfiles/after,
$BE_USER_SETTINGS/vim/after")
VMS: "sys$login:vimfiles, VMS: "sys$login:vimfiles,
$VIM/vimfiles, $VIM/vimfiles,
$VIMRUNTIME, $VIMRUNTIME,
@ -6221,6 +6254,7 @@ A jump table for the options with a short description can be found at |Q_op|.
compiler/ compiler files |:compiler| compiler/ compiler files |:compiler|
doc/ documentation |write-local-help| doc/ documentation |write-local-help|
ftplugin/ filetype plugins |write-filetype-plugin| ftplugin/ filetype plugins |write-filetype-plugin|
import/ files that are found by `:import`
indent/ indent scripts |indent-expression| indent/ indent scripts |indent-expression|
keymap/ key mapping files |mbyte-keymap| keymap/ key mapping files |mbyte-keymap|
lang/ menu translations |:menutrans| lang/ menu translations |:menutrans|
@ -6463,9 +6497,7 @@ A jump table for the options with a short description can be found at |Q_op|.
but the Windows version of Vim can source unix format scripts. but the Windows version of Vim can source unix format scripts.
*'shell'* *'sh'* *E91* *'shell'* *'sh'* *E91*
'shell' 'sh' string (default $SHELL or "sh", 'shell' 'sh' string (default $SHELL or "sh", Win32: "cmd.exe")
MS-DOS and Win32: "command.com" or
"cmd.exe", OS/2: "cmd")
global global
Name of the shell to use for ! and :! commands. When changing the Name of the shell to use for ! and :! commands. When changing the
value also check these options: 'shelltype', 'shellpipe', 'shellslash' value also check these options: 'shelltype', 'shellpipe', 'shellslash'
@ -6500,22 +6532,23 @@ A jump table for the options with a short description can be found at |Q_op|.
*'shellcmdflag'* *'shcf'* *'shellcmdflag'* *'shcf'*
'shellcmdflag' 'shcf' string (default: "-c"; 'shellcmdflag' 'shcf' string (default: "-c";
MS-DOS and Win32, when 'shell' does not Win32, when 'shell' does not contain "sh"
contain "sh" somewhere: "/c") somewhere: "/c")
global global
Flag passed to the shell to execute "!" and ":!" commands; e.g., Flag passed to the shell to execute "!" and ":!" commands; e.g.,
"bash.exe -c ls" or "command.com /c dir". For the MS-DOS-like "bash.exe -c ls" or "cmd.exe /c dir". For MS-Windows, the default is
systems, the default is set according to the value of 'shell', to set according to the value of 'shell', to reduce the need to set this
reduce the need to set this option by the user. option by the user.
On Unix it can have more than one flag. Each white space separated On Unix it can have more than one flag. Each white space separated
part is passed as an argument to the shell command. part is passed as an argument to the shell command.
See |option-backslash| about including spaces and backslashes. See |option-backslash| about including spaces and backslashes.
Also see |dos-shell| for MS-DOS and MS-Windows. Also see |dos-shell| for MS-Windows.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.
*'shellpipe'* *'sp'* *'shellpipe'* *'sp'*
'shellpipe' 'sp' string (default ">", "| tee", "|& tee" or "2>&1| tee") 'shellpipe' 'sp' string (default ">", ">%s 2>&1", "| tee", "|& tee" or
"2>&1| tee")
global global
{not available when compiled without the |+quickfix| {not available when compiled without the |+quickfix|
feature} feature}
@ -6525,8 +6558,9 @@ A jump table for the options with a short description can be found at |Q_op|.
The name of the temporary file can be represented by "%s" if necessary The name of the temporary file can be represented by "%s" if necessary
(the file name is appended automatically if no %s appears in the value (the file name is appended automatically if no %s appears in the value
of this option). of this option).
For the Amiga and MS-DOS the default is ">". The output is directly For the Amiga the default is ">". For MS-Windows the default is
saved in a file and not echoed to the screen. ">%s 2>&1". The output is directly saved in a file and not echoed to
the screen.
For Unix the default it "| tee". The stdout of the compiler is saved For Unix the default it "| tee". The stdout of the compiler is saved
in a file and echoed to the screen. If the 'shell' option is "csh" or in a file and echoed to the screen. If the 'shell' option is "csh" or
"tcsh" after initializations, the default becomes "|& tee". If the "tcsh" after initializations, the default becomes "|& tee". If the
@ -6549,7 +6583,7 @@ A jump table for the options with a short description can be found at |Q_op|.
security reasons. security reasons.
*'shellquote'* *'shq'* *'shellquote'* *'shq'*
'shellquote' 'shq' string (default: ""; MS-DOS and Win32, when 'shell' 'shellquote' 'shq' string (default: ""; Win32, when 'shell'
contains "sh" somewhere: "\"") contains "sh" somewhere: "\"")
global global
Quoting character(s), put around the command passed to the shell, for Quoting character(s), put around the command passed to the shell, for
@ -6557,10 +6591,10 @@ A jump table for the options with a short description can be found at |Q_op|.
quoting. See 'shellxquote' to include the redirection. It's quoting. See 'shellxquote' to include the redirection. It's
probably not useful to set both options. probably not useful to set both options.
This is an empty string by default. Only known to be useful for This is an empty string by default. Only known to be useful for
third-party shells on MS-DOS-like systems, such as the MKS Korn Shell third-party shells on MS-Windows-like systems, such as the MKS Korn
or bash, where it should be "\"". The default is adjusted according Shell or bash, where it should be "\"". The default is adjusted
the value of 'shell', to reduce the need to set this option by the according the value of 'shell', to reduce the need to set this option
user. See |dos-shell|. by the user. See |dos-shell|.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.
@ -6592,11 +6626,11 @@ A jump table for the options with a short description can be found at |Q_op|.
*'shellslash'* *'ssl'* *'noshellslash'* *'nossl'* *'shellslash'* *'ssl'* *'noshellslash'* *'nossl'*
'shellslash' 'ssl' boolean (default off) 'shellslash' 'ssl' boolean (default off)
global global
{only for MSDOS, MS-Windows and OS/2} {only for MS-Windows}
When set, a forward slash is used when expanding file names. This is When set, a forward slash is used when expanding file names. This is
useful when a Unix-like shell is used instead of command.com or useful when a Unix-like shell is used instead of cmd.exe. Backward
cmd.exe. Backward slashes can still be typed, but they are changed to slashes can still be typed, but they are changed to forward slashes by
forward slashes by Vim. Vim.
Note that setting or resetting this option has no effect for some Note that setting or resetting this option has no effect for some
existing file names, thus this option needs to be set before opening existing file names, thus this option needs to be set before opening
any file for best results. This might change in the future. any file for best results. This might change in the future.
@ -6641,7 +6675,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'shellxescape'* *'sxe'* *'shellxescape'* *'sxe'*
'shellxescape' 'sxe' string (default: ""; 'shellxescape' 'sxe' string (default: "";
for MS-DOS and MS-Windows: "\"&|<>()@^") for MS-Windows: "\"&|<>()@^")
global global
When 'shellxquote' is set to "(" then the characters listed in this When 'shellxquote' is set to "(" then the characters listed in this
option will be escaped with a '^' character. This makes it possible option will be escaped with a '^' character. This makes it possible
@ -6751,11 +6785,9 @@ A jump table for the options with a short description can be found at |Q_op|.
Filenames are assumed to be 8 characters plus one extension of 3 Filenames are assumed to be 8 characters plus one extension of 3
characters. Multiple dots in file names are not allowed. When this characters. Multiple dots in file names are not allowed. When this
option is on, dots in file names are replaced with underscores when option is on, dots in file names are replaced with underscores when
adding an extension (".~" or ".swp"). This option is not available adding an extension (".~" or ".swp"). This option is useful
for MS-DOS, because then it would always be on. This option is useful
when editing files on an MS-DOS compatible filesystem, e.g., messydos when editing files on an MS-DOS compatible filesystem, e.g., messydos
or crossdos. When running the Win32 GUI version under Win32s, this or crossdos.
option is always on by default.
*'showbreak'* *'sbr'* *E595* *'showbreak'* *'sbr'* *E595*
'showbreak' 'sbr' string (default "") 'showbreak' 'sbr' string (default "")
@ -7073,6 +7105,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 up to the first character that is not an ASCII letter or number and
not a dash. Also see |set-spc-auto|. 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'*
'spellsuggest' 'sps' string (default "best") 'spellsuggest' 'sps' string (default "best")
@ -7290,8 +7332,8 @@ A jump table for the options with a short description can be found at |Q_op|.
< Beware that an expression is evaluated each and every time the status < Beware that an expression is evaluated each and every time the status
line is displayed. line is displayed.
*stl-%{* *g:actual_curbuf* *g:actual_curwin* *stl-%{* *g:actual_curbuf* *g:actual_curwin*
While evaluationg %{} the current buffer and current window will be While evaluating %{} the current buffer and current window will be set
set temporarily to that of the window (and buffer) whose statusline is temporarily to that of the window (and buffer) whose statusline is
currently being drawn. The expression will evaluate in this context. currently being drawn. The expression will evaluate in this context.
The variable "g:actual_curbuf" is set to the `bufnr()` number of the The variable "g:actual_curbuf" is set to the `bufnr()` number of the
real current buffer and "g:actual_curwin" to the |window-ID| of the real current buffer and "g:actual_curwin" to the |window-ID| of the
@ -7664,11 +7706,9 @@ A jump table for the options with a short description can be found at |Q_op|.
'term' string (default is $TERM, if that fails: 'term' string (default is $TERM, if that fails:
in the GUI: "builtin_gui" in the GUI: "builtin_gui"
on Amiga: "amiga" on Amiga: "amiga"
on BeOS: "beos-ansi" on Haiku: "xterm"
on Mac: "mac-ansi" on Mac: "mac-ansi"
on MiNT: "vt52" on MiNT: "vt52"
on MS-DOS: "pcterm"
on OS/2: "os2ansi"
on Unix: "ansi" on Unix: "ansi"
on VMS: "ansi" on VMS: "ansi"
on Win 32: "win32") on Win 32: "win32")
@ -7704,7 +7744,7 @@ A jump table for the options with a short description can be found at |Q_op|.
the GUI it only applies to the keyboard ('encoding' is used for the the GUI it only applies to the keyboard ('encoding' is used for the
display). Except for the Mac when 'macatsui' is off, then display). Except for the Mac when 'macatsui' is off, then
'termencoding' should be "macroman". 'termencoding' should be "macroman".
*E617* *E617* *E950*
Note: This does not apply to the GTK+ GUI. After the GUI has been Note: This does not apply to the GTK+ GUI. After the GUI has been
successfully initialized, 'termencoding' is forcibly set to "utf-8". successfully initialized, 'termencoding' is forcibly set to "utf-8".
Any attempts to set a different value will be rejected, and an error Any attempts to set a different value will be rejected, and an error
@ -7827,7 +7867,7 @@ A jump table for the options with a short description can be found at |Q_op|.
set and to the Vim default value when 'compatible' is reset. set and to the Vim default value when 'compatible' is reset.
*'textmode'* *'tx'* *'notextmode'* *'notx'* *'textmode'* *'tx'* *'notextmode'* *'notx'*
'textmode' 'tx' boolean (MS-DOS, Win32 and OS/2: default on, 'textmode' 'tx' boolean (Win32: default on,
others: default off) others: default off)
local to buffer local to buffer
This option is obsolete. Use 'fileformat'. This option is obsolete. Use 'fileformat'.
@ -7953,7 +7993,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" - VIM the server name |v:servername| or "VIM"
Only works if the terminal supports setting window titles Only works if the terminal supports setting window titles
(currently Amiga console, Win32 console, all GUI versions and (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). iris-ansi by default, where 't_ts' is taken from the builtin termcap).
*X11* *X11*
When Vim was compiled with HAVE_X11 defined, the original title will When Vim was compiled with HAVE_X11 defined, the original title will
@ -8215,8 +8255,7 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: This option is reset when 'compatible' is set. NOTE: This option is reset when 'compatible' is set.
*'undolevels'* *'ul'* *'undolevels'* *'ul'*
'undolevels' 'ul' number (default 100, 1000 for Unix, VMS, 'undolevels' 'ul' number (default 100, 1000 for Unix, VMS and Win32)
Win32 and OS/2)
global or local to buffer |global-local| global or local to buffer |global-local|
Maximum number of changes that can be undone. Since undo information Maximum number of changes that can be undone. Since undo information
is kept in memory, higher numbers will cause more memory to be used. is kept in memory, higher numbers will cause more memory to be used.
@ -8317,13 +8356,17 @@ A jump table for the options with a short description can be found at |Q_op|.
Currently, these messages are given: Currently, these messages are given:
>= 1 When the viminfo file is read or written. >= 1 When the viminfo file is read or written.
>= 2 When a file is ":source"'ed. >= 2 When a file is ":source"'ed.
>= 4 Shell commands.
>= 5 Every searched tags file and include file. >= 5 Every searched tags file and include file.
>= 8 Files for which a group of autocommands is executed. >= 8 Files for which a group of autocommands is executed.
>= 9 Every executed autocommand. >= 9 Every executed autocommand.
>= 11 Finding items in a path
>= 12 Every executed function. >= 12 Every executed function.
>= 13 When an exception is thrown, caught, finished, or discarded. >= 13 When an exception is thrown, caught, finished, or discarded.
>= 14 Anything pending in a ":finally" clause. >= 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 can also be set with the "-V" argument. See |-V|.
This option is also set by the |:verbose| command. This option is also set by the |:verbose| command.
@ -8343,12 +8386,11 @@ A jump table for the options with a short description can be found at |Q_op|.
displayed when 'verbosefile' is set. displayed when 'verbosefile' is set.
*'viewdir'* *'vdir'* *'viewdir'* *'vdir'*
'viewdir' 'vdir' string (default for Amiga, MS-DOS, OS/2 and Win32: 'viewdir' 'vdir' string (default for Amiga and Win32:
"$VIM/vimfiles/view", "$VIM/vimfiles/view",
for Unix: "~/.vim/view", for Unix: "~/.vim/view",
for Macintosh: "$VIM:vimfiles:view" for Macintosh: "$VIM:vimfiles:view"
for VMS: "sys$login:vimfiles/view" for VMS: "sys$login:vimfiles/view")
for RiscOS: "Choices:vimfiles/view")
global global
{not available when compiled without the |+mksession| {not available when compiled without the |+mksession|
feature} feature}
@ -8373,16 +8415,16 @@ A jump table for the options with a short description can be found at |Q_op|.
slash backslashes in file names replaced with forward slash backslashes in file names replaced with forward
slashes slashes
unix with Unix end-of-line format (single <NL>), even when unix with Unix end-of-line format (single <NL>), even when
on Windows or DOS on MS-Windows
curdir the window-local directory, if set with `:lcd` curdir the window-local directory, if set with `:lcd`
"slash" and "unix" are useful on Windows when sharing view files "slash" and "unix" are useful on MS-Windows when sharing view files
with Unix. The Unix version of Vim cannot source dos format scripts, with Unix. The Unix version of Vim cannot source dos format scripts,
but the Windows version of Vim can source unix format scripts. but the MS-Windows version of Vim can source unix format scripts.
*'viminfo'* *'vi'* *E526* *E527* *E528* *'viminfo'* *'vi'* *E526* *E527* *E528*
'viminfo' 'vi' string (Vi default: "", Vim default for MS-DOS, 'viminfo' 'vi' string (Vi default: "", Vim default for
Windows and OS/2: '100,<50,s10,h,rA:,rB:, MS-Windows: '100,<50,s10,h,rA:,rB:,
for Amiga: '100,<50,s10,h,rdf0:,rdf1:,rdf2: for Amiga: '100,<50,s10,h,rdf0:,rdf1:,rdf2:
for others: '100,<50,s10,h) for others: '100,<50,s10,h)
global global
@ -8464,7 +8506,7 @@ A jump table for the options with a short description can be found at |Q_op|.
r Removable media. The argument is a string (up to the next r Removable media. The argument is a string (up to the next
','). This parameter can be given several times. Each ','). This parameter can be given several times. Each
specifies the start of a path for which no marks will be specifies the start of a path for which no marks will be
stored. This is to avoid removable media. For MS-DOS you stored. This is to avoid removable media. For MS-Windows you
could use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:". You can could use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:". You can
also use it for temp files, e.g., for Unix: "r/tmp". Case is also use it for temp files, e.g., for Unix: "r/tmp". Case is
ignored. Maximum length of each 'r' argument is 50 ignored. Maximum length of each 'r' argument is 50
@ -8514,8 +8556,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'virtualedit'* *'ve'* *'virtualedit'* *'ve'*
'virtualedit' 've' string (default "") 'virtualedit' 've' string (default "")
global global
{not available when compiled without the
|+virtualedit| feature}
A comma separated list of these words: A comma separated list of these words:
block Allow virtual editing in Visual block mode. block Allow virtual editing in Visual block mode.
insert Allow virtual editing in Insert mode. insert Allow virtual editing in Insert mode.
@ -8961,6 +9001,6 @@ A jump table for the options with a short description can be found at |Q_op|.
global global
The number of milliseconds to wait for each character sent to the The number of milliseconds to wait for each character sent to the
screen. When non-zero, characters are sent to the terminal one by screen. When non-zero, characters are sent to the terminal one by
one. For MS-DOS pcterm this does not work. For debugging purposes. one. For debugging purposes.
vim:tw=78:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

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 VIM REFERENCE MANUAL by Bram Moolenaar
*BeOS* *BeBox* *beos* *BeOS* *BeBox*
This is a port of Vim 5.1 to the BeOS Preview Release 2 (also known as PR2) This file used to contain particularities for the BeOS port of Vim.
or later.
This file contains the particularities for the BeBox/BeOS version of Vim. For The BeOS support was removed in patch 8.2.0849.
matters not discussed in this file, Vim behaves very much like the Unix
|os_unix.txt| version.
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: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -39,7 +39,7 @@ If you move the executable to another location, you also need to set the $VIM
environment variable. The runtime files will be found in "$VIM/vim{version}". environment variable. The runtime files will be found in "$VIM/vim{version}".
Example: > Example: >
set VIM=E:\vim set VIM=E:\vim
Will find the version 5.4 runtime files in "e:\vim\vim54". Will find the version 8.2 runtime files in "e:\vim\vim82".
Note: This is _not_ recommended. The preferred way is to keep the executable Note: This is _not_ recommended. The preferred way is to keep the executable
in the runtime directory. in the runtime directory.
@ -47,17 +47,23 @@ If you move your executable AND want to put your "_vimrc" and "_gvimrc" files
somewhere else, you must set $VIM to where you vimrc files are, and set somewhere else, you must set $VIM to where you vimrc files are, and set
$VIMRUNTIME to the runtime files. Example: > $VIMRUNTIME to the runtime files. Example: >
set VIM=C:\usr\piet set VIM=C:\usr\piet
set VIMRUNTIME=E:\vim\vim54 set VIMRUNTIME=E:\vim\vim82
Will find "c:\user\piet\_vimrc" and the runtime files in "e:\vim\vim54". Will find "c:\user\piet\_vimrc" and the runtime files in "e:\vim\vim82".
See |$VIM| and |$VIMRUNTIME| for more information. See |$VIM| and |$VIMRUNTIME| for more information.
Under Windows 95, you can set $VIM in your C:\autoexec.bat file. For You can set environment variables for each user separately through the
example: > System Properties dialog box. The steps to do that:
set VIM=D:\vim 1. Type Windows Key + R to open the "Run" dialog box.
Under Windows NT, you can set environment variables for each user separately 2. Enter "sysdm.cpl" and press the "OK" button. The "System Properties"
under "Start/Settings/Control Panel->System", or through the properties in the dialog box will open.
menu of "My Computer", under the Environment Tab. 3. Select the "Advanced" tab and press the "Environment Variables..." button.
The "Environment Variables" dialog box will open.
4. Select an existing variable in the "User variables" list and press the
"Edit..." button to edit it. Or press the "New..." button to add a new
variable.
5. After you finished editing variables, press the "OK" button to save the
changes.
============================================================================== ==============================================================================
2. Using backslashes *dos-backslash* 2. Using backslashes *dos-backslash*

234
runtime/doc/os_haiku.txt Normal file
View File

@ -0,0 +1,234 @@
*os_haiku.txt* For Vim version 8.2. Last change: 2020 May 13
VIM REFERENCE MANUAL by Bram Moolenaar
*Haiku*
This file contains the particularities for the Haiku version of Vim. For
matters not discussed in this file, Vim behaves very much like the Unix
|os_unix.txt| version.
Haiku is an open-source operating system inspired by BeOS, that specifically
targets personal computing.
1. General |haiku-general|
2. Compiling Vim |haiku-compiling|
3. The Haiku GUI |haiku-gui|
4. The $VIM directory |haiku-vimdir|
5. The $USER_SETTINGS_DIR
directory |haiku-user-settings-dir|
6. Drag & Drop |haiku-dragndrop|
7. Single Launch vs. Multiple
Launch |haiku-launch|
8. Fonts |haiku-fonts|
9. The meta key modifier |haiku-meta|
10. Mouse key mappings |haiku-mouse|
11. Color names |haiku-colors|
12. GUI Toolbar Images |haiku-toolbar-images|
13. Credits |haiku-support-credits|
14. Bugs & to-do |haiku-bugs|
1. General *haiku-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.
2. Compiling Vim *haiku-compiling*
Vim can be compiled using the standard configure/make approach. Running
./configure without any arguments or passing --enable-gui=haiku, will compile
vim with the Haiku GUI support. Run ./configure --help , to find out other
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
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:
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
--mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
make clean
make install
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
--mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
--disable-gui
make clean
make install
3. The Haiku GUI *haiku-gui*
Normally Vim starts with the GUI if you start it as gvim or vim -g. The vim
version with GUI tries to determine if it was started from the Tracker instead
of the Terminal, and if so, uses the GUI anyway. However, the current detection
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. 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 Vim's 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/system/data/vim for Haikuports version,
/boot/system/non-packaged/data/vim for manual builds. 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/runtime/doc/help.txt
: syntax on
:endif
5. The $USER_SETTINGS_DIR directory *haiku-user-settings-dir*
$USER_SETTINGS_DIR is the symbolic name for the place where Haiku
configuration and settings files are stored.
The normal value is /boot/home/config/settings.
6. Drag & Drop *haiku-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|
7. Single Launch vs. Multiple Launch *haiku-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.
Another drawback of the Single Launch is silent ignore of "Open With ..."
requests by vim instance that running as non-GUI application even GUI support
was compiled in. Vim instance running with GUI has no such problems.
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.
8. Fonts *haiku-fonts*
Set fonts with >
:set guifont=DejaVu_Sans_Mono/Book/12
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. 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).
To verify which encodings are supported by the current font give 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.
GUI Font Selection Dialog is available at giving the:
:set guifont=*
command.
9. The meta key modifier *haiku-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.
10. Mouse key mappings *haiku-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 file
$VIM/macros/swapmous.vim for an example. |gui-mouse-mapping|
11. Color names *haiku-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.
12. GUI Toolbar Images *haiku-toolbar-images*
Alternative set of toolbar images should be the PNG image of any height you
like. Image width is calculated to contain at least 32 buttons in one-row
cells.
The image should be stored under the name $VIRUNTIME/bitmaps/builtin-tools.png
More info about the buttons assignment are at |builtin-tools|.
13. Credits *haiku-support-credits*
Haiku port is based on work done for BeOS version by many people
- BeBox GUI support Copyright 1998 by Olaf Seibert;
- Ported to R4 by Richard Offer <richard@whitequeen.com> Jul 99;
- Those who contributed, not listed above but not forgotten;
- Haiku support by Siarzhuk Zharski <imker@gmx.li> Apr-Mai 2009.
All the changes and patches released under vim-license.
Thank you, all!
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
repository.
Mailing list: https://www.vim.org/maillist.php
Vim Github repository: https://github.com/vim/vim
vim:tw=78:ts=8:ft=help:norl:

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 VIM REFERENCE MANUAL
@ -432,7 +432,6 @@ Terminal entry not found in termcap
builtin_gui builtin_gui
builtin_riscos builtin_riscos
builtin_amiga builtin_amiga
builtin_beos-ansi
builtin_ansi builtin_ansi
builtin_vt320 builtin_vt320
builtin_vt52 builtin_vt52

View File

@ -171,7 +171,7 @@ you will need to get a version older than that.
*win32s* *windows-3.1* *gui-w32s* *win16* *win32s* *windows-3.1* *gui-w32s* *win16*
There was a special version of gvim that runs under Windows 3.1 and 3.11. There was a special version of gvim that runs under Windows 3.1 and 3.11.
Support was removed in patch 7.4.1363. Support was removed in patch 7.4.1364.
============================================================================== ==============================================================================
7. Win32 mini FAQ *win32-faq* 7. Win32 mini FAQ *win32-faq*

View File

@ -131,7 +131,7 @@ gD Goto global Declaration. When the cursor is on a
*CTRL-C* *CTRL-C*
CTRL-C Interrupt current (search) command. Use CTRL-Break on CTRL-C Interrupt current (search) command. Use CTRL-Break on
MS-DOS |dos-CTRL-Break|. MS-Windows |dos-CTRL-Break|.
In Normal mode, any pending command is aborted. In Normal mode, any pending command is aborted.
*:noh* *:nohlsearch* *:noh* *:nohlsearch*

View File

@ -2,8 +2,8 @@
> >
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
< <
Authors: Charles E. Campbell <NdrOchip@ScampbellPfamilyA.Mbiz> Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
(remove NOSPAM from the email address) (remove NOSPAM from the email address)
*GetLatestVimScripts-copyright* *GetLatestVimScripts-copyright*
Copyright: (c) 2004-2012 by Charles E. Campbell *glvs-copyright* Copyright: (c) 2004-2012 by Charles E. Campbell *glvs-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this The VIM LICENSE (see |copyright|) applies to the files in this

View File

@ -1,7 +1,7 @@
*pi_logipat.txt* Logical Patterns Jun 22, 2015 *pi_logipat.txt* Logical Patterns May 01, 2019
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM> Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
Copyright: (c) 2004-2015 by Charles E. Campbell *logiPat-copyright* Copyright: (c) 2004-2016 by Charles E. Campbell *logiPat-copyright*
The VIM LICENSE applies to LogiPat.vim and LogiPat.txt The VIM LICENSE applies to LogiPat.vim and LogiPat.txt
(see |copyright|) except use "LogiPat" instead of "Vim" (see |copyright|) except use "LogiPat" instead of "Vim"
No warranty, express or implied. Use At-Your-Own-Risk. No warranty, express or implied. Use At-Your-Own-Risk.
@ -28,12 +28,14 @@ Copyright: (c) 2004-2015 by Charles E. Campbell *logiPat-copyright*
grouping ( ... ) grouping ( ... )
patterns "pattern" patterns "pattern"
*logiPat-cmd*
:LogiPat {boolean-logic pattern} *:LogiPat* :LogiPat {boolean-logic pattern} *:LogiPat*
:LogiPat is a command which takes a boolean-logic :LogiPat is a command which takes a boolean-logic
argument (|logiPat-arg|). argument (|logiPat-arg|).
:LP {boolean-logic pattern} *:LP* :LP {boolean-logic pattern} *:LP*
:LP is a shorthand command version of :LogiPat :LP is a shorthand command version of :LogiPat
(|logiPat-cmd|).
:LPE {boolean-logic pattern} *:LPE* :LPE {boolean-logic pattern} *:LPE*
No search is done, but the conversion from the No search is done, but the conversion from the
@ -69,7 +71,7 @@ Copyright: (c) 2004-2015 by Charles E. Campbell *logiPat-copyright*
< will search for lines containing the string :abc: < will search for lines containing the string :abc:
> >
:LogiPat "ab""cd" :LogiPat "ab""cd"
< will search for lines containing the string :ab"c: < will search for lines containing the string :ab"cd:
> >
:LogiPat !"abc" :LogiPat !"abc"
< will search for lines which don't contain the string :abc: < will search for lines which don't contain the string :abc:

View File

@ -1,9 +1,9 @@
*pi_netrw.txt* For Vim version 8.2. Last change: 2019 Dec 10 *pi_netrw.txt* For Vim version 8.2. Last change: 2020 Jan 14
------------------------------------------------ ------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell NETRW REFERENCE MANUAL by Charles E. Campbell
------------------------------------------------ ------------------------------------------------
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM> Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
(remove NOSPAM from Campbell's email first) (remove NOSPAM from Campbell's email first)
Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright* Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
@ -1565,8 +1565,8 @@ So, for example: >
file.rcs,v -> NFH_rcsCOMMAv() file.rcs,v -> NFH_rcsCOMMAv()
< <
If more such translations are necessary, please send me email: > If more such translations are necessary, please send me email: >
NdrOchip at ScampbellPfamily.AbizM - NOSPAM NcampObell@SdrPchip.AorgM-NOSPAM
with a request. with a request. (remove the embedded NOSPAM first)
Associated setting variable: |g:netrw_browsex_viewer| Associated setting variable: |g:netrw_browsex_viewer|
@ -3229,7 +3229,8 @@ If there are marked files: (see |netrw-mf|)
R [query: reply with s/^\(.*\)\.c$/\1.cpp/] R [query: reply with s/^\(.*\)\.c$/\1.cpp/]
< <
This example will mark all *.c files and then rename them to *.cpp This example will mark all *.c files and then rename them to *.cpp
files. files. Netrw will protect you from overwriting local files without
confirmation, but not remote ones.
The ctrl-X character has special meaning for renaming files: > The ctrl-X character has special meaning for renaming files: >
@ -3512,7 +3513,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
- Click "Add..." - Click "Add..."
- Set External Editor (adjust path as needed, include - Set External Editor (adjust path as needed, include
the quotes and !.! at the end): the quotes and !.! at the end):
"c:\Program Files\Vim\vim81\gvim.exe" !.! "c:\Program Files\Vim\vim82\gvim.exe" !.!
- Check that the filetype in the box below is - Check that the filetype in the box below is
{asterisk}.{asterisk} (all files), or whatever types {asterisk}.{asterisk} (all files), or whatever types
you want (cec: change {asterisk} to * ; I had to you want (cec: change {asterisk} to * ; I had to
@ -3836,12 +3837,18 @@ netrw:
Please send that information to <netrw.vim>'s maintainer along Please send that information to <netrw.vim>'s maintainer along
with the o/s you're using and the vim version that you're using with the o/s you're using and the vim version that you're using
(see |:version|) > (see |:version|) (remove the embedded NOSPAM first) >
NdrOchip at ScampbellPfamily.AbizM - NOSPAM NcampObell@SdrPchip.AorgM-NOSPAM
< <
============================================================================== ==============================================================================
12. History *netrw-history* {{{1 12. History *netrw-history* {{{1
v169: Dec 20, 2019 * (reported by amkarthik) that netrw's x
(|netrw-x|) would throw an error when
attempting to open a local directory.
v168: Dec 12, 2019 * scp timeout error message not reported,
hopefully now fixed (Shane Xb Qian)
v167: Nov 29, 2019 * netrw does a save&restore on @* and @+. v167: Nov 29, 2019 * netrw does a save&restore on @* and @+.
That causes problems with the clipboard. That causes problems with the clipboard.
Now restores occurs only if @* or @+ have Now restores occurs only if @* or @+ have
@ -4279,7 +4286,7 @@ netrw:
Vim editor by Bram Moolenaar (Thanks, Bram!) Vim editor by Bram Moolenaar (Thanks, Bram!)
dav support by C Campbell dav support by C Campbell
fetch support by Bram Moolenaar and C Campbell fetch support by Bram Moolenaar and C Campbell
ftp support by C Campbell <NdrOchip@ScampbellPfamily.AbizM> ftp support by C Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
http support by Bram Moolenaar <bram@moolenaar.net> http support by Bram Moolenaar <bram@moolenaar.net>
rcp rcp
rsync support by C Campbell (suggested by Erik Warendorph) rsync support by C Campbell (suggested by Erik Warendorph)
@ -4299,4 +4306,4 @@ netrw:
============================================================================== ==============================================================================
Modelines: {{{1 Modelines: {{{1
vim:tw=78:ts=8:ft=help:norl:fdm=marker vim:tw=78:ts=8:noet:ft=help:norl:fdm=marker

View File

@ -1,12 +1,12 @@
*pi_tar.txt* For Vim version 8.2. Last change: 2013 Apr 17 *pi_tar.txt* For Vim version 8.2. Last change: 2020 Jan 07
+====================+ +====================+
| Tar File Interface | | Tar File Interface |
+====================+ +====================+
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM> Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
(remove NOSPAM from Campbell's email first) (remove NOSPAM from Campbell's email first)
Copyright 2005-2012: *tar-copyright* Copyright 2005-2017: *tar-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this The VIM LICENSE (see |copyright|) applies to the files in this
package, including tarPlugin.vim, tar.vim, and pi_tar.txt. Like package, including tarPlugin.vim, tar.vim, and pi_tar.txt. Like
anything else that's except use "tar.vim" instead of "VIM". Like anything else that's except use "tar.vim" instead of "VIM". Like
@ -104,48 +104,67 @@ Copyright 2005-2012: *tar-copyright*
============================================================================== ==============================================================================
4. History *tar-history* 4. History *tar-history*
v31 Apr 02, 2017 * (klartext) reported that browsing encrypted
v28 Jun 23, 2011 * a few more decompression options (tbz tb2 txz) files in a zip archive created unencrypted
v27 May 31, 2011 * moved cygwin detection before g:tar_copycmd handling swap files. I am applying a similar fix
* inserted additional |:keepj| modifiers used on zip.vim to tar.vim: new buffers
* changed silent to sil! (|:silent|) are opened with |:noswapfile|.
v26 Aug 09, 2010 * uses buffer-local instead of window variables to hold May 16, 2017 * When the mouse option isn't empty, the
tarfile name leftmouse can be used to select a file
* inserted keepj before 0d to protect jump list in the tar-file listing.
v25 Jun 19, 2010 * (Jan Steffens) added support for xz compression v30 Apr 22, 2014 * .tgz files are ambiguous: they may have been
v24 Apr 07, 2009 * :Untarvim command implemented compressed with either gzip or bzip2. Tar.vim
Sep 28, 2009 * Added lzma support disambiguates by using unix's "file" command.
v22 Aug 08, 2008 * security fixes Feb 18, 2016 * Changed =~ to =~# where appropriate
v16 Jun 06, 2008 * tarfile:: used instead of tarfile: when editing files Feb 18, 2017 * Now also permits xz decompression
inside tarballs. Fixes a problem with tarballs called v28 Jun 23, 2011 * a few more decompression options (tbz tb2 txz)
things like c:\abc.tar. (tnx to Bill McCarthy) v27 May 31, 2011 * moved cygwin detection before g:tar_copycmd
v14 May 09, 2008 * arno caught a security bug handling
May 28, 2008 * various security improvements. Now requires patch 299 * inserted additional |:keepj| modifiers
which provides the fnameescape() function * changed silent to sil! (|:silent|)
May 30, 2008 * allows one to view *.gz and *.bz2 files that are in v26 Aug 09, 2010 * uses buffer-local instead of window variables
*.tar files. to hold tarfile name
v12 Sep 07, 2007 * &shq now used if not the empty string for g:tar_shq * inserted keepj before 0d to protect jump list
v10 May 02, 2006 * now using "redraw then echo" to show messages, instead v25 Jun 19, 2010 * (Jan Steffens) added support for xz
of "echo and prompt user" compression
v9 May 02, 2006 * improved detection of masquerading as tar file v24 Apr 07, 2009 * :Untarvim command implemented
v8 May 02, 2006 * allows editing of files that merely masquerade as tar Sep 28, 2009 * Added lzma support
files v22 Aug 08, 2008 * security fixes
v7 Mar 22, 2006 * work on making tar plugin work across network v16 Jun 06, 2008 * tarfile:: used instead of tarfile: when
Mar 27, 2006 * g:tar_cmd now available for users to change the name editing files inside tarballs. Fixes a
of the tar program to be used. By default, of course, problem with tarballs called things like
it's "tar". c:\abc.tar. (tnx to Bill McCarthy)
v6 Dec 21, 2005 * writing to files not in directories caused problems - v14 May 09, 2008 * arno caught a security bug
fixed (pointed out by Christian Robinson) May 28, 2008 * various security improvements. Now requires
v5 Nov 22, 2005 * report option workaround installed patch 299 which provides the fnameescape()
v3 Sep 16, 2005 * handles writing files in an archive back to the function
archive May 30, 2008 * allows one to view *.gz and *.bz2 files that
Oct 18, 2005 * <amatch> used instead of <afile> in autocmds are in *.tar files.
Oct 18, 2005 * handles writing to compressed archives v12 Sep 07, 2007 * &shq now used if not the empty string for
Nov 03, 2005 * handles writing tarfiles across a network using g:tar_shq
netrw#NetWrite() v10 May 02, 2006 * now using "redraw then echo" to show messages,
v2 * converted to use Vim7's new autoload feature by instead of "echo and prompt user"
Bram Moolenaar v9 May 02, 2006 * improved detection of masquerading as tar file
v1 (original) * Michael Toren (see http://michael.toren.net/code/) v8 May 02, 2006 * allows editing of files that merely masquerade
as tar files
v7 Mar 22, 2006 * work on making tar plugin work across network
Mar 27, 2006 * g:tar_cmd now available for users to change
the name of the tar program to be used. By
default, of course, it's "tar".
v6 Dec 21, 2005 * writing to files not in directories caused
problems - fixed (pointed out by
Christian Robinson)
v5 Nov 22, 2005 * report option workaround installed
v3 Sep 16, 2005 * handles writing files in an archive back to
the archive
Oct 18, 2005 * <amatch> used instead of <afile> in autocmds
Oct 18, 2005 * handles writing to compressed archives
Nov 03, 2005 * handles writing tarfiles across a network
using netrw#NetWrite()
v2 * converted to use Vim7's new autoload feature
by Bram Moolenaar
v1 (original) * Michael Toren
(see http://michael.toren.net/code/)
============================================================================== ==============================================================================
vim:tw=78:ts=8:noet:ft=help vim:tw=78:ts=8:noet:ft=help

View File

@ -4,7 +4,7 @@
Vimball Archiver Vimball Archiver
---------------- ----------------
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM> Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
(remove NOSPAM from Campbell's email first) (remove NOSPAM from Campbell's email first)
Copyright: (c) 2004-2015 by Charles E. Campbell *Vimball-copyright* Copyright: (c) 2004-2015 by Charles E. Campbell *Vimball-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this The VIM LICENSE (see |copyright|) applies to the files in this

View File

@ -1,10 +1,10 @@
*pi_zip.txt* For Vim version 8.2. Last change: 2016 Sep 13 *pi_zip.txt* For Vim version 8.2. Last change: 2020 Jan 07
+====================+ +====================+
| Zip File Interface | | Zip File Interface |
+====================+ +====================+
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM> Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
(remove NOSPAM from Campbell's email first) (remove NOSPAM from Campbell's email first)
Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright* Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this The VIM LICENSE (see |copyright|) applies to the files in this
@ -33,10 +33,11 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
also write to the file. Currently, one may not make a new file in also write to the file. Currently, one may not make a new file in
zip archives via the plugin. zip archives via the plugin.
COMMANDS~
*zip-x* *zip-x*
x : may extract a listed file when the cursor is atop it x : extract a listed file when the cursor is atop it
OPTIONS OPTIONS~
*g:zip_nomax* *g:zip_nomax*
@ -101,6 +102,10 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
============================================================================== ==============================================================================
4. History *zip-history* {{{1 4. History *zip-history* {{{1
v29 Apr 02, 2017 * (Klartext) reported that an encrypted zip file could
opened but the swapfile held unencrypted contents.
The solution is to edit the contents of a zip file
using the |:noswapfile| modifier.
v28 Oct 08, 2014 * changed the sanity checks for executables to reflect v28 Oct 08, 2014 * changed the sanity checks for executables to reflect
the command actually to be attempted in zip#Read() the command actually to be attempted in zip#Read()
and zip#Write() and zip#Write()

View File

@ -1,4 +1,4 @@
*popup.txt* For Vim version 8.2. Last change: 2019 Nov 30 *popup.txt* For Vim version 8.2. Last change: 2020 May 18
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -11,6 +11,7 @@ Displaying text in a floating window. *popup* *popup-window* *popupwin*
Window position and size |popup-position| Window position and size |popup-position|
Closing the popup window |popup-close| Closing the popup window |popup-close|
Popup buffer and window |popup-buffer| Popup buffer and window |popup-buffer|
Terminal in popup window |popup-terminal|
2. Functions |popup-functions| 2. Functions |popup-functions|
Details |popup-function-details| Details |popup-function-details|
3. Usage |popup-usage| 3. Usage |popup-usage|
@ -140,6 +141,31 @@ And options can be set on the buffer with `setbufvar()`, e.g.: >
You can also use `win_execute()` with a ":setlocal" command. You can also use `win_execute()` with a ":setlocal" command.
TERMINAL IN POPUP WINDOW *popup-terminal*
A special case is running a terminal in a popup window. Many rules are then
different: *E863*
- The popup window always has focus, it is not possible to switch to another
window.
- 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
program in the terminal to redraw everything.
- The default minimal size is 5 lines of 20 characters; Use the "minwidth" and
"minheight" parameters to set a different value.
- The terminal size will grow if the program running in the terminal writes
text. Set "maxheight" and "maxwidth" to restrict the size.
To run a terminal in a popup window, first create the terminal hidden. Then
pass the buffer number to popup_create(). Example: >
hi link Terminal Search
let buf = term_start(['picker', 'Something'], #{hidden: 1, term_finish: 'close'})
let winid = popup_create(buf, #{minwidth: 50, minheight: 20})
============================================================================== ==============================================================================
2. Functions *popup-functions* 2. Functions *popup-functions*
@ -172,6 +198,7 @@ Other:
|popup_getoptions()| get current options for a popup |popup_getoptions()| get current options for a popup
|popup_getpos()| get actual position and size of a popup |popup_getpos()| get actual position and size of a popup
|popup_locate()| find popup window at a screen position |popup_locate()| find popup window at a screen position
|popup_list()| get list of all popups
DETAILS *popup-function-details* DETAILS *popup-function-details*
@ -210,8 +237,15 @@ popup_beval({what}, {options}) *popup_beval()*
GetText()->popup_beval({}) GetText()->popup_beval({})
< <
*popup_clear()* *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. 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()* popup_close({id} [, {result}]) *popup_close()*
@ -385,10 +419,15 @@ popup_hide({id}) *popup_hide()*
hidden. hidden.
If window {id} does not exist nothing happens. If window {id} If window {id} does not exist nothing happens. If window {id}
exists but is not a popup window an error is given. *E993* exists but is not a popup window an error is given. *E993*
If popup window {id} contains a terminal an error is given.
Can also be used as a |method|: > Can also be used as a |method|: >
GetPopup()->popup_hide() GetPopup()->popup_hide()
popup_list() *popup_list()*
Return a List with the |window-ID| of all existing popups.
popup_locate({row}, {col}) *popup_locate()* popup_locate({row}, {col}) *popup_locate()*
Return the |window-ID| of the popup at screen position {row} Return the |window-ID| of the popup at screen position {row}
and {col}. If there are multiple popups the one with the and {col}. If there are multiple popups the one with the
@ -509,6 +548,8 @@ popup_setoptions({id}, {options}) *popup_setoptions()*
wrap wrap
zindex zindex
The options from |popup_move()| can also be used. 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()|. For "hidden" use |popup_hide()| and |popup_show()|.
"tabpage" cannot be changed. "tabpage" cannot be changed.
@ -546,21 +587,22 @@ properties. It is in one of four forms:
If you want to create a new buffer yourself use |bufadd()| and pass the buffer If you want to create a new buffer yourself use |bufadd()| and pass the buffer
number to popup_create(). number to popup_create().
It is not possible to use the buffer of a terminal window. *E278* It is not possible to use the buffer of a terminal window. *E278* You CAN
create a hidden terminal buffer and use that one in a popup window.
The second argument of |popup_create()| is a dictionary with options: The second argument of |popup_create()| is a dictionary with options:
line Screen line where to position the popup. Can use a line Screen line where to position the popup. Can use a
number or "cursor", "cursor+1" or "cursor-1" to use number or "cursor", "cursor+1" or "cursor-1" to use
the line of the cursor and add or subtract a number of the line of the cursor and add or subtract a number of
lines. If omitted the popup is vertically centered. lines. If omitted or zero the popup is vertically
The first line is 1. centered. The first line is 1.
When using "textprop" the number is relative to the When using "textprop" the number is relative to the
text property and can be negative. text property and can be negative.
col Screen column where to position the popup. Can use a col Screen column where to position the popup. Can use a
number or "cursor" to use the column of the cursor, number or "cursor" to use the column of the cursor,
"cursor+9" or "cursor-9" to add or subtract a number "cursor+9" or "cursor-9" to add or subtract a number
of columns. If omitted the popup is horizontally of columns. If omitted or zero the popup is
centered. The first column is 1. horizontally centered. The first column is 1.
When using "textprop" the number is relative to the When using "textprop" the number is relative to the
text property and can be negative. text property and can be negative.
pos "topleft", "topright", "botleft" or "botright": pos "topleft", "topright", "botleft" or "botright":

View File

@ -1,4 +1,4 @@
*print.txt* For Vim version 8.2. Last change: 2019 May 05 *print.txt* For Vim version 8.2. Last change: 2019 Dec 17
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -94,7 +94,7 @@ If the option is empty, then vim will use the system default printer for
*penc-option* *E620* *penc-option* *E620*
'printencoding' 'penc' String (default empty, except for: 'printencoding' 'penc' String (default empty, except for:
Windows, OS/2: cp1252, MS-Windows: cp1252,
Macintosh: mac-roman, Macintosh: mac-roman,
VMS: dec-mcs, VMS: dec-mcs,
HPUX: hp-roman8, HPUX: hp-roman8,
@ -124,7 +124,7 @@ cannot be converted will be replaced with upside down question marks.
Four print character encoding files are provided to support default Mac, VMS, Four print character encoding files are provided to support default Mac, VMS,
HPUX, and EBCDIC character encodings and are used by default on these HPUX, and EBCDIC character encodings and are used by default on these
platforms. Code page 1252 print character encoding is used by default on platforms. Code page 1252 print character encoding is used by default on
Windows and OS/2 platforms. MS-Windows platform.
*pexpr-option* *pexpr-option*
'printexpr' 'pexpr' String (default: see below) 'printexpr' 'pexpr' String (default: see below)
@ -142,8 +142,8 @@ the file: >
system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice) system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice)
. ' ' . v:fname_in) . delete(v:fname_in) + v:shell_error . ' ' . v:fname_in) . delete(v:fname_in) + v:shell_error
On MS-Dos, MS-Windows and OS/2 machines the default is to copy the file to the On MS-Windows machines the default is to copy the file to the currently
currently specified printdevice: > specified printdevice: >
system('copy' . ' ' . v:fname_in . (&printdevice == '' system('copy' . ' ' . v:fname_in . (&printdevice == ''
? ' LPT1:' : (' \"' . &printdevice . '\"'))) ? ' LPT1:' : (' \"' . &printdevice . '\"')))
@ -621,22 +621,15 @@ OpenVMS
http://wwwthep.physik.uni-mainz.de/~plass/gv/ http://wwwthep.physik.uni-mainz.de/~plass/gv/
Windows and OS/2 MS-Windows
- GSview. Obtainable from: - GSview. Obtainable from:
http://www.cs.wisc.edu/~ghost/gsview/ http://www.cs.wisc.edu/~ghost/gsview/
DOS
- ps_view. Obtainable from:
ftp://ftp.pg.gda.pl/pub/TeX/support/ps_view/
ftp://ftp.dante.de/tex-archive/support/ps_view/
Linux Linux
- GSview. Linux version of the popular Windows and OS/2 previewer. - GSview. Linux version of the popular MS-Windows previewer.
Obtainable from: Obtainable from:
http://www.cs.wisc.edu/~ghost/gsview/ http://www.cs.wisc.edu/~ghost/gsview/

View File

@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 8.2. Last change: 2019 Dec 07 *quickfix.txt* For Vim version 8.2. Last change: 2020 May 31
VIM REFERENCE MANUAL by Bram Moolenaar 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| 7. The error format |error-file-format|
8. The directory stack |quickfix-directory-stack| 8. The directory stack |quickfix-directory-stack|
9. Specific error file formats |errorformats| 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 The quickfix commands are not available when the |+quickfix| feature was
disabled at compile time. disabled at compile time.
@ -229,8 +230,16 @@ processing a quickfix or location list command, it will be aborted.
current window is used instead of the quickfix list. current window is used instead of the quickfix list.
*:cq* *:cquit* *:cq* *:cquit*
:cq[uit][!] Quit Vim with an error code, so that the compiler :cq[uit][!]
will not compile the same file again. :{N}cq[uit][!]
:cq[uit][!] {N} Quit Vim with error code {N}. {N} defaults to one.
Useful when Vim is called from another program:
e.g., a compiler will not compile the same file again,
`git commit` will abort the committing process, `fc`
(built-in for shells like bash and zsh) will not
execute the command, etc.
{N} can also be zero, in which case Vim exits
normally.
WARNING: All changes in files are lost! Also when the WARNING: All changes in files are lost! Also when the
[!] is not used. It works like ":qall!" |:qall|, [!] is not used. It works like ":qall!" |:qall|,
except that Vim returns a non-zero exit code. except that Vim returns a non-zero exit code.
@ -935,10 +944,10 @@ or simpler >
"$*" can be given multiple times, for example: > "$*" can be given multiple times, for example: >
:set makeprg=gcc\ -o\ $*\ $* :set makeprg=gcc\ -o\ $*\ $*
The 'shellpipe' option defaults to ">" for the Amiga, MS-DOS and Win32. This The 'shellpipe' option defaults to ">" for the Amiga and ">%s 2>&1" for Win32.
means that the output of the compiler is saved in a file and not shown on the This means that the output of the compiler is saved in a file and not shown on
screen directly. For Unix "| tee" is used. The compiler output is shown on the screen directly. For Unix "| tee" is used. The compiler output is shown
the screen and saved in a file the same time. Depending on the shell used on the screen and saved in a file the same time. Depending on the shell used
"|& tee" or "2>&1| tee" is the default, so stderr output will be included. "|& tee" or "2>&1| tee" is the default, so stderr output will be included.
If 'shellpipe' is empty, the {errorfile} part will be omitted. This is useful If 'shellpipe' is empty, the {errorfile} part will be omitted. This is useful
@ -1099,7 +1108,7 @@ id-utils) in a similar way to its compiler integration (see |:make| above).
allowed with |:bufdo|. allowed with |:bufdo|.
An example that uses the argument list and avoids An example that uses the argument list and avoids
errors for files without matches: > errors for files without matches: >
:silent argdo try :silent argdo try
\ | grepadd! something % \ | grepadd! something %
\ | catch /E480:/ \ | catch /E480:/
\ | endtry" \ | endtry"
@ -1302,7 +1311,7 @@ You can force the compiler to ignore makefiles by defining
b:tex_ignore_makefile or g:tex_ignore_makefile variable (they are checked for b:tex_ignore_makefile or g:tex_ignore_makefile variable (they are checked for
existence only). existence only).
If the compiler chose not to use make, it need to choose a right program for If the compiler chose not to use make, it needs to choose a right program for
processing your input. If b:tex_flavor or g:tex_flavor (in this precedence) processing your input. If b:tex_flavor or g:tex_flavor (in this precedence)
variable exists, it defines TeX flavor for :make (actually, this is the name variable exists, it defines TeX flavor for :make (actually, this is the name
of executed command), and if both variables do not exist, it defaults to of executed command), and if both variables do not exist, it defaults to
@ -1366,7 +1375,11 @@ Basic items
%v virtual column number (finds a number representing %v virtual column number (finds a number representing
screen column of the error (1 <tab> == 8 screen screen column of the error (1 <tab> == 8 screen
columns)) 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) %n error number (finds a number)
%m error message (finds a string) %m error message (finds a string)
%r matches the "rest" of a single-line file message %O/P/Q %r matches the "rest" of a single-line file message %O/P/Q
@ -1384,9 +1397,9 @@ normally happens by matching following characters and items. When nothing is
following the rest of the line is matched. If "%f" is followed by a '%' or a following the rest of the line is matched. If "%f" is followed by a '%' or a
backslash, it will look for a sequence of 'isfname' characters. backslash, it will look for a sequence of 'isfname' characters.
On MS-DOS, MS-Windows and OS/2 a leading "C:" will be included in "%f", even On MS-Windows a leading "C:" will be included in "%f", even when using "%f:".
when using "%f:". This means that a file name which is a single alphabetical This means that a file name which is a single alphabetical letter will not be
letter will not be detected. detected.
The "%p" conversion is normally followed by a "^". It's used for compilers The "%p" conversion is normally followed by a "^". It's used for compilers
that output a line like: > that output a line like: >
@ -1437,6 +1450,7 @@ prefixes are:
%E start of a multi-line error message %E start of a multi-line error message
%W start of a multi-line warning message %W start of a multi-line warning message
%I start of a multi-line informational 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) %A start of a multi-line message (unspecified type)
%> for next line start with current pattern again |efm-%>| %> for next line start with current pattern again |efm-%>|
%C continuation of a multi-line message %C continuation of a multi-line message
@ -1913,6 +1927,67 @@ 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 start of the file about how to use it. (This script is deprecated, see
|compiler-perl|.) |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 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: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.2. Last change: 2019 Dec 07 *quickref.txt* For Vim version 8.2. Last change: 2020 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar 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 'pythonthreedll' name of the Python 3 dynamic library
'pythonthreehome' name of the Python 3 home directory 'pythonthreehome' name of the Python 3 home directory
'pyxversion' 'pyx' Python version used for pyx* commands '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 'quoteescape' 'qe' escape characters used in a string
'readonly' 'ro' disallow writing the buffer 'readonly' 'ro' disallow writing the buffer
'redrawtime' 'rdt' timeout for 'hlsearch' and |:match| highlighting 'redrawtime' 'rdt' timeout for 'hlsearch' and |:match| highlighting
@ -891,7 +892,7 @@ Short explanation of each option: *option-list*
'shiftround' 'sr' round indent to multiple of shiftwidth 'shiftround' 'sr' round indent to multiple of shiftwidth
'shiftwidth' 'sw' number of spaces to use for (auto)indent step 'shiftwidth' 'sw' number of spaces to use for (auto)indent step
'shortmess' 'shm' list of flags, reduce length of messages 'shortmess' 'shm' list of flags, reduce length of messages
'shortname' 'sn' non-MS-DOS: Filenames assumed to be 8.3 chars 'shortname' 'sn' Filenames assumed to be 8.3 chars
'showbreak' 'sbr' string to use at the start of wrapped lines 'showbreak' 'sbr' string to use at the start of wrapped lines
'showcmd' 'sc' show (partial) command in status line 'showcmd' 'sc' show (partial) command in status line
'showfulltag' 'sft' show full tag pattern when completing tag 'showfulltag' 'sft' show full tag pattern when completing tag
@ -909,6 +910,7 @@ Short explanation of each option: *option-list*
'spellcapcheck' 'spc' pattern to locate end of a sentence 'spellcapcheck' 'spc' pattern to locate end of a sentence
'spellfile' 'spf' files where |zg| and |zw| store words 'spellfile' 'spf' files where |zg| and |zw| store words
'spelllang' 'spl' language(s) to do spell checking for 'spelllang' 'spl' language(s) to do spell checking for
'spelloptions' 'spo' options for spell checking
'spellsuggest' 'sps' method(s) used to suggest spelling corrections 'spellsuggest' 'sps' method(s) used to suggest spelling corrections
'splitbelow' 'sb' new window from split is below the current one 'splitbelow' 'sb' new window from split is below the current one
'splitright' 'spr' new window is put right of the current one 'splitright' 'spr' new window is put right of the current one
@ -1053,11 +1055,11 @@ Short explanation of each option: *option-list*
|g_CTRL-G| g CTRL-G show cursor column, line, and character |g_CTRL-G| g CTRL-G show cursor column, line, and character
position position
|CTRL-C| CTRL-C during searches: Interrupt the search |CTRL-C| CTRL-C during searches: Interrupt the search
|dos-CTRL-Break| CTRL-Break MS-DOS: during searches: Interrupt the search |dos-CTRL-Break| CTRL-Break MS-Windows: during searches: Interrupt the
search
|<Del>| <Del> while entering a count: delete last character |<Del>| <Del> while entering a count: delete last character
|:version| :ve[rsion] show version information |:version| :ve[rsion] show version information
|:mode| :mode N MS-DOS: set screen mode to N (number, C80, |:mode| :mode N set screen mode to N (obsolete)
C4350, etc.)
|:normal| :norm[al][!] {commands} |:normal| :norm[al][!] {commands}
execute Normal mode commands execute Normal mode commands
|Q| Q switch to "Ex" mode |Q| Q switch to "Ex" mode

View File

@ -1,4 +1,4 @@
*recover.txt* For Vim version 8.2. Last change: 2019 May 07 *recover.txt* For Vim version 8.2. Last change: 2020 May 09
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -36,7 +36,7 @@ with the extension ".swp".
- On Unix, a '.' is prepended to swap file names in the same directory as the - On Unix, a '.' is prepended to swap file names in the same directory as the
edited file. This avoids that the swap file shows up in a directory edited file. This avoids that the swap file shows up in a directory
listing. listing.
- On MS-DOS machines and when the 'shortname' option is on, any '.' in the - On MS-Windows machines and when the 'shortname' option is on, any '.' in the
original file name is replaced with '_'. original file name is replaced with '_'.
- If this file already exists (e.g., when you are recovering from a crash) a - If this file already exists (e.g., when you are recovering from a crash) a
warning is given and another extension is used, ".swo", ".swn", etc. warning is given and another extension is used, ".swo", ".swn", etc.
@ -75,7 +75,7 @@ If you want to put swap files in a fixed place, put a command resembling the
following ones in your .vimrc: following ones in your .vimrc:
:set dir=dh2:tmp (for Amiga) :set dir=dh2:tmp (for Amiga)
:set dir=~/tmp (for Unix) :set dir=~/tmp (for Unix)
:set dir=c:\\tmp (for MS-DOS and Win32) :set dir=c:\\tmp (for Win32)
This is also very handy when editing files on floppy. Of course you will have This is also very handy when editing files on floppy. Of course you will have
to create that "tmp" directory for this to work! to create that "tmp" directory for this to work!
@ -110,7 +110,7 @@ the time with the 'updatetime' option. The time is given in milliseconds.
After writing to the swap file Vim syncs the file to disk. This takes some After writing to the swap file Vim syncs the file to disk. This takes some
time, especially on busy Unix systems. If you don't want this you can set the time, especially on busy Unix systems. If you don't want this you can set the
'swapsync' option to an empty string. The risk of losing work becomes bigger 'swapsync' option to an empty string. The risk of losing work becomes bigger
though. On some non-Unix systems (MS-DOS, Amiga) the swap file won't be though. On some non-Unix systems (MS-Windows, Amiga) the swap file won't be
written at all. written at all.
If the writing to the swap file is not wanted, it can be switched off by If the writing to the swap file is not wanted, it can be switched off by
@ -125,12 +125,12 @@ If you want to make sure that your changes are in the swap file use this
command: command:
*:pre* *:preserve* *E313* *E314* *:pre* *:preserve* *E313* *E314*
:pre[serve] Write all text for all buffers into swap file. The :pre[serve] Write all text for the current buffer into its swap
original file is no longer needed for recovery. file. The original file is no longer needed for
This sets a flag in the current buffer. When the '&' recovery. This sets a flag in the current buffer.
flag is present in 'cpoptions' the swap file will not When the '&' flag is present in 'cpoptions' the swap
be deleted for this buffer when Vim exits and the file will not be deleted for this buffer when Vim
buffer is still loaded |cpo-&|. exits and the buffer is still loaded |cpo-&|.
A Vim swap file can be recognized by the first six characters: "b0VIM ". A Vim swap file can be recognized by the first six characters: "b0VIM ".
After that comes the version number, e.g., "3.0". 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 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 and the yank will overwrite the
recorded macro. 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 q Stops recording. (Implementation note: The 'q' that
stops recording is not stored in the register, unless stops recording is not stored in the register, unless
it was the result of a mapping) it was the result of a mapping)
@ -137,7 +142,7 @@ q Stops recording. (Implementation note: The 'q' that
used. used.
The register is executed like a mapping, that means The register is executed like a mapping, that means
that the difference between 'wildchar' and 'wildcharm' 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 For "@=" you are prompted to enter an expression. The
result of the expression is then executed. result of the expression is then executed.
See also |@:|. See also |@:|.
@ -158,6 +163,11 @@ q Stops recording. (Implementation note: The 'q' that
result of evaluating the expression is executed as an result of evaluating the expression is executed as an
Ex command. Ex command.
Mappings are not recognized in these commands. 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 Future: Will execute the register for each line in the
address range. address range.
@ -166,7 +176,7 @@ q Stops recording. (Implementation note: The 'q' that
[addr] (default is current line). [addr] (default is current line).
:[addr]@ *:@@* :[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). line [addr] (default is current line).
============================================================================== ==============================================================================
@ -414,13 +424,13 @@ with CTRL-V followed by the three digit decimal code. This does NOT work for
the <t_xx> termcap codes, these can only be used in mappings. the <t_xx> termcap codes, these can only be used in mappings.
*:source_crnl* *W15* *:source_crnl* *W15*
MS-DOS, Win32 and OS/2: Files that are read with ":source" normally have Win32: Files that are read with ":source" normally have <CR><NL> <EOL>s.
<CR><NL> <EOL>s. These always work. If you are using a file with <NL> <EOL>s These always work. If you are using a file with <NL> <EOL>s (for example, a
(for example, a file made on Unix), this will be recognized if 'fileformats' file made on Unix), this will be recognized if 'fileformats' is not empty and
is not empty and the first line does not end in a <CR>. This fails if the the first line does not end in a <CR>. This fails if the first line has
first line has something like ":map <F1> :help^M", where "^M" is a <CR>. If something like ":map <F1> :help^M", where "^M" is a <CR>. If the first line
the first line ends in a <CR>, but following ones don't, you will get an error ends in a <CR>, but following ones don't, you will get an error message,
message, because the <CR> from the first lines will be lost. because the <CR> from the first lines will be lost.
Mac Classic: Files that are read with ":source" normally have <CR> <EOL>s. Mac Classic: Files that are read with ":source" normally have <CR> <EOL>s.
These always work. If you are using a file with <NL> <EOL>s (for example, a These always work. If you are using a file with <NL> <EOL>s (for example, a
@ -430,7 +440,7 @@ linebreaks which has a <CR> in first line.
On other systems, Vim expects ":source"ed files to end in a <NL>. These On other systems, Vim expects ":source"ed files to end in a <NL>. These
always work. If you are using a file with <CR><NL> <EOL>s (for example, a always work. If you are using a file with <CR><NL> <EOL>s (for example, a
file made on MS-DOS), all lines will have a trailing <CR>. This may cause file made on MS-Windows), all lines will have a trailing <CR>. This may cause
problems for some commands (e.g., mappings). There is no automatic <EOL> problems for some commands (e.g., mappings). There is no automatic <EOL>
detection, because it's common to start with a line that defines a mapping detection, because it's common to start with a line that defines a mapping
that ends in a <CR>, which will confuse the automaton. that ends in a <CR>, which will confuse the automaton.

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 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar 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 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. 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 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, 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 words that have been seen often get a bigger bonus. The COMMON item in the
@ -326,25 +329,25 @@ Exceptions:
spell file is used. spell file is used.
For example, with these values: For example, with these values:
'runtimepath' is "~/.vim,/usr/share/vim81,~/.vim/after" 'runtimepath' is "~/.vim,/usr/share/vim82,~/.vim/after"
'encoding' is "iso-8859-2" 'encoding' is "iso-8859-2"
'spelllang' is "pl" 'spelllang' is "pl"
Vim will look for: Vim will look for:
1. ~/.vim/spell/pl.iso-8859-2.spl 1. ~/.vim/spell/pl.iso-8859-2.spl
2. /usr/share/vim81/spell/pl.iso-8859-2.spl 2. /usr/share/vim82/spell/pl.iso-8859-2.spl
3. ~/.vim/spell/pl.iso-8859-2.add.spl 3. ~/.vim/spell/pl.iso-8859-2.add.spl
4. /usr/share/vim81/spell/pl.iso-8859-2.add.spl 4. /usr/share/vim82/spell/pl.iso-8859-2.add.spl
5. ~/.vim/after/spell/pl.iso-8859-2.add.spl 5. ~/.vim/after/spell/pl.iso-8859-2.add.spl
This assumes 1. is not found and 2. is found. This assumes 1. is not found and 2. is found.
If 'encoding' is "latin1" Vim will look for: If 'encoding' is "latin1" Vim will look for:
1. ~/.vim/spell/pl.latin1.spl 1. ~/.vim/spell/pl.latin1.spl
2. /usr/share/vim81/spell/pl.latin1.spl 2. /usr/share/vim82/spell/pl.latin1.spl
3. ~/.vim/after/spell/pl.latin1.spl 3. ~/.vim/after/spell/pl.latin1.spl
4. ~/.vim/spell/pl.ascii.spl 4. ~/.vim/spell/pl.ascii.spl
5. /usr/share/vim81/spell/pl.ascii.spl 5. /usr/share/vim82/spell/pl.ascii.spl
6. ~/.vim/after/spell/pl.ascii.spl 6. ~/.vim/after/spell/pl.ascii.spl
This assumes none of them are found (Polish doesn't make sense when leaving This assumes none of them are found (Polish doesn't make sense when leaving

View File

@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.2. Last change: 2019 Dec 11 *starting.txt* For Vim version 8.2. Last change: 2020 Feb 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -58,10 +58,12 @@ filename One or more file names. The first one will be the current
that is read from stdin. The commands that would normally be that is read from stdin. The commands that would normally be
read from stdin will now be read from stderr. Example: > read from stdin will now be read from stderr. Example: >
find . -name "*.c" -print | vim - find . -name "*.c" -print | vim -
< The buffer will not be marked as modified, so that it's easy
to exit. Be careful to mark it as modified if you don't want < The buffer will be marked as modified, so that you are
to accidentally lose it. Example: > reminded to save the text when trying to exit. If you don't
ls | view - like that, put this these lines in your vimrc: >
" Don't set 'modified' when reading from stdin
au StdinReadPost * set nomodified
< <
Starting in Ex mode: > Starting in Ex mode: >
ex - ex -
@ -108,7 +110,7 @@ vimdiff vim -d Start in diff mode |diff-mode|
gvimdiff vim -gd Start in diff mode |diff-mode| gvimdiff vim -gd Start in diff mode |diff-mode|
Additional characters may follow, they are ignored. For example, you can have Additional characters may follow, they are ignored. For example, you can have
"gvim-5" to start the GUI. You must have an executable by that name then, of "gvim-8" to start the GUI. You must have an executable by that name then, of
course. course.
On Unix, you would normally have one executable called Vim, and links from the On Unix, you would normally have one executable called Vim, and links from the
@ -760,7 +762,7 @@ accordingly. Vim proceeds in this order:
1. Set the 'shell' and 'term' option *SHELL* *COMSPEC* *TERM* 1. Set the 'shell' and 'term' option *SHELL* *COMSPEC* *TERM*
The environment variable SHELL, if it exists, is used to set the The environment variable SHELL, if it exists, is used to set the
'shell' option. On MS-DOS and Win32, the COMSPEC variable is used 'shell' option. On Win32, the COMSPEC variable is used
if SHELL is not set. if SHELL is not set.
The environment variable TERM, if it exists, is used to set the 'term' The environment variable TERM, if it exists, is used to set the 'term'
option. However, 'term' will change later when starting the GUI (step option. However, 'term' will change later when starting the GUI (step
@ -784,12 +786,11 @@ accordingly. Vim proceeds in this order:
Places for your personal initializations: Places for your personal initializations:
Unix $HOME/.vimrc or $HOME/.vim/vimrc Unix $HOME/.vimrc or $HOME/.vim/vimrc
OS/2 $HOME/.vimrc, $HOME/vimfiles/vimrc
or $VIM/.vimrc (or _vimrc)
MS-Windows $HOME/_vimrc, $HOME/vimfiles/vimrc MS-Windows $HOME/_vimrc, $HOME/vimfiles/vimrc
or $VIM/_vimrc or $VIM/_vimrc
Amiga s:.vimrc, home:.vimrc, home:vimfiles:vimrc Amiga s:.vimrc, home:.vimrc, home:vimfiles:vimrc
or $VIM/.vimrc or $VIM/.vimrc
Haiku $HOME/config/settings/vim/vimrc
The files are searched in the order specified above and only the first The files are searched in the order specified above and only the first
one that is found is read. one that is found is read.
@ -811,13 +812,12 @@ accordingly. Vim proceeds in this order:
a. If vim was started as |evim| or |eview| or with the |-y| argument, the a. If vim was started as |evim| or |eview| or with the |-y| argument, the
script $VIMRUNTIME/evim.vim will be loaded. script $VIMRUNTIME/evim.vim will be loaded.
*system-vimrc* *system-vimrc*
b. For Unix, MS-DOS, MS-Windows, OS/2, VMS, Macintosh, RISC-OS and Amiga b. For Unix, MS-Windows, VMS, Macintosh and Amiga the system vimrc file
the system vimrc file is read for initializations. The path of this is read for initializations. The path of this file is shown with the
file is shown with the ":version" command. Mostly it's "$VIM/vimrc". ":version" command. Mostly it's "$VIM/vimrc". Note that this file is
Note that this file is ALWAYS read in 'compatible' mode, since the ALWAYS read in 'compatible' mode, since the automatic resetting of
automatic resetting of 'compatible' is only done later. Add a ":set 'compatible' is only done later. Add a ":set nocp" command if you
nocp" command if you like. like. For the Macintosh the $VIMRUNTIME/macmap.vim is read.
For the Macintosh the $VIMRUNTIME/macmap.vim is read.
*VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc* *$MYVIMRC* *VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc* *$MYVIMRC*
c. Five places are searched for initializations. The first that exists c. Five places are searched for initializations. The first that exists
@ -827,22 +827,24 @@ accordingly. Vim proceeds in this order:
I The environment variable VIMINIT (see also |compatible-default|) (*) I The environment variable VIMINIT (see also |compatible-default|) (*)
The value of $VIMINIT is used as an Ex command line. The value of $VIMINIT is used as an Ex command line.
II The user vimrc file(s): II The user vimrc file(s):
"$HOME/.vimrc" (for Unix and OS/2) (*) "$HOME/.vimrc" (for Unix) (*)
"$HOME/.vim/vimrc" (for Unix and OS/2) (*) "$HOME/.vim/vimrc" (for Unix) (*)
"s:.vimrc" (for Amiga) (*) "s:.vimrc" (for Amiga) (*)
"home:.vimrc" (for Amiga) (*) "home:.vimrc" (for Amiga) (*)
"home:vimfiles:vimrc" (for Amiga) (*) "home:vimfiles:vimrc" (for Amiga) (*)
"$VIM/.vimrc" (for OS/2 and Amiga) (*) "$VIM/.vimrc" (for Amiga) (*)
"$HOME/_vimrc" (for MS-DOS and Win32) (*) "$HOME/_vimrc" (for Win32) (*)
"$HOME/vimfiles/vimrc" (for MS-DOS and Win32) (*) "$HOME/vimfiles/vimrc" (for Win32) (*)
"$VIM/_vimrc" (for MS-DOS and Win32) (*) "$VIM/_vimrc" (for Win32) (*)
Note: For Unix, OS/2 and Amiga, when ".vimrc" does not exist, "$HOME/config/settings/vim/vimrc" (for Haiku) (*)
Note: For Unix and Amiga, when ".vimrc" does not exist,
"_vimrc" is also tried, in case an MS-DOS compatible file "_vimrc" is also tried, in case an MS-DOS compatible file
system is used. For MS-DOS and Win32 ".vimrc" is checked system is used. For MS-Windows ".vimrc" is checked after
after "_vimrc", in case long file names are used. "_vimrc", in case long file names are used.
Note: For MS-DOS and Win32, "$HOME" is checked first. If no Note: For Win32, "$HOME" is checked first. If no "_vimrc" or
"_vimrc" or ".vimrc" is found there, "$VIM" is tried. ".vimrc" is found there, "$VIM" is tried. See |$VIM| for when
See |$VIM| for when $VIM is not set. $VIM is not set.
III The environment variable EXINIT. III The environment variable EXINIT.
The value of $EXINIT is used as an Ex command line. The value of $EXINIT is used as an Ex command line.
IV The user exrc file(s). Same as for the user vimrc file, but with IV The user exrc file(s). Same as for the user vimrc file, but with
@ -855,12 +857,12 @@ accordingly. Vim proceeds in this order:
d. If the 'exrc' option is on (which is NOT the default), the current d. If the 'exrc' option is on (which is NOT the default), the current
directory is searched for three files. The first that exists is used, directory is searched for three files. The first that exists is used,
the others are ignored. the others are ignored.
- The file ".vimrc" (for Unix, Amiga and OS/2) (*) - The file ".vimrc" (for Unix, Amiga) (*)
"_vimrc" (for MS-DOS and Win32) (*) "_vimrc" (for Win32) (*)
- The file "_vimrc" (for Unix, Amiga and OS/2) (*) - The file "_vimrc" (for Unix, Amiga) (*)
".vimrc" (for MS-DOS and Win32) (*) ".vimrc" (for Win32) (*)
- The file ".exrc" (for Unix, Amiga and OS/2) - The file ".exrc" (for Unix, Amiga)
"_exrc" (for MS-DOS and Win32) "_exrc" (for Win32)
(*) Using this file or environment variable will cause 'compatible' to be (*) Using this file or environment variable will cause 'compatible' to be
off by default. See |compatible-default|. off by default. See |compatible-default|.
@ -948,17 +950,19 @@ Some hints on using initializations ~
Standard setup: Standard setup:
Create a vimrc file to set the default settings and mappings for all your edit Create a vimrc file to set the default settings and mappings for all your edit
sessions. Put it in a place so that it will be found by 3b: sessions. Put it in a place so that it will be found by 3b:
~/.vimrc (Unix and OS/2) ~/.vimrc (Unix)
s:.vimrc (Amiga) s:.vimrc (Amiga)
$VIM\_vimrc (MS-DOS and Win32) $VIM\_vimrc (Win32)
~/config/settings/vim/vimrc (Haiku)
Note that creating a vimrc file will cause the 'compatible' option to be off Note that creating a vimrc file will cause the 'compatible' option to be off
by default. See |compatible-default|. by default. See |compatible-default|.
Local setup: Local setup:
Put all commands that you need for editing a specific directory only into a Put all commands that you need for editing a specific directory only into a
vimrc file and place it in that directory under the name ".vimrc" ("_vimrc" vimrc file and place it in that directory under the name ".vimrc" ("_vimrc"
for MS-DOS and Win32). NOTE: To make Vim look for these special files you for Win32). NOTE: To make Vim look for these special files you have to turn
have to turn on the option 'exrc'. See |trojan-horse| too. on the option 'exrc'. See |trojan-horse| too.
System setup: System setup:
This only applies if you are managing a Unix system with several users and This only applies if you are managing a Unix system with several users and
@ -988,12 +992,11 @@ manual. The environment variables set with the old Manx Set command (before
version 5.0) are not recognized. version 5.0) are not recognized.
MS-DOS line separators ~ MS-Windows line separators ~
On MS-DOS-like systems (MS-DOS itself, Win32, and OS/2), Vim assumes that all On MS-Windows, Vim assumes that all the vimrc files have <CR> <NL> pairs as
the vimrc files have <CR> <NL> pairs as line separators. This will give line separators. This will give problems if you have a file with only <NL>s
problems if you have a file with only <NL>s and have a line like and have a line like ":map xx yy^M". The trailing ^M will be ignored.
":map xx yy^M". The trailing ^M will be ignored.
Vi compatible default value ~ Vi compatible default value ~
@ -1144,12 +1147,12 @@ will try to get the value for $VIM in this order:
variable too (the default is "$VIMRUNTIME/doc/help.txt": chicken-egg variable too (the default is "$VIMRUNTIME/doc/help.txt": chicken-egg
problem). The file name ("help.txt" or any other) is removed. Then problem). The file name ("help.txt" or any other) is removed. Then
trailing directory names are removed, in this order: "doc", "runtime" and trailing directory names are removed, in this order: "doc", "runtime" and
"vim{version}" (e.g., "vim54"). "vim{version}" (e.g., "vim82").
3. For MSDOS, Win32 and OS/2 Vim tries to use the directory name of the 3. For Win32 Vim tries to use the directory name of the executable. If it
executable. If it ends in "/src", this is removed. This is useful if you ends in "/src", this is removed. This is useful if you unpacked the .zip
unpacked the .zip file in some directory, and adjusted the search path to file in some directory, and adjusted the search path to find the vim
find the vim executable. Trailing directory names are removed, in this executable. Trailing directory names are removed, in this order: "runtime"
order: "runtime" and "vim{version}" (e.g., "vim54"). and "vim{version}" (e.g., "vim82").
4. For Unix the compile-time defined installation directory is used (see the 4. For Unix the compile-time defined installation directory is used (see the
output of ":version"). output of ":version").
@ -1167,7 +1170,7 @@ is the order used to find the value of $VIMRUNTIME:
1. If the environment variable $VIMRUNTIME is set, it is used. You can use 1. If the environment variable $VIMRUNTIME is set, it is used. You can use
this when the runtime files are in an unusual location. this when the runtime files are in an unusual location.
2. If "$VIM/vim{version}" exists, it is used. {version} is the version 2. If "$VIM/vim{version}" exists, it is used. {version} is the version
number of Vim, without any '-' or '.'. For example: "$VIM/vim54". This is number of Vim, without any '-' or '.'. For example: "$VIM/vim82". This is
the normal value for $VIMRUNTIME. the normal value for $VIMRUNTIME.
3. If "$VIM/runtime" exists, it is used. 3. If "$VIM/runtime" exists, it is used.
4. The value of $VIM is used. This is for backwards compatibility with older 4. The value of $VIM is used. This is for backwards compatibility with older
@ -1179,11 +1182,11 @@ For Unix, when there is a compiled-in default for $VIMRUNTIME (check the
output of ":version"), steps 2, 3 and 4 are skipped, and the compiled-in output of ":version"), steps 2, 3 and 4 are skipped, and the compiled-in
default is used after step 5. This means that the compiled-in default default is used after step 5. This means that the compiled-in default
overrules the value of $VIM. This is useful if $VIM is "/etc" and the runtime overrules the value of $VIM. This is useful if $VIM is "/etc" and the runtime
files are in "/usr/share/vim/vim54". files are in "/usr/share/vim/vim82".
Once Vim has done this once, it will set the $VIMRUNTIME environment variable. Once Vim has done this once, it will set the $VIMRUNTIME environment variable.
To change it later, use a ":let" command like this: > To change it later, use a ":let" command like this: >
:let $VIMRUNTIME = "/home/piet/vim/vim54" :let $VIMRUNTIME = "/home/piet/vim/vim82"
In case you need the value of $VIMRUNTIME in a shell (e.g., for a script that In case you need the value of $VIMRUNTIME in a shell (e.g., for a script that
greps in the help files) you might be able to use this: > greps in the help files) you might be able to use this: >
@ -1212,8 +1215,8 @@ CTRL-Z Suspend Vim, like ":stop".
buffers are not written, don't forget to bring Vim buffers are not written, don't forget to bring Vim
back to the foreground later! back to the foreground later!
In the GUI, suspending is implemented as iconising gvim. In Windows 95/NT, In the GUI, suspending is implemented as iconising gvim. In MS-Windows, gvim
gvim is minimized. is minimized.
On many Unix systems, it is possible to suspend Vim with CTRL-Z. This is only On many Unix systems, it is possible to suspend Vim with CTRL-Z. This is only
possible in Normal and Visual mode (see next chapter, |vim-modes|). Vim will possible in Normal and Visual mode (see next chapter, |vim-modes|). Vim will
@ -1280,7 +1283,7 @@ with ":map" and ":set" commands and write the modified file. First read the
default ".vimrc" in with a command like ":source ~piet/.vimrc.Cprogs", change default ".vimrc" in with a command like ":source ~piet/.vimrc.Cprogs", change
the settings and then save them in the current directory with ":mkvimrc!". If the settings and then save them in the current directory with ":mkvimrc!". If
you want to make this file your default .vimrc, move it to your home directory you want to make this file your default .vimrc, move it to your home directory
(on Unix), s: (Amiga) or $VIM directory (MS-DOS). You could also use (on Unix), s: (Amiga) or $VIM directory (MS-Windows). You could also use
autocommands |autocommand| and/or modelines |modeline|. autocommands |autocommand| and/or modelines |modeline|.
*vimrc-option-example* *vimrc-option-example*
@ -1541,8 +1544,8 @@ about to abandon with ":bdel", use ":wv". The '[' and ']' marks are not
stored, but the '"' mark is. The '"' mark is very useful for jumping to the stored, but the '"' mark is. The '"' mark is very useful for jumping to the
cursor position when the file was last exited. No marks are saved for files cursor position when the file was last exited. No marks are saved for files
that start with any string given with the "r" flag in 'viminfo'. This can be that start with any string given with the "r" flag in 'viminfo'. This can be
used to avoid saving marks for files on removable media (for MS-DOS you would used to avoid saving marks for files on removable media (for MS-Windows you
use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:"). would use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:").
The |v:oldfiles| variable is filled with the file names that the viminfo file The |v:oldfiles| variable is filled with the file names that the viminfo file
has marks for. has marks for.
@ -1573,11 +1576,10 @@ remembered.
VIMINFO FILE NAME *viminfo-file-name* VIMINFO FILE NAME *viminfo-file-name*
- The default name of the viminfo file is "$HOME/.viminfo" for Unix and OS/2, - The default name of the viminfo file is "$HOME/.viminfo" for Unix,
"s:.viminfo" for Amiga, "$HOME\_viminfo" for MS-DOS and Win32. For the last "s:.viminfo" for Amiga, "$HOME\_viminfo" for Win32. For Win32, when $HOME
two, when $HOME is not set, "$VIM\_viminfo" is used. When $VIM is also not is not set, "$VIM\_viminfo" is used. When $VIM is also not set,
set, "c:\_viminfo" is used. For OS/2 "$VIM/.viminfo" is used when $HOME is "c:\_viminfo" is used.
not set and $VIM is set.
- The 'n' flag in the 'viminfo' option can be used to specify another viminfo - The 'n' flag in the 'viminfo' option can be used to specify another viminfo
file name |'viminfo'|. file name |'viminfo'|.
- The "-i" Vim argument can be used to set another file name, |-i|. When the - The "-i" Vim argument can be used to set another file name, |-i|. When the

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.2. Last change: 2019 Dec 07 *syntax.txt* For Vim version 8.2. Last change: 2020 Jun 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -60,8 +60,8 @@ If the VIM environment variable is not set, Vim will try to find
the path in another way (see |$VIMRUNTIME|). Usually this works just the path in another way (see |$VIMRUNTIME|). Usually this works just
fine. If it doesn't, try setting the VIM environment variable to the fine. If it doesn't, try setting the VIM environment variable to the
directory where the Vim stuff is located. For example, if your syntax files directory where the Vim stuff is located. For example, if your syntax files
are in the "/usr/vim/vim81/syntax" directory, set $VIMRUNTIME to are in the "/usr/vim/vim82/syntax" directory, set $VIMRUNTIME to
"/usr/vim/vim81". You must do this in the shell, before starting Vim. "/usr/vim/vim82". You must do this in the shell, before starting Vim.
This command also sources the |menu.vim| script when the GUI is running or This command also sources the |menu.vim| script when the GUI is running or
will start soon. See |'go-M'| about avoiding that. will start soon. See |'go-M'| about avoiding that.
@ -79,9 +79,9 @@ with: >
For a color terminal see |:hi-normal-cterm|. For a color terminal see |:hi-normal-cterm|.
For setting up your own colors syntax highlighting see |syncolor|. For setting up your own colors syntax highlighting see |syncolor|.
NOTE: The syntax files on MS-DOS and Windows have lines that end in <CR><NL>. NOTE: The syntax files on MS-Windows have lines that end in <CR><NL>.
The files for Unix end in <NL>. This means you should use the right type of The files for Unix end in <NL>. This means you should use the right type of
file for your system. Although on MS-DOS and Windows the right format is file for your system. Although on MS-Windows the right format is
automatically selected if the 'fileformats' option is not empty. automatically selected if the 'fileformats' option is not empty.
NOTE: When using reverse video ("gvim -fg white -bg black"), the default value NOTE: When using reverse video ("gvim -fg white -bg black"), the default value
@ -217,7 +217,7 @@ The name for a highlight or syntax group must consist of ASCII letters, digits
and the underscore. As a regexp: "[a-zA-Z0-9_]*". However, Vim does not give and the underscore. As a regexp: "[a-zA-Z0-9_]*". However, Vim does not give
an error when using other characters. an error when using other characters.
To be able to allow each user to pick his favorite set of colors, there must To be able to allow each user to pick their favorite set of colors, there must
be preferred names for highlight groups that are common for many languages. be preferred names for highlight groups that are common for many languages.
These are the suggested group names (if syntax highlighting works properly These are the suggested group names (if syntax highlighting works properly
you can see the actual color, except for "Ignore"): you can see the actual color, except for "Ignore"):
@ -1214,11 +1214,13 @@ DESKTOP *desktop.vim* *ft-desktop-syntax*
Primary goal of this syntax file is to highlight .desktop and .directory files Primary goal of this syntax file is to highlight .desktop and .directory files
according to freedesktop.org standard: according to freedesktop.org standard:
http://standards.freedesktop.org/desktop-entry-spec/latest/ https://specifications.freedesktop.org/desktop-entry-spec/latest/
But actually almost none implements this standard fully. Thus it will To highlight nonstandard extensions that does not begin with X-, set >
highlight all Unix ini files. But you can force strict highlighting according let g:desktop_enable_nonstd = 1
to standard by placing this in your vimrc file: > Note that this may cause wrong highlight.
:let enforce_freedesktop_standard = 1 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* DIFF *diff.vim*
@ -2315,7 +2317,7 @@ contain very long structures that Vim does not synchronize anymore.
PAPP *papp.vim* *ft-papp-syntax* PAPP *papp.vim* *ft-papp-syntax*
The PApp syntax file handles .papp files and, to a lesser extend, .pxml The PApp syntax file handles .papp files and, to a lesser extent, .pxml
and .pxsl files which are all a mixture of perl/xml/html/other using xml and .pxsl files which are all a mixture of perl/xml/html/other using xml
as the top-level file format. By default everything inside phtml or pxml as the top-level file format. By default everything inside phtml or pxml
sections is treated as a string with embedded preprocessor commands. If sections is treated as a string with embedded preprocessor commands. If
@ -2687,12 +2689,12 @@ Note: only existence of these options matter, not their value. You can replace
QUAKE *quake.vim* *ft-quake-syntax* QUAKE *quake.vim* *ft-quake-syntax*
The Quake syntax definition should work for most any FPS (First Person The Quake syntax definition should work for most FPS (First Person Shooter)
Shooter) based on one of the Quake engines. However, the command names vary based on one of the Quake engines. However, the command names vary a bit
a bit between the three games (Quake, Quake 2, and Quake 3 Arena) so the between the three games (Quake, Quake 2, and Quake 3 Arena) so the syntax
syntax definition checks for the existence of three global variables to allow definition checks for the existence of three global variables to allow users
users to specify what commands are legal in their files. The three variables to specify what commands are legal in their files. The three variables can
can be set for the following effects: be set for the following effects:
set to highlight commands only available in Quake: > set to highlight commands only available in Quake: >
:let quake_is_quake1 = 1 :let quake_is_quake1 = 1
@ -2761,6 +2763,13 @@ This will add highlighting for the commands that BASH (version 2.05a and
later, and part earlier) adds. later, and part earlier) adds.
REGO *rego.vim* *ft-rego-syntax*
Rego is a query language developed by Styra. It is mostly used as a policy
language for kubernetes, but can be applied to almost anything. Files with
the following extensions are recognized as rego files: .rego.
RESTRUCTURED TEXT *rst.vim* *ft-rst-syntax* RESTRUCTURED TEXT *rst.vim* *ft-rst-syntax*
Syntax highlighting is enabled for code blocks within the document for a Syntax highlighting is enabled for code blocks within the document for a
@ -3021,7 +3030,7 @@ variables in your <.vimrc>:
ksh: > ksh: >
let g:is_kornshell = 1 let g:is_kornshell = 1
< posix: (using this is the nearly the same as setting g:is_kornshell to 1) > < posix: (using this is nearly the same as setting g:is_kornshell to 1) >
let g:is_posix = 1 let g:is_posix = 1
< bash: > < bash: >
let g:is_bash = 1 let g:is_bash = 1
@ -3629,6 +3638,26 @@ DEFINING CASE *:syn-case* *E390*
:sy[ntax] case :sy[ntax] case
Show either "syntax case match" or "syntax case ignore" (translated). 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* SPELL CHECKING *:syn-spell*
:sy[ntax] spell [toplevel | notoplevel | default] :sy[ntax] spell [toplevel | notoplevel | default]
@ -4092,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 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. ends. If the start and end are within the same line, there is no fold.
The 'foldnestmax' option limits the nesting of syntax folds. 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} {not available when Vim was compiled without |+folding| feature}
@ -4505,8 +4536,8 @@ two different ways:
(e.g., "syntax/pod.vim") the file is searched for in 'runtimepath'. (e.g., "syntax/pod.vim") the file is searched for in 'runtimepath'.
All matching files are loaded. Using a relative path is All matching files are loaded. Using a relative path is
recommended, because it allows a user to replace the included file recommended, because it allows a user to replace the included file
with his own version, without replacing the file that does the ":syn with their own version, without replacing the file that does the
include". ":syn include".
*E847* *E847*
The maximum number of includes is 999. The maximum number of includes is 999.
@ -4820,7 +4851,7 @@ mentioned for the default values. See |:verbose-cmd| for more information.
*highlight-args* *E416* *E417* *E423* *highlight-args* *E416* *E417* *E423*
There are three types of terminals for highlighting: There are three types of terminals for highlighting:
term a normal terminal (vt100, xterm) term a normal terminal (vt100, xterm)
cterm a color terminal (MS-DOS console, color-xterm, these have the "Co" cterm a color terminal (MS-Windows console, color-xterm, these have the "Co"
termcap entry) termcap entry)
gui the GUI gui the GUI
@ -4850,7 +4881,12 @@ term={attr-list} *attr-list* *highlight-term* *E418*
have the same effect. have the same effect.
"undercurl" is a curly underline. When "undercurl" is not possible "undercurl" is a curly underline. When "undercurl" is not possible
then "underline" is used. In general "undercurl" and "strikethrough" 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* start={term-list} *highlight-start* *E422*
stop={term-list} *term-list* *highlight-stop* stop={term-list} *term-list* *highlight-stop*
@ -4894,6 +4930,10 @@ cterm={attr-list} *highlight-cterm*
ctermfg={color-nr} *highlight-ctermfg* *E421* ctermfg={color-nr} *highlight-ctermfg* *E421*
ctermbg={color-nr} *highlight-ctermbg* 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 The {color-nr} argument is a color number. Its range is zero to
(not including) the number given by the termcap entry "Co". (not including) the number given by the termcap entry "Co".
The actual color with this number depends on the type of terminal The actual color with this number depends on the type of terminal
@ -4907,9 +4947,9 @@ ctermbg={color-nr} *highlight-ctermbg*
Unfortunately this means that it's not possible to get the same colors Unfortunately this means that it's not possible to get the same colors
for each user. See |xterm-color| for info about color xterms. for each user. See |xterm-color| for info about color xterms.
The MSDOS standard colors are fixed (in a console window), so these The MS-Windows standard colors are fixed (in a console window), so
have been used for the names. But the meaning of color names in X11 these have been used for the names. But the meaning of color names in
are fixed, so these color settings have been used, to make the X11 are fixed, so these color settings have been used, to make the
highlighting settings portable (complicated, isn't it?). The highlighting settings portable (complicated, isn't it?). The
following names are recognized, with the color number used: following names are recognized, with the color number used:
@ -4971,11 +5011,11 @@ ctermbg={color-nr} *highlight-ctermbg*
needs to reset the color when exiting. This is done with the "op" 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 termcap entry |t_op|. If this doesn't work correctly, try setting the
't_op' option in your .vimrc. 't_op' option in your .vimrc.
*E419* *E420* *E419* *E420* *E453*
When Vim knows the normal foreground and background colors, "fg" and When Vim knows the normal foreground, background and underline colors,
"bg" can be used as color names. This only works after setting the "fg", "bg" and "ul" can be used as color names. This only works after
colors for the Normal group and for the MS-DOS console. Example, for setting the colors for the Normal group and for the MS-Windows
reverse video: > console. Example, for reverse video: >
:highlight Visual ctermfg=bg ctermbg=fg :highlight Visual ctermfg=bg ctermbg=fg
< Note that the colors are used that are valid at the moment this < 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 are given. If the Normal group colors are changed later, the

View File

@ -1,4 +1,4 @@
*tabpage.txt* For Vim version 8.2. Last change: 2019 May 05 *tabpage.txt* For Vim version 8.2. Last change: 2020 Feb 06
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -138,7 +138,7 @@ something else.
:+tabclose " close the next tab page :+tabclose " close the next tab page
:1tabclose " close the first tab page :1tabclose " close the first tab page
:$tabclose " close the last tab page :$tabclose " close the last tab page
:tabclose -2 " close the two previous tab page :tabclose -2 " close the 2nd previous tab page
:tabclose + " close the next tab page :tabclose + " close the next tab page
:tabclose 3 " close the third tab page :tabclose 3 " close the third tab page
:tabclose $ " close the last tab page :tabclose $ " close the last tab page

View File

@ -810,6 +810,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'pyx' options.txt /*'pyx'* 'pyx' options.txt /*'pyx'*
'pyxversion' options.txt /*'pyxversion'* 'pyxversion' options.txt /*'pyxversion'*
'qe' options.txt /*'qe'* 'qe' options.txt /*'qe'*
'qftf' options.txt /*'qftf'*
'quickfixtextfunc' options.txt /*'quickfixtextfunc'*
'quote motion.txt /*'quote* 'quote motion.txt /*'quote*
'quoteescape' options.txt /*'quoteescape'* 'quoteescape' options.txt /*'quoteescape'*
'rdt' options.txt /*'rdt'* 'rdt' options.txt /*'rdt'*
@ -913,11 +915,13 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'spellcapcheck' options.txt /*'spellcapcheck'* 'spellcapcheck' options.txt /*'spellcapcheck'*
'spellfile' options.txt /*'spellfile'* 'spellfile' options.txt /*'spellfile'*
'spelllang' options.txt /*'spelllang'* 'spelllang' options.txt /*'spelllang'*
'spelloptions' options.txt /*'spelloptions'*
'spellsuggest' options.txt /*'spellsuggest'* 'spellsuggest' options.txt /*'spellsuggest'*
'spf' options.txt /*'spf'* 'spf' options.txt /*'spf'*
'spl' options.txt /*'spl'* 'spl' options.txt /*'spl'*
'splitbelow' options.txt /*'splitbelow'* 'splitbelow' options.txt /*'splitbelow'*
'splitright' options.txt /*'splitright'* 'splitright' options.txt /*'splitright'*
'spo' options.txt /*'spo'*
'spr' options.txt /*'spr'* 'spr' options.txt /*'spr'*
'sps' options.txt /*'sps'* 'sps' options.txt /*'sps'*
'sr' options.txt /*'sr'* 'sr' options.txt /*'sr'*
@ -956,10 +960,12 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
't_&8' term.txt /*'t_&8'* 't_&8' term.txt /*'t_&8'*
't_8b' term.txt /*'t_8b'* 't_8b' term.txt /*'t_8b'*
't_8f' term.txt /*'t_8f'* 't_8f' term.txt /*'t_8f'*
't_8u' term.txt /*'t_8u'*
't_@7' term.txt /*'t_@7'* 't_@7' term.txt /*'t_@7'*
't_AB' term.txt /*'t_AB'* 't_AB' term.txt /*'t_AB'*
't_AF' term.txt /*'t_AF'* 't_AF' term.txt /*'t_AF'*
't_AL' term.txt /*'t_AL'* 't_AL' term.txt /*'t_AL'*
't_AU' term.txt /*'t_AU'*
't_BD' term.txt /*'t_BD'* 't_BD' term.txt /*'t_BD'*
't_BE' term.txt /*'t_BE'* 't_BE' term.txt /*'t_BE'*
't_CS' term.txt /*'t_CS'* 't_CS' term.txt /*'t_CS'*
@ -1267,6 +1273,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+X11 various.txt /*+X11* +X11 various.txt /*+X11*
+acl various.txt /*+acl* +acl various.txt /*+acl*
+arabic various.txt /*+arabic* +arabic various.txt /*+arabic*
+autochdir various.txt /*+autochdir*
+autocmd various.txt /*+autocmd* +autocmd various.txt /*+autocmd*
+autoservername various.txt /*+autoservername* +autoservername various.txt /*+autoservername*
+balloon_eval various.txt /*+balloon_eval* +balloon_eval various.txt /*+balloon_eval*
@ -1314,6 +1321,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+iconv various.txt /*+iconv* +iconv various.txt /*+iconv*
+iconv/dyn various.txt /*+iconv\/dyn* +iconv/dyn various.txt /*+iconv\/dyn*
+insert_expand various.txt /*+insert_expand* +insert_expand various.txt /*+insert_expand*
+ipv6 various.txt /*+ipv6*
+job various.txt /*+job* +job various.txt /*+job*
+jumplist various.txt /*+jumplist* +jumplist various.txt /*+jumplist*
+keymap various.txt /*+keymap* +keymap various.txt /*+keymap*
@ -1920,6 +1928,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
45.3 usr_45.txt /*45.3* 45.3 usr_45.txt /*45.3*
45.4 usr_45.txt /*45.4* 45.4 usr_45.txt /*45.4*
45.5 usr_45.txt /*45.5* 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* 8g8 various.txt /*8g8*
90.1 usr_90.txt /*90.1* 90.1 usr_90.txt /*90.1*
90.2 usr_90.txt /*90.2* 90.2 usr_90.txt /*90.2*
@ -2270,6 +2282,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:command-completion-custom map.txt /*:command-completion-custom* :command-completion-custom map.txt /*:command-completion-custom*
:command-completion-customlist map.txt /*:command-completion-customlist* :command-completion-customlist map.txt /*:command-completion-customlist*
:command-count map.txt /*:command-count* :command-count map.txt /*:command-count*
:command-modifiers map.txt /*:command-modifiers*
:command-nargs map.txt /*:command-nargs* :command-nargs map.txt /*:command-nargs*
:command-range map.txt /*:command-range* :command-range map.txt /*:command-range*
:command-register map.txt /*:command-register* :command-register map.txt /*:command-register*
@ -2313,6 +2326,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:debug-name repeat.txt /*:debug-name* :debug-name repeat.txt /*:debug-name*
:debugg repeat.txt /*:debugg* :debugg repeat.txt /*:debugg*
:debuggreedy repeat.txt /*:debuggreedy* :debuggreedy repeat.txt /*:debuggreedy*
:def vim9.txt /*:def*
:defc vim9.txt /*:defc*
:defcompile vim9.txt /*:defcompile*
:del change.txt /*:del* :del change.txt /*:del*
:delc map.txt /*:delc* :delc map.txt /*:delc*
:delcommand map.txt /*:delcommand* :delcommand map.txt /*:delcommand*
@ -2340,6 +2356,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:diffupdate diff.txt /*:diffupdate* :diffupdate diff.txt /*:diffupdate*
:dig digraph.txt /*:dig* :dig digraph.txt /*:dig*
:digraphs digraph.txt /*:digraphs* :digraphs digraph.txt /*:digraphs*
:disa vim9.txt /*:disa*
:disassemble vim9.txt /*:disassemble*
:display change.txt /*:display* :display change.txt /*:display*
:dj tagsrch.txt /*:dj* :dj tagsrch.txt /*:dj*
:djump tagsrch.txt /*:djump* :djump tagsrch.txt /*:djump*
@ -2384,6 +2402,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:emenu gui.txt /*:emenu* :emenu gui.txt /*:emenu*
:en eval.txt /*:en* :en eval.txt /*:en*
:end eval.txt /*:end* :end eval.txt /*:end*
:enddef vim9.txt /*:enddef*
:endf eval.txt /*:endf* :endf eval.txt /*:endf*
:endfo eval.txt /*:endfo* :endfo eval.txt /*:endfo*
:endfor eval.txt /*:endfor* :endfor eval.txt /*:endfor*
@ -2404,6 +2423,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:execute eval.txt /*:execute* :execute eval.txt /*:execute*
:exi editing.txt /*:exi* :exi editing.txt /*:exi*
:exit editing.txt /*:exit* :exit editing.txt /*:exit*
:exp vim9.txt /*:exp*
:export vim9.txt /*:export*
:exu helphelp.txt /*:exu* :exu helphelp.txt /*:exu*
:exusage helphelp.txt /*:exusage* :exusage helphelp.txt /*:exusage*
:f editing.txt /*:f* :f editing.txt /*:f*
@ -2506,6 +2527,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:imapclear map.txt /*:imapclear* :imapclear map.txt /*:imapclear*
:ime gui.txt /*:ime* :ime gui.txt /*:ime*
:imenu gui.txt /*:imenu* :imenu gui.txt /*:imenu*
:imp vim9.txt /*:imp*
:import vim9.txt /*:import*
:import-cycle vim9.txt /*:import-cycle*
:in insert.txt /*:in* :in insert.txt /*:in*
:index index.txt /*:index* :index index.txt /*:index*
:ino map.txt /*:ino* :ino map.txt /*:ino*
@ -2573,6 +2597,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:lbuffer quickfix.txt /*:lbuffer* :lbuffer quickfix.txt /*:lbuffer*
:lc editing.txt /*:lc* :lc editing.txt /*:lc*
:lcd editing.txt /*:lcd* :lcd editing.txt /*:lcd*
:lcd- editing.txt /*:lcd-*
:lch editing.txt /*:lch* :lch editing.txt /*:lch*
:lchdir editing.txt /*:lchdir* :lchdir editing.txt /*:lchdir*
:lcl quickfix.txt /*:lcl* :lcl quickfix.txt /*:lcl*
@ -2880,6 +2905,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:put change.txt /*:put* :put change.txt /*:put*
:pw editing.txt /*:pw* :pw editing.txt /*:pw*
:pwd editing.txt /*:pwd* :pwd editing.txt /*:pwd*
:pwd-verbose editing.txt /*:pwd-verbose*
:py if_pyth.txt /*:py* :py if_pyth.txt /*:py*
:py3 if_pyth.txt /*:py3* :py3 if_pyth.txt /*:py3*
:py3do if_pyth.txt /*:py3do* :py3do if_pyth.txt /*:py3do*
@ -3183,6 +3209,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:syn-file-remarks syntax.txt /*:syn-file-remarks* :syn-file-remarks syntax.txt /*:syn-file-remarks*
:syn-files syntax.txt /*:syn-files* :syn-files syntax.txt /*:syn-files*
:syn-fold syntax.txt /*:syn-fold* :syn-fold syntax.txt /*:syn-fold*
:syn-foldlevel syntax.txt /*:syn-foldlevel*
:syn-include syntax.txt /*:syn-include* :syn-include syntax.txt /*:syn-include*
:syn-iskeyword syntax.txt /*:syn-iskeyword* :syn-iskeyword syntax.txt /*:syn-iskeyword*
:syn-keepend syntax.txt /*:syn-keepend* :syn-keepend syntax.txt /*:syn-keepend*
@ -3263,6 +3290,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:tags tagsrch.txt /*:tags* :tags tagsrch.txt /*:tags*
:tc if_tcl.txt /*:tc* :tc if_tcl.txt /*:tc*
:tcd editing.txt /*:tcd* :tcd editing.txt /*:tcd*
:tcd- editing.txt /*:tcd-*
:tch editing.txt /*:tch* :tch editing.txt /*:tch*
:tchdir editing.txt /*:tchdir* :tchdir editing.txt /*:tchdir*
:tcl if_tcl.txt /*:tcl* :tcl if_tcl.txt /*:tcl*
@ -3354,6 +3382,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:vie editing.txt /*:vie* :vie editing.txt /*:vie*
:view editing.txt /*:view* :view editing.txt /*:view*
:vim quickfix.txt /*:vim* :vim quickfix.txt /*:vim*
:vim9 vim9.txt /*:vim9*
:vim9script vim9.txt /*:vim9script*
:vimgrep quickfix.txt /*:vimgrep* :vimgrep quickfix.txt /*:vimgrep*
:vimgrepa quickfix.txt /*:vimgrepa* :vimgrepa quickfix.txt /*:vimgrepa*
:vimgrepadd quickfix.txt /*:vimgrepadd* :vimgrepadd quickfix.txt /*:vimgrepadd*
@ -3834,6 +3864,7 @@ Command-line cmdline.txt /*Command-line*
Command-line-mode cmdline.txt /*Command-line-mode* Command-line-mode cmdline.txt /*Command-line-mode*
CompleteChanged autocmd.txt /*CompleteChanged* CompleteChanged autocmd.txt /*CompleteChanged*
CompleteDone autocmd.txt /*CompleteDone* CompleteDone autocmd.txt /*CompleteDone*
CompleteDonePre autocmd.txt /*CompleteDonePre*
ConPTY terminal.txt /*ConPTY* ConPTY terminal.txt /*ConPTY*
Contents quickref.txt /*Contents* Contents quickref.txt /*Contents*
Cscope if_cscop.txt /*Cscope* Cscope if_cscop.txt /*Cscope*
@ -3861,6 +3892,7 @@ E101 diff.txt /*E101*
E102 diff.txt /*E102* E102 diff.txt /*E102*
E103 diff.txt /*E103* E103 diff.txt /*E103*
E104 digraph.txt /*E104* E104 digraph.txt /*E104*
E1042 vim9.txt /*E1042*
E105 mbyte.txt /*E105* E105 mbyte.txt /*E105*
E107 eval.txt /*E107* E107 eval.txt /*E107*
E108 eval.txt /*E108* E108 eval.txt /*E108*
@ -4061,6 +4093,7 @@ E287 mbyte.txt /*E287*
E288 mbyte.txt /*E288* E288 mbyte.txt /*E288*
E289 mbyte.txt /*E289* E289 mbyte.txt /*E289*
E29 change.txt /*E29* E29 change.txt /*E29*
E292 message.txt /*E292*
E293 message.txt /*E293* E293 message.txt /*E293*
E294 message.txt /*E294* E294 message.txt /*E294*
E295 message.txt /*E295* E295 message.txt /*E295*
@ -4230,12 +4263,15 @@ E447 editing.txt /*E447*
E448 various.txt /*E448* E448 various.txt /*E448*
E449 eval.txt /*E449* E449 eval.txt /*E449*
E45 message.txt /*E45* E45 message.txt /*E45*
E452 eval.txt /*E452*
E453 syntax.txt /*E453*
E455 print.txt /*E455* E455 print.txt /*E455*
E456 print.txt /*E456* E456 print.txt /*E456*
E457 print.txt /*E457* E457 print.txt /*E457*
E458 message.txt /*E458* E458 message.txt /*E458*
E459 message.txt /*E459* E459 message.txt /*E459*
E46 message.txt /*E46* E46 message.txt /*E46*
E460 eval.txt /*E460*
E461 eval.txt /*E461* E461 eval.txt /*E461*
E462 editing.txt /*E462* E462 editing.txt /*E462*
E463 netbeans.txt /*E463* E463 netbeans.txt /*E463*
@ -4347,6 +4383,7 @@ E561 if_cscop.txt /*E561*
E562 if_cscop.txt /*E562* E562 if_cscop.txt /*E562*
E563 if_cscop.txt /*E563* E563 if_cscop.txt /*E563*
E564 if_cscop.txt /*E564* E564 if_cscop.txt /*E564*
E565 insert.txt /*E565*
E566 if_cscop.txt /*E566* E566 if_cscop.txt /*E566*
E567 if_cscop.txt /*E567* E567 if_cscop.txt /*E567*
E568 if_cscop.txt /*E568* E568 if_cscop.txt /*E568*
@ -4358,6 +4395,7 @@ E574 starting.txt /*E574*
E575 starting.txt /*E575* E575 starting.txt /*E575*
E576 starting.txt /*E576* E576 starting.txt /*E576*
E577 starting.txt /*E577* E577 starting.txt /*E577*
E578 insert.txt /*E578*
E579 eval.txt /*E579* E579 eval.txt /*E579*
E580 eval.txt /*E580* E580 eval.txt /*E580*
E581 eval.txt /*E581* E581 eval.txt /*E581*
@ -4659,7 +4697,9 @@ E855 autocmd.txt /*E855*
E858 eval.txt /*E858* E858 eval.txt /*E858*
E859 eval.txt /*E859* E859 eval.txt /*E859*
E86 windows.txt /*E86* E86 windows.txt /*E86*
E861 popup.txt /*E861*
E862 eval.txt /*E862* E862 eval.txt /*E862*
E863 popup.txt /*E863*
E864 pattern.txt /*E864* E864 pattern.txt /*E864*
E865 pattern.txt /*E865* E865 pattern.txt /*E865*
E866 pattern.txt /*E866* E866 pattern.txt /*E866*
@ -4699,6 +4739,7 @@ E897 eval.txt /*E897*
E898 channel.txt /*E898* E898 channel.txt /*E898*
E899 eval.txt /*E899* E899 eval.txt /*E899*
E90 message.txt /*E90* E90 message.txt /*E90*
E900 eval.txt /*E900*
E901 channel.txt /*E901* E901 channel.txt /*E901*
E902 channel.txt /*E902* E902 channel.txt /*E902*
E903 channel.txt /*E903* E903 channel.txt /*E903*
@ -4753,7 +4794,7 @@ E947 terminal.txt /*E947*
E948 terminal.txt /*E948* E948 terminal.txt /*E948*
E949 editing.txt /*E949* E949 editing.txt /*E949*
E95 message.txt /*E95* E95 message.txt /*E95*
E950 message.txt /*E950* E950 options.txt /*E950*
E951 pattern.txt /*E951* E951 pattern.txt /*E951*
E952 autocmd.txt /*E952* E952 autocmd.txt /*E952*
E953 terminal.txt /*E953* E953 terminal.txt /*E953*
@ -4805,6 +4846,7 @@ E994 eval.txt /*E994*
E995 eval.txt /*E995* E995 eval.txt /*E995*
E996 eval.txt /*E996* E996 eval.txt /*E996*
E997 popup.txt /*E997* E997 popup.txt /*E997*
E998 eval.txt /*E998*
E999 repeat.txt /*E999* E999 repeat.txt /*E999*
EX intro.txt /*EX* EX intro.txt /*EX*
EXINIT starting.txt /*EXINIT* EXINIT starting.txt /*EXINIT*
@ -4857,6 +4899,7 @@ GetLatestVimScripts-copyright pi_getscript.txt /*GetLatestVimScripts-copyright*
GetLatestVimScripts_dat pi_getscript.txt /*GetLatestVimScripts_dat* GetLatestVimScripts_dat pi_getscript.txt /*GetLatestVimScripts_dat*
Gnome gui_x11.txt /*Gnome* Gnome gui_x11.txt /*Gnome*
H motion.txt /*H* H motion.txt /*H*
Haiku os_haiku.txt /*Haiku*
I insert.txt /*I* I insert.txt /*I*
ICCF uganda.txt /*ICCF* ICCF uganda.txt /*ICCF*
IM-server mbyte.txt /*IM-server* IM-server mbyte.txt /*IM-server*
@ -5024,6 +5067,7 @@ SessionLoad-variable starting.txt /*SessionLoad-variable*
SessionLoadPost autocmd.txt /*SessionLoadPost* SessionLoadPost autocmd.txt /*SessionLoadPost*
ShellCmdPost autocmd.txt /*ShellCmdPost* ShellCmdPost autocmd.txt /*ShellCmdPost*
ShellFilterPost autocmd.txt /*ShellFilterPost* ShellFilterPost autocmd.txt /*ShellFilterPost*
SigUSR1 autocmd.txt /*SigUSR1*
SourceCmd autocmd.txt /*SourceCmd* SourceCmd autocmd.txt /*SourceCmd*
SourcePost autocmd.txt /*SourcePost* SourcePost autocmd.txt /*SourcePost*
SourcePre autocmd.txt /*SourcePre* SourcePre autocmd.txt /*SourcePre*
@ -5415,20 +5459,7 @@ bars help.txt /*bars*
base_font_name_list mbyte.txt /*base_font_name_list* base_font_name_list mbyte.txt /*base_font_name_list*
basic.vim syntax.txt /*basic.vim* basic.vim syntax.txt /*basic.vim*
beep options.txt /*beep* beep options.txt /*beep*
beos-colors os_beos.txt /*beos-colors* beos os_beos.txt /*beos*
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*
better-python-interface version7.txt /*better-python-interface* better-python-interface version7.txt /*better-python-interface*
beval_bufnr-variable eval.txt /*beval_bufnr-variable* beval_bufnr-variable eval.txt /*beval_bufnr-variable*
beval_col-variable eval.txt /*beval_col-variable* beval_col-variable eval.txt /*beval_col-variable*
@ -5808,6 +5839,7 @@ complete-item-kind insert.txt /*complete-item-kind*
complete-items insert.txt /*complete-items* complete-items insert.txt /*complete-items*
complete-popup insert.txt /*complete-popup* complete-popup insert.txt /*complete-popup*
complete-popuphidden insert.txt /*complete-popuphidden* complete-popuphidden insert.txt /*complete-popuphidden*
complete-script-local-functions cmdline.txt /*complete-script-local-functions*
complete_CTRL-E insert.txt /*complete_CTRL-E* complete_CTRL-E insert.txt /*complete_CTRL-E*
complete_CTRL-Y insert.txt /*complete_CTRL-Y* complete_CTRL-Y insert.txt /*complete_CTRL-Y*
complete_add() eval.txt /*complete_add()* complete_add() eval.txt /*complete_add()*
@ -5989,7 +6021,6 @@ debug.txt debug.txt /*debug.txt*
debugbreak() eval.txt /*debugbreak()* debugbreak() eval.txt /*debugbreak()*
debugger-compilation debugger.txt /*debugger-compilation* debugger-compilation debugger.txt /*debugger-compilation*
debugger-features debugger.txt /*debugger-features* debugger-features debugger.txt /*debugger-features*
debugger-integration debugger.txt /*debugger-integration*
debugger-support debugger.txt /*debugger-support* debugger-support debugger.txt /*debugger-support*
debugger.txt debugger.txt /*debugger.txt* debugger.txt debugger.txt /*debugger.txt*
dec-mouse options.txt /*dec-mouse* dec-mouse options.txt /*dec-mouse*
@ -6097,6 +6128,7 @@ dtd2vim insert.txt /*dtd2vim*
dying-variable eval.txt /*dying-variable* dying-variable eval.txt /*dying-variable*
e motion.txt /*e* e motion.txt /*e*
easy starting.txt /*easy* easy starting.txt /*easy*
echoraw() eval.txt /*echoraw()*
echospace-variable eval.txt /*echospace-variable* echospace-variable eval.txt /*echospace-variable*
edit-a-file editing.txt /*edit-a-file* edit-a-file editing.txt /*edit-a-file*
edit-binary editing.txt /*edit-binary* edit-binary editing.txt /*edit-binary*
@ -6105,6 +6137,7 @@ edit-files editing.txt /*edit-files*
edit-intro editing.txt /*edit-intro* edit-intro editing.txt /*edit-intro*
edit-no-break usr_25.txt /*edit-no-break* edit-no-break usr_25.txt /*edit-no-break*
edit-paragraph-join usr_25.txt /*edit-paragraph-join* edit-paragraph-join usr_25.txt /*edit-paragraph-join*
edit-window windows.txt /*edit-window*
editing.txt editing.txt /*editing.txt* editing.txt editing.txt /*editing.txt*
efm-%> quickfix.txt /*efm-%>* efm-%> quickfix.txt /*efm-%>*
efm-entries quickfix.txt /*efm-entries* efm-entries quickfix.txt /*efm-entries*
@ -6276,6 +6309,7 @@ faq intro.txt /*faq*
farsi farsi.txt /*farsi* farsi farsi.txt /*farsi*
farsi.txt farsi.txt /*farsi.txt* farsi.txt farsi.txt /*farsi.txt*
fasm.vim syntax.txt /*fasm.vim* fasm.vim syntax.txt /*fasm.vim*
fast-functions vim9.txt /*fast-functions*
fcs_choice-variable eval.txt /*fcs_choice-variable* fcs_choice-variable eval.txt /*fcs_choice-variable*
fcs_reason-variable eval.txt /*fcs_reason-variable* fcs_reason-variable eval.txt /*fcs_reason-variable*
feature-list eval.txt /*feature-list* feature-list eval.txt /*feature-list*
@ -6304,6 +6338,7 @@ filetype.txt filetype.txt /*filetype.txt*
filetypedetect-changed version6.txt /*filetypedetect-changed* filetypedetect-changed version6.txt /*filetypedetect-changed*
filetypes filetype.txt /*filetypes* filetypes filetype.txt /*filetypes*
filewritable() eval.txt /*filewritable()* filewritable() eval.txt /*filewritable()*
filler-lines windows.txt /*filler-lines*
filter change.txt /*filter* filter change.txt /*filter*
filter() eval.txt /*filter()* filter() eval.txt /*filter()*
find-manpage usr_12.txt /*find-manpage* find-manpage usr_12.txt /*find-manpage*
@ -6326,6 +6361,7 @@ fixed-7.1 version7.txt /*fixed-7.1*
fixed-7.2 version7.txt /*fixed-7.2* fixed-7.2 version7.txt /*fixed-7.2*
fixed-7.3 version7.txt /*fixed-7.3* fixed-7.3 version7.txt /*fixed-7.3*
fixed-7.4 version7.txt /*fixed-7.4* fixed-7.4 version7.txt /*fixed-7.4*
flatten() eval.txt /*flatten()*
flexwiki.vim syntax.txt /*flexwiki.vim* flexwiki.vim syntax.txt /*flexwiki.vim*
float-e eval.txt /*float-e* float-e eval.txt /*float-e*
float-functions usr_41.txt /*float-functions* float-functions usr_41.txt /*float-functions*
@ -6498,6 +6534,7 @@ ft-quake-syntax syntax.txt /*ft-quake-syntax*
ft-r-indent indent.txt /*ft-r-indent* ft-r-indent indent.txt /*ft-r-indent*
ft-r-syntax syntax.txt /*ft-r-syntax* ft-r-syntax syntax.txt /*ft-r-syntax*
ft-readline-syntax syntax.txt /*ft-readline-syntax* ft-readline-syntax syntax.txt /*ft-readline-syntax*
ft-rego-syntax syntax.txt /*ft-rego-syntax*
ft-rexx-syntax syntax.txt /*ft-rexx-syntax* ft-rexx-syntax syntax.txt /*ft-rexx-syntax*
ft-rmd-plugin filetype.txt /*ft-rmd-plugin* ft-rmd-plugin filetype.txt /*ft-rmd-plugin*
ft-rmd-syntax syntax.txt /*ft-rmd-syntax* ft-rmd-syntax syntax.txt /*ft-rmd-syntax*
@ -6881,6 +6918,7 @@ getjumplist() eval.txt /*getjumplist()*
getlatestvimscripts-install pi_getscript.txt /*getlatestvimscripts-install* getlatestvimscripts-install pi_getscript.txt /*getlatestvimscripts-install*
getline() eval.txt /*getline()* getline() eval.txt /*getline()*
getloclist() eval.txt /*getloclist()* getloclist() eval.txt /*getloclist()*
getmarklist() eval.txt /*getmarklist()*
getmatches() eval.txt /*getmatches()* getmatches() eval.txt /*getmatches()*
getmousepos() eval.txt /*getmousepos()* getmousepos() eval.txt /*getmousepos()*
getpid() eval.txt /*getpid()* getpid() eval.txt /*getpid()*
@ -6888,6 +6926,7 @@ getpos() eval.txt /*getpos()*
getqflist() eval.txt /*getqflist()* getqflist() eval.txt /*getqflist()*
getqflist-examples quickfix.txt /*getqflist-examples* getqflist-examples quickfix.txt /*getqflist-examples*
getreg() eval.txt /*getreg()* getreg() eval.txt /*getreg()*
getreginfo() eval.txt /*getreginfo()*
getregtype() eval.txt /*getregtype()* getregtype() eval.txt /*getregtype()*
getscript pi_getscript.txt /*getscript* getscript pi_getscript.txt /*getscript*
getscript-autoinstall pi_getscript.txt /*getscript-autoinstall* getscript-autoinstall pi_getscript.txt /*getscript-autoinstall*
@ -6958,6 +6997,7 @@ gstar pattern.txt /*gstar*
gt tabpage.txt /*gt* gt tabpage.txt /*gt*
gtk-css gui_x11.txt /*gtk-css* gtk-css gui_x11.txt /*gtk-css*
gtk-tooltip-colors gui_x11.txt /*gtk-tooltip-colors* gtk-tooltip-colors gui_x11.txt /*gtk-tooltip-colors*
gtk3-slow gui_x11.txt /*gtk3-slow*
gu change.txt /*gu* gu change.txt /*gu*
gugu change.txt /*gugu* gugu change.txt /*gugu*
gui gui.txt /*gui* gui gui.txt /*gui*
@ -7037,6 +7077,20 @@ g~ change.txt /*g~*
g~g~ change.txt /*g~g~* g~g~ change.txt /*g~g~*
g~~ change.txt /*g~~* g~~ change.txt /*g~~*
h motion.txt /*h* h motion.txt /*h*
haiku-bugs os_haiku.txt /*haiku-bugs*
haiku-colors os_haiku.txt /*haiku-colors*
haiku-compiling os_haiku.txt /*haiku-compiling*
haiku-dragndrop os_haiku.txt /*haiku-dragndrop*
haiku-fonts os_haiku.txt /*haiku-fonts*
haiku-general os_haiku.txt /*haiku-general*
haiku-gui os_haiku.txt /*haiku-gui*
haiku-launch os_haiku.txt /*haiku-launch*
haiku-meta os_haiku.txt /*haiku-meta*
haiku-mouse os_haiku.txt /*haiku-mouse*
haiku-support-credits os_haiku.txt /*haiku-support-credits*
haiku-toolbar-images os_haiku.txt /*haiku-toolbar-images*
haiku-user-settings-dir os_haiku.txt /*haiku-user-settings-dir*
haiku-vimdir os_haiku.txt /*haiku-vimdir*
hangul hangulin.txt /*hangul* hangul hangulin.txt /*hangul*
hangulin.txt hangulin.txt /*hangulin.txt* hangulin.txt hangulin.txt /*hangulin.txt*
has() eval.txt /*has()* has() eval.txt /*has()*
@ -7072,6 +7126,7 @@ highlight-changed version4.txt /*highlight-changed*
highlight-cterm syntax.txt /*highlight-cterm* highlight-cterm syntax.txt /*highlight-cterm*
highlight-ctermbg syntax.txt /*highlight-ctermbg* highlight-ctermbg syntax.txt /*highlight-ctermbg*
highlight-ctermfg syntax.txt /*highlight-ctermfg* highlight-ctermfg syntax.txt /*highlight-ctermfg*
highlight-ctermul syntax.txt /*highlight-ctermul*
highlight-default syntax.txt /*highlight-default* highlight-default syntax.txt /*highlight-default*
highlight-font syntax.txt /*highlight-font* highlight-font syntax.txt /*highlight-font*
highlight-groups syntax.txt /*highlight-groups* highlight-groups syntax.txt /*highlight-groups*
@ -7260,6 +7315,7 @@ i_CTRL-R_= insert.txt /*i_CTRL-R_=*
i_CTRL-R_CTRL-O insert.txt /*i_CTRL-R_CTRL-O* i_CTRL-R_CTRL-O insert.txt /*i_CTRL-R_CTRL-O*
i_CTRL-R_CTRL-P insert.txt /*i_CTRL-R_CTRL-P* i_CTRL-R_CTRL-P insert.txt /*i_CTRL-R_CTRL-P*
i_CTRL-R_CTRL-R insert.txt /*i_CTRL-R_CTRL-R* i_CTRL-R_CTRL-R insert.txt /*i_CTRL-R_CTRL-R*
i_CTRL-SHIFT-Q insert.txt /*i_CTRL-SHIFT-Q*
i_CTRL-SHIFT-V insert.txt /*i_CTRL-SHIFT-V* i_CTRL-SHIFT-V insert.txt /*i_CTRL-SHIFT-V*
i_CTRL-T insert.txt /*i_CTRL-T* i_CTRL-T insert.txt /*i_CTRL-T*
i_CTRL-U insert.txt /*i_CTRL-U* i_CTRL-U insert.txt /*i_CTRL-U*
@ -7339,6 +7395,7 @@ in_name channel.txt /*in_name*
in_top channel.txt /*in_top* in_top channel.txt /*in_top*
inactive-buffer windows.txt /*inactive-buffer* inactive-buffer windows.txt /*inactive-buffer*
include-search tagsrch.txt /*include-search* include-search tagsrch.txt /*include-search*
inclusion helphelp.txt /*inclusion*
inclusive motion.txt /*inclusive* inclusive motion.txt /*inclusive*
incomp-small-6 version6.txt /*incomp-small-6* incomp-small-6 version6.txt /*incomp-small-6*
incompatible-5 version5.txt /*incompatible-5* incompatible-5 version5.txt /*incompatible-5*
@ -7556,6 +7613,7 @@ log10() eval.txt /*log10()*
logiPat pi_logipat.txt /*logiPat* logiPat pi_logipat.txt /*logiPat*
logiPat-arg pi_logipat.txt /*logiPat-arg* logiPat-arg pi_logipat.txt /*logiPat-arg*
logiPat-caveat pi_logipat.txt /*logiPat-caveat* logiPat-caveat pi_logipat.txt /*logiPat-caveat*
logiPat-cmd pi_logipat.txt /*logiPat-cmd*
logiPat-contents pi_logipat.txt /*logiPat-contents* logiPat-contents pi_logipat.txt /*logiPat-contents*
logiPat-copyright pi_logipat.txt /*logiPat-copyright* logiPat-copyright pi_logipat.txt /*logiPat-copyright*
logiPat-examples pi_logipat.txt /*logiPat-examples* logiPat-examples pi_logipat.txt /*logiPat-examples*
@ -7658,6 +7716,7 @@ mapmode-v map.txt /*mapmode-v*
mapmode-x map.txt /*mapmode-x* mapmode-x map.txt /*mapmode-x*
mapping map.txt /*mapping* mapping map.txt /*mapping*
mapping-functions usr_41.txt /*mapping-functions* mapping-functions usr_41.txt /*mapping-functions*
mapset() eval.txt /*mapset()*
mark motion.txt /*mark* mark motion.txt /*mark*
mark-functions usr_41.txt /*mark-functions* mark-functions usr_41.txt /*mark-functions*
mark-motions motion.txt /*mark-motions* mark-motions motion.txt /*mark-motions*
@ -7699,7 +7758,11 @@ menu-changes-5.4 version5.txt /*menu-changes-5.4*
menu-examples gui.txt /*menu-examples* menu-examples gui.txt /*menu-examples*
menu-priority gui.txt /*menu-priority* menu-priority gui.txt /*menu-priority*
menu-separator gui.txt /*menu-separator* menu-separator gui.txt /*menu-separator*
menu-shortcut gui.txt /*menu-shortcut*
menu-text gui.txt /*menu-text*
menu-tips gui.txt /*menu-tips*
menu.vim gui.txt /*menu.vim* menu.vim gui.txt /*menu.vim*
menu_info() eval.txt /*menu_info()*
menus gui.txt /*menus* menus gui.txt /*menus*
merge diff.txt /*merge* merge diff.txt /*merge*
message-history message.txt /*message-history* message-history message.txt /*message-history*
@ -8142,6 +8205,7 @@ nroff.vim syntax.txt /*nroff.vim*
null-variable eval.txt /*null-variable* null-variable eval.txt /*null-variable*
number_relativenumber options.txt /*number_relativenumber* number_relativenumber options.txt /*number_relativenumber*
numbered-function eval.txt /*numbered-function* numbered-function eval.txt /*numbered-function*
numbersize-variable eval.txt /*numbersize-variable*
o insert.txt /*o* o insert.txt /*o*
o_CTRL-V motion.txt /*o_CTRL-V* o_CTRL-V motion.txt /*o_CTRL-V*
o_V motion.txt /*o_V* o_V motion.txt /*o_V*
@ -8192,6 +8256,7 @@ os_390.txt os_390.txt /*os_390.txt*
os_amiga.txt os_amiga.txt /*os_amiga.txt* os_amiga.txt os_amiga.txt /*os_amiga.txt*
os_beos.txt os_beos.txt /*os_beos.txt* os_beos.txt os_beos.txt /*os_beos.txt*
os_dos.txt os_dos.txt /*os_dos.txt* os_dos.txt os_dos.txt /*os_dos.txt*
os_haiku.txt os_haiku.txt /*os_haiku.txt*
os_mac.txt os_mac.txt /*os_mac.txt* os_mac.txt os_mac.txt /*os_mac.txt*
os_mint.txt os_mint.txt /*os_mint.txt* os_mint.txt os_mint.txt /*os_mint.txt*
os_msdos.txt os_msdos.txt /*os_msdos.txt* os_msdos.txt os_msdos.txt /*os_msdos.txt*
@ -8229,6 +8294,7 @@ patches-8.2 version8.txt /*patches-8.2*
pathshorten() eval.txt /*pathshorten()* pathshorten() eval.txt /*pathshorten()*
pattern pattern.txt /*pattern* pattern pattern.txt /*pattern*
pattern-atoms pattern.txt /*pattern-atoms* pattern-atoms pattern.txt /*pattern-atoms*
pattern-delimiter change.txt /*pattern-delimiter*
pattern-multi-byte pattern.txt /*pattern-multi-byte* pattern-multi-byte pattern.txt /*pattern-multi-byte*
pattern-multi-items pattern.txt /*pattern-multi-items* pattern-multi-items pattern.txt /*pattern-multi-items*
pattern-overview pattern.txt /*pattern-overview* pattern-overview pattern.txt /*pattern-overview*
@ -8312,6 +8378,7 @@ popup-menu-added version5.txt /*popup-menu-added*
popup-position popup.txt /*popup-position* popup-position popup.txt /*popup-position*
popup-props popup.txt /*popup-props* popup-props popup.txt /*popup-props*
popup-scrollbar popup.txt /*popup-scrollbar* popup-scrollbar popup.txt /*popup-scrollbar*
popup-terminal popup.txt /*popup-terminal*
popup-textprop-pos popup.txt /*popup-textprop-pos* popup-textprop-pos popup.txt /*popup-textprop-pos*
popup-usage popup.txt /*popup-usage* popup-usage popup.txt /*popup-usage*
popup-window popup.txt /*popup-window* popup-window popup.txt /*popup-window*
@ -8333,6 +8400,7 @@ popup_findpreview() popup.txt /*popup_findpreview()*
popup_getoptions() popup.txt /*popup_getoptions()* popup_getoptions() popup.txt /*popup_getoptions()*
popup_getpos() popup.txt /*popup_getpos()* popup_getpos() popup.txt /*popup_getpos()*
popup_hide() popup.txt /*popup_hide()* popup_hide() popup.txt /*popup_hide()*
popup_list() popup.txt /*popup_list()*
popup_locate() popup.txt /*popup_locate()* popup_locate() popup.txt /*popup_locate()*
popup_menu() popup.txt /*popup_menu()* popup_menu() popup.txt /*popup_menu()*
popup_menu-shortcut-example popup.txt /*popup_menu-shortcut-example* popup_menu-shortcut-example popup.txt /*popup_menu-shortcut-example*
@ -8493,6 +8561,7 @@ quickfix-title quickfix.txt /*quickfix-title*
quickfix-valid quickfix.txt /*quickfix-valid* quickfix-valid quickfix.txt /*quickfix-valid*
quickfix-window quickfix.txt /*quickfix-window* quickfix-window quickfix.txt /*quickfix-window*
quickfix-window-ID quickfix.txt /*quickfix-window-ID* quickfix-window-ID quickfix.txt /*quickfix-window-ID*
quickfix-window-function quickfix.txt /*quickfix-window-function*
quickfix.txt quickfix.txt /*quickfix.txt* quickfix.txt quickfix.txt /*quickfix.txt*
quickref quickref.txt /*quickref* quickref quickref.txt /*quickref*
quickref.txt quickref.txt /*quickref.txt* quickref.txt quickref.txt /*quickref.txt*
@ -8534,6 +8603,7 @@ quote~ change.txt /*quote~*
r change.txt /*r* r change.txt /*r*
r.vim syntax.txt /*r.vim* r.vim syntax.txt /*r.vim*
rand() eval.txt /*rand()* rand() eval.txt /*rand()*
random eval.txt /*random*
range() eval.txt /*range()* range() eval.txt /*range()*
raw-terminal-mode term.txt /*raw-terminal-mode* raw-terminal-mode term.txt /*raw-terminal-mode*
rcp pi_netrw.txt /*rcp* rcp pi_netrw.txt /*rcp*
@ -8542,6 +8612,7 @@ read-messages insert.txt /*read-messages*
read-only-share editing.txt /*read-only-share* read-only-share editing.txt /*read-only-share*
read-stdin version5.txt /*read-stdin* read-stdin version5.txt /*read-stdin*
readdir() eval.txt /*readdir()* readdir() eval.txt /*readdir()*
readdirex() eval.txt /*readdirex()*
readfile() eval.txt /*readfile()* readfile() eval.txt /*readfile()*
readline.vim syntax.txt /*readline.vim* readline.vim syntax.txt /*readline.vim*
recording repeat.txt /*recording* recording repeat.txt /*recording*
@ -8550,6 +8621,7 @@ recovery recover.txt /*recovery*
recursive_mapping map.txt /*recursive_mapping* recursive_mapping map.txt /*recursive_mapping*
redo undo.txt /*redo* redo undo.txt /*redo*
redo-register undo.txt /*redo-register* redo-register undo.txt /*redo-register*
reduce() eval.txt /*reduce()*
ref intro.txt /*ref* ref intro.txt /*ref*
reference intro.txt /*reference* reference intro.txt /*reference*
reference_toc help.txt /*reference_toc* reference_toc help.txt /*reference_toc*
@ -8561,6 +8633,7 @@ register sponsor.txt /*register*
register-faq sponsor.txt /*register-faq* register-faq sponsor.txt /*register-faq*
register-variable eval.txt /*register-variable* register-variable eval.txt /*register-variable*
registers change.txt /*registers* registers change.txt /*registers*
rego.vim syntax.txt /*rego.vim*
regular-expression pattern.txt /*regular-expression* regular-expression pattern.txt /*regular-expression*
reload editing.txt /*reload* reload editing.txt /*reload*
reltime() eval.txt /*reltime()* reltime() eval.txt /*reltime()*
@ -8713,6 +8786,7 @@ search-offset pattern.txt /*search-offset*
search-pattern pattern.txt /*search-pattern* search-pattern pattern.txt /*search-pattern*
search-range pattern.txt /*search-range* search-range pattern.txt /*search-range*
search-replace change.txt /*search-replace* search-replace change.txt /*search-replace*
searchcount() eval.txt /*searchcount()*
searchdecl() eval.txt /*searchdecl()* searchdecl() eval.txt /*searchdecl()*
searchforward-variable eval.txt /*searchforward-variable* searchforward-variable eval.txt /*searchforward-variable*
searchpair() eval.txt /*searchpair()* searchpair() eval.txt /*searchpair()*
@ -8803,11 +8877,13 @@ slow-terminal term.txt /*slow-terminal*
socket-interface channel.txt /*socket-interface* socket-interface channel.txt /*socket-interface*
sort() eval.txt /*sort()* sort() eval.txt /*sort()*
sorting change.txt /*sorting* sorting change.txt /*sorting*
sound-functions usr_41.txt /*sound-functions*
sound_clear() eval.txt /*sound_clear()* sound_clear() eval.txt /*sound_clear()*
sound_playevent() eval.txt /*sound_playevent()* sound_playevent() eval.txt /*sound_playevent()*
sound_playfile() eval.txt /*sound_playfile()* sound_playfile() eval.txt /*sound_playfile()*
sound_stop() eval.txt /*sound_stop()* sound_stop() eval.txt /*sound_stop()*
soundfold() eval.txt /*soundfold()* soundfold() eval.txt /*soundfold()*
source-vim9-script usr_46.txt /*source-vim9-script*
space intro.txt /*space* space intro.txt /*space*
spec-customizing pi_spec.txt /*spec-customizing* spec-customizing pi_spec.txt /*spec-customizing*
spec-how-to-use-it pi_spec.txt /*spec-how-to-use-it* spec-how-to-use-it pi_spec.txt /*spec-how-to-use-it*
@ -9071,10 +9147,12 @@ t_%i term.txt /*t_%i*
t_&8 term.txt /*t_&8* t_&8 term.txt /*t_&8*
t_8b term.txt /*t_8b* t_8b term.txt /*t_8b*
t_8f term.txt /*t_8f* t_8f term.txt /*t_8f*
t_8u term.txt /*t_8u*
t_@7 term.txt /*t_@7* t_@7 term.txt /*t_@7*
t_AB term.txt /*t_AB* t_AB term.txt /*t_AB*
t_AF term.txt /*t_AF* t_AF term.txt /*t_AF*
t_AL term.txt /*t_AL* t_AL term.txt /*t_AL*
t_AU term.txt /*t_AU*
t_BD term.txt /*t_BD* t_BD term.txt /*t_BD*
t_BE term.txt /*t_BE* t_BE term.txt /*t_BE*
t_CS term.txt /*t_CS* t_CS term.txt /*t_CS*
@ -9303,6 +9381,7 @@ tags-file-format tagsrch.txt /*tags-file-format*
tags-option tagsrch.txt /*tags-option* tags-option tagsrch.txt /*tags-option*
tagsrch.txt tagsrch.txt /*tagsrch.txt* tagsrch.txt tagsrch.txt /*tagsrch.txt*
tagstack tagsrch.txt /*tagstack* tagstack tagsrch.txt /*tagstack*
tagstack-examples tagsrch.txt /*tagstack-examples*
tan() eval.txt /*tan()* tan() eval.txt /*tan()*
tanh() eval.txt /*tanh()* tanh() eval.txt /*tanh()*
tar pi_tar.txt /*tar* tar pi_tar.txt /*tar*
@ -9407,6 +9486,7 @@ termdebug-prompt terminal.txt /*termdebug-prompt*
termdebug-starting terminal.txt /*termdebug-starting* termdebug-starting terminal.txt /*termdebug-starting*
termdebug-stepping terminal.txt /*termdebug-stepping* termdebug-stepping terminal.txt /*termdebug-stepping*
termdebug-variables terminal.txt /*termdebug-variables* termdebug-variables terminal.txt /*termdebug-variables*
termdebug_map_K terminal.txt /*termdebug_map_K*
termdebug_popup terminal.txt /*termdebug_popup* termdebug_popup terminal.txt /*termdebug_popup*
termdebug_shortcuts terminal.txt /*termdebug_shortcuts* termdebug_shortcuts terminal.txt /*termdebug_shortcuts*
termdebug_use_prompt terminal.txt /*termdebug_use_prompt* termdebug_use_prompt terminal.txt /*termdebug_use_prompt*
@ -9444,6 +9524,7 @@ terminal-unix terminal.txt /*terminal-unix*
terminal-use terminal.txt /*terminal-use* terminal-use terminal.txt /*terminal-use*
terminal-window terminal.txt /*terminal-window* terminal-window terminal.txt /*terminal-window*
terminal.txt terminal.txt /*terminal.txt* terminal.txt terminal.txt /*terminal.txt*
terminalprops() eval.txt /*terminalprops()*
terminfo term.txt /*terminfo* terminfo term.txt /*terminfo*
termresponse-variable eval.txt /*termresponse-variable* termresponse-variable eval.txt /*termresponse-variable*
test-functions usr_41.txt /*test-functions* test-functions usr_41.txt /*test-functions*
@ -9458,6 +9539,7 @@ test_ignore_error() testing.txt /*test_ignore_error()*
test_null_blob() testing.txt /*test_null_blob()* test_null_blob() testing.txt /*test_null_blob()*
test_null_channel() testing.txt /*test_null_channel()* test_null_channel() testing.txt /*test_null_channel()*
test_null_dict() testing.txt /*test_null_dict()* 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_job() testing.txt /*test_null_job()*
test_null_list() testing.txt /*test_null_list()* test_null_list() testing.txt /*test_null_list()*
test_null_partial() testing.txt /*test_null_partial()* test_null_partial() testing.txt /*test_null_partial()*
@ -9468,6 +9550,9 @@ test_refcount() testing.txt /*test_refcount()*
test_scrollbar() testing.txt /*test_scrollbar()* test_scrollbar() testing.txt /*test_scrollbar()*
test_setmouse() testing.txt /*test_setmouse()* test_setmouse() testing.txt /*test_setmouse()*
test_settime() testing.txt /*test_settime()* test_settime() testing.txt /*test_settime()*
test_srand_seed() testing.txt /*test_srand_seed()*
test_unknown() testing.txt /*test_unknown()*
test_void() testing.txt /*test_void()*
testing testing.txt /*testing* testing testing.txt /*testing*
testing-support testing.txt /*testing-support* testing-support testing.txt /*testing-support*
testing-variable eval.txt /*testing-variable* testing-variable eval.txt /*testing-variable*
@ -9496,6 +9581,7 @@ text-prop-changes textprop.txt /*text-prop-changes*
text-prop-functions textprop.txt /*text-prop-functions* text-prop-functions textprop.txt /*text-prop-functions*
text-prop-intro textprop.txt /*text-prop-intro* text-prop-intro textprop.txt /*text-prop-intro*
text-properties textprop.txt /*text-properties* text-properties textprop.txt /*text-properties*
text-property-functions usr_41.txt /*text-property-functions*
textlock eval.txt /*textlock* textlock eval.txt /*textlock*
textprop textprop.txt /*textprop* textprop textprop.txt /*textprop*
textprop.txt textprop.txt /*textprop.txt* textprop.txt textprop.txt /*textprop.txt*
@ -9525,6 +9611,7 @@ toggle options.txt /*toggle*
toggle-revins version4.txt /*toggle-revins* toggle-revins version4.txt /*toggle-revins*
tolower() eval.txt /*tolower()* tolower() eval.txt /*tolower()*
toolbar-icon gui.txt /*toolbar-icon* toolbar-icon gui.txt /*toolbar-icon*
tooltips gui.txt /*tooltips*
toupper() eval.txt /*toupper()* toupper() eval.txt /*toupper()*
tr() eval.txt /*tr()* tr() eval.txt /*tr()*
trim() eval.txt /*trim()* trim() eval.txt /*trim()*
@ -9540,6 +9627,7 @@ tutor usr_01.txt /*tutor*
twice if_cscop.txt /*twice* twice if_cscop.txt /*twice*
two-engines pattern.txt /*two-engines* two-engines pattern.txt /*two-engines*
type() eval.txt /*type()* type() eval.txt /*type()*
type-inference vim9.txt /*type-inference*
type-mistakes tips.txt /*type-mistakes* type-mistakes tips.txt /*type-mistakes*
typecorr-settings usr_41.txt /*typecorr-settings* typecorr-settings usr_41.txt /*typecorr-settings*
typecorr.txt usr_41.txt /*typecorr.txt* typecorr.txt usr_41.txt /*typecorr.txt*
@ -9613,6 +9701,7 @@ usr_42.txt usr_42.txt /*usr_42.txt*
usr_43.txt usr_43.txt /*usr_43.txt* usr_43.txt usr_43.txt /*usr_43.txt*
usr_44.txt usr_44.txt /*usr_44.txt* usr_44.txt usr_44.txt /*usr_44.txt*
usr_45.txt usr_45.txt /*usr_45.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_90.txt usr_90.txt /*usr_90.txt*
usr_toc.txt usr_toc.txt /*usr_toc.txt* usr_toc.txt usr_toc.txt /*usr_toc.txt*
utf-8 mbyte.txt /*utf-8* utf-8 mbyte.txt /*utf-8*
@ -9667,6 +9756,7 @@ v:mouse_win eval.txt /*v:mouse_win*
v:mouse_winid eval.txt /*v:mouse_winid* v:mouse_winid eval.txt /*v:mouse_winid*
v:none eval.txt /*v:none* v:none eval.txt /*v:none*
v:null eval.txt /*v:null* v:null eval.txt /*v:null*
v:numbersize eval.txt /*v:numbersize*
v:oldfiles eval.txt /*v:oldfiles* v:oldfiles eval.txt /*v:oldfiles*
v:operator eval.txt /*v:operator* v:operator eval.txt /*v:operator*
v:option_command eval.txt /*v:option_command* v:option_command eval.txt /*v:option_command*
@ -9831,6 +9921,7 @@ val-variable eval.txt /*val-variable*
valgrind debug.txt /*valgrind* valgrind debug.txt /*valgrind*
values() eval.txt /*values()* values() eval.txt /*values()*
var-functions usr_41.txt /*var-functions* var-functions usr_41.txt /*var-functions*
variable-scope eval.txt /*variable-scope*
variables eval.txt /*variables* variables eval.txt /*variables*
various various.txt /*various* various various.txt /*various*
various-cmds various.txt /*various-cmds* various-cmds various.txt /*various-cmds*
@ -9903,6 +9994,19 @@ vim-variable eval.txt /*vim-variable*
vim.vim syntax.txt /*vim.vim* vim.vim syntax.txt /*vim.vim*
vim7 version7.txt /*vim7* vim7 version7.txt /*vim7*
vim8 version8.txt /*vim8* 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-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*
vim: options.txt /*vim:* vim: options.txt /*vim:*
vim_announce intro.txt /*vim_announce* vim_announce intro.txt /*vim_announce*
vim_dev intro.txt /*vim_dev* vim_dev intro.txt /*vim_dev*
@ -10024,6 +10128,7 @@ win32s os_win32.txt /*win32s*
win_execute() eval.txt /*win_execute()* win_execute() eval.txt /*win_execute()*
win_findbuf() eval.txt /*win_findbuf()* win_findbuf() eval.txt /*win_findbuf()*
win_getid() eval.txt /*win_getid()* win_getid() eval.txt /*win_getid()*
win_gettype() eval.txt /*win_gettype()*
win_gotoid() eval.txt /*win_gotoid()* win_gotoid() eval.txt /*win_gotoid()*
win_id2tabwin() eval.txt /*win_id2tabwin()* win_id2tabwin() eval.txt /*win_id2tabwin()*
win_id2win() eval.txt /*win_id2win()* win_id2win() eval.txt /*win_id2win()*
@ -10055,6 +10160,7 @@ windows.txt windows.txt /*windows.txt*
windows95 os_win32.txt /*windows95* windows95 os_win32.txt /*windows95*
windows98 os_win32.txt /*windows98* windows98 os_win32.txt /*windows98*
windowsme os_win32.txt /*windowsme* windowsme os_win32.txt /*windowsme*
windowsversion() eval.txt /*windowsversion()*
winheight() eval.txt /*winheight()* winheight() eval.txt /*winheight()*
winid windows.txt /*winid* winid windows.txt /*winid*
winlayout() eval.txt /*winlayout()* winlayout() eval.txt /*winlayout()*

View File

@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 8.2. Last change: 2019 Nov 07 *tagsrch.txt* For Vim version 8.2. Last change: 2020 Apr 19
VIM REFERENCE MANUAL by Bram Moolenaar 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 The |gettagstack()| function returns the tag stack of a specified window. The
|settagstack()| function modifies the tag stack of a window. |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* *E73*
When you try to use the tag stack while it doesn't contain anything you will When you try to use the tag stack while it doesn't contain anything you will
get an error message. get an error message.
@ -210,14 +233,14 @@ the same entry.
Example output: Example output:
> >
nr pri kind tag file # pri kind tag file
1 F f mch_delay os_amiga.c 1 F f mch_delay os_amiga.c
mch_delay(msec, ignoreinput) mch_delay(msec, ignoreinput)
> 2 F f mch_delay os_msdos.c > 2 F f mch_delay os_msdos.c
mch_delay(msec, ignoreinput) mch_delay(msec, ignoreinput)
3 F f mch_delay os_unix.c 3 F f mch_delay os_unix.c
mch_delay(msec, ignoreinput) mch_delay(msec, ignoreinput)
Enter nr of choice (<CR> to abort): Type number and <Enter> (empty cancels):
< <
See |tag-priority| for the "pri" column. Note that See |tag-priority| for the "pri" column. Note that
this depends on the current file, thus using this depends on the current file, thus using
@ -344,11 +367,11 @@ the same as above, with a "p" prepended.
A static tag is a tag that is defined for a specific file. In a C program A static tag is a tag that is defined for a specific file. In a C program
this could be a static function. this could be a static function.
In Vi jumping to a tag sets the current search pattern. This means that In Vi jumping to a tag sets the current search pattern. This means that the
the "n" command after jumping to a tag does not search for the same pattern "n" command after jumping to a tag does not search for the same pattern that
that it did before jumping to the tag. Vim does not do this as we consider it it did before jumping to the tag. Vim does not do this as we consider it to
to be a bug. You can still find the tag search pattern in the search history. be a bug. If you really want the old Vi behavior, set the 't' flag in
If you really want the old Vi behavior, set the 't' flag in 'cpoptions'. 'cpoptions'.
*tag-binary-search* *tag-binary-search*
Vim uses binary searching in the tags file to find the desired tag quickly Vim uses binary searching in the tags file to find the desired tag quickly
@ -426,8 +449,7 @@ would otherwise go unnoticed. Example: >
In Vi the ":tag" command sets the last search pattern when the tag is searched In Vi the ":tag" command sets the last search pattern when the tag is searched
for. In Vim this is not done, the previous search pattern is still remembered, for. In Vim this is not done, the previous search pattern is still remembered,
unless the 't' flag is present in 'cpoptions'. The search pattern is always unless the 't' flag is present in 'cpoptions'.
put in the search history, so you can modify it if searching fails.
*emacs-tags* *emacs_tags* *E430* *emacs-tags* *emacs_tags* *E430*
Emacs style tag files are only supported if Vim was compiled with the Emacs style tag files are only supported if Vim was compiled with the
@ -505,10 +527,13 @@ a tag for each "#defined" macro, typedefs, enums, etc.
Some programs that generate tags files: Some programs that generate tags files:
ctags As found on most Unix systems. Only supports C. Only ctags As found on most Unix systems. Only supports C. Only
does the basic work. does the basic work.
universal ctags A maintained version of ctags based on exuberant
ctags. See https://ctags.io.
*Exuberant_ctags* *Exuberant_ctags*
exuberant ctags This is a very good one. It works for C, C++, Java, exuberant ctags This is a very good one. It works for C, C++, Java,
Fortran, Eiffel and others. It can generate tags for Fortran, Eiffel and others. It can generate tags for
many items. See http://ctags.sourceforge.net. many items. See http://ctags.sourceforge.net.
No new version since 2009.
etags Connected to Emacs. Supports many languages. etags Connected to Emacs. Supports many languages.
JTags For Java, in Java. It can be found at JTags For Java, in Java. It can be found at
http://www.fleiner.com/jtags/. http://www.fleiner.com/jtags/.
@ -904,8 +929,8 @@ The following is a hypothetical example of a function used for 'tagfunc'. It
uses the output of |taglist()| to generate the result: a list of tags in the uses the output of |taglist()| to generate the result: a list of tags in the
inverse order of file names. inverse order of file names.
> >
function! TagFunc(pattern, flags, info) function TagFunc(pattern, flags, info)
function! CompareFilenames(item1, item2) function CompareFilenames(item1, item2)
let f1 = a:item1['filename'] let f1 = a:item1['filename']
let f2 = a:item2['filename'] let f2 = a:item2['filename']
return f1 >=# f2 ? return f1 >=# f2 ?

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 VIM REFERENCE MANUAL by Bram Moolenaar
@ -25,8 +25,9 @@ NOTE: Most of this is not used when running the |GUI|.
1. Startup *startup-terminal* 1. Startup *startup-terminal*
When Vim is started a default terminal type is assumed. For the Amiga this is When Vim is started a default terminal type is assumed. For the Amiga this is
a standard CLI window, for MS-DOS the pc terminal, for Unix an ansi terminal. a standard CLI window, for MS-Windows the pc terminal, for Unix an ansi
A few other terminal types are always available, see below |builtin-terms|. terminal. A few other terminal types are always available, see below
|builtin-terms|.
You can give the terminal name with the '-T' Vim argument. If it is not given You can give the terminal name with the '-T' Vim argument. If it is not given
Vim will try to get the name from the TERM environment variable. Vim will try to get the name from the TERM environment variable.
@ -321,6 +322,7 @@ OUTPUT CODES *terminal-output-codes*
t_ZR italics end *t_ZR* *'t_ZR'* t_ZR italics end *t_ZR* *'t_ZR'*
Added by Vim (there are no standard codes for these): 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_Ce undercurl end *t_Ce* *'t_Ce'*
t_Cs undercurl mode *t_Cs* *'t_Cs'* t_Cs undercurl mode *t_Cs* *'t_Cs'*
t_Te strikethrough end *t_Te* *'t_Te'* t_Te strikethrough end *t_Te* *'t_Te'*
@ -349,6 +351,7 @@ Added by Vim (there are no standard codes for these):
|xterm-true-color| |xterm-true-color|
t_8b set background color (R, G, B) *t_8b* *'t_8b'* t_8b set background color (R, G, B) *t_8b* *'t_8b'*
|xterm-true-color| |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'* t_BE enable bracketed paste mode *t_BE* *'t_BE'*
|xterm-bracketed-paste| |xterm-bracketed-paste|
t_BD disable bracketed paste mode *t_BD* *'t_BD'* t_BD disable bracketed paste mode *t_BD* *'t_BD'*
@ -544,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. 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 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'. 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* *termcap-cursor-shape* *termcap-cursor-color*
When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim
@ -578,7 +582,7 @@ remove highlighting from a line. This is required for "hpterm". Setting the
versa. versa.
*scroll-region* *scroll-region*
Some termcaps do not include an entry for 'cs' (scroll region), although the Some termcaps do not include an entry for "cs" (scroll region), although the
terminal does support it. For example: xterm on a Sun. You can use the terminal does support it. For example: xterm on a Sun. You can use the
builtin_xterm or define t_cs yourself. For example: > builtin_xterm or define t_cs yourself. For example: >
:set t_cs=^V^[[%i%d;%dr :set t_cs=^V^[[%i%d;%dr
@ -595,11 +599,9 @@ cleared when scrolling).
Unfortunately it is not possible to deduce from the termcap how cursor Unfortunately it is not possible to deduce from the termcap how cursor
positioning should be done when using a scrolling region: Relative to the positioning should be done when using a scrolling region: Relative to the
beginning of the screen or relative to the beginning of the scrolling region. beginning of the screen or relative to the beginning of the scrolling region.
Most terminals use the first method. A known exception is the MS-DOS console Most terminals use the first method. The 't_CS' option should be set to any
(pcterm). The 't_CS' option should be set to any string when cursor string when cursor positioning is relative to the start of the scrolling
positioning is relative to the start of the scrolling region. It should be region. It should be set to an empty string otherwise.
set to an empty string otherwise. It defaults to "yes" when 'term' is
"pcterm".
Note for xterm users: The shifted cursor keys normally don't work. You can Note for xterm users: The shifted cursor keys normally don't work. You can
make them work with the xmodmap command and some mappings in Vim. make them work with the xmodmap command and some mappings in Vim.
@ -651,15 +653,7 @@ One command can be used to set the screen size:
:mod[e] [mode] :mod[e] [mode]
Without argument this only detects the screen size and redraws the screen. Without argument this only detects the screen size and redraws the screen.
With MS-DOS it is possible to switch screen mode. [mode] can be one of these [mode] was used on MS-DOS, but it doesn't work anymore.
values:
"bw40" 40 columns black&white
"c40" 40 columns color
"bw80" 80 columns black&white
"c80" 80 columns color (most people use this)
"mono" 80 columns monochrome
"c4350" 43 or 50 lines EGA/VGA mode
number mode number to use, depends on your video card
============================================================================== ==============================================================================
4. Slow and fast terminals *slow-fast-terminal* 4. Slow and fast terminals *slow-fast-terminal*
@ -699,10 +693,10 @@ If you are using Vim over a slow serial line, you might want to try running
Vim inside the "screen" program. Screen will optimize the terminal I/O quite Vim inside the "screen" program. Screen will optimize the terminal I/O quite
a bit. a bit.
If you are testing termcap options, but you cannot see what is happening, If you are testing termcap options, but you cannot see what is happening, you
you might want to set the 'writedelay' option. When non-zero, one character might want to set the 'writedelay' option. When non-zero, one character is
is sent to the terminal at a time (does not work for MS-DOS). This makes the sent to the terminal at a time. This makes the screen updating a lot slower,
screen updating a lot slower, making it possible to see what is happening. making it possible to see what is happening.
============================================================================== ==============================================================================
5. Using the mouse *mouse-using* 5. Using the mouse *mouse-using*
@ -716,8 +710,8 @@ Don't forget to enable the mouse with this command: >
Otherwise Vim won't recognize the mouse in all modes (See 'mouse'). Otherwise Vim won't recognize the mouse in all modes (See 'mouse').
Currently the mouse is supported for Unix in an xterm window, in a *BSD Currently the mouse is supported for Unix in an xterm window, in a *BSD
console with |sysmouse|, in a Linux console (with GPM |gpm-mouse|), for console with |sysmouse|, in a Linux console (with GPM |gpm-mouse|), and
MS-DOS and in a Windows console. in a Windows console.
Mouse clicks can be used to position the cursor, select an area and paste. Mouse clicks can be used to position the cursor, select an area and paste.
These characters in the 'mouse' option tell in which situations the mouse will These characters in the 'mouse' option tell in which situations the mouse will
@ -881,10 +875,9 @@ border, the text is scrolled.
A selection can be started by pressing the left mouse button on the first A selection can be started by pressing the left mouse button on the first
character, moving the mouse to the last character, then releasing the mouse character, moving the mouse to the last character, then releasing the mouse
button. You will not always see the selection until you release the button, button. You will not always see the selection until you release the button,
only in some versions (GUI, MS-DOS, WIN32) will the dragging be shown only in some versions (GUI, Win32) will the dragging be shown immediately.
immediately. Note that you can make the text scroll by moving the mouse at Note that you can make the text scroll by moving the mouse at least one
least one character in the first/last line in the window when 'scrolloff' is character in the first/last line in the window when 'scrolloff' is non-zero.
non-zero.
In Normal, Visual and Select mode clicking the right mouse button causes the In Normal, Visual and Select mode clicking the right mouse button causes the
Visual area to be extended. When 'mousemodel' is "popup", the left button has Visual area to be extended. When 'mousemodel' is "popup", the left button has
@ -898,9 +891,9 @@ work on systems where the window manager consumes the mouse events when the
alt key is pressed (it may move the window). alt key is pressed (it may move the window).
*double-click* *double-click*
Double, triple and quadruple clicks are supported when the GUI is active, Double, triple and quadruple clicks are supported when the GUI is active, for
for MS-DOS and Win32, and for an xterm (if the gettimeofday() function is Win32, and for an xterm (if the gettimeofday() function is available). For
available). For selecting text, extra clicks extend the selection: selecting text, extra clicks extend the selection:
click select ~ click select ~
double word or % match *<2-LeftMouse>* double word or % match *<2-LeftMouse>*
triple line *<3-LeftMouse>* triple line *<3-LeftMouse>*
@ -911,9 +904,8 @@ A double click on a word selects that word. 'iskeyword' is used to specify
which characters are included in a word. A double click on a character which characters are included in a word. A double click on a character
that has a match selects until that match (like using "v%"). If the match is that has a match selects until that match (like using "v%"). If the match is
an #if/#else/#endif block, the selection becomes linewise. an #if/#else/#endif block, the selection becomes linewise.
For MS-DOS and xterm the time for double clicking can be set with the For MS-Windows and xterm the time for double clicking can be set with the
'mousetime' option. For the other systems this time is defined outside of 'mousetime' option. For the other systems this time is defined outside of Vim.
Vim.
An example, for using a double click to jump to the tag under the cursor: > An example, for using a double click to jump to the tag under the cursor: >
:map <2-LeftMouse> :exe "tag ". expand("<cword>")<CR> :map <2-LeftMouse> :exe "tag ". expand("<cword>")<CR>

View File

@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.2. Last change: 2019 Dec 07 *terminal.txt* For Vim version 8.2. Last change: 2020 Jun 06
VIM REFERENCE MANUAL by Bram Moolenaar 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: > to Terminal-Normal mode: >
tnoremap <F1> <C-W>N tnoremap <F1> <C-W>N
You can use Esc, but you need to make sure it won't cause other keys to 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 tnoremap <Esc> <C-W>N
set notimeout ttimeout timeoutlen=100 set notimeout ttimeout timeoutlen=100
You can also create menus similar to terminal mode mappings, but you have to You can also create menus similar to terminal mode mappings, but you have to
use |:tlmenu| instead of |:tmenu|. use |:tlmenu| instead of |:tmenu|.
< *options-in-terminal* *options-in-terminal*
After opening the terminal window and setting 'buftype' to "terminal" the After opening the terminal window and setting 'buftype' to "terminal" the
TerminalOpen autocommand event is triggered. This makes it possible to set TerminalOpen autocommand event is triggered. This makes it possible to set
options specifically for the window and buffer. Example: > options specifically for the window and buffer. Example: >
@ -148,7 +149,12 @@ terminal window will start with a white or black background.
To use a different color the Terminal highlight group can be used, for To use a different color the Terminal highlight group can be used, for
example: > example: >
hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
< The highlight needs to be defined before the terminal is created. Doing it
later, or setting 'wincolor', will only have effect when the program running
in the terminal displays text or clears the terminal.
Instead of Terminal another group can be specified with the "term_highlight"
option for `term_start()`.
*g:terminal_ansi_colors* *g:terminal_ansi_colors*
In GUI mode or with 'termguicolors', the 16 ANSI colors used by default in new In GUI mode or with 'termguicolors', the 16 ANSI colors used by default in new
terminal windows may be configured using the variable terminal windows may be configured using the variable
@ -156,6 +162,7 @@ terminal windows may be configured using the variable
hexadecimal color codes, similar to those accepted by |highlight-guifg|. When 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 not using GUI colors, the terminal window always uses the 16 ANSI colors of
the underlying terminal. 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 The |term_setansicolors()| function can be used to change the colors, and
|term_getansicolors()| to get the currently used colors. |term_getansicolors()| to get the currently used colors.
@ -178,6 +185,10 @@ Command syntax ~
keep the terminal open in Terminal-Normal mode. This keep the terminal open in Terminal-Normal mode. This
can be changed with the ++close argument. 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 A new buffer will be created, using [command] or
'shell' as the name, prefixed with a "!". If a buffer 'shell' as the name, prefixed with a "!". If a buffer
by this name already exists a number is added in by this name already exists a number is added in
@ -641,8 +652,8 @@ term_getsize({buf}) *term_getsize()*
term_getstatus({buf}) *term_getstatus()* term_getstatus({buf}) *term_getstatus()*
Get the status of terminal {buf}. This returns a comma Get the status of terminal {buf}. This returns a String with
separated list of these items: a comma separated list of these items:
running job is running running job is running
finished job has finished finished job has finished
normal in Terminal-Normal mode normal in Terminal-Normal mode
@ -857,6 +868,8 @@ term_start({cmd} [, {options}]) *term_start()*
have "%d" where the buffer number goes, have "%d" where the buffer number goes,
e.g. "10split|buffer %d"; when not e.g. "10split|buffer %d"; when not
specified "botright sbuf %d" is used specified "botright sbuf %d" is used
"term_highlight" highlight group to use instead of
"Terminal"
"eof_chars" Text to send after all buffer lines were "eof_chars" Text to send after all buffer lines were
written to the terminal. When not set written to the terminal. When not set
CTRL-D is used on MS-Windows. For Python CTRL-D is used on MS-Windows. For Python
@ -953,7 +966,7 @@ Currently supported commands:
directory, thus it's best to use the full path. directory, thus it's best to use the full path.
[options] is only used when opening a new window. If present, [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: recognized:
"ff" file format: "dos", "mac" or "unix" "ff" file format: "dos", "mac" or "unix"
"fileformat" idem "fileformat" idem
@ -1025,7 +1038,7 @@ Writing a screen dump test for Vim ~
For an example see the Test_syntax_c() function in For an example see the Test_syntax_c() function in
src/testdir/test_syntax.vim. The main parts are: src/testdir/test_syntax.vim. The main parts are:
- Write a file you want to test with. This is useful for testing syntax - Write a file you want to test with. This is useful for testing syntax
highlighting. You can also start Vim with en empty buffer. highlighting. You can also start Vim with an empty buffer.
- Run Vim in a terminal with a specific size. The default is 20 lines of 75 - Run Vim in a terminal with a specific size. The default is 20 lines of 75
characters. This makes sure the dump is always this size. The function characters. This makes sure the dump is always this size. The function
RunVimInTerminal() takes care of this. Pass it the arguments for the Vim RunVimInTerminal() takes care of this. Pass it the arguments for the Vim
@ -1294,7 +1307,7 @@ breakpoint, or use the "Clear breakpoint" right-click menu entry.
Inspecting variables ~ Inspecting variables ~
*termdebug-variables* *:Evaluate* *termdebug-variables* *:Evaluate*
`:Evaluate` evaluate the expression under the cursor `:Evaluate` evaluate the expression under the cursor
`K` same `K` same (see |termdebug_map_K| to disable)
`:Evaluate` {expr} evaluate {expr} `:Evaluate` {expr} evaluate {expr}
`:'<,'>Evaluate` evaluate the Visually selected text `:'<,'>Evaluate` evaluate the Visually selected text
@ -1325,6 +1338,10 @@ in a buffer with 'buftype' set to "prompt". This works slightly differently:
*termdebug_use_prompt* *termdebug_use_prompt*
Prompt mode can be used even when the |+terminal| feature is present with: > Prompt mode can be used even when the |+terminal| feature is present with: >
let g:termdebug_use_prompt = 1 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 ~ Communication ~

View File

@ -1,4 +1,4 @@
*testing.txt* For Vim version 8.2. Last change: 2019 Sep 08 *testing.txt* For Vim version 8.2. Last change: 2020 Jun 13
VIM REFERENCE MANUAL by Bram Moolenaar 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. 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()* test_null_job() *test_null_job()*
Return a |Job| that is null. Only useful for testing. Return a |Job| that is null. Only useful for testing.
{only available when compiled with the +job feature} {only available when compiled with the +job feature}
@ -123,6 +127,13 @@ test_null_string() *test_null_string()*
Return a |String| that is null. Only useful for testing. Return a |String| that is null. Only useful for testing.
test_unknown() *test_unknown()*
Return a value with unknown type. Only useful for testing.
test_void() *test_void()*
Return a value with void type. Only useful for testing.
test_option_not_set({name}) *test_option_not_set()* test_option_not_set({name}) *test_option_not_set()*
Reset the flag that indicates option {name} was set. Thus it Reset the flag that indicates option {name} was set. Thus it
looks like it still has the default value. Use like this: > looks like it still has the default value. Use like this: >
@ -154,6 +165,10 @@ test_override({name}, {val}) *test_override()*
terminals terminals
no_wait_return set the "no_wait_return" flag. Not restored no_wait_return set the "no_wait_return" flag. Not restored
with "ALL". 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) ALL clear all overrides ({val} is not used)
"starting" is to be used when a test should behave like "starting" is to be used when a test should behave like
@ -205,7 +220,6 @@ test_setmouse({row}, {col}) *test_setmouse()*
call test_setmouse(4, 20) call test_setmouse(4, 20)
call feedkeys("\<LeftMouse>", "xt") call feedkeys("\<LeftMouse>", "xt")
test_settime({expr}) *test_settime()* test_settime({expr}) *test_settime()*
Set the time Vim uses internally. Currently only used for Set the time Vim uses internally. Currently only used for
timestamps in the history, as they are used in viminfo, and timestamps in the history, as they are used in viminfo, and
@ -218,6 +232,10 @@ test_settime({expr}) *test_settime()*
Can also be used as a |method|: > Can also be used as a |method|: >
GetTime()->test_settime() GetTime()->test_settime()
test_srand_seed([seed]) *test_srand_seed()*
When [seed] is given this sets the seed value used by
`srand()`. When omitted the test seed is removed.
============================================================================== ==============================================================================
3. Assert functions *assert-functions-details* 3. Assert functions *assert-functions-details*
@ -249,9 +267,8 @@ assert_equal({expected}, {actual} [, {msg}])
Can also be used as a |method|: > Can also be used as a |method|: >
mylist->assert_equal([1, 2, 3]) mylist->assert_equal([1, 2, 3])
< *assert_equalfile()* < *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 When the files {fname-one} and {fname-two} do not contain
exactly the same text an error message is added to |v:errors|. exactly the same text an error message is added to |v:errors|.
Also see |assert-return|. Also see |assert-return|.
@ -262,7 +279,6 @@ assert_equalfile({fname-one}, {fname-two})
Can also be used as a |method|: > Can also be used as a |method|: >
GetLog()->assert_equalfile('expected.log') GetLog()->assert_equalfile('expected.log')
assert_exception({error} [, {msg}]) *assert_exception()* assert_exception({error} [, {msg}]) *assert_exception()*
When v:exception does not contain the string {error} an error When v:exception does not contain the string {error} an error
message is added to |v:errors|. Also see |assert-return|. message is added to |v:errors|. Also see |assert-return|.

View File

@ -1,4 +1,4 @@
*textprop.txt* For Vim version 8.2. Last change: 2019 Dec 07 *textprop.txt* For Vim version 8.2. Last change: 2020 Mar 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -101,7 +101,7 @@ Manipulating text property types:
prop_type_add({name}, {props}) define a new property type prop_type_add({name}, {props}) define a new property type
prop_type_change({name}, {props}) change an existing property type prop_type_change({name}, {props}) change an existing property type
prop_type_delete({name} [, {props}]) delete a 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 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}]]) prop_clear({lnum} [, {lnum-end} [, {bufnr}]])
remove all text properties remove all text properties
prop_find({props} [, {direction}]) search for a text property 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}]]) prop_remove({props} [, {lnum} [, {lnum-end}]])
remove a text property remove a text property
@ -133,8 +133,8 @@ prop_add({lnum}, {col}, {props})
to {lnum}, this is a zero-width text property to {lnum}, this is a zero-width text property
bufnr buffer to add the property to; when omitted bufnr buffer to add the property to; when omitted
the current buffer is used the current buffer is used
id user defined ID for the property; when omitted id user defined ID for the property; must be a
zero is used number; when omitted zero is used
type name of the text property type type name of the text property type
All fields except "type" are optional. All fields except "type" are optional.
@ -143,8 +143,9 @@ prop_add({lnum}, {col}, {props})
within one line, or use "end_lnum" and "end_col" for a within one line, or use "end_lnum" and "end_col" for a
property that spans more than one line. property that spans more than one line.
When neither "length" nor "end_col" are given the property When neither "length" nor "end_col" are given the property
will be zero-width. That means it will not be highlighted but will be zero-width. That means it will move with the text, as
will move with the text, as a kind of mark. a kind of mark. One character will be highlighted, if the
type specifies highlighting.
The property can end exactly at the last character of the The property can end exactly at the last character of the
text, or just after it. In the last case, if text is appended text, or just after it. In the last case, if text is appended
to the line, the text property size will increase, also when to the line, the text property size will increase, also when
@ -154,8 +155,6 @@ prop_add({lnum}, {col}, {props})
added to. When not found, the global property types are used. added to. When not found, the global property types are used.
If not found an error is given. If not found an error is given.
See |text-properties| for information about text properties.
Can also be used as a |method|: > Can also be used as a |method|: >
GetLnum()->prop_add(col, props) GetLnum()->prop_add(col, props)
@ -168,14 +167,11 @@ prop_clear({lnum} [, {lnum-end} [, {props}]]) *prop_clear()*
When {props} contains a "bufnr" item use this buffer, When {props} contains a "bufnr" item use this buffer,
otherwise use the current buffer. otherwise use the current buffer.
See |text-properties| for information about text properties.
Can also be used as a |method|: > Can also be used as a |method|: >
GetLnum()->prop_clear() GetLnum()->prop_clear()
< <
*prop_find()* *prop_find()*
prop_find({props} [, {direction}]) prop_find({props} [, {direction}])
{not implemented yet}
Search for a text property as specified with {props}: Search for a text property as specified with {props}:
id property with this ID id property with this ID
type property with this type name type property with this type name
@ -198,8 +194,6 @@ prop_find({props} [, {direction}])
as with prop_list(), and additionally an "lnum" entry. as with prop_list(), and additionally an "lnum" entry.
If no match is found then an empty Dict is returned. If no match is found then an empty Dict is returned.
See |text-properties| for information about text properties.
prop_list({lnum} [, {props}]) *prop_list()* prop_list({lnum} [, {props}]) *prop_list()*
Return a List with all text properties in line {lnum}. Return a List with all text properties in line {lnum}.
@ -223,8 +217,6 @@ prop_list({lnum} [, {props}]) *prop_list()*
When "end" is zero the property continues in the next line. When "end" is zero the property continues in the next line.
The line break after this line is included. The line break after this line is included.
See |text-properties| for information about text properties.
Can also be used as a |method|: > Can also be used as a |method|: >
GetLnum()->prop_list() GetLnum()->prop_list()
< <
@ -239,6 +231,7 @@ prop_remove({props} [, {lnum} [, {lnum-end}]])
{props} is a dictionary with these fields: {props} is a dictionary with these fields:
id remove text properties with this ID id remove text properties with this ID
type remove text properties with this type name type remove text properties with this type name
both "id" and "type" must both match
bufnr use this buffer instead of the current one bufnr use this buffer instead of the current one
all when TRUE remove all matching text properties, all when TRUE remove all matching text properties,
not just the first one not just the first one
@ -248,8 +241,6 @@ prop_remove({props} [, {lnum} [, {lnum-end}]])
Returns the number of properties that were removed. Returns the number of properties that were removed.
See |text-properties| for information about text properties.
Can also be used as a |method|: > Can also be used as a |method|: >
GetProps()->prop_remove() GetProps()->prop_remove()
@ -275,8 +266,6 @@ prop_type_add({name}, {props}) *prop_type_add()* *E969* *E970*
end_incl when TRUE inserts at the end position will be end_incl when TRUE inserts at the end position will be
included in the text property included in the text property
See |text-properties| for information about text properties.
Can also be used as a |method|: > Can also be used as a |method|: >
GetPropName()->prop_type_add(props) GetPropName()->prop_type_add(props)
@ -285,8 +274,6 @@ prop_type_change({name}, {props}) *prop_type_change()*
property with this name does not exist an error is given. property with this name does not exist an error is given.
The {props} argument is just like |prop_type_add()|. The {props} argument is just like |prop_type_add()|.
See |text-properties| for information about text properties.
Can also be used as a |method|: > Can also be used as a |method|: >
GetPropName()->prop_type_change(props) GetPropName()->prop_type_change(props)
@ -301,12 +288,10 @@ prop_type_delete({name} [, {props}]) *prop_type_delete()*
When text property type {name} is not found there is no error. When text property type {name} is not found there is no error.
See |text-properties| for information about text properties.
Can also be used as a |method|: > Can also be used as a |method|: >
GetPropName()->prop_type_delete() 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 Returns the properties of property type {name}. This is a
dictionary with the same fields as was given to dictionary with the same fields as was given to
prop_type_add(). prop_type_add().
@ -316,8 +301,6 @@ prop_type_get([{name} [, {props}]) *prop_type_get()*
{props} can contain a "bufnr" item. When it is given, use {props} can contain a "bufnr" item. When it is given, use
this buffer instead of the global property types. this buffer instead of the global property types.
See |text-properties| for information about text properties.
Can also be used as a |method|: > Can also be used as a |method|: >
GetPropName()->prop_type_get() GetPropName()->prop_type_get()
@ -327,8 +310,6 @@ prop_type_list([{props}]) *prop_type_list()*
{props} can contain a "bufnr" item. When it is given, use {props} can contain a "bufnr" item. When it is given, use
this buffer instead of the global property types. this buffer instead of the global property types.
See |text-properties| for information about text properties.
============================================================================== ==============================================================================
3. When text changes *text-prop-changes* 3. When text changes *text-prop-changes*
@ -356,10 +337,11 @@ properties below the changed text, so that they still highlight the same text,
thus you don't need to update these. thus you don't need to update these.
Text property columns are not updated: ~ Text property columns are not updated or copied: ~
- When setting the line with |setline()| or through an interface, such as Lua, - When setting the line with |setline()| or through an interface, such as Lua,
Tcl or Python. Vim does not know what text got inserted or deleted. Tcl or Python. Vim does not know what text got inserted or deleted.
- With a command like `:move`, which takes a line of text out of context.
vim:tw=78:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

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