Compare commits

...

526 Commits

Author SHA1 Message Date
Bram Moolenaar
45311b5274 patch 8.1.1844: buffer no longer unloaded when adding text properties
Problem:    Buffer no longer unloaded when adding text properties to it.
Solution:   Do not create the memfile. (closes #4808)
2019-08-13 22:27:32 +02:00
Bram Moolenaar
f077db2423 patch 8.1.1843: might be freeing memory that was not allocated
Problem:    Might be freeing memory that was not allocated.
Solution:   Have next_fenc() set the fenc_alloced flag. (closes #4804)
2019-08-13 00:18:24 +02:00
Bram Moolenaar
9570aacdb8 patch 8.1.1842: test listed as flaky should no longer be flaky
Problem:    Test listed as flaky should no longer be flaky.
Solution:   Remove Test_popup_and_window_resize from the list of flaky tests.
            (Daniel Hahler, close #4807)
2019-08-12 23:56:20 +02:00
Bram Moolenaar
d5e3cc11d3 patch 8.1.1841: no test for Ex shift commands
Problem:    No test for Ex shift commands.
Solution:   Add a test. (Dominique Pelle, closes #4801)
2019-08-12 14:38:02 +02:00
Bram Moolenaar
52992feafe patch 8.1.1840: Testing: WorkingClipboard() is not accurate
Problem:    Testing: WorkingClipboard() is not accurate.
Solution:   Check feature clipboard_working instead.
2019-08-12 14:20:33 +02:00
Bram Moolenaar
0b5dc64446 patch 8.1.1839: insufficient info when test fails because of screen size
Problem:    Insufficient info when test fails because of screen size.
Solution:   Report the detected screen size.
2019-08-11 22:56:15 +02:00
Bram Moolenaar
08cc374dab patch 8.1.1838: there is :spellwrong and :spellgood but not :spellrare
Problem:    There is :spellwrong and :spellgood but not :spellrare.
Solution:   Add :spellrare. (Martin Tournoij, closes #4291)
2019-08-11 22:51:14 +02:00
Bram Moolenaar
4999a7fb65 patch 8.1.1837: popup test fails if clipboard is supported but not working
Problem:    Popup test fails if clipboard is supported but not working.
Solution:   Add the "clipboard_working" feature. Also use Check commands
            instead of "if" and "throw".  And remove stray ch_logfile().
2019-08-10 22:21:48 +02:00
Bram Moolenaar
a9ab391a3a patch 8.1.1836: inaccurate memory estimate for Amiga-like OS
Problem:    Inaccurate memory estimate for Amiga-like OS.
Solution:   Adjust #ifdef for AvailMem(). (Ola Söder, closes #4797)
2019-08-10 14:54:20 +02:00
Bram Moolenaar
fd8ca21b3f patch 8.1.1835: cannot use printf() as a method
Problem:    Cannot use printf() as a method.
Solution:   Pass the base as the second argument to printf().
2019-08-10 00:13:30 +02:00
Bram Moolenaar
22a0c0c4ec patch 8.1.1834: cannot use a lambda as a method
Problem:    Cannot use a lambda as a method.
Solution:   Implement ->{lambda}(). (closes #4768)
2019-08-09 23:25:08 +02:00
Bram Moolenaar
0c779e8e48 patch 8.1.1833: allocating a bit too much when there is no bad word.
Problem:    Allocating a bit too much when spellbadword() does not find a bad
            word.
Solution:   Reset "len" when going to the next word. (Daniel Hahler,
            closes #4788)
2019-08-09 17:01:02 +02:00
Bram Moolenaar
820680b9ff patch 8.1.1832: win_execute() does not work in other tab
Problem:    Win_execute() does not work in other tab. (Rick Howe)
Solution:   Take care of the tab. (closes #4792)
2019-08-09 14:56:22 +02:00
Bram Moolenaar
2514315fc2 patch 8.1.1831: confusing skipped message
Problem:    Confusing skipped message.
Solution:   Drop "run" from "run start the GUI".
2019-08-09 14:13:57 +02:00
Bram Moolenaar
088e8e3443 Update runtime files. 2019-08-08 22:15:18 +02:00
Bram Moolenaar
a576f50662 patch 8.1.1830: Travis does not report error when tests fail
Problem:    Travis does not report error when tests fail.
Solution:   Explicitly do "exit 1".
2019-08-08 22:02:35 +02:00
Bram Moolenaar
39de6413c8 patch 8.1.1829: difference in screenshots
Problem:    Difference in screenshots.
Solution:   Update screenshots.  Change checks in a few more tests.
            (closes #4789)
2019-08-08 21:52:39 +02:00
Bram Moolenaar
5184132ec0 patch 8.1.1828: not strict enough checking syntax of method invocation
Problem:    Not strict enough checking syntax of method invocation.
Solution:   Check there is no white space inside ->method(.
2019-08-08 21:10:01 +02:00
Bram Moolenaar
47ed553fd5 patch 8.1.1827: allocating more memory than needed for extended structs
Problem:    Allocating more memory than needed for extended structs.
Solution:   Use offsetof() instead of sizeof(). (Dominique Pelle,
            closes #4786)
2019-08-08 20:49:14 +02:00
Bram Moolenaar
8c5a278fc5 patch 8.1.1826: tests use hand coded feature and option checks
Problem:    Tests use hand coded feature and option checks.
Solution:   Use the commands from check.vim in more tests.
2019-08-07 23:07:07 +02:00
Bram Moolenaar
b59e735772 patch 8.1.1825: allocating more memory than needed for extended structs
Problem:    Allocating more memory than needed for extended structs.
Solution:   Use offsetof() instead of sizeof(). (Dominique Pelle,
            closes #4785)
2019-08-07 21:42:24 +02:00
Bram Moolenaar
5bcc5a1ff9 patch 8.1.1824: crash when correctly spelled word is very long
Problem:    Crash when correctly spelled word is very long. (Ben Kraft)
Solution:   Check word length before copying. (closes #4778)
2019-08-06 22:48:02 +02:00
Bram Moolenaar
d7663c22c6 patch 8.1.1823: command line history code is spread out
Problem:    Command line history code is spread out.
Solution:   Put the code in a new file. (Yegappan Lakshmanan, closes #4779)
            Also graduate the +cmdline_hist feature.
2019-08-06 21:59:57 +02:00
Bram Moolenaar
0acae7acc4 patch 8.1.1822: confusing error message when range is not allowed
Problem:    Confusing error message when range is not allowed.
Solution:   With ADDR_NONE give e_norange.  Change e_invaddr to e_invrange for
            consistency.
2019-08-06 21:29:29 +02:00
Bram Moolenaar
f97d46f816 patch 8.1.1821: no test for wrong number of method arguments
Problem:    No test for wrong number of method arguments.
Solution:   Add a test.
2019-08-06 20:34:10 +02:00
Bram Moolenaar
761fdf01c6 patch 8.1.1820: using expr->FuncRef() does not work
Problem:    Using expr->FuncRef() does not work.
Solution:   Make FuncRef work as a method.
2019-08-05 23:10:16 +02:00
Bram Moolenaar
1b6d9c4215 patch 8.1.1819: :pedit does not work with a popup preview window
Problem:    :pedit does not work with a popup preview window.
Solution:   Avoid aborting with an error. (fixes #4777)  Also double check
            that after prepare_tagpreview() the current window is not a
            popup window.
2019-08-05 21:52:04 +02:00
Bram Moolenaar
b4a88a0441 patch 8.1.1818: unused variable
Problem:    Unused variable.
Solution:   Remove the variable. (Mike Williams)
2019-08-05 20:18:14 +02:00
Bram Moolenaar
6f33b893c6 patch 8.1.1817: github contribution text is incomplete
Problem:    Github contribution text is incomplete.
Solution:   Update the text.
2019-08-04 23:22:08 +02:00
Bram Moolenaar
fcfe1a9b89 patch 8.1.1816: cannot use a user defined function as a method
Problem:    Cannot use a user defined function as a method.
Solution:   Pass the base as the first argument to the user defined function
            after "->". (partly by FUJIWARA Takuya)
2019-08-04 23:04:39 +02:00
Bram Moolenaar
7a4ea1df2f patch 8.1.1815: duplicating info for internal functions
Problem:    Duplicating info for internal functions.
Solution:   Use one table to list internal functions.
2019-08-04 21:35:12 +02:00
Bram Moolenaar
5d458a7b3d patch 8.1.1814: a long title in a popup window overflows
Problem:    A long title in a popup window overflows.
Solution:   Truncate the title. (closes #4770)
2019-08-04 21:12:15 +02:00
Bram Moolenaar
2debf1c16b patch 8.1.1813: ATTENTION prompt for a preview popup window
Problem:    ATTENTION prompt for a preview popup window.
Solution:   Close the popup window if aborting the buffer load.  Avoid getting
            the ATTENTION dialog.
2019-08-04 20:44:19 +02:00
Bram Moolenaar
fb06d767a8 patch 8.1.1812: reading a truncted undo file hangs Vim
Problem:    Reading a truncted undo file hangs Vim.
Solution:   Check for reading EOF. (closes #4769)
2019-08-04 18:55:35 +02:00
Bram Moolenaar
c363fe1599 patch 8.1.1811: popup window color cannot be set to "Normal"
Problem:    Popup window color cannot be set to "Normal".
Solution:   Check for non-empty 'wincolor' instead of zero attribute.
            (closes #4772)
2019-08-04 18:13:46 +02:00
Bram Moolenaar
b8350abef0 patch 8.1.1810: popup_getoptions() is missing an entry for "mapping"
Problem:    Popup_getoptions() is missing an entry for "mapping".
Solution:   Add the entry.
2019-08-04 17:59:49 +02:00
Bram Moolenaar
a74e4946de patch 8.1.1809: more functions can be used as a method
Problem:    More functions can be used as a method.
Solution:   Add has_key(), split(), str2list(), etc.
2019-08-04 17:35:53 +02:00
Bram Moolenaar
e4ce825a55 patch 8.1.1808: build failure for tiny version
Problem:    Build failure for tiny version.
Solution:   Define ex_eval to ex_ni.  Clean up the ordering a bit.
2019-08-04 15:30:16 +02:00
Bram Moolenaar
25e42231d3 patch 8.1.1807: more functions can be used as a method
Problem:    More functions can be used as a method.
Solution:   Add append(), appendbufline(), assert_equal(), etc.
            Also add the :eval command.
2019-08-04 15:04:10 +02:00
Bram Moolenaar
7cc535175a patch 8.1.1806: test for display updating doesn't check without statusline
Problem:    Test for display updating doesn't check without statusline.
Solution:   Add screenshots without a status line.
2019-08-03 23:30:21 +02:00
Bram Moolenaar
6cd57d4466 patch 8.1.1805: au_did_filetype is declared twice
Problem:    Au_did_filetype is declared twice.
Solution:   Remove it from autocmd.c. (closes #4767)
2019-08-03 23:08:14 +02:00
Bram Moolenaar
3c8ee62974 patch 8.1.1804: no test for display updating without a scroll region
Problem:    No test for display updating without a scroll region.
Solution:   Add a test.
2019-08-03 22:55:50 +02:00
Bram Moolenaar
ac92e25a33 patch 8.1.1803: all builtin functions are global
Problem:    All builtin functions are global.
Solution:   Add the method call operator ->.  Implemented for a limited number
            of functions.
2019-08-03 21:58:38 +02:00
Bram Moolenaar
b2129068a5 patch 8.1.1802: missing change to call_callback()
Problem:    Missing change to call_callback().
Solution:   Add missing change.
2019-08-03 18:31:11 +02:00
Bram Moolenaar
505e43a20e patch 8.1.1801: cannot build without the +eval feature
Problem:    Cannot build without the +eval feature.
Solution:   Always define funcexe_T.
2019-08-03 18:28:17 +02:00
Bram Moolenaar
c6538bcc1c patch 8.1.1800: function call functions have too many arguments
Problem:    Function call functions have too many arguments.
Solution:   Pass values in a funcexe_T struct.
2019-08-03 18:17:11 +02:00
Bram Moolenaar
749fa0af85 patch 8.1.1799: cannot avoid mapping for a popup window
Problem:    Cannot avoid mapping for a popup window.
Solution:   Add the "mapping" property, default TRUE.
2019-08-03 16:18:07 +02:00
Bram Moolenaar
eda35f7127 patch 8.1.1798: warning for unused variable in tiny version
Problem:    Warning for unused variable in tiny version. (Tony Mechelynck)
Solution:   Move inside #ifdef.  Reformat code.
2019-08-03 14:59:44 +02:00
Bram Moolenaar
edd680f364 patch 8.1.1797: the vgetorpeek() function is too long
Problem:    The vgetorpeek() function is too long.
Solution:   Split off the part that handles mappings, with fix.
2019-08-03 14:23:48 +02:00
Bram Moolenaar
72e1b39111 patch 8.1.1796: :argdo is not tested
Problem:    :argdo is not tested
Solution:   Add a test.
2019-08-03 13:50:08 +02:00
Bram Moolenaar
c7f1e40021 patch 8.1.1795: no syntax HL after splitting windows with :bufdo
Problem:    No syntax HL after splitting windows with :bufdo. (Yasuhiro
            Matsumoto)
Solution:   Trigger Syntax autocommands in buffers that are active.
            (closes #4761)
2019-08-03 13:29:46 +02:00
Bram Moolenaar
f2d8b7a0a6 patch 8.1.1794: tests are flaky
Problem:    Tests are flaky.
Solution:   Undo the change to vgetorpeek().
2019-08-02 22:46:11 +02:00
Bram Moolenaar
1ccaa35abf patch 8.1.1793: mixed comment style in globals
Problem:    Mixed comment style in globals.
Solution:   Use // comments where appropriate.
2019-08-02 22:08:25 +02:00
Bram Moolenaar
dd00035cb5 patch 8.1.1792: the vgetorpeek() function is too long
Problem:    The vgetorpeek() function is too long.
Solution:   Split off the part that handles mappings.
2019-08-02 21:35:33 +02:00
Bram Moolenaar
50f91d22bd patch 8.1.1791: 'completeslash' also applies to globpath()
Problem:    'completeslash' also applies to globpath().
Solution:   Add the WILD_IGNORE_COMPLETESLASH flag. (test by Yasuhiro
            Matsumoto, closes #4760)
2019-08-02 19:52:15 +02:00
Bram Moolenaar
8750026a7f patch 8.1.1790: :mkvimrc is not tested
Problem:    :mkvimrc is not tested.
Solution:   Add a test.
2019-08-01 23:05:49 +02:00
Bram Moolenaar
90f3e7ac56 patch 8.1.1789: cannot see file name of preview popup window
Problem:    Cannot see file name of preview popup window.
Solution:   Add the file name as the title.
2019-08-01 22:40:44 +02:00
Bram Moolenaar
f4fd7ecbc0 patch 8.1.1788: missing changes in proto file
Problem:    missing changes in proto file
Solution:   Update proto file.
2019-08-01 21:26:00 +02:00
Bram Moolenaar
9bcb70c18a patch 8.1.1787: cannot resize a popup window
Problem:    Cannot resize a popup window.
Solution:   Allow for resizing by dragging the lower right corncer.
2019-08-01 21:11:05 +02:00
Bram Moolenaar
13b11eddca patch 8.1.1786: double click in popup scrollbar starts selection
Problem:    Double click in popup scrollbar starts selection.
Solution:   Ignore the double click.
2019-08-01 15:52:45 +02:00
Bram Moolenaar
b66bab381c patch 8.1.1785: map functionality mixed with character input
Problem:    Map functionality mixed with character input.
Solution:   Move the map functionality to a separate file. (Yegappan
            Lakshmanan, closes #4740)  Graduate the +localmap feature.
2019-08-01 14:28:24 +02:00
Bram Moolenaar
3f9bdeb2a5 patch 8.1.1784: MS-Windows: resolve() does not work if serial nr duplicated
Problem:    MS-Windows: resolve() does not work if serial nr duplicated.
Solution:   Use another method to get the full path. (Ken Takata, closes #4661)
2019-08-01 13:55:37 +02:00
Bram Moolenaar
dff2adc8dd patch 8.1.1783: MS-Windows: compiler test may fail when using %:S
Problem:    MS-Windows: compiler test may fail when using %:S.
Solution:   Reset 'shellslash'.
2019-07-31 22:18:22 +02:00
Bram Moolenaar
5477506a9f Update runtime files. 2019-07-31 21:07:14 +02:00
Bram Moolenaar
0e6bfb9b2e patch 8.1.1782: MS-Windows: system() has temp file error with 'noshelltemp'
Problem:    MS-Windows: system() has temp file error with 'noshelltemp'.
Solution:   Check s_dont_use_vimrun. (Ken Takata, closes #4754)
2019-07-31 20:53:56 +02:00
Bram Moolenaar
70576f70f7 patch 8.1.1781: Amiga: no builtin OS readable version info
Problem:    Amiga: no builtin OS readable version info.
Solution:   Add a "version" variable. (Ola Söder, closes #4753)
2019-07-31 20:40:08 +02:00
Bram Moolenaar
674e2bde6e patch 8.1.1780: warning for file no longer available is repeated
Problem:    Warning for file no longer available is repeated every time Vim is
            focused. (Brian Armstrong)
Solution:   Only give the message once. (closes #4748)
2019-07-31 20:21:01 +02:00
Bram Moolenaar
8edf0e3132 patch 8.1.1779: not showing the popup window right border is confusing
Problem:    Not showing the popup window right border is confusing.
Solution:   Also show the border when 'wrap' is off. (closes #4747)
2019-07-30 21:19:26 +02:00
Bram Moolenaar
8c8b88d0cc patch 8.1.1778: not showing the popup window right border is confusing
Problem:    Not showing the popup window right border is confusing.
Solution:   Also show the border when there is no close button. (closes #4747)
2019-07-30 20:32:41 +02:00
Bram Moolenaar
f386f08ccb patch 8.1.1777: useless checks for job feature in channel test
Problem:    Useless checks for job feature in channel test.
Solution:   Remove the checks.  Remove ch_log() calls.
2019-07-29 23:03:03 +02:00
Bram Moolenaar
4641a122f2 patch 8.1.1776: text added with a job isn't displayed
Problem:    Text added with a job to another buffer isn't displayed.
Solution:   Update topline after adding a line. (closes #4745)
2019-07-29 22:10:23 +02:00
Bram Moolenaar
eee9f65b2a patch 8.1.1775: error message may be empty in filetype test
Problem:    Error message may be empty in filetype test.
Solution:   Use v:exception instead. (Daniel Hahler, closs #4744)
2019-07-29 21:14:42 +02:00
Bram Moolenaar
3c610c9638 patch 8.1.1774: test is silently skipped
Problem:    Test is silently skipped.
Solution:   Throw "Skipped".
2019-07-29 21:03:45 +02:00
Bram Moolenaar
13d5c3f616 patch 8.1.1773: the preview popup window may be too far to the right
Problem:    The preview popup window may be too far to the right.
Solution:   Keep it inside the screen.  Also keep the close button and
            scrollbar visible if possible.
2019-07-28 21:42:38 +02:00
Bram Moolenaar
b78564d022 patch 8.1.1772: options test still fails on MS-Windows
Problem:    Options test still fails on MS-Windows.
Solution:   Check buffer-local value of 'completeslash'.
2019-07-28 19:24:36 +02:00
Bram Moolenaar
d4404b4391 patch 8.1.1771: options test fails on MS-Windows
Problem:    Options test fails on MS-Windows.
Solution:   Add correct and incorrect values for 'completeslash'.
2019-07-28 18:38:09 +02:00
Bram Moolenaar
56c0c4749d patch 8.1.1770: cannot get the window ID of the popup preview window
Problem:    Cannot get the window ID of the popup preview window.
Solution:   Add popup_getpreview().
2019-07-28 17:57:43 +02:00
Bram Moolenaar
ac3150d385 patch 8.1.1769: 'shellslash' is also used for completion
Problem:    'shellslash' is also used for completion.
Solution:   Add the 'completeslash' option. (Yasuhiro Matsumoto, closes #3612)
2019-07-28 16:36:39 +02:00
Bram Moolenaar
bca9c30193 patch 8.1.1768: man plugin changes setting in current window
Problem:    Man plugin changes setting in current window.
Solution:   Set options later. (Jason Franklin)
2019-07-28 15:28:45 +02:00
Bram Moolenaar
f96ae0b5a2 patch 8.1.1767: FEAT_SESSION defined separately
Problem:    FEAT_SESSION defined separately.
Solution:   Make FEAT_SESSION depend on FEAT_EVAL.
2019-07-28 15:21:55 +02:00
Bram Moolenaar
2a9c9f6d89 undo extra changes in src/Makefile 2019-07-28 14:17:56 +02:00
Bram Moolenaar
8453807911 patch 8.1.1766: code for writing session file is spread out
Problem:    Code for writing session file is spread out.
Solution:   Put it in one file. (Yegappan Lakshmanan, closes #4728)
2019-07-28 14:15:42 +02:00
Bram Moolenaar
f91aac5e3e patch 8.1.1765: get(func, dict, def) does not work properly
Problem:    get(func, dict, def) does not work properly.
Solution:   Handle NULL dict better. (Takuya Fujiwara, closes #4734)
2019-07-28 13:21:01 +02:00
Bram Moolenaar
5328cb8986 patch 8.1.1764: ":browse oldfiles" is not tested
Problem:    ":browse oldfiles" is not tested.
Solution:   Add a test.
2019-07-27 23:27:51 +02:00
Bram Moolenaar
9f9fe37f67 patch 8.1.1763: evalfunc.c is still too big
Problem:    Evalfunc.c is still too big.
Solution:   Move dict and list functions to a better place.
2019-07-27 23:12:12 +02:00
Bram Moolenaar
c273405188 patch 8.1.1762: some filetype rules are in the wrong place
Problem:    Some filetype rules are in the wrong place.
Solution:   Move to the right place.  Add a few more tests.
2019-07-27 21:57:21 +02:00
Bram Moolenaar
4248111497 patch 8.1.1761: filetype "vuejs" causes problems for some users
Problem:    Filetype "vuejs" causes problems for some users.
Solution:   Rename to "vue".
2019-07-27 21:39:13 +02:00
Bram Moolenaar
9800bfe0fc patch 8.1.1760: extra line break for wrapping output of :args
Problem:    Extra line break for wrapping output of :args.
Solution:   Avoid the extra line break. (Daniel Hahler, closes #4737)
2019-07-27 21:23:45 +02:00
Bram Moolenaar
14371ed697 patch 8.1.1759: no mode char for terminal mapping from maparg()
Problem:    No mode char for terminal mapping from maparg().
Solution:   Check for TERMINAL mode. (closes #4735)
2019-07-27 21:05:21 +02:00
Bram Moolenaar
d5c8234517 patch 8.1.1758: count of g$ not used correctly when text is not wrapped
Problem:    Count of g$ not used correctly when text is not wrapped.
Solution:   Do use the count. (Christian Brabandt, closes #4729, closes #4566)
2019-07-27 18:44:57 +02:00
Bram Moolenaar
2984666291 patch 8.1.1757: text added with appendbufline() isn't displayed
Problem:    Text added with appendbufline() to another buffer isn't displayed.
Solution:   Update topline. (partly by Christian Brabandt, closes #4718)
2019-07-27 17:39:15 +02:00
Bram Moolenaar
1417c766f5 patch 8.1.1756: autocommand that splits window messes up window layout
Problem:    Autocommand that splits window messes up window layout.
Solution:   Disallow splitting a window while closing one.  In ":all" give an
            error when moving a window will not work.
2019-07-27 17:31:36 +02:00
Bram Moolenaar
0aca293fed patch 8.1.1755: leaking memory when using a popup window mask
Problem:    Leaking memory when using a popup window mask.
Solution:   Free the cached mask.
2019-07-26 22:22:38 +02:00
Bram Moolenaar
4f0d002cf9 patch 8.1.1754: build failure
Problem:    Build failure.
Solution:   Add missing change to window struct.
2019-07-26 22:20:03 +02:00
Bram Moolenaar
e865dcbce1 patch 8.1.1753: use of popup window mask is inefficient
Problem:    Use of popup window mask is inefficient.
Solution:   Precompute and cache the mask.
2019-07-26 22:15:50 +02:00
Bram Moolenaar
7b73d7ebf7 patch 8.1.1752: resizing hashtable is inefficient
Problem:    Resizing hashtable is inefficient.
Solution:   Avoid resizing when the final size is predictable.
2019-07-26 21:26:34 +02:00
Bram Moolenaar
9d5ffceb3f patch 8.1.1751: when redrawing popups plines_win() may be called often
Problem:    When redrawing popups plines_win() may be called often.
Solution:   Pass a cache to mouse_comp_pos().
2019-07-26 21:01:29 +02:00
Bram Moolenaar
8a5c29aee9 patch 8.1.1750: depending on the terminal width :version may miss a line break
Problem:    Depending on the terminal width :version may miss a line break.
Solution:   Add a line break when needed.
2019-07-26 19:48:19 +02:00
Bram Moolenaar
736cd2cfbe patch 8.1.1749: Coverity warns for using negative index
Problem:    Coverity warns for using negative index.
Solution:   Move using index inside "if".
2019-07-25 21:58:19 +02:00
Bram Moolenaar
74da39373c patch 8.1.1748: :args output is not aligned
Problem:    :args output is not aligned.
Solution:   Output a line break after the last item in a row.
2019-07-25 21:52:39 +02:00
Bram Moolenaar
fbfb757d4c patch 8.1.1747: compiler warning for unused variables
Problem:    Compiler warning for unused variables. (Tony Mechelynck)
Solution:   Add #ifdef.
2019-07-25 20:53:03 +02:00
Bram Moolenaar
94f82cbacf patch 8.1.1746: ":dl" is seen as ":dlist" instead of ":delete"
Problem:    ":dl" is seen as ":dlist" instead of ":delete".
Solution:   Do not use cmdidxs2[] if the length is 1. (closes #4721)
2019-07-24 22:30:27 +02:00
Bram Moolenaar
1f164b1968 patch 8.1.1745: compiler warning for unused argument
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.  Change comments to new style.
2019-07-24 19:00:36 +02:00
Bram Moolenaar
07d1356648 patch 8.1.1744: build error without the conceal feature
Problem:    Build error without the conceal feature.
Solution:   Define variables also without the conceal feature.
2019-07-24 18:43:08 +02:00
Bram Moolenaar
bbca7732e8 patch 8.1.1743: 'hlsearch' and match highlighting in the wrong place
Problem:    'hlsearch' and match highlighting in the wrong place.
Solution:   Move highlighting from inside screen functions to highlight.c.
2019-07-24 18:13:16 +02:00
Bram Moolenaar
7dfb016d25 patch 8.1.1742: still some match functions in evalfunc.c
Problem:    Still some match functions in evalfunc.c.
Solution:   Move them to highlight.c.
2019-07-24 16:00:39 +02:00
Bram Moolenaar
4ef18dcc2e patch 8.1.1741: cleared/added match highlighting not updated in other window
Problem:    Cleared/added match highlighting not updated in other window.
            (Andi Massimino)
Solution:   Mark the right window for refresh.
2019-07-24 15:28:18 +02:00
Bram Moolenaar
d08b8c4c04 patch 8.1.1740: exepath() doesn't work for "bin/cat"
Problem:    Exepath() doesn't work for "bin/cat".
Solution:   Check for any path separator. (Daniel Hahler, closes #4724,
            closes #4710)
2019-07-24 14:59:45 +02:00
Bram Moolenaar
06029a857a patch 8.1.1739: deleted match highlighting not updated in other window
Problem:    Deleted match highlighting not updated in other window.
Solution:   Mark the window for refresh. (closes #4720)  Also fix that
            ambi-width check clears with wrong attributes.
2019-07-24 14:25:26 +02:00
Bram Moolenaar
9bc4dde45d patch 8.1.1738: testing lambda with timer is slow
Problem:    Testing lambda with timer is slow.
Solution:   Do not test timer accuracy, only that it works. (Daniel Hahler,
            closes #4723)
2019-07-24 13:08:29 +02:00
Bram Moolenaar
949f1989cb patch 8.1.1737: :args command that outputs one line gives more prompt
Problem:    :args command that outputs one line gives more prompt.
Solution:   Only output line break if needed. (Daniel Hahler, closes #4715)
2019-07-23 23:00:08 +02:00
Bram Moolenaar
c3328169d5 patch 8.1.1736: viminfo support is spread out
Problem:    Viminfo support is spread out.
Solution:   Move more viminfo code to viminfo.c. (Yegappan Lakshmanan,
            closes #4717)  Reorder code to make most functions static.
2019-07-23 22:15:25 +02:00
Bram Moolenaar
c61a48d259 patch 8.1.1735: can't build with tiny features
Problem:    Can't build with tiny features.
Solution:   Add missing #ifdefs.
2019-07-22 23:16:33 +02:00
Bram Moolenaar
29b7d7a9aa patch 8.1.1734: the evalfunc.c file is too big
Problem:    The evalfunc.c file is too big.
Solution:   Move some functions to other files.
2019-07-22 23:03:57 +02:00
Bram Moolenaar
e5e6950193 patch 8.1.1733: the man ftplugin leaves an empty buffer behind
Problem:    The man ftplugin leaves an empty buffer behind.
Solution:   Don't make new window and edit, use split. (Jason Franklin)
2019-07-22 22:09:21 +02:00
Bram Moolenaar
f03e328348 patch 8.1.1732: completion in cmdwin does not work for buffer-local commands
Problem:    Completion in cmdwin does not work for buffer-local commands.
Solution:   Use the right buffer. (closes #4711)
2019-07-22 21:55:18 +02:00
Bram Moolenaar
26b654a5df patch 8.1.1731: command line history not read from viminfo on startup
Problem:    Command line history not read from viminfo on startup.
Solution:   Get history length after initializing it.
2019-07-22 20:50:17 +02:00
Bram Moolenaar
1e78e69680 patch 8.1.1730: wrong place for mark viminfo support
Problem:    Wrong place for mark viminfo support.
Solution:   Move it to viminfo.c. (Yegappan Lakshmanan, closes #4716)
2019-07-22 20:18:27 +02:00
Bram Moolenaar
ecaa75b4ce patch 8.1.1729: heredoc with trim not properly handled in function
Problem:    Heredoc with trim not properly handled in function.
Solution:   Allow for missing indent. (FUJIWARA Takuya, closes #4713)
2019-07-21 23:04:21 +02:00
Bram Moolenaar
5f32ece459 patch 8.1.1728: wrong place for command line history viminfo support
Problem:    Wrong place for command line history viminfo support.
Solution:   Move it to viminfo.c.
2019-07-21 21:51:59 +02:00
Bram Moolenaar
defa067c54 patch 8.1.1727: code for viminfo support is spread out
Problem:    Code for viminfo support is spread out.
Solution:   Move to code to viminfo.c. (Yegappan Lakshmanan, closes #4686)
2019-07-21 19:25:37 +02:00
Bram Moolenaar
ed997adaa1 patch 8.1.1726: the eval.txt help file is too big
Problem:    The eval.txt help file is too big.
Solution:   Split off testing support to testing.txt.  Move function details
            to where the functionality is explained.
2019-07-21 16:42:00 +02:00
Bram Moolenaar
663bbc09ba patch 8.1.1725: MS-Windows: E325 message may use incorrect date format
Problem:    MS-Windows: E325 message may use incorrect date format.
Solution:   Convert strftime() result to 'encoding'.  Also make the message
            translatable. (Ken Takata, closes #4685, closes #4681)
2019-07-21 15:23:35 +02:00
Bram Moolenaar
b4fe0eb4b4 patch 8.1.1724: too much overhead checking for CTRL-C while processing text
Problem:    Too much overhead checking for CTRL-C while processing text.
Solution:   Increase BREAKCHECK_SKIP.  Remove the difference for when built
            with the GUI. (suggested by Andy Massimino, closes #4708)
2019-07-21 14:50:21 +02:00
Bram Moolenaar
2458200729 patch 8.1.1723: heredoc assignment has no room for new features
Problem:    Heredoc assignment has no room for new features. (FUJIWARA Takuya)
Solution:   Require the marker does not start with a lower case character.
            (closes #4705)
2019-07-21 14:14:26 +02:00
Bram Moolenaar
61343f0c44 patch 8.1.1722: error when scriptversion is 2 a making a dictionary access
Problem:    Error when scriptversion is 2 a making a dictionary access.
Solution:   Parse the subscript even when not evaluating the sub-expression.
            (closes #4704)
2019-07-20 21:11:13 +02:00
Bram Moolenaar
63187f7932 patch 8.1.1721: build failure with normal features without netbeans interface
Problem:    Build failure with normal features without netbeans interface.
Solution:   Enable signs when using the text properties feature.
2019-07-20 19:14:49 +02:00
Bram Moolenaar
2a5b52758b patch 8.1.1720: crash with very long %[] pattern
Problem:    Crash with very long %[] pattern. (Reza Mirzazade farkhani)
Solution:   Check for reg_toolong. (closes #4703)
2019-07-20 18:56:06 +02:00
Bram Moolenaar
331bafd481 patch 8.1.1719: popup too wide when 'showbreak' is set
Problem:    Popup too wide when 'showbreak' is set.
Solution:   Set window width when computing line length. (closes #4701)
2019-07-20 17:46:05 +02:00
Bram Moolenaar
cb5ff34c1b patch 8.1.1718: popup menu highlighting does not look good
Problem:    Popup menu highlighting does not look good.
Solution:   Highlight the whole window line.  Fix that sign line HL is not
            displayed in a window with a background color.
2019-07-20 16:51:19 +02:00
Bram Moolenaar
f914a33c9c patch 8.1.1717: last char in menu popup window highlighted
Problem:    Last char in menu popup window highlighted.
Solution:   Do not highlight an extra character twice.
2019-07-20 15:09:56 +02:00
Bram Moolenaar
ab0a789808 patch 8.1.1716: old style comments are wasting space
Problem:    Old style comments are wasting space
Solution:   Use new style comments in option header file.
2019-07-19 23:15:12 +02:00
Bram Moolenaar
06e6377009 patch 8.1.1715: emoji characters are seen as word characters for spelling
Problem:    Emoji characters are seen as word characters for spelling. (Gautam
            Iyer)
Solution:   Exclude class 3 from word characters.
2019-07-19 23:04:34 +02:00
Bram Moolenaar
85850f3a5e Update runtime files 2019-07-19 22:05:51 +02:00
Bram Moolenaar
7964873afe patch 8.1.1714: cannot preview a file in a popup window
Problem:    Cannot preview a file in a popup window.
Solution:   Add the 'previewpopup' option.
2019-07-18 21:43:07 +02:00
Bram Moolenaar
df9c6cad8c patch 8.1.1713: highlighting cursor line only works with popup_menu()
Problem:    Highlighting cursor line only works with popup_menu().
Solution:   Add the "cursorline" property. (Naruhiko Nishino, closes #4671)
2019-07-18 13:46:42 +02:00
Bram Moolenaar
d6bcff4577 patch 8.1.1712: signs in number column cause text to be misaligned
Problem:    Signs in number column cause text to be misaligned.
Solution:   Improve alignment. (Yasuhiro Matsumoto, closes #4694)
2019-07-18 12:48:16 +02:00
Bram Moolenaar
acf7544cf6 patch 8.1.1711: listener callback called at the wrong moment
Problem:    Listener callback called at the wrong moment
Solution:   Invoke listeners before calling ml_delete_int(). (closes #4657)
2019-07-17 22:55:35 +02:00
Bram Moolenaar
4a0a161a9b patch 8.1.1710: Coverity found dead code
Problem:    Coverity found dead code.
Solution:   Remove merging of listener changes.
2019-07-17 22:00:19 +02:00
Bram Moolenaar
403d090e39 patch 8.1.1709: Coverity warns for possibly using a NULL pointer
Problem:    Coverity warns for possibly using a NULL pointer.
Solution:   Make sure no NULL pointer is used.
2019-07-17 21:37:32 +02:00
Bram Moolenaar
3fb4f4762b patch 8.1.1708: Coverity warns for using uninitialized variable
Problem:    Coverity warns for using uninitialized variable.
Solution:   Set the start col when col is set.
2019-07-17 21:32:14 +02:00
Bram Moolenaar
cfdbc5adde patch 8.1.1707: Coverity warns for possibly using a NULL pointer
Problem:    Coverity warns for possibly using a NULL pointer.
Solution:   Change the logic to make sure no NULL pointer is used.
2019-07-17 21:27:52 +02:00
Bram Moolenaar
99a764bccd patch 8.1.1706: typo in #ifdef
Problem:    Typo in #ifdef.
Solution:   Change PROT to PROTO.
2019-07-17 20:01:48 +02:00
Bram Moolenaar
4c6d90458b patch 8.1.1705: using ~{} for a literal dict is not nice
Problem:    Using ~{} for a literal dict is not nice.
Solution:   Use #{} instead.
2019-07-16 22:04:02 +02:00
Bram Moolenaar
69a5b86794 patch 8.1.1704: C-R C-W does not work after C-G when using 'incsearch'
Problem:    C-R C-W does not work after C-G when using 'incsearch'.
Solution:   Put cursor at end of the match. (Yasuhiro Matsumoto, closes #4664)
2019-07-16 21:38:51 +02:00
Bram Moolenaar
6138640806 patch 8.1.1703: breaking out of loop by checking window pointer insufficient
Problem:    Breaking out of loop by checking window pointer is insufficient.
Solution:   Check the window ID and the buffer number. (closes #4683)
2019-07-16 21:19:55 +02:00
Bram Moolenaar
c7283078c3 patch 8.1.1702: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it. (Christian Brabandt)
2019-07-16 20:12:44 +02:00
Bram Moolenaar
7ce2aa01c2 patch 8.1.1701: Appveyor build with MSVC fails puts progress bar in log
Problem:    Appveyor build with MSVC fails puts progress bar in log.
Solution:   Adjust the sed command. (Ken Takata)
2019-07-16 20:00:11 +02:00
Bram Moolenaar
250e3112c6 patch 8.1.1700: listener callback called for the wrong buffer
Problem:    Listener callback called for the wrong buffer.
Solution:   Invoke listeners before calling ml_append_int().
2019-07-15 23:02:14 +02:00
Bram Moolenaar
2ac6e82a4e patch 8.1.1699: highlight_ga can be local instead of global
Problem:    Highlight_ga can be local instead of global.
Solution:   Move highlight_ga into highlight.c. (Yegappan Lakshmanan,
            closes #4675)
2019-07-15 22:40:22 +02:00
Bram Moolenaar
5d6844566a patch 8.1.1698: Appveyor build with MSVC fails
Problem:    Appveyor build with MSVC fails.
Solution:   Remove the sed command
2019-07-15 22:03:40 +02:00
Bram Moolenaar
c9afd15bc8 patch 8.1.1697: cannot build with MSVC
Problem:    Cannto build with MSVC.
Solution:   Remove the backslashes after the @<< mechanism.
2019-07-15 21:15:05 +02:00
Bram Moolenaar
cea2a15687 patch 8.1.1696: MSVC: link command line is too long
Problem:    MSVC: link command line is too long.
Solution:   Use the @<< mechanism to pass the arguments via a file. (Christian
            Brabandt)
2019-07-15 20:44:57 +02:00
Bram Moolenaar
f49a692259 patch 8.1.1695: Windows 10: crash when cursor is at bottom of terminal
Problem:    Windows 10: crash when cursor is at bottom of terminal.
Solution:   Position the cursor before resizing. (Yasuhiro Matsumoto,
            closes #4679)
2019-07-15 20:37:05 +02:00
Bram Moolenaar
41a8260445 patch 8.1.1694: the RUN_VIM variable is longer than needed
Problem:    The RUN_VIM variable is longer than needed.
Solution:   Shorten RUN_VIM. (Daniel Hahler, closes #4643)
2019-07-14 21:54:26 +02:00
Bram Moolenaar
f9cc9f209e patch 8.1.1693: syntax coloring and highlighting is in one big file
Problem:    Syntax coloring and highlighting is in one big file.
Solution:   Move the highlighting to a separate file. (Yegappan Lakshmanan,
            closes #4674)
2019-07-14 21:29:22 +02:00
Bram Moolenaar
b8be54dcc5 patch 8.1.1692: using *{} for literal dict is not backwards compatible
Problem:    Using *{} for literal dict is not backwards compatible. (Yasuhiro
            Matsumoto)
Solution:   Use ~{} instead.
2019-07-14 18:22:59 +02:00
Bram Moolenaar
37d9f175a4 patch 8.1.1691: diff test fails on some systems
Problem:    Diff test fails on some systems. (Elimar Riesebieter)
Solution:   Add a term_wait() call.
2019-07-14 17:26:46 +02:00
Bram Moolenaar
0346413c24 patch 8.1.1690: default padding for popup window menu is too much
Problem:    Default padding for popup window menu is too much.
Solution:   Only add padding left and right.
2019-07-14 16:28:13 +02:00
Bram Moolenaar
660a10ad41 patch 8.1.1689: profiling code is spread out
Problem:    Profiling code is spread out.
Solution:   Move more profiling code to profiler.c. (Yegappan Lakshmanan,
            closes #4668)
2019-07-14 15:48:38 +02:00
Bram Moolenaar
1850b14c0d patch 8.1.1688: old makefiles are no longer useful
Problem:    Old makefiles are no longer useful.
Solution:   Delete the makefiles, they most likely don't work anyway.
2019-07-14 15:09:59 +02:00
Bram Moolenaar
ecaa70ea29 patch 8.1.1687: the evalfunc.c file is too big
Problem:    The evalfunc.c file is too big.
Solution:   Move testing support to a separate file.
2019-07-14 14:55:39 +02:00
Bram Moolenaar
2898ebb44c patch 8.1.1686: "*" of "*{" is recognized as multipy operator
Problem:    "*" of "*{" is recognized as multipy operator. (Yasuhiro Matsumoto)
Solution:   Check for the "{".
2019-07-14 13:41:34 +02:00
Bram Moolenaar
a099da3572 patch 8.1.1685: missing file in distributed file list
Problem:    Missing file in distributed file list.
Solution:   Add profiling.pro
2019-07-13 23:06:26 +02:00
Bram Moolenaar
396e829fa3 Update runtime files 2019-07-13 23:04:31 +02:00
Bram Moolenaar
fa55cfc69d patch 8.1.1684: profiling functionality is spread out
Problem:    Profiling functionality is spread out.
Solution:   Put profiling functionality in profiling.c. (Yegappan Lakshmanan,
            closes #4666)
2019-07-13 22:59:32 +02:00
Bram Moolenaar
d5abb4c877 patch 8.1.1683: dictionary with string keys is longer than needed
Problem:    Dictionary with string keys is longer than needed.
Solution:   Use *{key: val} for literaly keys.
2019-07-13 22:46:10 +02:00
Bram Moolenaar
809ce4d317 patch 8.1.1682: placing a larger number of signs is slow
Problem:    Placing a larger number of signs is slow.
Solution:   Add functions for dealing with a list of signs. (Yegappan
            Lakshmanan, closes #4636)
2019-07-13 21:21:40 +02:00
Bram Moolenaar
0fb286e82d patch 8.1.1681: insert stray "{" when listener gets buffer line
Problem:    Insert stray "{" when listener gets buffer line. (Paul Jolly)
Solution:   Flush the cached line after invoking listeners. (closes #4455)
2019-07-13 20:14:45 +02:00
Bram Moolenaar
63d0dad874 patch 8.1.1680: the command table is not well aligned
Problem:    The command table is not well aligned.
Solution:   Adjust indent.
2019-07-13 18:17:23 +02:00
Bram Moolenaar
eaa49e40d7 patch 8.1.1679: test using SwapExists autocommand file may fail
Problem:    Test using SwapExists autocommand file may fail.
Solution:   Remove the SwapExists autocommand.
2019-07-13 18:08:59 +02:00
Bram Moolenaar
a901a37bae patch 8.1.1678: using popup_menu() does not scroll to show the selected line
Problem:    When using popup_menu() does not scroll to show the selected line.
Solution:   Scroll the text. (Naruhiko Nishino, closes #4651)
2019-07-13 16:38:50 +02:00
Bram Moolenaar
b073da8929 patch 8.1.1677: tests get stuck when running into an existing swapfile
Problem:    Tests get stuck when running into an existing swapfile.
Solution:   Set v:swapchoice to "q" and report an error. (Daniel Hahler,
            closes #4644)
2019-07-13 14:47:26 +02:00
Bram Moolenaar
017c269938 patch 8.1.1676: "maxwidth" of popup window does not always work properly
Problem:    "maxwidth" of popup window does not always work properly.
Solution:   Adjust the computation. (Naruhiko Nishino, closes #4653)
2019-07-13 14:17:51 +02:00
Bram Moolenaar
7b73f914c4 patch 8.1.1675: listener list not correctly updated on listener_remove()
Problem:    Listener list not correctly updated on listener_remove().
Solution:   Only set "prev" when not removing a listener.  Return one if the
            listener was found and removed.
2019-07-13 13:03:02 +02:00
Bram Moolenaar
4e63f9425e patch 8.1.1674: script to check a colorscheme can be improved
Problem:    Script to check a colorscheme can be improved.
Solution:   Match the whole group name. Don't warn for what is usually omitted.
2019-07-12 22:46:47 +02:00
Bram Moolenaar
b4f0628fc5 patch 8.1.1673: cannot easily find the popup window at a certain position
Problem:    Cannot easily find the popup window at a certain position.
Solution:   Add popup_locate().
2019-07-12 21:07:54 +02:00
Bram Moolenaar
d94ac0caca patch 8.1.1672: "make cmdidxs" doesn't work
Problem:    "make cmdidxs" doesn't work.
Solution:   Update macro names. (Naruhiko Nishino, closes #4660)
2019-07-12 20:24:59 +02:00
Bram Moolenaar
b7b9efbccf patch 8.1.1671: copying a blob may result in it being locked
Problem:    Copying a blob may result in it being locked.
Solution:   Reset v_lock. (Ken Takata, closes #4648)
2019-07-12 20:17:03 +02:00
Bram Moolenaar
0231f8312b patch 8.1.1670: sign column not always properly aligned
Problem:    Sign column not always properly aligned.
Solution:   Use "col" only after it was calculated. (Yee Cheng Chin,
            closes #4649)
2019-07-12 19:22:22 +02:00
Bram Moolenaar
efef9fea72 patch 8.1.1669: Travis: test results section is closed even when failed
Problem:    Travis: test results section is closed even when some tests
            failed.
Solution:   Only close the section on success. (Daniel Hahler, closes #4659)
2019-07-12 18:45:40 +02:00
Bram Moolenaar
8ccabf624e patch 8.1.1668: popup window test is a bit flaky on some systems
Problem:    Popup window test is a bit flaky on some systems.
Solution:   Clear the command line. (Naruhiko Nishino, closes #4656)
2019-07-12 18:12:51 +02:00
Bram Moolenaar
8071cb2c64 patch 8.1.1667: flags for Ex commands may clash with other symbols
Problem:    Flags for Ex commands may clash with other symbols.
Solution:   Prepend with EX_.
2019-07-12 17:58:01 +02:00
Bram Moolenaar
bd42b31780 patch 8.1.1666: click in popup window scrollbar with border doesn't scroll
Problem:    Click in popup window scrollbar with border doesn't scroll.
Solution:   Correct column for the border. (Naruhiko Nishino, closes #4650)
2019-07-12 16:35:34 +02:00
Bram Moolenaar
b420747478 patch 8.1.1665: crash when popup window with mask is below the screen
Problem:    Crash when popup window with mask is below the screen.
Solution:   Correct boundary check.
2019-07-12 16:05:45 +02:00
Bram Moolenaar
847a5d69a8 patch 8.1.1664: GUI resize may cause changing Rows at a bad time
Problem:    GUI resize may cause changing Rows at a bad time. (Dominique
            Pelle)
Solution:   Postpone resizing while updating the screen.
2019-07-12 15:37:13 +02:00
Bram Moolenaar
1072768b91 patch 8.1.1663: compiler warning for using size_t
Problem:    Compiler warning for using size_t.
Solution:   Add type cast. (Mike Williams)
2019-07-12 13:59:20 +02:00
Bram Moolenaar
e28cfb2812 patch 8.1.1662: cannot build uninstal.exe with some version of MinGW
Problem:    Cannot build uninstal.exe with some version of MinGW.
Solution:   Add -lole32. (Rene Nyffenegger, closes #4646)
2019-07-11 22:04:21 +02:00
Bram Moolenaar
247bf0de46 patch 8.1.1661: cannot build with +textprop but without +balloon_eval
Problem:    Cannot build with +textprop but without +balloon_eval.
Solution:   Adjust #ifdefs. (closes #4645)
2019-07-10 22:21:48 +02:00
Bram Moolenaar
7780e5c1c5 patch 8.1.1660: assert_fails() does not fail inside try/catch
Problem:    Assert_fails() does not fail inside try/catch.
Solution:   Set trylevel to zero. (Ozaki Kiichi, closes #4639)
2019-07-10 22:04:48 +02:00
Bram Moolenaar
b05caa782d patch 8.1.1659: popup window "mousemoved" values not correct
Problem:    Popup window "mousemoved" values not correct.
Solution:   Convert text column to mouse column.
2019-07-10 21:55:54 +02:00
Bram Moolenaar
3b849af90a patch 8.1.1658: debug statements included in patch
Problem:    Debug statements included in patch.
Solution:   Remove the debug statements.
2019-07-10 16:15:04 +02:00
Bram Moolenaar
7ba343e634 patch 8.1.1657: Terminal: screen updates from 'balloonexpr' are not displayed
Problem:    Terminal: screen updates from 'balloonexpr' are not displayed.
Solution:   Update the screen if needed.  Fix the word position for
            "mousemoved".
2019-07-09 23:22:15 +02:00
Bram Moolenaar
e089c3fd69 patch 8.1.1656: popup window width is wrong when using Tabs
Problem:    Popup window width is wrong when using Tabs. (Paul Jolly)
Solution:   Count tabs correctly. (closes #4637)
2019-07-09 20:25:25 +02:00
Bram Moolenaar
3dabd718f4 patch 8.1.1655: popup window border drawn wrong with multi-byte char
Problem:    Popup window border drawn wrong with multi-byte char. (Marcin
            Szamotulski)
Solution:   Correct check in mb_fix_col(). (closes #4635)
2019-07-08 23:30:22 +02:00
Bram Moolenaar
8a7383b6d2 patch 8.1.1654: GUI: screen updates from 'balloonexpr' are not displayed
Problem:    GUI: screen updates from 'balloonexpr' are not displayed.
Solution:   Update the screen if needed.  Also avoid the cursor being
            displayed in the wrong position.
2019-07-08 22:23:33 +02:00
Bram Moolenaar
0d07155c8b patch 8.1.1653: ubsan warns for possibly passing NULL pointer
Problem:    Ubsan warns for possibly passing NULL pointer.
Solution:   Skip code when length is zero. (Dominique Pelle, closes #4631)
2019-07-08 22:04:03 +02:00
Bram Moolenaar
49fe95f225 patch 8.1.1652: GUI: popup window doesn't close on mouse movement
Problem:    GUI: popup window doesn't close on mouse movement. (Paul Jolly)
Solution:   Generate mouse-move events when a popup window is visible.
2019-07-08 21:57:30 +02:00
Bram Moolenaar
9992244226 patch 8.1.1651: suspend test is flaky on some systems
Problem:    Suspend test is flaky on some systems.
Solution:   Wait for the shell prompt to show. (Yee Cheng Chin, closes #4632)
2019-07-08 20:58:25 +02:00
Bram Moolenaar
ee9e604124 patch 8.1.1650: warning for using uninitialized variable
Problem:    Warning for using uninitialized variable. (Tony Mechelynck)
Solution:   Simplify the code by always using the mouse coordinates.
2019-07-08 20:08:44 +02:00
Bram Moolenaar
3e35d05b1f patch 8.1.1649: Illegal memory access when closing popup window
Problem:    Illegal memory access when closing popup window.
Solution:   Get w_next before closing the window.
2019-07-07 20:43:34 +02:00
Bram Moolenaar
3f3e954d96 patch 8.1.1648: MS-Windows: build error with normal feaures
Problem:    MS-Windows: build error with normal feaures.
Solution:   Adjust #ifdef for find_word_under_cursor().
2019-07-07 20:30:48 +02:00
Bram Moolenaar
d84b2c3d88 patch 8.1.1647: build error with GTK and hangulinput feature
Problem:    Build error with GTK and hangulinput feature, im_get_status()
            defined twice. (Dominique Pelle)
Solution:   Adjust im_get_status(). (closes #4628)
2019-07-07 19:16:58 +02:00
Bram Moolenaar
56a6312099 patch 8.1.1646: build failure
Problem:    build failure
Solution:   Add changes to structure.
2019-07-07 18:38:34 +02:00
Bram Moolenaar
b3d17a20d2 patch 8.1.1645: cannot use a popup window for a balloon
Problem:    Cannot use a popup window for a balloon.
Solution:   Add popup_beval().  Add the "mousemoved" property.  Add the
            screenpos() function.
2019-07-07 18:28:14 +02:00
Bram Moolenaar
5b19e5b919 patch 8.1.1644: sound test does not work on Travis
Problem:    Sound test does not work on Travis.
Solution:   Use "sg" command to enable audio. (Ozaki Kiichi, closes #4624)
2019-07-07 15:12:12 +02:00
Bram Moolenaar
899f20deae patch 8.1.1643: sign placement is wrong when 'foldcolumn' is set
Problem:    Sign placement is wrong when 'foldcolumn' is set.
Solution:   Adjust the column computation. (Yee Cheng Chin, closes #4627)
2019-07-07 14:56:25 +02:00
Bram Moolenaar
ec572ad6a6 patch 8.1.1642: may use uninitialized variable
Problem:    May use uninitialized variable. (Patrick Palka)
Solution:   Initialize variables earlier. (closes #4623)
2019-07-07 14:26:59 +02:00
Bram Moolenaar
6cc7e21412 patch 8.1.1641: garbage collection may run at a wrong moment
Problem:    Garbage collection may run at a wrong moment. (Trygve Aaberge)
Solution:   Postpone garbage collection while parsing messages. (closes #4620)
2019-07-07 14:05:24 +02:00
Bram Moolenaar
c2f5054be9 patch 8.1.1640: the CursorHold autocommand takes down a balloon
Problem:    The CursorHold autocommand takes down a balloon. (Paul Jolly)
Solution:   Ignore the CursorHold pseudo-key.
2019-07-05 23:24:56 +02:00
Bram Moolenaar
28fc247f8d patch 8.1.1639: changing an autoload name into a file name is inefficient
Problem:    Changing an autoload name into a script file name is inefficient.
Solution:   Remember the last replaced #. (Ozaki Kiichi, closes #4618)
2019-07-05 22:14:16 +02:00
Bram Moolenaar
3940ec6d41 patch 8.1.1638: running tests leaves some files behind
Problem:    Running tests leaves some files behind.
Solution:   Delete the files. (Ozaki Kiichi, closes #4617)
2019-07-05 21:53:24 +02:00
Bram Moolenaar
4f5b0e5355 patch 8.1.1637: after running tests and clean the XfakeHOME directory remains
Problem:    After running tests and clean the XfakeHOME directory remains.
Solution:   Use "rm -rf". (Hirohito Higashi)
2019-07-05 20:43:52 +02:00
Bram Moolenaar
437a746b4c patch 8.1.1636: crash when popup has fitting scrollbar
Problem:    Crash when popup has fitting scrollbar. (Trygve Aaberge)
Solution:   Don't divide by zero if the scrollbar just fits. (closes #4615)
2019-07-05 20:17:22 +02:00
Bram Moolenaar
b4d9b893d3 patch 8.1.1635: warnings for unused variables in small version
Problem:    Warnings for unused variables in small version. (John Marriott)
Solution:   Adjust #ifdefs.
2019-07-04 22:59:06 +02:00
Bram Moolenaar
981d9dc8f3 patch 8.1.1634: terminal test fails when term_getansicolors() is missing
Problem:    Terminal test fails when term_getansicolors() is missing.
            Diff test fails without +rightleft.  (Dominique Pelle)
Solution:   Check if term_getansicolors() is supported. (closes #4597)
2019-07-04 22:32:39 +02:00
Bram Moolenaar
b7ed839976 patch 8.1.1633: cannot generate prototypes with X11 but without GUI
Problem:    Cannot generate prototypes with X11 but without GUI.
Solution:   Include X11/Intrinsic.h.
2019-07-04 21:24:34 +02:00
Bram Moolenaar
48ac671fe5 patch 8.1.1632: build with EXITFREE but without +arabic fails
Problem:    Build with EXITFREE but without +arabic fails.
Solution:   Rename the function and adjust #ifdefs. (closes #4613)
2019-07-04 20:26:21 +02:00
Bram Moolenaar
4e038571aa patch 8.1.1631: displaying signs is inefficient
Problem:    Displaying signs is inefficient.
Solution:   Avoid making multiple calls to get information about a placed
            sign. (Yegappan Lakshmanan, closes #4586)
2019-07-04 18:28:35 +02:00
Bram Moolenaar
e809a4ed30 patch 8.1.1630: various small problems
Problem:    Various small problems.
Solution:   Various small improvements.
2019-07-04 17:35:05 +02:00
Bram Moolenaar
790c18bfa5 Update runtime files 2019-07-04 17:22:06 +02:00
Bram Moolenaar
6bf2c6264b patch 8.1.1629: terminal function help is in the wrong file
Problem:    Terminal function help is in the wrong file.
Solution:   Move the function details to terminal.txt.
2019-07-04 17:12:09 +02:00
Bram Moolenaar
931a277145 patch 8.1.1628: popup window functions not in list of functions
Problem:    Popup window functions not in list of functions.
Solution:   Add popup window functins to the list of functions.  Reorganise
            the popup window help.
2019-07-04 16:54:54 +02:00
Bram Moolenaar
6cb39f924a patch 8.1.1627: header file contains mixed comment style
Problem:    Header file contains mixed comment style.
Solution:   Use // style comments.
2019-07-04 16:05:14 +02:00
Bram Moolenaar
5ca1ac373a patch 8.1.1626: no test for closing a popup window with a modified buffer
Problem:    No test for closing a popup window with a modified buffer.
Solution:   Add a test.  Add "popups" to getbufinfo().
2019-07-04 15:39:28 +02:00
Bram Moolenaar
bc2cfe4672 patch 8.1.1625: script line numbers are not exactly right
Problem:    Script line numbers are not exactly right.
Solution:   Handle heredoc and continuation lines better. (Ozaki Kiichi,
            closes #4611, closes #4511)
2019-07-04 14:57:12 +02:00
Bram Moolenaar
0d702028fe patch 8.1.1624: when testing in the GUI may try to run gvim in a terminal
Problem:    When testing in the GUI may try to run gvim in a terminal.
Solution:   Add the -v argument. (Yee Cheng Chin, closes #4605)  Don't skip
            tests that work now.
2019-07-04 14:20:41 +02:00
Bram Moolenaar
e4b407f536 patch 8.1.1623: display wrong with signs in narrow number column
Problem:    Display wrong with signs in narrow number column.
Solution:   Increase the numbercolumn width if needed. (Yegappan Lakshmanan,
            closes #4606)
2019-07-04 11:59:28 +02:00
Bram Moolenaar
e296e3177b patch 8.1.1622: wrong width if displaying a lot of lines in a popup window
Problem:    Wrong width if displaying a lot of lines in a popup window.
Solution:   Accurately compute the line overflow.
2019-07-03 23:20:18 +02:00
Bram Moolenaar
80edda1cf5 patch 8.1.1621: Amiga: time.h included twice
Problem:    Amiga: time.h included twice.
Solution:   Remove include from evalfunc.c, move outside of #ifdef in
            os_amiga.h. (Ola Söder, closes #4607)
2019-07-03 22:53:06 +02:00
Bram Moolenaar
ba45f1f4fb patch 8.1.1620: no test for popup window with border and mask
Problem:    No test for popup window with border and mask.
Solution:   Add this popup window, fix problems.
2019-07-03 22:50:41 +02:00
Bram Moolenaar
435f9f06ca patch 8.1.1619: tests are not run with GUI on Travis
Problem:    Tests are not run with GUI on Travis.
Solution:   Add a testgui job. (Ozaki Kiichi, closes #4609)
2019-07-03 21:40:16 +02:00
Bram Moolenaar
9ee3d161f7 patch 8.1.1618: Amiga-like systems quickly run out of stack
Problem:    Amiga-like systems quickly run out of stack.
Solution:   Reserve a Megabyte stack. (Ola Söder, closes #4608)
2019-07-02 23:22:43 +02:00
Bram Moolenaar
d529ba58dc patch 8.1.1617: no test for popup window with mask and position fixed
Problem:    No test for popup window with mask and position fixed.
Solution:   Add a couple of screenshots.  Fix deteced problems.
2019-07-02 23:13:53 +02:00
Bram Moolenaar
8531dc66e8 patch 8.1.1616: build failure with gcc on Amiga
Problem:    Build failure with gcc on Amiga.
Solution:   Add missing header includes. (Ola Söder, closes #4603)
2019-07-01 22:28:20 +02:00
Bram Moolenaar
7866b87958 patch 8.1.1615: crash when passing buffer number to popup_create()
Problem:    Crash when passing buffer number to popup_create(). (Yasuhiro
            Matsumoto)
Solution:   Initialze the window properly.
2019-07-01 22:21:01 +02:00
Bram Moolenaar
f8a0712655 patch 8.1.1614: 'numberwidth' can only go up to 10
Problem:    'numberwidth' can only go up to 10.
Solution:   Allow up to 20. (Charlie Stanton, closes #4584)
2019-07-01 22:06:07 +02:00
Bram Moolenaar
a83e70000f patch 8.1.1613: popup window test fails with Athena and Motif
Problem:    Popup window test fails with Athena and Motif.
Solution:   Compute the highlight attribut when the GUI is not active.
2019-07-01 21:47:35 +02:00
Bram Moolenaar
5b8cfedfbd patch 8.1.1612: cannot show an existing buffer in a popup window
Problem:    Cannot show an existing buffer in a popup window.
Solution:   Support buffer number argument in popup_create().
2019-06-30 22:16:10 +02:00
Bram Moolenaar
892ae723ab patch 8.1.1611: bufadd() reuses existing buffer without a name
Problem:    Bufadd() reuses existing buffer without a name.
Solution:   When the name is empty always create a new buffer.
2019-06-30 20:33:01 +02:00
Bram Moolenaar
15e248e37f patch 8.1.1610: there is no way to add or load a buffer without side effects
Problem:    There is no way to add or load a buffer without side effects.
Solution:   Add the bufadd() and bufload() functions.
2019-06-30 20:21:37 +02:00
Bram Moolenaar
2e62b568e9 patch 8.1.1609: the user cannot easily close a popup window
Problem:    The user cannot easily close a popup window.
Solution:   Add the "close" property. (mostly by Masato Nishihata,
            closes #4601)
2019-06-30 18:07:00 +02:00
Bram Moolenaar
b60d8514b8 patch 8.1.1608: the evalfunc.c file is too big
Problem:    The evalfunc.c file is too big.
Solution:   Move sign functionality to sign.c.
2019-06-29 07:59:04 +02:00
Bram Moolenaar
f9c85f580b patch 8.1.1608: the evalfunc.c file is too big
Problem:    The evalfunc.c file is too big.
Solution:   Move sign functionality to sign.c.
2019-06-29 07:41:35 +02:00
Bram Moolenaar
548be7f126 patch 8.1.1606: on a narrow screen ":hi" output is confusing
Problem:    On a narrow screen ":hi" output is confusing.
Solution:   Insert a space between highlight group name and "xxx". (Masato
            Nishihaga, closes #4599)
2019-06-29 03:42:42 +02:00
Bram Moolenaar
4340fc95d5 patch 8.1.1605: Vim may delay processing messages on a json channel
Problem:    Vim may delay processing messages on a json channel. (Pontus
            Leitzler)
Solution:   Try parsing json when checking if there is readahead.
2019-06-28 22:06:49 +02:00
Bram Moolenaar
13b47c37a6 patch 8.1.1604: popup window scroll test is flaky
Problem:    Popup window scroll test is flaky.
Solution:   Add a delay between scroll events.
2019-06-28 21:55:48 +02:00
Bram Moolenaar
d74af4227b patch 8.1.1603: crash when using unknown highlighting in text property
Problem:    Crash when using unknown highlighting in text property.
Solution:   Check for zero highlight ID.
2019-06-28 21:38:00 +02:00
Bram Moolenaar
711d02c96d patch 8.1.1602: popup window cannot overflow on the left or right
Problem:    Popup window cannot overflow on the left or right.
Solution:   Only set the "fixed" option when it is in the dict. Set w_leftcol
            to allow for the popup overflowing on the left and use it when
            applying the mask.
2019-06-28 04:06:50 +02:00
Bram Moolenaar
8da4181631 patch 8.1.1601: missing changes to popup window test file
Problem:    Missing changes to popup window test file.
Solution:   Add those changes.
2019-06-26 18:04:54 +02:00
Bram Moolenaar
4cd583c6da patch 8.1.1600: cannot specify highlighting for popup window scrollbar
Problem:    Cannot specify highlighting for popup window scrollbar.
Solution:   Add "scrollbarhighlight" and "thumbhighlight" options.
2019-06-26 05:13:57 +02:00
Bram Moolenaar
6efd76ae4a patch 8.1.1599: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Add a dummy assignment.
2019-06-26 04:06:57 +02:00
Bram Moolenaar
53a95d6584 patch 8.1.1598: update to test file missing
Problem:    Update to test file missing.
Solution:   Update the popup window test file.
2019-06-26 03:54:08 +02:00
Bram Moolenaar
68acb41f99 patch 8.1.1597: cannot scroll a popup window with the mouse
Problem:    Cannot scroll a popup window with the mouse.
Solution:   If the popup window has a scrollbar let the mouse scroll wheel
            scroll the window.
2019-06-26 03:40:36 +02:00
Bram Moolenaar
c2a4316500 patch 8.1.1596: when resizing the screen may draw popup in wrong position
Problem:    When resizing the screen may draw popup in wrong position. (Masato
            Nishihata)
Solution:   Check the popup is not outside of the screen. (fixes #4592)
2019-06-26 01:03:53 +02:00
Bram Moolenaar
88c47aa692 patch 8.1.1595: MS-Windows with VIMDLL: colors wrong in console
Problem:    MS-Windows with VIMDLL: colors wrong in console.
Solution:   Do not set the GUI colors when not using the GUI. (Ken Takata,
            closes #4588)
2019-06-26 00:34:15 +02:00
Bram Moolenaar
2eed9bafa0 patch 8.1.1594: may still start file dialog while exiting
Problem:    May still start file dialog while exiting.
Solution:   Ignore the "browse" modifier in another place when exiiting.
            (Ozaki Kiichi, closes #4582)
2019-06-25 23:40:29 +02:00
Bram Moolenaar
6a7af8e2db patch 8.1.1593: filetype not detected for C++ header files without extension
Problem:    Filetype not detected for C++ header files without extension.
Solution:   Recognize the file by the Emacs file mode. (Dmitry Ilyin,
            closes #4593)
2019-06-25 21:34:26 +02:00
Bram Moolenaar
5c381eb9e7 patch 8.1.1592: may start file dialog while exiting
Problem:    May start file dialog while exiting.
Solution:   Ignore the "browse" modifier when exiting. (Ozaki Kiichi,
            closes #4582
2019-06-25 06:50:31 +02:00
Bram Moolenaar
7d491c4253 patch 8.1.1591: on error garbage collection may free memory in use
Problem:    On error garbage collection may free memory in use.
Solution:   Reset may_garbage_collect when evaluating expression mapping.
            Add tests. (Ozaki Kiichi, closes #4579)
2019-06-25 06:28:02 +02:00
Bram Moolenaar
6c6a603cd2 patch 8.1.1590: popup window test fails
Problem:    Popup window test fails.
Solution:   Add "scrollbar" to expected result.
2019-06-25 05:33:36 +02:00
Bram Moolenaar
75fb0854e9 patch 8.1.1589: popup window does not indicate scroll position
Problem:    Popup window does not indicate scroll position.
Solution:   Add a scrollbar.
2019-06-25 05:15:58 +02:00
Bram Moolenaar
e96a2498f9 patch 8.1.1588: in :let-heredoc line continuation is recognized
Problem:    In :let-heredoc line continuation is recognized.
Solution:   Do not consume line continuation. (Ozaki Kiichi, closes #4580)
2019-06-25 04:12:16 +02:00
Bram Moolenaar
2b044ffb5a patch 8.1.1587: redraw problem when sign icons in the number column
Problem:    Redraw problem when sign icons in the number column.
Solution:   Clear and redraw when changing related options.  Right aligh the
            sign icon in the GUI. (Yegappan Lakshmanan, closes #4578)
2019-06-24 05:45:14 +02:00
Bram Moolenaar
b2cda0dd1d patch 8.1.1586: error number used in two places
Problem:    Error number used in two places.
Solution:   Renumber one. (Ken Takata)
2019-06-24 05:06:36 +02:00
Bram Moolenaar
e7eb92708e patch 8.1.1585: :let-heredoc does not trim enough
Problem:    :let-heredoc does not trim enough.
Solution:   Trim indent from the contents based on the indent of the first
            line.  Use let-heredoc in more tests.
2019-06-24 00:58:07 +02:00
Bram Moolenaar
0a1f56fcfe patch 8.1.1584: the evalfunc.c file is getting too big
Problem:    The evalfunc.c file is getting too big.
Solution:   Move channel and job related functions to channel.c.
2019-06-24 00:43:35 +02:00
Bram Moolenaar
7be3ab2589 patch 8.1.1583: set_ref_in_list() only sets ref in items
Problem:    Set_ref_in_list() only sets ref in items.
Solution:   Rename to set_ref_in_list_items() to avoid confusion.
2019-06-23 01:46:15 +02:00
Bram Moolenaar
0fcf26ba4f patch 8.1.1582: cannot build with +textprop but without +timers
Problem:    Cannot build with +textprop but without +timers.
Solution:   Add #ifdef. (Ola Söder, closes #4574)
2019-06-23 01:03:51 +02:00
Bram Moolenaar
7a39dd7f00 patch 8.1.1581: shared functions for testing are disorganised
Problem:    Shared functions for testing are disorganised.
Solution:   Group finctions in script files. (Ozaki Kiichi, closes #4573)
2019-06-23 00:50:15 +02:00
Bram Moolenaar
c662ec9978 patch 8.1.1580: cannot make part of a popup transparent
Problem:    Cannot make part of a popup transparent.
Solution:   Add the "mask" option.
2019-06-23 00:15:57 +02:00
Bram Moolenaar
6c1e1570b1 Update runtime files 2019-06-22 02:13:00 +02:00
Bram Moolenaar
adc6714aac patch 8.1.1579: dict and list could be GC'ed while displaying error
Problem:    Dict and list could be GC'ed while displaying error in a timer.
            (Yasuhiro Matsumoto)
Solution:   Block garbage collection when executing a timer.  Add
            test_garbagecollect_soon(). Add "no_wait_return" to
            test_override(). (closes #4571)
2019-06-22 01:40:42 +02:00
Bram Moolenaar
dfc1455728 patch 8.1.1578: MS-Windows: pathdef.c should depend on build options
Problem:    MS-Windows: pathdef.c should depend on build options.
Solution:   Generate pathdef.c in the object directory.  Fix dependencies.
            (Ken Takata, closes #4565)
2019-06-21 17:36:10 +02:00
Bram Moolenaar
693f7dc818 patch 8.1.1577: command line redrawn for +arabic without Arabic characters
Problem:    Command line redrawn for +arabic without Arabic characters.
            (Dominique Pelle)
Solution:   Check if there actually are any Arabic characters.  Do redraw
            after displaying incsearch. (closes #4569)
2019-06-21 02:30:38 +02:00
Bram Moolenaar
405bb42734 patch 8.1.1576: compiler warning for unused argument
Problem:    Compiler warning for unused argument.
Solution:   Add "UNUSED" annotation. (Dominique Pelle, closes #4570)
2019-06-21 00:12:29 +02:00
Bram Moolenaar
75a1a9415b patch 8.1.1575: callbacks may be garbage collected
Problem:    Callbacks may be garbage collected.
Solution:   Set reference in callbacks. (Ozaki Kiichi, closes #4564)
2019-06-20 03:45:36 +02:00
Bram Moolenaar
a3fce62c91 patch 8.1.1574: tabpage option not yet implemented for popup window
Problem:    Tabpage option not yet implemented for popup window.
Solution:   Implement tabpage option, also for popup_getoptions().
2019-06-20 02:31:49 +02:00
Bram Moolenaar
37e66cf0f6 patch 8.1.1573: textprop test fails if screenhots do not work
Problem:    Textprop test fails if screenhots do not work.
Solution:   Add check for screenhots working.
2019-06-19 18:16:10 +02:00
Bram Moolenaar
e9726e31fe patch 8.1.1572: compiler warnings with tiny build
Problem:    Compiler warnings with tiny build. (Tony Mechelynck)
Solution:   Add #ifdef.
2019-06-19 18:01:21 +02:00
Bram Moolenaar
a956bf6ca3 patch 8.1.1571: textprop highlight starts too early if just after a tab
Problem:    textprop highlight starts too early if just after a tab.
Solution:   Check if still drawing a previous character. (closes #4558)
2019-06-19 17:34:24 +02:00
Bram Moolenaar
4dff4aed09 patch 8.1.1570: icon signs not displayed properly in the number column
Problem:    Icon signs not displayed properly in the number column.
Solution:   Display them properly. (Yegappan Lakshmanan, closes #4559)
2019-06-19 16:31:28 +02:00
Bram Moolenaar
bf8c3adef2 patch 8.1.1569: cannot build with signs but without diff feature
Problem:    Cannot build with signs but without diff feature.
Solution:   Move #ifdef. (Tom Ryder)
2019-06-19 14:28:43 +02:00
Bram Moolenaar
87652a7e3b patch 8.1.1568: strftime() test fails on MS-Windows
Problem:    Strftime() test fails on MS-Windows.
Solution:   Skip the check for using the $TZ environment variable.
2019-06-18 23:07:37 +02:00
Bram Moolenaar
db51730df1 patch 8.1.1567: localtime_r() does not respond to $TZ changes
Problem:    Localtime_r() does not respond to $TZ changes.
Solution:   If $TZ changes then call tzset(). (Tom Ryder)
2019-06-18 22:53:24 +02:00
Bram Moolenaar
517f71ab17 patch 8.1.1566: error message when terminal closes in another tab
Problem:    Error message when terminal closes while it is not in the current
            tab.
Solution:   Also set "do_set_w_closing" when using the special autocommand
            window. (closes #4552)
2019-06-17 22:40:41 +02:00
Bram Moolenaar
9b283523f2 patch 8.1.1565: MS-Windows: no sound support
Problem:    MS-Windows: no sound support.
Solution:   Add sound support for MS-Windows. (Yasuhiro Matsumoto, Ken Takata,
            closes #4522)
2019-06-17 22:19:33 +02:00
Bram Moolenaar
394c5d8870 patch 8.1.1564: sign column takes up space
Problem:    Sign column takes up space.  (Adam Stankiewicz)
Solution:   Optionally put signs in the number column. (Yegappan Lakshmanan,
            closes #4555, closes #4515)
2019-06-17 21:48:05 +02:00
Bram Moolenaar
6e5000d493 patch 8.1.1563: crash when using closures
Problem:    Crash when using closures.
Solution:   Set reference in varlist of funccal when running the garbage
            collector. (Ozaki Kiichi, closes #4554, closes #4547)
2019-06-17 21:18:41 +02:00
Bram Moolenaar
ad24a71e22 patch 8.1.1562: popup window not always redrawn after popup_setoptions()
Problem:    Popup window not always redrawn after popup_setoptions().
Solution:   Force a redraw.
2019-06-17 20:05:45 +02:00
Bram Moolenaar
ae943150d3 patch 8.1.1561: popup_setoptions() is not implemented yet
Problem:    Popup_setoptions() is not implemented yet.
Solution:   Implement popup_setoptions().  Also add more fields to
            popup_getoptions().
2019-06-16 22:54:14 +02:00
Bram Moolenaar
6313c4f41d patch 8.1.1560: popup window hidden option not implemented yet
Problem:    Popup window hidden option not implemented yet.
Solution:   Implement the hidden option.
2019-06-16 20:39:13 +02:00
Bram Moolenaar
eb2310d47d patch 8.1.1559: popup window title property not implemented yet
Problem:    Popup window title property not implemented yet.
Solution:   Implement the title property.
2019-06-16 20:09:10 +02:00
Bram Moolenaar
a730e55cc2 patch 8.1.1558: popup_menu() and popup_filter_menu() are not implemented yet
Problem:    Popup_menu() and popup_filter_menu() are not implemented yet.
Solution:   Implement the functions. Fix that centering didn't take the border
            and padding into account.
2019-06-16 19:05:31 +02:00
Bram Moolenaar
983f2f1403 patch 8.1.1557: compiler warning for unused variables in tiny version
Problem:    Compiler warning for unused variables in tiny version. (Tony
            Mechelynck)
Solution:   Add #ifdef.
2019-06-16 16:41:41 +02:00
Bram Moolenaar
8a5c7ef9bb patch 8.1.1556: command for failing screenshot does not include directory
Problem:    The command displayed to show a failing screenshot does not include
            the "testdir" directory.
Solution:   Prefix the directory name so that it can be copy-pasted.
2019-06-16 16:14:20 +02:00
Bram Moolenaar
8cdbd5b3c4 patch 8.1.1555: NOT_IN_POPUP_WINDOW is confusing
Problem:    NOT_IN_POPUP_WINDOW is confusing. (Andy Massimino)
Solution:   Rename to ERROR_IF_POPUP_WINDOW().
2019-06-16 15:50:45 +02:00
Bram Moolenaar
1c196e7b17 patch 8.1.1554: docs and tests for :const can be improved
Problem:    Docs and tests for :const can be improved.
Solution:   Improve documentation, add a few more tests. (Ryuichi Hayashida,
            closes #4551)
2019-06-16 15:41:58 +02:00
Bram Moolenaar
dc2ce58b5a patch 8.1.1553: not easy to change the text in a popup window
Problem:    Not easy to change the text in a popup window.
Solution:   Add popup_settext(). (Ben Jackson, closes #4549)
            Also display a space for an empty popup.
2019-06-16 15:32:14 +02:00
Bram Moolenaar
f85e40afc2 patch 8.1.1552: cursor position is wrong after sign column changes
Problem:    Cursor position is wrong after sign column appears or disappears.
            (Yegappan Lakshmanan)
Solution:   Call changed_line_abv_curs() instead of changed_cline_bef_curs().
2019-06-16 13:55:40 +02:00
Bram Moolenaar
6c17543b56 patch 8.1.1551: warning for shadowing popup_dragwin
Problem:    Warning for shadowing popup_dragwin. (Dominique Pelle)
Solution:   Add missing change.
2019-06-15 23:10:30 +02:00
Bram Moolenaar
51c3131040 patch 8.1.1550: when a popup has left padding text may be cut off
Problem:    When a popup has left padding text may be cut off.
Solution:   Add the border and padding when computing the size.
2019-06-15 22:27:23 +02:00
Bram Moolenaar
61eeeea8e6 patch 8.1.1549: quickfix test fails
Problem:    Quickfix test fails.
Solution:   Negate result of bt_quickfix().
2019-06-15 21:56:17 +02:00
Bram Moolenaar
a42d945efc patch 8.1.1548: popup_dialog() is not implemented
Problem:    Popup_dialog() is not implemented.
Solution:   Implement popup_dialog() and popup_filter_yesno().
2019-06-15 21:46:30 +02:00
Bram Moolenaar
26910de8b0 patch 8.1.1547: functionality of bt_nofile() is confusing
Problem:    Functionality of bt_nofile() is confusing.
Solution:   Split into bt_nofile() and bt_nofilename().
2019-06-15 19:37:15 +02:00
Bram Moolenaar
0331faf712 patch 8.1.1546: in some tests 'tags' is set but not restored
Problem:    In some tests 'tags' is set but not restored. (Daniel Hahler)
Solution:   Restore 'tags'. (closes #4535)
2019-06-15 18:40:37 +02:00
Bram Moolenaar
45aa07d3c1 patch 8.1.1545: when the screen is to small there is no message about that
Problem:    When the screen is to small there is no message about that.
            (Daniel Hahler)
Solution:   Do not use :cquit. (closes #4534)
2019-06-15 18:20:38 +02:00
Bram Moolenaar
b46fecd345 patch 8.1.1544: some balloon tests don't run when they can
Problem:    Some balloon tests don't run when they can.
Solution:   Split GUI balloon tests off into a separate file. (Ozaki Kiichi,
            closes #4538)  Change the feature check into a command for
            consistency.
2019-06-15 17:58:09 +02:00
Bram Moolenaar
b6e3b88ec8 patch 8.1.1543: const test fails with small features
Problem:    Const test fails with small features.
Solution:   Don't unlet non-existing variables.
2019-06-15 17:50:57 +02:00
Bram Moolenaar
d7c9687947 patch 8.1.1542: an OptionSet autocommand does not get enough info
Problem:    An OptionSet autocommand does not get enough info.
Solution:   Add v:option_command, v:option_oldlocal and v:option_oldglobal.
            (Latrice Wilgus, closes #4118)
2019-06-15 17:12:48 +02:00
Bram Moolenaar
bffc50494d patch 8.1.1541: check for ASAN is not reliable
Problem:    Check for ASAN is not reliable.
Solution:   Check the version output. (Dominique Pelle, closes #4543)
2019-06-15 16:34:21 +02:00
Bram Moolenaar
0abb4273f6 patch 8.1.1540: cannot build without the +eval feature
Problem:    Cannot build without the +eval feature.
Solution:   Define ex_const if needed.
2019-06-15 16:06:00 +02:00
Bram Moolenaar
9937a05543 patch 8.1.1539: not easy to define a variable and lock it
Problem:    Not easy to define a variable and lock it.
Solution:   Add ":const".
2019-06-15 15:45:06 +02:00
Bram Moolenaar
dfa97f2aed patch 8.1.1538: cannot specify highlighting for notifications
Problem:    Cannot specify highlighting for notifications.
Solution:   Use the PopupNotification group if it exists. Add a minimal width
            to notifications.
2019-06-15 14:31:55 +02:00
Bram Moolenaar
fc06cbbf86 patch 8.1.1537: using "tab" for popup window can be confusing
Problem:    Using "tab" for popup window can be confusing.
Solution:   Use "tabpage". (Hirohito Higashi, closes #4532)
2019-06-15 14:14:31 +02:00
Bram Moolenaar
1755ec4278 patch 8.1.1536: popup select test still fails on Mac
Problem:    Popup select test still fails on Mac.
Solution:   Set 'clipboard' to "autoselect"
2019-06-15 13:13:54 +02:00
Bram Moolenaar
650a63748c patch 8.1.1535: popup select test fails on Mac
Problem:    Popup select test fails on Mac.
Solution:   Skip test if clipboard feature not available.
2019-06-15 00:29:33 +02:00
Bram Moolenaar
bd75b5333d patch 8.1.1534: modeless selection in popup window selects too much
Problem:    Modeless selection in popup window selects too much.
Solution:   Restrict the selection to insde of the popup window.
2019-06-14 23:41:55 +02:00
Bram Moolenaar
2fc39aeeb5 patch 8.1.1533: GUI build fails on Mac
Problem:    GUI build fails on Mac.
Solution:   Change VimClipboard type in non-C file.
2019-06-14 23:27:29 +02:00
Bram Moolenaar
d2cea96f6c patch 8.1.1532: build fails
Problem:    Build fails.
Solution:   Add missing changes.
2019-06-14 23:14:45 +02:00
Bram Moolenaar
0554fa478d patch 8.1.1531: clipboard type name is inconsistent
Problem:    Clipboard type name is inconsistent.
Solution:   Rename VimClipboard to Clipboard_T.
2019-06-14 21:36:54 +02:00
Bram Moolenaar
f42397c395 patch 8.1.1530: Travis config is not optimal
Problem:    Travis config is not optimal.
Solution:   Remove system conditions.  Do not use excluding matrix. Cache OSX
            results. (Ozaki Kiichi, closes #4521)
2019-06-14 20:47:49 +02:00
Bram Moolenaar
21606676d9 patch 8.1.1529: libcanberra is linked with even when not used
Problem:    Libcanberra is linked with even when not used.
Solution:   Have configure check for libcanberra only when wanted.
            (suggestions by Libor Bukata)
2019-06-14 20:40:58 +02:00
Bram Moolenaar
b4086ffa32 patch 8.1.1528: popup_any_visible() is unused
Problem:    Popup_any_visible() is unused.
Solution:   Remove it.
2019-06-14 20:00:48 +02:00
Bram Moolenaar
a540f8aa3b patch 8.1.1527: when moving popup window over the cmdline it is not redrawn
Problem:    When moving a popup window over the command line it is not
            redrawn.
Solution:   Redraw the command line. Move popup redrawing code to the popupwin
            file.
2019-06-14 19:23:57 +02:00
Bram Moolenaar
37df9a4401 patch 8.1.1526: no numerical value for the patchlevel
Problem:    No numerical value for the patchlevel.
Solution:   Add v:versionlong.
2019-06-14 14:39:51 +02:00
Bram Moolenaar
b53fb31a1e patch 8.1.1525: cannot move a popup window with the mouse
Problem:    Cannot move a popup window with the mouse.
Solution:   Add the "drag" property and make it possible to drag a popup
            window by its border.
2019-06-13 23:59:52 +02:00
Bram Moolenaar
b0f94c1ff3 patch 8.1.1524: tests are silently skipped
Problem:    Tests are silently skipped.
Solution:   Throw an exception for skipped tests in more places.
2019-06-13 22:19:53 +02:00
Bram Moolenaar
8d24104031 patch 8.1.1523: cannot show range of buffer lines in popup window
Problem:    Cannot show range of buffer lines in popup window.
Solution:   Add the "firstline" property. (closes #4523)
2019-06-12 23:40:01 +02:00
Bram Moolenaar
68d48f40a4 patch 8.1.1522: poup_notification() not implemented yet
Problem:    Popup_notification() not implemented yet.
Solution:   Implement it.
2019-06-12 22:42:41 +02:00
Bram Moolenaar
7c7f01e2b2 patch 8.1.1521: when a popup window is closed the buffer remains
Problem:    When a popup window is closed the buffer remains.
Solution:   Wipe out the buffer.
2019-06-12 21:06:32 +02:00
Bram Moolenaar
451d4b5b7c patch 8.1.1520: popup windows are ignored when dealing with mouse position
Problem:    Popup windows are ignored when dealing with mouse position
Solution:   Find the mouse position inside a popup window.  Allow for modeless
            selection.
2019-06-12 20:22:27 +02:00
Bram Moolenaar
06e2c81f6d patch 8.1.1519: 'backupskip' may contain duplicates
Problem:    'backupskip' may contain duplicates.
Solution:   Add the P_NODUP flag. (Tom Ryder)
2019-06-12 19:05:48 +02:00
Bram Moolenaar
202d982b36 patch 8.1.1518: crash when setting 'columns' while a popup is visible
Problem:    Crash when setting 'columns' while a popup is visible.
Solution:   Recompute all positions when clearing the screen. (closes #4467)
2019-06-11 21:56:30 +02:00
Bram Moolenaar
12ee7ff00b Update runtime files 2019-06-10 22:47:40 +02:00
Bram Moolenaar
4c063a0dab patch 8.1.1517: when a popup changes all windows are redrawn
Problem:    When a popup changes all windows are redrawn.
Solution:   Only update the lines that were affected.  Add a file for
            profiling popup windows efficiency.
2019-06-10 21:24:12 +02:00
Bram Moolenaar
640d4f0c97 patch 8.1.1516: time reported for a test measured wrong
Problem:    Time reported for a test measured wrong.
Solution:   Move the computation to the end of RunTheTest(). (Ozaki Kiichi,
            closes #4520)
2019-06-10 17:43:46 +02:00
Bram Moolenaar
82febc16e4 patch 8.1.1515: memory leak reported for sound when build with EXITFREE
Problem:    Memory leak reported for sound when build with EXITFREE.
Solution:   Free sound stuff when exiting.
2019-06-10 14:48:59 +02:00
Bram Moolenaar
01257a7a8e patch 8.1.1514: MS-Windows: wrong shell command with ! in 'guioptions'
Problem:    MS-Windows: wrong shell command with ! in 'guioptions'.
Solution:   Do not check for ! in 'guioptions' when applying 'shellxquote'.
            (Yasuhiro Matsumoto, closes #4519)
2019-06-10 14:46:04 +02:00
Bram Moolenaar
3ff5f0f05d patch 8.1.1513: all popup functionality is in functions, except :popupclear
Problem:    All popup functionality is in functions, except :popupclear.
Solution:   Add popup_clear() for consistency.  Also rename sound_stopall() to
            sound_clear().
2019-06-10 13:11:22 +02:00
Bram Moolenaar
38ea784fec patch 8.1.1512: ch_evalexpr() hangs when used recursively
Problem:    ch_evalexpr() hangs when used recursively. (Paul Jolly)
Solution:   Change ch_block_id from a single number to a list of IDs to wait
            on.
2019-06-09 19:51:58 +02:00
Bram Moolenaar
ac2450a9a8 patch 8.1.1511: matches in a popup window are not displayed properly
Problem:    Matches in a popup window are not displayed properly.
Solution:   Do display matches in a popup window. (closes #4517)
2019-06-09 18:04:28 +02:00
Bram Moolenaar
80dad48c50 patch 8.1.1510: a plugin cannot easily expand a command like done internally
Problem:    A plugin cannot easily expand a command like done internally.
Solution:   Add the expandcmd() function. (Yegappan Lakshmanan, closes #4514)
2019-06-09 17:22:31 +02:00
Bram Moolenaar
954bb06363 patch 8.1.1509: cmdline_row can become negative, causing a crash
Problem:    Cmdline_row can become negative, causing a crash.
Solution:   Make sure cmdline_row does not become negagive. (closes #4102)
2019-06-09 16:40:46 +02:00
Bram Moolenaar
541faf7a73 patch 8.1.1508: sound keeps failing on Travis
Problem:    Sound keeps failing on Travis.
Solution:   Throw a skipped exception in the test.
2019-06-09 15:35:41 +02:00
Bram Moolenaar
a90998d93a patch 8.1.1507: sound test still fails on Travis
Problem:    Sound test still fails on Travis.
Solution:   Try another dummy sound approach.
2019-06-09 15:21:27 +02:00
Bram Moolenaar
b29cfb8c28 patch 8.1.1506: syntax error in Travis config
Problem:    Syntax error in Travis config.
Solution:   Set AUDIODEV in another section.
2019-06-09 14:51:30 +02:00
Bram Moolenaar
8ed75cb0b4 patch 8.1.1505: running "make clean" twice gives errors
Problem:    Running "make clean" twice gives errors.
Solution:   Add "-f" to "rm". (closes #4516)
2019-06-09 14:39:13 +02:00
Bram Moolenaar
ef23c527bd patch 8.1.1504: sound test still fails on Travis
Problem:    Sound test still fails on Travis.
Solution:   Add more lines to the install section.
2019-06-09 14:15:29 +02:00
Bram Moolenaar
ffa60dda0a patch 8.1.1503: sound test fails on Travis
Problem:    Sound test fails on Travis.
Solution:   Set AUDIODEV to "null".
2019-06-09 13:56:27 +02:00
Bram Moolenaar
427f5b66ce patch 8.1.1502: cannot play any sound
Problem:    Cannot play any sound.
Solution:   Use libcanberra if available.  Add sound functions.
2019-06-09 13:43:51 +02:00
Bram Moolenaar
260addf795 patch 8.1.1501: new behavior of b:changedtick not tested
Problem:    New behavior of b:changedtick not tested.
Solution:   Add a few test cases. (Daniel Hahler)
2019-06-08 20:48:36 +02:00
Bram Moolenaar
21f8d93c71 patch 8.1.1500: wrong shell command when building with VIMDLL and "!" in 'go'
Problem:    Wrong shell command when building with VIMDLL and "!" in
            'guioptions'.
Solution:   Add check for GUI in use. (Ken Takata)
2019-06-08 20:17:18 +02:00
Bram Moolenaar
24a5ac5d4d patch 8.1.1499: ruler not updated after popup window was removed
Problem:    Ruler not updated after popup window was removed.
Solution:   use popup_mask in screen_puts().
2019-06-08 19:01:18 +02:00
Bram Moolenaar
c024b46678 patch 8.1.1498: ":write" increments b:changedtick even though nothing changed
Problem:    ":write" increments b:changedtick even though nothing changed.
            (Daniel Hahler)
Solution:   Only increment b:changedtick if the modified flag is reset.
2019-06-08 18:07:21 +02:00
Bram Moolenaar
aef5c62a6f patch 8.1.1497: accessing memory beyond allocated space
Problem:    Accessing memory beyond allocated space.
Solution:   Check column before accessing popup mask.
2019-06-08 17:25:33 +02:00
Bram Moolenaar
acc682bd7c patch 8.1.1496: popup window height is not recomputed
Problem:    Popup window height is not recomputed.
Solution:   Recompute the height when needed.
2019-06-08 17:15:51 +02:00
Bram Moolenaar
1748c7f77e patch 8.1.1495: memory access error
Problem:    Memory access error.
Solution:   Use the correct size for clearing the popup mask.
2019-06-08 16:55:15 +02:00
Bram Moolenaar
6c009a3974 patch 8.1.1494: build failure
Problem:    Build failure.
Solution:   Add missing changes.
2019-06-08 16:06:28 +02:00
Bram Moolenaar
33796b39b9 patch 8.1.1493: redrawing with popups is slow and causes flicker
Problem:    Redrawing with popups is slow and causes flicker.
Solution:   Avoid clearing and redrawing using a zindex mask.
2019-06-08 16:01:13 +02:00
Bram Moolenaar
7c348bb5ad patch 8.1.1492: MS-Windows: when "!" is in 'guioptions' ":!start" fails
Problem:    MS-Windows: when "!" is in 'guioptions' ":!start" fails.
Solution:   Do not use a terminal window when the shell command begins with
            "!start". (Yasuhiro Matsumoto, closes #4504)
2019-06-08 12:05:22 +02:00
Bram Moolenaar
6064073841 patch 8.1.1491: when skipping over code a function call may cause trouble
Problem:    When skipping over code after an exception was thrown expression
            evaluation is aborted after a function call. (Ingo Karkat)
Solution:   Do not fail if not executing the expression. (closes #4507)
2019-06-07 23:15:22 +02:00
Bram Moolenaar
4e0bf84627 patch 8.1.1490: when a single test fails the exit code is not set
Problem:    When a single test fails the exit code is not set. (Daniel Hahler)
Solution:   Add an exit command. (closes #4506)
2019-06-07 22:40:25 +02:00
Bram Moolenaar
64416127fc patch 8.1.1489: sign order wrong when priority was changed
Problem:    Sign order wrong when priority was changed.
Solution:   Reorder signs when priority is changed. (Yegappan Lakshmanan,
            closes #4502)
2019-06-07 21:37:13 +02:00
Bram Moolenaar
150f0550f4 patch 8.1.1488: summary of tests has incorrect failed count
Problem:    Summary of tests has incorrect failed count.
Solution:   Add to the failed count instead of setting it. (Christian Brabandt)
2019-06-07 21:29:50 +02:00
Bram Moolenaar
62a88f498a patch 8.1.1487: older msgfmt cannot generate proper .desktop file
Problem:    Older msgfmt cannot generate proper .desktop file.
Solution:   Add a configure check to not use this msgfmt version. (Ken Takata)
2019-06-07 20:44:40 +02:00
Bram Moolenaar
1253704591 patch 8.1.1486: a listener change is merged even when it adds a line
Problem:    A listener change is merged even when it adds a line. (Paul Jolly)
Solution:   Do not merge a change that adds or removes a line. (closes #4490)
2019-06-06 22:50:35 +02:00
Bram Moolenaar
773a97c254 Update runtime files - Add typescript syntax and indent. 2019-06-06 20:39:55 +02:00
Bram Moolenaar
c07f67ad0e patch 8.1.1485: double free when garbage_collect() is used in autocommand
Problem:    Double free when garbage_collect() is used in autocommand.
Solution:   Have garbage collection also set the copyID in funccal_stack.
2019-06-06 19:03:17 +02:00
Bram Moolenaar
75ee544f99 patch 8.1.1484: some tests are slow
Problem:    Some tests are slow.
Solution:   Add timing to the test messages.  Fix double free when quitting in
            VimLeavePre autocmd.
2019-06-06 18:05:25 +02:00
Bram Moolenaar
5d30ff1964 patch 8.1.1483: skipped tests are not properly listed
Problem:    Skipped tests are not properly listed.
Solution:   Throw a "Skipped" exception instead of using ":finish" or ":return".
2019-06-06 16:12:12 +02:00
Bram Moolenaar
f6d50f1da8 patch 8.1.1482: no test for wincol() depending on the 'number' option
Problem:    No test for wincol() depending on the 'number' option.
Solution:   Add a couple of tests. (Christian Brabandt, closes #4500)
2019-06-06 15:40:08 +02:00
Bram Moolenaar
12e71eb8a8 patch 8.1.1481: length for two-digit rgb termresponse is off by one
Problem:    Length for two-digit rgb termresponse is off by one.
Solution:   Adjust the length. (closes #4494)
2019-06-06 15:19:31 +02:00
Bram Moolenaar
8e228e21cc patch 8.1.1480: desktop file check doesn't run on CI
Problem:    Desktop file check doesn't run on CI.
Solution:   Install the desktip-file-utils packages. (Christian Brabandt,
            closes #4498)
2019-06-06 15:13:19 +02:00
Bram Moolenaar
133c737357 patch 8.1.1479: change included for debugging only
Problem:    Change included for debugging only.
Solution:   Restore the REDIR_TEST_TO_NULL line.
2019-06-06 14:38:06 +02:00
Bram Moolenaar
18250e291a patch 8.1.1478: still an error when running tests with the tiny version
Problem:    Still an error when running tests with the tiny version.
Solution:   Do not try reading test.log
2019-06-06 14:28:54 +02:00
Bram Moolenaar
c7500f9cb5 patch 8.1.1477: test summary fails in the tiny version
Problem:    Test summary fails in the tiny version.
Solution:   set 'nocompatible'.
2019-06-06 14:08:50 +02:00
Bram Moolenaar
9c0cec65f8 patch 8.1.1476: no statistics displayed after running tests
Problem:    No statistics displayed after running tests.
Solution:   Summarize the test results. (Christian Brabandt, closes #4391)
            Also make it possible to report a skipped file.
2019-06-06 13:38:15 +02:00
Bram Moolenaar
db294adc65 patch 8.1.1475: search string not displayed when 'rightleft' is set
Problem:    Search string not displayed when 'rightleft' is set.
Solution:   Clear the right part of the old text. (closes #4488, closes #4489)
2019-06-06 12:49:29 +02:00
Bram Moolenaar
9aeb33639f patch 8.1.1474: 'ttybuiltin' is not tested
Problem:    'ttybuiltin' is not tested.
Solution:   At least test that it doesn't break things.
2019-06-06 12:36:15 +02:00
Bram Moolenaar
4a792c87b9 patch 8.1.1473: new resolve() implementation causes problem for plugins
Problem:    New resolve() implementation causes problem for plugins.
Solution:   Only resolve a resparse point after checking it is needed. (Ken
            Takata, closes #4492)
2019-06-06 12:22:41 +02:00
Bram Moolenaar
61da1bfa6c Update runtime files. 2019-06-06 12:14:49 +02:00
Bram Moolenaar
de6dbb452a patch 8.1.1472: add_termcap_entry() is not tested
Problem:    Add_termcap_entry() is not tested.
Solution:   Add a simple test.
2019-06-06 11:59:18 +02:00
Bram Moolenaar
32e1977012 patch 8.1.1471: 'background' not correctly set for 2-digit rgb termresponse
Problem:    'background' not correctly set for 2-digit rgb termresponse.
Solution:   Adjust what digit to use. (closes #4495)
2019-06-05 22:57:04 +02:00
Bram Moolenaar
6d718c4c38 patch 8.1.1470: new Unicode character U32FF missing from double-width table
Problem:    New Unicode character U32FF missing from double-width table.
Solution:   Add the character.
2019-06-05 22:46:13 +02:00
Bram Moolenaar
66761db11d patch 8.1.1469: no test for checking the cursor style response
Problem:    No test for checking the cursor style response.
Solution:   Add a simple test.  Also include the missing part of 8.1.1464.
2019-06-05 22:07:51 +02:00
Bram Moolenaar
d0380dc782 patch 8.1.1468: the generated desktop files may be invalid
Problem:    The generated desktop files may be invalid.
Solution:   Check validity with desktop-file-validate. (Christian Brabandt,
            Will Thompson, closes #4480)
2019-06-05 21:25:34 +02:00
Bram Moolenaar
d6ec1730ba patch 8.1.1467: cscope test fails
Problem:    Cscope test fails.
Solution:   Update expected text.
2019-06-04 23:20:23 +02:00
Bram Moolenaar
58a7f87c86 patch 8.1.1466: not updating priority on existing sign
Problem:    Not updating priority on existing sign.
Solution:   Set the sign priority.  Add a test. (Yegappan Lakshmanan)
2019-06-04 22:48:15 +02:00
Bram Moolenaar
a37833dbd7 patch 8.1.1465: allocating wrong amount of memory
Problem:    Allocating wrong amount of memory. (Yegappan Lakshmanan)
Solution:   Use sizeof() for right type of struct.
2019-06-04 22:29:10 +02:00
Bram Moolenaar
cea254f5a7 patch 8.1.1464: only 4-digit rgb termresponse is recognized
Problem:    Only 4-digit rgb termresponse is recognized.
Solution:   Also recognize 2-digit rgb response. (closes #4486)
2019-06-04 21:41:28 +02:00
Bram Moolenaar
277e79adc4 patch 8.1.1463: gcc warns for uninitialized variable
Problem:    Gcc warns for uninitialized variable.
Solution:   Put usage inside "if".  (Ken Takata)
2019-06-04 19:16:29 +02:00
Bram Moolenaar
c974022c31 patch 8.1.1462: MS-Windows: using special character requires quoting
Problem:    MS-Windows: using special character requires quoting.
Solution:   Add quotes. (Ken Takata)
2019-06-04 08:22:53 +02:00
Bram Moolenaar
ddd3308782 patch 8.1.1461: tests do not run or are not reliable on some systems
Problem:    Tests do not run or are not reliable on some systems.
Solution:   Use "findstr" instead of "grep" on MS-Windows. Clear
            PROMPT_COMMAND in the terminal test. Delete temp file. Wait for
            output after executing a debug command. (Yegappan Lakshmanan,
            closes #4479)
2019-06-03 23:07:25 +02:00
Bram Moolenaar
02e15072be patch 8.1.1460: popup window border characters may be wrong
Problem:    Popup window border characters may be wrong.
Solution:   Reset the border characters for each popup.  Correct use of
            'ambiwidth'.
2019-06-03 22:53:30 +02:00
Bram Moolenaar
3f6aeba18b patch 8.1.1459: popup window border looks bad when 'ambiwidth' is "double"
Problem:    Popup window border looks bad when 'ambiwidth' is "double".
            (Yasuhiro Matsumoto)
Solution:   Only use line drawing characters when 'ambiwidth' is "single".
            (Ken Takata, closes #4477)
2019-06-03 22:21:27 +02:00
Bram Moolenaar
0b4c9eddb5 patch 8.1.1458: crash when using gtags
Problem:    Crash when using gtags. (issue #4102)
Solution:   Check for negative row or col in screen_puts_len(). (Christian
            Brabandt)
2019-06-03 22:04:23 +02:00
Bram Moolenaar
87abab92f5 patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Problem:    Cannot reuse a buffer when loading a screen dump.
Solution:   Add the "bufnr" option.
2019-06-03 21:14:59 +02:00
Bram Moolenaar
98fb65cb05 patch 8.1.1456: WinBar not redrawn after scrolling one line
Problem:    WinBar not redrawn after scrolling one line.
Solution:   Exclude the winbar height when deciding what to redraw.
            (closes #4473)
2019-06-02 20:33:32 +02:00
Bram Moolenaar
1762731f20 patch 8.1.1455: popup_atcursor() not completely implemented
Problem:    Popup_atcursor() not completely implemented.
Solution:   Add the default for the "moved" property.
2019-06-02 19:53:44 +02:00
Bram Moolenaar
6116b6abb1 patch 8.1.1454: build failure without the conceal feature
Problem:    Build failure without the conceal feature.
Solution:   Remove #ifdef.
2019-06-02 19:02:27 +02:00
Bram Moolenaar
3397f74ac2 patch 8.1.1453: popup window "moved" property not implemented yet
Problem:    Popup window "moved" property not implemented yet.
Solution:   Implement it.
2019-06-02 18:40:06 +02:00
Bram Moolenaar
b0ebbda06c patch 8.1.1452: line and col property of popup windows not properly checked
Problem:    Line and col property of popup windows not properly checked.
Solution:   Check for "+" or "-" sign.
2019-06-02 16:51:21 +02:00
Bram Moolenaar
ca2f7037c1 patch 8.1.1451: CTRL-L does not clear screen with a popup window
Problem:    CTRL-L does not clear screen with a popup window.
Solution:   Do not change the type to NOT_VALID.  Redraw all windows.
            (closes #4471)
2019-06-02 15:56:15 +02:00
Bram Moolenaar
399d898ac1 patch 8.1.1450: popup window positioning wrong when using padding or borders
Problem:    Popup window positioning wrong when using padding or borders.
Solution:   Fix computing the position.
2019-06-02 15:34:29 +02:00
Bram Moolenaar
042fb4b449 patch 8.1.1449: popup text truncated at end of screen
Problem:    Popup text truncated at end of screen.
Solution:   Move popup left if needed.  Add the "fixed" property to disable
            that. (Ben Jackson , closes #4466)
2019-06-02 14:49:56 +02:00
Bram Moolenaar
988c43310a patch 8.1.1448: statusline is sometimes drawn on top of popup
Problem:    Statusline is sometimes drawn on top of popup.
Solution:   Redraw popups after the statusline. (Naruhiko Nishino,
            closes #4468)
2019-06-02 14:12:11 +02:00
Bram Moolenaar
7b29dd8507 patch 8.1.1447: not allowed to create an empty popup
Problem:    Not allowed to create an empty popup.
Solution:   Remove restriction that there is some text. (closes #4470)
2019-06-02 13:22:11 +02:00
Bram Moolenaar
9eaac89650 patch 8.1.1446: popup window callback not implemented yet
Problem:    Popup window callback not implemented yet.
Solution:   Implement the callback.
2019-06-01 22:49:29 +02:00
Bram Moolenaar
790498b509 patch 8.1.1445: popup window border highlight not implemented yet
Problem:    Popup window border highlight not implemented yet.
Solution:   Implement the "borderhighlight" option.
2019-06-01 22:15:29 +02:00
Bram Moolenaar
3bfd04e672 patch 8.1.1444: not using double line characters for popup border
Problem:    Not using double line characters for popup border.
Solution:   Use double line characters if using utf-8.
2019-06-01 20:45:21 +02:00
Bram Moolenaar
2fd8e35e16 patch 8.1.1443: popup window padding and border not implemented yet
Problem:    Popup window padding and border not implemented yet.
Solution:   Implement padding and border.  Add core position and size to
            popup_getpos().
2019-06-01 20:16:48 +02:00
Bram Moolenaar
8caaf82569 patch 8.1.1442: popup windows not considered when the Vim window is resized
Problem:    Popup windows not considered when the Vim window is resized.
            (Ben Jackson)
Solution:   Reallocate the w_lines structure. (closes #4467)
2019-06-01 18:11:22 +02:00
Bram Moolenaar
bf0eff0b72 patch 8.1.1441: popup window filter not yet implemented
Problem:    Popup window filter not yet implemented.
Solution:   Implement the popup filter.
2019-06-01 17:13:36 +02:00
Bram Moolenaar
2d247849ce patch 8.1.1440: win_execute() test fails
Problem:    Win_execute() test fails.
Solution:   Adjust the expected error number.  Move to popup test.
2019-06-01 17:06:25 +02:00
Bram Moolenaar
c47ed44be7 patch 8.1.1439: json_encode() is very slow for large results
Problem:    Json_encode() is very slow for large results.
Solution:   In the growarray use a growth of at least 50%. (Ken Takata,
            closes #4461)
2019-06-01 14:36:26 +02:00
Bram Moolenaar
815b76bff6 patch 8.1.1438: some commands cause trouble in a popup window
Problem:    Some commands cause trouble in a popup window.
Solution:   Add NOT_IN_POPUP_WINDOW.
2019-06-01 14:15:52 +02:00
Bram Moolenaar
3a97bb3f0f patch 8.1.1437: code to handle callbacks is duplicated
Problem:    Code to handle callbacks is duplicated.
Solution:   Add callback_T and functions to deal with it.
2019-06-01 13:28:35 +02:00
Bram Moolenaar
7dd64a3e57 Update runtime files. 2019-05-31 21:41:05 +02:00
Bram Moolenaar
c28cb5b16d patch 8.1.1436: writefile test fails when run under /tmp
Problem:    Writefile test fails when run under /tmp.
Solution:   Adjust 'backupskip. (Kenta Sato, closes #4462)
2019-05-31 20:42:09 +02:00
Bram Moolenaar
5d508dd39e patch 8.1.1435: memory usage test is a bit too flaky
Problem:    Memory usage test is a bit too flaky.
Solution:   Adjust the tolerances a bit. (Christian Brabandt)
2019-05-31 20:23:25 +02:00
Bram Moolenaar
1ab74a5af3 patch 8.1.1434: test 3 is old style
Problem:    Test 3 is old style.
Solution:   Turn into a new style test. (Yegappan Lakshmanan, closes #4460)
2019-05-31 20:02:53 +02:00
Bram Moolenaar
eea1699836 patch 8.1.1433: win_execute() may leave popup window focused
Problem:    Win_execute() may leave popup window focused, eventually leading
            to a crash. (Bjorn Linse)
Solution:   When previous window was closed, go to the first window.
2019-05-31 17:34:48 +02:00
Bram Moolenaar
ccd6e3471d patch 8.1.1432: can't build with eval feature
Problem:    Can't build with eval feature.
Solution:   Add missing rename.
2019-05-30 22:35:18 +02:00
Bram Moolenaar
c6896e20f8 patch 8.1.1431: popup window listed as "Scratch"
Problem:    Popup window listed as "Scratch".
Solution:   List them as "Popup".
2019-05-30 22:32:34 +02:00
Bram Moolenaar
402502d0e4 patch 8.1.1430: popup window option "wrap" not supported
Problem:    Popup window option "wrap" not supported.
Solution:   Implement it.
2019-05-30 22:07:36 +02:00
Bram Moolenaar
ac1f1bc222 patch 8.1.1429: "pos" option of popup window not supported yet
Problem:    "pos" option of popup window not supported yet.
Solution:   Implement the option. Rename popup_getposition() to
            popup_getpos().
2019-05-30 21:24:26 +02:00
Bram Moolenaar
cc31ad9f9b patch 8.1.1428: popup_atcursor() not implemented yet
Problem:    Popup_atcursor() not implemented yet.
Solution:   Implement it. (Yasuhiro Matsumoto, closes #4456)
2019-05-30 19:25:06 +02:00
Bram Moolenaar
54fabd4b5e patch 8.1.1427: popup window screenshot test fails
Problem:    Popup window screenshot test fails.
Solution:   Add missing change to popup window code.
2019-05-30 19:03:22 +02:00
Bram Moolenaar
b42301247d patch 8.1.1426: no test for syntax highlight in popup window
Problem:    No test for syntax highlight in popup window.
Solution:   Add a screenshot test.  Update associated documentation. Avoid
            'buftype' being reset by setbufvar().
2019-05-30 18:40:53 +02:00
Bram Moolenaar
89adc3a137 patch 8.1.1425: win_execute() does not set window pointers properly
Problem:    Win_execute() does not set window pointers properly.
Solution:   Use switch_win_noblock().  Also execute autocommands in a popup
            window.
2019-05-30 17:29:40 +02:00
Bram Moolenaar
5c3fb04623 patch 8.1.1424: crash when popup menu is deleted while waiting for char
Problem:    Crash when popup menu is deleted while waiting for char.
Solution:   Bail out when pum_array was cleared.
2019-05-30 15:53:29 +02:00
Bram Moolenaar
cacc6a5c98 patch 8.1.1423: popup windows use options from current window and buffer
Problem:    Popup windows use options from current window and buffer.
Solution:   Clear all local options when creating a popup window.
2019-05-30 15:22:43 +02:00
Bram Moolenaar
8c2a600f72 patch 8.1.1422: popup_getoptions() not implemented yet
Problem:    Popup_getoptions() not implemented yet.
Solution:   Implement it. (closes #4452)
2019-05-30 14:29:45 +02:00
Bram Moolenaar
1714696600 patch 8.1.1421: drawing "~" line in popup window
Problem:    Drawing "~" line in popup window.
Solution:   Just draw text in the last line of the popup window.
2019-05-30 00:12:11 +02:00
Bram Moolenaar
88c4e1f069 patch 8.1.1420: popup window size only uses first line length
Problem:    Popup window size only uses first line length.
Solution:   Use the longest line. (Ben Jackson, closes #4451)  Also deal with
            wrapping lines.
2019-05-29 23:14:28 +02:00
Bram Moolenaar
68a4b04a8d patch 8.1.1419: listener callbacks may be called recursively
Problem:    Listener callbacks may be called recursively.
Solution:   Set "updating_screen" while listener callbacks are invoked.
2019-05-29 22:28:29 +02:00
Bram Moolenaar
868b7b6712 patch 8.1.1418: win_execute() is not implemented yet
Problem:    Win_execute() is not implemented yet.
Solution:   Implement it.
2019-05-29 21:44:40 +02:00
Bram Moolenaar
1bbebab525 patch 8.1.1417: MS-Windows: resolve() does not resolve all components of path
Problem:    MS-Windows: resolve() does not resolve all components of the path.
            (David Briscoe)
Solution:   Do not bail out for a reparse point. (Yasuhiro Matsumoto,
            closes #4211, closes #4447)
2019-05-29 20:36:54 +02:00
Bram Moolenaar
bc133543b8 patch 8.1.1416: popup_getposition() not implemented yet
Problem:    Popup_getposition() not implemented yet.
Solution:   Implement it. (Yasuhiro Matsumoto, closes #4449)
2019-05-29 20:26:46 +02:00
Bram Moolenaar
59edb00e22 patch 8.1.1415: build error in MS-Windows GUI
Problem:    Build error in MS-Windows GUI.
Solution:   Fix the LALLOC_MULT() argument.
2019-05-28 23:32:47 +02:00
Bram Moolenaar
c799fe206e patch 8.1.1414: alloc() returning "char_u *" causes a lot of type casts
Problem:    Alloc() returning "char_u *" causes a lot of type casts.
Solution:   Have it return "void *". (Mike Williams)  Define ALLOC_ONE() to
            check the simple allocations.
2019-05-28 23:08:19 +02:00
Bram Moolenaar
b58a4b938c patch 8.1.1413: error when the drive of the swap file was disconnected
Problem:    Error when the drive of the swap file was disconnected.
Solution:   Try closing and re-opening the swap file. (closes #4378)
2019-05-27 23:36:21 +02:00
Bram Moolenaar
72fcf07b06 patch 8.1.1412: test 30 is old style
Problem:    Test 30 is old style.
Solution:   Turn it into a new style test. (Yegappan Lakshmanan, closes #4440)
2019-05-27 22:21:44 +02:00
Bram Moolenaar
7833dab73c patch 8.1.1411: Coverity warns for divide by zero
Problem:    Coverity warns for divide by zero.
Solution:   Make sure width is larger than zero.
2019-05-27 22:01:40 +02:00
Bram Moolenaar
60cdb3004a patch 8.1.1410: popup_move() is not implemented yet
Problem:    Popup_move() is not implemented yet.
Solution:   Implement it. (Yasuhiro Matsumoto, closes #4441)  Improve the
            positioning and resizing.
2019-05-27 21:54:10 +02:00
Bram Moolenaar
b43683729b patch 8.1.1409: Coverity warns for using uninitialized memory
Problem:    Coverity warns for using uninitialized memory.
Solution:   Add a condition to clearing the growarray.
2019-05-27 20:01:41 +02:00
Bram Moolenaar
bf0ecb2cb6 patch 8.1.1408: PFL_HIDDEN conflicts with system header file
Problem:    PFL_HIDDEN conflicts with system header file.
Solution:   Rename to POPF_HIDDEN.
2019-05-27 10:04:40 +02:00
Bram Moolenaar
7a8d0278bd patch 8.1.1407: popup_create() does not support text properties
Problem:    Popup_create() does not support text properties.
Solution:   Support the third form of the text argument.
2019-05-26 23:32:06 +02:00
Bram Moolenaar
2cd0dce898 patch 8.1.1406: popup_hide() and popup_show() not implemented yet
Problem:    popup_hide() and popup_show() not implemented yet.
Solution:   Implement the functions.
2019-05-26 22:17:52 +02:00
Bram Moolenaar
68e6560b84 Update runtime files. 2019-05-26 21:33:31 +02:00
Bram Moolenaar
20c023aee0 patch 8.1.1405: "highlight" option of popup windows not supported
Problem:    "highlight" option of popup windows not supported.
Solution:   Implement the "highlight" option.
2019-05-26 21:03:24 +02:00
Bram Moolenaar
9d591525a5 patch 8.1.1404: cannot change the patch level when building with NSIS
Problem:    Cannot change the patch level when building with NSIS.
Solution:   Use $PATCHLEVEL if defined. (Christian Brabandt)
2019-05-26 20:49:42 +02:00
Bram Moolenaar
35d5af6c0b patch 8.1.1403: cannot build without the timer feature
Problem:    Cannot build without the timer feature.
Solution:   Add #ifdef.
2019-05-26 20:44:10 +02:00
Bram Moolenaar
51fe3b14f6 patch 8.1.1402: "timer" option of popup windows not supported
Problem:    "timer" option of popup windows not supported.
Solution:   Implement the "timer" option. (Yasuhiro Matsumoto, closes #4439)
2019-05-26 20:10:06 +02:00
Bram Moolenaar
076073950c patch 8.1.1401: misspelled mkspellmem as makespellmem
Problem:    Misspelled mkspellmem as makespellmem.
Solution:   Drop duplicate help entry, fix test. (Naruhiko Nishino, Ken
            Takata, closes #4437)
2019-05-26 19:20:43 +02:00
Bram Moolenaar
9c27b1c6d1 patch 8.1.1400: using global pointer for tab-local popups is clumsy
Problem:    Using global pointer for tab-local popups is clumsy.
Solution:   Use the pointer in tabpage_T.
2019-05-26 18:48:13 +02:00
Bram Moolenaar
ec58384afa patch 8.1.1399: popup windows not adjusted when switching tabs
Problem:    Popup windows not adjusted when switching tabs.
Solution:   Save and restore first_tab_popupwin. Fix closing a tabpage.
2019-05-26 14:11:23 +02:00
Bram Moolenaar
a8c99fb78e patch 8.1.1398: duplicate line in MSVC build file
Problem:    Duplicate line in MSVC build file.
Solution:   Remove the line. (Ken Takata, closes #4436)
2019-05-26 13:14:02 +02:00
Bram Moolenaar
80f95425cf patch 8.1.1397: build fails in tiny version
Problem:    Build fails in tiny version.
Solution:   Always define hl_combine_attr().
2019-05-25 23:42:13 +02:00
Bram Moolenaar
193ffd1d9f patch 8.1.1396: 'wincolor' does not apply to lines below the buffer
Problem:    'wincolor' does not apply to lines below the buffer.
Solution:   Also apply 'wincolor' to the "~" lines and the number column.
2019-05-25 22:57:30 +02:00
Bram Moolenaar
adfde115d5 patch 8.1.1395: saving for undo may access invalid memory
Problem:    Saving for undo may access invalid memory. (Dominique Pelle)
Solution:   Set ml_line_len also when returning a constant string.
2019-05-25 22:11:45 +02:00
Bram Moolenaar
a5e44600eb patch 8.1.1394: not restoring t_F2 in registers test
Problem:    Not restoring t_F2 in registers test.
Solution:   Assign to &t_F2 instead of t_F2. (Andy Massimino, closes #4434)
2019-05-25 21:52:30 +02:00
Bram Moolenaar
51e14387f1 patch 8.1.1393: unnecessary type casts
Problem:    Unnecessary type casts.
Solution:   Remove type casts from alloc() and lalloc() calls. (Mike Williams)
2019-05-25 20:21:28 +02:00
Bram Moolenaar
682725c141 patch 8.1.1392: build failure in tiny version
Problem:    Build failure in tiny version.
Solution:   Define ex_popupclear to ex_ni if not implemented.  Add UNUSED.
2019-05-25 20:10:37 +02:00
Bram Moolenaar
4d784b21d1 patch 8.1.1391: no popup window support
Problem:    No popup window support.
Solution:   Add initial code for popup windows.  Add the 'wincolor' option.
2019-05-25 19:51:39 +02:00
Bram Moolenaar
8f46e4c4bd patch 8.1.1390: search stats are off when using count or offset
Problem:    Search stats are off when using count or offset.
Solution:   Recompute the stats when needed. (Masato Nishihata, closes #4410)
2019-05-24 22:08:15 +02:00
Bram Moolenaar
7b31a181c8 patch 8.1.1389: changes are not flushed when end and start overlap
Problem:    Changes are not flushed when end and start overlap. (Paul Jolly)
Solution:   When end of a previous changes overlaps with start of a new
            change, first flush listeners.
2019-05-24 21:39:27 +02:00
Bram Moolenaar
f0884c5f3f patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Problem:    Errors when calling prop_remove() for an unloaded buffer.
Solution:   Bail out when the buffer is not loaded.  Add a few more tests for
            failing when the buffer number is invalid.
2019-05-24 21:22:29 +02:00
Bram Moolenaar
d79eef2eb1 patch 8.1.1387: calling prop_add() in an empty buffer doesn't work
Problem:    Calling prop_add() in an empty buffer doesn't work. (Dominique
            Pelle)
Solution:   Open the memline before adding a text property. (closes #4412)
2019-05-24 20:41:55 +02:00
Bram Moolenaar
18a4ba29ae patch 8.1.1386: unessesary type casts for lalloc()
Problem:    Unessesary type casts for lalloc().
Solution:   Remove type casts.  Change lalloc(size, TRUE) to alloc(size).
2019-05-24 19:39:03 +02:00
Bram Moolenaar
71de720c2c patch 8.1.1385: signed/unsigned compiler warning
Problem:    Signed/unsigned compiler warning.
Solution:   Use STRLEN() instead of strlen().
2019-05-24 19:04:29 +02:00
Bram Moolenaar
964b3746b9 patch 8.1.1384: using "int" for alloc() often results in compiler warnings
Problem:    Using "int" for alloc() often results in compiler warnings.
Solution:   Use "size_t" and remove type casts.  Remove alloc_check(), Vim
            only works with 32 bit ints anyway.
2019-05-24 18:54:09 +02:00
Bram Moolenaar
d33a764123 patch 8.1.1383: warning for size_t/int mixup
Problem:    Warning for size_t/int mixup.
Solution:   Change type. (Mike Williams)
2019-05-24 17:56:14 +02:00
Bram Moolenaar
3020a87cb1 patch 8.1.1382: error when editing test file
Problem:    Error when editing test file.
Solution:   Remove part of modeline.
2019-05-24 17:33:01 +02:00
Bram Moolenaar
d22a6f8aaf patch 8.1.1381: MS-Windows: missing build dependency
Problem:    MS-Windows: missing build dependency.
Solution:   Make gui_dwrite.cpp depend on gui_dwrite.h. (Ken Takata,
            closes #4423
2019-05-24 17:17:54 +02:00
Bram Moolenaar
fa8f861957 patch 8.1.1380: MS-Windows building VIMDLL with MSVC: SUBSYSTEM is not set
Problem:    MS-Windows building VIMDLL with MSVC: SUBSYSTEM is not set.
Solution:   Invert condition. (closes #4422)
2019-05-24 17:05:44 +02:00
Bram Moolenaar
8239c62067 patch 8.1.1379: filechanged test hangs
Problem:    Filechanged test hangs.
Solution:   Do not check 'autoread'.
2019-05-24 16:46:01 +02:00
Bram Moolenaar
701ff0a3e5 patch 8.1.1378: delete() can not handle a file name that looks like a pattern
Problem:    Delete() can not handle a file name that looks like a pattern.
Solution:   Use readdir() instead of appending "/*" and expanding wildcards.
            (Ken Takata, closes #4424, closes #696)
2019-05-24 14:14:14 +02:00
Bram Moolenaar
fcc4d921d6 patch 8.1.1377: MS-Windows GUI uses wrong shell command for bash
Problem:    MS-Windows GUI uses wrong shell command for bash. (Robert Bogomip)
Solution:   Check that 'shellcmdflag' is "/c". (Ken Takata, closes #4418)
2019-05-24 13:32:36 +02:00
Bram Moolenaar
e2ad826f43 patch 8.1.1376: warnings for size_t/int mixups
Problem:    Warnings for size_t/int mixups.
Solution:   Change types, add type casts. (Mike Williams)
2019-05-24 13:22:22 +02:00
Bram Moolenaar
984f031fb0 patch 8.1.1375: without "TS" in 'shortmess' get a hit-enter prompt often
Problem:    Without "TS" in 'shortmess' get a hit-enter prompt often.
Solution:   Always truncate the search message.  Also avoid putting it in the
            message history. (closes #4413)
2019-05-24 13:11:47 +02:00
Bram Moolenaar
c97582b029 patch 8.1.1374: check for file changed triggers too often
Problem:    Check for file changed triggers too often.
Solution:   Don't use "b_p_ar" when it is negative.
2019-05-24 11:45:22 +02:00
Bram Moolenaar
0ab190c057 patch 8.1.1373: "[p" in Visual mode puts in wrong line
Problem:    "[p" in Visual mode puts in wrong line.
Solution:   Call nv_put() instead of duplicating the functionality.
            (closes #4408)
2019-05-23 23:27:36 +02:00
Bram Moolenaar
1c6fd1e100 patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Problem:    When evaluating 'statusline' the current window is unknown.
            (Daniel Hahler)
Solution:   Set "g:actual_curwin" for %{} items.  Set "g:statusline_winid"
            when evaluationg %!. (closes #4406, closes #3299)
2019-05-23 22:11:59 +02:00
Bram Moolenaar
99499b1c05 patch 8.1.1371: cannot recover from a swap file
Problem:    Cannot recover from a swap file.
Solution:   Do not expand environment variables in the swap file name.
            Do not check the extension when we already know a file is a swap
            file.  (Ken Takata, closes 4415, closes #4369)
2019-05-23 21:35:48 +02:00
Bram Moolenaar
05b8b07e27 patch 8.1.1370: not using the new github feature for donations
Problem:    Not using the new github feature for donations.
Solution:   Add a Sponsor button. (closes #4417)
2019-05-23 20:42:10 +02:00
Bram Moolenaar
294d9bf966 patch 8.1.1369: get E484 when using system() during GUI startup
Problem:    Get E484 when using system() during GUI startup.
Solution:   Check "gui.starting". (Ken Takata)
2019-05-23 20:12:46 +02:00
Bram Moolenaar
e09244ee35 patch 8.1.1368: modeline test fails with python but without pythonhome
Problem:    Modeline test fails with python but without pythonhome.
Solution:   Correct test argument.
2019-05-23 17:35:55 +02:00
Bram Moolenaar
7e800c6047 patch 8.1.1367: can set 'modelineexpr' in modeline
Problem:    can set 'modelineexpr' in modeline.
Solution:   Add P_SECURE flag.
2019-05-23 17:08:49 +02:00
Bram Moolenaar
110289e781 patch 8.1.1366: using expressions in a modeline is unsafe
Problem:    Using expressions in a modeline is unsafe.
Solution:   Disallow using expressions in a modeline, unless the
            'modelineexpr' option is set.  Update help, add more tests.
2019-05-23 15:38:06 +02:00
Bram Moolenaar
5357552140 patch 8.1.1365: source command doesn't check for the sandbox
Problem:    Source command doesn't check for the sandbox. (Armin Razmjou)
Solution:   Check for the sandbox when sourcing a file.
2019-05-22 22:38:25 +02:00
Bram Moolenaar
5c017b2de2 patch 8.1.1364: design for popup window support needs more details
Problem:    Design for popup window support needs more details.
Solution:   Add details about using a window and buffer.  Rename popup_show()
            to popup_create() and add popup_show() and popup_hide().
2019-05-21 23:09:01 +02:00
Bram Moolenaar
e0b5949a3b patch 8.1.1363: ":vert options" does not make a vertical split
Problem:    ":vert options" does not make a vertical split.
Solution:   Pass the right modifiers in $OPTWIN_CMD. (Ken Takata,
            closes #4401)
2019-05-21 20:54:45 +02:00
Bram Moolenaar
c79745a82f patch 8.1.1362: code and data in tests can be hard to read
Problem:    Code and data in tests can be hard to read.
Solution:   Use the new heredoc style. (Yegappan Lakshmanan, closes #4400)
2019-05-20 22:12:34 +02:00
Bram Moolenaar
0b0ad35c33 patch 8.1.1361: Python setuptools don't work with Python 3
Problem:    Python setuptools don't work with Python 3.
Solution:   Add dummy implementation for find_module. (Joel Frederico,
            closes #4402, closes #3984
2019-05-20 21:52:45 +02:00
Bram Moolenaar
80341bcd89 patch 8.1.1360: buffer left 'nomodifiable' after :substitute
Problem:    Buffer left 'nomodifiable' after :substitute. (Ingo Karkat)
Solution:   Save the value of 'modifiable' earlier' (Christian Brabandt,
            closes #4403)
2019-05-20 20:34:51 +02:00
Bram Moolenaar
f3333b02f3 patch 8.1.1359: text property wrong after :substitute with backslash
Problem:    Text property wrong after :substitute with backslash.
Solution:   Adjust text property columns when removing backslashes.
            (closes #4397)
2019-05-19 22:53:40 +02:00
Bram Moolenaar
386b43e594 patch 8.1.1358: cannot enter character with a CSI byte
Problem:    Cannot enter character with a CSI byte.
Solution:   Only check "gui.in_use" when VIMDLL is defined. (Ken Takata,
            closes #4396)
2019-05-19 21:57:11 +02:00
Bram Moolenaar
999dc14644 patch 8.1.1357: test 37 is old style
Problem:    Test 37 is old style.
Solution:   Turn it into a new style test. (Yegappan Lakshmanan, closes #4398)
2019-05-19 21:44:08 +02:00
Bram Moolenaar
8471e57026 patch 8.1.1356: some text in heredoc assignment ends the text
Problem:    Some text in heredoc assignment ends the text. (Ozaki Kiichi)
Solution:   Recognize "let v =<<" and skip until the end.
2019-05-19 21:37:18 +02:00
Bram Moolenaar
16e9b85113 patch 8.1.1355: obvious mistakes are accepted as valid expressions
Problem:    Obvious mistakes are accepted as valid expressions.
Solution:   Be more strict about parsing numbers. (Yasuhiro Matsumoto,
            closes #3981)
2019-05-19 19:59:35 +02:00
Bram Moolenaar
f5842c5a53 patch 8.1.1354: getting a list of text lines is clumsy
Problem:    Getting a list of text lines is clumsy.
Solution:   Add the =<< assignment. (Yegappan Lakshmanan, closes #4386)
2019-05-19 18:41:26 +02:00
Bram Moolenaar
2b39d806f0 patch 8.1.1353: undo test fails on Mac
Problem:    Undo test fails on Mac.
Solution:   Expect "private" on the Mac.
2019-05-19 16:38:56 +02:00
Bram Moolenaar
e9ebc9a91c patch 8.1.1352: undofile() reports wrong name
Problem:    Undofile() reports wrong name. (Francisco Giordano)
Solution:   Clean up the name before changing path separators. (closes #4392,
            closes #4394)
2019-05-19 15:27:14 +02:00
Bram Moolenaar
338dfdad38 patch 8.1.1351: text property wrong after :substitute
Problem:    Text property wrong after :substitute.
Solution:   Save for undo before changing any text properties.
2019-05-19 15:19:57 +02:00
Bram Moolenaar
dc6855af97 patch 8.1.1350: "W" for wrapping not shown when more than 99 matches
Problem:    "W" for wrapping not shown when more than 99 matches.
Solution:   Adjust check for length. (Masato Nishihata, closes #4388)
2019-05-18 19:26:29 +02:00
Bram Moolenaar
cf0bfd9ade patch 8.1.1349: if writing runs into conversion error backup file is deleted
Problem:    If writing runs into a conversion error the backup file is
            deleted. (Arseny Nasokin)
Solution:   Don't delete the backup file is the file was overwritten and a
            conversion error occurred. (Christian Brabandt, closes #4387)
2019-05-18 18:52:04 +02:00
Bram Moolenaar
f8191c5f07 patch 8.1.1348: running tests may cause the window to move
Problem:    Running tests may cause the window to move.
Solution:   Correct the reported window position for the offset with the
            position after ":winpos".  Works around an xterm bug.
2019-05-18 17:22:54 +02:00
Bram Moolenaar
bd2d68c2f4 patch 8.1.1347: fractional scroll position not restored after closing window
Problem:    Fractional scroll position not restored after closing window.
Solution:   Do restore fraction if topline is not one.
2019-05-18 15:36:11 +02:00
Bram Moolenaar
7f3a28490a patch 8.1.1346: error for Python exception does not show useful info
Problem:    Error for Python exception does not show useful info.
Solution:   Show the last line instead of the first one. (Ben Jackson,
            closes #4381)
2019-05-18 15:02:25 +02:00
Bram Moolenaar
6349e9411f patch 8.1.1345: stuck in sandbox with ":s/../\=Function/gn"
Problem:    Stuck in sandbox with ":s/../\=Function/gn".
Solution:   Don't skip over code to restore sandbox. (Christian Brabandt)
2019-05-18 13:41:22 +02:00
Bram Moolenaar
0d3cb73012 patch 8.1.1344: Coverity complains about possibly using a NULL pointer
Problem:    Coverity complains about possibly using a NULL pointer and copying
            a string into a fixed size buffer.
Solution:   Check for NULL, even though it should not happen.  Use
            vim_strncpy() instead of strcpy().
2019-05-18 13:05:18 +02:00
Bram Moolenaar
8055d17388 patch 8.1.1343: text properties not adjusted for Visual block mode delete
Problem:    Text properties not adjusted for Visual block mode delete.
Solution:   Call adjust_prop_columns(). (closes #4384)
2019-05-17 22:57:26 +02:00
Bram Moolenaar
787880a86d patch 8.1.1342: using freed memory when joining line with text property
Problem:    Using freed memory when joining line with text property.
Solution:   Use already computed length.
2019-05-17 20:17:40 +02:00
Bram Moolenaar
80e737cc6a patch 8.1.1341: text properties are lost when joining lines
Problem:    Text properties are lost when joining lines.
Solution:   Move the text properties to the joined line.
2019-05-17 19:56:34 +02:00
Bram Moolenaar
bfd451283f patch 8.1.1340: attributes from 'cursorline' overwrite textprop
Problem:    Attributes from 'cursorline' overwrite textprop.
Solution:   Combine the attributes. (closes #3912)
2019-05-17 13:05:07 +02:00
Bram Moolenaar
dabfde04fe patch 8.1.1339: installer needs to product name et al.
Problem:    Installer needs to product name et al.
Solution:   Add a few lines to the NSIS installer script. (Christian Brabandt)
2019-05-17 12:37:27 +02:00
Bram Moolenaar
0ebe12be86 patch 8.1.1338: hang when concealing the '>' shown for half of wide char
Problem:    Hang when concealing the '>' shown for a wide char that doesn't
            fit in the last cell.
Solution:   Put back the pointer when the '>' is not going to be displayed.
            (closes #4377)
2019-05-17 12:31:44 +02:00
Bram Moolenaar
5c65e6a062 patch 8.1.1337: get empty text prop when splitting line just after text prop
Problem:    Get empty text prop when splitting line just after text prop.
Solution:   Do not create an empty text prop at the start of the line.
2019-05-17 11:08:56 +02:00
Bram Moolenaar
17aca707f9 patch 8.1.1336: some eval functionality is not covered by tests
Problem:    Some eval functionality is not covered by tests.
Solution:   Add a few more test cases. (Masato Nishihata, closes #4374)
2019-05-16 22:24:55 +02:00
Bram Moolenaar
dda4144d39 patch 8.1.1335: listener callback is called after inserting text
Problem:    Listener callback is called after inserting text.
Solution:   Flush the changes before inserting or deleting a line.  Store
            changes per buffer.
2019-05-16 22:11:47 +02:00
Bram Moolenaar
eda652215a patch 8.1.1334: when buffer is hidden "F" in 'shortmess' is not used
Problem:    When buffer is hidden "F" in 'shortmess' is not used.
Solution:   Check the "F" flag in 'shortmess' when the buffer is already
            loaded. (Jason Franklin)  Add test_getvalue() to be able to test
            this.
2019-05-16 20:29:44 +02:00
Bram Moolenaar
45dd07f10a patch 8.1.1333: text properties don't always move after changes
Problem:    Text properties don't always move after changes.
Solution:   Update properties before reporting changes to listeners. Move text
            property when splitting a line.
2019-05-15 22:45:37 +02:00
Bram Moolenaar
fe1ade0a78 patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Problem:    Cannot flush change listeners without also redrawing.  The line
            numbers in the list of changes may become invalid.
Solution:   Add listener_flush().  Invoke listeners before adding a change
            that makes line numbers invalid.
2019-05-14 21:20:36 +02:00
Bram Moolenaar
fb222df28d patch 8.1.1331: test 29 is old style
Problem:    Test 29 is old style.
Solution:   Turn it into a new style test. (Yegappan Lakshmanan, closes #4370)
2019-05-14 17:57:19 +02:00
609 changed files with 69950 additions and 41956 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1 @@
custom: https://www.vim.org/sponsor/index.php

4
.gitignore vendored
View File

@@ -35,7 +35,9 @@ src/auto/pathdef.c
*.RES *.RES
vim*.dll vim*.dll
vim*.lib vim*.lib
src/pathdef.c src/dobj*/pathdef.c
src/gobj*/pathdef.c
src/obj*/pathdef.c
src/Obj*/pathdef.c src/Obj*/pathdef.c
gvimext.dll gvimext.dll
gvimext.lib gvimext.lib

View File

@@ -37,7 +37,9 @@ src/auto/pathdef.c
*.RES *.RES
vim*.dll vim*.dll
vim*.lib vim*.lib
src/pathdef.c src/dobj*/pathdef.c
src/gobj*/pathdef.c
src/obj*/pathdef.c
src/Obj*/pathdef.c src/Obj*/pathdef.c
gvimext.dll gvimext.dll
gvimext.lib gvimext.lib

View File

@@ -1,133 +1,116 @@
language: c language: c
dist: trusty
os: anchors:
- osx envs:
- linux - &tiny-nogui
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &tiny
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &small
BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &normal
BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
- &linux-huge
BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
- &osx-huge # macOS build
BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
- &unittests
BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
- &asan # ASAN build
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
compiler: linux: &linux
- clang os: linux
- gcc dist: trusty
addons:
apt:
sources:
# Need msgfmt 0.19.8 to be able to generate .desktop files
- sourceline: 'ppa:ricotz/toolchain'
packages:
- autoconf
- clang
- lcov
- gettext
- libcanberra-dev
- libperl-dev
- python-dev
- python3-dev
- liblua5.2-dev
- lua5.2
- ruby-dev
- tcl-dev
- cscope
- libgtk2.0-dev
- desktop-file-utils
before_install:
- rvm reset
# Remove /opt/python/3.x.x/bin from $PATH for using system python3.
# ("pyenv global system" doesn't seem to work.)
- |
if [[ "$(which python3)" =~ ^/opt/python/ ]]; then
export PATH=$(py3=$(which python3); echo ${PATH//${py3%/python3}:/})
fi
- |
if [[ "${COVERAGE}" = "yes" ]]; then
pip install --user cpp-coveralls
fi
# needed for https support for coveralls
# building cffi only works with gcc, not with clang
- |
if [[ "${COVERAGE}" = "yes" ]]; then
CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1
fi
# Use llvm-cov instead of gcov when compiler is clang.
- |
if [[ "${CC}" = "clang" ]]; then
ln -sf "$(which llvm-cov)" /home/travis/bin/gcov
fi
before_script:
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start && sleep 3
- sudo modprobe snd-dummy
- sudo usermod -a -G audio $USER
- do_test() { sg audio "sg $(id -gn) '$*'"; }
env: osx: &osx
- &tiny-nogui os: osx
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no addons:
- &tiny homebrew:
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no packages:
- &asan # ASAN build - lua
BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer" update: true
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt" cache:
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" directories:
- &linux-huge - /usr/local/Homebrew/Library/Homebrew/vendor/
BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - /usr/local/Homebrew/Library/Taps/
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" before_install:
- &unittests - rvm reset
BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes # Lua is not installed on Travis OSX
- &normal - export LUA_PREFIX=/usr/local
BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no before_script:
- &small - do_test() { "$@"; }
BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &osx-huge # Mac OSX build coverage: &coverage
BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8 latin-1 EUC-KR
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" - (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash))
asan_symbolize: &asan_symbolize
- |
while read log; do
asan_symbolize < "${log}"
done < <(find . -type f -name 'asan.*' -size +0)
sudo: false sudo: false
# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
# exclude some builds on mac os x and linux
# on mac os x "tiny" is always without GUI
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
matrix:
exclude:
- os: osx
env: *tiny
- os: osx
env: *normal
- os: osx
env: *unittests
- os: osx
env: *small
- os: osx
env: *linux-huge
- os: osx
env: *asan
- os: linux
compiler: clang
env: *asan
- os: linux
compiler: clang
env: *unittests
- os: linux
compiler: clang
env: *small
- os: linux
env: *osx-huge
branches: branches:
except: except:
- /^v[0-9]/ - /^v[0-9]/
addons:
apt:
sources:
# Need msgfmt 0.19.8 to be able to generate .desktop files
- sourceline: 'ppa:ricotz/toolchain'
packages:
- autoconf
- clang
- lcov
- gettext
- libperl-dev
- python-dev
- python3-dev
- liblua5.2-dev
- lua5.2
- ruby-dev
- tcl-dev
- cscope
- libgtk2.0-dev
homebrew:
packages:
- lua
update: true
before_install:
- rvm reset
# Remove /opt/python/3.x.x/bin from $PATH for using system python3.
# ("pyenv global system" doesn't seem to work.)
- |
if [[ "${TRAVIS_OS_NAME}" = "linux" ]] && [[ "$(which python3)" =~ ^/opt/python/ ]]; then
export PATH=$(py3=$(which python3); echo ${PATH//${py3%/python3}:/})
fi
- |
if [[ "${COVERAGE}" = "yes" ]]; then
pip install --user cpp-coveralls
fi
# needed for https support for coveralls
# building cffi only works with gcc, not with clang
- |
if [[ "${COVERAGE}" = "yes" ]]; then
CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1
fi
# Lua is not installed on Travis OSX
- |
if [[ "${TRAVIS_OS_NAME}" = "osx" ]]; then
export LUA_PREFIX=/usr/local
fi
# Use llvm-cov instead of gcov when compiler is clang.
- |
if [[ "${TRAVIS_OS_NAME}" = "linux" ]] && [[ "${CC}" = "clang" ]]; then
ln -sf "$(which llvm-cov)" /home/travis/bin/gcov
fi
before_script:
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
- |
if [[ "${TRAVIS_OS_NAME}" = "linux" ]]; then
export DISPLAY=:99.0
sh -e /etc/init.d/xvfb start && sleep 3
fi
script: script:
- NPROC=$(getconf _NPROCESSORS_ONLN) - NPROC=$(getconf _NPROCESSORS_ONLN)
- set -o errexit - set -o errexit
@@ -159,24 +142,92 @@ script:
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-2.vim -c quit > /dev/null "${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-2.vim -c quit > /dev/null
cat if_ver.txt cat if_ver.txt
fi fi
- make ${SHADOWOPT} ${TEST}
- echo -en "travis_fold:end:test\\r\\033[0K"
- | - |
if [[ -n "${ASAN_OPTIONS}" ]]; then if do_test make ${SHADOWOPT} ${TEST}; then
while read log; do echo -en "travis_fold:end:test\\r\\033[0K"
asan_symbolize < "${log}" else
false # exit 1 if there are ASAN logs exit 1
done < <(find . -type f -name 'asan.*' -size +0)
fi fi
after_success:
- | # instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
if [[ "${COVERAGE}" = "yes" ]]; then # exclude some builds on mac os x and linux
~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8 latin-1 EUC-KR # on mac os x "tiny" is always without GUI
fi # linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
- | matrix:
if [[ "${COVERAGE}" = "yes" ]]; then include:
(cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash)) - <<: *osx
fi name: tiny-nogui/clang
compiler: clang
env: *tiny-nogui
- <<: *osx
name: tiny-nogui/gcc
compiler: gcc
env: *tiny-nogui
- <<: *osx
name: huge/clang
compiler: clang
env: *osx-huge
- <<: *osx
name: huge/gcc
compiler: gcc
env: *osx-huge
- <<: *linux
name: tiny-nogui/clang
compiler: clang
env: *tiny-nogui
- <<: *linux
name: tiny-nogui/gcc
compiler: gcc
env: *tiny-nogui
- <<: *linux
name: tiny/clang
compiler: clang
env: *tiny
- <<: *linux
name: tiny/gcc
compiler: gcc
env: *tiny
- <<: *linux
name: small/gcc
compiler: gcc
env: *small
- <<: *linux
name: normal/clang
compiler: clang
env: *normal
- <<: *linux
name: normal/gcc
compiler: gcc
env: *normal
- <<: *linux
name: huge+coverage/clang
compiler: clang
env: *linux-huge
after_success: *coverage
- <<: *linux
name: huge+coverage/gcc
compiler: gcc
env: *linux-huge
after_success: *coverage
- <<: *linux
name: unittests+coverage/gcc
compiler: gcc
env: *unittests
after_success: *coverage
- <<: *linux # ASAN
name: huge+asan/gcc
compiler: gcc
env:
- *linux-huge
- *asan
after_failure: *asan_symbolize
- <<: *linux
name: huge-testgui+coverage/gcc
compiler: gcc
env:
- *linux-huge
- TEST="-C src testgui"
after_success: *coverage
# vim:set sts=2 sw=2 tw=0 et: # vim:set sts=2 sw=2 tw=0 et:

View File

@@ -4,14 +4,23 @@ Patches are welcome in whatever form.
Discussions about patches happen on the vim-dev maillist. Discussions about patches happen on the vim-dev maillist.
If you create a pull request on GitHub it will be If you create a pull request on GitHub it will be
forwarded to the vim-dev maillist. You can also send your patch there forwarded to the vim-dev maillist. You can also send your patch there
directly. An attachment with a unified diff format is preferred. directly. In that case an attachment with a unified diff format is preferred.
Information about the maillist can be found [on the Vim website]. Information about the maillist can be found [on the Vim website].
[on the Vim website]: http://www.vim.org/maillist.php#vim-dev [on the Vim website]: http://www.vim.org/maillist.php#vim-dev
Please consider adding a test. Test coverage isn't very good yet, this needs A pull request has the advantage that it will trigger the Continuous
to improve. Look through recent patches for examples. The tests are located Integration tests, you will be warned of problems (you can ignore the coverage
under "src/testdir". warning, it's noisy).
Please consider adding a test. All new functionality should be tested and bug
fixes should be tested for regressions: the test should fail before the fix and
pass after the fix. Look through recent patches for examples and find help
with ":help testing". The tests are located under "src/testdir".
Contributions will be distributed with Vim under the Vim license. Providing a
change to be included implies that you agree with this and your contribution
does not cause us trouble with trademarks or patents. There is no CLA to sign.
# Reporting issues # Reporting issues

View File

@@ -23,6 +23,7 @@ SRC_ALL = \
src/change.c \ src/change.c \
src/channel.c \ src/channel.c \
src/charset.c \ src/charset.c \
src/cmdhist.c \
src/crypt.c \ src/crypt.c \
src/crypt_zip.c \ src/crypt_zip.c \
src/debugger.c \ src/debugger.c \
@@ -50,6 +51,7 @@ SRC_ALL = \
src/gui_beval.c \ src/gui_beval.c \
src/hardcopy.c \ src/hardcopy.c \
src/hashtab.c \ src/hashtab.c \
src/highlight.c \
src/indent.c \ src/indent.c \
src/insexpand.c \ src/insexpand.c \
src/json.c \ src/json.c \
@@ -59,6 +61,7 @@ SRC_ALL = \
src/keymap.h \ src/keymap.h \
src/macros.h \ src/macros.h \
src/main.c \ src/main.c \
src/map.c \
src/mark.c \ src/mark.c \
src/mbyte.c \ src/mbyte.c \
src/memfile.c \ src/memfile.c \
@@ -79,14 +82,18 @@ SRC_ALL = \
src/option.c \ src/option.c \
src/option.h \ src/option.h \
src/popupmnu.c \ src/popupmnu.c \
src/popupwin.c \
src/profiler.c \
src/quickfix.c \ src/quickfix.c \
src/regexp.c \ src/regexp.c \
src/regexp_nfa.c \ src/regexp_nfa.c \
src/regexp.h \ src/regexp.h \
src/screen.c \ src/screen.c \
src/search.c \ src/search.c \
src/session.c \
src/sha256.c \ src/sha256.c \
src/sign.c \ src/sign.c \
src/sound.c \
src/spell.c \ src/spell.c \
src/spell.h \ src/spell.h \
src/spellfile.c \ src/spellfile.c \
@@ -97,6 +104,7 @@ SRC_ALL = \
src/terminal.c \ src/terminal.c \
src/term.h \ src/term.h \
src/termlib.c \ src/termlib.c \
src/testing.c \
src/textprop.c \ src/textprop.c \
src/ui.c \ src/ui.c \
src/undo.c \ src/undo.c \
@@ -105,6 +113,7 @@ SRC_ALL = \
src/version.c \ src/version.c \
src/version.h \ src/version.h \
src/vim.h \ src/vim.h \
src/viminfo.c \
src/winclip.c \ src/winclip.c \
src/window.c \ src/window.c \
src/tee/tee.c \ src/tee/tee.c \
@@ -117,9 +126,12 @@ SRC_ALL = \
src/testdir/lsan-suppress.txt \ src/testdir/lsan-suppress.txt \
src/testdir/sautest/autoload/*.vim \ src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \ src/testdir/runtest.vim \
src/testdir/summarize.vim \
src/testdir/check.vim \
src/testdir/shared.vim \ src/testdir/shared.vim \
src/testdir/screendump.vim \ src/testdir/screendump.vim \
src/testdir/view_util.vim \ src/testdir/view_util.vim \
src/testdir/term_util.vim \
src/testdir/setup.vim \ src/testdir/setup.vim \
src/testdir/gui_init.vim \ src/testdir/gui_init.vim \
src/testdir/setup_gui.vim \ src/testdir/setup_gui.vim \
@@ -148,6 +160,8 @@ SRC_ALL = \
src/testdir/samples/test000 \ src/testdir/samples/test000 \
src/testdir/if_ver*.vim \ src/testdir/if_ver*.vim \
src/testdir/color_ramp.vim \ src/testdir/color_ramp.vim \
src/testdir/silent.wav \
src/testdir/popupbounce.vim \
src/proto.h \ src/proto.h \
src/protodef.h \ src/protodef.h \
src/proto/arabic.pro \ src/proto/arabic.pro \
@@ -181,11 +195,13 @@ SRC_ALL = \
src/proto/gui_beval.pro \ src/proto/gui_beval.pro \
src/proto/hardcopy.pro \ src/proto/hardcopy.pro \
src/proto/hashtab.pro \ src/proto/hashtab.pro \
src/proto/highlight.pro \
src/proto/indent.pro \ src/proto/indent.pro \
src/proto/insexpand.pro \ src/proto/insexpand.pro \
src/proto/json.pro \ src/proto/json.pro \
src/proto/list.pro \ src/proto/list.pro \
src/proto/main.pro \ src/proto/main.pro \
src/proto/map.pro \
src/proto/mark.pro \ src/proto/mark.pro \
src/proto/mbyte.pro \ src/proto/mbyte.pro \
src/proto/memfile.pro \ src/proto/memfile.pro \
@@ -200,12 +216,16 @@ SRC_ALL = \
src/proto/ops.pro \ src/proto/ops.pro \
src/proto/option.pro \ src/proto/option.pro \
src/proto/popupmnu.pro \ src/proto/popupmnu.pro \
src/proto/popupwin.pro \
src/proto/profiler.pro \
src/proto/quickfix.pro \ src/proto/quickfix.pro \
src/proto/regexp.pro \ src/proto/regexp.pro \
src/proto/screen.pro \ src/proto/screen.pro \
src/proto/search.pro \ src/proto/search.pro \
src/proto/session.pro \
src/proto/sha256.pro \ src/proto/sha256.pro \
src/proto/sign.pro \ src/proto/sign.pro \
src/proto/sound.pro \
src/proto/spell.pro \ src/proto/spell.pro \
src/proto/spellfile.pro \ src/proto/spellfile.pro \
src/proto/syntax.pro \ src/proto/syntax.pro \
@@ -213,12 +233,14 @@ SRC_ALL = \
src/proto/term.pro \ src/proto/term.pro \
src/proto/terminal.pro \ src/proto/terminal.pro \
src/proto/termlib.pro \ src/proto/termlib.pro \
src/proto/testing.pro \
src/proto/textprop.pro \ src/proto/textprop.pro \
src/proto/ui.pro \ src/proto/ui.pro \
src/proto/undo.pro \ src/proto/undo.pro \
src/proto/usercmd.pro \ src/proto/usercmd.pro \
src/proto/userfunc.pro \ src/proto/userfunc.pro \
src/proto/version.pro \ src/proto/version.pro \
src/proto/viminfo.pro \
src/proto/winclip.pro \ src/proto/winclip.pro \
src/proto/window.pro \ src/proto/window.pro \
src/libvterm/.bzrignore \ src/libvterm/.bzrignore \
@@ -531,10 +553,7 @@ SRC_AMI = \
README_amisrc.txt.info \ README_amisrc.txt.info \
src.info \ src.info \
src/INSTALLami.txt \ src/INSTALLami.txt \
src/Make_dice.mak \
src/Make_manx.mak \
src/Make_morph.mak \ src/Make_morph.mak \
src/Make_sas.mak \
src/os_amiga.c \ src/os_amiga.c \
src/os_amiga.h \ src/os_amiga.h \
src/proto/os_amiga.pro \ src/proto/os_amiga.pro \

View File

@@ -22,8 +22,10 @@ if "%FEATURE%" == "HUGE" (
) )
.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_ming.txt .\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_ming.txt
:: Filter out the progress bar from the build log
sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
echo "Building MSVC 64bit console Version" echo "Building MSVC 64bit console Version"
sed -e "s/\$(LINKARGS2)/\$(LINKARGS2) | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=no IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1 nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=no IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
nmake -f Make_mvc2.mak clean nmake -f Make_mvc2.mak clean

View File

@@ -47,6 +47,11 @@ Unicode true
!include gvim_version.nsh # for version number !include gvim_version.nsh # for version number
# Definition of Patch for Vim
!ifndef PATCHLEVEL
!define PATCHLEVEL 0
!endif
# ----------- No configurable settings below this line ----------- # ----------- No configurable settings below this line -----------
!include "Library.nsh" # For DLL install !include "Library.nsh" # For DLL install
@@ -173,6 +178,16 @@ Page custom SetCustom ValidateCustom
!include "lang\tradchinese.nsi" !include "lang\tradchinese.nsi"
!endif !endif
##########################################################
# Version resources
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Vim"
VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Vim Developers"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Vim"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright (C) 1996"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Vi Improved - A Text Editor"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${VER_MAJOR}.${VER_MINOR}.${PATCHLEVEL}.0"
VIProductVersion "${VER_MAJOR}.${VER_MINOR}.${PATCHLEVEL}.0"
# Global variables # Global variables
Var vim_dialog Var vim_dialog

View File

@@ -45,37 +45,37 @@ LangString str_type_full ${LANG_SIMPCHINESE} \
LangString str_section_old_ver ${LANG_SIMPCHINESE} \ LangString str_section_old_ver ${LANG_SIMPCHINESE} \
"卸载旧版本" "卸载旧版本"
LangString str_desc_old_ver ${LANG_SIMPCHINESE} \ LangString str_desc_old_ver ${LANG_SIMPCHINESE} \
"卸载系统上旧版本的 Vim" "卸载系统上已存在的 Vim 版本"
LangString str_section_exe ${LANG_SIMPCHINESE} \ LangString str_section_exe ${LANG_SIMPCHINESE} \
"安装 Vim 图形界面" "安装 Vim 图形界面"
LangString str_desc_exe ${LANG_SIMPCHINESE} \ LangString str_desc_exe ${LANG_SIMPCHINESE} \
"安装 Vim 图形界面及脚本。此为必选安装" "安装 Vim 图形界面及运行时文件。此为必选。"
LangString str_section_console ${LANG_SIMPCHINESE} \ LangString str_section_console ${LANG_SIMPCHINESE} \
"安装 Vim 命令行程序" "安装 Vim 控制台版本"
LangString str_desc_console ${LANG_SIMPCHINESE} \ LangString str_desc_console ${LANG_SIMPCHINESE} \
"安装 Vim 命令行程序 (vim.exe)。该程序在命令行窗口中运行" "安装 Vim 的控制台版本vim.exe"
LangString str_section_batch ${LANG_SIMPCHINESE} \ LangString str_section_batch ${LANG_SIMPCHINESE} \
"安装批处理文件" "安装批处理文件"
LangString str_desc_batch ${LANG_SIMPCHINESE} \ LangString str_desc_batch ${LANG_SIMPCHINESE} \
"为 Vim 的各种变体创建批处理程序,以便在命令行下运行 Vim。" "为 Vim 的各种变体创建批处理文件,以便在命令行下运行 Vim。"
LangString str_group_icons ${LANG_SIMPCHINESE} \ LangString str_group_icons ${LANG_SIMPCHINESE} \
"创建 Vim 图标" "创建图标"
LangString str_desc_icons ${LANG_SIMPCHINESE} \ LangString str_desc_icons ${LANG_SIMPCHINESE} \
"为 Vim 创建若干图标,以方便使用 Vim。" "为 Vim 创建若干图标,以方便使用 Vim。"
LangString str_section_desktop ${LANG_SIMPCHINESE} \ LangString str_section_desktop ${LANG_SIMPCHINESE} \
"桌面" "桌面图标"
LangString str_desc_desktop ${LANG_SIMPCHINESE} \ LangString str_desc_desktop ${LANG_SIMPCHINESE} \
"在桌面上为 Vim 创建若干图标,以方便启动 Vim" "创建 Vim 的桌面快捷方式图标"
LangString str_section_start_menu ${LANG_SIMPCHINESE} \ LangString str_section_start_menu ${LANG_SIMPCHINESE} \
"在启动菜单程序菜单下" "「开始」菜单程序"
LangString str_desc_start_menu ${LANG_SIMPCHINESE} \ LangString str_desc_start_menu ${LANG_SIMPCHINESE} \
"启动菜单的程序菜单下添加 Vim 组。适用于 Windows 95 及以上版本" "开始菜单中添加 Vim 程序组(适用于 Windows 95 及以上版本"
#LangString str_section_quick_launch ${LANG_SIMPCHINESE} \ #LangString str_section_quick_launch ${LANG_SIMPCHINESE} \
# "在快速启动启动栏中" # "在快速启动启动栏中"
@@ -83,9 +83,9 @@ LangString str_desc_start_menu ${LANG_SIMPCHINESE} \
# "在快速启动栏中添加 Vim 图标。" # "在快速启动栏中添加 Vim 图标。"
LangString str_section_edit_with ${LANG_SIMPCHINESE} \ LangString str_section_edit_with ${LANG_SIMPCHINESE} \
"安装快捷菜单" "添加到快捷菜单"
LangString str_desc_edit_with ${LANG_SIMPCHINESE} \ LangString str_desc_edit_with ${LANG_SIMPCHINESE} \
"将 Vim 添加到“打开方式”快捷菜单中。" "“用 Vim 编辑”添加到快捷菜单中。"
#LangString str_section_edit_with32 ${LANG_SIMPCHINESE} \ #LangString str_section_edit_with32 ${LANG_SIMPCHINESE} \
# "32 位版本" # "32 位版本"
@@ -98,10 +98,10 @@ LangString str_desc_edit_with ${LANG_SIMPCHINESE} \
# "将 Vim 添加到 64 位程序的“打开方式”快捷菜单中。" # "将 Vim 添加到 64 位程序的“打开方式”快捷菜单中。"
LangString str_section_vim_rc ${LANG_SIMPCHINESE} \ LangString str_section_vim_rc ${LANG_SIMPCHINESE} \
"创建缺省配置文件" "创建默认配置文件"
LangString str_desc_vim_rc ${LANG_SIMPCHINESE} \ LangString str_desc_vim_rc ${LANG_SIMPCHINESE} \
"在安装目录下生成缺省的 Vim 配置文件(_vimrc)。\ "在安装目录下生成默认的 Vim 配置文件(_vimrc)。\
如果该文件已经存在,则略过此项。" 如果该文件已经存在,则跳过该项。"
LangString str_group_plugin ${LANG_SIMPCHINESE} \ LangString str_group_plugin ${LANG_SIMPCHINESE} \
"创建插件目录" "创建插件目录"
@@ -121,9 +121,9 @@ LangString str_desc_plugin_vim ${LANG_SIMPCHINESE} \
该目录下的扩展插件。" 该目录下的扩展插件。"
LangString str_section_vis_vim ${LANG_SIMPCHINESE} \ LangString str_section_vis_vim ${LANG_SIMPCHINESE} \
"安装 VisVim 插件" "VisVim 插件"
LangString str_desc_vis_vim ${LANG_SIMPCHINESE} \ LangString str_desc_vis_vim ${LANG_SIMPCHINESE} \
"安装用于与微软 Microsoft Visual Studio 进行集成的 VisVim 插件。" "安装 Visual Studio 集成的 VisVim 插件。"
LangString str_section_nls ${LANG_SIMPCHINESE} \ LangString str_section_nls ${LANG_SIMPCHINESE} \
"安装多语言支持" "安装多语言支持"
@@ -153,12 +153,12 @@ LangString str_desc_rm_plugin_home ${LANG_SIMPCHINESE} \
LangString str_unsection_plugin_vim ${LANG_SIMPCHINESE} \ LangString str_unsection_plugin_vim ${LANG_SIMPCHINESE} \
"公共插件目录" "公共插件目录"
LangString str_desc_rm_plugin_vim ${LANG_SIMPCHINESE} \ LangString str_desc_rm_plugin_vim ${LANG_SIMPCHINESE} \
"Remove the plugin directories from Vim install directory." "从 Vim 安装目录下移除插件目录。"
LangString str_unsection_rootdir ${LANG_SIMPCHINESE} \ LangString str_unsection_rootdir ${LANG_SIMPCHINESE} \
"Remove the Vim root directory" "移除 Vim 主目录"
LangString str_desc_rm_rootdir ${LANG_SIMPCHINESE} \ LangString str_desc_rm_rootdir ${LANG_SIMPCHINESE} \
"Remove the Vim root directory. It contains your Vim configuration files!" "移除 Vim 的主目录,该目录包含您的配置文件!"
############################################################################## ##############################################################################
@@ -225,13 +225,13 @@ LangString str_msg_rm_exe_fail ${LANG_SIMPCHINESE} \
# 该目录下仍有其他文件。" # 该目录下仍有其他文件。"
LangString str_msg_uninstalling ${LANG_SIMPCHINESE} \ LangString str_msg_uninstalling ${LANG_SIMPCHINESE} \
"Uninstalling the old version..." "正在卸载旧版本..."
LangString str_msg_registering ${LANG_SIMPCHINESE} \ LangString str_msg_registering ${LANG_SIMPCHINESE} \
"Registering..." "正在注册..."
LangString str_msg_unregistering ${LANG_SIMPCHINESE} \ LangString str_msg_unregistering ${LANG_SIMPCHINESE} \
"Unregistering..." "正在取消注册..."
############################################################################## ##############################################################################
@@ -239,12 +239,12 @@ LangString str_msg_unregistering ${LANG_SIMPCHINESE} \
############################################################################## ##############################################################################
LangString str_vimrc_page_title ${LANG_SIMPCHINESE} \ LangString str_vimrc_page_title ${LANG_SIMPCHINESE} \
"Choose _vimrc settings" "设置 _vimrc"
LangString str_vimrc_page_subtitle ${LANG_SIMPCHINESE} \ LangString str_vimrc_page_subtitle ${LANG_SIMPCHINESE} \
"Choose the settings for enhancement, keyboard and mouse." "选择键盘、鼠标和增强选项。"
LangString str_msg_compat_title ${LANG_SIMPCHINESE} \ LangString str_msg_compat_title ${LANG_SIMPCHINESE} \
" Vi / Vim behavior " "Vi / Vim 行为"
LangString str_msg_compat_desc ${LANG_SIMPCHINESE} \ LangString str_msg_compat_desc ${LANG_SIMPCHINESE} \
"&Compatibility and enhancements" "&Compatibility and enhancements"
LangString str_msg_compat_vi ${LANG_SIMPCHINESE} \ LangString str_msg_compat_vi ${LANG_SIMPCHINESE} \
@@ -257,7 +257,7 @@ LangString str_msg_compat_all ${LANG_SIMPCHINESE} \
"Vim with all enhancements (load vimrc_example.vim) (Default)" "Vim with all enhancements (load vimrc_example.vim) (Default)"
LangString str_msg_keymap_title ${LANG_SIMPCHINESE} \ LangString str_msg_keymap_title ${LANG_SIMPCHINESE} \
" Mappings " "键盘映射"
LangString str_msg_keymap_desc ${LANG_SIMPCHINESE} \ LangString str_msg_keymap_desc ${LANG_SIMPCHINESE} \
"&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)" "&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
LangString str_msg_keymap_default ${LANG_SIMPCHINESE} \ LangString str_msg_keymap_default ${LANG_SIMPCHINESE} \
@@ -266,7 +266,7 @@ LangString str_msg_keymap_windows ${LANG_SIMPCHINESE} \
"Remap a few keys" "Remap a few keys"
LangString str_msg_mouse_title ${LANG_SIMPCHINESE} \ LangString str_msg_mouse_title ${LANG_SIMPCHINESE} \
" Mouse " "鼠标"
LangString str_msg_mouse_desc ${LANG_SIMPCHINESE} \ LangString str_msg_mouse_desc ${LANG_SIMPCHINESE} \
"&Behavior of right and left buttons" "&Behavior of right and left buttons"
LangString str_msg_mouse_default ${LANG_SIMPCHINESE} \ LangString str_msg_mouse_default ${LANG_SIMPCHINESE} \

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -1,13 +1,14 @@
" This script tests a color scheme for some errors. Load the scheme and source " This script tests a color scheme for some errors and lists potential errors.
" this script. e.g. :e colors/desert.vim | :so check_colors.vim " Load the scheme and source this script, like this:
" Will output possible errors. " :edit colors/desert.vim | :so colors/tools/check_colors.vim
let s:save_cpo= &cpo let s:save_cpo= &cpo
set cpo&vim set cpo&vim
func! Test_check_colors() func! Test_check_colors()
let l:savedview = winsaveview()
call cursor(1,1) call cursor(1,1)
let err={} let err = {}
" 1) Check g:colors_name is existing " 1) Check g:colors_name is existing
if !search('\<\%(g:\)\?colors_name\>', 'cnW') if !search('\<\%(g:\)\?colors_name\>', 'cnW')
@@ -17,48 +18,115 @@ func! Test_check_colors()
endif endif
" 2) Check for some well-defined highlighting groups " 2) Check for some well-defined highlighting groups
" Some items, check several groups, e.g. Diff, Spell let hi_groups = [
let hi_groups = ['ColorColumn', 'Diff', 'ErrorMsg', 'Folded', \ 'ColorColumn',
\ 'FoldColumn', 'IncSearch', 'LineNr', 'ModeMsg', 'MoreMsg', 'NonText', \ 'Comment',
\ 'Normal', 'Pmenu', 'Todo', 'Search', 'Spell', 'StatusLine', 'TabLine', \ 'Conceal',
\ 'Title', 'Visual', 'WarningMsg', 'WildMenu'] \ 'Constant',
let groups={} \ 'Cursor',
\ 'CursorColumn',
\ 'CursorLine',
\ 'CursorLineNr',
\ 'DiffAdd',
\ 'DiffChange',
\ 'DiffDelete',
\ 'DiffText',
\ 'Directory',
\ 'EndOfBuffer',
\ 'Error',
\ 'ErrorMsg',
\ 'FoldColumn',
\ 'Folded',
\ 'Identifier',
\ 'Ignore',
\ 'IncSearch',
\ 'LineNr',
\ 'MatchParen',
\ 'ModeMsg',
\ 'MoreMsg',
\ 'NonText',
\ 'Normal',
\ 'Pmenu',
\ 'PmenuSbar',
\ 'PmenuSel',
\ 'PmenuThumb',
\ 'PreProc',
\ 'Question',
\ 'QuickFixLine',
\ 'Search',
\ 'SignColumn',
\ 'Special',
\ 'SpecialKey',
\ 'SpellBad',
\ 'SpellCap',
\ 'SpellLocal',
\ 'SpellRare',
\ 'Statement',
\ 'StatusLine',
\ 'StatusLineNC',
\ 'StatusLineTerm',
\ 'StatusLineTermNC',
\ 'TabLine',
\ 'TabLineFill',
\ 'TabLineSel',
\ 'Title',
\ 'Todo',
\ 'ToolbarButton',
\ 'ToolbarLine',
\ 'Type',
\ 'Underlined',
\ 'VertSplit',
\ 'Visual',
\ 'VisualNOS',
\ 'WarningMsg',
\ 'WildMenu',
\ ]
let groups = {}
for group in hi_groups for group in hi_groups
if search('\c@suppress\s\+'.group, 'cnW') if search('\c@suppress\s\+\<' .. group .. '\>', 'cnW')
" skip check, if the script contains a line like " skip check, if the script contains a line like
" @suppress Visual: " @suppress Visual:
let groups[group] = 'Ignoring '.group
continue continue
endif endif
if !search('hi\%[ghlight] \+'.group, 'cnW') if search('hi\%[ghlight]!\= \+link \+' .. group, 'cnW') " Linked group
let groups[group] = 'No highlight definition for '.group
continue continue
endif endif
if !search('hi\%[ghlight] \+'.group. '.*fg=', 'cnW') if !search('hi\%[ghlight] \+\<' .. group .. '\>', 'cnW')
let groups[group] = 'Missing foreground color for '.group let groups[group] = 'No highlight definition for ' .. group
continue continue
endif endif
if search('hi\%[ghlight] \+'.group. '.*guibg=', 'cnW') && if !search('hi\%[ghlight] \+\<' .. group .. '\>.*[bf]g=', 'cnW')
\ !search('hi\%[ghlight] \+'.group. '.*ctermbg=', 'cnW') let groups[group] = 'Missing foreground or background color for ' .. group
let groups[group] = 'Missing bg terminal color for '.group
continue continue
endif endif
call search('hi\%[ghlight] \+'.group, 'cW') if search('hi\%[ghlight] \+\<' .. group .. '\>.*guibg=', 'cnW') &&
" only check in the current line \ !search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermbg=', 'cnW')
if !search('guifg', 'cnW', line('.')) || !search('ctermfg', 'cnW', line('.')) \ && group != 'Cursor'
" do not check for background colors, they could be intentionally left out let groups[group] = 'Missing bg terminal color for ' .. group
let groups[group] = 'Missing fg definition for '.group continue
endif endif
if !search('hi\%[ghlight] \+\<' .. group .. '\>.*guifg=', 'cnW')
\ && group !~ '^Diff'
let groups[group] = 'Missing guifg definition for ' .. group
continue
endif
if !search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermfg=', 'cnW')
\ && group !~ '^Diff'
\ && group != 'Cursor'
let groups[group] = 'Missing ctermfg definition for ' .. group
continue
endif
" do not check for background colors, they could be intentionally left out
call cursor(1,1) call cursor(1,1)
endfor endfor
let err['highlight'] = groups let err['highlight'] = groups
" 3) Check, that it does not set background highlighting " 3) Check, that it does not set background highlighting
" Doesn't ':hi Normal ctermfg=253 ctermfg=233' also set the background sometimes? " Doesn't ':hi Normal ctermfg=253 ctermfg=233' also set the background sometimes?
let bg_set='\(set\?\|setl\(ocal\)\?\) .*\(background\|bg\)=\(dark\|light\)' let bg_set = '\(set\?\|setl\(ocal\)\?\) .*\(background\|bg\)=\(dark\|light\)'
let bg_let='let \%([&]\%([lg]:\)\?\)\%(background\|bg\)\s*=\s*\([''"]\?\)\w\+\1' let bg_let = 'let \%([&]\%([lg]:\)\?\)\%(background\|bg\)\s*=\s*\([''"]\?\)\w\+\1'
let bg_pat='\%('.bg_set. '\|'.bg_let.'\)' let bg_pat = '\%(' .. bg_set .. '\|' .. bg_let .. '\)'
let line=search(bg_pat, 'cnW') let line = search(bg_pat, 'cnW')
if search(bg_pat, 'cnW') if search(bg_pat, 'cnW')
exe line exe line
if search('hi \U\w\+\s\+\S', 'cbnW') if search('hi \U\w\+\s\+\S', 'cbnW')
@@ -80,7 +148,7 @@ func! Test_check_colors()
" if exists("syntax_on") " if exists("syntax_on")
" syntax reset " syntax reset
" endif " endif
let pat='hi\%[ghlight]\s*clear\n\s*if\s*exists(\([''"]\)syntax_on\1)\n\s*syn\%[tax]\s*reset\n\s*endif' let pat = 'hi\%[ghlight]\s*clear\n\s*if\s*exists(\([''"]\)syntax_on\1)\n\s*syn\%[tax]\s*reset\n\s*endif'
if !search(pat, 'cnW') if !search(pat, 'cnW')
let err['init'] = 'No initialization' let err['init'] = 'No initialization'
endif endif
@@ -91,15 +159,43 @@ func! Test_check_colors()
endif endif
" 7) Does not define filetype specific groups like vimCommand, htmlTag, " 7) Does not define filetype specific groups like vimCommand, htmlTag,
let hi_groups = ['vim', 'html', 'python', 'sh', 'ruby'] let hi_groups = filter(getcompletion('', 'filetype'), { _,v -> v !~# '\%[no]syn\%(color\|load\|tax\)' })
let ft_groups = []
" let group = '\%('.join(hi_groups, '\|').'\)' " More efficient than a for loop, but less informative
for group in hi_groups for group in hi_groups
let pat='\Chi\%[ghlight]\s*\zs'.group.'\w\+\>' let pat = '\Chi\%[ghlight]!\= *\%[link] \+\zs' .. group .. '\w\+\>\ze \+.' " Skips `hi clear`
if search(pat, 'cW')
call add(ft_groups, matchstr(getline('.'), pat))
endif
call cursor(1,1)
endfor
if !empty(ft_groups)
let err['filetype'] = get(err, 'filetype', 'Should not define: ') . join(uniq(sort(ft_groups)))
endif
" 8) Were debugPC and debugBreakpoint defined?
for group in ['debugPC', 'debugBreakpoint']
let pat = '\Chi\%[ghlight]!\= *\%[link] \+\zs' .. group .. '\>'
if search(pat, 'cnW') if search(pat, 'cnW')
let line = search(pat, 'cW') let line = search(pat, 'cW')
let err['filetype'] = get(err, 'filetype', 'Should not define: ') . matchstr(getline('.'), pat). ' ' let err['filetype'] = get(err, 'filetype', 'Should not define: ') . matchstr(getline('.'), pat). ' '
endif endif
call cursor(1,1) call cursor(1,1)
endfor endfor
" 9) Normal should be defined first, not use reverse, fg or bg
call cursor(1,1)
let pat = 'hi\%[light] \+\%(link\|clear\)\@!\w\+\>'
call search(pat, 'cW') " Look for the first hi def, skipping `hi link` and `hi clear`
if getline('.') !~# '\m\<Normal\>'
let err['highlight']['Normal'] = 'Should be defined first'
elseif getline('.') =~# '\m\%(=\%(fg\|bg\)\)'
let err['highlight']['Normal'] = "Should not use 'fg' or 'bg'"
elseif getline('.') =~# '\m=\%(inv\|rev\)erse'
let err['highlight']['Normal'] = 'Should not use reverse mode'
endif
call winrestview(l:savedview)
let g:err = err let g:err = err
" print Result " print Result
@@ -107,11 +203,11 @@ func! Test_check_colors()
endfu endfu
fu! Result(err) fu! Result(err)
let do_roups = 0 let do_groups = 0
echohl Title|echomsg "---------------"|echohl Normal echohl Title|echomsg "---------------"|echohl Normal
for key in sort(keys(a:err)) for key in sort(keys(a:err))
if key is# 'highlight' if key is# 'highlight'
let do_groups = 1 let do_groups = !empty(a:err[key])
continue continue
else else
if a:err[key] !~ 'OK' if a:err[key] !~ 'OK'

View File

@@ -1,8 +1,8 @@
" Vim compiler file " Vim compiler file
" Compiler: Microsoft Visual Studio C# " Compiler: Microsoft Visual Studio C#
" Maintainer: Zhou YiChao (broken.zhou@gmail.com) " Maintainer: Yichao Zhou (broken.zhou@gmail.com)
" Previous Maintainer: Joseph H. Yao (hyao@sina.com) " Previous Maintainer: Joseph H. Yao (hyao@sina.com)
" Last Change: 2012 Apr 30 " Last Change: Jul 22, 2019
if exists("current_compiler") if exists("current_compiler")
finish finish
@@ -20,7 +20,7 @@ CompilerSet errorformat+=%f(%l\\,%v):\ %t%*[^:]:\ %m,
\%trror%*[^:]:\ %m, \%trror%*[^:]:\ %m,
\%tarning%*[^:]:\ %m \%tarning%*[^:]:\ %m
CompilerSet makeprg=csc\ % CompilerSet makeprg=csc\ %:S
let &cpo = s:keepcpo let &cpo = s:keepcpo
unlet s:keepcpo unlet s:keepcpo

View File

@@ -1,13 +1,13 @@
" Vim compiler file " Vim compiler file
" Compiler: Erlang " Compiler: Erlang
" Maintainer: Dmitry Vasiliev <dima at hlabs dot org> " Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
" Last Change: 2012-02-13 " Last Change: 2019 Jul 23
if exists("current_compiler") if exists("current_compiler")
finish finish
endif endif
let current_compiler = "erlang" let current_compiler = "erlang"
CompilerSet makeprg=erlc\ -Wall\ % CompilerSet makeprg=erlc\ -Wall\ %:S
CompilerSet errorformat=%f:%l:\ %m CompilerSet errorformat=%f:%l:\ %m

View File

@@ -22,7 +22,7 @@ CompilerSet errorformat=
\%-Z%p%^%.%#, \%-Z%p%^%.%#,
\%-G%.%#, \%-G%.%#,
" Compiler call " Compiler call
CompilerSet makeprg=df\ /nologo\ /noobj\ /c\ % CompilerSet makeprg=df\ /nologo\ /noobj\ /c\ %:S
" Visual fortran defaults to printing output on stderr " Visual fortran defaults to printing output on stderr
" Adjust option shellpipe accordingly " Adjust option shellpipe accordingly

View File

@@ -2,6 +2,8 @@
" Compiler: GNU C Compiler " Compiler: GNU C Compiler
" Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2010-10-14 " Latest Revision: 2010-10-14
" changed pattern for entering/leaving directories
" by Daniel Hahler, 2019 Jul 12
" added line suggested by Anton Lindqvist 2016 Mar 31 " added line suggested by Anton Lindqvist 2016 Mar 31
if exists("current_compiler") if exists("current_compiler")
@@ -27,10 +29,10 @@ CompilerSet errorformat=
\%f:%l:\ %m, \%f:%l:\ %m,
\%f:\\(%*[^\\)]\\):\ %m, \%f:\\(%*[^\\)]\\):\ %m,
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m, \\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
\%D%*\\a[%*\\d]:\ Entering\ directory\ [`']%f', \%D%*\\a[%*\\d]:\ Entering\ directory\ %*[`']%f',
\%X%*\\a[%*\\d]:\ Leaving\ directory\ [`']%f', \%X%*\\a[%*\\d]:\ Leaving\ directory\ %*[`']%f',
\%D%*\\a:\ Entering\ directory\ [`']%f', \%D%*\\a:\ Entering\ directory\ %*[`']%f',
\%X%*\\a:\ Leaving\ directory\ [`']%f', \%X%*\\a:\ Leaving\ directory\ %*[`']%f',
\%DMaking\ %*\\a\ in\ %f \%DMaking\ %*\\a\ in\ %f
if exists('g:compiler_gcc_ignore_unmatched_lines') if exists('g:compiler_gcc_ignore_unmatched_lines')

View File

@@ -1,7 +1,7 @@
" Vim Compiler File " Vim Compiler File
" Compiler: Jikes " Compiler: Jikes
" Maintainer: Dan Sharp <dwsharp at hotmail dot com> " Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Change: 20 Jan 2009 " Last Change: 2019 Jul 23
" URL: http://dwsharp.users.sourceforge.net/vim/compiler " URL: http://dwsharp.users.sourceforge.net/vim/compiler
if exists("current_compiler") if exists("current_compiler")
@@ -14,5 +14,5 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
endif endif
" Jikes defaults to printing output on stderr " Jikes defaults to printing output on stderr
CompilerSet makeprg=jikes\ -Xstdout\ +E\ \"%\" CompilerSet makeprg=jikes\ -Xstdout\ +E\ \"%:S\"
CompilerSet errorformat=%f:%l:%v:%*\\d:%*\\d:%*\\s%m CompilerSet errorformat=%f:%l:%v:%*\\d:%*\\d:%*\\s%m

View File

@@ -1,7 +1,11 @@
" Vim Compiler File " Vim Compiler File
" Compiler: ocaml " Compiler: ocaml
" Maintainer: See ftplugin/ocaml.vim (?) " Maintainer: Markus Mottl <markus.mottl@gmail.com>
" Last Change: June 2013 by Marc Weber " URL: https://github.com/rgrinberg/vim-ocaml
" Last Change:
" 2017 Nov 26 - Improved error format (Markus Mottl)
" 2013 Aug 27 - Added a new OCaml error format (Markus Mottl)
" 2013 Jun 30 - Initial version (Marc Weber)
" "
" Marc Weber's comments: " Marc Weber's comments:
" Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt, " Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt,
@@ -17,7 +21,6 @@
" "
" So having it here makes people opt-in " So having it here makes people opt-in
if exists("current_compiler") if exists("current_compiler")
finish finish
endif endif
@@ -28,6 +31,7 @@ set cpo&vim
CompilerSet errorformat = CompilerSet errorformat =
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:, \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d\ %.%#,
\%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m, \%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
\%+EReference\ to\ unbound\ regexp\ name\ %m, \%+EReference\ to\ unbound\ regexp\ name\ %m,
\%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m, \%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m,
@@ -38,6 +42,12 @@ CompilerSet errorformat =
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f', \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
\%D%*\\a:\ Entering\ directory\ `%f', \%D%*\\a:\ Entering\ directory\ `%f',
\%X%*\\a:\ Leaving\ directory\ `%f', \%X%*\\a:\ Leaving\ directory\ `%f',
\%D%*\\a[%*\\d]:\ Entering\ directory\ '%f',
\%X%*\\a[%*\\d]:\ Leaving\ directory\ '%f',
\%D%*\\a:\ Entering\ directory\ '%f',
\%X%*\\a:\ Leaving\ directory\ '%f',
\%DEntering\ directory\ '%f',
\%XLeaving\ directory\ '%f',
\%DMaking\ %*\\a\ in\ %f \%DMaking\ %*\\a\ in\ %f
let &cpo = s:cpo_save let &cpo = s:cpo_save

View File

@@ -1,7 +1,7 @@
" Vim compiler file " Vim compiler file
" Compiler: onsgmls " Compiler: onsgmls
" Maintainer: Robert Rowsome <rowsome@wam.umd.edu> " Maintainer: Robert Rowsome <rowsome@wam.umd.edu>
" Last Change: 2004 Mar 27 " Last Change: 2019 Jul 23
if exists("current_compiler") if exists("current_compiler")
finish finish
@@ -15,7 +15,7 @@ endif
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo-=C set cpo-=C
CompilerSet makeprg=onsgmls\ -s\ % CompilerSet makeprg=onsgmls\ -s\ %:S
CompilerSet errorformat=onsgmls:%f:%l:%c:%t:%m, CompilerSet errorformat=onsgmls:%f:%l:%c:%t:%m,
\onsgmls:%f:%l:%c:%m \onsgmls:%f:%l:%c:%m

View File

@@ -1,7 +1,7 @@
" Vim Compiler File " Vim Compiler File
" Compiler: Perl syntax checks (perl -Wc) " Compiler: Perl syntax checks (perl -Wc)
" Maintainer: Christian J. Robinson <heptite@gmail.com> " Maintainer: Christian J. Robinson <heptite@gmail.com>
" Last Change: 2006 Aug 13 " Last Change: 2019 Jul 22
if exists("current_compiler") if exists("current_compiler")
finish finish
@@ -27,7 +27,7 @@ else
let s:taintopt = '' let s:taintopt = ''
endif endif
exe 'CompilerSet makeprg=perl\ -' . s:warnopt . s:taintopt . 'c\ %' exe 'CompilerSet makeprg=perl\ -' . s:warnopt . s:taintopt . 'c\ %:S'
CompilerSet errorformat= CompilerSet errorformat=
\%-G%.%#had\ compilation\ errors., \%-G%.%#had\ compilation\ errors.,

View File

@@ -19,7 +19,7 @@ endif
if exists("g:rustc_makeprg_no_percent") && g:rustc_makeprg_no_percent != 0 if exists("g:rustc_makeprg_no_percent") && g:rustc_makeprg_no_percent != 0
CompilerSet makeprg=rustc CompilerSet makeprg=rustc
else else
CompilerSet makeprg=rustc\ \% CompilerSet makeprg=rustc\ \%:S
endif endif
" Old errorformat (before nightly 2016/08/10) " Old errorformat (before nightly 2016/08/10)

View File

@@ -2,7 +2,7 @@
" Compiler: splint/lclint (C source code checker) " Compiler: splint/lclint (C source code checker)
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> " Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Splint Home: http://www.splint.org/ " Splint Home: http://www.splint.org/
" Last Change: 2005 Apr 21 " Last Change: 2019 Jul 23
" $Revision: 1.3 $ " $Revision: 1.3 $
if exists("current_compiler") if exists("current_compiler")
@@ -19,7 +19,7 @@ set cpo-=C
" adapt this if you want to check more than one file at a time. " adapt this if you want to check more than one file at a time.
" put command line options in .splintrc or ~/.splintrc " put command line options in .splintrc or ~/.splintrc
CompilerSet makeprg=splint\ % CompilerSet makeprg=splint\ %:S
" Note: when using the new array bounds checking flags: Each warning " Note: when using the new array bounds checking flags: Each warning
" usually has several lines and several references to source code mostly " usually has several lines and several references to source code mostly

View File

@@ -1,7 +1,7 @@
" Vim Compiler File " Vim Compiler File
" Compiler: xmlwf " Compiler: xmlwf
" Maintainer: Robert Rowsome <rowsome@wam.umd.edu> " Maintainer: Robert Rowsome <rowsome@wam.umd.edu>
" Last Change: 2004 Mar 27 " Last Change: 2019 Jul 23
if exists("current_compiler") if exists("current_compiler")
finish finish
@@ -15,7 +15,7 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args> command -nargs=* CompilerSet setlocal <args>
endif endif
CompilerSet makeprg=xmlwf\ % CompilerSet makeprg=xmlwf\ %:S
CompilerSet errorformat=%f:%l%c:%m CompilerSet errorformat=%f:%l%c:%m

View File

@@ -103,6 +103,7 @@ DOCS = \
tagsrch.txt \ tagsrch.txt \
term.txt \ term.txt \
terminal.txt \ terminal.txt \
testing.txt \
textprop.txt \ textprop.txt \
tips.txt \ tips.txt \
todo.txt \ todo.txt \
@@ -241,6 +242,7 @@ HTMLS = \
tagsrch.html \ tagsrch.html \
term.html \ term.html \
terminal.html \ terminal.html \
testing.html \
textprop.html \ textprop.html \
tips.html \ tips.html \
todo.html \ todo.html \

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.1. Last change: 2019 May 05 *autocmd.txt* For Vim version 8.1. Last change: 2019 Jun 26
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -407,8 +407,8 @@ BufFilePost After changing the name of the current buffer
BufFilePre Before changing the name of the current buffer BufFilePre Before changing the name of the current buffer
with the ":file" or ":saveas" command. with the ":file" or ":saveas" command.
*BufHidden* *BufHidden*
BufHidden Just after a buffer has become hidden. That BufHidden Just before a buffer becomes hidden. That is,
is, when there are no longer windows that show when there are no longer windows that show
the buffer, but the buffer is not unloaded or the buffer, but the buffer is not unloaded or
deleted. Not used for ":qa" or ":q" when deleted. Not used for ":qa" or ":q" when
exiting Vim. exiting Vim.
@@ -873,15 +873,32 @@ MenuPopup Just before showing the popup menu (under the
*OptionSet* *OptionSet*
OptionSet After setting an option. The pattern is OptionSet After setting an option. The pattern is
matched against the long option name. matched against the long option name.
The |v:option_old| variable indicates the |<amatch>| indicates what option has been set.
old option value, |v:option_new| variable
indicates the newly set value, the
|v:option_type| variable indicates whether
it's global or local scoped and |<amatch>|
indicates what option has been set.
Is not triggered on startup and for the 'key' |v:option_type| indicates whether it's global
option for obvious reasons. or local scoped.
|v:option_command| indicates what type of
set/let command was used (follow the tag to
see the table).
|v:option_new| indicates the newly set value.
|v:option_oldlocal| has the old local value.
|v:option_oldglobal| has the old global value.
|v:option_old| indicates the old option value.
|v:option_oldlocal| is only set when |:set|
or |:setlocal| or a |modeline| was used to set
the option. Similarly |v:option_oldglobal| is
only set when |:set| or |:setglobal| was used.
Note that when setting a |global-local| string
option with |:set|, then |v:option_old| is the
old global value. However, for all other kinds
of options (local string options, global-local
number options, ...) it is the old local
value.
OptionSet is not triggered on startup and for
the 'key' option for obvious reasons.
Usage example: Check for the existence of the Usage example: Check for the existence of the
directory in the 'backupdir' and 'undodir' directory in the 'backupdir' and 'undodir'
@@ -1365,7 +1382,7 @@ have changed autocommands, or when Vim has executed the wrong autocommands
Note that the 'eventignore' option applies here too. Events listed in this Note that the 'eventignore' option applies here too. Events listed in this
option will not cause any commands to be executed. option will not cause any commands to be executed.
*:do* *:doau* *:doautocmd* *E217* *:do* *:doau* *:doaut* *:doautocmd* *E217*
:do[autocmd] [<nomodeline>] [group] {event} [fname] :do[autocmd] [<nomodeline>] [group] {event} [fname]
Apply the autocommands matching [fname] (default: Apply the autocommands matching [fname] (default:
current file name) for {event} to the current buffer. current file name) for {event} to the current buffer.

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 8.1. Last change: 2019 May 07 *change.txt* For Vim version 8.1. Last change: 2019 Jul 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1179,9 +1179,9 @@ There are ten types of registers: *registers* *E354*
2. 10 numbered registers "0 to "9 2. 10 numbered registers "0 to "9
3. The small delete register "- 3. The small delete register "-
4. 26 named registers "a to "z or "A to "Z 4. 26 named registers "a to "z or "A to "Z
5. three read-only registers ":, "., "% 5. Three read-only registers ":, "., "%
6. alternate buffer register "# 6. Alternate buffer register "#
7. the expression register "= 7. The expression register "=
8. The selection and drop registers "*, "+ and "~ 8. The selection and drop registers "*, "+ and "~
9. The black hole register "_ 9. The black hole register "_
10. Last search pattern register "/ 10. Last search pattern register "/

View File

@@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.1. Last change: 2019 May 05 *channel.txt* For Vim version 8.1. Last change: 2019 Jul 28
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -18,11 +18,13 @@ The Netbeans interface also uses a channel. |netbeans|
5. Channel commands |channel-commands| 5. Channel commands |channel-commands|
6. Using a RAW or NL channel |channel-raw| 6. Using a RAW or NL channel |channel-raw|
7. More channel functions |channel-more| 7. More channel functions |channel-more|
8. Starting a job with a channel |job-start| 8. Channel functions details |channel-functions-details|
9. Starting a job without a channel |job-start-nochannel| 9. Starting a job with a channel |job-start|
10. Job options |job-options| 10. Starting a job without a channel |job-start-nochannel|
11. Controlling a job |job-control| 11. Job functions |job-functions-details|
12. Using a prompt buffer |prompt-buffer| 12. Job options |job-options|
13. Controlling a job |job-control|
14. Using a prompt buffer |prompt-buffer|
{only when compiled with the |+channel| feature for channel stuff} {only when compiled with the |+channel| feature for channel stuff}
You can check this with: `has('channel')` You can check this with: `has('channel')`
@@ -155,7 +157,10 @@ Use |ch_status()| to see if the channel could be opened.
func MyCloseHandler(channel) func MyCloseHandler(channel)
< Vim will invoke callbacks that handle data before invoking < Vim will invoke callbacks that handle data before invoking
close_cb, thus when this function is called no more data will close_cb, thus when this function is called no more data will
be passed to the callbacks. be passed to the callbacks. However, if a callback causes Vim
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* *channel-drop*
"drop" Specifies when to drop messages: "drop" Specifies when to drop messages:
"auto" When there is no callback to handle a message. "auto" When there is no callback to handle a message.
@@ -457,7 +462,211 @@ For a JS or JSON channel this returns one decoded message.
This includes any sequence number. This includes any sequence number.
============================================================================== ==============================================================================
8. Starting a job with a channel *job-start* *job* 8. Channel functions details *channel-functions-details*
ch_canread({handle}) *ch_canread()*
Return non-zero when there is something to read from {handle}.
{handle} can be a Channel or a Job that has a Channel.
This is useful to read from a channel at a convenient time,
e.g. from a timer.
Note that messages are dropped when the channel does not have
a callback. Add a close callback to avoid that.
ch_close({handle}) *ch_close()*
Close {handle}. See |channel-close|.
{handle} can be a Channel or a Job that has a Channel.
A close callback is not invoked.
ch_close_in({handle}) *ch_close_in()*
Close the "in" part of {handle}. See |channel-close-in|.
{handle} can be a Channel or a Job that has a Channel.
A close callback is not invoked.
ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
Send {expr} over {handle}. The {expr} is encoded
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.
*E917*
{options} must be a Dictionary. It must not have a "callback"
entry. It can have a "timeout" entry to specify the timeout
for this specific request.
ch_evalexpr() waits for a response and returns the decoded
expression. When there is an error or timeout it returns an
empty string.
ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
Send {string} over {handle}.
{handle} can be a Channel or a Job that has a Channel.
Works like |ch_evalexpr()|, but does not encode the request or
decode the response. The caller is responsible for the
correct contents. Also does not add a newline for a channel
in NL mode, the caller must do that. The NL in the response
is removed.
Note that Vim does not know when the text received on a raw
channel is complete, it may only return the first part and you
need to use |ch_readraw()| to fetch the rest.
See |channel-use|.
ch_getbufnr({handle}, {what}) *ch_getbufnr()*
Get the buffer number that {handle} is using for {what}.
{handle} can be a Channel or a Job that has a Channel.
{what} can be "err" for stderr, "out" for stdout or empty for
socket output.
Returns -1 when there is no buffer.
ch_getjob({channel}) *ch_getjob()*
Get the Job associated with {channel}.
If there is no job calling |job_status()| on the returned Job
will result in "fail".
ch_info({handle}) *ch_info()*
Returns a Dictionary with information about {handle}. The
items are:
"id" number of the channel
"status" "open", "buffered" or "closed", like
ch_status()
When opened with ch_open():
"hostname" the hostname of the address
"port" the port of the address
"sock_status" "open" or "closed"
"sock_mode" "NL", "RAW", "JSON" or "JS"
"sock_io" "socket"
"sock_timeout" timeout in msec
When opened with job_start():
"out_status" "open", "buffered" or "closed"
"out_mode" "NL", "RAW", "JSON" or "JS"
"out_io" "null", "pipe", "file" or "buffer"
"out_timeout" timeout in msec
"err_status" "open", "buffered" or "closed"
"err_mode" "NL", "RAW", "JSON" or "JS"
"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_io" "null", "pipe", "file" or "buffer"
"in_timeout" timeout in msec
ch_log({msg} [, {handle}]) *ch_log()*
Write {msg} in the channel log file, if it was opened with
|ch_logfile()|.
When {handle} is passed the channel number is used for the
message.
{handle} can be a Channel or a Job that has a Channel. The
Channel must be open for the channel number to be used.
ch_logfile({fname} [, {mode}]) *ch_logfile()*
Start logging channel activity to {fname}.
When {fname} is an empty string: stop logging.
When {mode} is omitted or "a" append to the file.
When {mode} is "w" start with an empty file.
Use |ch_log()| to write log messages. The file is flushed
after every message, on Unix you can use "tail -f" to see what
is going on in real time.
This function is not available in the |sandbox|.
NOTE: the channel communication is stored in the file, be
aware that this may contain confidential and privacy sensitive
information, e.g. a password you type in a terminal window.
ch_open({address} [, {options}]) *ch_open()*
Open a channel to {address}. See |channel|.
Returns a Channel. Use |ch_status()| to check for failure.
{address} has the form "hostname:port", e.g.,
"localhost:8765".
If {options} is given it must be a |Dictionary|.
See |channel-open-options|.
ch_read({handle} [, {options}]) *ch_read()*
Read from {handle} and return the received message.
{handle} can be a Channel or a Job that has a Channel.
For a NL channel this waits for a NL to arrive, except when
there is nothing more to read (channel was closed).
See |channel-more|.
ch_readblob({handle} [, {options}]) *ch_readblob()*
Like ch_read() but reads binary data and returns a |Blob|.
See |channel-more|.
ch_readraw({handle} [, {options}]) *ch_readraw()*
Like ch_read() but for a JS and JSON channel does not decode
the message. For a NL channel it does not block waiting for
the NL to arrive, but otherwise works like ch_read().
See |channel-more|.
ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
Send {expr} over {handle}. The {expr} is encoded
according to the type of channel. The function cannot be used
with a raw channel.
See |channel-use|. *E912*
{handle} can be a Channel or a Job that has a Channel.
ch_sendraw({handle}, {expr} [, {options}]) *ch_sendraw()*
Send |String| or |Blob| {expr} over {handle}.
Works like |ch_sendexpr()|, but does not encode the request or
decode the response. The caller is responsible for the
correct contents. Also does not add a newline for a channel
in NL mode, the caller must do that. The NL in the response
is removed.
See |channel-use|.
ch_setoptions({handle}, {options}) *ch_setoptions()*
Set options on {handle}:
"callback" the channel callback
"timeout" default read timeout in msec
"mode" mode for the whole channel
See |ch_open()| for more explanation.
{handle} can be a Channel or a Job that has a Channel.
Note that changing the mode may cause queued messages to be
lost.
These options cannot be changed:
"waittime" only applies to |ch_open()|
ch_status({handle} [, {options}]) *ch_status()*
Return the status of {handle}:
"fail" failed to open the channel
"open" channel can be used
"buffered" channel can be read, not written to
"closed" channel can not be used
{handle} can be a Channel or a Job that has a Channel.
"buffered" is used when the channel was closed but there is
still data that can be obtained with |ch_read()|.
If {options} is given it can contain a "part" entry to specify
the part of the channel to return the status for: "out" or
"err". For example, to get the error status: >
ch_status(job, {"part": "err"})
<
==============================================================================
9. Starting a job with a channel *job-start* *job*
To start a job and open a channel for stdin/stdout/stderr: > To start a job and open a channel for stdin/stdout/stderr: >
let job = job_start(command, {options}) let job = job_start(command, {options})
@@ -549,7 +758,7 @@ add a close callback and read the output there: >
You will want to do something more useful than "echomsg". You will want to do something more useful than "echomsg".
============================================================================== ==============================================================================
9. Starting a job without a channel *job-start-nochannel* 10. Starting a job without a channel *job-start-nochannel*
To start another process without creating a channel: > To start another process without creating a channel: >
let job = job_start(command, let job = job_start(command,
@@ -576,7 +785,164 @@ Note that the waittime for ch_open() gives the job one second to make the port
available. available.
============================================================================== ==============================================================================
10. Job options *job-options* 11. Job functions *job-functions-details*
job_getchannel({job}) *job_getchannel()*
Get the channel handle that {job} is using.
To check if the job has no channel: >
if string(job_getchannel()) == 'channel fail'
<
job_info([{job}]) *job_info()*
Returns a Dictionary with information about {job}:
"status" what |job_status()| returns
"channel" what |job_getchannel()| returns
"cmd" List of command arguments used to start the job
"process" process ID
"tty_in" terminal input name, empty when none
"tty_out" terminal output name, empty when none
"exitval" only valid when "status" is "dead"
"exit_cb" function to be called on exit
"stoponexit" |job-stoponexit|
Only in Unix:
"termsig" the signal which terminated the process
(See |job_stop()| for the values)
only valid when "status" is "dead"
Only in MS-Windows:
"tty_type" Type of virtual console in use.
Values are "winpty" or "conpty".
See 'termwintype'.
Without any arguments, returns a List with all Job objects.
job_setoptions({job}, {options}) *job_setoptions()*
Change options for {job}. Supported are:
"stoponexit" |job-stoponexit|
"exit_cb" |job-exit_cb|
job_start({command} [, {options}]) *job_start()*
Start a job and return a Job object. Unlike |system()| and
|:!cmd| this does not wait for the job to finish.
To start a job in a terminal window see |term_start()|.
If the job fails to start then |job_status()| on the returned
Job object results in "fail" and none of the callbacks will be
invoked.
{command} can be a String. This works best on MS-Windows. On
Unix it is split up in white-separated parts to be passed to
execvp(). Arguments in double quotes can contain white space.
{command} can be a List, where the first item is the executable
and further items are the arguments. All items are converted
to String. This works best on Unix.
On MS-Windows, job_start() makes a GUI application hidden. If
want to show it, Use |:!start| instead.
The command is executed directly, not through a shell, the
'shell' option is not used. To use the shell: >
let job = job_start(["/bin/sh", "-c", "echo hello"])
< Or: >
let job = job_start('/bin/sh -c "echo hello"')
< Note that this will start two processes, the shell and the
command it executes. If you don't want this use the "exec"
shell command.
On Unix $PATH is used to search for the executable only when
the command does not contain a slash.
The job will use the same terminal as Vim. If it reads from
stdin the job and Vim will be fighting over input, that
doesn't work. Redirect stdin and stdout to avoid problems: >
let job = job_start(['sh', '-c', "myserver </dev/null >/dev/null"])
<
The returned Job object can be used to get the status with
|job_status()| and stop the job with |job_stop()|.
Note that the job object will be deleted if there are no
references to it. This closes the stdin and stderr, which may
cause the job to fail with an error. To avoid this keep a
reference to the job. Thus instead of: >
call job_start('my-command')
< use: >
let myjob = job_start('my-command')
< and unlet "myjob" once the job is not needed or is past the
point where it would fail (e.g. when it prints a message on
startup). Keep in mind that variables local to a function
will cease to exist if the function returns. Use a
script-local variable if needed: >
let s:myjob = job_start('my-command')
<
{options} must be a Dictionary. It can contain many optional
items, see |job-options|.
job_status({job}) *job_status()* *E916*
Returns a String with the status of {job}:
"run" job is running
"fail" job failed to start
"dead" job died or was stopped after running
On Unix a non-existing command results in "dead" instead of
"fail", because a fork happens before the failure can be
detected.
If an exit callback was set with the "exit_cb" option and the
job is now detected to be "dead" the callback will be invoked.
For more information see |job_info()|.
job_stop({job} [, {how}]) *job_stop()*
Stop the {job}. This can also be used to signal the job.
When {how} is omitted or is "term" the job will be terminated.
For Unix SIGTERM is sent. On MS-Windows the job will be
terminated forcedly (there is no "gentle" way).
This goes to the process group, thus children may also be
affected.
Effect for Unix:
"term" SIGTERM (default)
"hup" SIGHUP
"quit" SIGQUIT
"int" SIGINT
"kill" SIGKILL (strongest way to stop)
number signal with that number
Effect for MS-Windows:
"term" terminate process forcedly (default)
"hup" CTRL_BREAK
"quit" CTRL_BREAK
"int" CTRL_C
"kill" terminate process forcedly
Others CTRL_BREAK
On Unix the signal is sent to the process group. This means
that when the job is "sh -c command" it affects both the shell
and the command.
The result is a Number: 1 if the operation could be executed,
0 if "how" is not supported on the system.
Note that even when the operation was executed, whether the
job was actually stopped needs to be checked with
|job_status()|.
If the status of the job is "dead", the signal will not be
sent. This is to avoid to stop the wrong job (esp. on Unix,
where process numbers are recycled).
When using "kill" Vim will assume the job will die and close
the channel.
==============================================================================
12. Job options *job-options*
The {options} argument in job_start() is a dictionary. All entries are The {options} argument in job_start() is a dictionary. All entries are
optional. Some options can be used after the job has started, using optional. Some options can be used after the job has started, using
@@ -770,7 +1136,7 @@ accessible for others). Use |setfperm()| to change this.
If the file already exists it is truncated. If the file already exists it is truncated.
============================================================================== ==============================================================================
11. Controlling a job *job-control* 13. Controlling a job *job-control*
To get the status of a job: > To get the status of a job: >
echo job_status(job) echo job_status(job)
@@ -786,7 +1152,7 @@ signals. E.g. to force a job to stop, "kill it": >
For more options see |job_stop()|. For more options see |job_stop()|.
============================================================================== ==============================================================================
12. Using a prompt buffer *prompt-buffer* 14. Using a prompt buffer *prompt-buffer*
If you want to type input for the job in a Vim window you have a few options: If you want to type input for the job in a Vim window you have a few options:
- Use a normal buffer and handle all possible commands yourself. - Use a normal buffer and handle all possible commands yourself.

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.1. Last change: 2019 May 07 *cmdline.txt* For Vim version 8.1. Last change: 2019 Aug 06
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -702,7 +702,7 @@ commands ":write" and ":global" have the whole file (1,$) as default.
If more line specifiers are given than required for the command, the first If more line specifiers are given than required for the command, the first
one(s) will be ignored. one(s) will be ignored.
Line numbers may be specified with: *:range* *E14* *{address}* Line numbers may be specified with: *:range* *{address}*
{number} an absolute line number {number} an absolute line number
. the current line *:.* . the current line *:.*
$ the last line in the file *:$* $ the last line in the file *:$*
@@ -1064,8 +1064,7 @@ Also see |`=|.
In the command-line window the command line can be edited just like editing In the command-line window the command line can be edited just like editing
text in any window. It is a special kind of window, because you cannot leave text in any window. It is a special kind of window, because you cannot leave
it in a normal way. it in a normal way.
{not available when compiled without the |+cmdline_hist| or |+vertsplit| {not available when compiled without the |+cmdline_hist| feature}
feature}
OPEN *c_CTRL-F* *q:* *q/* *q?* OPEN *c_CTRL-F* *q:* *q/* *q?*
@@ -1140,7 +1139,6 @@ VARIOUS
The command-line window cannot be used: The command-line window cannot be used:
- when there already is a command-line window (no nesting) - when there already is a command-line window (no nesting)
- for entering an encryption key or when using inputsecret() - for entering an encryption key or when using inputsecret()
- when Vim was not compiled with the |+vertsplit| feature
Some options are set when the command-line window is opened: Some options are set when the command-line window is opened:
'filetype' "vim", when editing an Ex command-line; this starts Vim syntax 'filetype' "vim", when editing an Ex command-line; this starts Vim syntax

View File

@@ -1,4 +1,4 @@
*debugger.txt* For Vim version 8.1. Last change: 2019 May 05 *debugger.txt* For Vim version 8.1. Last change: 2019 Jul 06
VIM REFERENCE MANUAL by Gordon Prieur VIM REFERENCE MANUAL by Gordon Prieur
@@ -6,6 +6,10 @@
Debugger Support Features *debugger-support* Debugger Support Features *debugger-support*
These features are for integration with a debugger or an Integrated
Programming Environment (IPE) or Integrated Development Environment (IDE).
For the debugger running in a Vim terminal window see |terminal-debugger|.
1. Debugger Features |debugger-features| 1. Debugger Features |debugger-features|
2. Vim Compile Options |debugger-compilation| 2. Vim Compile Options |debugger-compilation|
3. Integrated Debuggers |debugger-integration| 3. Integrated Debuggers |debugger-integration|
@@ -14,9 +18,7 @@ Debugger Support Features *debugger-support*
============================================================================== ==============================================================================
1. Debugger Features *debugger-features* 1. Debugger Features *debugger-features*
The following features are available for an integration with a debugger or The following features are available:
an Integrated Programming Environment (IPE) or Integrated Development
Environment (IDE):
Alternate Command Input |alt-input| Alternate Command Input |alt-input|
Debug Signs |debug-signs| Debug Signs |debug-signs|
@@ -87,7 +89,11 @@ This feature allows a debugger, or other external tool, to display dynamic
information based on where the mouse is pointing. The purpose of this feature information based on where the mouse is pointing. The purpose of this feature
was to allow Sun's Visual WorkShop debugger to display expression evaluations. was to allow Sun's Visual WorkShop debugger to display expression evaluations.
However, the feature was implemented in as general a manner as possible and However, the feature was implemented in as general a manner as possible and
could be used for displaying other information as well. could be used for displaying other information as well. The functionality is
limited though, for advanced popups see |popup-window|.
Another way to use the balloon is with the 'balloonexpr' option. This is
completely user definable.
The Balloon Evaluation has some settable parameters too. For Motif the font The Balloon Evaluation has some settable parameters too. For Motif the font
list and colors can be set via X resources (XmNballoonEvalFontList, list and colors can be set via X resources (XmNballoonEvalFontList,
@@ -105,9 +111,6 @@ The Balloon evaluation functions are also used to show a tooltip for the
toolbar. The 'ballooneval' option does not need to be set for this. But the toolbar. The 'ballooneval' option does not need to be set for this. But the
other settings apply. other settings apply.
Another way to use the balloon is with the 'balloonexpr' option. This is
completely user definable.
============================================================================== ==============================================================================
2. Vim Compile Options *debugger-compilation* 2. Vim Compile Options *debugger-compilation*

View File

@@ -1,4 +1,4 @@
*develop.txt* For Vim version 8.1. Last change: 2019 Feb 17 *develop.txt* For Vim version 8.1. Last change: 2019 Aug 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -529,7 +529,7 @@ the best method is. Alternatives:
memory use, but takes a long time. On a fast PC it takes a couple of memory use, but takes a long time. On a fast PC it takes a couple of
seconds for English, which can be acceptable for interactive use. But for seconds for English, which can be acceptable for interactive use. But for
some languages it takes more than ten seconds (e.g., German, Catalan), some languages it takes more than ten seconds (e.g., German, Catalan),
which is unacceptable slow. For batch processing (automatic corrections) which is unacceptably slow. For batch processing (automatic corrections)
it's too slow for all languages. it's too slow for all languages.
2. Use a trie for the soundfolded words, so that searching can be done just 2. Use a trie for the soundfolded words, so that searching can be done just
like how it works without soundfolding. This requires remembering a list like how it works without soundfolding. This requires remembering a list

View File

@@ -1,4 +1,4 @@
*diff.txt* For Vim version 8.1. Last change: 2019 May 04 *diff.txt* For Vim version 8.1. Last change: 2019 Jul 27
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -185,7 +185,7 @@ hidden buffers. You can use ":hide" to close a window without unloading the
buffer. If you don't want a buffer to remain used for the diff do ":set buffer. If you don't want a buffer to remain used for the diff do ":set
nodiff" before hiding it. nodiff" before hiding it.
*:dif* *:diffupdate* *:dif* *:diff* *:diffupdate*
:dif[fupdate][!] Update the diff highlighting and folds. :dif[fupdate][!] Update the diff highlighting and folds.
Vim attempts to keep the differences updated when you make changes to the Vim attempts to keep the differences updated when you make changes to the
@@ -335,7 +335,7 @@ After setting this variable, reload the syntax script: >
FINDING THE DIFFERENCES *diff-diffexpr* FINDING THE DIFFERENCES *diff-diffexpr*
The 'diffexpr' option can be set to use something else than the standard The 'diffexpr' option can be set to use something else than the standard
"diff" program to compare two files and find the differences. "diff" program to compare two files and find the differences. *E959*
When 'diffexpr' is empty, Vim uses this command to find the differences When 'diffexpr' is empty, Vim uses this command to find the differences
between file1 and file2: > between file1 and file2: >

View File

@@ -1,7 +1,8 @@
/* vim:set ts=4 sw=4: /* vim:set ts=4 sw=4:
* this program makes a tags file for vim_ref.txt
* *
* Usage: doctags vim_ref.txt vim_win.txt ... >tags * This program makes a tags file for help text.
*
* Usage: doctags *.txt ... >tags
* *
* A tag in this context is an identifier between stars, e.g. *c_files* * A tag in this context is an identifier between stars, e.g. *c_files*
*/ */

View File

@@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.1. Last change: 2019 May 07 *editing.txt* For Vim version 8.1. Last change: 2019 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -593,7 +593,7 @@ You can use the argument list with the following commands, and with the
expression functions |argc()| and |argv()|. These all work on the argument expression functions |argc()| and |argv()|. These all work on the argument
list of the current window. list of the current window.
*:ar* *:args* *:ar* *:arg* *:args*
:ar[gs] Print the argument list, with the current file in :ar[gs] Print the argument list, with the current file in
square brackets. square brackets.

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 8.1. Last change: 2019 May 05 *filetype.txt* For Vim version 8.1. Last change: 2019 Jul 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -642,6 +642,16 @@ To disable this behavior, set the following variable in your vimrc: >
let g:python_recommended_style = 0 let g:python_recommended_style = 0
QF QUICKFIX *qf.vim* *ft-qf-plugin*
The "qf" filetype is used for the quickfix window, see |quickfix-window|.
The quickfix filetype plugin includes configuration for displaying the command
that produced the quickfix list in the |status-line|. To disable this setting,
configure as follows: >
:let g:qf_disable_statusline = 1
R MARKDOWN *ft-rmd-plugin* R MARKDOWN *ft-rmd-plugin*
By default ftplugin/html.vim is not sourced. If you want it sourced, add to By default ftplugin/html.vim is not sourced. If you want it sourced, add to

View File

@@ -1,4 +1,4 @@
*fold.txt* For Vim version 8.1. Last change: 2019 May 05 *fold.txt* For Vim version 8.1. Last change: 2019 Jun 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -441,7 +441,7 @@ zk Move upwards to the end of the previous fold. A closed fold
EXECUTING COMMANDS ON FOLDS ~ EXECUTING COMMANDS ON FOLDS ~
:[range]foldd[oopen] {cmd} *:foldd* *:folddoopen* :[range]foldd[oopen] {cmd} *:foldd* *:folddo* *:folddoopen*
Execute {cmd} on all lines that are not in a closed fold. Execute {cmd} on all lines that are not in a closed fold.
When [range] is given, only these lines are used. When [range] is given, only these lines are used.
Each time {cmd} is executed the cursor is positioned on the Each time {cmd} is executed the cursor is positioned on the

View File

@@ -1,4 +1,4 @@
*gui.txt* For Vim version 8.1. Last change: 2019 May 05 *gui.txt* For Vim version 8.1. Last change: 2019 May 20
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1112,10 +1112,9 @@ For the Win32 GUI *E244* *E245*
cXX - character set XX. Valid charsets are: ANSI, ARABIC, BALTIC, cXX - character set XX. Valid charsets are: ANSI, ARABIC, BALTIC,
CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK, HANGEUL, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK, HANGEUL,
HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS, SYMBOL, THAI, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS, SYMBOL, THAI,
TURKISH, VIETNAMESE ANSI and BALTIC. Normally you would use TURKISH and VIETNAMESE. Normally you would use "cDEFAULT".
"cDEFAULT".
qXX - quality XX. Valid quality names are: PROOF, DRAFT, ANTIALIASED, qXX - quality XX. Valid quality names are: PROOF, DRAFT, ANTIALIASED,
NONANTIALIASED, CLEARTYPE, DEFAULT. Normally you would use NONANTIALIASED, CLEARTYPE and DEFAULT. Normally you would use
"qDEFAULT". "qDEFAULT".
Some quality values are not supported in legacy OSs. Some quality values are not supported in legacy OSs.
- A '_' can be used in the place of a space, so you don't need to use - A '_' can be used in the place of a space, so you don't need to use
@@ -1139,30 +1138,28 @@ substitution.
GUIFONTWIDE *gui-fontwide* GUIFONTWIDE *gui-fontwide*
When not empty, 'guifontwide' specifies a comma-separated list of fonts to be When not empty, 'guifontwide' specifies a comma-separated list of fonts to be
used for double-width characters. The first font that can be loaded is used for double-width characters. The first font that can be loaded is used.
used.
Note: The size of these fonts must be exactly twice as wide as the one Note: The size of these fonts must be exactly twice as wide as the one
specified with 'guifont' and the same height. If there is a mismatch then specified with 'guifont' and the same height. If there is a mismatch then the
the text will not be drawn correctly. text will not be drawn correctly.
All GUI versions but GTK+: All GUI versions but GTK+:
'guifontwide' is only used when 'encoding' is set to "utf-8" and 'guifontwide' is only used when 'encoding' is set to "utf-8" and 'guifontset'
'guifontset' is empty or invalid. is empty or invalid.
When 'guifont' is set and a valid font is found in it and When 'guifont' is set and a valid font is found in it and 'guifontwide' is
'guifontwide' is empty Vim will attempt to find a matching empty Vim will attempt to find a matching double-width font and set
double-width font and set 'guifontwide' to it. 'guifontwide' to it.
GTK+ GUI only: *guifontwide_gtk* GTK+ GUI only: *guifontwide_gtk*
If set and valid, 'guifontwide' is always used for double width If set and valid, 'guifontwide' is always used for double width characters,
characters, even if 'encoding' is not set to "utf-8". even if 'encoding' is not set to "utf-8".
Vim does not attempt to find an appropriate value for 'guifontwide' Vim does not attempt to find an appropriate value for 'guifontwide'
automatically. If 'guifontwide' is empty Pango/Xft will choose the automatically. If 'guifontwide' is empty Pango/Xft will choose the font for
font for characters not available in 'guifont'. Thus you do not need characters not available in 'guifont'. Thus you do not need to set
to set 'guifontwide' at all unless you want to override the choice 'guifontwide' at all unless you want to override the choice made by Pango/Xft.
made by Pango/Xft.
Windows +multibyte only: *guifontwide_win_mbyte* Windows +multibyte only: *guifontwide_win_mbyte*
@@ -1181,7 +1178,8 @@ This section describes other features which are related to the GUI.
get "<Modifiers-Key>". get "<Modifiers-Key>".
- In the GUI, the modifiers SHIFT, CTRL, and ALT (or META) may be used within - In the GUI, the modifiers SHIFT, CTRL, and ALT (or META) may be used within
mappings of special keys and mouse events. E.g.: :map <M-LeftDrag> <LeftDrag> mappings of special keys and mouse events.
E.g.: :map <M-LeftDrag> <LeftDrag>
- In the GUI, several normal keys may have modifiers in mappings etc, these - In the GUI, several normal keys may have modifiers in mappings etc, these
are <Space>, <Tab>, <NL>, <CR>, <Esc>. are <Space>, <Tab>, <NL>, <CR>, <Esc>.
@@ -1218,8 +1216,8 @@ http://www.lexikan.com/mincho.htm
For the X11 GUI the external commands are executed inside the gvim window. For the X11 GUI the external commands are executed inside the gvim window.
See |gui-pty|. See |gui-pty|.
WARNING: Executing an external command from the X11 GUI will not always WARNING: Executing an external command from the X11 GUI will not always work.
work. "normal" commands like "ls", "grep" and "make" mostly work fine. "normal" commands like "ls", "grep" and "make" mostly work fine.
Commands that require an intelligent terminal like "less" and "ispell" won't Commands that require an intelligent terminal like "less" and "ispell" won't
work. Some may even hang and need to be killed from another terminal. So be work. Some may even hang and need to be killed from another terminal. So be
careful! careful!

View File

@@ -1,4 +1,4 @@
*help.txt* For Vim version 8.1. Last change: 2019 Jan 17 *help.txt* For Vim version 8.1. Last change: 2019 Jul 21
VIM - main help file VIM - main help file
k k
@@ -139,6 +139,7 @@ Advanced editing ~
|fold.txt| hide (fold) ranges of lines |fold.txt| hide (fold) ranges of lines
Special issues ~ Special issues ~
|testing.txt| testing Vim and Vim scripts
|print.txt| printing |print.txt| printing
|remote.txt| using Vim as a server or client |remote.txt| using Vim as a server or client
|term.txt| using different terminals and mice |term.txt| using different terminals and mice

View File

@@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 8.1. Last change: 2019 May 05 *if_lua.txt* For Vim version 8.1. Last change: 2019 Jul 21
VIM REFERENCE MANUAL by Luis Carvalho VIM REFERENCE MANUAL by Luis Carvalho
@@ -32,7 +32,7 @@ Examples:
:lua local curbuf = vim.buffer() curbuf[7] = "line #7" :lua local curbuf = vim.buffer() curbuf[7] = "line #7"
< <
:[range]lua << {endmarker} :[range]lua << [endmarker]
{script} {script}
{endmarker} {endmarker}
Execute Lua script {script}. Execute Lua script {script}.
@@ -40,9 +40,11 @@ Examples:
feature wasn't compiled in. To avoid errors, see feature wasn't compiled in. To avoid errors, see
|script-here|. |script-here|.
{endmarker} must NOT be preceded by any white space. If {endmarker} is The {endmarker} must NOT be preceded by any white space.
omitted from after the "<<", a dot '.' must be used after {script}, like
for the |:append| and |:insert| commands. If [endmarker] is omitted from after the "<<", a dot '.' must be used after
{script}, like for the |:append| and |:insert| commands.
This form of the |:lua| command is mainly useful for including Lua code This form of the |:lua| command is mainly useful for including Lua code
in Vim scripts. in Vim scripts.

View File

@@ -1,4 +1,4 @@
*if_mzsch.txt* For Vim version 8.1. Last change: 2019 May 05 *if_mzsch.txt* For Vim version 8.1. Last change: 2019 Jul 21
VIM REFERENCE MANUAL by Sergey Khorev VIM REFERENCE MANUAL by Sergey Khorev
@@ -39,7 +39,7 @@ To speed up the process, you might also want to use --disable-gracket and
:[range]mz[scheme] {stmt} :[range]mz[scheme] {stmt}
Execute MzScheme statement {stmt}. Execute MzScheme statement {stmt}.
:[range]mz[scheme] << {endmarker} :[range]mz[scheme] << [endmarker]
{script} {script}
{endmarker} {endmarker}
Execute inlined MzScheme script {script}. Execute inlined MzScheme script {script}.
@@ -47,6 +47,13 @@ To speed up the process, you might also want to use --disable-gracket and
feature wasn't compiled in. To avoid errors, see feature wasn't compiled in. To avoid errors, see
|script-here|. |script-here|.
The {endmarker} below the {script} must NOT be
preceded by any white space.
If [endmarker] is omitted from after the "<<", a dot
'.' must be used after {script}, like for the
|:append| and |:insert| commands.
*:mzfile* *:mzf* *:mzfile* *:mzf*
:[range]mzf[ile] {file} Execute the MzScheme script in {file}. :[range]mzf[ile] {file} Execute the MzScheme script in {file}.

View File

@@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 8.1. Last change: 2019 May 05 *if_perl.txt* For Vim version 8.1. Last change: 2019 Jul 21
VIM REFERENCE MANUAL by Sven Verdoolaege VIM REFERENCE MANUAL by Sven Verdoolaege
@@ -55,15 +55,18 @@ The ActiveState one should work, Strawberry Perl is a good alternative.
working: > working: >
:perl VIM::Msg("Hello") :perl VIM::Msg("Hello")
:pe[rl] << {endpattern} :pe[rl] << [endpattern]
{script} {script}
{endpattern} {endpattern}
Execute Perl script {script}. Execute Perl script {script}.
{endpattern} must NOT be preceded by any white space. The {endpattern} after {script} must NOT be preceded
If {endpattern} is omitted, it defaults to a dot '.' by any white space.
If [endpattern] is omitted, it defaults to a dot '.'
like for the |:append| and |:insert| commands. Using like for the |:append| and |:insert| commands. Using
'.' helps when inside a function, because "$i;" looks '.' helps when inside a function, because "$i;" looks
like the start of an |:insert| command to Vim. like the start of an |:insert| command to Vim.
This form of the |:perl| command is mainly useful for This form of the |:perl| command is mainly useful for
including perl code in vim scripts. including perl code in vim scripts.
Note: This command doesn't work when the Perl feature Note: This command doesn't work when the Perl feature

View File

@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 8.1. Last change: 2019 May 04 *if_pyth.txt* For Vim version 8.1. Last change: 2019 Jul 21
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore
@@ -34,7 +34,7 @@ Both can be available at the same time, but read |python-2-and-3|.
the `:python` command is working: > the `:python` command is working: >
:python print "Hello" :python print "Hello"
:[range]py[thon] << {endmarker} :[range]py[thon] << [endmarker]
{script} {script}
{endmarker} {endmarker}
Execute Python script {script}. Execute Python script {script}.
@@ -42,9 +42,11 @@ Both can be available at the same time, but read |python-2-and-3|.
feature wasn't compiled in. To avoid errors, see feature wasn't compiled in. To avoid errors, see
|script-here|. |script-here|.
{endmarker} must NOT be preceded by any white space. If {endmarker} is The {endmarker} below the {script} must NOT be preceded by any white space.
omitted from after the "<<", a dot '.' must be used after {script}, like
for the |:append| and |:insert| commands. If [endmarker] is omitted from after the "<<", a dot '.' must be used after
{script}, like for the |:append| and |:insert| commands.
This form of the |:python| command is mainly useful for including python code This form of the |:python| command is mainly useful for including python code
in Vim scripts. in Vim scripts.

View File

@@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 8.1. Last change: 2019 May 05 *if_ruby.txt* For Vim version 8.1. Last change: 2019 Jul 21
VIM REFERENCE MANUAL by Shugo Maeda VIM REFERENCE MANUAL by Shugo Maeda
@@ -28,15 +28,19 @@ downloading Ruby there.
:rub[y] {cmd} Execute Ruby command {cmd}. A command to try it out: > :rub[y] {cmd} Execute Ruby command {cmd}. A command to try it out: >
:ruby print "Hello" :ruby print "Hello"
:rub[y] << {endpattern} :rub[y] << [endpattern]
{script} {script}
{endpattern} {endpattern}
Execute Ruby script {script}. Execute Ruby script {script}.
{endpattern} must NOT be preceded by any white space. The {endpattern} after {script} must NOT be preceded
If {endpattern} is omitted, it defaults to a dot '.' by any white space.
like for the |:append| and |:insert| commands. This
form of the |:ruby| command is mainly useful for If [endpattern] is omitted, it defaults to a dot '.'
like for the |:append| and |:insert| commands.
This form of the |:ruby| command is mainly useful for
including ruby code in vim scripts. including ruby code in vim scripts.
Note: This command doesn't work when the Ruby feature Note: This command doesn't work when the Ruby feature
wasn't compiled in. To avoid errors, see wasn't compiled in. To avoid errors, see
|script-here|. |script-here|.

View File

@@ -1,4 +1,4 @@
*if_tcl.txt* For Vim version 8.1. Last change: 2019 May 05 *if_tcl.txt* For Vim version 8.1. Last change: 2019 Jul 21
VIM REFERENCE MANUAL by Ingo Wilken VIM REFERENCE MANUAL by Ingo Wilken
@@ -30,7 +30,7 @@ comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
is working: > is working: >
:tcl puts "Hello" :tcl puts "Hello"
:[range]tc[l] << {endmarker} :[range]tc[l] << [endmarker]
{script} {script}
{endmarker} {endmarker}
Execute Tcl script {script}. Execute Tcl script {script}.
@@ -38,9 +38,11 @@ comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
wasn't compiled in. To avoid errors, see wasn't compiled in. To avoid errors, see
|script-here|. |script-here|.
{endmarker} must NOT be preceded by any white space. If {endmarker} is The {endmarker} after {script} must NOT be preceded by any white space.
omitted from after the "<<", a dot '.' must be used after {script}, like for
the |:append| and |:insert| commands. If [endmarker] is omitted from after the "<<", a dot '.' must be used after
{script}, like for the |:append| and |:insert| commands.
This form of the |:tcl| command is mainly useful for including tcl code in Vim This form of the |:tcl| command is mainly useful for including tcl code in Vim
scripts. scripts.

View File

@@ -1,4 +1,4 @@
*indent.txt* For Vim version 8.1. Last change: 2019 Feb 21 *indent.txt* For Vim version 8.1. Last change: 2019 Aug 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -901,7 +901,7 @@ NOTE: Indenting will be a bit slower if this option is used because some
optimizations won't be available. optimizations won't be available.
------------- -------------
*PHP_vintage_case_default_indent* *PHP_vintage_case_default_indent*
To indent 'case:' and 'default:' statements in switch() blocks: > To indent 'case:' and 'default:' statements in switch() blocks: >
:let g:PHP_vintage_case_default_indent = 1 :let g:PHP_vintage_case_default_indent = 1
@@ -928,6 +928,41 @@ You will obtain the following result: >
->age() ->age()
->info(); ->info();
-------------
*PHP_IndentFunctionCallParameters*
Extra indentation levels to add to parameters in multi-line function calls. >
let g:PHP_IndentFunctionCallParameters = 1
Function call arguments will indent 1 extra level. For two-space indentation: >
function call_the_thing(
$with_this,
$and_that
) {
$this->do_the_thing(
$with_this,
$and_that
);
}
-------------
*PHP_IndentFunctionDeclarationParameters*
Extra indentation levels to add to arguments in multi-line function definitions. >
let g:PHP_IndentFunctionDeclarationParameters = 1
Function arguments in declarations will indent 1 extra level. For two-space indentation: >
function call_the_thing(
$with_this,
$and_that
) {
$this->do_the_thing(
$with_this,
$and_that
);
}
PYTHON *ft-python-indent* PYTHON *ft-python-indent*

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 8.1. Last change: 2019 May 09 *index.txt* For Vim version 8.1. Last change: 2019 Jun 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1241,6 +1241,7 @@ tag command action ~
|:compiler| :comp[iler] do settings for a specific compiler |:compiler| :comp[iler] do settings for a specific compiler
|:continue| :con[tinue] go back to :while |:continue| :con[tinue] go back to :while
|:confirm| :conf[irm] prompt user when confirmation required |:confirm| :conf[irm] prompt user when confirmation required
|:const| :cons[t] create a variable as a constant
|:copen| :cope[n] open quickfix window |:copen| :cope[n] open quickfix window
|:cprevious| :cp[revious] go to previous error |:cprevious| :cp[revious] go to previous error
|:cpfile| :cpf[ile] go to last error in previous file |:cpfile| :cpf[ile] go to last error in previous file

View File

@@ -1,4 +1,4 @@
*intro.txt* For Vim version 8.1. Last change: 2019 May 07 *intro.txt* For Vim version 8.1. Last change: 2019 Jun 26
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -65,14 +65,21 @@ contain links to the most recent version of Vim. The FAQ is a list of
Frequently Asked Questions. Read this if you have problems. Frequently Asked Questions. Read this if you have problems.
Vim home page: https://www.vim.org/ Vim home page: https://www.vim.org/
Vim FAQ: https://vimhelp.appspot.com/vim_faq.txt.html Vim FAQ: https://vimhelp.org/vim_faq.txt.html
Downloading: https://www.vim.org/download.php Downloading: https://www.vim.org/download.php
Asking questions, finding answers: https://vi.stackexchange.com/
"Vi and Vim Stack Exchange is a question and answer site for people using the
vi and Vim families of text editors"
Usenet News group where Vim is discussed: *news* *usenet* Usenet News group where Vim is discussed: *news* *usenet*
comp.editors comp.editors
This group is also for other editors. If you write about Vim, don't forget to This group is also for other editors. If you write about Vim, don't forget to
mention that. mention that.
You can access it here:
https://groups.google.com/forum/#!topic/comp.editors
*mail-list* *maillist* *mail-list* *maillist*
There are several mailing lists for Vim: There are several mailing lists for Vim:

View File

@@ -1,4 +1,4 @@
*map.txt* For Vim version 8.1. Last change: 2019 May 05 *map.txt* For Vim version 8.1. Last change: 2019 Jun 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -53,7 +53,7 @@ modes.
:om[ap] {lhs} {rhs} |mapmode-o| *:om* *:omap* :om[ap] {lhs} {rhs} |mapmode-o| *:om* *:omap*
:map! {lhs} {rhs} |mapmode-ic| *:map!* :map! {lhs} {rhs} |mapmode-ic| *:map!*
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap* :im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lmap* :lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lma* *:lmap*
:cm[ap] {lhs} {rhs} |mapmode-c| *:cm* *:cmap* :cm[ap] {lhs} {rhs} |mapmode-c| *:cm* *:cmap*
:tma[p] {lhs} {rhs} |mapmode-t| *:tma* *:tmap* :tma[p] {lhs} {rhs} |mapmode-t| *:tma* *:tmap*
Map the key sequence {lhs} to {rhs} for the modes Map the key sequence {lhs} to {rhs} for the modes
@@ -66,12 +66,12 @@ modes.
:nn[oremap] {lhs} {rhs} |mapmode-n| *:nn* *:nnoremap* :nn[oremap] {lhs} {rhs} |mapmode-n| *:nn* *:nnoremap*
:vn[oremap] {lhs} {rhs} |mapmode-v| *:vn* *:vnoremap* :vn[oremap] {lhs} {rhs} |mapmode-v| *:vn* *:vnoremap*
:xn[oremap] {lhs} {rhs} |mapmode-x| *:xn* *:xnoremap* :xn[oremap] {lhs} {rhs} |mapmode-x| *:xn* *:xnoremap*
:snor[emap] {lhs} {rhs} |mapmode-s| *:snor* *:snoremap* :snor[emap] {lhs} {rhs} |mapmode-s| *:snor* *:snore* *:snoremap*
:ono[remap] {lhs} {rhs} |mapmode-o| *:ono* *:onoremap* :ono[remap] {lhs} {rhs} |mapmode-o| *:ono* *:onoremap*
:no[remap]! {lhs} {rhs} |mapmode-ic| *:no!* *:noremap!* :no[remap]! {lhs} {rhs} |mapmode-ic| *:no!* *:noremap!*
:ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inoremap* :ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inor* *:inoremap*
:ln[oremap] {lhs} {rhs} |mapmode-l| *:ln* *:lnoremap* :ln[oremap] {lhs} {rhs} |mapmode-l| *:ln* *:lnoremap*
:cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnoremap* :cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnor* *:cnoremap*
:tno[remap] {lhs} {rhs} |mapmode-t| *:tno* *:tnoremap* :tno[remap] {lhs} {rhs} |mapmode-t| *:tno* *:tnoremap*
Map the key sequence {lhs} to {rhs} for the modes Map the key sequence {lhs} to {rhs} for the modes
where the map command applies. Disallow mapping of where the map command applies. Disallow mapping of
@@ -88,7 +88,7 @@ modes.
:unm[ap]! {lhs} |mapmode-ic| *:unm!* *:unmap!* :unm[ap]! {lhs} |mapmode-ic| *:unm!* *:unmap!*
:iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap* :iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap*
:lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap* :lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap*
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cunmap* :cu[nmap] {lhs} |mapmode-c| *:cu* *:cun* *:cunmap*
:tunma[p] {lhs} |mapmode-t| *:tunma* *:tunmap* :tunma[p] {lhs} |mapmode-t| *:tunma* *:tunmap*
Remove the mapping of {lhs} for the modes where the Remove the mapping of {lhs} for the modes where the
map command applies. The mapping may remain defined map command applies. The mapping may remain defined
@@ -1016,7 +1016,7 @@ See |:verbose-cmd| for more information.
:norea[bbrev] [<expr>] [<buffer>] [lhs] [rhs] :norea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
Same as ":ab", but no remapping for this {rhs}. Same as ":ab", but no remapping for this {rhs}.
*:ca* *:cabbrev* *:ca* *:cab* *:cabbrev*
:ca[bbrev] [<expr>] [<buffer>] [lhs] [rhs] :ca[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
Same as ":ab", but for Command-line mode only. Same as ":ab", but for Command-line mode only.

View File

@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 8.1. Last change: 2019 Apr 28 *mbyte.txt* For Vim version 8.1. Last change: 2019 Jul 04
VIM REFERENCE MANUAL by Bram Moolenaar et al. VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -943,11 +943,12 @@ To input multibyte characters on Windows, you can use an Input Method Editor
IME many many many times. Because IME with status on is hooking all of your IME many many many times. Because IME with status on is hooking all of your
key inputs, you cannot input 'j', 'k', or almost all of keys to Vim directly. key inputs, you cannot input 'j', 'k', or almost all of keys to Vim directly.
This |+multi_byte_ime| feature help this. It reduce times of switch status of The |+multi_byte_ime| feature helps for this. It reduces the number of times
IME manually. In normal mode, there are almost no need working IME, even the IME status has to be switched manually. In Normal mode, there is almost
editing multibyte text. So exiting insert mode with ESC, Vim memorize last no need to use IME, even when editing multibyte text. So when exiting Insert
status of IME and force turn off IME. When re-enter insert mode, Vim revert mode, Vim memorizes the last status of IME and turns off IME. When
IME status to that memorized automatically. re-entering Insert mode, Vim sets the IME status to that memorized status
automatically.
This works on not only insert-normal mode, but also search-command input and This works on not only insert-normal mode, but also search-command input and
replace mode. replace mode.

View File

@@ -1,4 +1,4 @@
*message.txt* For Vim version 8.1. Last change: 2019 May 07 *message.txt* For Vim version 8.1. Last change: 2019 May 18
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -247,6 +247,9 @@ format of the file. The file will not be marked unmodified. If you care
about the loss of information, set the 'fileencoding' option to another value about the loss of information, set the 'fileencoding' option to another value
that can handle the characters in the buffer and write again. If you don't that can handle the characters in the buffer and write again. If you don't
care, you can abandon the buffer or reset the 'modified' option. care, you can abandon the buffer or reset the 'modified' option.
If there is a backup file, when 'writebackup' or 'backup' is set, it will not
be deleted, so you can move it back into place if you want to discard the
changes.
*E302* > *E302* >
Could not rename swap file Could not rename swap file

View File

@@ -1,4 +1,4 @@
*motion.txt* For Vim version 8.1. Last change: 2019 May 07 *motion.txt* For Vim version 8.1. Last change: 2019 Jun 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -53,6 +53,7 @@ or change text. The following operators are available:
|!| ! filter through an external program |!| ! filter through an external program
|=| = filter through 'equalprg' or C-indenting if empty |=| = filter through 'equalprg' or C-indenting if empty
|gq| gq text formatting |gq| gq text formatting
|gw| gw text formatting with no cursor movement
|g?| g? ROT13 encoding |g?| g? ROT13 encoding
|>| > shift right |>| > shift right
|<| < shift left |<| < shift left
@@ -943,7 +944,7 @@ These commands are not marks themselves, but jump to a mark:
[` [count] times to lowercase mark before the cursor. [` [count] times to lowercase mark before the cursor.
:loc[kmarks] {command} *:loc* *:lockmarks* :loc[kmarks] {command} *:loc* *:lock* *:lockmarks*
Execute {command} without adjusting marks. This is Execute {command} without adjusting marks. This is
useful when changing text in a way that the line count useful when changing text in a way that the line count
will be the same when the change has completed. will be the same when the change has completed.
@@ -969,7 +970,7 @@ These commands are not marks themselves, but jump to a mark:
- folds - folds
- diffs - diffs
:kee[pmarks] {command} *:kee* *:keepmarks* :kee[pmarks] {command} *:kee* *:keep* *:keepmarks*
Currently only has effect for the filter command Currently only has effect for the filter command
|:range!|: |:range!|:
- When the number of lines after filtering is equal to - When the number of lines after filtering is equal to

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 8.1. Last change: 2019 May 08 *options.txt* For Vim version 8.1. Last change: 2019 Jul 31
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -578,14 +578,17 @@ backslash in front of the ':' will be removed. Example:
/* vi:set dir=c\:\tmp: */ ~ /* vi:set dir=c\:\tmp: */ ~
This sets the 'dir' option to "c:\tmp". Only a single backslash before the This sets the 'dir' option to "c:\tmp". Only a single backslash before the
':' is removed. Thus to include "\:" you have to specify "\\:". ':' is removed. Thus to include "\:" you have to specify "\\:".
*E992*
No other commands than "set" are supported, for security reasons (somebody No other commands than "set" are supported, for security reasons (somebody
might create a Trojan horse text file with modelines). And not all options might create a Trojan horse text file with modelines). And not all options
can be set. For some options a flag is set, so that when it's used the can be set. For some options a flag is set, so that when the value is used
|sandbox| is effective. Still, there is always a small risk that a modeline the |sandbox| is effective. Some options can only be set from the modeline
causes trouble. E.g., when some joker sets 'textwidth' to 5 all your lines when 'modelineexpr' is set (the default is off).
are wrapped unexpectedly. So disable modelines before editing untrusted text.
The mail ftplugin does this, for example. Still, there is always a small risk that a modeline causes trouble. E.g.,
when some joker sets 'textwidth' to 5 all your lines are wrapped unexpectedly.
So disable modelines before editing untrusted text. The mail ftplugin does
this, for example.
Hint: If you would like to do something else than setting an option, you could Hint: If you would like to do something else than setting an option, you could
define an autocommand that checks the file for a specific string. For define an autocommand that checks the file for a specific string. For
@@ -1128,6 +1131,10 @@ A jump table for the options with a short description can be found at |Q_op|.
v:beval_col column number (byte index) v:beval_col column number (byte index)
v:beval_text word under or after the mouse pointer v:beval_text word under or after the mouse pointer
Instead of showing a balloon, which is limited to plain text, consider
using a popup window, see |popup_beval_example|. A popup window can
use highlighting and show a border.
The evaluation of the expression must not have side effects! The evaluation of the expression must not have side effects!
Example: > Example: >
function MyBalloonExpr() function MyBalloonExpr()
@@ -1139,8 +1146,10 @@ A jump table for the options with a short description can be found at |Q_op|.
set bexpr=MyBalloonExpr() set bexpr=MyBalloonExpr()
set ballooneval set ballooneval
< <
Also see |balloon_show()|, can be used if the content of the balloon Also see |balloon_show()|, it can be used if the content of the balloon
is to be fetched asynchronously. is to be fetched asynchronously. In that case evaluating
'balloonexpr' should result in an empty string. If you get a balloon
with only "0" you probably didn't return anything from your function.
NOTE: The balloon is displayed only if the cursor is on a text NOTE: The balloon is displayed only if the cursor is on a text
character. If the result of evaluating 'balloonexpr' is not empty, character. If the result of evaluating 'balloonexpr' is not empty,
@@ -1149,9 +1158,10 @@ A jump table for the options with a short description can be found at |Q_op|.
The expression will be evaluated in the |sandbox| when set from a The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|. modeline, see |sandbox-option|.
This option cannot be set in a modeline when 'modelineexpr' is off.
It is not allowed to change text or jump to another window while It is not allowed to change text or jump to another window while
evaluating 'balloonexpr' |textlock|. evaluating 'balloonexpr', see |textlock|.
To check whether line breaks in the balloon text work use this check: > To check whether line breaks in the balloon text work use this check: >
if has("balloon_multiline") if has("balloon_multiline")
@@ -1357,6 +1367,8 @@ A jump table for the options with a short description can be found at |Q_op|.
prompt buffer where only the last line can be edited, meant prompt buffer where only the last line can be edited, meant
to be used by a plugin, see |prompt-buffer| to be used by a plugin, see |prompt-buffer|
{only when compiled with the |+channel| feature} {only when compiled with the |+channel| feature}
popup buffer used in a popup window, see |popup|.
{only when compiled with the |+textprop| feature}
This option is used together with 'bufhidden' and 'swapfile' to This option is used together with 'bufhidden' and 'swapfile' to
specify special kinds of buffers. See |special-buffers|. specify special kinds of buffers. See |special-buffers|.
@@ -1428,8 +1440,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'cedit'* *'cedit'*
'cedit' string (Vi default: "", Vim default: CTRL-F) 'cedit' string (Vi default: "", Vim default: CTRL-F)
global global
{not available when compiled without the |+vertsplit|
feature}
The key used in Command-line Mode to open the command-line window. The key used in Command-line Mode to open the command-line window.
The default is CTRL-F when 'compatible' is off. The default is CTRL-F when 'compatible' is off.
Only non-printable keys are allowed. Only non-printable keys are allowed.
@@ -1632,8 +1642,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'cmdwinheight'* *'cwh'* *'cmdwinheight'* *'cwh'*
'cmdwinheight' 'cwh' number (default 7) 'cmdwinheight' 'cwh' number (default 7)
global global
{not available when compiled without the |+vertsplit|
feature}
Number of screen lines to use for the command-line window. |cmdwin| Number of screen lines to use for the command-line window. |cmdwin|
*'colorcolumn'* *'cc'* *'colorcolumn'* *'cc'*
@@ -1866,6 +1874,21 @@ A jump table for the options with a short description can be found at |Q_op|.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.
*'completeslash'* *'csl'*
'completeslash' 'csl' string (default: "")
local to buffer
{not in Vi} {only for MS-Windows}
When this option is set it overrules 'shellslash' for completion:
- When this option is set to "slash", a forward slash is used for path
completion in insert mode. This is useful when editing HTML tag, or
Makefile with 'noshellslash' on Windows.
- When this option is set to "backslash", backslash is used. This is
useful when editing a batch file with 'shellslash' set on Windows.
- When this option is empty, same character is used as for
'shellslash'.
For Insert mode completion the buffer-local value is used. For
command line completion the global value is used.
*'completeopt'* *'cot'* *'completeopt'* *'cot'*
'completeopt' 'cot' string (default: "menu,preview") 'completeopt' 'cot' string (default: "menu,preview")
global global
@@ -2697,8 +2720,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'eadirection'* *'ead'* *'eadirection'* *'ead'*
'eadirection' 'ead' string (default "both") 'eadirection' 'ead' string (default "both")
global global
{not available when compiled without the |+vertsplit|
feature}
Tells when the 'equalalways' option applies: Tells when the 'equalalways' option applies:
ver vertically, width of windows is not affected ver vertically, width of windows is not affected
hor horizontally, height of windows is not affected hor horizontally, height of windows is not affected
@@ -3226,7 +3247,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The expression will be evaluated in the |sandbox| if set from a The expression will be evaluated in the |sandbox| if set from a
modeline, see |sandbox-option|. modeline, see |sandbox-option|.
This option can't be set from a |modeline| when the 'diff' option is This option can't be set from a |modeline| when the 'diff' option is
on. on or the 'modelineexpr' option is off.
It is not allowed to change text or jump to another window while It is not allowed to change text or jump to another window while
evaluating 'foldexpr' |textlock|. evaluating 'foldexpr' |textlock|.
@@ -3359,6 +3380,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The expression will be evaluated in the |sandbox| if set from a The expression will be evaluated in the |sandbox| if set from a
modeline, see |sandbox-option|. modeline, see |sandbox-option|.
This option cannot be set in a modeline when 'modelineexpr' is off.
It is not allowed to change text or jump to another window while It is not allowed to change text or jump to another window while
evaluating 'foldtext' |textlock|. evaluating 'foldtext' |textlock|.
@@ -3396,6 +3418,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The expression will be evaluated in the |sandbox| when set from a The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|. That stops the option from working, modeline, see |sandbox-option|. That stops the option from working,
since changing the buffer text is not allowed. since changing the buffer text is not allowed.
This option cannot be set in a modeline when 'modelineexpr' is off.
NOTE: This option is set to "" when 'compatible' is set. NOTE: This option is set to "" when 'compatible' is set.
*'formatlistpat'* *'flp'* *'formatlistpat'* *'flp'*
@@ -3452,6 +3475,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Also see 'swapsync' for controlling fsync() on swap files. Also see 'swapsync' for controlling fsync() on swap files.
'fsync' also applies to |writefile()|, unless a flag is used to 'fsync' also applies to |writefile()|, unless a flag is used to
overrule it. overrule it.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'gdefault'* *'gd'* *'nogdefault'* *'nogd'* *'gdefault'* *'gd'* *'nogdefault'* *'nogd'*
'gdefault' 'gd' boolean (default off) 'gdefault' 'gd' boolean (default off)
@@ -3619,7 +3644,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'guiheadroom'* *'ghr'* *'guiheadroom'* *'ghr'*
'guiheadroom' 'ghr' number (default 50) 'guiheadroom' 'ghr' number (default 50)
global global
- {only for GTK and X11 GUI} {only for GTK and X11 GUI}
The number of pixels subtracted from the screen height when fitting The number of pixels subtracted from the screen height when fitting
the GUI window on the screen. Set this before the GUI is started, the GUI window on the screen. Set this before the GUI is started,
e.g., in your |gvimrc| file. When zero, the whole screen height will e.g., in your |gvimrc| file. When zero, the whole screen height will
@@ -3777,6 +3802,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'guitabtooltip' is used for the tooltip, see below. 'guitabtooltip' is used for the tooltip, see below.
The expression will be evaluated in the |sandbox| when set from a The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|. modeline, see |sandbox-option|.
This option cannot be set in a modeline when 'modelineexpr' is off.
Only used when the GUI tab pages line is displayed. 'e' must be Only used when the GUI tab pages line is displayed. 'e' must be
present in 'guioptions'. For the non-GUI tab pages line 'tabline' is present in 'guioptions'. For the non-GUI tab pages line 'tabline' is
@@ -4027,6 +4053,7 @@ A jump table for the options with a short description can be found at |Q_op|.
When this option contains printf-style '%' items, they will be When this option contains printf-style '%' items, they will be
expanded according to the rules used for 'statusline'. See expanded according to the rules used for 'statusline'. See
'titlestring' for example settings. 'titlestring' for example settings.
This option cannot be set in a modeline when 'modelineexpr' is off.
{not available when compiled without the |+statusline| feature} {not available when compiled without the |+statusline| feature}
*'ignorecase'* *'ic'* *'noignorecase'* *'noic'* *'ignorecase'* *'ic'* *'noignorecase'* *'noic'*
@@ -4044,6 +4071,8 @@ A jump table for the options with a short description can be found at |Q_op|.
This option specifies a function that will be called to This option specifies a function that will be called to
activate or deactivate the Input Method. activate or deactivate the Input Method.
It is not used in the GUI. It is not used in the GUI.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
Example: > Example: >
function ImActivateFunc(active) function ImActivateFunc(active)
@@ -4160,6 +4189,8 @@ A jump table for the options with a short description can be found at |Q_op|.
set imstatusfunc=ImStatusFunc set imstatusfunc=ImStatusFunc
< <
NOTE: This function is invoked very often. Keep it fast. NOTE: This function is invoked very often. Keep it fast.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
*'imstyle'* *'imst'* *'imstyle'* *'imst'*
'imstyle' 'imst' number (default 1) 'imstyle' 'imst' number (default 1)
@@ -4176,6 +4207,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|single-repeat|, etc. Therefore over-the-spot style becomes the |single-repeat|, etc. Therefore over-the-spot style becomes the
default now. This should work fine for most people, however if you default now. This should work fine for most people, however if you
have any problem with it, try using on-the-spot style. have any problem with it, try using on-the-spot style.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
*'include'* *'inc'* *'include'* *'inc'*
'include' 'inc' string (default "^\s*#\s*include") 'include' 'inc' string (default "^\s*#\s*include")
@@ -4210,6 +4243,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The expression will be evaluated in the |sandbox| when set from a The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|. modeline, see |sandbox-option|.
This option cannot be set in a modeline when 'modelineexpr' is off.
It is not allowed to change text or jump to another window while It is not allowed to change text or jump to another window while
evaluating 'includeexpr' |textlock|. evaluating 'includeexpr' |textlock|.
@@ -4297,6 +4331,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The expression will be evaluated in the |sandbox| when set from a The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|. modeline, see |sandbox-option|.
This option cannot be set in a modeline when 'modelineexpr' is off.
It is not allowed to change text or jump to another window while It is not allowed to change text or jump to another window while
evaluating 'indentexpr' |textlock|. evaluating 'indentexpr' |textlock|.
@@ -4915,7 +4950,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'matchtime'* *'mat'* *'matchtime'* *'mat'*
'matchtime' 'mat' number (default 5) 'matchtime' 'mat' number (default 5)
global global
{in Nvi}
Tenths of a second to show the matching paren, when 'showmatch' is Tenths of a second to show the matching paren, when 'showmatch' is
set. Note that this is not in milliseconds, like other options that set. Note that this is not in milliseconds, like other options that
set a time. This is to be compatible with Nvi. set a time. This is to be compatible with Nvi.
@@ -5045,10 +5079,25 @@ A jump table for the options with a short description can be found at |Q_op|.
< If you have less than 512 Mbyte |:mkspell| may fail for some < If you have less than 512 Mbyte |:mkspell| may fail for some
languages, no matter what you set 'mkspellmem' to. languages, no matter what you set 'mkspellmem' to.
This option cannot be set from a |modeline| or in the |sandbox|.
*'modeline'* *'ml'* *'nomodeline'* *'noml'* *'modeline'* *'ml'* *'nomodeline'* *'noml'*
'modeline' 'ml' boolean (Vim default: on (off for root), 'modeline' 'ml' boolean (Vim default: on (off for root),
Vi default: off) Vi default: off)
local to buffer local to buffer
If 'modeline' is on 'modelines' gives the number of lines that is
checked for set commands. If 'modeline' is off or 'modelines' is zero
no lines are checked. See |modeline|.
*'modelineexpr'* *'mle'* *'nomodelineexpr'* *'nomle'*
'modelineexpr' 'mle' boolean (default: off)
global
When on allow some options that are an expression to be set in the
modeline. Check the option for whether it is affected by
'modelineexpr'. Also see |modeline|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'modelines'* *'mls'* *'modelines'* *'mls'*
'modelines' 'mls' number (default 5) 'modelines' 'mls' number (default 5)
global global
@@ -5059,9 +5108,9 @@ A jump table for the options with a short description can be found at |Q_op|.
set and to the Vim default value when 'compatible' is reset. set and to the Vim default value when 'compatible' is reset.
*'modifiable'* *'ma'* *'nomodifiable'* *'noma'* *'modifiable'* *'ma'* *'nomodifiable'* *'noma'*
*E21*
'modifiable' 'ma' boolean (default on) 'modifiable' 'ma' boolean (default on)
local to buffer local to buffer
*E21*
When off the buffer contents cannot be changed. The 'fileformat' and When off the buffer contents cannot be changed. The 'fileformat' and
'fileencoding' options also can't be changed. 'fileencoding' options also can't be changed.
Can be reset on startup with the |-M| command line argument. Can be reset on startup with the |-M| command line argument.
@@ -5351,7 +5400,7 @@ A jump table for the options with a short description can be found at |Q_op|.
rows in the window, depending on whether 'number' or 'relativenumber' rows in the window, depending on whether 'number' or 'relativenumber'
is set. Thus with the Vim default of 4 there is room for a line number is set. Thus with the Vim default of 4 there is room for a line number
up to 999. When the buffer has 1000 lines five columns will be used. up to 999. When the buffer has 1000 lines five columns will be used.
The minimum value is 1, the maximum value is 10. The minimum value is 1, the maximum value is 20.
NOTE: This option is set to the Vi default value when 'compatible' is NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset. set and to the Vim default value when 'compatible' is reset.
@@ -5591,7 +5640,16 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the |+windows| or {not available when compiled without the |+windows| or
|+quickfix| features} |+quickfix| features}
Default height for a preview window. Used for |:ptag| and associated Default height for a preview window. Used for |:ptag| and associated
commands. Used for |CTRL-W_}| when no count is given. commands. Used for |CTRL-W_}| when no count is given. Not used when
'previewpopup' is set.
*'previewpopup'* *'pvp'*
'previewpopup' 'pvp' string (default empty)
global
{not available when compiled without the |+windows|,
|+textprop| or |+quickfix| feature}
When not empty a popup window is used for commands that would open a
preview window. See |preview-popup|.
*'previewwindow'* *'nopreviewwindow'* *'previewwindow'* *'nopreviewwindow'*
*'pvw'* *'nopvw'* *E590* *'pvw'* *'nopvw'* *E590*
@@ -6058,6 +6116,8 @@ A jump table for the options with a short description can be found at |Q_op|.
When this option is not empty, it determines the content of the ruler When this option is not empty, it determines the content of the ruler
string, as displayed for the 'ruler' option. string, as displayed for the 'ruler' option.
The format of this option is like that of 'statusline'. The format of this option is like that of 'statusline'.
This option cannot be set in a modeline when 'modelineexpr' is off.
The default ruler width is 17 characters. To make the ruler 15 The default ruler width is 17 characters. To make the ruler 15
characters wide, put "%15(" at the start and "%)" at the end. characters wide, put "%15(" at the start and "%)" at the end.
Example: > Example: >
@@ -6474,7 +6534,8 @@ A jump table for the options with a short description can be found at |Q_op|.
'shellslash' only works when a backslash can be used as a path 'shellslash' only works when a backslash can be used as a path
separator. To test if this is so use: > separator. To test if this is so use: >
if exists('+shellslash') if exists('+shellslash')
< < Also see 'completeslash'.
*'shelltemp'* *'stmp'* *'noshelltemp'* *'nostmp'* *'shelltemp'* *'stmp'* *'noshelltemp'* *'nostmp'*
'shelltemp' 'stmp' boolean (Vi default off, Vim default on) 'shelltemp' 'stmp' boolean (Vi default off, Vim default on)
global global
@@ -6598,7 +6659,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"Pattern not found", "Back at original", etc. "Pattern not found", "Back at original", etc.
q use "recording" instead of "recording @a" q use "recording" instead of "recording @a"
F don't give the file info when editing a file, like `:silent` F don't give the file info when editing a file, like `:silent`
was used for the command was used for the command; note that this also affects messages
from autocommands
S do not show search count message when searching, e.g. S do not show search count message when searching, e.g.
"[1/5]" "[1/5]"
@@ -6766,6 +6828,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"auto" only when there is a sign to display "auto" only when there is a sign to display
"no" never "no" never
"yes" always "yes" always
"number" display signs in the 'number' column. If the number
column is not present, then behaves like "auto".
*'smartcase'* *'scs'* *'nosmartcase'* *'noscs'* *'smartcase'* *'scs'* *'nosmartcase'* *'noscs'*
@@ -7016,8 +7080,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'splitright'* *'spr'* *'nosplitright'* *'nospr'* *'splitright'* *'spr'* *'nosplitright'* *'nospr'*
'splitright' 'spr' boolean (default off) 'splitright' 'spr' boolean (default off)
global global
{not available when compiled without the |+vertsplit|
feature}
When on, splitting a window will put the new window right of the When on, splitting a window will put the new window right of the
current one. |:vsplit| current one. |:vsplit|
@@ -7052,7 +7114,9 @@ A jump table for the options with a short description can be found at |Q_op|.
When the option starts with "%!" then it is used as an expression, When the option starts with "%!" then it is used as an expression,
evaluated and the result is used as the option value. Example: > evaluated and the result is used as the option value. Example: >
:set statusline=%!MyStatusLine() :set statusline=%!MyStatusLine()
< The result can contain %{} items that will be evaluated too. < The *g:statusline_winid* variable will be set to the |window-ID| of the
window that the status line belongs to.
The result can contain %{} items that will be evaluated too.
Note that the "%!" expression is evaluated in the context of the Note that the "%!" expression is evaluated in the context of the
current window and buffer, while %{} items are evaluated in the current window and buffer, while %{} items are evaluated in the
context of the window that the statusline belongs to. context of the window that the statusline belongs to.
@@ -7155,16 +7219,19 @@ A jump table for the options with a short description can be found at |Q_op|.
become empty. This will make a group like the following disappear become empty. This will make a group like the following disappear
completely from the statusline when none of the flags are set. > completely from the statusline when none of the flags are set. >
:set statusline=...%(\ [%M%R%H]%)... :set statusline=...%(\ [%M%R%H]%)...
< *g:actual_curbuf* < Beware that an expression is evaluated each and every time the status
Beware that an expression is evaluated each and every time the status line is displayed.
line is displayed. The current buffer and current window will be set *g:actual_curbuf* *g:actual_curwin*
temporarily to that of the window (and buffer) whose statusline is The current buffer and current window will be set temporarily to that
currently being drawn. The expression will evaluate in this context. of the window (and buffer) whose statusline is currently being drawn.
The variable "g:actual_curbuf" is set to the `bufnr()` number of the The expression will evaluate in this context. The variable
real current buffer. "g:actual_curbuf" is set to the `bufnr()` number of the real current
buffer and "g:actual_curwin" to the |window-ID| of the real current
window. These values are strings.
The 'statusline' option will be evaluated in the |sandbox| if set from The 'statusline' option will be evaluated in the |sandbox| if set from
a modeline, see |sandbox-option|. a modeline, see |sandbox-option|.
This option cannot be set in a modeline when 'modelineexpr' is off.
It is not allowed to change text or jump to another window while It is not allowed to change text or jump to another window while
evaluating 'statusline' |textlock|. evaluating 'statusline' |textlock|.
@@ -7345,6 +7412,7 @@ A jump table for the options with a short description can be found at |Q_op|.
When changing something that is used in 'tabline' that does not When changing something that is used in 'tabline' that does not
trigger it to be updated, use |:redrawtabline|. trigger it to be updated, use |:redrawtabline|.
This option cannot be set in a modeline when 'modelineexpr' is off.
Keep in mind that only one of the tab pages is the current one, others Keep in mind that only one of the tab pages is the current one, others
are invisible and you can't jump to their windows. are invisible and you can't jump to their windows.
@@ -7873,8 +7941,11 @@ A jump table for the options with a short description can be found at |Q_op|.
non-empty 't_ts' option). non-empty 't_ts' option).
When Vim was compiled with HAVE_X11 defined, the original title will When Vim was compiled with HAVE_X11 defined, the original title will
be restored if possible, see |X11|. be restored if possible, see |X11|.
When this option contains printf-style '%' items, they will be When this option contains printf-style '%' items, they will be
expanded according to the rules used for 'statusline'. expanded according to the rules used for 'statusline'.
This option cannot be set in a modeline when 'modelineexpr' is off.
Example: > Example: >
:auto BufEnter * let &titlestring = hostname() . "/" . expand("%:p") :auto BufEnter * let &titlestring = hostname() . "/" . expand("%:p")
:set title titlestring=%<%F%=%l/%L-%P titlelen=70 :set title titlestring=%<%F%=%l/%L-%P titlelen=70
@@ -8022,7 +8093,7 @@ A jump table for the options with a short description can be found at |Q_op|.
already. already.
Additionally, if vim is compiled with the |+termresponse| feature and Additionally, if vim is compiled with the |+termresponse| feature and
|t_RV| is set to the escape sequence to request the xterm version |t_RV| is set to the escape sequence to request the xterm version
number, more intelligent detection process runs. number, more intelligent detection is done.
The "xterm2" value will be set if the xterm version is reported to be The "xterm2" value will be set if the xterm version is reported to be
from 95 to 276. The "sgr" value will be set if Vim detects Mac from 95 to 276. The "sgr" value will be set if Vim detects Mac
Terminal.app, iTerm2 or mintty, and when the xterm version is 277 or Terminal.app, iTerm2 or mintty, and when the xterm version is 277 or
@@ -8060,6 +8131,8 @@ A jump table for the options with a short description can be found at |Q_op|.
undo file that exists is used. When it cannot be read an error is undo file that exists is used. When it cannot be read an error is
given, no further entry is used. given, no further entry is used.
See |undo-persistence|. See |undo-persistence|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'undofile'* *'noundofile'* *'udf'* *'noudf'* *'undofile'* *'noundofile'* *'udf'* *'noudf'*
'undofile' 'udf' boolean (default off) 'undofile' 'udf' boolean (default off)
@@ -8369,6 +8442,8 @@ A jump table for the options with a short description can be found at |Q_op|.
When equal to "NONE" no viminfo file will be read or written. When equal to "NONE" no viminfo file will be read or written.
This option can be set with the |-i| command line flag. The |--clean| This option can be set with the |-i| command line flag. The |--clean|
command line flag sets it to "NONE". command line flag sets it to "NONE".
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'virtualedit'* *'ve'* *'virtualedit'* *'ve'*
'virtualedit' 've' string (default "") 'virtualedit' 've' string (default "")
@@ -8635,6 +8710,12 @@ A jump table for the options with a short description can be found at |Q_op|.
This option is not used for <F10>; on Win32 and with GTK <F10> will This option is not used for <F10>; on Win32 and with GTK <F10> will
select the menu, unless it has been mapped. select the menu, unless it has been mapped.
*'wincolor'* *'wcr'*
'wincolor' 'wcr' string (default empty)
local to window
Highlight group name to use for this window instead of the Normal
color |hl-Normal|.
*'window'* *'wi'* *'window'* *'wi'*
'window' 'wi' number (default screen height - 1) 'window' 'wi' number (default screen height - 1)
global global
@@ -8707,8 +8788,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'winminwidth'* *'wmw'* *'winminwidth'* *'wmw'*
'winminwidth' 'wmw' number (default 1) 'winminwidth' 'wmw' number (default 1)
global global
{not available when compiled without the |+vertsplit|
feature}
The minimal width of a window, when it's not the current window. The minimal width of a window, when it's not the current window.
This is a hard minimum, windows will never become smaller. This is a hard minimum, windows will never become smaller.
When set to zero, windows may be "squashed" to zero columns (i.e. just When set to zero, windows may be "squashed" to zero columns (i.e. just
@@ -8736,8 +8815,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'winwidth'* *'wiw'* *E592* *'winwidth'* *'wiw'* *E592*
'winwidth' 'wiw' number (default 20) 'winwidth' 'wiw' number (default 20)
global global
{not available when compiled without the |+vertsplit|
feature}
Minimal number of columns for the current window. This is not a hard Minimal number of columns for the current window. This is not a hard
minimum, Vim will use fewer columns if there is not enough room. If minimum, Vim will use fewer columns if there is not enough room. If
the current window is smaller, its size is increased, at the cost of the current window is smaller, its size is increased, at the cost of

View File

@@ -61,11 +61,11 @@ explanations are in chapter 27 |usr_27.txt|.
n Repeat the latest "/" or "?" [count] times. n Repeat the latest "/" or "?" [count] times.
If the cursor doesn't move the search is repeated with If the cursor doesn't move the search is repeated with
count + 1. count + 1.
|last-pattern| {Vi: no count} |last-pattern|
*N* *N*
N Repeat the latest "/" or "?" [count] times in N Repeat the latest "/" or "?" [count] times in
opposite direction. |last-pattern| {Vi: no count} opposite direction. |last-pattern|
*star* *E348* *E349* *star* *E348* *E349*
* Search forward for the [count]'th occurrence of the * Search forward for the [count]'th occurrence of the

View File

@@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 8.1. Last change: 2019 May 05 *pi_netrw.txt* For Vim version 8.1. Last change: 2019 Jul 17
------------------------------------------------ ------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell NETRW REFERENCE MANUAL by Charles E. Campbell
@@ -1184,7 +1184,7 @@ One may easily "bookmark" the currently browsed directory by using >
*.netrwbook* *.netrwbook*
Bookmarks are retained in between sessions of vim in a file called .netrwbook Bookmarks are retained in between sessions of vim in a file called .netrwbook
as a |List|, which is typically stored in the first directory on the user's as a |List|, which is typically stored in the first directory on the user's
'|runtimepath|'; entries are kept in sorted order. 'runtimepath'; entries are kept in sorted order.
If there are marked files and/or directories, mb will add them to the bookmark If there are marked files and/or directories, mb will add them to the bookmark
list. list.
@@ -2094,7 +2094,7 @@ track netrw's browsing directory.
However, given the default setting for g:netrw_keepdir of 1 where netrw However, given the default setting for g:netrw_keepdir of 1 where netrw
maintains its own separate notion of the current directory, in order to make maintains its own separate notion of the current directory, in order to make
the two directories the same, use the "c" map (just type c). That map will the two directories the same, use the "cd" map (type cd). That map will
set Vim's notion of the current directory to netrw's current browsing set Vim's notion of the current directory to netrw's current browsing
directory. directory.
@@ -2739,7 +2739,7 @@ your browsing preferences. (see also: |netrw-settings|)
=0 : show all =0 : show all
=1 : show not-hidden files =1 : show not-hidden files
=2 : show hidden files only =2 : show hidden files only
default: =0 default: =1
*g:netrw_home* The home directory for where bookmarks and *g:netrw_home* The home directory for where bookmarks and
history are saved (as .netrwbook and history are saved (as .netrwbook and
@@ -2940,14 +2940,23 @@ your browsing preferences. (see also: |netrw-settings|)
netrwBak : *.bak netrwBak : *.bak
netrwCompress: *.gz *.bz2 *.Z *.zip netrwCompress: *.gz *.bz2 *.Z *.zip
netrwCoreDump: core.\d\+
netrwData : *.dat netrwData : *.dat
netrwDoc : *.doc,*.txt,*.pdf,
*.pdf,*.docx
netrwHdr : *.h netrwHdr : *.h
netrwLex : *.l *.lex
netrwLib : *.a *.so *.lib *.dll netrwLib : *.a *.so *.lib *.dll
netrwMakefile: [mM]akefile *.mak netrwMakefile: [mM]akefile *.mak
netrwObj : *.o *.obj netrwObj : *.o *.obj
netrwPix : *.bmp,*.fit,*.fits,*.gif,
*.jpg,*.jpeg,*.pcx,*.ppc
*.pgm,*.png,*.psd,*.rgb
*.tif,*.xbm,*.xcf
netrwTags : tags ANmenu ANtags netrwTags : tags ANmenu ANtags
netrwTilde : * netrwTilde : *
netrwTmp : tmp* *tmp netrwTmp : tmp* *tmp
netrwYacc : *.y
In addition, those groups mentioned in In addition, those groups mentioned in
|'suffixes'| are also added to the special |'suffixes'| are also added to the special
@@ -3032,8 +3041,9 @@ your browsing preferences. (see also: |netrw-settings|)
current netrw buffer's window to be used for current netrw buffer's window to be used for
the new window. the new window.
If g:netrw_winsize is less than zero, then If g:netrw_winsize is less than zero, then
the absolute value of g:netrw_winsize lines the absolute value of g:netrw_winsize will be
or columns will be used for the new window. used to specify the quantity of lines or
columns for the new window.
If g:netrw_winsize is zero, then a normal If g:netrw_winsize is zero, then a normal
split will be made (ie. |'equalalways'| will split will be made (ie. |'equalalways'| will
take effect, for example). take effect, for example).
@@ -3371,7 +3381,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
(This section is likely to grow as I get feedback) (This section is likely to grow as I get feedback)
(also see |netrw-debug|) (also see |netrw-debug|)
*netrw-p1* *netrw-p1*
P1. I use windows 95, and my ftp dumps four blank lines at the P1. I use windows 95, and my ftp dumps four blank lines at the {{{2
end of every read. end of every read.
See |netrw-fixup|, and put the following into your See |netrw-fixup|, and put the following into your
@@ -3380,7 +3390,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
let g:netrw_win95ftp= 1 let g:netrw_win95ftp= 1
*netrw-p2* *netrw-p2*
P2. I use Windows, and my network browsing with ftp doesn't sort by P2. I use Windows, and my network browsing with ftp doesn't sort by {{{2
time or size! -or- The remote system is a Windows server; why time or size! -or- The remote system is a Windows server; why
don't I get sorts by time or size? don't I get sorts by time or size?
@@ -3407,7 +3417,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
*netrw-p3* *netrw-p3*
P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw {{{2
used ssh! That wasn't what I asked for... used ssh! That wasn't what I asked for...
Netrw has two methods for browsing remote directories: ssh Netrw has two methods for browsing remote directories: ssh
@@ -3416,7 +3426,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
listing), netrw will use the given protocol to do so. listing), netrw will use the given protocol to do so.
*netrw-p4* *netrw-p4*
P4. I would like long listings to be the default. P4. I would like long listings to be the default. {{{2
Put the following statement into your |.vimrc|: > Put the following statement into your |.vimrc|: >
@@ -3426,7 +3436,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
you can set. you can set.
*netrw-p5* *netrw-p5*
P5. My times come up oddly in local browsing P5. My times come up oddly in local browsing {{{2
Does your system's strftime() accept the "%c" to yield dates Does your system's strftime() accept the "%c" to yield dates
such as "Sun Apr 27 11:49:23 1997"? If not, do a such as "Sun Apr 27 11:49:23 1997"? If not, do a
@@ -3436,7 +3446,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
let g:netrw_timefmt= "%X" (where X is the option) let g:netrw_timefmt= "%X" (where X is the option)
< <
*netrw-p6* *netrw-p6*
P6. I want my current directory to track my browsing. P6. I want my current directory to track my browsing. {{{2
How do I do that? How do I do that?
Put the following line in your |.vimrc|: Put the following line in your |.vimrc|:
@@ -3444,8 +3454,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
let g:netrw_keepdir= 0 let g:netrw_keepdir= 0
< <
*netrw-p7* *netrw-p7*
P7. I use Chinese (or other non-ascii) characters in my filenames, and P7. I use Chinese (or other non-ascii) characters in my filenames, {{{2
netrw (Explore, Sexplore, Hexplore, etc) doesn't display them! and netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
(taken from an answer provided by Wu Yongwei on the vim (taken from an answer provided by Wu Yongwei on the vim
mailing list) mailing list)
@@ -3459,7 +3469,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
(...it is one more reason to recommend that people use utf-8!) (...it is one more reason to recommend that people use utf-8!)
*netrw-p8* *netrw-p8*
P8. I'm getting "ssh is not executable on your system" -- what do I P8. I'm getting "ssh is not executable on your system" -- what do I {{{2
do? do?
(Dudley Fox) Most people I know use putty for windows ssh. It (Dudley Fox) Most people I know use putty for windows ssh. It
@@ -3502,7 +3512,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
- Click "Add..." - Click "Add..."
- Set External Editor (adjust path as needed, include - Set External Editor (adjust path as needed, include
the quotes and !.! at the end): the quotes and !.! at the end):
"c:\Program Files\Vim\vim81\gvim.exe" !.! "c:\Program Files\Vim\vim70\gvim.exe" !.!
- Check that the filetype in the box below is - Check that the filetype in the box below is
{asterisk}.{asterisk} (all files), or whatever types {asterisk}.{asterisk} (all files), or whatever types
you want (cec: change {asterisk} to * ; I had to you want (cec: change {asterisk} to * ; I had to
@@ -3542,7 +3552,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
default. default.
*netrw-p9* *netrw-ml_get* *netrw-p9* *netrw-ml_get*
P9. I'm browsing, changing directory, and bang! ml_get errors P9. I'm browsing, changing directory, and bang! ml_get errors {{{2
appear and I have to kill vim. Any way around this? appear and I have to kill vim. Any way around this?
Normally netrw attempts to avoid writing swapfiles for Normally netrw attempts to avoid writing swapfiles for
@@ -3553,7 +3563,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
let g:netrw_use_noswf= 0 let g:netrw_use_noswf= 0
< <
*netrw-p10* *netrw-p10*
P10. I'm being pestered with "[something] is a directory" and P10. I'm being pestered with "[something] is a directory" and {{{2
"Press ENTER or type command to continue" prompts... "Press ENTER or type command to continue" prompts...
The "[something] is a directory" prompt is issued by Vim, The "[something] is a directory" prompt is issued by Vim,
@@ -3564,8 +3574,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
your <.vimrc> file. your <.vimrc> file.
*netrw-p11* *netrw-p11*
P11. I want to have two windows; a thin one on the left and my editing P11. I want to have two windows; a thin one on the left and my {{{2
window on the right. How may I accomplish this? editing window on the right. How may I accomplish this?
You probably want netrw running as in a side window. If so, you You probably want netrw running as in a side window. If so, you
will likely find that ":[N]Lexplore" does what you want. The will likely find that ":[N]Lexplore" does what you want. The
@@ -3590,7 +3600,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
*netrw-p12* *netrw-p12*
P12. My directory isn't sorting correctly, or unwanted letters are P12. My directory isn't sorting correctly, or unwanted letters are {{{2
appearing in the listed filenames, or things aren't lining appearing in the listed filenames, or things aren't lining
up properly in the wide listing, ... up properly in the wide listing, ...
@@ -3600,9 +3610,9 @@ Example: Clear netrw's marked file list via a mapping on gu >
You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|. You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
*netrw-p13* *netrw-p13*
P13. I'm a Windows + putty + ssh user, and when I attempt to browse, P13. I'm a Windows + putty + ssh user, and when I attempt to {{{2
the directories are missing trailing "/"s so netrw treats them browse, the directories are missing trailing "/"s so netrw treats
as file transfers instead of as attempts to browse them as file transfers instead of as attempts to browse
subdirectories. How may I fix this? subdirectories. How may I fix this?
(mikeyao) If you want to use vim via ssh and putty under Windows, (mikeyao) If you want to use vim via ssh and putty under Windows,
@@ -3621,7 +3631,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
"let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe" "let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
< <
*netrw-p14* *netrw-p14*
P14. I would like to speed up writes using Nwrite and scp/ssh P14. I would like to speed up writes using Nwrite and scp/ssh {{{2
style connections. How? (Thomer M. Gil) style connections. How? (Thomer M. Gil)
Try using ssh's ControlMaster and ControlPath (see the ssh_config Try using ssh's ControlMaster and ControlPath (see the ssh_config
@@ -3648,8 +3658,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
vim scp://host.domain.com//home/user/.bashrc vim scp://host.domain.com//home/user/.bashrc
< <
*netrw-p15* *netrw-p15*
P15. How may I use a double-click instead of netrw's usual single click P15. How may I use a double-click instead of netrw's usual single {{{2
to open a file or directory? (Ben Fritz) click to open a file or directory? (Ben Fritz)
First, disable netrw's mapping with > First, disable netrw's mapping with >
let g:netrw_mousemaps= 0 let g:netrw_mousemaps= 0
@@ -3661,7 +3671,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
(see |g:netrw_mousemaps|) (see |g:netrw_mousemaps|)
*netrw-p16* *netrw-p16*
P16. When editing remote files (ex. :e ftp://hostname/path/file), P16. When editing remote files (ex. :e ftp://hostname/path/file), {{{2
under Windows I get an |E303| message complaining that its unable under Windows I get an |E303| message complaining that its unable
to open a swap file. to open a swap file.
@@ -3670,7 +3680,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
directory. directory.
*netrw-p17* *netrw-p17*
P17. Netrw is closing buffers on its own. P17. Netrw is closing buffers on its own. {{{2
What steps will reproduce the problem? What steps will reproduce the problem?
1. :Explore, navigate directories, open a file 1. :Explore, navigate directories, open a file
2. :Explore, open another file 2. :Explore, open another file
@@ -3684,14 +3694,14 @@ Example: Clear netrw's marked file list via a mapping on gu >
a ":ls!" will show them (although ":ls" does not). a ":ls!" will show them (although ":ls" does not).
*netrw-P18* *netrw-P18*
P18. How to locally edit a file that's only available via P18. How to locally edit a file that's only available via {{{2
another server accessible via ssh? another server accessible via ssh?
See http://stackoverflow.com/questions/12469645/ See http://stackoverflow.com/questions/12469645/
"Using Vim to Remotely Edit A File on ServerB Only "Using Vim to Remotely Edit A File on ServerB Only
Accessible From ServerA" Accessible From ServerA"
*netrw-P19* *netrw-P19*
P19. How do I get numbering on in directory listings? P19. How do I get numbering on in directory listings? {{{2
With |g:netrw_bufsettings|, you can control netrw's buffer With |g:netrw_bufsettings|, you can control netrw's buffer
settings; try putting > settings; try putting >
let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu" let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
@@ -3700,7 +3710,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu" let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
< <
*netrw-P20* *netrw-P20*
P20. How may I have gvim start up showing a directory listing? P20. How may I have gvim start up showing a directory listing? {{{2
Try putting the following code snippet into your .vimrc: > Try putting the following code snippet into your .vimrc: >
augroup VimStartup augroup VimStartup
au! au!
@@ -3713,8 +3723,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
(ie. a "huge" vim version). (ie. a "huge" vim version).
*netrw-P21* *netrw-P21*
P21. I've made a directory (or file) with an accented character, but P21. I've made a directory (or file) with an accented character, {{{2
netrw isn't letting me enter that directory/read that file: but netrw isn't letting me enter that directory/read that file:
Its likely that the shell or o/s is using a different encoding Its likely that the shell or o/s is using a different encoding
than you have vim (netrw) using. A patch to vim supporting than you have vim (netrw) using. A patch to vim supporting
@@ -3724,7 +3734,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
au FileType netrw set enc=latin1 au FileType netrw set enc=latin1
< <
*netrw-P22* *netrw-P22*
P22. I get an error message when I try to copy or move a file: P22. I get an error message when I try to copy or move a file: {{{2
**error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work! **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!
@@ -3752,8 +3762,8 @@ by obtaining a copy of the latest (often developmental) netrw at:
The <netrw.vim> script is typically installed on systems as something like: The <netrw.vim> script is typically installed on systems as something like:
> >
/usr/local/share/vim/vim8x/plugin/netrwPlugin.vim /usr/local/share/vim/vim7x/plugin/netrwPlugin.vim
/usr/local/share/vim/vim8x/autoload/netrw.vim /usr/local/share/vim/vim7x/autoload/netrw.vim
(see output of :echo &rtp) (see output of :echo &rtp)
< <
which is loaded automatically at startup (assuming :set nocp). If you which is loaded automatically at startup (assuming :set nocp). If you
@@ -3832,6 +3842,16 @@ netrw:
============================================================================== ==============================================================================
12. History *netrw-history* {{{1 12. History *netrw-history* {{{1
v163: Dec 05, 2017 * (Cristi Balan) reported that a setting ('sel')
was left changed
* (Holger Mitschke) reported a problem with
saving and restoring history. Fixed.
* Hopefully I fixed a nasty bug that caused a
file rename to wipe out a buffer that it
should not have wiped out.
* (Holger Mitschke) amended this help file
with additional |g:netrw_special_syntax|
items
v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors
with a patch; these are now fixed. with a patch; these are now fixed.
Oct 26, 2016 * I started using mate-terminal and found that Oct 26, 2016 * I started using mate-terminal and found that

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 8.1. Last change: 2019 May 05 *quickfix.txt* For Vim version 8.1. Last change: 2019 Aug 06
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -102,7 +102,7 @@ processing a quickfix or location list command, it will be aborted.
:ll[!] [nr] Same as ":cc", except the location list for the :ll[!] [nr] Same as ":cc", except the location list for the
:[nr]ll[!] current window is used instead of the quickfix list. :[nr]ll[!] current window is used instead of the quickfix list.
*:cn* *:cnext* *E553* *:cn* *:cne* *:cnext* *E553*
:[count]cn[ext][!] Display the [count] next error in the list that :[count]cn[ext][!] Display the [count] next error in the list that
includes a file name. If there are no file names at includes a file name. If there are no file names at
all, go to the [count] next error. See |:cc| for all, go to the [count] next error. See |:cc| for
@@ -246,7 +246,7 @@ processing a quickfix or location list command, it will be aborted.
'encoding' option, you can use the 'makeencoding' 'encoding' option, you can use the 'makeencoding'
option to specify the encoding. option to specify the encoding.
*:lf* *:lfile* *:lf* *:lfi* *:lfile*
:lf[ile][!] [errorfile] Same as ":cfile", except the location list for the :lf[ile][!] [errorfile] Same as ":cfile", except the location list for the
current window is used instead of the quickfix list. current window is used instead of the quickfix list.
You can not use the -q command-line option to set You can not use the -q command-line option to set
@@ -261,7 +261,7 @@ processing a quickfix or location list command, it will be aborted.
option to specify the encoding. option to specify the encoding.
:lg[etfile] [errorfile] *:lg* *:lgetfile* :lg[etfile] [errorfile] *:lg* *:lge* *:lgetfile*
Same as ":cgetfile", except the location list for the Same as ":cgetfile", except the location list for the
current window is used instead of the quickfix list. current window is used instead of the quickfix list.
@@ -299,7 +299,7 @@ processing a quickfix or location list command, it will be aborted.
the current window is used instead of the quickfix the current window is used instead of the quickfix
list. list.
*:cad* *:caddbuffer* *:cad* *:cadd* *:caddbuffer*
:cad[dbuffer] [bufnr] Read the error list from the current buffer and add :cad[dbuffer] [bufnr] Read the error list from the current buffer and add
the errors to the current quickfix list. If a the errors to the current quickfix list. If a
quickfix list is not present, then a new list is quickfix list is not present, then a new list is
@@ -346,7 +346,7 @@ processing a quickfix or location list command, it will be aborted.
Example: > Example: >
:g/mypattern/caddexpr expand("%") . ":" . line(".") . ":" . getline(".") :g/mypattern/caddexpr expand("%") . ":" . line(".") . ":" . getline(".")
< <
*:lad* *:laddexpr* *:lad* *:addd* *:laddexpr*
:lad[dexpr] {expr} Same as ":caddexpr", except the location list for the :lad[dexpr] {expr} Same as ":caddexpr", except the location list for the
current window is used instead of the quickfix list. current window is used instead of the quickfix list.
@@ -650,9 +650,9 @@ You can use CTRL-W <Enter> to open a new window and jump to the error there.
When the quickfix window has been filled, two autocommand events are When the quickfix window has been filled, two autocommand events are
triggered. First the 'filetype' option is set to "qf", which triggers the triggered. First the 'filetype' option is set to "qf", which triggers the
FileType event. Then the BufReadPost event is triggered, using "quickfix" for FileType event (also see |qf.vim|). Then the BufReadPost event is triggered,
the buffer name. This can be used to perform some action on the listed using "quickfix" for the buffer name. This can be used to perform some action
errors. Example: > on the listed errors. Example: >
au BufReadPost quickfix setlocal modifiable au BufReadPost quickfix setlocal modifiable
\ | silent exe 'g/^/s//\=line(".")." "/' \ | silent exe 'g/^/s//\=line(".")." "/'
\ | setlocal nomodifiable \ | setlocal nomodifiable
@@ -1352,6 +1352,9 @@ replaced with SOH (0x01).
Note: By default the difference between upper and lowercase is ignored. If Note: By default the difference between upper and lowercase is ignored. If
you want to match case, add "\C" to the pattern |/\C|. you want to match case, add "\C" to the pattern |/\C|.
Vim will read lines of any length, but only the first 4095 bytes are used, the
rest is ignored. Items can only be 1023 bytes long.
Basic items Basic items

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.1. Last change: 2019 Apr 28 *quickref.txt* For Vim version 8.1. Last change: 2019 Aug 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -651,6 +651,7 @@ Short explanation of each option: *option-list*
'complete' 'cpt' specify how Insert mode completion works 'complete' 'cpt' specify how Insert mode completion works
'completefunc' 'cfu' function to be used for Insert mode completion 'completefunc' 'cfu' function to be used for Insert mode completion
'completeopt' 'cot' options for Insert mode completion 'completeopt' 'cot' options for Insert mode completion
'completeslash' 'csl' like 'shellslash' for completion
'concealcursor' 'cocu' whether concealable text is hidden in cursor line 'concealcursor' 'cocu' whether concealable text is hidden in cursor line
'conceallevel' 'cole' whether concealable text is shown or hidden 'conceallevel' 'cole' whether concealable text is shown or hidden
'confirm' 'cf' ask what to do about unsaved/read-only files 'confirm' 'cf' ask what to do about unsaved/read-only files
@@ -798,6 +799,7 @@ Short explanation of each option: *option-list*
'menuitems' 'mis' maximum number of items in a menu 'menuitems' 'mis' maximum number of items in a menu
'mkspellmem' 'msm' memory used before |:mkspell| compresses the tree 'mkspellmem' 'msm' memory used before |:mkspell| compresses the tree
'modeline' 'ml' recognize modelines at start or end of file 'modeline' 'ml' recognize modelines at start or end of file
'modelineexpr' 'mle' allow setting expression options from a modeline
'modelines' 'mls' number of lines checked for modelines 'modelines' 'mls' number of lines checked for modelines
'modifiable' 'ma' changes to the text are not possible 'modifiable' 'ma' changes to the text are not possible
'modified' 'mod' buffer has been modified 'modified' 'mod' buffer has been modified
@@ -828,6 +830,7 @@ Short explanation of each option: *option-list*
'perldll' name of the Perl dynamic library 'perldll' name of the Perl dynamic library
'preserveindent' 'pi' preserve the indent structure when reindenting 'preserveindent' 'pi' preserve the indent structure when reindenting
'previewheight' 'pvh' height of the preview window 'previewheight' 'pvh' height of the preview window
'previewpopup' 'pvp' use popup window for preview
'previewwindow' 'pvw' identifies the preview window 'previewwindow' 'pvw' identifies the preview window
'printdevice' 'pdev' name of the printer to be used for :hardcopy 'printdevice' 'pdev' name of the printer to be used for :hardcopy
'printencoding' 'penc' encoding to be used for printing 'printencoding' 'penc' encoding to be used for printing
@@ -981,6 +984,7 @@ Short explanation of each option: *option-list*
'wildmode' 'wim' mode for 'wildchar' command-line expansion 'wildmode' 'wim' mode for 'wildchar' command-line expansion
'wildoptions' 'wop' specifies how command line completion is done 'wildoptions' 'wop' specifies how command line completion is done
'winaltkeys' 'wak' when the windows system handles ALT keys 'winaltkeys' 'wak' when the windows system handles ALT keys
'wincolor' 'wcr' window-local highlighting
'window' 'wi' nr of lines to scroll for CTRL-F and CTRL-B 'window' 'wi' nr of lines to scroll for CTRL-F and CTRL-B
'winheight' 'wh' minimum number of lines for the current window 'winheight' 'wh' minimum number of lines for the current window
'winfixheight' 'wfh' keep window height when opening/closing windows 'winfixheight' 'wfh' keep window height when opening/closing windows

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 8.1. Last change: 2019 May 07 *repeat.txt* For Vim version 8.1. Last change: 2019 Jun 14
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -178,7 +178,7 @@ 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 :so[urce] {file} Read Ex commands from {file}. These are commands that
start with a ":". start with a ":".
Triggers the |SourcePre| autocommand. Triggers the |SourcePre| autocommand.
*:source!*
:so[urce]! {file} Read Vim commands from {file}. These are commands :so[urce]! {file} Read Vim commands from {file}. These are commands
that are executed from Normal mode, like you type that are executed from Normal mode, like you type
them. them.
@@ -186,6 +186,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|:bufdo|, in a loop or when another command follows |:bufdo|, in a loop or when another command follows
the display won't be updated while executing the the display won't be updated while executing the
commands. commands.
Cannot be used in the |sandbox|.
*:ru* *:runtime* *:ru* *:runtime*
:ru[ntime][!] [where] {file} .. :ru[ntime][!] [where] {file} ..
@@ -279,9 +280,16 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
after loading your .vimrc file. With this command it after loading your .vimrc file. With this command it
can be done earlier. can be done earlier.
Packages will be loaded only once. After this command Packages will be loaded only once. Using
it won't happen again. When the optional ! is added `:packloadall` a second time will have no effect.
this command will load packages even when done before. When the optional ! is added this command will load
packages even when done before.
Note that when using `:packloadall` in the |vimrc|
file, the 'runtimepath' option is updated, and later
all plugins in 'runtimepath' will be loaded, which
means they are loaded again. Plugins are expected to
handle that.
An error only causes sourcing the script where it An error only causes sourcing the script where it
happens to be aborted, further plugins will be loaded. happens to be aborted, further plugins will be loaded.

View File

@@ -1,4 +1,4 @@
*scroll.txt* For Vim version 8.1. Last change: 2019 May 05 *scroll.txt* For Vim version 8.1. Last change: 2019 May 13
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -82,9 +82,6 @@ CTRL-U Scroll window Upwards in the buffer. The number of
may be a difference). When the cursor is on the first may be a difference). When the cursor is on the first
line of the buffer nothing happens and a beep is line of the buffer nothing happens and a beep is
produced. See also 'startofline' option. produced. See also 'startofline' option.
{difference from vi: Vim scrolls 'scroll' screen
lines, instead of file lines; makes a difference when
lines wrap}
<S-Up> or *<S-Up>* *<kPageUp>* <S-Up> or *<S-Up>* *<kPageUp>*
<PageUp> or *<PageUp>* *CTRL-B* <PageUp> or *<PageUp>* *CTRL-B*

View File

@@ -1,4 +1,4 @@
*sign.txt* For Vim version 8.1. Last change: 2019 May 05 *sign.txt* For Vim version 8.1. Last change: 2019 Jul 21
VIM REFERENCE MANUAL by Gordon Prieur VIM REFERENCE MANUAL by Gordon Prieur
@@ -9,6 +9,7 @@ Sign Support Features *sign-support*
1. Introduction |sign-intro| 1. Introduction |sign-intro|
2. Commands |sign-commands| 2. Commands |sign-commands|
3. Functions |sign-functions-details|
{only available when compiled with the |+signs| feature} {only available when compiled with the |+signs| feature}
@@ -182,9 +183,9 @@ See |sign_place()| for the equivalent Vim script function.
By default, the sign is assigned a default priority of 10. To By default, the sign is assigned a default priority of 10. To
assign a different priority value, use "priority={prio}" to assign a different priority value, use "priority={prio}" to
specify a value. The priority is used to determine the specify a value. The priority is used to determine the sign
highlight group used when multiple signs are placed on the that is displayed when multiple signs are placed on the same
same line. line.
Examples: > Examples: >
:sign place 5 line=3 name=sign1 file=a.py :sign place 5 line=3 name=sign1 file=a.py
@@ -204,7 +205,9 @@ See |sign_place()| for the equivalent Vim script function.
it (e.g., when the debugger has stopped at a breakpoint). it (e.g., when the debugger has stopped at a breakpoint).
The optional "group={group}" attribute can be used before The optional "group={group}" attribute can be used before
"file=" to select a sign in a particular group. "file=" to select a sign in a particular group. The optional
"priority={prio}" attribute can be used to change the priority
of an existing sign.
:sign place {id} name={name} [buffer={nr}] :sign place {id} name={name} [buffer={nr}]
Same, but use buffer {nr}. If the buffer argument is not Same, but use buffer {nr}. If the buffer argument is not
@@ -342,4 +345,357 @@ See |sign_jump()| for the equivalent Vim script function.
Same but jump to the sign in group {group} Same but jump to the sign in group {group}
==============================================================================
3. Functions *sign-functions-details*
sign_define({name} [, {dict}]) *sign_define()*
sign_define({list})
Define a new sign named {name} or modify the attributes of an
existing sign. This is similar to the |:sign-define| command.
Prefix {name} with a unique text to avoid name collisions.
There is no {group} like with placing signs.
The {name} can be a String or a Number. The optional {dict}
argument specifies the sign attributes. The following values
are supported:
icon full path to the bitmap file for the sign.
linehl highlight group used for the whole line the
sign is placed in.
text text that is displayed when there is no icon
or the GUI is not being used.
texthl highlight group used for the text item
If the sign named {name} already exists, then the attributes
of the sign are updated.
The one argument {list} can be used to define a list of signs.
Each list item is a dictionary with the above items in {dict}
and a 'name' item for the sign name.
Returns 0 on success and -1 on failure. When the one argument
{list} is used, then returns a List of values one for each
defined sign.
Examples: >
call sign_define("mySign", {
\ "text" : "=>",
\ "texthl" : "Error",
\ "linehl" : "Search"})
call sign_define([
\ {'name' : 'sign1',
\ 'text' : '=>'},
\ {'name' : 'sign2',
\ 'text' : '!!'}
\ ])
<
sign_getdefined([{name}]) *sign_getdefined()*
Get a list of defined signs and their attributes.
This is similar to the |:sign-list| command.
If the {name} is not supplied, then a list of all the defined
signs is returned. Otherwise the attribute of the specified
sign is returned.
Each list item in the returned value is a dictionary with the
following entries:
icon full path to the bitmap file of the sign
linehl highlight group used for the whole line the
sign is placed in.
name name of the sign
text text that is displayed when there is no icon
or the GUI is not being used.
texthl highlight group used for the text item
Returns an empty List if there are no signs and when {name} is
not found.
Examples: >
" Get a list of all the defined signs
echo sign_getdefined()
" Get the attribute of the sign named mySign
echo sign_getdefined("mySign")
<
sign_getplaced([{expr} [, {dict}]]) *sign_getplaced()*
Return a list of signs placed in a buffer or all the buffers.
This is similar to the |:sign-place-list| command.
If the optional buffer name {expr} is specified, then only the
list of signs placed in that buffer is returned. For the use
of {expr}, see |bufname()|. The optional {dict} can contain
the following entries:
group select only signs in this group
id select sign with this identifier
lnum select signs placed in this line. For the use
of {lnum}, see |line()|.
If {group} is '*', then signs in all the groups including the
global group are returned. If {group} is not supplied or is an
empty string, then only signs in the global group are
returned. If no arguments are supplied, then signs in the
global group placed in all the buffers are returned.
See |sign-group|.
Each list item in the returned value is a dictionary with the
following entries:
bufnr number of the buffer with the sign
signs list of signs placed in {bufnr}. Each list
item is a dictionary with the below listed
entries
The dictionary for each sign contains the following entries:
group sign group. Set to '' for the global group.
id identifier of the sign
lnum line number where the sign is placed
name name of the defined sign
priority sign priority
The returned signs in a buffer are ordered by their line
number and priority.
Returns an empty list on failure or if there are no placed
signs.
Examples: >
" Get a List of signs placed in eval.c in the
" global group
echo sign_getplaced("eval.c")
" Get a List of signs in group 'g1' placed in eval.c
echo sign_getplaced("eval.c", {'group' : 'g1'})
" Get a List of signs placed at line 10 in eval.c
echo sign_getplaced("eval.c", {'lnum' : 10})
" Get sign with identifier 10 placed in a.py
echo sign_getplaced("a.py", {'id' : 10})
" Get sign with id 20 in group 'g1' placed in a.py
echo sign_getplaced("a.py", {'group' : 'g1',
\ 'id' : 20})
" Get a List of all the placed signs
echo sign_getplaced()
<
*sign_jump()*
sign_jump({id}, {group}, {expr})
Open the buffer {expr} or jump to the window that contains
{expr} and position the cursor at sign {id} in group {group}.
This is similar to the |:sign-jump| command.
For the use of {expr}, see |bufname()|.
Returns the line number of the sign. Returns -1 if the
arguments are invalid.
Example: >
" Jump to sign 10 in the current buffer
call sign_jump(10, '', '')
<
*sign_place()*
sign_place({id}, {group}, {name}, {expr} [, {dict}])
Place the sign defined as {name} at line {lnum} in file or
buffer {expr} and assign {id} and {group} to sign. This is
similar to the |:sign-place| command.
If the sign identifier {id} is zero, then a new identifier is
allocated. Otherwise the specified number is used. {group} is
the sign group name. To use the global sign group, use an
empty string. {group} functions as a namespace for {id}, thus
two groups can use the same IDs. Refer to |sign-identifier|
and |sign-group| for more information.
{name} refers to a defined sign.
{expr} refers to a buffer name or number. For the accepted
values, see |bufname()|.
The optional {dict} argument supports the following entries:
lnum line number in the file or buffer
{expr} where the sign is to be placed.
For the accepted values, see |line()|.
priority priority of the sign. See
|sign-priority| for more information.
If the optional {dict} is not specified, then it modifies the
placed sign {id} in group {group} to use the defined sign
{name}.
Returns the sign identifier on success and -1 on failure.
Examples: >
" Place a sign named sign1 with id 5 at line 20 in
" buffer json.c
call sign_place(5, '', 'sign1', 'json.c',
\ {'lnum' : 20})
" Updates sign 5 in buffer json.c to use sign2
call sign_place(5, '', 'sign2', 'json.c')
" Place a sign named sign3 at line 30 in
" buffer json.c with a new identifier
let id = sign_place(0, '', 'sign3', 'json.c',
\ {'lnum' : 30})
" Place a sign named sign4 with id 10 in group 'g3'
" at line 40 in buffer json.c with priority 90
call sign_place(10, 'g3', 'sign4', 'json.c',
\ {'lnum' : 40, 'priority' : 90})
<
*sign_placelist()*
sign_placelist({list})
Place one or more signs. This is similar to the
|sign_place()| function. The {list} argument specifies the
List of signs to place. Each list item is a dict with the
following sign attributes:
buffer buffer name or number. For the accepted
values, see |bufname()|.
group sign group. {group} functions as a namespace
for {id}, thus two groups can use the same
IDs. If not specified or set to an empty
string, then the global group is used. See
|sign-group| for more information.
id sign identifier. If not specified or zero,
then a new unique identifier is allocated.
Otherwise the specified number is used. See
|sign-identifier| for more information.
lnum line number in the buffer {expr} where the
sign is to be placed. For the accepted values,
see |line()|.
name name of the sign to place. See |sign_define()|
for more information.
priority priority of the sign. When multiple signs are
placed on a line, the sign with the highest
priority is used. If not specified, the
default value of 10 is used. See
|sign-priority| for more information.
If {id} refers to an existing sign, then the existing sign is
modified to use the specified {name} and/or {priority}.
Returns a List of sign identifiers. If failed to place a
sign, the corresponding list item is set to -1.
Examples: >
" Place sign s1 with id 5 at line 20 and id 10 at line
" 30 in buffer a.c
let [n1, n2] = sign_placelist([
\ {'id' : 5,
\ 'name' : 's1',
\ 'buffer' : 'a.c',
\ 'lnum' : 20},
\ {'id' : 10,
\ 'name' : 's1',
\ 'buffer' : 'a.c',
\ 'lnum' : 30}
\ ])
" Place sign s1 in buffer a.c at line 40 and 50
" with auto-generated identifiers
let [n1, n2] = sign_placelist([
\ {'name' : 's1',
\ 'buffer' : 'a.c',
\ 'lnum' : 40},
\ {'name' : 's1',
\ 'buffer' : 'a.c',
\ 'lnum' : 50}
\ ])
<
sign_undefine([{name}]) *sign_undefine()*
sign_undefine({list})
Deletes a previously defined sign {name}. This is similar to
the |:sign-undefine| command. If {name} is not supplied, then
deletes all the defined signs.
The one argument {list} can be used to undefine a list of
signs. Each list item is the name of a sign.
Returns 0 on success and -1 on failure. For the one argument
{list} call, returns a list of values one for each undefined
sign.
Examples: >
" Delete a sign named mySign
call sign_undefine("mySign")
" Delete signs 'sign1' and 'sign2'
call sign_undefine(["sign1", "sign2"])
" Delete all the signs
call sign_undefine()
<
sign_unplace({group} [, {dict}]) *sign_unplace()*
Remove a previously placed sign in one or more buffers. This
is similar to the |:sign-unplace| command.
{group} is the sign group name. To use the global sign group,
use an empty string. If {group} is set to '*', then all the
groups including the global group are used.
The signs in {group} are selected based on the entries in
{dict}. The following optional entries in {dict} are
supported:
buffer buffer name or number. See |bufname()|.
id sign identifier
If {dict} is not supplied, then all the signs in {group} are
removed.
Returns 0 on success and -1 on failure.
Examples: >
" Remove sign 10 from buffer a.vim
call sign_unplace('', {'buffer' : "a.vim", 'id' : 10})
" Remove sign 20 in group 'g1' from buffer 3
call sign_unplace('g1', {'buffer' : 3, 'id' : 20})
" Remove all the signs in group 'g2' from buffer 10
call sign_unplace('g2', {'buffer' : 10})
" Remove sign 30 in group 'g3' from all the buffers
call sign_unplace('g3', {'id' : 30})
" Remove all the signs placed in buffer 5
call sign_unplace('*', {'buffer' : 5})
" Remove the signs in group 'g4' from all the buffers
call sign_unplace('g4')
" Remove sign 40 from all the buffers
call sign_unplace('*', {'id' : 40})
" Remove all the placed signs from all the buffers
call sign_unplace('*')
<
sign_unplacelist({list}) *sign_unplacelist()*
Remove previously placed signs from one or more buffers. This
is similar to the |sign_unplace()| function.
The {list} argument specifies the List of signs to remove.
Each list item is a dict with the following sign attributes:
buffer buffer name or number. For the accepted
values, see |bufname()|. If not specified,
then the specified sign is removed from all
the buffers.
group sign group name. If not specified or set to an
empty string, then the global sign group is
used. If set to '*', then all the groups
including the global group are used.
id sign identifier. If not specified, then all
the signs in the specified group are removed.
Returns a List where an entry is set to 0 if the corresponding
sign was successfully removed or -1 on failure.
Example: >
" Remove sign with id 10 from buffer a.vim and sign
" with id 20 from buffer b.vim
call sign_unplacelist([
\ {'id' : 10, 'buffer' : "a.vim"},
\ {'id' : 20, 'buffer' : 'b.vim'},
\ ])
<
vim:tw=78:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -121,6 +121,23 @@ zuG Undo |zW| and |zG|, remove the word from the internal
:spellw[rong]! {word} Add {word} as a wrong (bad) word to the internal word :spellw[rong]! {word} Add {word} as a wrong (bad) word to the internal word
list, like with |zW|. list, like with |zW|.
*:spellr* *:spellrare*
:[count]spellr[are] {word}
Add {word} as a rare word to 'spellfile', similar to
|zw|. Without count the first name is used, with
a count of two the second entry, etc.
There are no normal mode commands to mark words as
rare as this is a fairly uncommon command and all
intuitive commands for this are already taken. If you
want you can add mappings with e.g.: >
nnoremap z? :exe ':spellrare ' . expand('<cWORD>')<CR>
nnoremap z/ :exe ':spellrare! ' . expand('<cWORD>')<CR>
< |:spellundo|, |zuw|, or |zuW| can be used to undo this.
:spellr[rare]! {word} Add {word} as a rare word to the internal word
list, similar to |zW|.
:[count]spellu[ndo] {word} *:spellu* *:spellundo* :[count]spellu[ndo] {word} *:spellu* *:spellundo*
Like |zuw|. [count] used as with |:spellgood|. Like |zuw|. [count] used as with |:spellgood|.

View File

@@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.1. Last change: 2019 May 05 *starting.txt* For Vim version 8.1. Last change: 2019 Jul 30
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1189,6 +1189,8 @@ greps in the help files) you might be able to use this: >
VIMRUNTIME=`vim -e -T dumb --cmd 'exe "set t_cm=\<C-M>"|echo $VIMRUNTIME|quit' | tr -d '\015' ` VIMRUNTIME=`vim -e -T dumb --cmd 'exe "set t_cm=\<C-M>"|echo $VIMRUNTIME|quit' | tr -d '\015' `
Don't set $VIMRUNTIME to an empty value, some things may stop working.
============================================================================== ==============================================================================
6. Suspending *suspend* 6. Suspending *suspend*
@@ -1252,7 +1254,7 @@ vimrc file.
options to [file] (default ".exrc" in the current options to [file] (default ".exrc" in the current
directory). directory).
*:mkv* *:mkvimrc* *:mkv* *:mkvi* *:mkvimrc*
:mkv[imrc][!] [file] Like ":mkexrc", but the default is ".vimrc" in the :mkv[imrc][!] [file] Like ":mkexrc", but the default is ".vimrc" in the
current directory. The ":version" command is also current directory. The ":version" command is also
written to the file. written to the file.

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.1. Last change: 2019 Mar 29 *syntax.txt* For Vim version 8.1. Last change: 2019 Jul 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2623,7 +2623,6 @@ preceding last option and unsetting all other ones): >
Note: only existence of these options matter, not their value. You can replace Note: only existence of these options matter, not their value. You can replace
1 above with anything. 1 above with anything.
QUAKE *quake.vim* *ft-quake-syntax* QUAKE *quake.vim* *ft-quake-syntax*
The Quake syntax definition should work for most any FPS (First Person The Quake syntax definition should work for most any FPS (First Person
@@ -3140,7 +3139,7 @@ in your <.vimrc>, and :set fdm=syntax. I suggest doing the latter via a
modeline at the end of your LaTeX file: > modeline at the end of your LaTeX file: >
% vim: fdm=syntax % vim: fdm=syntax
If your system becomes too slow, then you might wish to look into > If your system becomes too slow, then you might wish to look into >
https://vimhelp.appspot.com/vim_faq.txt.html#faq-29.7 https://vimhelp.org/vim_faq.txt.html#faq-29.7
< <
*g:tex_nospell* *g:tex_nospell*
Tex: No Spell Checking Wanted~ Tex: No Spell Checking Wanted~
@@ -4827,8 +4826,9 @@ cterm={attr-list} *highlight-cterm*
The "cterm" argument is likely to be different from "term", when The "cterm" argument is likely to be different from "term", when
colors are used. For example, in a normal terminal comments could colors are used. For example, in a normal terminal comments could
be underlined, in a color terminal they can be made Blue. be underlined, in a color terminal they can be made Blue.
Note: Many terminals (e.g., DOS console) can't mix these attributes Note: Some terminals (e.g., DOS console) can't mix these attributes
with coloring. Use only one of "cterm=" OR "ctermfg=" OR "ctermbg=". with coloring. To be portable, use only one of "cterm=" OR "ctermfg="
OR "ctermbg=".
ctermfg={color-nr} *highlight-ctermfg* *E421* ctermfg={color-nr} *highlight-ctermfg* *E421*
ctermbg={color-nr} *highlight-ctermbg* ctermbg={color-nr} *highlight-ctermbg*
@@ -5209,6 +5209,15 @@ load the syntax file.
The command also deletes the "b:current_syntax" variable, since no syntax is The command also deletes the "b:current_syntax" variable, since no syntax is
loaded after this command. loaded after this command.
To clean up specific syntax groups for the current buffer: >
:syntax clear {group-name} ..
This removes all patterns and keywords for {group-name}.
To clean up specific syntax group lists for the current buffer: >
:syntax clear @{grouplist-name} ..
This sets {grouplist-name}'s contents to an empty list.
*:syntax-off* *:syn-off*
If you want to disable syntax highlighting for all buffers, you need to remove If you want to disable syntax highlighting for all buffers, you need to remove
the autocommands that load the syntax files: > the autocommands that load the syntax files: >
:syntax off :syntax off
@@ -5218,14 +5227,6 @@ What this command actually does, is executing the command >
See the "nosyntax.vim" file for details. Note that for this to work See the "nosyntax.vim" file for details. Note that for this to work
$VIMRUNTIME must be valid. See |$VIMRUNTIME|. $VIMRUNTIME must be valid. See |$VIMRUNTIME|.
To clean up specific syntax groups for the current buffer: >
:syntax clear {group-name} ..
This removes all patterns and keywords for {group-name}.
To clean up specific syntax group lists for the current buffer: >
:syntax clear @{grouplist-name} ..
This sets {grouplist-name}'s contents to an empty list.
*:syntax-reset* *:syn-reset* *:syntax-reset* *:syn-reset*
If you have changed the colors and messed them up, use this command to get the If you have changed the colors and messed them up, use this command to get the
defaults back: > defaults back: >

View File

@@ -149,6 +149,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'complete' options.txt /*'complete'* 'complete' options.txt /*'complete'*
'completefunc' options.txt /*'completefunc'* 'completefunc' options.txt /*'completefunc'*
'completeopt' options.txt /*'completeopt'* 'completeopt' options.txt /*'completeopt'*
'completeslash' options.txt /*'completeslash'*
'concealcursor' options.txt /*'concealcursor'* 'concealcursor' options.txt /*'concealcursor'*
'conceallevel' options.txt /*'conceallevel'* 'conceallevel' options.txt /*'conceallevel'*
'confirm' options.txt /*'confirm'* 'confirm' options.txt /*'confirm'*
@@ -169,6 +170,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'cscopetag' options.txt /*'cscopetag'* 'cscopetag' options.txt /*'cscopetag'*
'cscopetagorder' options.txt /*'cscopetagorder'* 'cscopetagorder' options.txt /*'cscopetagorder'*
'cscopeverbose' options.txt /*'cscopeverbose'* 'cscopeverbose' options.txt /*'cscopeverbose'*
'csl' options.txt /*'csl'*
'cspc' options.txt /*'cspc'* 'cspc' options.txt /*'cspc'*
'csprg' options.txt /*'csprg'* 'csprg' options.txt /*'csprg'*
'csqf' options.txt /*'csqf'* 'csqf' options.txt /*'csqf'*
@@ -455,6 +457,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'mis' options.txt /*'mis'* 'mis' options.txt /*'mis'*
'mkspellmem' options.txt /*'mkspellmem'* 'mkspellmem' options.txt /*'mkspellmem'*
'ml' options.txt /*'ml'* 'ml' options.txt /*'ml'*
'mle' options.txt /*'mle'*
'mls' options.txt /*'mls'* 'mls' options.txt /*'mls'*
'mm' options.txt /*'mm'* 'mm' options.txt /*'mm'*
'mmd' options.txt /*'mmd'* 'mmd' options.txt /*'mmd'*
@@ -462,6 +465,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'mmt' options.txt /*'mmt'* 'mmt' options.txt /*'mmt'*
'mod' options.txt /*'mod'* 'mod' options.txt /*'mod'*
'modeline' options.txt /*'modeline'* 'modeline' options.txt /*'modeline'*
'modelineexpr' options.txt /*'modelineexpr'*
'modelines' options.txt /*'modelines'* 'modelines' options.txt /*'modelines'*
'modifiable' options.txt /*'modifiable'* 'modifiable' options.txt /*'modifiable'*
'modified' options.txt /*'modified'* 'modified' options.txt /*'modified'*
@@ -617,8 +621,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'nomagic' options.txt /*'nomagic'* 'nomagic' options.txt /*'nomagic'*
'nomh' options.txt /*'nomh'* 'nomh' options.txt /*'nomh'*
'noml' options.txt /*'noml'* 'noml' options.txt /*'noml'*
'nomle' options.txt /*'nomle'*
'nomod' options.txt /*'nomod'* 'nomod' options.txt /*'nomod'*
'nomodeline' options.txt /*'nomodeline'* 'nomodeline' options.txt /*'nomodeline'*
'nomodelineexpr' options.txt /*'nomodelineexpr'*
'nomodifiable' options.txt /*'nomodifiable'* 'nomodifiable' options.txt /*'nomodifiable'*
'nomodified' options.txt /*'nomodified'* 'nomodified' options.txt /*'nomodified'*
'nomore' options.txt /*'nomore'* 'nomore' options.txt /*'nomore'*
@@ -771,6 +777,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'pp' options.txt /*'pp'* 'pp' options.txt /*'pp'*
'preserveindent' options.txt /*'preserveindent'* 'preserveindent' options.txt /*'preserveindent'*
'previewheight' options.txt /*'previewheight'* 'previewheight' options.txt /*'previewheight'*
'previewpopup' options.txt /*'previewpopup'*
'previewwindow' options.txt /*'previewwindow'* 'previewwindow' options.txt /*'previewwindow'*
'printdevice' options.txt /*'printdevice'* 'printdevice' options.txt /*'printdevice'*
'printencoding' options.txt /*'printencoding'* 'printencoding' options.txt /*'printencoding'*
@@ -785,6 +792,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'pumheight' options.txt /*'pumheight'* 'pumheight' options.txt /*'pumheight'*
'pumwidth' options.txt /*'pumwidth'* 'pumwidth' options.txt /*'pumwidth'*
'pvh' options.txt /*'pvh'* 'pvh' options.txt /*'pvh'*
'pvp' options.txt /*'pvp'*
'pvw' options.txt /*'pvw'* 'pvw' options.txt /*'pvw'*
'pw' options.txt /*'pw'* 'pw' options.txt /*'pw'*
'pythondll' options.txt /*'pythondll'* 'pythondll' options.txt /*'pythondll'*
@@ -1181,6 +1189,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'wb' options.txt /*'wb'* 'wb' options.txt /*'wb'*
'wc' options.txt /*'wc'* 'wc' options.txt /*'wc'*
'wcm' options.txt /*'wcm'* 'wcm' options.txt /*'wcm'*
'wcr' options.txt /*'wcr'*
'wd' options.txt /*'wd'* 'wd' options.txt /*'wd'*
'weirdinvert' options.txt /*'weirdinvert'* 'weirdinvert' options.txt /*'weirdinvert'*
'wfh' options.txt /*'wfh'* 'wfh' options.txt /*'wfh'*
@@ -1199,6 +1208,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'wildoptions' options.txt /*'wildoptions'* 'wildoptions' options.txt /*'wildoptions'*
'wim' options.txt /*'wim'* 'wim' options.txt /*'wim'*
'winaltkeys' options.txt /*'winaltkeys'* 'winaltkeys' options.txt /*'winaltkeys'*
'wincolor' options.txt /*'wincolor'*
'window' options.txt /*'window'* 'window' options.txt /*'window'*
'winfixheight' options.txt /*'winfixheight'* 'winfixheight' options.txt /*'winfixheight'*
'winfixwidth' options.txt /*'winfixwidth'* 'winfixwidth' options.txt /*'winfixwidth'*
@@ -1345,6 +1355,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+scrollbind various.txt /*+scrollbind* +scrollbind various.txt /*+scrollbind*
+signs various.txt /*+signs* +signs various.txt /*+signs*
+smartindent various.txt /*+smartindent* +smartindent various.txt /*+smartindent*
+sound various.txt /*+sound*
+spell various.txt /*+spell*
+startuptime various.txt /*+startuptime* +startuptime various.txt /*+startuptime*
+statusline various.txt /*+statusline* +statusline various.txt /*+statusline*
+sun_workshop various.txt /*+sun_workshop* +sun_workshop various.txt /*+sun_workshop*
@@ -2043,6 +2055,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:abclear map.txt /*:abclear* :abclear map.txt /*:abclear*
:abo windows.txt /*:abo* :abo windows.txt /*:abo*
:aboveleft windows.txt /*:aboveleft* :aboveleft windows.txt /*:aboveleft*
:addd quickfix.txt /*:addd*
:al windows.txt /*:al* :al windows.txt /*:al*
:all windows.txt /*:all* :all windows.txt /*:all*
:am gui.txt /*:am* :am gui.txt /*:am*
@@ -2051,6 +2064,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:anoremenu gui.txt /*:anoremenu* :anoremenu gui.txt /*:anoremenu*
:append insert.txt /*:append* :append insert.txt /*:append*
:ar editing.txt /*:ar* :ar editing.txt /*:ar*
:arg editing.txt /*:arg*
:arga editing.txt /*:arga* :arga editing.txt /*:arga*
:argadd editing.txt /*:argadd* :argadd editing.txt /*:argadd*
:argd editing.txt /*:argd* :argd editing.txt /*:argd*
@@ -2103,6 +2117,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:bp windows.txt /*:bp* :bp windows.txt /*:bp*
:bprevious windows.txt /*:bprevious* :bprevious windows.txt /*:bprevious*
:br windows.txt /*:br* :br windows.txt /*:br*
:bre windows.txt /*:bre*
:brea eval.txt /*:brea* :brea eval.txt /*:brea*
:break eval.txt /*:break* :break eval.txt /*:break*
:breaka repeat.txt /*:breaka* :breaka repeat.txt /*:breaka*
@@ -2132,12 +2147,14 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:cNf quickfix.txt /*:cNf* :cNf quickfix.txt /*:cNf*
:cNfile quickfix.txt /*:cNfile* :cNfile quickfix.txt /*:cNfile*
:ca map.txt /*:ca* :ca map.txt /*:ca*
:cab map.txt /*:cab*
:cabbrev map.txt /*:cabbrev* :cabbrev map.txt /*:cabbrev*
:cabc map.txt /*:cabc* :cabc map.txt /*:cabc*
:cabclear map.txt /*:cabclear* :cabclear map.txt /*:cabclear*
:cabo quickfix.txt /*:cabo* :cabo quickfix.txt /*:cabo*
:cabove quickfix.txt /*:cabove* :cabove quickfix.txt /*:cabove*
:cad quickfix.txt /*:cad* :cad quickfix.txt /*:cad*
:cadd quickfix.txt /*:cadd*
:caddbuffer quickfix.txt /*:caddbuffer* :caddbuffer quickfix.txt /*:caddbuffer*
:cadde quickfix.txt /*:cadde* :cadde quickfix.txt /*:cadde*
:caddexpr quickfix.txt /*:caddexpr* :caddexpr quickfix.txt /*:caddexpr*
@@ -2184,6 +2201,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:chd editing.txt /*:chd* :chd editing.txt /*:chd*
:chdir editing.txt /*:chdir* :chdir editing.txt /*:chdir*
:che tagsrch.txt /*:che* :che tagsrch.txt /*:che*
:chec tagsrch.txt /*:chec*
:check tagsrch.txt /*:check*
:checkpath tagsrch.txt /*:checkpath* :checkpath tagsrch.txt /*:checkpath*
:checkt editing.txt /*:checkt* :checkt editing.txt /*:checkt*
:checktime editing.txt /*:checktime* :checktime editing.txt /*:checktime*
@@ -2205,12 +2224,14 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:cme gui.txt /*:cme* :cme gui.txt /*:cme*
:cmenu gui.txt /*:cmenu* :cmenu gui.txt /*:cmenu*
:cn quickfix.txt /*:cn* :cn quickfix.txt /*:cn*
:cne quickfix.txt /*:cne*
:cnew quickfix.txt /*:cnew* :cnew quickfix.txt /*:cnew*
:cnewer quickfix.txt /*:cnewer* :cnewer quickfix.txt /*:cnewer*
:cnext quickfix.txt /*:cnext* :cnext quickfix.txt /*:cnext*
:cnf quickfix.txt /*:cnf* :cnf quickfix.txt /*:cnf*
:cnfile quickfix.txt /*:cnfile* :cnfile quickfix.txt /*:cnfile*
:cno map.txt /*:cno* :cno map.txt /*:cno*
:cnor map.txt /*:cnor*
:cnorea map.txt /*:cnorea* :cnorea map.txt /*:cnorea*
:cnoreabbrev map.txt /*:cnoreabbrev* :cnoreabbrev map.txt /*:cnoreabbrev*
:cnoremap map.txt /*:cnoremap* :cnoremap map.txt /*:cnoremap*
@@ -2244,6 +2265,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:con eval.txt /*:con* :con eval.txt /*:con*
:conf editing.txt /*:conf* :conf editing.txt /*:conf*
:confirm editing.txt /*:confirm* :confirm editing.txt /*:confirm*
:cons eval.txt /*:cons*
:const eval.txt /*:const*
:continue eval.txt /*:continue* :continue eval.txt /*:continue*
:cope quickfix.txt /*:cope* :cope quickfix.txt /*:cope*
:copen quickfix.txt /*:copen* :copen quickfix.txt /*:copen*
@@ -2261,6 +2284,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:cscope if_cscop.txt /*:cscope* :cscope if_cscop.txt /*:cscope*
:cstag if_cscop.txt /*:cstag* :cstag if_cscop.txt /*:cstag*
:cu map.txt /*:cu* :cu map.txt /*:cu*
:cun map.txt /*:cun*
:cuna map.txt /*:cuna* :cuna map.txt /*:cuna*
:cunabbrev map.txt /*:cunabbrev* :cunabbrev map.txt /*:cunabbrev*
:cunmap map.txt /*:cunmap* :cunmap map.txt /*:cunmap*
@@ -2285,6 +2309,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:delmarks motion.txt /*:delmarks* :delmarks motion.txt /*:delmarks*
:di change.txt /*:di* :di change.txt /*:di*
:dif diff.txt /*:dif* :dif diff.txt /*:dif*
:diff diff.txt /*:diff*
:diffg diff.txt /*:diffg* :diffg diff.txt /*:diffg*
:diffget diff.txt /*:diffget* :diffget diff.txt /*:diffget*
:diffo diff.txt /*:diffo* :diffo diff.txt /*:diffo*
@@ -2308,6 +2333,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:dlist tagsrch.txt /*:dlist* :dlist tagsrch.txt /*:dlist*
:do autocmd.txt /*:do* :do autocmd.txt /*:do*
:doau autocmd.txt /*:doau* :doau autocmd.txt /*:doau*
:doaut autocmd.txt /*:doaut*
:doautoa autocmd.txt /*:doautoa* :doautoa autocmd.txt /*:doautoa*
:doautoall autocmd.txt /*:doautoall* :doautoall autocmd.txt /*:doautoall*
:doautocmd autocmd.txt /*:doautocmd* :doautocmd autocmd.txt /*:doautocmd*
@@ -2342,6 +2368,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:em gui.txt /*:em* :em gui.txt /*:em*
:emenu gui.txt /*:emenu* :emenu gui.txt /*:emenu*
:en eval.txt /*:en* :en eval.txt /*:en*
:end eval.txt /*:end*
:endf eval.txt /*:endf* :endf eval.txt /*:endf*
:endfo eval.txt /*:endfo* :endfo eval.txt /*:endfo*
:endfor eval.txt /*:endfor* :endfor eval.txt /*:endfor*
@@ -2355,6 +2382,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:ene! editing.txt /*:ene!* :ene! editing.txt /*:ene!*
:enew editing.txt /*:enew* :enew editing.txt /*:enew*
:enew! editing.txt /*:enew!* :enew! editing.txt /*:enew!*
:eval eval.txt /*:eval*
:ex editing.txt /*:ex* :ex editing.txt /*:ex*
:exe eval.txt /*:exe* :exe eval.txt /*:exe*
:exe-comment eval.txt /*:exe-comment* :exe-comment eval.txt /*:exe-comment*
@@ -2394,6 +2422,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:foldc fold.txt /*:foldc* :foldc fold.txt /*:foldc*
:foldclose fold.txt /*:foldclose* :foldclose fold.txt /*:foldclose*
:foldd fold.txt /*:foldd* :foldd fold.txt /*:foldd*
:folddo fold.txt /*:folddo*
:folddoc fold.txt /*:folddoc* :folddoc fold.txt /*:folddoc*
:folddoclosed fold.txt /*:folddoclosed* :folddoclosed fold.txt /*:folddoclosed*
:folddoopen fold.txt /*:folddoopen* :folddoopen fold.txt /*:folddoopen*
@@ -2465,6 +2494,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:in insert.txt /*:in* :in insert.txt /*:in*
:index index.txt /*:index* :index index.txt /*:index*
:ino map.txt /*:ino* :ino map.txt /*:ino*
:inor map.txt /*:inor*
:inorea map.txt /*:inorea* :inorea map.txt /*:inorea*
:inoreabbrev map.txt /*:inoreabbrev* :inoreabbrev map.txt /*:inoreabbrev*
:inoremap map.txt /*:inoremap* :inoremap map.txt /*:inoremap*
@@ -2488,6 +2518,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:jumps motion.txt /*:jumps* :jumps motion.txt /*:jumps*
:k motion.txt /*:k* :k motion.txt /*:k*
:kee motion.txt /*:kee* :kee motion.txt /*:kee*
:keep motion.txt /*:keep*
:keepa editing.txt /*:keepa* :keepa editing.txt /*:keepa*
:keepalt editing.txt /*:keepalt* :keepalt editing.txt /*:keepalt*
:keepj motion.txt /*:keepj* :keepj motion.txt /*:keepj*
@@ -2546,21 +2577,25 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:let-= eval.txt /*:let-=* :let-= eval.txt /*:let-=*
:let-@ eval.txt /*:let-@* :let-@ eval.txt /*:let-@*
:let-environment eval.txt /*:let-environment* :let-environment eval.txt /*:let-environment*
:let-heredoc eval.txt /*:let-heredoc*
:let-option eval.txt /*:let-option* :let-option eval.txt /*:let-option*
:let-register eval.txt /*:let-register* :let-register eval.txt /*:let-register*
:let-unpack eval.txt /*:let-unpack* :let-unpack eval.txt /*:let-unpack*
:let..= eval.txt /*:let..=* :let..= eval.txt /*:let..=*
:let.= eval.txt /*:let.=* :let.= eval.txt /*:let.=*
:let/= eval.txt /*:let\/=* :let/= eval.txt /*:let\/=*
:let=<< eval.txt /*:let=<<*
:letstar= eval.txt /*:letstar=* :letstar= eval.txt /*:letstar=*
:lex quickfix.txt /*:lex* :lex quickfix.txt /*:lex*
:lexpr quickfix.txt /*:lexpr* :lexpr quickfix.txt /*:lexpr*
:lf quickfix.txt /*:lf* :lf quickfix.txt /*:lf*
:lfdo quickfix.txt /*:lfdo* :lfdo quickfix.txt /*:lfdo*
:lfi quickfix.txt /*:lfi*
:lfile quickfix.txt /*:lfile* :lfile quickfix.txt /*:lfile*
:lfir quickfix.txt /*:lfir* :lfir quickfix.txt /*:lfir*
:lfirst quickfix.txt /*:lfirst* :lfirst quickfix.txt /*:lfirst*
:lg quickfix.txt /*:lg* :lg quickfix.txt /*:lg*
:lge quickfix.txt /*:lge*
:lgetb quickfix.txt /*:lgetb* :lgetb quickfix.txt /*:lgetb*
:lgetbuffer quickfix.txt /*:lgetbuffer* :lgetbuffer quickfix.txt /*:lgetbuffer*
:lgete quickfix.txt /*:lgete* :lgete quickfix.txt /*:lgete*
@@ -2581,6 +2616,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:lli quickfix.txt /*:lli* :lli quickfix.txt /*:lli*
:llist quickfix.txt /*:llist* :llist quickfix.txt /*:llist*
:lm map.txt /*:lm* :lm map.txt /*:lm*
:lma map.txt /*:lma*
:lmak quickfix.txt /*:lmak* :lmak quickfix.txt /*:lmak*
:lmake quickfix.txt /*:lmake* :lmake quickfix.txt /*:lmake*
:lmap map.txt /*:lmap* :lmap map.txt /*:lmap*
@@ -2600,6 +2636,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:loadkeymap mbyte.txt /*:loadkeymap* :loadkeymap mbyte.txt /*:loadkeymap*
:loadview starting.txt /*:loadview* :loadview starting.txt /*:loadview*
:loc motion.txt /*:loc* :loc motion.txt /*:loc*
:lock motion.txt /*:lock*
:lockmarks motion.txt /*:lockmarks* :lockmarks motion.txt /*:lockmarks*
:lockv eval.txt /*:lockv* :lockv eval.txt /*:lockv*
:lockvar eval.txt /*:lockvar* :lockvar eval.txt /*:lockvar*
@@ -2689,6 +2726,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:mksp spell.txt /*:mksp* :mksp spell.txt /*:mksp*
:mkspell spell.txt /*:mkspell* :mkspell spell.txt /*:mkspell*
:mkv starting.txt /*:mkv* :mkv starting.txt /*:mkv*
:mkvi starting.txt /*:mkvi*
:mkvie starting.txt /*:mkvie* :mkvie starting.txt /*:mkvie*
:mkview starting.txt /*:mkview* :mkview starting.txt /*:mkview*
:mkvimrc starting.txt /*:mkvimrc* :mkvimrc starting.txt /*:mkvimrc*
@@ -2983,6 +3021,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:setl options.txt /*:setl* :setl options.txt /*:setl*
:setlocal options.txt /*:setlocal* :setlocal options.txt /*:setlocal*
:sf windows.txt /*:sf* :sf windows.txt /*:sf*
:sfi windows.txt /*:sfi*
:sfind windows.txt /*:sfind* :sfind windows.txt /*:sfind*
:sfir windows.txt /*:sfir* :sfir windows.txt /*:sfir*
:sfirst windows.txt /*:sfirst* :sfirst windows.txt /*:sfirst*
@@ -3036,6 +3075,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:sno change.txt /*:sno* :sno change.txt /*:sno*
:snomagic change.txt /*:snomagic* :snomagic change.txt /*:snomagic*
:snor map.txt /*:snor* :snor map.txt /*:snor*
:snore map.txt /*:snore*
:snoremap map.txt /*:snoremap* :snoremap map.txt /*:snoremap*
:snoreme gui.txt /*:snoreme* :snoreme gui.txt /*:snoreme*
:snoremenu gui.txt /*:snoremenu* :snoremenu gui.txt /*:snoremenu*
@@ -3043,6 +3083,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:sor change.txt /*:sor* :sor change.txt /*:sor*
:sort change.txt /*:sort* :sort change.txt /*:sort*
:source repeat.txt /*:source* :source repeat.txt /*:source*
:source! repeat.txt /*:source!*
:source_crnl repeat.txt /*:source_crnl* :source_crnl repeat.txt /*:source_crnl*
:sp windows.txt /*:sp* :sp windows.txt /*:sp*
:spe spell.txt /*:spe* :spe spell.txt /*:spe*
@@ -3137,7 +3178,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:syn-matchgroup syntax.txt /*:syn-matchgroup* :syn-matchgroup syntax.txt /*:syn-matchgroup*
:syn-multi-line syntax.txt /*:syn-multi-line* :syn-multi-line syntax.txt /*:syn-multi-line*
:syn-nextgroup syntax.txt /*:syn-nextgroup* :syn-nextgroup syntax.txt /*:syn-nextgroup*
:syn-off usr_06.txt /*:syn-off* :syn-off syntax.txt /*:syn-off*
:syn-on syntax.txt /*:syn-on* :syn-on syntax.txt /*:syn-on*
:syn-oneline syntax.txt /*:syn-oneline* :syn-oneline syntax.txt /*:syn-oneline*
:syn-pattern syntax.txt /*:syn-pattern* :syn-pattern syntax.txt /*:syn-pattern*
@@ -3166,6 +3207,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:syncbind scroll.txt /*:syncbind* :syncbind scroll.txt /*:syncbind*
:syntax syntax.txt /*:syntax* :syntax syntax.txt /*:syntax*
:syntax-enable syntax.txt /*:syntax-enable* :syntax-enable syntax.txt /*:syntax-enable*
:syntax-off syntax.txt /*:syntax-off*
:syntax-on syntax.txt /*:syntax-on* :syntax-on syntax.txt /*:syntax-on*
:syntax-reset syntax.txt /*:syntax-reset* :syntax-reset syntax.txt /*:syntax-reset*
:syntime syntax.txt /*:syntime* :syntime syntax.txt /*:syntime*
@@ -3282,6 +3324,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:update editing.txt /*:update* :update editing.txt /*:update*
:v repeat.txt /*:v* :v repeat.txt /*:v*
:ve various.txt /*:ve* :ve various.txt /*:ve*
:ver various.txt /*:ver*
:verb various.txt /*:verb* :verb various.txt /*:verb*
:verbose various.txt /*:verbose* :verbose various.txt /*:verbose*
:verbose-cmd various.txt /*:verbose-cmd* :verbose-cmd various.txt /*:verbose-cmd*
@@ -3838,7 +3881,6 @@ E136 starting.txt /*E136*
E137 starting.txt /*E137* E137 starting.txt /*E137*
E138 starting.txt /*E138* E138 starting.txt /*E138*
E139 message.txt /*E139* E139 message.txt /*E139*
E14 cmdline.txt /*E14*
E140 message.txt /*E140* E140 message.txt /*E140*
E141 message.txt /*E141* E141 message.txt /*E141*
E142 message.txt /*E142* E142 message.txt /*E142*
@@ -3874,6 +3916,7 @@ E169 message.txt /*E169*
E17 message.txt /*E17* E17 message.txt /*E17*
E170 eval.txt /*E170* E170 eval.txt /*E170*
E171 eval.txt /*E171* E171 eval.txt /*E171*
E172 eval.txt /*E172*
E173 message.txt /*E173* E173 message.txt /*E173*
E174 map.txt /*E174* E174 map.txt /*E174*
E175 map.txt /*E175* E175 map.txt /*E175*
@@ -3927,6 +3970,7 @@ E218 autocmd.txt /*E218*
E219 message.txt /*E219* E219 message.txt /*E219*
E22 message.txt /*E22* E22 message.txt /*E22*
E220 message.txt /*E220* E220 message.txt /*E220*
E221 eval.txt /*E221*
E222 message.txt /*E222* E222 message.txt /*E222*
E223 options.txt /*E223* E223 options.txt /*E223*
E224 map.txt /*E224* E224 map.txt /*E224*
@@ -3949,12 +3993,14 @@ E239 sign.txt /*E239*
E24 message.txt /*E24* E24 message.txt /*E24*
E240 remote.txt /*E240* E240 remote.txt /*E240*
E241 eval.txt /*E241* E241 eval.txt /*E241*
E242 windows.txt /*E242*
E243 if_ole.txt /*E243* E243 if_ole.txt /*E243*
E244 gui.txt /*E244* E244 gui.txt /*E244*
E245 gui.txt /*E245* E245 gui.txt /*E245*
E246 autocmd.txt /*E246* E246 autocmd.txt /*E246*
E247 remote.txt /*E247* E247 remote.txt /*E247*
E248 remote.txt /*E248* E248 remote.txt /*E248*
E249 windows.txt /*E249*
E25 message.txt /*E25* E25 message.txt /*E25*
E250 options.txt /*E250* E250 options.txt /*E250*
E251 remote.txt /*E251* E251 remote.txt /*E251*
@@ -3981,6 +4027,7 @@ E270 if_ruby.txt /*E270*
E271 if_ruby.txt /*E271* E271 if_ruby.txt /*E271*
E272 if_ruby.txt /*E272* E272 if_ruby.txt /*E272*
E273 if_ruby.txt /*E273* E273 if_ruby.txt /*E273*
E274 eval.txt /*E274*
E277 remote.txt /*E277* E277 remote.txt /*E277*
E28 syntax.txt /*E28* E28 syntax.txt /*E28*
E280 if_tcl.txt /*E280* E280 if_tcl.txt /*E280*
@@ -4643,12 +4690,12 @@ E909 eval.txt /*E909*
E91 options.txt /*E91* E91 options.txt /*E91*
E910 eval.txt /*E910* E910 eval.txt /*E910*
E911 eval.txt /*E911* E911 eval.txt /*E911*
E912 eval.txt /*E912* E912 channel.txt /*E912*
E913 eval.txt /*E913* E913 eval.txt /*E913*
E914 eval.txt /*E914* E914 eval.txt /*E914*
E915 channel.txt /*E915* E915 channel.txt /*E915*
E916 eval.txt /*E916* E916 channel.txt /*E916*
E917 eval.txt /*E917* E917 channel.txt /*E917*
E918 channel.txt /*E918* E918 channel.txt /*E918*
E919 repeat.txt /*E919* E919 repeat.txt /*E919*
E92 message.txt /*E92* E92 message.txt /*E92*
@@ -4688,25 +4735,26 @@ E95 message.txt /*E95*
E950 message.txt /*E950* E950 message.txt /*E950*
E951 pattern.txt /*E951* E951 pattern.txt /*E951*
E952 autocmd.txt /*E952* E952 autocmd.txt /*E952*
E953 eval.txt /*E953* E953 terminal.txt /*E953*
E954 options.txt /*E954* E954 options.txt /*E954*
E955 eval.txt /*E955* E955 terminal.txt /*E955*
E956 pattern.txt /*E956* E956 pattern.txt /*E956*
E957 eval.txt /*E957* E957 eval.txt /*E957*
E958 eval.txt /*E958* E958 terminal.txt /*E958*
E959 diff.txt /*E959*
E96 diff.txt /*E96* E96 diff.txt /*E96*
E960 options.txt /*E960* E960 options.txt /*E960*
E961 cmdline.txt /*E961* E961 cmdline.txt /*E961*
E962 eval.txt /*E962* E962 eval.txt /*E962*
E963 eval.txt /*E963* E963 eval.txt /*E963*
E964 eval.txt /*E964* E964 textprop.txt /*E964*
E965 eval.txt /*E965* E965 textprop.txt /*E965*
E966 eval.txt /*E966* E966 textprop.txt /*E966*
E967 textprop.txt /*E967* E967 textprop.txt /*E967*
E968 eval.txt /*E968* E968 textprop.txt /*E968*
E969 eval.txt /*E969* E969 textprop.txt /*E969*
E97 diff.txt /*E97* E97 diff.txt /*E97*
E970 eval.txt /*E970* E970 textprop.txt /*E970*
E971 textprop.txt /*E971* E971 textprop.txt /*E971*
E972 eval.txt /*E972* E972 eval.txt /*E972*
E973 eval.txt /*E973* E973 eval.txt /*E973*
@@ -4726,7 +4774,16 @@ E985 eval.txt /*E985*
E986 tagsrch.txt /*E986* E986 tagsrch.txt /*E986*
E987 tagsrch.txt /*E987* E987 tagsrch.txt /*E987*
E988 gui_w32.txt /*E988* E988 gui_w32.txt /*E988*
E989 eval.txt /*E989*
E99 diff.txt /*E99* E99 diff.txt /*E99*
E990 eval.txt /*E990*
E991 eval.txt /*E991*
E992 options.txt /*E992*
E993 popup.txt /*E993*
E994 eval.txt /*E994*
E995 eval.txt /*E995*
E996 eval.txt /*E996*
E997 popup.txt /*E997*
E999 repeat.txt /*E999* E999 repeat.txt /*E999*
EX intro.txt /*EX* EX intro.txt /*EX*
EXINIT starting.txt /*EXINIT* EXINIT starting.txt /*EXINIT*
@@ -4859,6 +4916,8 @@ P change.txt /*P*
PATHEXT eval.txt /*PATHEXT* PATHEXT eval.txt /*PATHEXT*
PEP8 filetype.txt /*PEP8* PEP8 filetype.txt /*PEP8*
PHP_BracesAtCodeLevel indent.txt /*PHP_BracesAtCodeLevel* PHP_BracesAtCodeLevel indent.txt /*PHP_BracesAtCodeLevel*
PHP_IndentFunctionCallParameters indent.txt /*PHP_IndentFunctionCallParameters*
PHP_IndentFunctionDeclarationParameters indent.txt /*PHP_IndentFunctionDeclarationParameters*
PHP_autoformatcomment indent.txt /*PHP_autoformatcomment* PHP_autoformatcomment indent.txt /*PHP_autoformatcomment*
PHP_default_indenting indent.txt /*PHP_default_indenting* PHP_default_indenting indent.txt /*PHP_default_indenting*
PHP_noArrowMatching indent.txt /*PHP_noArrowMatching* PHP_noArrowMatching indent.txt /*PHP_noArrowMatching*
@@ -5242,19 +5301,20 @@ asin() eval.txt /*asin()*
asm.vim syntax.txt /*asm.vim* asm.vim syntax.txt /*asm.vim*
asm68k syntax.txt /*asm68k* asm68k syntax.txt /*asm68k*
asmh8300.vim syntax.txt /*asmh8300.vim* asmh8300.vim syntax.txt /*asmh8300.vim*
assert-functions-details testing.txt /*assert-functions-details*
assert-return eval.txt /*assert-return* assert-return eval.txt /*assert-return*
assert_beeps() eval.txt /*assert_beeps()* assert_beeps() testing.txt /*assert_beeps()*
assert_equal() eval.txt /*assert_equal()* assert_equal() testing.txt /*assert_equal()*
assert_equalfile() eval.txt /*assert_equalfile()* assert_equalfile() testing.txt /*assert_equalfile()*
assert_exception() eval.txt /*assert_exception()* assert_exception() testing.txt /*assert_exception()*
assert_fails() eval.txt /*assert_fails()* assert_fails() testing.txt /*assert_fails()*
assert_false() eval.txt /*assert_false()* assert_false() testing.txt /*assert_false()*
assert_inrange() eval.txt /*assert_inrange()* assert_inrange() testing.txt /*assert_inrange()*
assert_match() eval.txt /*assert_match()* assert_match() testing.txt /*assert_match()*
assert_notequal() eval.txt /*assert_notequal()* assert_notequal() testing.txt /*assert_notequal()*
assert_notmatch() eval.txt /*assert_notmatch()* assert_notmatch() testing.txt /*assert_notmatch()*
assert_report() eval.txt /*assert_report()* assert_report() testing.txt /*assert_report()*
assert_true() eval.txt /*assert_true()* assert_true() testing.txt /*assert_true()*
at motion.txt /*at* at motion.txt /*at*
atan() eval.txt /*atan()* atan() eval.txt /*atan()*
atan2() eval.txt /*atan2()* atan2() eval.txt /*atan2()*
@@ -5371,6 +5431,7 @@ break-finally eval.txt /*break-finally*
browse() eval.txt /*browse()* browse() eval.txt /*browse()*
browsedir() eval.txt /*browsedir()* browsedir() eval.txt /*browsedir()*
browsefilter editing.txt /*browsefilter* browsefilter editing.txt /*browsefilter*
bufadd() eval.txt /*bufadd()*
bufexists() eval.txt /*bufexists()* bufexists() eval.txt /*bufexists()*
buffer-functions usr_41.txt /*buffer-functions* buffer-functions usr_41.txt /*buffer-functions*
buffer-hidden windows.txt /*buffer-hidden* buffer-hidden windows.txt /*buffer-hidden*
@@ -5383,6 +5444,7 @@ buffer_number() eval.txt /*buffer_number()*
buffers windows.txt /*buffers* buffers windows.txt /*buffers*
buffers-menu gui.txt /*buffers-menu* buffers-menu gui.txt /*buffers-menu*
buflisted() eval.txt /*buflisted()* buflisted() eval.txt /*buflisted()*
bufload() eval.txt /*bufload()*
bufloaded() eval.txt /*bufloaded()* bufloaded() eval.txt /*bufloaded()*
bufname() eval.txt /*bufname()* bufname() eval.txt /*bufname()*
bufnr() eval.txt /*bufnr()* bufnr() eval.txt /*bufnr()*
@@ -5523,24 +5585,24 @@ cc change.txt /*cc*
ceil() eval.txt /*ceil()* ceil() eval.txt /*ceil()*
cfilter-plugin quickfix.txt /*cfilter-plugin* cfilter-plugin quickfix.txt /*cfilter-plugin*
ch.vim syntax.txt /*ch.vim* ch.vim syntax.txt /*ch.vim*
ch_canread() eval.txt /*ch_canread()* ch_canread() channel.txt /*ch_canread()*
ch_close() eval.txt /*ch_close()* ch_close() channel.txt /*ch_close()*
ch_close_in() eval.txt /*ch_close_in()* ch_close_in() channel.txt /*ch_close_in()*
ch_evalexpr() eval.txt /*ch_evalexpr()* ch_evalexpr() channel.txt /*ch_evalexpr()*
ch_evalraw() eval.txt /*ch_evalraw()* ch_evalraw() channel.txt /*ch_evalraw()*
ch_getbufnr() eval.txt /*ch_getbufnr()* ch_getbufnr() channel.txt /*ch_getbufnr()*
ch_getjob() eval.txt /*ch_getjob()* ch_getjob() channel.txt /*ch_getjob()*
ch_info() eval.txt /*ch_info()* ch_info() channel.txt /*ch_info()*
ch_log() eval.txt /*ch_log()* ch_log() channel.txt /*ch_log()*
ch_logfile() eval.txt /*ch_logfile()* ch_logfile() channel.txt /*ch_logfile()*
ch_open() eval.txt /*ch_open()* ch_open() channel.txt /*ch_open()*
ch_read() eval.txt /*ch_read()* ch_read() channel.txt /*ch_read()*
ch_readblob() eval.txt /*ch_readblob()* ch_readblob() channel.txt /*ch_readblob()*
ch_readraw() eval.txt /*ch_readraw()* ch_readraw() channel.txt /*ch_readraw()*
ch_sendexpr() eval.txt /*ch_sendexpr()* ch_sendexpr() channel.txt /*ch_sendexpr()*
ch_sendraw() eval.txt /*ch_sendraw()* ch_sendraw() channel.txt /*ch_sendraw()*
ch_setoptions() eval.txt /*ch_setoptions()* ch_setoptions() channel.txt /*ch_setoptions()*
ch_status() eval.txt /*ch_status()* ch_status() channel.txt /*ch_status()*
change-list-jumps motion.txt /*change-list-jumps* change-list-jumps motion.txt /*change-list-jumps*
change-name tips.txt /*change-name* change-name tips.txt /*change-name*
change-tabs change.txt /*change-tabs* change-tabs change.txt /*change-tabs*
@@ -5575,6 +5637,7 @@ channel-commands channel.txt /*channel-commands*
channel-demo channel.txt /*channel-demo* channel-demo channel.txt /*channel-demo*
channel-drop channel.txt /*channel-drop* channel-drop channel.txt /*channel-drop*
channel-functions usr_41.txt /*channel-functions* channel-functions usr_41.txt /*channel-functions*
channel-functions-details channel.txt /*channel-functions-details*
channel-mode channel.txt /*channel-mode* channel-mode channel.txt /*channel-mode*
channel-more channel.txt /*channel-more* channel-more channel.txt /*channel-more*
channel-noblock channel.txt /*channel-noblock* channel-noblock channel.txt /*channel-noblock*
@@ -6096,6 +6159,7 @@ exp() eval.txt /*exp()*
expand() eval.txt /*expand()* expand() eval.txt /*expand()*
expand-env options.txt /*expand-env* expand-env options.txt /*expand-env*
expand-environment-var options.txt /*expand-environment-var* expand-environment-var options.txt /*expand-environment-var*
expandcmd() eval.txt /*expandcmd()*
expr eval.txt /*expr* expr eval.txt /*expr*
expr-! eval.txt /*expr-!* expr-! eval.txt /*expr-!*
expr-!= eval.txt /*expr-!=* expr-!= eval.txt /*expr-!=*
@@ -6390,6 +6454,7 @@ ft-ptcap-syntax syntax.txt /*ft-ptcap-syntax*
ft-python-indent indent.txt /*ft-python-indent* ft-python-indent indent.txt /*ft-python-indent*
ft-python-plugin filetype.txt /*ft-python-plugin* ft-python-plugin filetype.txt /*ft-python-plugin*
ft-python-syntax syntax.txt /*ft-python-syntax* ft-python-syntax syntax.txt /*ft-python-syntax*
ft-qf-plugin filetype.txt /*ft-qf-plugin*
ft-quake-syntax syntax.txt /*ft-quake-syntax* ft-quake-syntax syntax.txt /*ft-quake-syntax*
ft-r-indent indent.txt /*ft-r-indent* ft-r-indent indent.txt /*ft-r-indent*
ft-r-syntax syntax.txt /*ft-r-syntax* ft-r-syntax syntax.txt /*ft-r-syntax*
@@ -6477,6 +6542,7 @@ g:Netrw_UserMaps pi_netrw.txt /*g:Netrw_UserMaps*
g:Netrw_corehandler pi_netrw.txt /*g:Netrw_corehandler* g:Netrw_corehandler pi_netrw.txt /*g:Netrw_corehandler*
g:Netrw_funcref pi_netrw.txt /*g:Netrw_funcref* g:Netrw_funcref pi_netrw.txt /*g:Netrw_funcref*
g:actual_curbuf options.txt /*g:actual_curbuf* g:actual_curbuf options.txt /*g:actual_curbuf*
g:actual_curwin options.txt /*g:actual_curwin*
g:ada#Comment ft_ada.txt /*g:ada#Comment* g:ada#Comment ft_ada.txt /*g:ada#Comment*
g:ada#Ctags_Kinds ft_ada.txt /*g:ada#Ctags_Kinds* g:ada#Ctags_Kinds ft_ada.txt /*g:ada#Ctags_Kinds*
g:ada#DotWordRegex ft_ada.txt /*g:ada#DotWordRegex* g:ada#DotWordRegex ft_ada.txt /*g:ada#DotWordRegex*
@@ -6667,6 +6733,7 @@ g:rustfmt_autosave ft_rust.txt /*g:rustfmt_autosave*
g:rustfmt_command ft_rust.txt /*g:rustfmt_command* g:rustfmt_command ft_rust.txt /*g:rustfmt_command*
g:rustfmt_fail_silently ft_rust.txt /*g:rustfmt_fail_silently* g:rustfmt_fail_silently ft_rust.txt /*g:rustfmt_fail_silently*
g:rustfmt_options ft_rust.txt /*g:rustfmt_options* g:rustfmt_options ft_rust.txt /*g:rustfmt_options*
g:statusline_winid options.txt /*g:statusline_winid*
g:syntax_on syntax.txt /*g:syntax_on* g:syntax_on syntax.txt /*g:syntax_on*
g:tar_browseoptions pi_tar.txt /*g:tar_browseoptions* g:tar_browseoptions pi_tar.txt /*g:tar_browseoptions*
g:tar_cmd pi_tar.txt /*g:tar_cmd* g:tar_cmd pi_tar.txt /*g:tar_cmd*
@@ -7308,6 +7375,7 @@ job-err_cb channel.txt /*job-err_cb*
job-err_io channel.txt /*job-err_io* job-err_io channel.txt /*job-err_io*
job-exit_cb channel.txt /*job-exit_cb* job-exit_cb channel.txt /*job-exit_cb*
job-functions usr_41.txt /*job-functions* job-functions usr_41.txt /*job-functions*
job-functions-details channel.txt /*job-functions-details*
job-in_io channel.txt /*job-in_io* job-in_io channel.txt /*job-in_io*
job-noblock channel.txt /*job-noblock* job-noblock channel.txt /*job-noblock*
job-options channel.txt /*job-options* job-options channel.txt /*job-options*
@@ -7319,12 +7387,12 @@ job-start-nochannel channel.txt /*job-start-nochannel*
job-stoponexit channel.txt /*job-stoponexit* job-stoponexit channel.txt /*job-stoponexit*
job-term channel.txt /*job-term* job-term channel.txt /*job-term*
job-timeout channel.txt /*job-timeout* job-timeout channel.txt /*job-timeout*
job_getchannel() eval.txt /*job_getchannel()* job_getchannel() channel.txt /*job_getchannel()*
job_info() eval.txt /*job_info()* job_info() channel.txt /*job_info()*
job_setoptions() eval.txt /*job_setoptions()* job_setoptions() channel.txt /*job_setoptions()*
job_start() eval.txt /*job_start()* job_start() channel.txt /*job_start()*
job_status() eval.txt /*job_status()* job_status() channel.txt /*job_status()*
job_stop() eval.txt /*job_stop()* job_stop() channel.txt /*job_stop()*
join() eval.txt /*join()* join() eval.txt /*join()*
js_decode() eval.txt /*js_decode()* js_decode() eval.txt /*js_decode()*
js_encode() eval.txt /*js_encode()* js_encode() eval.txt /*js_encode()*
@@ -7412,7 +7480,11 @@ list-index eval.txt /*list-index*
list-modification eval.txt /*list-modification* list-modification eval.txt /*list-modification*
list-repeat windows.txt /*list-repeat* list-repeat windows.txt /*list-repeat*
list2str() eval.txt /*list2str()* list2str() eval.txt /*list2str()*
listener_add() eval.txt /*listener_add()*
listener_flush() eval.txt /*listener_flush()*
listener_remove() eval.txt /*listener_remove()*
lite.vim syntax.txt /*lite.vim* lite.vim syntax.txt /*lite.vim*
literal-Dict eval.txt /*literal-Dict*
literal-string eval.txt /*literal-string* literal-string eval.txt /*literal-string*
lnum-variable eval.txt /*lnum-variable* lnum-variable eval.txt /*lnum-variable*
load-plugins starting.txt /*load-plugins* load-plugins starting.txt /*load-plugins*
@@ -7582,6 +7654,7 @@ message-history message.txt /*message-history*
message.txt message.txt /*message.txt* message.txt message.txt /*message.txt*
messages message.txt /*messages* messages message.txt /*messages*
meta intro.txt /*meta* meta intro.txt /*meta*
method eval.txt /*method*
min() eval.txt /*min()* min() eval.txt /*min()*
missing-options vi_diff.txt /*missing-options* missing-options vi_diff.txt /*missing-options*
mkdir() eval.txt /*mkdir()* mkdir() eval.txt /*mkdir()*
@@ -7977,7 +8050,7 @@ new-search-path version6.txt /*new-search-path*
new-searchpat version6.txt /*new-searchpat* new-searchpat version6.txt /*new-searchpat*
new-session-files version5.txt /*new-session-files* new-session-files version5.txt /*new-session-files*
new-spell version7.txt /*new-spell* new-spell version7.txt /*new-spell*
new-style-testing eval.txt /*new-style-testing* new-style-testing testing.txt /*new-style-testing*
new-tab-pages version7.txt /*new-tab-pages* new-tab-pages version7.txt /*new-tab-pages*
new-terminal-window version8.txt /*new-terminal-window* new-terminal-window version8.txt /*new-terminal-window*
new-undo-branches version7.txt /*new-undo-branches* new-undo-branches version7.txt /*new-undo-branches*
@@ -8025,7 +8098,7 @@ ocaml.vim syntax.txt /*ocaml.vim*
octal eval.txt /*octal* octal eval.txt /*octal*
octal-nrformats options.txt /*octal-nrformats* octal-nrformats options.txt /*octal-nrformats*
octal-number eval.txt /*octal-number* octal-number eval.txt /*octal-number*
old-style-testing eval.txt /*old-style-testing* old-style-testing testing.txt /*old-style-testing*
oldfiles-variable eval.txt /*oldfiles-variable* oldfiles-variable eval.txt /*oldfiles-variable*
ole-activation if_ole.txt /*ole-activation* ole-activation if_ole.txt /*ole-activation*
ole-eval if_ole.txt /*ole-eval* ole-eval if_ole.txt /*ole-eval*
@@ -8049,6 +8122,7 @@ option-summary options.txt /*option-summary*
option-window options.txt /*option-window* option-window options.txt /*option-window*
option_restore() todo.txt /*option_restore()* option_restore() todo.txt /*option_restore()*
option_save() todo.txt /*option_save()* option_save() todo.txt /*option_save()*
optional-function-argument eval.txt /*optional-function-argument*
options options.txt /*options* options options.txt /*options*
options-changed version5.txt /*options-changed* options-changed version5.txt /*options-changed*
options-in-terminal terminal.txt /*options-in-terminal* options-in-terminal terminal.txt /*options-in-terminal*
@@ -8095,6 +8169,7 @@ paragraph motion.txt /*paragraph*
pascal.vim syntax.txt /*pascal.vim* pascal.vim syntax.txt /*pascal.vim*
patches-8 version8.txt /*patches-8* patches-8 version8.txt /*patches-8*
patches-8.1 version8.txt /*patches-8.1* patches-8.1 version8.txt /*patches-8.1*
patches-8.2 version8.txt /*patches-8.2*
pathshorten() eval.txt /*pathshorten()* pathshorten() eval.txt /*pathshorten()*
pattern pattern.txt /*pattern* pattern pattern.txt /*pattern*
pattern-atoms pattern.txt /*pattern-atoms* pattern-atoms pattern.txt /*pattern-atoms*
@@ -8164,8 +8239,49 @@ plugin-special usr_41.txt /*plugin-special*
pmbcs-option print.txt /*pmbcs-option* pmbcs-option print.txt /*pmbcs-option*
pmbfn-option print.txt /*pmbfn-option* pmbfn-option print.txt /*pmbfn-option*
popt-option print.txt /*popt-option* popt-option print.txt /*popt-option*
popup popup.txt /*popup*
popup-buffer popup.txt /*popup-buffer*
popup-callback popup.txt /*popup-callback*
popup-close popup.txt /*popup-close*
popup-examples popup.txt /*popup-examples*
popup-filter popup.txt /*popup-filter*
popup-function-details popup.txt /*popup-function-details*
popup-functions popup.txt /*popup-functions*
popup-intro popup.txt /*popup-intro*
popup-mapping popup.txt /*popup-mapping*
popup-mask popup.txt /*popup-mask*
popup-menu gui.txt /*popup-menu* popup-menu gui.txt /*popup-menu*
popup-menu-added version5.txt /*popup-menu-added* popup-menu-added version5.txt /*popup-menu-added*
popup-position popup.txt /*popup-position*
popup-props popup.txt /*popup-props*
popup-scrollbar popup.txt /*popup-scrollbar*
popup-usage popup.txt /*popup-usage*
popup-window popup.txt /*popup-window*
popup-window-functions usr_41.txt /*popup-window-functions*
popup.txt popup.txt /*popup.txt*
popup_atcursor() popup.txt /*popup_atcursor()*
popup_beval() popup.txt /*popup_beval()*
popup_beval_example popup.txt /*popup_beval_example*
popup_clear() popup.txt /*popup_clear()*
popup_close() popup.txt /*popup_close()*
popup_create() popup.txt /*popup_create()*
popup_create-arguments popup.txt /*popup_create-arguments*
popup_dialog() popup.txt /*popup_dialog()*
popup_dialog-example popup.txt /*popup_dialog-example*
popup_filter_menu() popup.txt /*popup_filter_menu()*
popup_filter_yesno() popup.txt /*popup_filter_yesno()*
popup_getoptions() popup.txt /*popup_getoptions()*
popup_getpos() popup.txt /*popup_getpos()*
popup_getpreview() popup.txt /*popup_getpreview()*
popup_hide() popup.txt /*popup_hide()*
popup_locate() popup.txt /*popup_locate()*
popup_menu() popup.txt /*popup_menu()*
popup_menu-shortcut-example popup.txt /*popup_menu-shortcut-example*
popup_move() popup.txt /*popup_move()*
popup_notification() popup.txt /*popup_notification()*
popup_setoptions() popup.txt /*popup_setoptions()*
popup_settext() popup.txt /*popup_settext()*
popup_show() popup.txt /*popup_show()*
popupmenu-completion insert.txt /*popupmenu-completion* popupmenu-completion insert.txt /*popupmenu-completion*
popupmenu-keys insert.txt /*popupmenu-keys* popupmenu-keys insert.txt /*popupmenu-keys*
ports-5.2 version5.txt /*ports-5.2* ports-5.2 version5.txt /*ports-5.2*
@@ -8185,6 +8301,7 @@ ppwiz.vim syntax.txt /*ppwiz.vim*
press-enter message.txt /*press-enter* press-enter message.txt /*press-enter*
press-return message.txt /*press-return* press-return message.txt /*press-return*
prevcount-variable eval.txt /*prevcount-variable* prevcount-variable eval.txt /*prevcount-variable*
preview-popup windows.txt /*preview-popup*
preview-window windows.txt /*preview-window* preview-window windows.txt /*preview-window*
prevnonblank() eval.txt /*prevnonblank()* prevnonblank() eval.txt /*prevnonblank()*
print-intro print.txt /*print-intro* print-intro print.txt /*print-intro*
@@ -8220,16 +8337,16 @@ prompt_setinterrupt() eval.txt /*prompt_setinterrupt()*
prompt_setprompt() eval.txt /*prompt_setprompt()* prompt_setprompt() eval.txt /*prompt_setprompt()*
promptbuffer-functions usr_41.txt /*promptbuffer-functions* promptbuffer-functions usr_41.txt /*promptbuffer-functions*
pronounce intro.txt /*pronounce* pronounce intro.txt /*pronounce*
prop_add() eval.txt /*prop_add()* prop_add() textprop.txt /*prop_add()*
prop_clear() eval.txt /*prop_clear()* prop_clear() textprop.txt /*prop_clear()*
prop_find() eval.txt /*prop_find()* prop_find() textprop.txt /*prop_find()*
prop_list() eval.txt /*prop_list()* prop_list() textprop.txt /*prop_list()*
prop_remove() eval.txt /*prop_remove()* prop_remove() textprop.txt /*prop_remove()*
prop_type_add() eval.txt /*prop_type_add()* prop_type_add() textprop.txt /*prop_type_add()*
prop_type_change() eval.txt /*prop_type_change()* prop_type_change() textprop.txt /*prop_type_change()*
prop_type_delete() eval.txt /*prop_type_delete()* prop_type_delete() textprop.txt /*prop_type_delete()*
prop_type_get() eval.txt /*prop_type_get()* prop_type_get() textprop.txt /*prop_type_get()*
prop_type_list() eval.txt /*prop_type_list()* prop_type_list() textprop.txt /*prop_type_list()*
psql ft_sql.txt /*psql* psql ft_sql.txt /*psql*
ptcap.vim syntax.txt /*ptcap.vim* ptcap.vim syntax.txt /*ptcap.vim*
pterm-mouse options.txt /*pterm-mouse* pterm-mouse options.txt /*pterm-mouse*
@@ -8290,6 +8407,7 @@ q repeat.txt /*q*
q/ cmdline.txt /*q\/* q/ cmdline.txt /*q\/*
q: cmdline.txt /*q:* q: cmdline.txt /*q:*
q? cmdline.txt /*q?* q? cmdline.txt /*q?*
qf.vim filetype.txt /*qf.vim*
qnx os_qnx.txt /*qnx* qnx os_qnx.txt /*qnx*
qnx-compiling os_qnx.txt /*qnx-compiling* qnx-compiling os_qnx.txt /*qnx-compiling*
qnx-general os_qnx.txt /*qnx-general* qnx-general os_qnx.txt /*qnx-general*
@@ -8497,6 +8615,7 @@ screenattr() eval.txt /*screenattr()*
screenchar() eval.txt /*screenchar()* screenchar() eval.txt /*screenchar()*
screenchars() eval.txt /*screenchars()* screenchars() eval.txt /*screenchars()*
screencol() eval.txt /*screencol()* screencol() eval.txt /*screencol()*
screenpos() eval.txt /*screenpos()*
screenrow() eval.txt /*screenrow()* screenrow() eval.txt /*screenrow()*
screenstring() eval.txt /*screenstring()* screenstring() eval.txt /*screenstring()*
script usr_41.txt /*script* script usr_41.txt /*script*
@@ -8506,6 +8625,9 @@ script-variable eval.txt /*script-variable*
scriptnames-dictionary eval.txt /*scriptnames-dictionary* scriptnames-dictionary eval.txt /*scriptnames-dictionary*
scriptout-changed version4.txt /*scriptout-changed* scriptout-changed version4.txt /*scriptout-changed*
scriptversion eval.txt /*scriptversion* scriptversion eval.txt /*scriptversion*
scriptversion-1 eval.txt /*scriptversion-1*
scriptversion-2 eval.txt /*scriptversion-2*
scriptversion-3 eval.txt /*scriptversion-3*
scroll-binding scroll.txt /*scroll-binding* scroll-binding scroll.txt /*scroll-binding*
scroll-cursor scroll.txt /*scroll-cursor* scroll-cursor scroll.txt /*scroll-cursor*
scroll-down scroll.txt /*scroll-down* scroll-down scroll.txt /*scroll-down*
@@ -8586,19 +8708,22 @@ showing-menus gui.txt /*showing-menus*
sign-column sign.txt /*sign-column* sign-column sign.txt /*sign-column*
sign-commands sign.txt /*sign-commands* sign-commands sign.txt /*sign-commands*
sign-functions usr_41.txt /*sign-functions* sign-functions usr_41.txt /*sign-functions*
sign-functions-details sign.txt /*sign-functions-details*
sign-group sign.txt /*sign-group* sign-group sign.txt /*sign-group*
sign-identifier sign.txt /*sign-identifier* sign-identifier sign.txt /*sign-identifier*
sign-intro sign.txt /*sign-intro* sign-intro sign.txt /*sign-intro*
sign-priority sign.txt /*sign-priority* sign-priority sign.txt /*sign-priority*
sign-support sign.txt /*sign-support* sign-support sign.txt /*sign-support*
sign.txt sign.txt /*sign.txt* sign.txt sign.txt /*sign.txt*
sign_define() eval.txt /*sign_define()* sign_define() sign.txt /*sign_define()*
sign_getdefined() eval.txt /*sign_getdefined()* sign_getdefined() sign.txt /*sign_getdefined()*
sign_getplaced() eval.txt /*sign_getplaced()* sign_getplaced() sign.txt /*sign_getplaced()*
sign_jump() eval.txt /*sign_jump()* sign_jump() sign.txt /*sign_jump()*
sign_place() eval.txt /*sign_place()* sign_place() sign.txt /*sign_place()*
sign_undefine() eval.txt /*sign_undefine()* sign_placelist() sign.txt /*sign_placelist()*
sign_unplace() eval.txt /*sign_unplace()* sign_undefine() sign.txt /*sign_undefine()*
sign_unplace() sign.txt /*sign_unplace()*
sign_unplacelist() sign.txt /*sign_unplacelist()*
signs sign.txt /*signs* signs sign.txt /*signs*
simple-change change.txt /*simple-change* simple-change change.txt /*simple-change*
simplify() eval.txt /*simplify()* simplify() eval.txt /*simplify()*
@@ -8615,6 +8740,10 @@ slow-terminal term.txt /*slow-terminal*
socket-interface channel.txt /*socket-interface* socket-interface channel.txt /*socket-interface*
sort() eval.txt /*sort()* sort() eval.txt /*sort()*
sorting change.txt /*sorting* sorting change.txt /*sorting*
sound_clear() eval.txt /*sound_clear()*
sound_playevent() eval.txt /*sound_playevent()*
sound_playfile() eval.txt /*sound_playfile()*
sound_stop() eval.txt /*sound_stop()*
soundfold() eval.txt /*soundfold()* soundfold() eval.txt /*soundfold()*
space intro.txt /*space* space intro.txt /*space*
spec-customizing pi_spec.txt /*spec-customizing* spec-customizing pi_spec.txt /*spec-customizing*
@@ -9170,29 +9299,29 @@ term++open terminal.txt /*term++open*
term-dependent-settings term.txt /*term-dependent-settings* term-dependent-settings term.txt /*term-dependent-settings*
term-list syntax.txt /*term-list* term-list syntax.txt /*term-list*
term.txt term.txt /*term.txt* term.txt term.txt /*term.txt*
term_dumpdiff() eval.txt /*term_dumpdiff()* term_dumpdiff() terminal.txt /*term_dumpdiff()*
term_dumpload() eval.txt /*term_dumpload()* term_dumpload() terminal.txt /*term_dumpload()*
term_dumpwrite() eval.txt /*term_dumpwrite()* term_dumpwrite() terminal.txt /*term_dumpwrite()*
term_getaltscreen() eval.txt /*term_getaltscreen()* term_getaltscreen() terminal.txt /*term_getaltscreen()*
term_getansicolors() eval.txt /*term_getansicolors()* term_getansicolors() terminal.txt /*term_getansicolors()*
term_getattr() eval.txt /*term_getattr()* term_getattr() terminal.txt /*term_getattr()*
term_getcursor() eval.txt /*term_getcursor()* term_getcursor() terminal.txt /*term_getcursor()*
term_getjob() eval.txt /*term_getjob()* term_getjob() terminal.txt /*term_getjob()*
term_getline() eval.txt /*term_getline()* term_getline() terminal.txt /*term_getline()*
term_getscrolled() eval.txt /*term_getscrolled()* term_getscrolled() terminal.txt /*term_getscrolled()*
term_getsize() eval.txt /*term_getsize()* term_getsize() terminal.txt /*term_getsize()*
term_getstatus() eval.txt /*term_getstatus()* term_getstatus() terminal.txt /*term_getstatus()*
term_gettitle() eval.txt /*term_gettitle()* term_gettitle() terminal.txt /*term_gettitle()*
term_gettty() eval.txt /*term_gettty()* term_gettty() terminal.txt /*term_gettty()*
term_list() eval.txt /*term_list()* term_list() terminal.txt /*term_list()*
term_scrape() eval.txt /*term_scrape()* term_scrape() terminal.txt /*term_scrape()*
term_sendkeys() eval.txt /*term_sendkeys()* term_sendkeys() terminal.txt /*term_sendkeys()*
term_setansicolors() eval.txt /*term_setansicolors()* term_setansicolors() terminal.txt /*term_setansicolors()*
term_setkill() eval.txt /*term_setkill()* term_setkill() terminal.txt /*term_setkill()*
term_setrestore() eval.txt /*term_setrestore()* term_setrestore() terminal.txt /*term_setrestore()*
term_setsize() eval.txt /*term_setsize()* term_setsize() terminal.txt /*term_setsize()*
term_start() eval.txt /*term_start()* term_start() terminal.txt /*term_start()*
term_wait() eval.txt /*term_wait()* term_wait() terminal.txt /*term_wait()*
termcap term.txt /*termcap* termcap term.txt /*termcap*
termcap-changed version4.txt /*termcap-changed* termcap-changed version4.txt /*termcap-changed*
termcap-colors term.txt /*termcap-colors* termcap-colors term.txt /*termcap-colors*
@@ -9223,6 +9352,7 @@ terminal-debugger terminal.txt /*terminal-debugger*
terminal-diff terminal.txt /*terminal-diff* terminal-diff terminal.txt /*terminal-diff*
terminal-diffscreendump terminal.txt /*terminal-diffscreendump* terminal-diffscreendump terminal.txt /*terminal-diffscreendump*
terminal-dumptest terminal.txt /*terminal-dumptest* terminal-dumptest terminal.txt /*terminal-dumptest*
terminal-function-details terminal.txt /*terminal-function-details*
terminal-functions usr_41.txt /*terminal-functions* terminal-functions usr_41.txt /*terminal-functions*
terminal-info term.txt /*terminal-info* terminal-info term.txt /*terminal-info*
terminal-job-index index.txt /*terminal-job-index* terminal-job-index index.txt /*terminal-job-index*
@@ -9245,26 +9375,31 @@ terminal.txt terminal.txt /*terminal.txt*
terminfo term.txt /*terminfo* terminfo term.txt /*terminfo*
termresponse-variable eval.txt /*termresponse-variable* termresponse-variable eval.txt /*termresponse-variable*
test-functions usr_41.txt /*test-functions* test-functions usr_41.txt /*test-functions*
test_alloc_fail() eval.txt /*test_alloc_fail()* test-functions-details testing.txt /*test-functions-details*
test_autochdir() eval.txt /*test_autochdir()* test_alloc_fail() testing.txt /*test_alloc_fail()*
test_feedinput() eval.txt /*test_feedinput()* test_autochdir() testing.txt /*test_autochdir()*
test_garbagecollect_now() eval.txt /*test_garbagecollect_now()* test_feedinput() testing.txt /*test_feedinput()*
test_ignore_error() eval.txt /*test_ignore_error()* test_garbagecollect_now() testing.txt /*test_garbagecollect_now()*
test_null_blob() eval.txt /*test_null_blob()* test_garbagecollect_soon() testing.txt /*test_garbagecollect_soon()*
test_null_channel() eval.txt /*test_null_channel()* test_getvalue() testing.txt /*test_getvalue()*
test_null_dict() eval.txt /*test_null_dict()* test_ignore_error() testing.txt /*test_ignore_error()*
test_null_job() eval.txt /*test_null_job()* test_null_blob() testing.txt /*test_null_blob()*
test_null_list() eval.txt /*test_null_list()* test_null_channel() testing.txt /*test_null_channel()*
test_null_partial() eval.txt /*test_null_partial()* test_null_dict() testing.txt /*test_null_dict()*
test_null_string() eval.txt /*test_null_string()* test_null_job() testing.txt /*test_null_job()*
test_option_not_set() eval.txt /*test_option_not_set()* test_null_list() testing.txt /*test_null_list()*
test_override() eval.txt /*test_override()* test_null_partial() testing.txt /*test_null_partial()*
test_refcount() eval.txt /*test_refcount()* test_null_string() testing.txt /*test_null_string()*
test_scrollbar() eval.txt /*test_scrollbar()* test_option_not_set() testing.txt /*test_option_not_set()*
test_setmouse() eval.txt /*test_setmouse()* test_override() testing.txt /*test_override()*
test_settime() eval.txt /*test_settime()* test_refcount() testing.txt /*test_refcount()*
testing eval.txt /*testing* test_scrollbar() testing.txt /*test_scrollbar()*
test_setmouse() testing.txt /*test_setmouse()*
test_settime() testing.txt /*test_settime()*
testing testing.txt /*testing*
testing-support testing.txt /*testing-support*
testing-variable eval.txt /*testing-variable* testing-variable eval.txt /*testing-variable*
testing.txt testing.txt /*testing.txt*
tex-cchar syntax.txt /*tex-cchar* tex-cchar syntax.txt /*tex-cchar*
tex-cole syntax.txt /*tex-cole* tex-cole syntax.txt /*tex-cole*
tex-conceal syntax.txt /*tex-conceal* tex-conceal syntax.txt /*tex-conceal*
@@ -9460,8 +9595,11 @@ v:none eval.txt /*v:none*
v:null eval.txt /*v:null* v:null eval.txt /*v:null*
v:oldfiles eval.txt /*v:oldfiles* v:oldfiles eval.txt /*v:oldfiles*
v:operator eval.txt /*v:operator* v:operator eval.txt /*v:operator*
v:option_command eval.txt /*v:option_command*
v:option_new eval.txt /*v:option_new* v:option_new eval.txt /*v:option_new*
v:option_old eval.txt /*v:option_old* v:option_old eval.txt /*v:option_old*
v:option_oldglobal eval.txt /*v:option_oldglobal*
v:option_oldlocal eval.txt /*v:option_oldlocal*
v:option_type eval.txt /*v:option_type* v:option_type eval.txt /*v:option_type*
v:prevcount eval.txt /*v:prevcount* v:prevcount eval.txt /*v:prevcount*
v:profiling eval.txt /*v:profiling* v:profiling eval.txt /*v:profiling*
@@ -9501,6 +9639,7 @@ v:true eval.txt /*v:true*
v:val eval.txt /*v:val* v:val eval.txt /*v:val*
v:var eval.txt /*v:var* v:var eval.txt /*v:var*
v:version eval.txt /*v:version* v:version eval.txt /*v:version*
v:versionlong eval.txt /*v:versionlong*
v:vim_did_enter eval.txt /*v:vim_did_enter* v:vim_did_enter eval.txt /*v:vim_did_enter*
v:warningmsg eval.txt /*v:warningmsg* v:warningmsg eval.txt /*v:warningmsg*
v:windowid eval.txt /*v:windowid* v:windowid eval.txt /*v:windowid*
@@ -9659,6 +9798,7 @@ version7.txt version7.txt /*version7.txt*
version8.0 version8.txt /*version8.0* version8.0 version8.txt /*version8.0*
version8.1 version8.txt /*version8.1* version8.1 version8.txt /*version8.1*
version8.txt version8.txt /*version8.txt* version8.txt version8.txt /*version8.txt*
versionlong-variable eval.txt /*versionlong-variable*
vi intro.txt /*vi* vi intro.txt /*vi*
vi-differences vi_diff.txt /*vi-differences* vi-differences vi_diff.txt /*vi-differences*
vi-features vi_diff.txt /*vi-features* vi-features vi_diff.txt /*vi-features*
@@ -9804,6 +9944,7 @@ win32-vimrun gui_w32.txt /*win32-vimrun*
win32-win3.1 os_win32.txt /*win32-win3.1* win32-win3.1 os_win32.txt /*win32-win3.1*
win32-win95 os_win32.txt /*win32-win95* win32-win95 os_win32.txt /*win32-win95*
win32s os_win32.txt /*win32s* win32s os_win32.txt /*win32s*
win_execute() eval.txt /*win_execute()*
win_findbuf() eval.txt /*win_findbuf()* win_findbuf() eval.txt /*win_findbuf()*
win_getid() eval.txt /*win_getid()* win_getid() eval.txt /*win_getid()*
win_gotoid() eval.txt /*win_gotoid()* win_gotoid() eval.txt /*win_gotoid()*

View File

@@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 8.1. Last change: 2019 May 07 *tagsrch.txt* For Vim version 8.1. Last change: 2019 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -85,18 +85,21 @@ changed, to avoid confusion when using ":tnext". It is changed when using
":tag {name}". ":tag {name}".
The ignore-case matches are not found for a ":tag" command when: The ignore-case matches are not found for a ":tag" command when:
- the 'ignorecase' option is off and 'tagcase' is "followic" - 'tagcase' is "followic" and the 'ignorecase' option is off
- 'tagcase' is "followscs" and the 'ignorecase' option is off and the
'smartcase' option is off or the pattern contains an upper case character.
- 'tagcase' is "match" - 'tagcase' is "match"
- 'tagcase' is "smart" and the pattern contains an upper case character. - 'tagcase' is "smart" and the pattern contains an upper case character.
- 'tagcase' is "followscs" and 'smartcase' option is on and the pattern
contains an upper case character.
The ignore-case matches are found when: The ignore-case matches are found when:
- a pattern is used (starting with a "/") - a pattern is used (starting with a "/")
- for ":tselect" - for ":tselect"
- when 'tagcase' is "followic" and 'ignorecase' is off - when 'tagcase' is "followic" and 'ignorecase' is on
- when 'tagcase' is "match" - when 'tagcase' is "followscs" and 'ignorecase' is on or the 'smartcase'
- when 'tagcase' is "followscs" and the 'smartcase' option is off option is on and the pattern does not contain an upper case character
- when 'tagcase' is "ignore"
- when 'tagcase' is "smart" and the patter does not contain an upper case
character
Note that using ignore-case tag searching disables binary searching in the Note that using ignore-case tag searching disables binary searching in the
tags file, which causes a slowdown. This can be avoided by fold-case sorting tags file, which causes a slowdown. This can be avoided by fold-case sorting
@@ -503,7 +506,7 @@ Some programs that generate tags files:
ctags As found on most Unix systems. Only supports C. Only ctags As found on most Unix systems. Only supports C. Only
does the basic work. does the basic work.
*Exuberant_ctags* *Exuberant_ctags*
exuberant ctags This a very good one. It works for C, C++, Java, exuberant ctags This is a very good one. It works for C, C++, Java,
Fortran, Eiffel and others. It can generate tags for Fortran, Eiffel and others. It can generate tags for
many items. See http://ctags.sourceforge.net. many items. See http://ctags.sourceforge.net.
etags Connected to Emacs. Supports many languages. etags Connected to Emacs. Supports many languages.
@@ -824,7 +827,7 @@ CTRL-W d Open a new window, with the cursor on the first
(default: whole file). (default: whole file).
See |:search-args| for [/] and [!]. See |:search-args| for [/] and [!].
*:che* *:checkpath* *:che* *:chec* *:check* *:checkpath*
:che[ckpath] List all the included files that could not be found. :che[ckpath] List all the included files that could not be found.
:che[ckpath]! List all the included files. :che[ckpath]! List all the included files.

View File

@@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.1. Last change: 2019 May 05 *terminal.txt* For Vim version 8.1. Last change: 2019 Jul 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -12,35 +12,36 @@ The terminal feature is optional, use this to check if your Vim has it: >
If the result is "1" you have it. If the result is "1" you have it.
1. Basic use |terminal-use| 1. Basic use |terminal-use|
Typing |terminal-typing| Typing |terminal-typing|
Size and color |terminal-size-color| Size and color |terminal-size-color|
Syntax |:terminal| Command syntax |:terminal|
Resizing |terminal-resizing| Resizing |terminal-resizing|
Terminal Modes |Terminal-mode| Terminal Modes |Terminal-mode|
Cursor style |terminal-cursor-style| Cursor style |terminal-cursor-style|
Session |terminal-session| Session |terminal-session|
Special keys |terminal-special-keys| Special keys |terminal-special-keys|
Unix |terminal-unix| Unix |terminal-unix|
MS-Windows |terminal-ms-windows| MS-Windows |terminal-ms-windows|
2. Terminal communication |terminal-communication| 2. Terminal functions |terminal-function-details|
Vim to job: term_sendkeys() |terminal-to-job| 3. Terminal communication |terminal-communication|
Job to Vim: JSON API |terminal-api| Vim to job: term_sendkeys() |terminal-to-job|
Using the client-server feature |terminal-client-server| Job to Vim: JSON API |terminal-api|
3. Remote testing |terminal-testing| Using the client-server feature |terminal-client-server|
4. Diffing screen dumps |terminal-diff| 4. Remote testing |terminal-testing|
Writing a screen dump test for Vim |terminal-dumptest| 5. Diffing screen dumps |terminal-diff|
Creating a screen dump |terminal-screendump| Writing a screen dump test for Vim |terminal-dumptest|
Comparing screen dumps |terminal-diffscreendump| Creating a screen dump |terminal-screendump|
5. Debugging |terminal-debug| Comparing screen dumps |terminal-diffscreendump|
Starting |termdebug-starting| 6. Debugging |terminal-debug|
Example session |termdebug-example| Starting |termdebug-starting|
Stepping through code |termdebug-stepping| Example session |termdebug-example|
Inspecting variables |termdebug-variables| Stepping through code |termdebug-stepping|
Other commands |termdebug-commands| Inspecting variables |termdebug-variables|
Prompt mode |termdebug-prompt| Other commands |termdebug-commands|
Communication |termdebug-communication| Prompt mode |termdebug-prompt|
Customizing |termdebug-customizing| Communication |termdebug-communication|
Customizing |termdebug-customizing|
{only available when compiled with the |+terminal| feature} {only available when compiled with the |+terminal| feature}
The terminal feature requires the |+job| and |+channel| features. The terminal feature requires the |+job| and |+channel| features.
@@ -159,7 +160,7 @@ The |term_setansicolors()| function can be used to change the colors, and
|term_getansicolors()| to get the currently used colors. |term_getansicolors()| to get the currently used colors.
Syntax ~ Command syntax ~
:[range]ter[minal] [options] [command] *:ter* *:terminal* :[range]ter[minal] [options] [command] *:ter* *:terminal*
Open a new terminal window. Open a new terminal window.
@@ -426,8 +427,371 @@ ConPTY problems have been fixed "winpty" will be preferred.
Environment variables are used to pass information to the running job: Environment variables are used to pass information to the running job:
VIM_SERVERNAME v:servername VIM_SERVERNAME v:servername
============================================================================== ==============================================================================
2. Terminal communication *terminal-communication* 2. Terminal functions *terminal-function-details*
*term_dumpdiff()*
term_dumpdiff({filename}, {filename} [, {options}])
Open a new window displaying the difference between the two
files. The files must have been created with
|term_dumpwrite()|.
Returns the buffer number or zero when the diff fails.
Also see |terminal-diff|.
NOTE: this does not work with double-width characters yet.
The top part of the buffer contains the contents of the first
file, the bottom part of the buffer contains the contents of
the second file. The middle part shows the differences.
The parts are separated by a line of equals.
If the {options} argument is present, it must be a Dict with
these possible members:
"term_name" name to use for the buffer name, instead
of the first file name.
"term_rows" vertical size to use for the terminal,
instead of using 'termwinsize'
"term_cols" horizontal size to use for the terminal,
instead of using 'termwinsize'
"vertical" split the window vertically
"curwin" use the current window, do not split the
window; fails if the current buffer
cannot be |abandon|ed
"bufnr" do not create a new buffer, use the
existing buffer "bufnr". This buffer
must have been previously created with
term_dumpdiff() or term_dumpload() and
visible in a window.
"norestore" do not add the terminal window to a
session file
Each character in the middle part indicates a difference. If
there are multiple differences only the first in this list is
used:
X different character
w different width
f different foreground color
b different background color
a different attribute
+ missing position in first file
- missing position in second file
Using the "s" key the top and bottom parts are swapped. This
makes it easy to spot a difference.
*term_dumpload()*
term_dumpload({filename} [, {options}])
Open a new window displaying the contents of {filename}
The file must have been created with |term_dumpwrite()|.
Returns the buffer number or zero when it fails.
Also see |terminal-diff|.
For {options} see |term_dumpdiff()|.
*term_dumpwrite()*
term_dumpwrite({buf}, {filename} [, {options}])
Dump the contents of the terminal screen of {buf} in the file
{filename}. This uses a format that can be used with
|term_dumpload()| and |term_dumpdiff()|.
If the job in the terminal already finished an error is given:
*E958*
If {filename} already exists an error is given: *E953*
Also see |terminal-diff|.
{options} is a dictionary with these optional entries:
"rows" maximum number of rows to dump
"columns" maximum number of columns to dump
term_getaltscreen({buf}) *term_getaltscreen()*
Returns 1 if the terminal of {buf} is using the alternate
screen.
{buf} is used as with |term_getsize()|.
{only available when compiled with the |+terminal| feature}
term_getansicolors({buf}) *term_getansicolors()*
Get the ANSI color palette in use by terminal {buf}.
Returns a List of length 16 where each element is a String
representing a color in hexadecimal "#rrggbb" format.
Also see |term_setansicolors()| and |g:terminal_ansi_colors|.
If neither was used returns the default colors.
{buf} is used as with |term_getsize()|. If the buffer does not
exist or is not a terminal window, an empty list is returned.
{only available when compiled with the |+terminal| feature and
with GUI enabled and/or the |+termguicolors| feature}
term_getattr({attr}, {what}) *term_getattr()*
Given {attr}, a value returned by term_scrape() in the "attr"
item, return whether {what} is on. {what} can be one of:
bold
italic
underline
strike
reverse
{only available when compiled with the |+terminal| feature}
term_getcursor({buf}) *term_getcursor()*
Get the cursor position of terminal {buf}. Returns a list with
two numbers and a dictionary: [row, col, dict].
"row" and "col" are one based, the first screen cell is row
1, column 1. This is the cursor position of the terminal
itself, not of the Vim window.
"dict" can have these members:
"visible" one when the cursor is visible, zero when it
is hidden.
"blink" one when the cursor is blinking, zero when it
is not blinking.
"shape" 1 for a block cursor, 2 for underline and 3
for a vertical bar.
"color" color of the cursor, e.g. "green"
{buf} must be the buffer number of a terminal window. If the
buffer does not exist or is not a terminal window, an empty
list is returned.
{only available when compiled with the |+terminal| feature}
term_getjob({buf}) *term_getjob()*
Get the Job associated with terminal window {buf}.
{buf} is used as with |term_getsize()|.
Returns |v:null| when there is no job.
{only available when compiled with the |+terminal| feature}
term_getline({buf}, {row}) *term_getline()*
Get a line of text from the terminal window of {buf}.
{buf} is used as with |term_getsize()|.
The first line has {row} one. When {row} is "." the cursor
line is used. When {row} is invalid an empty string is
returned.
To get attributes of each character use |term_scrape()|.
{only available when compiled with the |+terminal| feature}
term_getscrolled({buf}) *term_getscrolled()*
Return the number of lines that scrolled to above the top of
terminal {buf}. This is the offset between the row number
used for |term_getline()| and |getline()|, so that: >
term_getline(buf, N)
< is equal to: >
getline(N + term_getscrolled(buf))
< (if that line exists).
{buf} is used as with |term_getsize()|.
{only available when compiled with the |+terminal| feature}
term_getsize({buf}) *term_getsize()*
Get the size of terminal {buf}. Returns a list with two
numbers: [rows, cols]. This is the size of the terminal, not
the window containing the terminal.
{buf} must be the buffer number of a terminal window. Use an
empty string for the current buffer. If the buffer does not
exist or is not a terminal window, an empty list is returned.
{only available when compiled with the |+terminal| feature}
term_getstatus({buf}) *term_getstatus()*
Get the status of terminal {buf}. This returns a comma
separated list of these items:
running job is running
finished job has finished
normal in Terminal-Normal mode
One of "running" or "finished" is always present.
{buf} must be the buffer number of a terminal window. If the
buffer does not exist or is not a terminal window, an empty
string is returned.
{only available when compiled with the |+terminal| feature}
term_gettitle({buf}) *term_gettitle()*
Get the title of terminal {buf}. This is the title that the
job in the terminal has set.
{buf} must be the buffer number of a terminal window. If the
buffer does not exist or is not a terminal window, an empty
string is returned.
{only available when compiled with the |+terminal| feature}
term_gettty({buf} [, {input}]) *term_gettty()*
Get the name of the controlling terminal associated with
terminal window {buf}. {buf} is used as with |term_getsize()|.
When {input} is omitted or 0, return the name for writing
(stdout). When {input} is 1 return the name for reading
(stdin). On UNIX, both return same name.
{only available when compiled with the |+terminal| feature}
term_list() *term_list()*
Return a list with the buffer numbers of all buffers for
terminal windows.
{only available when compiled with the |+terminal| feature}
term_scrape({buf}, {row}) *term_scrape()*
Get the contents of {row} of terminal screen of {buf}.
For {buf} see |term_getsize()|.
The first line has {row} one. When {row} is "." the cursor
line is used. When {row} is invalid an empty string is
returned.
Return a List containing a Dict for each screen cell:
"chars" character(s) at the cell
"fg" foreground color as #rrggbb
"bg" background color as #rrggbb
"attr" attributes of the cell, use |term_getattr()|
to get the individual flags
"width" cell width: 1 or 2
{only available when compiled with the |+terminal| feature}
term_sendkeys({buf}, {keys}) *term_sendkeys()*
Send keystrokes {keys} to terminal {buf}.
{buf} is used as with |term_getsize()|.
{keys} are translated as key sequences. For example, "\<c-x>"
means the character CTRL-X.
{only available when compiled with the |+terminal| feature}
term_setansicolors({buf}, {colors}) *term_setansicolors()*
Set the ANSI color palette used by terminal {buf}.
{colors} must be a List of 16 valid color names or hexadecimal
color codes, like those accepted by |highlight-guifg|.
Also see |term_getansicolors()| and |g:terminal_ansi_colors|.
The colors normally are:
0 black
1 dark red
2 dark green
3 brown
4 dark blue
5 dark magenta
6 dark cyan
7 light grey
8 dark grey
9 red
10 green
11 yellow
12 blue
13 magenta
14 cyan
15 white
These colors are used in the GUI and in the terminal when
'termguicolors' is set. When not using GUI colors (GUI mode
or 'termguicolors'), the terminal window always uses the 16
ANSI colors of the underlying terminal.
{only available when compiled with the |+terminal| feature and
with GUI enabled and/or the |+termguicolors| feature}
term_setkill({buf}, {how}) *term_setkill()*
When exiting Vim or trying to close the terminal window in
another way, {how} defines whether the job in the terminal can
be stopped.
When {how} is empty (the default), the job will not be
stopped, trying to exit will result in |E947|.
Otherwise, {how} specifies what signal to send to the job.
See |job_stop()| for the values.
After sending the signal Vim will wait for up to a second to
check that the job actually stopped.
term_setrestore({buf}, {command}) *term_setrestore()*
Set the command to write in a session file to restore the job
in this terminal. The line written in the session file is: >
terminal ++curwin ++cols=%d ++rows=%d {command}
< Make sure to escape the command properly.
Use an empty {command} to run 'shell'.
Use "NONE" to not restore this window.
{only available when compiled with the |+terminal| feature}
term_setsize({buf}, {rows}, {cols}) *term_setsize()* *E955*
Set the size of terminal {buf}. The size of the window
containing the terminal will also be adjusted, if possible.
If {rows} or {cols} is zero or negative, that dimension is not
changed.
{buf} must be the buffer number of a terminal window. Use an
empty string for the current buffer. If the buffer does not
exist or is not a terminal window, an error is given.
{only available when compiled with the |+terminal| feature}
term_start({cmd} [, {options}]) *term_start()*
Open a terminal window and run {cmd} in it.
{cmd} can be a string or a List, like with |job_start()|. The
string "NONE" can be used to open a terminal window without
starting a job, the pty of the terminal can be used by a
command like gdb.
Returns the buffer number of the terminal window. If {cmd}
cannot be executed the window does open and shows an error
message.
If opening the window fails zero is returned.
{options} are similar to what is used for |job_start()|, see
|job-options|. However, not all options can be used. These
are supported:
all timeout options
"stoponexit", "cwd", "env"
"callback", "out_cb", "err_cb", "exit_cb", "close_cb"
"in_io", "in_top", "in_bot", "in_name", "in_buf"
"out_io", "out_name", "out_buf", "out_modifiable", "out_msg"
"err_io", "err_name", "err_buf", "err_modifiable", "err_msg"
However, at least one of stdin, stdout or stderr must be
connected to the terminal. When I/O is connected to the
terminal then the callback function for that part is not used.
There are extra options:
"term_name" name to use for the buffer name, instead
of the command name.
"term_rows" vertical size to use for the terminal,
instead of using 'termwinsize'
"term_cols" horizontal size to use for the terminal,
instead of using 'termwinsize'
"vertical" split the window vertically; note that
other window position can be defined with
command modifiers, such as |:belowright|.
"curwin" use the current window, do not split the
window; fails if the current buffer
cannot be |abandon|ed
"hidden" do not open a window
"norestore" do not add the terminal window to a
session file
"term_kill" what to do when trying to close the
terminal window, see |term_setkill()|
"term_finish" What to do when the job is finished:
"close": close any windows
"open": open window if needed
Note that "open" can be interruptive.
See |term++close| and |term++open|.
"term_opencmd" command to use for opening the window when
"open" is used for "term_finish"; must
have "%d" where the buffer number goes,
e.g. "10split|buffer %d"; when not
specified "botright sbuf %d" is used
"eof_chars" Text to send after all buffer lines were
written to the terminal. When not set
CTRL-D is used on MS-Windows. For Python
use CTRL-Z or "exit()". For a shell use
"exit". A CR is always added.
"ansi_colors" A list of 16 color names or hex codes
defining the ANSI palette used in GUI
color modes. See |g:terminal_ansi_colors|.
"tty_type" (MS-Windows only): Specify which pty to
use. See 'termwintype' for the values.
{only available when compiled with the |+terminal| feature}
term_wait({buf} [, {time}]) *term_wait()*
Wait for pending updates of {buf} to be handled.
{buf} is used as with |term_getsize()|.
{time} is how long to wait for updates to arrive in msec. If
not set then 10 msec will be used.
{only available when compiled with the |+terminal| feature}
==============================================================================
3. Terminal communication *terminal-communication*
There are several ways to communicate with the job running in a terminal: There are several ways to communicate with the job running in a terminal:
- Use |term_sendkeys()| to send text and escape sequences from Vim to the job. - Use |term_sendkeys()| to send text and escape sequences from Vim to the job.
@@ -495,7 +859,8 @@ Currently supported commands:
directory, thus it's best to use the full path. directory, thus it's best to use the full path.
[options] is only used when opening a new window. If present, [options] is only used when opening a new window. If present,
it must be a Dict. Similarly to |++opt|, These entries are recognized: it must be a Dict. Similarly to |++opt|, These entries are
recognized:
"ff" file format: "dos", "mac" or "unix" "ff" file format: "dos", "mac" or "unix"
"fileformat" idem "fileformat" idem
"enc" overrides 'fileencoding' "enc" overrides 'fileencoding'
@@ -533,7 +898,7 @@ In the job you can then do something like: >
This will open the file "some_file.c" and put the cursor on line 123. This will open the file "some_file.c" and put the cursor on line 123.
============================================================================== ==============================================================================
3. Remote testing *terminal-testing* 4. Remote testing *terminal-testing*
Most Vim tests execute a script inside Vim. For some tests this does not Most Vim tests execute a script inside Vim. For some tests this does not
work, running the test interferes with the code being tested. To avoid this work, running the test interferes with the code being tested. To avoid this
@@ -548,7 +913,7 @@ Functions ~
============================================================================== ==============================================================================
4. Diffing screen dumps *terminal-diff* 5. Diffing screen dumps *terminal-diff*
In some cases it can be bothersome to test that Vim displays the right In some cases it can be bothersome to test that Vim displays the right
characters on the screen. E.g. with syntax highlighting. To make this characters on the screen. E.g. with syntax highlighting. To make this
@@ -649,7 +1014,7 @@ Alternatively, press "s" to swap the first and second dump. Do this several
times so that you can spot the difference in the context of the text. times so that you can spot the difference in the context of the text.
============================================================================== ==============================================================================
5. Debugging *terminal-debug* *terminal-debugger* 6. Debugging *terminal-debug* *terminal-debugger*
The Terminal debugging plugin can be used to debug a program with gdb and view The Terminal debugging plugin can be used to debug a program with gdb and view
the source code in a Vim window. Since this is completely contained inside the source code in a Vim window. Since this is completely contained inside
@@ -906,7 +1271,7 @@ When 'background' is "dark":
hi debugBreakpoint term=reverse ctermbg=red guibg=red hi debugBreakpoint term=reverse ctermbg=red guibg=red
Shorcuts *termdebug_shortcuts* Shortcuts *termdebug_shortcuts*
You can define your own shortcuts (mappings) to control gdb, that can work in You can define your own shortcuts (mappings) to control gdb, that can work in
any window, using the TermDebugSendCommand() function. Example: > any window, using the TermDebugSendCommand() function. Example: >

324
runtime/doc/testing.txt Normal file
View File

@@ -0,0 +1,324 @@
*testing.txt* For Vim version 8.1. Last change: 2019 Aug 04
VIM REFERENCE MANUAL by Bram Moolenaar
Testing Vim and Vim script *testing-support*
Expression evaluation is explained in |eval.txt|. This file goes into details
about writing tests in Vim script. This can be used for testing Vim itself
and for testing plugins.
1. Testing Vim |testing|
2. Test functions |test-functions-details|
3. Assert functions |assert-functions-details|
==============================================================================
1. Testing Vim *testing*
Vim can be tested after building it, usually with "make test".
The tests are located in the directory "src/testdir".
There are several types of tests added over time:
test33.in oldest, don't add any of these
test_something.in old style tests
test_something.vim new style tests
*new-style-testing*
New tests should be added as new style tests. These use functions such as
|assert_equal()| to keep the test commands and the expected result in one
place.
*old-style-testing*
In some cases an old style test needs to be used. E.g. when testing Vim
without the |+eval| feature.
Find more information in the file src/testdir/README.txt.
==============================================================================
2. Test functions *test-functions-details*
test_alloc_fail({id}, {countdown}, {repeat}) *test_alloc_fail()*
This is for testing: If the memory allocation with {id} is
called, then decrement {countdown}, and when it reaches zero
let memory allocation fail {repeat} times. When {repeat} is
smaller than one it fails one time.
test_autochdir() *test_autochdir()*
Set a flag to enable the effect of 'autochdir' before Vim
startup has finished.
test_feedinput({string}) *test_feedinput()*
Characters in {string} are queued for processing as if they
were typed by the user. This uses a low level input buffer.
This function works only when with |+unix| or GUI is running.
test_garbagecollect_now() *test_garbagecollect_now()*
Like garbagecollect(), but executed right away. This must
only be called directly to avoid any structure to exist
internally, and |v:testing| must have been set before calling
any function.
test_garbagecollect_soon() *test_garbagecollect_soon()*
Set the flag to call the garbagecollector as if in the main
loop. Only to be used in tests.
test_getvalue({name}) *test_getvalue()*
Get the value of an internal variable. These values for
{name} are supported:
need_fileinfo
test_ignore_error({expr}) *test_ignore_error()*
Ignore any error containing {expr}. A normal message is given
instead.
This is only meant to be used in tests, where catching the
error with try/catch cannot be used (because it skips over
following code).
{expr} is used literally, not as a pattern.
When the {expr} is the string "RESET" then the list of ignored
errors is made empty.
test_null_blob() *test_null_blob()*
Return a |Blob| that is null. Only useful for testing.
test_null_channel() *test_null_channel()*
Return a |Channel| that is null. Only useful for testing.
{only available when compiled with the +channel feature}
test_null_dict() *test_null_dict()*
Return a |Dict| that is null. Only useful for testing.
test_null_job() *test_null_job()*
Return a |Job| that is null. Only useful for testing.
{only available when compiled with the +job feature}
test_null_list() *test_null_list()*
Return a |List| that is null. Only useful for testing.
test_null_partial() *test_null_partial()*
Return a |Partial| that is null. Only useful for testing.
test_null_string() *test_null_string()*
Return a |String| that is null. Only useful for testing.
test_option_not_set({name}) *test_option_not_set()*
Reset the flag that indicates option {name} was set. Thus it
looks like it still has the default value. Use like this: >
set ambiwidth=double
call test_option_not_set('ambiwidth')
< Now the 'ambiwidth' option behaves like it was never changed,
even though the value is "double".
Only to be used for testing!
test_override({name}, {val}) *test_override()*
Overrides certain parts of Vim's internal processing to be able
to run tests. Only to be used for testing Vim!
The override is enabled when {val} is non-zero and removed
when {val} is zero.
Current supported values for name are:
name effect when {val} is non-zero ~
redraw disable the redrawing() function
redraw_flag ignore the RedrawingDisabled flag
char_avail disable the char_avail() function
starting reset the "starting" variable, see below
nfa_fail makes the NFA regexp engine fail to force a
fallback to the old engine
no_query_mouse do not query the mouse position for "dec"
terminals
no_wait_return set the "no_wait_return" flag. Not restored
with "ALL".
ALL clear all overrides ({val} is not used)
"starting" is to be used when a test should behave like
startup was done. Since the tests are run by sourcing a
script the "starting" variable is non-zero. This is usually a
good thing (tests run faster), but sometimes changes behavior
in a way that the test doesn't work properly.
When using: >
call test_override('starting', 1)
< The value of "starting" is saved. It is restored by: >
call test_override('starting', 0)
test_refcount({expr}) *test_refcount()*
Return the reference count of {expr}. When {expr} is of a
type that does not have a reference count, returns -1. Only
to be used for testing.
test_scrollbar({which}, {value}, {dragging}) *test_scrollbar()*
Pretend using scrollbar {which} to move it to position
{value}. {which} can be:
left Left scrollbar of the current window
right Right scrollbar of the current window
hor Horizontal scrollbar
For the vertical scrollbars {value} can be 1 to the
line-count of the buffer. For the horizontal scrollbar the
{value} can be between 1 and the maximum line length, assuming
'wrap' is not set.
When {dragging} is non-zero it's like dragging the scrollbar,
otherwise it's like clicking in the scrollbar.
Only works when the {which} scrollbar actually exists,
obviously only when using the GUI.
test_setmouse({row}, {col}) *test_setmouse()*
Set the mouse position to be used for the next mouse action.
{row} and {col} are one based.
For example: >
call test_setmouse(4, 20)
call feedkeys("\<LeftMouse>", "xt")
test_settime({expr}) *test_settime()*
Set the time Vim uses internally. Currently only used for
timestamps in the history, as they are used in viminfo, and
for undo.
Using a value of 1 makes Vim not sleep after a warning or
error message.
{expr} must evaluate to a number. When the value is zero the
normal behavior is restored.
==============================================================================
3. Assert functions *assert-functions-details*
assert_beeps({cmd}) *assert_beeps()*
Run {cmd} and add an error message to |v:errors| if it does
NOT produce a beep or visual bell.
Also see |assert_fails()| and |assert-return|.
*assert_equal()*
assert_equal({expected}, {actual} [, {msg}])
When {expected} and {actual} are not equal an error message is
added to |v:errors| and 1 is returned. Otherwise zero is
returned |assert-return|.
There is no automatic conversion, the String "4" is different
from the Number 4. And the number 4 is different from the
Float 4.0. The value of 'ignorecase' is not used here, case
always matters.
When {msg} is omitted an error in the form "Expected
{expected} but got {actual}" is produced.
Example: >
assert_equal('foo', 'bar')
< Will result in a string to be added to |v:errors|:
test.vim line 12: Expected 'foo' but got 'bar' ~
Can also be used as a |method|: >
mylist->assert_equal([1, 2, 3])
< *assert_equalfile()*
assert_equalfile({fname-one}, {fname-two})
When the files {fname-one} and {fname-two} do not contain
exactly the same text an error message is added to |v:errors|.
Also see |assert-return|.
When {fname-one} or {fname-two} does not exist the error will
mention that.
Mainly useful with |terminal-diff|.
assert_exception({error} [, {msg}]) *assert_exception()*
When v:exception does not contain the string {error} an error
message is added to |v:errors|. Also see |assert-return|.
This can be used to assert that a command throws an exception.
Using the error number, followed by a colon, avoids problems
with translations: >
try
commandthatfails
call assert_false(1, 'command should have failed')
catch
call assert_exception('E492:')
endtry
assert_fails({cmd} [, {error} [, {msg}]]) *assert_fails()*
Run {cmd} and add an error message to |v:errors| if it does
NOT produce an error. Also see |assert-return|.
When {error} is given it must match in |v:errmsg|.
Note that beeping is not considered an error, and some failing
commands only beep. Use |assert_beeps()| for those.
assert_false({actual} [, {msg}]) *assert_false()*
When {actual} is not false an error message is added to
|v:errors|, like with |assert_equal()|.
Also see |assert-return|.
A value is false when it is zero. When {actual} is not a
number the assert fails.
When {msg} is omitted an error in the form
"Expected False but got {actual}" is produced.
assert_inrange({lower}, {upper}, {actual} [, {msg}]) *assert_inrange()*
This asserts number and |Float| values. When {actual} is lower
than {lower} or higher than {upper} an error message is added
to |v:errors|. Also see |assert-return|.
When {msg} is omitted an error in the form
"Expected range {lower} - {upper}, but got {actual}" is
produced.
*assert_match()*
assert_match({pattern}, {actual} [, {msg}])
When {pattern} does not match {actual} an error message is
added to |v:errors|. Also see |assert-return|.
{pattern} is used as with |=~|: The matching is always done
like 'magic' was set and 'cpoptions' is empty, no matter what
the actual value of 'magic' or 'cpoptions' is.
{actual} is used as a string, automatic conversion applies.
Use "^" and "$" to match with the start and end of the text.
Use both to match the whole text.
When {msg} is omitted an error in the form
"Pattern {pattern} does not match {actual}" is produced.
Example: >
assert_match('^f.*o$', 'foobar')
< Will result in a string to be added to |v:errors|:
test.vim line 12: Pattern '^f.*o$' does not match 'foobar' ~
*assert_notequal()*
assert_notequal({expected}, {actual} [, {msg}])
The opposite of `assert_equal()`: add an error message to
|v:errors| when {expected} and {actual} are equal.
Also see |assert-return|.
Can also be used as a |method|: >
mylist->assert_notequal([1, 2, 3])
< *assert_notmatch()*
assert_notmatch({pattern}, {actual} [, {msg}])
The opposite of `assert_match()`: add an error message to
|v:errors| when {pattern} matches {actual}.
Also see |assert-return|.
assert_report({msg}) *assert_report()*
Report a test failure directly, using {msg}.
Always returns one.
assert_true({actual} [, {msg}]) *assert_true()*
When {actual} is not true an error message is added to
|v:errors|, like with |assert_equal()|.
Also see |assert-return|.
A value is TRUE when it is a non-zero number. When {actual}
is not a number the assert fails.
When {msg} is omitted an error in the form "Expected True but
got {actual}" is produced.
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*textprop.txt* For Vim version 8.1. Last change: 2019 May 06 *textprop.txt* For Vim version 8.1. Last change: 2019 Jul 20
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -12,7 +12,6 @@ What is not working yet:
- Adjusting column/length when inserting text - Adjusting column/length when inserting text
- Text properties spanning more than one line - Text properties spanning more than one line
- prop_find() - prop_find()
- callbacks when text properties are outdated
1. Introduction |text-prop-intro| 1. Introduction |text-prop-intro|
@@ -57,7 +56,7 @@ A text property normally has the name of a property type, which defines
how to highlight the text. The property type can have these entries: how to highlight the text. The property type can have these entries:
"highlight" name of the highlight group to use "highlight" name of the highlight group to use
"combine" when TRUE the text property highlighting is combined "combine" when TRUE the text property highlighting is combined
with any syntax highligting, when omitted or FALSE the with any syntax highlighting, when omitted or FALSE the
text property highlighting replaces the syntax text property highlighting replaces the syntax
highlighting highlighting
"priority" when properties overlap, the one with the highest "priority" when properties overlap, the one with the highest
@@ -117,6 +116,202 @@ prop_list({lnum} [, {props}) text properties in {lnum}
prop_remove({props} [, {lnum} [, {lnum-end}]]) prop_remove({props} [, {lnum} [, {lnum-end}]])
remove a text property remove a text property
*prop_add()* *E965*
prop_add({lnum}, {col}, {props})
Attach a text property at position {lnum}, {col}. {col} is
counted in bytes, use one for the first column.
If {lnum} is invalid an error is given. *E966*
If {col} is invalid an error is given. *E964*
{props} is a dictionary with these fields:
length length of text in bytes, can only be used
for a property that does not continue in
another line; can be zero
end_lnum line number for the end of text
end_col column just after the text; not used when
"length" is present; when {col} and "end_col"
are equal, and "end_lnum" is omitted or equal
to {lnum}, this is a zero-width text property
bufnr buffer to add the property to; when omitted
the current buffer is used
id user defined ID for the property; when omitted
zero is used
type name of the text property type
All fields except "type" are optional.
It is an error when both "length" and "end_lnum" or "end_col"
are given. Either use "length" or "end_col" for a property
within one line, or use "end_lnum" and "end_col" for a
property that spans more than one line.
When neither "length" nor "end_col" are given the property
will be zero-width. That means it will not be highlighted but
will move with the text, as a kind of mark.
The property can end exactly at the last character of the
text, or just after it. In the last case, if text is appended
to the line, the text property size will increase, also when
the property type does not have "end_incl" set.
"type" will first be looked up in the buffer the property is
added to. When not found, the global property types are used.
If not found an error is given.
See |text-properties| for information about text properties.
prop_clear({lnum} [, {lnum-end} [, {props}]]) *prop_clear()*
Remove all text properties from line {lnum}.
When {lnum-end} is given, remove all text properties from line
{lnum} to {lnum-end} (inclusive).
When {props} contains a "bufnr" item use this buffer,
otherwise use the current buffer.
See |text-properties| for information about text properties.
*prop_find()*
prop_find({props} [, {direction}])
NOT IMPLEMENTED YET
Search for a text property as specified with {props}:
id property with this ID
type property with this type name
bufnr buffer to search in; when present a
start position with "lnum" and "col"
must be given; when omitted the
current buffer is used
lnum start in this line (when omitted start
at the cursor)
col start at this column (when omitted
and "lnum" is given: use column 1,
otherwise start at the cursor)
skipstart do not look for a match at the start
position
{direction} can be "f" for forward and "b" for backward. When
omitted forward search is performed.
If a match is found then a Dict is returned with the entries
as with prop_list(), and additionally an "lnum" entry.
If no match is found then an empty Dict is returned.
See |text-properties| for information about text properties.
prop_list({lnum} [, {props}]) *prop_list()*
Return a List with all text properties in line {lnum}.
When {props} contains a "bufnr" item, use this buffer instead
of the current buffer.
The properties are ordered by starting column and priority.
Each property is a Dict with these entries:
col starting column
length length in bytes, one more if line break is
included
id property ID
type name of the property type, omitted if
the type was deleted
start when TRUE property starts in this line
end when TRUE property ends in this line
When "start" is zero the property started in a previous line,
the current one is a continuation.
When "end" is zero the property continues in the next line.
The line break after this line is included.
See |text-properties| for information about text properties.
*prop_remove()* *E968*
prop_remove({props} [, {lnum} [, {lnum-end}]])
Remove a matching text property from line {lnum}. When
{lnum-end} is given, remove matching text properties from line
{lnum} to {lnum-end} (inclusive).
When {lnum} is omitted remove matching text properties from
all lines.
{props} is a dictionary with these fields:
id remove text properties with this ID
type remove text properties with this type name
bufnr use this buffer instead of the current one
all when TRUE remove all matching text properties,
not just the first one
A property matches when either "id" or "type" matches.
If buffer "bufnr" does not exist you get an error message.
If buffer "bufnr" is not loaded then nothing happens.
Returns the number of properties that were removed.
See |text-properties| for information about text properties.
prop_type_add({name}, {props}) *prop_type_add()* *E969* *E970*
Add a text property type {name}. If a property type with this
name already exists an error is given.
{props} is a dictionary with these optional fields:
bufnr define the property only for this buffer; this
avoids name collisions and automatically
clears the property types when the buffer is
deleted.
highlight name of highlight group to use
priority when a character has multiple text
properties the one with the highest priority
will be used; negative values can be used, the
default priority is zero
combine when TRUE combine the highlight with any
syntax highlight; when omitted or FALSE syntax
highlight will not be used
start_incl when TRUE inserts at the start position will
be included in the text property
end_incl when TRUE inserts at the end position will be
included in the text property
See |text-properties| for information about text properties.
prop_type_change({name}, {props}) *prop_type_change()*
Change properties of an existing text property type. If a
property with this name does not exist an error is given.
The {props} argument is just like |prop_type_add()|.
See |text-properties| for information about text properties.
prop_type_delete({name} [, {props}]) *prop_type_delete()*
Remove the text property type {name}. When text properties
using the type {name} are still in place, they will not have
an effect and can no longer be removed by name.
{props} can contain a "bufnr" item. When it is given, delete
a property type from this buffer instead of from the global
property types.
When text property type {name} is not found there is no error.
See |text-properties| for information about text properties.
prop_type_get([{name} [, {props}]) *prop_type_get()*
Returns the properties of property type {name}. This is a
dictionary with the same fields as was given to
prop_type_add().
When the property type {name} does not exist, an empty
dictionary is returned.
{props} can contain a "bufnr" item. When it is given, use
this buffer instead of the global property types.
See |text-properties| for information about text properties.
prop_type_list([{props}]) *prop_type_list()*
Returns a list with all property type names.
{props} can contain a "bufnr" item. When it is given, use
this buffer instead of the global property types.
See |text-properties| for information about text properties.
============================================================================== ==============================================================================
3. When text changes *text-prop-changes* 3. When text changes *text-prop-changes*
@@ -127,10 +322,21 @@ will move accordingly.
When text is deleted and a text property no longer includes any text, it is When text is deleted and a text property no longer includes any text, it is
deleted. However, a text property that was defined as zero-width will remain, deleted. However, a text property that was defined as zero-width will remain,
unless the whole line is deleted. unless the whole line is deleted.
` *E275*
When a buffer is unloaded, all the text properties are gone. There is no way
to store the properties in a file. You can only re-create them. When a
buffer is hidden the text is preserved and so are the text properties. It is
not possible to add text properties to an unloaded buffer.
When using replace mode, the text properties stay on the same character When using replace mode, the text properties stay on the same character
positions, even though the characters themselves change. positions, even though the characters themselves change.
To update text properties after the text was changed, install a callback with
`listener_add()`. E.g, if your plugin does spell checking, you can have the
callback update spelling mistakes in the changed text. Vim will move the
properties below the changed text, so that they still highlight the same text,
thus you don't need to update these.
Text property columns are not updated: ~ Text property columns are not updated: ~

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.1. Last change: 2019 May 09 *todo.txt* For Vim version 8.1. Last change: 2019 Aug 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,6 +38,48 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Methods:
- Support lambda? #4768
echo (10.0 / 100.0)->{x -> x * 100}
- Define a user defined function for a specific type only?
func Len(expr) method=list,dict
return a:expr->len()
endfunc
echo [1, 2, 3]->Len()
3
call Len([1, 2, 3])
error!
Popup windows:
- :pedit from help doesn't reset help flag, see pedit example
- check popupmenu using preview window
- modeless selection fails over ssh and with putty. Mouse dragging not
supported? Can we force it on?
- modeless selection extends into the scrollbar. (#4773)
- Implement flip option
- Have a way to scroll to the bottom, e.g. set 'firstline' to -1? (#4577)
- Why does 'nrformats' leak from the popup window buffer???
Happens in Test_simple_popup() at the second screendump.
- Disable commands, feedkeys(), CTRL-W, etc. in a popup window.
Use ERROR_IF_POPUP_WINDOW for more commands.
- For the "moved" property also include mouse movement?
- Can the buffer be re-used if it was the last one, to avoid using up lots of
buffer numbers?
- Have an option to attach the popup to a text position, like text properties
do. (#4560)
- Make redrawing more efficient and avoid flicker:
- put popup menu also put in popup_mask?
- Invoke filter with character before mapping? #4759
- Figure out the size and position better.
if wrapping splits a double-wide character
if wrapping inserts indent
- When drawing on top half a double-wide character, display ">" or "<" in the
incomplete cell.
- Use a popup window for the "info" item of completion instead of using a
preview window. Ideas in issue #4544.
How to add highlighting?
'incsearch' with :s: (#3321) 'incsearch' with :s: (#3321)
- Get E20 when using command history to get "'<,'>s/a/b" and no Visual area - Get E20 when using command history to get "'<,'>s/a/b" and no Visual area
was set. (#3837) was set. (#3837)
@@ -72,6 +114,8 @@ Terminal debugger:
with another Vim instance. with another Vim instance.
Terminal emulator window: Terminal emulator window:
- When typing "exit" in a terminal window with a shell and it's the only
window, should exit Vim instead of editing another buffer. (#4539)
- When the job in the terminal doesn't use mouse events, let the scroll wheel - When the job in the terminal doesn't use mouse events, let the scroll wheel
scroll the scrollback, like a terminal does at the shell prompt. #2490 scroll the scrollback, like a terminal does at the shell prompt. #2490
And use modeless selection. #2962 And use modeless selection. #2962
@@ -104,19 +148,71 @@ Terminal emulator window:
- When 'encoding' is not utf-8, or the job is using another encoding, setup - When 'encoding' is not utf-8, or the job is using another encoding, setup
conversions. conversions.
Support for popup widows: Error numbers available: E274, E275, E276,
- Use text properties to define highlighting. E278, E279, E290, E292, E362, E366, E450, E451, E452,
- Proposal on issue #4063 E453, E454, E460, E489, E491, E565, E578, E610, E611, E653,
E654, E856, E857, E860, E861, E863, E889, E900
Notifications for text changes, could be used for LSP. Sound: support on Mac? Or does libcanberra work there?
- New event, similar to TextChanged, but guaranteed to provide sequential
information of all text changes. Patch to add win_splitmove() function. (Andy Massimino, #4561)
Possibly build on undo info (but undo itself is also a change).
How to deal with ":%s/this/that" ? Patch for #4733: #4734. Test needs improvements.
Patch to fix session file when using multiple tabs. (Jason Franklin, 2019 May
20)
Also put :argadd commands at the start for all buffers, so that their order
remains equal? Then %argdel to clean it up. Do try this with 'hidden' set.
Make heredoc-let a bit more restrictive:
https://github.com/vim/vim/issues/4705
Completion mixes results from the current buffer with tags and other files.
Happens when typing CTRL-N while still search for results. E.g., type "b_" in
terminal.c and then CTRL-N twice.
Should do current file first and not split it up when more results are found.
(Also #1890)
Patch to add :spellrare. (#4291)
Patch to use timers in matchparen. (Daniel Hahler, #1338)
Ready to include now?
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow. Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
(#4087) (#4087)
Patch to support 'cursorlineopt' - only highlight the line number of the
cursor line: #4693
Let plugins know how much space is available in the last line before
triggering the hit-enter prompt. Internally called "sc_col".
(Daniel Hahler, #4732)
Patch for Template string: #4491 Not ready yet. New pull: #4634
":bnext" in a help buffer is supposed to go to the next help buffer, but it
goes to any buffer, and then :bnext skips help buffers, since they are
unlisted. (#4478)
Make 'showbreak' global-local.
The :syntax cchar value can only be a single character. It would be useful to
support combining characters. (Charles Campbell) Also #4687
Problem showing a line if the number column width changes when using "o".
(Mateusz Morusiewicz, #4245)
When using :packadd for a replacement language plugin, it is loaded after the
default one. #4698
When using :packadd files under "later" are not used, which is inconsistent
with packages under "start". (xtal8, #1994)
Modeless selection doesn't work in gvim. (#4783)
Visual highlight not removed when 'dipslay' is "lastline" and line doesn't
fit. (Kevin Lawler, #4457)
Does not build with MinGW out of the box: Does not build with MinGW out of the box:
- _stat64 is not defined, need to use "struct stat" in vim.h - _stat64 is not defined, need to use "struct stat" in vim.h
- WINVER conflict, should use 0x0600 by default? - WINVER conflict, should use 0x0600 by default?
@@ -124,6 +220,8 @@ Does not build with MinGW out of the box:
Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
13, #2910) Can't reproduce? 13, #2910) Can't reproduce?
Columns and Rows are long, they should be int.
Errors found with random data: Errors found with random data:
heap-buffer-overflow in alist_add (#2472) heap-buffer-overflow in alist_add (#2472)
@@ -134,30 +232,93 @@ Include part of #3242?
When a terminal exit_cb closes the window, a following typed key is lost, if When a terminal exit_cb closes the window, a following typed key is lost, if
it's in a mapping. (2018 Oct 6, #2302, #3522) it's in a mapping. (2018 Oct 6, #2302, #3522)
Completion mixes results from the current buffer with tags and other files. Patch for Inno Setup: #2739
Happens when typing CTRL-N while still search for results. E.g., type "b_" in
terminal.c and then CTRL-N twice. Would be nice to set tab-local values for 'diffexpr' and 'diffopt'. Use
Should do current file first and not split it up when more results are found. t:diffexpr_option t:diffopt_option? (#4782)
(Also #1890)
Internal diff doesn't handle binary file like external diff does. (Mike Internal diff doesn't handle binary file like external diff does. (Mike
Williams, 2018 Oct 30) Williams, 2018 Oct 30)
'[ mark in wrong column after put. (#4776)
"exepath('bin/cmd')" does not work while ":!bin/cmd" does work.
(Daniel Hahler, #4710) and executable('bin/cmd') returns 1
Problem with :tlmenu: Detach item added with all modes? Issue #3563. Problem with :tlmenu: Detach item added with all modes? Issue #3563.
The quoting of the [command] argument of :terminal is not clearly documented. The quoting of the [command] argument of :terminal is not clearly documented.
Give a few examples. (#4288) Give a few examples. (#4288)
Opening a file with --remote-tab-silent that matches 'wildignore' does not
work, results in (E479: No match". (#4610)
Bug: script written with "-W scriptout" contains Key codes, while the script Bug: script written with "-W scriptout" contains Key codes, while the script
read with "-s scriptin" expects escape codes. Probably "scriptout" needs to read with "-s scriptin" expects escape codes. Probably "scriptout" needs to
be adjusted. (Daniel Steinberg, 2019 Feb 24, #4041) be adjusted. (Daniel Steinberg, 2019 Feb 24, #4041)
":registers" should indicate char/block/linewise. (Ayberk Aydin, #4546)
Patch for ambiguous width characters in libvterm on MS-Windows 10.
(Nobuhiro Takasaki, #4411)
Window size changes after closing a tab. (#4741)
Problem with colors in terminal window. (Jason Franklin, 2019 May 12)
Lifepillar: Updated/cleaned up color schemes:
https://github.com/lifepillar/vim8-colorschemes.
Include a few color schemes, based on popularity:
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
http://vimawesome.com/?q=tag:color-scheme
Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
- monokai - Xia Crusoe (2017 Aug 4)
- seoul256 - Christian Brabandt (2017 Aug 3)
- gruvbox - Christian Brabandt (2017 Aug 3) (simplified version from
Lifepillar, 2018 Jan 22, #2573)
- janah - Marco Hinz (2017 Aug 4)
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
Suggested by Hiroki Kokubun:
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
- [hybrid](https://github.com/w0ng/vim-hybrid)
Include solarized color scheme?, it does not support termguicolors.
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019 Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019
Mar 5) Mar 5)
Many users don't like 'thesaurus' to match so many words. (#4667, #1611)
- when the match with the first word is partial, don't add other words on that
line.
- support other file formats, such as comma separated. Indicate by a prefix
to the file in the 'thesaurus' option.
- 'threglookexp' option: only match with first word in thesaurus file.
(Jakson A. Aquino, 2006 Jun 14)
Some composing characters actually add a cell width to the character they are
on top off, making the whole thing two characters wide. (#4526)
Add CmdwinLeavePost (#4762). Also add WinLeavePost then?
Should we include some part of pull request #4505, not increment changedtick
in some cases? E.g. for ":write" when the changed flag was already off, the
buffer didn't change at all.
Patch to add getreginfo() and setreg() with an option to set the unnamed
register "", So that registers can be saved and fully restored.
(Andy Massimino, 2018 Aug 24, #3370)
Line numbers in profile are off when function was defined with ":execute".
(Daniel Hahler, #4511)
Add a way to create an empty, hidden buffer. Like doing ":new|hide". Add a way to create an empty, hidden buffer. Like doing ":new|hide".
":let buf = bufcreate('name') ":let buf = bufcreate('name')
Session file contains absolute paths when "curdir" is removed form
'sessionoptions', making it impossible to have a session with a relative path.
(#4450)
When using a timer callback vgetc_busy is reset, allowing for using input(). When using a timer callback vgetc_busy is reset, allowing for using input().
But in a channel callback this does not happen. We need to do something But in a channel callback this does not happen. We need to do something
similar to check_due_timer(). Also see #3809. similar to check_due_timer(). Also see #3809.
@@ -201,6 +362,8 @@ https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
Still a E315 error when using terminal. (Masato Nishihata, #3959) Still a E315 error when using terminal. (Masato Nishihata, #3959)
Not existing directory in CDPATH leads to two shell calls. (#4525)
Use dict_iterate_start() / dict_iterate_next() instead of relying on the Use dict_iterate_start() / dict_iterate_next() instead of relying on the
internals of the dict structure. internals of the dict structure.
@@ -214,6 +377,10 @@ nvo-mode mapping works on Windows, not on Linux. (#3678)
Missing tests for: Missing tests for:
- add_termcap_entry() - add_termcap_entry()
Redo only remembers the last change. Could use "{count}g." to redo an older
change. How does the user know which change? At least have a way to list
them: ":repeats". Add to history, like search history and command line history.
When using exclusive selection and vi" that fails, cursor moves to the left. When using exclusive selection and vi" that fails, cursor moves to the left.
Cursor should not move. (#4024) Cursor should not move. (#4024)
@@ -243,6 +410,11 @@ punctuation is repeated. (Smylers, 2018 Nov 17, #3621)
ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550). ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
Patch to add more info to OptionSet. Should mention what triggered the change
":set", ":setlocal", ":setglobal", "modeline"; and the old global value.
#4118. Proposed implementation: 2019 Mar 27.
Updated 2019 May 25.
Using single wide base character with double wide composing character gives Using single wide base character with double wide composing character gives
drawing errors. Fill up the base character? (Dominique, #4328) drawing errors. Fill up the base character? (Dominique, #4328)
@@ -269,35 +441,9 @@ Make ":interactive !cmd" stop termcap mode, also when used in an autocommand.
Add buffer argument to undotree(). (#4001) Add buffer argument to undotree(). (#4001)
Patch to fix that Normal is not defined when not compiled with GUI. Using uninitialized value in test_gn
(Christian Brabandt, 2019 May 7, on issue #4072)
Patch to add optional arguments with default values.
(Andy Massimino, #3952) Needs to be reviewed.
Patch to add more info to OptionSet. Should mention what triggered the change
":set", ":setlocal", ":setglobal", "modeline"; and the old global value.
#4118. Proposed implementation: 2019 Mar 27.
Updated 2019 Apr 9: ASAN fails.
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
Nov 17) Asked about this, Dec 22. Christian will have a look.
Patch for larger icons in installer. (#978) Still not good.
Patch to add commands to jump to quickfix entry above/below the cursor.
(Yegappan Lakshmanan, #4316) Also do :cbefore and :cafter.
Patch to fix that using "5gj" starting inside a closed fold does not work on
screen lines but on text lines. (Julius Hulsmann, #4095) Lacks a test.
Patch to implement 'diffref' option. (#3535)
Easier to use a 'diffmaster' option, is the extra complexity needed?
Not ready to include.
Memory leaks in test_channel? (or is it because of fork())
Using uninitialized value in test_crypt. Using uninitialized value in test_crypt.
memory leak in test_paste
Memory leak in test_terminal: Memory leak in test_terminal:
==23530== by 0x2640D7: alloc (misc2.c:874) ==23530== by 0x2640D7: alloc (misc2.c:874)
==23530== by 0x2646D6: vim_strsave (misc2.c:1315) ==23530== by 0x2646D6: vim_strsave (misc2.c:1315)
@@ -308,26 +454,22 @@ Memory leak in test_terminal:
==23530== by 0x35C923: term_start (terminal.c:421) ==23530== by 0x35C923: term_start (terminal.c:421)
==23530== by 0x2AFF30: mch_call_shell_terminal (os_unix.c:4377) ==23530== by 0x2AFF30: mch_call_shell_terminal (os_unix.c:4377)
==23530== by 0x2B16BE: mch_call_shell (os_unix.c:5383) ==23530== by 0x2B16BE: mch_call_shell (os_unix.c:5383)
TODO: be able to run all parts of test_alot with valgrind separately
Memory leak in test_alot with pyeval() (allocating partial) Memory leak in test_alot with pyeval() (allocating partial)
Memory leak in test_alot with expand()
Memory leaks in test_channel? (or is it because of fork())
gethostbyname() is old, use getaddrinfo() if available. (#3227) gethostbyname() is old, use getaddrinfo() if available. (#3227)
matchaddpos() gets slow with many matches. Proposal by Rick Howe, 2018 Jul matchaddpos() gets slow with many matches. Proposal by Rick Howe, 2018 Jul
19. 19.
Patch to specify color for cterm=underline and cterm=undercurl, like "guisp".
Does #2405 do this?
Patch to add an interrupt() function: sets got_int. Useful in an autocommand
such as BufWritePre that checks the file name or contents.
More patches to check:
- #4098 improve Travis config
Should make 'listchars' global-local. Local to window or to buffer? Should make 'listchars' global-local. Local to window or to buffer?
Probably window. Probably window.
Add something like 'fillchars' local to window, but allow for specifying a Add something like 'fillchars' local to window, but allow for specifying a
highlight name. Esp. for the statusline. highlight name. Esp. for the statusline.
And "extends" and "precedes" are also useful without 'list' set. Also in
'fillchars' or another option?
Sourceforge Vim pages still have content, redirect from empty page. Sourceforge Vim pages still have content, redirect from empty page.
Check for PHP errors. (Wayne Davison, 2018 Oct 26) Check for PHP errors. (Wayne Davison, 2018 Oct 26)
@@ -336,6 +478,22 @@ Patch to support ":tag <tagkind> <tagname>". (emmrk, 2018 May 7, #2871)
Use something like ":tag {kind}/{tagname}". Use something like ":tag {kind}/{tagname}".
Not ready to include. Not ready to include.
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
Nov 17) Asked about this, Dec 22. Christian will have a look.
Patch for larger icons in installer. (#978) Still not good.
Patch to fix that using "5gj" starting inside a closed fold does not work on
screen lines but on text lines. (Julius Hulsmann, #4095) Lacks a test.
Patch to implement 'diffref' option. (#3535)
Easier to use a 'diffmaster' option, is the extra complexity needed?
Not ready to include.
Patch to specify color for cterm=underline and cterm=undercurl, like "guisp".
Patch #2405 does something like this, but in the wrong way.
:pedit resets the 'buflisted' option unexpectedly. (Wang Shidong, 2018 Oct 12, :pedit resets the 'buflisted' option unexpectedly. (Wang Shidong, 2018 Oct 12,
#3536) #3536)
@@ -355,9 +513,6 @@ Feedback from someone who uses this?
ml_get error. (Dominique Pelle, 2018 Sep 14, #3434) ml_get error. (Dominique Pelle, 2018 Sep 14, #3434)
Patch to use forward slash for completion even when 'shellslash' is set.
Adds 'completepathslash'. (Yasuhiro Matsumoto, 2018 Nov 15, #3612)
Only output t_Cs when t_Ce is also set. do not use Cs and Ce termcap entries. (Daniel Hahler, 2018 Sep 25) Only output t_Cs when t_Ce is also set. do not use Cs and Ce termcap entries. (Daniel Hahler, 2018 Sep 25)
Add t_cS and t_cR for cursor color select and reset. Use Cs and Cr terminfo Add t_cS and t_cR for cursor color select and reset. Use Cs and Cr terminfo
values. values.
@@ -383,18 +538,19 @@ includes the first screen line. (2018 Aug 23, #3368)
Refactored HTML indent file. (Michael Lee, #1821) Refactored HTML indent file. (Michael Lee, #1821)
Ask to write a test first. Ask to write a test first.
Patch to add getregpoint() and setreg() with an option to set "".
(Andy Massimino, 2018 Aug 24, #3370)
Better name?
MS-Windows: .lnk file not resolved properly when 'encoding' is set. MS-Windows: .lnk file not resolved properly when 'encoding' is set.
(lkintact, 2018 Sep 22, #3473) (lkintact, 2018 Sep 22, #3473)
Merge checking for 'cursorline' and 'concealcursor', see neovim #9492. Merge checking for 'cursorline' and 'concealcursor', see neovim #9492.
Request to add sign_setlist() to make it faster to add a lot of signs, e.g.
when adding a sign for every quickfix entry. (#4557)
Win32 key codes are messy. Mike Williams tried to fix that, but now old Win32 key codes are messy. Mike Williams tried to fix that, but now old
mappings no longer work. Create a new terminal for the better solution? mappings no longer work. Create a new terminal for the better solution?
Patch to "fix" 'visualbell'. Add option to set delay? (#1789)
Script generated by :mksession does not work well if there are windows with Script generated by :mksession does not work well if there are windows with
modified buffers modified buffers
change "silent only" into "silent only!" change "silent only" into "silent only!"
@@ -497,9 +653,6 @@ With 'foldmethod' "indent" and appending an empty line, what follows isn't
included in the existing fold. Deleting the empty line and undo fixes it. included in the existing fold. Deleting the empty line and undo fixes it.
(Oleg Koshovetc, 2018 Jul 15, #3214) (Oleg Koshovetc, 2018 Jul 15, #3214)
When using :packadd files under "later" are not used, which is inconsistent
with packages under "start". (xtal8, #1994)
Patch to support "xxd -ps". (Erik Auerswald, 2018 May 1) Patch to support "xxd -ps". (Erik Auerswald, 2018 May 1)
Lacks a test. Lacks a test.
@@ -678,18 +831,6 @@ behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
'tagrelative' is broken in specific situation. (xaizek, 2017 Oct 19, #2221) 'tagrelative' is broken in specific situation. (xaizek, 2017 Oct 19, #2221)
All functions are global, which makes functions like get() and len() awkward.
For the future use the ~get() and ~len() syntax, e.g.:
mylist~get(idx)
mydict~get(idx)
mystring~len()
Alternatives for ~:
^ list^get() could also be used
. list.get() already means concatenate
$ list$get() harder to read
@ list@get() harder to read
-> list->get() two characters, used for lambda
The ++ options for the :edit command are also useful on the Vim command line. The ++ options for the :edit command are also useful on the Vim command line.
When recovering a file, put the swap file name in b:recovered_swapfile. Then When recovering a file, put the swap file name in b:recovered_swapfile. Then
@@ -709,22 +850,6 @@ Seems to happen when the selection is requested the second time, but before
clip_x11_convert_selection_cb() is invoked, thus in X library code. clip_x11_convert_selection_cb() is invoked, thus in X library code.
Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25) Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)
Include a few color schemes, based on popularity:
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
http://vimawesome.com/?q=tag:color-scheme
Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
- monokai - Xia Crusoe (2017 Aug 4)
- seoul256 - Christian Brabandt (2017 Aug 3)
- gruvbox - Christian Brabandt (2017 Aug 3) (simplified version from
Lifepillar, 2018 Jan 22, #2573)
- janah - Marco Hinz (2017 Aug 4)
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
Suggested by Hiroki Kokubun:
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
- [hybrid](https://github.com/w0ng/vim-hybrid)
Include solarized color scheme?, it does not support termguicolors.
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696) Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
Creating a partial with an autoload function is confused about the "self" Creating a partial with an autoload function is confused about the "self"
@@ -1439,10 +1564,6 @@ Patch for building a 32bit Vim with 64bit MingW compiler.
Patch: On MS-Windows shellescape() may have to triple double quotes. Patch: On MS-Windows shellescape() may have to triple double quotes.
(Ingo Karkat, 2015 Jan 16) (Ingo Karkat, 2015 Jan 16)
Redo only remembers the last change. Could use "{count}g." to redo an older
change. How does the user know which change? At least have a way to list
them: ":repeats".
Patch for glob(), adding slash to normal files. (Ingo Karkat, 2014 Dec 22) Patch for glob(), adding slash to normal files. (Ingo Karkat, 2014 Dec 22)
When entering and leaving the preview window autocommands are triggered, but When entering and leaving the preview window autocommands are triggered, but
@@ -1787,9 +1908,6 @@ Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set to 2,
only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
21, Ben Fritz, 2010 Sep 14) 21, Ben Fritz, 2010 Sep 14)
The :syntax cchar value can only be a single character. It would be useful to
support combining characters. (Charles Campbell)
'cursorline' works on a text line only. Add 'cursorscreenline' for 'cursorline' works on a text line only. Add 'cursorscreenline' for
highlighting the screen line. (Christian Brabandt, 2012 Mar 31) highlighting the screen line. (Christian Brabandt, 2012 Mar 31)
@@ -2931,8 +3049,6 @@ More patches:
- Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3) - Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3)
- Extra argument to strtrans() to translate special keys to their name (Eric - Extra argument to strtrans() to translate special keys to their name (Eric
Arnold, 2006 May 22) Arnold, 2006 May 22)
- 'threglookexp' option: only match with first word in thesaurus file.
(Jakson A. Aquino, 2006 Jun 14)
- Mac: indicate whether a buffer was modified. (Nicolas Weber, 2006 Jun 30) - Mac: indicate whether a buffer was modified. (Nicolas Weber, 2006 Jun 30)
- Allow negative 'nrwidth' for left aligning. (Nathan Laredo, 2006 Aug 16) - Allow negative 'nrwidth' for left aligning. (Nathan Laredo, 2006 Aug 16)
- ml_append_string(): efficiently append to an existing line. (Brad - ml_append_string(): efficiently append to an existing line. (Brad
@@ -4277,8 +4393,6 @@ Vim script language:
to avoid a performance penalty (esp. for string options)? to avoid a performance penalty (esp. for string options)?
8 Add referring to key options with "&t_xx". Both for "echo &t_xx" and 8 Add referring to key options with "&t_xx". Both for "echo &t_xx" and
":let &t_xx =". Useful for making portable mappings. ":let &t_xx =". Useful for making portable mappings.
- Add ":let var ?= value", conditional assignment. Patch by Dave Eggum,
2006 Dec 11.
- range for ":exec", pass it on to the executed command. (Webb) - range for ":exec", pass it on to the executed command. (Webb)
8 ":{range}source": source the lines from the current file. 8 ":{range}source": source the lines from the current file.
You can already yank lines and use :@" to execute them. You can already yank lines and use :@" to execute them.

View File

@@ -1,4 +1,4 @@
*usr_05.txt* For Vim version 8.1. Last change: 2019 Feb 27 *usr_05.txt* For Vim version 8.1. Last change: 2019 May 23
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@@ -234,7 +234,7 @@ remote connection, increase the number. See 'ttimeout'.
set display=truncate set display=truncate
Show @@@ in the last line if it is truncated, instead of hiding the whole Show @@@ in the last line if it is truncated, instead of hiding the whole
like. See 'display'. line. See 'display'.
> >
set incsearch set incsearch

View File

@@ -1,4 +1,4 @@
*usr_06.txt* For Vim version 8.1. Last change: 2009 Oct 28 *usr_06.txt* For Vim version 8.1. Last change: 2019 Jun 01
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@@ -196,13 +196,12 @@ too slow, you might want to disable syntax highlighting for a moment: >
When editing another file (or the same one) the colors will come back. When editing another file (or the same one) the colors will come back.
*:syn-off*
If you want to stop highlighting completely use: > If you want to stop highlighting completely use: >
:syntax off :syntax off
This will completely disable syntax highlighting and remove it immediately for This will completely disable syntax highlighting and remove it immediately for
all buffers. all buffers. See |:syntax-off| for more details.
*:syn-manual* *:syn-manual*
If you want syntax highlighting only for specific files, use this: > If you want syntax highlighting only for specific files, use this: >

View File

@@ -220,7 +220,7 @@ a tab page share this directory except for windows with a window-local
directory. Any new windows opened in this tab page will use this directory as directory. Any new windows opened in this tab page will use this directory as
the current working directory. Using a `:cd` command in a tab page will not the current working directory. Using a `:cd` command in a tab page will not
change the working directory of tab pages which have a tab local directory. change the working directory of tab pages which have a tab local directory.
When the global working directory is changed using the ":cd" command in a tab When the global working directory is changed using the `:cd` command in a tab
page, it will also change the current tab page working directory. page, it will also change the current tab page working directory.

View File

@@ -1,4 +1,4 @@
*usr_27.txt* For Vim version 8.1. Last change: 2018 Jan 26 *usr_27.txt* For Vim version 8.1. Last change: 2019 Jul 14
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@@ -474,19 +474,19 @@ the line break happens, because all items mentioned so far don't match a line
break. break.
To check for a line break in a specific place, use the "\n" item: > To check for a line break in a specific place, use the "\n" item: >
/the\nword /one\ntwo
This will match at a line that ends in "the" and the next line starts with This will match at a line that ends in "one" and the next line starts with
"word". To match "the word" as well, you need to match a space or a line "two". To match "one two" as well, you need to match a space or a line
break. The item to use for it is "\_s": > break. The item to use for it is "\_s": >
/the\_sword /one\_stwo
To allow any amount of white space: > To allow any amount of white space: >
/the\_s\+word /one\_s\+two
This also matches when "the " is at the end of a line and " word" at the This also matches when "one " is at the end of a line and " two" at the
start of the next one. start of the next one.
"\s" matches white space, "\_s" matches white space or a line break. "\s" matches white space, "\_s" matches white space or a line break.

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.1. Last change: 2019 May 09 *usr_41.txt* For Vim version 8.1. Last change: 2019 Jul 06
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@@ -105,20 +105,21 @@ We won't explain how |:for| and |range()| work until later. Follow the links
if you are impatient. if you are impatient.
THREE KINDS OF NUMBERS FOUR KINDS OF NUMBERS
Numbers can be decimal, hexadecimal or octal. A hexadecimal number starts Numbers can be decimal, hexadecimal, octal or binary. A hexadecimal number
with "0x" or "0X". For example "0x1f" is decimal 31. An octal number starts starts with "0x" or "0X". For example "0x1f" is decimal 31. An octal number
with a zero. "017" is decimal 15. Careful: don't put a zero before a decimal starts with a zero. "017" is decimal 15. A binary number starts with "0b" or
number, it will be interpreted as an octal number! "0B". For example "0b101" is decimal 5. Careful: don't put a zero before a
decimal number, it will be interpreted as an octal number!
The ":echo" command always prints decimal numbers. Example: > The ":echo" command always prints decimal numbers. Example: >
:echo 0x7f 036 :echo 0x7f 036
< 127 30 ~ < 127 30 ~
A number is made negative with a minus sign. This also works for hexadecimal A number is made negative with a minus sign. This also works for hexadecimal,
and octal numbers. A minus sign is also used for subtraction. Compare this octal and binary numbers. A minus sign is also used for subtraction. Compare
with the previous example: > this with the previous example: >
:echo 0x7f -036 :echo 0x7f -036
< 97 ~ < 97 ~
@@ -608,12 +609,14 @@ String manipulation: *string-functions*
strcharpart() get part of a string using char index strcharpart() get part of a string using char index
strgetchar() get character from a string using char index strgetchar() get character from a string using char index
expand() expand special keywords expand() expand special keywords
expandcmd() expand a command like done for `:edit`
iconv() convert text from one encoding to another iconv() convert text from one encoding to another
byteidx() byte index of a character in a string byteidx() byte index of a character in a string
byteidxcomp() like byteidx() but count composing characters byteidxcomp() like byteidx() but count composing characters
repeat() repeat a string multiple times repeat() repeat a string multiple times
eval() evaluate a string expression eval() evaluate a string expression
execute() execute an Ex command and get the output execute() execute an Ex command and get the output
win_execute() like execute() but in a specified window
trim() trim characters from a string trim() trim characters from a string
List manipulation: *list-functions* List manipulation: *list-functions*
@@ -717,6 +720,7 @@ Cursor and mark position: *cursor-functions* *mark-functions*
cursor() position the cursor at a line/column cursor() position the cursor at a line/column
screencol() get screen column of the cursor screencol() get screen column of the cursor
screenrow() get screen row of the cursor screenrow() get screen row of the cursor
screenpos() screen row and col of a text character
getcurpos() get position of the cursor getcurpos() get position of the cursor
getpos() get position of cursor, mark, etc. getpos() get position of cursor, mark, etc.
setpos() set position of cursor, mark, etc. setpos() set position of cursor, mark, etc.
@@ -745,6 +749,12 @@ Working with text in the current buffer: *text-functions*
getcharsearch() return character search information getcharsearch() return character search information
setcharsearch() set character search information setcharsearch() set character search information
Working with text in another buffer:
getbufline() get a list of lines from the specified buffer
setbufline() replace a line in the specified buffer
appendbufline() append a list of lines in the specified buffer
deletebufline() delete lines from a specified buffer
*system-functions* *file-functions* *system-functions* *file-functions*
System functions and manipulation of files: System functions and manipulation of files:
glob() expand wildcards glob() expand wildcards
@@ -796,8 +806,10 @@ Buffers, windows and the argument list:
argidx() current position in the argument list argidx() current position in the argument list
arglistid() get id of the argument list arglistid() get id of the argument list
argv() get one entry from the argument list argv() get one entry from the argument list
bufadd() add a file to the list of buffers
bufexists() check if a buffer exists bufexists() check if a buffer exists
buflisted() check if a buffer exists and is listed buflisted() check if a buffer exists and is listed
bufload() ensure a buffer is loaded
bufloaded() check if a buffer exists and is loaded bufloaded() check if a buffer exists and is loaded
bufname() get the name of a specific buffer bufname() get the name of a specific buffer
bufnr() get the buffer number of a specific buffer bufnr() get the buffer number of a specific buffer
@@ -808,11 +820,8 @@ Buffers, windows and the argument list:
bufwinid() get the window ID of a specific buffer bufwinid() get the window ID of a specific buffer
bufwinnr() get the window number of a specific buffer bufwinnr() get the window number of a specific buffer
winbufnr() get the buffer number of a specific window winbufnr() get the buffer number of a specific window
getbufline() get a list of lines from the specified buffer
setbufline() replace a line in the specified buffer
appendbufline() append a list of lines in the specified buffer
deletebufline() delete lines from a specified buffer
listener_add() add a callback to listen to changes listener_add() add a callback to listen to changes
listener_flush() invoke listener callbacks
listener_remove() remove a listener callback listener_remove() remove a listener callback
win_findbuf() find windows containing a buffer win_findbuf() find windows containing a buffer
win_getid() get window ID of a window win_getid() get window ID of a window
@@ -953,6 +962,7 @@ Testing: *test-functions*
test_autochdir() enable 'autochdir' during startup test_autochdir() enable 'autochdir' during startup
test_override() test with Vim internal overrides test_override() test with Vim internal overrides
test_garbagecollect_now() free memory right now test_garbagecollect_now() free memory right now
test_getvalue() get value of an internal variable
test_ignore_error() ignore a specific error message test_ignore_error() ignore a specific error message
test_null_blob() return a null Blob test_null_blob() return a null Blob
test_null_channel() return a null Channel test_null_channel() return a null Channel
@@ -1005,8 +1015,10 @@ Signs: *sign-functions*
sign_getplaced() get a list of placed signs sign_getplaced() get a list of placed signs
sign_jump() jump to a sign sign_jump() jump to a sign
sign_place() place a sign sign_place() place a sign
sign_placelist() place a list of signs
sign_undefine() undefine a sign sign_undefine() undefine a sign
sign_unplace() unplace a sign sign_unplace() unplace a sign
sign_unplacelist() unplace a list of signs
Terminal window: *terminal-functions* Terminal window: *terminal-functions*
term_start() open a terminal window and run a job term_start() open a terminal window and run a job
@@ -1033,6 +1045,27 @@ Terminal window: *terminal-functions*
term_setrestore() set command to restore a terminal term_setrestore() set command to restore a terminal
term_setsize() set the size of a terminal term_setsize() set the size of a terminal
Popup window: *popup-window-functions*
popup_create() create popup centered in the screen
popup_atcursor() create popup just above the cursor position,
closes when the cursor moves away
popup_beval() at the position indicated by v:beval_
variables, closes when the mouse moves away
popup_notification() show a notification for three seconds
popup_dialog() create popup centered with padding and border
popup_menu() prompt for selecting an item from a list
popup_hide() hide a popup temporarily
popup_show() show a previously hidden popup
popup_move() change the position and size of a popup
popup_setoptions() override options of a popup
popup_settext() replace the popup buffer contents
popup_close() close one popup
popup_clear() close all popups
popup_filter_menu() select from a list of items
popup_filter_yesno() blocks until 'y' or 'n' is pressed
popup_getoptions() get current options for a popup
popup_getpos() get actual position and size of a popup
Timers: *timer-functions* Timers: *timer-functions*
timer_start() create a timer timer_start() create a timer
timer_pause() pause or unpause a timer timer_pause() pause or unpause a timer

View File

@@ -1,4 +1,4 @@
*usr_toc.txt* For Vim version 8.1. Last change: 2016 Mar 25 *usr_toc.txt* For Vim version 8.1. Last change: 2019 May 24
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@@ -103,12 +103,13 @@ Read this from start to end to learn the essential commands.
|usr_05.txt| Set your settings |usr_05.txt| Set your settings
|05.1| The vimrc file |05.1| The vimrc file
|05.2| The example vimrc file explained |05.2| The example vimrc file explained
|05.3| Simple mappings |05.3| The defaults.vim file explained
|05.4| Adding a package |05.4| Simple mappings
|05.5| Adding a plugin |05.5| Adding a package
|05.6| Adding a help file |05.6| Adding a plugin
|05.7| The option window |05.7| Adding a help file
|05.8| Often used options |05.8| The option window
|05.9| Often used options
|usr_06.txt| Using syntax highlighting |usr_06.txt| Using syntax highlighting
|06.1| Switching it on |06.1| Switching it on

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 8.1. Last change: 2019 May 09 *various.txt* For Vim version 8.1. Last change: 2019 Aug 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -288,7 +288,7 @@ g8 Print the hex values of the bytes used in the
*:!!* *:!!*
:!! Repeat last ":!{cmd}". :!! Repeat last ":!{cmd}".
*:ve* *:version* *:ve* *:ver* *:version*
:ve[rsion] Print the version number of the editor. If the :ve[rsion] Print the version number of the editor. If the
compiler used understands "__DATE__" the compilation compiler used understands "__DATE__" the compilation
date is mentioned. Otherwise a fixed release-date is date is mentioned. Otherwise a fixed release-date is
@@ -382,7 +382,7 @@ N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'|
N *+lispindent* |'lisp'| N *+lispindent* |'lisp'|
T *+listcmds* Vim commands for the list of buffers |buffer-hidden| T *+listcmds* Vim commands for the list of buffers |buffer-hidden|
and argument list |:argdelete| and argument list |:argdelete|
N *+localmap* Support for mappings local to a buffer |:map-local| T *+localmap* Support for mappings local to a buffer |:map-local|
m *+lua* |Lua| interface m *+lua* |Lua| interface
m *+lua/dyn* |Lua| interface |/dyn| m *+lua/dyn* |Lua| interface |/dyn|
N *+menu* |:menu| N *+menu* |:menu|
@@ -428,6 +428,8 @@ m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn|
T *+scrollbind* |'scrollbind'| T *+scrollbind* |'scrollbind'|
B *+signs* |:sign| B *+signs* |:sign|
N *+smartindent* |'smartindent'| N *+smartindent* |'smartindent'|
B *+sound* |sound_playevent()|, |sound_playfile()| functions, etc.
N *+spell* spell checking support, see |spell|
N *+startuptime* |--startuptime| argument N *+startuptime* |--startuptime| argument
N *+statusline* Options 'statusline', 'rulerformat' and special N *+statusline* Options 'statusline', 'rulerformat' and special
formats of 'titlestring' and 'iconstring' formats of 'titlestring' and 'iconstring'
@@ -455,7 +457,6 @@ B *+vartabs* Variable-width tabstops. |'vartabstop'|
N *+viminfo* |'viminfo'| N *+viminfo* |'viminfo'|
*+vertsplit* Vertically split windows |:vsplit|; Always enabled *+vertsplit* Vertically split windows |:vsplit|; Always enabled
since 8.0.1118. since 8.0.1118.
in sync with the |+windows| feature
N *+virtualedit* |'virtualedit'| N *+virtualedit* |'virtualedit'|
T *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200. T *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
T *+visualextra* extra Visual mode commands |blockwise-operators| T *+visualextra* extra Visual mode commands |blockwise-operators|
@@ -708,7 +709,7 @@ K Run a program to lookup the keyword under the
:xr[estore] [display] Reinitializes the connection to the X11 server. Useful :xr[estore] [display] Reinitializes the connection to the X11 server. Useful
after the X server restarts, e.g. when running Vim for after the X server restarts, e.g. when running Vim for
long time inside screen/tmux and connecting from long time inside screen/tmux and connecting from
different machines). different machines.
[display] should be in the format of the $DISPLAY [display] should be in the format of the $DISPLAY
environment variable (e.g. "localhost:10.0") environment variable (e.g. "localhost:10.0")
If [display] is omitted, then it reinitializes the If [display] is omitted, then it reinitializes the

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 8.1. Last change: 2019 May 07 *vi_diff.txt* For Vim version 8.1. Last change: 2019 May 13
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -199,7 +199,7 @@ Syntax highlighting. |:syntax|
Text properties |textprop.txt| Text properties |textprop.txt|
Vim supports highlighting text by a plugin. Property types can be Vim supports highlighting text by a plugin. Property types can be
specificed with |prop_type_add()| and properties can be placed with specified with |prop_type_add()| and properties can be placed with
|prop_add()|. |prop_add()|.
Spell checking. |spell| Spell checking. |spell|
@@ -866,7 +866,7 @@ The following Ex commands are supported by Vi: ~
`:set all&`, `:set option+=value`, `:set option^=value` `:set all&`, `:set option+=value`, `:set option^=value`
`:set option-=value` `:set option<` `:set option-=value` `:set option<`
`:shell` escape to a shell `:shell` escape to a shell
`:source` read Vim or Ex commands from a file `:source` read Vi or Ex commands from a file
`:stop` suspend the editor or escape to a shell `:stop` suspend the editor or escape to a shell
`:substitute` find and replace text; Vi: no '&', 'i', 's', 'r' or 'I' flag, `:substitute` find and replace text; Vi: no '&', 'i', 's', 'r' or 'I' flag,
confirm prompt only supports 'y' and 'n', no highlighting confirm prompt only supports 'y' and 'n', no highlighting
@@ -901,6 +901,9 @@ Common for these commands is that Vi doesn't support the ++opt argument on
The following Normal mode commands are supported by Vi: ~ The following Normal mode commands are supported by Vi: ~
note: See the beginning of |normal-index| for the meaning of WORD, N, Nmove
and etc in the description text.
|CTRL-B| scroll N screens Backwards |CTRL-B| scroll N screens Backwards
|CTRL-C| interrupt current (search) command |CTRL-C| interrupt current (search) command
|CTRL-D| scroll Down N lines (default: half a screen); Vim scrolls |CTRL-D| scroll Down N lines (default: half a screen); Vim scrolls
@@ -920,7 +923,9 @@ The following Normal mode commands are supported by Vi: ~
|CTRL-P| same as "k" |CTRL-P| same as "k"
|CTRL-R| in some Vi versions: same as CTRL-L |CTRL-R| in some Vi versions: same as CTRL-L
|CTRL-T| jump to N older Tag in tag list |CTRL-T| jump to N older Tag in tag list
|CTRL-U| N lines Upwards (default: half a screen) |CTRL-U| N lines Upwards (default: half a screen) {Vi used file lines
while Vim scrolls 'scroll' screen lines; makes a difference
when lines wrap}
|CTRL-Y| scroll N lines downwards |CTRL-Y| scroll N lines downwards
|CTRL-Z| suspend program (or start new shell) |CTRL-Z| suspend program (or start new shell)
|CTRL-]| :ta to ident under cursor {Vi: identifier after the cursor} |CTRL-]| :ta to ident under cursor {Vi: identifier after the cursor}
@@ -1055,7 +1060,7 @@ CTRL-T insert one shiftwidth of indent in current line {Vi: only when
in indent} in indent}
CTRL-V {char} insert next non-digit literally {Vi: no decimal byte entry} CTRL-V {char} insert next non-digit literally {Vi: no decimal byte entry}
CTRL-W delete word before the cursor CTRL-W delete word before the cursor
CTRL-Z when 'insertmode' set: suspend Vim CTRL-Z when 'insertmode' set: suspend Vi
<Esc> end insert mode (unless 'insertmode' set) <Esc> end insert mode (unless 'insertmode' set)
CTRL-[ same as <Esc> CTRL-[ same as <Esc>
0 CTRL-D delete all indent in the current line 0 CTRL-D delete all indent in the current line

View File

@@ -1,4 +1,4 @@
*windows.txt* For Vim version 8.1. Last change: 2019 May 05 *windows.txt* For Vim version 8.1. Last change: 2019 Aug 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -28,8 +28,6 @@ The basics are explained in chapter 7 and 8 of the user manual |usr_07.txt|
{not able to use multiple windows when the |+windows| feature was disabled at {not able to use multiple windows when the |+windows| feature was disabled at
compile time} compile time}
{not able to use vertically split windows when the |+vertsplit| feature was
disabled at compile time}
============================================================================== ==============================================================================
1. Introduction *windows-intro* *window* 1. Introduction *windows-intro* *window*
@@ -162,6 +160,10 @@ CTRL-W CTRL-S *CTRL-W_CTRL-S*
Note: CTRL-S does not work on all terminals and might block Note: CTRL-S does not work on all terminals and might block
further input, use CTRL-Q to get going again. further input, use CTRL-Q to get going again.
Also see |++opt| and |+cmd|. Also see |++opt| and |+cmd|.
*E242*
Be careful when splitting a window in an autocommand, it may
mess up the window layout if this happens while making other
window layout changes.
CTRL-W CTRL-V *CTRL-W_CTRL-V* CTRL-W CTRL-V *CTRL-W_CTRL-V*
CTRL-W v *CTRL-W_v* CTRL-W v *CTRL-W_v*
@@ -216,7 +218,7 @@ CTRL-W CTRL_N *CTRL-W_CTRL-N*
:[N]sv[iew] [++opt] [+cmd] {file} *:sv* *:sview* *splitview* :[N]sv[iew] [++opt] [+cmd] {file} *:sv* *:sview* *splitview*
Same as ":split", but set 'readonly' option for this buffer. Same as ":split", but set 'readonly' option for this buffer.
:[N]sf[ind] [++opt] [+cmd] {file} *:sf* *:sfind* *splitfind* :[N]sf[ind] [++opt] [+cmd] {file} *:sf* *:sfi* *:sfind* *splitfind*
Same as ":split", but search for {file} in 'path' like in Same as ":split", but search for {file} in 'path' like in
|:find|. Doesn't split if {file} is not found. |:find|. Doesn't split if {file} is not found.
@@ -507,7 +509,6 @@ CTRL-W H Move the current window to be at the far left, using the
current window and then creating another one with current window and then creating another one with
":vert topleft split", except that the current window contents ":vert topleft split", except that the current window contents
is used for the new window. is used for the new window.
{not available when compiled without the |+vertsplit| feature}
*CTRL-W_L* *CTRL-W_L*
CTRL-W L Move the current window to be at the far right, using the full CTRL-W L Move the current window to be at the far right, using the full
@@ -515,7 +516,6 @@ CTRL-W L Move the current window to be at the far right, using the full
current window and then creating another one with current window and then creating another one with
":vert botright split", except that the current window ":vert botright split", except that the current window
contents is used for the new window. contents is used for the new window.
{not available when compiled without the |+vertsplit| feature}
*CTRL-W_T* *CTRL-W_T*
CTRL-W T Move the current window to a new tab page. This fails if CTRL-W T Move the current window to a new tab page. This fails if
@@ -667,6 +667,8 @@ can also get to them with the buffer list commands, like ":bnext".
|:vertical| was prepended). |:vertical| was prepended).
Buf/Win Enter/Leave autocommands are not executed for the new Buf/Win Enter/Leave autocommands are not executed for the new
windows here, that's only done when they are really entered. windows here, that's only done when they are really entered.
If autocommands change the window layout while this command is
busy an error will be given. *E249*
:[N]sa[rgument][!] [++opt] [+cmd] [N] *:sa* *:sargument* :[N]sa[rgument][!] [++opt] [+cmd] [N] *:sa* *:sargument*
Short for ":split | argument [N]": split window and go to Nth Short for ":split | argument [N]": split window and go to Nth
@@ -864,6 +866,23 @@ height of the preview window when it's opened. The 'previewwindow' option is
set in the preview window to be able to recognize it. The 'winfixheight' set in the preview window to be able to recognize it. The 'winfixheight'
option is set to have it keep the same height when opening/closing other option is set to have it keep the same height when opening/closing other
windows. 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:
height maximum height of the popup
width maximum width of the popup
Example: >
:set previewpopup=height:10,width:60
A few peculiarities:
- If the file is in a buffer already, it will be re-used. This will allow for
editing the file while it's visible in the popup window.
- No ATTENTION dialog will be used, since you can't edit the file in the popup
window. However, if you later open the same buffer in a normal window, you
may not notice it's edited elsewhere. And when then using ":edit" to
trigger the ATTENTION and responding "A" for Abort, the preview window will
become empty.
*:pta* *:ptag* *:pta* *:ptag*
:pta[g][!] [tagname] :pta[g][!] [tagname]
@@ -1030,6 +1049,13 @@ list of buffers. |unlisted-buffer|
thus you can always go to a specific buffer with ":buffer N" thus you can always go to a specific buffer with ":buffer N"
or "N CTRL-^", where N is the buffer number. or "N CTRL-^", where N is the buffer number.
For the file name these special values are used:
[Prompt] |prompt-buffer|
[Popup] buffer of a |popup-window|
[Scratch] 'buftype' is "nofile"
[No Name] no file name specified
For a |terminal-window| buffer the status is used.
Indicators (chars in the same column are mutually exclusive): Indicators (chars in the same column are mutually exclusive):
u an unlisted buffer (only displayed when [!] is used) u an unlisted buffer (only displayed when [!] is used)
|unlisted-buffer| |unlisted-buffer|
@@ -1192,7 +1218,6 @@ list of buffers. |unlisted-buffer|
the way when you're browsing code/text buffers. The next three the way when you're browsing code/text buffers. The next three
commands also work like this. commands also work like this.
*:sbn* *:sbnext* *:sbn* *:sbnext*
:[N]sbn[ext] [+cmd] [N] :[N]sbn[ext] [+cmd] [N]
Split window and go to [N]th next buffer in buffer list. Split window and go to [N]th next buffer in buffer list.
@@ -1213,7 +1238,7 @@ list of buffers. |unlisted-buffer|
Uses 'switchbuf'. Uses 'switchbuf'.
Also see |+cmd|. Also see |+cmd|.
:br[ewind][!] [+cmd] *:br* *:brewind* :br[ewind][!] [+cmd] *:br* *:bre* *:brewind*
Go to first buffer in buffer list. If the buffer list is Go to first buffer in buffer list. If the buffer list is
empty, go to the first unlisted buffer. empty, go to the first unlisted buffer.
See |:buffer-!| for [!]. See |:buffer-!| for [!].

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 May 06 " Last Change: 2019 Jul 27
" Listen very carefully, I will say this only once " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")
@@ -1776,12 +1776,15 @@ au BufNewFile,BufRead *.wrl setf vrml
" Vroom (vim testing and executable documentation) " Vroom (vim testing and executable documentation)
au BufNewFile,BufRead *.vroom setf vroom au BufNewFile,BufRead *.vroom setf vroom
" Webmacro " Vue.js Single File Component
au BufNewFile,BufRead *.wm setf webmacro au BufNewFile,BufRead *.vue setf vue
" WebAssembly " WebAssembly
au BufNewFile,BufRead *.wast,*.wat setf wast au BufNewFile,BufRead *.wast,*.wat setf wast
" Webmacro
au BufNewFile,BufRead *.wm setf webmacro
" Wget config " Wget config
au BufNewFile,BufRead .wgetrc,wgetrc setf wget au BufNewFile,BufRead .wgetrc,wgetrc setf wget

20
runtime/ftplugin/dune.vim Normal file
View File

@@ -0,0 +1,20 @@
" Language: Dune buildsystem
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
" Anton Kochkov <anton.kochkov@gmail.com>
" URL: https://github.com/rgrinberg/vim-ocaml
" Last Change:
" 2018 Nov 3 - Added commentstring (Markus Mottl)
" 2017 Sep 6 - Initial version (Etienne Millon)
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin=1
set lisp
" Comment string
setl commentstring=;\ %s
setl comments=:;
setl iskeyword+=#,?,.,/

View File

@@ -1,7 +1,8 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: man " Language: man
" Maintainer: SungHyun Nam <goweol@gmail.com> " Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2019 Jan 22 " Last Change: 2019 Jul 22
" (fix by Jason Franklin)
" To make the ":Man" command available before editing a manual page, source " To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file. " this script from your startup vimrc file.
@@ -143,6 +144,8 @@ func <SID>GetPage(cmdmods, ...)
exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".") exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".")
let s:man_tag_depth = s:man_tag_depth + 1 let s:man_tag_depth = s:man_tag_depth + 1
let open_cmd = 'edit'
" Use an existing "man" window if it exists, otherwise open a new one. " Use an existing "man" window if it exists, otherwise open a new one.
if &filetype != "man" if &filetype != "man"
let thiswin = winnr() let thiswin = winnr()
@@ -161,28 +164,25 @@ func <SID>GetPage(cmdmods, ...)
endif endif
if &filetype != "man" if &filetype != "man"
if exists("g:ft_man_open_mode") if exists("g:ft_man_open_mode")
if g:ft_man_open_mode == "vert" if g:ft_man_open_mode == 'vert'
vnew let open_cmd = 'vsplit'
elseif g:ft_man_open_mode == "tab" elseif g:ft_man_open_mode == 'tab'
tabnew let open_cmd = 'tabedit'
else else
new let open_cmd = 'split'
endif endif
else else
if a:cmdmods != '' let open_cmd = a:cmdmods . ' split'
exe a:cmdmods . ' new'
else
new
endif
endif endif
setl nonu fdc=0
endif endif
endif endif
silent exec "edit $HOME/".page.".".sect."~"
silent execute open_cmd . " $HOME/" . page . '.' . sect . '~'
" Avoid warning for editing the dummy file twice " Avoid warning for editing the dummy file twice
setl buftype=nofile noswapfile setl buftype=nofile noswapfile
setl ma nonu nornu nofen setl fdc=0 ma nofen nonu nornu
silent exec "norm! 1GdG" silent exec "norm! 1GdG"
let unsetwidth = 0 let unsetwidth = 0
if empty($MANWIDTH) if empty($MANWIDTH)

View File

@@ -5,12 +5,12 @@
" Pierre Vittet <pierre-vittet@pvittet.com> " Pierre Vittet <pierre-vittet@pvittet.com>
" Stefano Zacchiroli <zack@bononia.it> " Stefano Zacchiroli <zack@bononia.it>
" Vincent Aravantinos <firstname.name@imag.fr> " Vincent Aravantinos <firstname.name@imag.fr>
" URL: http://www.ocaml.info/vim/ftplugin/ocaml.vim " URL: https://github.com/rgrinberg/vim-ocaml
" Last Change: " Last Change:
" 2013 Oct 27 - Added commentstring (MM)
" 2013 Jul 26 - load default compiler settings (MM) " 2013 Jul 26 - load default compiler settings (MM)
" 2013 Jul 24 - removed superfluous efm-setting (MM) " 2013 Jul 24 - removed superfluous efm-setting (MM)
" 2013 Jul 22 - applied fixes supplied by Hirotaka Hamada (MM) " 2013 Jul 22 - applied fixes supplied by Hirotaka Hamada (MM)
" 2013 Mar 15 - Improved error format (MM)
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
finish finish
@@ -37,6 +37,10 @@ endif
let s:cposet=&cpoptions let s:cposet=&cpoptions
set cpo&vim set cpo&vim
" Comment string
setlocal comments=
setlocal commentstring=(*%s*)
" Add mappings, unless the user didn't want this. " Add mappings, unless the user didn't want this.
if !exists("no_plugin_maps") && !exists("no_ocaml_maps") if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
" (un)commenting " (un)commenting
@@ -60,16 +64,39 @@ if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
endif endif
" Let % jump between structure elements (due to Issac Trotts) " Let % jump between structure elements (due to Issac Trotts)
let b:mw = '' let b:mw = '\<let\>:\<and\>:\(\<in\>\|;;\)'
let b:mw = b:mw . ',\<let\>:\<and\>:\(\<in\>\|;;\)'
let b:mw = b:mw . ',\<if\>:\<then\>:\<else\>' let b:mw = b:mw . ',\<if\>:\<then\>:\<else\>'
let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>,' let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>'
let b:mw = b:mw . ',\<\(object\|sig\|struct\|begin\)\>:\<end\>' let b:mw = b:mw . ',\<\(object\|sig\|struct\|begin\)\>:\<end\>'
let b:mw = b:mw . ',\<\(match\|try\)\>:\<with\>' let b:mw = b:mw . ',\<\(match\|try\)\>:\<with\>'
let b:match_words = b:mw let b:match_words = b:mw
let b:match_ignorecase=0 let b:match_ignorecase=0
function! s:OcpGrep(bang,args) abort
let grepprg = &l:grepprg
let grepformat = &l:grepformat
let shellpipe = &shellpipe
try
let &l:grepprg = "ocp-grep -c never"
setlocal grepformat=%f:%l:%m
if &shellpipe ==# '2>&1| tee' || &shellpipe ==# '|& tee'
let &shellpipe = "| tee"
endif
execute 'grep! '.a:args
if empty(a:bang) && !empty(getqflist())
return 'cfirst'
else
return ''
endif
finally
let &l:grepprg = grepprg
let &l:grepformat = grepformat
let &shellpipe = shellpipe
endtry
endfunction
command! -bar -bang -complete=file -nargs=+ Ocpgrep exe s:OcpGrep(<q-bang>, <q-args>)
" switching between interfaces (.mli) and implementations (.ml) " switching between interfaces (.mli) and implementations (.ml)
if !exists("g:did_ocaml_switch") if !exists("g:did_ocaml_switch")
let g:did_ocaml_switch = 1 let g:did_ocaml_switch = 1
@@ -97,15 +124,8 @@ endif
" Folding support " Folding support
" Get the modeline because folding depends on indentation " Get the modeline because folding depends on indentation
let s:s = line2byte(line('.'))+col('.')-1 let lnum = search('^\s*(\*:o\?caml:', 'n')
if search('^\s*(\*:o\?caml:') let s:modeline = lnum? getline(lnum): ""
let s:modeline = getline(".")
else
let s:modeline = ""
endif
if s:s > 0
exe 'goto' s:s
endif
" Get the indentation params " Get the indentation params
let s:m = matchstr(s:modeline,'default\s*=\s*\d\+') let s:m = matchstr(s:modeline,'default\s*=\s*\d\+')
@@ -372,8 +392,8 @@ endfunction
endfun endfun
" This variable contain a dictionnary of list. Each element of the dictionnary " This variable contain a dictionnary of list. Each element of the dictionnary
" represent an annotation system. An annotation system is a list with: " represent an annotation system. An annotation system is a list with :
" - annotation file name as its key " - annotation file name as it's key
" - annotation file path as first element of the contained list " - annotation file path as first element of the contained list
" - build path as second element of the contained list " - build path as second element of the contained list
" - annot_file_last_mod (contain the date of .annot file) as third element " - annot_file_last_mod (contain the date of .annot file) as third element

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: Vim's quickfix window " Language: Vim's quickfix window
" Maintainer: Lech Lorens <Lech.Lorens@gmail.com> " Maintainer: Lech Lorens <Lech.Lorens@gmail.com>
" Last Changed: 30 Apr 2012 " Last Change: 2019 Jul 15
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
finish finish
@@ -10,7 +10,9 @@ endif
" Don't load another plugin for this buffer " Don't load another plugin for this buffer
let b:did_ftplugin = 1 let b:did_ftplugin = 1
let b:undo_ftplugin = "set stl<" if !get(g:, 'qf_disable_statusline')
let b:undo_ftplugin = "set stl<"
" Display the command that produced the list in the quickfix window: " Display the command that produced the list in the quickfix window:
setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}\ %=%-15(%l,%c%V%)\ %P setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}\ %=%-15(%l,%c%V%)\ %P
endif

View File

@@ -3,19 +3,21 @@
[Desktop Entry] [Desktop Entry]
# Translators: This is the Application Name used in the GVim desktop file # Translators: This is the Application Name used in the GVim desktop file
Name[de]=GVim Name[de]=GVim
Name[eo]=GVim
Name=GVim Name=GVim
# Translators: This is the Generic Application Name used in the Vim desktop file # Translators: This is the Generic Application Name used in the Vim desktop file
GenericName[de]=Texteditor GenericName[de]=Texteditor
GenericName[eo]=Tekstoredaktilo
GenericName[ja]=テキストエディタ GenericName[ja]=テキストエディタ
GenericName=Text Editor GenericName=Text Editor
# Translators: This is the comment used in the Vim desktop file # Translators: This is the comment used in the Vim desktop file
Comment[de]=Textdateien bearbeiten Comment[de]=Textdateien bearbeiten
Comment[eo]=Redakti tekstajn dosierojn
Comment[ja]=テキストファイルを編集します Comment[ja]=テキストファイルを編集します
Comment=Edit text files Comment=Edit text files
# The translations should come from the po file. Leave them here for now, they will # The translations should come from the po file. Leave them here for now, they will
# be overwritten by the po file when generating the desktop.file! # be overwritten by the po file when generating the desktop.file!
GenericName[da]=Teksteditor GenericName[da]=Teksteditor
GenericName[eo]=Tekstoredaktilo
GenericName[fr]=Éditeur de texte GenericName[fr]=Éditeur de texte
GenericName[pl]=Edytor tekstu GenericName[pl]=Edytor tekstu
GenericName[is]=Ritvinnsluforrit GenericName[is]=Ritvinnsluforrit
@@ -34,7 +36,6 @@ Comment[da]=Rediger tekstfiler
Comment[el]=Επεξεργασία αρχείων κειμένου Comment[el]=Επεξεργασία αρχείων κειμένου
Comment[en_CA]=Edit text files Comment[en_CA]=Edit text files
Comment[en_GB]=Edit text files Comment[en_GB]=Edit text files
Comment[eo]=Redakti tekstajn dosierojn
Comment[es]=Edita archivos de texto Comment[es]=Edita archivos de texto
Comment[et]=Redigeeri tekstifaile Comment[et]=Redigeeri tekstifaile
Comment[eu]=Editatu testu-fitxategiak Comment[eu]=Editatu testu-fitxategiak
@@ -92,10 +93,12 @@ Terminal=false
Type=Application Type=Application
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon! # Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
Keywords[de]=Text;Editor; Keywords[de]=Text;Editor;
Keywords[eo]=Teksto;redaktilo;
Keywords[ja]=テキスト;エディタ; Keywords[ja]=テキスト;エディタ;
Keywords=Text;editor; Keywords=Text;editor;
# Translators: This is the Icon file name. Do NOT translate # Translators: This is the Icon file name. Do NOT translate
Icon[de]=gvim Icon[de]=gvim
Icon[eo]=gvim
Icon=gvim Icon=gvim
Categories=Utility;TextEditor; Categories=Utility;TextEditor;
StartupNotify=true StartupNotify=true

View File

@@ -1,10 +1,10 @@
" Vim indent file " Vim indent file
" Language: PHP " Language: PHP
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr> " Author: John Wellesz <John.wellesz (AT) gmail (DOT) com>
" URL: http://www.2072productions.com/vim/indent/php.vim " URL: https://www.2072productions.com/vim/indent/php.vim
" Home: https://github.com/2072/PHP-Indenting-for-VIm " Home: https://github.com/2072/PHP-Indenting-for-VIm
" Last Change: 2018 May 18th " Last Change: 2019 Jully 21st
" Version: 1.66 " Version: 1.70
" "
" "
" Type :help php-indent for available options " Type :help php-indent for available options
@@ -19,7 +19,7 @@
" NOTE: This script must be used with PHP syntax ON and with the php syntax " NOTE: This script must be used with PHP syntax ON and with the php syntax
" script by Lutz Eymers (http://www.isp.de/data/php.vim ) or with the " script by Lutz Eymers (http://www.isp.de/data/php.vim ) or with the
" script by Peter Hodge (http://www.vim.org/scripts/script.php?script_id=1571 ) " script by Peter Hodge (https://www.vim.org/scripts/script.php?script_id=1571 )
" the later is bunbdled by default with Vim 7. " the later is bunbdled by default with Vim 7.
" "
" "
@@ -41,7 +41,6 @@
" silently remove them when VIM load this script (at each bufread). " silently remove them when VIM load this script (at each bufread).
if exists("b:did_indent") if exists("b:did_indent")
finish finish
endif endif
@@ -95,7 +94,17 @@ else
let b:PHP_vintage_case_default_indent = 0 let b:PHP_vintage_case_default_indent = 0
endif endif
if exists("PHP_IndentFunctionCallParameters")
let b:PHP_IndentFunctionCallParameters = PHP_IndentFunctionCallParameters
else
let b:PHP_IndentFunctionCallParameters = 0
endif
if exists("PHP_IndentFunctionDeclarationParameters")
let b:PHP_IndentFunctionDeclarationParameters = PHP_IndentFunctionDeclarationParameters
else
let b:PHP_IndentFunctionDeclarationParameters = 0
endif
let b:PHP_lastindented = 0 let b:PHP_lastindented = 0
let b:PHP_indentbeforelast = 0 let b:PHP_indentbeforelast = 0
@@ -129,15 +138,19 @@ endif
if exists("*GetPhpIndent") if exists("*GetPhpIndent")
call ResetPhpOptions() call ResetPhpOptions()
finish finish " XXX -- comment this line for easy dev
endif endif
let s:PHP_validVariable = '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
let s:notPhpHereDoc = '\%(break\|return\|continue\|exit\|die\|else\)'
let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|\%(}\s*\)\?else\>\|do\>\|while\>\|switch\>\|case\>\|default\>\|for\%(each\)\=\>\|declare\>\|class\>\|trait\>\|use\>\|interface\>\|abstract\>\|final\>\|try\>\|\%(}\s*\)\=catch\>\|\%(}\s*\)\=finally\>\)'
let s:functionDecl = '\<function\>\%(\s\+&\='.s:PHP_validVariable.'\)\=\s*(.*'
let s:endline = '\s*\%(//.*\|#.*\|/\*.*\*/\s*\)\=$' let s:endline = '\s*\%(//.*\|#.*\|/\*.*\*/\s*\)\=$'
let s:PHP_validVariable = '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
let s:notPhpHereDoc = '\%(break\|return\|continue\|exit\|die\|else\|end\%(if\|while\|for\|foreach\|switch\)\)'
let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|\%(}\s*\)\?else\>\|do\>\|while\>\|switch\>\|case\>\|default\>\|for\%(each\)\=\>\|declare\>\|class\>\|trait\>\|\%()\s*\)\=use\>\|interface\>\|abstract\>\|final\>\|try\>\|\%(}\s*\)\=catch\>\|\%(}\s*\)\=finally\>\)'
let s:functionDeclPrefix = '\<function\>\%(\s\+&\='.s:PHP_validVariable.'\)\=\s*('
let s:functionDecl = s:functionDeclPrefix.'.*'
let s:multilineFunctionDecl = s:functionDeclPrefix.s:endline
let s:arrayDecl = '\<array\>\s*(.*'
let s:multilineFunctionCall = s:PHP_validVariable.'\s*('.s:endline
let s:unstated = '\%(^\s*'.s:blockstart.'.*)\|\%(//.*\)\@<!\<e'.'lse\>\)'.s:endline let s:unstated = '\%(^\s*'.s:blockstart.'.*)\|\%(//.*\)\@<!\<e'.'lse\>\)'.s:endline
@@ -210,7 +223,7 @@ function! GetLastRealCodeLNum(startline) " {{{
while getline(lnum) !~? tofind && lnum > 1 while getline(lnum) !~? tofind && lnum > 1
let lnum = lnum - 1 let lnum = lnum - 1
endwhile endwhile
elseif lastline =~ '^[^''"`]*[''"`][;,]'.s:endline elseif lastline =~ '^\s*[''"`][;,]' || (lastline =~ '^[^''"`]*[''"`][;,]'.s:endline && IslinePHP(lnum, "") == "SpecStringEntrails")
let tofind=substitute( lastline, '^.*\([''"`]\)[;,].*$', '^[^\1]\\+[\1]$\\|^[^\1]\\+[=([]\\s*[\1]', '') let tofind=substitute( lastline, '^.*\([''"`]\)[;,].*$', '^[^\1]\\+[\1]$\\|^[^\1]\\+[=([]\\s*[\1]', '')
let trylnum = lnum let trylnum = lnum
@@ -289,17 +302,23 @@ function! FindOpenBracket(lnum, blockStarter) " {{{
endfun " }}} endfun " }}}
let s:blockChars = {'{':1, '[': 1, '(': 1, ')':-1, ']':-1, '}':-1} let s:blockChars = {'{':1, '[': 1, '(': 1, ')':-1, ']':-1, '}':-1}
let s:blockCharsLUT = {'{':'{', '}':'{', '[':'[', ']':'[', '(':'(', ')':'('}
function! BalanceDirection (str) function! BalanceDirection (str)
let balance = 0 let balance = {'{':0, '[': 0, '(': 0, 'none':0}
let director = 'none'
for c in split(a:str, '\zs') for c in split(a:str, '\zs')
if has_key(s:blockChars, c) if has_key(s:blockChars, c)
let balance += s:blockChars[c] let balance[s:blockCharsLUT[c]] += s:blockChars[c]
if balance[s:blockCharsLUT[c]]
let director = s:blockCharsLUT[c]
endif
endif endif
endfor endfor
return balance return balance[director]
endfun endfun
function! StripEndlineComments (line) function! StripEndlineComments (line)
@@ -308,7 +327,8 @@ endfun
function! FindArrowIndent (lnum) " {{{ function! FindArrowIndent (lnum) " {{{
let parrentArrowPos = 0 let parrentArrowPos = -1
let cursorPos = -1
let lnum = a:lnum let lnum = a:lnum
while lnum > 1 while lnum > 1
let last_line = getline(lnum) let last_line = getline(lnum)
@@ -316,31 +336,46 @@ function! FindArrowIndent (lnum) " {{{
let parrentArrowPos = indent(a:lnum) let parrentArrowPos = indent(a:lnum)
break break
else else
call cursor(lnum, 1)
let cleanedLnum = StripEndlineComments(last_line)
if cleanedLnum =~ '->'
if ! b:PHP_noArrowMatching
let parrentArrowPos = searchpos('->', 'W', lnum)[1] - 1
else
let parrentArrowPos = indent(lnum) + shiftwidth()
endif
break
elseif cleanedLnum =~ ')'.s:endline && BalanceDirection(last_line) < 0
call searchpos(')'.s:endline, 'cW', lnum)
let openedparent = searchpair('(', '', ')', 'bW', 'Skippmatch()')
if openedparent != lnum
let lnum = openedparent
else
let openedparent = -1
endif
if b:PHP_noArrowMatching
break
endif
let cleanedLnum = StripEndlineComments(last_line)
if cleanedLnum =~ ')'.s:endline
if BalanceDirection(cleanedLnum) <= 0
call cursor(lnum, 1)
call searchpos(')'.s:endline, 'cW', lnum)
let openedparent = searchpair('(', '', ')', 'bW', 'Skippmatch()')
let cursorPos = col(".")
if openedparent != lnum
let lnum = openedparent
continue
else
endif
else
let parrentArrowPos = -1
break
end
endif
if cleanedLnum =~ '->'
call cursor(lnum, cursorPos == -1 ? strwidth(cleanedLnum) : cursorPos)
let parrentArrowPos = searchpos('->', 'cWb', lnum)[1] - 1
break
else else
let parrentArrowPos = indent(lnum) + shiftwidth() let parrentArrowPos = -1
break break
endif endif
endif endif
endwhile endwhile
if parrentArrowPos == -1
let parrentArrowPos = indent(lnum) + shiftwidth()
end
return parrentArrowPos return parrentArrowPos
endfun "}}} endfun "}}}
@@ -432,7 +467,7 @@ function! IslinePHP (lnum, tofind) " {{{
let synname = synIDattr(synID(a:lnum, coltotest, 0), "name") let synname = synIDattr(synID(a:lnum, coltotest, 0), "name")
if synname ==? 'phpStringSingle' || synname ==? 'phpStringDouble' || synname ==? 'phpBacktick' if synname ==? 'phpStringSingle' || synname ==? 'phpStringDouble' || synname ==? 'phpBacktick'
if cline !~ '^\s*[''"`]' if cline !~ '^\s*[''"`]' " ??? XXX
return "SpecStringEntrails" return "SpecStringEntrails"
else else
return synname return synname
@@ -471,7 +506,7 @@ endfunc
call ResetPhpOptions() call ResetPhpOptions()
function! GetPhpIndentVersion() function! GetPhpIndentVersion()
return "1.66-bundle" return "1.70-bundle"
endfun endfun
function! GetPhpIndent() function! GetPhpIndent()
@@ -615,7 +650,7 @@ function! GetPhpIndent()
let b:InPHPcode_and_script = 1 let b:InPHPcode_and_script = 1
endif endif
elseif last_line =~ '^[^''"`]\+[''"`]$' " a string identifier with nothing after it and no other string identifier before elseif last_line =~ '^[^''"`]\+[''"`]$' && last_line !~ '^\s*\%(//\|#\|/\*.*\*/\s*$\)' " a string identifier with nothing after it and no other string identifier before
let b:InPHPcode = -1 let b:InPHPcode = -1
let b:InPHPcode_tofind = substitute( last_line, '^.*\([''"`]\).*$', '^[^\1]*\1[;,]$', '') let b:InPHPcode_tofind = substitute( last_line, '^.*\([''"`]\).*$', '^[^\1]*\1[;,]$', '')
elseif last_line =~? '<<<\s*[''"]\=\a\w*[''"]\=$' elseif last_line =~? '<<<\s*[''"]\=\a\w*[''"]\=$'
@@ -723,7 +758,7 @@ function! GetPhpIndent()
endif endif
if last_line =~ '[;}]'.endline && last_line !~ '^[)\]]' && last_line !~# s:defaultORcase if last_line =~ '[;}]'.endline && last_line !~ '^[)\]]' && last_line !~# s:defaultORcase && last_line !~ '^\s*[''"`][;,]'
if ind==b:PHP_default_indenting if ind==b:PHP_default_indenting
return b:PHP_default_indenting + addSpecial return b:PHP_default_indenting + addSpecial
elseif b:PHP_indentinghuge && ind==b:PHP_CurrentIndentLevel && cline !~# '^\s*\%(else\|\%(case\|default\).*:\|[})];\=\)' && last_line !~# '^\s*\%(\%(}\s*\)\=else\)' && getline(GetLastRealCodeLNum(lnum - 1))=~';'.endline elseif b:PHP_indentinghuge && ind==b:PHP_CurrentIndentLevel && cline !~# '^\s*\%(else\|\%(case\|default\).*:\|[})];\=\)' && last_line !~# '^\s*\%(\%(}\s*\)\=else\)' && getline(GetLastRealCodeLNum(lnum - 1))=~';'.endline
@@ -869,6 +904,14 @@ function! GetPhpIndent()
let ind = ind + shiftwidth() let ind = ind + shiftwidth()
endif endif
if b:PHP_IndentFunctionCallParameters && last_line =~ s:multilineFunctionCall && last_line !~ s:structureHead && last_line !~ s:arrayDecl
let ind = ind + b:PHP_IndentFunctionCallParameters * shiftwidth()
endif
if b:PHP_IndentFunctionDeclarationParameters && last_line =~ s:multilineFunctionDecl
let ind = ind + b:PHP_IndentFunctionDeclarationParameters * shiftwidth()
endif
if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1 if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1
let b:PHP_CurrentIndentLevel = ind let b:PHP_CurrentIndentLevel = ind
@@ -897,10 +940,15 @@ function! GetPhpIndent()
endif endif
if cline =~ '^\s*[)\]];\=' if cline =~ '^\s*[)\]];\='
let ind = ind - shiftwidth() call cursor(v:lnum, 1)
endif call searchpos('[)\]]', 'cW')
let matchedBlockChar = cline[col('.')-1]
let openedparent = searchpair('\M'.s:blockCharsLUT[matchedBlockChar], '', '\M'.matchedBlockChar, 'bW', 'Skippmatch()')
if openedparent != v:lnum
let ind = indent(openedparent)
endif
if last_line =~ '^\s*->' && last_line !~? s:structureHead && BalanceDirection(last_line) <= 0 elseif last_line =~ '^\s*->' && last_line !~? s:structureHead && BalanceDirection(last_line) <= 0
let ind = ind - shiftwidth() let ind = ind - shiftwidth()
endif endif

View File

@@ -3,10 +3,13 @@
" Maintainer: Christian Brabandt <cb@256bit.org> " Maintainer: Christian Brabandt <cb@256bit.org>
" Original Author: Nikolai Weibull <now@bitwi.se> " Original Author: Nikolai Weibull <now@bitwi.se>
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org> " Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Latest Revision: 2019-04-27 " Latest Revision: 2019-07-26
" License: Vim (see :h license) " License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent " Repository: https://github.com/chrisbra/vim-sh-indent
" Changelog: " Changelog:
" 20190726 - Correctly skip if keywords in syntax comments
" (issue #17)
" 20190603 - Do not indent in zsh filetypes with an `if` in comments
" 20190428 - De-indent fi correctly when typing with " 20190428 - De-indent fi correctly when typing with
" https://github.com/chrisbra/vim-sh-indent/issues/15 " https://github.com/chrisbra/vim-sh-indent/issues/15
" 20190325 - Indent fi; correctly " 20190325 - Indent fi; correctly
@@ -80,8 +83,9 @@ function! GetShIndent()
let ind = indent(lnum) let ind = indent(lnum)
" Check contents of previous lines " Check contents of previous lines
" should not apply to e.g. commented lines
if line =~ '^\s*\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>' || if line =~ '^\s*\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>' ||
\ (&ft is# 'zsh' && line =~ '\<\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>') \ (&ft is# 'zsh' && line =~ '^\s*\<\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>')
if !s:is_end_expression(line) if !s:is_end_expression(line)
let ind += s:indent_value('default') let ind += s:indent_value('default')
endif endif
@@ -129,7 +133,8 @@ function! GetShIndent()
" Current line is a endif line, so get indent from start of "if condition" line " Current line is a endif line, so get indent from start of "if condition" line
" TODO: should we do the same for other "end" lines? " TODO: should we do the same for other "end" lines?
if curline =~ '^\s*\%(fi\);\?\s*\%(#.*\)\=$' if curline =~ '^\s*\%(fi\);\?\s*\%(#.*\)\=$'
let previous_line = searchpair('\<if\>', '', '\<fi\>\zs', 'bnW') let ind = indent(v:lnum)
let previous_line = searchpair('\<if\>', '', '\<fi\>\zs', 'bnW', 'synIDattr(synID(line("."),col("."), 1),"name") =~? "comment"')
if previous_line > 0 if previous_line > 0
let ind = indent(previous_line) let ind = indent(previous_line)
endif endif

View File

@@ -0,0 +1,503 @@
" Vim indent file
" Language: TypeScript
" Maintainer: See https://github.com/HerringtonDarkholme/yats.vim
" Last Change: 2019 Jun 06
" Acknowledgement: Based off of vim-ruby maintained by Nikolai Weibull http://vim-ruby.rubyforge.org
" 0. Initialization {{{1
" =================
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal nosmartindent
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetTypescriptIndent()
setlocal formatexpr=Fixedgq(v:lnum,v:count)
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e
" Only define the function once.
if exists("*GetTypescriptIndent")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" 1. Variables {{{1
" ============
let s:js_keywords = '^\s*\(break\|case\|catch\|continue\|debugger\|default\|delete\|do\|else\|finally\|for\|function\|if\|in\|instanceof\|new\|return\|switch\|this\|throw\|try\|typeof\|var\|void\|while\|with\)'
" Regex of syntax group names that are or delimit string or are comments.
let s:syng_strcom = 'string\|regex\|comment\c'
" Regex of syntax group names that are strings.
let s:syng_string = 'regex\c'
" Regex of syntax group names that are strings or documentation.
let s:syng_multiline = 'comment\c'
" Regex of syntax group names that are line comment.
let s:syng_linecom = 'linecomment\c'
" Expression used to check whether we should skip a match with searchpair().
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"
let s:line_term = '\s*\%(\%(\/\/\).*\)\=$'
" Regex that defines continuation lines, not including (, {, or [.
let s:continuation_regex = '\%([\\*+/.:]\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\|[^=]=[^=].*,\)' . s:line_term
" Regex that defines continuation lines.
" TODO: this needs to deal with if ...: and so on
let s:msl_regex = s:continuation_regex
let s:one_line_scope_regex = '\<\%(if\|else\|for\|while\)\>[^{;]*' . s:line_term
" Regex that defines blocks.
let s:block_regex = '\%([{[]\)\s*\%(|\%([*@]\=\h\w*,\=\s*\)\%(,\s*[*@]\=\h\w*\)*|\)\=' . s:line_term
let s:var_stmt = '^\s*var'
let s:comma_first = '^\s*,'
let s:comma_last = ',\s*$'
let s:ternary = '^\s\+[?|:]'
let s:ternary_q = '^\s\+?'
" 2. Auxiliary Functions {{{1
" ======================
" Check if the character at lnum:col is inside a string, comment, or is ascii.
function s:IsInStringOrComment(lnum, col)
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_strcom
endfunction
" Check if the character at lnum:col is inside a string.
function s:IsInString(lnum, col)
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_string
endfunction
" Check if the character at lnum:col is inside a multi-line comment.
function s:IsInMultilineComment(lnum, col)
return !s:IsLineComment(a:lnum, a:col) && synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_multiline
endfunction
" Check if the character at lnum:col is a line comment.
function s:IsLineComment(lnum, col)
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_linecom
endfunction
" Find line above 'lnum' that isn't empty, in a comment, or in a string.
function s:PrevNonBlankNonString(lnum)
let in_block = 0
let lnum = prevnonblank(a:lnum)
while lnum > 0
" Go in and out of blocks comments as necessary.
" If the line isn't empty (with opt. comment) or in a string, end search.
let line = getline(lnum)
if line =~ '/\*'
if in_block
let in_block = 0
else
break
endif
elseif !in_block && line =~ '\*/'
let in_block = 1
elseif !in_block && line !~ '^\s*\%(//\).*$' && !(s:IsInStringOrComment(lnum, 1) && s:IsInStringOrComment(lnum, strlen(line)))
break
endif
let lnum = prevnonblank(lnum - 1)
endwhile
return lnum
endfunction
" Find line above 'lnum' that started the continuation 'lnum' may be part of.
function s:GetMSL(lnum, in_one_line_scope)
" Start on the line we're at and use its indent.
let msl = a:lnum
let lnum = s:PrevNonBlankNonString(a:lnum - 1)
while lnum > 0
" If we have a continuation line, or we're in a string, use line as MSL.
" Otherwise, terminate search as we have found our MSL already.
let line = getline(lnum)
let col = match(line, s:msl_regex) + 1
if (col > 0 && !s:IsInStringOrComment(lnum, col)) || s:IsInString(lnum, strlen(line))
let msl = lnum
else
" Don't use lines that are part of a one line scope as msl unless the
" flag in_one_line_scope is set to 1
"
if a:in_one_line_scope
break
end
let msl_one_line = s:Match(lnum, s:one_line_scope_regex)
if msl_one_line == 0
break
endif
endif
let lnum = s:PrevNonBlankNonString(lnum - 1)
endwhile
return msl
endfunction
function s:RemoveTrailingComments(content)
let single = '\/\/\(.*\)\s*$'
let multi = '\/\*\(.*\)\*\/\s*$'
return substitute(substitute(a:content, single, '', ''), multi, '', '')
endfunction
" Find if the string is inside var statement (but not the first string)
function s:InMultiVarStatement(lnum)
let lnum = s:PrevNonBlankNonString(a:lnum - 1)
" let type = synIDattr(synID(lnum, indent(lnum) + 1, 0), 'name')
" loop through previous expressions to find a var statement
while lnum > 0
let line = getline(lnum)
" if the line is a js keyword
if (line =~ s:js_keywords)
" check if the line is a var stmt
" if the line has a comma first or comma last then we can assume that we
" are in a multiple var statement
if (line =~ s:var_stmt)
return lnum
endif
" other js keywords, not a var
return 0
endif
let lnum = s:PrevNonBlankNonString(lnum - 1)
endwhile
" beginning of program, not a var
return 0
endfunction
" Find line above with beginning of the var statement or returns 0 if it's not
" this statement
function s:GetVarIndent(lnum)
let lvar = s:InMultiVarStatement(a:lnum)
let prev_lnum = s:PrevNonBlankNonString(a:lnum - 1)
if lvar
let line = s:RemoveTrailingComments(getline(prev_lnum))
" if the previous line doesn't end in a comma, return to regular indent
if (line !~ s:comma_last)
return indent(prev_lnum) - shiftwidth()
else
return indent(lvar) + shiftwidth()
endif
endif
return -1
endfunction
" Check if line 'lnum' has more opening brackets than closing ones.
function s:LineHasOpeningBrackets(lnum)
let open_0 = 0
let open_2 = 0
let open_4 = 0
let line = getline(a:lnum)
let pos = match(line, '[][(){}]', 0)
while pos != -1
if !s:IsInStringOrComment(a:lnum, pos + 1)
let idx = stridx('(){}[]', line[pos])
if idx % 2 == 0
let open_{idx} = open_{idx} + 1
else
let open_{idx - 1} = open_{idx - 1} - 1
endif
endif
let pos = match(line, '[][(){}]', pos + 1)
endwhile
return (open_0 > 0) . (open_2 > 0) . (open_4 > 0)
endfunction
function s:Match(lnum, regex)
let col = match(getline(a:lnum), a:regex) + 1
return col > 0 && !s:IsInStringOrComment(a:lnum, col) ? col : 0
endfunction
function s:IndentWithContinuation(lnum, ind, width)
" Set up variables to use and search for MSL to the previous line.
let p_lnum = a:lnum
let lnum = s:GetMSL(a:lnum, 1)
let line = getline(lnum)
" If the previous line wasn't a MSL and is continuation return its indent.
" TODO: the || s:IsInString() thing worries me a bit.
if p_lnum != lnum
if s:Match(p_lnum,s:continuation_regex)||s:IsInString(p_lnum,strlen(line))
return a:ind
endif
endif
" Set up more variables now that we know we aren't continuation bound.
let msl_ind = indent(lnum)
" If the previous line ended with [*+/.-=], start a continuation that
" indents an extra level.
if s:Match(lnum, s:continuation_regex)
if lnum == p_lnum
return msl_ind + a:width
else
return msl_ind
endif
endif
return a:ind
endfunction
function s:InOneLineScope(lnum)
let msl = s:GetMSL(a:lnum, 1)
if msl > 0 && s:Match(msl, s:one_line_scope_regex)
return msl
endif
return 0
endfunction
function s:ExitingOneLineScope(lnum)
let msl = s:GetMSL(a:lnum, 1)
if msl > 0
" if the current line is in a one line scope ..
if s:Match(msl, s:one_line_scope_regex)
return 0
else
let prev_msl = s:GetMSL(msl - 1, 1)
if s:Match(prev_msl, s:one_line_scope_regex)
return prev_msl
endif
endif
endif
return 0
endfunction
" 3. GetTypescriptIndent Function {{{1
" =========================
function GetTypescriptIndent()
" 3.1. Setup {{{2
" ----------
" Set up variables for restoring position in file. Could use v:lnum here.
let vcol = col('.')
" 3.2. Work on the current line {{{2
" -----------------------------
let ind = -1
" Get the current line.
let line = getline(v:lnum)
" previous nonblank line number
let prevline = prevnonblank(v:lnum - 1)
" If we got a closing bracket on an empty line, find its match and indent
" according to it. For parentheses we indent to its column - 1, for the
" others we indent to the containing line's MSL's level. Return -1 if fail.
let col = matchend(line, '^\s*[],})]')
if col > 0 && !s:IsInStringOrComment(v:lnum, col)
call cursor(v:lnum, col)
let lvar = s:InMultiVarStatement(v:lnum)
if lvar
let prevline_contents = s:RemoveTrailingComments(getline(prevline))
" check for comma first
if (line[col - 1] =~ ',')
" if the previous line ends in comma or semicolon don't indent
if (prevline_contents =~ '[;,]\s*$')
return indent(s:GetMSL(line('.'), 0))
" get previous line indent, if it's comma first return prevline indent
elseif (prevline_contents =~ s:comma_first)
return indent(prevline)
" otherwise we indent 1 level
else
return indent(lvar) + shiftwidth()
endif
endif
endif
let bs = strpart('(){}[]', stridx(')}]', line[col - 1]) * 2, 2)
if searchpair(escape(bs[0], '\['), '', bs[1], 'bW', s:skip_expr) > 0
if line[col-1]==')' && col('.') != col('$') - 1
let ind = virtcol('.')-1
else
let ind = indent(s:GetMSL(line('.'), 0))
endif
endif
return ind
endif
" If the line is comma first, dedent 1 level
if (getline(prevline) =~ s:comma_first)
return indent(prevline) - shiftwidth()
endif
if (line =~ s:ternary)
if (getline(prevline) =~ s:ternary_q)
return indent(prevline)
else
return indent(prevline) + shiftwidth()
endif
endif
" If we are in a multi-line comment, cindent does the right thing.
if s:IsInMultilineComment(v:lnum, 1) && !s:IsLineComment(v:lnum, 1)
return cindent(v:lnum)
endif
" Check for multiple var assignments
" let var_indent = s:GetVarIndent(v:lnum)
" if var_indent >= 0
" return var_indent
" endif
" 3.3. Work on the previous line. {{{2
" -------------------------------
" If the line is empty and the previous nonblank line was a multi-line
" comment, use that comment's indent. Deduct one char to account for the
" space in ' */'.
if line =~ '^\s*$' && s:IsInMultilineComment(prevline, 1)
return indent(prevline) - 1
endif
" Find a non-blank, non-multi-line string line above the current line.
let lnum = s:PrevNonBlankNonString(v:lnum - 1)
" If the line is empty and inside a string, use the previous line.
if line =~ '^\s*$' && lnum != prevline
return indent(prevnonblank(v:lnum))
endif
" At the start of the file use zero indent.
if lnum == 0
return 0
endif
" Set up variables for current line.
let line = getline(lnum)
let ind = indent(lnum)
" If the previous line ended with a block opening, add a level of indent.
if s:Match(lnum, s:block_regex)
return indent(s:GetMSL(lnum, 0)) + shiftwidth()
endif
" If the previous line contained an opening bracket, and we are still in it,
" add indent depending on the bracket type.
if line =~ '[[({]'
let counts = s:LineHasOpeningBrackets(lnum)
if counts[0] == '1' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
if col('.') + 1 == col('$')
return ind + shiftwidth()
else
return virtcol('.')
endif
elseif counts[1] == '1' || counts[2] == '1'
return ind + shiftwidth()
else
call cursor(v:lnum, vcol)
end
endif
" 3.4. Work on the MSL line. {{{2
" --------------------------
let ind_con = ind
let ind = s:IndentWithContinuation(lnum, ind_con, shiftwidth())
" }}}2
"
"
let ols = s:InOneLineScope(lnum)
if ols > 0
let ind = ind + shiftwidth()
else
let ols = s:ExitingOneLineScope(lnum)
while ols > 0 && ind > 0
let ind = ind - shiftwidth()
let ols = s:InOneLineScope(ols - 1)
endwhile
endif
return ind
endfunction
" }}}1
let &cpo = s:cpo_save
unlet s:cpo_save
function! Fixedgq(lnum, count)
let l:tw = &tw ? &tw : 80;
let l:count = a:count
let l:first_char = indent(a:lnum) + 1
if mode() == 'i' " gq was not pressed, but tw was set
return 1
endif
" This gq is only meant to do code with strings, not comments
if s:IsLineComment(a:lnum, l:first_char) || s:IsInMultilineComment(a:lnum, l:first_char)
return 1
endif
if len(getline(a:lnum)) < l:tw && l:count == 1 " No need for gq
return 1
endif
" Put all the lines on one line and do normal spliting after that
if l:count > 1
while l:count > 1
let l:count -= 1
normal J
endwhile
endif
let l:winview = winsaveview()
call cursor(a:lnum, l:tw + 1)
let orig_breakpoint = searchpairpos(' ', '', '\.', 'bcW', '', a:lnum)
call cursor(a:lnum, l:tw + 1)
let breakpoint = searchpairpos(' ', '', '\.', 'bcW', s:skip_expr, a:lnum)
" No need for special treatment, normal gq handles edgecases better
if breakpoint[1] == orig_breakpoint[1]
call winrestview(l:winview)
return 1
endif
" Try breaking after string
if breakpoint[1] <= indent(a:lnum)
call cursor(a:lnum, l:tw + 1)
let breakpoint = searchpairpos('\.', '', ' ', 'cW', s:skip_expr, a:lnum)
endif
if breakpoint[1] != 0
call feedkeys("r\<CR>")
else
let l:count = l:count - 1
endif
" run gq on new lines
if l:count == 1
call feedkeys("gqq")
endif
return 0
endfunction

View File

@@ -1,9 +1,10 @@
" Language: xml " Language: xml
" Repository: https://github.com/chrisbra/vim-xml-ftplugin " Repository: https://github.com/chrisbra/vim-xml-ftplugin
" Last Changed: Feb 04, 2019 " Last Changed: July 27, 2019
" Maintainer: Christian Brabandt <cb@256bit.org> " Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org> " Previous Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: " Last Change:
" 20190726 - Correctly handle non-tagged data
" 20190204 - correctly handle wrap tags " 20190204 - correctly handle wrap tags
" https://github.com/chrisbra/vim-xml-ftplugin/issues/5 " https://github.com/chrisbra/vim-xml-ftplugin/issues/5
" 20190128 - Make sure to find previous tag " 20190128 - Make sure to find previous tag
@@ -33,6 +34,8 @@ set cpo&vim
" Attention: Parameter use_syntax_check is used by the docbk.vim indent script " Attention: Parameter use_syntax_check is used by the docbk.vim indent script
setlocal indentexpr=XmlIndentGet(v:lnum,1) setlocal indentexpr=XmlIndentGet(v:lnum,1)
setlocal indentkeys=o,O,*<Return>,<>>,<<>,/,{,},!^F setlocal indentkeys=o,O,*<Return>,<>>,<<>,/,{,},!^F
" autoindent: used when the indentexpr returns -1
setlocal autoindent
if !exists('b:xml_indent_open') if !exists('b:xml_indent_open')
let b:xml_indent_open = '.\{-}<[:A-Z_a-z]' let b:xml_indent_open = '.\{-}<[:A-Z_a-z]'
@@ -103,37 +106,43 @@ fun! XmlIndentGet(lnum, use_syntax_check)
return 0 return 0
endif endif
" Find previous line with a tag (regardless whether open or closed, " Find previous line with a tag (regardless whether open or closed,
" but always start restrict the match to a line before the current one " but always restrict the match to a line before the current one
" Note: xml declaration: <?xml version="1.0"?> " Note: xml declaration: <?xml version="1.0"?>
" won't be found, as it is not a legal tag name " won't be found, as it is not a legal tag name
let ptag_pattern = '\%(.\{-}<[/:A-Z_a-z]\)'. '\%(\&\%<'. line('.').'l\)' let ptag_pattern = '\%(.\{-}<[/:A-Z_a-z]\)'. '\%(\&\%<'. a:lnum .'l\)'
let ptag = search(ptag_pattern, 'bnW') let ptag = search(ptag_pattern, 'bnW')
" no previous tag " no previous tag
if ptag == 0 if ptag == 0
return 0 return 0
endif endif
let syn_name = '' let pline = getline(ptag)
let pind = indent(ptag)
let syn_name_start = '' " Syntax element at start of line (excluding whitespace)
let syn_name_end = '' " Syntax element at end of line
let curline = getline(a:lnum)
if a:use_syntax_check if a:use_syntax_check
let check_lnum = <SID>XmlIndentSynCheck(ptag) let check_lnum = <SID>XmlIndentSynCheck(ptag)
let check_alnum = <SID>XmlIndentSynCheck(a:lnum) let check_alnum = <SID>XmlIndentSynCheck(a:lnum)
if check_lnum == 0 || check_alnum == 0 if check_lnum == 0 || check_alnum == 0
return indent(a:lnum) return indent(a:lnum)
endif endif
let syn_name = synIDattr(synID(a:lnum, strlen(getline(a:lnum)) - 1, 1), 'name') let syn_name_end = synIDattr(synID(a:lnum, strlen(curline) - 1, 1), 'name')
let syn_name_start = synIDattr(synID(a:lnum, match(curline, '\S') + 1, 1), 'name')
endif endif
if syn_name =~ 'Comment' if syn_name_end =~ 'Comment' && syn_name_start =~ 'Comment'
return <SID>XmlIndentComment(a:lnum) return <SID>XmlIndentComment(a:lnum)
elseif empty(syn_name_start) && empty(syn_name_end)
" non-xml tag content: use indent from 'autoindent'
return pind + shiftwidth()
endif endif
let pline = getline(ptag)
let pind = indent(ptag)
" Get indent from previous tag line " Get indent from previous tag line
let ind = <SID>XmlIndentSum(pline, -1, pind) let ind = <SID>XmlIndentSum(pline, -1, pind)
let t_ind = ind
" Determine indent from current line " Determine indent from current line
let ind = <SID>XmlIndentSum(getline(a:lnum), 0, ind) let ind = <SID>XmlIndentSum(curline, 0, ind)
return ind return ind
endfun endfun
@@ -148,7 +157,7 @@ func! <SID>HasNoTagEnd(line)
endfunc endfunc
" return indent for a commented line, " return indent for a commented line,
" the middle part might be indented on additional level " the middle part might be indented one additional level
func! <SID>XmlIndentComment(lnum) func! <SID>XmlIndentComment(lnum)
let ptagopen = search(b:xml_indent_open, 'bnW') let ptagopen = search(b:xml_indent_open, 'bnW')
let ptagclose = search(b:xml_indent_close, 'bnW') let ptagclose = search(b:xml_indent_close, 'bnW')

View File

@@ -27,11 +27,11 @@ menutrans &Version &Верзија
menutrans &About &О\ програму menutrans &About &О\ програму
" File menu " File menu
menutrans &File &Датотека menutrans &File &Фајл
menutrans &Open\.\.\.<Tab>:e &Отвори\.\.\.<Tab>:e menutrans &Open\.\.\.<Tab>:e &Отвори\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Подели-отвори\.\.\.<Tab>:sp menutrans Sp&lit-Open\.\.\.<Tab>:sp &Подели-отвори\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew Отвори\ картицу\.\.\.<Tab>:tabnew menutrans Open\ Tab\.\.\.<Tab>:tabnew Отвори\ картицу\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew &Нова<Tab>:enew menutrans &New<Tab>:enew &Нов<Tab>:enew
menutrans &Close<Tab>:close &Затвори<Tab>:close menutrans &Close<Tab>:close &Затвори<Tab>:close
menutrans &Save<Tab>:w &Сачувај<Tab>:w menutrans &Save<Tab>:w &Сачувај<Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav Сачувај\ &као\.\.\.<Tab>:sav menutrans Save\ &As\.\.\.<Tab>:sav Сачувај\ &као\.\.\.<Tab>:sav
@@ -43,14 +43,14 @@ menutrans E&xit<Tab>:qa К&рај<Tab>:qa
" Edit menu " Edit menu
menutrans &Edit &Уређивање menutrans &Edit &Уређивање
menutrans &Undo<Tab>u &Врати<Tab>u menutrans &Undo<Tab>u &Поништи<Tab>u
menutrans &Redo<Tab>^R &Поврати<Tab>^R menutrans &Redo<Tab>^R &Врати\ измену<Tab>^R
menutrans Rep&eat<Tab>\. П&онови<Tab>\. menutrans Rep&eat<Tab>\. П&онови<Tab>\.
menutrans Cu&t<Tab>"+x Исе&ци<Tab>"+x menutrans Cu&t<Tab>"+x Исе&ци<Tab>"+x
menutrans &Copy<Tab>"+y &Копирај<Tab>"+y menutrans &Copy<Tab>"+y &Копирај<Tab>"+y
menutrans &Paste<Tab>"+gP &Убаци<Tab>"+gP menutrans &Paste<Tab>"+gP &Убаци<Tab>"+gP
menutrans &Paste<Tab>"+P &Убаци<Tab>"+gP menutrans &Paste<Tab>"+P &Убаци<Tab>"+P
menutrans Put\ &Before<Tab>[p Стави\ пре&д<Tab>[p menutrans Put\ &Before<Tab>[p Стави\ испре&д<Tab>[p
menutrans Put\ &After<Tab>]p Стави\ &иза<Tab>]p menutrans Put\ &After<Tab>]p Стави\ &иза<Tab>]p
menutrans &Delete<Tab>x Из&бриши<Tab>x menutrans &Delete<Tab>x Из&бриши<Tab>x
menutrans &Select\ all<Tab>ggVG Изабери\ св&е<Tab>ggVG menutrans &Select\ all<Tab>ggVG Изабери\ св&е<Tab>ggVG
@@ -59,11 +59,11 @@ menutrans Find\ and\ Rep&lace\.\.\. Нађи\ и\ &замени\.\.\.
menutrans Settings\ &Window П&розор\ подешавања menutrans Settings\ &Window П&розор\ подешавања
menutrans Startup\ &Settings По&дешавања\ при\ покретању menutrans Startup\ &Settings По&дешавања\ при\ покретању
menutrans &Global\ Settings Оп&шта\ подешавања menutrans &Global\ Settings Оп&шта\ подешавања
menutrans F&ile\ Settings Подешавања\ за\ да&тотеке menutrans F&ile\ Settings Подешавања\ за\ фај&лове
menutrans &Shiftwidth &Померај menutrans &Shiftwidth &Корак\ увлачења
menutrans Soft\ &Tabstop &Мека\ табулација menutrans Soft\ &Tabstop &Мека\ табулација
menutrans Te&xt\ Width\.\.\. &Ширина\ текста\.\.\. menutrans Te&xt\ Width\.\.\. &Ширина\ текста\.\.\.
menutrans &File\ Format\.\.\. &Врста\ датотеке\.\.\. menutrans &File\ Format\.\.\. &Врста\ фајла\.\.\.
menutrans Show\ C&olor\ Schemes\ in\ Menu Прикажи\ шеме\ бо&ја\ у\ менију menutrans Show\ C&olor\ Schemes\ in\ Menu Прикажи\ шеме\ бо&ја\ у\ менију
menutrans C&olor\ Scheme \Шеме\ бо&ја menutrans C&olor\ Scheme \Шеме\ бо&ја
menutrans Show\ &Keymaps\ in\ Menu Прикажи\ прес&ликавања\ тастатуре\ у\ менију menutrans Show\ &Keymaps\ in\ Menu Прикажи\ прес&ликавања\ тастатуре\ у\ менију
@@ -71,15 +71,15 @@ menutrans &Keymap Прес&ликавања\ тастатуре
menutrans Select\ Fo&nt\.\.\. Избор\ &фонта\.\.\. menutrans Select\ Fo&nt\.\.\. Избор\ &фонта\.\.\.
" Edit/Global Settings " Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Нагласи\ &образце\ (да/не)<Tab>:set\ hls! menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Истицање\ &шаблона\ (да/не)<Tab>:set\ hls!
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Занемари\ величину\ &слова\ (да/не)<Tab>:set\ ic! menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Занемари\ величину\ &слова\ (да/не)<Tab>:set\ ic!
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Провери\ пратећу\ &заграду\ (да/не)<Tab>:set\ sm! menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Прикажи\ упарену\ &заграду\ (да/не)<Tab>:set\ sm!
menutrans &Context\ lines Видљиви\ &редови menutrans &Context\ lines Видљиви\ &редови
menutrans &Virtual\ Edit Виртуелно\ &уређивање menutrans &Virtual\ Edit Виртуелно\ &уређивање
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Режим\ у&носа\ (да/не)<Tab>:set\ im! menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Режим\ У&метање\ (да/не)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ сагласно\ (да/не)<Tab>:set\ cp! menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ сагласно\ (да/не)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. Путања\ &претраге\.\.\. menutrans Search\ &Path\.\.\. Путања\ &претраге\.\.\.
menutrans Ta&g\ Files\.\.\. &Датотеке\ ознака\.\.\. menutrans Ta&g\ Files\.\.\. &Фајлови\ ознака\.\.\.
menutrans Toggle\ &Toolbar Линија\ са\ &алаткама\ (да/не) menutrans Toggle\ &Toolbar Линија\ са\ &алаткама\ (да/не)
menutrans Toggle\ &Bottom\ Scrollbar Доња\ л&инија\ клизања\ (да/не) menutrans Toggle\ &Bottom\ Scrollbar Доња\ л&инија\ клизања\ (да/не)
menutrans Toggle\ &Left\ Scrollbar &Лева\ линија\ клизања\ (да/не) menutrans Toggle\ &Left\ Scrollbar &Лева\ линија\ клизања\ (да/не)
@@ -88,8 +88,8 @@ menutrans Toggle\ &Right\ Scrollbar &Десна\ линија\ клизања\ (
" Edit/Global Settings/Virtual Edit " Edit/Global Settings/Virtual Edit
menutrans Never Никад menutrans Never Никад
menutrans Block\ Selection Избор\ блока menutrans Block\ Selection Избор\ блока
menutrans Insert\ mode Режим\ уноса menutrans Insert\ mode Режим\ Уметање
menutrans Block\ and\ Insert Блок\ и\ унос menutrans Block\ and\ Insert Блок\ и\ Уметање
menutrans Always Увек menutrans Always Увек
" Edit/File Settings " Edit/File Settings
@@ -109,13 +109,13 @@ menutrans None Без\ пресликавања
menutrans &Tools &Алатке menutrans &Tools &Алатке
menutrans &Jump\ to\ this\ tag<Tab>g^] Скочи\ на\ &ову\ ознаку<Tab>g^] menutrans &Jump\ to\ this\ tag<Tab>g^] Скочи\ на\ &ову\ ознаку<Tab>g^]
menutrans Jump\ &back<Tab>^T Скочи\ &натраг<Tab>^T menutrans Jump\ &back<Tab>^T Скочи\ &натраг<Tab>^T
menutrans Build\ &Tags\ File Изгради\ &датотеку\ ознака menutrans Build\ &Tags\ File Изгради\ &фајл\ ознака
menutrans &Spelling Пра&вопис menutrans &Spelling Пра&вопис
menutrans &Folding &Подвијање menutrans &Folding &Подвијање
menutrans Create\ &Fold<Tab>zf С&твори\ подвијутак<Tab>zf menutrans Create\ &Fold<Tab>zf С&твори\ свијутак<Tab>zf
menutrans &Delete\ Fold<Tab>zd О&бриши\ подвијутак<Tab>zd menutrans &Delete\ Fold<Tab>zd О&бриши\ свијутак<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD Обриши\ све\ по&двијутке<Tab>zD menutrans Delete\ &All\ Folds<Tab>zD Обриши\ све\ св&ијутке<Tab>zD
menutrans Fold\ column\ &width Ширина\ &реда\ подвијутка menutrans Fold\ column\ &width Ширина\ &реда\ цвијутка
"menutrans &Diff &Упоређивање "menutrans &Diff &Упоређивање
menutrans &Make<Tab>:make 'mak&е'<Tab>:make menutrans &Make<Tab>:make 'mak&е'<Tab>:make
menutrans &List\ Errors<Tab>:cl Списак\ &грешака<Tab>:cl menutrans &List\ Errors<Tab>:cl Списак\ &грешака<Tab>:cl
@@ -146,15 +146,15 @@ menutrans Set\ Language\ to\ "en_us" Постави\ језик\ на\ "en_us"
menutrans &Find\ More\ Languages Пронађи\ још\ језика menutrans &Find\ More\ Languages Пронађи\ још\ језика
" Tools/Folding " Tools/Folding
menutrans &Enable/Disable\ folds<Tab>zi &Омогући/прекини\ подвијање<Tab>zi menutrans &Enable/Disable\ folds<Tab>zi &Омогући/прекини\ свијање<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv &Покажи\ ред\ са\ курсором<Tab>zv menutrans &View\ Cursor\ Line<Tab>zv &Покажи\ ред\ са\ курсором<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Покажи\ &само\ ред\ са\ курсором<Tab>zMzx menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Покажи\ &само\ ред\ са\ курсором<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm &Затвори\ више\ подвијутака<Tab>zm menutrans C&lose\ more\ folds<Tab>zm &Затвори\ више\ свијутака<Tab>zm
menutrans &Close\ all\ folds<Tab>zM Затвори\ с&ве\ подвијутке<Tab>zM menutrans &Close\ all\ folds<Tab>zM Затвори\ с&ве\ свијутке<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr Отвори\ виш&е\ подвијутака<Tab>zr menutrans O&pen\ more\ folds<Tab>zr Отвори\ виш&е\ свијутака<Tab>zr
menutrans &Open\ all\ folds<Tab>zR О&твори\ све\ подвијутке<Tab>zR menutrans &Open\ all\ folds<Tab>zR О&твори\ све\ свијутке<Tab>zR
menutrans Fold\ Met&hod &Начин\ подвијања menutrans Fold\ Met&hod &Начин\ подвијања
menutrans Fold\ Col&umn\ Width Ширина\ колоне\ испред\ подвијутака menutrans Fold\ Col&umn\ Width Ширина\ колоне\ испред\ свијутака
" Tools/Folding/Fold Method " Tools/Folding/Fold Method
menutrans M&anual &Ручно menutrans M&anual &Ручно
@@ -181,7 +181,7 @@ menutrans Delete &Обриши
menutrans &Alternate А&лтернативни menutrans &Alternate А&лтернативни
menutrans &Next &Следећи menutrans &Next &Следећи
menutrans &Previous &Претходни menutrans &Previous &Претходни
menutrans [No\ File] [Нема\ датотеке] menutrans [No\ File] [Нема\ фајла]
" Window menu " Window menu
menutrans &Window &Прозор menutrans &Window &Прозор
@@ -189,7 +189,7 @@ menutrans &New<Tab>^Wn &Нови<Tab>^Wn
menutrans S&plit<Tab>^Ws &Подели<Tab>^Ws menutrans S&plit<Tab>^Ws &Подели<Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^ Подели\ са\ &алтернативним<Tab>^W^^ menutrans Sp&lit\ To\ #<Tab>^W^^ Подели\ са\ &алтернативним<Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv Подели\ &усправно<Tab>^Wv menutrans Split\ &Vertically<Tab>^Wv Подели\ &усправно<Tab>^Wv
menutrans Split\ File\ E&xplorer Подели\ за\ преглед\ &датотека menutrans Split\ File\ E&xplorer Подели\ за\ преглед\ &фајлова
menutrans &Close<Tab>^Wc &Затвори<Tab>^Wc menutrans &Close<Tab>^Wc &Затвори<Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo Затвори\ &остале<Tab>^Wo menutrans Close\ &Other(s)<Tab>^Wo Затвори\ &остале<Tab>^Wo
"menutrans Ne&xt<Tab>^Ww &Следећи<Tab>^Ww "menutrans Ne&xt<Tab>^Ww &Следећи<Tab>^Ww
@@ -210,7 +210,7 @@ menutrans &Left\ side<Tab>^WH У&лево<Tab>^WH
menutrans &Right\ side<Tab>^WL У&десно<Tab>^WL menutrans &Right\ side<Tab>^WL У&десно<Tab>^WL
" The popup menu " The popup menu
menutrans &Undo &Врати menutrans &Undo &Поништи
menutrans Cu&t &Исеци menutrans Cu&t &Исеци
menutrans &Copy &Копирај menutrans &Copy &Копирај
menutrans &Paste &Убаци menutrans &Paste &Убаци
@@ -218,7 +218,7 @@ menutrans &Delete И&збриши
menutrans Select\ Blockwise Бирај\ б&локовски menutrans Select\ Blockwise Бирај\ б&локовски
menutrans Select\ &Word Изабери\ &реч menutrans Select\ &Word Изабери\ &реч
menutrans Select\ &Sentence Изабери\ р&еченицу menutrans Select\ &Sentence Изабери\ р&еченицу
menutrans Select\ Pa&ragraph Изабери\ &параграф menutrans Select\ Pa&ragraph Изабери\ &пасус
menutrans Select\ &Line Изабери\ р&ед menutrans Select\ &Line Изабери\ р&ед
menutrans Select\ &Block Изабери\ &блок menutrans Select\ &Block Изабери\ &блок
menutrans Select\ &All Изабери\ &све menutrans Select\ &All Изабери\ &све
@@ -264,13 +264,13 @@ endif
" Syntax menu " Syntax menu
menutrans &Syntax &Синтакса menutrans &Syntax &Синтакса
menutrans &Show\ File\ Types\ in\ Menu Прикажи\ типове\ датотека\ у\ &менију menutrans &Show\ File\ Types\ in\ Menu Прикажи\ типове\ фајлова\ у\ &менију
menutrans Set\ '&syntax'\ only Поде&си\ само\ 'syntax' menutrans Set\ '&syntax'\ only Поде&си\ само\ 'syntax'
menutrans Set\ '&filetype'\ too Подеси\ &такође\ и\ 'filetype' menutrans Set\ '&filetype'\ too Подеси\ &такође\ и\ 'filetype'
menutrans &Off &Искључено menutrans &Off &Искључено
menutrans &Manual &Ручно menutrans &Manual &Ручно
menutrans A&utomatic &Аутоматски menutrans A&utomatic &Аутоматски
menutrans on/off\ for\ &This\ file Да/не\ за\ ову\ &датотеку menutrans on/off\ for\ &This\ file Да/не\ за\ овај\ &фајл
menutrans Co&lor\ test Провера\ &боја menutrans Co&lor\ test Провера\ &боја
menutrans &Highlight\ test Провера\ исти&цања menutrans &Highlight\ test Провера\ исти&цања
menutrans &Convert\ to\ HTML Претвори\ &у\ HTML menutrans &Convert\ to\ HTML Претвори\ &у\ HTML
@@ -278,17 +278,17 @@ menutrans &Convert\ to\ HTML Претвори\ &у\ HTML
" dialog texts " dialog texts
let menutrans_help_dialog = "Унесите наредбу или реч чије појашњење тражите:\n\nДодајте i_ за наредбе уноса (нпр. i_CTRL-X)\nДодајте c_ за наредбе командног режима (нпр. с_<Del>)\nДодајте ' за имена опција (нпр. 'shiftwidth')" let menutrans_help_dialog = "Унесите наредбу или реч чије појашњење тражите:\n\nДодајте i_ за наредбе уноса (нпр. i_CTRL-X)\nДодајте c_ за наредбе командног режима (нпр. с_<Del>)\nДодајте ' за имена опција (нпр. 'shiftwidth')"
let g:menutrans_path_dialog = "Унесите пут претраге за датотеке\nРаздвојите зарезима имена директоријума." let g:menutrans_path_dialog = "Унесите путању претраге за фајлове\nРаздвојите зарезима имена директоријума."
let g:menutrans_tags_dialog = "Унесите имена датотека са ознакама\nРаздвојите зарезима имена." let g:menutrans_tags_dialog = "Унесите имена фајлова са ознакама\nРаздвојите зарезима имена."
let g:menutrans_textwidth_dialog = "Унесите нову ширину текста (0 спречава прелом)" let g:menutrans_textwidth_dialog = "Унесите нову ширину текста (0 спречава прелом)"
let g:menutrans_fileformat_dialog = "Изаберите формат записа датотеке" let g:menutrans_fileformat_dialog = "Изаберите формат записа фајла"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Откажи" let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Откажи"
let menutrans_no_file = "[Нема датотеке]" let menutrans_no_file = "[Нема фајла]"
let &cpo = s:keepcpo let &cpo = s:keepcpo
unlet s:keepcpo unlet s:keepcpo

View File

@@ -272,6 +272,7 @@ SynMenu HIJK.HTML.HTML\ with\ M4:htmlm4
SynMenu HIJK.HTML.HTML\ with\ Ruby\ (eRuby):eruby SynMenu HIJK.HTML.HTML\ with\ Ruby\ (eRuby):eruby
SynMenu HIJK.HTML.Cheetah\ HTML\ template:htmlcheetah SynMenu HIJK.HTML.Cheetah\ HTML\ template:htmlcheetah
SynMenu HIJK.HTML.Django\ HTML\ template:htmldjango SynMenu HIJK.HTML.Django\ HTML\ template:htmldjango
SynMenu HIJK.HTML.Vue.js\ HTML\ template:vuejs
SynMenu HIJK.HTML.HTML/OS:htmlos SynMenu HIJK.HTML.HTML/OS:htmlos
SynMenu HIJK.HTML.XHTML:xhtml SynMenu HIJK.HTML.XHTML:xhtml
SynMenu HIJK.Host\.conf:hostconf SynMenu HIJK.Host\.conf:hostconf

View File

@@ -1,7 +1,7 @@
" These commands create the option window. " These commands create the option window.
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 Feb 08 " Last Change: 2019 Aug 01
" If there already is an option window, jump to that one. " If there already is an option window, jump to that one.
let buf = bufnr('option-window') let buf = bufnr('option-window')
@@ -415,6 +415,9 @@ call append("$", "highlight\twhich highlighting to use for various occasions")
call <SID>OptionG("hl", &hl) call <SID>OptionG("hl", &hl)
call append("$", "hlsearch\thighlight all matches for the last used search pattern") call append("$", "hlsearch\thighlight all matches for the last used search pattern")
call <SID>BinOptionG("hls", &hls) call <SID>BinOptionG("hls", &hls)
call append("$", "wincolor\thighlight group to use for the window")
call append("$", "\t(local to window)")
call <SID>OptionL("wcr")
if has("termguicolors") if has("termguicolors")
call append("$", "termguicolors\tuse GUI colors for the terminal") call append("$", "termguicolors\tuse GUI colors for the terminal")
call <SID>BinOptionG("tgc", &tgc) call <SID>BinOptionG("tgc", &tgc)
@@ -476,6 +479,8 @@ call append("$", " \tset wmw=" . &wmw)
call append("$", "helpheight\tinitial height of the help window") call append("$", "helpheight\tinitial height of the help window")
call append("$", " \tset hh=" . &hh) call append("$", " \tset hh=" . &hh)
if has("quickfix") if has("quickfix")
call append("$", "previewpopup\tuse a popup window for preview")
call append("$", " \tset pvp=" . &pvp)
call append("$", "previewheight\tdefault height for the preview window") call append("$", "previewheight\tdefault height for the preview window")
call append("$", " \tset pvh=" . &pvh) call append("$", " \tset pvh=" . &pvh)
call append("$", "previewwindow\tidentifies the preview window") call append("$", "previewwindow\tidentifies the preview window")
@@ -988,6 +993,8 @@ call <SID>Header("reading and writing files")
call append("$", "modeline\tenable using settings from modelines when reading a file") call append("$", "modeline\tenable using settings from modelines when reading a file")
call append("$", "\t(local to buffer)") call append("$", "\t(local to buffer)")
call <SID>BinOptionL("ml") call <SID>BinOptionL("ml")
call append("$", "modelineexpr\tallow setting expression options from a modeline")
call <SID>BinOptionG("mle", &mle)
call append("$", "modelines\tnumber of lines to check for modelines") call append("$", "modelines\tnumber of lines to check for modelines")
call append("$", " \tset mls=" . &mls) call append("$", " \tset mls=" . &mls)
call append("$", "binary\tbinary file editing") call append("$", "binary\tbinary file editing")
@@ -1169,6 +1176,8 @@ if has("win32") || has("osfiletype")
if has("win32") if has("win32")
call append("$", "shellslash\tuse forward slashes in file names; for Unix-like shells") call append("$", "shellslash\tuse forward slashes in file names; for Unix-like shells")
call <SID>BinOptionG("ssl", &ssl) call <SID>BinOptionG("ssl", &ssl)
call append("$", "completeslash\tspecifies slash/backslash used for completion")
call <SID>OptionG("csl", &csl)
endif endif
endif endif

View File

@@ -117,10 +117,14 @@ func s:StartDebug_internal(dict)
let s:startsigncolumn = &signcolumn let s:startsigncolumn = &signcolumn
let s:save_columns = 0 let s:save_columns = 0
let s:allleft = 0
if exists('g:termdebug_wide') if exists('g:termdebug_wide')
if &columns < g:termdebug_wide if &columns < g:termdebug_wide
let s:save_columns = &columns let s:save_columns = &columns
let &columns = g:termdebug_wide let &columns = g:termdebug_wide
" If we make the Vim window wider, use the whole left halve for the debug
" windows.
let s:allleft = 1
endif endif
let s:vertical = 1 let s:vertical = 1
else else
@@ -165,6 +169,10 @@ func s:StartDebug_term(dict)
" Assuming the source code window will get a signcolumn, use two more " Assuming the source code window will get a signcolumn, use two more
" columns for that, thus one less for the terminal window. " columns for that, thus one less for the terminal window.
exe (&columns / 2 - 1) . "wincmd |" exe (&columns / 2 - 1) . "wincmd |"
if s:allleft
" use the whole left column
wincmd H
endif
endif endif
" Create a hidden terminal window to communicate with gdb " Create a hidden terminal window to communicate with gdb
@@ -830,12 +838,12 @@ endfunc
" if there is any. " if there is any.
func TermDebugBalloonExpr() func TermDebugBalloonExpr()
if v:beval_winid != s:sourcewin if v:beval_winid != s:sourcewin
return return ''
endif endif
if !s:stopped if !s:stopped
" Only evaluate when stopped, otherwise setting a breakpoint using the " Only evaluate when stopped, otherwise setting a breakpoint using the
" mouse triggers a balloon. " mouse triggers a balloon.
return return ''
endif endif
let s:evalFromBalloonExpr = 1 let s:evalFromBalloonExpr = 1
let s:evalFromBalloonExprResult = '' let s:evalFromBalloonExprResult = ''

View File

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

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types in scripts " Vim support file to detect file types in scripts
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2018 Feb 03 " Last change: 2019 Jun 25
" This file is called by an autocommand for every file that has just been " This file is called by an autocommand for every file that has just been
" loaded into a buffer. It checks if the type of file can be recognized by " loaded into a buffer. It checks if the type of file can be recognized by
@@ -195,7 +195,7 @@ else
if s:line1 =~# '^:$' if s:line1 =~# '^:$'
call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim
" Z shell scripts " Z shell scripts
elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' || elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
\ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~# '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>' \ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~# '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
set ft=zsh set ft=zsh
@@ -204,15 +204,20 @@ else
elseif s:line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$' elseif s:line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
set ft=mail set ft=mail
" Mason " Mason
elseif s:line1 =~# '^<[%&].*>' elseif s:line1 =~# '^<[%&].*>'
set ft=mason set ft=mason
" Vim scripts (must have '" vim' as the first line to trigger this) " Vim scripts (must have '" vim' as the first line to trigger this)
elseif s:line1 =~# '^" *[vV]im$' elseif s:line1 =~# '^" *[vV]im$'
set ft=vim set ft=vim
" MOO " libcxx and libstdc++ standard library headers like "iostream" do not have
" an extension, recognize the Emacs file mode.
elseif s:line1 =~? '-\*-.*C++.*-\*-'
set ft=cpp
" MOO
elseif s:line1 =~# '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$' elseif s:line1 =~# '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
set ft=moo set ft=moo

View File

@@ -1,580 +0,0 @@
*** de_DE.orig.aff 2019-01-19 18:45:26.132522538 +0100
--- de_DE.aff 2019-01-19 19:23:37.233297530 +0100
***************
*** 15,16 ****
--- 15,46 ----
+ FOL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ LOW <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ UPP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+
+ MIDWORD '
+
+ MAP 9
+ MAP a<><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ MAP e<><65><EFBFBD><EFBFBD>
+ MAP i<><69><EFBFBD><EFBFBD>
+ MAP o<><6F><EFBFBD><EFBFBD><EFBFBD>
+ MAP u<><75><EFBFBD><EFBFBD>
+ MAP n<>
+ MAP c<>
+ MAP y<><79>
+ MAP s<>
+
+ COMPOUNDRULE xy?z
+ #COMPOUNDBEGIN x
+ #COMPOUNDMIDDLE y
+ #COMPOUNDEND z
+
+ # Prefixes are allowed at the beginning of compounds,
+ # suffixes are allowed at the end of compounds by default:
+ # (prefix)?(root)+(affix)?
+ # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
+ COMPOUNDPERMITFLAG c
+
+ ONLYINCOMPOUND o
+
PFX U Y 1
***************
*** 536,553 ****
#LANG de_DE
! CHECKSHARPS
!
- COMPOUNDBEGIN x
- COMPOUNDMIDDLE y
- COMPOUNDEND z
FORBIDDENWORD d
- # Prefixes are allowed at the beginning of compounds,
- # suffixes are allowed at the end of compounds by default:
- # (prefix)?(root)+(affix)?
- # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
- COMPOUNDPERMITFLAG c
-
- ONLYINCOMPOUND o
-
# my PSEUDOROOT h(elper) flag
--- 566,571 ----
#LANG de_DE
! # CHECKSHARPS
FORBIDDENWORD d
# my PSEUDOROOT h(elper) flag
***************
*** 571,573 ****
! WORDCHARS <20>-.
--- 589,591 ----
! # WORDCHARS <20>-.
***************
*** 725,729 ****
# So enabling this is the lesser evil. No perfect solution found so far...
! BREAK 2
! BREAK -
! BREAK .
!
--- 743,1241 ----
# So enabling this is the lesser evil. No perfect solution found so far...
! # BREAK 2
! # BREAK -
! # BREAK .
!
! # German phonetic transformation rules for use with Aspell
! # Copyright (C) 2000 Bj<42>rn Jacke
! #
! # This library is free software; you can redistribute it and/or
! # modify it under the terms of the GNU Lesser General Public
! # License version 2.1 as published by the Free Software Foundation;
! #
! # This library is distributed in the hope that it will be useful,
! # but WITHOUT ANY WARRANTY; without even the implied warranty of
! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! # Lesser General Public License for more details.
! #
! # You should have received a copy of the GNU Lesser General Public
! # License along with this library; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
! #
! # Bj<42>rn Jacke may be reached by email at bjoern.jacke@gmx.de
! #
! # Changelog:
! #
! # 2000-01-05 Bj<42>rn Jacke <bjoern.jacke@gmx.de>
! # Initial Release
! # 2000-01-07 Kevin Atkinson <kevinatk@home.com>
! # Converted from header to data file.
! SAL followup 1
! SAL collapse_result 1
!
! SAL <20>ER- E
! SAL <20>U< EU
! SAL <20>< E
! SAL <20> E
! SAL <20>ER- <20>
! SAL <20> <20>
! SAL <20>BER^^ IPA
! SAL <20>ER- I
! SAL <20> I
! SAL <20> Z
! SAL ABELLE$ APL
! SAL ABELL$ APL
! SAL ABIENNE$ APIN
! SAL ACEY$ AZI
! SAL AEU< EU
! SAL AE2 E
! SAL AGNI-^ AKN
! SAL AGNIE- ANI
! SAL AGN(AEOU)-$ ANI
! SAL AIA2 AIA
! SAL AIE$ E
! SAL AILL(EOU)- ALI
! SAL AINE$ EN
! SAL AIRE$ ER
! SAL AIR- E
! SAL AISE$ EZ
! SAL AISSANCE$ EZANZ
! SAL AISSE$ EZ
! SAL AIX$ EX
! SAL AJ(A<>EIO<49>U<EFBFBD>)-- A
! SAL AKTIE AXIE
! SAL ALO(IY)^ ALUI
! SAL AMATEU(RS)- ANAT<41>
! SAL ANIELLE$ ANIL
! SAL ANTI^^ ANTI
! SAL ANVER^^ ANFA
! SAL ATIA$ ATIA
! SAL ATIA(NS)-- ATI
! SAL ATI(A<>O<EFBFBD>U<EFBFBD>)- AZI
! SAL AUAU-- _
! SAL AUER< AUA
! SAL AUF^^ AUF
! SAL AULT$ U
! SAL AUSSE$ UZ
! SAL AUS(ST)-^ AUZ
! SAL AUS^^ AUZ
! SAL AUTO^^ AUTU
! SAL AUX(IY)- AUX
! SAL AUX U
! SAL AU AU
! SAL AVIER$ AFIE
! SAL AYER--< EI
! SAL AY(A<>EIO<49>U<EFBFBD>)-- A
! SAL A(IJY)< EI
! SAL A A
! SAL BEA(BCMNRU)-^ PEA
! SAL BEAT(AEIMORU)-^ PEAT
! SAL BEIGE^$ PEZ
! SAL BE(LMNRST)-^ PE
! SAL BETTE$ PET
! SAL BIC$ PIZ
! SAL BOWL(EI)- PUL
! SAL BP(A<>EIO<49>RU<52>Y)- P
! SAL BUDGET7 PIKE
! SAL BUFFET7 PIFE
! SAL BYLLE$ PILE
! SAL BYLL$ PIL
! SAL BYTE< PEIT
! SAL B P
! SAL C<>- Z
! SAL C<>$ ZI
! SAL CACH(EI)-^ KEZ
! SAL CAE-- Z
! SAL CA(IY)$ ZEI
! SAL CCH Z
! SAL CCE- X
! SAL CE(EIJUY)-- Z
! SAL CENT< ZENT
! SAL CERST(EI)----^ KE
! SAL CER$ ZA
! SAL CE3 ZE
! SAL CHAO(ST)- KAU
! SAL CHAMPIO-^ ZENPI
! SAL CHAR(AI)-^ KAR
! SAL CHAU(CDFSVWXZ)- ZU
! SAL CHE(CF)- ZE
! SAL CHEM-^ KE
! SAL CHEQUE< ZEK
! SAL CHI(CFGPVW)- ZI
! SAL CH(AEUY)-<^ Z
! SAL CHK- _
! SAL CH(LOR)-<^ K
! SAL CHST- X
! SAL CH(S<>XZ)3 X
! SAL CH K
! SAL CIER$ ZIE
! SAL CYB-^ ZEI
! SAL CY9^ ZI
! SAL C(IJY)-3 Z
! SAL CKST XT
! SAL CK(S<>XZ)3 X
! SAL C(CK)- _
! SAL CLAUDET--- KLU
! SAL CLAUDINE^$ KLUTIN
! SAL COLE$ KUL
! SAL COUCH KAUZ
! SAL CQUES$ K
! SAL CQUE K
! SAL CREAT-^ KREA
! SAL CST XT
! SAL CS<^ Z
! SAL C(S<>X) X
! SAL CT(S<>XZ) X
! SAL CZ< Z
! SAL C< K
! SAL D'H^ T
! SAL D'S3$ Z
! SAL DAVO(NR)-^$ TAFU
! SAL DD(SZ)--< _
! SAL DEPOT7 TEPU
! SAL DESIGN TIZEIN
! SAL DE(LMNRST)-3^ TE
! SAL DETTE$ TET
! SAL DIC$ TIZ
! SAL DJ(AEIOU)-^ I
! SAL DS(CH)--< T
! SAL DST ZT
! SAL DT- _
! SAL DUIS-^ TI
! SAL DURCH^^ TURK
! SAL DZS(CH)-- T
! SAL D(S<>Z) Z
! SAL D T
! SAL EAULT$ U
! SAL EAUX$ U
! SAL EAU U
! SAL EAV IF
! SAL EA(A<>EIO<49><4F>Y)-3 EA
! SAL EA3$ EA
! SAL EA3 I
! SAL EBEN^^ EPN
! SAL EE9 E
! SAL EIEI-- _
! SAL EIH-- E
! SAL EILLE$ EI
! SAL EI EI
! SAL EJ$ EI
! SAL EL-^ E
! SAL EL(DKL)--1 E
! SAL EL(MNT)--1$ E
! SAL ELYNE$ ELINE
! SAL ELYN$ ELIN
! SAL EL(A<>EIO<49>U<EFBFBD>Y)-1 EL
! SAL EL-1 L
! SAL EM-^ E
! SAL EM(DFKMPQT)--1 E
! SAL EM(A<>EIO<49>U<EFBFBD>Y)--1 E
! SAL EM-1 N
! SAL EN-^ E
! SAL EN(CDGKQT)--1 E
! SAL ENZ(AEIOUY)--1 EN
! SAL EN(A<>EINO<4E>U<EFBFBD>Y)-1 EN
! SAL EN-<1 N
! SAL ERH(A<>EIO<49>U<EFBFBD>)-^ ER
! SAL ER-^ E
! SAL ER(A<>EIO<49>U<EFBFBD>Y)-1 A
! SAL ER1$ A
! SAL ER<1 A
! SAL ETI(A<>O<EFBFBD><4F>U)- EZI
! SAL EUEU-- _
! SAL EUILLE$ <20>
! SAL EUR$ <20>R
! SAL EUX <20>
! SAL EUYS$ EUZ
! SAL EU EU
! SAL EYER< EIA
! SAL EY< EI
! SAL E E
! SAL FANS--^$ FE
! SAL FAN-^$ FE
! SAL FAULT- FUL
! SAL FEE(DL)- FI
! SAL FEHLER FELA
! SAL FE(LMNRST)-3^ FE
! SAL FOND7 FUN
! SAL FRAIN$ FRA
! SAL FRISEU(RS)- FRIZ<49> # x
! SAL F F
! SAL G'S$ X
! SAL GAGS^$ KEX
! SAL GAG^$ KEK
! SAL GD KT
! SAL GEGEN^^ KEKN
! SAL GE(LMNRST)-3^ KE
! SAL GETTE$ KET
! SAL G(CK)- _
! SAL GG- _
! SAL GI(AO)-^ I
! SAL GION$ KIUN
! SAL GIUS-^ IU
! SAL GMBH^$ GMPH
! SAL GNAC$ NIAK
! SAL GNON$ NIUN
! SAL GN$ N
! SAL GONCAL-^ KUNZA
! SAL GS(CH)-- K
! SAL GST XT
! SAL G(S<>XZ) X
! SAL GUCK- KU
! SAL GUI-^ K
! SAL G K
! SAL HEAD- E
! SAL HE(LMNRST)-3^ E
! SAL HE(LMN)-1 E
! SAL HEUR1$ <20>R
! SAL H^ _
! SAL IEC$ IZ
! SAL IEI-3 _
! SAL IELL3 IEL
! SAL IENNE$ IN
! SAL IERRE$ IER
! SAL IETTE$ IT
! SAL IEU I<>
! SAL IE<4 I
! SAL IGHT3$ EIT
! SAL IGNI(EO)- INI
! SAL IGN(AEOU)-$ INI
! SAL IJ(AOU)- I
! SAL IJ$ I
! SAL IJ< EI
! SAL IKOLE$ IKUL
! SAL ILLAN(STZ)-- ILIA
! SAL ILLAR(DT)-- ILIA
! SAL INVER- INFE
! SAL ITI(A<>O<EFBFBD>U<EFBFBD>)- IZI
! SAL IVIER$ IFIE
! SAL I I
! SAL JAVIE---<^ ZA
! SAL JEAN^$ IA
! SAL JEAN-^ IA
! SAL JER-^ IE
! SAL JE(LMNST)- IE
! SAL JOR(GK)^$ I<>RK
! SAL J I
! SAL KC(<28>EIJ)- X
! SAL KE(LMNRST)-3^ KE
! SAL KH<^ K
! SAL KIC$ KIZ
! SAL KLE(LMNRST)-3^ KLE
! SAL KOTELE-^ KUTL
! SAL KREAT-^ KREA
! SAL KST XT
! SAL K(S<>XZ) X
! SAL KTI(AIOU)-3 XI
! SAL KT(S<>XZ) X
! SAL K K
! SAL LARVE- LARF
! SAL LEAND-^ LEAN
! SAL LEL- LE
! SAL LE(MNRST)-3^ LE
! SAL LETTE$ LET
! SAL LFGNAG- LFKAN
! SAL LIC$ LIZ
! SAL LIVE^$ LEIF
! SAL LUI(GS)-- LU
! SAL L L
! SAL MASSEU(RS)- NAZ<41>
! SAL MAURICE NURIZ
! SAL MBH^$ MPH
! SAL MB(S<>Z)- N
! SAL MC9^ NK
! SAL MEMOIR-^ NENUA
! SAL ME(LMNRST)-3^ NE
! SAL MIGUEL NIKL
! SAL MIKE^$ NEIK
! SAL MN N
! SAL MPJUTE- NPUT
! SAL MP(S<>Z)- N
! SAL MP(BDJLMNPQRTVW)- NP
! SAL M N
! SAL NACH^^ NAK
! SAL NADINE NATIN
! SAL NAIV-- NA
! SAL NAISE$ NEZE
! SAL NCOISE$ ZUA
! SAL NCOIS$ ZUA
! SAL NEBEN^^ NEPN
! SAL NE(LMNRST)-3^ NE
! SAL NEN-3 NE
! SAL NETTE$ NET
! SAL NG(BDFJLMNPQRTVW)- NK
! SAL NICHTS^^ NIX
! SAL NICHT^^ NIKT
! SAL NINE$ NIN
! SAL NON^^ NUN
! SAL NOT^^ NUT
! SAL NTI(AIOU)-3 NZI
! SAL NTIEL--3 NZI
! SAL NYLON NEILUN
! SAL ND(S<>Z)$ NZ
! SAL NT(S<>Z)$ NZ
! SAL ND'S$ NZ
! SAL NT'S$ NZ
! SAL NSTS$ NZ
! SAL N N
! SAL OBER^^ UPA
! SAL OE2 <20>
! SAL OGNIE- UNI
! SAL OGN(AEOU)-$ UNI
! SAL OIE$ <20>
! SAL OIR$ UAR
! SAL OIX UA
! SAL OI<3 EU
! SAL OJ(A<>EIO<49>U<EFBFBD>)-- U
! SAL OKAY^$ UKE
! SAL OLYN$ ULIN
! SAL OTI(A<>O<EFBFBD>U<EFBFBD>)- UZI
! SAL OUI^ FI
! SAL OUILLE$ ULIE
! SAL OU(DT)-^ AU
! SAL OUSE$ AUZ
! SAL OUT- AU
! SAL OU U
! SAL OWS$ UZ
! SAL OY(A<>EIO<49>U<EFBFBD>)-- U
! SAL O(JY)< EU
! SAL O U
! SAL PATIEN--^ PAZI
! SAL PENSIO-^ PANZI
! SAL PE(LMNRST)-3^ PE
! SAL PFER-^ FE
! SAL P(FH)< F
! SAL POLY^^ PULI
! SAL PORTRAIT7 PURTRE
! SAL PP(FH)--< P
! SAL PP- _
! SAL PRIX^$ PRI
! SAL P(S<>Z)^ Z
! SAL PTI(A<>O<EFBFBD>U<EFBFBD>)-3 PZI
! SAL PIC^$ PIK
! SAL P P
! SAL QUE(LMNRST)-3 KFE
! SAL QUE$ K
! SAL QUI(NS)$ KI
! SAL QU KF
! SAL Q< K
! SAL RCH RK
! SAL RECHERCH^ REZAZ
! SAL RER$ RA
! SAL RE(MNR)-4 RE
! SAL RETTE$ RET
! SAL RH<^ R
! SAL RJA(MN)-- RI
! SAL RTI(A<>O<EFBFBD>U<EFBFBD>)-3 RZI
! SAL RY(KN)-$ RI
! SAL R R
! SAL SAFE^$ ZEIF
! SAL SAUCE-^ ZUZ
! SAL SCHSCH---7 _
! SAL SCHTSCH Z
! SAL SC(HZ)< Z
! SAL SC ZK
! SAL SELBSTST--7^^ ZELP
! SAL SELBST7^^ ZELPZT
! SAL SERVICE7^ Z<>RFIZ
! SAL SE(LMNRST)-3^ ZE
! SAL SETTE$ ZET
! SAL SHP-^ Z
! SAL SHST ZT
! SAL SHTSH Z
! SAL SHT Z
! SAL SH3 Z
! SAL SIEGLI-^ ZIKL
! SAL SIGLI-^ ZIKL
! SAL SIGHT ZEIT
! SAL SIGN ZEIN
! SAL SKI(NPZ)- ZKI
! SAL SKI<^ ZI
! SAL SOUND- ZAUN
! SAL STAATS^^ ZTAZ
! SAL STADT^^ ZTAT
! SAL START^^ ZTART
! SAL STAURANT7 ZTURAN
! SAL STEAK- ZTE
! SAL STRAF^^ ZTRAF
! SAL ST'S$ Z
! SAL STST-- _
! SAL STS(ACEHIOU<4F><55><EFBFBD>)-- ZT
! SAL ST(SZ) Z
! SAL STYN(AE)-$ ZTIN
! SAL ST ZT
! SAL SZE(NPT)-^ ZE
! SAL SZI(ELN)-^ ZI
! SAL SZCZ< Z
! SAL SZT< ZT
! SAL SZ<3 Z
! SAL S Z
! SAL T'S3$ Z
! SAL TCH Z
! SAL TEAT-^ TEA
! SAL TE(LMNRST)-3^ TE
! SAL TH< T
! SAL TIC$ TIZ
! SAL TOAS-^ TU
! SAL TOILET- TULE
! SAL TOIN- TUA
! SAL TRAINI- TREN
! SAL TSCH Z
! SAL TSH Z
! SAL TST ZT
! SAL T(S<>) Z
! SAL TT(SZ)--< _
! SAL TT9 T
! SAL TZ- _
! SAL T T
! SAL UEBER^^ IPA
! SAL UE2 I
! SAL UIE$ I
! SAL UM^^ UN
! SAL UNTERE-- UNTE
! SAL UNTER^^ UNTA
! SAL UNVER^^ UNFA
! SAL UN^^ UN
! SAL UTI(A<>O<EFBFBD>U<EFBFBD>)- UZI
! SAL U U
! SAL VACL-^ FAZ
! SAL VAC$ FAZ
! SAL VEDD-^ FE
! SAL VEREIN FAEIN
! SAL VERSEN^ FAZN
! SAL VER^^ FA
! SAL VER FA
! SAL VET(HT)-^ FET
! SAL VETTE$ FET
! SAL VIC$ FIZ
! SAL VIEL FIL
! SAL VIEW FIU
! SAL VOR^^ FUR
! SAL VY9^ FI
! SAL V< F
! SAL WE(LMNRST)-3^ FE
! SAL WIC$ FIZ
! SAL WIEDER^^ FITA
! SAL WY9^ FI
! SAL W F
! SAL XE(LMNRST)-3^ XE
! SAL X<^ Z
! SAL X(CSZ) X
! SAL XTS(CH)-- XT
! SAL XT(SZ) Z
! SAL X X
! SAL YE(LMNRST)-3^ IE
! SAL YE-3 I
! SAL YOR(GK)^$ I<>RK
! SAL Y(AOU)-<7 I
! SAL YVES^$ IF
! SAL YVONNE^$ IFUN
! SAL Y I
! SAL ZC(AOU)- ZK
! SAL ZE(LMNRST)-3^ ZE
! SAL ZH< Z
! SAL ZS(CHT)-- _
! SAL ZS Z
! SAL ZUERST ZUERZT
! SAL ZUR<55>CK^^ ZURIK
! SAL ZUVER^^ ZUFA # x
! SAL Z Z

View File

@@ -1,573 +0,0 @@
*** de_AT.orig.aff 2019-01-19 19:16:46.616026157 +0100
--- de_AT.aff 2019-01-19 19:24:24.524983269 +0100
***************
*** 15,16 ****
--- 15,47 ----
+ FOL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ LOW <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ UPP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+
+ MIDWORD '
+
+ MAP 9
+ MAP a<><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ MAP e<><65><EFBFBD><EFBFBD>
+ MAP i<><69><EFBFBD><EFBFBD>
+ MAP o<><6F><EFBFBD><EFBFBD><EFBFBD>
+ MAP u<><75><EFBFBD><EFBFBD>
+ MAP n<>
+ MAP c<>
+ MAP y<><79>
+ MAP s<>
+
+ COMPOUNDRULE xy?z
+ #COMPOUNDBEGIN x
+ #COMPOUNDMIDDLE y
+ #COMPOUNDEND z
+
+ # Prefixes are allowed at the beginning of compounds,
+ # suffixes are allowed at the end of compounds by default:
+ # (prefix)?(root)+(affix)?
+ # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
+ COMPOUNDPERMITFLAG c
+
+ ONLYINCOMPOUND o
+
+
PFX U Y 1
***************
*** 538,553 ****
-
- COMPOUNDBEGIN x
- COMPOUNDMIDDLE y
- COMPOUNDEND z
FORBIDDENWORD d
- # Prefixes are allowed at the beginning of compounds,
- # suffixes are allowed at the end of compounds by default:
- # (prefix)?(root)+(affix)?
- # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
- COMPOUNDPERMITFLAG c
-
- ONLYINCOMPOUND o
-
# my PSEUDOROOT h(elper) flag
--- 569,572 ----
***************
*** 571,573 ****
! WORDCHARS <20>-.
--- 590,592 ----
! # WORDCHARS <20>-.
***************
*** 725,729 ****
# So enabling this is the lesser evil. No perfect solution found so far...
! BREAK 2
! BREAK -
! BREAK .
!
--- 744,1242 ----
# So enabling this is the lesser evil. No perfect solution found so far...
! # BREAK 2
! # BREAK -
! # BREAK .
!
! # German phonetic transformation rules for use with Aspell
! # Copyright (C) 2000 Bj<42>rn Jacke
! #
! # This library is free software; you can redistribute it and/or
! # modify it under the terms of the GNU Lesser General Public
! # License version 2.1 as published by the Free Software Foundation;
! #
! # This library is distributed in the hope that it will be useful,
! # but WITHOUT ANY WARRANTY; without even the implied warranty of
! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! # Lesser General Public License for more details.
! #
! # You should have received a copy of the GNU Lesser General Public
! # License along with this library; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
! #
! # Bj<42>rn Jacke may be reached by email at bjoern.jacke@gmx.de
! #
! # Changelog:
! #
! # 2000-01-05 Bj<42>rn Jacke <bjoern.jacke@gmx.de>
! # Initial Release
! # 2000-01-07 Kevin Atkinson <kevinatk@home.com>
! # Converted from header to data file.
! SAL followup 1
! SAL collapse_result 1
!
! SAL <20>ER- E
! SAL <20>U< EU
! SAL <20>< E
! SAL <20> E
! SAL <20>ER- <20>
! SAL <20> <20>
! SAL <20>BER^^ IPA
! SAL <20>ER- I
! SAL <20> I
! SAL <20> Z
! SAL ABELLE$ APL
! SAL ABELL$ APL
! SAL ABIENNE$ APIN
! SAL ACEY$ AZI
! SAL AEU< EU
! SAL AE2 E
! SAL AGNI-^ AKN
! SAL AGNIE- ANI
! SAL AGN(AEOU)-$ ANI
! SAL AIA2 AIA
! SAL AIE$ E
! SAL AILL(EOU)- ALI
! SAL AINE$ EN
! SAL AIRE$ ER
! SAL AIR- E
! SAL AISE$ EZ
! SAL AISSANCE$ EZANZ
! SAL AISSE$ EZ
! SAL AIX$ EX
! SAL AJ(A<>EIO<49>U<EFBFBD>)-- A
! SAL AKTIE AXIE
! SAL ALO(IY)^ ALUI
! SAL AMATEU(RS)- ANAT<41>
! SAL ANIELLE$ ANIL
! SAL ANTI^^ ANTI
! SAL ANVER^^ ANFA
! SAL ATIA$ ATIA
! SAL ATIA(NS)-- ATI
! SAL ATI(A<>O<EFBFBD>U<EFBFBD>)- AZI
! SAL AUAU-- _
! SAL AUER< AUA
! SAL AUF^^ AUF
! SAL AULT$ U
! SAL AUSSE$ UZ
! SAL AUS(ST)-^ AUZ
! SAL AUS^^ AUZ
! SAL AUTO^^ AUTU
! SAL AUX(IY)- AUX
! SAL AUX U
! SAL AU AU
! SAL AVIER$ AFIE
! SAL AYER--< EI
! SAL AY(A<>EIO<49>U<EFBFBD>)-- A
! SAL A(IJY)< EI
! SAL A A
! SAL BEA(BCMNRU)-^ PEA
! SAL BEAT(AEIMORU)-^ PEAT
! SAL BEIGE^$ PEZ
! SAL BE(LMNRST)-^ PE
! SAL BETTE$ PET
! SAL BIC$ PIZ
! SAL BOWL(EI)- PUL
! SAL BP(A<>EIO<49>RU<52>Y)- P
! SAL BUDGET7 PIKE
! SAL BUFFET7 PIFE
! SAL BYLLE$ PILE
! SAL BYLL$ PIL
! SAL BYTE< PEIT
! SAL B P
! SAL C<>- Z
! SAL C<>$ ZI
! SAL CACH(EI)-^ KEZ
! SAL CAE-- Z
! SAL CA(IY)$ ZEI
! SAL CCH Z
! SAL CCE- X
! SAL CE(EIJUY)-- Z
! SAL CENT< ZENT
! SAL CERST(EI)----^ KE
! SAL CER$ ZA
! SAL CE3 ZE
! SAL CHAO(ST)- KAU
! SAL CHAMPIO-^ ZENPI
! SAL CHAR(AI)-^ KAR
! SAL CHAU(CDFSVWXZ)- ZU
! SAL CHE(CF)- ZE
! SAL CHEM-^ KE
! SAL CHEQUE< ZEK
! SAL CHI(CFGPVW)- ZI
! SAL CH(AEUY)-<^ Z
! SAL CHK- _
! SAL CH(LOR)-<^ K
! SAL CHST- X
! SAL CH(S<>XZ)3 X
! SAL CH K
! SAL CIER$ ZIE
! SAL CYB-^ ZEI
! SAL CY9^ ZI
! SAL C(IJY)-3 Z
! SAL CKST XT
! SAL CK(S<>XZ)3 X
! SAL C(CK)- _
! SAL CLAUDET--- KLU
! SAL CLAUDINE^$ KLUTIN
! SAL COLE$ KUL
! SAL COUCH KAUZ
! SAL CQUES$ K
! SAL CQUE K
! SAL CREAT-^ KREA
! SAL CST XT
! SAL CS<^ Z
! SAL C(S<>X) X
! SAL CT(S<>XZ) X
! SAL CZ< Z
! SAL C< K
! SAL D'H^ T
! SAL D'S3$ Z
! SAL DAVO(NR)-^$ TAFU
! SAL DD(SZ)--< _
! SAL DEPOT7 TEPU
! SAL DESIGN TIZEIN
! SAL DE(LMNRST)-3^ TE
! SAL DETTE$ TET
! SAL DIC$ TIZ
! SAL DJ(AEIOU)-^ I
! SAL DS(CH)--< T
! SAL DST ZT
! SAL DT- _
! SAL DUIS-^ TI
! SAL DURCH^^ TURK
! SAL DZS(CH)-- T
! SAL D(S<>Z) Z
! SAL D T
! SAL EAULT$ U
! SAL EAUX$ U
! SAL EAU U
! SAL EAV IF
! SAL EA(A<>EIO<49><4F>Y)-3 EA
! SAL EA3$ EA
! SAL EA3 I
! SAL EBEN^^ EPN
! SAL EE9 E
! SAL EIEI-- _
! SAL EIH-- E
! SAL EILLE$ EI
! SAL EI EI
! SAL EJ$ EI
! SAL EL-^ E
! SAL EL(DKL)--1 E
! SAL EL(MNT)--1$ E
! SAL ELYNE$ ELINE
! SAL ELYN$ ELIN
! SAL EL(A<>EIO<49>U<EFBFBD>Y)-1 EL
! SAL EL-1 L
! SAL EM-^ E
! SAL EM(DFKMPQT)--1 E
! SAL EM(A<>EIO<49>U<EFBFBD>Y)--1 E
! SAL EM-1 N
! SAL EN-^ E
! SAL EN(CDGKQT)--1 E
! SAL ENZ(AEIOUY)--1 EN
! SAL EN(A<>EINO<4E>U<EFBFBD>Y)-1 EN
! SAL EN-<1 N
! SAL ERH(A<>EIO<49>U<EFBFBD>)-^ ER
! SAL ER-^ E
! SAL ER(A<>EIO<49>U<EFBFBD>Y)-1 A
! SAL ER1$ A
! SAL ER<1 A
! SAL ETI(A<>O<EFBFBD><4F>U)- EZI
! SAL EUEU-- _
! SAL EUILLE$ <20>
! SAL EUR$ <20>R
! SAL EUX <20>
! SAL EUYS$ EUZ
! SAL EU EU
! SAL EYER< EIA
! SAL EY< EI
! SAL E E
! SAL FANS--^$ FE
! SAL FAN-^$ FE
! SAL FAULT- FUL
! SAL FEE(DL)- FI
! SAL FEHLER FELA
! SAL FE(LMNRST)-3^ FE
! SAL FOND7 FUN
! SAL FRAIN$ FRA
! SAL FRISEU(RS)- FRIZ<49> # x
! SAL F F
! SAL G'S$ X
! SAL GAGS^$ KEX
! SAL GAG^$ KEK
! SAL GD KT
! SAL GEGEN^^ KEKN
! SAL GE(LMNRST)-3^ KE
! SAL GETTE$ KET
! SAL G(CK)- _
! SAL GG- _
! SAL GI(AO)-^ I
! SAL GION$ KIUN
! SAL GIUS-^ IU
! SAL GMBH^$ GMPH
! SAL GNAC$ NIAK
! SAL GNON$ NIUN
! SAL GN$ N
! SAL GONCAL-^ KUNZA
! SAL GS(CH)-- K
! SAL GST XT
! SAL G(S<>XZ) X
! SAL GUCK- KU
! SAL GUI-^ K
! SAL G K
! SAL HEAD- E
! SAL HE(LMNRST)-3^ E
! SAL HE(LMN)-1 E
! SAL HEUR1$ <20>R
! SAL H^ _
! SAL IEC$ IZ
! SAL IEI-3 _
! SAL IELL3 IEL
! SAL IENNE$ IN
! SAL IERRE$ IER
! SAL IETTE$ IT
! SAL IEU I<>
! SAL IE<4 I
! SAL IGHT3$ EIT
! SAL IGNI(EO)- INI
! SAL IGN(AEOU)-$ INI
! SAL IJ(AOU)- I
! SAL IJ$ I
! SAL IJ< EI
! SAL IKOLE$ IKUL
! SAL ILLAN(STZ)-- ILIA
! SAL ILLAR(DT)-- ILIA
! SAL INVER- INFE
! SAL ITI(A<>O<EFBFBD>U<EFBFBD>)- IZI
! SAL IVIER$ IFIE
! SAL I I
! SAL JAVIE---<^ ZA
! SAL JEAN^$ IA
! SAL JEAN-^ IA
! SAL JER-^ IE
! SAL JE(LMNST)- IE
! SAL JOR(GK)^$ I<>RK
! SAL J I
! SAL KC(<28>EIJ)- X
! SAL KE(LMNRST)-3^ KE
! SAL KH<^ K
! SAL KIC$ KIZ
! SAL KLE(LMNRST)-3^ KLE
! SAL KOTELE-^ KUTL
! SAL KREAT-^ KREA
! SAL KST XT
! SAL K(S<>XZ) X
! SAL KTI(AIOU)-3 XI
! SAL KT(S<>XZ) X
! SAL K K
! SAL LARVE- LARF
! SAL LEAND-^ LEAN
! SAL LEL- LE
! SAL LE(MNRST)-3^ LE
! SAL LETTE$ LET
! SAL LFGNAG- LFKAN
! SAL LIC$ LIZ
! SAL LIVE^$ LEIF
! SAL LUI(GS)-- LU
! SAL L L
! SAL MASSEU(RS)- NAZ<41>
! SAL MAURICE NURIZ
! SAL MBH^$ MPH
! SAL MB(S<>Z)- N
! SAL MC9^ NK
! SAL MEMOIR-^ NENUA
! SAL ME(LMNRST)-3^ NE
! SAL MIGUEL NIKL
! SAL MIKE^$ NEIK
! SAL MN N
! SAL MPJUTE- NPUT
! SAL MP(S<>Z)- N
! SAL MP(BDJLMNPQRTVW)- NP
! SAL M N
! SAL NACH^^ NAK
! SAL NADINE NATIN
! SAL NAIV-- NA
! SAL NAISE$ NEZE
! SAL NCOISE$ ZUA
! SAL NCOIS$ ZUA
! SAL NEBEN^^ NEPN
! SAL NE(LMNRST)-3^ NE
! SAL NEN-3 NE
! SAL NETTE$ NET
! SAL NG(BDFJLMNPQRTVW)- NK
! SAL NICHTS^^ NIX
! SAL NICHT^^ NIKT
! SAL NINE$ NIN
! SAL NON^^ NUN
! SAL NOT^^ NUT
! SAL NTI(AIOU)-3 NZI
! SAL NTIEL--3 NZI
! SAL NYLON NEILUN
! SAL ND(S<>Z)$ NZ
! SAL NT(S<>Z)$ NZ
! SAL ND'S$ NZ
! SAL NT'S$ NZ
! SAL NSTS$ NZ
! SAL N N
! SAL OBER^^ UPA
! SAL OE2 <20>
! SAL OGNIE- UNI
! SAL OGN(AEOU)-$ UNI
! SAL OIE$ <20>
! SAL OIR$ UAR
! SAL OIX UA
! SAL OI<3 EU
! SAL OJ(A<>EIO<49>U<EFBFBD>)-- U
! SAL OKAY^$ UKE
! SAL OLYN$ ULIN
! SAL OTI(A<>O<EFBFBD>U<EFBFBD>)- UZI
! SAL OUI^ FI
! SAL OUILLE$ ULIE
! SAL OU(DT)-^ AU
! SAL OUSE$ AUZ
! SAL OUT- AU
! SAL OU U
! SAL OWS$ UZ
! SAL OY(A<>EIO<49>U<EFBFBD>)-- U
! SAL O(JY)< EU
! SAL O U
! SAL PATIEN--^ PAZI
! SAL PENSIO-^ PANZI
! SAL PE(LMNRST)-3^ PE
! SAL PFER-^ FE
! SAL P(FH)< F
! SAL POLY^^ PULI
! SAL PORTRAIT7 PURTRE
! SAL PP(FH)--< P
! SAL PP- _
! SAL PRIX^$ PRI
! SAL P(S<>Z)^ Z
! SAL PTI(A<>O<EFBFBD>U<EFBFBD>)-3 PZI
! SAL PIC^$ PIK
! SAL P P
! SAL QUE(LMNRST)-3 KFE
! SAL QUE$ K
! SAL QUI(NS)$ KI
! SAL QU KF
! SAL Q< K
! SAL RCH RK
! SAL RECHERCH^ REZAZ
! SAL RER$ RA
! SAL RE(MNR)-4 RE
! SAL RETTE$ RET
! SAL RH<^ R
! SAL RJA(MN)-- RI
! SAL RTI(A<>O<EFBFBD>U<EFBFBD>)-3 RZI
! SAL RY(KN)-$ RI
! SAL R R
! SAL SAFE^$ ZEIF
! SAL SAUCE-^ ZUZ
! SAL SCHSCH---7 _
! SAL SCHTSCH Z
! SAL SC(HZ)< Z
! SAL SC ZK
! SAL SELBSTST--7^^ ZELP
! SAL SELBST7^^ ZELPZT
! SAL SERVICE7^ Z<>RFIZ
! SAL SE(LMNRST)-3^ ZE
! SAL SETTE$ ZET
! SAL SHP-^ Z
! SAL SHST ZT
! SAL SHTSH Z
! SAL SHT Z
! SAL SH3 Z
! SAL SIEGLI-^ ZIKL
! SAL SIGLI-^ ZIKL
! SAL SIGHT ZEIT
! SAL SIGN ZEIN
! SAL SKI(NPZ)- ZKI
! SAL SKI<^ ZI
! SAL SOUND- ZAUN
! SAL STAATS^^ ZTAZ
! SAL STADT^^ ZTAT
! SAL START^^ ZTART
! SAL STAURANT7 ZTURAN
! SAL STEAK- ZTE
! SAL STRAF^^ ZTRAF
! SAL ST'S$ Z
! SAL STST-- _
! SAL STS(ACEHIOU<4F><55><EFBFBD>)-- ZT
! SAL ST(SZ) Z
! SAL STYN(AE)-$ ZTIN
! SAL ST ZT
! SAL SZE(NPT)-^ ZE
! SAL SZI(ELN)-^ ZI
! SAL SZCZ< Z
! SAL SZT< ZT
! SAL SZ<3 Z
! SAL S Z
! SAL T'S3$ Z
! SAL TCH Z
! SAL TEAT-^ TEA
! SAL TE(LMNRST)-3^ TE
! SAL TH< T
! SAL TIC$ TIZ
! SAL TOAS-^ TU
! SAL TOILET- TULE
! SAL TOIN- TUA
! SAL TRAINI- TREN
! SAL TSCH Z
! SAL TSH Z
! SAL TST ZT
! SAL T(S<>) Z
! SAL TT(SZ)--< _
! SAL TT9 T
! SAL TZ- _
! SAL T T
! SAL UEBER^^ IPA
! SAL UE2 I
! SAL UIE$ I
! SAL UM^^ UN
! SAL UNTERE-- UNTE
! SAL UNTER^^ UNTA
! SAL UNVER^^ UNFA
! SAL UN^^ UN
! SAL UTI(A<>O<EFBFBD>U<EFBFBD>)- UZI
! SAL U U
! SAL VACL-^ FAZ
! SAL VAC$ FAZ
! SAL VEDD-^ FE
! SAL VEREIN FAEIN
! SAL VERSEN^ FAZN
! SAL VER^^ FA
! SAL VER FA
! SAL VET(HT)-^ FET
! SAL VETTE$ FET
! SAL VIC$ FIZ
! SAL VIEL FIL
! SAL VIEW FIU
! SAL VOR^^ FUR
! SAL VY9^ FI
! SAL V< F
! SAL WE(LMNRST)-3^ FE
! SAL WIC$ FIZ
! SAL WIEDER^^ FITA
! SAL WY9^ FI
! SAL W F
! SAL XE(LMNRST)-3^ XE
! SAL X<^ Z
! SAL X(CSZ) X
! SAL XTS(CH)-- XT
! SAL XT(SZ) Z
! SAL X X
! SAL YE(LMNRST)-3^ IE
! SAL YE-3 I
! SAL YOR(GK)^$ I<>RK
! SAL Y(AOU)-<7 I
! SAL YVES^$ IF
! SAL YVONNE^$ IFUN
! SAL Y I
! SAL ZC(AOU)- ZK
! SAL ZE(LMNRST)-3^ ZE
! SAL ZH< Z
! SAL ZS(CHT)-- _
! SAL ZS Z
! SAL ZUERST ZUERZT
! SAL ZUR<55>CK^^ ZURIK
! SAL ZUVER^^ ZUFA # x
! SAL Z Z

View File

@@ -1,574 +0,0 @@
*** de_CH.orig.aff 2019-01-19 18:45:30.400494173 +0100
--- de_CH.aff 2019-01-19 19:24:48.064826847 +0100
***************
*** 15,16 ****
--- 15,48 ----
+ FOL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ LOW <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ UPP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+
+ MIDWORD '
+
+ MAP 9
+ MAP a<><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ MAP e<><65><EFBFBD><EFBFBD>
+ MAP i<><69><EFBFBD><EFBFBD>
+ MAP o<><6F><EFBFBD><EFBFBD><EFBFBD>
+ MAP u<><75><EFBFBD><EFBFBD>
+ MAP n<>
+ MAP c<>
+ MAP y<><79>
+ MAP s<>
+
+
+ COMPOUNDRULE xy?z
+ #COMPOUNDBEGIN x
+ #COMPOUNDMIDDLE y
+ #COMPOUNDEND z
+
+ # Prefixes are allowed at the beginning of compounds,
+ # suffixes are allowed at the end of compounds by default:
+ # (prefix)?(root)+(affix)?
+ # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
+ COMPOUNDPERMITFLAG c
+
+ ONLYINCOMPOUND o
+
+
PFX U Y 1
***************
*** 538,553 ****
-
- COMPOUNDBEGIN x
- COMPOUNDMIDDLE y
- COMPOUNDEND z
FORBIDDENWORD d
- # Prefixes are allowed at the beginning of compounds,
- # suffixes are allowed at the end of compounds by default:
- # (prefix)?(root)+(affix)?
- # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
- COMPOUNDPERMITFLAG c
-
- ONLYINCOMPOUND o
-
# my PSEUDOROOT h(elper) flag
--- 570,573 ----
***************
*** 571,573 ****
! WORDCHARS <20>-.
--- 591,593 ----
! # WORDCHARS <20>-.
***************
*** 725,729 ****
# So enabling this is the lesser evil. No perfect solution found so far...
! BREAK 2
! BREAK -
! BREAK .
!
--- 745,1243 ----
# So enabling this is the lesser evil. No perfect solution found so far...
! # BREAK 2
! # BREAK -
! # BREAK .
!
! # German phonetic transformation rules for use with Aspell
! # Copyright (C) 2000 Bj<42>rn Jacke
! #
! # This library is free software; you can redistribute it and/or
! # modify it under the terms of the GNU Lesser General Public
! # License version 2.1 as published by the Free Software Foundation;
! #
! # This library is distributed in the hope that it will be useful,
! # but WITHOUT ANY WARRANTY; without even the implied warranty of
! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! # Lesser General Public License for more details.
! #
! # You should have received a copy of the GNU Lesser General Public
! # License along with this library; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
! #
! # Bj<42>rn Jacke may be reached by email at bjoern.jacke@gmx.de
! #
! # Changelog:
! #
! # 2000-01-05 Bj<42>rn Jacke <bjoern.jacke@gmx.de>
! # Initial Release
! # 2000-01-07 Kevin Atkinson <kevinatk@home.com>
! # Converted from header to data file.
! SAL followup 1
! SAL collapse_result 1
!
! SAL <20>ER- E
! SAL <20>U< EU
! SAL <20>< E
! SAL <20> E
! SAL <20>ER- <20>
! SAL <20> <20>
! SAL <20>BER^^ IPA
! SAL <20>ER- I
! SAL <20> I
! SAL <20> Z
! SAL ABELLE$ APL
! SAL ABELL$ APL
! SAL ABIENNE$ APIN
! SAL ACEY$ AZI
! SAL AEU< EU
! SAL AE2 E
! SAL AGNI-^ AKN
! SAL AGNIE- ANI
! SAL AGN(AEOU)-$ ANI
! SAL AIA2 AIA
! SAL AIE$ E
! SAL AILL(EOU)- ALI
! SAL AINE$ EN
! SAL AIRE$ ER
! SAL AIR- E
! SAL AISE$ EZ
! SAL AISSANCE$ EZANZ
! SAL AISSE$ EZ
! SAL AIX$ EX
! SAL AJ(A<>EIO<49>U<EFBFBD>)-- A
! SAL AKTIE AXIE
! SAL ALO(IY)^ ALUI
! SAL AMATEU(RS)- ANAT<41>
! SAL ANIELLE$ ANIL
! SAL ANTI^^ ANTI
! SAL ANVER^^ ANFA
! SAL ATIA$ ATIA
! SAL ATIA(NS)-- ATI
! SAL ATI(A<>O<EFBFBD>U<EFBFBD>)- AZI
! SAL AUAU-- _
! SAL AUER< AUA
! SAL AUF^^ AUF
! SAL AULT$ U
! SAL AUSSE$ UZ
! SAL AUS(ST)-^ AUZ
! SAL AUS^^ AUZ
! SAL AUTO^^ AUTU
! SAL AUX(IY)- AUX
! SAL AUX U
! SAL AU AU
! SAL AVIER$ AFIE
! SAL AYER--< EI
! SAL AY(A<>EIO<49>U<EFBFBD>)-- A
! SAL A(IJY)< EI
! SAL A A
! SAL BEA(BCMNRU)-^ PEA
! SAL BEAT(AEIMORU)-^ PEAT
! SAL BEIGE^$ PEZ
! SAL BE(LMNRST)-^ PE
! SAL BETTE$ PET
! SAL BIC$ PIZ
! SAL BOWL(EI)- PUL
! SAL BP(A<>EIO<49>RU<52>Y)- P
! SAL BUDGET7 PIKE
! SAL BUFFET7 PIFE
! SAL BYLLE$ PILE
! SAL BYLL$ PIL
! SAL BYTE< PEIT
! SAL B P
! SAL C<>- Z
! SAL C<>$ ZI
! SAL CACH(EI)-^ KEZ
! SAL CAE-- Z
! SAL CA(IY)$ ZEI
! SAL CCH Z
! SAL CCE- X
! SAL CE(EIJUY)-- Z
! SAL CENT< ZENT
! SAL CERST(EI)----^ KE
! SAL CER$ ZA
! SAL CE3 ZE
! SAL CHAO(ST)- KAU
! SAL CHAMPIO-^ ZENPI
! SAL CHAR(AI)-^ KAR
! SAL CHAU(CDFSVWXZ)- ZU
! SAL CHE(CF)- ZE
! SAL CHEM-^ KE
! SAL CHEQUE< ZEK
! SAL CHI(CFGPVW)- ZI
! SAL CH(AEUY)-<^ Z
! SAL CHK- _
! SAL CH(LOR)-<^ K
! SAL CHST- X
! SAL CH(S<>XZ)3 X
! SAL CH K
! SAL CIER$ ZIE
! SAL CYB-^ ZEI
! SAL CY9^ ZI
! SAL C(IJY)-3 Z
! SAL CKST XT
! SAL CK(S<>XZ)3 X
! SAL C(CK)- _
! SAL CLAUDET--- KLU
! SAL CLAUDINE^$ KLUTIN
! SAL COLE$ KUL
! SAL COUCH KAUZ
! SAL CQUES$ K
! SAL CQUE K
! SAL CREAT-^ KREA
! SAL CST XT
! SAL CS<^ Z
! SAL C(S<>X) X
! SAL CT(S<>XZ) X
! SAL CZ< Z
! SAL C< K
! SAL D'H^ T
! SAL D'S3$ Z
! SAL DAVO(NR)-^$ TAFU
! SAL DD(SZ)--< _
! SAL DEPOT7 TEPU
! SAL DESIGN TIZEIN
! SAL DE(LMNRST)-3^ TE
! SAL DETTE$ TET
! SAL DIC$ TIZ
! SAL DJ(AEIOU)-^ I
! SAL DS(CH)--< T
! SAL DST ZT
! SAL DT- _
! SAL DUIS-^ TI
! SAL DURCH^^ TURK
! SAL DZS(CH)-- T
! SAL D(S<>Z) Z
! SAL D T
! SAL EAULT$ U
! SAL EAUX$ U
! SAL EAU U
! SAL EAV IF
! SAL EA(A<>EIO<49><4F>Y)-3 EA
! SAL EA3$ EA
! SAL EA3 I
! SAL EBEN^^ EPN
! SAL EE9 E
! SAL EIEI-- _
! SAL EIH-- E
! SAL EILLE$ EI
! SAL EI EI
! SAL EJ$ EI
! SAL EL-^ E
! SAL EL(DKL)--1 E
! SAL EL(MNT)--1$ E
! SAL ELYNE$ ELINE
! SAL ELYN$ ELIN
! SAL EL(A<>EIO<49>U<EFBFBD>Y)-1 EL
! SAL EL-1 L
! SAL EM-^ E
! SAL EM(DFKMPQT)--1 E
! SAL EM(A<>EIO<49>U<EFBFBD>Y)--1 E
! SAL EM-1 N
! SAL EN-^ E
! SAL EN(CDGKQT)--1 E
! SAL ENZ(AEIOUY)--1 EN
! SAL EN(A<>EINO<4E>U<EFBFBD>Y)-1 EN
! SAL EN-<1 N
! SAL ERH(A<>EIO<49>U<EFBFBD>)-^ ER
! SAL ER-^ E
! SAL ER(A<>EIO<49>U<EFBFBD>Y)-1 A
! SAL ER1$ A
! SAL ER<1 A
! SAL ETI(A<>O<EFBFBD><4F>U)- EZI
! SAL EUEU-- _
! SAL EUILLE$ <20>
! SAL EUR$ <20>R
! SAL EUX <20>
! SAL EUYS$ EUZ
! SAL EU EU
! SAL EYER< EIA
! SAL EY< EI
! SAL E E
! SAL FANS--^$ FE
! SAL FAN-^$ FE
! SAL FAULT- FUL
! SAL FEE(DL)- FI
! SAL FEHLER FELA
! SAL FE(LMNRST)-3^ FE
! SAL FOND7 FUN
! SAL FRAIN$ FRA
! SAL FRISEU(RS)- FRIZ<49> # x
! SAL F F
! SAL G'S$ X
! SAL GAGS^$ KEX
! SAL GAG^$ KEK
! SAL GD KT
! SAL GEGEN^^ KEKN
! SAL GE(LMNRST)-3^ KE
! SAL GETTE$ KET
! SAL G(CK)- _
! SAL GG- _
! SAL GI(AO)-^ I
! SAL GION$ KIUN
! SAL GIUS-^ IU
! SAL GMBH^$ GMPH
! SAL GNAC$ NIAK
! SAL GNON$ NIUN
! SAL GN$ N
! SAL GONCAL-^ KUNZA
! SAL GS(CH)-- K
! SAL GST XT
! SAL G(S<>XZ) X
! SAL GUCK- KU
! SAL GUI-^ K
! SAL G K
! SAL HEAD- E
! SAL HE(LMNRST)-3^ E
! SAL HE(LMN)-1 E
! SAL HEUR1$ <20>R
! SAL H^ _
! SAL IEC$ IZ
! SAL IEI-3 _
! SAL IELL3 IEL
! SAL IENNE$ IN
! SAL IERRE$ IER
! SAL IETTE$ IT
! SAL IEU I<>
! SAL IE<4 I
! SAL IGHT3$ EIT
! SAL IGNI(EO)- INI
! SAL IGN(AEOU)-$ INI
! SAL IJ(AOU)- I
! SAL IJ$ I
! SAL IJ< EI
! SAL IKOLE$ IKUL
! SAL ILLAN(STZ)-- ILIA
! SAL ILLAR(DT)-- ILIA
! SAL INVER- INFE
! SAL ITI(A<>O<EFBFBD>U<EFBFBD>)- IZI
! SAL IVIER$ IFIE
! SAL I I
! SAL JAVIE---<^ ZA
! SAL JEAN^$ IA
! SAL JEAN-^ IA
! SAL JER-^ IE
! SAL JE(LMNST)- IE
! SAL JOR(GK)^$ I<>RK
! SAL J I
! SAL KC(<28>EIJ)- X
! SAL KE(LMNRST)-3^ KE
! SAL KH<^ K
! SAL KIC$ KIZ
! SAL KLE(LMNRST)-3^ KLE
! SAL KOTELE-^ KUTL
! SAL KREAT-^ KREA
! SAL KST XT
! SAL K(S<>XZ) X
! SAL KTI(AIOU)-3 XI
! SAL KT(S<>XZ) X
! SAL K K
! SAL LARVE- LARF
! SAL LEAND-^ LEAN
! SAL LEL- LE
! SAL LE(MNRST)-3^ LE
! SAL LETTE$ LET
! SAL LFGNAG- LFKAN
! SAL LIC$ LIZ
! SAL LIVE^$ LEIF
! SAL LUI(GS)-- LU
! SAL L L
! SAL MASSEU(RS)- NAZ<41>
! SAL MAURICE NURIZ
! SAL MBH^$ MPH
! SAL MB(S<>Z)- N
! SAL MC9^ NK
! SAL MEMOIR-^ NENUA
! SAL ME(LMNRST)-3^ NE
! SAL MIGUEL NIKL
! SAL MIKE^$ NEIK
! SAL MN N
! SAL MPJUTE- NPUT
! SAL MP(S<>Z)- N
! SAL MP(BDJLMNPQRTVW)- NP
! SAL M N
! SAL NACH^^ NAK
! SAL NADINE NATIN
! SAL NAIV-- NA
! SAL NAISE$ NEZE
! SAL NCOISE$ ZUA
! SAL NCOIS$ ZUA
! SAL NEBEN^^ NEPN
! SAL NE(LMNRST)-3^ NE
! SAL NEN-3 NE
! SAL NETTE$ NET
! SAL NG(BDFJLMNPQRTVW)- NK
! SAL NICHTS^^ NIX
! SAL NICHT^^ NIKT
! SAL NINE$ NIN
! SAL NON^^ NUN
! SAL NOT^^ NUT
! SAL NTI(AIOU)-3 NZI
! SAL NTIEL--3 NZI
! SAL NYLON NEILUN
! SAL ND(S<>Z)$ NZ
! SAL NT(S<>Z)$ NZ
! SAL ND'S$ NZ
! SAL NT'S$ NZ
! SAL NSTS$ NZ
! SAL N N
! SAL OBER^^ UPA
! SAL OE2 <20>
! SAL OGNIE- UNI
! SAL OGN(AEOU)-$ UNI
! SAL OIE$ <20>
! SAL OIR$ UAR
! SAL OIX UA
! SAL OI<3 EU
! SAL OJ(A<>EIO<49>U<EFBFBD>)-- U
! SAL OKAY^$ UKE
! SAL OLYN$ ULIN
! SAL OTI(A<>O<EFBFBD>U<EFBFBD>)- UZI
! SAL OUI^ FI
! SAL OUILLE$ ULIE
! SAL OU(DT)-^ AU
! SAL OUSE$ AUZ
! SAL OUT- AU
! SAL OU U
! SAL OWS$ UZ
! SAL OY(A<>EIO<49>U<EFBFBD>)-- U
! SAL O(JY)< EU
! SAL O U
! SAL PATIEN--^ PAZI
! SAL PENSIO-^ PANZI
! SAL PE(LMNRST)-3^ PE
! SAL PFER-^ FE
! SAL P(FH)< F
! SAL POLY^^ PULI
! SAL PORTRAIT7 PURTRE
! SAL PP(FH)--< P
! SAL PP- _
! SAL PRIX^$ PRI
! SAL P(S<>Z)^ Z
! SAL PTI(A<>O<EFBFBD>U<EFBFBD>)-3 PZI
! SAL PIC^$ PIK
! SAL P P
! SAL QUE(LMNRST)-3 KFE
! SAL QUE$ K
! SAL QUI(NS)$ KI
! SAL QU KF
! SAL Q< K
! SAL RCH RK
! SAL RECHERCH^ REZAZ
! SAL RER$ RA
! SAL RE(MNR)-4 RE
! SAL RETTE$ RET
! SAL RH<^ R
! SAL RJA(MN)-- RI
! SAL RTI(A<>O<EFBFBD>U<EFBFBD>)-3 RZI
! SAL RY(KN)-$ RI
! SAL R R
! SAL SAFE^$ ZEIF
! SAL SAUCE-^ ZUZ
! SAL SCHSCH---7 _
! SAL SCHTSCH Z
! SAL SC(HZ)< Z
! SAL SC ZK
! SAL SELBSTST--7^^ ZELP
! SAL SELBST7^^ ZELPZT
! SAL SERVICE7^ Z<>RFIZ
! SAL SE(LMNRST)-3^ ZE
! SAL SETTE$ ZET
! SAL SHP-^ Z
! SAL SHST ZT
! SAL SHTSH Z
! SAL SHT Z
! SAL SH3 Z
! SAL SIEGLI-^ ZIKL
! SAL SIGLI-^ ZIKL
! SAL SIGHT ZEIT
! SAL SIGN ZEIN
! SAL SKI(NPZ)- ZKI
! SAL SKI<^ ZI
! SAL SOUND- ZAUN
! SAL STAATS^^ ZTAZ
! SAL STADT^^ ZTAT
! SAL START^^ ZTART
! SAL STAURANT7 ZTURAN
! SAL STEAK- ZTE
! SAL STRAF^^ ZTRAF
! SAL ST'S$ Z
! SAL STST-- _
! SAL STS(ACEHIOU<4F><55><EFBFBD>)-- ZT
! SAL ST(SZ) Z
! SAL STYN(AE)-$ ZTIN
! SAL ST ZT
! SAL SZE(NPT)-^ ZE
! SAL SZI(ELN)-^ ZI
! SAL SZCZ< Z
! SAL SZT< ZT
! SAL SZ<3 Z
! SAL S Z
! SAL T'S3$ Z
! SAL TCH Z
! SAL TEAT-^ TEA
! SAL TE(LMNRST)-3^ TE
! SAL TH< T
! SAL TIC$ TIZ
! SAL TOAS-^ TU
! SAL TOILET- TULE
! SAL TOIN- TUA
! SAL TRAINI- TREN
! SAL TSCH Z
! SAL TSH Z
! SAL TST ZT
! SAL T(S<>) Z
! SAL TT(SZ)--< _
! SAL TT9 T
! SAL TZ- _
! SAL T T
! SAL UEBER^^ IPA
! SAL UE2 I
! SAL UIE$ I
! SAL UM^^ UN
! SAL UNTERE-- UNTE
! SAL UNTER^^ UNTA
! SAL UNVER^^ UNFA
! SAL UN^^ UN
! SAL UTI(A<>O<EFBFBD>U<EFBFBD>)- UZI
! SAL U U
! SAL VACL-^ FAZ
! SAL VAC$ FAZ
! SAL VEDD-^ FE
! SAL VEREIN FAEIN
! SAL VERSEN^ FAZN
! SAL VER^^ FA
! SAL VER FA
! SAL VET(HT)-^ FET
! SAL VETTE$ FET
! SAL VIC$ FIZ
! SAL VIEL FIL
! SAL VIEW FIU
! SAL VOR^^ FUR
! SAL VY9^ FI
! SAL V< F
! SAL WE(LMNRST)-3^ FE
! SAL WIC$ FIZ
! SAL WIEDER^^ FITA
! SAL WY9^ FI
! SAL W F
! SAL XE(LMNRST)-3^ XE
! SAL X<^ Z
! SAL X(CSZ) X
! SAL XTS(CH)-- XT
! SAL XT(SZ) Z
! SAL X X
! SAL YE(LMNRST)-3^ IE
! SAL YE-3 I
! SAL YOR(GK)^$ I<>RK
! SAL Y(AOU)-<7 I
! SAL YVES^$ IF
! SAL YVONNE^$ IFUN
! SAL Y I
! SAL ZC(AOU)- ZK
! SAL ZE(LMNRST)-3^ ZE
! SAL ZH< Z
! SAL ZS(CHT)-- _
! SAL ZS Z
! SAL ZUERST ZUERZT
! SAL ZUR<55>CK^^ ZURIK
! SAL ZUVER^^ ZUFA # x
! SAL Z Z

View File

@@ -1,580 +0,0 @@
*** de_DE.orig.aff 2019-01-19 18:45:26.132522538 +0100
--- de_DE.aff 2019-01-19 19:23:37.233297530 +0100
***************
*** 15,16 ****
--- 15,46 ----
+ FOL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ LOW <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ UPP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+
+ MIDWORD '
+
+ MAP 9
+ MAP a<><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ MAP e<><65><EFBFBD><EFBFBD>
+ MAP i<><69><EFBFBD><EFBFBD>
+ MAP o<><6F><EFBFBD><EFBFBD><EFBFBD>
+ MAP u<><75><EFBFBD><EFBFBD>
+ MAP n<>
+ MAP c<>
+ MAP y<><79>
+ MAP s<>
+
+ COMPOUNDRULE xy?z
+ #COMPOUNDBEGIN x
+ #COMPOUNDMIDDLE y
+ #COMPOUNDEND z
+
+ # Prefixes are allowed at the beginning of compounds,
+ # suffixes are allowed at the end of compounds by default:
+ # (prefix)?(root)+(affix)?
+ # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
+ COMPOUNDPERMITFLAG c
+
+ ONLYINCOMPOUND o
+
PFX U Y 1
***************
*** 536,553 ****
#LANG de_DE
! CHECKSHARPS
!
- COMPOUNDBEGIN x
- COMPOUNDMIDDLE y
- COMPOUNDEND z
FORBIDDENWORD d
- # Prefixes are allowed at the beginning of compounds,
- # suffixes are allowed at the end of compounds by default:
- # (prefix)?(root)+(affix)?
- # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
- COMPOUNDPERMITFLAG c
-
- ONLYINCOMPOUND o
-
# my PSEUDOROOT h(elper) flag
--- 566,571 ----
#LANG de_DE
! # CHECKSHARPS
FORBIDDENWORD d
# my PSEUDOROOT h(elper) flag
***************
*** 571,573 ****
! WORDCHARS <20>-.
--- 589,591 ----
! # WORDCHARS <20>-.
***************
*** 725,729 ****
# So enabling this is the lesser evil. No perfect solution found so far...
! BREAK 2
! BREAK -
! BREAK .
!
--- 743,1241 ----
# So enabling this is the lesser evil. No perfect solution found so far...
! # BREAK 2
! # BREAK -
! # BREAK .
!
! # German phonetic transformation rules for use with Aspell
! # Copyright (C) 2000 Bj<42>rn Jacke
! #
! # This library is free software; you can redistribute it and/or
! # modify it under the terms of the GNU Lesser General Public
! # License version 2.1 as published by the Free Software Foundation;
! #
! # This library is distributed in the hope that it will be useful,
! # but WITHOUT ANY WARRANTY; without even the implied warranty of
! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! # Lesser General Public License for more details.
! #
! # You should have received a copy of the GNU Lesser General Public
! # License along with this library; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
! #
! # Bj<42>rn Jacke may be reached by email at bjoern.jacke@gmx.de
! #
! # Changelog:
! #
! # 2000-01-05 Bj<42>rn Jacke <bjoern.jacke@gmx.de>
! # Initial Release
! # 2000-01-07 Kevin Atkinson <kevinatk@home.com>
! # Converted from header to data file.
! SAL followup 1
! SAL collapse_result 1
!
! SAL <20>ER- E
! SAL <20>U< EU
! SAL <20>< E
! SAL <20> E
! SAL <20>ER- <20>
! SAL <20> <20>
! SAL <20>BER^^ IPA
! SAL <20>ER- I
! SAL <20> I
! SAL <20> Z
! SAL ABELLE$ APL
! SAL ABELL$ APL
! SAL ABIENNE$ APIN
! SAL ACEY$ AZI
! SAL AEU< EU
! SAL AE2 E
! SAL AGNI-^ AKN
! SAL AGNIE- ANI
! SAL AGN(AEOU)-$ ANI
! SAL AIA2 AIA
! SAL AIE$ E
! SAL AILL(EOU)- ALI
! SAL AINE$ EN
! SAL AIRE$ ER
! SAL AIR- E
! SAL AISE$ EZ
! SAL AISSANCE$ EZANZ
! SAL AISSE$ EZ
! SAL AIX$ EX
! SAL AJ(A<>EIO<49>U<EFBFBD>)-- A
! SAL AKTIE AXIE
! SAL ALO(IY)^ ALUI
! SAL AMATEU(RS)- ANAT<41>
! SAL ANIELLE$ ANIL
! SAL ANTI^^ ANTI
! SAL ANVER^^ ANFA
! SAL ATIA$ ATIA
! SAL ATIA(NS)-- ATI
! SAL ATI(A<>O<EFBFBD>U<EFBFBD>)- AZI
! SAL AUAU-- _
! SAL AUER< AUA
! SAL AUF^^ AUF
! SAL AULT$ U
! SAL AUSSE$ UZ
! SAL AUS(ST)-^ AUZ
! SAL AUS^^ AUZ
! SAL AUTO^^ AUTU
! SAL AUX(IY)- AUX
! SAL AUX U
! SAL AU AU
! SAL AVIER$ AFIE
! SAL AYER--< EI
! SAL AY(A<>EIO<49>U<EFBFBD>)-- A
! SAL A(IJY)< EI
! SAL A A
! SAL BEA(BCMNRU)-^ PEA
! SAL BEAT(AEIMORU)-^ PEAT
! SAL BEIGE^$ PEZ
! SAL BE(LMNRST)-^ PE
! SAL BETTE$ PET
! SAL BIC$ PIZ
! SAL BOWL(EI)- PUL
! SAL BP(A<>EIO<49>RU<52>Y)- P
! SAL BUDGET7 PIKE
! SAL BUFFET7 PIFE
! SAL BYLLE$ PILE
! SAL BYLL$ PIL
! SAL BYTE< PEIT
! SAL B P
! SAL C<>- Z
! SAL C<>$ ZI
! SAL CACH(EI)-^ KEZ
! SAL CAE-- Z
! SAL CA(IY)$ ZEI
! SAL CCH Z
! SAL CCE- X
! SAL CE(EIJUY)-- Z
! SAL CENT< ZENT
! SAL CERST(EI)----^ KE
! SAL CER$ ZA
! SAL CE3 ZE
! SAL CHAO(ST)- KAU
! SAL CHAMPIO-^ ZENPI
! SAL CHAR(AI)-^ KAR
! SAL CHAU(CDFSVWXZ)- ZU
! SAL CHE(CF)- ZE
! SAL CHEM-^ KE
! SAL CHEQUE< ZEK
! SAL CHI(CFGPVW)- ZI
! SAL CH(AEUY)-<^ Z
! SAL CHK- _
! SAL CH(LOR)-<^ K
! SAL CHST- X
! SAL CH(S<>XZ)3 X
! SAL CH K
! SAL CIER$ ZIE
! SAL CYB-^ ZEI
! SAL CY9^ ZI
! SAL C(IJY)-3 Z
! SAL CKST XT
! SAL CK(S<>XZ)3 X
! SAL C(CK)- _
! SAL CLAUDET--- KLU
! SAL CLAUDINE^$ KLUTIN
! SAL COLE$ KUL
! SAL COUCH KAUZ
! SAL CQUES$ K
! SAL CQUE K
! SAL CREAT-^ KREA
! SAL CST XT
! SAL CS<^ Z
! SAL C(S<>X) X
! SAL CT(S<>XZ) X
! SAL CZ< Z
! SAL C< K
! SAL D'H^ T
! SAL D'S3$ Z
! SAL DAVO(NR)-^$ TAFU
! SAL DD(SZ)--< _
! SAL DEPOT7 TEPU
! SAL DESIGN TIZEIN
! SAL DE(LMNRST)-3^ TE
! SAL DETTE$ TET
! SAL DIC$ TIZ
! SAL DJ(AEIOU)-^ I
! SAL DS(CH)--< T
! SAL DST ZT
! SAL DT- _
! SAL DUIS-^ TI
! SAL DURCH^^ TURK
! SAL DZS(CH)-- T
! SAL D(S<>Z) Z
! SAL D T
! SAL EAULT$ U
! SAL EAUX$ U
! SAL EAU U
! SAL EAV IF
! SAL EA(A<>EIO<49><4F>Y)-3 EA
! SAL EA3$ EA
! SAL EA3 I
! SAL EBEN^^ EPN
! SAL EE9 E
! SAL EIEI-- _
! SAL EIH-- E
! SAL EILLE$ EI
! SAL EI EI
! SAL EJ$ EI
! SAL EL-^ E
! SAL EL(DKL)--1 E
! SAL EL(MNT)--1$ E
! SAL ELYNE$ ELINE
! SAL ELYN$ ELIN
! SAL EL(A<>EIO<49>U<EFBFBD>Y)-1 EL
! SAL EL-1 L
! SAL EM-^ E
! SAL EM(DFKMPQT)--1 E
! SAL EM(A<>EIO<49>U<EFBFBD>Y)--1 E
! SAL EM-1 N
! SAL EN-^ E
! SAL EN(CDGKQT)--1 E
! SAL ENZ(AEIOUY)--1 EN
! SAL EN(A<>EINO<4E>U<EFBFBD>Y)-1 EN
! SAL EN-<1 N
! SAL ERH(A<>EIO<49>U<EFBFBD>)-^ ER
! SAL ER-^ E
! SAL ER(A<>EIO<49>U<EFBFBD>Y)-1 A
! SAL ER1$ A
! SAL ER<1 A
! SAL ETI(A<>O<EFBFBD><4F>U)- EZI
! SAL EUEU-- _
! SAL EUILLE$ <20>
! SAL EUR$ <20>R
! SAL EUX <20>
! SAL EUYS$ EUZ
! SAL EU EU
! SAL EYER< EIA
! SAL EY< EI
! SAL E E
! SAL FANS--^$ FE
! SAL FAN-^$ FE
! SAL FAULT- FUL
! SAL FEE(DL)- FI
! SAL FEHLER FELA
! SAL FE(LMNRST)-3^ FE
! SAL FOND7 FUN
! SAL FRAIN$ FRA
! SAL FRISEU(RS)- FRIZ<49> # x
! SAL F F
! SAL G'S$ X
! SAL GAGS^$ KEX
! SAL GAG^$ KEK
! SAL GD KT
! SAL GEGEN^^ KEKN
! SAL GE(LMNRST)-3^ KE
! SAL GETTE$ KET
! SAL G(CK)- _
! SAL GG- _
! SAL GI(AO)-^ I
! SAL GION$ KIUN
! SAL GIUS-^ IU
! SAL GMBH^$ GMPH
! SAL GNAC$ NIAK
! SAL GNON$ NIUN
! SAL GN$ N
! SAL GONCAL-^ KUNZA
! SAL GS(CH)-- K
! SAL GST XT
! SAL G(S<>XZ) X
! SAL GUCK- KU
! SAL GUI-^ K
! SAL G K
! SAL HEAD- E
! SAL HE(LMNRST)-3^ E
! SAL HE(LMN)-1 E
! SAL HEUR1$ <20>R
! SAL H^ _
! SAL IEC$ IZ
! SAL IEI-3 _
! SAL IELL3 IEL
! SAL IENNE$ IN
! SAL IERRE$ IER
! SAL IETTE$ IT
! SAL IEU I<>
! SAL IE<4 I
! SAL IGHT3$ EIT
! SAL IGNI(EO)- INI
! SAL IGN(AEOU)-$ INI
! SAL IJ(AOU)- I
! SAL IJ$ I
! SAL IJ< EI
! SAL IKOLE$ IKUL
! SAL ILLAN(STZ)-- ILIA
! SAL ILLAR(DT)-- ILIA
! SAL INVER- INFE
! SAL ITI(A<>O<EFBFBD>U<EFBFBD>)- IZI
! SAL IVIER$ IFIE
! SAL I I
! SAL JAVIE---<^ ZA
! SAL JEAN^$ IA
! SAL JEAN-^ IA
! SAL JER-^ IE
! SAL JE(LMNST)- IE
! SAL JOR(GK)^$ I<>RK
! SAL J I
! SAL KC(<28>EIJ)- X
! SAL KE(LMNRST)-3^ KE
! SAL KH<^ K
! SAL KIC$ KIZ
! SAL KLE(LMNRST)-3^ KLE
! SAL KOTELE-^ KUTL
! SAL KREAT-^ KREA
! SAL KST XT
! SAL K(S<>XZ) X
! SAL KTI(AIOU)-3 XI
! SAL KT(S<>XZ) X
! SAL K K
! SAL LARVE- LARF
! SAL LEAND-^ LEAN
! SAL LEL- LE
! SAL LE(MNRST)-3^ LE
! SAL LETTE$ LET
! SAL LFGNAG- LFKAN
! SAL LIC$ LIZ
! SAL LIVE^$ LEIF
! SAL LUI(GS)-- LU
! SAL L L
! SAL MASSEU(RS)- NAZ<41>
! SAL MAURICE NURIZ
! SAL MBH^$ MPH
! SAL MB(S<>Z)- N
! SAL MC9^ NK
! SAL MEMOIR-^ NENUA
! SAL ME(LMNRST)-3^ NE
! SAL MIGUEL NIKL
! SAL MIKE^$ NEIK
! SAL MN N
! SAL MPJUTE- NPUT
! SAL MP(S<>Z)- N
! SAL MP(BDJLMNPQRTVW)- NP
! SAL M N
! SAL NACH^^ NAK
! SAL NADINE NATIN
! SAL NAIV-- NA
! SAL NAISE$ NEZE
! SAL NCOISE$ ZUA
! SAL NCOIS$ ZUA
! SAL NEBEN^^ NEPN
! SAL NE(LMNRST)-3^ NE
! SAL NEN-3 NE
! SAL NETTE$ NET
! SAL NG(BDFJLMNPQRTVW)- NK
! SAL NICHTS^^ NIX
! SAL NICHT^^ NIKT
! SAL NINE$ NIN
! SAL NON^^ NUN
! SAL NOT^^ NUT
! SAL NTI(AIOU)-3 NZI
! SAL NTIEL--3 NZI
! SAL NYLON NEILUN
! SAL ND(S<>Z)$ NZ
! SAL NT(S<>Z)$ NZ
! SAL ND'S$ NZ
! SAL NT'S$ NZ
! SAL NSTS$ NZ
! SAL N N
! SAL OBER^^ UPA
! SAL OE2 <20>
! SAL OGNIE- UNI
! SAL OGN(AEOU)-$ UNI
! SAL OIE$ <20>
! SAL OIR$ UAR
! SAL OIX UA
! SAL OI<3 EU
! SAL OJ(A<>EIO<49>U<EFBFBD>)-- U
! SAL OKAY^$ UKE
! SAL OLYN$ ULIN
! SAL OTI(A<>O<EFBFBD>U<EFBFBD>)- UZI
! SAL OUI^ FI
! SAL OUILLE$ ULIE
! SAL OU(DT)-^ AU
! SAL OUSE$ AUZ
! SAL OUT- AU
! SAL OU U
! SAL OWS$ UZ
! SAL OY(A<>EIO<49>U<EFBFBD>)-- U
! SAL O(JY)< EU
! SAL O U
! SAL PATIEN--^ PAZI
! SAL PENSIO-^ PANZI
! SAL PE(LMNRST)-3^ PE
! SAL PFER-^ FE
! SAL P(FH)< F
! SAL POLY^^ PULI
! SAL PORTRAIT7 PURTRE
! SAL PP(FH)--< P
! SAL PP- _
! SAL PRIX^$ PRI
! SAL P(S<>Z)^ Z
! SAL PTI(A<>O<EFBFBD>U<EFBFBD>)-3 PZI
! SAL PIC^$ PIK
! SAL P P
! SAL QUE(LMNRST)-3 KFE
! SAL QUE$ K
! SAL QUI(NS)$ KI
! SAL QU KF
! SAL Q< K
! SAL RCH RK
! SAL RECHERCH^ REZAZ
! SAL RER$ RA
! SAL RE(MNR)-4 RE
! SAL RETTE$ RET
! SAL RH<^ R
! SAL RJA(MN)-- RI
! SAL RTI(A<>O<EFBFBD>U<EFBFBD>)-3 RZI
! SAL RY(KN)-$ RI
! SAL R R
! SAL SAFE^$ ZEIF
! SAL SAUCE-^ ZUZ
! SAL SCHSCH---7 _
! SAL SCHTSCH Z
! SAL SC(HZ)< Z
! SAL SC ZK
! SAL SELBSTST--7^^ ZELP
! SAL SELBST7^^ ZELPZT
! SAL SERVICE7^ Z<>RFIZ
! SAL SE(LMNRST)-3^ ZE
! SAL SETTE$ ZET
! SAL SHP-^ Z
! SAL SHST ZT
! SAL SHTSH Z
! SAL SHT Z
! SAL SH3 Z
! SAL SIEGLI-^ ZIKL
! SAL SIGLI-^ ZIKL
! SAL SIGHT ZEIT
! SAL SIGN ZEIN
! SAL SKI(NPZ)- ZKI
! SAL SKI<^ ZI
! SAL SOUND- ZAUN
! SAL STAATS^^ ZTAZ
! SAL STADT^^ ZTAT
! SAL START^^ ZTART
! SAL STAURANT7 ZTURAN
! SAL STEAK- ZTE
! SAL STRAF^^ ZTRAF
! SAL ST'S$ Z
! SAL STST-- _
! SAL STS(ACEHIOU<4F><55><EFBFBD>)-- ZT
! SAL ST(SZ) Z
! SAL STYN(AE)-$ ZTIN
! SAL ST ZT
! SAL SZE(NPT)-^ ZE
! SAL SZI(ELN)-^ ZI
! SAL SZCZ< Z
! SAL SZT< ZT
! SAL SZ<3 Z
! SAL S Z
! SAL T'S3$ Z
! SAL TCH Z
! SAL TEAT-^ TEA
! SAL TE(LMNRST)-3^ TE
! SAL TH< T
! SAL TIC$ TIZ
! SAL TOAS-^ TU
! SAL TOILET- TULE
! SAL TOIN- TUA
! SAL TRAINI- TREN
! SAL TSCH Z
! SAL TSH Z
! SAL TST ZT
! SAL T(S<>) Z
! SAL TT(SZ)--< _
! SAL TT9 T
! SAL TZ- _
! SAL T T
! SAL UEBER^^ IPA
! SAL UE2 I
! SAL UIE$ I
! SAL UM^^ UN
! SAL UNTERE-- UNTE
! SAL UNTER^^ UNTA
! SAL UNVER^^ UNFA
! SAL UN^^ UN
! SAL UTI(A<>O<EFBFBD>U<EFBFBD>)- UZI
! SAL U U
! SAL VACL-^ FAZ
! SAL VAC$ FAZ
! SAL VEDD-^ FE
! SAL VEREIN FAEIN
! SAL VERSEN^ FAZN
! SAL VER^^ FA
! SAL VER FA
! SAL VET(HT)-^ FET
! SAL VETTE$ FET
! SAL VIC$ FIZ
! SAL VIEL FIL
! SAL VIEW FIU
! SAL VOR^^ FUR
! SAL VY9^ FI
! SAL V< F
! SAL WE(LMNRST)-3^ FE
! SAL WIC$ FIZ
! SAL WIEDER^^ FITA
! SAL WY9^ FI
! SAL W F
! SAL XE(LMNRST)-3^ XE
! SAL X<^ Z
! SAL X(CSZ) X
! SAL XTS(CH)-- XT
! SAL XT(SZ) Z
! SAL X X
! SAL YE(LMNRST)-3^ IE
! SAL YE-3 I
! SAL YOR(GK)^$ I<>RK
! SAL Y(AOU)-<7 I
! SAL YVES^$ IF
! SAL YVONNE^$ IFUN
! SAL Y I
! SAL ZC(AOU)- ZK
! SAL ZE(LMNRST)-3^ ZE
! SAL ZH< Z
! SAL ZS(CHT)-- _
! SAL ZS Z
! SAL ZUERST ZUERZT
! SAL ZUR<55>CK^^ ZURIK
! SAL ZUVER^^ ZUFA # x
! SAL Z Z

View File

@@ -35,7 +35,11 @@ FILE_CH_DIC = de_CH_frami.dic
ZIPFILE_19 = de_OLDSPELL.zip # unmaintained ZIPFILE_19 = de_OLDSPELL.zip # unmaintained
DICT_FILES = $FILE_20_AFF $FILE_20_DIC $FILE_AT_AFF $FILE_AT_DIC $FILE_CH_AFF $FILE_CH_DIC DICT_FILES = $FILE_20_AFF $FILE_20_DIC $FILE_AT_AFF $FILE_AT_DIC $FILE_CH_AFF $FILE_CH_DIC
READMES = README_de_DE_frami.txt README_extension_owner.txt # frami files adjusted for Vim are found here
YAMAGIDIR = https://raw.githubusercontent.com/Yamagi/vim-german-dictionaries/master
READMES = README.md
:attr {fetch = $YAMAGIDIR/%file%} $READMES
all: $SPELLDIR/de.latin1.spl $SPELLDIR/de.utf-8.spl ../README_de.txt all: $SPELLDIR/de.latin1.spl $SPELLDIR/de.utf-8.spl ../README_de.txt
@@ -49,36 +53,22 @@ $SPELLDIR/de.utf-8.spl : $FILES
../README_de.txt: $READMES ../README_de.txt: $READMES
:fetch $READMES :fetch $READMES
:print de_DE_frami.txt >! $target :print README.md >! $target
:cat README_de_DE_frami.txt >> $target :cat README.md >> $target
:print =================================================== >>$target
:print extension_owner >> $target
:cat README_extension_owner.txt >> $target
# #
# Fetching the files from the LibreOffices github repository. # Fetching the files from the LibreOffices github repository.
# The OLDSPELL file comes from elsewhere # The OLDSPELL file comes from elsewhere
# #
OODIR = https://github.com/LibreOffice/dictionaries/raw/master/de
DEDIR = http://www.j3e.de/myspell DEDIR = http://www.j3e.de/myspell
:attr {fetch = $OODIR/%file%} $DICT_FILES :attr {fetch = $YAMAGIDIR/src/%file%} $DICT_FILES
:attr {fetch = $OODIR/%file%} $READMES
:attr {fetch = $DEDIR/%file%} $ZIPFILE_19 :attr {fetch = $DEDIR/%file%} $ZIPFILE_19
# The files don't depend on the .zip file so that we can delete it.
# Only download the zip file if the targets don't exist.
de_DE.aff de_DE.dic de_20.aff de_20.dic: {buildcheck=} de_DE.aff de_DE.dic de_20.aff de_20.dic: {buildcheck=}
:assertpkg patch
:fetch $FILE_DE_AFF :fetch $FILE_DE_AFF
:fetch $FILE_DE_DIC :fetch $FILE_DE_DIC
:move de_DE_frami.aff de_DE.aff :move de_DE_frami.aff de_DE.aff
:move de_DE_frami.dic de_DE.dic :move de_DE_frami.dic de_DE.dic
@if not os.path.exists('de_DE.orig.aff'):
:copy de_DE.aff de_DE.orig.aff
@if not os.path.exists('de_DE.orig.dic'):
:copy de_DE.dic de_DE.orig.dic
@if os.path.exists('de_DE.diff'):
:sys patch <de_DE.diff
:copy de_DE.aff de_20.aff :copy de_DE.aff de_20.aff
:copy de_DE.dic de_20.dic :copy de_DE.dic de_20.dic
@@ -97,80 +87,16 @@ de_19.aff de_19.dic: {buildcheck=}
:sys patch <de_19.diff :sys patch <de_19.diff
de_AT.aff de_AT.dic: {buildcheck=} de_AT.aff de_AT.dic: {buildcheck=}
:assertpkg patch
:fetch $FILE_AT_AFF :fetch $FILE_AT_AFF
:fetch $FILE_AT_DIC :fetch $FILE_AT_DIC
:move $FILE_AT_AFF de_AT.aff :move $FILE_AT_AFF de_AT.aff
:move $FILE_AT_DIC de_AT.dic :move $FILE_AT_DIC de_AT.dic
@if not os.path.exists('de_AT.orig.aff'):
:copy de_AT.aff de_AT.orig.aff
@if not os.path.exists('de_AT.orig.dic'):
:copy de_AT.dic de_AT.orig.dic
@if os.path.exists('de_AT.diff'):
:sys patch <de_AT.diff
de_CH.aff de_CH.dic: {buildcheck=} de_CH.aff de_CH.dic: {buildcheck=}
:assertpkg patch
:fetch $FILE_CH_AFF :fetch $FILE_CH_AFF
:fetch $FILE_CH_DIC :fetch $FILE_CH_DIC
:move $FILE_CH_AFF de_CH.aff :move $FILE_CH_AFF de_CH.aff
:move $FILE_CH_DIC de_CH.dic :move $FILE_CH_DIC de_CH.dic
@if not os.path.exists('de_CH.orig.aff'):
:copy de_CH.aff de_CH.orig.aff
@if not os.path.exists('de_CH.orig.dic'):
:copy de_CH.dic de_CH.orig.dic
@if os.path.exists('de_CH.diff'):
:sys patch <de_CH.diff
# Generate diff files, so that others can get the OpenOffice files and apply
# the diffs to get the Vim versions.
diff:
:assertpkg diff
:sys {force} diff -a -C 1 de_DE.orig.aff de_DE.aff >de_DE.diff
:sys {force} diff -a -C 1 de_DE.orig.dic de_DE.dic >>de_DE.diff
:sys {force} diff -a -C 1 de_19.orig.aff de_19.aff >de_19.diff
:sys {force} diff -a -C 1 de_19.orig.dic de_19.dic >>de_19.diff
:sys {force} diff -a -C 1 de_AT.orig.aff de_AT.aff >de_AT.diff
:sys {force} diff -a -C 1 de_AT.orig.dic de_AT.dic >>de_AT.diff
:sys {force} diff -a -C 1 de_CH.orig.aff de_CH.aff >de_CH.diff
:sys {force} diff -a -C 1 de_CH.orig.dic de_CH.dic >>de_CH.diff
:copy de_DE.diff de_20.diff
# Check for updated OpenOffice spell files. When there are changes the
# ".new.aff" and ".new.dic" files are left behind for manual inspection.
check:
:assertpkg unzip patch
:fetch $ZIPFILE_19
:fetch $DICT_FILES
@try:
:mkdir tmp
:cd tmp
:sys $UNZIP ../$ZIPFILE_19
:copy ../*.aff .
:copy ../*.dic .
:move de_OLDSPELL.aff de_19.aff
:move de_OLDSPELL.dic de_19.dic
:move de_DE_frami.aff de_DE.aff
:move de_DE_frami.dic de_DE.dic
:move de_AT_frami.dic de_AT.dic
:move de_AT_frami.aff de_AT.aff
:move de_CH_frami.dic de_CH.dic
:move de_CH_frami.aff de_CH.aff
:copy de_DE.dic de_20.dic
:copy de_DE.aff de_20.aff
@import stat
@for nm in ['de_DE', 'de_19', 'de_20', 'de_AT', 'de_CH']:
@for ext in ['aff', 'dic']:
:sys {force} diff ../$(nm).orig.$ext $(nm).$ext >d
@if os.stat('d')[stat.ST_SIZE] > 0:
:copy $(nm).$ext ../$(nm).new.$ext
:sys {force} diff ../README_$(nm).txt README_$(nm).txt >d
@finally:
:cd ..
:delete {r}{f}{q} tmp
# vim: set sts=4 sw=4 : # vim: set sts=4 sw=4 :

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