Compare commits

...

250 Commits

Author SHA1 Message Date
Aaron Tinio
4232dff815 patch 8.2.4733: HEEx and Surface do need a separate filetype
Problem:    HEEx and Surface do need a separate filetype.
Solution:   Revert 8.2.4729. (closes #10147)
2022-04-11 11:37:13 +01:00
Bram Moolenaar
c6e0a5e98c patch 8.2.4732: duplicate code to free fuzzy matches
Problem:    Duplicate code to free fuzzy matches.
Solution:   Bring back fuzmatch_str_free().
2022-04-10 18:09:06 +01:00
LemonBoy
db0ea7f2b0 patch 8.2.4731: the changelist index is not remembered per buffer
Problem:    The changelist index is not remembered per buffer.
Solution:   Keep the changelist index per window and buffer. (closes #10135,
            closes #2173)
2022-04-10 17:59:26 +01:00
Yasuhiro Matsumoto
e08fde0073 patch 8.2.4730: MS-Windows GUI: cannot use CTRL-/
Problem:    MS-Windows GUI: cannot use CTRL-/.
Solution:   Handle the WM_KEYUP event. (Yasuhiro Matsumoto, closes #10141)
2022-04-10 12:37:48 +01:00
Aaron Tinio
fa76a24109 patch 8.2.4729: HEEx and Surface templates do not need a separate filetype
Problem:    HEEx and Surface templates do not need a separate filetype.
Solution:   Use Eelixir for the similar filetypes. (Aaron Tinio, closes #10124)
2022-04-10 12:13:56 +01:00
zeertzjq
021996ffaa patch 8.2.4728: no test that v:event cannot be modified
Problem:    No test that v:event cannot be modified.
Solution:   Add a test. (closes #10139)
2022-04-10 11:44:04 +01:00
Dominique Pelle
7765f5cf96 patch 8.2.4727: unused code
Problem:    Unused code.
Solution:   Remove code and add #ifdefs. (Dominique Pellé, closes #10136)
2022-04-10 11:26:53 +01:00
LemonBoy
6013d0045d patch 8.2.4726: cannot use expand() to get the script name
Problem:    Cannot use expand() to get the script name.
Solution:   Support expand('<script>'). (closes #10121)
2022-04-09 21:42:10 +01:00
Bram Moolenaar
2ce97ae6aa patch 8.2.4725: unused variable in tiny build
Problem:    Unused variable in tiny build.
Solution:   Add #ifdef.
2022-04-09 21:13:51 +01:00
LemonBoy
a43993897a patch 8.2.4724: current instance of last search pattern not easily spotted
Problem:    Current instance of last search pattern not easily spotted.
Solution:   Add CurSearch highlighting. (closes #10133)
2022-04-09 21:04:08 +01:00
LemonBoy
2bf52dd065 patch 8.2.4723: the ModeChanged autocmd event is inefficient
Problem:    The ModeChanged autocmd event is inefficient.
Solution:   Avoid allocating memory. (closes #10134)  Rename
            trigger_modechanged() to may_trigger_modechanged().
2022-04-09 18:17:34 +01:00
zeertzjq
81b46a6ccd patch 8.2.4722: ending recording with mapping records too much
Problem:    When a recording is ended with a mapped key that key is also
            recorded.
Solution:   Remember the previous last_recorded_len. (closes #10122)
2022-04-09 17:58:49 +01:00
=?UTF-8?q?Dundar=20G=C3=B6c?=
36951ed1da patch 8.2.4721: cooklang files are not recognized
Problem:    Cooklang files are not recognized.
Solution:   recognize *.cook files. (Goc Dundar, closes #10120)
2022-04-09 16:08:08 +01:00
KnoP-01
b09c320039 patch 8.2.4720: ABB Rapid files are not recognized properly
Problem:    ABB Rapid files are not recognized properly.
Solution:   Add checks for ABB Rapid files. (Patrick Meiser-Knosowski,
            closes #10104)
2022-04-09 15:20:28 +01:00
Bram Moolenaar
0bbf09ca41 patch 8.2.0003: Build file dependencies are incomplete
Problem:    Build file dependencies are incomplete.
Solution:   Fix the dependencies. (Ken Takata, closes #5356)
2022-04-09 15:16:53 +01:00
Christian Brabandt
a0f659c76e patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Problem:    ">" marker sometimes not displayed in the jumplist.
Solution:   If the buffer no longer exists show "-invalid-". (Christian
            Brabandt, closes #10131, closes #10100)
2022-04-09 13:35:00 +01:00
Bram Moolenaar
cee9c844f2 patch 8.2.4718: @@@ in the last line sometimes drawn in the wrong place
Problem:    @@@ in the last line sometimes drawn in the wrong place.
Solution:   Make sure the column is valid. (closes #10130)
2022-04-09 12:40:13 +01:00
Bram Moolenaar
a016eeba7a patch 8.2.4717: for TextYankPost v:event does not contain all information
Problem:    For TextYankPost v:event does not contain information about the
            operation being inclusive or not.
Solution:   Add "inclusive" to v:event. (Justn M. Keyes, Yegappan Lakshmanan,
            closes #10125)
2022-04-09 11:37:38 +01:00
Yegappan Lakshmanan
7c7e19cf50 patch 8.2.4716: memory allocation failure not tested when defining a function
Problem:    Memory allocation failure not tested when defining a function.
Solution:   Add a test. (Yegappan Lakshmanan, closes #10127)
2022-04-09 11:09:07 +01:00
Julien Voisin
5e1792270a patch 8.2.4715: Vagrantfile not recognized
Problem:    Vagrantfile not recognized.
Solution:   Recognize Vagrantfile as ruby. (Julien Voisin, closes #10119)
2022-04-08 19:55:39 +01:00
Bram Moolenaar
cbaff5e06e Update runtime files 2022-04-08 17:45:08 +01:00
Bram Moolenaar
a8034a4886 patch 8.2.4714: using g:filetype_dat and g:filetype_src not tested
Problem:    Using g:filetype_dat and g:filetype_src not tested.
Solution:   Add a test. (Patrick Meiser-Knosowski, closes #10117)
2022-04-08 17:26:26 +01:00
LemonBoy
0937182d49 patch 8.2.4713: plugins cannot track text scrolling
Problem:    Plugins cannot track text scrolling.
Solution:   Add the WinScrolled event. (closes #10102)
2022-04-08 15:18:45 +01:00
Yegappan Lakshmanan
18ee0f603e patch 8.2.4712: only get profiling information after exiting
Problem:    Only get profiling information after exiting.
Solution:   Add "profile dump" and "profile stop". (Marco Hinz, Yegappan
            Lakshmanan, closes #10107)
2022-04-08 13:23:19 +01:00
zeertzjq
3a56b6d405 patch 8.2.4711: when 'insermode' is set :edit from <Cmd> mapping misbehaves
Problem:    When 'insermode' is set :edit from <Cmd> mapping misbehaves.
Solution:   Don't set "need_start_insertmode" when already in Insert mode.
            (closes #10116)
2022-04-08 11:56:14 +01:00
Christian Brabandt
ac72c21da6 patch 8.2.4710: smart indenting does not work after completion
Problem:    Smart indenting does not work after completion.
Solution:   Set "can_si". (Christian Brabandt, closes #10113, closes #558)
2022-04-07 21:00:53 +01:00
Bram Moolenaar
5017c66bd4 patch 8.2.4709: after :redraw the statusline highlight might be used
Problem:    After :redraw the statusline highlight might be used.
Solution:   Clear the screen attribute after redrawing the screen.
            (closes #10108)
2022-04-07 18:06:08 +01:00
Julien Voisin
177847e67a patch 8.2.4708: PHP test files are not recognized
Problem:    PHP test files are not recognized.
Solution:   Add the *.phpt pattern. (Julien Voisin, closes #10112)
2022-04-07 16:01:13 +01:00
zeertzjq
8c97960850 patch 8.2.4707: redrawing could be a bit more efficient
Problem:    Redrawing could be a bit more efficient.
Solution:   Optimize redrawing. (closes #10105)
2022-04-07 15:08:01 +01:00
zeertzjq
6a06940f8a patch 8.2.4706: buffer remains active with WinClosed and tabpages
Problem:    Buffer remains active if a WinClosed event throws an exception
            when there are multiple tabpages.
Solution:   Ignore aborting() when closing the buffer. (closes #10101)
2022-04-07 14:08:29 +01:00
zeertzjq
6d4e725a34 patch 8.2.4705: jump list marker disappears
Problem:    Jump list marker disappears.
Solution:   Reset reg_executing later. (closes #10111, closes #10100)
2022-04-07 13:58:04 +01:00
=?UTF-8?q?Dundar=20G=C3=B6c?=
f26c16144d patch 8.2.4704: using "else" after return or break increases indent
Problem:    Using "else" after return or break increases indent.
Solution:   Remove "else" and reduce indent. (Goc Dundar, closes #10099)
2022-04-07 13:26:34 +01:00
Bram Moolenaar
cb49a1d934 patch 8.2.4703: memory leak in handling 'cinscopedecls'
Problem:    Memory leak in handling 'cinscopedecls'.
Solution:   Free the memory before returning.
2022-04-07 13:08:00 +01:00
Tom Praschan
3506cf34c1 patch 8.2.4702: C++ scope labels are hard-coded
Problem:    C++ scope labels are hard-coded.
Solution:   Add 'cinscopedecls' to define the labels. (Rom Praschan,
            closes #10109)
2022-04-07 12:39:08 +01:00
Bram Moolenaar
3ad2090316 patch 8.2.4701: Kuka Robot Language files not recognized
Problem:    Kuka Robot Language files not recognized.
Solution:   Recognize *.src and *.dat files. (Patrick Meiser-Knosowski,
            closes #10096)
2022-04-06 18:57:39 +01:00
Bram Moolenaar
c947b9ae41 patch 8.2.4700: buffer remains active if WinClosed event throws an exception
Problem:    Buffer remains active if a WinClosed event throws an exception.
Solution:   Ignore aborting() when closing the buffer. (closes #10097)
2022-04-06 17:59:21 +01:00
LemonBoy
75a0f3c011 patch 8.2.4699: hard to reproduce hang when reading from a channel
Problem:    Hard to reproduce hang when reading from a channel.
Solution:   Check for readahead before starting to wait. (closes #10093,
            closes #7781, closes #6364)
2022-04-05 22:03:30 +01:00
Bram Moolenaar
aa7d0c2335 patch 8.2.4698: Vim9: script variable has no flag that it was set
Problem:    Vim9: script variable has no flag that it was set.
Solution:   Add a flag that it was set, to avoid giving it a value when used.
            (closes #10088)
2022-04-05 21:40:38 +01:00
Bram Moolenaar
0d1f55c044 patch 8.2.4697: Vim9: crash when adding a duplicate key to a dictionary
Problem:    Vim9: crash when adding a duplicate key to a dictionary.
Solution:   Clear the stack item when it has been moved into the dictionary.
            (closes #10087)
2022-04-05 17:30:29 +01:00
zeertzjq
478700336d patch 8.2.4696: delete() with "rf" argument does not report a failure
Problem:    delete() with "rf" argument does not report a failure.
Solution:   Return -1 if the directory could not be removed. (closes #10078)
2022-04-05 15:31:01 +01:00
LemonBoy
beb0ef1ab2 patch 8.2.4695: JSON encoding could be faster
Problem:    JSON encoding could be faster.
Solution:   Optimize encoding JSON strings. (closes #10086)
2022-04-05 15:07:32 +01:00
ichizok
02560424bf patch 8.2.4694: avoidance of #elif causes more preproc nesting
Problem:    Avoidance of #elif causes more preproc nesting.
Solution:   Use #elif where it is useful. (Ozaki Kiichi, closes #10081)
2022-04-05 14:18:44 +01:00
Bram Moolenaar
72bb10df1f patch 8.2.4693: new regexp does not accept pattern "\%>0v"
Problem:    new regexp does not accept pattern "\%>0v".
Solution:   Do accept digit zero.
2022-04-05 14:00:32 +01:00
zeertzjq
0f68e6c07a patch 8.2.4692: no test for what 8.2.4691 fixes
Problem:    No test for what 8.2.4691 fixes.
Solution:   Add a test.  Use a more generic sotlution. (closes #10090)
2022-04-05 13:17:01 +01:00
Bram Moolenaar
ca9d8d2cb9 patch 8.2.4691: solution for <Cmd> in a mapping causes trouble
Problem:    Solution for <Cmd> in a mapping causes trouble.
Solution:   Use another solution: put back CTRL-O after reading the <Cmd>
            sequence.
2022-04-04 22:09:30 +01:00
LemonBoy
1b76a8dfe2 patch 8.2.4690: channel tests fail on MS-Windows
Problem:    Channel tests fail on MS-Windows.
Solution:   Check if the AF_UNIX attribute exists. (closes #10083)
2022-04-04 21:13:35 +01:00
Bram Moolenaar
d0fb2d8041 patch 8.2.4689: using <Cmd> in a mapping does not work for mouse keys
Problem:    Using <Cmd> in a mapping does not work for mouse keys in Insert
            mode. (Sergey Vlasov)
Solution:   When reading the <Cmd> argument do not use the stuff buffer.
            (closes #10080)
2022-04-04 21:03:52 +01:00
Bram Moolenaar
91ff3d4f52 patch 8.2.4688: new regexp engine does not give an error for "\%v"
Problem:    New regexp engine does not give an error for "\%v".
Solution:   Check for a value argument. (issue #10079)
2022-04-04 18:32:32 +01:00
Bram Moolenaar
e8a4c0d91f patch 8.2.4687: "vimgrep /\%v/ *" may cause a crash
Problem:    "vimgrep /\%v/ *" may cause a crash.
Solution:   When compiling the pattern with the old engine fails, restore the
            regprog of the new engine instead of leaving it NULL.
            (closes #10079)
2022-04-04 18:14:34 +01:00
Kelvin Lee
b471690fad patch 8.2.4686: configure doesn't find the Motif library with Cygwin
Problem:    Configure doesn't find the Motif library with Cygwin.
Solution:   Check for libXm.dll.a. (Kelvin Lee, closes #10077)
2022-04-04 17:20:01 +01:00
Bram Moolenaar
188639d75c patch 8.2.4685: when a swap file is found for a popup there is no dialog
Problem:    When a swap file is found for a popup there is no dialog and the
            buffer is loaded anyway.
Solution:   Silently load the buffer read-only. (closes #10073)
2022-04-04 16:57:21 +01:00
LemonBoy
cc766a85f4 patch 8.2.4684: cannot open a channel on a Unix domain socket
Problem:    Cannot open a channel on a Unix domain socket.
Solution:   Add Unix domain socket support. (closes #10062)
2022-04-04 15:46:58 +01:00
Yegappan Lakshmanan
4829c1c9e9 patch 8.2.4683: verbose check with dict_find() to see if a key is present
Problem:    Verbose check with dict_find() to see if a key is present.
Solution:   Add dict_has_key(). (Yegappan Lakshmanan, closes #10074)
2022-04-04 15:16:54 +01:00
Bram Moolenaar
7a411a306f patch 8.2.4682: Vim9: can use :unlockvar for const variable
Problem:    Vim9: can use :unlockvar for const variable. (Ernie Rael)
Solution:   Check whether the variable is a const.
2022-04-04 14:58:06 +01:00
Bram Moolenaar
15f74fab65 patch 8.2.4681: build fails with a combination of features
Problem:    Build fails with a combination of features.
Solution:   Remove #ifdef for alloc_clear_id(). (John Marriott)
2022-04-03 21:57:26 +01:00
Bram Moolenaar
242c152c08 patch 8.2.4680: build failure without +postscript
Problem:    Build failure without +postscript.
Solution:   Use another error message.
2022-04-03 21:52:51 +01:00
Yegappan Lakshmanan
2b74b6805b patch 8.2.4679: cannot have expandcmd() give an error message for mistakes
Problem:    Cannot have expandcmd() give an error message for mistakes.
Solution:   Add an optional argument to give errors. Fix memory leak when
            expanding files fails. (Yegappan Lakshmanan, closes #10071)
2022-04-03 21:30:32 +01:00
Bram Moolenaar
1061195057 patch 8.2.4678: Vim9: not all code is tested
Problem:    Vim9: not all code is tested.
Solution:   Add a few more tests.
2022-04-03 21:11:34 +01:00
Bram Moolenaar
0b962e5685 patch 8.2.4677: the Athena GUI support is outdated
Problem:    The Athena GUI support is outdated.
Solution:   Remove the Athena GUI code.
2022-04-03 18:02:37 +01:00
Bram Moolenaar
292e1b9f68 patch 8.2.4676: test fails with different error
Problem:    Test fails with different error.
Solution:   Add argument for :elseif.
2022-04-03 16:59:02 +01:00
Bram Moolenaar
fa010cdfb1 patch 8.2.4675: no error for missing expression after :elseif
Problem:    No error for missing expression after :elseif. (Ernie Rael)
Solution:   Check for missing expression. (closes #10068)
2022-04-03 16:13:07 +01:00
Ernie Rael
c4cb544cd5 patch 8.2.4674: cannot force getting MouseMove events
Problem:    Cannot force getting MouseMove events.
Solution:   Add the 'mousemoveevent' option with implementaiton for the GUI.
            (Ernie Rael, closes #10044)
2022-04-03 15:47:28 +01:00
Bram Moolenaar
8ef6997e2d patch 8.2.4673: redrawing a split window is slow when using CTRL-F and CTRL-B
Problem:    Redrawing a vertically split window is slow when using CTRL-F and
            CTRL-B.
Solution:   When deciding on USE_REDRAW bail out if scrolling more than three
            lines. (issue #8002)
2022-04-03 13:23:22 +01:00
Bram Moolenaar
ce416b453a patch 8.2.4672: using :normal with Ex mode may make :substitute hang
Problem:    Using :normal with Ex mode may make :substitute hang.
Solution:   When getting an empty line behave like 'q' was typed.
            (closes #10070)
2022-04-03 12:59:34 +01:00
LemonBoy
a3157a476b patch 8.2.4671: 'wildignorecase' is sometimes not used for glob()
Problem:    'wildignorecase' is sometimes not used for glob().
Solution:   Also use 'wildignorecase' when there are no wildcards.
            (closes #10066, closes #8350)
2022-04-03 11:58:31 +01:00
Yegappan Lakshmanan
72bb47e38f patch 8.2.4670: memory allocation failures for new tab page not tested
Problem:    Memory allocation failures for new tab page not tested.
Solution:   Add tests with failing memory allocation. (Yegappan Lakshmanan,
            closes #10067)
2022-04-03 11:22:38 +01:00
LemonBoy
58f331a05f patch 8.2.4669: in compiled code len('string') is not inlined
Problem:    In compiled code len('string') is not inlined.
Solution:   Compute the length at compile time if possible. (closes #10065)
2022-04-02 21:59:06 +01:00
Yegappan Lakshmanan
0dac1ab579 patch 8.2.4668: buffer allocation failures insufficiently tested
Problem:    Buffer allocation failures insufficiently tested.
Solution:   Add tests for memory allocation failures. (Yegappan Lakshmanan,
            closes #10064)
2022-04-02 21:46:19 +01:00
Yegappan Lakshmanan
5018a836c0 patch 8.2.4667: expandcmd() fails on an error
Problem:    expandcmd() fails on an error.
Solution:   On failure return the command unmodified. (yegappan Lakshmanan,
            closes #10063)
2022-04-02 21:12:21 +01:00
Bram Moolenaar
97f8c1081e patch 8.2.4666: Vim9: assignment not recognized in skipped block
Problem:    Vim9: assignment not recognized in skipped block.
Solution:   When skipping assume identifier exists. (closes #10059)
2022-04-02 19:43:57 +01:00
Bram Moolenaar
eabddc425e patch 8.2.4665: popup with "minwidth" and scrollbar not updated properly
Problem:    Popup with "minwidth" and scrollbar not updated properly.
Solution:   Adjust the computation if the window width. (closes #10061)
2022-04-02 15:32:16 +01:00
Bruno Roque
c1658a196b patch 8.2.4664: Elvish files are not recognized
Problem:    Elvish files are not recognized.
Solution:   Recognize .elv files. (Bruno Roque, closes #10058)
2022-04-02 10:48:24 +01:00
Bram Moolenaar
17fa233f6f patch 8.2.4663: occasional crash when running the GUI tests
Problem:    Occasional crash when running the GUI tests.
Solution:   Check that the line index is not too high. (closes #8681)
2022-04-01 19:44:47 +01:00
Bram Moolenaar
22ebd172e4 patch 8.2.4662: no error for using out of range list index
Problem:    No error for using out of range list index.
Solution:   Check list index at script level like in compiled function.
            (closes #10051)
2022-04-01 15:26:58 +01:00
Bram Moolenaar
ffe6e646dc patch 8.2.4661: Coverity warning for using uninitialized variable
Problem:    Coverity warning for using uninitialized variable.
Solution:   Initialize variable to NULL.
2022-04-01 13:23:47 +01:00
Bram Moolenaar
782c6744b4 patch 8.2.4660: cursorcolumn is sometimes not correct
Problem:    Cursorcolumn is sometimes not correct.
Solution:   Recompute the cursor column when entering Insert mode and the
            cursor is on a character wider than a screen cell.
2022-04-01 12:06:31 +01:00
Bram Moolenaar
96e08e028c patch 8.2.4659: invalid memory access when using printable function name
Problem:    Invalid memory access when using printable function name.
Solution:   Adjust copied name length.
2022-03-31 21:40:33 +01:00
ranjithshegde
3a6f952cc8 patch 8.2.4658: org-mode files are not recognized
Problem:    Org-mode files are not recognized.
Solution:   Add patterns to recognize "org" files. (closes #10046)
2022-03-31 20:24:35 +01:00
Bram Moolenaar
a6c18d38ca patch 8.2.4657: errors for functions are sometimes hard to read
Problem:    Errors for functions are sometimes hard to read.
Solution:   Use printable_func_name() in more places.
2022-03-31 20:02:56 +01:00
Bram Moolenaar
ccbfd4883f patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Problem:    Vim9: can't use items from "import autoload" with autoload
            directory name.
Solution:   Let sn_autoload_prefix overrule sn_import_autoload.
            (closes #10054)
2022-03-31 16:18:23 +01:00
Yegappan Lakshmanan
1104a6d0c2 patch 8.2.4655: cmdline completion popup menu positioned wrong
Problem:    Command line completion popup menu positioned wrong when using a
            terminal window.
Solution:   Position the popup menu differently when editing the command line.
            (Yegappan Lakshmanan, closes #10050, closes #10035)
2022-03-31 12:34:15 +01:00
Bram Moolenaar
49d008d96b patch 8.2.4654: missing changes for import check
Problem:    Missing changes for import check.
Solution:   Add missing changes.
2022-03-31 11:51:21 +01:00
Bram Moolenaar
4dea2d92e4 patch 8.2.4653: "import autoload" does not check the file name
Problem:    "import autoload" does not check the file name.
Solution:   Give an error if the file is not readable. (closes #10049)
2022-03-31 11:37:57 +01:00
Bram Moolenaar
d1d2684c80 patch 8.2.4652: leaking memory if assignment fails
Problem:    Leaking memory if assignment fails.
Solution:   Clear assigned value on failure.
2022-03-31 10:13:47 +01:00
Bram Moolenaar
1712518f48 patch 8.2.4651: test fails because path differs
Problem:    Test fails because path differs.
Solution:   Only compare the tail of the path.
2022-03-30 21:57:50 +01:00
Bram Moolenaar
c0ceeeb839 patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Problem:    "import autoload" only works with using 'runtimepath'.
Solution:   Also support a relative and absolute file name.
2022-03-30 21:12:27 +01:00
Bram Moolenaar
b4ad3b0dea patch 8.2.4649: various formatting problems
Problem:    Various formatting problems.
Solution:   Improve the code formatting.
2022-03-30 10:57:45 +01:00
Bram Moolenaar
46eea444d9 Update runtime files 2022-03-30 10:51:39 +01:00
Yegappan Lakshmanan
9247a221ce patch 8.2.4648: handling LSP messages is a bit slow
Problem:    Handling LSP messages is a bit slow.
Solution:   Included support for LSP messages. (Yegappan Lakshmanan,
            closes #10025)
2022-03-30 10:16:05 +01:00
Bram Moolenaar
2bdad61267 patch 8.2.4647: "source" can read past end of copied line
Problem:    "source" can read past end of copied line.
Solution:   Add a terminating NUL.
2022-03-29 19:52:12 +01:00
Bram Moolenaar
b55986c52d patch 8.2.4646: using buffer line after it has been freed
Problem:    Using buffer line after it has been freed in old regexp engine.
Solution:   After getting mark get the line again.
2022-03-29 13:24:58 +01:00
James Cherti
fd01280d01 patch 8.2.4645: 'shortmess' changed when session does not store options
Problem:    'shortmess' changed when session does not store options.
Solution:   Save and restore 'shortmess' if needed. (James Charti,
            closes #10037)
2022-03-29 12:02:57 +01:00
Lewis Russell
1624639ec8 patch 8.2.4644: redrawing too often when 'relativenumber' is set
Problem:    Redrawing too often when 'relativenumber' is set.
Solution:   Only redraw when the cursor line changed. (Lewis Russell,
            closes #10040)
2022-03-29 11:38:17 +01:00
Bram Moolenaar
24565cf27b patch 8.2.4643: Vim9: variable may be locked unintentionally
Problem:    Vim9: variable may be locked unintentionally.
Solution:   Clear "v_lock". (closes #10036)
2022-03-28 18:16:52 +01:00
Bram Moolenaar
859cc21c6b patch 8.2.4642: Vim9: in :def function script var cannot be null
Problem:    Vim9: in :def function script var cannot be null.
Solution:   Only initialize a script variable when not set to a null value.
            (closes #10034)
2022-03-28 15:22:35 +01:00
Bram Moolenaar
471b3aed3e patch 8.2.4641: may mark the wrong window for redrawing
Problem:    May mark the wrong window for redrawing.
Solution:   Use redraw_win_later(). (closes #10032)
2022-03-28 12:41:19 +01:00
James McCoy
8be423b7ac patch 8.2.4640: some boolean options use "long" instead of "int"
Problem:    Some boolean options use "long" instead of "int".
Solution:   Adjust the type. (James McCoy, closes #10033)
2022-03-28 11:55:12 +01:00
kylo252
9dac9b1751 patch 8.2.4639: not sufficient parenthesis in preprocessor macros
Problem:    Not sufficient parenthesis in preprocessor macros.
Solution:   Add more parenthesis. (closes #10031)
2022-03-27 20:05:17 +01:00
zeertzjq
3e559cd884 patch 8.2.4638: superfluous check if a redraw is needed for 'cursorline'
Problem:    Superfluous check if a redraw is needed for 'cursorline'.
Solution:   Remove check_redraw_cursorline(). (closes #10030, closes #10029)
2022-03-27 19:26:55 +01:00
Bram Moolenaar
565d1278cb patch 8.2.4637: warning for using uninitialized variable
Problem:    Warning for using uninitialized variable. (Tony Mechelynck)
Solution:   Initialize it.
2022-03-27 18:11:05 +01:00
Bram Moolenaar
1501b63f8d patch 8.2.4636: not using Visual range
Problem:    Not using Visual range.
Solution:   Put the command pointer back to the range.
2022-03-27 16:56:21 +01:00
Bram Moolenaar
501f978288 patch 8.2.4635: tests using null list or dict fail
Problem:    Tests using null list or dict fail.
Solution:   Only use the new rules for Vim9 script.
2022-03-27 16:51:04 +01:00
Bram Moolenaar
ec15b1cfdc patch 8.2.4634: Vim9: cannot initialize a variable to null_list
Problem:    Vim9: cannot initialize a variable to null_list.
Solution:   Give negative count to NEWLIST. (closes #10027)
            Also fix inconsistencies in comparing with null values.
2022-03-27 16:29:53 +01:00
Bram Moolenaar
c75bca3ee9 patch 8.2.4633: Visual range does not work before command modifiers
Problem:    Visual range does not work before command modifiers.
Solution:   Move Visual range to after command modifiers.
2022-03-27 13:36:50 +01:00
Bram Moolenaar
f3980dc5d0 patch 8.2.4632: using freed memory in flatten()
Problem:    Using freed memory in flatten().
Solution:   Clear typval after recursing into list.
2022-03-26 16:42:23 +00:00
Bram Moolenaar
347538fad0 patch 8.2.4631: crash when switching window in BufWipeout autocommand
Problem:    Crash when switching window in BufWipeout autocommand.
Solution:   Put any buffer in the window to avoid it being NULL.
            (closes #10024)
2022-03-26 16:28:06 +00:00
Bram Moolenaar
bf269ed0b0 patch 8.2.4630: 'cursorline' not always updated with 'culopt' is "screenline"
Problem:    'cursorline' not always updated with 'cursorlineopt' is
            "screenline".
Solution:   Call check_redraw_cursorline() more often. (closes #10013)
2022-03-26 13:28:14 +00:00
Bram Moolenaar
c6c1ec4da5 patch 8.2.4629: flattennew() makes a deep copy unnecessarily
Problem:    flattennew() makes a deep copy unnecessarily.
Solution:   Use a shallow copy. (issue #10012)
2022-03-26 10:50:11 +00:00
Yegappan Lakshmanan
5e877baf87 patch 8.2.4628: not enough testing for 2/3 letter substitute commands
Problem:    Not enough testing for 2/3 letter substitute commands.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #10019)
2022-03-25 21:19:26 +00:00
Bram Moolenaar
acf7d73a7f patch 8.2.4627: flatten() does not use maxdepth correctly
Problem:    flatten() does not use maxdepth correctly.
Solution:   Use a recursive implementation. (closes #10020)
2022-03-25 19:50:57 +00:00
Bram Moolenaar
abb6fbd14d patch 8.2.4626: Visual area not updated when removing sign in Visual mode
Problem:    Visual area not fully updated when removing sign in Visual mode
            while scrolling.
Solution:   Adjust check for topline. (closes #10017)
2022-03-25 15:42:27 +00:00
Bram Moolenaar
90da27b927 patch 8.2.4625: old Coverity warning for resource leak
Problem:    Old Coverity warning for resource leak.
Solution:   Call FreeWild() if expanding matches did not fail.
2022-03-25 14:54:18 +00:00
Bram Moolenaar
5d46dcfeed patch 8.2.4624: old Coverity warning for resource leak
Problem:    Old Coverity warning for resource leak.
Solution:   Close the file if memory allocation fails.
2022-03-25 14:46:47 +00:00
Bram Moolenaar
03a297c63f patch 8.2.4623: Coverity warns for using uninitialized field
Problem:    Coverity warns for using uninitialized field.
Solution:   Initialize he field to zero.
2022-03-25 14:39:51 +00:00
Bram Moolenaar
43216611a5 patch 8.2.4622: Vim9: crash with :execute and :finish
Problem:    Vim9: Crash with :execute and :finish. (Sergey Vlasov)
Solution:   Check for NULL. (closes #10011)
2022-03-25 11:16:28 +00:00
Bram Moolenaar
9dd42a6311 patch 8.2.4621: crash when using the tabline right-click menu
Problem:    Crash when using the tabline right-click menu.
Solution:   Use XtPointer for XmNuserData. (closes #10009)
2022-03-24 18:04:49 +00:00
Bram Moolenaar
1e2c4175dc patch 8.2.4620: two letter substitute commands don't work
Problem:    Two letter substitute commands don't work. (Yegappan Lakshmanan)
Solution:   Invert condition.
2022-03-24 15:24:45 +00:00
Bram Moolenaar
f8e43f6107 patch 8.2.4619: mapping is cancelled when mouse moves and popup is visible
Problem:    Mapping is cancelled when mouse moves and popup is visible.
Solution:   Only generate mouse moved events when a popup may use them.
            (closes #10004)
2022-03-24 15:15:15 +00:00
Bram Moolenaar
f4f0525c34 patch 8.2.4618: cmdline completion does not recognize single letter commands
Problem:    Command line completion does not recognize single letter commands.
Solution:   Use the condition from find_ex_command().
2022-03-24 13:08:36 +00:00
Yegappan Lakshmanan
454ce6737c patch 8.2.4617: no completion for :scriptnames
Problem:    No completion for :scriptnames.
Solution:   Implement :scriptnames completion. (Yegappan Lakshmanan,
            closes #10005)
2022-03-24 11:22:13 +00:00
Bram Moolenaar
98b7fe725e patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Problem:    Vim9: Declarations in a {} block of a user command do not use Vim9
            rules if defined in a legacy script. (Yegappan Lakshmanan)
Solution:   Pretend the script is Vim9 script.
2022-03-23 21:36:27 +00:00
Bram Moolenaar
ac48506ac6 patch 8.2.4615: mapping with escaped bar does not work in :def function
Problem:    Mapping with escaped bar does not work in :def function. (Sergey
            Vlasov)
Solution:   Do not remove the backslash. (closes #10002)
2022-03-23 19:45:01 +00:00
zeertzjq
c20e46a4e3 patch 8.2.4614: redrawing too much when 'cursorline' is set
Problem:    Redrawing too much when 'cursorline' is set and jumping around.
Solution:   Rely on win_update() to redraw the current and previous cursor
            line, do not mark lines as modified. (closes #9996)
2022-03-23 14:55:23 +00:00
zeertzjq
3c5999e53d patch 8.2.4613: return type of swapfile_unchanged() is wrong
Problem:    Return type of swapfile_unchanged() is wrong.
Solution:   Use "int". (closes #10000  Yeah!)
2022-03-23 13:54:51 +00:00
Bram Moolenaar
a915fa0103 patch 8.2.4612: Vim9: cannot use a recursive call in a nested function
Problem:    Vim9: cannot use a recursive call in a nested function. (Sergey
            Vlasov)
Solution:   Define the funcref before compiling the function. (closes #9989)
2022-03-23 11:29:15 +00:00
Dominique Pelle
81b573d7e5 patch 8.2.4611: typos in tests; one lua line not covered by test
Problem:    Typos in tests; one lua line not covered by test.
Solution:   Fix typos. Add test case. (Dominique Pellé, closes #9994)
2022-03-22 21:14:55 +00:00
Bram Moolenaar
fe154990c1 patch 8.2.4610: some conditions are always true
Problem:    Some conditions are always true.
Solution:   Remove the useless conditions. (closes #9993)
2022-03-22 20:42:12 +00:00
Bram Moolenaar
6f2465d336 patch 8.2.4609: :unhide does not check for failing to close a window
Problem:    :unhide does not check for failing to close a window.
Solution:   When closing a window fails continue with the next one.  Do not
            try closing the autocmd window. (closes #9984)
2022-03-22 18:13:01 +00:00
Yegappan Lakshmanan
e7dd0fa2c6 patch 8.2.4608: getcompletion() does not work when 'wildoptions' has "fuzzy"
Problem:    getcompletion() does not work properly when 'wildoptions
            contains "fuzzy".
Solution:   Do not use addstar(). (Yegappan Lakshmanan, closes #9992,
            closes #9986)
2022-03-22 16:06:31 +00:00
Yegappan Lakshmanan
35dc17634d patch 8.2.4607: sourcing buffer lines may lead to errors for conflicts
Problem:    Sourcing buffer lines may lead to errors for conflicts.
Solution:   Add the ++clear argument. (Yegappan Lakshmanan, closes #9991)
2022-03-22 12:13:54 +00:00
Bram Moolenaar
e18acb02bb patch 8.2.4606: test fails because of changed error message
Problem:    Test fails because of changed error message.
Solution:   Update the expected error message
2022-03-21 20:40:35 +00:00
Bram Moolenaar
6d877fe018 patch 8.2.4604: error for redefining a script item may be confusing
Problem:    Error for redefining a script item may be confusing.
Solution:   Put quotes around the name.
2022-03-21 19:47:31 +00:00
Yegappan Lakshmanan
85b43c6cb7 patch 8.2.4603: sourcing buffer lines is too complicated
Problem:    Sourcing buffer lines is too complicated.
Solution:   Simplify the code. Make it possible to source Vim9 script lines.
            (Yegappan Lakshmanan, closes #9974)
2022-03-21 19:45:17 +00:00
Bram Moolenaar
397a87ac1c patch 8.2.4602: Vim9: not enough test coverage for executing :def function
Problem:    Vim9: not enough test coverage for executing :def function.
Solution:   Add a few more tests.  Fix uncovered problem.  Remove dead code.
2022-03-20 21:14:15 +00:00
Bram Moolenaar
efd73ae5d2 patch 8.2.4601: Vim9: not enough test coverage for executing :def function
Problem:    Vim9: not enough test coverage for executing :def function.
Solution:   Add a few more tests.
2022-03-20 18:51:00 +00:00
Bram Moolenaar
6b8c7ba062 patch 8.2.4600: Vim9: not enough test coverage for executing :def function
Problem:    Vim9: not enough test coverage for executing :def function.
Solution:   Add a few more tests.  Fix inconsistencies.
2022-03-20 17:46:06 +00:00
Bram Moolenaar
a4df834a92 patch 8.2.4599: GTK: get assertion errors when scrolling a split window
Problem:    GTK: get assertion errors when scrolling a split window.
Solution:   Use GDK_IS_DRAWABLE() on the scrollbar window. (closes #9982)
2022-03-20 15:43:01 +00:00
Bram Moolenaar
7e0be3ea21 patch 8.2.4598: profile completion test sometimes fails
Problem:    Profile completion test sometimes fails.
Solution:   Delete the .res file before running tests.
2022-03-20 13:40:41 +00:00
Dominique Pelle
b6643d10d3 patch 8.2.4597: LuaV_debug() not covered by tests
Problem:    LuaV_debug() not covered by tests.
Solution:   Add a test. (Dominique Pellé, closes #9980)
2022-03-20 11:46:01 +00:00
Sergei Trofimovich
c670ebddcd patch 8.2.4596: installing tutor binary may fail
Problem:    Installing tutor binary may fail.
Solution:   Fix the dependency. (Sergei Trofimovich, closes #9978)
2022-03-20 11:26:36 +00:00
jsecchiero
6f95363677 patch 8.2.4595: X11: using --remote-wait may keep the CPU busy
Problem:    X11: using --remote-wait may keep the CPU busy.
Solution:   Set the timeout for select() on every call. (Jacopo Secchiero,
            closes #9973)
2022-03-20 11:07:17 +00:00
Bram Moolenaar
47c532e2bc Update runtime files 2022-03-19 15:18:53 +00:00
Yegappan Lakshmanan
36a5b6867b patch 8.2.4594: need to write script to a file to be able to source them
Problem:    Need to write script to a file to be able to source them.
Solution:   Make ":source" use lines from the current buffer. (Yegappan
            Lakshmanan et al., closes #9967)
2022-03-19 12:56:51 +00:00
zeertzjq
95d2e7634c patch 8.2.4593: unnecessary call to redraw_later()
Problem:    Unnecessary call to redraw_later().
Solution:   Remove the call to redraw_later() in op_yank(). (closes #9971)
2022-03-19 11:42:16 +00:00
Bram Moolenaar
b10ff5c1b3 patch 8.2.4592: search continues after giving E1204
Problem:    Search continues after giving E1204.
Solution:   Return failure after giving E1204. (closes #9972)
2022-03-19 11:31:38 +00:00
Bram Moolenaar
e7a74d5375 patch 8.2.4591: cursor line not updated when a callback moves the cursor
Problem:    Cursor line not updated when a callback moves the cursor.
Solution:   Check if the cursor moved. (closes #9970)
2022-03-19 11:10:15 +00:00
Bram Moolenaar
2995e5cf4e patch 8.2.4590: Vim9: range type check has wrong offset
Problem:    Vim9: range type check has wrong offset.
Solution:   Adjust offset for CHECKTYPE.  Remove other type check.
2022-03-18 21:41:47 +00:00
Bram Moolenaar
2e17fef225 patch 8.2.4589: cannot index the g: dictionary
Problem:    Cannot index the g: dictionary.
Solution:   Recognize using "g:[key]". (closes #9969)
2022-03-18 19:44:48 +00:00
Bram Moolenaar
f35fd8e5d4 patch 8.2.4588: mapping with key after other matching mapping does not work
Problem:    Mapping with key code after other matching mapping does not work.
Solution:   Change ">" to ">=". (closes #9903)
2022-03-18 15:41:17 +00:00
Bram Moolenaar
61efa16932 patch 8.2.4587: Vim9: double free after unpacking a list
Problem:    Vim9: double free after unpacking a list.
Solution:   Make a copy of the value instead of moving it. (closes #9968)
2022-03-18 13:10:48 +00:00
Bram Moolenaar
1d9cef769d patch 8.2.4586: Vim9: no error for using lower case name for "func" argument
Problem:    Vim9: no error for using lower case name for "func" argument.
            (Ernie Rael)
Solution:   Check the name as soon as the type is known.
2022-03-17 16:30:03 +00:00
Yegappan Lakshmanan
155b088208 patch 8.2.4585: cannot use keypad page-up/down for completion menu
Problem:    Cannot use keypad page-up/down for completion menu.
Solution:   Recognize the keypad keys. (Yegappan Lakshmanan, closes #9963)
2022-03-17 13:03:09 +00:00
Bram Moolenaar
da6d42c35a patch 8.2.4584: error for using autoload function in custom completion
Problem:    Error for using autoload function in custom completion.
Solution:   Do not check for errors when using an autoload function.
            (closes #9962)
2022-03-17 11:46:55 +00:00
Bram Moolenaar
4f6e772c9c patch 8.2.4583: screendump test fails
Problem:    Screendump test fails.
Solution:   Check that making a screendump is possible.
2022-03-16 20:26:02 +00:00
Bram Moolenaar
4c8b546da2 patch 8.2.4582: useless code handling a type declaration
Problem:    Useless code handling a type declaration.
Solution:   Remove the code and give an error.
2022-03-16 20:01:39 +00:00
Bram Moolenaar
d597ab00d7 patch 8.2.4581: null types not fully tested
Problem:    Null types not fully tested.
Solution:   Add some more tests using null types.
2022-03-16 17:56:33 +00:00
Bram Moolenaar
21dc8f1527 patch 8.2.4580: Vim9: incorrect error for shadowing variable
Problem:    Vim9: incorrect error for shadowing variable.
Solution:   Do not pass the context when compiling a referenced function.
2022-03-16 17:54:17 +00:00
Yegappan Lakshmanan
5cffa8df7e patch 8.2.4579: cannot use page-up and page-down in the cmdline popup menu
Problem:    Cannot use page-up and page-down in the command line completion
            popup menu.
Solution:   Check for to page-up and page-down keys. (Yegappan Lakshmanan,
            closes #9960)
2022-03-16 13:33:53 +00:00
Bram Moolenaar
fe8e9f6740 patch 8.2.4578: no warning when autoload script for completion has an error
Problem:    No warning when an autoload script for completion function has an
            error.
Solution:   Do not ignore errors when a function name is given with a dot or
            '#' character. (closes #9958)
2022-03-16 13:09:15 +00:00
Bram Moolenaar
9323ca51c2 patch 8.2.4577: message test is flaky
Problem:    Message test is flaky. (Elimar Riesebieter)
Solution:   Trigger the autocommand event only after startup is finished.
2022-03-16 11:14:57 +00:00
Bram Moolenaar
056678184f patch 8.2.4576: Vim9: error for comparing with null can be annoying
Problem:    Vim9: error for comparing with null can be annoying.
Solution:   Allow comparing anything with null. (closes #9948)
2022-03-15 20:21:33 +00:00
Bram Moolenaar
139575de66 patch 8.2.4575: Vim9: test for profiling still fails
Problem:    Vim9: test for profiling still fails.
Solution:   Update flags for profiling and breakpoints when obtaining the
            compile type.  Do not set the FC_CLOSURE flag for a toplevel
            function.
2022-03-15 19:29:30 +00:00
Bram Moolenaar
48f69cdfa4 patch 8.2.4574: Vim9: test for profiling fails
Problem:    Vim9: test for profiling fails.
Solution:   Mark function for profiling earlier to avoid E1271.
2022-03-15 16:16:47 +00:00
Bram Moolenaar
96923b7a14 patch 8.2.4573: a nested function is compiled for debugging without context
Problem:    A nested function (closure) is compiled for debugging without
            context.
Solution:   Check if a nested function is marked for debugging before
            compiling it.  Give an error when trying to compile a closure
            without its context. (closes #9951)
2022-03-15 15:57:04 +00:00
Bram Moolenaar
1a572e9b3b patch 8.2.4572: Vim9: return type "any" is changed to first returned type
Problem:    Vim9: return type "any" is sometimes changed to first returned
            type.  (Virginia Senioria)
Solution:   Do not change the return type if declared as "any". (closes #9949)
2022-03-15 12:28:10 +00:00
Jade Lovelace
8d5e514d77 patch 8.2.4571: not all gdb files are recognized
Problem:    Not all gdb files are recognized.
Solution:   Add a few more patterns for gdb. (Jade Lovelace, closes #9956)
2022-03-15 12:00:23 +00:00
Yegappan Lakshmanan
1fdf84e033 patch 8.2.4570: no command line completion for :profile and :profdel
Problem:    No command line completion for :profile and :profdel.
Solution:   Implement completion. (Yegappan Lakshmanan, closes #9955)
2022-03-15 10:53:09 +00:00
Bram Moolenaar
977525fea6 patch 8.2.4569: Coverity warning for not using a return value
Problem:    Coverity warning for not using a return value.
Solution:   Add "(void)".
2022-03-15 10:22:39 +00:00
Sean Dewar
10792feebd patch 8.2.4568: getmousepos() does not compute the column below the last line
Problem:    getmousepos() does not compute the column below the last line.
Solution:   Also compute the column when the mouse is below the last line.
            (Sean Dewar, closes #9946)
2022-03-15 09:46:54 +00:00
zeertzjq
7a73252063 patch 8.2.4567: bracketed paste doesn't work well in Visual linewise mode
Problem:    Bracketed paste doesn't work well in Visual linewise mode.
Solution:   Handle linewise Visual mode differently. (closes #9947)
2022-03-14 20:46:41 +00:00
James Cherti
7d42840033 patch 8.2.4566: check for existing buffer in session file may not work
Problem:    Check for existing buffer in session file does not work for files
            in the home directory.
Solution:   Use fnamemodify(). (James Cherti, closes #9945)  Add a test.
2022-03-14 20:24:51 +00:00
Bram Moolenaar
6e2e2cc95b patch 8.2.4565: no command line completion for :breakadd and :breakdel
Problem:    No command line completion for :breakadd and :breakdel.
Solution:   Add completion for :breakadd and :breakdel. (Yegappan Lakshmanan,
            closes #9950)
2022-03-14 19:24:46 +00:00
Bram Moolenaar
129e33e44b patch 8.2.4564: running test leaves file behind
Problem:    Running test leaves file behind.  (Dominique Pellé)
Solution:   Run the profiling in a separate Vim instance. (closes #9952)
2022-03-14 10:50:23 +00:00
Bram Moolenaar
5c68617d39 patch 8.2.4563: "z=" in Visual mode may go beyond the end of the line
Problem:    "z=" in Visual mode may go beyond the end of the line.
Solution:   Adjust "badlen".
2022-03-13 20:12:25 +00:00
Yegappan Lakshmanan
b29b96806f patch 8.2.4562: linear tag search is not optimal
Problem:    Linear tag search is not optimal.
Solution:   Improve linear tag search performance. (Yegappan Lakshmanan,
            closes #9944)
2022-03-13 19:23:48 +00:00
Bram Moolenaar
424da7aa48 patch 8.2.4561: build failure with some combination of features
Problem:    Build failure with some combination of features. (John Marriott)
Solution:   Adjust #ifdef.
2022-03-13 19:08:48 +00:00
ichizok
5f823d1e73 patch 8.2.4560: suspending with CTRL-Z does not work on DragonFlyBSD
Problem:    Suspending with CTRL-Z does not work on DragonFlyBSD.
Solution:   Adjust #ifdef. (Ozaki Kiichi, closes #9943)
2022-03-13 17:27:38 +00:00
Bram Moolenaar
533870a985 patch 8.2.4559: getmousepos() returns the screen column
Problem:    getmousepos() returns the screen column. (Ernie Rael)
Solution:   Return the text column, as documented.
2022-03-13 15:52:44 +00:00
Bram Moolenaar
e850439a56 patch 8.2.4558: Motif: using default colors does not work as expected
Problem:    Motif: using default colors does not work as expected.
Solution:   Do not try to store the default colors, use the resources.
            (closes #9933)
2022-03-13 14:45:03 +00:00
zeertzjq
754d2b4036 patch 8.2.4557: confusing comment about 'cursorlineopt'
Problem:    Confusing comment about 'cursorlineopt'.
Solution:   Adjust comment.  (closes #9939)  Add parenthesis around logical
            OR.
2022-03-13 13:40:45 +00:00
Bram Moolenaar
4f3321f704 patch 8.2.4556: test fails without the +job or +channel feature
Problem:    Test fails without the +job or +channel feature. (Dominique Pellé)
Solution:   Adjust #ifdefs.  Pass on skip flag. (closes #9942)
2022-03-13 13:12:27 +00:00
Bram Moolenaar
986b0fd0c5 patch 8.2.4555: getmousepos() returns the wrong column
Problem:    getmousepos() returns the wrong column. (Ernie Rael)
Solution:   Limit to the text size, not the number of bytes.
2022-03-13 12:06:07 +00:00
Bram Moolenaar
badf04f5c2 patch 8.2.4554: Vim9: using null values not sufficiently tested
Problem:    Vim9: using null values not sufficiently tested.
Solution:   Add more tests.  Fix uncovered problem.
2022-03-12 21:28:22 +00:00
Yegappan Lakshmanan
8b530b3158 patch 8.2.4553: linear tag search is a bit slow
Problem:    Linear tag search is a bit slow.
Solution:   Remove a vim_ftell() call. (Yegappan Lakshmanan, closes #9937)
2022-03-12 17:38:29 +00:00
Bram Moolenaar
d0b7bfa957 patch 8.2.4552: in a :def function "put = expr" does not work
Problem:    In a :def function "put = expr" does not work.
Solution:   Skip over white space. (closes #9936)
2022-03-12 14:51:16 +00:00
Bram Moolenaar
bbf84e2737 patch 8.2.4551: when mapping <Esc> terminal codes are not recognized
Problem:    When mapping <Esc> terminal codes are not recognized.
Solution:   Specifically recognize a mapping with just <Esc> and check for
            terminal codes even though there is no partial mapping.
            (closes #9903)
2022-03-12 13:48:39 +00:00
Bram Moolenaar
5b4f8a0e84 patch 8.2.4550: Motif: cannot set the color of the scrollbar thumb
Problem:    Motif: cannot set the color of the scrollbar thumb.
Solution:   Remove #ifdef.
2022-03-12 12:21:28 +00:00
Bram Moolenaar
e2adcf3974 patch 8.2.4549: cannot build with Motif and editres
Problem:    Cannot build with Motif and editres. (Tony Mechelynck)
Solution:   Fix configure mistake.
2022-03-12 11:57:25 +00:00
Bram Moolenaar
fb43cfc2c6 patch 8.2.4548: script-local function is deleted when used in a funcref
Problem:    Script-local function is deleted when used in a funcref.
Solution:   Do not consider a function starting with "<SNR>" reference
            counted. (closes #9916, closes #9820)
2022-03-11 18:54:17 +00:00
Bram Moolenaar
f52fac2ed9 patch 8.2.4547: the neXTaw GUI is old and does not work well
Problem:    The neXTaw GUI is old and does not work well.
Solution:   Remove the neXTaw GUI from configure to find out who still wants
            support for this GUI.
2022-03-11 16:01:26 +00:00
zeertzjq
0a4e098f32 patch 8.2.4546: duplicate #undef
Problem:    Duplicate #undef.
Solution:   Remove one #undef. (closes #9932)
2022-03-11 15:33:53 +00:00
Christian Brabandt
176711f069 patch 8.2.4545: MS-Windows: the installed icon is low resolution
Problem:    MS-Windows: the installed icon is low resolution.
Solution:   Use a better icon.  Install vim.ico. (Christian Brabandt,
            closes #9931, closes #9930)
2022-03-11 15:24:11 +00:00
Bram Moolenaar
dbf8094b17 patch 8.2.4544: Coverity warnings for not using returned value
Problem:    Coverity warnings for not using returned value.
Solution:   Assign to vim_ignored.
2022-03-11 14:54:03 +00:00
Yegappan Lakshmanan
20fb28b1dc patch 8.2.4543: Coverity warning for refactored tag search code
Problem:    Coverity warning for refactored tag search code.
Solution:   Avoid the warnings.  Update comments.  Add one more test case.
            (Yegappan Lakshmanan, closes #9928)
2022-03-11 12:05:18 +00:00
Bram Moolenaar
873f8243f6 patch 8.2.4542: Vim9: "break" inside try/catch not handled correctly
Problem:    Vim9: "break" inside try/catch not handled correctly.
Solution:   First jump to :endtry. (closes #9927)
2022-03-10 21:53:44 +00:00
Bram Moolenaar
e406ff87c8 patch 8.2.4541: Crash in debugger when a variable is not available
Problem:    Crash in debugger when a variable is not available in the current
            block.
Solution:   Check for a NULL name. (closes #9926)
2022-03-10 20:47:43 +00:00
Bram Moolenaar
1b1df95f1a patch 8.2.4540: line number for error is off by one
Problem:    Line number for error is off by one.
Solution:   Remember the line number of the comparison. (closes #9923)
2022-03-10 20:01:50 +00:00
Bram Moolenaar
53ba6ca5b2 patch 8.2.4539: when comparing special v:none and v:null are handled the same
Problem:    When comparing special v:none and v:null are handled the same when
            compiling.
Solution:   Pass more information so that v:none can be handled differently at
            compile time.  (issue #9923)
2022-03-10 19:23:28 +00:00
Yegappan Lakshmanan
bf40e90dfe patch 8.2.4538: the find_tags_in_file() function is too long
Problem:    The find_tags_in_file() function is too long.
Solution:   Refactor into smaller functions. (Yegappan Lakshmanan,
            closes #9920)
2022-03-10 18:36:54 +00:00
=?UTF-8?q?Dundar=20G=C3=B6c?=
48f83c31d1 patch 8.2.4537: output from linter and language server shows up in git
Problem:    Output from linter and language server shows up in git.
Solution:   Add patterns to .gitignore. (Goc Dundar, closes #9925)
2022-03-10 15:51:24 +00:00
Bram Moolenaar
cf6662082f patch 8.2.4536: debugger test fails when breaking on expression
Problem:    Debugger test fails when breaking on expression.
Solution:   Compare strings with "==" instead of "is".
2022-03-10 13:29:20 +00:00
Christian Brabandt
81da16b53f patch 8.2.4535: filename modifer ":8" removes the filename
Problem:    Filename modifer ":8" removes the filename.
Solution:   Use strncpy() instead of vim_strncpy(). (Christian Brabandt,
            closes #9918, closes #8600)
2022-03-10 12:24:02 +00:00
Bram Moolenaar
f8691004b0 patch 8.2.4534: Vim9: "is" operator with empty string and null returns true
Problem:    Vim9: "is" operator with empty string and null returns true.
Solution:   Consider empty string and null to be different for "is".
2022-03-10 12:20:53 +00:00
Bram Moolenaar
56b84b1728 patch 8.2.4533: Vim9: no test that after assigning null type is still checked
Problem:    Vim9: no test that after assigning null the type is still checked.
Solution:   Add a test.
2022-03-09 19:46:48 +00:00
Stuart Henderson
f2832ad965 patch 8.2.4532: suspending with CTRL-Z does not work on OpenBSD
Problem:    Suspending with CTRL-Z does not work on OpenBSD.
Solution:   Adjust #ifdef for SIGTSTP. (Stuart Henderson, closes #9912)
2022-03-09 14:33:02 +00:00
=?UTF-8?q?Dundar=20G=C3=B6c?=
f01a653ac5 patch 8.2.4531: LGTM warnings for condition and buffer size
Problem:    LGTM warnings for condition always true and buffer size too small.
Solution:   Remove the useless condition.  Make the buffer larger. (Goc
            Dundar, closes #9914)
2022-03-09 13:00:54 +00:00
Bram Moolenaar
f3507a517c patch 8.2.4530: making comparison with null work changes legacy behavior
Problem:    Making comparison with null work changes legacy behavior.
Solution:   Only use the better comparison in Vim9 script. (closes #9910)
2022-03-09 11:56:21 +00:00
Bram Moolenaar
1588bc8ebe Update runtime files 2022-03-08 21:35:07 +00:00
Bram Moolenaar
ed0c62e7b1 patch 8.2.4529: Vim9: comparing partial with function fails
Problem:    Vim9: comparing partial with function fails.
Solution:   Support this comparison.  Avoid a crash. (closes #9909)
            Add more test cases.
2022-03-08 19:43:55 +00:00
Bram Moolenaar
673bcb10eb patch 8.2.4528: crash when using null_function for a partial
Problem:    Crash when using null_function for a partial.
Solution:   Don't call fname_trans_sid() with NULL. (closes #9908)
2022-03-08 16:52:24 +00:00
Bram Moolenaar
0b40d086b3 patch 8.2.4527: the Athena GUI is old and does not work well
Problem:    The Athena GUI is old and does not work well.
Solution:   Remove the Athena GUI from configure to find out who still wants
            support for this GUI.
2022-03-08 13:32:37 +00:00
Bram Moolenaar
8acb9cc620 patch 8.2.4526: Vim9: cannot set variables to a null value
Problem:    Vim9: cannot set variables to a null value.
Solution:   Add null_list, null_job, etc.
2022-03-08 13:18:55 +00:00
Yegappan Lakshmanan
08238045e7 patch 8.2.4525: some GUI tests don't work on Athena
Problem:    Some GUI tests don't work on Athena.
Solution:   Skip tests that won't work. (Yegappan Lakshmanan, closes #9902)
2022-03-07 16:57:22 +00:00
K.Takata
d8f8629b1b patch 8.2.4524: MS-Windows: cannot build with some sodium libraries
Problem:    MS-Windows: cannot build with some sodium libraries.
Solution:   Make the DLL name configuragle.  Add build instructions.
            (Ken Takata, closes #9905)
2022-03-07 15:16:15 +00:00
K.Takata
6ca883dd8a patch 8.2.4523: when gvim is started maximized the 'window' option isn't set
Problem:    When gvim is started maximized the 'window' option isn't set
            properly. (Christian J. Robinson)
Solution:   Check if 'windows' was already set or not. (Ken Takata,
            closes #9904)
2022-03-07 13:31:15 +00:00
Bram Moolenaar
88dd6523fa patch 8.2.4522: GUI test fails with Motif
Problem:    GUI test fails with Motif. (Dominique Pellé)
Solution:   Remove using an invalid value for 'guifontset'.
2022-03-06 22:21:37 +00:00
Bram Moolenaar
936dc6014c patch 8.2.4521: build failure without the +diff feature
Problem:    Build failure without the +diff feature. (John Marriott)
Solution:   Define filler+lines if not declaring it.
2022-03-06 20:47:01 +00:00
Bram Moolenaar
127969cf98 patch 8.2.4520: using wrong highlight for cursor line number
Problem:    Using wrong highlight for cursor line number.
Solution:   Take filler lines into account when using CursorLineNr.
            (closes #9897)
2022-03-06 19:54:13 +00:00
Bram Moolenaar
d523c7be5c patch 8.2.4519: Vim9: Can still use ":fini" and ":finis" for ":finish"
Problem:    Vim9: Can still use ":fini" and ":finis" for ":finish".
Solution:   Require using ":finish".
2022-03-06 14:51:22 +00:00
Yegappan Lakshmanan
655b734ee8 patch 8.2.4518: the binary tag search feature is always enabled
Problem:    The binary tag search feature is always enabled.
Solution:   Remove the #ifdefs.  Add a few more tests. (Yegappan Lakshmanan,
            closes #9893)
2022-03-06 14:27:10 +00:00
K.Takata
9eccee0e85 patch 8.2.4517: MS-Windows: cannot specify location of sodium library
Problem:    MS-Windows: cannot specify location of sodium library.
Solution:   Allow for using a path for SODIUM. (Ken Takata, closes #9896)
2022-03-06 14:01:52 +00:00
Bram Moolenaar
525eba00ef patch 8.2.4516: build failure without the +eval feature
Problem:    Build failure without the +eval feature.
Solution:   Move error message outside of #ifdef.
2022-03-05 22:07:32 +00:00
Bram Moolenaar
9fb7b42935 patch 8.2.4515: old subsitute syntax is still supported
Problem:    Old subsitute syntax is still supported.
Solution:   Disallow using backslash after ":s" in Vim9 script.
2022-03-05 21:13:26 +00:00
Bram Moolenaar
b2175220da patch 8.2.4514: Vim9: some flow commands can be shortened
Problem:    Vim9: some flow commands can be shortened.
Solution:   Also require using the full name for ":return", ":enddef",
            ":continue", ":export" and ":import".
2022-03-05 20:24:41 +00:00
zeertzjq
b29ae15977 patch 8.2.4513: window-local directory is not applied if 'acd' fails
Problem:    Window-local directory is not applied if 'acd' fails.
Solution:   Don't call do_autochdir(). (closes #9891)
2022-03-05 17:00:31 +00:00
Yegappan Lakshmanan
df1bbea436 patch 8.2.4512: the find_tags_in_file() function is much too long
Problem:    The find_tags_in_file() function is much too long.
Solution:   Refactor into multiple smaller functions. (Yegappan Lakshmanan,
            closes #9892)
2022-03-05 14:35:12 +00:00
Bram Moolenaar
c12dc47b8f patch 8.2.4511: filetype test fails
Problem:    Filetype test fails.
Solution:   Change "endw" to "endwhile".
2022-03-05 13:45:56 +00:00
Bram Moolenaar
204852ae2a patch 8.2.4510: Vim9: shortening commands leads to confusing script
Problem:    Vim9: shortening commands leads to confusing script.
Solution:   In Vim9 script require at least ":cont" for ":continue", "const"
            instead of "cons", "break" instead of "brea", "catch" instead of
            "cat", "else" instead of "el" "elseif" instead of "elsei" "endfor"
            instead of "endfo" "endif" instead of "en" "endtry" instead of
            "endt", "finally" instead of "fina", "throw" instead of "th",
            "while" instead of "wh".
2022-03-05 12:56:44 +00:00
Bram Moolenaar
e1d1211799 patch 8.2.4509: Vim9: can declare a variable with ":va"
Problem:    Vim9: can declare a variable with ":va".
Solution:   Disallow using ":va", require using ":var".
2022-03-05 11:37:48 +00:00
Bram Moolenaar
330a388e18 patch 8.2.4508: Vim9: cannot assign to a global variable on the command line
Problem:    Vim9: cannot assign to a global variable on the command line.
Solution:   Allow using :vim9cmd for assignment on the command line.
2022-03-05 11:05:57 +00:00
Bram Moolenaar
f78ee2b49f patch 8.2.4507: test fails because of new error message
Problem:    Test fails because of new error message.
Solution:   Avoid the test fails.
2022-03-04 23:22:27 +00:00
Bram Moolenaar
24d9c0557e patch 8.2.4506: "pattern not found" for :global is not an error message
Problem:    "pattern not found" for :global is not an error message.
Solution:   In Vim9 script make this an actual error, so that try/catch can be
            used as expected.
2022-03-04 21:34:31 +00:00
Bram Moolenaar
f07751457c patch 8.2.4505: Vim9: outdated "autocmd nested" still works
Problem:    Vim9: outdated "autocmd nested" still works.
Solution:   Do not accept the :autocmd argument "nested" without "++" in Vim9
            script.
2022-03-04 20:10:38 +00:00
Bram Moolenaar
196c3850db patch 8.2.4504: when there is a partially matching map full map may not work
Problem:    When there is a partially matching map and modifyOtherKeys is
            active a full map may not work.
Solution:   Only simplify modifiers when there is no matching mapping.
            (closes #8792)
2022-03-04 19:22:36 +00:00
Bram Moolenaar
6aca4d3c2b patch 8.2.4503: Vim9: there is no point in supporting :Print and :mode
Problem:    Vim9: there is no point in supporting :Print and :mode.
Solution:   Do not recognize :Print and :mode as commands. (closes #9870)
2022-03-04 17:10:19 +00:00
Bram Moolenaar
d979d64fa2 patch 8.2.4502: in the GUI a modifier is not recognized after CTRL-X
Problem:    In the GUI a modifier is not recognized for the key typed after
            CTRL-X, which may result in a mapping to be used. (Daniel
            Steinberg)
Solution:   Recognize a modifier starting with CSI. (closes #9889)
2022-03-04 14:51:06 +00:00
Bram Moolenaar
21efafe4c2 patch 8.2.4501: with 'showbreak' set cursor displayed in wrong position
Problem:    With 'showbreak' set and after the end of the line the cursor
            may be displayed in the wrong position.
Solution:   Do not apply 'showbreak' after the end of the line. (closes #9884)
2022-03-03 20:04:03 +00:00
Bram Moolenaar
0e1574c406 patch 8.2.4500: Vim9: can declare a global variable on the command line
Problem:    Vim9: can declare a global variable on the command line.
Solution:   Disallow declaring a variable on the command line. (closes #9881)
2022-03-03 17:05:35 +00:00
Bram Moolenaar
28bf649a57 patch 8.2.4499: Vim9: at the script level declarations leak to next block
Problem:    Vim9: at the script level declarations leak from try block to
            catch and finally block.
Solution:   End the block and start a new one. (closes #9883)
2022-03-03 15:11:20 +00:00
Bram Moolenaar
1fc34225ac patch 8.2.4498: using <Plug> with "noremap" does not work
Problem:    Using <Plug> with "noremap" does not work.
Solution:   Always remap <Plug>. (closes #9879, closes #9789)
2022-03-03 13:56:24 +00:00
Bram Moolenaar
35d8c2010e patch 8.2.4497: wrong color for half of wide character next to pum scrollbar
Problem:    Wrong color for half of wide character next to pum scrollbar.
Solution:   Redraw the screen cell with the right color. (closes #9874)
2022-03-03 11:46:00 +00:00
Bram Moolenaar
fe9112e630 patch 8.2.4496: Coverity gives warnings after tags code refactoring
Problem:    Coverity gives warnings after tags code refactoring.
Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #9882)
2022-03-03 10:44:17 +00:00
Bram Moolenaar
e4e1a1e1c8 patch 8.2.4495: help test fails in 24 line terminal
Problem:    Help test fails in 24 line terminal.
Solution:   Use up to 23 lines for text.
2022-03-02 20:49:50 +00:00
Yegappan Lakshmanan
2f87a99b6e patch 8.2.4494: the find_tags() function is much too long
Problem:    The find_tags() function is much too long.
Solution:   Refactor the function. (Yegappan Lakshmanan, closes #9869)
2022-03-02 20:29:35 +00:00
Bram Moolenaar
b9c5108593 patch 8.2.4493: options test fails in the GUI
Problem:    Options test fails in the GUI.
Solution:   Do not save and restore 'term'.
2022-03-02 20:12:03 +00:00
Bram Moolenaar
8ccbbeb620 patch 8.2.4492: no error if an option is given a value with ":let &opt = val"
Problem:    No error if an option is given an invalid value with
            ":let &opt = val".
Solution:   Give the error. (closes #9864)
2022-03-02 19:49:38 +00:00
K.Takata
7f687aaca9 patch 8.2.4491: MS-Windows makefile dependencies are outdated
Problem:    MS-Windows makefile dependencies are outdated.
Solution:   Update dependencies. (Ken Takata, closes #9876)
2022-03-02 17:34:56 +00:00
Bram Moolenaar
8d5daf267e patch 8.2.4490: terminal focus reporting only works for xterm-like terminals
Problem:    Terminal focus reporting only works for xterm-like terminals.
            (Jonathan Rascher)
Solution:   Remove the "focus_mode" flag. (closes #9859)
2022-03-02 17:16:39 +00:00
Bram Moolenaar
c6e9d7063d patch 8.2.4489: failing test for comparing v:null with number
Problem:    Failing test for comparing v:null with number.
Solution:   Allow comparing v:null with number in legacy script.
            (Ken Takata, closes #9873)  Also do this for float.
2022-03-02 13:13:30 +00:00
Bram Moolenaar
f6b0c79742 patch 8.2.4488: build error with +eval but without +channel or +job
Problem:    Build error with +eval but without +channel or +job.
Solution:   Add #ifdef. (John Marriott)
2022-03-01 19:52:48 +00:00
408 changed files with 22219 additions and 15971 deletions

7
.gitignore vendored
View File

@@ -96,5 +96,10 @@ src/shadow-*
src/runtime
src/pixmaps
# other possible files build by tools
# other files possibly created by tools
src/cscope.out
# Linter/language server files
/.cache/clangd/
/.ccls-cache/
/compile_commands.json

View File

@@ -198,7 +198,6 @@ SRC_ALL = \
src/testdir/view_util.vim \
src/testdir/test[0-9]*.ok \
src/testdir/test77a.ok \
src/testdir/test83-tags? \
src/testdir/test77a.com \
src/testdir/test_*.vim \
src/testdir/python2/*.py \
@@ -447,10 +446,6 @@ SRC_UNIX = \
src/create_cmdidxs.vim \
src/create_nvcmdidxs.c \
src/create_nvcmdidxs.vim \
src/gui_at_fs.c \
src/gui_at_sb.c \
src/gui_at_sb.h \
src/gui_athena.c \
src/gui_gtk.c \
src/gui_gtk_f.c \
src/gui_gtk_f.h \
@@ -475,7 +470,6 @@ SRC_UNIX = \
src/osdef1.h.in \
src/osdef2.h.in \
src/pathdef.sh \
src/proto/gui_athena.pro \
src/proto/gui_gtk.pro \
src/proto/gui_gtk_x11.pro \
src/proto/gui_gtk_gresources.pro \
@@ -632,6 +626,7 @@ SRC_DOS_BIN = \
src/xpm/x86/lib-vc14/libXpm.lib \
src/xpm/x86/lib/libXpm.a \
src/xpm/x86/lib/libXpm.lib \
runtime/bitmaps/vim.ico \
nsis/icons.zip \
# source files for Amiga, DOS, etc. (also in the extra archive)
@@ -1000,6 +995,7 @@ LANG_GEN = \
runtime/doc/*-tr.1 \
runtime/doc/*-tr.UTF-8.1 \
runtime/lang/README.txt \
runtime/lang/Makefile \
runtime/lang/menu_*.vim \
runtime/keymap/README.txt \
runtime/keymap/*.vim \

View File

@@ -403,6 +403,9 @@ Section "$(str_section_exe)" id_section_exe
SetOutPath $0\autoload\xml
File ${VIMRT}\autoload\xml\*.*
SetOutPath $0\bitmaps
File ${VIMSRC}\vim.ico
SetOutPath $0\syntax
File ${VIMRT}\syntax\*.*

File diff suppressed because one or more lines are too long

View File

@@ -3,7 +3,7 @@ vim9script
# Vim functions for file type detection
#
# Maintainer: Bram Moolenaar <Bram@vim.org>
# Last Change: 2022 Feb 22
# Last Change: 2022 Apr 06
# These functions are moved here from runtime/filetype.vim to make startup
# faster.
@@ -107,6 +107,25 @@ export def BindzoneCheck(default = '')
endif
enddef
# Returns true if file content looks like RAPID
def IsRapid(sChkExt: string = ""): bool
if sChkExt == "cfg"
return getline(1) =~? '\v^%(EIO|MMC|MOC|PROC|SIO|SYS):CFG'
endif
# called from FTmod, FTprg or FTsys
return getline(nextnonblank(1)) =~? '\v^\s*%(\%{3}|module\s+\k+\s*%(\(|$))'
enddef
export def FTcfg()
if exists("g:filetype_cfg")
exe "setf " .. g:filetype_cfg
elseif IsRapid("cfg")
setf rapid
else
setf cfg
endif
enddef
export def FTlpc()
if exists("g:lpc_syntax_for_c")
var lnum = 1
@@ -168,7 +187,7 @@ enddef
export def FTent()
# This function checks for valid cl syntax in the first five lines.
# Look for either an opening comment, '#', or a block start, '{".
# Look for either an opening comment, '#', or a block start, '{'.
# If not found, assume SGML.
var lnum = 1
while lnum < 6
@@ -182,7 +201,7 @@ export def FTent()
break
endif
lnum += 1
endw
endwhile
setf dtd
enddef
@@ -410,6 +429,36 @@ export def FTmm()
setf nroff
enddef
# Returns true if file content looks like LambdaProlog
def IsLProlog(): bool
# skip apparent comments and blank lines, what looks like
# LambdaProlog comment may be RAPID header
var l: number = nextnonblank(1)
while l > 0 && l < line('$') && getline(l) =~ '^\s*%' # LambdaProlog comment
l = nextnonblank(l + 1)
endwhile
# this pattern must not catch a go.mod file
return getline(l) =~ '\<module\s\+\w\+\s*\.\s*\(%\|$\)'
enddef
# Determine if *.mod is ABB RAPID, LambdaProlog, Modula-2, Modsim III or go.mod
export def FTmod()
if exists("g:filetype_mod")
exe "setf " .. g:filetype_mod
elseif IsLProlog()
setf lprolog
elseif getline(nextnonblank(1)) =~ '\%(\<MODULE\s\+\w\+\s*;\|^\s*(\*\)'
setf modula2
elseif IsRapid()
setf rapid
elseif expand("<afile>") =~ '\<go.mod$'
setf gomod
else
# Nothing recognized, assume modsim3
setf modsim3
endif
enddef
export def FTpl()
if exists("g:filetype_pl")
exe "setf " .. g:filetype_pl
@@ -482,7 +531,7 @@ export def FTprogress_asm()
break
endif
lnum += 1
endw
endwhile
setf progress
enddef
@@ -509,7 +558,7 @@ export def FTprogress_pascal()
break
endif
lnum += 1
endw
endwhile
setf progress
enddef
@@ -526,6 +575,18 @@ export def FTpp()
endif
enddef
# Determine if *.prg is ABB RAPID. Can also be Clipper, FoxPro or eviews
export def FTprg()
if exists("g:filetype_prg")
exe "setf " .. g:filetype_prg
elseif IsRapid()
setf rapid
else
# Nothing recognized, assume Clipper
setf clipper
endif
enddef
export def FTr()
var max = line("$") > 50 ? 50 : line("$")
@@ -572,7 +633,7 @@ export def McSetf()
return
endif
endfor
setf m4 " Default: Sendmail .mc file
setf m4 # Default: Sendmail .mc file
enddef
# Called from filetype.vim and scripts.vim.
@@ -735,6 +796,14 @@ export def FTperl(): number
return 0
enddef
export def FTsys()
if IsRapid()
setf rapid
else
setf bat
endif
enddef
# Choose context, plaintex, or tex (LaTeX) based on these rules:
# 1. Check the first line of the file for "%&<format>".
# 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords.
@@ -896,6 +965,23 @@ export def FTtf()
setf tf
enddef
# Determine if a *.src file is Kuka Robot Language
export def FTsrc()
if exists("g:filetype_src")
exe "setf " .. g:filetype_src
elseif getline(nextnonblank(1)) =~? '^\s*\%(&\w\+\|\%(global\s\+\)\?def\>\)'
setf krl
endif
enddef
# Determine if a *.dat file is Kuka Robot Language
export def FTdat()
if exists("g:filetype_dat")
exe "setf " .. g:filetype_dat
elseif getline(nextnonblank(1)) =~? '^\s*\%(&\w\+\|defdat\>\)'
setf krl
endif
enddef
# Uncomment this line to check for compilation errors early
# defcompile

View File

@@ -2,7 +2,7 @@
" Maintainer: <vacancy>
" Previous Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.9
" Last Updated: 2020 Oct 9
" Last Updated: 2022 Mar 30
"
" Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim
"
@@ -91,6 +91,9 @@ endfunction
function! s:DefPython()
py3 << PYTHONEOF
import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)
import sys, tokenize, io, types
from token import NAME, DEDENT, NEWLINE, STRING

BIN
runtime/bitmaps/vim.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -1,5 +1,5 @@
" Maintainer: Drew Vogel <dvogel@sidejump.org>
" Last Change: 2021 Jul 25
" Last Change: 2022 Mar 20
"
" Replaced rgb.txt as the source of de facto standard color names. This is
" sourced each time the colorscheme command is run. It is also sourced each
@@ -430,6 +430,8 @@ call extend(v:colornames, {
\ 'yellow2': '#eeee00',
\ 'yellow3': '#cdcd00',
\ 'yellow4': '#8b8b00',
\ 'dark yellow': '#8b8b00',
\ 'darkyellow': '#8b8b00',
\ 'gold1': '#ffd700',
\ 'gold2': '#eec900',
\ 'gold3': '#cdad00',
@@ -506,6 +508,8 @@ call extend(v:colornames, {
\ 'orangered2': '#ee4000',
\ 'orangered3': '#cd3700',
\ 'orangered4': '#8b2500',
\ 'light red': '#ff8b8b',
\ 'lightred': '#ff8b8b',
\ 'red1': '#ff0000',
\ 'red2': '#ee0000',
\ 'red3': '#cd0000',
@@ -538,6 +542,8 @@ call extend(v:colornames, {
\ 'violetred2': '#ee3a8c',
\ 'violetred3': '#cd3278',
\ 'violetred4': '#8b2252',
\ 'light magenta': '#ff8bff',
\ 'lightmagenta': '#ff8bff',
\ 'magenta1': '#ff00ff',
\ 'magenta2': '#ee00ee',
\ 'magenta3': '#cd00cd',

View File

@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: Jest
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2018 May 15
" Last Change: 2021 Nov 20
if exists("current_compiler")
finish
@@ -15,12 +15,14 @@ endif
let s:cpo_save = &cpo
set cpo&vim
" CompilerSet makeprg=npx\ jest\ --no-colors
" CompilerSet makeprg=npx\ --no-install\ jest\ --no-colors
CompilerSet makeprg=jest\ --no-colors
CompilerSet errorformat=%E\ \ ●\ %m,
CompilerSet errorformat=%-A\ \ ●\ Console,
\%E\ \ ●\ %m,
\%Z\ %\\{4}%.%#Error:\ %f:\ %m\ (%l:%c):%\\=,
\%Z\ %\\{6}at\ %\\S%#\ (%f:%l:%c),
\%Z\ %\\{6}at\ %\\S%#\ %f:%l:%c,
\%+C\ %\\{4}%\\w%.%#,
\%+C\ %\\{4}%[-+]%.%#,
\%-C%.%#,

View File

@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: SML/NJ Compiler
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2020 Feb 10
" Last Change: 2022 Feb 09
if exists("current_compiler")
finish
@@ -16,10 +16,10 @@ let s:cpo_save = &cpo
set cpo&vim
CompilerSet makeprg=sml
CompilerSet errorformat=%f:%l.%c-%\\d%\\+.%\\d%\\+\ %trror:\ %m,
CompilerSet errorformat=%f:%l.%c-%e.%k\ %trror:\ %m,
\%f:%l.%c\ %trror:\ %m,
\%trror:\ %m
\%f:%l.%c-%\\d%\\+.%\\d%\\+\ %tarning:\ %m,
\%trror:\ %m,
\%f:%l.%c-%e.%k\ %tarning:\ %m,
\%f:%l.%c\ %tarning:\ %m,
\%tarning:\ %m,
\%-G%.%#

View File

@@ -1,7 +1,7 @@
" The default vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2021 Nov 17
" Last change: 2022 Mar 03
"
" This is loaded if no vimrc file was found.
" Except when Vim is run with "-u NONE" or "-C".
@@ -64,9 +64,10 @@ if has('win32')
set guioptions-=t
endif
" Don't use Ex mode, use Q for formatting.
" Don't use Q for Ex mode, use it for formatting. Except for Select mode.
" Revert with ":unmap Q".
map Q gq
sunmap Q
" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break.

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.2. Last change: 2022 Feb 09
*autocmd.txt* For Vim version 8.2. Last change: 2022 Apr 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -63,7 +63,7 @@ effects. Be careful not to destroy your text.
they were given.
See |autocmd-nested| for [++nested]. "nested"
(without the ++) can also be used, for backwards
compatibility.
compatibility, but not in |Vim9| script. *E1078*
*autocmd-once*
If [++once] is supplied the command is executed once,
then removed ("one shot").
@@ -365,6 +365,7 @@ Name triggered by ~
|InsertEnter| starting Insert mode
|InsertChange| when typing <Insert> while in Insert or Replace mode
|InsertLeave| when leaving Insert mode
|InsertLeavePre| just before leaving Insert mode
|InsertCharPre| when a character was typed in Insert mode, before
inserting it
@@ -401,6 +402,8 @@ Name triggered by ~
|User| to be used in combination with ":doautocmd"
|SigUSR1| after the SIGUSR1 signal has been detected
|WinScrolled| after scrolling or resizing a window
The alphabetical list of autocommand events: *autocmd-events-abc*
@@ -689,9 +692,9 @@ CursorHoldI Just like CursorHold, but in Insert mode.
CursorMoved After the cursor was moved in Normal or Visual
mode. Also when the text of the cursor line
has been changed, e.g., with "x", "rx" or "p".
Not triggered when there is typeahead, while
executing commands in a script file, when
an operator is pending or when moving to
Not always triggered when there is typeahead,
while executing commands in a script file,
when an operator is pending or when moving to
another window while remaining at the same
cursor position.
For an example see |match-parens|.
@@ -1202,6 +1205,9 @@ TextYankPost After text has been yanked or deleted in the
current buffer. The following values of
|v:event| can be used to determine the operation
that triggered this autocmd:
inclusive TRUE if the motion is
|inclusive| else the motion is
|exclusive|.
operator The operation performed.
regcontents Text that was stored in the
register, as a list of lines,
@@ -1227,7 +1233,13 @@ User Never executed automatically. To be used for
Note that when `:doautocmd User MyEvent` is
used while there are no matching autocommands,
you will get an error. If you don't want
that, define a dummy autocommand yourself.
that, either check whether an autocommand is
defined using `exists('#User#MyEvent')` or
define a dummy autocommand yourself.
Example: >
if exists('#User#MyEvent')
doautocmd User MyEvent
endif
*SigUSR1*
SigUSR1 After the SIGUSR1 signal has been detected.
@@ -1316,10 +1328,23 @@ WinNew When a new window was created. Not done for
the first window, when Vim has just started.
Before a WinEnter event.
*WinScrolled*
WinScrolled After scrolling the content of a window or
resizing a window.
The pattern is matched against the
|window-ID|. Both <amatch> and <afile> are
set to the |window-ID|.
Non-recursive (the event cannot trigger
itself). However, if the command causes the
window to scroll or change size another
WinScrolled event will be triggered later.
Does not trigger when the command is added,
only after the first scroll or resize.
==============================================================================
6. Patterns *autocmd-patterns* *{aupat}*
The {aupat} argument of `:autocmd` can be a comma separated list. This works as
The {aupat} argument of `:autocmd` can be a comma-separated list. This works as
if the command was given with each pattern separately. Thus this command: >
:autocmd BufRead *.txt,*.info set et
Is equivalent to: >

View File

@@ -1,4 +1,4 @@
*builtin.txt* For Vim version 8.2. Last change: 2022 Feb 23
*builtin.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -161,7 +161,8 @@ exists_compiled({expr}) Number |TRUE| if {expr} exists at compile time
exp({expr}) Float exponential of {expr}
expand({expr} [, {nosuf} [, {list}]])
any expand special keywords in {expr}
expandcmd({expr}) String expand {expr} like with `:edit`
expandcmd({string} [, {options}])
String expand {string} like with `:edit`
extend({expr1}, {expr2} [, {expr3}])
List/Dict insert items of {expr2} into {expr1}
extendnew({expr1}, {expr2} [, {expr3}])
@@ -1562,14 +1563,15 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
or another valid interrupt key, confirm() returns 0.
An example: >
:let choice = confirm("What do you want?", "&Apples\n&Oranges\n&Bananas", 2)
:if choice == 0
: echo "make up your mind!"
:elseif choice == 3
: echo "tasteful"
:else
: echo "I prefer bananas myself."
:endif
let choice = confirm("What do you want?",
\ "&Apples\n&Oranges\n&Bananas", 2)
if choice == 0
echo "make up your mind!"
elseif choice == 3
echo "tasteful"
else
echo "I prefer bananas myself."
endif
< In a GUI dialog, buttons are used. The layout of the buttons
depends on the 'v' flag in 'guioptions'. If it is included,
the buttons are always put vertically. Otherwise, confirm()
@@ -1752,7 +1754,10 @@ deepcopy({expr} [, {noref}]) *deepcopy()* *E698*
delete({fname} [, {flags}]) *delete()*
Without {flags} or with {flags} empty: Deletes the file by the
name {fname}. This also works when {fname} is a symbolic link.
name {fname}.
This also works when {fname} is a symbolic link. The symbolic
link itself is deleted, not what it points to.
When {flags} is "d": Deletes the directory by the name
{fname}. This fails when directory {fname} is not empty.
@@ -1762,8 +1767,6 @@ delete({fname} [, {flags}]) *delete()*
Note: on MS-Windows it is not possible to delete a directory
that is being used.
A symbolic link itself is deleted, not what it points to.
The result is a Number, which is 0/false if the delete
operation was successful and -1/true when the deletion failed
or partly failed.
@@ -2292,16 +2295,28 @@ expand({string} [, {nosuf} [, {list}]]) *expand()*
Can also be used as a |method|: >
Getpattern()->expand()
expandcmd({string}) *expandcmd()*
expandcmd({string} [, {options}]) *expandcmd()*
Expand special items in String {string} like what is done for
an Ex command such as `:edit`. This expands special keywords,
like with |expand()|, and environment variables, anywhere in
{string}. "~user" and "~/path" are only expanded at the
start.
Returns the expanded string. Example: >
:echo expandcmd('make %<.o')
< Can also be used as a |method|: >
The following items are supported in the {options} Dict
argument:
errmsg If set to TRUE, error messages are displayed
if an error is encountered during expansion.
By default, error messages are not displayed.
Returns the expanded string. If an error is encountered
during expansion, the unmodified {string} is returned.
Example: >
:echo expandcmd('make %<.o')
make /path/runtime/doc/builtin.o
:echo expandcmd('make %<.o', {'errmsg': v:true})
<
Can also be used as a |method|: >
GetCommand()->expandcmd()
<
extend({expr1}, {expr2} [, {expr3}]) *extend()*
@@ -2727,7 +2742,7 @@ foreground() Move the Vim window to the foreground. Useful when sent from
On Win32 systems this might not work, the OS does not always
allow a window to bring itself to the foreground. Use
|remote_foreground()| instead.
{only in the Win32, Athena, Motif and GTK GUI versions and the
{only in the Win32, Motif and GTK GUI versions and the
Win32 console version}
fullcommand({name}) *fullcommand()*
@@ -3230,7 +3245,8 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
arglist file names in argument list
augroup autocmd groups
buffer buffer names
behave :behave suboptions
behave |:behave| suboptions
breakpoint |:breakadd| and |:breakdel| suboptions
color color schemes
command Ex command
cmdline |cmdline-completion| result
@@ -3247,7 +3263,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
function function name
help help subjects
highlight highlight groups
history :history suboptions
history |:history| suboptions
locale locale names (as output of locale -a)
mapclear buffer argument
mapping mapping name
@@ -3255,6 +3271,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
messages |:messages| suboptions
option options
packadd optional package |pack-add| names
scriptnames sourced script names |:scriptnames|
shellcmd Shell command
sign |:sign| suboptions
syntax syntax file names |'syntax'|
@@ -3272,6 +3289,13 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
is applied to filter the results. Otherwise all the matches
are returned. The 'wildignorecase' option always applies.
If the 'wildoptions' option contains 'fuzzy', then fuzzy
matching is used to get the completion matches. Otherwise
regular expression matching is used. Thus this function
follows the user preference, what happens on the command line.
If you do not want this you can make 'wildoptions' empty
before calling getcompletion() and restore it afterwards.
If {type} is "cmdline", then the |cmdline-completion| result is
returned. For example, to complete the possible values after
a ":call" command: >
@@ -4810,6 +4834,8 @@ json_encode({expr}) *json_encode()*
Note that NaN and Infinity are passed on as values. This is
missing in the JSON standard, but several implementations do
allow it. If not then you will get an error.
If a string contains an illegal character then the replacement
character 0xfffd is used.
Can also be used as a |method|: >
GetObject()->json_encode()
@@ -5572,7 +5598,7 @@ matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()*
empty list is returned. If length of {str} is greater than
256, then returns an empty list.
Refer to |fuzzy-match| for more information about fuzzy
Refer to |fuzzy-matching| for more information about fuzzy
matching strings.
Example: >
@@ -6000,8 +6026,10 @@ printf({fmt}, {expr1} ...) *printf()*
When used as a |method| the base is passed as the second
argument: >
Compute()->printf("result: %d")
<
You can use `call()` to pass the items as a list.
< Often used items are:
Often used items are:
%s string
%6S string right-aligned in 6 display cells
%6s string right-aligned in 6 bytes
@@ -6670,7 +6698,7 @@ remote_foreground({server}) *remote_foreground()*
Can also be used as a |method|: >
ServerName()->remote_foreground()
< {only in the Win32, Athena, Motif and GTK GUI versions and the
< {only in the Win32, Motif and GTK GUI versions and the
Win32 console version}
@@ -8160,8 +8188,7 @@ sound_playfile({path} [, {callback}])
< Can also be used as a |method|: >
GetSoundPath()->sound_playfile()
< There is no error *E538* , but can listen to 538.nl.
{only available when compiled with the |+sound| feature}
< {only available when compiled with the |+sound| feature}
sound_stop({id}) *sound_stop()*
@@ -9034,7 +9061,7 @@ taglist({expr} [, {filename}]) *taglist()*
entry depends on the language specific
kind values. Only available when
using a tags file generated by
Exuberant ctags or hdrtag.
Universal/Exuberant ctags or hdrtag.
static A file specific tag. Refer to
|static-tag| for more information.
More entries may be present, depending on the content of the
@@ -10003,7 +10030,7 @@ footer Compiled with GUI footer support. |gui-footer|
fork Compiled to use fork()/exec() instead of system().
gettext Compiled with message translation |multi-lang|
gui Compiled with GUI enabled.
gui_athena Compiled with Athena GUI.
gui_athena Compiled with Athena GUI (always false).
gui_gnome Compiled with Gnome support (gui_gtk is also defined).
gui_gtk Compiled with GTK+ GUI (any version).
gui_gtk2 Compiled with GTK+ 2 GUI (gui_gtk is also defined).

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 8.2. Last change: 2022 Feb 04
*change.txt* For Vim version 8.2. Last change: 2022 Mar 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -778,8 +778,8 @@ matched pattern is deleted. The separator after {pattern} can also be left
out then. Example: >
:%s/TESTING
This deletes "TESTING" from all lines, but only one per line.
For compatibility with Vi these two exceptions are allowed:
*E1270*
For compatibility with Vi these two exceptions are allowed in legacy script:
"\/{string}/" and "\?{string}?" do the same as "//{string}/r".
"\&{string}&" does the same as "//{string}/".
*pattern-delimiter* *E146* *E1241* *E1242*

View File

@@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.2. Last change: 2021 Nov 28
*channel.txt* For Vim version 8.2. Last change: 2022 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -53,6 +53,7 @@ RAW nothing known, Vim cannot tell where a message ends
NL every message ends in a NL (newline) character
JSON JSON encoding |json_encode()|
JS JavaScript style JSON-like encoding |js_encode()|
LSP Language Server Protocol encoding |language-server-protocol|
Common combination are:
- Using a job connected through pipes in NL mode. E.g., to run a style
@@ -118,10 +119,13 @@ To open a channel: >
Use |ch_status()| to see if the channel could be opened.
{address} has the form "hostname:port". E.g., "localhost:8765".
When using an IPv6 address, enclose it within square brackets. E.g.,
"[2001:db8::1]:8765".
*channel-address*
{address} can be a domain name or an IP address, followed by a port number, or
a Unix-domain socket path prefixed by "unix:". E.g. >
www.example.com:80 " domain + port
127.0.0.1:1234 " IPv4 + port
[2001:db8::1]:8765 " IPv6 + port
unix:/tmp/my-socket " Unix-domain socket path
{options} is a dictionary with optional entries: *channel-open-options*
@@ -130,6 +134,7 @@ When using an IPv6 address, enclose it within square brackets. E.g.,
"js" - Use JS (JavaScript) encoding, more efficient than JSON.
"nl" - Use messages that end in a NL character
"raw" - Use raw messages
"lsp" - Use language server protocol encoding
*channel-callback* *E921*
"callback" A function that is called when a message is received that is
not handled otherwise (e.g. a JSON message with ID zero). It
@@ -140,8 +145,8 @@ When using an IPv6 address, enclose it within square brackets. E.g.,
endfunc
let channel = ch_open("localhost:8765", {"callback": "Handle"})
<
When "mode" is "json" or "js" the "msg" argument is the body
of the received message, converted to Vim types.
When "mode" is "json" or "js" or "lsp" the "msg" argument is
the body of the received message, converted to Vim types.
When "mode" is "nl" the "msg" argument is one message,
excluding the NL.
When "mode" is "raw" the "msg" argument is the whole message
@@ -165,7 +170,19 @@ When using an IPv6 address, enclose it within square brackets. E.g.,
to check for messages, the close_cb may be invoked while still
in the callback. The plugin must handle this somehow, it can
be useful to know that no more data is coming.
*channel-drop*
If it is not known if there is a message to be read, use a
try/catch block: >
try
let msg = ch_readraw(a:channel)
catch
let msg = 'no message'
endtry
try
let err = ch_readraw(a:channel, #{part: 'err'})
catch
let err = 'no error'
endtry
< *channel-drop*
"drop" Specifies when to drop messages:
"auto" When there is no callback to handle a message.
The "close_cb" is also considered for this.
@@ -443,7 +460,7 @@ to check if there is something to read.
Note that when there is no callback, messages are dropped. To avoid that add
a close callback to the channel.
To read all output from a RAW channel that is available: >
To read all normal output from a RAW channel that is available: >
let output = ch_readraw(channel)
To read the error output: >
let output = ch_readraw(channel, {"part": "err"})
@@ -503,6 +520,7 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
according to the type of channel. The function cannot be used
with a raw channel. See |channel-use|.
{handle} can be a Channel or a Job that has a Channel.
When using the "lsp" channel mode, {expr} must be a |Dict|.
*E917*
{options} must be a Dictionary. It must not have a "callback"
entry. It can have a "timeout" entry to specify the timeout
@@ -564,10 +582,15 @@ ch_info({handle}) *ch_info()*
When opened with ch_open():
"hostname" the hostname of the address
"port" the port of the address
"path" the path of the Unix-domain socket
"sock_status" "open" or "closed"
"sock_mode" "NL", "RAW", "JSON" or "JS"
"sock_io" "socket"
"sock_timeout" timeout in msec
Note that "path" is only present for Unix-domain sockets, for
regular ones "hostname" and "port" are present instead.
When opened with job_start():
"out_status" "open", "buffered" or "closed"
"out_mode" "NL", "RAW", "JSON" or "JS"
@@ -578,7 +601,7 @@ ch_info({handle}) *ch_info()*
"err_io" "out", "null", "pipe", "file" or "buffer"
"err_timeout" timeout in msec
"in_status" "open" or "closed"
"in_mode" "NL", "RAW", "JSON" or "JS"
"in_mode" "NL", "RAW", "JSON", "JS" or "LSP"
"in_io" "null", "pipe", "file" or "buffer"
"in_timeout" timeout in msec
@@ -626,11 +649,8 @@ ch_open({address} [, {options}]) *ch_open()*
Open a channel to {address}. See |channel|.
Returns a Channel. Use |ch_status()| to check for failure.
{address} is a String and 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".
{address} is a String, see |channel-address| for the possible
accepted forms.
If {options} is given it must be a |Dictionary|.
See |channel-open-options|.
@@ -674,6 +694,7 @@ ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
with a raw channel.
See |channel-use|. *E912*
{handle} can be a Channel or a Job that has a Channel.
When using the "lsp" channel mode, {expr} must be a |Dict|.
Can also be used as a |method|: >
GetChannel()->ch_sendexpr(expr)
@@ -1288,18 +1309,18 @@ 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.
" Function handling a line of text that 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.
" Function handling output from the shell: Add it above the prompt.
func GotOutput(channel, msg)
call append(line("$") - 1, "- " .. a:msg)
endfunc
" Function handling the shell exist: close the window.
" Function handling the shell exits: close the window.
func JobExit(job, status)
quit!
endfunc
@@ -1310,7 +1331,6 @@ prompt. >
\ err_cb: function('GotOutput'),
\ exit_cb: function('JobExit'),
\ })
let shell_ch = job_getchannel(shell_job)
new
set buftype=prompt
@@ -1321,6 +1341,117 @@ prompt. >
" start accepting shell commands
startinsert
<
The same in |Vim9| script: >
vim9script
# Create a channel log so we can see what happens.
ch_logfile('logfile', 'w')
var shell_job: job
# Function handling a line of text that has been typed.
def TextEntered(text: string)
# Send the text to a shell with Enter appended.
ch_sendraw(shell_job, text .. "\n")
enddef
# Function handling output from the shell: Add it above the prompt.
def GotOutput(channel: channel, msg: string)
append(line("$") - 1, "- " .. msg)
enddef
# Function handling the shell exits: close the window.
def JobExit(job: job, status: number)
quit!
enddef
# Start a shell in the background.
shell_job = job_start(["/bin/sh"], {
out_cb: GotOutput,
err_cb: GotOutput,
exit_cb: JobExit,
})
new
set buftype=prompt
var buf = bufnr('')
prompt_setcallback(buf, TextEntered)
prompt_setprompt(buf, "shell command: ")
# start accepting shell commands
startinsert
==============================================================================
14. Language Server Protocol *language-server-protocol*
The language server protocol specification is available at:
https://microsoft.github.io/language-server-protocol/specification
Each LSP protocol message starts with a simple HTTP header followed by the
payload encoded in JSON-RPC format. This is described in:
https://www.jsonrpc.org/specification
For messages received on a channel with mode set to "lsp", Vim will process
the HTTP header and decode the payload into a Vim |Dict| type and call the
channel callback or the specified callback function. When sending messages on
a channel using |ch_evalexpr()| or |ch_sendexpr()|, Vim will add the HTTP
header and encode the Vim expression into JSON-RPC.
To open a channel using the 'lsp' mode, set the 'mode' item in the |ch_open()|
{options} argument to 'lsp'. Example: >
let ch = ch_open(..., #{mode: 'lsp'})
To open a channel using the 'lsp' mode with a job, set the 'in_mode' and
'out_mode' items in the |job_start()| {options} argument to 'lsp'. Example: >
let job = job_start(...., #{in_mode: 'lsp', out_mode: 'lsp'})
To synchronously send a JSON-RPC request to the server, use the |ch_evalexpr()|
function. This function will return the response from the server. You can use
the 'timeout' field in the {options} argument to control the response wait
time. Example: >
let req = {}
let req.method = 'textDocument/definition'
let req.params = {}
let req.params.textDocument = #{uri: 'a.c'}
let req.params.position = #{line: 10, character: 3}
let resp = ch_evalexpr(ch, req, #{timeout: 100})
Note that in the request message the 'id' field should not be specified. If it
is specified, then Vim will overwrite the value with an internally generated
identifier. Vim currently supports only a number type for the 'id' field.
To send a JSON-RPC request to the server and asynchronously process the
response, use the |ch_sendexpr()| function and supply a callback function.
Example: >
let req = {}
let req.method = 'textDocument/hover'
let req.params = {}
let req.params.textDocument = #{uri: 'a.c'}
let req.params.position = #{line: 10, character: 3}
let resp = ch_sendexpr(ch, req, #{callback: 'MyFn'})
To send a JSON-RPC notification message to the server, use the |ch_sendexpr()|
function. Example: >
call ch_sendexpr(ch, #{method: 'initialized'})
To respond to a JSON-RPC request message from the server, use the
|ch_sendexpr()| function. In the response message, copy the 'id' field value
from the server request message. Example: >
let resp = {}
let resp.id = req.id
let resp.result = 1
call ch_sendexpr(ch, resp)
The JSON-RPC notification messages from the server are delivered through the
|channel-callback| function.
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -939,7 +939,7 @@ Note: these are typed literally, they are not special keys!
file name of the sourced file. *E498*
When executing a legacy function, is replaced with the call
stack, as with <stack> (this is for backwards
compatibility, using <stack> is preferred).
compatibility, using <stack> or <script> is preferred).
In Vim9 script using <sfile> in a function gives error
*E1245* .
Note that filename-modifiers are useless when <sfile> is
@@ -951,6 +951,12 @@ Note: these are typed literally, they are not special keys!
".." in between items. E.g.:
"function {function-name1}[{lnum}]..{function-name2}[{lnum}]"
If there is no call stack you get error *E489* .
*:<script>* *<script>*
<script> When executing a `:source` command, is replaced with the file
name of the sourced file. When executing a function, is
replaced with the file name of the script where it is
defined.
If the file name cannot be determined you get error *E1274* .
*:<slnum>* *<slnum>*
<slnum> When executing a ":source" command, is replaced with the
line number. *E842*

View File

@@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.2. Last change: 2022 Feb 16
*editing.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1224,7 +1224,7 @@ Examples: >
If you want to always use ":confirm", set the 'confirm' option.
*:browse* *:bro* *E338* *E614* *E615* *E616*
*:browse* *:bro* *E338*
:bro[wse] {command} Open a file selection dialog for an argument to
{command}. At present this works for |:e|, |:w|,
|:wall|, |:wq|, |:wqall|, |:x|, |:xall|, |:exit|,
@@ -1235,7 +1235,7 @@ If you want to always use ":confirm", set the 'confirm' option.
|:diffsplit|, |:diffpatch|, |:open|, |:pedit|,
|:redir|, |:source|, |:update|, |:visual|, |:vsplit|,
and |:qall| if 'confirm' is set.
{only in Win32, Athena, Motif, GTK and Mac GUI, in
{only in Win32, Motif, GTK and Mac GUI, in
console `browse edit` works if the FileExplorer
autocommand group exists}
When ":browse" is not possible you get an error

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.2. Last change: 2022 Feb 21
*eval.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -181,7 +181,7 @@ You will not get an error if you try to change the type of a variable.
1.2 Function references ~
*Funcref* *E695* *E718* *E1086* *E1192*
*Funcref* *E695* *E718* *E1192*
A Funcref variable is obtained with the |function()| function, the |funcref()|
function or created with the lambda expression |expr-lambda|. It can be used
in an expression in the place of a function name, before the parenthesis
@@ -261,7 +261,7 @@ position in the sequence.
List creation ~
*E696* *E697*
A List is created with a comma separated list of items in square brackets.
A List is created with a comma-separated list of items in square brackets.
Examples: >
:let mylist = [1, two, 3, "four"]
:let emptylist = []
@@ -514,7 +514,7 @@ ordering.
Dictionary creation ~
*E720* *E721* *E722* *E723*
A Dictionary is created with a comma separated list of entries in curly
A Dictionary is created with a comma-separated list of entries in curly
braces. Each entry has a key and a value, separated by a colon. Each key can
only appear once. Examples: >
:let mydict = {1: 'one', 2: 'two', 3: 'three'}
@@ -1834,6 +1834,7 @@ Some variables can be set by the user, but the type cannot be changed.
*v:argv* *argv-variable*
v:argv The command line arguments Vim was invoked with. This is a
list of strings. The first item is the Vim command.
See |v:progpath| for the command with full path.
*v:beval_col* *beval_col-variable*
v:beval_col The number of the column, over which the mouse pointer is.
@@ -2215,6 +2216,8 @@ v:none An empty String. Used to put an empty item in JSON. See
< v:none ~
That is so that eval() can parse the string back to the same
value. Read-only.
Note that using `== v:none` and `!= v:none` will often give
an error. Instead, use `is v:none` and `isnot v:none` .
*v:null* *null-variable*
v:null An empty String. Used to put "null" in JSON. See
@@ -2225,7 +2228,10 @@ v:null An empty String. Used to put "null" in JSON. See
< v:null ~
That is so that eval() can parse the string back to the same
value. Read-only.
In |Vim9| script "null" can be used without "v:".
In |Vim9| script `null` can be used without "v:".
In some places `v:null` and `null` can be used for a List,
Dict, Job, etc. that is not set. That is slightly different
than an empty List, Dict, etc.
*v:numbermax* *numbermax-variable*
v:numbermax Maximum value of a number.
@@ -3423,16 +3429,17 @@ text...
opposite of |:lockvar|.
:if {expr1} *:if* *:end* *:endif* *:en* *E171* *E579* *E580*
:en[dif] Execute the commands until the next matching ":else"
or ":endif" if {expr1} evaluates to non-zero.
:en[dif] Execute the commands until the next matching `:else`
or `:endif` if {expr1} evaluates to non-zero.
Although the short forms work, it is recommended to
always use `:endif` to avoid confusion.
always use `:endif` to avoid confusion and to make
auto-indenting work properly.
From Vim version 4.5 until 5.0, every Ex command in
between the ":if" and ":endif" is ignored. These two
between the `:if` and `:endif` is ignored. These two
commands were just to allow for future expansions in a
backward compatible way. Nesting was allowed. Note
that any ":else" or ":elseif" was ignored, the "else"
that any `:else` or `:elseif` was ignored, the `else`
part was not executed either.
You can use this to remain compatible with older
@@ -3441,32 +3448,38 @@ text...
: version-5-specific-commands
:endif
< The commands still need to be parsed to find the
"endif". Sometimes an older Vim has a problem with a
new command. For example, ":silent" is recognized as
a ":substitute" command. In that case ":execute" can
`endif`. Sometimes an older Vim has a problem with a
new command. For example, `:silent` is recognized as
a `:substitute` command. In that case `:execute` can
avoid problems: >
:if version >= 600
: execute "silent 1,$delete"
:endif
<
NOTE: The ":append" and ":insert" commands don't work
properly in between ":if" and ":endif".
In |Vim9| script `:endif` cannot be shortened, to
improve script readability.
NOTE: The `:append` and `:insert` commands don't work
properly in between `:if` and `:endif`.
*:else* *:el* *E581* *E583*
:el[se] Execute the commands until the next matching ":else"
or ":endif" if they previously were not being
:el[se] Execute the commands until the next matching `:else`
or `:endif` if they previously were not being
executed.
In |Vim9| script `:else` cannot be shortened, to
improve script readability.
*:elseif* *:elsei* *E582* *E584*
:elsei[f] {expr1} Short for ":else" ":if", with the addition that there
is no extra ":endif".
:elsei[f] {expr1} Short for `:else` `:if`, with the addition that there
is no extra `:endif`.
In |Vim9| script `:elseif` cannot be shortened, to
improve script readability.
:wh[ile] {expr1} *:while* *:endwhile* *:wh* *:endw*
*E170* *E585* *E588* *E733*
:endw[hile] Repeat the commands between ":while" and ":endwhile",
:endw[hile] Repeat the commands between `:while` and `:endwhile`,
as long as {expr1} evaluates to non-zero.
When an error is detected from a command inside the
loop, execution continues after the "endwhile".
loop, execution continues after the `endwhile`.
Example: >
:let lnum = 1
:while lnum <= line("$")
@@ -3474,12 +3487,14 @@ text...
:let lnum = lnum + 1
:endwhile
<
NOTE: The ":append" and ":insert" commands don't work
properly inside a ":while" and ":for" loop.
In |Vim9| script `:while` and `:endwhile` cannot be
shortened, to improve script readability.
NOTE: The `:append` and `:insert` commands don't work
properly inside a `:while` and `:for` loop.
:for {var} in {object} *:for* *E690* *E732*
:endfo[r] *:endfo* *:endfor*
Repeat the commands between ":for" and ":endfor" for
Repeat the commands between `:for` and `:endfor` for
each item in {object}. {object} can be a |List| or
a |Blob|. *E1177*
@@ -3489,7 +3504,7 @@ text...
global/window/tab/buffer variable.
When an error is detected for a command inside the
loop, execution continues after the "endfor".
loop, execution continues after the `endfor`.
Changing {object} inside the loop affects what items
are used. Make a copy if this is unwanted: >
:for item in copy(mylist)
@@ -3514,9 +3529,12 @@ text...
iterate over. Unlike with |List|, modifying the
|Blob| does not affect the iteration.
In |Vim9| script `:endfor` cannot be shortened, to
improve script readability.
:for [{var1}, {var2}, ...] in {listlist}
:endfo[r] *E1140*
Like ":for" above, but each item in {listlist} must be
Like `:for` above, but each item in {listlist} must be
a list, of which each item is assigned to {var1},
{var2}, etc. Example: >
:for [lnum, col] in [[1, 3], [2, 5], [3, 8]]
@@ -3524,39 +3542,44 @@ text...
:endfor
<
*:continue* *:con* *E586*
:con[tinue] When used inside a ":while" or ":for" loop, jumps back
:con[tinue] When used inside a `:while` or `:for` loop, jumps back
to the start of the loop.
If it is used after a |:try| inside the loop but
before the matching |:finally| (if present), the
commands following the ":finally" up to the matching
|:endtry| are executed first. This process applies to
all nested ":try"s inside the loop. The outermost
":endtry" then jumps back to the start of the loop.
If it is used after a `:try` inside the loop but
before the matching `:finally` (if present), the
commands following the `:finally` up to the matching
`:endtry` are executed first. This process applies to
all nested `:try`s inside the loop. The outermost
`:endtry` then jumps back to the start of the loop.
In |Vim9| script `:cont` is the shortest form, to
improve script readability.
*:break* *:brea* *E587*
:brea[k] When used inside a ":while" or ":for" loop, skips to
the command after the matching ":endwhile" or
":endfor".
If it is used after a |:try| inside the loop but
before the matching |:finally| (if present), the
commands following the ":finally" up to the matching
|:endtry| are executed first. This process applies to
all nested ":try"s inside the loop. The outermost
":endtry" then jumps to the command after the loop.
:brea[k] When used inside a `:while` or `:for` loop, skips to
the command after the matching `:endwhile` or
`:endfor`.
If it is used after a `:try` inside the loop but
before the matching `:finally` (if present), the
commands following the `:finally` up to the matching
`:endtry` are executed first. This process applies to
all nested `:try`s inside the loop. The outermost
`:endtry` then jumps to the command after the loop.
In |Vim9| script `:break` cannot be shortened, to
improve script readability.
:try *:try* *:endt* *:endtry*
*E600* *E601* *E602* *E1032*
:endt[ry] Change the error handling for the commands between
":try" and ":endtry" including everything being
executed across ":source" commands, function calls,
`:try` and `:endtry` including everything being
executed across `:source` commands, function calls,
or autocommand invocations.
When an error or interrupt is detected and there is
a |:finally| command following, execution continues
after the ":finally". Otherwise, or when the
":endtry" is reached thereafter, the next
(dynamically) surrounding ":try" is checked for
a corresponding ":finally" etc. Then the script
a `:finally` command following, execution continues
after the `:finally`. Otherwise, or when the
`:endtry` is reached thereafter, the next
(dynamically) surrounding `:try` is checked for
a corresponding `:finally` etc. Then the script
processing is terminated. Whether a function
definition has an "abort" argument does not matter.
Example: >
@@ -3564,9 +3587,9 @@ text...
echomsg "not reached"
<
Moreover, an error or interrupt (dynamically) inside
":try" and ":endtry" is converted to an exception. It
can be caught as if it were thrown by a |:throw|
command (see |:catch|). In this case, the script
`:try` and `:endtry` is converted to an exception. It
can be caught as if it were thrown by a `:throw`
command (see `:catch`). In this case, the script
processing is not terminated.
The value "Vim:Interrupt" is used for an interrupt
@@ -3581,13 +3604,16 @@ text...
try | sleep 100 | catch /^Vim:Interrupt$/ | endtry
try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
<
In |Vim9| script `:endtry` cannot be shortened, to
improve script readability.
*:cat* *:catch*
*E603* *E604* *E605* *E654* *E1033*
:cat[ch] /{pattern}/ The following commands until the next |:catch|,
|:finally|, or |:endtry| that belongs to the same
|:try| as the ":catch" are executed when an exception
:cat[ch] /{pattern}/ The following commands until the next `:catch`,
`:finally`, or `:endtry` that belongs to the same
`:try` as the `:catch` are executed when an exception
matching {pattern} is being thrown and has not yet
been caught by a previous ":catch". Otherwise, these
been caught by a previous `:catch`. Otherwise, these
commands are skipped.
When {pattern} is omitted all errors are caught.
Examples: >
@@ -3609,29 +3635,35 @@ text...
NOTE: It is not reliable to ":catch" the TEXT of
an error message because it may vary in different
locales.
In |Vim9| script `:catch` cannot be shortened, to
improve script readability.
*:fina* *:finally* *E606* *E607*
:fina[lly] The following commands until the matching |:endtry|
:fina[lly] The following commands until the matching `:endtry`
are executed whenever the part between the matching
|:try| and the ":finally" is left: either by falling
through to the ":finally" or by a |:continue|,
|:break|, |:finish|, or |:return|, or by an error or
interrupt or exception (see |:throw|).
`:try` and the `:finally` is left: either by falling
through to the `:finally` or by a `:continue`,
`:break`, `:finish`, or `:return`, or by an error or
interrupt or exception (see `:throw`).
In |Vim9| script `:finally` cannot be shortened, to
improve script readability and avoid confusion with
`:final`.
*:th* *:throw* *E608* *E1129*
:th[row] {expr1} The {expr1} is evaluated and thrown as an exception.
If the ":throw" is used after a |:try| but before the
first corresponding |:catch|, commands are skipped
until the first ":catch" matching {expr1} is reached.
If there is no such ":catch" or if the ":throw" is
used after a ":catch" but before the |:finally|, the
commands following the ":finally" (if present) up to
the matching |:endtry| are executed. If the ":throw"
is after the ":finally", commands up to the ":endtry"
If the ":throw" is used after a `:try` but before the
first corresponding `:catch`, commands are skipped
until the first `:catch` matching {expr1} is reached.
If there is no such `:catch` or if the ":throw" is
used after a `:catch` but before the `:finally`, the
commands following the `:finally` (if present) up to
the matching `:endtry` are executed. If the `:throw`
is after the `:finally`, commands up to the `:endtry`
are skipped. At the ":endtry", this process applies
again for the next dynamically surrounding ":try"
again for the next dynamically surrounding `:try`
(which may be found in a calling function or sourcing
script), until a matching ":catch" has been found.
script), until a matching `:catch` has been found.
If the exception is not caught, the command processing
is terminated.
Example: >
@@ -3640,13 +3672,16 @@ text...
for when an error causes the parsing to skip the whole
line and not see the "|" that separates the commands.
In |Vim9| script `:throw` cannot be shortened, to
improve script readability.
*:ec* *:echo*
:ec[ho] {expr1} .. Echoes each {expr1}, with a space in between. The
first {expr1} starts on a new line.
Also see |:comment|.
Use "\n" to start a new line. Use "\r" to move the
cursor to the first column.
Uses the highlighting set by the |:echohl| command.
Uses the highlighting set by the `:echohl` command.
Cannot be followed by a comment.
Example: >
:echo "the value of 'shell' is" &shell
@@ -3655,21 +3690,21 @@ text...
And since Vim mostly postpones redrawing until it's
finished with a sequence of commands this happens
quite often. To avoid that a command from before the
":echo" causes a redraw afterwards (redraws are often
`:echo` causes a redraw afterwards (redraws are often
postponed until you type something), force a redraw
with the |:redraw| command. Example: >
with the `:redraw` command. Example: >
:new | redraw | echo "there is a new window"
<
*:echon*
:echon {expr1} .. Echoes each {expr1}, without anything added. Also see
|:comment|.
Uses the highlighting set by the |:echohl| command.
Uses the highlighting set by the `:echohl` command.
Cannot be followed by a comment.
Example: >
:echon "the value of 'shell' is " &shell
<
Note the difference between using ":echo", which is a
Vim command, and ":!echo", which is an external shell
Note the difference between using `:echo`, which is a
Vim command, and `:!echo`, which is an external shell
command: >
:!echo % --> filename
< The arguments of ":!" are expanded, see |:_%|. >
@@ -3685,8 +3720,8 @@ text...
*:echoh* *:echohl*
:echoh[l] {name} Use the highlight group {name} for the following
|:echo|, |:echon| and |:echomsg| commands. Also used
for the |input()| prompt. Example: >
`:echo`, `:echon` and `:echomsg` commands. Also used
for the `input()` prompt. Example: >
:echohl WarningMsg | echo "Don't panic!" | echohl None
< Don't forget to set the group back to "None",
otherwise all following echo's will be highlighted.
@@ -3695,14 +3730,14 @@ text...
:echom[sg] {expr1} .. Echo the expression(s) as a true message, saving the
message in the |message-history|.
Spaces are placed between the arguments as with the
|:echo| command. But unprintable characters are
`:echo` command. But unprintable characters are
displayed, not interpreted.
The parsing works slightly different from |:echo|,
more like |:execute|. All the expressions are first
The parsing works slightly different from `:echo`,
more like `:execute`. All the expressions are first
evaluated and concatenated before echoing anything.
If expressions does not evaluate to a Number or
String, string() is used to turn it into a string.
Uses the highlighting set by the |:echohl| command.
Uses the highlighting set by the `:echohl` command.
Example: >
:echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see."
< See |:echo-redraw| to avoid the message disappearing
@@ -3712,12 +3747,12 @@ text...
message in the |message-history|. When used in a
script or function the line number will be added.
Spaces are placed between the arguments as with the
|:echomsg| command. When used inside a try conditional,
`:echomsg` command. When used inside a try conditional,
the message is raised as an error exception instead
(see |try-echoerr|).
Example: >
:echoerr "This script just failed!"
< If you just want a highlighted message use |:echohl|.
< If you just want a highlighted message use `:echohl`.
And to get a beep: >
:exe "normal \<Esc>"

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 8.2. Last change: 2022 Jan 21
*filetype.txt* For Vim version 8.2. Last change: 2022 Apr 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -142,19 +142,27 @@ variables can be used to overrule the filetype used for certain extensions:
*.asm g:asmsyntax |ft-asm-syntax|
*.asp g:filetype_asp |ft-aspvbs-syntax| |ft-aspperl-syntax|
*.bas g:filetype_bas |ft-basic-syntax|
*.cfg g:filetype_cfg
*.dat g:filetype_dat
*.frm g:filetype_frm |ft-form-syntax|
*.fs g:filetype_fs |ft-forth-syntax|
*.i g:filetype_i |ft-progress-syntax|
*.inc g:filetype_inc
*.m g:filetype_m |ft-mathematica-syntax|
*.mod g:filetype_mod
*.p g:filetype_p |ft-pascal-syntax|
*.pl g:filetype_pl
*.pp g:filetype_pp |ft-pascal-syntax|
*.prg g:filetype_prg
*.src g:filetype_src
*.sh g:bash_is_sh |ft-sh-syntax|
*.tex g:tex_flavor |ft-tex-plugin|
*.w g:filetype_w |ft-cweb-syntax|
For a few filetypes the global variable is used only when the filetype could
not be detected:
*.r g:filetype_r |ft-rexx-syntax|
*filetype-ignore*
To avoid that certain files are being inspected, the g:ft_ignore_pat variable
is used. The default value is set like this: >

View File

@@ -1,4 +1,4 @@
*ft_ada.txt* For Vim version 8.2. Last change: 2010 Jul 20
*ft_ada.txt* For Vim version 8.2. Last change: 2022 Mar 13
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
@@ -89,9 +89,9 @@ file is opened and adds Ada related entries to the main and pop-up menu.
*ft-ada-omni*
The Ada omni-completions (|i_CTRL-X_CTRL-O|) uses tags database created either
by "gnat xref -v" or the "exuberant Ctags (http://ctags.sourceforge.net). The
complete function will automatically detect which tool was used to create the
tags file.
by "gnat xref -v" or the "Universal Ctags" (https://ctags.io). The complete
function will automatically detect which tool was used to create the tags
file.
------------------------------------------------------------------------------
3.1 Omni Completion with "gnat xref" ~
@@ -125,18 +125,18 @@ NOTE: "gnat xref -v" is very tricky to use as it has almost no diagnostic
3.2 Omni Completion with "ctags"~
*ada-ctags*
Exuberant Ctags uses its own multi-language code parser. The parser is quite
fast, produces a lot of extra information (hence the name "Exuberant Ctags")
and can run on files which currently do not compile.
Universal/Exuberant Ctags use their own multi-language code parser. The
parser is quite fast, produces a lot of extra information and can run on files
which currently do not compile.
There are also lots of other Vim-tools which use exuberant Ctags.
There are also lots of other Vim-tools which use Universal/Exuberant Ctags.
Universal Ctags is preferred, Exuberant Ctags is no longer being developed.
You will need to install a version of the Exuberant Ctags which has Ada
support patched in. Such a version is available from the GNU Ada Project
(http://gnuada.sourceforge.net).
You will need to install Universal Ctags which is available from
https://ctags.io
The Ada parser for Exuberant Ctags is fairly new - don't expect complete
support yet.
The Ada parser for Universal/Exuberant Ctags is fairly new - don't expect
complete support yet.
==============================================================================
4. Compiler Support ~

View File

@@ -1,4 +1,4 @@
*ft_sql.txt* For Vim version 8.2. Last change: 2019 Dec 07
*ft_sql.txt* For Vim version 8.2. Last change: 2022 Apr 06
by David Fishburn
@@ -559,7 +559,7 @@ the SQL completion plugin. >
< 1. After typing SELECT press <C-C>t to display a list of tables.
2. Highlight the table you need the column list for.
3. Press <Enter> to choose the table from the list.
4. Press <C-C>l to request a comma separated list of all columns
4. Press <C-C>l to request a comma-separated list of all columns
for this table.
5. Based on the table name chosen in step 3, the plugin attempts to
decide on a reasonable table alias. You are then prompted to
@@ -613,7 +613,7 @@ your |vimrc|: >
>
omni_sql_use_tbl_alias
< - Default: a
- This setting is only used when generating a comma separated
- This setting is only used when generating a comma-separated
column list. By default the map is <C-C>l. When generating
a column list, an alias can be prepended to the beginning of each
column, for example: e.emp_id, e.emp_name. This option has three
@@ -697,9 +697,9 @@ plugin. >
<C-C>c
< - Displays a list of columns for a specific table. >
<C-C>l
< - Displays a comma separated list of columns for a specific table. >
< - Displays a comma-separated list of columns for a specific table. >
<C-C>L
< - Displays a comma separated list of columns for a specific table.
< - Displays a comma-separated list of columns for a specific table.
This should only be used when the completion window is active. >
<Right>
< - Displays a list of columns for the table currently highlighted in

View File

@@ -1,4 +1,4 @@
*gui.txt* For Vim version 8.2. Last change: 2021 Jun 27
*gui.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -25,7 +25,7 @@ Other GUI documentation:
First you must make sure you actually have a version of Vim with the GUI code
included. You can check this with the ":version" command, it says "with xxx
GUI", where "xxx" is X11-Motif, X11-Athena, Photon, GTK2, GTK3, etc., or
GUI", where "xxx" is X11-Motif, Photon, GTK2, GTK3, etc., or
"MS-Windows 32 bit GUI version".
How to start the GUI depends on the system used. Mostly you can run the
@@ -108,7 +108,7 @@ There are a number of options which only have meaning in the GUI version of
Vim. These are 'guicursor', 'guifont', 'guipty' and 'guioptions'. They are
documented in |options.txt| with all the other options.
If using the Motif or Athena version of the GUI (but not for the GTK+ or
If using the Motif version of the GUI (but not for the GTK+ or
Win32 version), a number of X resources are available. See |gui-resources|.
Another way to set the colors for different occasions is with highlight
@@ -147,7 +147,8 @@ task bar with the 'guiheadroom' option.
*:win* *:winsize* *E465*
:win[size] {width} {height}
Set the window height to {width} by {height} characters.
Obsolete, use ":set lines=11 columns=22".
It is recommended to use `:set lines=11 columns=22` instead,
since it's easy to see what the numbers mean.
If you get less lines than expected, check the 'guiheadroom'
option.
@@ -235,7 +236,7 @@ takes too much time or you don't like the cursor jumping to another line,
include the 'h' flag in 'guioptions'. Then the scrolling is limited by the
text of the current cursor line.
*athena-intellimouse*
*motif-intellimouse*
If you have an Intellimouse and an X server that supports using the wheel,
then you can use the wheel to scroll the text up and down in gvim. This works
with XFree86 4.0 and later, and with some older versions when you add patches.
@@ -260,6 +261,7 @@ Other options that are relevant:
'mousefocus' window focus follows mouse pointer |gui-mouse-focus|
'mousemodel' what mouse button does which action
'mousehide' hide mouse pointer while typing text
'mousemoveevent' enable mouse move events so that <MouseMove> can be mapped
'selectmode' whether to start Select mode or Visual mode
A quick way to set these is with the ":behave" command.
@@ -405,6 +407,9 @@ These mappings make selection work the way it probably should in a Motif
application, with shift-left mouse allowing for extending the visual area
rather than the right mouse button.
<MouseMove> may be mapped, but 'mousemoveevent' must be enabled to use the
mapping.
Mouse mapping with modifiers does not work for modeless selection.
@@ -741,7 +746,7 @@ because the item will never be selected. Use a single colon to keep it
simple.
*gui-toolbar*
The toolbar is currently available in the Win32, Athena, Motif, GTK+ (X11),
The toolbar is currently available in the Win32, Motif, GTK+ (X11),
and Photon GUI. It should turn up in other GUIs in due course. The
default toolbar is setup in menu.vim.
The display of the toolbar is controlled by the 'guioptions' letter 'T'. You
@@ -857,7 +862,7 @@ The window toolbar uses the ToolbarLine and ToolbarButton highlight groups.
When splitting the window the window toolbar is not copied to the new window.
*popup-menu*
In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the
In the Win32, GTK+, Motif and Photon GUI, you can define the
special menu "PopUp". This is the menu that is displayed when the right mouse
button is pressed, if 'mousemodel' is set to popup or popup_setpos.
Example: >

View File

@@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 8.2. Last change: 2021 Oct 24
*gui_w32.txt* For Vim version 8.2. Last change: 2022 Mar 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -236,7 +236,8 @@ The "* register reflects the contents of the clipboard. |quotestar|
When the "unnamed" string is included in the 'clipboard' option, the unnamed
register is the same. Thus you can yank to and paste from the clipboard
without prepending "* to commands.
without prepending "* to commands. If this doesn't work use the "unnamedplus"
string in the 'clipboard' option.
The 'a' flag in 'guioptions' is not included by default. This means that text
is only put on the clipboard when an operation is performed on it. Just

View File

@@ -1,11 +1,11 @@
*gui_x11.txt* For Vim version 8.2. Last change: 2020 Jun 05
*gui_x11.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar
Vim's Graphical User Interface *gui-x11* *GUI-X11*
*Athena* *Motif*
*Motif*
1. Starting the X11 GUI |gui-x11-start|
2. GUI Resources |gui-resources|
3. Shell Commands |gui-pty|
@@ -64,7 +64,7 @@ flag in 'guioptions'. |-f|.
==============================================================================
2. GUI Resources *gui-resources* *.Xdefaults*
If using the Motif or Athena version of the GUI (not for the KDE, GTK+ or Win32
If using the Motif version of the GUI (not for the KDE, GTK+ or Win32
version), a number of X resources are available. You should use Vim's class
"Vim" when setting these. They are as follows:
@@ -96,7 +96,6 @@ version), a number of X resources are available. You should use Vim's class
is same size as terminal that started it).
scrollbarWidth Thickness of scrollbars.
borderWidth Thickness of border around text area.
menuHeight Height of the menu bar (only for Athena).
A special font for italic, bold, and italic-bold text will only be used if
the user has specified one via a resource. No attempt is made to guess what
@@ -135,12 +134,9 @@ which make Motif applications look even better, highly recommended!
The "Vim*fontList" is to set the menu font for Motif. Example: >
Vim*menuBar*fontList: -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
With Athena: >
Vim*menuBar*SmeBSB*font: -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
Vim*menuBar*MenuButton*font: -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
NOTE: A more portable, and indeed more correct, way to specify the menu font
in either Motif or Athena is through the resource: >
in Motif is through the resource: >
Vim.menuFont: -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
Or, when compiled with the |+xfontset| feature: >
Vim.menuFontSet: -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
@@ -255,7 +251,7 @@ For example: >
:10vmenu File.Print :w !lpr -Php3
<
*X11-icon*
Vim uses a black&white icon by default when compiled with Motif or Athena. A
Vim uses a black&white icon by default when compiled with Motif. A
colored Vim icon is included as $VIMRUNTIME/vim32x32.xpm. For GTK+, this is
the builtin icon used. Unfortunately, how you should install it depends on
your window manager. When you use this, remove the 'i' flag from
@@ -594,8 +590,7 @@ GTK+ files on your system. When both GTK+ 2 and GTK+ 3 are available, GTK+ 2
will be chosen unless --enable-gui=gtk3 is passed explicitly to configure.
If the GTK+ files cannot be found, then the Motif files will be searched for.
Finally, if this fails, the Athena files will be searched for. If all three
fail, the GUI will be disabled.
If both fail, the GUI will be disabled.
For GTK+, Vim's configuration process uses pkg-config(1) to check if the
GTK+ required for a specified build is properly installed and usable.
@@ -621,10 +616,10 @@ explicitly to configure, and avoid passing --enable-gnome-check to that, as
the functionality of the GNOME 2 support has already been consolidated in
GTK+ 3.
Otherwise, if you are using Motif or Athena, when you have the Motif or Athena
files in a directory where configure doesn't look, edit the Makefile to enter
the names of the directories. Search for "GUI_INC_LOC" for an example to set
the Motif directories, "CONF_OPT_X" for Athena.
Otherwise, if you are using Motif, when you have the Motif files in a
directory where configure doesn't look, edit the Makefile to enter the names
of the directories. Search for "GUI_INC_LOC" for an example to set
the Motif directories.
*gui-x11-gtk*
Currently, Vim supports both GTK+ 2 and GTK+ 3.
@@ -643,18 +638,11 @@ few problems, but you might make it compile and run with a bit of work, please
send me the patches if you do). The newest releases of LessTif have been
reported to work fine too.
*gui-x11-athena*
The Athena version uses the Xaw widget set by default. If you have the 3D
version, you might want to link with Xaw3d instead. This will make the
menus look a bit better. Edit the Makefile and look for "XAW_LIB". The
scrollbars will remain the same, because Vim has its own, which are already
3D (in fact, they look more like Motif).
*gui-x11-neXtaw*
The neXtaw version is mostly like Athena, but uses different widgets.
*gui-x11-athena* *gui-x11-neXtaw*
Support for the Athena GUI and neXtaw was removed in patch 8.2.4677.
*gui-x11-misc*
In general, do not try to mix files from different GTK+, Motif, Athena and X11
In general, do not try to mix files from different GTK+, Motif and X11
versions. This will cause problems. For example, using header files for
X11R5 with a library for X11R6 probably doesn't work (although the linking
won't give an error message, Vim will crash later).

View File

@@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 8.2. Last change: 2022 Jan 28
*if_perl.txt* For Vim version 8.2. Last change: 2022 Mar 13
VIM REFERENCE MANUAL by Sven Verdoolaege
@@ -22,9 +22,9 @@ line of a file, regardless of the filename suffix, to check if a file is a
Perl script (see scripts.vim in Vim's syntax directory). Vim assumes a file
is POD text if the filename has a .POD suffix.
To use tags with Perl, you need a recent version of Exuberant ctags. Look
here:
http://ctags.sourceforge.net
To use tags with Perl, you need Universal/Exuberant Ctags. Look here:
Universal Ctags (preferred): https://ctags.io
Exuberant Ctags: http://ctags.sourceforge.net
Alternatively, you can use the Perl script pltags.pl, which is shipped with
Vim in the $VIMRUNTIME/tools directory. This script has currently more

View File

@@ -1,4 +1,4 @@
*indent.txt* For Vim version 8.2. Last change: 2022 Jan 31
*indent.txt* For Vim version 8.2. Last change: 2022 Apr 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -42,11 +42,12 @@ is not a C compiler: it does not recognize all syntax. One requirement is
that toplevel functions have a '{' in the first column. Otherwise they are
easily confused with declarations.
These four options control C program indenting:
These five options control C program indenting:
'cindent' Enables Vim to perform C program indenting automatically.
'cinkeys' Specifies which keys trigger reindenting in insert mode.
'cinoptions' Sets your preferred indent style.
'cinwords' Defines keywords that start an extra indent in the next line.
'cinscopedecls' Defines strings that are recognized as a C++ scope declaration.
If 'lisp' is not on and 'equalprg' is empty, the "=" operator indents using
Vim's built-in algorithm rather than calling an external program.
@@ -293,8 +294,9 @@ The examples below assume a 'shiftwidth' of 4.
<
*cino-g*
gN Place C++ scope declarations N characters from the indent of the
block they are in. (default 'shiftwidth'). A scope declaration
can be "public:", "protected:" or "private:".
block they are in. (default 'shiftwidth'). By default, a scope
declaration is "public:", "protected:" or "private:". This can
be adjusted with the 'cinscopedecls' option.
cino= cino=g0 >
{ {

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 8.2. Last change: 2022 Feb 09
*index.txt* For Vim version 8.2. Last change: 2022 Mar 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1170,7 +1170,7 @@ tag command action ~
be remapped
|:args| :ar[gs] print the argument list
|:argadd| :arga[dd] add items to the argument list
:argdedupe :argdedupe remove duplicates from the argument list
|:argdedupe| :argded[upe] remove duplicates from the argument list
|:argdelete| :argd[elete] delete items from the argument list
|:argedit| :arge[dit] add item to the argument list and edit it
|:argdo| :argdo do a command on all items in the argument list

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 8.2. Last change: 2021 Dec 29
*insert.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -272,7 +272,7 @@ CTRL-] Trigger abbreviation, without inserting a character.
*i_backspacing*
The effect of the <BS>, CTRL-W, and CTRL-U depend on the 'backspace' option
(unless 'revins' is set). This is a comma separated list of items:
(unless 'revins' is set). This is a comma-separated list of items:
item action ~
indent allow backspacing over autoindent
@@ -283,8 +283,8 @@ start allow backspacing over the start position of insert; CTRL-W and
When 'backspace' is empty, Vi compatible backspacing is used. You cannot
backspace over autoindent, before column 1 or before where insert started.
For backwards compatibility the values "0", "1" and "2" are also allowed, see
|'backspace'|.
For backwards compatibility the values "0", "1", "2" and "3" are also allowed,
see |'backspace'|.
If the 'backspace' option does contain "eol" and the cursor is in column 1
when one of the three keys is used, the current line is joined with the
@@ -800,7 +800,7 @@ If the previous expansion was split, because it got longer than 'textwidth',
then just the text in the current line will be used.
If the match found is at the end of a line, then the first word in the next
line will be inserted and the message "word from next line" displayed, if
line will be inserted and the message "Word from other line" displayed, if
this word is accepted the next CTRL-X CTRL-P or CTRL-X CTRL-N will search
for those lines starting with this word.
@@ -818,6 +818,7 @@ CTRL-X CTRL-K Search the files given with the 'dictionary' option
the 'dictionary' option is empty.
For suggestions where to find a list of words, see the
'dictionary' option.
'ignorecase', 'smartcase' and 'infercase' apply.
CTRL-K or
CTRL-N Search forward for next matching keyword. This
@@ -1195,7 +1196,7 @@ three lines, but 'previewheight' is used when it has a value of 1 or 2.
*complete-popup*
When "popup" is in 'completeopt' a popup window is used to display the "info".
Then the 'completepopup' option specifies the properties of the popup. This
is used when the info popup is created. The option is a comma separated list
is used when the info popup is created. The option is a comma-separated list
of values:
height maximum height of the popup
width maximum width of the popup
@@ -1408,11 +1409,16 @@ in 'runtimepath'. Thus for "java" it is autoload/javacomplete.vim.
C *ft-c-omni*
Completion of C code requires a tags file. You should use Exuberant ctags,
because it adds extra information that is needed for completion. You can find
it here: http://ctags.sourceforge.net/ Version 5.6 or later is recommended.
Completion of C code requires a tags file. You should use Universal/
Exuberant ctags, because it adds extra information that is needed for
completion. You can find it here:
Universal Ctags: https://ctags.io
Exuberant Ctags: http://ctags.sourceforge.net
For version 5.5.4 you should add a patch that adds the "typename:" field:
Universal Ctags is preferred, Exuberant Ctags is no longer being developed.
For Exuberant ctags, version 5.6 or later is recommended. For version 5.5.4
you should add a patch that adds the "typename:" field:
ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch
A compiled .exe for MS-Windows can be found at:
http://ctags.sourceforge.net/
@@ -1533,8 +1539,11 @@ will be suggested. All other elements are not placed in suggestion list.
PHP *ft-php-omni*
Completion of PHP code requires a tags file for completion of data from
external files and for class aware completion. You should use Exuberant ctags
version 5.5.4 or newer. You can find it here: http://ctags.sourceforge.net/
external files and for class aware completion. You should use Universal/
Exuberant ctags version 5.5.4 or newer. You can find it here:
Universal Ctags: https://ctags.io
Exuberant Ctags: http://ctags.sourceforge.net
Script completes:

View File

@@ -1,4 +1,4 @@
*intro.txt* For Vim version 8.2. Last change: 2021 Sep 29
*intro.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -213,7 +213,7 @@ Vim would never have become what it is now, without the help of these people!
Daniel Elstner GTK+ 2 port
Eric Fischer Mac port, 'cindent', and other improvements
Benji Fisher Answering lots of user questions
Bill Foster Athena GUI port
Bill Foster Athena GUI port (later removed)
Google Lets me work on Vim one day a week
Loic Grenie xvim (ideas for multi windows version)
Sven Guckes Vim promoter and previous WWW page maintainer
@@ -701,7 +701,8 @@ Q Switch to "Ex" mode. This is a bit like typing ":"
Use the ":vi" command |:visual| to exit "Ex" mode.
Note: In older versions of Vim "Q" formatted text,
that is now done with |gq|. But if you use the
|vimrc_example.vim| script "Q" works like "gq".
|vimrc_example.vim| script or |defaults.vim|, "Q"
works like "gq". Except for Select mode.
*gQ*
gQ Switch to "Ex" mode like with "Q", but really behave

View File

@@ -1,4 +1,4 @@
*map.txt* For Vim version 8.2. Last change: 2022 Jan 23
*map.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -80,6 +80,8 @@ modes.
where the map command applies. Disallow mapping of
{rhs}, to avoid nested and recursive mappings. Often
used to redefine a command.
Note: When <Plug> appears in the {rhs} this part is
always applied even if remapping is disallowed.
:unm[ap] {lhs} |mapmode-nvo| *:unm* *:unmap*
@@ -387,7 +389,7 @@ contain special characters like function keys.
1.3 MAPPING AND MODES *:map-modes*
*mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o*
There are six sets of mappings
There are seven sets of mappings
- For Normal mode: When typing commands.
- For Visual mode: When typing commands while the Visual area is highlighted.
- For Select mode: like Visual mode but typing text replaces the selection.
@@ -395,6 +397,7 @@ There are six sets of mappings
etc.). See below: |omap-info|.
- For Insert mode. These are also used in Replace mode.
- For Command-line mode: When entering a ":" or "/" command.
- For Terminal mode: When typing in a |:terminal| buffer.
Special case: While typing a count for a command in Normal mode, mapping zero
is disabled. This makes it possible to map zero without making it impossible
@@ -694,6 +697,10 @@ The special key name "<Plug>" can be used for an internal mapping, which is
not to be matched with any key sequence. This is useful in plugins
|using-<Plug>|.
*<MouseMove>*
The special key name "<MouseMove>" can be used to handle mouse movement. It
needs to be enabled with 'mousemoveevent'. Currently only works in the GUI.
*<Char>* *<Char->*
To map a character by its decimal, octal or hexadecimal number the <Char>
construct can be used:
@@ -1444,7 +1451,7 @@ See |:verbose-cmd| for more information.
Command attributes ~
*command-attributes*
User-defined commands are treated by Vim just like any other Ex commands. They
can have arguments, or have a range specified. Arguments are subject to
completion as filenames, buffers, etc. Exactly how this works depends upon the
@@ -1561,9 +1568,11 @@ The function arguments are:
The function may use these for determining context. For the "custom"
argument, it is not necessary to filter candidates against the (implicit
pattern in) ArgLead. Vim will filter the candidates with its regexp engine
after function return, and this is probably more efficient in most cases. For
the "customlist" argument, Vim will not filter the returned completion
candidates and the user supplied function should filter the candidates.
after function return, and this is probably more efficient in most cases. If
'wildoptions' contains "fuzzy", then the candidates will be filtered using
|fuzzy-matching|. For the "customlist" argument, Vim will not
filter the returned completion candidates and the user supplied function
should filter the candidates.
The following example lists user names to a Finger command >
:com -complete=custom,ListUsers -nargs=1 Finger !finger <args>

View File

@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 8.2. Last change: 2022 Jan 20
*mbyte.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -702,7 +702,7 @@ USING RESOURCE FILES
Instead of specifying 'guifontset', you can set X11 resources and Vim will
pick them up. This is only for people who know how X resource files work.
For Motif and Athena insert these three lines in your $HOME/.Xdefaults file:
For Motif insert these three lines in your $HOME/.Xdefaults file:
Vim.font: |base_font_name_list|
Vim*fontSet: |base_font_name_list|
@@ -1280,7 +1280,7 @@ internally.
Vim has comprehensive UTF-8 support. It works well in:
- xterm with UTF-8 support enabled
- Athena, Motif and GTK GUI
- Motif and GTK GUI
- MS-Windows GUI
- several other platforms

View File

@@ -33,7 +33,8 @@ know what the hjkl keys do. The mnemonic value of hjkl is clear from looking
at the keyboard. Think of j as an arrow pointing downwards.
The 'virtualedit' option can be set to make it possible to move the cursor to
positions where there is no character or halfway a character.
positions where there is no character or within a multi-column character (like
a tab).
==============================================================================
1. Motions and operators *operator*
@@ -445,35 +446,35 @@ between Vi and Vim.
5. Text object motions *object-motions*
*(*
( [count] sentences backward. |exclusive| motion.
( [count] |sentence|s backward. |exclusive| motion.
*)*
) [count] sentences forward. |exclusive| motion.
) [count] |sentence|s forward. |exclusive| motion.
*{*
{ [count] paragraphs backward. |exclusive| motion.
{ [count] |paragraph|s backward. |exclusive| motion.
*}*
} [count] paragraphs forward. |exclusive| motion.
} [count] |paragraph|s forward. |exclusive| motion.
*]]*
]] [count] sections forward or to the next '{' in the
]] [count] |section|s forward or to the next '{' in the
first column. When used after an operator, then also
stops below a '}' in the first column. |exclusive|
Note that |exclusive-linewise| often applies.
*][*
][ [count] sections forward or to the next '}' in the
][ [count] |section|s forward or to the next '}' in the
first column. |exclusive|
Note that |exclusive-linewise| often applies.
*[[*
[[ [count] sections backward or to the previous '{' in
[[ [count] |section|s backward or to the previous '{' in
the first column. |exclusive|
Note that |exclusive-linewise| often applies.
*[]*
[] [count] sections backward or to the previous '}' in
[] [count] |section|s backward or to the previous '}' in
the first column. |exclusive|
Note that |exclusive-linewise| often applies.
@@ -1076,6 +1077,9 @@ The "file/text" column shows the file name, or the text at the jump if it is
in the current file (an indent is removed and a long line is truncated to fit
in the window).
The marker ">" indicates the current position in the jumplist. It may not be
shown when filtering the |:jump| command using |:filter|
You are currently in line 1167. If you then use the CTRL-O command, the
cursor is put in line 1154. This results in:

View File

@@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 8.2. Last change: 2020 Nov 02
*netbeans.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Gordon Prieur et al.
@@ -124,12 +124,12 @@ In case you do not want the NetBeans interface you can disable it by
uncommenting a line with "--disable-netbeans" in the Makefile.
Currently the NetBeans interface is supported by Vim running in a terminal and
by gvim when it is run with one of the following GUIs: GTK, GNOME, Windows,
Athena and Motif.
by gvim when it is run with one of the following GUIs: GTK, GNOME, Windows
and Motif.
*netbeans-xpm*
If Motif support is required the user must supply XPM libraries.
The XPM library is required to show images within Vim with Motif or Athena.
The XPM library is required to show images within Vim with Motif.
Without it the toolbar and signs will be disabled.
The XPM library is provided by Arnaud Le Hors of the French National Institute

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 8.2. Last change: 2022 Feb 18
*options.txt* For Vim version 8.2. Last change: 2022 Apr 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -87,7 +87,7 @@ achieve special effects. These options come in three forms:
:se[t] {option}+={value} *:set+=*
Add the {value} to a number option, or append the
{value} to a string option. When the option is a
comma separated list, a comma is added, unless the
comma-separated list, a comma is added, unless the
value was empty.
If the option is a list of flags, superfluous flags
are removed. When adding a flag that was already
@@ -97,7 +97,7 @@ achieve special effects. These options come in three forms:
:se[t] {option}^={value} *:set^=*
Multiply the {value} to a number option, or prepend
the {value} to a string option. When the option is a
comma separated list, a comma is added, unless the
comma-separated list, a comma is added, unless the
value was empty.
Also see |:set-args| above.
@@ -987,7 +987,8 @@ A jump table for the options with a short description can be found at |Q_op|.
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, none of
the ways mentioned for the items above are possible.
For backwards compatibility with version 5.4 and earlier:
value effect ~
@@ -1018,7 +1019,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'backupcopy' 'bkc' string (Vi default for Unix: "yes", otherwise: "auto")
global or local to buffer |global-local|
When writing a file and a backup is made, this option tells how it's
done. This is a comma separated list of words.
done. This is a comma-separated list of words.
The main values are:
"yes" make a copy of the file and overwrite the original one
@@ -1042,10 +1043,10 @@ A jump table for the options with a short description can be found at |Q_op|.
file.
- When the file is a link the new file will not be a link.
The "auto" value is the middle way: When Vim sees that renaming file
is possible without side effects (the attributes can be passed on and
the file is not a link) that is used. When problems are expected, a
copy will be made.
The "auto" value is the middle way: When Vim sees that renaming the
file is possible without side effects (the attributes can be passed on
and the file is not a link) that is used. When problems are expected,
a copy will be made.
The "breaksymlink" and "breakhardlink" values can be used in
combination with any of "yes", "no" and "auto". When included, they
@@ -1064,13 +1065,13 @@ A jump table for the options with a short description can be found at |Q_op|.
When a copy is made, the original file is truncated and then filled
with the new text. This means that protection bits, owner and
symbolic links of the original file are unmodified. The backup file
symbolic links of the original file are unmodified. The backup file,
however, is a new file, owned by the user who edited the file. The
group of the backup is set to the group of the original file. If this
fails, the protection bits for the group are made the same as for
others.
When the file is renamed this is the other way around: The backup has
When the file is renamed, this is the other way around: The backup has
the same attributes of the original file, and the newly written file
is owned by the current user. When the file was a (hard/symbolic)
link, the new file will not! That's why the "auto" value doesn't
@@ -1137,7 +1138,7 @@ A jump table for the options with a short description can be found at |Q_op|.
accidentally overwriting existing files with a backup file. You might
prefer using ".bak", but make sure that you don't have files with
".bak" that you want to keep.
Only normal file name characters can be used, "/\*?[|<>" are illegal.
Only normal file name characters can be used; "/\*?[|<>" are illegal.
If you like to keep a lot of backups, you could use a BufWritePre
autocommand to change 'backupext' just before writing the file to
@@ -1401,7 +1402,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'browsedir'* *'bsdir'*
'browsedir' 'bsdir' string (default: "last")
global
{only for Motif, Athena, GTK, Mac and Win32 GUI}
{only for Motif, GTK, Mac and Win32 GUI}
Which directory to use for the file browser:
last Use same directory as with last file browser, where a
file was opened or saved.
@@ -1415,16 +1416,16 @@ A jump table for the options with a short description can be found at |Q_op|.
This option specifies what happens when a buffer is no longer
displayed in a window:
<empty> follow the global 'hidden' option
hide hide the buffer (don't unload it), also when 'hidden'
is not set
unload unload the buffer, also when 'hidden' is set or using
|:hide|
delete delete the buffer from the buffer list, also when
'hidden' is set or using |:hide|, like using
|:bdelete|
wipe wipe out the buffer from the buffer list, also when
'hidden' is set or using |:hide|, like using
|:bwipeout|
hide hide the buffer (don't unload it), even if 'hidden' is
not set
unload unload the buffer, even if 'hidden' is set; the
|:hide| command will also unlod the buffer
delete delete the buffer from the buffer list, even if
'hidden' is set; the |:hide| command will also delete
the buffer, making it behave like |:bdelete|
wipe wipe the buffer from the buffer list, even if
'hidden' is set; the |:hide| command will also wipe
out the buffer, making it behave like |:bwipeout|
CAREFUL: when "unload", "delete" or "wipe" is used changes in a buffer
are lost without a warning. Also, these values may break autocommands
@@ -1660,13 +1661,23 @@ A jump table for the options with a short description can be found at |Q_op|.
matter, include the keyword both the uppercase and lowercase:
"if,If,IF".
*'clipboard'* *'cb'*
*'cinscopedecls'* *'cinsd'*
'cinscopedecls' 'cinsd' string (default "public,protected,private")
local to buffer
{not available when compiled without the |+cindent|
feature}
Keywords that are interpreted as a C++ scope declaration by |cino-g|.
Useful e.g. for working with the Qt framework that defines additional
scope declarations "signals", "public slots" and "private slots": >
set cinscopedecls+=signals,public\ slots,private\ slots
< *'clipboard'* *'cb'*
'clipboard' 'cb' string (default "autoselect,exclude:cons\|linux"
for X-windows, "" otherwise)
global
{only in GUI versions or when the |+xterm_clipboard|
feature is included}
This option is a list of comma separated names.
This option is a list of comma-separated names.
Note: if one of the items is "exclude:", then you can't add an item
after that. Therefore do append an item with += but use ^= to
prepend, e.g.: >
@@ -1767,7 +1778,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to window
{not available when compiled without the |+syntax|
feature}
'colorcolumn' is a comma separated list of screen columns that are
'colorcolumn' is a comma-separated list of screen columns that are
highlighted with ColorColumn |hl-ColorColumn|. Useful to align
text. Will make screen redrawing slower.
The screen column can be an absolute number, or a number preceded with
@@ -1801,7 +1812,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'comments' 'com' string (default
"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-")
local to buffer
A comma separated list of strings that can start a comment line. See
A comma-separated list of strings that can start a comment line. See
|format-comments|. See |option-backslash| about using backslashes to
insert a space.
@@ -1942,7 +1953,7 @@ A jump table for the options with a short description can be found at |Q_op|.
This option specifies how keyword completion |ins-completion| works
when CTRL-P or CTRL-N are used. It is also used for whole-line
completion |i_CTRL-X_CTRL-L|. It indicates the type of completion
and the places to scan. It is a comma separated list of flags:
and the places to scan. It is a comma-separated list of flags:
. scan the current buffer ('wrapscan' is ignored)
w scan buffers from other windows
b scan other loaded buffers that are in the buffer list
@@ -2011,7 +2022,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'completeopt'* *'cot'*
'completeopt' 'cot' string (default: "menu,preview")
global
A comma separated list of options for Insert mode completion
A comma-separated list of options for Insert mode completion
|ins-completion|. The supported values are:
menu Use a popup menu to show the possible completions. The
@@ -2627,7 +2638,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to window
{not available when compiled without the |+syntax|
feature}
Comma separated list of settings for how 'cursorline' is displayed.
Comma-separated list of settings for how 'cursorline' is displayed.
Valid values:
"line" Highlight the text line of the cursor with
CursorLine |hl-CursorLine|.
@@ -2907,7 +2918,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'display' 'dy' string (default "", set to "truncate" in
|defaults.vim|)
global
Change the way text is displayed. This is comma separated list of
Change the way text is displayed. This is comma-separated list of
flags:
lastline When included, as much as possible of the last line
in a window will be displayed. "@@@" is put in the
@@ -3111,7 +3122,7 @@ A jump table for the options with a short description can be found at |Q_op|.
A list of autocommand event names, which are to be ignored.
When set to "all" or when "all" is one of the items, all autocommand
events are ignored, autocommands will not be executed.
Otherwise this is a comma separated list of event names. Example: >
Otherwise this is a comma-separated list of event names. Example: >
:set ei=WinEnter,WinLeave
<
*'expandtab'* *'et'* *'noexpandtab'* *'noet'*
@@ -3371,7 +3382,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the |+folding|
feature}
Characters to fill the statuslines and vertical separators.
It is a comma separated list of items:
It is a comma-separated list of items:
item default Used for ~
stl:c ' ' or '^' statusline of the current window
@@ -3561,7 +3572,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the |+folding|
feature}
Specifies for which type of commands folds will be opened, if the
command moves the cursor into a closed fold. It is a comma separated
command moves the cursor into a closed fold. It is a comma-separated
list of items.
NOTE: When the command is part of a mapping this option is not used.
Add the |zv| command to the mapping to get the same effect.
@@ -3779,7 +3790,7 @@ A jump table for the options with a short description can be found at |Q_op|.
For a console the 't_SI', 't_SR', and 't_EI' escape sequences are
used.
The option is a comma separated list of parts. Each part consist of a
The option is a comma-separated list of parts. Each part consist of a
mode-list and an argument-list:
mode-list:argument-list,mode-list:argument-list,..
The mode-list is a dash separated list of these modes:
@@ -3898,7 +3909,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'guioptions'* *'go'*
'guioptions' 'go' string (default "egmrLtT" (MS-Windows,
"t" is removed in |defaults.vim|),
"aegimrLtT" (GTK, Motif and Athena),
"aegimrLtT" (GTK and Motif),
)
global
{only available when compiled with GUI enabled}
@@ -3979,13 +3990,12 @@ A jump table for the options with a short description can be found at |Q_op|.
*'go-g'*
'g' Grey menu items: Make menu items that are not active grey. If
'g' is not included inactive menu items are not shown at all.
Exception: Athena will always use grey menu items.
*'go-t'*
't' Include tearoff menu items. Currently only works for Win32,
GTK+, and Motif 1.2 GUI.
*'go-T'*
'T' Include Toolbar. Currently only in Win32, GTK+, Motif, Photon
and Athena GUIs.
'T' Include Toolbar. Currently only in Win32, GTK+, Motif and
Photon GUIs.
*'go-r'*
'r' Right-hand scrollbar is always present.
*'go-R'*
@@ -4091,7 +4101,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+multi_lang|
feature}
Comma separated list of languages. Vim will use the first language
Comma-separated list of languages. Vim will use the first language
for which the desired help can be found. The English help will always
be used as a last resort. You can add "en" to prefer English over
another language, but that will only find tags that exist in that
@@ -4110,10 +4120,14 @@ A jump table for the options with a short description can be found at |Q_op|.
When off a buffer is unloaded when it is |abandon|ed. When on a
buffer becomes hidden when it is |abandon|ed. If the buffer is still
displayed in another window, it does not become hidden, of course.
The commands that move through the buffer list sometimes make a buffer
hidden although the 'hidden' option is off: When the buffer is
modified, 'autowrite' is off or writing is not possible, and the '!'
flag was used. See also |windows.txt|.
hidden even if the 'hidden' option is off when these three are true:
- the buffer is modified
- 'autowrite' is off or writing is not possible
- the '!' flag was used
Also see |windows.txt|.
To only make one buffer hidden use the 'bufhidden' option.
This option is set for one command with ":hide {command}" |:hide|.
WARNING: It's easy to forget that you have changes in hidden buffers.
@@ -4139,7 +4153,7 @@ A jump table for the options with a short description can be found at |Q_op|.
z:StatusLineTerm,Z:StatusLineTermNC")
global
This option can be used to set highlighting mode for various
occasions. It is a comma separated list of character pairs. The
occasions. It is a comma-separated list of character pairs. The
first character in a pair gives the occasion, the second the mode to
use for that occasion. The occasions are:
|hl-SpecialKey| 8 Meta and special keys listed with ":map"
@@ -4151,6 +4165,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|hl-ErrorMsg| e error messages
h (obsolete, ignored)
|hl-IncSearch| i 'incsearch' highlighting
|hl-CurSearch| y current instance of last search pattern
|hl-Search| l last search pattern highlighting (see 'hlsearch')
|hl-MoreMsg| m |more-prompt|
|hl-ModeMsg| M Mode (e.g., "-- INSERT --")
@@ -4394,7 +4409,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|i_CTRL-^|.
The value is set to 1 when setting 'keymap' to a valid keymap name.
It is also used for the argument of commands like "r" and "f".
The value 0 may not work correctly with Athena and Motif with some XIM
The value 0 may not work correctly with Motif with some XIM
methods. Use 'imdisable' to disable XIM then.
You can set 'imactivatefunc' and 'imstatusfunc' to handle IME/XIM
@@ -4415,7 +4430,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|c_CTRL-^|.
The value is set to 1 when it is not -1 and setting the 'keymap'
option to a valid keymap name.
The value 0 may not work correctly with Athena and Motif with some XIM
The value 0 may not work correctly with Motif with some XIM
methods. Use 'imdisable' to disable XIM then.
*'imstatusfunc'* *'imsf'*
@@ -4806,7 +4821,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'keymodel'* *'km'*
'keymodel' 'km' string (default "")
global
List of comma separated words, which enable special things that keys
List of comma-separated words, which enable special things that keys
can do. These values can be used:
startsel Using a shifted special key starts selection (either
Select mode or Visual mode, depending on "key" being
@@ -5007,7 +5022,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global or local to buffer |global-local|
{not available when compiled without the |+lispindent|
feature}
Comma separated list of words that influence the Lisp indenting.
Comma-separated list of words that influence the Lisp indenting.
|'lisp'|
*'list'* *'nolist'*
@@ -5031,7 +5046,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'listchars' 'lcs' string (default "eol:$")
global or local to window |global-local|
Strings to use in 'list' mode and for the |:list| command. It is a
comma separated list of string settings.
comma-separated list of string settings.
*lcs-eol*
eol:c Character to show at the end of each line. When
omitted, there is no extra character at the end of the
@@ -5516,6 +5531,18 @@ A jump table for the options with a short description can be found at |Q_op|.
The 'mousemodel' option is set by the |:behave| command.
*'mousemoveevent'* *'mousemev'*
'mousemoveevent' 'mousemev' boolean (default off)
global
{only works in the GUI}
When on, mouse move events are delivered to the input queue and are
available for mapping. The default, off, avoids the mouse movement
overhead except when needed. See |gui-mouse-mapping|.
Warning: Setting this option can make pending mappings to be aborted
when the mouse is moved.
Currently only works in the GUI, may be made to work in a terminal
later.
*'mouseshape'* *'mouses'* *E547*
'mouseshape' 'mouses' string (default "i-r:beam,s:updown,sd:udsizing,
vs:leftright,vd:lrsizing,m:no,
@@ -5524,7 +5551,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{only available when compiled with the |+mouseshape|
feature}
This option tells Vim what the mouse pointer should look like in
different modes. The option is a comma separated list of parts, much
different modes. The option is a comma-separated list of parts, much
like used for 'guicursor'. Each part consist of a mode/location-list
and an argument-list:
mode-list:shape,mode-list:shape,..
@@ -6665,7 +6692,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'selectmode'* *'slm'*
'selectmode' 'slm' string (default "")
global
This is a comma separated list of words, which specifies when to start
This is a comma-separated list of words, which specifies when to start
Select mode instead of Visual mode, when a selection is started.
Possible values:
mouse when using the mouse
@@ -7284,7 +7311,7 @@ A jump table for the options with a short description can be found at |Q_op|.
commands. It must end in ".{encoding}.add". You need to include the
path, otherwise the file is placed in the current directory.
*E765*
It may also be a comma separated list of names. A count before the
It may also be a comma-separated list of names. A count before the
|zg| and |zw| commands can be used to access each. This allows using
a personal word list file and a project word list file.
When a word is added while this option is empty Vim will set it for
@@ -7306,7 +7333,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
{not available when compiled without the |+syntax|
feature}
A comma separated list of word list names. When the 'spell' option is
A comma-separated list of word list names. When the 'spell' option is
on spellchecking will be done for these languages. Example: >
set spelllang=en_us,nl,medical
< This means US English, Dutch and medical words are recognized. Words
@@ -7351,7 +7378,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
{not available when compiled without the |+syntax|
feature}
A comma separated list of options for spell checking:
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
@@ -7656,7 +7683,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
{not available when compiled without the
|+file_in_path| feature}
Comma separated list of suffixes, which are used when searching for a
Comma-separated list of suffixes, which are used when searching for a
file for the "gf", "[I", etc. commands. Example: >
:set suffixesadd=.java
<
@@ -7702,7 +7729,7 @@ A jump table for the options with a short description can be found at |Q_op|.
This option controls the behavior when switching between buffers.
Mostly for |quickfix| commands some values are also used for other
commands, as mentioned below.
Possible values (comma separated list):
Possible values (comma-separated list):
useopen If included, jump to the first open window that
contains the specified buffer (if there is one).
Otherwise: Do not examine other windows.
@@ -7859,9 +7886,10 @@ A jump table for the options with a short description can be found at |Q_op|.
linear search can be avoided when case is ignored. Use a value of '2'
in the "!_TAG_FILE_SORTED" line for this. A tag file can be case-fold
sorted with the -f switch to "sort" in most unices, as in the command:
"sort -f -o tags tags". For "Exuberant ctags" version 5.x or higher
(at least 5.5) the --sort=foldcase switch can be used for this as
well. Note that case must be folded to uppercase for this to work.
"sort -f -o tags tags". For Universal ctags and Exuberant ctags
version 5.x or higher (at least 5.5) the --sort=foldcase switch can be
used for this as well. Note that case must be folded to uppercase for
this to work.
By default, tag searches are case-sensitive. Case is ignored when
'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
@@ -8334,8 +8362,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'toolbar'* *'tb'*
'toolbar' 'tb' string (default "icons,tooltips")
global
{only for |+GUI_GTK|, |+GUI_Athena|, |+GUI_Motif| and
|+GUI_Photon|}
{only for |+GUI_GTK|, |+GUI_Motif| and |+GUI_Photon|}
The contents of this option controls various toolbar settings. The
possible values are:
icons Toolbar buttons are shown with icons.
@@ -8349,7 +8376,7 @@ A jump table for the options with a short description can be found at |Q_op|.
If you want the toolbar to be shown with icons as well as text, do the
following: >
:set tb=icons,text
< Motif and Athena cannot display icons and text at the same time. They
< Motif cannot display icons and text at the same time. They
will show icons if both are requested.
If none of the strings specified in 'toolbar' are valid or if
@@ -8668,7 +8695,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{not available when compiled without the |+mksession|
feature}
Changes the effect of the |:mkview| command. It is a comma separated
Changes the effect of the |:mkview| command. It is a comma-separated
list of words. Each word enables saving and restoring something:
word save and restore ~
cursor cursor position in file and in window
@@ -8698,7 +8725,7 @@ A jump table for the options with a short description can be found at |Q_op|.
When non-empty, the viminfo file is read upon startup and written
when exiting Vim (see |viminfo-file|). Except when 'viminfofile' is
"NONE".
The string should be a comma separated list of parameters, each
The string should be a comma-separated list of parameters, each
consisting of a single character identifying the particular parameter,
followed by a number or string which specifies the value of that
parameter. If a particular character is left out, then the default
@@ -8821,7 +8848,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'virtualedit'* *'ve'*
'virtualedit' 've' string (default "")
global or local to window |global-local|
A comma separated list of these words:
A comma-separated list of these words:
block Allow virtual editing in Visual block mode.
insert Allow virtual editing in Insert mode.
all Allow virtual editing in all modes.
@@ -9037,7 +9064,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'wildmode' 'wim' string (Vim default: "full")
global
Completion mode that is used for the character specified with
'wildchar'. It is a comma separated list of up to four parts. Each
'wildchar'. It is a comma-separated list of up to four parts. Each
part specifies what to do for each consecutive use of 'wildchar'. The
first part specifies the behavior for the first use of 'wildchar',
The second part for the second use, etc.
@@ -9087,7 +9114,7 @@ A jump table for the options with a short description can be found at |Q_op|.
feature}
A list of words that change how |cmdline-completion| is done.
The following values are supported:
fuzzy Use fuzzy matching to find completion matches. When
fuzzy Use |fuzzy-matching| to find completion matches. When
this value is specified, wildcard expansion will not
be used for completion. The matches will be sorted by
the "best match" rather than alphabetically sorted.

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 8.2. Last change: 2022 Feb 04
*pattern.txt* For Vim version 8.2. Last change: 2022 Mar 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -19,7 +19,7 @@ explanations are in chapter 27 |usr_27.txt|.
8. Composing characters |patterns-composing|
9. Compare with Perl patterns |perl-patterns|
10. Highlighting matches |match-highlight|
11. Fuzzy matching |fuzzy-match|
11. Fuzzy matching |fuzzy-matching|
==============================================================================
1. Search commands *search-commands*
@@ -164,9 +164,12 @@ index, on which the cursor is. This can look like this: >
Note: the count does not take offset into account.
When no match is found you get the error: *E486* Pattern not found
Note that for the |:global| command this behaves like a normal message, for Vi
compatibility. For the |:s| command the "e" flag can be used to avoid the
error message |:s_flags|.
Note that for the `:global` command, when used in legacy script, you get a
normal message "Pattern not found", for Vi compatibility.
In |Vim9| script you get E486 for "pattern not found" or *E538* when the pattern
matches in every line with `:vglobal`.
For the |:s| command the "e" flag can be used to avoid the error message
|:s_flags|.
*search-offset* *{offset}*
These commands search for the specified pattern. With "/" and "?" an
@@ -1457,7 +1460,7 @@ Finally, these constructs are unique to Perl:
":2match" for another plugin.
==============================================================================
11. Fuzzy matching *fuzzy-match*
11. Fuzzy matching *fuzzy-matching*
Fuzzy matching refers to matching strings using a non-exact search string.
Fuzzy matching will match a string, if all the characters in the search string

View File

@@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 8.2. Last change: 2021 Aug 16
*pi_netrw.txt* For Vim version 8.2. Last change: 2022 Apr 06
------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell
@@ -2815,7 +2815,7 @@ your browsing preferences. (see also: |netrw-settings|)
= 2: wide listing (multiple files in columns)
= 3: tree style listing
*g:netrw_list_hide* comma separated pattern list for hiding files
*g:netrw_list_hide* comma-separated pattern list for hiding files
Patterns are regular expressions (see |regexp|)
There's some special support for git-ignore
files: you may add the output from the helper

View File

@@ -1,4 +1,4 @@
*popup.txt* For Vim version 8.2. Last change: 2022 Jan 08
*popup.txt* For Vim version 8.2. Last change: 2022 Apr 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -271,6 +271,11 @@ popup_create({what}, {options}) *popup_create()*
'buftype' set to "popup". That buffer will be wiped out once
the popup closes.
if {what} is a buffer number and loading the buffer runs into
an existing swap file, it is silently opened read-only, as if
a |SwapExists| autocommand had set |v:swapchoice| to 'o'.
This is because we assume the buffer is only used for viewing.
{options} is a dictionary with many possible entries.
See |popup_create-arguments| for details.

View File

@@ -655,22 +655,25 @@ instead. If the buffer in the used window has changed, and the error is in
another file, jumping to the error will fail. You will first have to make
sure the window contains a buffer which can be abandoned.
The following steps are used to find a window to open the file selected from
the quickfix window:
1. If 'switchbuf' contains "usetab", then find a window in any tabpage
(starting with the first tabpage) that has the selected file and jump to
it.
2. Otherwise find a window displaying the selected file in the current tab
page (starting with the window before the quickfix window) and use it.
3. Otherwise find a window displaying a normal buffer ('buftype' is empty)
starting with the window before the quickfix window. If a window is found,
open the file in that window.
4. If a usable window is not found and 'switchbuf' contains "uselast", then
open the file in the last used window.
5. Otherwise open the file in the window before the quickfix window. If there
is no previous window, then open the file in the next window.
6. If a usable window is not found in the above steps, then create a new
horizontally split window above the quickfix window and open the file.
When you select a file from the quickfix window, the following steps are used
to find a window to edit the file:
1. If a window displaying the selected file is present in the current tabpage
(starting with the window before the quickfix window), then that window is
used.
2. If the above step fails and if 'switchbuf' contains "usetab" and a window
displaying the selected file is present in any one of the tabpages
(starting with the first tabpage) then that window is used.
3. If the above step fails then a window in the current tabpage displaying a
buffer with 'buftype' not set (starting with the window before the quickfix
window) is used.
4. If the above step fails and if 'switchbuf' contains "uselast", then the
previously accessed window is used.
5. If the above step fails then the window before the quickfix window is used.
If there is no previous window, then the window after the quickfix window
is used.
6. If the above step fails, then a new horizontally split window above the
quickfix window is used.
*CTRL-W_<Enter>* *CTRL-W_<CR>*
You can use CTRL-W <Enter> to open a new window and jump to the error there.
@@ -710,13 +713,15 @@ this window, the displayed location list is used.
When you select a file from the location list window, the following steps are
used to find a window to edit the file:
1. If a window with the location list displayed in the location list window is
present, then the file is opened in that window.
2. If the above step fails and if the file is already opened in another
window, then that window is used.
3. If the above step fails then an existing window showing a buffer with
'buftype' not set is used.
4. If the above step fails, then the file is edited in a new window.
1. If a non-quickfix window associated with the location list is present in
the current tabpage, then that window is used.
2. If the above step fails and if the file is already opened in another window
in the current tabpage, then that window is used.
3. If the above step fails and 'switchbuf' contains "usetab" and if the file
is opened in a window in any one of the tabpages, then that window is used.
4. If the above step fails then a window in the current tabpage showing a
buffer with 'buftype' not set is used.
5. If the above step fails, then the file is edited in a new window.
In all of the above cases, if the location list for the selected window is not
yet set, then it is set to the location list displayed in the location list
@@ -1055,7 +1060,7 @@ commands can be combined to create a NewGrep command: >
matching is used to find matching lines. In this
case, {pattern} is treated as a literal string
instead of a regular expression. See
|fuzzy-match| for more information about fuzzy
|fuzzy-matching| for more information about fuzzy
matching strings.
|QuickFixCmdPre| and |QuickFixCmdPost| are triggered.

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.2. Last change: 2021 Dec 21
*quickref.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -643,6 +643,7 @@ Short explanation of each option: *option-list*
'cinkeys' 'cink' keys that trigger indent when 'cindent' is set
'cinoptions' 'cino' how to do indenting when 'cindent' is set
'cinwords' 'cinw' words where 'si' and 'cin' add an indent
'cinscopedecls' 'cinsd' words that are recognized by 'cino-g'
'clipboard' 'cb' use the clipboard as the unnamed register
'cmdheight' 'ch' number of lines to use for the command-line
'cmdwinheight' 'cwh' height of the command-line window
@@ -814,6 +815,7 @@ Short explanation of each option: *option-list*
'mousefocus' 'mousef' keyboard focus follows the mouse
'mousehide' 'mh' hide mouse pointer while typing
'mousemodel' 'mousem' changes meaning of mouse buttons
'mousemoveevent' 'mousemev' report mouse moves with <MouseMove>
'mouseshape' 'mouses' shape of the mouse pointer in different modes
'mousetime' 'mouset' max time between mouse double-click
'mzquantum' 'mzq' the interval between polls for MzScheme threads

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 8.2. Last change: 2022 Jan 21
*repeat.txt* For Vim version 8.2. Last change: 2022 Apr 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -197,6 +197,41 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
:so[urce] {file} Read Ex commands from {file}. These are commands that
start with a ":".
Triggers the |SourcePre| autocommand.
:[range]so[urce] [++clear]
Read Ex commands from the [range] of lines in the
current buffer.
When sourcing commands from the current buffer, the
same script-ID |<SID>| is used even if the buffer is
sourced multiple times. If a buffer is sourced more
than once, then the functions in the buffer are
defined again.
To source a range of lines that doesn't start with the
|:vim9script| command in Vim9 script context, the
|:vim9cmd| modifier can be used. If you use a Visual
selection and type ":", the range in the form "'<,'>"
can come before it: >
:'<,'>vim9cmd source
< Otherwise the range goes after the modifier and must
have a colon prefixed, like all Vim9 ranges: >
:vim9cmd :5,9source
< When a range of lines in a buffer is sourced in the
Vim9 script context, the previously defined
script-local variables and functions are not cleared.
This works like the range started with the
":vim9script noclear" command. The "++clear" argument
can be used to clear the script-local variables and
functions before sourcing the script. This works like
the range started with the `:vim9script` command
without the "noclear" argument. See |vim9-reload| for
more information.
Examples: >
:4,5source
:10,18source ++clear
*:source!*
:so[urce]! {file} Read Vim commands from {file}. These are commands
that are executed from Normal mode, like you type
@@ -419,10 +454,10 @@ An alternative is to put the commands in a file, and execute them with the
':source!' command. Useful for long command sequences. Can be combined with
the ':map' command to put complicated commands under a function key.
The ':source' command reads Ex commands from a file line by line. You will
have to type any needed keyboard input. The ':source!' command reads from a
script file character by character, interpreting each character as if you
typed it.
The ':source' command reads Ex commands from a file or a buffer line by line.
You will have to type any needed keyboard input. The ':source!' command reads
from a script file character by character, interpreting each character as if
you typed it.
Example: When you give the ":!ls" command you get the |hit-enter| prompt. If
you ':source' a file with the line "!ls" in it, you will have to type the
@@ -1008,18 +1043,24 @@ For example, to profile the one_script.vim script file: >
:prof[ile] start {fname} *:prof* *:profile* *E750*
Start profiling, write the output in {fname} upon exit.
Start profiling, write the output in {fname} upon exit or when
a `:profile stop` or `:profile dump` command is invoked.
"~/" and environment variables in {fname} will be expanded.
If {fname} already exists it will be silently overwritten.
The variable |v:profiling| is set to one.
:prof[ile] stop
Write the collected profiling information to the logfile and
stop profiling. You can use the `:profile start` command to
clear the profiling statistics and start profiling again.
:prof[ile] pause
Don't profile until the following ":profile continue". Can be
Don't profile until the following `:profile continue`. Can be
used when doing something that should not be counted (e.g., an
external command). Does not nest.
:prof[ile] continue
Continue profiling after ":profile pause".
Continue profiling after `:profile pause`.
:prof[ile] func {pattern}
Profile function that matches the pattern {pattern}.
@@ -1036,11 +1077,17 @@ For example, to profile the one_script.vim script file: >
after this command. A :profile command in the script itself
won't work.
:prof[ile] dump
Write the current state of profiling to the logfile
immediately. After running this command, Vim continues to
collect the profiling statistics.
:profd[el] ... *:profd* *:profdel*
Stop profiling for the arguments specified. See |:breakdel|
for the arguments.
for the arguments. Examples: >
profdel func MyFunc
profdel file MyScript.vim
profdel here
You must always start with a ":profile start fname" command. The resulting
file is written when Vim exits. For example, to profile one specific

View File

@@ -1,4 +1,4 @@
*rileft.txt* For Vim version 8.2. Last change: 2021 Jun 13
*rileft.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Avner Lottem
@@ -110,9 +110,6 @@ o Does not support reverse insert and rightleft modes on the command-line.
o Somewhat slower in right-to-left mode, because right-to-left motion is
emulated inside Vim, not by the controlling terminal.
o When the Athena GUI is used, the bottom scrollbar works in the wrong
direction. This is difficult to fix.
o When both 'rightleft' and 'revins' are on: 'textwidth' does not work.
Lines do not wrap at all; you just get a single, long line.

View File

@@ -1,4 +1,4 @@
*scroll.txt* For Vim version 8.2. Last change: 2019 May 13
*scroll.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -242,7 +242,7 @@ dragging the scrollbar of the current window. How many lines are scrolled
depends on your mouse driver. If the scroll action causes input focus
problems, see |intellimouse-wheel-problems|.
For the X11 GUIs (Motif, Athena and GTK) scrolling the wheel generates key
For the X11 GUIs (Motif and GTK) scrolling the wheel generates key
presses <ScrollWheelUp>, <ScrollWheelDown>, <ScrollWheelLeft> and
<ScrollWheelRight>. For example, if you push the scroll wheel upwards a
<ScrollWheelUp> key press is generated causing the window to scroll upwards

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.2. Last change: 2022 Feb 06
*syntax.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -4452,7 +4452,7 @@ Leading context *:syn-lc* *:syn-leading* *:syn-context*
Note: This is an obsolete feature, only included for backwards compatibility
with previous Vim versions. It's now recommended to use the |/\@<=| construct
in the pattern.
in the pattern. You can also often use |/\zs|.
The "lc" offset specifies leading context -- a part of the pattern that must
be present, but is not considered part of the match. An offset of "lc=n" will
@@ -4898,7 +4898,7 @@ in their own color.
:hi[ghlight] {group-name}
List one highlight group.
*highlight-clear*
*highlight-clear* *:hi-clear*
:hi[ghlight] clear Reset all highlighting to the defaults. Removes all
highlighting for groups added by the user!
Uses the current value of 'background' to decide which
@@ -4961,7 +4961,7 @@ the same syntax file on all terminals, and use the optimal highlighting.
*inverse* *italic* *standout*
*nocombine* *strikethrough*
term={attr-list} *attr-list* *highlight-term* *E418*
attr-list is a comma separated list (without spaces) of the
attr-list is a comma-separated list (without spaces) of the
following items (in any order):
bold
underline
@@ -5145,7 +5145,7 @@ font={font-name} *highlight-font*
When setting the font for the "Normal" group, this becomes the default
font (until the 'guifont' option is changed; the last one set is
used).
The following only works with Motif and Athena, not with other GUIs:
The following only works with Motif, not with other GUIs:
When setting the font for the "Menu" group, the menus will be changed.
When setting the font for the "Tooltip" group, the tooltips will be
changed.
@@ -5318,6 +5318,8 @@ QuickFixLine Current |quickfix| item in the quickfix window.
*hl-Search*
Search Last search pattern highlighting (see 'hlsearch').
Also used for similar items that need to stand out.
*hl-CurSearch*
CurSearch Current match for the last search pattern (see 'hlsearch').
*hl-SpecialKey*
SpecialKey Meta and special keys listed with ":map", also for text used
to show unprintable characters in the text, 'listchars'.
@@ -5382,7 +5384,7 @@ Menu Current font, background and foreground colors of the menus.
Also used for the toolbar.
Applicable highlight arguments: font, guibg, guifg.
NOTE: For Motif and Athena the font argument actually
NOTE: For Motif the font argument actually
specifies a fontset at all times, no matter if 'guifontset' is
empty, and as such it is tied to the current |:language| when
set.
@@ -5396,7 +5398,7 @@ Scrollbar Current background and foreground of the main window's
Tooltip Current font, background and foreground of the tooltips.
Applicable highlight arguments: font, guibg, guifg.
NOTE: For Motif and Athena the font argument actually
NOTE: For Motif the font argument actually
specifies a fontset at all times, no matter if 'guifontset' is
empty, and as such it is tied to the current |:language| when
set.
@@ -5553,11 +5555,12 @@ WARNING: The longer the tags file, the slower this will be, and the more
memory Vim will consume.
Only highlighting typedefs, unions and structs can be done too. For this you
must use Exuberant ctags (found at http://ctags.sf.net).
must use Universal Ctags (found at https://ctags.io) or Exuberant ctags (found
at http://ctags.sf.net).
Put these lines in your Makefile:
# Make a highlight file for types. Requires Exuberant ctags and awk
# Make a highlight file for types. Requires Universal/Exuberant ctags and awk
types: types.vim
types.vim: *.[ch]
ctags --c-kinds=gstu -o- *.[ch] |\

View File

@@ -134,6 +134,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'cinkeys' options.txt /*'cinkeys'*
'cino' options.txt /*'cino'*
'cinoptions' options.txt /*'cinoptions'*
'cinscopedecls' options.txt /*'cinscopedecls'*
'cinsd' options.txt /*'cinsd'*
'cinw' options.txt /*'cinw'*
'cinwords' options.txt /*'cinwords'*
'clipboard' options.txt /*'clipboard'*
@@ -487,7 +489,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'mousefocus' options.txt /*'mousefocus'*
'mousehide' options.txt /*'mousehide'*
'mousem' options.txt /*'mousem'*
'mousemev' options.txt /*'mousemev'*
'mousemodel' options.txt /*'mousemodel'*
'mousemoveevent' options.txt /*'mousemoveevent'*
'mouses' options.txt /*'mouses'*
'mouseshape' options.txt /*'mouseshape'*
'mouset' options.txt /*'mouset'*
@@ -2113,6 +2117,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:abclear map.txt /*:abclear*
:abo windows.txt /*:abo*
:aboveleft windows.txt /*:aboveleft*
:abstract vim9.txt /*:abstract*
:addd quickfix.txt /*:addd*
:al windows.txt /*:al*
:all windows.txt /*:all*
@@ -2272,6 +2277,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:chistory quickfix.txt /*:chistory*
:cl quickfix.txt /*:cl*
:cla quickfix.txt /*:cla*
:class vim9.txt /*:class*
:clast quickfix.txt /*:clast*
:cle motion.txt /*:cle*
:clearjumps motion.txt /*:clearjumps*
@@ -2444,12 +2450,15 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:emenu gui.txt /*:emenu*
:en eval.txt /*:en*
:end eval.txt /*:end*
:endclass vim9.txt /*:endclass*
:enddef vim9.txt /*:enddef*
:endenum vim9.txt /*:endenum*
:endf eval.txt /*:endf*
:endfo eval.txt /*:endfo*
:endfor eval.txt /*:endfor*
:endfunction eval.txt /*:endfunction*
:endif eval.txt /*:endif*
:endinterface vim9.txt /*:endinterface*
:endt eval.txt /*:endt*
:endtry eval.txt /*:endtry*
:endw eval.txt /*:endw*
@@ -2458,6 +2467,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:ene! editing.txt /*:ene!*
:enew editing.txt /*:enew*
:enew! editing.txt /*:enew!*
:enum vim9.txt /*:enum*
:eval eval.txt /*:eval*
:ex editing.txt /*:ex*
:exe eval.txt /*:exe*
@@ -2540,6 +2550,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:helpt helphelp.txt /*:helpt*
:helptags helphelp.txt /*:helptags*
:hi syntax.txt /*:hi*
:hi-clear syntax.txt /*:hi-clear*
:hi-default syntax.txt /*:hi-default*
:hi-link syntax.txt /*:hi-link*
:hi-normal syntax.txt /*:hi-normal*
@@ -2584,6 +2595,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:inoreme gui.txt /*:inoreme*
:inoremenu gui.txt /*:inoremenu*
:insert insert.txt /*:insert*
:interface vim9.txt /*:interface*
:intro starting.txt /*:intro*
:is tagsrch.txt /*:is*
:isearch tagsrch.txt /*:isearch*
@@ -3216,6 +3228,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:startgreplace insert.txt /*:startgreplace*
:startinsert insert.txt /*:startinsert*
:startreplace insert.txt /*:startreplace*
:static vim9.txt /*:static*
:stj tagsrch.txt /*:stj*
:stjump tagsrch.txt /*:stjump*
:stop starting.txt /*:stop*
@@ -3393,6 +3406,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:tunma map.txt /*:tunma*
:tunmap map.txt /*:tunmap*
:tunmenu gui.txt /*:tunmenu*
:type vim9.txt /*:type*
:u undo.txt /*:u*
:un undo.txt /*:un*
:una map.txt /*:una*
@@ -3607,6 +3621,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
<MiddleRelease> term.txt /*<MiddleRelease>*
<Mouse> term.txt /*<Mouse>*
<MouseDown> scroll.txt /*<MouseDown>*
<MouseMove> map.txt /*<MouseMove>*
<MouseUp> scroll.txt /*<MouseUp>*
<NL> motion.txt /*<NL>*
<Nop> map.txt /*<Nop>*
@@ -3762,7 +3777,6 @@ Aleph options.txt /*Aleph*
Amiga os_amiga.txt /*Amiga*
Arabic arabic.txt /*Arabic*
Atari os_mint.txt /*Atari*
Athena gui_x11.txt /*Athena*
B motion.txt /*B*
BeBox os_beos.txt /*BeBox*
BeOS os_beos.txt /*BeOS*
@@ -4022,6 +4036,7 @@ E1061 vim9.txt /*E1061*
E1062 eval.txt /*E1062*
E1063 eval.txt /*E1063*
E1064 autocmd.txt /*E1064*
E1065 vim9.txt /*E1065*
E1066 vim9.txt /*E1066*
E1067 eval.txt /*E1067*
E1068 vim9.txt /*E1068*
@@ -4034,6 +4049,8 @@ E1074 vim9.txt /*E1074*
E1075 vim9.txt /*E1075*
E1076 eval.txt /*E1076*
E1077 vim9.txt /*E1077*
E1078 autocmd.txt /*E1078*
E1079 vim9.txt /*E1079*
E108 eval.txt /*E108*
E1080 vim9.txt /*E1080*
E1081 eval.txt /*E1081*
@@ -4241,6 +4258,8 @@ E1264 vim9.txt /*E1264*
E1265 eval.txt /*E1265*
E1266 if_pyth.txt /*E1266*
E127 eval.txt /*E127*
E1270 change.txt /*E1270*
E1271 vim9.txt /*E1271*
E128 eval.txt /*E128*
E129 eval.txt /*E129*
E13 message.txt /*E13*
@@ -4682,7 +4701,7 @@ E534 options.txt /*E534*
E535 options.txt /*E535*
E536 options.txt /*E536*
E537 options.txt /*E537*
E538 builtin.txt /*E538*
E538 pattern.txt /*E538*
E539 options.txt /*E539*
E54 pattern.txt /*E54*
E540 options.txt /*E540*
@@ -5005,6 +5024,7 @@ E835 options.txt /*E835*
E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837*
E838 netbeans.txt /*E838*
E839 vim9.txt /*E839*
E84 windows.txt /*E84*
E840 insert.txt /*E840*
E841 map.txt /*E841*
@@ -5498,6 +5518,7 @@ WinClosed autocmd.txt /*WinClosed*
WinEnter autocmd.txt /*WinEnter*
WinLeave autocmd.txt /*WinLeave*
WinNew autocmd.txt /*WinNew*
WinScrolled autocmd.txt /*WinScrolled*
X change.txt /*X*
X11 options.txt /*X11*
X11-icon gui_x11.txt /*X11-icon*
@@ -5737,7 +5758,6 @@ assert_true() testing.txt /*assert_true()*
at motion.txt /*at*
atan() builtin.txt /*atan()*
atan2() builtin.txt /*atan2()*
athena-intellimouse gui.txt /*athena-intellimouse*
attr-list syntax.txt /*attr-list*
author intro.txt /*author*
auto-format change.txt /*auto-format*
@@ -6050,6 +6070,7 @@ changenr() builtin.txt /*changenr()*
changetick eval.txt /*changetick*
changing change.txt /*changing*
channel channel.txt /*channel*
channel-address channel.txt /*channel-address*
channel-callback channel.txt /*channel-callback*
channel-close channel.txt /*channel-close*
channel-close-in channel.txt /*channel-close-in*
@@ -6164,6 +6185,7 @@ collate-variable eval.txt /*collate-variable*
color-xterm syntax.txt /*color-xterm*
coloring syntax.txt /*coloring*
colortest.vim syntax.txt /*colortest.vim*
command-attributes map.txt /*command-attributes*
command-block vim9.txt /*command-block*
command-line-functions usr_41.txt /*command-line-functions*
command-line-window cmdline.txt /*command-line-window*
@@ -7012,7 +7034,7 @@ function-range-example eval.txt /*function-range-example*
function-search-undo eval.txt /*function-search-undo*
function_key intro.txt /*function_key*
functions eval.txt /*functions*
fuzzy-match pattern.txt /*fuzzy-match*
fuzzy-matching pattern.txt /*fuzzy-matching*
fvwm.vim syntax.txt /*fvwm.vim*
fvwm2rc syntax.txt /*fvwm2rc*
fvwmrc syntax.txt /*fvwmrc*
@@ -7984,6 +8006,7 @@ lace.vim syntax.txt /*lace.vim*
lambda eval.txt /*lambda*
lang-variable eval.txt /*lang-variable*
language-mapping map.txt /*language-mapping*
language-server-protocol channel.txt /*language-server-protocol*
last-pattern pattern.txt /*last-pattern*
last-position-jump usr_05.txt /*last-position-jump*
last_buffer_nr() builtin.txt /*last_buffer_nr()*
@@ -8240,6 +8263,7 @@ moo.vim syntax.txt /*moo.vim*
more-compatible version5.txt /*more-compatible*
more-prompt message.txt /*more-prompt*
more-variables eval.txt /*more-variables*
motif-intellimouse gui.txt /*motif-intellimouse*
motion-count-multiplied motion.txt /*motion-count-multiplied*
motion.txt motion.txt /*motion.txt*
mouse-mode-table term.txt /*mouse-mode-table*

View File

@@ -561,7 +561,8 @@ also works. The <CR> and <NL> characters can never appear inside a line.
The second format is new. It includes additional information in optional
fields at the end of each line. It is backwards compatible with Vi. It is
only supported by new versions of ctags (such as Exuberant ctags).
only supported by new versions of ctags (such as Universal ctags or Exuberant
ctags).
{tagname} The identifier. Normally the name of a function, but it can
be any identifier. It cannot contain a <Tab>.

View File

@@ -1,4 +1,4 @@
*term.txt* For Vim version 8.2. Last change: 2021 Dec 21
*term.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -725,12 +725,12 @@ size is wrong you can use the 'lines' and 'columns' options to set the
correct values.
One command can be used to set the screen size:
*:mod* *:mode* *E359*
:mod[e] [mode]
Without argument this only detects the screen size and redraws the screen.
[mode] was used on MS-DOS, but it doesn't work anymore.
[mode] was used on MS-DOS, but it doesn't work anymore. In |Vim9| this
command is not supported.
==============================================================================
4. Slow and fast terminals *slow-fast-terminal*
@@ -833,7 +833,7 @@ select and copy the text to the system, then press Esc.
Another way is to temporarily use ":sh" to run a shell, copy the text, then
exit the shell. 'mouse' can remain set to "a" then.
*xterm-clipboard*
In the Athena and Motif GUI versions, when running in a terminal and there is
In the Motif GUI version, when running in a terminal and there is
access to the X-server (DISPLAY is set), the copy and paste will behave like
in the GUI. If not, the middle mouse button will insert the unnamed register.
In that case, here is how you copy and paste a piece of text:

View File

@@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.2. Last change: 2022 Jan 21
*terminal.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -674,7 +674,7 @@ term_getsize({buf}) *term_getsize()*
term_getstatus({buf}) *term_getstatus()*
Get the status of terminal {buf}. This returns a String with
a comma separated list of these items:
a comma-separated list of these items:
running job is running
finished job has finished
normal in Terminal-Normal mode

View File

@@ -1,4 +1,4 @@
*testing.txt* For Vim version 8.2. Last change: 2022 Feb 10
*testing.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -131,8 +131,8 @@ test_gui_event({event}, {args})
forward: set to 1 for forward search.
"mouse":
Inject a mouse button click event. The supported items in
{args} are:
Inject either a mouse button click, or a mouse move, event.
The supported items in {args} are:
button: mouse button. The supported values are:
0 right mouse button
1 middle mouse button
@@ -151,6 +151,12 @@ test_gui_event({event}, {args})
4 shift is pressed
8 alt is pressed
16 ctrl is pressed
move: Optional; if used and TRUE then a mouse move
event can be generated.
Only {args} row: and col: are used and
required; they are interpreted as pixels.
Only results in an event when 'mousemoveevent'
is set or a popup uses mouse move events.
"scrollbar":
Set or drag the left, right or horizontal scrollbar. Only

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.2. Last change: 2022 Feb 16
*todo.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -39,16 +39,18 @@ browser use: https://github.com/vim/vim/issues/1234
-------------------- Known bugs and current work -----------------------
Once Vim9 is stable:
- Use Vim9 for runtime files.
- Use Vim9 for more runtime files.
- Check code coverage, add more tests if needed.
vim9execute.c
vim9execute.c line 3500
vim9expr.c
vim9instr.c
vim9script.c
vim9type.c
- Adjust intro message to say "help version9".
Further Vim9 improvements, possibly after launch:
- Check performance with callgrind and kcachegrind.
getline()/substitute()/setline() in #5632
- Better implementation for partial and tests for that.
- when using "const" mark the variable type as const with TTFLAG_CONST, so
that an error is given at compile time when trying to change it. E.g. for a
@@ -104,7 +106,6 @@ Popup windows:
- Should popup_getoptions() also return the mask? #7774
- Add a way to use popup_menu() synchronously: instead of invoking the
callback, return the choice. (Ben Jackson, #6534)
- Use popup (or popup menu) for command line completion
- When using a popup for the info of a completion menu, and there is not
enough space, let the popup overlap with the menu. (#4544)
- Implement flip option.
@@ -195,7 +196,7 @@ Terminal emulator window:
- When the job only outputs lines, we could handle resizing the terminal
better: store lines separated by line breaks, instead of screen lines,
then when the window is resized redraw those lines.
- Redrawing is slow with Athena and Motif. (Ramel Eshed)
- Redrawing is slow with Motif. (Ramel Eshed)
- For the GUI fill termios with default values, perhaps like pangoterm:
http://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134
- When 'encoding' is not utf-8, or the job is using another encoding, setup
@@ -209,6 +210,13 @@ Use CTRL-R to specify the register to use. (#9531)
Some prompts are not translated: #9495
Improvement in terminal configuration mess: Request the terminfo entry from
the terminal itself. The $TERM value then is only relevant for whether this
feature is supported or not. Replaces the xterm mechanism to request each
entry separately. #6609
Multiplexers (screen, tmux) can request it to the underlaying terminal, and
pass it on with modifications.
Test_communicate_ipv6(): is flaky on many systems
Fails in line 64 of Ch_communicate, no exception is thrown.
@@ -219,6 +227,8 @@ Add expanding <script> which works like <sfile> everywhere. #9189
Rename getdigraphlist -> digraph_getlist() etc.
Can "CSI nr X" be used instead of outputting spaces? Is it faster? #8002
Valgrind reports memory leaks in test_options.
Valgrind reports overlapping memcpy in
test_conceal.3
@@ -286,6 +296,9 @@ Probably because it's using MAXCOL. #8238
Make "g>" and "g<" in Visual mode move the text right or left.
Also for a block selection. #8558
When using dictionary insert completion with 'ignorecase', the leading capital
in a word should be preserved.
Add optional argument to virtcol() that specifies "start", "cursor" or "end"
to tell which value from getvvcol() should be used. (#7964)
Value returned by virtcol() changes depending on how lines wrap. This is
@@ -294,8 +307,7 @@ inconsistent with the documentation.
Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
Scroll doesn't work correctly, why?
glob() and globfile() do not always honor 'wildignorecase'. #8350
globpath() does not use 'wildignorecase' at all?
globpath() does not use 'wildignorecase' at all? (related to #8350)
Add 'termguiattr' option, use "gui=" attributes in the terminal? Would work
with 'termguicolors'. #1740
@@ -406,13 +418,6 @@ register, then "" doesn't contain anything. Make it still follow "+.
File marks merging has duplicates since 7.4.1925. (Ingo Karkat, #5733)
"make test_gui" crashed in submenu_change(). Fix and remove workaround in
add_pixmap_args().
Athena is OK.
Motif: Build on Ubuntu can't enter any text in dialog text fields.
Running test_gui and test_gui_init with Motif sometimes kills the window
manager. Problem with Motif?
When editing a file with ":edit" the output of :swapname is relative, while
editing it with "vim file" it is absolute. (#355)
Which one should it be?
@@ -467,11 +472,6 @@ Test loose_clipboard() by selecting text before suspending.
Undo puts cursor in wrong line after "cG<Esc>" undo.
Implement completion for "breakadd". Should expand the second argument, e.g.
"func", and then function names after ":breakadd func". Including
script-local functions.
Also for ":profile".
:unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019
Dec 19)
@@ -2202,10 +2202,6 @@ Jan 7)
Problem with editing file in binary mode. (Ingo Krabbe, 2009 Oct 8)
With 'wildmode' set to "longest:full,full" and pressing Tab once the first
entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe, 2011
Feb 12)
Display error when 'tabline' that includes a file name with double-width
characters. (2010 Aug 14, bootleq)
@@ -2394,11 +2390,6 @@ probably causes this.
'scrollbind' is not respected when deleting lines or undo. (Milan Vancura,
2009 Jan 16)
Document that default font in Athena can be set with resources:
XtDefaultFont: "9x15"
XtDefaultFontSet: "9x15"
(Richard Sherman, 2009 Apr 12)
Having "Syntax" in 'eventignore' for :bufdo may cause problems, e.g. for
":bufdo e" when buffers are open in windows. ex_listdo(eap) could set the
option only for when jumping to another buffer, not when the command argument
@@ -2408,10 +2399,6 @@ is executed.
first line. (Ingo Karkat, 2008 Jul 1) Ian Kelling is working on this.
Similar problem with ":e". (Marc Montu, 2014 Apr 22)
Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1)
Works OK with Vim in an xterm.
Cursor line moves in other window when using CTRL-W J that doesn't change
anything. (Dasn, 2009 Apr 7)
@@ -2444,10 +2431,6 @@ backslash? (Robert Vibrant, 2008 Jun 5)
When 'rightleft' is set, cursorcolumn isn't highlighted after the end of a
line. It's also wrong in folds. (Dominique Pelle, 2010 Aug 21)
After using <Tab> for command line completion after ":ta blah" and getting E33
(no tags file), further editing the command to e.g., ":echo 'blah'", the
command is not executed. Fix by Ian Kelling?
":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
Chase) Fix by Ian Kelling, 2008 Jul 14.
@@ -2502,10 +2485,6 @@ Works OK when 'cmdheight' is 2.
8 Use a mechanism similar to omni completion to figure out the kind of tab
for CTRL-] and jump to the appropriate matching tag (if there are
several).
Alternative: be able to define a function that takes the tag name and uses
taglist() to find the right location. With indication of using CTRL-] so
that the context can be taken into account. (Robert Webb)
Patch by Christian Brabandt, 2013 May 31.
The utf class table is missing some entries:
0x2212, minus sign
@@ -2623,16 +2602,6 @@ This should avoid flicker. Other solution by A.Politz, 2007 Aug 22.
When a register contains illegal bytes, writing viminfo in utf-8 and reading
it back doesn't result in utf-8. (Devin Bayer)
Command line completion: Scanning for tags doesn't check for typed key now and
then? Hangs for about 5 seconds. Appears to be caused by finding include
files with "foo/**" in 'path'. (Kalisiak, 2006 July 15)
Additional info: When using the |wildcards| ** globing, vim hangs
indefinitely on lots of directories. The |file-searching| globing, like in
":set path=/**" does not hang as often as with globing with |wildcards|, like
in ":1find /**/file". This is for files that unix "find" can find very
quickly. Merging the 2 kinds of globing might make this an easier fix. (Ian
Kelling, 2008 July 4)
When the file name has parenthesis, e.g., "foo (bar).txt", ":!ls '%'" has the
parenthesis escaped but not the space. That's inconsistent. Either escape
neither or both. No escaping might be best, because it doesn't depend on
@@ -2711,8 +2680,6 @@ Cursor displayed in the wrong position when using 'numberwidth'. (James Vega,
When $VAR contains a backslash expand('$VAR') removes it. (Teemu Likonen, 2008
Jun 18)
If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
In debug mode, using CTRL-R = to evaluate a function causes stepping through
the function. (Hari Krishna Dara, 2006 Jun 28)
@@ -2821,13 +2788,6 @@ reload it then?
For Aap: include a config.arg.example file with hints how to use config.arg.
Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
only one buffer line displayed, causes display errors.
Completing with 'wildmenu' and using <Up> and <Down> to move through directory
tree stops unexpectedly when using ":cd " and entering a directory that
doesn't contain other directories.
Default for 'background' is wrong when using xterm with 256 colors.
Table with estimates from Matteo Cavalleri, 2014 Jan 10.
@@ -3271,7 +3231,7 @@ Win32 GUI known bugs:
the font name).
Athena and Motif:
Motif:
6 New Motif toolbar button from Marcin Dalecki:
- When the mouse pointer is over an Agide button the red becomes black.
Something with the way colors are specified in the .xpm file.
@@ -3283,7 +3243,7 @@ Athena and Motif:
wrong.
9 XIM is disabled by default for SGI/IRIX. Fix XIM so that 'imdisable' can
be off by default.
9 XIM doesn't work properly for Athena/Motif. (Yasuhiro Matsumoto) For now,
9 XIM doesn't work properly for Motif. (Yasuhiro Matsumoto) For now,
keep XIM active at all times when the input method has the preediting
flag.
8 X11: A menu that contains an umlaut is truncated at that character.
@@ -3301,27 +3261,6 @@ Athena and Motif:
current locale. Workaround: set 'langmenu'.
Athena GUI:
9 The first event for any button in the menu or toolbar appears to get lost.
The second click on a menu does work.
9 When dragging the scrollbar thumb very fast, focus is only obtained in
the scrollbar itself. And the thumb is no longer updated when moving
through files.
7 The file selector is not resizable. With a big font it is difficult to
read long file names. (Schroeder)
4 Re-write the widget attachments and code so that we will not have to go
through and calculate the absolute position of every widget every time the
window is refreshed/changes size. This will help the "flashing-widgets"
problem during a refresh.
5 When starting gvim with all the default colors and then typing
":hi Menu guibg=cyan", the menus change color but the background of the
pullright pixmap doesn't change colors.
If you type ":hi Menu guibg=cyan font=anyfont", then the pixmap changes
colors as it should.
Allocating a new pixmap and setting the resource doesn't change the
pullright pixmap's colors. Why? Possible Athena bug?
Motif GUI:
- gui_mch_browsedir() is missing, browsedir() doesn't work nicely.
7 Use XmStringCreateLocalized() instead of XmStringCreateSimple()?
@@ -3509,8 +3448,6 @@ Macintosh:
8 When doing Insert mode completion a mapping cannot recursively call
edit(), because the completion information is global. Put everything in
an allocated structure?
8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
7 mb_off2cells() doesn't work correctly on the tail byte of a double-byte
character. (Yasuhiro Matsumoto) It should return 1 when used on a tail
byte, like for utf-8. Store second byte of double-byte in ScreenLines2[]
@@ -3802,7 +3739,7 @@ Problems that will (probably) not be solved:
Most interesting new features to be added when all bugs have been fixed:
- Using ":exe edit fname" has escaping problems. Use ":edit ++(fname)".
Thus use "++=" to give arguments as expressions, comma separated as if
Thus use "++=" to give arguments as expressions, comma-separated as if
calling a function.
With options: ":edit ++(['!', '++enc=abc'], ['+/pat'], fname)".
Alternative: Make a function for Ex commands: cmd_edit().
@@ -4245,8 +4182,6 @@ Syntax highlighting:
7 CTRL-] checks the highlight group for finding out what the tag is.
7 Add an explanation how a list of words can be used to highlight misspelled
words.
8 Add more command line completion for :syntax.
8 Add more command line completion for :highlight.
7 Should find a better way to parse the :syntax and :highlight commands.
Use tables or lists that can be shared by parsing for execution and
completion?
@@ -4304,12 +4239,6 @@ Vim script language:
restore option values. Especially useful for new options. Problem: how
to avoid a performance penalty (esp. for string options)?
- range for ":exec", pass it on to the executed command. (Webb)
8 ":{range}source": source the lines from the current file.
You can already yank lines and use :@" to execute them.
Most of do_source() would not be used, need a new function.
It's easy when not doing breakpoints or profiling.
Requires copying the lines into a list and then creating a function to
execute lines from the list. Similar to getnextac().
7 ":include" command: just like ":source" but doesn't start a new scriptID?
Will be tricky for the list of script names.
8 Have a look at VSEL. Would it be useful to include? (Bigham)
@@ -5038,6 +4967,35 @@ Command line completion:
- Add 'wildlongest' option: Key to use to find longest common match for
command line completion (default CTRL-L), like 'wildchar'. (Cregut)
Also: when there are several matches, show them line a CTRL-D.
- With 'wildmode' set to "longest:full,full" and pressing Tab once the first
entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe,
2011 Feb 12)
- After using <Tab> for command line completion after ":ta blah" and getting
E33 (no tags file), further editing the command to e.g., ":echo 'blah'",
the command is not executed. Fix by Ian Kelling?
- Command line completion: Scanning for tags doesn't check for typed key now
and then? Hangs for about 5 seconds. Appears to be caused by finding
include files with "foo/**" in 'path'. (Kalisiak, 2006 July 15)
Additional info: When using the |wildcards| ** globing, vim hangs
indefinitely on lots of directories. The |file-searching| globing, like in
":set path=/**" does not hang as often as with globing with |wildcards|,
like in ":1find /**/file". This is for files that unix "find" can find
very quickly. Merging the 2 kinds of globing might make this an easier
fix. (Ian Kelling, 2008 July 4)
- Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
only one buffer line displayed, causes display errors.
- Completing with 'wildmenu' and using <Up> and <Down> to move through
directory tree stops unexpectedly when using ":cd " and entering a
directory that doesn't contain other directories.
8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
8 Add more command line completion for :syntax.
8 Add more command line completion for :highlight.
- Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1) Works
OK with Vim in an xterm.
- If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't
work.
Command line history:
@@ -5672,7 +5630,7 @@ Options:
7 ":with option=value | command": temporarily set an option value and
restore it after the command has executed.
8 Make "old" number options that really give a number of effects into string
options that are a comma separated list. The old number values should
options that are a comma-separated list. The old number values should
also be supported.
8 Add commands to save and restore an option, which also preserves the flag
that marks if the option was set. Useful to keep the effect of setting

View File

@@ -1,4 +1,4 @@
*uganda.txt* For Vim version 8.2. Last change: 2022 Feb 05
*uganda.txt* For Vim version 8.2. Last change: 2022 Mar 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -133,11 +133,12 @@ Kibaale Children's Centre *kcc* *Kibaale* *charity*
Kibaale Children's Centre (KCC) is located in Kibaale, a small town in the
south of Uganda, near Tanzania, in East Africa. The area is known as Rakai
District. The population is mostly farmers. Although people are poor, there
is enough food. But this district is suffering from AIDS more than any other
part of the world. Some say that it started there. Estimations are that 10
to 30% of the Ugandans are infected with HIV. Because parents die, there are
many orphans. In this district about 60,000 children have lost one or both
parents, out of a population of 350,000. And this is still continuing.
usually is enough food. But this district is suffering from AIDS more than
any other part of the world. Some say that it started there. Estimations are
that in the past 10 to 30% of the Ugandans are infected with HIV. Because
parents die, there are many orphans. In this district about 60,000 children
have lost one or both parents, out of a population of 350,000. Although AIDS
is now mostly under control, the problems are still continuing.
The children need a lot of help. The KCC is working hard to provide the needy
with food, medical care and education. Food and medical care to keep them

View File

@@ -1,4 +1,4 @@
*usr_29.txt* For Vim version 8.2. Last change: 2016 Feb 27
*usr_29.txt* For Vim version 8.2. Last change: 2022 Mar 13
VIM USER MANUAL - by Bram Moolenaar
@@ -33,10 +33,12 @@ following command: >
ctags *.c
"ctags" is a separate program. Most Unix systems already have it installed.
If you do not have it yet, you can find Exuberant ctags here:
If you do not have it yet, you can find Universal/Exuberant ctags at:
http://ctags.io ~
http://ctags.sf.net ~
Universal ctags is preferred, Exuberant ctags is no longer being developed.
Now when you are in Vim and you want to go to a function definition, you can
jump to it by using the following command: >
@@ -142,15 +144,15 @@ ONE TAGS FILE
When Vim has to search many places for tags files, you can hear the disk
rattling. It may get a bit slow. In that case it's better to spend this
time while generating one big tags file. You might do this overnight.
This requires the Exuberant ctags program, mentioned above. It offers an
argument to search a whole directory tree: >
This requires the Universal or Exuberant ctags program, mentioned above.
It offers an argument to search a whole directory tree: >
cd ~/proj
ctags -R .
The nice thing about this is that Exuberant ctags recognizes various file
types. Thus this doesn't work just for C and C++ programs, also for Eiffel
and even Vim scripts. See the ctags documentation to tune this.
The nice thing about this is that Universal/Exuberant ctags recognizes various
file types. Thus this doesn't work just for C and C++ programs, also for
Eiffel and even Vim scripts. See the ctags documentation to tune this.
Now you only need to tell Vim where your big tags file is: >
:set tags=~/proj/tags
@@ -232,7 +234,8 @@ A TAGS BROWSER
Since CTRL-] takes you to the definition of the identifier under the cursor,
you can use a list of identifier names as a table of contents. Here is an
example.
First create a list of identifiers (this requires Exuberant ctags): >
First create a list of identifiers (this requires Universal or Exuberant
ctags): >
ctags --c-types=f -f functions *.c

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 8.2. Last change: 2022 Feb 03
*various.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -114,6 +114,7 @@ g8 Print the hex values of the bytes used in the
:[range]P[rint] [count] [flags]
Just as ":print". Was apparently added to Vi for
people that keep the shift key pressed too long...
This command is not supported in |Vim9| script.
Note: A user command can overrule this command.
See |ex-flags| for [flags].
@@ -380,7 +381,7 @@ N *+folding* |folding|
*+fork* Unix only: |fork| shell commands
*+float* Floating point support
N *+gettext* message translations |multi-lang|
*+GUI_Athena* Unix only: Athena |GUI|
- *+GUI_Athena* Unix only: Athena |GUI|
*+GUI_neXtaw* Unix only: neXtaw |GUI|
*+GUI_GTK* Unix only: GTK+ |GUI|
*+GUI_Motif* Unix only: Motif |GUI|

View File

@@ -1,4 +1,4 @@
*version5.txt* For Vim version 8.2. Last change: 2021 Apr 05
*version5.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2494,7 +2494,7 @@ regexp character classes (for fast syntax highlight matching):
":set" now accepts "+=", |^=" and "-=": add or remove parts of a string
option, add or subtract a number from a number option. A comma is
automagically inserted or deleted for options that are a comma separated list.
automagically inserted or deleted for options that are a comma-separated list.
Filetype feature, for autocommands. Uses a file type instead of a pattern to
match a file. Currently only used for RISC OS. (Leonard)

View File

@@ -1,4 +1,4 @@
*version6.txt* For Vim version 8.2. Last change: 2021 Apr 05
*version6.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -12447,7 +12447,7 @@ Solution: Make sure ".out" files are deleted when they get in the way. Add
Files: src/Make_bc5.mak, src/testdir/Make_dos.mak
Patch 6.2.381
Problem: Setting 'fileencoding' to a comma separated list (confusing it
Problem: Setting 'fileencoding' to a comma-separated list (confusing it
with 'fileencodings') does not result in an error message.
Setting 'fileencoding' in an empty file marks it as modified.
There is no "+" in the title after setting 'fileencoding'.

View File

@@ -14965,7 +14965,7 @@ Solution: Adjust autoconf. (lilydjwg)
Files: src/configure.in, src/auto/configure
Patch 7.3.806
Problem: Compiler warnings in Perl code when building with Visual studio
Problem: Compiler warnings in Perl code when building with Visual Studio
2012. (skeept)
Solution: Add type casts. (Christian Brabandt, 2013 Jan 30)
Files: src/if_perl.xs

View File

@@ -7916,7 +7916,7 @@ Solution: Put remainder of message back in the queue.
Files: src/channel.c
Patch 7.4.1240
Problem: Visual studio tools are noisy.
Problem: Visual Studio tools are noisy.
Solution: Suppress startup info. (Mike Williams)
Files: src/GvimExt/Makefile, src/Make_mvc.mak, src/tee/Make_mvc.mak
@@ -20476,7 +20476,7 @@ Files: src/normal.c, src/misc2.c, src/Makefile,
src/testdir/test_virtualedit.vim, src/testdir/test_alot.vim
Patch 8.0.0963
Problem: Terminal test fails on MacOS. (chdiza)
Problem: Terminal test fails on macOS. (chdiza)
Solution: Wait for the shell to echo the characters. (closes #1991)
Files: src/testdir/test_terminal.vim
@@ -31038,7 +31038,7 @@ Files: src/ui.c, src/testdir/test_timers.vim, src/gui_gtk_x11.c,
src/gui_w32.c, src/gui_photon.c, src/gui_x11.c
Patch 8.1.0841
Problem: Travis config to get Lua on MacOS is too complicated.
Problem: Travis config to get Lua on macOS is too complicated.
Solution: Use an addons entry. (Ozaki Kiichi, closes #3876)
Files: .travis.yml
@@ -39471,7 +39471,7 @@ Solution: Add to the list of flaky tests.
Files: src/testdir/runtest.vim
Patch 8.1.2152
Problem: Problems navigating tags file on MacOS Catalina.
Problem: Problems navigating tags file on macOS Catalina.
Solution: Use fseek instead of lseek. (John Lamb, fixes #5061)
Files: src/tag.c
@@ -40648,7 +40648,7 @@ Solution: Allow key codes when fetching argument for CTRL-R. (closes #5266)
Files: src/edit.c, src/ex_getln.c, src/testdir/test_termcodes.vim
Patch 8.1.2347 (after 8.1.2344)
Problem: MacOS: build fails.
Problem: macOS: build fails.
Solution: Don't define _XOPEN_SOURCE for Mac.
Files: src/vim.h

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 8.2. Last change: 2021 Jan 21
*vi_diff.txt* For Vim version 8.2. Last change: 2022 Apr 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -160,8 +160,8 @@ Graphical User Interface (GUI). |gui|
Included support for GUI: menu's, mouse, scrollbars, etc. You can
define your own menus. Better support for CTRL/SHIFT/ALT keys in
combination with special keys and mouse. Supported for various
platforms, such as X11 (with Motif and Athena interfaces), GTK, Win32
(Windows XP and later), Amiga and Macintosh.
platforms, such as X11 with Motif, GTK, Win32 (Windows XP and later),
Amiga and Macintosh.
Multiple windows and buffers. |windows.txt|
Vim can split the screen into several windows, each editing a

View File

@@ -1,4 +1,4 @@
*vim9.txt* For Vim version 8.2. Last change: 2022 Feb 23
*vim9.txt* For Vim version 8.2. Last change: 2022 Mar 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -94,8 +94,20 @@ script and `:def` functions; details are below:
def CallMe(count: number, message: string): bool
- Call functions without `:call`: >
writefile(['done'], 'file.txt')
- You cannot use old Ex commands `:xit`, `:t`, `:k`, `:append`, `:change`,
`:insert`, `:open`, and `:s` or `:d` with only flags.
- You cannot use old Ex commands:
`:Print`
`:append`
`:change`
`:d` directly followed by 'd' or 'p'.
`:insert`
`:k`
`:mode`
`:open`
`:s` with only flags
`:t`
`:xit`
- Some commands, especially those used for flow control, cannot be shortened.
E.g., `:throw` cannot be written as `:th`. *E839*
- You cannot use curly-braces names.
- A range before a command must be prefixed with a colon: >
:%s/this/that
@@ -172,8 +184,8 @@ For now you will need to pass the dictionary explicitly: >
def DictFunc(d: dict<any>, arg: string)
echo d[arg]
enddef
var d = {item: 'value', func: DictFunc}
d.func(d, 'item')
var ad = {item: 'value', func: DictFunc}
ad.func(ad, 'item')
You can call a legacy dict function though: >
func Legacy() dict
@@ -305,7 +317,7 @@ function, the function does not need to be defined more than once: >
Variable declarations with :var, :final and :const ~
*vim9-declaration* *:var*
*vim9-declaration* *:var* *E1079*
*E1017* *E1020* *E1054* *E1087* *E1108* *E1124*
Local variables need to be declared with `:var`. Local constants need to be
declared with `:final` or `:const`. We refer to both as "variables" in this
@@ -364,17 +376,30 @@ And with autocommands: >
}
Although using a :def function probably works better.
*E1022* *E1103* *E1130* *E1131* *E1133*
*E1134* *E1235*
*E1134*
Declaring a variable with a type but without an initializer will initialize to
false (for bool), empty (for string, list, dict, etc.) or zero (for number,
any, etc.). This matters especially when using the "any" type, the value will
default to the number zero.
*E1016* *E1052* *E1066*
default to the number zero. For example, when declaring a list, items can be
added: >
var myList: list<number>
myList->add(7)
Initializing a variable to a null value, e.g. `null_list`, differs from not
initializing the variable. This throws an error: >
var myList = null_list
myList->add(7) # E1130: Cannot add to null list
< *E1016* *E1052* *E1066*
In Vim9 script `:let` cannot be used. An existing variable is assigned to
without any command. The same for global, window, tab, buffer and Vim
variables, because they are not really declared. Those can also be deleted
with `:unlet`.
*E1065*
You cannot use `:va` to declare a variable, it must be written with the full
name `:var`. Just to make sure it is easy to read.
*E1178*
`:lockvar` does not work on local variables. Use `:const` and `:final`
instead.
@@ -952,10 +977,42 @@ always converted to string: >
Simple types are Number, Float, Special and Bool. For other types |string()|
should be used.
*false* *true* *null* *E1034*
In Vim9 script one can use "true" for v:true, "false" for v:false and "null"
for v:null. When converting a boolean to a string "false" and "true" are
used, not "v:false" and "v:true" like in legacy script. "v:none" is not
changed, it is only used in JSON and has no equivalent in other languages.
In Vim9 script one can use the following predefined values: >
true
false
null
null_blob
null_channel
null_dict
null_function
null_job
null_list
null_partial
null_string
`true` is the same as `v:true`, `false` the same as `v:false`, `null` the same
as `v:null`.
While `null` has the type "special", the other "null_" types have the type
indicated by their name. Quite often a null value is handled the same as an
empty value, but not always. The values can be useful to clear a script-local
variable, since they cannot be deleted with `:unlet`. E.g.: >
var theJob = job_start(...)
# let the job do its work
theJob = null_job
The values can also be useful as the default value for an argument: >
def MyFunc(b: blob = null_blob)
if b == null_blob
# b argument was not given
It is possible to compare `null` with any value, this will not give a type
error. However, comparing `null` with a number, float or bool will always
result in `false`. This is different from legacy script, where comparing
`null` with zero or `false` would return `true`.
When converting a boolean to a string `false` and `true` are used, not
`v:false` and `v:true` like in legacy script. `v:none` has no `none`
replacement, it has no equivalent in other languages.
Indexing a string with [idx] or taking a slice with [idx : idx] uses character
indexes instead of byte indexes. Composing characters are included.
@@ -1192,6 +1249,11 @@ Closures defined in a loop will share the same context. For example: >
endfor
echo range(5)->map((i, _) => flist[i]())
# Result: [4, 4, 4, 4, 4]
< *E1271*
A closure must be compiled in the context that it is defined in, so that
variables in that context can be found. This mostly happens correctly, except
when a function is marked for debugging with `breakadd` after it was compiled.
Make sure to define the breakpoint before compiling the outer function.
The "inloop" variable will exist only once, all closures put in the list refer
to the same instance, which in the end will have the value 4. This is
@@ -1683,7 +1745,8 @@ actually needed. Using the autoload mechanism is recommended:
The "autoload" argument to `:import` means that the script is not loaded
until one of the items is actually used. The script will be found under
the "autoload" directory in 'runtimepath' instead of the "import"
directory.
directory. Alternatively a relative or absolute name can be used, see
below.
2. In the autoload script put the bulk of the code. >
vim9script
@@ -1697,11 +1760,20 @@ actually needed. Using the autoload mechanism is recommended:
prefix is obtained from the file name, as you would to manually in a
legacy autoload script. Thus the exported function can be found with
"for#search#Stuff", but you would normally use `import autoload` and not
use the prefix.
use the prefix (which has the side effect of loading the autoload script
when compiling a function that encounters this name).
You can split up the functionality and import other scripts from the
autoload script as you like. This way you can share code between plugins.
Searching for the autoload script in all entries in 'runtimepath' can be a bit
slow. If the plugin knows where the script is located, quite often a relative
path can be used. This avoids the search and should be quite a bit faster.
Another advantage is that the script name does not need to be unique. An
absolute path is also possible. Examples: >
import autoload '../lib/implement.vim'
import autoload MyScriptsDir .. '/lib/implement.vim'
For defining a mapping that uses the imported autoload script the special key
|<ScriptCmd>| is useful. It allows for a command in a mapping to use the
script context of where the mapping was defined.
@@ -1709,7 +1781,17 @@ script context of where the mapping was defined.
When compiling a `:def` function and a function in an autoload script is
encountered, the script is not loaded until the `:def` function is called.
This also means you get any errors only at runtime, since the argument and
return types are not known yet.
return types are not known yet. If you would use the name with '#' characters
then the autoload script IS loaded.
Be careful to not refer to an item in an autoload script that does trigger
loading it unintentionally. For example, when setting an option that takes a
function name, make sure to use a string, not a function reference: >
import autoload 'qftf.vim'
&quickfixtextfunc = 'qftf.Func' # autoload script NOT loaded
&quickfixtextfunc = qftf.Func # autoload script IS loaded
On the other hand, it can be useful to load the script early, at a time when
any errors should be given.
For testing the |test_override()| function can be used to have the
`import autoload` load the script right away, so that the items and types can
@@ -1761,6 +1843,17 @@ threaded, connecting asynchronous operations is a natural way of allowing
plugins to do their work without blocking the user. It's a uniform way to
invoke callbacks and handle timeouts and errors.
Some commands have already been reserved:
*:class*
*:endclass*
*:abstract*
*:enum*
*:endenum*
*:interface*
*:endinterface*
*:static*
*:type*
Some examples: >
abstract class Person

View File

@@ -1,4 +1,4 @@
*windows.txt* For Vim version 8.2. Last change: 2022 Feb 03
*windows.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -892,7 +892,7 @@ windows.
*preview-popup*
Alternatively, a popup window can be used by setting the 'previewpopup'
option. When set, it overrules the 'previewwindow' and 'previewheight'
settings. The option is a comma separated list of values:
settings. The option is a comma-separated list of values:
height maximum height of the popup
width maximum width of the popup
highlight highlight group of the popup (default is Pmenu)

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Feb 13
" Last Change: 2022 Apr 07
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -205,11 +205,13 @@ au BufNewFile,BufRead *.iba,*.ibi setf ibasic
" FreeBasic file (similar to QBasic)
au BufNewFile,BufRead *.fb setf freebasic
" Batch file for MSDOS.
au BufNewFile,BufRead *.bat,*.sys setf dosbatch
" Batch file for MSDOS. See dist#ft#FTsys for *.sys
au BufNewFile,BufRead *.bat setf dosbatch
" *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd.
au BufNewFile,BufRead *.cmd
\ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif
" ABB RAPID or Batch file for MSDOS.
au BufNewFile,BufRead *.sys\c call dist#ft#FTsys()
" Batch file for 4DOS
au BufNewFile,BufRead *.btm call dist#ft#FTbtm()
@@ -360,13 +362,8 @@ au BufNewFile,BufRead *.eni setf cl
" Clever or dtd
au BufNewFile,BufRead *.ent call dist#ft#FTent()
" Clipper (or FoxPro; could also be eviews)
au BufNewFile,BufRead *.prg
\ if exists("g:filetype_prg") |
\ exe "setf " . g:filetype_prg |
\ else |
\ setf clipper |
\ endif
" Clipper, FoxPro, ABB RAPID or eviews
au BufNewFile,BufRead *.prg\c call dist#ft#FTprg()
" Clojure
au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc setf clojure
@@ -397,6 +394,9 @@ au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf
" Configure scripts
au BufNewFile,BufRead configure.in,configure.ac setf config
" Cooklang
au BufNewFile,BufRead *.cook setf cook
" CUDA Compute Unified Device Architecture
au BufNewFile,BufRead *.cu,*.cuh setf cuda
@@ -420,6 +420,9 @@ au BufNewFile,BufRead *.ex call dist#ft#ExCheck()
au BufRead,BufNewFile mix.lock,*.exs setf elixir
au BufRead,BufNewFile *.eex,*.leex setf eelixir
" Elvish
au BufRead,BufNewFile *.elv setf elvish
" Euphoria 3 or 4
au BufNewFile,BufRead *.eu,*.ew,*.exu,*.exw call dist#ft#EuphoriaCheck()
if has("fname_case")
@@ -441,7 +444,7 @@ au BufNewFile,BufRead *quake[1-3]/*.cfg setf quake
au BufNewFile,BufRead *.qc setf c
" Configure files
au BufNewFile,BufRead *.cfg setf cfg
au BufNewFile,BufRead *.cfg\c call dist#ft#FTcfg()
" Cucumber
au BufNewFile,BufRead *.feature setf cucumber
@@ -668,7 +671,7 @@ au BufNewFile,BufRead *.fs call dist#ft#FTfs()
au BufNewFile,BufRead *.fsi,*.fsx setf fsharp
" GDB command files
au BufNewFile,BufRead .gdbinit,gdbinit setf gdb
au BufNewFile,BufRead .gdbinit,gdbinit,.gdbearlyinit,gdbearlyinit,*.gdb setf gdb
" GDMO
au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
@@ -948,6 +951,11 @@ au BufNewFile,BufRead *.jl setf julia
" Kixtart
au BufNewFile,BufRead *.kix setf kix
" Kuka Robot Language
au BufNewFile,BufRead *.src\c call dist#ft#FTsrc()
au BufNewFile,BufRead *.dat\c call dist#ft#FTdat()
au BufNewFile,BufRead *.sub\c setf krl
" Kimwitu[++]
au BufNewFile,BufRead *.k setf kwt
@@ -972,7 +980,7 @@ au BufNewFile,BufRead *.latte,*.lte setf latte
" Limits
au BufNewFile,BufRead */etc/limits,*/etc/*limits.conf,*/etc/*limits.d/*.conf setf limits
" LambdaProlog (*.mod too, see Modsim)
" LambdaProlog (see dist#ft#FTmod for *.mod)
au BufNewFile,BufRead *.sig setf lprolog
" LDAP LDIF
@@ -1135,18 +1143,11 @@ au BufNewFile,BufRead *.mms call dist#ft#FTmms()
" Symbian meta-makefile definition (MMP)
au BufNewFile,BufRead *.mmp setf mmp
" Modsim III (or LambdaProlog)
au BufNewFile,BufRead *.mod
\ if expand("<afile>") =~ '\<go.mod$' |
\ setf gomod |
\ elseif getline(1) =~ '\<module\>' |
\ setf lprolog |
\ else |
\ setf modsim3 |
\ endif
" ABB Rapid, Modula-2, Modsim III or LambdaProlog
au BufNewFile,BufRead *.mod\c call dist#ft#FTmod()
" Modula-2 (.md removed in favor of Markdown)
au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi setf modula2
" Modula-2 (.md removed in favor of Markdown, see dist#ft#FTmod for *.MOD)
au BufNewFile,BufRead *.m2,*.DEF,*.mi setf modula2
" Modula-3 (.m3, .i3, .mg, .ig)
au BufNewFile,BufRead *.[mi][3g] setf modula3
@@ -1277,6 +1278,9 @@ au BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl
" Oracle config file
au BufNewFile,BufRead *.ora setf ora
" Org
au BufNewFile,BufRead *.org,*.org_archive setf org
" Packet filter conf
au BufNewFile,BufRead pf.conf setf pf
@@ -1341,9 +1345,10 @@ au BufNewFile,BufRead *.pm
au BufNewFile,BufRead *.pod setf pod
" Php, php3, php4, etc.
" Also Phtml (was used for PHP 2 in the past)
" Also .ctp for Cake template file
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php
" Also Phtml (was used for PHP 2 in the past).
" Also .ctp for Cake template file.
" Also .phpt for php tests.
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp,*.phpt setf php
" PHP config
au BufNewFile,BufRead php.ini-* setf dosini
@@ -1732,7 +1737,7 @@ au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh
au BufNewFile,BufRead *.zsh setf zsh
" Scheme
au BufNewFile,BufRead *.scm,*.ss,*.sld,*.rkt,*.rktd,*.rktl setf scheme
au BufNewFile,BufRead *.scm,*.ss,*.sld,*.rkt,*.rktd,*.rktl setf scheme
" Screen RC
au BufNewFile,BufRead .screenrc,screenrc setf screen
@@ -2038,6 +2043,9 @@ au BufNewFile,BufRead *.vala setf vala
" Vera
au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera
" Vagrant (uses Ruby syntax)
au BufNewFile,BufRead Vagrantfile setf ruby
" Verilog HDL
au BufNewFile,BufRead *.v setf verilog

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: ant
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: aspvbs
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2021 Sep 21
" Last Change: 2022 Apr 08
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -31,7 +31,8 @@ if exists('&ofu')
endif
" Set 'comments' to format dashed lists in comments.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
" Also include ///, used for Doxygen.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
" In VMS C keywords contain '$' characters.
if has("vms")

View File

@@ -5,7 +5,7 @@
" Meikel Brandmeyer <mb@kotka.de>
" URL: https://github.com/clojure-vim/clojure.vim
" License: Vim (see :h license)
" Last Change: 2021-10-26
" Last Change: 2022-03-24
if exists("b:did_ftplugin")
finish
@@ -43,7 +43,7 @@ setlocal commentstring=;\ %s
" specially and hence are not indented specially.
"
" -*- LISPWORDS -*-
" Generated from https://github.com/clojure-vim/clojure.vim/blob/62b215f079ce0f3834fd295c7a7f6bd8cc54bcc3/clj/src/vim_clojure_static/generate.clj
" Generated from https://github.com/clojure-vim/clojure.vim/blob/fd280e33e84c88e97860930557dba3ff80b1a82d/clj/src/vim_clojure_static/generate.clj
setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test
" Provide insert mode completions for special forms and clojure.core. As
@@ -66,10 +66,10 @@ endif
" Filter files in the browse dialog
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
\ "Java Source Files (*.java)\t*.java\n" .
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "All Files\t*\n" .
\ "Clojure Files\t*.clj;*.cljc;*.cljs;*.cljx\n" .
\ "EDN Files\t*.edn\n" .
\ "Java Files\t*.java\n"
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
endif

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: config
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: csc
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: csh
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
" Previous Maintainer: Dan Sharp
" Contributor: Johannes Zellner <johannes@zellner.org>
" Last Change: 2021 Oct 15

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: dtd
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: html
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: Java
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Change: 2012 Mar 11
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: jsp
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Liquid
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 May 21
" Last Change: 2022 Mar 15
if exists('b:did_ftplugin')
finish
@@ -53,7 +53,7 @@ if has('gui_win32')
endif
if exists('loaded_matchit')
let b:match_words .= '\<\%(if\w*\|unless\|case\)\>:\<\%(elsif\|else\|when\)\>:\<end\%(if\w*\|unless\|case\)\>,\<\%(for\|tablerow\)\>:\%({%\s*\)\@<=empty\>:\<end\%(for\|tablerow\)\>,<\(capture\|comment\|highlight\)\>:\<end\1\>'
let b:match_words .= '\<\%(if\w*\|unless\|case\)\>:\<\%(elsif\|else\|when\)\>:\<end\%(if\w*\|unless\|case\)\>,\<\%(for\|tablerow\)\>:\%({%\s*\)\@<=empty\>:\<end\%(for\|tablerow\)\>,\<\(capture\|comment\|highlight\)\>:\<end\1\>'
endif
setlocal commentstring={%\ comment\ %}%s{%\ endcomment\ %}

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Pascal
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
" Previous Maintainer: Dan Sharp
" Last Change: 2021 Apr 23
if exists("b:did_ftplugin") | finish | endif

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: php
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
@@ -71,10 +73,11 @@ exe 'nno <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>'
exe 'ono <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>'
exe 'ono <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>'
setlocal suffixesadd=.php
setlocal commentstring=/*%s*/
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal commentstring< include< omnifunc<" .
let b:undo_ftplugin = "setlocal suffixesadd< commentstring< include< omnifunc<" .
\ " | unlet! b:browsefilter b:match_words | " .
\ s:undo_ftplugin

View File

@@ -3,7 +3,7 @@
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" URL: https://github.com/vim-ruby/vim-ruby
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2020 Feb 13
" Last Change: 2022 Mar 21
if (exists("b:did_ftplugin"))
finish
@@ -53,7 +53,7 @@ endif
" TODO:
"setlocal define=^\\s*def
setlocal comments=:#
setlocal comments=b:#
setlocal commentstring=#\ %s
if !exists('g:ruby_version_paths')
@@ -87,8 +87,14 @@ endfunction
function! s:build_path(path) abort
let path = join(map(copy(a:path), 'v:val ==# "." ? "" : v:val'), ',')
if &g:path !~# '\v^%(\.,)=%(/%(usr|emx)/include,)=,$'
let path = substitute(&g:path,',,$',',','') . ',' . path
if &g:path =~# '\v^%(\.,)=%(/%(usr|emx)/include,)=,$'
let path = path . ',.,,'
elseif &g:path =~# ',\.,,$'
let path = &g:path[0:-4] . path . ',.,,'
elseif &g:path =~# ',,$'
let path = &g:path[0:-2] . path . ',,'
else
let path = substitute(&g:path, '[^,]\zs$', ',', '') . path
endif
return path
endfunction
@@ -164,6 +170,8 @@ let b:undo_ftplugin .= "| sil! cunmap <buffer> <Plug><ctag>| sil! cunmap <buffer
if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
nmap <buffer><script> <SID>: :<C-U>
nmap <buffer><script> <SID>c: :<C-U><C-R>=v:count ? v:count : ''<CR>
cmap <buffer> <SID><cfile> <Plug><cfile>
cmap <buffer> <SID><ctag> <Plug><ctag>
nnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>',['rubyDefine'],'b','n')<CR>
nnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>',['rubyDefine'],'','n')<CR>
@@ -210,20 +218,20 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
call s:map('c', '', '<C-R><C-F> <Plug><cfile>')
cmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? '<Bar>norm! zv' : ''
call s:map('n', '<silent>', '<C-]> <SID>:exe v:count1."tag <Plug><ctag>"<SID>tagzv<CR>')
call s:map('n', '<silent>', 'g<C-]> <SID>:exe "tjump <Plug><ctag>"<SID>tagzv<CR>')
call s:map('n', '<silent>', 'g] <SID>:exe "tselect <Plug><ctag>"<SID>tagzv<CR>')
call s:map('n', '<silent>', '<C-W>] <SID>:exe v:count1."stag <Plug><ctag>"<SID>tagzv<CR>')
call s:map('n', '<silent>', '<C-W><C-]> <SID>:exe v:count1."stag <Plug><ctag>"<SID>tagzv<CR>')
call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:exe "stjump <Plug><ctag>"<SID>tagzv<CR>')
call s:map('n', '<silent>', '<C-W>g] <SID>:exe "stselect <Plug><ctag>"<SID>tagzv<CR>')
call s:map('n', '<silent>', '<C-W>} <SID>:exe v:count1."ptag <Plug><ctag>"<CR>')
call s:map('n', '<silent>', '<C-W>g} <SID>:exe "ptjump <Plug><ctag>"<CR>')
call s:map('n', '<script><silent>', '<C-]> <SID>:exe v:count1."tag <SID><ctag>"<SID>tagzv<CR>')
call s:map('n', '<script><silent>', 'g<C-]> <SID>:exe "tjump <SID><ctag>"<SID>tagzv<CR>')
call s:map('n', '<script><silent>', 'g] <SID>:exe "tselect <SID><ctag>"<SID>tagzv<CR>')
call s:map('n', '<script><silent>', '<C-W>] <SID>:exe v:count1."stag <SID><ctag>"<SID>tagzv<CR>')
call s:map('n', '<script><silent>', '<C-W><C-]> <SID>:exe v:count1."stag <SID><ctag>"<SID>tagzv<CR>')
call s:map('n', '<script><silent>', '<C-W>g<C-]> <SID>:exe "stjump <SID><ctag>"<SID>tagzv<CR>')
call s:map('n', '<script><silent>', '<C-W>g] <SID>:exe "stselect <SID><ctag>"<SID>tagzv<CR>')
call s:map('n', '<script><silent>', '<C-W>} <SID>:exe v:count1."ptag <SID><ctag>"<CR>')
call s:map('n', '<script><silent>', '<C-W>g} <SID>:exe "ptjump <SID><ctag>"<CR>')
call s:map('n', '<silent>', 'gf <SID>c:find <Plug><cfile><CR>')
call s:map('n', '<silent>', '<C-W>f <SID>c:sfind <Plug><cfile><CR>')
call s:map('n', '<silent>', '<C-W><C-F> <SID>c:sfind <Plug><cfile><CR>')
call s:map('n', '<silent>', '<C-W>gf <SID>c:tabfind <Plug><cfile><CR>')
call s:map('n', '<script><silent>', 'gf <SID>c:find <SID><cfile><CR>')
call s:map('n', '<script><silent>', '<C-W>f <SID>c:sfind <SID><cfile><CR>')
call s:map('n', '<script><silent>', '<C-W><C-F> <SID>c:sfind <SID><cfile><CR>')
call s:map('n', '<script><silent>', '<C-W>gf <SID>c:tabfind <SID><cfile><CR>')
endif
let &cpo = s:cpo_save

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: sgml
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: sh
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: svg
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: tcsh
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
" Previous Maintainer: Dan Sharp
" Last Change: 2021 Oct 15
if exists("b:did_ftplugin") | finish | endif

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: xhtml
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif

View File

@@ -3,7 +3,7 @@
" Maintainer: Christian Brabandt <cb@256bit.org>
" Last Changed: Dec 07th, 2018
" Repository: https://github.com/chrisbra/vim-xml-ftplugin
" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
" Previous Maintainer: Dan Sharp
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: xsd
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif

View File

@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: xslt
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif

View File

@@ -2,6 +2,7 @@
# Edit the src/po/gvim.desktop.in file instead.
[Desktop Entry]
# Translators: This is the Application Name used in the GVim desktop file
Name[ca]=GVim
Name[de]=GVim
Name[eo]=GVim
Name[fi]=GVim
@@ -13,6 +14,7 @@ Name[sr]=GVim
Name[tr]=GVim
Name=GVim
# Translators: This is the Generic Application Name used in the Vim desktop file
GenericName[ca]=Editor de text
GenericName[de]=Texteditor
GenericName[eo]=Tekstoredaktilo
GenericName[fi]=Tekstinmuokkain
@@ -25,6 +27,7 @@ GenericName[sr]=Едитор текст
GenericName[tr]=Metin Düzenleyici
GenericName=Text Editor
# Translators: This is the comment used in the Vim desktop file
Comment[ca]=Edita fitxers de text
Comment[de]=Textdateien bearbeiten
Comment[eo]=Redakti tekstajn dosierojn
Comment[fi]=Muokkaa tekstitiedostoja
@@ -49,7 +52,6 @@ Comment[be]=Рэдагаваньне тэкставых файлаў
Comment[bg]=Редактиране на текстови файлове
Comment[bn]=টেক্স্ট ফাইল এডিট করুন
Comment[bs]=Izmijeni tekstualne datoteke
Comment[ca]=Edita fitxers de text
Comment[cs]=Úprava textových souborů
Comment[cy]=Golygu ffeiliau testun
Comment[da]=Rediger tekstfiler
@@ -105,6 +107,7 @@ Exec=gvim -f %F
Terminal=false
Type=Application
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
Keywords[ca]=Text;editor;
Keywords[de]=Text;Editor;
Keywords[eo]=Teksto;redaktilo;
Keywords[fi]=Teksti;muokkain;editori;

View File

@@ -16,6 +16,7 @@
" 15.10.2006 MK Bram's suggestion for runtime integration
" 05.11.2006 MK Bram suggested to save on spaces
" 19.09.2007 NO g: missing before ada#Comment
" 2022 April: b:undo_indent added by Doug Kearns
" Help Page: ft-vim-indent
"------------------------------------------------------------------------------
" ToDo:
@@ -35,6 +36,8 @@ setlocal indentexpr=GetAdaIndent()
setlocal indentkeys-=0{,0}
setlocal indentkeys+=0=~then,0=~end,0=~elsif,0=~when,0=~exception,0=~begin,0=~is,0=~record
let b:undo_indent = "setl inde< indk<"
" Only define the functions once.
if exists("*GetAdaIndent")
finish

View File

@@ -24,6 +24,7 @@
" 29-04-2002 Fixed problems in function headers and max line width
" Added support for two-line if's without curly braces
" Fixed hang: 2011 Aug 31
" 2022 April: b:undo_indent added by Doug Kearns
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -36,6 +37,8 @@ setlocal indentexpr=GetAwkIndent()
" Mmm, copied from the tcl indent program. Is this okay?
setlocal indentkeys-=:,0#
let b:undo_indent = "setl inde< indk<"
" Only define the function once.
if exists("*GetAwkIndent")
finish

View File

@@ -1,20 +1,18 @@
" Vim indent file
" Language: bst
" Author: Tim Pope <vimNOSPAM@tpope.info>
" $Id: bst.vim,v 1.1 2007/05/05 18:11:12 vimboss Exp $
" Last Change: 2022 Mar 15
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal expandtab
setlocal indentexpr=GetBstIndent(v:lnum)
"setlocal smartindent
setlocal cinkeys&
setlocal cinkeys-=0#
setlocal indentkeys&
"setlocal indentkeys+=0%
let b:undo_indent = 'setlocal indentexpr< cinkeys< indentkeys<'
" Only define the function once.
if exists("*GetBstIndent")

View File

@@ -1,7 +1,7 @@
" Description: Comshare Dimension Definition Language (CDL)
" Maintainer: Raul Segura Acevedo <raulseguraaceved@netscape.net> (Invalid email address)
" Doug Kearns <dougkearns@gmail.com>
" Last Change: Fri Nov 30 13:35:48 2001 CST
" Last Change: 2022 Apr 06
if exists("b:did_indent")
"finish
@@ -12,6 +12,8 @@ setlocal indentexpr=CdlGetIndent(v:lnum)
setlocal indentkeys&
setlocal indentkeys+==~else,=~endif,=~then,;,),=
let b:undo_indent = "setl inde< indk<"
" Only define the function once.
if exists("*CdlGetIndent")
"finish

View File

@@ -1,6 +1,7 @@
" Vim indent file
" Language: ChaiScript
" Maintainer: Jason Turner <lefticus 'at' gmail com>
" Last Change: 2022 Apr 06
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -11,6 +12,8 @@ let b:did_indent = 1
setlocal indentexpr=GetChaiScriptIndent()
setlocal autoindent
let b:undo_indent = "setl ai< inde<"
" Only define the function once.
if exists("*GetChaiScriptIndent")
finish

View File

@@ -5,7 +5,7 @@
" Meikel Brandmeyer <mb@kotka.de>
" URL: https://github.com/clojure-vim/clojure.vim
" License: Vim (see :h license)
" Last Change: 2021-10-26
" Last Change: 2022-03-24
if exists("b:did_indent")
finish

View File

@@ -3,7 +3,7 @@
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
" Last Change: 2017 Sep 24
" Last Change: 2022 Apr 06
"
" Licence: The CMake license applies to this file. See
" https://cmake.org/licensing
@@ -17,6 +17,8 @@ let b:did_indent = 1
setlocal indentexpr=CMakeGetIndent(v:lnum)
setlocal indentkeys+==ENDIF(,ENDFOREACH(,ENDMACRO(,ELSE(,ELSEIF(,ENDWHILE(
let b:undo_indent = "setl inde< indk<"
" Only define the function once.
if exists("*CMakeGetIndent")
finish

View File

@@ -2,7 +2,7 @@
" Language: D
" Maintainer: Jason Mills <jmills@cs.mun.ca> (Invalid email address)
" Doug Kearns <dougkearns@gmail.com>
" Last Change: 2005 Nov 22
" Last Change: 2022 Apr 06
" Version: 0.1
"
" Please email me with bugs, comments, and suggestion. Put vim in the subject
@@ -19,4 +19,6 @@ let b:did_indent = 1
" D indenting is a lot like the built-in C indenting.
setlocal cindent
let b:undo_indent = "setl cin<"
" vim: ts=8 noet

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: dict(1) configuration file
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-12-20
" Last Change: 2022 Apr 06
if exists("b:did_indent")
finish
@@ -11,3 +11,5 @@ let b:did_indent = 1
setlocal indentkeys=0{,0},!^F,o,O cinwords= autoindent smartindent
setlocal nosmartindent
inoremap <buffer> # X#
let b:undo_indent = "setl ai< cinw< indk< si< | silent! iunmap <buffer> #"

View File

@@ -11,3 +11,5 @@ let b:did_indent = 1
setlocal indentkeys=0{,0},!^F,o,O cinwords= autoindent smartindent
setlocal nosmartindent
inoremap <buffer> # X#
let b:undo_indent = "setl ai< cinw< indk< si< | silent! iunmap <buffer> #"

View File

@@ -3,7 +3,7 @@
" Maintainer: Brent A. Fulgham <bfulgham@debian.org> (Invalid email address)
" Doug Kearns <dougkearns@gmail.com>
" Version: 0.01
" Last Change: 2017 Jun 13
" Last Change: 2022 Apr 06
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -15,6 +15,9 @@ setlocal indentkeys+==~begin,=~block,=~case,=~cleanup,=~define,=~end,=~else,=~el
" Define the appropriate indent function but only once
setlocal indentexpr=DylanGetIndent()
let b:undo_indent = "setl inde< indk<"
if exists("*DylanGetIndent")
finish
endif

View File

@@ -3,6 +3,7 @@
" Maintainer: Steven Oliver <oliver.steven@gmail.com>
" Website: https://steveno@github.com/steveno/falconpl-vim.git
" Credits: This is, to a great extent, a copy n' paste of ruby.vim.
" 2022 April: b:undo_indent added by Doug Kearns
" 1. Setup {{{1
" ============
@@ -20,6 +21,8 @@ setlocal indentexpr=FalconGetIndent(v:lnum)
setlocal indentkeys=0{,0},0),0],!^F,o,O,e
setlocal indentkeys+==~case,=~catch,=~default,=~elif,=~else,=~end,=~\"
let b:undo_indent = "setl inde< indk< si<"
" Define the appropriate indent function but only once
if exists("*FalconGetIndent")
finish

View File

@@ -4,7 +4,7 @@
" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/indent/gitolite.vim)
" Maintainer: Sitaram Chamarty <sitaramc@gmail.com>
" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
" Last Change: 2017 Oct 05
" Last Change: 2022 Apr 06
if exists("b:did_indent")
finish
@@ -15,6 +15,8 @@ setlocal autoindent
setlocal indentexpr=GetGitoliteIndent()
setlocal indentkeys=o,O,*<Return>,!^F,=repo,\",=
let b:undo_indent = "setl ai< inde< indk<"
" Only define the function once.
if exists("*GetGitoliteIndent")
finish

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2019 Dec 05
" Last Change: 2022 Mar 15
if exists("b:did_indent")
finish
@@ -14,6 +14,8 @@ setlocal autoindent
setlocal indentexpr=GetHamlIndent()
setlocal indentkeys=o,O,*<Return>,},],0),!^F,=end,=else,=elsif,=rescue,=ensure,=when
let b:undo_indent = "setl ai< inde< indk<"
" Only define the function once.
if exists("*GetHamlIndent")
finish

View File

@@ -2,7 +2,7 @@
" Language: IDL (ft=idlang)
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com> (Invalid email address)
" Doug Kearns <dougkearns@gmail.com>
" Last change: 2017 Jun 13
" Last change: 2022 Apr 06
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -14,6 +14,8 @@ setlocal indentkeys=o,O,0=endif,0=ENDIF,0=endelse,0=ENDELSE,0=endwhile,0=ENDWHIL
setlocal indentexpr=GetIdlangIndent(v:lnum)
let b:undo_indent = "setl inde< indk<"
" Only define the function once.
if exists("*GetIdlangIndent")
finish

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