Compare commits

...

663 Commits

Author SHA1 Message Date
aaadb5b6f7 patch 8.2.4980: when 'shortmess' contains 'A' loading session may still warn
Problem:    When 'shortmess' contains 'A' loading a session may still warn for
            an existing swap file. (Melker Österberg)
Solution:   Keep the 'A' flag to 'shortmess' in the session file.
            (closes #10443)
2022-05-18 22:07:47 +01:00
28d032cc68 patch 8.2.4979: accessing freed memory when line is flushed
Problem:    Accessing freed memory when line is flushed.
Solution:   Make a copy of the pattern to search for.
2022-05-18 16:29:08 +01:00
360da40b47 patch 8.2.4978: no error if engine selection atom is not at the start
Problem:    No error if engine selection atom is not at the start.
Solution:   Give an error. (Christian Brabandt, closes #10439)
2022-05-18 15:04:02 +01:00
e2bd8600b8 patch 8.2.4977: memory access error when substitute expression changes window
Problem:    Memory access error when substitute expression changes window.
Solution:   Disallow changing window in substitute expression.
2022-05-18 13:11:57 +01:00
b1040dc11f patch 8.2.4976: Coverity complains about not restoring a saved value
Problem:    Coverity complains about not restoring a saved value.
Solution:   Restore value before handling error.
2022-05-18 11:00:48 +01:00
51f0bfb88a patch 8.2.4975: recursive command line loop may cause a crash
Problem:    Recursive command line loop may cause a crash.
Solution:   Limit recursion of getcmdline().
2022-05-17 20:11:02 +01:00
4748c4bd64 patch 8.2.4974: ":so" command may read after end of buffer
Problem:    ":so" command may read after end of buffer.
Solution:   Compute length of text properly.
2022-05-17 17:47:07 +01:00
bd3a9d2c94 patch 8.2.4973: Vim9: type error for list unpack mentions argument
Problem:    Vim9: type error for list unpack mentions argument.
Solution:   Mention variable. (close #10435)
2022-05-17 16:12:39 +01:00
1ff9c44267 patch 8.2.4972: Vim9: compilation fails when using dict member when skipping
Problem:    Vim9: compilation fails when using dict member when skipping.
Solution:   Do not generate ISN_USEDICT when skipping. (closes #10433)
2022-05-17 15:03:33 +01:00
40c141d333 patch 8.2.4971: Vim9: interpolated string seen as range
Problem:    Vim9: interpolated string seen as range.
Solution:   Recognize an interpolated string at the start of a command line.
            (closes #10434)
2022-05-17 13:14:23 +01:00
0d03263fd7 patch 8.2.4970: "eval 123" gives an error, "eval 'abc'" does not
Problem:    "eval 123" gives an error, "eval 'abc'" does not.
Solution:   Also give an error when evaluating only a string. (closes #10434)
2022-05-17 12:45:15 +01:00
7ce5b2b590 patch 8.2.4969: changing text in Visual mode may cause invalid memory access
Problem:    Changing text in Visual mode may cause invalid memory access.
Solution:   Check the Visual position after making a change.
2022-05-16 19:40:59 +01:00
60ae0e7149 patch 8.2.4968: reading past end of the line when C-indenting
Problem:    Reading past end of the line when C-indenting.
Solution:   Check for NUL.
2022-05-16 18:06:15 +01:00
3c25a8617a patch 8.2.4967: MS-Windows GUI: mouse event test sometimes fails
Problem:    MS-Windows GUI: mouse event test sometimes fails.
Solution:   Ignore one move event only if there is an extra event.
2022-05-16 17:07:41 +01:00
e5162e76c0 patch 8.2.4966: MS-Windows GUI: mouse event test gets extra event
Problem:    MS-Windows GUI: mouse event test gets extra event.
Solution:   Ignore one move event.
2022-05-16 16:41:35 +01:00
7add8d3731 patch 8.2.4965: GUI: testing mouse move event depends on screen cell size
Problem:    GUI: testing mouse move event depends on screen cell size.
Solution:   Multiply the row and column with the screen cell size.
2022-05-16 15:27:46 +01:00
3b675c276c patch 8.2.4964: MS-Windows GUI: mouse event test is flaky
Problem:    MS-Windows GUI: mouse event test is flaky.
Solution:   Add a short delay after generating a mouse event.
2022-05-16 13:34:44 +01:00
386c24cd26 patch 8.2.4963: expanding path with "/**" may overrun end of buffer
Problem:    Expanding path with "/**" may overrun end of buffer.
Solution:   Use vim_snprintf().
2022-05-16 12:37:36 +01:00
5a8fad32ea patch 8.2.4962: files show up in git status
Problem:    Files show up in git status.
Solution:   Adjust the list of ignored files.  Clean up more test files.
            (Shane xb Qian, closes #9929)
2022-05-16 11:14:09 +01:00
9f28eeb694 patch 8.2.4961: build error with a certain combination of features
Problem:    Build error with a certain combination of features.
Solution:   Adjust #if. (John Marriott)
2022-05-16 10:04:51 +01:00
1bdc60eb91 patch 8.2.4960: text properties that cross lines not updated for deleted line
Problem:    Text properties that cross line boundary are not correctly updated
            for a deleted line.
Solution:   Correct computing location of text property entry. (Paul Ollis,
            closes #10431, closes #10430)
2022-05-15 22:24:55 +01:00
b62dc5e782 patch 8.2.4959: using NULL regexp program
Problem:    Using NULL regexp program.
Solution:   Check for regexp program becoming NULL in more places.
2022-05-15 14:50:12 +01:00
dd41037552 patch 8.2.4958: a couple conditions are always true
Problem:    A couple conditions are always true.
Solution:   Remove the conditions. (Goc Dundar, closes #10428)
2022-05-15 13:59:11 +01:00
b559b302e0 patch 8.2.4957: text properties in a wrong position after a block change
Problem:    Text properties in a wrong position after a block change.
Solution:   Adjust the properties columns. (closes #10427)
2022-05-15 13:08:02 +01:00
395bd1f6d3 patch 8.2.4956: reading past end of line with "gf" in Visual block mode
Problem:    Reading past end of line with "gf" in Visual block mode.
Solution:   Do not include the NUL in the length.
2022-05-14 21:29:44 +01:00
788c06a249 patch 8.2.4955: text property in wrong position after auto-indent
Problem:    Text property in wrong position after auto-indent.
Solution:   Adjust text property columns. (closes #10422, closes #7719)
2022-05-14 18:48:05 +01:00
698cb4c8fa patch 8.2.4954: inserting line breaks text property spanning two lines
Problem:    Inserting line breaks text property spanning more then one line.
Solution:   Check TP_FLAG_CONT_PREV and TP_FLAG_CONT_NEXT. (closes #10423)
2022-05-14 18:10:15 +01:00
30ab04e16e Update runtime files, new color schemes 2022-05-14 13:33:50 +01:00
2e444bbef0 patch 8.2.4953: with 'si' inserting '}' after completion goes wrong
Problem:    With 'smartindent' inserting '}' after completion goes wrong.
Solution:   Check the cursor is in indent.  (closes #10420)
2022-05-14 12:54:23 +01:00
98feacedf9 patch 8.2.4952: GUI test will fail if color scheme changes
Problem:    GUI test will fail if color scheme changes.
Solution:   Reduce the test for now.
2022-05-14 12:34:43 +01:00
de5cf28781 patch 8.2.4951: smart indenting done when not enabled
Problem:    Smart indenting done when not enabled.
Solution:   Check option values before setting can_si. (closes #10420)
2022-05-14 11:52:23 +01:00
4b93674159 patch 8.2.4950: text properties position wrong after shifting text
Problem:    Text properties position wrong after shifting text.
Solution:   Adjust the text properties when shifting a block of text.
            (closes #10418)
2022-05-13 21:56:28 +01:00
31ad32a325 patch 8.2.4949: Vim9: some code not covered by tests
Problem:    Vim9: some code not covered by tests.
Solution:   Add a few more test cases.  Fix double error message.
2022-05-13 16:23:37 +01:00
d881d15984 patch 8.2.4948: cannot use Perl heredoc in nested :def function
Problem:    Cannot use Perl heredoc in nested :def function. (Virginia
            Senioria)
Solution:   Only concatenate heredoc lines when not in a nested function.
            (closes #10415)
2022-05-13 13:50:36 +01:00
b7a7012555 patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Problem:    Text properties not adjusted when accepting spell suggestion.
Solution:   Adjust text properties when text changes. (closes #10414)
2022-05-13 12:41:50 +01:00
7f8a3b11bf patch 8.2.4946: Vim9: some code not covered by tests
Problem:    Vim9: some code not covered by tests.
Solution:   Add a few more test cases.  Remove dead code.
2022-05-12 22:03:01 +01:00
9f1983de4e patch 8.2.4945: inconsistent use of white space
Problem:    Inconsistent use of white space.
Solution:   Use Tabs and Spaces consistently.
2022-05-12 20:35:35 +01:00
3f32a5f160 Update runtime files and translations 2022-05-12 20:34:15 +01:00
d0b1a09f44 patch 8.2.4944: text properties are wrong after "cc"
Problem:    Text properties are wrong after "cc". (Axel Forsman)
Solution:   Pass the deleted byte count to inserted_bytes(). (closes #10412,
            closes #7737, closes #5763)
2022-05-12 18:45:18 +01:00
39c46b4378 patch 8.2.4943: changing 'switchbuf' may have no effect
Problem:    Changing 'switchbuf' may have no effect.
Solution:   Handle 'switchbuf' in didset_string_options(). (Sean Dewar,
            closes #10406)
2022-05-12 17:44:29 +01:00
de216732d4 patch 8.2.4942: error when setting 'filetype' in help file again
Problem:    Error when setting 'filetype' in help file again.
Solution:   Deal with text property type already existing. (closes #10409)
2022-05-12 17:24:49 +01:00
82444cefa3 patch 8.2.4941: '[ and '] marks may be wrong after undo
Problem:    '[ and '] marks may be wrong after undo.
Solution:   Adjust the '[ and '] marks if needed. (closes #10407, closes #1281)
2022-05-12 15:39:31 +01:00
d0132f4862 patch 8.2.4940: some code is never used
Problem:    Some code is never used.
Solution:   Remove dead code.  Add a few more test cases.
2022-05-12 11:05:40 +01:00
9af2bc0751 patch 8.2.4939: matchfuzzypos() with "matchseq" does not have all positions
Problem:    matchfuzzypos() with "matchseq" does not have all positions.
Solution:   Also add a position for white space. (closes #10404)
2022-05-11 14:15:37 +01:00
a59f2dfd0c patch 8.2.4938: crash when matching buffer with invalid pattern
Problem:    Crash when matching buffer with invalid pattern.
Solution:   Check for NULL regprog.
2022-05-11 11:42:28 +01:00
ead241538c patch 8.2.4937: no test for what 8.2.4931 fixes
Problem:    No test for what 8.2.4931 fixes.
Solution:   Add a test that triggers a valgrind error.
2022-05-10 21:11:12 +01:00
a773d84570 patch 8.2.4936: MS-Windows: mouse coordinates for scroll event are wrong
Problem:    MS-Windows: mouse coordinates for scroll event are wrong.
Solution:   Convert coordinates to the text area coordinates. (closes #10400)
2022-05-10 20:54:46 +01:00
d98e75e236 patch 8.2.4935: with 'foldmethod' "indent" some lines not included in fold
Problem:    With 'foldmethod' "indent" some lines are not included in the
            fold. (Oleg Koshovetc)
Solution:   Fix it. (Brandon Simmons, closes #10399, closes #3214)
2022-05-10 19:13:23 +01:00
70c41241c2 patch 8.2.4934: string interpolation fails when not evaluating
Problem:    String interpolation fails when not evaluating.
Solution:   Skip the expression when not evaluating. (closes #10398)
2022-05-10 18:11:43 +01:00
df6e0e46c5 patch 8.2.4933: a few more capitalization mistakes in error messages
Problem:    A few more capitalization mistakes in error messages.
Solution:   Adjust capitalization. (Doug Kearns)
2022-05-10 17:51:55 +01:00
d8f5f76621 patch 8.2.4932: not easy to filter the output of maplist()
Problem:    Not easy to filter the output of maplist().
Solution:   Add mode_bits to the dictionary. (Ernie Rael, closes #10356)
2022-05-10 17:50:39 +01:00
0f267621c0 patch 8.2.4931: Crash with sequence of Perl commands
Problem:    Crash with sequence of Perl commands.
Solution:   Move PUTBACK to another line. (closes #10386)
2022-05-10 13:32:24 +01:00
0abc2871c1 patch 8.2.4930: interpolated string expression requires escaping
Problem:    Interpolated string expression requires escaping.
Solution:   Do not require escaping in the expression.
2022-05-10 13:24:30 +01:00
57ff52677b patch 8.2.4929: off-by-one error in in statusline item
Problem:    Off-by-one error in in statusline item.
Solution:   Subtrace one less. (closes #10394, closes #5599)
2022-05-09 21:03:47 +01:00
6ed545e797 patch 8.2.4928: various white space and cosmetic mistakes
Problem:    Various white space and cosmetic mistakes.
Solution:   Change spaces to tabs, improve comments.
2022-05-09 20:09:23 +01:00
921bde8880 Update runtime files, translations 2022-05-09 19:50:35 +01:00
2ac037f54b patch 8.2.4927: return type of remove() incorrect when using three arguments
Problem:    Return type of remove() incorrect when using three arguments.
Solution:   Use first argument type when there are three arguments.
            (closes #10387)
2022-05-09 14:12:14 +01:00
51f0bc31d3 patch 8.2.4926: #ifdef for crypt feature around too many lines
Problem:    #ifdef for crypt feature around too many lines.
Solution:   Move code outside of #ifdef. (closes #10388)
2022-05-09 13:33:39 +01:00
53a70289c2 patch 8.2.4925: trailing backslash may cause reading past end of line
Problem:    Trailing backslash may cause reading past end of line.
Solution:   Check for NUL after backslash.
2022-05-09 13:15:07 +01:00
0519ce0039 patch 8.2.4924: maparg() may return a string that cannot be reused
Problem:    maparg() may return a string that cannot be reused.
Solution:   use msg_outtrans_special() instead of str2special().
            (closes #10384)
2022-05-09 12:16:19 +01:00
194843028e patch 8.2.4923: test checks for terminal feature unnecessarily
Problem:    Test checks for terminal feature unnecessarily.
Solution:   Remove CheckRunVimInTerminal. (closes #10383)
2022-05-09 11:03:19 +01:00
b370771bff patch 8.2.4922: mouse test fails on MS-Windows
Problem:    Mouse test fails on MS-Windows.
Solution:   Set 'mousemodel' to "extend".
2022-05-08 22:49:43 +01:00
fe978c2b6b patch 8.2.4921: spell test fails because of new illegal byte check
Problem:    Spell test fails because of new illegal byte check.
Solution:   Remove the test.
2022-05-08 22:43:51 +01:00
728a05c4ab patch 8.2.4920: MS-Windows GUI: unused variables
Problem:    MS-Windows GUI: unused variables.
Solution:   Delete the variables. (John Marriott)
2022-05-08 22:37:45 +01:00
7c824682d2 patch 8.2.4919: can add invalid bytes with :spellgood
Problem:    Can add invalid bytes with :spellgood.
Solution:   Check for a valid word string.
2022-05-08 22:32:58 +01:00
9830db6305 patch 8.2.4918: conceal character from matchadd() displayed too many times
Problem:    Conceal character from matchadd() displayed too many times.
Solution:   Check the syntax flag. (closes #10381, closes #7268)
2022-05-08 21:25:20 +01:00
cb747899bd patch 8.2.4917: fuzzy expansion of option names is not right
Problem:    Fuzzy expansion of option names is not right.
Solution:   Pass the fuzzy flag down the call chain. (Christian Brabandt,
            closes #10380, closes #10318)
2022-05-08 21:10:56 +01:00
8e8dc9b323 patch 8.2.4916: mouse in Insert mode test fails
Problem:    Mouse in Insert mode test fails.
Solution:   Fix the text and check relevant positions.
2022-05-08 20:38:06 +01:00
a91cb98bb3 patch 8.2.4915: sometimes the cursor is in the wrong position
Problem:    Sometimes the cursor is in the wrong position.
Solution:   When the cursor moved to another line, recompute w_botline.
            (closes #9736)
2022-05-08 19:39:31 +01:00
933c2922b5 patch 8.2.4914: string interpolation in :def function may fail
Problem:    String interpolation in :def function may fail.
Solution:   Do not terminate the expression. (closes #10377)
2022-05-08 16:37:07 +01:00
27724251bc patch 8.2.4913: popup_hide() does not always have effect
Problem:    Popup_hide() does not always have effect.
Solution:   Add the POPF_HIDDEN_FORCE flag. (closes #10376)
2022-05-08 15:00:04 +01:00
d899e51120 Update runtime files 2022-05-07 21:54:03 +01:00
a7583c42cd patch 8.2.4912: using execute() to define a lambda doesn't work
Problem:    Using execute() to define a lambda doesn't work. (Ernie Rael)
Solution:   Put the getline function in evalarg. (closes #10375)
2022-05-07 21:14:05 +01:00
249591057b patch 8.2.4911: the mode #defines are not clearly named
Problem:    The mode #defines are not clearly named.
Solution:   Prepend MODE_.  Renumber them to put the mapped modes first.
2022-05-07 20:01:16 +01:00
9ff7d717aa patch 8.2.4910: imperfect coding
Problem:    Imperfect coding.
Solution:   Make code nicer.
2022-05-07 17:45:16 +01:00
ac4174e166 patch 8.2.4909: MODE_ enum entries names are too generic
Problem:    MODE_ enum entries names are too generic.
Solution:   use CH_MODE_.
2022-05-07 16:38:24 +01:00
48a8a83303 patch 8.2.4908: no text formatting for // comment after a statement
Problem:    No text formatting for // comment after a statement.
Solution:   format a comment when the 'c' flag is in 'formatoptions'.
2022-05-07 15:43:52 +01:00
2bf875f881 patch 8.2.4907: some users do not want a line comment always inserted
Problem:    Some users do not want a line comment always inserted.
Solution:   Add the '/' flag to 'formatoptions' to not repeat the comment
            leader after a statement when using "o".
2022-05-07 14:54:11 +01:00
aa04e1b0be patch 8.2.4906: MS-Windows: cannot use transparent background
Problem:    MS-Windows: cannot use transparent background.
Solution:   Make transparent background work with 'termguicolors' and NONE
            background color. (Yasuhiro Matsumoto, closes #10310, closes #7162)
2022-05-07 14:09:19 +01:00
3f1cfcb864 patch 8.2.4905: codecov includes MS-Windows install header file
Problem:    codecov includes MS-Windows install header file.
Solution:   Ignore dosinst.h.
2022-05-07 13:25:37 +01:00
4649c12123 patch 8.2.4904: codecov includes MS-Windows install files
Problem:    codecov includes MS-Windows install files.
Solution:   Ignore dosinst.c and uninstall.c.
2022-05-07 13:00:42 +01:00
79d599b877 patch 8.2.4903: cannot get the current cmdline completion type and position
Problem:    Cannot get the current cmdline completion type and position.
Solution:   Add getcmdcompltype() and getcmdscreenpos(). (Shougo Matsushita,
            closes #10344)
2022-05-07 12:48:29 +01:00
c27747e6dd patch 8.2.4902: mouse wheel scrolling is inconsistent
Problem:    Mouse wheel scrolling is inconsistent.
Solution:   Use the MS-Winows system setting. (closes #10368)
2022-05-07 12:25:40 +01:00
8e4b76da1d patch 8.2.4901: NULL pointer access when using invalid pattern
Problem:    NULL pointer access when using invalid pattern.
Solution:   Check for failed regexp program.
2022-05-07 11:28:06 +01:00
801c3c1dbe patch 8.2.4900: Vim9 expression test fails without the job feature
Problem:    Vim9 expression test fails without the job feature.
Solution:   Add a check for the job feature. (Dominique Pellé, closes #10373)
2022-05-07 11:00:08 +01:00
ef02f16609 patch 8.2.4899: with latin1 encoding CTRL-W might go before the cmdline
Problem:    With latin1 encoding CTRL-W might go before the start of the
            command line.
Solution:   Check already being at the start of the command line.
2022-05-07 10:49:10 +01:00
70d87690a3 patch 8.2.4898: Coverity complains about pointer usage
Problem:    Coverity complains about pointer usage.
Solution:   Move code for increment/decerment.
2022-05-07 10:03:27 +01:00
39be4981cd patch 8.2.4897: comment inside an expression in lambda ignores the rest
Problem:    Comment inside an expression in lambda ignores the rest of the
            expression.
Solution:   Truncate the line at the comment. (closes #10367)
2022-05-06 21:51:50 +01:00
a13e7acba9 patch 8.2.4896: expression in command block does not look after NL
Problem:    Expression in command block does not look after NL when command is
            typed.
Solution:   Skip over NL also when not in a script. (closes #10358)
2022-05-06 21:24:31 +01:00
d88934406c patch 8.2.4895: buffer overflow with invalid command with composing chars
Problem:    Buffer overflow with invalid command with composing chars.
Solution:   Check that the whole character fits in the buffer.
2022-05-06 20:38:47 +01:00
5a7b6dc23c patch 8.2.4894: MS-Windows: not using italics
Problem:    MS-Windows: not using italics.
Solution:   Use italics.  Simplify the code. (closes #10359)
2022-05-06 18:38:41 +01:00
44433da534 patch 8.2.4893: distributed import files are not installed
Problem:    Distributed import files are not installed.
Solution:   Add rules to Makefile and NSIS.
2022-05-06 18:08:52 +01:00
ec89223478 patch 8.2.4892: test failures because of changed error messages
Problem:    Test failures because of changed error messages.
Solution:   Adjust the exptected error messages.
2022-05-06 17:53:06 +01:00
b3c9077a5b patch 8.2.4891: Vim help presentation could be better
Problem:    Vim help presentation could be better.
Solution:   Add an imported file for extra Vim help support.  Show highlight
            names in the color they have.
2022-05-06 16:32:46 +01:00
cf030578b2 patch 8.2.4890: inconsistent capitalization in error messages
Problem:    Inconsistent capitalization in error messages.
Solution:   Make capitalization consistent. (Doug Kearns)
2022-05-06 16:18:41 +01:00
009e79c7b7 patch 8.2.4889: CI only tests with FreeBSD 12
Problem:    CI only tests with FreeBSD 12.
Solution:   Also test with FreeBSD 13. (closes #10366)
2022-05-06 16:10:50 +01:00
521bf32bb4 patch 8.2.4888: line number of lambda ignores line continuation
Problem:    Line number of lambda ignores line continuation.
Solution:   Use the line number of where the arguments are. Avoid outputting
            "..." twice. (closes #10364)
2022-05-06 15:47:07 +01:00
9b334d5912 patch 8.2.4887: channel log does not show invoking a timer callback
Problem:    Channel log does not show invoking a timer callback.
Solution:   Add a ch_log() call.
2022-05-06 14:59:04 +01:00
bc6f2bf78a patch 8.2.4886: Vim9: redir in skipped block seen as assignment
Problem:    Vim9: redir in skipped block seen as assignment.
Solution:   Check for valid assignment.
2022-05-06 14:29:09 +01:00
f1d63b9cba patch 8.2.4885: test fails with the job/channel feature
Problem:    Test fails with the job/channel feature.
Solution:   Move check for job/channel separately.
2022-05-06 13:37:42 +01:00
175913fb03 patch 8.2.4884: test fails without the job/channel feature
Problem:    Test fails without the job/channel feature. (Dominique Pellé)
Solution:   Add condition.
2022-05-06 13:27:08 +01:00
2eaef106e4 patch 8.2.4883: string interpolation only works in heredoc
Problem:    String interpolation only works in heredoc.
Solution:   Support interpolated strings.  Use syntax for heredoc consistent
            with strings, similar to C#. (closes #10327)
2022-05-06 13:14:50 +01:00
e7d6dbc572 patch 8.2.4882: cannot make 'breakindent' use a specific column
Problem:    Cannot make 'breakindent' use a specific column.
Solution:   Add the "column" entry in 'breakindentopt'. (Christian Brabandt,
            closes #10362, closes #10325)
2022-05-06 12:21:04 +01:00
509142ab7a patch 8.2.4881: "P" in Visual mode still changes some registers
Problem:    "P" in Visual mode still changes some registers.
Solution:   Make "P" in Visual mode not change any register. (Shougo
            Matsushita, closes #10349)
2022-05-06 11:45:09 +01:00
434725cc4c patch 8.2.4880: Vim9: misplaced elseif causes invalid memory access
Problem:    Vim9: misplaced elseif causes invalid memory access.
Solution:   Check cs_idx not to be negative.
2022-05-06 11:27:52 +01:00
3e79427803 patch 8.2.4879: screendump test may fail when using valgrind
Problem:    Screendump test may fail when using valgrind.
Solution:   Wait longer for the first screendump.
2022-05-06 11:21:19 +01:00
dd7eff0a75 patch 8.2.4878: valgrind warning for using uninitialized variable
Problem:    Valgrind warning for using uninitialized variable.
Solution:   Initialize the type of newtv.
2022-05-06 11:02:05 +01:00
d560014e03 patch 8.2.4877: MS-Windows: Wrongly using Normal colors for termguicolors
Problem:    MS-Windows: Using Normal colors for termguicolors causes problems.
Solution:   Do not use Normal colors to set sg_gui_fg and sg_gui_bg.
            (Christian Brabandt, closes #10317, closes #10241)
2022-05-05 21:09:54 +01:00
dfbdadce44 patch 8.2.4876: MS-Windows: Shift-BS results in strange char in powershell
Problem:    MS-Windows: Shift-BS results in strange character in powershell.
Solution:   Add K_S_BS. (Christian Brabandt, closes #10283, closes #10279)
2022-05-05 20:46:47 +01:00
40fd7e6652 patch 8.2.4875: MS-Windows: some .exe files are not recognized
Problem:    MS-Windows: some .exe files are not recognized.
Solution:   Parse APPEXECLINK junctions. (closes #10302)
2022-05-05 20:18:16 +01:00
365d8f76b5 patch 8.2.4874: Win32 GUI: horizontal scroll wheel not handled properly
Problem:    Win32 GUI: horizontal scroll wheel not handled properly.
Solution:   Also handle WM_MOUSEHWHEEL. (closes #10309)
2022-05-05 19:23:07 +01:00
505ed0c38f patch 8.2.4873: Vim9: using "else" differs from using "endif/if !cond"
Problem:    Vim9: using "else" differs from using "endif/if !cond".
Solution:   Leave the block and enter another one. (closes #10320)
2022-05-05 17:02:46 +01:00
ea72038d60 patch 8.2.4872: Vim9: no error for using an expression only
Problem:    Vim9: no error for using an expression only at the script level
            when followed by an empty line.
Solution:   Do not check the line number but whether something follows.
            (closes #10357)
2022-05-05 16:08:55 +01:00
09d9421b67 patch 8.2.4871: Vim9: in :def function no error for misplaced range
Problem:    Vim9: in :def function no error for using a range with a command
            that does not accept one.
Solution:   Check for the command to accept a range. (closes #10330)
2022-05-05 15:20:03 +01:00
f3b4895f27 patch 8.2.4870: Vim9: expression in :substitute is not compiled
Problem:    Vim9: expression in :substitute is not compiled.
Solution:   Use an INSTR instruction if possible. (closes #10334)
2022-05-05 13:53:03 +01:00
e442d59f6d patch 8.2.4869: expression in command block does not look after NL
Problem:    Expression in command block does not look after NL.
Solution:   Skip over NL to check what follows. (closes #10358)
2022-05-05 12:20:28 +01:00
2a2707d033 patch 8.2.4868: when closing help window autocmds triggered for wrong window
Problem:    When closing help window autocmds triggered for the wrong window.
Solution:   Figure out the new current window earlier. (closes #10348)
2022-05-04 22:13:47 +01:00
ac402f4d64 patch 8.2.4867: listing of mapping with K_SPECIAL is wrong
Problem:    Listing of mapping with K_SPECIAL is wrong.
Solution:   Adjust escaping of special characters. (closes #10351)
2022-05-04 18:51:43 +01:00
47d4e317f8 patch 8.2.4866: duplicate code in "get" functions
Problem:    Duplicate code in "get" functions.
Solution:   Use get_var_from() for getwinvar(), gettabvar(), gettabwinvar()
            and getbufvar(). (closes #10335)
2022-05-04 18:12:55 +01:00
cd5dbad184 patch 8.2.4865: :startinsert right after :stopinsert may not work
Problem:    :startinsert right after :stopinsert does not work when popup menu
            is still visible.
Solution:   Use ins_compl_active() instead of pum_visible(). (closes #10352)
2022-05-04 17:51:50 +01:00
0395f88b84 patch 8.2.4864: Vim9: script test fails
Problem:    Vim9: script test fails.
Solution:   Remove "if" around declaration.
2022-05-04 17:29:15 +01:00
c9af617ac6 patch 8.2.4863: accessing freed memory in test without the +channel feature
Problem:    Accessing freed memory in test without the +channel feature.
            (Dominique Pellé)
Solution:   Do not generted PUSHCHANNEL or PUSHJOB if they are not
            implemented. (closes #10350)
2022-05-04 16:46:54 +01:00
23d44493f1 patch 8.2.4862: Vim9: test may fail when run with valgrind
Problem:    Vim9: test may fail when run with valgrind.
Solution:   Wait longer for callback if needed.
2022-05-04 16:24:57 +01:00
51d04d16f2 patch 8.2.4861: it is not easy to restore saved mappings
Problem:    It is not easy to restore saved mappings.
Solution:   Make mapset() accept a dict argument. (Ernie Rael, closes #10295)
2022-05-04 15:40:22 +01:00
05cf63e9bd patch 8.2.4860: MS-Windows: always uses current directory for executables
Problem:    MS-Windows: always uses current directory for executables.
Solution:   Check the NoDefaultCurrentDirectoryInExePath environment variable.
            (Yasuhiro Matsumoto, closes #10341)
2022-05-03 11:02:28 +01:00
3a974a8933 patch 8.2.4859: wget2 files are not recognized
Problem:    wget2 files are not recognized.
Solution:   Add patterns to recognize wget2. (Doug Kearns)
2022-05-02 23:51:13 +01:00
db08887f24 patch 8.2.4858: K_SPECIAL may be escaped twice
Problem:    K_SPECIAL may be escaped twice.
Solution:   Avoid double escaping. (closes #10340)
2022-05-02 22:53:45 +01:00
f4f579b46b patch 8.2.4857: Yaml indent for multiline is wrong
Problem:    Yaml indent for multiline is wrong.
Solution:   Adjust patterns. (closes #10328, closes #8740)
2022-05-02 10:46:49 +01:00
2890c0b9d2 patch 8.2.4856: MinGW compiler complains about unknown escape sequence
Problem:    MinGW compiler complains about unknown escape sequence.
Solution:   Avoid using a backslash in path. (Christian Brabandt,
            closes #10337)
2022-05-02 10:34:15 +01:00
2096a5f128 patch 8.2.4855: robot files are not recognized
Problem:    Robot files are not recognized.
Solution:   Add patterns for robot files. (Zoe Roux, closes #10339)
2022-05-02 10:29:31 +01:00
2f7e00a8ae patch 8.2.4854: array size does not match usage
Problem:    Array size does not match usage.
Solution:   Make array size 3 instead of 4. (Christian Brabandt, closes #10336)
2022-05-02 00:06:51 +01:00
056a1c2bdd patch 8.2.4853: CI with FreeBSD is a bit outdated
Problem:    CI with FreeBSD is a bit outdated.
Solution:   Use 12.3 instead of 12.1. (closes #10333)
2022-05-01 20:43:50 +01:00
d2a4662430 patch 8.2.4852: ANSI color index to RGB value not correct
Problem:    ANSI color index to RGB value not correct.
Solution:   Convert the cterm index to ANSI index. (closes #10321,
            closes #9836))
2022-05-01 17:43:33 +01:00
b4011afe53 patch 8.2.4851: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable.
Solution:   Use another variable to decide to restore option values.
2022-05-01 00:42:24 +01:00
d7c9564d8d patch 8.2.4850: mksession mixes up "tabpages" and "curdir" arguments
Problem:    Mksession mixes up "tabpages" and "curdir" arguments.
Solution:   Correct logic for storing tabpage in session. (closes #10312)
2022-04-30 16:10:27 +01:00
917c32c4f7 patch 8.2.4849: Gleam filetype not detected
Problem:    Gleam filetype not detected.
Solution:   Add a pattern for Gleam files. (Mathias Jean Johansen,
            closes #10326)
2022-04-30 15:10:07 +01:00
ee44603069 patch 8.2.4848: local completion with mappings and simplification not working
Problem:    Local completion with mappings and simplification not working.
Solution:   Fix local completion <C-N>/<C-P> mappings not ignored if keys are
            not simplified. (closes #10323)
2022-04-30 15:02:22 +01:00
a5d3590505 patch 8.2.4847: crash when using uninitialized function pointer
Problem:    Crash when using uninitialized function pointer.
Solution:   Check for NULL pointer. (closes #10319, closes #10319)
2022-04-29 21:15:02 +01:00
bad8a013c2 patch 8.2.4846: termcodes test fails
Problem:    Termcodes test fails.
Solution:   use CTRL-SHIFT-V to insert an unsimplified key. (closes #10316)
2022-04-29 16:44:00 +01:00
590f365f91 patch 8.2.4845: duplicate code
Problem:    Duplicate code.
Solution:   Move code below if/else. (closes #10314)
2022-04-29 11:29:54 +01:00
758a8d1999 patch 8.2.4844: <C-S-I> is simplified to <S-Tab>
Problem:    <C-S-I> is simplified to <S-Tab>.
Solution:   Do not simplify CTRL if there is also SHIFT. (closes #10313)
2022-04-29 11:06:34 +01:00
202b4bd3a4 patch 8.2.4843: treating CTRL + ALT as AltGr is not backwards compatible
Problem:    Win32 GUI: Treating CTRL + ALT as AltGr is not backwards
            compatible. (Axel Bender)
Solution:   Make a difference between left and right menu keys.
            (closes #10308)
2022-04-28 19:50:54 +01:00
211a5bb235 patch 8.2.4842: expand("%:p") is not empty when there is no buffer name
Problem:    expand("%:p") is not empty when there is no buffer name.
Solution:   When ignoring errors still return NULL. (closes #10311)
2022-04-28 19:09:03 +01:00
a96edb736d patch 8.2.4841: empty string considered an error for expand()
Problem:    Empty string considered an error for expand() when 'verbose' is
            set. (Christian Brabandt)
Solution:   Do not give an error for an empty result. (closes #10307)
2022-04-28 17:52:24 +01:00
05c7f5d3d0 patch 8.2.4840: heredoc expression evaluated even when skipping
Problem:    Heredoc expression evaluated even when skipping.
Solution:   Don't evaluate when "skip" is set. (closes #10306)
2022-04-28 16:51:41 +01:00
0a748d9184 patch 8.2.4839: compiler warning for unused argument
Problem:    Compiler warning for unused argument.
Solution:   Add "UNUSED".
2022-04-28 15:39:08 +01:00
dca1d40cd0 patch 8.2.4838: checking for absolute path is not trivial
Problem:    Checking for absolute path is not trivial.
Solution:   Add isabsolutepath(). (closes #10303)
2022-04-28 15:26:33 +01:00
68a573ce2b patch 8.2.4837: modifiers not simplified when timed out
Problem:    Modifiers not simplified when timed out or using feedkeys() with
            'n" flag.
Solution:   Adjust how mapped flag and timeout are used. (closes #10305)
2022-04-28 14:10:01 +01:00
f6ced9863f patch 8.2.4836: Vim9: some lines not covered by tests
Problem:    Vim9: some lines not covered by tests.
Solution:   Remove dead code.  Add disassemble tests.
2022-04-28 12:00:49 +01:00
95e4dd813a patch 8.2.4835: Vim9: some lines not covered by tests
Problem:    Vim9: some lines not covered by tests.
Solution:   Add a few more tests.  Fix disassemble output.
2022-04-27 22:15:40 +01:00
06651630ee patch 8.2.4834: Vim9: some lines not covered by tests
Problem:    Vim9: some lines not covered by tests.
Solution:   Add a few more tests.  Remove dead code.
2022-04-27 17:54:25 +01:00
ce001a337e Update runtime files 2022-04-27 15:25:03 +01:00
12e21e387b patch 8.2.4833: failure of mapping not checked for
Problem:    Failure of mapping not checked for.
Solution:   Check return value of ins_typebuf(). (closes #10299)
2022-04-27 11:58:01 +01:00
fc78a0369e patch 8.2.4832: passing zero instead of NULL to a pointer argument
Problem:    Passing zero instead of NULL to a pointer argument.
Solution:   Use NULL. (closes #10296)
2022-04-26 22:11:38 +01:00
2c8a7ebdad patch 8.2.4831: crash when using maparg() and unmapping simplified keys
Problem:    Crash when using maparg() and unmapping simplified keys.
Solution:   Do not keep a mapblock pointer. (closes #10294)
2022-04-26 21:36:21 +01:00
23f106efeb patch 8.2.4830: possible endless loop if there is unused typahead
Problem:    Possible endless loop if there is unused typahead.
Solution:   Only loop when the typeahead changed.
2022-04-26 18:52:22 +01:00
17c95d9608 patch 8.2.4829: a key may be simplified to NUL
Problem:    A key may be simplified to NUL.
Solution:   Use K_ZERO instead.  Use macros instead of hard coded values.
            (closes #10290)
2022-04-26 12:51:07 +01:00
abeb09b2c5 patch 8.2.4828: fix for unmapping simplified key not fully tested
Problem:    Fix for unmapping simplified key not fully tested.
Solution:   Add a test case. (closes #10292)
2022-04-26 12:29:43 +01:00
87f74106f9 patch 8.2.4827: typo in variable name
Problem:    Typo in variable name. (Gabriel Dupras)
Solution:   Rename the variable.
2022-04-25 18:59:25 +01:00
1f435dafff patch 8.2.4826: .cshtml files are not recognized
Problem:    .cshtml files are not recognized.
Solution:   Use html filetype for .cshtml files. (Julien Voisin, closes #10212)
2022-04-25 17:40:56 +01:00
09661203ec patch 8.2.4825: can only get a list of mappings
Problem:    Can only get a list of mappings.
Solution:   Add the optional {abbr} argument. (Ernie Rael, closes #10277)
            Rename to maplist().  Rename test file.
2022-04-25 14:40:44 +01:00
23d5770ef5 patch 8.2.4824: expression is evaluated multiple times
Problem:    Expression is evaluated multiple times.
Solution:   Evaluate expression once and store the result. (closes #10278)
2022-04-25 13:28:00 +01:00
372bcceeee patch 8.2.4823: concat more than 2 strings in :def function is inefficient
Problem:    Concatenating more than 2 strings in a :def function is
            inefficient.
Solution:   Add a count to the CONCAT instruction. (closes #10276)
2022-04-25 12:43:20 +01:00
af59e34f1b patch 8.2.4822: setting ufunc to NULL twice
Problem:    Setting ufunc to NULL twice.
Solution:   Set ufunc to NULL in find_exported(). (closes #19275)
2022-04-24 21:55:00 +01:00
aac12daa61 patch 8.2.4821: crash when imported autoload script was deleted
Problem:    Crash when imported autoload script was deleted.
Solution:   Initialize local variable. (closes #10274)  Give a more meaningful
            error message.
2022-04-24 21:33:20 +01:00
659c240cf7 patch 8.2.4820: not simple programmatic way to find a specific mapping
Problem:    Not simple programmatic way to find a specific mapping.
Solution:   Add getmappings(). (Ernie Rael, closes #10273)
2022-04-24 18:40:28 +01:00
a4e3332650 patch 8.2.4819: unmapping simplified keys also deletes other mapping
Problem:    Unmapping simplified keys also deletes other mapping.
Solution:   Only unmap a mapping with m_simplified set. (closes #10270)
2022-04-24 17:07:53 +01:00
ac92ab7719 patch 8.2.4818: no test for what 8.2.4806 fixes
Problem:    No test for what 8.2.4806 fixes.
Solution:   Add a test. (closes #10727)
2022-04-24 15:58:30 +01:00
45684c6ec4 patch 8.2.4817: Win32 GUI: modifiers are not always used
Problem:    Win32 GUI: modifiers are not always used.
Solution:   Handle more modifiers. (closes #10269)
2022-04-24 15:46:42 +01:00
490ac3fe98 patch 8.2.4816: still using older codecov app in some places of CI
Problem:    Still using older codecov app in some places of CI.
Solution:   Use v3.1.0. (closes #10209)
2022-04-24 12:44:32 +01:00
d42b83942e patch 8.2.4815: cannot build with older GTK version
Problem:    Cannot build with older GTK version.
Solution:   Use gtk_window_get_size() instead of gdk_window_get_width() and
            gdk_window_get_height(). (Ernie Rael, closes #10257)
2022-04-23 19:52:23 +01:00
4a392d2440 patch 8.2.4814: possible to leave a popup window with win_gotoid()
Problem:    Possible to leave a popup window with win_gotoid().
Solution:   Give an error when trying to leave a popup window with
            win_gotoid(). (closes #10253)
2022-04-23 14:07:56 +01:00
2c40707baa patch 8.2.4813: pasting text while indent folding may mess up folds
Problem:    Pasting text while indent folding may mess up folds.
Solution:   Adjust the way folds are split. (Brandon Simmons, closes #10254)
2022-04-23 13:50:17 +01:00
8279cfe499 patch 8.2.4812: unused struct item
Problem:    Unused struct item.
Solution:   Remove "lines" match_T.  Simplify the code. (closes #10256)
2022-04-23 12:05:51 +01:00
0de7369fd4 patch 8.2.4811: Win32 GUI: caps lock doesn't work
Problem:    Win32 GUI: caps lock doesn't work.
Solution:   Handle VK_CAPITAL. (closes #10260, closes #10258)
2022-04-23 11:08:11 +01:00
56dba60216 patch 8.2.4810: missing changes in one file
Problem:    Missing changes in one file.
Solution:   Also change the struct initializers.
2022-04-23 11:03:58 +01:00
885de449c0 patch 8.2.4809: various things no6 properly tested
Problem:    Various things no6 properly tested.
Solution:   Add various test cases. (Yegappan Lakshmanan, closes #10259)
2022-04-23 10:51:14 +01:00
33d3ce640c patch 8.2.4808: unused item in engine struct
Problem:    Unused item in engine struct.
Solution:   Remove "expr".  Add comment with tags.
2022-04-23 10:41:35 +01:00
77fc0b02e5 patch 8.2.4807: processing key eveints in Win32 GUI is not ideal
Problem:    Processing key eveints in Win32 GUI is not ideal.
Solution:   Improve processing of key events. (closes #10155)
2022-04-22 22:45:52 +01:00
53ef573148 patch 8.2.4806: a mapping using <LeftDrag> does not start Select mode
Problem:    A mapping using <LeftDrag> does not start Select mode.
Solution:   When checking for starting select mode with the mouse also do this
            when there is typeahead. (closes #10249)
2022-04-22 21:20:26 +01:00
9b36750640 patch 8.2.4805: CurSearch used for all matches in current line
Problem:    CurSearch used for all matches in current line.
Solution:   Don't use the non-zero line count. (closes #10247)
2022-04-22 20:07:21 +01:00
1fc6ea9bf3 patch 8.2.4804: expression in heredoc doesn't work for compiled function
Problem:    Expression in heredoc doesn't work for compiled function.
Solution:   Implement compiling the heredoc expressions. (Yegappan Lakshmanan,
            closes #10232)
2022-04-21 23:30:15 +01:00
66e13aedc7 patch 8.2.4803: WinScrolled not always triggered when scrolling with mouse
Problem:    WinScrolled not always triggered when scrolling with the mouse.
Solution:   Add calls to may_trigger_winscrolled(). (closes #10246)
2022-04-21 22:52:11 +01:00
7851c69a12 patch 8.2.4802: test is not cleaned up
Problem:    Test is not cleaned up.
Solution:   Make test clean up after itself.  Avoid NUL. (closes #10233)
2022-04-21 11:14:01 +01:00
3fd7480cd2 patch 8.2.4801: fix for cursorbind fix not fully tested
Problem:    Fix for cursorbind fix not fully tested.
Solution:   Add another test case. (Christian Brabandt, closes #10240)
2022-04-20 22:07:41 +01:00
d0eaf675aa patch 8.2.4800: missing test update for adjusted t_8u behavior
Problem:    Missing test update for adjusted t_8u behavior.
Solution:   Update and extend the test.
2022-04-20 19:55:37 +01:00
0044e5100a patch 8.2.4799: popup does not use correct topline
Problem:    Popup does not use correct topline.
Solution:   Also add one when firstline is negative. (closes #10229)
2022-04-20 19:47:37 +01:00
dbec26d789 patch 8.2.4798: t_8u option was reset even when set by the user
Problem:    t_8u option was reset even when set by the user.
Solution:   Only reset t_8u when using the default value. (closes #10239)
2022-04-20 19:08:50 +01:00
8530b41fd3 patch 8.2.4797: getwininfo() may get oudated values
Problem:    getwininfo() may get oudated values.
Solution:   Make sure w_botline is up-to-date. (closes #10226)
2022-04-20 19:00:36 +01:00
da1050cd6f patch 8.2.4796: file left behind after running cursorline tests
Problem:    File left behind after running cursorline tests.
Solution:   Uncomment the line that deletes the file.
2022-04-20 18:41:49 +01:00
2c645e8b00 patch 8.2.4795: 'cursorbind' scrolling depends on whether 'cursorline' is set
Problem:    'cursorbind' scrolling depends on whether 'cursorline' is set.
Solution:   Always call validate_cursor(). (Christian Brabandt, closes #10230,
            closes #10014)
2022-04-20 14:52:01 +01:00
4c84dd33ad patch 8.2.4794: compiler warning for not initialized variable
Problem:    Compiler warning for not initialized variable.
Solution:   Initialize the variable. (John Marriott)
2022-04-20 10:22:54 +01:00
928a131356 patch 8.2.4793: recognizing Maxima filetype even though it might be another
Problem:    Recognizing Maxima filetype even though it might be another.
Solution:   Remove *.mc and *.dem patterns from Maxima files
2022-04-19 19:38:38 +01:00
e468698994 patch 8.2.4792: indent operator creates an undo entry for every line
Problem:    Indent operator creates an undo entry for every line.
Solution:   Create one undo entry for all lines. (closes #10227)
2022-04-19 18:28:45 +01:00
fef4485ef5 patch 8.2.4791: events triggered in different order when reusing buffer
Problem:    Autocmd events triggered in different order when reusing an empty
            buffer.
Solution:   Call buff_freeall() earlier. (Charlie Groves, closes #10198)
2022-04-19 16:24:12 +01:00
c448e9c950 patch 8.2.4790: lilypond filetype not recognized
Problem:    Lilypond filetype not recognized.
Solution:   Add patterns for lilypond. (Doug Kearns)
2022-04-19 15:29:57 +01:00
a653e53b1f patch 8.2.4789: cursor pos wrong when using :redraw while editing the cmdline
Problem:    The cursor may be in the in wrong place when using :redraw while
            editing the cmdline.
Solution:   When editing the command line let :redraw update the command line
            too. (closes #10210)
2022-04-19 11:38:24 +01:00
bac9a9e5c2 patch 8.2.4788: large payload for LSP message not tested
Problem:    Large payload for LSP message not tested.
Solution:   Add a test with a large LSP payload. (Yegappan Lakshmanan,
            closes #10223)
2022-04-19 10:25:13 +01:00
9bd3ce22e3 patch 8.2.4787: prop_find() does not find the right property
Problem:    prop_find() does not find the right property.
Solution:   Fix the scan order. (closes #10220)
2022-04-18 21:54:02 +01:00
861fcee8de patch 8.2.4786: test for win_gotoid() in Visual mode fails on Mac
Problem:    Test for win_gotoid() in Visual mode fails on Mac.
Solution:   Skip the test on MacOS.
2022-04-18 19:16:55 +01:00
3aca0916f0 patch 8.2.4785: Visual mode not stopped if win_gotoid() goes to other buffer
Problem:    Visual mode not stopped early enough if win_gotoid() goes to
            another buffer. (Sergey Vlasov)
Solution:   Stop Visual mode before jumping to another buffer. (closes #10217)
2022-04-18 18:32:19 +01:00
1693712f02 patch 8.2.4784: lamba test with timer is flaky
Problem:    Lamba test with timer is flaky.
Solution:   Adjust sleep time on retry.
2022-04-18 16:14:10 +01:00
42ccb8d747 patch 8.2.4783: Coverity warns for leaking memory
Problem:    Coverity warns for leaking memory.
Solution:   Use another strategy freeing "theline".
2022-04-18 15:45:23 +01:00
75ab590f85 Update runtime files 2022-04-18 15:36:40 +01:00
a929c922b1 patch 8.2.4782: accessing freed memory
Problem:    Accessing freed memory.
Solution:   Clear evalarg after checking for trailing characters.
            (issue #10218)
2022-04-18 15:21:17 +01:00
d0a20c9d11 patch 8.2.4781: Maxima files are not recognized
Problem:    Maxima files are not recognized.
Solution:   Add patterns to detect Maxima files. (Doron Behar, closes #10211)
2022-04-18 14:32:42 +01:00
03cca297df patch 8.2.4780: parsing an LSP message fails when it is split
Problem:    Parsing an LSP message fails when it is split.
Solution:   Collapse the received data before parsing. (Yegappan Lakshmanan,
            closes #10215)
2022-04-18 14:07:46 +01:00
53e8f3ffdf patch 8.2.4779: lsan suppression is too version specific
Problem:    lsan suppression is too version specific.
Solution:   Leave out the version number. (Christian Brabandt, closes #10214)
2022-04-17 21:36:37 +01:00
35cff32dd8 patch 8.2.4778: pacman files use dosini filetype
Problem:    Pacman files use dosini filetype.
Solution:   Use conf instead. (Chaoren Lin, closes #10213)
2022-04-17 21:15:48 +01:00
366f0bdd08 patch 8.2.4777: screendump tests fail because of a redraw
Problem:    Screendump tests fail because of a redraw.
Solution:   Do not output t_8u before receiving termresponse.  Redraw only
            when t_8u is not reset and termresponse is received.
2022-04-17 19:20:33 +01:00
9f53e7bd7f patch 8.2.4776: GTK: 'lines' and 'columns' may change during startup
Problem:    GTK: 'lines' and 'columns' may change during startup.
Solution:   Ignore stale GTK resize events. (Ernie Rael, closes #10179)
2022-04-17 18:27:49 +01:00
280aebfd35 patch 8.2.4775: SpellBad highlighting does not work in Konsole
Problem:    SpellBad highlighting does not work in Konsole.
Solution:   Do not keep t_8u defined for Konsole.  Redraw when t_8u is reset.
            (closes #10177)
2022-04-17 17:34:42 +01:00
8b91e71441 patch 8.2.4774: crash when using a number for lambda name
Problem:    Crash when using a number for lambda name.
Solution:   Check the type of the lambda reference.
2022-04-17 15:06:35 +01:00
a9549c9e8f patch 8.2.4773: build failure without the +eval feature
Problem:    Build failure without the +eval feature.
Solution:   Use other error message.  Avoid warnings.
2022-04-17 14:18:11 +01:00
3df8f6e353 patch 8.2.4772: old Coverity warning for not checking ftell() return value
Problem:    Old Coverity warning for not checking ftell() return value.
Solution:   Check return value of fseek() and ftell().
2022-04-17 14:01:51 +01:00
066e0d9869 patch 8.2.4771: Coverity warns for not checking return value
Problem:    Coverity warns for not checking return value.
Solution:   Check return value of rettv_dict_alloc().
2022-04-17 13:17:40 +01:00
efbfa867a1 patch 8.2.4770: cannot easily mix expression and heredoc
Problem:    Cannot easily mix expression and heredoc.
Solution:   Support  in heredoc. (Yegappan Lakshmanan, closes #10138)
2022-04-17 12:47:40 +01:00
68aaff4697 patch 8.2.4769: build warning with UCRT
Problem:    Build warning with UCRT.
Solution:   Adjust #ifdef for _wenviron. (John Marriott)
2022-04-17 10:57:44 +01:00
34ffa10280 patch 8.2.4768: CI: codecov upload sometimes does not work
Problem:    CI: codecov upload sometimes does not work.
Solution:   Use action v3 instead of v2. (closes #10209)
2022-04-16 21:46:38 +01:00
c360b2566c patch 8.2.4767: openscad files are not recognized
Problem:    Openscad files are not recognized.
Solution:   Add a filetype pattern. (Niklas Adam, closes #10199)
2022-04-16 21:33:54 +01:00
93c7a45e86 patch 8.2.4766: KRL files using "deffct" not recognized
Problem:    KRL files using "deffct" not recognized.
Solution:   Adjust the pattern used for matching. (Patrick Meiser-Knosowski,
            closes #10200)
2022-04-16 21:14:04 +01:00
047a7019b2 patch 8.2.4765: function matchfuzzy() sorts too many items
Problem:    Function matchfuzzy() sorts too many items.
Solution:   Only put matches in the array. (Yegappan Lakshmanan,
            closes #10208)
2022-04-16 20:42:40 +01:00
d2edee5cf3 patch 8.2.4764: CI uses an older gcc version
Problem:    CI uses an older gcc version.
Solution:   Use GCC 11. (closes #10185)
2022-04-16 20:04:30 +01:00
f50808ed13 patch 8.2.4763: using invalid pointer with "V:" in Ex mode
Problem:    Using invalid pointer with "V:" in Ex mode.
Solution:   Correctly handle the command being changed to "+".
2022-04-16 18:52:17 +01:00
ca7e86c237 patch 8.2.4762: using freed memory using synstack() and synID() in WinEnter
Problem:    Using freed memory when using synstack() and synID() in WinEnter.
Solution:   Check using the syntax window. (closes #10204)
2022-04-16 16:49:24 +01:00
e0805b849c patch 8.2.4761: documentation for using LSP messages is incomplete
Problem:    Documentation for using LSP messages is incomplete.
Solution:   Update the documentation. (Yegappan Lakshmanan, closes #10206)
2022-04-16 15:18:23 +01:00
9029a6e993 patch 8.2.4760: using matchfuzzy() on a long list can take a while
Problem:    Using matchfuzzy() on a long list can take a while.
Solution:   Add a limit to the number of matches. (Yasuhiro Matsumoto,
            closes #10189)
2022-04-16 12:35:35 +01:00
693ccd1160 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Problem:    CurSearch highlight does not work for multi-line match.
Solution:   Check cursor position before adjusting columns. (closes #10133)
2022-04-16 12:04:37 +01:00
3b470ae88f patch 8.2.4758: when using an LSP channel want to get the message ID
Problem:    When using an LSP channel want to get the message ID.
Solution:   Have ch_sendexpr() return the ID. (Yegappan Lakshmanan,
            closes #10202)
2022-04-16 10:41:27 +01:00
b9e99e58bb patch 8.2.4757: list of libraries to suppress lsan errors is outdated
Problem:    List of libraries to suppress lsan errors is outdated.
Solution:   Add another library. (closes #10201)
2022-04-16 10:08:52 +01:00
092e09cba7 patch 8.2.4756: build error without the +eval feature
Problem:    Build error without the +eval feature.
Solution:   Adjust #ifdefs.
2022-04-15 23:29:23 +01:00
12eb2eb4d7 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Problem:    Cannot use <SID>FuncRef in completion spec.
Solution:   Dereference a function name in another way. (closes #10197)
2022-04-15 22:57:09 +01:00
7714231bb5 patch 8.2.4754: using cached values after unsetting some environment variables
Problem:    Still using cached values after unsetting some known environment
            variables.
Solution:   Take care of the side effects. (closes #10194)
2022-04-15 20:50:46 +01:00
31e5c60a68 patch 8.2.4753: error from setting an option is silently ignored
Problem:    Error from setting an option is silently ignored.
Solution:   Handle option value errors better.  Fix uses of N_().
2022-04-15 13:53:33 +01:00
5dc294a7b6 patch 8.2.4752: wrong 'statusline' value can cause illegal memory access
Problem:    Wrong 'statusline' value can cause illegal memory access.
Solution:   Properly check the value. (closes #10192)
2022-04-15 13:17:57 +01:00
648dd88af6 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Problem:    Mapping <SID>name.Func does not work for script in autoload
            directory.
Solution:   Use the # form for a script in the autoload directory.
            (closes #10186)
2022-04-14 21:36:15 +01:00
b836658a04 patch 8.2.4750: small pieces of dead code
Problem:    Small pieces of dead code.
Solution:   Remove the dead code. (Goc Dundar, closes #10190) Rename the
            qftf_cb struct member to avoid confusion.
2022-04-14 20:43:56 +01:00
eca7c60d68 patch 8.2.4749: <script> is not expanded in autocmd context
Problem:    <script> is not expanded in autocmd context.
Solution:   Add the context to the pattern struct. (closes #10144)
            Rename AutoPatCmd to AutoPatCmd_T.
2022-04-14 15:39:43 +01:00
8944551534 patch 8.2.4748: cannot use an imported function in a mapping
Problem:    Cannot use an imported function in a mapping.
Solution:   Recognize <SID>name.Func.
2022-04-14 12:58:23 +01:00
f420ff2440 patch 8.2.4747: no filetype override for .sys files
Problem:    No filetype override for .sys files.
Solution:   Add g:filetype_sys. (Patrick Meiser-Knosowski, closes #10181)
2022-04-13 20:46:21 +01:00
8cac20ed42 patch 8.2.4746: supercollider filetype not recognized
Problem:    Supercollider filetype not recognized.
Solution:   Match file extentions and check file contents to detect
            supercollider. (closes #10142)
2022-04-13 15:29:21 +01:00
aae9762b2c patch 8.2.4745: using wrong flag for using bell in the terminal
Problem:    Using wrong flag for using bell in the terminal.
Solution:   Change to use BO_TERM.
2022-04-13 14:28:07 +01:00
77771d33f4 patch 8.2.4744: a terminal window can't use the bell
Problem:    A terminal window can't use the bell.
Solution:   Add bell support for the terminal window. (closes #10178)
2022-04-13 11:47:25 +01:00
9bbe5c6b8c patch 8.2.4743: clang 14 is available on CI
Problem:    Clang 14 is available on CI.
Solution:   Switch from clang 13 to 14. (closes #10157)
2022-04-12 15:40:12 +01:00
c9a9a0ac1e patch 8.2.4742: there is no way to start logging very early in startup
Problem:    There is no way to start logging very early in startup.
Solution:   Add the --log argument.  Include the date in the start message in
            the log file.  Avoid a duplicate message when forking.  Log an
            executed shell command.
2022-04-12 15:09:23 +01:00
60895f3e36 patch 8.2.4741: startup test fails
Problem:    Startup test fails.
Solution:   Avoid an error for verbose expansion.  Fix that the "0verbose"
            command modifier doesn't work.
2022-04-12 14:23:19 +01:00
575445200b patch 8.2.4740: when expand() fails there is no error message
Problem:    When expand() fails there is no error message.
Solution:   When 'verbose' is set give an error message.
2022-04-12 12:54:11 +01:00
d58862d18f patch 8.2.4739: accessing freed memory after WinScrolled autocmd event
Problem:    Accessing freed memory after WinScrolled autocmd event.
Solution:   Check the window pointer is still valid. (closes #10156)
            Remove the argument from may_trigger_winscrolled().
2022-04-12 11:32:48 +01:00
11a57dfd16 patch 8.2.4738: Esc on commandline executes command instead of abandoning it
Problem:    Esc on commandline executes command instead of abandoning it.
Solution:   Save and restore KeyTyped when removing the popup menu.
            (closes #10154)
2022-04-11 19:38:56 +01:00
1655619717 patch 8.2.4737: // in JavaScript string recognized as comment
Problem:    // in JavaScript string recognized as comment.
Solution:   Only check for linecomment if 'cindent' is set. (closes #10151)
2022-04-11 17:36:37 +01:00
825b55e695 patch 8.2.4736: build problem for Cygwin with Motif
Problem:    Build problem for Cygwin with Motif.
Solution:   Undefine ControlMask. (Kelvin Lee, closes #10152)
2022-04-11 15:28:50 +01:00
4a7724a440 patch 8.2.4735: quickfix tests can be a bit hard to read
Problem:    Quickfix tests can be a bit hard to read.
Solution:   Use heredoc instead of strings and line continuation. (Yegappan
            Lakshmanan, closes #10145)
2022-04-11 15:11:39 +01:00
3caf1cce2b patch 8.2.4734: getcharpos() may change a mark position
Problem:    getcharpos() may change a mark position.
Solution:   Copy the mark position. (closes #10148)
2022-04-11 13:05:16 +01:00
4232dff815 patch 8.2.4733: HEEx and Surface do need a separate filetype
Problem:    HEEx and Surface do need a separate filetype.
Solution:   Revert 8.2.4729. (closes #10147)
2022-04-11 11:37:13 +01:00
c6e0a5e98c patch 8.2.4732: duplicate code to free fuzzy matches
Problem:    Duplicate code to free fuzzy matches.
Solution:   Bring back fuzmatch_str_free().
2022-04-10 18:09:06 +01:00
db0ea7f2b0 patch 8.2.4731: the changelist index is not remembered per buffer
Problem:    The changelist index is not remembered per buffer.
Solution:   Keep the changelist index per window and buffer. (closes #10135,
            closes #2173)
2022-04-10 17:59:26 +01:00
e08fde0073 patch 8.2.4730: MS-Windows GUI: cannot use CTRL-/
Problem:    MS-Windows GUI: cannot use CTRL-/.
Solution:   Handle the WM_KEYUP event. (Yasuhiro Matsumoto, closes #10141)
2022-04-10 12:37:48 +01:00
fa76a24109 patch 8.2.4729: HEEx and Surface templates do not need a separate filetype
Problem:    HEEx and Surface templates do not need a separate filetype.
Solution:   Use Eelixir for the similar filetypes. (Aaron Tinio, closes #10124)
2022-04-10 12:13:56 +01:00
021996ffaa patch 8.2.4728: no test that v:event cannot be modified
Problem:    No test that v:event cannot be modified.
Solution:   Add a test. (closes #10139)
2022-04-10 11:44:04 +01:00
7765f5cf96 patch 8.2.4727: unused code
Problem:    Unused code.
Solution:   Remove code and add #ifdefs. (Dominique Pellé, closes #10136)
2022-04-10 11:26:53 +01:00
6013d0045d patch 8.2.4726: cannot use expand() to get the script name
Problem:    Cannot use expand() to get the script name.
Solution:   Support expand('<script>'). (closes #10121)
2022-04-09 21:42:10 +01:00
2ce97ae6aa patch 8.2.4725: unused variable in tiny build
Problem:    Unused variable in tiny build.
Solution:   Add #ifdef.
2022-04-09 21:13:51 +01:00
a43993897a patch 8.2.4724: current instance of last search pattern not easily spotted
Problem:    Current instance of last search pattern not easily spotted.
Solution:   Add CurSearch highlighting. (closes #10133)
2022-04-09 21:04:08 +01:00
2bf52dd065 patch 8.2.4723: the ModeChanged autocmd event is inefficient
Problem:    The ModeChanged autocmd event is inefficient.
Solution:   Avoid allocating memory. (closes #10134)  Rename
            trigger_modechanged() to may_trigger_modechanged().
2022-04-09 18:17:34 +01:00
81b46a6ccd patch 8.2.4722: ending recording with mapping records too much
Problem:    When a recording is ended with a mapped key that key is also
            recorded.
Solution:   Remember the previous last_recorded_len. (closes #10122)
2022-04-09 17:58:49 +01:00
36951ed1da patch 8.2.4721: cooklang files are not recognized
Problem:    Cooklang files are not recognized.
Solution:   recognize *.cook files. (Goc Dundar, closes #10120)
2022-04-09 16:08:08 +01:00
b09c320039 patch 8.2.4720: ABB Rapid files are not recognized properly
Problem:    ABB Rapid files are not recognized properly.
Solution:   Add checks for ABB Rapid files. (Patrick Meiser-Knosowski,
            closes #10104)
2022-04-09 15:20:28 +01:00
0bbf09ca41 patch 8.2.0003: Build file dependencies are incomplete
Problem:    Build file dependencies are incomplete.
Solution:   Fix the dependencies. (Ken Takata, closes #5356)
2022-04-09 15:16:53 +01:00
a0f659c76e patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Problem:    ">" marker sometimes not displayed in the jumplist.
Solution:   If the buffer no longer exists show "-invalid-". (Christian
            Brabandt, closes #10131, closes #10100)
2022-04-09 13:35:00 +01:00
cee9c844f2 patch 8.2.4718: @@@ in the last line sometimes drawn in the wrong place
Problem:    @@@ in the last line sometimes drawn in the wrong place.
Solution:   Make sure the column is valid. (closes #10130)
2022-04-09 12:40:13 +01:00
a016eeba7a patch 8.2.4717: for TextYankPost v:event does not contain all information
Problem:    For TextYankPost v:event does not contain information about the
            operation being inclusive or not.
Solution:   Add "inclusive" to v:event. (Justn M. Keyes, Yegappan Lakshmanan,
            closes #10125)
2022-04-09 11:37:38 +01:00
7c7e19cf50 patch 8.2.4716: memory allocation failure not tested when defining a function
Problem:    Memory allocation failure not tested when defining a function.
Solution:   Add a test. (Yegappan Lakshmanan, closes #10127)
2022-04-09 11:09:07 +01:00
5e1792270a patch 8.2.4715: Vagrantfile not recognized
Problem:    Vagrantfile not recognized.
Solution:   Recognize Vagrantfile as ruby. (Julien Voisin, closes #10119)
2022-04-08 19:55:39 +01:00
cbaff5e06e Update runtime files 2022-04-08 17:45:08 +01:00
a8034a4886 patch 8.2.4714: using g:filetype_dat and g:filetype_src not tested
Problem:    Using g:filetype_dat and g:filetype_src not tested.
Solution:   Add a test. (Patrick Meiser-Knosowski, closes #10117)
2022-04-08 17:26:26 +01:00
0937182d49 patch 8.2.4713: plugins cannot track text scrolling
Problem:    Plugins cannot track text scrolling.
Solution:   Add the WinScrolled event. (closes #10102)
2022-04-08 15:18:45 +01:00
18ee0f603e patch 8.2.4712: only get profiling information after exiting
Problem:    Only get profiling information after exiting.
Solution:   Add "profile dump" and "profile stop". (Marco Hinz, Yegappan
            Lakshmanan, closes #10107)
2022-04-08 13:23:19 +01:00
3a56b6d405 patch 8.2.4711: when 'insermode' is set :edit from <Cmd> mapping misbehaves
Problem:    When 'insermode' is set :edit from <Cmd> mapping misbehaves.
Solution:   Don't set "need_start_insertmode" when already in Insert mode.
            (closes #10116)
2022-04-08 11:56:14 +01:00
ac72c21da6 patch 8.2.4710: smart indenting does not work after completion
Problem:    Smart indenting does not work after completion.
Solution:   Set "can_si". (Christian Brabandt, closes #10113, closes #558)
2022-04-07 21:00:53 +01:00
5017c66bd4 patch 8.2.4709: after :redraw the statusline highlight might be used
Problem:    After :redraw the statusline highlight might be used.
Solution:   Clear the screen attribute after redrawing the screen.
            (closes #10108)
2022-04-07 18:06:08 +01:00
177847e67a patch 8.2.4708: PHP test files are not recognized
Problem:    PHP test files are not recognized.
Solution:   Add the *.phpt pattern. (Julien Voisin, closes #10112)
2022-04-07 16:01:13 +01:00
8c97960850 patch 8.2.4707: redrawing could be a bit more efficient
Problem:    Redrawing could be a bit more efficient.
Solution:   Optimize redrawing. (closes #10105)
2022-04-07 15:08:01 +01:00
6a06940f8a patch 8.2.4706: buffer remains active with WinClosed and tabpages
Problem:    Buffer remains active if a WinClosed event throws an exception
            when there are multiple tabpages.
Solution:   Ignore aborting() when closing the buffer. (closes #10101)
2022-04-07 14:08:29 +01:00
6d4e725a34 patch 8.2.4705: jump list marker disappears
Problem:    Jump list marker disappears.
Solution:   Reset reg_executing later. (closes #10111, closes #10100)
2022-04-07 13:58:04 +01:00
f26c16144d patch 8.2.4704: using "else" after return or break increases indent
Problem:    Using "else" after return or break increases indent.
Solution:   Remove "else" and reduce indent. (Goc Dundar, closes #10099)
2022-04-07 13:26:34 +01:00
cb49a1d934 patch 8.2.4703: memory leak in handling 'cinscopedecls'
Problem:    Memory leak in handling 'cinscopedecls'.
Solution:   Free the memory before returning.
2022-04-07 13:08:00 +01:00
3506cf34c1 patch 8.2.4702: C++ scope labels are hard-coded
Problem:    C++ scope labels are hard-coded.
Solution:   Add 'cinscopedecls' to define the labels. (Rom Praschan,
            closes #10109)
2022-04-07 12:39:08 +01:00
3ad2090316 patch 8.2.4701: Kuka Robot Language files not recognized
Problem:    Kuka Robot Language files not recognized.
Solution:   Recognize *.src and *.dat files. (Patrick Meiser-Knosowski,
            closes #10096)
2022-04-06 18:57:39 +01:00
c947b9ae41 patch 8.2.4700: buffer remains active if WinClosed event throws an exception
Problem:    Buffer remains active if a WinClosed event throws an exception.
Solution:   Ignore aborting() when closing the buffer. (closes #10097)
2022-04-06 17:59:21 +01:00
75a0f3c011 patch 8.2.4699: hard to reproduce hang when reading from a channel
Problem:    Hard to reproduce hang when reading from a channel.
Solution:   Check for readahead before starting to wait. (closes #10093,
            closes #7781, closes #6364)
2022-04-05 22:03:30 +01:00
aa7d0c2335 patch 8.2.4698: Vim9: script variable has no flag that it was set
Problem:    Vim9: script variable has no flag that it was set.
Solution:   Add a flag that it was set, to avoid giving it a value when used.
            (closes #10088)
2022-04-05 21:40:38 +01:00
0d1f55c044 patch 8.2.4697: Vim9: crash when adding a duplicate key to a dictionary
Problem:    Vim9: crash when adding a duplicate key to a dictionary.
Solution:   Clear the stack item when it has been moved into the dictionary.
            (closes #10087)
2022-04-05 17:30:29 +01:00
478700336d patch 8.2.4696: delete() with "rf" argument does not report a failure
Problem:    delete() with "rf" argument does not report a failure.
Solution:   Return -1 if the directory could not be removed. (closes #10078)
2022-04-05 15:31:01 +01:00
beb0ef1ab2 patch 8.2.4695: JSON encoding could be faster
Problem:    JSON encoding could be faster.
Solution:   Optimize encoding JSON strings. (closes #10086)
2022-04-05 15:07:32 +01:00
02560424bf patch 8.2.4694: avoidance of #elif causes more preproc nesting
Problem:    Avoidance of #elif causes more preproc nesting.
Solution:   Use #elif where it is useful. (Ozaki Kiichi, closes #10081)
2022-04-05 14:18:44 +01:00
72bb10df1f patch 8.2.4693: new regexp does not accept pattern "\%>0v"
Problem:    new regexp does not accept pattern "\%>0v".
Solution:   Do accept digit zero.
2022-04-05 14:00:32 +01:00
0f68e6c07a patch 8.2.4692: no test for what 8.2.4691 fixes
Problem:    No test for what 8.2.4691 fixes.
Solution:   Add a test.  Use a more generic sotlution. (closes #10090)
2022-04-05 13:17:01 +01:00
ca9d8d2cb9 patch 8.2.4691: solution for <Cmd> in a mapping causes trouble
Problem:    Solution for <Cmd> in a mapping causes trouble.
Solution:   Use another solution: put back CTRL-O after reading the <Cmd>
            sequence.
2022-04-04 22:09:30 +01:00
1b76a8dfe2 patch 8.2.4690: channel tests fail on MS-Windows
Problem:    Channel tests fail on MS-Windows.
Solution:   Check if the AF_UNIX attribute exists. (closes #10083)
2022-04-04 21:13:35 +01:00
d0fb2d8041 patch 8.2.4689: using <Cmd> in a mapping does not work for mouse keys
Problem:    Using <Cmd> in a mapping does not work for mouse keys in Insert
            mode. (Sergey Vlasov)
Solution:   When reading the <Cmd> argument do not use the stuff buffer.
            (closes #10080)
2022-04-04 21:03:52 +01:00
91ff3d4f52 patch 8.2.4688: new regexp engine does not give an error for "\%v"
Problem:    New regexp engine does not give an error for "\%v".
Solution:   Check for a value argument. (issue #10079)
2022-04-04 18:32:32 +01:00
e8a4c0d91f patch 8.2.4687: "vimgrep /\%v/ *" may cause a crash
Problem:    "vimgrep /\%v/ *" may cause a crash.
Solution:   When compiling the pattern with the old engine fails, restore the
            regprog of the new engine instead of leaving it NULL.
            (closes #10079)
2022-04-04 18:14:34 +01:00
b471690fad patch 8.2.4686: configure doesn't find the Motif library with Cygwin
Problem:    Configure doesn't find the Motif library with Cygwin.
Solution:   Check for libXm.dll.a. (Kelvin Lee, closes #10077)
2022-04-04 17:20:01 +01:00
188639d75c patch 8.2.4685: when a swap file is found for a popup there is no dialog
Problem:    When a swap file is found for a popup there is no dialog and the
            buffer is loaded anyway.
Solution:   Silently load the buffer read-only. (closes #10073)
2022-04-04 16:57:21 +01:00
cc766a85f4 patch 8.2.4684: cannot open a channel on a Unix domain socket
Problem:    Cannot open a channel on a Unix domain socket.
Solution:   Add Unix domain socket support. (closes #10062)
2022-04-04 15:46:58 +01:00
4829c1c9e9 patch 8.2.4683: verbose check with dict_find() to see if a key is present
Problem:    Verbose check with dict_find() to see if a key is present.
Solution:   Add dict_has_key(). (Yegappan Lakshmanan, closes #10074)
2022-04-04 15:16:54 +01:00
7a411a306f patch 8.2.4682: Vim9: can use :unlockvar for const variable
Problem:    Vim9: can use :unlockvar for const variable. (Ernie Rael)
Solution:   Check whether the variable is a const.
2022-04-04 14:58:06 +01:00
15f74fab65 patch 8.2.4681: build fails with a combination of features
Problem:    Build fails with a combination of features.
Solution:   Remove #ifdef for alloc_clear_id(). (John Marriott)
2022-04-03 21:57:26 +01:00
242c152c08 patch 8.2.4680: build failure without +postscript
Problem:    Build failure without +postscript.
Solution:   Use another error message.
2022-04-03 21:52:51 +01:00
2b74b6805b patch 8.2.4679: cannot have expandcmd() give an error message for mistakes
Problem:    Cannot have expandcmd() give an error message for mistakes.
Solution:   Add an optional argument to give errors. Fix memory leak when
            expanding files fails. (Yegappan Lakshmanan, closes #10071)
2022-04-03 21:30:32 +01:00
1061195057 patch 8.2.4678: Vim9: not all code is tested
Problem:    Vim9: not all code is tested.
Solution:   Add a few more tests.
2022-04-03 21:11:34 +01:00
0b962e5685 patch 8.2.4677: the Athena GUI support is outdated
Problem:    The Athena GUI support is outdated.
Solution:   Remove the Athena GUI code.
2022-04-03 18:02:37 +01:00
292e1b9f68 patch 8.2.4676: test fails with different error
Problem:    Test fails with different error.
Solution:   Add argument for :elseif.
2022-04-03 16:59:02 +01:00
fa010cdfb1 patch 8.2.4675: no error for missing expression after :elseif
Problem:    No error for missing expression after :elseif. (Ernie Rael)
Solution:   Check for missing expression. (closes #10068)
2022-04-03 16:13:07 +01:00
c4cb544cd5 patch 8.2.4674: cannot force getting MouseMove events
Problem:    Cannot force getting MouseMove events.
Solution:   Add the 'mousemoveevent' option with implementaiton for the GUI.
            (Ernie Rael, closes #10044)
2022-04-03 15:47:28 +01:00
8ef6997e2d patch 8.2.4673: redrawing a split window is slow when using CTRL-F and CTRL-B
Problem:    Redrawing a vertically split window is slow when using CTRL-F and
            CTRL-B.
Solution:   When deciding on USE_REDRAW bail out if scrolling more than three
            lines. (issue #8002)
2022-04-03 13:23:22 +01:00
ce416b453a patch 8.2.4672: using :normal with Ex mode may make :substitute hang
Problem:    Using :normal with Ex mode may make :substitute hang.
Solution:   When getting an empty line behave like 'q' was typed.
            (closes #10070)
2022-04-03 12:59:34 +01:00
a3157a476b patch 8.2.4671: 'wildignorecase' is sometimes not used for glob()
Problem:    'wildignorecase' is sometimes not used for glob().
Solution:   Also use 'wildignorecase' when there are no wildcards.
            (closes #10066, closes #8350)
2022-04-03 11:58:31 +01:00
72bb47e38f patch 8.2.4670: memory allocation failures for new tab page not tested
Problem:    Memory allocation failures for new tab page not tested.
Solution:   Add tests with failing memory allocation. (Yegappan Lakshmanan,
            closes #10067)
2022-04-03 11:22:38 +01:00
58f331a05f patch 8.2.4669: in compiled code len('string') is not inlined
Problem:    In compiled code len('string') is not inlined.
Solution:   Compute the length at compile time if possible. (closes #10065)
2022-04-02 21:59:06 +01:00
0dac1ab579 patch 8.2.4668: buffer allocation failures insufficiently tested
Problem:    Buffer allocation failures insufficiently tested.
Solution:   Add tests for memory allocation failures. (Yegappan Lakshmanan,
            closes #10064)
2022-04-02 21:46:19 +01:00
5018a836c0 patch 8.2.4667: expandcmd() fails on an error
Problem:    expandcmd() fails on an error.
Solution:   On failure return the command unmodified. (yegappan Lakshmanan,
            closes #10063)
2022-04-02 21:12:21 +01:00
97f8c1081e patch 8.2.4666: Vim9: assignment not recognized in skipped block
Problem:    Vim9: assignment not recognized in skipped block.
Solution:   When skipping assume identifier exists. (closes #10059)
2022-04-02 19:43:57 +01:00
eabddc425e patch 8.2.4665: popup with "minwidth" and scrollbar not updated properly
Problem:    Popup with "minwidth" and scrollbar not updated properly.
Solution:   Adjust the computation if the window width. (closes #10061)
2022-04-02 15:32:16 +01:00
c1658a196b patch 8.2.4664: Elvish files are not recognized
Problem:    Elvish files are not recognized.
Solution:   Recognize .elv files. (Bruno Roque, closes #10058)
2022-04-02 10:48:24 +01:00
17fa233f6f patch 8.2.4663: occasional crash when running the GUI tests
Problem:    Occasional crash when running the GUI tests.
Solution:   Check that the line index is not too high. (closes #8681)
2022-04-01 19:44:47 +01:00
22ebd172e4 patch 8.2.4662: no error for using out of range list index
Problem:    No error for using out of range list index.
Solution:   Check list index at script level like in compiled function.
            (closes #10051)
2022-04-01 15:26:58 +01:00
ffe6e646dc patch 8.2.4661: Coverity warning for using uninitialized variable
Problem:    Coverity warning for using uninitialized variable.
Solution:   Initialize variable to NULL.
2022-04-01 13:23:47 +01:00
782c6744b4 patch 8.2.4660: cursorcolumn is sometimes not correct
Problem:    Cursorcolumn is sometimes not correct.
Solution:   Recompute the cursor column when entering Insert mode and the
            cursor is on a character wider than a screen cell.
2022-04-01 12:06:31 +01:00
96e08e028c patch 8.2.4659: invalid memory access when using printable function name
Problem:    Invalid memory access when using printable function name.
Solution:   Adjust copied name length.
2022-03-31 21:40:33 +01:00
3a6f952cc8 patch 8.2.4658: org-mode files are not recognized
Problem:    Org-mode files are not recognized.
Solution:   Add patterns to recognize "org" files. (closes #10046)
2022-03-31 20:24:35 +01:00
a6c18d38ca patch 8.2.4657: errors for functions are sometimes hard to read
Problem:    Errors for functions are sometimes hard to read.
Solution:   Use printable_func_name() in more places.
2022-03-31 20:02:56 +01:00
ccbfd4883f patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Problem:    Vim9: can't use items from "import autoload" with autoload
            directory name.
Solution:   Let sn_autoload_prefix overrule sn_import_autoload.
            (closes #10054)
2022-03-31 16:18:23 +01:00
1104a6d0c2 patch 8.2.4655: cmdline completion popup menu positioned wrong
Problem:    Command line completion popup menu positioned wrong when using a
            terminal window.
Solution:   Position the popup menu differently when editing the command line.
            (Yegappan Lakshmanan, closes #10050, closes #10035)
2022-03-31 12:34:15 +01:00
49d008d96b patch 8.2.4654: missing changes for import check
Problem:    Missing changes for import check.
Solution:   Add missing changes.
2022-03-31 11:51:21 +01:00
4dea2d92e4 patch 8.2.4653: "import autoload" does not check the file name
Problem:    "import autoload" does not check the file name.
Solution:   Give an error if the file is not readable. (closes #10049)
2022-03-31 11:37:57 +01:00
d1d2684c80 patch 8.2.4652: leaking memory if assignment fails
Problem:    Leaking memory if assignment fails.
Solution:   Clear assigned value on failure.
2022-03-31 10:13:47 +01:00
1712518f48 patch 8.2.4651: test fails because path differs
Problem:    Test fails because path differs.
Solution:   Only compare the tail of the path.
2022-03-30 21:57:50 +01:00
c0ceeeb839 patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Problem:    "import autoload" only works with using 'runtimepath'.
Solution:   Also support a relative and absolute file name.
2022-03-30 21:12:27 +01:00
b4ad3b0dea patch 8.2.4649: various formatting problems
Problem:    Various formatting problems.
Solution:   Improve the code formatting.
2022-03-30 10:57:45 +01:00
46eea444d9 Update runtime files 2022-03-30 10:51:39 +01:00
9247a221ce patch 8.2.4648: handling LSP messages is a bit slow
Problem:    Handling LSP messages is a bit slow.
Solution:   Included support for LSP messages. (Yegappan Lakshmanan,
            closes #10025)
2022-03-30 10:16:05 +01:00
2bdad61267 patch 8.2.4647: "source" can read past end of copied line
Problem:    "source" can read past end of copied line.
Solution:   Add a terminating NUL.
2022-03-29 19:52:12 +01:00
b55986c52d patch 8.2.4646: using buffer line after it has been freed
Problem:    Using buffer line after it has been freed in old regexp engine.
Solution:   After getting mark get the line again.
2022-03-29 13:24:58 +01:00
fd01280d01 patch 8.2.4645: 'shortmess' changed when session does not store options
Problem:    'shortmess' changed when session does not store options.
Solution:   Save and restore 'shortmess' if needed. (James Charti,
            closes #10037)
2022-03-29 12:02:57 +01:00
1624639ec8 patch 8.2.4644: redrawing too often when 'relativenumber' is set
Problem:    Redrawing too often when 'relativenumber' is set.
Solution:   Only redraw when the cursor line changed. (Lewis Russell,
            closes #10040)
2022-03-29 11:38:17 +01:00
24565cf27b patch 8.2.4643: Vim9: variable may be locked unintentionally
Problem:    Vim9: variable may be locked unintentionally.
Solution:   Clear "v_lock". (closes #10036)
2022-03-28 18:16:52 +01:00
859cc21c6b patch 8.2.4642: Vim9: in :def function script var cannot be null
Problem:    Vim9: in :def function script var cannot be null.
Solution:   Only initialize a script variable when not set to a null value.
            (closes #10034)
2022-03-28 15:22:35 +01:00
471b3aed3e patch 8.2.4641: may mark the wrong window for redrawing
Problem:    May mark the wrong window for redrawing.
Solution:   Use redraw_win_later(). (closes #10032)
2022-03-28 12:41:19 +01:00
8be423b7ac patch 8.2.4640: some boolean options use "long" instead of "int"
Problem:    Some boolean options use "long" instead of "int".
Solution:   Adjust the type. (James McCoy, closes #10033)
2022-03-28 11:55:12 +01:00
9dac9b1751 patch 8.2.4639: not sufficient parenthesis in preprocessor macros
Problem:    Not sufficient parenthesis in preprocessor macros.
Solution:   Add more parenthesis. (closes #10031)
2022-03-27 20:05:17 +01:00
3e559cd884 patch 8.2.4638: superfluous check if a redraw is needed for 'cursorline'
Problem:    Superfluous check if a redraw is needed for 'cursorline'.
Solution:   Remove check_redraw_cursorline(). (closes #10030, closes #10029)
2022-03-27 19:26:55 +01:00
565d1278cb patch 8.2.4637: warning for using uninitialized variable
Problem:    Warning for using uninitialized variable. (Tony Mechelynck)
Solution:   Initialize it.
2022-03-27 18:11:05 +01:00
1501b63f8d patch 8.2.4636: not using Visual range
Problem:    Not using Visual range.
Solution:   Put the command pointer back to the range.
2022-03-27 16:56:21 +01:00
501f978288 patch 8.2.4635: tests using null list or dict fail
Problem:    Tests using null list or dict fail.
Solution:   Only use the new rules for Vim9 script.
2022-03-27 16:51:04 +01:00
ec15b1cfdc patch 8.2.4634: Vim9: cannot initialize a variable to null_list
Problem:    Vim9: cannot initialize a variable to null_list.
Solution:   Give negative count to NEWLIST. (closes #10027)
            Also fix inconsistencies in comparing with null values.
2022-03-27 16:29:53 +01:00
c75bca3ee9 patch 8.2.4633: Visual range does not work before command modifiers
Problem:    Visual range does not work before command modifiers.
Solution:   Move Visual range to after command modifiers.
2022-03-27 13:36:50 +01:00
f3980dc5d0 patch 8.2.4632: using freed memory in flatten()
Problem:    Using freed memory in flatten().
Solution:   Clear typval after recursing into list.
2022-03-26 16:42:23 +00:00
347538fad0 patch 8.2.4631: crash when switching window in BufWipeout autocommand
Problem:    Crash when switching window in BufWipeout autocommand.
Solution:   Put any buffer in the window to avoid it being NULL.
            (closes #10024)
2022-03-26 16:28:06 +00:00
bf269ed0b0 patch 8.2.4630: 'cursorline' not always updated with 'culopt' is "screenline"
Problem:    'cursorline' not always updated with 'cursorlineopt' is
            "screenline".
Solution:   Call check_redraw_cursorline() more often. (closes #10013)
2022-03-26 13:28:14 +00:00
c6c1ec4da5 patch 8.2.4629: flattennew() makes a deep copy unnecessarily
Problem:    flattennew() makes a deep copy unnecessarily.
Solution:   Use a shallow copy. (issue #10012)
2022-03-26 10:50:11 +00:00
5e877baf87 patch 8.2.4628: not enough testing for 2/3 letter substitute commands
Problem:    Not enough testing for 2/3 letter substitute commands.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #10019)
2022-03-25 21:19:26 +00:00
acf7d73a7f patch 8.2.4627: flatten() does not use maxdepth correctly
Problem:    flatten() does not use maxdepth correctly.
Solution:   Use a recursive implementation. (closes #10020)
2022-03-25 19:50:57 +00:00
abb6fbd14d patch 8.2.4626: Visual area not updated when removing sign in Visual mode
Problem:    Visual area not fully updated when removing sign in Visual mode
            while scrolling.
Solution:   Adjust check for topline. (closes #10017)
2022-03-25 15:42:27 +00:00
90da27b927 patch 8.2.4625: old Coverity warning for resource leak
Problem:    Old Coverity warning for resource leak.
Solution:   Call FreeWild() if expanding matches did not fail.
2022-03-25 14:54:18 +00:00
5d46dcfeed patch 8.2.4624: old Coverity warning for resource leak
Problem:    Old Coverity warning for resource leak.
Solution:   Close the file if memory allocation fails.
2022-03-25 14:46:47 +00:00
03a297c63f patch 8.2.4623: Coverity warns for using uninitialized field
Problem:    Coverity warns for using uninitialized field.
Solution:   Initialize he field to zero.
2022-03-25 14:39:51 +00:00
43216611a5 patch 8.2.4622: Vim9: crash with :execute and :finish
Problem:    Vim9: Crash with :execute and :finish. (Sergey Vlasov)
Solution:   Check for NULL. (closes #10011)
2022-03-25 11:16:28 +00:00
9dd42a6311 patch 8.2.4621: crash when using the tabline right-click menu
Problem:    Crash when using the tabline right-click menu.
Solution:   Use XtPointer for XmNuserData. (closes #10009)
2022-03-24 18:04:49 +00:00
1e2c4175dc patch 8.2.4620: two letter substitute commands don't work
Problem:    Two letter substitute commands don't work. (Yegappan Lakshmanan)
Solution:   Invert condition.
2022-03-24 15:24:45 +00:00
f8e43f6107 patch 8.2.4619: mapping is cancelled when mouse moves and popup is visible
Problem:    Mapping is cancelled when mouse moves and popup is visible.
Solution:   Only generate mouse moved events when a popup may use them.
            (closes #10004)
2022-03-24 15:15:15 +00:00
f4f0525c34 patch 8.2.4618: cmdline completion does not recognize single letter commands
Problem:    Command line completion does not recognize single letter commands.
Solution:   Use the condition from find_ex_command().
2022-03-24 13:08:36 +00:00
454ce6737c patch 8.2.4617: no completion for :scriptnames
Problem:    No completion for :scriptnames.
Solution:   Implement :scriptnames completion. (Yegappan Lakshmanan,
            closes #10005)
2022-03-24 11:22:13 +00:00
98b7fe725e patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Problem:    Vim9: Declarations in a {} block of a user command do not use Vim9
            rules if defined in a legacy script. (Yegappan Lakshmanan)
Solution:   Pretend the script is Vim9 script.
2022-03-23 21:36:27 +00:00
ac48506ac6 patch 8.2.4615: mapping with escaped bar does not work in :def function
Problem:    Mapping with escaped bar does not work in :def function. (Sergey
            Vlasov)
Solution:   Do not remove the backslash. (closes #10002)
2022-03-23 19:45:01 +00:00
c20e46a4e3 patch 8.2.4614: redrawing too much when 'cursorline' is set
Problem:    Redrawing too much when 'cursorline' is set and jumping around.
Solution:   Rely on win_update() to redraw the current and previous cursor
            line, do not mark lines as modified. (closes #9996)
2022-03-23 14:55:23 +00:00
3c5999e53d patch 8.2.4613: return type of swapfile_unchanged() is wrong
Problem:    Return type of swapfile_unchanged() is wrong.
Solution:   Use "int". (closes #10000  Yeah!)
2022-03-23 13:54:51 +00:00
a915fa0103 patch 8.2.4612: Vim9: cannot use a recursive call in a nested function
Problem:    Vim9: cannot use a recursive call in a nested function. (Sergey
            Vlasov)
Solution:   Define the funcref before compiling the function. (closes #9989)
2022-03-23 11:29:15 +00:00
81b573d7e5 patch 8.2.4611: typos in tests; one lua line not covered by test
Problem:    Typos in tests; one lua line not covered by test.
Solution:   Fix typos. Add test case. (Dominique Pellé, closes #9994)
2022-03-22 21:14:55 +00:00
fe154990c1 patch 8.2.4610: some conditions are always true
Problem:    Some conditions are always true.
Solution:   Remove the useless conditions. (closes #9993)
2022-03-22 20:42:12 +00:00
6f2465d336 patch 8.2.4609: :unhide does not check for failing to close a window
Problem:    :unhide does not check for failing to close a window.
Solution:   When closing a window fails continue with the next one.  Do not
            try closing the autocmd window. (closes #9984)
2022-03-22 18:13:01 +00:00
e7dd0fa2c6 patch 8.2.4608: getcompletion() does not work when 'wildoptions' has "fuzzy"
Problem:    getcompletion() does not work properly when 'wildoptions
            contains "fuzzy".
Solution:   Do not use addstar(). (Yegappan Lakshmanan, closes #9992,
            closes #9986)
2022-03-22 16:06:31 +00:00
35dc17634d patch 8.2.4607: sourcing buffer lines may lead to errors for conflicts
Problem:    Sourcing buffer lines may lead to errors for conflicts.
Solution:   Add the ++clear argument. (Yegappan Lakshmanan, closes #9991)
2022-03-22 12:13:54 +00:00
e18acb02bb patch 8.2.4606: test fails because of changed error message
Problem:    Test fails because of changed error message.
Solution:   Update the expected error message
2022-03-21 20:40:35 +00:00
6d877fe018 patch 8.2.4604: error for redefining a script item may be confusing
Problem:    Error for redefining a script item may be confusing.
Solution:   Put quotes around the name.
2022-03-21 19:47:31 +00:00
85b43c6cb7 patch 8.2.4603: sourcing buffer lines is too complicated
Problem:    Sourcing buffer lines is too complicated.
Solution:   Simplify the code. Make it possible to source Vim9 script lines.
            (Yegappan Lakshmanan, closes #9974)
2022-03-21 19:45:17 +00:00
397a87ac1c patch 8.2.4602: Vim9: not enough test coverage for executing :def function
Problem:    Vim9: not enough test coverage for executing :def function.
Solution:   Add a few more tests.  Fix uncovered problem.  Remove dead code.
2022-03-20 21:14:15 +00:00
efd73ae5d2 patch 8.2.4601: Vim9: not enough test coverage for executing :def function
Problem:    Vim9: not enough test coverage for executing :def function.
Solution:   Add a few more tests.
2022-03-20 18:51:00 +00:00
6b8c7ba062 patch 8.2.4600: Vim9: not enough test coverage for executing :def function
Problem:    Vim9: not enough test coverage for executing :def function.
Solution:   Add a few more tests.  Fix inconsistencies.
2022-03-20 17:46:06 +00:00
a4df834a92 patch 8.2.4599: GTK: get assertion errors when scrolling a split window
Problem:    GTK: get assertion errors when scrolling a split window.
Solution:   Use GDK_IS_DRAWABLE() on the scrollbar window. (closes #9982)
2022-03-20 15:43:01 +00:00
7e0be3ea21 patch 8.2.4598: profile completion test sometimes fails
Problem:    Profile completion test sometimes fails.
Solution:   Delete the .res file before running tests.
2022-03-20 13:40:41 +00:00
b6643d10d3 patch 8.2.4597: LuaV_debug() not covered by tests
Problem:    LuaV_debug() not covered by tests.
Solution:   Add a test. (Dominique Pellé, closes #9980)
2022-03-20 11:46:01 +00:00
c670ebddcd patch 8.2.4596: installing tutor binary may fail
Problem:    Installing tutor binary may fail.
Solution:   Fix the dependency. (Sergei Trofimovich, closes #9978)
2022-03-20 11:26:36 +00:00
6f95363677 patch 8.2.4595: X11: using --remote-wait may keep the CPU busy
Problem:    X11: using --remote-wait may keep the CPU busy.
Solution:   Set the timeout for select() on every call. (Jacopo Secchiero,
            closes #9973)
2022-03-20 11:07:17 +00:00
47c532e2bc Update runtime files 2022-03-19 15:18:53 +00:00
36a5b6867b patch 8.2.4594: need to write script to a file to be able to source them
Problem:    Need to write script to a file to be able to source them.
Solution:   Make ":source" use lines from the current buffer. (Yegappan
            Lakshmanan et al., closes #9967)
2022-03-19 12:56:51 +00:00
95d2e7634c patch 8.2.4593: unnecessary call to redraw_later()
Problem:    Unnecessary call to redraw_later().
Solution:   Remove the call to redraw_later() in op_yank(). (closes #9971)
2022-03-19 11:42:16 +00:00
b10ff5c1b3 patch 8.2.4592: search continues after giving E1204
Problem:    Search continues after giving E1204.
Solution:   Return failure after giving E1204. (closes #9972)
2022-03-19 11:31:38 +00:00
e7a74d5375 patch 8.2.4591: cursor line not updated when a callback moves the cursor
Problem:    Cursor line not updated when a callback moves the cursor.
Solution:   Check if the cursor moved. (closes #9970)
2022-03-19 11:10:15 +00:00
2995e5cf4e patch 8.2.4590: Vim9: range type check has wrong offset
Problem:    Vim9: range type check has wrong offset.
Solution:   Adjust offset for CHECKTYPE.  Remove other type check.
2022-03-18 21:41:47 +00:00
2e17fef225 patch 8.2.4589: cannot index the g: dictionary
Problem:    Cannot index the g: dictionary.
Solution:   Recognize using "g:[key]". (closes #9969)
2022-03-18 19:44:48 +00:00
f35fd8e5d4 patch 8.2.4588: mapping with key after other matching mapping does not work
Problem:    Mapping with key code after other matching mapping does not work.
Solution:   Change ">" to ">=". (closes #9903)
2022-03-18 15:41:17 +00:00
61efa16932 patch 8.2.4587: Vim9: double free after unpacking a list
Problem:    Vim9: double free after unpacking a list.
Solution:   Make a copy of the value instead of moving it. (closes #9968)
2022-03-18 13:10:48 +00:00
1d9cef769d patch 8.2.4586: Vim9: no error for using lower case name for "func" argument
Problem:    Vim9: no error for using lower case name for "func" argument.
            (Ernie Rael)
Solution:   Check the name as soon as the type is known.
2022-03-17 16:30:03 +00:00
155b088208 patch 8.2.4585: cannot use keypad page-up/down for completion menu
Problem:    Cannot use keypad page-up/down for completion menu.
Solution:   Recognize the keypad keys. (Yegappan Lakshmanan, closes #9963)
2022-03-17 13:03:09 +00:00
da6d42c35a patch 8.2.4584: error for using autoload function in custom completion
Problem:    Error for using autoload function in custom completion.
Solution:   Do not check for errors when using an autoload function.
            (closes #9962)
2022-03-17 11:46:55 +00:00
4f6e772c9c patch 8.2.4583: screendump test fails
Problem:    Screendump test fails.
Solution:   Check that making a screendump is possible.
2022-03-16 20:26:02 +00:00
4c8b546da2 patch 8.2.4582: useless code handling a type declaration
Problem:    Useless code handling a type declaration.
Solution:   Remove the code and give an error.
2022-03-16 20:01:39 +00:00
d597ab00d7 patch 8.2.4581: null types not fully tested
Problem:    Null types not fully tested.
Solution:   Add some more tests using null types.
2022-03-16 17:56:33 +00:00
21dc8f1527 patch 8.2.4580: Vim9: incorrect error for shadowing variable
Problem:    Vim9: incorrect error for shadowing variable.
Solution:   Do not pass the context when compiling a referenced function.
2022-03-16 17:54:17 +00:00
5cffa8df7e patch 8.2.4579: cannot use page-up and page-down in the cmdline popup menu
Problem:    Cannot use page-up and page-down in the command line completion
            popup menu.
Solution:   Check for to page-up and page-down keys. (Yegappan Lakshmanan,
            closes #9960)
2022-03-16 13:33:53 +00:00
fe8e9f6740 patch 8.2.4578: no warning when autoload script for completion has an error
Problem:    No warning when an autoload script for completion function has an
            error.
Solution:   Do not ignore errors when a function name is given with a dot or
            '#' character. (closes #9958)
2022-03-16 13:09:15 +00:00
9323ca51c2 patch 8.2.4577: message test is flaky
Problem:    Message test is flaky. (Elimar Riesebieter)
Solution:   Trigger the autocommand event only after startup is finished.
2022-03-16 11:14:57 +00:00
056678184f patch 8.2.4576: Vim9: error for comparing with null can be annoying
Problem:    Vim9: error for comparing with null can be annoying.
Solution:   Allow comparing anything with null. (closes #9948)
2022-03-15 20:21:33 +00:00
139575de66 patch 8.2.4575: Vim9: test for profiling still fails
Problem:    Vim9: test for profiling still fails.
Solution:   Update flags for profiling and breakpoints when obtaining the
            compile type.  Do not set the FC_CLOSURE flag for a toplevel
            function.
2022-03-15 19:29:30 +00:00
48f69cdfa4 patch 8.2.4574: Vim9: test for profiling fails
Problem:    Vim9: test for profiling fails.
Solution:   Mark function for profiling earlier to avoid E1271.
2022-03-15 16:16:47 +00:00
96923b7a14 patch 8.2.4573: a nested function is compiled for debugging without context
Problem:    A nested function (closure) is compiled for debugging without
            context.
Solution:   Check if a nested function is marked for debugging before
            compiling it.  Give an error when trying to compile a closure
            without its context. (closes #9951)
2022-03-15 15:57:04 +00:00
1a572e9b3b patch 8.2.4572: Vim9: return type "any" is changed to first returned type
Problem:    Vim9: return type "any" is sometimes changed to first returned
            type.  (Virginia Senioria)
Solution:   Do not change the return type if declared as "any". (closes #9949)
2022-03-15 12:28:10 +00:00
8d5e514d77 patch 8.2.4571: not all gdb files are recognized
Problem:    Not all gdb files are recognized.
Solution:   Add a few more patterns for gdb. (Jade Lovelace, closes #9956)
2022-03-15 12:00:23 +00:00
1fdf84e033 patch 8.2.4570: no command line completion for :profile and :profdel
Problem:    No command line completion for :profile and :profdel.
Solution:   Implement completion. (Yegappan Lakshmanan, closes #9955)
2022-03-15 10:53:09 +00:00
977525fea6 patch 8.2.4569: Coverity warning for not using a return value
Problem:    Coverity warning for not using a return value.
Solution:   Add "(void)".
2022-03-15 10:22:39 +00:00
10792feebd patch 8.2.4568: getmousepos() does not compute the column below the last line
Problem:    getmousepos() does not compute the column below the last line.
Solution:   Also compute the column when the mouse is below the last line.
            (Sean Dewar, closes #9946)
2022-03-15 09:46:54 +00:00
7a73252063 patch 8.2.4567: bracketed paste doesn't work well in Visual linewise mode
Problem:    Bracketed paste doesn't work well in Visual linewise mode.
Solution:   Handle linewise Visual mode differently. (closes #9947)
2022-03-14 20:46:41 +00:00
7d42840033 patch 8.2.4566: check for existing buffer in session file may not work
Problem:    Check for existing buffer in session file does not work for files
            in the home directory.
Solution:   Use fnamemodify(). (James Cherti, closes #9945)  Add a test.
2022-03-14 20:24:51 +00:00
6e2e2cc95b patch 8.2.4565: no command line completion for :breakadd and :breakdel
Problem:    No command line completion for :breakadd and :breakdel.
Solution:   Add completion for :breakadd and :breakdel. (Yegappan Lakshmanan,
            closes #9950)
2022-03-14 19:24:46 +00:00
129e33e44b patch 8.2.4564: running test leaves file behind
Problem:    Running test leaves file behind.  (Dominique Pellé)
Solution:   Run the profiling in a separate Vim instance. (closes #9952)
2022-03-14 10:50:23 +00:00
5c68617d39 patch 8.2.4563: "z=" in Visual mode may go beyond the end of the line
Problem:    "z=" in Visual mode may go beyond the end of the line.
Solution:   Adjust "badlen".
2022-03-13 20:12:25 +00:00
b29b96806f patch 8.2.4562: linear tag search is not optimal
Problem:    Linear tag search is not optimal.
Solution:   Improve linear tag search performance. (Yegappan Lakshmanan,
            closes #9944)
2022-03-13 19:23:48 +00:00
424da7aa48 patch 8.2.4561: build failure with some combination of features
Problem:    Build failure with some combination of features. (John Marriott)
Solution:   Adjust #ifdef.
2022-03-13 19:08:48 +00:00
5f823d1e73 patch 8.2.4560: suspending with CTRL-Z does not work on DragonFlyBSD
Problem:    Suspending with CTRL-Z does not work on DragonFlyBSD.
Solution:   Adjust #ifdef. (Ozaki Kiichi, closes #9943)
2022-03-13 17:27:38 +00:00
533870a985 patch 8.2.4559: getmousepos() returns the screen column
Problem:    getmousepos() returns the screen column. (Ernie Rael)
Solution:   Return the text column, as documented.
2022-03-13 15:52:44 +00:00
e850439a56 patch 8.2.4558: Motif: using default colors does not work as expected
Problem:    Motif: using default colors does not work as expected.
Solution:   Do not try to store the default colors, use the resources.
            (closes #9933)
2022-03-13 14:45:03 +00:00
754d2b4036 patch 8.2.4557: confusing comment about 'cursorlineopt'
Problem:    Confusing comment about 'cursorlineopt'.
Solution:   Adjust comment.  (closes #9939)  Add parenthesis around logical
            OR.
2022-03-13 13:40:45 +00:00
4f3321f704 patch 8.2.4556: test fails without the +job or +channel feature
Problem:    Test fails without the +job or +channel feature. (Dominique Pellé)
Solution:   Adjust #ifdefs.  Pass on skip flag. (closes #9942)
2022-03-13 13:12:27 +00:00
986b0fd0c5 patch 8.2.4555: getmousepos() returns the wrong column
Problem:    getmousepos() returns the wrong column. (Ernie Rael)
Solution:   Limit to the text size, not the number of bytes.
2022-03-13 12:06:07 +00:00
badf04f5c2 patch 8.2.4554: Vim9: using null values not sufficiently tested
Problem:    Vim9: using null values not sufficiently tested.
Solution:   Add more tests.  Fix uncovered problem.
2022-03-12 21:28:22 +00:00
8b530b3158 patch 8.2.4553: linear tag search is a bit slow
Problem:    Linear tag search is a bit slow.
Solution:   Remove a vim_ftell() call. (Yegappan Lakshmanan, closes #9937)
2022-03-12 17:38:29 +00:00
d0b7bfa957 patch 8.2.4552: in a :def function "put = expr" does not work
Problem:    In a :def function "put = expr" does not work.
Solution:   Skip over white space. (closes #9936)
2022-03-12 14:51:16 +00:00
bbf84e2737 patch 8.2.4551: when mapping <Esc> terminal codes are not recognized
Problem:    When mapping <Esc> terminal codes are not recognized.
Solution:   Specifically recognize a mapping with just <Esc> and check for
            terminal codes even though there is no partial mapping.
            (closes #9903)
2022-03-12 13:48:39 +00:00
5b4f8a0e84 patch 8.2.4550: Motif: cannot set the color of the scrollbar thumb
Problem:    Motif: cannot set the color of the scrollbar thumb.
Solution:   Remove #ifdef.
2022-03-12 12:21:28 +00:00
e2adcf3974 patch 8.2.4549: cannot build with Motif and editres
Problem:    Cannot build with Motif and editres. (Tony Mechelynck)
Solution:   Fix configure mistake.
2022-03-12 11:57:25 +00:00
fb43cfc2c6 patch 8.2.4548: script-local function is deleted when used in a funcref
Problem:    Script-local function is deleted when used in a funcref.
Solution:   Do not consider a function starting with "<SNR>" reference
            counted. (closes #9916, closes #9820)
2022-03-11 18:54:17 +00:00
f52fac2ed9 patch 8.2.4547: the neXTaw GUI is old and does not work well
Problem:    The neXTaw GUI is old and does not work well.
Solution:   Remove the neXTaw GUI from configure to find out who still wants
            support for this GUI.
2022-03-11 16:01:26 +00:00
0a4e098f32 patch 8.2.4546: duplicate #undef
Problem:    Duplicate #undef.
Solution:   Remove one #undef. (closes #9932)
2022-03-11 15:33:53 +00:00
176711f069 patch 8.2.4545: MS-Windows: the installed icon is low resolution
Problem:    MS-Windows: the installed icon is low resolution.
Solution:   Use a better icon.  Install vim.ico. (Christian Brabandt,
            closes #9931, closes #9930)
2022-03-11 15:24:11 +00:00
dbf8094b17 patch 8.2.4544: Coverity warnings for not using returned value
Problem:    Coverity warnings for not using returned value.
Solution:   Assign to vim_ignored.
2022-03-11 14:54:03 +00:00
20fb28b1dc patch 8.2.4543: Coverity warning for refactored tag search code
Problem:    Coverity warning for refactored tag search code.
Solution:   Avoid the warnings.  Update comments.  Add one more test case.
            (Yegappan Lakshmanan, closes #9928)
2022-03-11 12:05:18 +00:00
873f8243f6 patch 8.2.4542: Vim9: "break" inside try/catch not handled correctly
Problem:    Vim9: "break" inside try/catch not handled correctly.
Solution:   First jump to :endtry. (closes #9927)
2022-03-10 21:53:44 +00:00
e406ff87c8 patch 8.2.4541: Crash in debugger when a variable is not available
Problem:    Crash in debugger when a variable is not available in the current
            block.
Solution:   Check for a NULL name. (closes #9926)
2022-03-10 20:47:43 +00:00
1b1df95f1a patch 8.2.4540: line number for error is off by one
Problem:    Line number for error is off by one.
Solution:   Remember the line number of the comparison. (closes #9923)
2022-03-10 20:01:50 +00:00
53ba6ca5b2 patch 8.2.4539: when comparing special v:none and v:null are handled the same
Problem:    When comparing special v:none and v:null are handled the same when
            compiling.
Solution:   Pass more information so that v:none can be handled differently at
            compile time.  (issue #9923)
2022-03-10 19:23:28 +00:00
bf40e90dfe patch 8.2.4538: the find_tags_in_file() function is too long
Problem:    The find_tags_in_file() function is too long.
Solution:   Refactor into smaller functions. (Yegappan Lakshmanan,
            closes #9920)
2022-03-10 18:36:54 +00:00
48f83c31d1 patch 8.2.4537: output from linter and language server shows up in git
Problem:    Output from linter and language server shows up in git.
Solution:   Add patterns to .gitignore. (Goc Dundar, closes #9925)
2022-03-10 15:51:24 +00:00
cf6662082f patch 8.2.4536: debugger test fails when breaking on expression
Problem:    Debugger test fails when breaking on expression.
Solution:   Compare strings with "==" instead of "is".
2022-03-10 13:29:20 +00:00
81da16b53f patch 8.2.4535: filename modifer ":8" removes the filename
Problem:    Filename modifer ":8" removes the filename.
Solution:   Use strncpy() instead of vim_strncpy(). (Christian Brabandt,
            closes #9918, closes #8600)
2022-03-10 12:24:02 +00:00
f8691004b0 patch 8.2.4534: Vim9: "is" operator with empty string and null returns true
Problem:    Vim9: "is" operator with empty string and null returns true.
Solution:   Consider empty string and null to be different for "is".
2022-03-10 12:20:53 +00:00
56b84b1728 patch 8.2.4533: Vim9: no test that after assigning null type is still checked
Problem:    Vim9: no test that after assigning null the type is still checked.
Solution:   Add a test.
2022-03-09 19:46:48 +00:00
f2832ad965 patch 8.2.4532: suspending with CTRL-Z does not work on OpenBSD
Problem:    Suspending with CTRL-Z does not work on OpenBSD.
Solution:   Adjust #ifdef for SIGTSTP. (Stuart Henderson, closes #9912)
2022-03-09 14:33:02 +00:00
f01a653ac5 patch 8.2.4531: LGTM warnings for condition and buffer size
Problem:    LGTM warnings for condition always true and buffer size too small.
Solution:   Remove the useless condition.  Make the buffer larger. (Goc
            Dundar, closes #9914)
2022-03-09 13:00:54 +00:00
f3507a517c patch 8.2.4530: making comparison with null work changes legacy behavior
Problem:    Making comparison with null work changes legacy behavior.
Solution:   Only use the better comparison in Vim9 script. (closes #9910)
2022-03-09 11:56:21 +00:00
1588bc8ebe Update runtime files 2022-03-08 21:35:07 +00:00
ed0c62e7b1 patch 8.2.4529: Vim9: comparing partial with function fails
Problem:    Vim9: comparing partial with function fails.
Solution:   Support this comparison.  Avoid a crash. (closes #9909)
            Add more test cases.
2022-03-08 19:43:55 +00:00
673bcb10eb patch 8.2.4528: crash when using null_function for a partial
Problem:    Crash when using null_function for a partial.
Solution:   Don't call fname_trans_sid() with NULL. (closes #9908)
2022-03-08 16:52:24 +00:00
0b40d086b3 patch 8.2.4527: the Athena GUI is old and does not work well
Problem:    The Athena GUI is old and does not work well.
Solution:   Remove the Athena GUI from configure to find out who still wants
            support for this GUI.
2022-03-08 13:32:37 +00:00
8acb9cc620 patch 8.2.4526: Vim9: cannot set variables to a null value
Problem:    Vim9: cannot set variables to a null value.
Solution:   Add null_list, null_job, etc.
2022-03-08 13:18:55 +00:00
08238045e7 patch 8.2.4525: some GUI tests don't work on Athena
Problem:    Some GUI tests don't work on Athena.
Solution:   Skip tests that won't work. (Yegappan Lakshmanan, closes #9902)
2022-03-07 16:57:22 +00:00
d8f8629b1b patch 8.2.4524: MS-Windows: cannot build with some sodium libraries
Problem:    MS-Windows: cannot build with some sodium libraries.
Solution:   Make the DLL name configuragle.  Add build instructions.
            (Ken Takata, closes #9905)
2022-03-07 15:16:15 +00:00
6ca883dd8a patch 8.2.4523: when gvim is started maximized the 'window' option isn't set
Problem:    When gvim is started maximized the 'window' option isn't set
            properly. (Christian J. Robinson)
Solution:   Check if 'windows' was already set or not. (Ken Takata,
            closes #9904)
2022-03-07 13:31:15 +00:00
88dd6523fa patch 8.2.4522: GUI test fails with Motif
Problem:    GUI test fails with Motif. (Dominique Pellé)
Solution:   Remove using an invalid value for 'guifontset'.
2022-03-06 22:21:37 +00:00
936dc6014c patch 8.2.4521: build failure without the +diff feature
Problem:    Build failure without the +diff feature. (John Marriott)
Solution:   Define filler+lines if not declaring it.
2022-03-06 20:47:01 +00:00
127969cf98 patch 8.2.4520: using wrong highlight for cursor line number
Problem:    Using wrong highlight for cursor line number.
Solution:   Take filler lines into account when using CursorLineNr.
            (closes #9897)
2022-03-06 19:54:13 +00:00
d523c7be5c patch 8.2.4519: Vim9: Can still use ":fini" and ":finis" for ":finish"
Problem:    Vim9: Can still use ":fini" and ":finis" for ":finish".
Solution:   Require using ":finish".
2022-03-06 14:51:22 +00:00
655b734ee8 patch 8.2.4518: the binary tag search feature is always enabled
Problem:    The binary tag search feature is always enabled.
Solution:   Remove the #ifdefs.  Add a few more tests. (Yegappan Lakshmanan,
            closes #9893)
2022-03-06 14:27:10 +00:00
9eccee0e85 patch 8.2.4517: MS-Windows: cannot specify location of sodium library
Problem:    MS-Windows: cannot specify location of sodium library.
Solution:   Allow for using a path for SODIUM. (Ken Takata, closes #9896)
2022-03-06 14:01:52 +00:00
525eba00ef patch 8.2.4516: build failure without the +eval feature
Problem:    Build failure without the +eval feature.
Solution:   Move error message outside of #ifdef.
2022-03-05 22:07:32 +00:00
9fb7b42935 patch 8.2.4515: old subsitute syntax is still supported
Problem:    Old subsitute syntax is still supported.
Solution:   Disallow using backslash after ":s" in Vim9 script.
2022-03-05 21:13:26 +00:00
b2175220da patch 8.2.4514: Vim9: some flow commands can be shortened
Problem:    Vim9: some flow commands can be shortened.
Solution:   Also require using the full name for ":return", ":enddef",
            ":continue", ":export" and ":import".
2022-03-05 20:24:41 +00:00
b29ae15977 patch 8.2.4513: window-local directory is not applied if 'acd' fails
Problem:    Window-local directory is not applied if 'acd' fails.
Solution:   Don't call do_autochdir(). (closes #9891)
2022-03-05 17:00:31 +00:00
df1bbea436 patch 8.2.4512: the find_tags_in_file() function is much too long
Problem:    The find_tags_in_file() function is much too long.
Solution:   Refactor into multiple smaller functions. (Yegappan Lakshmanan,
            closes #9892)
2022-03-05 14:35:12 +00:00
c12dc47b8f patch 8.2.4511: filetype test fails
Problem:    Filetype test fails.
Solution:   Change "endw" to "endwhile".
2022-03-05 13:45:56 +00:00
204852ae2a patch 8.2.4510: Vim9: shortening commands leads to confusing script
Problem:    Vim9: shortening commands leads to confusing script.
Solution:   In Vim9 script require at least ":cont" for ":continue", "const"
            instead of "cons", "break" instead of "brea", "catch" instead of
            "cat", "else" instead of "el" "elseif" instead of "elsei" "endfor"
            instead of "endfo" "endif" instead of "en" "endtry" instead of
            "endt", "finally" instead of "fina", "throw" instead of "th",
            "while" instead of "wh".
2022-03-05 12:56:44 +00:00
e1d1211799 patch 8.2.4509: Vim9: can declare a variable with ":va"
Problem:    Vim9: can declare a variable with ":va".
Solution:   Disallow using ":va", require using ":var".
2022-03-05 11:37:48 +00:00
330a388e18 patch 8.2.4508: Vim9: cannot assign to a global variable on the command line
Problem:    Vim9: cannot assign to a global variable on the command line.
Solution:   Allow using :vim9cmd for assignment on the command line.
2022-03-05 11:05:57 +00:00
f78ee2b49f patch 8.2.4507: test fails because of new error message
Problem:    Test fails because of new error message.
Solution:   Avoid the test fails.
2022-03-04 23:22:27 +00:00
24d9c0557e patch 8.2.4506: "pattern not found" for :global is not an error message
Problem:    "pattern not found" for :global is not an error message.
Solution:   In Vim9 script make this an actual error, so that try/catch can be
            used as expected.
2022-03-04 21:34:31 +00:00
f07751457c patch 8.2.4505: Vim9: outdated "autocmd nested" still works
Problem:    Vim9: outdated "autocmd nested" still works.
Solution:   Do not accept the :autocmd argument "nested" without "++" in Vim9
            script.
2022-03-04 20:10:38 +00:00
196c3850db patch 8.2.4504: when there is a partially matching map full map may not work
Problem:    When there is a partially matching map and modifyOtherKeys is
            active a full map may not work.
Solution:   Only simplify modifiers when there is no matching mapping.
            (closes #8792)
2022-03-04 19:22:36 +00:00
6aca4d3c2b patch 8.2.4503: Vim9: there is no point in supporting :Print and :mode
Problem:    Vim9: there is no point in supporting :Print and :mode.
Solution:   Do not recognize :Print and :mode as commands. (closes #9870)
2022-03-04 17:10:19 +00:00
d979d64fa2 patch 8.2.4502: in the GUI a modifier is not recognized after CTRL-X
Problem:    In the GUI a modifier is not recognized for the key typed after
            CTRL-X, which may result in a mapping to be used. (Daniel
            Steinberg)
Solution:   Recognize a modifier starting with CSI. (closes #9889)
2022-03-04 14:51:06 +00:00
21efafe4c2 patch 8.2.4501: with 'showbreak' set cursor displayed in wrong position
Problem:    With 'showbreak' set and after the end of the line the cursor
            may be displayed in the wrong position.
Solution:   Do not apply 'showbreak' after the end of the line. (closes #9884)
2022-03-03 20:04:03 +00:00
0e1574c406 patch 8.2.4500: Vim9: can declare a global variable on the command line
Problem:    Vim9: can declare a global variable on the command line.
Solution:   Disallow declaring a variable on the command line. (closes #9881)
2022-03-03 17:05:35 +00:00
28bf649a57 patch 8.2.4499: Vim9: at the script level declarations leak to next block
Problem:    Vim9: at the script level declarations leak from try block to
            catch and finally block.
Solution:   End the block and start a new one. (closes #9883)
2022-03-03 15:11:20 +00:00
1fc34225ac patch 8.2.4498: using <Plug> with "noremap" does not work
Problem:    Using <Plug> with "noremap" does not work.
Solution:   Always remap <Plug>. (closes #9879, closes #9789)
2022-03-03 13:56:24 +00:00
35d8c2010e patch 8.2.4497: wrong color for half of wide character next to pum scrollbar
Problem:    Wrong color for half of wide character next to pum scrollbar.
Solution:   Redraw the screen cell with the right color. (closes #9874)
2022-03-03 11:46:00 +00:00
fe9112e630 patch 8.2.4496: Coverity gives warnings after tags code refactoring
Problem:    Coverity gives warnings after tags code refactoring.
Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #9882)
2022-03-03 10:44:17 +00:00
e4e1a1e1c8 patch 8.2.4495: help test fails in 24 line terminal
Problem:    Help test fails in 24 line terminal.
Solution:   Use up to 23 lines for text.
2022-03-02 20:49:50 +00:00
2f87a99b6e patch 8.2.4494: the find_tags() function is much too long
Problem:    The find_tags() function is much too long.
Solution:   Refactor the function. (Yegappan Lakshmanan, closes #9869)
2022-03-02 20:29:35 +00:00
b9c5108593 patch 8.2.4493: options test fails in the GUI
Problem:    Options test fails in the GUI.
Solution:   Do not save and restore 'term'.
2022-03-02 20:12:03 +00:00
8ccbbeb620 patch 8.2.4492: no error if an option is given a value with ":let &opt = val"
Problem:    No error if an option is given an invalid value with
            ":let &opt = val".
Solution:   Give the error. (closes #9864)
2022-03-02 19:49:38 +00:00
7f687aaca9 patch 8.2.4491: MS-Windows makefile dependencies are outdated
Problem:    MS-Windows makefile dependencies are outdated.
Solution:   Update dependencies. (Ken Takata, closes #9876)
2022-03-02 17:34:56 +00:00
8d5daf267e patch 8.2.4490: terminal focus reporting only works for xterm-like terminals
Problem:    Terminal focus reporting only works for xterm-like terminals.
            (Jonathan Rascher)
Solution:   Remove the "focus_mode" flag. (closes #9859)
2022-03-02 17:16:39 +00:00
c6e9d7063d patch 8.2.4489: failing test for comparing v:null with number
Problem:    Failing test for comparing v:null with number.
Solution:   Allow comparing v:null with number in legacy script.
            (Ken Takata, closes #9873)  Also do this for float.
2022-03-02 13:13:30 +00:00
f6b0c79742 patch 8.2.4488: build error with +eval but without +channel or +job
Problem:    Build error with +eval but without +channel or +job.
Solution:   Add #ifdef. (John Marriott)
2022-03-01 19:52:48 +00:00
7a22224875 patch 8.2.4487: Vim9: cannot compare with v:null
Problem:    Vim9: cannot compare with v:null.
Solution:   Allow comparing anything with v:null. (closes #9866)
2022-03-01 19:23:24 +00:00
f01af9c4e6 patch 8.2.4486: MS-Windows GUI: slow scrolling with maximized window
Problem:    MS-Windows GUI: slow scrolling with maximized window.
Solution:   Use a better way to check the window is on screen. (Ken Takata,
            closes #9865)
2022-03-01 16:02:26 +00:00
3e7637bd26 patch 8.2.4485: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize the variable. (John Marriott)
2022-02-28 21:02:19 +00:00
1983f1aa31 patch 8.2.4484: Vim9: some error messages are not tested
Problem:    Vim9: some error messages are not tested.
Solution:   Add a few more test cases.  Delete dead code.
2022-02-28 20:55:02 +00:00
5de4c4372d patch 8.2.4483: command completion makes two rounds to collect matches
Problem:    Command completion makes two rounds to collect matches.
Solution:   Use a growarray to collect matches. (Yegappan Lakshmanan,
            closes #9860)
2022-02-28 13:28:38 +00:00
afd4ae35d6 patch 8.2.4482: no fuzzy cmdline completion for user defined completion
Problem:    No fuzzy cmdline completion for user defined completion.
Solution:   Add fuzzy completion for user defined completion. (Yegappan
            Lakshmanan, closes #9858)
2022-02-27 21:03:21 +00:00
5c52be40fb patch 8.2.4481: cmdline popup menu not removed when 'lazyredraw' is set
Problem:    Cmdline popup menu not removed when 'lazyredraw' is set.
Solution:   Temporarily reset 'lazyredraw' when removing the popup menu.
            (closes #9857)
2022-02-27 14:28:31 +00:00
cbef12e60b patch 8.2.4480: suspending with CTRL-Z does not work on Android
Problem:    Suspending with CTRL-Z does not work on Android.
Solution:   Do not handle SIGTSTP. (closes #9854)
2022-02-27 12:31:52 +00:00
6caeda2fce patch 8.2.4479: no fuzzy completieon for maps and abbreviations
Problem:    No fuzzy completieon for maps and abbreviations.
Solution:   Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan,
            closes #9856)
2022-02-27 12:07:30 +00:00
00333cb3b3 patch 8.2.4478: crash when using fuzzy completion
Problem:    Crash when using fuzzy completion.
Solution:   Temporary fix: put back regexp. (closes #9852, closes #9851)
2022-02-26 16:05:08 +00:00
29ab6ce9f3 patch 8.2.4477: crash when using fuzzy completion
Problem:    Crash when using fuzzy completion.
Solution:   Temporary fix: put back regexp. (closes #9851)
2022-02-26 15:52:08 +00:00
c51cf03298 Update runtime files. 2022-02-26 12:25:45 +00:00
e41c1dd889 patch 8.2.4476: operator name spelled wrong
Problem:    Operator name spelled wrong.
Solution:   Change trinary to ternary. (Goc Dundar, closes #9850)
2022-02-26 11:46:13 +00:00
4df5b33f20 patch 8.2.4475: fuzzy cmdline completion does not work for lower case
Problem:    Fuzzy cmdline completion does not work for lower case.
Solution:   Also use fuzzy completion for lower case input. (Yegappan
            Lakshmanan, closes #9849)
2022-02-26 11:04:42 +00:00
5a2d4a3ecb patch 8.2.4474: memory allocation failures not tested in quickfix code
Problem:    Memory allocation failures not tested in quickfix code.
Solution:   Add alloc IDs and tests. (Yegappan Lakshmanan, closes #9848)
2022-02-26 10:31:32 +00:00
416b5f4894 patch 8.2.4473: Coverity warnds for not checking return value of ftell()
Problem:    Coverity warnds for not checking return value of ftell().
Solution:   Bail out if ftell() returns a negative value.
2022-02-25 21:47:48 +00:00
9383a3afb6 patch 8.2.4472: Coverity warns for use of a freed function name
Problem:    Coverity warns for use of a freed function name.
Solution:   Only check an autoload name when is prefixed.
2022-02-25 21:35:17 +00:00
62628d97c4 patch 8.2.4471: Coverity warns for uninitialized variable
Problem:    Coverity warns for uninitialized variable.
Solution:   Set flags to zero.
2022-02-25 21:10:53 +00:00
ae49aa8434 patch 8.2.4470: Coverity warns for uninitialized variable
Problem:    Coverity warns for uninitialized variable.
Solution:   Set can_spell to zero.
2022-02-25 21:05:36 +00:00
05c1734c4f patch 8.2.4469: Coverity warns for uninitialized variable
Problem:    Coverity warns for uninitialized variable.
Solution:   Set the value to zero.
2022-02-25 20:57:11 +00:00
68afde4c9b patch 8.2.4468: Coverity warns for uninitialized struct member
Problem:    Coverity warns for uninitialized struct member.
Solution:   Set color.index to zero.
2022-02-25 20:48:26 +00:00
0e71b7d4ce patch 8.2.4467: running filetype test leaves file behind
Problem:    Running filetype test leaves file behind.
Solution:   Delete the file.
2022-02-25 17:45:04 +00:00
5c6edf41f9 patch 8.2.4466: MS-Windows: illegal memory access in installer
Problem:    MS-Windows: illegal memory access in installer when using
            "create-directories" as the final argument.
Solution:   Check the argument count. (Cam Sinclair, closes #9844)
2022-02-25 17:42:23 +00:00
5ec633b9b0 patch 8.2.4465: fuzzy completion does not order matches properly
Problem:    Fuzzy completion does not order matches properly.
Solution:   Do not use regular expression match. (Yegappan Lakshmanan,
            closes #9843)
2022-02-25 15:24:24 +00:00
4d56b971cb patch 8.2.4464: Dtrace files are recognized as filetype D
Problem:    Dtrace files are recognized as filetype D.
Solution:   Add a pattern for Dtrace files. (Teubel György, closes #9841)
            Add some more testing.
2022-02-24 17:59:09 +00:00
38b85cb4d7 patch 8.2.4463: completion only uses strict matching
Problem:    Completion only uses strict matching.
Solution:   Add the "fuzzy" item for 'wildoptions'. (Yegappan Lakshmanan,
            closes #9803)
2022-02-24 13:28:41 +00:00
9c9be05b17 patch 8.2.4462: not enough testing for quickfix code
Problem:    Not enough testing for quickfix code.
Solution:   Add more tests. Fix uncovered problem. (Yegappan Lakshmanan,
            closes #9839)
2022-02-24 12:33:17 +00:00
3c620b0c03 patch 8.2.4461: MS-Windows: garbage characters on stdout with VIMDLL
Problem:    MS-Windows: garbage characters on stdout with VIMDLL.
Solution:   Don't call gui_focus_change() when about to quit. (Ken Takata,
            closes #9840)
2022-02-24 11:39:43 +00:00
dea5ab0fc5 patch 8.2.4460: Vim9: wrong error for defining dict function
Problem:    Vim9: wrong error for defining dict function.
Solution:   Explicitly check for trying to define a dict function.
            (closes 9827)
2022-02-23 22:12:02 +00:00
fa02616718 patch 8.2.4459: Vim9: compiling sort() call fails with unknown arguments
Problem:    Vim9: compiling sort() call fails with a funcref that has unknown
            arguments.
Solution:   Do not check the arguments if they are unknown at compile time.
            (closes #9835)
2022-02-23 21:03:32 +00:00
6e1a38745f patch 8.2.4458: Vim9: compiling filter() call fails with unknown arguments
Problem:    Vim9: compiling filter() call fails with funcref that has unknown
            arguments.
Solution:   Do not check the arguments if they are unknown at compile time.
            (closes #9835)
2022-02-23 19:11:49 +00:00
33fc4a6307 patch 8.2.4457: the GPM library can only be linked statically
Problem:    The GPM library can only be linked statically.
Solution:   Make it possible to load the GPM library dynamically. (Damien)
2022-02-23 18:07:38 +00:00
dd2dfb3cb0 patch 8.2.4456: terminal test may fail on some machines
Problem:    Terminal test may fail on some machines.
Solution:   Increase wait time. (Zdenek Dohnal, closes #9834)
2022-02-23 14:25:17 +00:00
2007dd49f5 patch 8.2.4455: accepting one and zero for second sort() argument is strange
Problem:    Accepting one and zero for the second sort() argument is strange.
Solution:   Disallow using one and zero in Vim9 script.
2022-02-23 13:17:47 +00:00
6a8b13614e patch 8.2.4454: resetting cmdwin_type only for one situation
Problem:    Resetting cmdwin_type only for one situation.
Solution:   Reset cmdwin_type before closing windows. (closes #9822)
2022-02-23 12:23:08 +00:00
4791fcd825 patch 8.2.4453: :helpgrep may free an option that was not allocated
Problem:    :helpgrep may free an option that was not allocated. (Yegappan
            Lakshmanan)
Solution:   Check if the value was allocated.
2022-02-23 12:06:00 +00:00
2dada73a4e patch 8.2.4452: test for what 8.2.4436 fixes does not check for regression
Problem:    Test for what 8.2.4436 fixes does not check for regression.
Solution:   Set several options. (Ken Takata, closes #9830)
2022-02-23 10:52:41 +00:00
9cd4c0fb98 patch 8.2.4451: sort() fails when ignoring case
Problem:    sort() fails when ignoring case.
Solution:   Accept a number one argument in sort().
2022-02-22 22:53:10 +00:00
2afeb40831 patch 8.2.4450: list sort test fails
Problem:    List sort test fails.
Solution:   Pass a valid "how" argument.
2022-02-22 22:17:00 +00:00
e843efcc35 patch 8.2.4449: vim9: function argument of sort() not checked at compile time
Problem:    vim9: function argument of sort() not checked at compile time.
Solution:   Add a compile time check.
2022-02-22 21:54:44 +00:00
b2c72359dc patch 8.2.4448: filetype detection is failing
Problem:    Filetype detection is failing.
Solution:   Do not use "s:" where it is no longer allowed.
2022-02-22 21:17:40 +00:00
afa048f0d4 patch 8.2.4447: Vim9: can still use s:var in a compiled function
Problem:    Vim9: can still use s:var in a compiled function.
Solution:   Disallow using s:var for Vim9 script. (closes #9824)
2022-02-22 20:43:36 +00:00
fe73255c92 patch 8.2.4446: Vim9: cannot refer to a global function like a local one
Problem:    Vim9: cannot refer to a global function like a local one.
Solution:   When g:name is not a variable but a function, use a function
            reference. (closes #9826)
2022-02-22 19:39:13 +00:00
29a9e69718 patch 8.2.4445: exit test fails on MS-Windows anyway
Problem:    Exit test fails on MS-Windows anyway.
Solution:   Skip the test on MS-Windows.
2022-02-22 18:48:11 +00:00
68eab67119 patch 8.2.4444: beep caused by test
Problem:    Beep caused by test.  ASAN reports leaks.
Solution:   Do not put a NL at the end of the script.  Make the text work on
            MS-Windows.  Do not run the test with ASAN.
2022-02-22 17:42:48 +00:00
2457b2bbc2 patch 8.2.4443: regexp pattern test fails on Mac
Problem:    Regexp pattern test fails on Mac.
Solution:   Do not use a swapfile for the buffer.
2022-02-22 16:19:37 +00:00
70b9e4f4c3 patch 8.2.4442: test for error reading input fails on MS-Windows
Problem:    Test for error reading input fails on MS-Windows.
Solution:   Don't run the test on MS-Windows.
2022-02-22 15:24:51 +00:00
16f6c8ac94 patch 8.2.4441: Vim9: function argument of filter() not checked like map()
Problem:    Vim9: function argument of filter() not checked like map().
Solution:   Also check the function argument of filter().
2022-02-22 15:12:14 +00:00
6456fae9ba patch 8.2.4440: crash with specific regexp pattern and string
Problem:    Crash with specific regexp pattern and string.
Solution:   Stop at the start of the string.
2022-02-22 13:37:31 +00:00
1349bd712c patch 8.2.4439: accepting "iso8859" 'encoding' as "iso-8859-"
Problem:    Accepting "iso8859" 'encoding' as "iso-8859-".
Solution:   use "iso8859" as "iso-8859-1".
2022-02-22 12:34:28 +00:00
ca0c1caa36 patch 8.2.4438: crash on exit when using cmdline window
Problem:    Crash on exit when using cmdline window.
Solution:   Reset "cmdwin_type" before exiting. (closes #9817)
2022-02-22 12:08:07 +00:00
0f113e4f7b patch 8.2.4437: vartabs test fails on MS-Windows
Problem:    Vartabs test fails on MS-Windows.
Solution:   Use iso8859-1 'encoding'. (Ken Takata, closes #9818)
2022-02-22 11:04:50 +00:00
4e889f98e9 patch 8.2.4436: crash with weird 'vartabstop' value
Problem:    Crash with weird 'vartabstop' value.
Solution:   Check for running into the end of the line.
2022-02-21 19:36:12 +00:00
7842761bba patch 8.2.4435: dead code in checking map() arguments
Problem:    Dead code in checking map() arguments. (Dominique Pellé)
Solution:   Remove the first return statement. (closes #9815)
2022-02-21 18:34:30 +00:00
16b51d26fe patch 8.2.4434: duplicate check for cmdline window
Problem:    Duplicate check for cmdline window.
Solution:   Remove the second check. (Sean Dewar, closes #9816)
2022-02-21 17:56:33 +00:00
83e36c8606 patch 8.2.4433: CI: cannot see interface versions for MS-Windows
Problem:    CI: cannot see interface versions for MS-Windows.
Solution:   List the interface versions. (Ken Takata, closes #9811)
2022-02-21 17:49:28 +00:00
592f625001 patch 8.2.4432: cannot use settabvar() while the cmdline window is open
Problem:    Cannot use settabvar() while the cmdline window is open.
Solution:   Only give an error when actually switching tabpage.
            (closes #9813)
2022-02-21 16:13:49 +00:00
993faa3405 patch 8.2.4431: unnecessary condition when assigning to a variable
Problem:    Unnecessary condition when assigning to a variable.
Solution:   Remove the condition.
2022-02-21 15:59:11 +00:00
101979358f patch 8.2.4430: GTK: crash when using 'guiligatures' and reading from stdin
Problem:    GTK: crash when using 'guiligatures' and reading from stdin.
Solution:   Make a copy of the message. (Amon Sha, closes #9719, closes #9814)
2022-02-21 15:07:12 +00:00
c2f17f7e64 patch 8.2.4429: using script-local function from the wrong script
Problem:    Using script-local function from the wrong script when using a
            partial. (Yegappan Lakshmanan)
Solution:   Include the script ID in the partial name.
2022-02-21 13:13:50 +00:00
0f6e28f686 patch 8.2.4428: crash when switching tabpage while in the cmdline window
Problem:    Crash when switching tabpage while in the cmdline window.
Solution:   Disallow switching tabpage when in the cmdline window.
2022-02-20 20:49:35 +00:00
944697ae19 Update runtime files 2022-02-20 19:48:20 +00:00
ad6c45f625 patch 8.2.4427: getchar() may return modifiers if no character is available
Problem:    getchar() may return modifiers if no character is available.
Solution:   Do not process modifiers when there is no character. (closes #9806)
2022-02-20 19:05:10 +00:00
c1e6c7bafe patch 8.2.4426: map() function on string and blob does not check types
Problem:    map() function on string and blob does not check argument types at
            compile time.
Solution:   Check string and blob argument types.  Support "0z1234->func()".
2022-02-20 18:26:46 +00:00
eddd4fc4f6 patch 8.2.4425: map() function does not check function arguments
Problem:    map() function does not check function arguments at compile time.
Solution:   Give an error if the arguments of a map() function are wrong.
2022-02-20 15:52:28 +00:00
cdf717283c patch 8.2.4424: ".gts" and ".gjs" files are not recognized
Problem:    ".gts" and ".gjs" files are not recognized.
Solution:   Recognize Glimmer flavored typescript and javascript.
            (closes #9799)
2022-02-19 16:35:58 +00:00
d56eb654f5 patch 8.2.4423: "make nvcmdidxs" fails
Problem:    "make nvcmdidxs" fails.
Solution:   Use "-S" instead of "-u" to source the script.
2022-02-19 16:00:16 +00:00
adbb383e0f patch 8.2.4422: autochdir test fails on MS-Windows
Problem:    Autochdir test fails on MS-Windows.
Solution:   Expecta nother error on MS-Windows.
2022-02-19 14:49:51 +00:00
20563e0f84 patch 8.2.4421: some installed files and directories have wrong permissions
Problem:    Some installed files and directories have wrong permissions.
Solution:   Adjust the Makefile and shell to set permissions. (closes #9793)
2022-02-19 13:25:18 +00:00
Ada
a42535340a patch 8.2.4420: menu translations are inconsistent
Problem:    Menu translations are inconsistent.
Solution:   Add a Makefile to convert between encodings. (Ada (Haowen) Yu,
            closes #9801)
2022-02-19 12:06:09 +00:00
a493b6506b patch 8.2.4419: illegal memory access when using 20 highlights
Problem:    Illegal memory access when using exactly 20 highlights.
Solution:   Add one more item in the array. (Brandon Richardson,
            closes #9800)
2022-02-19 11:45:03 +00:00
5921aeb574 patch 8.2.4418: crash when using special multi-byte character
Problem:    Crash when using special multi-byte character.
Solution:   Don't use isalpha() for an arbitrary character.
2022-02-19 11:20:12 +00:00
e89bfd212b patch 8.2.4417: using NULL pointer
Problem:    Using NULL pointer.
Solution:   Set offset after checking for NULL pointer.
2022-02-18 18:34:45 +00:00
1fca5f3e86 patch 8.2.4416: Vim9: using a script-local function requires using "s:"
Problem:    Vim9: using a script-local function requires using "s:" when
            setting 'completefunc'.
Solution:   Do not require "s:" in Vim9 script. (closes #9796)
2022-02-18 17:50:47 +00:00
b8fb5bb68d patch 8.2.4415: function argument name conflicts with C++ keyword
Problem:    Function argument name conflicts with C++ keyword.
Solution:   Rename the argument.
2022-02-18 13:56:38 +00:00
97b231541d patch 8.2.4414: solidity files are not recognized
Problem:    Solidity files are not recognized.
Solution:   Add the *.sol pattern. (Dundar Goc, closes #9792)
2022-02-18 13:45:55 +00:00
56acd1f8ed patch 8.2.4413: Vim9: Coverity warns for using NULL pointer
Problem:    Vim9: Coverity warns for using NULL pointer.
Solution:   Give an internal error when funcref function can't be found.
2022-02-18 13:24:52 +00:00
0257599036 patch 8.2.4412: translation cleanup script does not remove empty lines at end
Problem:    Translation cleanup script does not remove empty lines at end.
Solution:   Remove empty lines at the end. (Ken Takata, closes #9794)
2022-02-18 11:28:29 +00:00
8e5ba693ad patch 8.2.4411: bicep files are not recognized
Problem:    Bicep files are not recognized.
Solution:   Match *.bicep files. (Dundar Goc, closes #9791)
2022-02-17 21:30:26 +00:00
0c7f2610de patch 8.2.4410: Vim9: some code not covered by tests
Problem:    Vim9: some code not covered by tests.
Solution:   Add a few more tests. Remove dead code.
2022-02-17 19:44:07 +00:00
6296d1e60e patch 8.2.4409: Vim9: some code not covered by tests
Problem:    Vim9: some code not covered by tests.
Solution:   Add a few more tests.  Fix reported line number.
2022-02-17 16:30:11 +00:00
ea5c898b5f patch 8.2.4408: Vim9: some code not covered by tests
Problem:    Vim9: some code not covered by tests.
Solution:   Add a few more tests.  Correct error message.  Allow unlet on dict
            with a number key.
2022-02-17 14:42:02 +00:00
e08be09a08 patch 8.2.4407: Vim9: some code not covered by tests
Problem:    Vim9: some code not covered by tests.
Solution:   Add more tests.  Avoid giving two errors.  Remove dead code.
2022-02-17 13:08:26 +00:00
2438430863 patch 8.2.4406: expand functions use confusing argument names
Problem:    Expand functions use confusing argument names.
Solution:   Rename "file" to "match".  Refactor some completion code.  Add a
            few more tests. (Yegappan Lakshmanan, closes #9790)
2022-02-17 11:26:42 +00:00
8329ab79b2 patch 8.2.4405: compiler warning for unused variable without +folding
Problem:    Compiler warning for unused variable without the +folding feature.
            (Tony Mechelynck)
Solution:   Add #ifdef.
2022-02-16 21:51:00 +00:00
cd1cda2f87 patch 8.2.4404: Vim9: some code not covered by tests
Problem:    Vim9: some code not covered by tests.
Solution:   Add a few specific test cases.
2022-02-16 21:48:25 +00:00
9437737833 patch 8.2.4403: ml_get error with nested folds and deleting lines
Problem:    ml_get error with nested folds and deleting lines.
Solution:   Correct the last line number before calling hasFoldingWin().
2022-02-16 20:30:52 +00:00
ae6f1d8b14 patch 8.2.4402: missing parenthesis may cause unexpected problems
Problem:    Missing parenthesis may cause unexpected problems.
Solution:   Add more parenthesis is macros. (closes #9788)
2022-02-16 19:24:07 +00:00
d288eaad84 patch 8.2.4401: map listing does not clear the rest of the command line
Problem:    Map listing does not clear the rest of the command line.
Solution:   Call msg_clear_eos(). (closes #5623, closes #5962)
2022-02-16 18:27:55 +00:00
646bb7247a patch 8.2.4400: MS-Windows: cannot use the mouse in the console with VIMDLL
Problem:    MS-Windows: cannot use the mouse in the console with VIMDLL.
Solution:   use add_char2buf() instead of fix_input_buffer(). (closes #9784,
            closes #9769)
2022-02-16 17:51:47 +00:00
f9435e49ef patch 8.2.4399: crash after ml_get error
Problem:    Crash after ml_get error.
Solution:   When returning "???" flush the line and set ml_line_lnum.
2022-02-16 16:33:28 +00:00
b31aec3b93 patch 8.2.4398: some command completion functions are too long
Problem:    Some command completion functions are too long.
Solution:   Refactor code into separate functions.  Add a few more tests.
            (Yegappan Lakshmanan, closes #9785)
2022-02-16 12:44:29 +00:00
34f8117dec patch 8.2.4397: crash when using many composing characters in error message
Problem:    Crash when using many composing characters in error message.
Solution:   Use mb_cptr2char_adv() instead of mb_ptr2char_adv().
2022-02-16 12:16:19 +00:00
f5288c5895 patch 8.2.4396: Python3 test fails
Problem:    Python3 test fails.
Solution:   Remove "let".
2022-02-15 21:33:29 +00:00
8b716f5f22 patch 8.2.4395: some code lines not covered by tests
Problem:    Some code lines not covered by tests.
Solution:   Add a few more test cases.  Fix getting more than one error for
            invalid assignment.
2022-02-15 21:17:56 +00:00
9fdde7992a patch 8.2.4394: UTF8 select mode test fails on MS-Windows
Problem:    UTF8 select mode test fails on MS-Windows.
Solution:   Revert the #ifdef change.
2022-02-15 19:52:56 +00:00
6b43471da4 patch 8.2.4393: possible number overflow with nested folds
Problem:    Possible number overflow with nested folds.
Solution:   Avoid a negative line number.
2022-02-15 19:15:22 +00:00
64d95cfc56 patch 8.2.4392: MS-Windows with VIMDLL: Escaping CSI is wrong
Problem:    MS-Windows with VIMDLL: Escaping CSI is wrong.
Solution:   Put back #ifdef. (Ken Takata, closes #9769)
2022-02-15 17:17:18 +00:00
0e1f36fc59 patch 8.2.4391: command line executed when typing Esc in the GUI
Problem:    Command line executed when typing Esc in the GUI.
Solution:   Move saving/restoring KeyTyped to build_stl_str_hl().
            (closes #9783)
2022-02-15 16:17:44 +00:00
e88c6b7a5d patch 8.2.4390: Vim9: list from declaration with inferred type not set
Problem:    Vim9: list from declaration with inferred type does not set the
            type on the value.
Solution:   When inferring the type in a variable declaration also set the
            type of the list or dictionary. (closes #9705)  Do not set the
            type when the member is "any".
2022-02-15 15:37:11 +00:00
4556a2e868 patch 8.2.4389: screenpos() does not handle a position in a closed fold
Problem:    screenpos() does not handle a position in a closed fold.
Solution:   Check if the position is inside a closed fold. (closes #9778)
2022-02-15 13:40:17 +00:00
7745f14ef3 patch 8.2.4388: dead code in op_insert()
Problem:    Dead code in op_insert().
Solution:   Remove condition and else block. (closes #9782)
2022-02-15 11:48:22 +00:00
e3846cf1eb patch 8.2.4387: command line completion doesn't always work properly
Problem:    Command line completion doesn't always work properly.
Solution:   Adjust triggering after a "|".  Add more tests. (Yegappan
            Lakshmanan, closes #9779)
2022-02-15 11:35:54 +00:00
8991be2ab4 patch 8.2.4386: still cannot build tiny version
Problem:    Still cannot build tiny version.
Solution:   Adjust #ifdefs.
2022-02-14 21:51:46 +00:00
b5d2039e00 patch 8.2.4385: cannot build tiny version
Problem:    Cannot build tiny version.
Solution:   Adjust #ifdefs.
2022-02-14 21:42:15 +00:00
bc51006402 patch 8.2.4384: Vim9: error message not tested, some code not tested
Problem:    Vim9: error message not tested, some code not tested.
Solution:   Add a couple of test cases.  Give an error for a command modifier
            without a command.
2022-02-14 21:19:04 +00:00
7a3b802bab patch 8.2.4383: Vim9: unused code lines
Problem:    Vim9: unused code lines.
Solution:   Rely on either "cctx" or "cstack" to not be NULL.
2022-02-14 19:53:03 +00:00
e4835bf340 patch 8.2.4382: a custom 'tabline' may cause Esc to work like Enter
Problem:    A custom 'tabline' may cause Esc to work like Enter on the
            command line when the popup menu is displayed.
Solution:   Save and restore KeyTyped. (closes #9776)
2022-02-14 19:17:53 +00:00
0e76714e90 patch 8.2.4381: translation file listed twice
Problem:    Translation file listed twice.
Solution:   Remove one entry.
2022-02-14 15:59:05 +00:00
Ada
774e55702f patch 8.2.4380: small differences between Chinese translation files
Problem:    Small differences between Chinese translation files.
Solution:   Add rule for converting UTF-8 to gb2312. (closes #9773)
2022-02-14 15:04:55 +00:00
55737c2a31 patch 8.2.4379: an empty change is reported to a listener
Problem:    An empty change is reported to a listener.
Solution:   Do not report an empty change. (closes #9768)  Remove unused
            return value.
2022-02-14 14:51:22 +00:00
6dd7424c7e patch 8.2.4378: incsearch HL broken when calling searchcount in 'tabLine'
Problem:    Incsearch highlight broken when calling searchcount() in 'tabLine'
            function. (Mirko Palmer)
Solution:   Save and restore the incsearch state. (Christian Brabandt,
            closes #9763, closes #9633)
2022-02-14 12:44:32 +00:00
0cd3e94e2c patch 8.2.4377: CI steps for Windows are a bit unorganized
Problem:    CI steps for Windows are a bit unorganized.
Solution:   Organize CI test steps on Windows. (Ozaki Kiichi, closes #9764)
2022-02-14 11:36:57 +00:00
9773db6f9b patch 8.2.4376: not enough tests for command line completion
Problem:    Not enough tests for command line completion.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #9771)
2022-02-14 11:10:59 +00:00
4b1d963972 patch 8.2.4375: ctx_imports is not used
Problem:    ctx_imports is not used.
Solution:   Delete ctx_imports.  Add missing dependency.
2022-02-13 21:51:08 +00:00
0631bb4ed7 patch 8.2.4374: unreachable code
Problem:    Unreachable code.
Solution:   Remove outdated code lines.
2022-02-13 21:20:21 +00:00
c87aa34dfd patch 8.2.4373: expression test fails
Problem:    Expression test fails.
Solution:   Make the test work with latest Vim9 syntax.
2022-02-13 20:46:18 +00:00
299d8e5eec patch 8.2.4372: filetype detection from file contents is in legacy script
Problem:    Filetype detection from file contents is in legacy script.
Solution:   Use a compiled function for filetype detection.
2022-02-13 20:32:02 +00:00
75e27d78f5 patch 8.2.4371: Vim9: can create a script variable from a legacy function
Problem:    Vim9: can create a script variable from a legacy function.
Solution:   Disallow creating a script variable from a function.
2022-02-13 13:56:29 +00:00
cf6ad8ea8c patch 8.2.4370: MS-Windows: libsodium.dll not included with the installer
Problem:    MS-Windows: libsodium.dll not included with the installer.
Solution:   Add the file to the installer if it exists. (Christian Brabandt,
            closes #9762)
2022-02-13 13:11:32 +00:00
f7fbeed0ac patch 8.2.4369: redundant #ifdef argument
Problem:    Redundant #ifdef argument.
Solution:   Remove unused MSWIN. (Ola Söder, closes #9758)
2022-02-13 12:24:21 +00:00
e131496ebf patch 8.2.4368: Amiga: a few compiler warnings
Problem:    Amiga: a few compiler warnings.
Solution:   Adjust #ifdefs. Add "UNUSED". (Ola Söder, closes #9756,
            closes #9757)
2022-02-13 12:13:38 +00:00
4525a57afb patch 8.2.4367: calling in_vim9script() multiple times
Problem:    Calling in_vim9script() multiple times.
Solution:   Call it once and keep the result.
2022-02-13 11:57:33 +00:00
4d03d87000 patch 8.2.4366: not enough tests for command line completion
Problem:    Not enough tests for command line completion.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #9760)
2022-02-13 11:45:09 +00:00
cdf0485969 patch 8.2.4365: sticky command modifiers are too sticky
Problem:    sticky command modifiers are too sticky.
Solution:   Do not apply command modifiers to a called function. (closes #9751)
2022-02-12 22:13:06 +00:00
4549166078 patch 8.2.4364: MS-Windows: still running out of memory for a very long line
Problem:    MS-Windows: still running out of memory for a very long line.
Solution:   Check for negative length.
2022-02-12 21:59:51 +00:00
8e38555ece patch 8.2.4363: MS-Windows: running out of memory for a very long line
Problem:    MS-Windows: running out of memory for a very long line.
Solution:   Use a 32 bit value for MAXCOL also when ints are 64 bits.
2022-02-12 21:16:21 +00:00
33f3c59854 patch 8.2.4362: :retab may allocate too much memory
Problem:    :retab may allocate too much memory.
Solution:   Bail out when allocating more than MAXCOL bytes.
2022-02-12 20:46:15 +00:00
62b191c387 patch 8.2.4361: Vim9: some tests fail
Problem:    Vim9: some tests fail.
Solution:   Fix the tests, mostly by removing "s:".
2022-02-12 20:34:50 +00:00
a749a42ed2 patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Problem:    Vim9: allowing use of "s:" leads to inconsistencies.
Solution:   Disallow using "s:" in Vim9 script at the script level.
2022-02-12 19:52:25 +00:00
6e28703a8e patch 8.2.4359: crash when repeatedly using :retab
Problem:    crash when repeatedly using :retab.
Solution:   Bail out when the line is getting too long.
2022-02-12 15:42:18 +00:00
90a57168a4 patch 8.2.4358: Vim9: line number of exception is not set
Problem:    Vim9: line number of exception is not set.
Solution:   Set the line number before throwing an exception. (closes #9755)
2022-02-12 14:23:17 +00:00
2a9b62dfa2 patch 8.2.4357: sticky command modifiers are too sticky
Problem:    sticky command modifiers are too sticky.
Solution:   Do not apply command modifiers to a sourced script. (closes #9751)
2022-02-12 13:30:17 +00:00
620d8edba0 patch 8.2.4356: command line completion functions are very long
Problem:    Command line completion functions are very long.
Solution:   Refactor into multiple functions. (Yegappan Lakshmanan,
            closes #9753)
2022-02-12 12:03:07 +00:00
0f7ff851cb patch 8.2.4355: unnecessary call to check_colorcolumn()
Problem:    Unnecessary call to check_colorcolumn().
Solution:   Remove the call. (Sean Dewar, closes #9748)
2022-02-12 11:51:25 +00:00
d68b2fc034 patch 8.2.4354: dynamic loading of libsodium not handled properly
Problem:    Dynamic loading of libsodium not handled properly.
Solution:   Fix has() and :version. Show an error message when loading fails.
            Fix memory leaks. (Ken Takata, closes #9754)
2022-02-12 11:18:37 +00:00
18f7593e57 patch 8.2.4353: CI does not use the latest Lua and Python
Problem:    CI does not use the latest Lua and Python.
Solution:   Use Lua 5.4.2 and Python 3.10. (closes #9744)
2022-02-12 10:53:07 +00:00
0c3cc2fec3 patch 8.2.4352: ReScript files are not recognized
Problem:    ReScript files are not recognized.
Solution:   Add the *.res and *.resi patterns. (Ananda Umamil, closes #9752)
2022-02-12 10:33:56 +00:00
41ee5b1913 patch 8.2.4351: no coverage is measured on MS-Windows CI
Problem:    No coverage is measured on MS-Windows CI.
Solution:   Enable coverage on MS-Windows. (Ozaki Kiichi, closes #9750)
2022-02-12 10:13:13 +00:00
29c70f612f patch 8.2.4350: FEAT_GUI_ENABLED defined but never used
Problem:    FEAT_GUI_ENABLED defined but never used.
Solution:   Remove the #define. (Ola Söder, closes #9732)
2022-02-11 21:13:35 +00:00
c9e3187d05 patch 8.2.4349: FileChangedShell test fails on MS-Windows
Problem:    FileChangedShell test fails on MS-Windows.
Solution:   Skip the test on MS-Windows.
2022-02-11 20:55:16 +00:00
5b1d6e98c6 patch 8.2.4348: "legacy exe cmd" does not do what one would expect
Problem:    "legacy exe cmd" does not do what one would expect.
Solution:   Apply the "legacy" and "vim9script" command modifiers to the
            argument of ":execute".
2022-02-11 20:33:48 +00:00
bd89d44063 patch 8.2.4347: in some build setups UNUSED is not defined
Problem:    In some build setups UNUSED is not defined.
Solution:   Change the logic of how UNUSED is defined. (Ola Söder,
            closes #9734)
2022-02-11 19:27:55 +00:00
481acb1141 patch 8.2.4346: a custom statusline may cause Esc to work like Enter
Problem:    A custom statusline may cause Esc to work like Enter on the
            command line when the popup menu is displayed.
Solution:   Save and restore KeyTyped. (closes #9749)
2022-02-11 18:51:45 +00:00
f6246f51e3 patch 8.2.4345: <amatch> is expanded like a file name for DirChangedPre
Problem:    <amatch> is expanded like a file name for DirChangedPre.
Solution:   Do not expand <amatch>. (closes #9742)  Also for the User event.
2022-02-11 16:30:12 +00:00
14f23122bf patch 8.2.4344: Amiga: header file included twice
Problem:    Amiga: header file included twice.
Solution:   Remove #include. (Ola Söder, closes #9733)
2022-02-11 16:11:14 +00:00
8196e94a8b patch 8.2.4343: when reloading not all properties are detected
Problem:    When reloading not all properties are detected.
Solution:   Add the "edit" value to v:fcs_choice. (Rob Pilling, closes #9579)
2022-02-11 15:12:10 +00:00
92f645bef7 Update runtime files. (closes #9741) 2022-02-11 13:29:40 +00:00
bece72785d patch 8.2.4342: CI will soon switch to other windows version
Problem:    CI will soon switch to other windows version.
Solution:   Use "windows-2019" instead of "windows-latest". (Ozaki Kiichi,
            closes #9740)
2022-02-11 11:09:40 +00:00
414acd342f patch 8.2.4341: command line not redrawn when finishing popup menu
Problem:    Command line not redrawn when finishing popup menu and the screen
            has scrolled up.
Solution:   Redraw the command line after updating the screen. (closes #9722)
2022-02-10 21:09:45 +00:00
949b35d83b patch 8.2.4340: Amiga: mch_can_exe() is not implemented
Problem:    Amiga: mch_can_exe() is not implemented.
Solution:   Implement mch_can_exe() for Amiga OS 4. (Ola Söder, closes #9731)
2022-02-10 20:21:04 +00:00
560dff49c0 patch 8.2.4339: CTRL-A does not work properly with the cmdline popup menu
Problem:    CTRL-A does not work properly with the cmdline popup menu.
Solution:   Fix issues with CTRL-A.  Add more tests for the cmdline popup
            menu.  Remove TermWait() before VeriryScreenDump().  Refactor the
            cmdline popup code. (Yegappan Lakshmanan, closes #9735)
2022-02-10 19:52:10 +00:00
74a0a5b26d patch 8.2.4338: an error from an expression mapping messes up the display
Problem:    An error from an expression mapping messes up the display.
Solution:   When the expression results in an empty string return K_IGNORE.
            In cmdline mode redraw the command line. (closes #9726)
2022-02-10 14:07:41 +00:00
9da17d7c57 Update runtime files 2022-02-09 21:50:44 +00:00
78a8404f8b patch 8.2.4337: part of condition is always true
Problem:    Part of condition is always true.
Solution:   Remove that part of the condition. (closes #9729)
2022-02-09 15:20:39 +00:00
769f5895eb patch 8.2.4336: using :filter for :scriptnames does not work
Problem:    Using :filter for :scriptnames does not work. (Ben Jackson)
Solution:   Call message_filtered(). (closes #9720)
2022-02-09 14:31:05 +00:00
28e8f73ae2 patch 8.2.4335: no autocommand event triggered before changing directory
Problem:    No autocommand event triggered before changing directory. (Ronnie
            Magatti)
Solution:   Add DirChangedPre. (closes #9721)
2022-02-09 12:58:20 +00:00
68cc2b8a37 patch 8.2.4334: command line popup menu not positioned correctly
Problem:    Command line popup menu not positioned correctly.
Solution:   Also use vim_strsize() on the existing text. (Naruhiko Nishino,
            closes #9727)
2022-02-09 11:55:47 +00:00
b6a138eb33 patch 8.2.4333: cstack not always passed to where it is needed
Problem:    cstack not always passed to where it is needed.
Solution:   Pass ctack through functions.
2022-02-08 21:17:22 +00:00
dce2441a60 patch 8.2.4332: Vim9: incomplete test for existing script variable in block
Problem:    Vim9: incomplete test for existing script variable in block.
Solution:   Add a couple more tests.  Fix uncovered problem.
2022-02-08 20:35:30 +00:00
801 changed files with 106528 additions and 53486 deletions

View File

@ -2,13 +2,20 @@ env:
CIRRUS_CLONE_DEPTH: 3
FEATURES: huge
freebsd_12_task:
freebsd_task:
name: FreeBSD
matrix:
- name: FreeBSD 13.1
freebsd_instance:
image_family: freebsd-13-1
- name: FreeBSD 12.3
freebsd_instance:
image_family: freebsd-12-3
only_if: $CIRRUS_TAG == ''
timeout_in: 20m
freebsd_instance:
image: freebsd-12-1-release-amd64
install_script:
pkg install -y gettext
- pkg update -f
- pkg install -y gettext
build_script:
- NPROC=$(getconf _NPROCESSORS_ONLN)
- ./configure --with-features=${FEATURES}

View File

@ -4,3 +4,9 @@ coverage:
project:
default:
threshold: 0.05%
# Files not run by tests
ignore:
- "src/dosinst.c"
- "src/dosinst.h"
- "src/uninstall.c"

22
.github/CODEOWNERS vendored
View File

@ -19,6 +19,25 @@ runtime/autoload/tar.vim @cecamp
runtime/autoload/vimball.vim @cecamp
runtime/autoload/xmlformat.vim @chrisbra
runtime/autoload/zip.vim @cecamp
runtime/colors/blue.vim @habamax @romainl @neutaaaaan
runtime/colors/darkblue.vim @habamax @romainl @neutaaaaan
runtime/colors/default.vim @habamax @romainl @neutaaaaan
runtime/colors/delek.vim @habamax @romainl @neutaaaaan
runtime/colors/desert.vim @habamax @romainl @neutaaaaan
runtime/colors/elflord.vim @habamax @romainl @neutaaaaan
runtime/colors/evening.vim @habamax @romainl @neutaaaaan
runtime/colors/industry.vim @habamax @romainl @neutaaaaan
runtime/colors/koehler.vim @habamax @romainl @neutaaaaan
runtime/colors/morning.vim @habamax @romainl @neutaaaaan
runtime/colors/murphy.vim @habamax @romainl @neutaaaaan
runtime/colors/pablo.vim @habamax @romainl @neutaaaaan
runtime/colors/peachpuff.vim @habamax @romainl @neutaaaaan
runtime/colors/ron.vim @habamax @romainl @neutaaaaan
runtime/colors/shine.vim @habamax @romainl @neutaaaaan
runtime/colors/slate.vim @habamax @romainl @neutaaaaan
runtime/colors/tools @habamax @romainl @neutaaaaan
runtime/colors/torte.vim @habamax @romainl @neutaaaaan
runtime/colors/zellner.vim @habamax @romainl @neutaaaaan
runtime/compiler/checkstyle.vim @dkearns
runtime/compiler/cm3.vim @dkearns
runtime/compiler/cucumber.vim @tpope
@ -126,6 +145,8 @@ runtime/ftplugin/tmux.vim @ericpruitt
runtime/ftplugin/toml.vim @averms
runtime/ftplugin/typescript.vim @dkearns
runtime/ftplugin/typescriptreact.vim @dkearns
runtime/ftplugin/wget.vim @dkearns
runtime/ftplugin/wget2.vim @dkearns
runtime/ftplugin/xml.vim @chrisbra
runtime/ftplugin/zsh.vim @chrisbra
runtime/indent/basic.vim @dkearns
@ -268,6 +289,7 @@ runtime/syntax/tmux.vim @ericpruitt
runtime/syntax/toml.vim @averms
runtime/syntax/vim.vim @cecamp
runtime/syntax/wget.vim @dkearns
runtime/syntax/wget2.vim @dkearns
runtime/syntax/xbl.vim @dkearns
runtime/syntax/xmath.vim @cecamp
runtime/syntax/xml.vim @chrisbra

View File

@ -21,6 +21,7 @@ jobs:
TEST: test
SRCDIR: ./src
LEAK_CFLAGS: -DEXITFREE
CFLAGS: -Wno-error=deprecated-declarations
LOG_DIR: ${{ github.workspace }}/logs
TERM: xterm
DISPLAY: ':99'
@ -88,17 +89,25 @@ jobs:
fi
sudo apt update && sudo apt install -y "${PKGS[@]}"
- name: Install clang-13
- name: Install gcc-11
if: matrix.compiler == 'gcc'
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt install -y gcc-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
sudo update-alternatives --set gcc /usr/bin/gcc-11
- name: Install clang-14
if: matrix.compiler == 'clang'
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
. /etc/lsb-release
sudo add-apt-repository -y "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-13 main"
sudo apt-get install -y clang-13 llvm-13
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100
sudo update-alternatives --set clang /usr/bin/clang-13
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-13 100
sudo update-alternatives --install /usr/bin/asan_symbolize asan_symbolize /usr/bin/asan_symbolize-13 100
sudo add-apt-repository -y "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-14 main"
sudo apt install -y clang-14 llvm-14
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 100
sudo update-alternatives --set clang /usr/bin/clang-14
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-14 100
sudo update-alternatives --install /usr/bin/asan_symbolize asan_symbolize /usr/bin/asan_symbolize-14 100
- name: Set up environment
run: |
@ -225,7 +234,7 @@ jobs:
do_test make ${SHADOWOPT} ${TEST}
# - name: Coveralls
# if: matrix.coverage && success() && github.event_name != 'pull_request'
# if: matrix.coverage && github.event_name != 'pull_request'
# env:
# COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
# COVERALLS_PARALLEL: true
@ -238,21 +247,21 @@ jobs:
# ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
- name: Generate gcov files
if: matrix.coverage && success()
if: matrix.coverage
run: |
cd "${SRCDIR}"
find . -type f -name '*.gcno' -exec gcov -pb {} + || true
- name: Codecov
if: matrix.coverage && success()
uses: codecov/codecov-action@v2
if: matrix.coverage
uses: codecov/codecov-action@v3.1.0
with:
flags: ${{ matrix.features }}-${{ matrix.compiler }}-${{ matrix.extra }}
flags: linux,${{ matrix.features }}-${{ matrix.compiler }}-${{ matrix.extra }}
- name: ASan logs
if: contains(matrix.extra, 'asan') && !cancelled()
run: |
for f in $(grep -lR '#[[:digit:]]* *0x[[:digit:]a-fA-F]*' "${LOG_DIR}"); do
for f in $(grep -lR '#[[:digit:]]* *0x[[:xdigit:]]*' "${LOG_DIR}"); do
asan_symbolize -l "$f"
false # in order to fail a job
done
@ -344,24 +353,25 @@ jobs:
make ${TEST}
windows:
runs-on: windows-latest
runs-on: windows-2019
env:
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
# Interfaces
# Lua
LUA_VER: 54
LUA_VER_DOT: '5.4'
LUA_RELEASE: 5.4.0
LUA_RELEASE: 5.4.2
LUA32_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win32_dllw6_lib.zip
LUA64_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win64_dllw6_lib.zip
LUA_DIR: D:\Lua
# do not want \L to end up in pathdef.c and compiler complaining about unknown escape sequences \l
LUA_DIR_SLASH: D:/Lua
# Python 2
PYTHON_VER: 27
PYTHON_VER_DOT: '2.7'
# Python 3
PYTHON3_VER: 38
PYTHON3_VER_DOT: '3.8'
PYTHON3_VER: 310
PYTHON3_VER_DOT: '3.10'
# Other dependencies
# winpty
WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip
@ -392,6 +402,10 @@ jobs:
msystem: MINGW32
cygreg: registry32
pyreg: "-32"
- toolchain: mingw
arch: x64
features: HUGE
coverage: yes
exclude:
- toolchain: msvc
arch: x64
@ -406,6 +420,7 @@ jobs:
shell: bash
run: |
git config --global core.autocrlf input
echo "VCVARSALL=$(vswhere -products \* -latest -property installationPath)\\VC\\Auxiliary\\Build\\vcvarsall.bat" >> $GITHUB_ENV
python_dir=$(cat "/proc/${{ matrix.cygreg }}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON_VER_DOT}/InstallPath/@")
python3_dir=$(cat "/proc/${{ matrix.cygreg }}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}${{ matrix.pyreg }}/InstallPath/@")
echo "PYTHON_DIR=$python_dir" >> $GITHUB_ENV
@ -463,8 +478,7 @@ jobs:
- name: Copy src directory to src2
shell: cmd
run: |
xcopy src src2\ /E > nul
run: xcopy src src2\ /E > nul
- name: Build (MSVC)
if: matrix.toolchain == 'msvc'
@ -498,10 +512,10 @@ jobs:
mingw32-make -f Make_ming.mak -j2 \
FEATURES=${{ matrix.features }} \
GUI=yes IME=yes ICONV=yes VIMDLL=yes \
DYNAMIC_LUA=yes LUA=${LUA_DIR} \
DYNAMIC_LUA=yes LUA=${LUA_DIR_SLASH} \
DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \
DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \
STATIC_STDCPLUS=yes
STATIC_STDCPLUS=yes COVERAGE=${{ matrix.coverage }}
else
mingw32-make -f Make_ming.mak -j2 \
FEATURES=${{ matrix.features }} \
@ -509,6 +523,14 @@ jobs:
STATIC_STDCPLUS=yes
fi
- name: Check version
shell: cmd
run: |
PATH %LUA_DIR%;C:\msys64\${{ matrix.msystem }}\bin;%PATH%;%PYTHON3_DIR%
src\vim --version || exit 1
src\vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
src\vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
#- name: Prepare Artifact
# shell: cmd
# run: |
@ -522,29 +544,34 @@ jobs:
# name: vim${{ matrix.bits }}-${{ matrix.toolchain }}
# path: ./artifacts
- name: Test
- name: Copy gcov data files to src2
if: matrix.coverage
shell: msys2 {0}
run: find src -name '*.gcno' | tar -c -T - | tar -x -C src2 --strip-components 1
- name: Test and show the result of testing gVim
shell: cmd
timeout-minutes: 20
run: |
PATH %LUA_DIR%;C:\msys64\${{ matrix.msystem }}\bin;%PATH%;%PYTHON3_DIR%
call "%VCVARSALL%" ${{ matrix.vcarch }}
cd src
echo.
echo ::group::%COL_GREEN%Vim version:%COL_RESET%
.\vim --version || exit 1
echo ::endgroup::
echo %COL_GREEN%Start testing vim in background.%COL_RESET%
start cmd /c "cd ..\src2\testdir & nmake -nologo -f Make_dos.mak VIMPROG=..\..\src\vim > nul & echo done>done.txt"
echo %COL_GREEN%Start testing Vim in background.%COL_RESET%
start cmd /c "cd src2\testdir & nmake -nologo -f Make_dos.mak VIMPROG=..\..\src\vim > nul & echo done>done.txt"
echo ::group::%COL_GREEN%Test gvim:%COL_RESET%
cd testdir
echo %COL_GREEN%Test gVim:%COL_RESET%
cd src\testdir
nmake -nologo -f Make_dos.mak VIMPROG=..\gvim || exit 1
cd ..
echo ::endgroup::
echo %COL_GREEN%Wait for vim tests to finish.%COL_RESET%
cd ..\src2\testdir
- name: Show the result of testing Vim
shell: cmd
timeout-minutes: 20
run: |
PATH %LUA_DIR%;C:\msys64\${{ matrix.msystem }}\bin;%PATH%;%PYTHON3_DIR%
call "%VCVARSALL%" ${{ matrix.vcarch }}
echo %COL_GREEN%Wait for Vim tests to finish.%COL_RESET%
cd src2\testdir
:: Wait about 10 minutes.
for /L %%i in (1,1,60) do (
if exist done.txt goto exitloop
@ -554,11 +581,35 @@ jobs:
set timeout=1
:exitloop
echo ::group::%COL_GREEN%Test results of vim:%COL_RESET%
echo %COL_GREEN%The result of testing Vim:%COL_RESET%
cd src2\testdir
if exist messages type messages
nmake -nologo -f Make_dos.mak report VIMPROG=..\..\src\vim || exit 1
if "%timeout%"=="1" (
echo %COL_RED%Timed out.%COL_RESET%
exit 1
)
echo ::endgroup::
- name: Generate gcov files
if: matrix.coverage
shell: msys2 {0}
run: |
cd src
find . -type f -name '*.gcno' -exec gcov -pb {} + || true
cd ../src2
find . -type f -name '*.gcno' -exec gcov -pb {} + || true
- name: Codecov (gVim)
if: matrix.coverage
uses: codecov/codecov-action@v3.1.0
with:
directory: src
flags: windows,${{ matrix.toolchain }}-${{ matrix.arch }}-${{ matrix.features }}-gui
- name: Codecov (Vim)
if: matrix.coverage
uses: codecov/codecov-action@v3.1.0
with:
directory: src2
flags: windows,${{ matrix.toolchain }}-${{ matrix.arch }}-${{ matrix.features }}

14
.gitignore vendored
View File

@ -8,7 +8,6 @@ src/auto/gui_gtk_gresources.h
src/auto/os_haiku.rdef
src/objects/.dirstamp
src/objects
src/tags
src/types.vim
# We do need src/auto/configure.
@ -62,6 +61,11 @@ src/xxd/xxd.dSYM
*.pyc
*.log
src/po/vim.pot
src/tags
/tags
/GPATH
/GTAGS
/GRTAGS
# Generated by "make test"
src/po/*.ck
@ -86,7 +90,6 @@ src/message_test
src/kword_test
# Generated by "make install"
runtime/doc/tags
runtime/doc/doctags
# Generated by "make shadow". The directory names could be anything but we
@ -96,5 +99,10 @@ src/shadow-*
src/runtime
src/pixmaps
# other possible files build by tools
# other files possibly created by tools
src/cscope.out
# Linter/language server files
/.cache/clangd/
/.ccls-cache/
/compile_commands.json

View File

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

View File

@ -347,6 +347,9 @@ Section "$(str_section_exe)" id_section_exe
File /oname=gvim.exe ${VIMSRC}\gvim_ole.exe
!if /FileExists "${VIMSRC}\vim${BIT}.dll"
File ${VIMSRC}\vim${BIT}.dll
!endif
!if /FileExists "${VIMRT}\libsodium.dll"
File ${VIMRT}\libsodium.dll
!endif
File /oname=install.exe ${VIMSRC}\installw32.exe
File /oname=uninstall.exe ${VIMSRC}\uninstallw32.exe
@ -400,6 +403,12 @@ Section "$(str_section_exe)" id_section_exe
SetOutPath $0\autoload\xml
File ${VIMRT}\autoload\xml\*.*
SetOutPath $0\import\dist
File ${VIMRT}\import\dist\*.*
SetOutPath $0\bitmaps
File ${VIMSRC}\vim.ico
SetOutPath $0\syntax
File ${VIMRT}\syntax\*.*
@ -1038,6 +1047,7 @@ Section "un.$(str_unsection_exe)" id_unsection_exe
RMDir /r $0\compiler
RMDir /r $0\doc
RMDir /r $0\ftplugin
RMDir /r $0\import
RMDir /r $0\indent
RMDir /r $0\macros
RMDir /r $0\pack

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@ vim9script
# Vim functions for file type detection
#
# Maintainer: Bram Moolenaar <Bram@vim.org>
# Last Change: 2022 Feb 05
# Last Change: 2022 Apr 13
# These functions are moved here from runtime/filetype.vim to make startup
# faster.
@ -83,7 +83,7 @@ export def FTbas()
setf freebasic
elseif match(lines, qb64_preproc) > -1
setf qb64
elseif match(lines, s:ft_visual_basic_content) > -1
elseif match(lines, ft_visual_basic_content) > -1
setf vb
else
setf basic
@ -107,6 +107,25 @@ export def BindzoneCheck(default = '')
endif
enddef
# Returns true if file content looks like RAPID
def IsRapid(sChkExt: string = ""): bool
if sChkExt == "cfg"
return getline(1) =~? '\v^%(EIO|MMC|MOC|PROC|SIO|SYS):CFG'
endif
# called from FTmod, FTprg or FTsys
return getline(nextnonblank(1)) =~? '\v^\s*%(\%{3}|module\s+\k+\s*%(\(|$))'
enddef
export def FTcfg()
if exists("g:filetype_cfg")
exe "setf " .. g:filetype_cfg
elseif IsRapid("cfg")
setf rapid
else
setf cfg
endif
enddef
export def FTlpc()
if exists("g:lpc_syntax_for_c")
var lnum = 1
@ -168,7 +187,7 @@ enddef
export def FTent()
# This function checks for valid cl syntax in the first five lines.
# Look for either an opening comment, '#', or a block start, '{".
# Look for either an opening comment, '#', or a block start, '{'.
# If not found, assume SGML.
var lnum = 1
while lnum < 6
@ -182,7 +201,7 @@ export def FTent()
break
endif
lnum += 1
endw
endwhile
setf dtd
enddef
@ -206,6 +225,10 @@ export def EuphoriaCheck()
enddef
export def DtraceCheck()
if did_filetype()
# Filetype was already detected
return
endif
var lines = getline(1, min([line("$"), 100]))
if match(lines, '^module\>\|^import\>') > -1
# D files often start with a module and/or import statement.
@ -241,7 +264,7 @@ export def FTfrm()
var lines = getline(1, min([line("$"), 5]))
if match(lines, s:ft_visual_basic_content) > -1
if match(lines, ft_visual_basic_content) > -1
setf vb
else
setf form
@ -406,6 +429,36 @@ export def FTmm()
setf nroff
enddef
# Returns true if file content looks like LambdaProlog
def IsLProlog(): bool
# skip apparent comments and blank lines, what looks like
# LambdaProlog comment may be RAPID header
var l: number = nextnonblank(1)
while l > 0 && l < line('$') && getline(l) =~ '^\s*%' # LambdaProlog comment
l = nextnonblank(l + 1)
endwhile
# this pattern must not catch a go.mod file
return getline(l) =~ '\<module\s\+\w\+\s*\.\s*\(%\|$\)'
enddef
# Determine if *.mod is ABB RAPID, LambdaProlog, Modula-2, Modsim III or go.mod
export def FTmod()
if exists("g:filetype_mod")
exe "setf " .. g:filetype_mod
elseif IsLProlog()
setf lprolog
elseif getline(nextnonblank(1)) =~ '\%(\<MODULE\s\+\w\+\s*;\|^\s*(\*\)'
setf modula2
elseif IsRapid()
setf rapid
elseif expand("<afile>") =~ '\<go.mod$'
setf gomod
else
# Nothing recognized, assume modsim3
setf modsim3
endif
enddef
export def FTpl()
if exists("g:filetype_pl")
exe "setf " .. g:filetype_pl
@ -434,7 +487,7 @@ export def FTinc()
setf php
# Pascal supports // comments but they're vary rarely used for file
# headers so assume POV-Ray
elseif lines =~ '^\s*\%({\|(\*\)' || lines =~? s:ft_pascal_keywords
elseif lines =~ '^\s*\%({\|(\*\)' || lines =~? ft_pascal_keywords
setf pascal
else
FTasmsyntax()
@ -478,7 +531,7 @@ export def FTprogress_asm()
break
endif
lnum += 1
endw
endwhile
setf progress
enddef
@ -496,7 +549,7 @@ export def FTprogress_pascal()
var lnum = 1
while lnum <= 10 && lnum < line('$')
var line = getline(lnum)
if line =~ s:ft_pascal_comments || line =~? s:ft_pascal_keywords
if line =~ ft_pascal_comments || line =~? ft_pascal_keywords
setf pascal
return
elseif line !~ '^\s*$' || line =~ '^/\*'
@ -505,7 +558,7 @@ export def FTprogress_pascal()
break
endif
lnum += 1
endw
endwhile
setf progress
enddef
@ -514,7 +567,7 @@ export def FTpp()
exe "setf " .. g:filetype_pp
else
var line = getline(nextnonblank(1))
if line =~ s:ft_pascal_comments || line =~? s:ft_pascal_keywords
if line =~ ft_pascal_comments || line =~? ft_pascal_keywords
setf pascal
else
setf puppet
@ -522,6 +575,18 @@ export def FTpp()
endif
enddef
# Determine if *.prg is ABB RAPID. Can also be Clipper, FoxPro or eviews
export def FTprg()
if exists("g:filetype_prg")
exe "setf " .. g:filetype_prg
elseif IsRapid()
setf rapid
else
# Nothing recognized, assume Clipper
setf clipper
endif
enddef
export def FTr()
var max = line("$") > 50 ? 50 : line("$")
@ -568,7 +633,7 @@ export def McSetf()
return
endif
endfor
setf m4 " Default: Sendmail .mc file
setf m4 # Default: Sendmail .mc file
enddef
# Called from filetype.vim and scripts.vim.
@ -685,8 +750,8 @@ export def FTRules()
endtry
var dir = expand('<amatch>:p:h')
for line in config_lines
if line =~ s:ft_rules_udev_rules_pattern
var udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1', "")
if line =~ ft_rules_udev_rules_pattern
var udev_rules = substitute(line, ft_rules_udev_rules_pattern, '\1', "")
if dir == udev_rules
setf udevrules
endif
@ -704,6 +769,28 @@ export def SQL()
endif
enddef
# This function checks the first 25 lines of file extension "sc" to resolve
# detection between scala and SuperCollider
export def FTsc()
for lnum in range(1, min([line("$"), 25]))
if getline(lnum) =~# '[A-Za-z0-9]*\s:\s[A-Za-z0-9]\|var\s<\|classvar\s<\|\^this.*\||\w*|\|+\s\w*\s{\|\*ar\s'
setf supercollider
return
endif
endfor
setf scala
enddef
# This function checks the first line of file extension "scd" to resolve
# detection between scdoc and SuperCollider
export def FTscd()
if getline(1) =~# '\%^\S\+(\d[0-9A-Za-z]*)\%(\s\+\"[^"]*\"\%(\s\+\"[^"]*\"\)\=\)\=$'
setf scdoc
else
setf supercollider
endif
enddef
# If the file has an extension of 't' and is in a directory 't' or 'xt' then
# it is almost certainly a Perl test file.
# If the first line starts with '#' and contains 'perl' it's probably a Perl
@ -731,6 +818,16 @@ export def FTperl(): number
return 0
enddef
export def FTsys()
if exists("g:filetype_sys")
exe "setf " .. g:filetype_sys
elseif IsRapid()
setf rapid
else
setf bat
endif
enddef
# Choose context, plaintex, or tex (LaTeX) based on these rules:
# 1. Check the first line of the file for "%&<format>".
# 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords.
@ -892,6 +989,26 @@ export def FTtf()
setf tf
enddef
var ft_krl_header = '\&\w+'
# Determine if a *.src file is Kuka Robot Language
export def FTsrc()
var ft_krl_def_or_deffct = '%(global\s+)?def%(fct)?>'
if exists("g:filetype_src")
exe "setf " .. g:filetype_src
elseif getline(nextnonblank(1)) =~? '\v^\s*%(' .. ft_krl_header .. '|' .. ft_krl_def_or_deffct .. ')'
setf krl
endif
enddef
# Determine if a *.dat file is Kuka Robot Language
export def FTdat()
var ft_krl_defdat = 'defdat>'
if exists("g:filetype_dat")
exe "setf " .. g:filetype_dat
elseif getline(nextnonblank(1)) =~? '\v^\s*%(' .. ft_krl_header .. '|' .. ft_krl_defdat .. ')'
setf krl
endif
enddef
# Uncomment this line to check for compilation errors early
# defcompile

426
runtime/autoload/dist/script.vim vendored Normal file
View File

@ -0,0 +1,426 @@
vim9script
# Vim function for detecting a filetype from the file contents.
# Invoked from "scripts.vim" in 'runtimepath'
#
# Maintainer: Bram Moolenaar <Bram@vim.org>
# Last Change: 2022 Feb 13
export def DetectFiletype()
var line1 = getline(1)
if line1[0] == '#' && line1[1] == '!'
# File that starts with "#!".
DetectFromHashBang(line1)
else
# File does not start with "#!".
DetectFromText(line1)
endif
enddef
# Called for a script that has "#!" in the first line.
def DetectFromHashBang(firstline: string)
var line1 = firstline
# Check for a line like "#!/usr/bin/env {options} bash". Turn it into
# "#!/usr/bin/bash" to make matching easier.
# Recognize only a few {options} that are commonly used.
if line1 =~ '^#!\s*\S*\<env\s'
line1 = substitute(line1, '\S\+=\S\+', '', 'g')
line1 = substitute(line1, '\(-[iS]\|--ignore-environment\|--split-string\)', '', '')
line1 = substitute(line1, '\<env\s\+', '', '')
endif
# Get the program name.
# Only accept spaces in PC style paths: "#!c:/program files/perl [args]".
# If the word env is used, use the first word after the space:
# "#!/usr/bin/env perl [path/args]"
# If there is no path use the first word: "#!perl [path/args]".
# Otherwise get the last word after a slash: "#!/usr/bin/perl [path/args]".
var name: string
if line1 =~ '^#!\s*\a:[/\\]'
name = substitute(line1, '^#!.*[/\\]\(\i\+\).*', '\1', '')
elseif line1 =~ '^#!.*\<env\>'
name = substitute(line1, '^#!.*\<env\>\s\+\(\i\+\).*', '\1', '')
elseif line1 =~ '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
name = substitute(line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
else
name = substitute(line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '')
endif
# tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
# third line. Suggested by Steven Atkinson.
if getline(3) =~ '^exec wish'
name = 'wish'
endif
# Bourne-like shell scripts: bash bash2 ksh ksh93 sh
if name =~ '^\(bash\d*\|\|ksh\d*\|sh\)\>'
call dist#ft#SetFileTypeSH(line1)
# csh scripts
elseif name =~ '^csh\>'
if exists("g:filetype_csh")
call dist#ft#SetFileTypeShell(g:filetype_csh)
else
call dist#ft#SetFileTypeShell("csh")
endif
# tcsh scripts
elseif name =~ '^tcsh\>'
call dist#ft#SetFileTypeShell("tcsh")
# Z shell scripts
elseif name =~ '^zsh\>'
set ft=zsh
# TCL scripts
elseif name =~ '^\(tclsh\|wish\|expectk\|itclsh\|itkwish\)\>'
set ft=tcl
# Expect scripts
elseif name =~ '^expect\>'
set ft=expect
# Gnuplot scripts
elseif name =~ '^gnuplot\>'
set ft=gnuplot
# Makefiles
elseif name =~ 'make\>'
set ft=make
# Pike
elseif name =~ '^pike\%(\>\|[0-9]\)'
set ft=pike
# Lua
elseif name =~ 'lua'
set ft=lua
# Perl
elseif name =~ 'perl'
set ft=perl
# PHP
elseif name =~ 'php'
set ft=php
# Python
elseif name =~ 'python'
set ft=python
# Groovy
elseif name =~ '^groovy\>'
set ft=groovy
# Raku
elseif name =~ 'raku'
set ft=raku
# Ruby
elseif name =~ 'ruby'
set ft=ruby
# JavaScript
elseif name =~ 'node\(js\)\=\>\|js\>' || name =~ 'rhino\>'
set ft=javascript
# BC calculator
elseif name =~ '^bc\>'
set ft=bc
# sed
elseif name =~ 'sed\>'
set ft=sed
# OCaml-scripts
elseif name =~ 'ocaml'
set ft=ocaml
# Awk scripts; also finds "gawk"
elseif name =~ 'awk\>'
set ft=awk
# Website MetaLanguage
elseif name =~ 'wml'
set ft=wml
# Scheme scripts
elseif name =~ 'scheme'
set ft=scheme
# CFEngine scripts
elseif name =~ 'cfengine'
set ft=cfengine
# Erlang scripts
elseif name =~ 'escript'
set ft=erlang
# Haskell
elseif name =~ 'haskell'
set ft=haskell
# Scala
elseif name =~ 'scala\>'
set ft=scala
# Clojure
elseif name =~ 'clojure'
set ft=clojure
# Free Pascal
elseif name =~ 'instantfpc\>'
set ft=pascal
# Fennel
elseif name =~ 'fennel\>'
set ft=fennel
# MikroTik RouterOS script
elseif name =~ 'rsc\>'
set ft=routeros
# Fish shell
elseif name =~ 'fish\>'
set ft=fish
# Gforth
elseif name =~ 'gforth\>'
set ft=forth
endif
enddef
# Called for a script that does not have "#!" in the first line.
def DetectFromText(line1: string)
var line2 = getline(2)
var line3 = getline(3)
var line4 = getline(4)
var line5 = getline(5)
# Bourne-like shell scripts: sh ksh bash bash2
if line1 =~ '^:$'
call dist#ft#SetFileTypeSH(line1)
# Z shell scripts
elseif line1 =~ '^#compdef\>'
|| line1 =~ '^#autoload\>'
|| "\n" .. line1 .. "\n" .. line2 .. "\n" .. line3 ..
"\n" .. line4 .. "\n" .. line5
=~ '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
set ft=zsh
# ELM Mail files
elseif line1 =~ '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
set ft=mail
# Mason
elseif line1 =~ '^<[%&].*>'
set ft=mason
# Vim scripts (must have '" vim' as the first line to trigger this)
elseif line1 =~ '^" *[vV]im$'
set ft=vim
# libcxx and libstdc++ standard library headers like "iostream" do not have
# an extension, recognize the Emacs file mode.
elseif line1 =~? '-\*-.*C++.*-\*-'
set ft=cpp
# MOO
elseif line1 =~ '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
set ft=moo
# Diff file:
# - "diff" in first line (context diff)
# - "Only in " in first line
# - "--- " in first line and "+++ " in second line (unified diff).
# - "*** " in first line and "--- " in second line (context diff).
# - "# It was generated by makepatch " in the second line (makepatch diff).
# - "Index: <filename>" in the first line (CVS file)
# - "=== ", line of "=", "---", "+++ " (SVK diff)
# - "=== ", "--- ", "+++ " (bzr diff, common case)
# - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
# - "# HG changeset patch" in first line (Mercurial export format)
elseif line1 =~ '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
|| (line1 =~ '^--- ' && line2 =~ '^+++ ')
|| (line1 =~ '^\* looking for ' && line2 =~ '^\* comparing to ')
|| (line1 =~ '^\*\*\* ' && line2 =~ '^--- ')
|| (line1 =~ '^=== ' && ((line2 =~ '^=\{66\}' && line3 =~ '^--- ' && line4 =~ '^+++') || (line2 =~ '^--- ' && line3 =~ '^+++ ')))
|| (line1 =~ '^=== \(removed\|added\|renamed\|modified\)')
set ft=diff
# PostScript Files (must have %!PS as the first line, like a2ps output)
elseif line1 =~ '^%![ \t]*PS'
set ft=postscr
# M4 scripts: Guess there is a line that starts with "dnl".
elseif line1 =~ '^\s*dnl\>'
|| line2 =~ '^\s*dnl\>'
|| line3 =~ '^\s*dnl\>'
|| line4 =~ '^\s*dnl\>'
|| line5 =~ '^\s*dnl\>'
set ft=m4
# AmigaDos scripts
elseif $TERM == "amiga" && (line1 =~ "^;" || line1 =~? '^\.bra')
set ft=amiga
# SiCAD scripts (must have procn or procd as the first line to trigger this)
elseif line1 =~? '^ *proc[nd] *$'
set ft=sicad
# Purify log files start with "**** Purify"
elseif line1 =~ '^\*\*\*\* Purify'
set ft=purifylog
# XML
elseif line1 =~ '<?\s*xml.*?>'
set ft=xml
# XHTML (e.g.: PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN")
elseif line1 =~ '\<DTD\s\+XHTML\s'
set ft=xhtml
# HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
# Avoid "doctype html", used by slim.
elseif line1 =~? '<!DOCTYPE\s\+html\>'
set ft=html
# PDF
elseif line1 =~ '^%PDF-'
set ft=pdf
# XXD output
elseif line1 =~ '^\x\{7}: \x\{2} \=\x\{2} \=\x\{2} \=\x\{2} '
set ft=xxd
# RCS/CVS log output
elseif line1 =~ '^RCS file:' || line2 =~ '^RCS file:'
set ft=rcslog
# CVS commit
elseif line2 =~ '^CVS:' || getline("$") =~ '^CVS: '
set ft=cvs
# Prescribe
elseif line1 =~ '^!R!'
set ft=prescribe
# Send-pr
elseif line1 =~ '^SEND-PR:'
set ft=sendpr
# SNNS files
elseif line1 =~ '^SNNS network definition file'
set ft=snnsnet
elseif line1 =~ '^SNNS pattern definition file'
set ft=snnspat
elseif line1 =~ '^SNNS result file'
set ft=snnsres
# Virata
elseif line1 =~ '^%.\{-}[Vv]irata'
|| line2 =~ '^%.\{-}[Vv]irata'
|| line3 =~ '^%.\{-}[Vv]irata'
|| line4 =~ '^%.\{-}[Vv]irata'
|| line5 =~ '^%.\{-}[Vv]irata'
set ft=virata
# Strace
elseif line1 =~ '[0-9:.]* *execve(' || line1 =~ '^__libc_start_main'
set ft=strace
# VSE JCL
elseif line1 =~ '^\* $$ JOB\>' || line1 =~ '^// *JOB\>'
set ft=vsejcl
# TAK and SINDA
elseif line4 =~ 'K & K Associates' || line2 =~ 'TAK 2000'
set ft=takout
elseif line3 =~ 'S Y S T E M S I M P R O V E D '
set ft=sindaout
elseif getline(6) =~ 'Run Date: '
set ft=takcmp
elseif getline(9) =~ 'Node File 1'
set ft=sindacmp
# DNS zone files
elseif line1 .. line2 .. line3 .. line4 =~ '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
set ft=bindzone
# BAAN
elseif line1 =~ '|\*\{1,80}' && line2 =~ 'VRC '
|| line2 =~ '|\*\{1,80}' && line3 =~ 'VRC '
set ft=baan
# Valgrind
elseif line1 =~ '^==\d\+== valgrind' || line3 =~ '^==\d\+== Using valgrind'
set ft=valgrind
# Go docs
elseif line1 =~ '^PACKAGE DOCUMENTATION$'
set ft=godoc
# Renderman Interface Bytestream
elseif line1 =~ '^##RenderMan'
set ft=rib
# Scheme scripts
elseif line1 =~ 'exec\s\+\S*scheme' || line2 =~ 'exec\s\+\S*scheme'
set ft=scheme
# Git output
elseif line1 =~ '^\(commit\|tree\|object\) \x\{40,\}\>\|^tag \S\+$'
set ft=git
# Gprof (gnu profiler)
elseif line1 == 'Flat profile:'
&& line2 == ''
&& line3 =~ '^Each sample counts as .* seconds.$'
set ft=gprof
# Erlang terms
# (See also: http://www.gnu.org/software/emacs/manual/html_node/emacs/Choosing-Modes.html#Choosing-Modes)
elseif line1 =~? '-\*-.*erlang.*-\*-'
set ft=erlang
# YAML
elseif line1 =~ '^%YAML'
set ft=yaml
# MikroTik RouterOS script
elseif line1 =~ '^#.*by RouterOS.*$'
set ft=routeros
# Sed scripts
# #ncomment is allowed but most likely a false positive so require a space
# before any trailing comment text
elseif line1 =~ '^#n\%($\|\s\)'
set ft=sed
else
var lnum = 1
while getline(lnum) =~ "^? " && lnum < line("$")
lnum += 1
endwhile
if getline(lnum) =~ '^Index:\s\+\f\+$'
# CVS diff
set ft=diff
# locale input files: Formal Definitions of Cultural Conventions
# filename must be like en_US, fr_FR@euro or en_US.UTF-8
elseif expand("%") =~ '\a\a_\a\a\($\|[.@]\)\|i18n$\|POSIX$\|translit_'
lnum = 1
while lnum < 100 && lnum < line("$")
if getline(lnum) =~ '^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
setf fdcc
break
endif
lnum += 1
endwhile
endif
endif
enddef

View File

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

BIN
runtime/bitmaps/vim.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1,7 +1,7 @@
README.txt for color scheme files
These files are used for the ":colorscheme" command. They appear in the
Edit/Color Scheme menu in the GUI.
"Edit/Color Scheme" menu in the GUI.
Hints for writing a color scheme file:
@ -9,6 +9,7 @@ Hints for writing a color scheme file:
There are two basic ways to define a color scheme:
1. Define a new Normal color and set the 'background' option accordingly.
set background={light or dark}
highlight clear
highlight Normal ...
@ -16,6 +17,7 @@ There are two basic ways to define a color scheme:
2. Use the default Normal color and automatically adjust to the value of
'background'.
highlight clear Normal
set background&
highlight clear
@ -28,7 +30,7 @@ There are two basic ways to define a color scheme:
endif
You can use ":highlight clear" to reset everything to the defaults, and then
change the groups that you want differently. This also will work for groups
change the groups that you want differently. This will also work for groups
that are added in later versions of Vim.
Note that ":highlight clear" uses the value of 'background', thus set it
before this command.
@ -38,7 +40,9 @@ attributes.
In case you want to set 'background' depending on the colorscheme selected,
this autocmd might be useful:
autocmd SourcePre */colors/blue_sky.vim set background=dark
Replace "blue_sky" with the name of the colorscheme.
In case you want to tweak a colorscheme after it was loaded, check out the
@ -46,6 +50,7 @@ ColorScheme autocommand event.
To clean up just before loading another colorscheme, use the ColorSchemePre
autocommand event. For example:
let g:term_ansi_colors = ...
augroup MyColorscheme
au!
@ -54,20 +59,22 @@ autocommand event. For example:
augroup END
To customize a colorscheme use another name, e.g. "~/.vim/colors/mine.vim",
and use `:runtime` to load the original colorscheme:
and use ":runtime" to load the original colorscheme:
" load the "evening" colorscheme
runtime colors/evening.vim
" change the color of statements
hi Statement ctermfg=Blue guifg=Blue
To see which highlight group is used where, find the help for
"highlight-groups" and "group-name".
To see which highlight group is used where, see ":help highlight-groups" and
":help group-name".
You can use ":highlight" to find out the current colors. Exception: the
ctermfg and ctermbg values are numbers, which are only valid for the current
terminal. Use the color names instead. See ":help cterm-colors".
terminal. Use the color names instead for better portability. See
":help cterm-colors".
The default color settings can be found in the source file src/highlight.c.
The default color settings can be found in the source file src/syntax.c.
Search for "highlight_init".
If you think you have a color scheme that is good enough to be used by others,
@ -75,17 +82,57 @@ please check the following items:
- Source the $VIMRUNTIME/colors/tools/check_colors.vim script to check for
common mistakes.
- Does it work in a color terminal as well as in the GUI?
- Does it work in a color terminal as well as in the GUI? Is it consistent?
- Is "g:colors_name" set to a meaningful value? In case of doubt you can do
it this way:
let g:colors_name = expand('<sfile>:t:r')
- Is 'background' either used or appropriately set to "light" or "dark"?
- Try setting 'hlsearch' and searching for a pattern, is the match easy to
spot?
- Split a window with ":split" and ":vsplit". Are the status lines and
vertical separators clearly visible?
- In the GUI, is it easy to find the cursor, also in a file with lots of
syntax highlighting?
- In general, test your color scheme against as many filetypes, Vim features,
environments, etc. as possible.
- Do not use hard coded escape sequences, these will not work in other
terminals. Always use color names or #RRGGBB for the GUI. See v:colornames
for details on how to define your own color names.
terminals. Always use #RRGGBB for the GUI.
- When targetting 8-16 colors terminals, don't count on "darkblue" to be blue
and dark, or on "2" to be even vaguely reddish. Names are more portable
than numbers, though.
- When targetting 256 colors terminals, prefer colors 16-255 to colors 0-15
for the same reason.
- Typographic attributes (bold, italic, underline, reverse, etc.) are not
universally supported. Don't count on any of them.
- Is "g:terminal_ansi_colors" set to a list of 16 #RRGGBB values?
- Try to keep your color scheme simple by avoiding unnecessary logic and
refraining from adding options. The best color scheme is one that only
requires:
colorscheme foobar
The color schemes distributed with Vim are built with lifepillar/colortemplate
(https://github.com/lifepillar/vim-colortemplate). It is therefore highly
recommended.
If you would like your color scheme to be distributed with Vim, make sure
that:
- it satisfies the guidelines above,
- it was made with colortemplate,
and join us at vim/colorschemes: (https://github.com/vim/colorschemes).

View File

@ -1,55 +1,447 @@
" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Steven Vertigan <steven@vertigan.wattle.id.au>
" Last Change: 2006 Sep 23
" Revision #5: Switch main text from white to yellow for easier contrast,
" fixed some problems with terminal backgrounds.
" Name: blue
" Description: Colorscheme with a blue background
" Author: Original author Steven Vertigan <steven@vertigan.wattle.id.au>
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:33 2022
" Generated by Colortemplate v2.2.0
set background=dark
hi clear
if exists("syntax_on")
syntax reset
let g:colors_name = 'blue'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#870000', '#006400', '#878700', '#000087', '#870087', '#008787', '#bcbcbc', '#878787', '#d70000', '#00ff00', '#ffdf00', '#5fafff', '#d787d7', '#5fffff', '#ffffff']
endif
let g:colors_name = "blue"
hi Normal guifg=yellow guibg=darkBlue ctermfg=yellow ctermbg=darkBlue
hi NonText guifg=magenta ctermfg=lightMagenta
hi comment guifg=gray ctermfg=gray ctermbg=darkBlue gui=bold
hi constant guifg=cyan ctermfg=cyan
hi identifier guifg=gray ctermfg=red
hi statement guifg=white ctermfg=white ctermbg=darkBlue gui=none
hi preproc guifg=green ctermfg=green
hi type guifg=orange ctermfg=lightRed ctermbg=darkBlue
hi special guifg=magenta ctermfg=lightMagenta ctermbg=darkBlue
hi Underlined guifg=cyan ctermfg=cyan gui=underline cterm=underline
hi label guifg=yellow ctermfg=yellow
hi operator guifg=orange gui=bold ctermfg=lightRed ctermbg=darkBlue
hi Normal guifg=#ffdf00 guibg=#000087 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#005faf gui=NONE cterm=NONE
hi Pmenu guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
hi PmenuSel guifg=#008787 guibg=#ffffff gui=NONE cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#d787d7 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#870087 gui=NONE cterm=NONE
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#005faf gui=NONE cterm=NONE
hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffdf00 guibg=#005faf gui=bold cterm=NONE
hi EndOfBuffer guifg=#ffdf00 guibg=#000087 gui=NONE cterm=NONE
hi Error guifg=#ff7f50 guibg=#000087 gui=reverse cterm=reverse
hi ErrorMsg guifg=#ffffff guibg=#d70000 gui=NONE cterm=NONE
hi FoldColumn guifg=#008787 guibg=NONE gui=NONE cterm=NONE
hi Folded guifg=#000087 guibg=#878700 gui=NONE cterm=NONE
hi IncSearch guifg=#d787d7 guibg=#000000 gui=standout cterm=reverse
hi LineNr guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
hi MatchParen guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi ModeMsg guifg=#000087 guibg=#00ff00 gui=NONE cterm=NONE
hi MoreMsg guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
hi NonText guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
hi Question guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
hi Search guifg=#ffdf00 guibg=#000000 gui=reverse cterm=reverse
hi SignColumn guifg=#008787 guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
hi SpellBad guifg=#d70000 guibg=NONE guisp=#d70000 gui=undercurl cterm=underline
hi SpellCap guifg=#00ff00 guibg=NONE guisp=#00ff00 gui=undercurl cterm=underline
hi SpellLocal guifg=#ffffff guibg=NONE guisp=#ffffff gui=undercurl cterm=underline
hi SpellRare guifg=#d787d7 guibg=NONE guisp=#d787d7 gui=undercurl cterm=underline
hi StatusLine guifg=#000087 guibg=#5fffff gui=NONE cterm=NONE
hi StatusLineNC guifg=#000087 guibg=#008787 gui=NONE cterm=NONE
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLine StatusLineNC
hi! link TabLineFill StatusLineNC
hi! link TabLineSel StatusLine
hi ToolbarButton guifg=#ffffff guibg=#005faf gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit guifg=#008787 guibg=NONE gui=NONE cterm=NONE
hi Visual guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
hi VisualNOS guifg=#008787 guibg=#ffffff gui=NONE cterm=NONE
hi WarningMsg guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#000087 guibg=#ffdf00 gui=NONE cterm=NONE
hi debugBreakpoint guifg=#00ff00 guibg=#000087 gui=reverse cterm=reverse
hi debugPC guifg=#5fffff guibg=#000087 gui=reverse cterm=reverse
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
hi! link diffIdentical WarningMsg
hi! link diffDiffer WarningMsg
hi! link diffCommon WarningMsg
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Directory guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
hi Title guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
hi Comment guifg=#878787 guibg=NONE gui=bold cterm=NONE
hi Constant guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=#878787 guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type guifg=#ffa500 guibg=NONE gui=bold cterm=NONE
hi Underlined guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
hi Label guifg=#ffdf00 guibg=NONE gui=NONE cterm=NONE
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Type
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link Terminal Normal
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
hi ErrorMsg guifg=orange guibg=darkBlue ctermfg=lightRed
hi WarningMsg guifg=cyan guibg=darkBlue ctermfg=cyan gui=bold
hi ModeMsg guifg=yellow gui=NONE ctermfg=yellow
hi MoreMsg guifg=yellow gui=NONE ctermfg=yellow
hi Error guifg=red guibg=darkBlue gui=underline ctermfg=red
if s:t_Co >= 256
hi Normal ctermfg=220 ctermbg=18 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=25 cterm=NONE
hi Pmenu ctermfg=231 ctermbg=30 cterm=NONE
hi PmenuSel ctermfg=30 ctermbg=231 cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=176 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=90 cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=25 cterm=NONE
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi CursorLineNr ctermfg=220 ctermbg=25 cterm=NONE
hi EndOfBuffer ctermfg=220 ctermbg=18 cterm=NONE
hi Error ctermfg=209 ctermbg=18 cterm=reverse
hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
hi FoldColumn ctermfg=30 ctermbg=NONE cterm=NONE
hi Folded ctermfg=18 ctermbg=100 cterm=NONE
hi IncSearch ctermfg=176 ctermbg=16 cterm=reverse
hi LineNr ctermfg=87 ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
hi ModeMsg ctermfg=18 ctermbg=46 cterm=NONE
hi MoreMsg ctermfg=87 ctermbg=NONE cterm=NONE
hi NonText ctermfg=176 ctermbg=NONE cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
hi Question ctermfg=46 ctermbg=NONE cterm=NONE
hi Search ctermfg=220 ctermbg=16 cterm=reverse
hi SignColumn ctermfg=30 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=87 ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=160 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=46 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=231 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=176 ctermbg=NONE cterm=underline
hi StatusLine ctermfg=18 ctermbg=87 cterm=NONE
hi StatusLineNC ctermfg=18 ctermbg=30 cterm=NONE
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLine StatusLineNC
hi! link TabLineFill StatusLineNC
hi! link TabLineSel StatusLine
hi ToolbarButton ctermfg=231 ctermbg=25 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=30 ctermbg=NONE cterm=NONE
hi Visual ctermfg=231 ctermbg=30 cterm=NONE
hi VisualNOS ctermfg=30 ctermbg=231 cterm=NONE
hi WarningMsg ctermfg=160 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=18 ctermbg=220 cterm=NONE
hi debugBreakpoint ctermfg=46 ctermbg=18 cterm=reverse
hi debugPC ctermfg=87 ctermbg=18 cterm=reverse
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
hi! link diffIdentical WarningMsg
hi! link diffDiffer WarningMsg
hi! link diffCommon WarningMsg
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Directory ctermfg=87 ctermbg=NONE cterm=NONE
hi Title ctermfg=176 ctermbg=NONE cterm=NONE
hi Comment ctermfg=102 ctermbg=NONE cterm=NONE
hi Constant ctermfg=87 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=250 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=102 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=46 ctermbg=NONE cterm=NONE
hi Special ctermfg=176 ctermbg=NONE cterm=NONE
hi Statement ctermfg=231 ctermbg=NONE cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type ctermfg=214 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Label ctermfg=220 ctermbg=NONE cterm=NONE
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Type
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link Terminal Normal
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
hi Todo guifg=black guibg=orange ctermfg=black ctermbg=darkYellow
hi Cursor guifg=black guibg=white ctermfg=black ctermbg=white
hi Search guifg=black guibg=orange ctermfg=black ctermbg=darkYellow
hi IncSearch guifg=black guibg=yellow ctermfg=black ctermbg=darkYellow
hi LineNr guifg=cyan ctermfg=cyan
hi title guifg=white gui=bold cterm=bold
if s:t_Co >= 16
hi Normal ctermfg=yellow ctermbg=darkblue cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSel ctermfg=black ctermbg=white cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=darkmagenta cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=black ctermbg=green cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=blue cterm=NONE
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi CursorLineNr ctermfg=yellow ctermbg=blue cterm=NONE
hi EndOfBuffer ctermfg=yellow ctermbg=darkblue cterm=NONE
hi Error ctermfg=red ctermbg=darkblue cterm=reverse
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi IncSearch ctermfg=magenta ctermbg=black cterm=reverse
hi LineNr ctermfg=cyan ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
hi ModeMsg ctermfg=darkblue ctermbg=green cterm=NONE
hi MoreMsg ctermfg=cyan ctermbg=NONE cterm=NONE
hi NonText ctermfg=magenta ctermbg=NONE cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
hi Question ctermfg=green ctermbg=NONE cterm=NONE
hi Search ctermfg=yellow ctermbg=black cterm=reverse
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=white ctermbg=NONE cterm=underline
hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
hi StatusLine ctermfg=darkblue ctermbg=cyan cterm=NONE
hi StatusLineNC ctermfg=darkblue ctermbg=darkcyan cterm=NONE
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLine StatusLineNC
hi! link TabLineFill StatusLineNC
hi! link TabLineSel StatusLine
hi ToolbarButton ctermfg=white ctermbg=blue cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Visual ctermfg=white ctermbg=darkcyan cterm=NONE
hi VisualNOS ctermfg=darkcyan ctermbg=white cterm=NONE
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=darkblue ctermbg=yellow cterm=NONE
hi debugBreakpoint ctermfg=green ctermbg=darkblue cterm=reverse
hi debugPC ctermfg=cyan ctermbg=darkblue cterm=reverse
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
hi! link diffIdentical WarningMsg
hi! link diffDiffer WarningMsg
hi! link diffCommon WarningMsg
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi Comment ctermfg=darkgray ctermbg=NONE cterm=NONE
hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
hi Identifier ctermfg=gray ctermbg=NONE cterm=NONE
hi Ignore ctermfg=darkgray ctermbg=NONE cterm=NONE
hi PreProc ctermfg=green ctermbg=NONE cterm=NONE
hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
hi Statement ctermfg=white ctermbg=NONE cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Type
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link Terminal Normal
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
hi StatusLineNC gui=NONE guifg=black guibg=blue ctermfg=black ctermbg=blue
hi StatusLine gui=bold guifg=cyan guibg=blue ctermfg=cyan ctermbg=blue
hi VertSplit gui=none guifg=blue guibg=blue ctermfg=blue ctermbg=blue
hi Visual term=reverse ctermfg=black ctermbg=darkCyan guifg=black guibg=darkCyan
hi DiffChange guibg=darkGreen guifg=black ctermbg=darkGreen ctermfg=black
hi DiffText guibg=olivedrab guifg=black ctermbg=lightGreen ctermfg=black
hi DiffAdd guibg=slateblue guifg=black ctermbg=blue ctermfg=black
hi DiffDelete guibg=coral guifg=black ctermbg=cyan ctermfg=black
hi Folded guibg=orange guifg=black ctermbg=yellow ctermfg=black
hi FoldColumn guibg=gray30 guifg=black ctermbg=gray ctermfg=black
hi cIf0 guifg=gray ctermfg=gray
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: black #000000 16 black
" Color: darkred #870000 88 darkred
" Color: darkyellow #878700 100 darkyellow
" Color: darkblue #000087 18 darkblue
" Color: darkmagenta #870087 90 darkmagenta
" Color: darkcyan #008787 30 darkcyan
" Color: gray #bcbcbc 250 gray
" Color: comment #878787 102 darkgray
" Color: darkgray #878787 102 darkgray
" Color: red #d70000 160 red
" Color: green #00ff00 46 green
" Color: yellow #ffdf00 220 yellow
" Color: blue #005faf 25 blue
" Color: magenta #d787d7 176 magenta
" Color: cyan #5fffff 87 cyan
" Color: white #ffffff 231 white
" Color: xtermblue #5fafff 75 blue
" Color: xtermdarkblue #0087af 31 darkblue
" Color: orange #ffa500 214 darkyellow
" Color: darkgreen #006400 22 darkgreen
" Color: coral #ff7f50 209 red
" Color: olivedrab #6b8e23 64 green
" Color: slateblue #6a5acd 62 darkmagenta
" Term colors: black darkred darkgreen darkyellow darkblue darkmagenta darkcyan gray
" Term colors: darkgray red green yellow xtermblue magenta cyan white
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,66 +1,469 @@
" Vim color file
" Maintainer: Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Last Change: 2008 Jul 18
" Name: darkblue
" Description: For those who prefer dark background
" Author: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Maintainer: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:33 2022
" darkblue -- for those who prefer dark background
" [note: looks bit uglier with come terminal palettes,
" but is fine on default linux console palette.]
" Generated by Colortemplate v2.2.0
set background=dark
set bg=dark
hi clear
if exists("syntax_on")
syntax reset
let g:colors_name = 'darkblue'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#8b0000', '#90f020', '#ffa500', '#00008b', '#8b008b', '#008b8b', '#c0c0c0', '#808080', '#ffa0a0', '#90f020', '#ffff60', '#0030ff', '#ff00ff', '#90fff0', '#ffffff']
endif
hi Normal guifg=#c0c0c0 guibg=#000040 gui=NONE cterm=NONE
hi! link Terminal Normal
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn guifg=#c0c0c0 guibg=#8b0000 gui=NONE cterm=NONE
hi Cursor guifg=#000000 guibg=#ffff60 gui=NONE cterm=NONE
hi! link CursorColumn CursorLine
hi! link CursorIM Cursor
hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffff60 guibg=#666666 gui=NONE cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#ff80ff gui=NONE cterm=NONE
hi DiffAdd guifg=NONE guibg=#0030ff gui=NONE cterm=NONE
hi DiffChange guifg=NONE guibg=#404080 gui=NONE cterm=NONE
hi DiffDelete guifg=#000040 guibg=#008b8b gui=NONE cterm=NONE
hi DiffText guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
hi! link EndOfBuffer NonText
hi Error guifg=#ffa0a0 guibg=NONE gui=reverse cterm=reverse
hi! link ErrorMsg Error
hi FoldColumn guifg=#808080 guibg=NONE gui=bold cterm=NONE
hi Folded guifg=#808080 guibg=NONE gui=bold cterm=NONE
hi IncSearch guifg=#ffffff guibg=#0030ff gui=reverse cterm=reverse
hi LineNr guifg=#90f020 guibg=NONE gui=NONE cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi MatchParen guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi ModeMsg guifg=#90fff0 guibg=NONE gui=NONE cterm=NONE
hi MoreMsg guifg=#006400 guibg=NONE gui=NONE cterm=NONE
hi NonText guifg=#0030ff guibg=NONE gui=NONE cterm=NONE
hi Pmenu guifg=#ffffff guibg=#0030ff gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel guifg=#0030ff guibg=#ffffff gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
hi Question guifg=#90f020 guibg=NONE gui=NONE cterm=NONE
hi Search guifg=#90fff0 guibg=#0030ff gui=NONE cterm=NONE
hi SignColumn guifg=#808080 guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#90f020 guibg=NONE guisp=#90f020 gui=undercurl cterm=underline
hi SpellLocal guifg=#90fff0 guibg=NONE guisp=#90fff0 gui=undercurl cterm=underline
hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
hi StatusLine guifg=#000040 guibg=#c0c0c0 gui=NONE cterm=NONE
hi StatusLineNC guifg=#000000 guibg=#808080 gui=NONE cterm=NONE
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi TabLine guifg=#000000 guibg=#808080 gui=NONE cterm=NONE
hi! link TabLineFill TabLine
hi TabLineSel guifg=#000040 guibg=#c0c0c0 gui=NONE cterm=NONE
hi ToolbarButton guifg=#ffffff guibg=#0030ff gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit guifg=#000000 guibg=#808080 gui=NONE cterm=NONE
hi Visual guifg=#8080ff guibg=#ffffff gui=reverse cterm=reverse
hi VisualNOS guifg=#8080ff guibg=#c0c0c0 gui=reverse,underline cterm=reverse,underline
hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#ffff60 guibg=#000000 gui=NONE cterm=NONE
hi debugBreakpoint guifg=#90f020 guibg=#00008b gui=reverse cterm=reverse
hi debugPC guifg=#90fff0 guibg=#00008b gui=reverse cterm=reverse
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
hi! link diffIdentical WarningMsg
hi! link diffDiffer WarningMsg
hi! link diffCommon WarningMsg
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Directory guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
hi Title guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#90fff0 guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=#000040 guibg=#c0c0c0 gui=NONE cterm=NONE
hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#ffff60 guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type guifg=#90f020 guibg=NONE gui=NONE cterm=NONE
hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Label Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Statement
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=252 ctermbg=17 cterm=NONE
hi! link Terminal Normal
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=252 ctermbg=88 cterm=NONE
hi Cursor ctermfg=16 ctermbg=227 cterm=NONE
hi! link CursorColumn CursorLine
hi! link CursorIM Cursor
hi CursorLine ctermfg=NONE ctermbg=59 cterm=NONE
hi CursorLineNr ctermfg=227 ctermbg=59 cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=213 cterm=NONE
hi DiffAdd ctermfg=NONE ctermbg=27 cterm=NONE
hi DiffChange ctermfg=NONE ctermbg=61 cterm=NONE
hi DiffDelete ctermfg=17 ctermbg=30 cterm=NONE
hi DiffText ctermfg=NONE ctermbg=30 cterm=NONE
hi! link EndOfBuffer NonText
hi Error ctermfg=217 ctermbg=NONE cterm=reverse
hi! link ErrorMsg Error
hi FoldColumn ctermfg=102 ctermbg=NONE cterm=NONE
hi Folded ctermfg=102 ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=231 ctermbg=27 cterm=reverse
hi LineNr ctermfg=118 ctermbg=NONE cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
hi ModeMsg ctermfg=123 ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=22 ctermbg=NONE cterm=NONE
hi NonText ctermfg=27 ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=231 ctermbg=27 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=27 ctermbg=231 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
hi Question ctermfg=118 ctermbg=NONE cterm=NONE
hi Search ctermfg=123 ctermbg=27 cterm=NONE
hi SignColumn ctermfg=102 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=30 ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=118 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=123 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
hi StatusLine ctermfg=17 ctermbg=252 cterm=NONE
hi StatusLineNC ctermfg=16 ctermbg=102 cterm=NONE
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi TabLine ctermfg=16 ctermbg=102 cterm=NONE
hi! link TabLineFill TabLine
hi TabLineSel ctermfg=17 ctermbg=252 cterm=NONE
hi ToolbarButton ctermfg=231 ctermbg=27 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=16 ctermbg=102 cterm=NONE
hi Visual ctermfg=105 ctermbg=231 cterm=reverse
hi VisualNOS ctermfg=105 ctermbg=252 cterm=reverse,underline
hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=227 ctermbg=16 cterm=NONE
hi debugBreakpoint ctermfg=118 ctermbg=18 cterm=reverse
hi debugPC ctermfg=123 ctermbg=18 cterm=reverse
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
hi! link diffIdentical WarningMsg
hi! link diffDiffer WarningMsg
hi! link diffCommon WarningMsg
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=NONE
hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=123 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=17 ctermbg=252 cterm=NONE
hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
hi Special ctermfg=214 ctermbg=NONE cterm=NONE
hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type ctermfg=118 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Label Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Statement
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
let colors_name = "darkblue"
if s:t_Co >= 16
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi! link Terminal Normal
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=grey ctermbg=darkred cterm=NONE
hi Cursor ctermfg=black ctermbg=yellow cterm=NONE
hi! link CursorColumn CursorLine
hi! link CursorIM Cursor
hi CursorLine ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi CursorLineNr ctermfg=yellow ctermbg=darkgrey cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
hi DiffAdd ctermfg=NONE ctermbg=blue cterm=NONE
hi DiffChange ctermfg=NONE ctermbg=darkblue cterm=NONE
hi DiffDelete ctermfg=black ctermbg=darkcyan cterm=NONE
hi DiffText ctermfg=NONE ctermbg=darkcyan cterm=NONE
hi! link EndOfBuffer NonText
hi Error ctermfg=red ctermbg=NONE cterm=reverse
hi! link ErrorMsg Error
hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=white ctermbg=blue cterm=reverse
hi LineNr ctermfg=green ctermbg=NONE cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
hi ModeMsg ctermfg=cyan ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=white ctermbg=blue cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=blue ctermbg=white cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
hi Question ctermfg=green ctermbg=NONE cterm=NONE
hi Search ctermfg=cyan ctermbg=blue cterm=NONE
hi SignColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=cyan ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi StatusLine ctermfg=black ctermbg=grey cterm=NONE
hi StatusLineNC ctermfg=black ctermbg=darkgrey cterm=NONE
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi TabLine ctermfg=black ctermbg=darkgrey cterm=NONE
hi! link TabLineFill TabLine
hi TabLineSel ctermfg=black ctermbg=grey cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=blue cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=black ctermbg=darkgrey cterm=NONE
hi Visual ctermfg=blue ctermbg=white cterm=reverse
hi VisualNOS ctermfg=blue ctermbg=grey cterm=reverse,underline
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=yellow ctermbg=black cterm=NONE
hi debugBreakpoint ctermfg=green ctermbg=darkblue cterm=reverse
hi debugPC ctermfg=cyan ctermbg=darkblue cterm=reverse
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
hi! link diffIdentical WarningMsg
hi! link diffDiffer WarningMsg
hi! link diffCommon WarningMsg
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
hi Constant ctermfg=red ctermbg=NONE cterm=NONE
hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=black ctermbg=grey cterm=NONE
hi PreProc ctermfg=magenta ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type ctermfg=green ctermbg=NONE cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Label Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Statement
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
hi Search ctermfg=white ctermbg=blue cterm=NONE
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
hi Normal guifg=#c0c0c0 guibg=#000040 ctermfg=gray ctermbg=black
hi ErrorMsg guifg=#ffffff guibg=#287eff ctermfg=white ctermbg=lightblue
hi Visual guifg=#8080ff guibg=fg gui=reverse ctermfg=lightblue ctermbg=fg cterm=reverse
hi VisualNOS guifg=#8080ff guibg=fg gui=reverse,underline ctermfg=lightblue ctermbg=fg cterm=reverse,underline
hi Todo guifg=#d14a14 guibg=#1248d1 ctermfg=red ctermbg=darkblue
hi Search guifg=#90fff0 guibg=#2050d0 ctermfg=white ctermbg=darkblue cterm=underline term=underline
hi IncSearch guifg=#b0ffff guibg=#2050d0 ctermfg=darkblue ctermbg=gray
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
hi SpecialKey guifg=cyan ctermfg=darkcyan
hi Directory guifg=cyan ctermfg=cyan
hi Title guifg=magenta gui=none ctermfg=magenta cterm=bold
hi WarningMsg guifg=red ctermfg=red
hi WildMenu guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none term=none
hi ModeMsg guifg=#22cce2 ctermfg=lightblue
hi MoreMsg ctermfg=darkgreen ctermfg=darkgreen
hi Question guifg=green gui=none ctermfg=green cterm=none
hi NonText guifg=#0030ff ctermfg=darkblue
hi StatusLine guifg=blue guibg=darkgray gui=none ctermfg=blue ctermbg=gray term=none cterm=none
hi StatusLineNC guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none
hi VertSplit guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none
hi Folded guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold
hi FoldColumn guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold
hi LineNr guifg=#90f020 ctermfg=green cterm=none
hi DiffAdd guibg=darkblue ctermbg=darkblue term=none cterm=none
hi DiffChange guibg=darkmagenta ctermbg=magenta cterm=none
hi DiffDelete ctermfg=blue ctermbg=cyan gui=bold guifg=Blue guibg=DarkCyan
hi DiffText cterm=bold ctermbg=red gui=bold guibg=Red
hi Cursor guifg=black guibg=yellow ctermfg=black ctermbg=yellow
hi lCursor guifg=black guibg=white ctermfg=black ctermbg=white
hi Comment guifg=#80a0ff ctermfg=darkred
hi Constant ctermfg=magenta guifg=#ffa0a0 cterm=none
hi Special ctermfg=brown guifg=Orange cterm=none gui=none
hi Identifier ctermfg=cyan guifg=#40ffff cterm=none
hi Statement ctermfg=yellow cterm=none guifg=#ffff60 gui=none
hi PreProc ctermfg=magenta guifg=#ff80ff gui=none cterm=none
hi type ctermfg=green guifg=#60ff60 gui=none cterm=none
hi Underlined cterm=underline term=underline
hi Ignore guifg=bg ctermfg=bg
" suggested by tigmoid, 2008 Jul 18
hi Pmenu guifg=#c0c0c0 guibg=#404080
hi PmenuSel guifg=#c0c0c0 guibg=#2050d0
hi PmenuSbar guifg=blue guibg=darkgray
hi PmenuThumb guifg=#c0c0c0
" Background: dark
" Color: white #FFFFFF 231 white
" Color: black #000000 16 black
" Color: diffc #0087af 31 darkcyan
" Color: difft #005f87 24 cyan
" Color: cursorl #666666 59 darkgrey
" Color: ogDeepBlue #000040 17 black
" Color: ogDarkBlue #00008b 18 darkblue
" Color: ogBlue #0030ff 27 blue
" Color: ogLightBlue #287eff 33 blue
" Color: ogDarkGrey #a9a9a9 248 grey
" Color: ogGrey #808080 102 darkgrey
" Color: ogLightGrey #c0c0c0 252 grey
" Color: ogDarkViolet #404080 61 darkblue
" Color: ogViolet #8080ff 105 blue
" Color: ogLightViolet #80a0ff 111 blue
" Color: ogDarkGreen #006400 22 darkgreen
" Color: ogGreen #90f020 118 green
" Color: ogDarkCyan #008b8b 30 darkcyan
" Color: ogCyan #90fff0 123 cyan
" Color: ogLightCyan #b0ffff 159 cyan
" Color: ogDarkerRed #8b0000 88 darkred
" Color: ogDarkRed #d14a14 166 darkred
" Color: ogRed #ff0000 196 red
" Color: ogLightRed #ffa0a0 217 red
" Color: ogDarkMag #8b008b 90 darkmagenta
" Color: ogMagenta #ff00ff 201 darkmagenta
" Color: ogLightMag #ff80ff 213 magenta
" Color: ogOrange #ffa500 214 darkyellow
" Color: ogYellow #ffff60 227 yellow
" Term colors: black ogDarkerRed ogGreen ogOrange ogDarkBlue ogDarkMag ogDarkCyan ogLightGrey
" Term colors: ogGrey ogLightRed ogGreen ogYellow ogBlue ogMagenta ogCyan white
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,55 +1,339 @@
" Vim color file
" Maintainer: David Schweikert <david@schweikert.ch>
" Last Change: 2014 Mar 19
" Name: delek
" Description: Light background colorscheme.
" Author: Original author David Schweikert <david@schweikert.ch>
" Maintainer: Original maintainer David Schweikert <david@schweikert.ch>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:34 2022
" Generated by Colortemplate v2.2.0
set background=light
hi clear
let g:colors_name = 'delek'
let g:colors_name = "delek"
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
" Normal should come first
hi Normal guifg=Black guibg=White
hi Cursor guifg=bg guibg=fg
hi lCursor guifg=NONE guibg=Cyan
" Note: we never set 'term' because the defaults for B&W terminals are OK
hi DiffAdd ctermbg=LightBlue guibg=LightBlue
hi DiffChange ctermbg=LightMagenta guibg=LightMagenta
hi DiffDelete ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan
hi DiffText ctermbg=Red cterm=bold gui=bold guibg=Red
hi Directory ctermfg=DarkBlue guifg=Blue
hi ErrorMsg ctermfg=White ctermbg=DarkRed guibg=Red guifg=White
hi FoldColumn ctermfg=DarkBlue ctermbg=Grey guibg=Grey guifg=DarkBlue
hi Folded ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
hi IncSearch cterm=reverse gui=reverse
hi LineNr ctermfg=Brown guifg=Brown
hi ModeMsg cterm=bold gui=bold
hi MoreMsg ctermfg=DarkGreen gui=bold guifg=SeaGreen
hi NonText ctermfg=Blue gui=bold guifg=gray guibg=white
hi Pmenu guibg=LightBlue
hi PmenuSel ctermfg=White ctermbg=DarkBlue guifg=White guibg=DarkBlue
hi Question ctermfg=DarkGreen gui=bold guifg=SeaGreen
if &background == "light"
hi Search ctermfg=NONE ctermbg=Yellow guibg=Yellow guifg=NONE
else
hi Search ctermfg=Black ctermbg=Yellow guibg=Yellow guifg=Black
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#ffffff', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#bcbcbc', '#ee0000', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#000000']
endif
hi SpecialKey ctermfg=DarkBlue guifg=Blue
hi StatusLine cterm=bold ctermbg=blue ctermfg=yellow guibg=gold guifg=blue
hi StatusLineNC cterm=bold ctermbg=blue ctermfg=black guibg=gold guifg=blue
hi Title ctermfg=DarkMagenta gui=bold guifg=Magenta
hi VertSplit cterm=reverse gui=reverse
hi Visual ctermbg=NONE cterm=reverse gui=reverse guifg=Grey guibg=fg
hi VisualNOS cterm=underline,bold gui=underline,bold
hi WarningMsg ctermfg=DarkRed guifg=Red
hi WildMenu ctermfg=Black ctermbg=Yellow guibg=Yellow guifg=Black
hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi EndOfBuffer guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
hi StatusLine guifg=#ffff00 guibg=#00008b gui=bold cterm=NONE
hi StatusLineNC guifg=#ffd700 guibg=#00008b gui=NONE cterm=NONE
hi StatusLineTerm guifg=#ffff00 guibg=#0000ff gui=bold cterm=NONE
hi StatusLineTermNC guifg=#e4e4e4 guibg=#0000ff gui=NONE cterm=NONE
hi VertSplit guifg=#e4e4e4 guibg=#00008b gui=NONE cterm=NONE
hi Pmenu guifg=#000000 guibg=#add8e6 gui=NONE cterm=NONE
hi PmenuSel guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
hi TabLine guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
hi TabLineFill guifg=NONE guibg=#bcbcbc gui=NONE cterm=NONE
hi TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
hi ToolbarLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
hi ToolbarButton guifg=#ffffff guibg=#bcbcbc gui=bold cterm=NONE
hi NonText guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
hi Folded guifg=#00008b guibg=#e4e4e4 gui=NONE cterm=NONE
hi Visual guifg=#000000 guibg=#d0d0d0 gui=NONE cterm=NONE
hi VisualNOS guifg=NONE guibg=#ee0000 gui=NONE cterm=NONE
hi LineNr guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
hi CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
hi QuickFixLine guifg=#ffffff guibg=#008b8b gui=NONE cterm=NONE
hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi! link ErrorMsg Error
hi WarningMsg guifg=#cd00cd guibg=#ffffff gui=NONE cterm=NONE
hi MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
hi Question guifg=#00cd00 guibg=NONE gui=bold cterm=NONE
hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi MatchParen guifg=#ffffff guibg=#ff1493 gui=NONE cterm=NONE
hi Search guifg=#ffffff guibg=#cd00cd gui=NONE cterm=NONE
hi IncSearch guifg=#00cd00 guibg=NONE gui=reverse cterm=reverse
hi WildMenu guifg=#00008b guibg=#ffd700 gui=bold cterm=NONE
hi ColorColumn guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi lCursor guifg=#000000 guibg=#00cd00 gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#008b8b guibg=NONE guisp=#008b8b gui=undercurl cterm=underline
hi SpellLocal guifg=#0000ff guibg=NONE guisp=#0000ff gui=undercurl cterm=underline
hi SpellRare guifg=#cd00cd guibg=NONE guisp=#cd00cd gui=undercurl cterm=underline
hi debugBreakpoint guifg=#ffff00 guibg=#0000ff gui=NONE cterm=NONE
hi debugPC guifg=#ff1493 guibg=#0000ff gui=NONE cterm=NONE
hi Comment guifg=#ee0000 guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#00cd00 guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#0000ff guibg=NONE gui=bold cterm=NONE
hi PreProc guifg=#cd00cd guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#0000ff guibg=NONE gui=bold cterm=NONE
hi Special guifg=#ff1493 guibg=NONE gui=NONE cterm=NONE
hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
hi Conceal guifg=#ee0000 guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title guifg=#cd00cd guibg=NONE gui=bold cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi CursorLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
" syntax highlighting
hi Comment cterm=NONE ctermfg=DarkRed gui=NONE guifg=red2
hi Constant cterm=NONE ctermfg=DarkGreen gui=NONE guifg=green3
hi Identifier cterm=NONE ctermfg=DarkCyan gui=NONE guifg=cyan4
hi PreProc cterm=NONE ctermfg=DarkMagenta gui=NONE guifg=magenta3
hi Special cterm=NONE ctermfg=LightRed gui=NONE guifg=deeppink
hi Statement cterm=bold ctermfg=Blue gui=bold guifg=blue
hi Type cterm=NONE ctermfg=Blue gui=bold guifg=blue
if s:t_Co >= 256
hi Normal ctermfg=16 ctermbg=231 cterm=NONE
hi EndOfBuffer ctermfg=250 ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=226 ctermbg=18 cterm=NONE
hi StatusLineNC ctermfg=220 ctermbg=18 cterm=NONE
hi StatusLineTerm ctermfg=226 ctermbg=21 cterm=NONE
hi StatusLineTermNC ctermfg=254 ctermbg=21 cterm=NONE
hi VertSplit ctermfg=254 ctermbg=18 cterm=NONE
hi Pmenu ctermfg=16 ctermbg=152 cterm=NONE
hi PmenuSel ctermfg=231 ctermbg=18 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=231 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=30 cterm=NONE
hi TabLine ctermfg=16 ctermbg=254 cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=250 cterm=NONE
hi TabLineSel ctermfg=16 ctermbg=231 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=254 cterm=NONE
hi ToolbarButton ctermfg=231 ctermbg=250 cterm=NONE
hi NonText ctermfg=250 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=250 ctermbg=NONE cterm=NONE
hi Folded ctermfg=18 ctermbg=254 cterm=NONE
hi Visual ctermfg=16 ctermbg=252 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=196 cterm=NONE
hi LineNr ctermfg=124 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=18 ctermbg=NONE cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=254 cterm=NONE
hi CursorLineNr ctermfg=124 ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=231 ctermbg=30 cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
hi Error ctermfg=196 ctermbg=231 cterm=reverse
hi! link ErrorMsg Error
hi WarningMsg ctermfg=164 ctermbg=231 cterm=NONE
hi MoreMsg ctermfg=16 ctermbg=231 cterm=NONE
hi ModeMsg ctermfg=16 ctermbg=231 cterm=NONE
hi Question ctermfg=40 ctermbg=NONE cterm=NONE
hi Todo ctermfg=16 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=231 ctermbg=198 cterm=NONE
hi Search ctermfg=231 ctermbg=164 cterm=NONE
hi IncSearch ctermfg=40 ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=18 ctermbg=220 cterm=NONE
hi ColorColumn ctermfg=16 ctermbg=254 cterm=NONE
hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
hi lCursor ctermfg=16 ctermbg=40 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=30 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=21 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=164 ctermbg=NONE cterm=underline
hi debugBreakpoint ctermfg=226 ctermbg=21 cterm=NONE
hi debugPC ctermfg=198 ctermbg=21 cterm=NONE
hi Comment ctermfg=196 ctermbg=NONE cterm=NONE
hi Constant ctermfg=40 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
hi Statement ctermfg=21 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=164 ctermbg=NONE cterm=NONE
hi Type ctermfg=21 ctermbg=NONE cterm=NONE
hi Special ctermfg=198 ctermbg=NONE cterm=NONE
hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=196 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=164 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
" vim: sw=2
if s:t_Co >= 16
hi Normal ctermfg=black ctermbg=white cterm=NONE
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=yellow ctermbg=darkblue cterm=NONE
hi StatusLineNC ctermfg=darkyellow ctermbg=darkblue cterm=NONE
hi StatusLineTerm ctermfg=yellow ctermbg=blue cterm=NONE
hi StatusLineTermNC ctermfg=grey ctermbg=blue cterm=NONE
hi VertSplit ctermfg=grey ctermbg=darkblue cterm=NONE
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuSel ctermfg=white ctermbg=darkblue cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=white cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkcyan cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=grey cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=grey cterm=NONE
hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=darkred cterm=NONE
hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=grey cterm=NONE
hi CursorLineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=white ctermbg=darkcyan cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi Error ctermfg=red ctermbg=white cterm=reverse
hi! link ErrorMsg Error
hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
hi MoreMsg ctermfg=black ctermbg=white cterm=NONE
hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
hi Question ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi MatchParen ctermfg=white ctermbg=magenta cterm=NONE
hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=grey cterm=NONE
hi Cursor ctermfg=white ctermbg=black cterm=NONE
hi lCursor ctermfg=black ctermbg=darkgreen cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkblue ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi debugBreakpoint ctermfg=yellow ctermbg=darkblue cterm=NONE
hi debugPC ctermfg=magenta ctermbg=darkblue cterm=NONE
hi Comment ctermfg=darkred ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkblue ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=blue ctermbg=NONE cterm=NONE
hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Conceal ctermfg=darkred ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi Visual ctermfg=white ctermbg=darkgrey cterm=NONE
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: light
" Color: comment #ee0000 196 darkred
" Color: constant #00cd00 40 darkgreen
" Color: identifier #008b8b 30 darkcyan
" Color: statement #0000ff 21 darkblue
" Color: preproc #cd00cd 164 darkmagenta
" Color: type #0000ff 21 blue
" Color: special #ff1493 198 magenta
" Color: fg0 #000000 16 black
" Color: bg0 #ffffff 231 white
" Color: bg1 #bcbcbc 250 darkgrey
" Color: visual #d0d0d0 252 darkgrey
" Color: folded #e4e4e4 254 grey
" Color: pmenu #add8e6 152 grey
" Color: wildmenu #00008b 18 darkblue
" Color: error #ff0000 196 red
" Color: status_fg #ffd700 220 darkyellow
" Color: linenr #a52a2a 124 darkgrey
" Color: Yellow #ffff00 226 yellow
" Color: SlateBlue #6a5acd 62 blue
" Term colors: bg0 statement constant preproc identifier type special bg1
" Term colors: comment statement constant preproc identifier type special fg0
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,108 +1,335 @@
" Vim color file
" Maintainer: Hans Fugal <hans@fugal.net>
" Last Change: $Date: 2004/06/13 19:30:30 $
" Last Change: $Date: 2004/06/13 19:30:30 $
" URL: http://hans.fugal.net/vim/colors/desert.vim
" Version: $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $
" Name: desert
" Description: Light background colorscheme.
" Author: Original author Hans Fugal <hans@fugal.net>
" Maintainer: Original maintainer Hans Fugal <hans@fugal.net>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:35 2022
" cool help screens
" :he group-name
" :he highlight-groups
" :he cterm-colors
" Generated by Colortemplate v2.2.0
set background=dark
if version > 580
" no guarantees for version 5.8 and below, but this makes it stop
" complaining
hi clear
if exists("syntax_on")
syntax reset
endif
hi clear
let g:colors_name = 'desert'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#7f7f8c', '#cd5c5c', '#9acd32', '#bdb76b', '#75a0ff', '#eeee00', '#cd853f', '#666666', '#8a7f7f', '#ff0000', '#89fb98', '#f0e68c', '#6dceeb', '#ffde9b', '#ffa0a0', '#c2bfa5']
endif
let g:colors_name="desert"
hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
hi! link EndOfBuffer NonText
hi StatusLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
hi StatusLineNC guifg=#7f7f8c guibg=#c2bfa5 gui=NONE cterm=NONE
hi StatusLineTerm guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
hi StatusLineTermNC guifg=#ffffff guibg=#c2bfa5 gui=NONE cterm=NONE
hi VertSplit guifg=#7f7f8c guibg=#c2bfa5 gui=NONE cterm=NONE
hi Pmenu guifg=#ffffff guibg=#666666 gui=NONE cterm=NONE
hi PmenuSel guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=#333333 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#c2bfa5 gui=NONE cterm=NONE
hi TabLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
hi TabLineFill guifg=NONE guibg=#c2bfa5 gui=NONE cterm=NONE
hi TabLineSel guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi ToolbarButton guifg=#333333 guibg=#ffde9b gui=bold cterm=NONE
hi NonText guifg=#6dceeb guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#9acd32 guibg=NONE gui=NONE cterm=NONE
hi Folded guifg=#eeee00 guibg=#4d4d4d gui=NONE cterm=NONE
hi Visual guifg=#f0e68c guibg=#6b8e24 gui=NONE cterm=NONE
hi VisualNOS guifg=#f0e68c guibg=#6dceeb gui=NONE cterm=NONE
hi LineNr guifg=#eeee00 guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#eeee00 guibg=#4d4d4d gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi CursorLineNr guifg=#eeee00 guibg=NONE gui=bold cterm=NONE
hi QuickFixLine guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined guifg=#75a0ff guibg=NONE gui=underline cterm=underline
hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi ModeMsg guifg=#ffde9b guibg=NONE gui=bold cterm=NONE
hi WarningMsg guifg=#cd5c5c guibg=NONE gui=bold cterm=NONE
hi MoreMsg guifg=#9acd32 guibg=NONE gui=bold cterm=NONE
hi Question guifg=#89fb98 guibg=NONE gui=bold cterm=NONE
hi Todo guifg=#ff0000 guibg=#eeee00 gui=NONE cterm=NONE
hi MatchParen guifg=#7f7f8c guibg=#bdb76b gui=NONE cterm=NONE
hi Search guifg=#f0e68c guibg=#7f7f8c gui=NONE cterm=NONE
hi IncSearch guifg=#f0e68c guibg=#cd853f gui=NONE cterm=NONE
hi WildMenu guifg=#333333 guibg=#eeee00 gui=NONE cterm=NONE
hi ColorColumn guifg=#ffffff guibg=#cd5c5c gui=NONE cterm=NONE
hi Cursor guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
hi lCursor guifg=#333333 guibg=#ff0000 gui=NONE cterm=NONE
hi debugPC guifg=#666666 guibg=NONE gui=reverse cterm=reverse
hi debugBreakpoint guifg=#ffa0a0 guibg=NONE gui=reverse cterm=reverse
hi SpellBad guifg=#cd5c5c guibg=NONE guisp=#cd5c5c gui=undercurl cterm=underline
hi SpellCap guifg=#75a0ff guibg=NONE guisp=#75a0ff gui=undercurl cterm=underline
hi SpellLocal guifg=#ffde9b guibg=NONE guisp=#ffde9b gui=undercurl cterm=underline
hi SpellRare guifg=#9acd32 guibg=NONE guisp=#9acd32 gui=undercurl cterm=underline
hi Comment guifg=#6dceeb guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#89fb98 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#f0e68c guibg=NONE gui=bold cterm=NONE
hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#cd5c5c guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#bdb76b guibg=NONE gui=bold cterm=NONE
hi Special guifg=#ffde9b guibg=NONE gui=NONE cterm=NONE
hi Directory guifg=#6dceeb guibg=NONE gui=NONE cterm=NONE
hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title guifg=#cd5c5c guibg=NONE gui=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
hi Normal guifg=White guibg=grey20
if s:t_Co >= 256
hi Normal ctermfg=231 ctermbg=236 cterm=NONE
hi! link EndOfBuffer NonText
hi StatusLine ctermfg=236 ctermbg=144 cterm=NONE
hi StatusLineNC ctermfg=242 ctermbg=144 cterm=NONE
hi StatusLineTerm ctermfg=236 ctermbg=144 cterm=NONE
hi StatusLineTermNC ctermfg=231 ctermbg=144 cterm=NONE
hi VertSplit ctermfg=242 ctermbg=144 cterm=NONE
hi Pmenu ctermfg=231 ctermbg=241 cterm=NONE
hi PmenuSel ctermfg=236 ctermbg=186 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=236 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=144 cterm=NONE
hi TabLine ctermfg=236 ctermbg=144 cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=144 cterm=NONE
hi TabLineSel ctermfg=236 ctermbg=186 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=241 cterm=NONE
hi ToolbarButton ctermfg=236 ctermbg=222 cterm=NONE
hi NonText ctermfg=81 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=112 ctermbg=NONE cterm=NONE
hi Folded ctermfg=226 ctermbg=239 cterm=NONE
hi Visual ctermfg=186 ctermbg=64 cterm=NONE
hi VisualNOS ctermfg=186 ctermbg=81 cterm=NONE
hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=226 ctermbg=239 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=241 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=241 cterm=NONE
hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=236 ctermbg=186 cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
hi Error ctermfg=196 ctermbg=231 cterm=reverse
hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
hi ModeMsg ctermfg=222 ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=167 ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=112 ctermbg=NONE cterm=NONE
hi Question ctermfg=120 ctermbg=NONE cterm=NONE
hi Todo ctermfg=196 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=242 ctermbg=143 cterm=NONE
hi Search ctermfg=186 ctermbg=242 cterm=NONE
hi IncSearch ctermfg=186 ctermbg=172 cterm=NONE
hi WildMenu ctermfg=236 ctermbg=226 cterm=NONE
hi ColorColumn ctermfg=231 ctermbg=167 cterm=NONE
hi debugPC ctermfg=241 ctermbg=NONE cterm=reverse
hi debugBreakpoint ctermfg=217 ctermbg=NONE cterm=reverse
hi SpellBad ctermfg=167 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=111 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=222 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=112 ctermbg=NONE cterm=underline
hi Comment ctermfg=81 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=120 ctermbg=NONE cterm=NONE
hi Statement ctermfg=186 ctermbg=NONE cterm=NONE
hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=167 ctermbg=NONE cterm=NONE
hi Type ctermfg=143 ctermbg=NONE cterm=NONE
hi Special ctermfg=222 ctermbg=NONE cterm=NONE
hi Directory ctermfg=81 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=241 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=167 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
" highlight groups
hi Cursor guibg=khaki guifg=slategrey
"hi CursorIM
"hi Directory
"hi DiffAdd
"hi DiffChange
"hi DiffDelete
"hi DiffText
"hi ErrorMsg
hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none
hi Folded guibg=grey30 guifg=gold
hi FoldColumn guibg=grey30 guifg=tan
hi IncSearch guifg=slategrey guibg=khaki
"hi LineNr
hi ModeMsg guifg=goldenrod
hi MoreMsg guifg=SeaGreen
hi NonText guifg=LightBlue guibg=grey30
hi Question guifg=springgreen
hi Search guibg=peru guifg=wheat
hi SpecialKey guifg=yellowgreen
hi StatusLine guibg=#c2bfa5 guifg=black gui=none
hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none
hi Title guifg=indianred
hi Visual gui=none guifg=khaki guibg=olivedrab
"hi VisualNOS
hi WarningMsg guifg=salmon
"hi WildMenu
"hi Menu
"hi Scrollbar
"hi Tooltip
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi! link EndOfBuffer NonText
hi StatusLine ctermfg=black ctermbg=grey cterm=NONE
hi StatusLineNC ctermfg=darkgrey ctermbg=grey cterm=NONE
hi StatusLineTerm ctermfg=black ctermbg=grey cterm=NONE
hi StatusLineTermNC ctermfg=darkgrey ctermbg=grey cterm=NONE
hi VertSplit ctermfg=darkgrey ctermbg=grey cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=white cterm=NONE
hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=darkyellow cterm=NONE
hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Visual ctermfg=white ctermbg=darkgreen cterm=NONE
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkyellow ctermbg=darkgrey cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=darkblue cterm=NONE
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=underline
hi QuickFixLine ctermfg=black ctermbg=yellow cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
hi Error ctermfg=red ctermbg=white cterm=reverse
hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse
hi ModeMsg ctermfg=magenta ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=green ctermbg=NONE cterm=NONE
hi Todo ctermfg=red ctermbg=darkmagenta cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
hi Search ctermfg=black ctermbg=darkgreen cterm=NONE
hi IncSearch ctermfg=black ctermbg=yellow cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkmagenta cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi debugPC ctermfg=grey ctermbg=NONE cterm=reverse
hi debugBreakpoint ctermfg=cyan ctermbg=NONE cterm=reverse
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=underline
hi Comment ctermfg=cyan ctermbg=NONE cterm=NONE
hi Identifier ctermfg=green ctermbg=NONE cterm=NONE
hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkred ctermbg=NONE cterm=NONE
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
hi Directory ctermfg=blue ctermbg=NONE cterm=NONE
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkred ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
" syntax highlighting groups
hi Comment guifg=SkyBlue
hi Constant guifg=#ffa0a0
hi Identifier guifg=palegreen
hi Statement guifg=khaki
hi PreProc guifg=indianred
hi Type guifg=darkkhaki
hi Special guifg=navajowhite
"hi Underlined
hi Ignore guifg=grey40
"hi Error
hi Todo guifg=orangered guibg=yellow2
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" color terminal definitions
hi SpecialKey ctermfg=darkgreen
hi NonText cterm=bold ctermfg=darkblue
hi Directory ctermfg=darkcyan
hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1
hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green
hi Search cterm=NONE ctermfg=grey ctermbg=blue
hi MoreMsg ctermfg=darkgreen
hi ModeMsg cterm=NONE ctermfg=brown
hi LineNr ctermfg=3
hi Question ctermfg=green
hi StatusLine cterm=bold,reverse
hi StatusLineNC cterm=reverse
hi VertSplit cterm=reverse
hi Title ctermfg=5
hi Visual cterm=reverse
hi VisualNOS cterm=bold,underline
hi WarningMsg ctermfg=1
hi WildMenu ctermfg=0 ctermbg=3
hi Folded ctermfg=darkgrey ctermbg=NONE
hi FoldColumn ctermfg=darkgrey ctermbg=NONE
hi DiffAdd ctermbg=4
hi DiffChange ctermbg=5
hi DiffDelete cterm=bold ctermfg=4 ctermbg=6
hi DiffText cterm=bold ctermbg=1
hi Comment ctermfg=darkcyan
hi Constant ctermfg=brown
hi Special ctermfg=5
hi Identifier ctermfg=6
hi Statement ctermfg=3
hi PreProc ctermfg=5
hi Type ctermfg=2
hi Underlined cterm=underline ctermfg=5
hi Ignore cterm=bold ctermfg=7
hi Ignore ctermfg=darkgrey
hi Error cterm=bold ctermfg=7 ctermbg=1
"vim: sw=4
" Background: dark
" Color: foreground #ffffff 231 white
" Color: background #333333 236 black
" Color: color00 #7f7f8c 242 black
" Color: color08 #8a7f7f 244 darkgrey
" Color: color01 #cd5c5c 167 darkred
" Color: color09 #ff0000 196 red
" Color: color02 #9acd32 112 darkgreen
" Color: color10 #89fb98 120 green
" Color: color03 #bdb76b 143 darkyellow
" Color: color11 #f0e68c 186 yellow
" Color: color04 #75a0ff 111 darkblue
" Color: color12 #6dceeb 81 blue
" Color: color05 #eeee00 226 darkmagenta
" Color: color13 #ffde9b 222 magenta
" Color: color06 #cd853f 172 darkcyan
" Color: color14 #ffa0a0 217 cyan
" Color: color07 #666666 241 grey
" Color: color15 #c2bfa5 144 white
" Color: color16 #6b8e24 64 darkgreen
" Color: color17 #4d4d4d 239 grey
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,50 +1,375 @@
" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2003 May 02
" Name: elflord
" Author: original author Ron Aaron <ron@ronware.org>
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
" Website: https://www.github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:36 2022
" Generated by Colortemplate v2.2.0
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name = "elflord"
hi Normal guifg=cyan guibg=black
hi Comment term=bold ctermfg=DarkCyan guifg=#80a0ff
hi Constant term=underline ctermfg=Magenta guifg=Magenta
hi Special term=bold ctermfg=DarkMagenta guifg=Red
hi Identifier term=underline cterm=bold ctermfg=Cyan guifg=#40ffff
hi Statement term=bold ctermfg=Yellow gui=bold guifg=#aa4444
hi PreProc term=underline ctermfg=LightBlue guifg=#ff80ff
hi Type term=underline ctermfg=LightGreen guifg=#60ff60 gui=bold
hi Function term=bold ctermfg=White guifg=White
hi Repeat term=underline ctermfg=White guifg=white
hi Operator ctermfg=Red guifg=Red
hi Ignore ctermfg=black guifg=bg
hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White
hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
" Common groups that link to default highlighting.
" You can specify other highlighting easily.
hi link String Constant
hi link Character Constant
hi link Number Constant
hi link Boolean Constant
hi link Float Number
hi link Conditional Repeat
hi link Label Statement
hi link Keyword Statement
hi link Exception Statement
hi link Include PreProc
hi link Define PreProc
hi link Macro PreProc
hi link PreCondit PreProc
hi link StorageClass Type
hi link Structure Type
hi link Typedef Type
hi link Tag Special
hi link SpecialChar Special
hi link Delimiter Special
hi link SpecialComment Special
hi link Debug Special
hi clear
let g:colors_name = 'elflord'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
hi! link Terminal Normal
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Repeat
hi! link Debug Special
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Number
hi! link Include PreProc
hi! link Keyword Statement
hi! link Label Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link PopupSelected PmenuSel
hi! link PreCondit PreProc
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
hi Normal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
hi QuickFixLine guifg=#ffffff guibg=#2e8b57 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#cd0000 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=underline
hi Folded guifg=#00ffff guibg=#666666 gui=NONE cterm=NONE
hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
hi Cursor guifg=#000000 guibg=#00ffff gui=NONE cterm=NONE
hi Directory guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=bold cterm=NONE
hi ErrorMsg guifg=#ffffff guibg=#cd0000 gui=NONE cterm=NONE
hi FoldColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi IncSearch guifg=NONE guibg=#000000 gui=reverse cterm=reverse
hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi NonText guifg=#0000ff guibg=NONE gui=bold cterm=NONE
hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=#bebebe gui=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
hi Search guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#0000ff guibg=NONE guisp=#0000ff gui=undercurl cterm=underline
hi SpellLocal guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
hi StatusLine guifg=#000000 guibg=#00ffff gui=bold cterm=NONE
hi StatusLineNC guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
hi TabLine guifg=#000000 guibg=#008b8b gui=NONE cterm=NONE
hi TabLineFill guifg=NONE guibg=#000000 gui=reverse cterm=reverse
hi TabLineSel guifg=#00ffff guibg=#000000 gui=bold cterm=NONE
hi Terminal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
hi VertSplit guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
hi Visual guifg=#000000 guibg=#a9a9a9 gui=NONE cterm=NONE
hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi Function guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#40ffff guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
hi Operator guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
hi Repeat guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#aa4444 guibg=NONE gui=bold cterm=NONE
hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
hi Type guifg=#60ff60 guibg=NONE gui=bold cterm=NONE
hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=51 ctermbg=16 cterm=NONE
hi QuickFixLine ctermfg=231 ctermbg=29 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=160 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=237 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=237 cterm=NONE
hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=underline
hi Folded ctermfg=51 ctermbg=59 cterm=NONE
hi Conceal ctermfg=59 ctermbg=NONE cterm=NONE
hi Cursor ctermfg=16 ctermbg=51 cterm=NONE
hi Directory ctermfg=51 ctermbg=16 cterm=NONE
hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
hi FoldColumn ctermfg=51 ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=NONE ctermbg=16 cterm=reverse
hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=30 cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
hi NonText ctermfg=21 ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=250 cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
hi Question ctermfg=46 ctermbg=NONE cterm=NONE
hi Search ctermfg=16 ctermbg=226 cterm=NONE
hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=21 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=226 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
hi StatusLine ctermfg=16 ctermbg=51 cterm=NONE
hi StatusLineNC ctermfg=16 ctermbg=44 cterm=NONE
hi TabLine ctermfg=16 ctermbg=30 cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=16 cterm=reverse
hi TabLineSel ctermfg=51 ctermbg=16 cterm=NONE
hi Terminal ctermfg=51 ctermbg=16 cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=16 ctermbg=44 cterm=NONE
hi Visual ctermfg=16 ctermbg=145 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
hi Constant ctermfg=201 ctermbg=NONE cterm=NONE
hi Error ctermfg=231 ctermbg=196 cterm=NONE
hi Function ctermfg=231 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=87 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
hi Operator ctermfg=196 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
hi Repeat ctermfg=231 ctermbg=NONE cterm=NONE
hi Special ctermfg=196 ctermbg=NONE cterm=NONE
hi Statement ctermfg=131 ctermbg=NONE cterm=NONE
hi Todo ctermfg=21 ctermbg=226 cterm=NONE
hi Type ctermfg=83 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 16
hi Normal ctermfg=cyan ctermbg=black cterm=NONE
hi QuickFixLine ctermfg=white ctermbg=darkgreen cterm=NONE
hi ColorColumn ctermfg=cyan ctermbg=darkred cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Cursor ctermfg=black ctermbg=cyan cterm=NONE
hi Directory ctermfg=cyan ctermbg=black cterm=NONE
hi EndOfBuffer ctermfg=darkblue ctermbg=black cterm=NONE
hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
hi FoldColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=NONE ctermbg=black cterm=reverse
hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=grey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
hi Question ctermfg=green ctermbg=NONE cterm=NONE
hi Search ctermfg=black ctermbg=yellow cterm=NONE
hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=yellow ctermbg=NONE cterm=underline
hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
hi StatusLine ctermfg=black ctermbg=cyan cterm=NONE
hi StatusLineNC ctermfg=black ctermbg=darkcyan cterm=NONE
hi TabLine ctermfg=black ctermbg=darkcyan cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
hi TabLineSel ctermfg=cyan ctermbg=black cterm=NONE
hi Terminal ctermfg=cyan ctermbg=black cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=black ctermbg=darkcyan cterm=NONE
hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
hi Constant ctermfg=magenta ctermbg=NONE cterm=NONE
hi Error ctermfg=white ctermbg=red cterm=NONE
hi Function ctermfg=white ctermbg=NONE cterm=NONE
hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=black ctermbg=black cterm=NONE
hi Operator ctermfg=red ctermbg=NONE cterm=NONE
hi PreProc ctermfg=magenta ctermbg=NONE cterm=NONE
hi Repeat ctermfg=white ctermbg=NONE cterm=NONE
hi Special ctermfg=red ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
hi Type ctermfg=green ctermbg=NONE cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: xterm0 #000000 16 black
" Color: xterm1 #cd0000 160 darkred
" Color: xterm2 #00cd00 40 darkgreen
" Color: xterm3 #cdcd00 184 darkyellow
" Color: xterm4 #0000ee 20 darkblue
" Color: xterm5 #cd00cd 164 darkmagenta
" Color: xterm6 #00cdcd 44 darkcyan
" Color: xterm7 #e5e5e5 254 grey
" Color: xterm8 #7f7f7f 102 darkgrey
" Color: xterm9 #ff0000 196 red
" Color: xterm10 #00ff00 46 green
" Color: xterm11 #ffff00 226 yellow
" Color: xterm12 #5c5cff 63 blue
" Color: xterm13 #ff00ff 201 magenta
" Color: xterm14 #00ffff 51 cyan
" Color: xterm15 #ffffff 231 white
" Color: Pmenu #444444 238 darkgrey
" Color: CursorLine #3a3a3a 237 darkgrey
" Color: rgbGrey40 #666666 59 darkgrey
" Color: rgbDarkGrey #a9a9a9 145 darkgrey
" Color: rgbBlue #0000ff 21 darkblue
" Color: rgbDarkCyan #008b8b 30 darkcyan
" Color: Directory #00ffff 51 cyan
" Color: rgbSeaGreen #2e8b57 29 darkgreen
" Color: rgbGrey #bebebe 250 grey
" Color: Question #00ff00 46 green
" Color: SignColumn #a9a9a9 248 grey
" Color: SpecialKey #00ffff 51 cyan
" Color: Title #ff00ff 201 magenta
" Color: WarningMsg #ff0000 196 red
" Color: ToolbarLine #7f7f7f 244 darkgrey
" Color: Underlined #80a0ff 111 blue
" Color: elfComment #80a0ff 111 blue
" Color: elfIdentifier #40ffff 87 cyan
" Color: elfStatement #aa4444 131 darkred
" Color: elfPreProc #ff80ff 213 magenta
" Color: elfType #60ff60 83 green
" Color: elfBlue #0000ff 21 blue
" Term colors: xterm0 xterm1 xterm2 xterm3 xterm4 xterm5 xterm6 xterm7
" Term colors: xterm8 xterm9 xterm10 xterm11 xterm12 xterm13
" Term colors: xterm14 xterm15
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,56 +1,448 @@
" Vim color file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Oct 10
" Name: evening
" Description: This color scheme uses a dark grey background.
" Author: Original author Bram Moolenaar <Bram@vim.org>
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:37 2022
" This color scheme uses a dark grey background.
" Generated by Colortemplate v2.2.0
" First remove all existing highlighting.
set background=dark
hi clear
if exists("syntax_on")
syntax reset
let g:colors_name = 'evening'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#ffa500', '#2e8b57', '#ffff00', '#006faf', '#8b008b', '#008b8b', '#bebebe', '#4d4d4d', '#ff5f5f', '#00ff00', '#ffff60', '#0087ff', '#ff80ff', '#00ffff', '#ffffff']
endif
hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#8b0000 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffff00 guibg=#666666 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#add8e6 guibg=#4d4d4d gui=NONE cterm=NONE
hi StatusLine guifg=#333333 guibg=#ffffff gui=bold cterm=NONE
hi StatusLineNC guifg=#333333 guibg=#d3d3d3 gui=NONE cterm=NONE
hi TabLineSel guifg=#333333 guibg=#ffffff gui=bold cterm=NONE
hi TabLine guifg=#333333 guibg=#d3d3d3 gui=NONE cterm=NONE
hi QuickFixLine guifg=#ffffff guibg=#8b008b gui=NONE cterm=NONE
hi Pmenu guifg=#ffffff guibg=#4d4d4d gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#bebebe gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi FoldColumn guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
hi Folded guifg=#00008b guibg=#d3d3d3 gui=bold cterm=NONE
hi IncSearch guifg=#00ff00 guibg=NONE gui=reverse cterm=reverse
hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg guifg=#2e8b57 guibg=NONE gui=NONE cterm=NONE
hi NonText guifg=#add8e6 guibg=#4d4d4d gui=NONE cterm=NONE
hi Question guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
hi Search guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi SignColumn guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#00ff00 guibg=NONE guisp=#00ff00 gui=undercurl cterm=underline
hi SpellLocal guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
hi SpellRare guifg=#ff80ff guibg=NONE guisp=#ff80ff gui=undercurl cterm=underline
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLineFill TabLine
hi ToolbarButton guifg=NONE guibg=#999999 gui=bold cterm=NONE
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit guifg=#ffffff guibg=#ffffff gui=NONE cterm=NONE
hi Visual guifg=#ffffff guibg=#999999 gui=NONE cterm=NONE
hi VisualNOS guifg=NONE guibg=NONE gui=bold,underline ctermfg=NONE ctermbg=NONE cterm=underline
hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
hi debugBreakpoint guifg=#00008b guibg=#ff0000 gui=NONE cterm=NONE
hi debugPC guifg=#00008b guibg=#0000ff gui=NONE cterm=NONE
hi! link Terminal Normal
hi! link CursorColumn CursorLine
hi! link CursorIM Cursor
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
hi! link diffIdentical WarningMsg
hi! link diffDiffer WarningMsg
hi! link diffCommon WarningMsg
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi Title guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=#333333 guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#ffff60 guibg=NONE gui=bold cterm=NONE
hi Todo guifg=#ffff00 guibg=#0000ff gui=reverse cterm=reverse
hi Type guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Label Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Statement
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=231 ctermbg=236 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=88 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=241 cterm=NONE
hi CursorLineNr ctermfg=226 ctermbg=241 cterm=NONE
hi EndOfBuffer ctermfg=153 ctermbg=239 cterm=NONE
hi StatusLine ctermfg=236 ctermbg=231 cterm=NONE
hi StatusLineNC ctermfg=236 ctermbg=252 cterm=NONE
hi TabLineSel ctermfg=236 ctermbg=231 cterm=NONE
hi TabLine ctermfg=236 ctermbg=252 cterm=NONE
hi QuickFixLine ctermfg=231 ctermbg=90 cterm=NONE
hi Pmenu ctermfg=231 ctermbg=239 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=250 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
hi Error ctermfg=196 ctermbg=231 cterm=reverse
hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
hi FoldColumn ctermfg=153 ctermbg=NONE cterm=NONE
hi Folded ctermfg=18 ctermbg=252 cterm=NONE
hi IncSearch ctermfg=46 ctermbg=NONE cterm=reverse
hi MatchParen ctermfg=NONE ctermbg=30 cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
hi NonText ctermfg=153 ctermbg=239 cterm=NONE
hi Question ctermfg=46 ctermbg=NONE cterm=NONE
hi Search ctermfg=16 ctermbg=226 cterm=NONE
hi SignColumn ctermfg=30 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=46 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=51 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLineFill TabLine
hi ToolbarButton ctermfg=NONE ctermbg=246 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=231 ctermbg=231 cterm=NONE
hi Visual ctermfg=231 ctermbg=246 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi debugBreakpoint ctermfg=18 ctermbg=196 cterm=NONE
hi debugPC ctermfg=18 ctermbg=21 cterm=NONE
hi! link Terminal Normal
hi! link CursorColumn CursorLine
hi! link CursorIM Cursor
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
hi! link diffIdentical WarningMsg
hi! link diffDiffer WarningMsg
hi! link diffCommon WarningMsg
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=NONE
hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=51 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=236 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=201 ctermbg=NONE cterm=NONE
hi Special ctermfg=214 ctermbg=NONE cterm=NONE
hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
hi Todo ctermfg=226 ctermbg=21 cterm=reverse
hi Type ctermfg=46 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Label Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Statement
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
let colors_name = "evening"
hi Normal ctermbg=DarkGrey ctermfg=White guifg=White guibg=grey20
" Groups used in the 'highlight' and 'guicursor' options default value.
hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
hi IncSearch term=reverse cterm=reverse gui=reverse
hi ModeMsg term=bold cterm=bold gui=bold
hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
hi StatusLineNC term=reverse cterm=reverse gui=reverse
hi VertSplit term=reverse cterm=reverse gui=reverse
hi Visual term=reverse ctermbg=black guibg=grey60
hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold
hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
hi Cursor guibg=Green guifg=Black
hi lCursor guibg=Cyan guifg=Black
hi Directory term=bold ctermfg=LightCyan guifg=Cyan
hi LineNr term=underline ctermfg=Yellow guifg=Yellow
hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey30
hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green
hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan
hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta
hi WarningMsg term=standout ctermfg=LightRed guifg=Red
hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue
hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta
hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan
hi CursorColumn term=reverse ctermbg=Black guibg=grey40
hi CursorLine term=underline cterm=underline guibg=grey40
" Groups for syntax highlighting
hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0
hi Special term=bold ctermfg=LightRed guifg=Orange
if &t_Co > 8
hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=underline
hi EndOfBuffer ctermfg=lightblue ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=black ctermbg=white cterm=NONE
hi StatusLineNC ctermfg=black ctermbg=gray cterm=NONE
hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
hi TabLine ctermfg=black ctermbg=gray cterm=NONE
hi QuickFixLine ctermfg=white ctermbg=darkmagenta cterm=NONE
hi Pmenu ctermfg=white ctermbg=darkgray cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=black ctermbg=gray cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=black ctermbg=green cterm=NONE
hi Error ctermfg=red ctermbg=white cterm=reverse
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
hi FoldColumn ctermfg=lightblue ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=gray cterm=NONE
hi IncSearch ctermfg=green ctermbg=NONE cterm=reverse
hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=lightblue ctermbg=darkgray cterm=NONE
hi Question ctermfg=green ctermbg=NONE cterm=NONE
hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=cyan ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLineFill TabLine
hi ToolbarButton ctermfg=NONE ctermbg=darkgray cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=white ctermbg=white cterm=NONE
hi Visual ctermfg=white ctermbg=darkgray cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi debugBreakpoint ctermfg=darkblue ctermbg=red cterm=NONE
hi debugPC ctermfg=darkblue ctermbg=blue cterm=NONE
hi! link Terminal Normal
hi! link CursorColumn CursorLine
hi! link CursorIM Cursor
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
hi! link diffIdentical WarningMsg
hi! link diffDiffer WarningMsg
hi! link diffCommon WarningMsg
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Comment ctermfg=lightblue ctermbg=NONE cterm=NONE
hi Constant ctermfg=magenta ctermbg=NONE cterm=NONE
hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=gray ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Special ctermfg=darkred ctermbg=NONE cterm=NONE
hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkyellow ctermbg=blue cterm=reverse
hi Type ctermfg=green ctermbg=NONE cterm=NONE
hi Underlined ctermfg=lightblue ctermbg=NONE cterm=underline
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Label Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Statement
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
hi Ignore ctermfg=DarkGrey guifg=grey20
" vim: sw=2
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: lightmagenta #ffa0a0 217 magenta
" Color: blue #0000ff 21 blue
" Color: cyan #00ffff 51 cyan
" Color: yellow #ffff00 226 darkyellow
" Color: white #ffffff 231 white
" Color: black #000000 16 black
" Color: green #00ff00 46 green
" Color: magenta #ff80ff 201 darkmagenta
" Color: red #ff0000 196 red
" Color: lightyellow #ffff60 227 yellow
" Color: darkblue #00008b 18 darkblue
" Color: darkcyan #008b8b 30 darkcyan
" Color: darkmagenta #8b008b 90 darkmagenta
" Color: lightblue #add8e6 153 lightblue
" Color: orange #ffa500 214 darkred
" Color: seagreen #2e8b57 29 darkgreen
" Color: lightgrey #d3d3d3 252 gray
" Color: grey #bebebe 250 gray
" Color: grey20 #333333 236 gray
" Color: grey30 #4d4d4d 239 darkgray
" Color: grey40 #666666 241 darkgray
" Color: grey60 #999999 246 darkgray
" Color: xtermblue #0087ff 33 blue
" Color: xtermdarkblue #006faf 25 darkblue
" Color: xtermred #ff5f5f 203 red
" Color: comment #80a0ff 111 lightblue
" Color: darkred #8b0000 88 darkred
" Term colors: black orange seagreen yellow xtermdarkblue darkmagenta darkcyan grey
" Term colors: grey30 xtermred green lightyellow xtermblue magenta cyan white
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,40 +1,337 @@
" Vim color file
" Maintainer: Shian Lee
" Last Change: 2014 Mar 6 (for vim 7.4)
" Remark: "industry" stands for 'industrial' color scheme. In industrial
" HMI (Human-Machine-Interface) programming, using a standard color
" scheme is mandatory in many cases (in traffic-lights for example):
" LIGHT_RED is 'Warning'
" LIGHT_YELLOW is 'Attention'
" LIGHT_GREEN is 'Normal'
" LIGHT_MAGENTA is 'Warning-Attention' (light RED-YELLOW)
" LIGHT_CYAN is 'Attention-Normal' (light YELLOW-GREEN).
" BLACK is Dark-High-Contrast Background for maximum safety.
" BLUE is Shade of BLACK (not supposed to get attention).
"
" Industrial color scheme is by nature clear, safe and productive.
" Yet, depends on the file type's syntax, it might appear incorrect.
" Name: industry
" Description: "industry" stands for 'industrial' color scheme.
" Author: Original author Shian Lee.
" Maintainer: Original maintainer Shian Lee.
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:38 2022
" Generated by Colortemplate v2.2.0
" Reset to dark background, then reset everything to defaults:
set background=dark
highlight clear
if exists("syntax_on")
syntax reset
hi clear
let g:colors_name = 'industry'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#303030', '#870000', '#5fd75f', '#afaf00', '#87afff', '#af00af', '#00afaf', '#6c6c6c', '#444444', '#ff0000', '#00ff00', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff']
endif
hi Normal guifg=#dadada guibg=#000000 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#444444 guibg=#000000 gui=NONE cterm=NONE
hi StatusLine guifg=#000000 guibg=#dadada gui=bold cterm=NONE
hi StatusLineNC guifg=#000000 guibg=#6c6c6c gui=NONE cterm=NONE
hi StatusLineTerm guifg=#000000 guibg=#00ff00 gui=bold cterm=NONE
hi StatusLineTermNC guifg=#000000 guibg=#5fd75f gui=NONE cterm=NONE
hi VertSplit guifg=#000000 guibg=#6c6c6c gui=NONE cterm=NONE
hi Pmenu guifg=#dadada guibg=#444444 gui=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=#000000 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
hi TabLine guifg=#dadada guibg=#444444 gui=NONE cterm=NONE
hi TabLineFill guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
hi TabLineSel guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
hi ToolbarButton guifg=#dadada guibg=#6c6c6c gui=bold cterm=NONE
hi ToolbarLine guifg=NONE guibg=#303030 gui=NONE cterm=NONE
hi NonText guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
hi Folded guifg=#00afaf guibg=#303030 gui=NONE cterm=NONE
hi Visual guifg=#dadada guibg=#6c6c6c gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
hi ColorColumn guifg=NONE guibg=#444444 gui=NONE cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#ff00ff gui=NONE cterm=NONE
hi VisualNOS guifg=#dadada guibg=#6c6c6c gui=NONE cterm=NONE
hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
hi SignColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
hi Underlined guifg=#87afff guibg=NONE gui=underline cterm=underline
hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi ModeMsg guifg=#ffffff guibg=NONE gui=bold cterm=NONE
hi WarningMsg guifg=#870000 guibg=NONE gui=bold cterm=NONE
hi MoreMsg guifg=#5fd75f guibg=NONE gui=bold cterm=NONE
hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
hi Todo guifg=#005fff guibg=#ffff00 gui=NONE cterm=NONE
hi MatchParen guifg=#303030 guibg=#afaf00 gui=NONE cterm=NONE
hi Search guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi IncSearch guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi Cursor guifg=#000000 guibg=#dadada gui=NONE cterm=NONE
hi lCursor guifg=#000000 guibg=#ff0000 gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#005fff guibg=NONE guisp=#005fff gui=undercurl cterm=underline
hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
hi SpellRare guifg=#00ff00 guibg=NONE guisp=#00ff00 gui=undercurl cterm=underline
hi Comment guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
hi Function guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#ffffff guibg=NONE gui=bold cterm=NONE
hi Constant guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
hi Special guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi Delimiter guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi Conceal guifg=#6c6c6c guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=253 ctermbg=16 cterm=NONE
hi EndOfBuffer ctermfg=238 ctermbg=16 cterm=NONE
hi StatusLine ctermfg=16 ctermbg=253 cterm=NONE
hi StatusLineNC ctermfg=16 ctermbg=242 cterm=NONE
hi StatusLineTerm ctermfg=16 ctermbg=46 cterm=NONE
hi StatusLineTermNC ctermfg=16 ctermbg=77 cterm=NONE
hi VertSplit ctermfg=16 ctermbg=242 cterm=NONE
hi Pmenu ctermfg=253 ctermbg=238 cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=16 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=242 cterm=NONE
hi TabLine ctermfg=253 ctermbg=238 cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=242 cterm=NONE
hi TabLineSel ctermfg=231 ctermbg=16 cterm=NONE
hi ToolbarButton ctermfg=253 ctermbg=242 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=236 cterm=NONE
hi NonText ctermfg=37 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=37 ctermbg=NONE cterm=NONE
hi Folded ctermfg=37 ctermbg=236 cterm=NONE
hi Visual ctermfg=253 ctermbg=242 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=242 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=242 cterm=NONE
hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=238 cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=201 cterm=NONE
hi VisualNOS ctermfg=253 ctermbg=242 cterm=NONE
hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=37 ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=37 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
hi Error ctermfg=231 ctermbg=196 cterm=NONE
hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
hi ModeMsg ctermfg=231 ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=88 ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=77 ctermbg=NONE cterm=NONE
hi Question ctermfg=46 ctermbg=NONE cterm=NONE
hi Todo ctermfg=27 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=236 ctermbg=142 cterm=NONE
hi Search ctermfg=16 ctermbg=226 cterm=NONE
hi IncSearch ctermfg=16 ctermbg=46 cterm=NONE
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi Cursor ctermfg=16 ctermbg=253 cterm=NONE
hi lCursor ctermfg=16 ctermbg=196 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=27 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=46 ctermbg=NONE cterm=underline
hi Comment ctermfg=37 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=201 ctermbg=NONE cterm=NONE
hi Function ctermfg=46 ctermbg=NONE cterm=NONE
hi Statement ctermfg=231 ctermbg=NONE cterm=NONE
hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=226 ctermbg=NONE cterm=NONE
hi Type ctermfg=46 ctermbg=NONE cterm=NONE
hi Special ctermfg=196 ctermbg=NONE cterm=NONE
hi Delimiter ctermfg=226 ctermbg=NONE cterm=NONE
hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=242 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
let colors_name = "industry"
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi EndOfBuffer ctermfg=darkgrey ctermbg=black cterm=NONE
hi StatusLine ctermfg=black ctermbg=white cterm=NONE
hi StatusLineNC ctermfg=black ctermbg=grey cterm=NONE
hi StatusLineTerm ctermfg=black ctermbg=green cterm=NONE
hi StatusLineTermNC ctermfg=black ctermbg=darkgreen cterm=NONE
hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLine ctermfg=white ctermbg=darkgrey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
hi NonText ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Visual ctermfg=black ctermbg=grey cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
hi VisualNOS ctermfg=white ctermbg=grey cterm=NONE
hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
hi Error ctermfg=white ctermbg=red cterm=NONE
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
hi ModeMsg ctermfg=white ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=green ctermbg=NONE cterm=NONE
hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
hi Search ctermfg=black ctermbg=yellow cterm=NONE
hi IncSearch ctermfg=black ctermbg=green cterm=NONE
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi Cursor ctermfg=black ctermbg=white cterm=NONE
hi lCursor ctermfg=black ctermbg=red cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=green ctermbg=NONE cterm=underline
hi Comment ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Identifier ctermfg=magenta ctermbg=NONE cterm=NONE
hi Function ctermfg=green ctermbg=NONE cterm=NONE
hi Statement ctermfg=white ctermbg=NONE cterm=NONE
hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
hi PreProc ctermfg=yellow ctermbg=NONE cterm=NONE
hi Type ctermfg=green ctermbg=NONE cterm=NONE
hi Special ctermfg=red ctermbg=NONE cterm=NONE
hi Delimiter ctermfg=yellow ctermbg=NONE cterm=NONE
hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
" First set Normal to regular white on black text colors:
hi Normal ctermfg=LightGray ctermbg=Black guifg=#dddddd guibg=Black
" Syntax highlighting (other color-groups using default, see :help group-name):
hi Comment cterm=NONE ctermfg=DarkCyan gui=NONE guifg=#00aaaa
hi Constant cterm=NONE ctermfg=LightCyan gui=NONE guifg=#00ffff
hi Identifier cterm=NONE ctermfg=LightMagenta gui=NONE guifg=#ff00ff
hi Function cterm=NONE ctermfg=LightGreen gui=NONE guifg=#00ff00
hi Statement cterm=NONE ctermfg=White gui=bold guifg=#ffffff
hi PreProc cterm=NONE ctermfg=Yellow gui=NONE guifg=#ffff00
hi Type cterm=NONE ctermfg=LightGreen gui=bold guifg=#00ff00
hi Special cterm=NONE ctermfg=LightRed gui=NONE guifg=#ff0000
hi Delimiter cterm=NONE ctermfg=Yellow gui=NONE guifg=#ffff00
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: foreground #dadada 253 white
" Color: background #000000 16 black
" Color: color00 #303030 236 black
" Color: color08 #444444 238 darkgrey
" Color: color01 #870000 88 darkred
" Color: color09 #FF0000 196 red
" Color: color02 #5FD75F 77 darkgreen
" Color: color10 #00FF00 46 green
" Color: color03 #AFAF00 142 darkyellow
" Color: color11 #FFFF00 226 yellow
" Color: color04 #87AFFF 111 darkblue
" Color: color12 #005FFF 27 blue
" Color: color05 #AF00AF 127 darkmagenta
" Color: color13 #FF00FF 201 magenta
" Color: color06 #00AFAF 37 darkcyan
" Color: color14 #00FFFF 51 cyan
" Color: color07 #6C6C6C 242 grey
" Color: color15 #FFFFFF 231 white
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,73 +1,360 @@
" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2016 Sep 04
" Name: koehler
" Author: original author Ron Aaron <ron@ronware.org>
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
" Website: https://www.github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Thu May 12 18:53:29 2022
" Generated by Colortemplate v2.2.0
set background=dark
hi clear
set background=dark
if exists("syntax_on")
syntax reset
let g:colors_name = 'koehler'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
hi! link Terminal Normal
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Debug Special
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Number
hi! link Function Identifier
hi! link Include PreProc
hi! link IncSearch Visual
hi! link Keyword Statement
hi! link Label Statement
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Statement
hi! link PopupSelected PmenuSel
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
let g:colors_name = "koehler"
hi Normal guifg=white guibg=black
hi Scrollbar guifg=darkcyan guibg=cyan
hi Menu guifg=black guibg=cyan
hi SpecialKey term=bold cterm=bold ctermfg=darkred guifg=#cc0000
hi NonText term=bold cterm=bold ctermfg=darkred gui=bold guifg=#cc0000
hi Directory term=bold cterm=bold ctermfg=brown guifg=#cc8000
hi ErrorMsg term=standout cterm=bold ctermfg=grey ctermbg=red guifg=White guibg=Red
hi Search term=reverse ctermfg=white ctermbg=red guifg=white guibg=Red
hi MoreMsg term=bold cterm=bold ctermfg=darkgreen gui=bold guifg=SeaGreen
hi ModeMsg term=bold cterm=bold gui=bold guifg=White guibg=Blue
hi LineNr term=underline cterm=bold ctermfg=darkcyan guifg=Yellow
hi Question term=standout cterm=bold ctermfg=darkgreen gui=bold guifg=Green
hi StatusLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi StatusLineNC term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
hi Title term=bold cterm=bold ctermfg=darkmagenta gui=bold guifg=Magenta
hi Visual term=reverse cterm=reverse gui=reverse
hi WarningMsg term=standout cterm=bold ctermfg=darkred guifg=Red
hi Cursor guifg=bg guibg=Green
hi Comment term=bold cterm=bold ctermfg=cyan guifg=#80a0ff
hi Constant term=underline cterm=bold ctermfg=magenta guifg=#ffa0a0
hi Special term=bold cterm=bold ctermfg=red guifg=Orange
hi Identifier term=underline ctermfg=brown guifg=#40ffff
hi Statement term=bold cterm=bold ctermfg=yellow gui=bold guifg=#ffff60
hi PreProc term=underline ctermfg=darkmagenta guifg=#ff80ff
hi Type term=underline cterm=bold ctermfg=lightgreen gui=bold guifg=#60ff60
hi Error term=reverse ctermfg=darkcyan ctermbg=black guifg=Red guibg=Black
hi Todo term=standout ctermfg=black ctermbg=darkcyan guifg=Blue guibg=Yellow
hi CursorLine term=underline guibg=#555555 cterm=underline
hi CursorColumn term=underline guibg=#555555 cterm=underline
hi MatchParen term=reverse ctermfg=blue guibg=Blue
hi TabLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
hi Underlined term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
hi Ignore ctermfg=black ctermbg=black guifg=black guibg=black
hi EndOfBuffer term=bold cterm=bold ctermfg=darkred guifg=#cc0000 gui=bold
hi link IncSearch Visual
hi link String Constant
hi link Character Constant
hi link Number Constant
hi link Boolean Constant
hi link Float Number
hi link Function Identifier
hi link Conditional Statement
hi link Repeat Statement
hi link Label Statement
hi link Operator Statement
hi link Keyword Statement
hi link Exception Statement
hi link Include PreProc
hi link Define PreProc
hi link Macro PreProc
hi link PreCondit PreProc
hi link StorageClass Type
hi link Structure Type
hi link Typedef Type
hi link Tag Special
hi link SpecialChar Special
hi link Delimiter Special
hi link SpecialComment Special
hi link Debug Special
hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#8b0000 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#555555 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#555555 gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
hi Folded guifg=#00cdcd guibg=#666666 gui=NONE cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
hi Directory guifg=#cc8000 guibg=NONE gui=NONE cterm=NONE
hi EndOfBuffer guifg=#cd0000 guibg=NONE gui=bold cterm=NONE
hi ErrorMsg guifg=#cd0000 guibg=#ffffff gui=reverse cterm=reverse
hi FoldColumn guifg=#00cdcd guibg=NONE gui=NONE cterm=NONE
hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi MatchParen guifg=NONE guibg=#0000ff gui=NONE cterm=NONE
hi ModeMsg guifg=#ffffff guibg=#0000ff gui=bold cterm=NONE
hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi NonText guifg=#cd0000 guibg=NONE gui=bold cterm=NONE
hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
hi Question guifg=#5c5cff guibg=NONE gui=bold cterm=NONE
hi Search guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#cd0000 guibg=NONE gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#60ff60 guibg=NONE guisp=#60ff60 gui=undercurl cterm=underline
hi SpellLocal guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
hi StatusLine guifg=#0000ff guibg=#ffffff gui=bold cterm=NONE
hi StatusLineNC guifg=#0000ff guibg=#e5e5e5 gui=NONE cterm=NONE
hi TabLine guifg=#0000ff guibg=#ffffff gui=bold cterm=NONE
hi TabLineFill guifg=#0000ff guibg=#ffffff gui=bold cterm=NONE
hi TabLineSel guifg=#ffffff guibg=#0000ff gui=bold cterm=NONE
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
hi VertSplit guifg=#0000ff guibg=#e5e5e5 gui=NONE cterm=NONE
hi Visual guifg=NONE guibg=#666666 gui=reverse cterm=reverse
hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
hi Error guifg=#cd0000 guibg=#ffffff gui=reverse cterm=reverse
hi Identifier guifg=#40ffff guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#ffff60 guibg=NONE gui=bold cterm=NONE
hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
hi Type guifg=#60ff60 guibg=NONE gui=bold cterm=NONE
hi Underlined guifg=#add8e6 guibg=NONE gui=bold,underline cterm=underline
hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=231 ctermbg=16 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=88 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=240 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=240 cterm=NONE
hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi Folded ctermfg=44 ctermbg=59 cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=226 cterm=NONE
hi Conceal ctermfg=254 ctermbg=145 cterm=NONE
hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
hi Directory ctermfg=172 ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=160 ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=160 ctermbg=231 cterm=reverse
hi FoldColumn ctermfg=44 ctermbg=NONE cterm=NONE
hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=21 cterm=NONE
hi ModeMsg ctermfg=231 ctermbg=21 cterm=NONE
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
hi NonText ctermfg=160 ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
hi Question ctermfg=63 ctermbg=NONE cterm=NONE
hi Search ctermfg=231 ctermbg=196 cterm=NONE
hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=160 ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=83 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=51 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
hi StatusLine ctermfg=21 ctermbg=231 cterm=NONE
hi StatusLineNC ctermfg=21 ctermbg=254 cterm=NONE
hi TabLine ctermfg=21 ctermbg=231 cterm=NONE
hi TabLineFill ctermfg=21 ctermbg=231 cterm=NONE
hi TabLineSel ctermfg=231 ctermbg=21 cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=21 ctermbg=254 cterm=NONE
hi Visual ctermfg=NONE ctermbg=59 cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
hi Error ctermfg=160 ctermbg=231 cterm=reverse
hi Identifier ctermfg=87 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
hi Special ctermfg=214 ctermbg=NONE cterm=NONE
hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
hi Todo ctermfg=21 ctermbg=226 cterm=NONE
hi Type ctermfg=83 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=153 ctermbg=NONE cterm=underline
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=yellow cterm=NONE
hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
hi Cursor ctermfg=black ctermbg=green cterm=NONE
hi Directory ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=darkred ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=darkred ctermbg=white cterm=reverse
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=darkblue cterm=NONE
hi ModeMsg ctermfg=white ctermbg=darkblue cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=darkred ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
hi Question ctermfg=blue ctermbg=NONE cterm=NONE
hi Search ctermfg=white ctermbg=red cterm=NONE
hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkred ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=cyan ctermbg=NONE cterm=underline
hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
hi StatusLine ctermfg=darkblue ctermbg=white cterm=NONE
hi StatusLineNC ctermfg=darkblue ctermbg=grey cterm=NONE
hi TabLine ctermfg=darkblue ctermbg=white cterm=NONE
hi TabLineFill ctermfg=darkblue ctermbg=white cterm=NONE
hi TabLineSel ctermfg=white ctermbg=darkblue cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=darkblue ctermbg=grey cterm=NONE
hi Visual ctermfg=NONE ctermbg=darkgrey cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi Error ctermfg=darkred ctermbg=white cterm=reverse
hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=black ctermbg=black cterm=NONE
hi PreProc ctermfg=magenta ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkblue ctermbg=yellow cterm=NONE
hi Type ctermfg=green ctermbg=NONE cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: xterm0 #000000 16 black
" Color: xterm1 #cd0000 160 darkred
" Color: xterm2 #00cd00 40 darkgreen
" Color: xterm3 #cdcd00 184 darkyellow
" Color: xterm4 #0000ee 20 darkblue
" Color: xterm5 #cd00cd 164 darkmagenta
" Color: xterm6 #00cdcd 44 darkcyan
" Color: xterm7 #e5e5e5 254 grey
" Color: xterm8 #7f7f7f 102 darkgrey
" Color: xterm9 #ff0000 196 red
" Color: xterm10 #00ff00 46 green
" Color: xterm11 #ffff00 226 yellow
" Color: xterm12 #5c5cff 63 blue
" Color: xterm13 #ff00ff 201 magenta
" Color: xterm14 #00ffff 51 cyan
" Color: xterm15 #ffffff 231 white
" Color: Pmenu #444444 238 darkgrey
" Color: rgbGrey40 #666666 59 darkgrey
" Color: rgbDarkGrey #a9a9a9 145 grey
" Color: rgbDarkBlue #00008b 20 darkblue
" Color: rgbDarkMagenta #8b008b 90 darkmagenta
" Color: rgbBlue #0000ff 21 darkblue
" Color: rgbDarkCyan #008b8b 44 darkcyan
" Color: rgbSeaGreen #2e8b57 29 darkgreen
" Color: rgbGrey #bebebe 250 grey
" Color: StatusLineTerm #90ee90 120 darkgreen
" Color: ToolbarLine #7f7f7f 244 darkgrey
" Color: Comment #80a0ff 111 blue
" Color: Constant #ffa0a0 217 darkred
" Color: Special #ffa500 214 darkyellow
" Color: Identifier #40ffff 87 cyan
" Color: Statement #ffff60 227 yellow
" Color: PreProc #ff80ff 213 magenta
" Color: Type #60ff60 83 green
" Color: koeDirectory #cc8000 172 darkyellow
" Color: koeCursorLine #555555 240 black
" Color: koeLightBlue #ADD8E6 153 blue
" Color: koeDarkRed #8b0000 88 darkred
" Term colors: xterm0 xterm1 xterm2 xterm3 xterm4 xterm5 xterm6 xterm7
" Term colors: xterm8 xterm9 xterm10 xterm11 xterm12 xterm13
" Term colors: xterm14 xterm15
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

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

View File

@ -1,56 +1,334 @@
" Vim color file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 Apr 15
" Name: morning
" Description: Colorscheme with light grey background.
" Author: Original author Bram Moolenaar <Bram@vim.org>
" Maintainer: Original maintainer Bram Moolenaar <Bram@vim.org>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sat May 14 11:15:43 2022
" This color scheme uses a light grey background.
" Generated by Colortemplate v2.2.0
" First remove all existing highlighting.
set background=light
hi clear
if exists("syntax_on")
syntax reset
let g:colors_name = 'morning'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#e4e4e4', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#bcbcbc', '#0000ff', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#000000']
endif
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi Normal guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#0000ff guibg=#cccccc gui=bold cterm=NONE
hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#d3d3d3 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#d3d3d3 gui=NONE cterm=NONE
hi CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi StatusLine guifg=#eeeeee guibg=#000000 gui=bold cterm=NONE
hi StatusLineNC guifg=#bcbcbc guibg=#000000 gui=NONE cterm=NONE
hi VertSplit guifg=#bcbcbc guibg=#000000 gui=NONE cterm=NONE
hi Pmenu guifg=#000000 guibg=#b2b2b2 gui=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#000000 gui=NONE cterm=NONE
hi TabLine guifg=#000000 guibg=#bcbcbc gui=underline cterm=underline
hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel guifg=#000000 guibg=#e4e4e4 gui=bold cterm=NONE
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton guifg=NONE guibg=#bcbcbc gui=bold cterm=NONE
hi NonText guifg=#0000ff guibg=#bcbcbc gui=bold cterm=NONE
hi SpecialKey guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
hi Visual guifg=NONE guibg=#d0d0d0 gui=NONE cterm=NONE
hi VisualNOS guifg=NONE guibg=#0000ff gui=NONE cterm=NONE
hi LineNr guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
hi SignColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
hi Error guifg=#ff0000 guibg=#e4e4e4 gui=reverse cterm=reverse
hi ErrorMsg guifg=#ff0000 guibg=#e4e4e4 gui=reverse cterm=reverse
hi WarningMsg guifg=#6a0dad guibg=NONE gui=bold cterm=NONE
hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi ModeMsg guifg=#000000 guibg=NONE gui=bold cterm=NONE
hi Question guifg=#008787 guibg=NONE gui=bold cterm=NONE
hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi MatchParen guifg=#e4e4e4 guibg=#6a5acd gui=NONE cterm=NONE
hi Search guifg=#e4e4e4 guibg=#6a0dad gui=NONE cterm=NONE
hi IncSearch guifg=#2e8b57 guibg=NONE gui=reverse cterm=reverse
hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
hi ColorColumn guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi Cursor guifg=#e4e4e4 guibg=#2e8b57 gui=NONE cterm=NONE
hi lCursor guifg=#e4e4e4 guibg=#a52a2a gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#00d700 guibg=NONE guisp=#00d700 gui=undercurl cterm=underline
hi SpellLocal guifg=#a52a2a guibg=NONE guisp=#a52a2a gui=undercurl cterm=underline
hi SpellRare guifg=#2e8b57 guibg=NONE guisp=#2e8b57 gui=undercurl cterm=underline
hi Comment guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ff00ff guibg=#eeeeee gui=NONE cterm=NONE
hi Identifier guifg=#008787 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
hi PreProc guifg=#6a0dad guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi Special guifg=#6a5acd guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Directory guifg=#008787 guibg=NONE gui=bold cterm=NONE
hi Conceal guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
hi Title guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi Normal ctermfg=16 ctermbg=254 cterm=NONE
hi EndOfBuffer ctermfg=21 ctermbg=252 cterm=NONE
hi Folded ctermfg=18 ctermbg=252 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=252 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=252 cterm=NONE
hi CursorLineNr ctermfg=124 ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=226 cterm=NONE
hi StatusLine ctermfg=255 ctermbg=16 cterm=NONE
hi StatusLineNC ctermfg=250 ctermbg=16 cterm=NONE
hi VertSplit ctermfg=250 ctermbg=16 cterm=NONE
hi Pmenu ctermfg=16 ctermbg=249 cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=254 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=16 cterm=NONE
hi TabLine ctermfg=16 ctermbg=250 cterm=underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=16 ctermbg=254 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=250 cterm=NONE
hi NonText ctermfg=21 ctermbg=250 cterm=NONE
hi SpecialKey ctermfg=250 ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=252 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=21 cterm=NONE
hi LineNr ctermfg=124 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=18 ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=18 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
hi Error ctermfg=196 ctermbg=254 cterm=reverse
hi ErrorMsg ctermfg=196 ctermbg=254 cterm=reverse
hi WarningMsg ctermfg=55 ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
hi ModeMsg ctermfg=16 ctermbg=NONE cterm=NONE
hi Question ctermfg=30 ctermbg=NONE cterm=NONE
hi Todo ctermfg=16 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=254 ctermbg=62 cterm=NONE
hi Search ctermfg=254 ctermbg=55 cterm=NONE
hi IncSearch ctermfg=29 ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi ColorColumn ctermfg=16 ctermbg=231 cterm=NONE
hi Cursor ctermfg=254 ctermbg=29 cterm=NONE
hi lCursor ctermfg=254 ctermbg=124 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=40 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=124 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=29 ctermbg=NONE cterm=underline
hi Comment ctermfg=21 ctermbg=NONE cterm=NONE
hi Constant ctermfg=201 ctermbg=255 cterm=NONE
hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
hi Statement ctermfg=124 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=55 ctermbg=NONE cterm=NONE
hi Type ctermfg=29 ctermbg=NONE cterm=NONE
hi Special ctermfg=62 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=21 ctermbg=NONE cterm=NONE
hi Title ctermfg=124 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
let colors_name = "morning"
hi Normal ctermfg=Black ctermbg=LightGrey guifg=Black guibg=grey90
" Groups used in the 'highlight' and 'guicursor' options default value.
hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
hi IncSearch term=reverse cterm=reverse gui=reverse
hi ModeMsg term=bold cterm=bold gui=bold
hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
hi StatusLineNC term=reverse cterm=reverse gui=reverse
hi VertSplit term=reverse cterm=reverse gui=reverse
hi Visual term=reverse ctermbg=grey guibg=grey80
hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold
hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
hi Cursor guibg=Green guifg=NONE
hi lCursor guibg=Cyan guifg=NONE
hi Directory term=bold ctermfg=DarkBlue guifg=Blue
hi LineNr term=underline ctermfg=Brown guifg=Brown
hi MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen
hi NonText term=bold ctermfg=Blue gui=bold guifg=Blue guibg=grey80
hi Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen
hi Search term=reverse ctermbg=Yellow ctermfg=NONE guibg=Yellow guifg=NONE
hi SpecialKey term=bold ctermfg=DarkBlue guifg=Blue
hi Title term=bold ctermfg=DarkMagenta gui=bold guifg=Magenta
hi WarningMsg term=standout ctermfg=DarkRed guifg=Red
hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi Folded term=standout ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
hi FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
hi DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue
hi DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta
hi DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan
hi CursorLine term=underline cterm=underline guibg=grey80
hi CursorColumn term=reverse ctermbg=grey guibg=grey80
" Colors for syntax highlighting
hi Constant term=underline ctermfg=DarkRed guifg=Magenta guibg=grey95
hi Special term=bold ctermfg=DarkMagenta guifg=SlateBlue guibg=grey95
if &t_Co > 8
hi Statement term=bold cterm=bold ctermfg=Brown gui=bold guifg=Brown
if s:t_Co >= 16
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi Normal ctermfg=black ctermbg=grey cterm=NONE
hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=darkred ctermbg=NONE cterm=underline
hi QuickFixLine ctermfg=black ctermbg=yellow cterm=NONE
hi StatusLine ctermfg=white ctermbg=black cterm=NONE
hi StatusLineNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi VertSplit ctermfg=darkgrey ctermbg=black cterm=NONE
hi Pmenu ctermfg=black ctermbg=white cterm=NONE
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=grey cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=black cterm=NONE
hi TabLine ctermfg=black ctermbg=white cterm=underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=black ctermbg=grey cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=white cterm=NONE
hi NonText ctermfg=blue ctermbg=white cterm=NONE
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=white cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=blue cterm=NONE
hi LineNr ctermfg=darkred ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
hi Error ctermfg=red ctermbg=grey cterm=reverse
hi ErrorMsg ctermfg=red ctermbg=grey cterm=reverse
hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi ModeMsg ctermfg=black ctermbg=NONE cterm=NONE
hi Question ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi MatchParen ctermfg=grey ctermbg=darkblue cterm=NONE
hi Search ctermfg=grey ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=white cterm=NONE
hi Cursor ctermfg=grey ctermbg=darkgreen cterm=NONE
hi lCursor ctermfg=grey ctermbg=darkred cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=underline
hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
hi Constant ctermfg=magenta ctermbg=white cterm=NONE
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Special ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Conceal ctermfg=blue ctermbg=NONE cterm=NONE
hi Title ctermfg=darkred ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
hi Ignore ctermfg=LightGrey guifg=grey90
" vim: sw=2
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: light
" Color: comment #0000ff 21 blue
" Color: constant #ff00ff 201 magenta
" Color: identifier #008787 30 darkcyan
" Color: statement #a52a2a 124 darkred
" Color: preproc #6a0dad 55 darkmagenta
" Color: type #2e8b57 29 darkgreen
" Color: special #6a5acd 62 darkblue
" Color: fg0 #000000 16 black
" Color: bg0 #e4e4e4 254 grey
" Color: bg1 #bcbcbc 250 white
" Color: status #bcbcbc 250 darkgrey
" Color: bg2 #eeeeee 255 white
" Color: endofbuffer #cccccc 252 darkgrey
" Color: visual #d0d0d0 252 white
" Color: folded #d3d3d3 252 darkgrey
" Color: folded_fg #00008b 18 darkblue
" Color: pmenu #b2b2b2 249 white
" Color: wildmenu #ffff00 226 yellow
" Color: error #ff0000 196 red
" Color: colorcolumn #ffffff 231 white
" Color: spellcap #00d700 40 green
" Term colors: bg0 statement constant preproc identifier type special bg1
" Term colors: comment statement constant preproc identifier type special fg0
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,41 +1,335 @@
" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2003 May 02
" Name: murphy
" Description: Green foreground black background.
" Author: Original author Ron Aaron <ron@ronware.org>.
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>.
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:41 2022
" Generated by Colortemplate v2.2.0
set background=dark
hi clear
set background=dark
if exists("syntax_on")
syntax reset
endif
let g:colors_name = "murphy"
let g:colors_name = 'murphy'
hi Normal ctermbg=Black ctermfg=lightgreen guibg=Black guifg=lightgreen
hi Comment term=bold ctermfg=LightRed guifg=Orange
hi Constant term=underline ctermfg=LightGreen guifg=White gui=NONE
hi Identifier term=underline ctermfg=LightCyan guifg=#00ffff
hi Ignore ctermfg=black guifg=bg
hi PreProc term=underline ctermfg=LightBlue guifg=Wheat
hi Search term=reverse guifg=white guibg=Blue
hi Special term=bold ctermfg=LightRed guifg=magenta
hi Statement term=bold ctermfg=Yellow guifg=#ffff00 gui=NONE
hi Type ctermfg=LightGreen guifg=grey gui=none
hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White
hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
" From the source:
hi Cursor guifg=Orchid guibg=fg
hi Directory term=bold ctermfg=LightCyan guifg=Cyan
hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
hi IncSearch term=reverse cterm=reverse gui=reverse
hi LineNr term=underline ctermfg=Yellow guifg=Yellow
hi ModeMsg term=bold cterm=bold gui=bold
hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
hi NonText term=bold ctermfg=Blue gui=bold guifg=Blue
hi Question term=standout ctermfg=LightGreen gui=bold guifg=Cyan
hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan
hi StatusLine term=reverse,bold cterm=reverse gui=NONE guifg=White guibg=darkblue
hi StatusLineNC term=reverse cterm=reverse gui=NONE guifg=white guibg=#333333
hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Pink
hi WarningMsg term=standout ctermfg=LightRed guifg=Red
hi Visual term=reverse cterm=reverse gui=NONE guifg=white guibg=darkgreen
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#303030', '#ffa700', '#005f00', '#ffd7af', '#87afff', '#ffafaf', '#00afaf', '#bcbcbc', '#444444', '#ff0000', '#00875f', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff']
endif
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi Normal guifg=#87ff87 guibg=#000000 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=NONE cterm=NONE
hi StatusLine guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
hi StatusLineNC guifg=#ffffff guibg=#3a3a3a gui=NONE cterm=NONE
hi VertSplit guifg=#ffffff guibg=#3a3a3a gui=NONE cterm=NONE
hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=#303030 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#bcbcbc gui=NONE cterm=NONE
hi TabLineFill guifg=NONE guibg=#303030 gui=NONE cterm=NONE
hi TabLine guifg=#87ff87 guibg=#444444 gui=NONE cterm=NONE
hi TabLineSel guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=#303030 gui=NONE cterm=NONE
hi ToolbarButton guifg=#ffffff guibg=#444444 gui=bold cterm=NONE
hi NonText guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
hi QuickFixLine guifg=#303030 guibg=#00afaf gui=NONE cterm=NONE
hi Folded guifg=#00afaf guibg=#303030 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#444444 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#444444 gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
hi ColorColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE
hi Visual guifg=#ffffff guibg=#005f00 gui=NONE cterm=NONE
hi VisualNOS guifg=#ffffff guibg=#005f00 gui=NONE cterm=NONE
hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
hi SignColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
hi Underlined guifg=#00afaf guibg=NONE gui=underline cterm=underline
hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi ModeMsg guifg=#87ff87 guibg=NONE gui=bold cterm=NONE
hi WarningMsg guifg=#ffa700 guibg=NONE gui=bold cterm=NONE
hi MoreMsg guifg=#005f00 guibg=NONE gui=bold cterm=NONE
hi Question guifg=#00ffff guibg=NONE gui=bold cterm=NONE
hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
hi MatchParen guifg=#303030 guibg=#ffd7af gui=NONE cterm=NONE
hi Search guifg=#ffffff guibg=#0000ff gui=NONE cterm=NONE
hi IncSearch guifg=#ffa700 guibg=NONE gui=reverse cterm=reverse
hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi Cursor guifg=#000000 guibg=#87ff87 gui=NONE cterm=NONE
hi lCursor guifg=#000000 guibg=#ff0000 gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
hi SpellLocal guifg=#ffd7af guibg=NONE guisp=#ffd7af gui=undercurl cterm=underline
hi SpellRare guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
hi Comment guifg=#ffa700 guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#ffd7af guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi Conceal guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi Normal ctermfg=120 ctermbg=16 cterm=NONE
hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
hi StatusLine ctermfg=231 ctermbg=18 cterm=NONE
hi StatusLineNC ctermfg=231 ctermbg=237 cterm=NONE
hi VertSplit ctermfg=231 ctermbg=237 cterm=NONE
hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=236 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=250 cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=236 cterm=NONE
hi TabLine ctermfg=120 ctermbg=238 cterm=NONE
hi TabLineSel ctermfg=231 ctermbg=16 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=236 cterm=NONE
hi ToolbarButton ctermfg=231 ctermbg=238 cterm=NONE
hi NonText ctermfg=37 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=37 ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=236 ctermbg=37 cterm=NONE
hi Folded ctermfg=37 ctermbg=236 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=238 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=238 cterm=NONE
hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=235 cterm=NONE
hi Visual ctermfg=231 ctermbg=22 cterm=NONE
hi VisualNOS ctermfg=231 ctermbg=22 cterm=NONE
hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=37 ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=37 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=37 ctermbg=NONE cterm=underline
hi Error ctermfg=231 ctermbg=196 cterm=NONE
hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
hi ModeMsg ctermfg=120 ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=214 ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=22 ctermbg=NONE cterm=NONE
hi Question ctermfg=51 ctermbg=NONE cterm=NONE
hi Todo ctermfg=21 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=236 ctermbg=223 cterm=NONE
hi Search ctermfg=231 ctermbg=21 cterm=NONE
hi IncSearch ctermfg=214 ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi Cursor ctermfg=16 ctermbg=120 cterm=NONE
hi lCursor ctermfg=16 ctermbg=196 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=51 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=223 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=226 ctermbg=NONE cterm=underline
hi Comment ctermfg=214 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=51 ctermbg=NONE cterm=NONE
hi Statement ctermfg=226 ctermbg=NONE cterm=NONE
hi Constant ctermfg=231 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=223 ctermbg=NONE cterm=NONE
hi Type ctermfg=250 ctermbg=NONE cterm=NONE
hi Special ctermfg=201 ctermbg=NONE cterm=NONE
hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=250 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 16
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi Normal ctermfg=green ctermbg=black cterm=NONE
hi EndOfBuffer ctermfg=blue ctermbg=black cterm=NONE
hi StatusLine ctermfg=white ctermbg=darkblue cterm=NONE
hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=NONE
hi VertSplit ctermfg=white ctermbg=darkgrey cterm=NONE
hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLine ctermfg=green ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
hi NonText ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
hi ColorColumn ctermfg=green ctermbg=darkgrey cterm=NONE
hi Visual ctermfg=white ctermbg=darkgreen cterm=NONE
hi VisualNOS ctermfg=white ctermbg=darkgreen cterm=NONE
hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Underlined ctermfg=darkcyan ctermbg=NONE cterm=underline
hi Error ctermfg=white ctermbg=red cterm=NONE
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
hi ModeMsg ctermfg=green ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=cyan ctermbg=NONE cterm=NONE
hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
hi Search ctermfg=white ctermbg=blue cterm=NONE
hi IncSearch ctermfg=darkred ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi Cursor ctermfg=black ctermbg=green cterm=NONE
hi lCursor ctermfg=black ctermbg=red cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=cyan ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=underline
hi SpellRare ctermfg=yellow ctermbg=NONE cterm=underline
hi Comment ctermfg=darkred ctermbg=NONE cterm=NONE
hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
hi Constant ctermfg=white ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=grey ctermbg=NONE cterm=NONE
hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: foreground #87FF87 120 green
" Color: background #000000 16 black
" Color: color00 #303030 236 black
" Color: color08 #444444 238 darkgrey
" Color: color01 #FFA700 214 darkred
" Color: color09 #FF0000 196 red
" Color: color02 #005F00 22 darkgreen
" Color: color10 #00875F 29 green
" Color: color03 #FFD7AF 223 darkyellow
" Color: color11 #FFFF00 226 yellow
" Color: color04 #00008B 18 darkblue
" Color: color12 #0000FF 21 blue
" Color: color05 #FFAFAF 217 darkmagenta
" Color: color13 #FF00FF 201 magenta
" Color: color06 #00AFAF 37 darkcyan
" Color: color14 #00FFFF 51 cyan
" Color: color07 #BCBCBC 250 grey
" Color: color15 #FFFFFF 231 white
" Color: color16 #262626 235 black
" Color: color17 #3A3A3A 237 darkgrey
" Color: color04t #87AFFF 111 darkblue
" Color: color12t #005FFF 27 blue
" Term colors: color00 color01 color02 color03 color04t color05 color06 color07
" Term colors: color08 color09 color10 color11 color12t color13 color14 color15
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,26 +1,362 @@
" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2003 May 02
" Name: pablo
" Author: Ron Aaron <ron@ronware.org>
" Maintainer: Original maintainerRon Aaron <ron@ronware.org>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:41 2022
" Generated by Colortemplate v2.2.0
set background=dark
hi clear
set background=dark
if exists("syntax_on")
syntax reset
endif
let g:colors_name = "pablo"
let g:colors_name = 'pablo'
highlight Comment ctermfg=8 guifg=#808080
highlight Constant ctermfg=14 cterm=none guifg=#00ffff gui=none
highlight Identifier ctermfg=6 guifg=#00c0c0
highlight Statement ctermfg=3 cterm=bold guifg=#c0c000 gui=bold
highlight PreProc ctermfg=10 guifg=#00ff00
highlight Type ctermfg=2 guifg=#00c000
highlight Special ctermfg=12 guifg=#0000ff
highlight Error ctermbg=9 guibg=#ff0000
highlight Todo ctermfg=4 ctermbg=3 guifg=#000080 guibg=#c0c000
highlight Directory ctermfg=2 guifg=#00c000
highlight StatusLine ctermfg=11 ctermbg=12 cterm=none guifg=#ffff00 guibg=#0000ff gui=none
highlight Normal guifg=#ffffff guibg=#000000
highlight Search ctermbg=3 guibg=#c0c000
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi! link Terminal Normal
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Comment guifg=#808080 guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#00c0c0 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#c0c000 guibg=NONE gui=bold cterm=NONE
hi PreProc guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#00c000 guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi Todo guifg=#000000 guibg=#c0c000 gui=NONE cterm=NONE
hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
hi Cursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi lCursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
hi Directory guifg=#00c000 guibg=NONE gui=NONE cterm=NONE
hi Search guifg=#000000 guibg=#c0c000 gui=NONE cterm=NONE
hi IncSearch guifg=#ffffff guibg=NONE gui=reverse cterm=reverse
hi NonText guifg=#0000ff guibg=NONE gui=bold cterm=NONE
hi EndOfBuffer guifg=#0000ff guibg=NONE gui=bold cterm=NONE
hi ErrorMsg guifg=#ffffff guibg=#cd0000 gui=NONE cterm=NONE
hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi SignColumn guifg=#00ffff guibg=#a9a9a9 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#4d4d4d gui=NONE cterm=NONE
hi FoldColumn guifg=#7f7f7f guibg=#303030 gui=NONE cterm=NONE
hi Folded guifg=#7f7f7f guibg=#303030 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffff00 guibg=#3a3a3a gui=bold cterm=NONE
hi Visual guifg=#00008b guibg=#a9a9a9 gui=NONE cterm=NONE
hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
hi LineNr guifg=#7f7f7f guibg=NONE gui=NONE cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg guifg=#5c5cff guibg=NONE gui=bold cterm=NONE
hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#5c5cff guibg=NONE guisp=#5c5cff gui=undercurl cterm=underline
hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
hi SpellRare guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
hi StatusLine guifg=#ffff00 guibg=#0000ee gui=NONE cterm=NONE
hi StatusLineNC guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi VertSplit guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi TabLine guifg=#ffffff guibg=#7f7f7f gui=NONE cterm=NONE
hi TabLineFill guifg=NONE guibg=#000000 gui=reverse cterm=reverse
hi TabLineSel guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
hi ToolbarLine guifg=NONE guibg=#000000 gui=NONE cterm=NONE
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
hi Pmenu guifg=fg guibg=#303030 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=231 ctermbg=16 cterm=NONE
hi! link Terminal Normal
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Comment ctermfg=244 ctermbg=NONE cterm=NONE
hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=37 ctermbg=NONE cterm=NONE
hi Statement ctermfg=142 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=46 ctermbg=NONE cterm=NONE
hi Type ctermfg=34 ctermbg=NONE cterm=NONE
hi Special ctermfg=21 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
hi Error ctermfg=231 ctermbg=196 cterm=NONE
hi Todo ctermfg=16 ctermbg=142 cterm=NONE
hi Conceal ctermfg=254 ctermbg=248 cterm=NONE
hi Cursor ctermfg=16 ctermbg=231 cterm=NONE
hi lCursor ctermfg=16 ctermbg=231 cterm=NONE
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi Title ctermfg=225 ctermbg=NONE cterm=NONE
hi Directory ctermfg=34 ctermbg=NONE cterm=NONE
hi Search ctermfg=16 ctermbg=142 cterm=NONE
hi IncSearch ctermfg=231 ctermbg=NONE cterm=reverse
hi NonText ctermfg=63 ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=63 ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
hi WarningMsg ctermfg=224 ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=51 ctermbg=248 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=239 cterm=NONE
hi FoldColumn ctermfg=102 ctermbg=236 cterm=NONE
hi Folded ctermfg=102 ctermbg=236 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=237 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=237 cterm=NONE
hi CursorLineNr ctermfg=226 ctermbg=237 cterm=NONE
hi Visual ctermfg=20 ctermbg=248 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
hi LineNr ctermfg=102 ctermbg=NONE cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi MatchParen ctermfg=NONE ctermbg=44 cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=63 ctermbg=NONE cterm=NONE
hi Question ctermfg=121 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=81 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=44 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=63 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=226 ctermbg=NONE cterm=underline
hi StatusLine ctermfg=226 ctermbg=20 cterm=NONE
hi StatusLineNC ctermfg=16 ctermbg=231 cterm=NONE
hi VertSplit ctermfg=16 ctermbg=231 cterm=NONE
hi TabLine ctermfg=231 ctermbg=102 cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=16 cterm=reverse
hi TabLineSel ctermfg=231 ctermbg=16 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=16 cterm=NONE
hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
hi Pmenu ctermfg=fg ctermbg=236 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=254 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi! link Terminal Normal
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi PreProc ctermfg=green ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Special ctermfg=blue ctermbg=NONE cterm=NONE
hi Underlined ctermfg=darkgreen ctermbg=NONE cterm=underline
hi Ignore ctermfg=black ctermbg=black cterm=NONE
hi Error ctermfg=white ctermbg=red cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
hi Cursor ctermfg=black ctermbg=white cterm=NONE
hi lCursor ctermfg=black ctermbg=white cterm=NONE
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
hi IncSearch ctermfg=white ctermbg=NONE cterm=reverse
hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=cyan ctermbg=black cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Folded ctermfg=blue ctermbg=NONE cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
hi Visual ctermfg=darkblue ctermbg=grey cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=blue ctermbg=NONE cterm=NONE
hi Question ctermfg=green ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=yellow ctermbg=NONE cterm=underline
hi StatusLine ctermfg=yellow ctermbg=darkblue cterm=NONE
hi StatusLineNC ctermfg=black ctermbg=white cterm=NONE
hi VertSplit ctermfg=black ctermbg=white cterm=NONE
hi TabLine ctermfg=white ctermbg=darkgrey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
hi Pmenu ctermfg=fg ctermbg=darkgrey cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=black ctermbg=grey cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: color00 #000000 16 black
" Color: color08 #7f7f7f 102 darkgrey
" Color: color01 #cd0000 160 darkred
" Color: color09 #ff0000 196 red
" Color: color02 #00cd00 40 darkgreen
" Color: color10 #00ff00 46 green
" Color: color03 #cdcd00 184 darkyellow
" Color: color11 #ffff00 226 yellow
" Color: color04 #0000ee 20 darkblue
" Color: color12 #5c5cff 63 blue
" Color: color05 #cd00cd 164 darkmagenta
" Color: color13 #ff00ff 201 magenta
" Color: color06 #00cdcd 44 darkcyan
" Color: color14 #00ffff 51 cyan
" Color: color07 #e5e5e5 254 grey
" Color: color15 #ffffff 231 white
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
" Color: rgbGrey30 #4d4d4d 239 darkgrey
" Color: rgbGrey40 #666666 241 darkgrey
" Color: rgbDarkGrey #a9a9a9 248 grey
" Color: rgbDarkBlue #00008b 20 darkblue
" Color: rgbDarkMagenta #8b008b 164 darkmagenta
" Color: rgbBlue #0000ff 63 blue
" Color: rgbDarkCyan #008b8b 44 darkcyan
" Color: rgbSeaGreen #2e8b57 121 darkgreen
" Color: rgbGrey #bebebe 248 grey
" Color: Question #00ff00 121 green
" Color: SignColumn #a9a9a9 248 black
" Color: SpecialKey #00ffff 81 cyan
" Color: StatusLineTerm #90ee90 121 darkgreen
" Color: Title #ff00ff 225 magenta
" Color: WarningMsg #ff0000 224 darkred
" Color: ToolbarLine #7f7f7f 242 darkgrey
" Color: ToolbarButton #d3d3d3 254 grey
" Color: Underlined #80a0ff 111 darkgreen
" Color: Comment #808080 244 darkgrey
" Color: Constant #00ffff 51 cyan
" Color: Special #0000ff 21 blue
" Color: Identifier #00c0c0 37 darkcyan
" Color: Search #c0c000 142 darkyellow
" Color: Statement #c0c000 142 darkyellow
" Color: Todo #c0c000 142 darkyellow
" Color: PreProc #00ff00 46 green
" Color: Type #00c000 34 darkgreen
" Color: Directory #00c000 34 darkgreen
" Color: Pmenu #303030 236 darkgrey
" Color: Folded #303030 236 darkgrey
" Color: Cursorline #3a3a3a 237 darkgrey
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,60 +1,335 @@
" Vim color file
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2003-04-23
" URL: http://trific.ath.cx/Ftp/vim/colors/peachpuff.vim
" Name: peachpuff
" Description: This color scheme uses a peachpuff background (what you've expected when it's " called peachpuff?).
" Author: Original author David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Maintainer: Original maintainer David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:43 2022
" This color scheme uses a peachpuff background (what you've expected when it's
" called peachpuff?).
"
" Note: Only GUI colors differ from default, on terminal it's just `light'.
" Generated by Colortemplate v2.2.0
" First remove all existing highlighting.
set background=light
hi clear
if exists("syntax_on")
syntax reset
let g:colors_name = 'peachpuff'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#ffdab9', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#737373', '#406090', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#000000']
endif
hi Normal guifg=#000000 guibg=#ffdab9 gui=NONE cterm=NONE
hi Folded guifg=#000000 guibg=#e3c1a5 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#f5c195 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#f5c195 gui=NONE cterm=NONE
hi CursorLineNr guifg=#cd0000 guibg=NONE gui=bold cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#ffaf87 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#737373 guibg=NONE gui=NONE cterm=NONE
hi StatusLine guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
hi StatusLineNC guifg=#ffdab9 guibg=#737373 gui=bold cterm=NONE
hi StatusLineTerm guifg=#ffffff guibg=#2e8b57 gui=bold cterm=NONE
hi StatusLineTermNC guifg=#ffdab9 guibg=#008b8b gui=bold cterm=NONE
hi VertSplit guifg=#ffdab9 guibg=#737373 gui=NONE cterm=NONE
hi Pmenu guifg=#000000 guibg=#ffaf87 gui=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#f5c195 gui=bold cterm=NONE
hi PmenuSbar guifg=NONE guibg=#ffdab9 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#737373 gui=NONE cterm=NONE
hi TabLine guifg=#ffdab9 guibg=#737373 gui=underline cterm=underline
hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel guifg=#000000 guibg=#ffdab9 gui=bold cterm=NONE
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton guifg=#ffdab9 guibg=#737373 gui=bold cterm=NONE
hi NonText guifg=#737373 guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#737373 guibg=NONE gui=NONE cterm=NONE
hi Visual guifg=#000000 guibg=#cccccc gui=NONE cterm=NONE
hi VisualNOS guifg=NONE guibg=#406090 gui=NONE cterm=NONE
hi LineNr guifg=#cd0000 guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#406090 guibg=NONE gui=NONE cterm=NONE
hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
hi Error guifg=#ff0000 guibg=#ffffff gui=bold,reverse cterm=reverse
hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=bold,reverse cterm=reverse
hi WarningMsg guifg=#cd00cd guibg=#ffdab9 gui=bold cterm=NONE
hi MoreMsg guifg=#2e8b57 guibg=#ffdab9 gui=bold cterm=NONE
hi ModeMsg guifg=#000000 guibg=#ffdab9 gui=bold cterm=NONE
hi Question guifg=#c00058 guibg=NONE gui=bold cterm=NONE
hi Todo guifg=#6a5acd guibg=#ffff00 gui=NONE cterm=NONE
hi MatchParen guifg=#ffdab9 guibg=#6a5acd gui=NONE cterm=NONE
hi Search guifg=#ffdab9 guibg=#cd00cd gui=NONE cterm=NONE
hi IncSearch guifg=#2e8b57 guibg=NONE gui=reverse cterm=reverse
hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
hi ColorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
hi Cursor guifg=#ffdab9 guibg=#000000 gui=NONE cterm=NONE
hi lCursor guifg=#000000 guibg=#c00058 gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#008b8b guibg=NONE guisp=#008b8b gui=undercurl cterm=underline
hi SpellLocal guifg=#cd00cd guibg=NONE guisp=#cd00cd gui=undercurl cterm=underline
hi SpellRare guifg=#6a5acd guibg=NONE guisp=#6a5acd gui=undercurl cterm=underline
hi Comment guifg=#406090 guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#c00058 guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
hi PreProc guifg=#cd00cd guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi Special guifg=#6a5acd guibg=NONE gui=NONE cterm=NONE
hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
hi Conceal guifg=#406090 guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title guifg=#cd00cd guibg=NONE gui=bold cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=16 ctermbg=223 cterm=NONE
hi Folded ctermfg=16 ctermbg=252 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=180 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=180 cterm=NONE
hi CursorLineNr ctermfg=160 ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=216 cterm=NONE
hi EndOfBuffer ctermfg=243 ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=231 ctermbg=16 cterm=NONE
hi StatusLineNC ctermfg=223 ctermbg=243 cterm=NONE
hi StatusLineTerm ctermfg=231 ctermbg=29 cterm=NONE
hi StatusLineTermNC ctermfg=223 ctermbg=30 cterm=NONE
hi VertSplit ctermfg=223 ctermbg=243 cterm=NONE
hi Pmenu ctermfg=16 ctermbg=216 cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=180 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=223 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=243 cterm=NONE
hi TabLine ctermfg=223 ctermbg=243 cterm=underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=16 ctermbg=223 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=223 ctermbg=243 cterm=NONE
hi NonText ctermfg=243 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=243 ctermbg=NONE cterm=NONE
hi Visual ctermfg=16 ctermbg=252 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=25 cterm=NONE
hi LineNr ctermfg=160 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=25 ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
hi Error ctermfg=196 ctermbg=231 cterm=reverse
hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
hi WarningMsg ctermfg=164 ctermbg=223 cterm=NONE
hi MoreMsg ctermfg=29 ctermbg=223 cterm=NONE
hi ModeMsg ctermfg=16 ctermbg=223 cterm=NONE
hi Question ctermfg=161 ctermbg=NONE cterm=NONE
hi Todo ctermfg=62 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=223 ctermbg=62 cterm=NONE
hi Search ctermfg=223 ctermbg=164 cterm=NONE
hi IncSearch ctermfg=29 ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=255 cterm=NONE
hi Cursor ctermfg=223 ctermbg=16 cterm=NONE
hi lCursor ctermfg=16 ctermbg=161 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=30 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=164 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=62 ctermbg=NONE cterm=underline
hi Comment ctermfg=25 ctermbg=NONE cterm=NONE
hi Constant ctermfg=161 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
hi Statement ctermfg=124 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=164 ctermbg=NONE cterm=NONE
hi Type ctermfg=29 ctermbg=NONE cterm=NONE
hi Special ctermfg=62 ctermbg=NONE cterm=NONE
hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=25 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=164 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
let colors_name = "peachpuff"
if s:t_Co >= 16
hi Normal ctermfg=black ctermbg=white cterm=NONE
hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=underline
hi QuickFixLine ctermfg=black ctermbg=grey cterm=NONE
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=white ctermbg=black cterm=NONE
hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=NONE
hi StatusLineTerm ctermfg=white ctermbg=darkgreen cterm=NONE
hi StatusLineTermNC ctermfg=white ctermbg=darkcyan cterm=NONE
hi VertSplit ctermfg=white ctermbg=darkgrey cterm=NONE
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=white cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi TabLine ctermfg=white ctermbg=darkgrey cterm=underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Visual ctermfg=black ctermbg=grey cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi LineNr ctermfg=red ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
hi Error ctermfg=darkred ctermbg=white cterm=reverse
hi ErrorMsg ctermfg=darkred ctermbg=white cterm=reverse
hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=white cterm=NONE
hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
hi Question ctermfg=darkred ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkblue ctermbg=yellow cterm=NONE
hi MatchParen ctermfg=white ctermbg=darkblue cterm=NONE
hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=grey cterm=NONE
hi Cursor ctermfg=white ctermbg=black cterm=NONE
hi lCursor ctermfg=black ctermbg=darkred cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkblue ctermbg=NONE cterm=underline
hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Special ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
hi Normal guibg=PeachPuff guifg=Black
hi SpecialKey term=bold ctermfg=4 guifg=Blue
hi NonText term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue
hi Directory term=bold ctermfg=4 guifg=Blue
hi ErrorMsg term=standout cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red
hi IncSearch term=reverse cterm=reverse gui=reverse
hi Search term=reverse ctermbg=3 guibg=Gold2
hi MoreMsg term=bold ctermfg=2 gui=bold guifg=SeaGreen
hi ModeMsg term=bold cterm=bold gui=bold
hi LineNr term=underline ctermfg=3 guifg=Red3
hi Question term=standout ctermfg=2 gui=bold guifg=SeaGreen
hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Black
hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=PeachPuff guibg=Gray45
hi VertSplit term=reverse cterm=reverse gui=bold guifg=White guibg=Gray45
hi Title term=bold ctermfg=5 gui=bold guifg=DeepPink3
hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey80 guibg=fg
hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline
hi WarningMsg term=standout ctermfg=1 gui=bold guifg=Red
hi WildMenu term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow
hi Folded term=standout ctermfg=4 ctermbg=7 guifg=Black guibg=#e3c1a5
hi FoldColumn term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Gray80
hi DiffAdd term=bold ctermbg=4 guibg=White
hi DiffChange term=bold ctermbg=5 guibg=#edb5cd
hi DiffDelete term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=LightBlue guibg=#f6e8d0
hi DiffText term=reverse cterm=bold ctermbg=1 gui=bold guibg=#ff8060
hi Cursor guifg=bg guibg=fg
hi lCursor guifg=bg guibg=fg
" Colors for syntax highlighting
hi Comment term=bold ctermfg=4 guifg=#406090
hi Constant term=underline ctermfg=1 guifg=#c00058
hi Special term=bold ctermfg=5 guifg=SlateBlue
hi Identifier term=underline ctermfg=6 guifg=DarkCyan
hi Statement term=bold ctermfg=3 gui=bold guifg=Brown
hi PreProc term=underline ctermfg=5 guifg=Magenta3
hi Type term=underline ctermfg=2 gui=bold guifg=SeaGreen
hi Ignore cterm=bold ctermfg=7 guifg=bg
hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red
hi Todo term=standout ctermfg=0 ctermbg=3 guifg=Blue guibg=Yellow
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: light
" Color: comment #406090 25 darkgrey
" Color: constant #c00058 161 darkred
" Color: identifier #008b8b 30 darkcyan
" Color: statement #a52a2a 124 darkred
" Color: preproc #cd00cd 164 darkmagenta
" Color: type #2e8b57 29 darkgreen
" Color: special #6a5acd 62 darkblue
" Color: fg0 #000000 16 black
" Color: bg0 #ffdab9 223 white
" Color: fg1 #ffffff 231 white
" Color: bg1 #737373 243 darkgrey
" Color: visual #cccccc 252 grey
" Color: folded #e3c1a5 252 cyan
" Color: folded_fg #000000 16 black
" Color: cursorline #f5c195 180 yellow
" Color: pmenu #ffaf87 216 grey
" Color: wildmenu #ffff00 226 yellow
" Color: error #ff0000 196 darkred
" Color: linenr #cd0000 160 red
" Color: blue #0000ff 21 darkblue
" Color: red #ff0000 196 darkred
" Color: colorcolumn #eeeeee 255 grey
" Term colors: bg0 statement constant preproc identifier type special bg1
" Term colors: comment statement constant preproc identifier type special fg0
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,45 +1,378 @@
" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2013 May 24
" Name: ron
" Author: original author Ron Aaron <ron@ronware.org>
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
" Website: https://www.github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:43 2022
" Generated by Colortemplate v2.2.0
set background=dark
hi clear
if exists("syntax_on")
syntax reset
let g:colors_name = 'ron'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
hi! link Terminal Normal
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Debug Special
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link PopupSelected PmenuSel
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
let g:colors_name = "ron"
hi Normal guifg=cyan guibg=black
hi NonText guifg=yellow guibg=#303030
hi comment guifg=green
hi constant guifg=cyan gui=bold
hi identifier guifg=cyan gui=NONE
hi statement guifg=lightblue gui=NONE
hi preproc guifg=Pink2
hi type guifg=seagreen gui=bold
hi special guifg=yellow
hi ErrorMsg guifg=Black guibg=Red
hi WarningMsg guifg=Black guibg=Green
hi Error guibg=Red
hi Todo guifg=Black guibg=orange
hi Cursor guibg=#60a060 guifg=#00ff00
hi Search guibg=darkgray guifg=black gui=bold
hi IncSearch gui=NONE guibg=steelblue
hi LineNr guifg=darkgrey
hi title guifg=darkgrey
hi ShowMarksHL ctermfg=cyan ctermbg=lightblue cterm=bold guifg=yellow guibg=black gui=bold
hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue
hi StatusLine gui=bold guifg=cyan guibg=blue
hi label guifg=gold2
hi operator guifg=orange
hi clear Visual
hi Visual term=reverse cterm=reverse gui=reverse
hi DiffChange guibg=darkgreen
hi DiffText guibg=olivedrab
hi DiffAdd guibg=slateblue
hi DiffDelete guibg=coral
hi Folded guibg=gray30
hi FoldColumn guibg=gray30 guifg=white
hi cIf0 guifg=gray
hi diffOnly guifg=red gui=bold
hi Normal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#cd0000 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
hi Cursor guifg=#ffffff guibg=#60a060 gui=NONE cterm=NONE
hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi EndOfBuffer guifg=#ffff00 guibg=#303030 gui=NONE cterm=NONE
hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi FoldColumn guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
hi Folded guifg=NONE guibg=#4d4d4d gui=NONE cterm=NONE
hi IncSearch guifg=NONE guibg=#4682b4 gui=NONE cterm=NONE
hi LineNr guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi NonText guifg=#ffff00 guibg=#303030 gui=NONE cterm=NONE
hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=#000000 gui=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
hi Question guifg=#00ff00 guibg=#000000 gui=bold cterm=NONE
hi Search guifg=#000000 guibg=#a9a9a9 gui=bold cterm=NONE
hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi StatusLine guifg=#00ffff guibg=#0000ff gui=bold cterm=NONE
hi StatusLineNC guifg=#add8e6 guibg=#00008b gui=NONE cterm=NONE
hi VertSplit guifg=#add8e6 guibg=#00008b gui=NONE cterm=NONE
hi TabLine guifg=#000000 guibg=#008b8b gui=NONE cterm=NONE
hi TabLineFill guifg=#a9a9a9 guibg=#7f7f7f gui=NONE cterm=NONE
hi TabLineSel guifg=#00ffff guibg=#000000 gui=bold cterm=NONE
hi Terminal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
hi Title guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
hi Visual guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
hi WarningMsg guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#ffffff guibg=NONE guisp=#ffffff gui=undercurl cterm=underline
hi SpellLocal guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
hi Comment guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#00ffff guibg=NONE gui=bold cterm=NONE
hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi Identifier guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
hi Label guifg=#eec900 guibg=NONE gui=NONE cterm=NONE
hi Operator guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#eea9b8 guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=#000000 guibg=#ffa500 gui=NONE cterm=NONE
hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=51 ctermbg=16 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=160 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=59 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=59 cterm=NONE
hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=44 cterm=NONE
hi Conceal ctermfg=254 ctermbg=145 cterm=NONE
hi Cursor ctermfg=231 ctermbg=71 cterm=NONE
hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=226 ctermbg=236 cterm=NONE
hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
hi FoldColumn ctermfg=231 ctermbg=NONE cterm=NONE
hi Folded ctermfg=NONE ctermbg=239 cterm=NONE
hi IncSearch ctermfg=NONE ctermbg=67 cterm=NONE
hi LineNr ctermfg=145 ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=44 cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
hi NonText ctermfg=226 ctermbg=236 cterm=NONE
hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=16 cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=254 cterm=NONE
hi Question ctermfg=46 ctermbg=16 cterm=NONE
hi Search ctermfg=16 ctermbg=145 cterm=NONE
hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=51 ctermbg=21 cterm=NONE
hi StatusLineNC ctermfg=152 ctermbg=20 cterm=NONE
hi VertSplit ctermfg=152 ctermbg=20 cterm=NONE
hi TabLine ctermfg=16 ctermbg=44 cterm=NONE
hi TabLineFill ctermfg=145 ctermbg=102 cterm=NONE
hi TabLineSel ctermfg=51 ctermbg=16 cterm=NONE
hi Terminal ctermfg=51 ctermbg=16 cterm=NONE
hi Title ctermfg=145 ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
hi WarningMsg ctermfg=226 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=231 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=226 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
hi Comment ctermfg=46 ctermbg=NONE cterm=NONE
hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
hi Error ctermfg=196 ctermbg=231 cterm=reverse
hi Identifier ctermfg=51 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
hi Label ctermfg=220 ctermbg=NONE cterm=NONE
hi Operator ctermfg=214 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=217 ctermbg=NONE cterm=NONE
hi Special ctermfg=226 ctermbg=NONE cterm=NONE
hi Statement ctermfg=152 ctermbg=NONE cterm=NONE
hi Todo ctermfg=16 ctermbg=214 cterm=NONE
hi Type ctermfg=29 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 16
hi Normal ctermfg=cyan ctermbg=black cterm=NONE
hi ColorColumn ctermfg=cyan ctermbg=darkred cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
hi Cursor ctermfg=white ctermbg=green cterm=NONE
hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=yellow ctermbg=darkgrey cterm=NONE
hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse
hi FoldColumn ctermfg=white ctermbg=NONE cterm=NONE
hi Folded ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi IncSearch ctermfg=NONE ctermbg=blue cterm=NONE
hi LineNr ctermfg=grey ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=yellow ctermbg=darkgrey cterm=NONE
hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
hi Question ctermfg=green ctermbg=black cterm=NONE
hi Search ctermfg=black ctermbg=grey cterm=NONE
hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=cyan ctermbg=darkblue cterm=NONE
hi StatusLineNC ctermfg=darkcyan ctermbg=darkblue cterm=NONE
hi VertSplit ctermfg=darkcyan ctermbg=darkblue cterm=NONE
hi TabLine ctermfg=black ctermbg=darkcyan cterm=NONE
hi TabLineFill ctermfg=grey ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=cyan ctermbg=black cterm=NONE
hi Terminal ctermfg=cyan ctermbg=black cterm=NONE
hi Title ctermfg=grey ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
hi WarningMsg ctermfg=yellow ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=white ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=yellow ctermbg=NONE cterm=underline
hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
hi Comment ctermfg=green ctermbg=NONE cterm=NONE
hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
hi Error ctermfg=red ctermbg=white cterm=reverse
hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=black ctermbg=black cterm=NONE
hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
hi Operator ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Special ctermfg=yellow ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: xterm0 #000000 16 black
" Color: xterm1 #cd0000 160 darkred
" Color: xterm2 #00cd00 40 darkgreen
" Color: xterm3 #cdcd00 184 darkyellow
" Color: xterm4 #0000ee 20 darkblue
" Color: xterm5 #cd00cd 164 darkmagenta
" Color: xterm6 #00cdcd 44 darkcyan
" Color: xterm7 #e5e5e5 254 grey
" Color: xterm8 #7f7f7f 102 darkgrey
" Color: xterm9 #ff0000 196 red
" Color: xterm10 #00ff00 46 green
" Color: xterm11 #ffff00 226 yellow
" Color: xterm12 #5c5cff 63 blue
" Color: xterm13 #ff00ff 201 magenta
" Color: xterm14 #00ffff 51 cyan
" Color: xterm15 #ffffff 231 white
" Color: rgbGrey40 #666666 59 darkgrey
" Color: rgbDarkGrey #a9a9a9 145 grey
" Color: rgbDarkBlue #00008b 20 darkblue
" Color: rgbBlue #0000ff 21 darkblue
" Color: rgbDarkCyan #008b8b 44 darkcyan
" Color: Directory #00ffff 51 cyan
" Color: rgbSeaGreen #2e8b57 29 darkgreen
" Color: rgbGrey #bebebe 250 grey
" Color: Question #00ff00 46 green
" Color: SignColumn #a9a9a9 248 grey
" Color: SpecialKey #00ffff 51 cyan
" Color: StatusLineTerm #90ee90 120 darkgreen
" Color: ToolbarLine #7f7f7f 244 darkgrey
" Color: Underlined #80a0ff 111 blue
" Color: Pmenu #444444 238 darkgrey
" Color: ron303030 #303030 236 darkgrey
" Color: ronLightBlue #add8e6 152 darkcyan
" Color: ronPink2 #eea9b8 217 darkmagenta
" Color: ronOrange #ffa500 214 darkyellow
" Color: ronCursor #60a060 71 green
" Color: ronSteelBlue #4682b4 67 blue
" Color: ronGold2 #eec900 220 yellow
" Color: ronDarkGreen #006400 22 darkgreen
" Color: ronSlateBlue #6a5acd 62 blue
" Color: ronOliveDrab #6b8e23 64 green
" Color: ronCoral #ff7f50 209 red
" Color: ronGray30 #4d4d4d 239 darkgrey
" Term colors: xterm0 xterm1 xterm2 xterm3 xterm4 xterm5 xterm6 xterm7
" Term colors: xterm8 xterm9 xterm10 xterm11 xterm12 xterm13
" Term colors: xterm14 xterm15
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,60 +1,353 @@
" Vim color file
" Maintainer: Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
" Last Change: 2001 May 25
" Name: shine
" Description: Light colorscheme inspired by normal text editors.
" Author: Original author is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
" Maintainer: Original maintainer is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:44 2022
" This look like normal text editor.
" This color scheme uses a light background.
" Generated by Colortemplate v2.2.0
" First remove all existing highlighting.
set background=light
hi clear
if exists("syntax_on")
syntax reset
let g:colors_name = 'shine'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#8b0000', '#006400', '#ffff00', '#00008b', '#6a0dad', '#008b8b', '#dadada', '#767676', '#ffafaf', '#90ee90', '#ffff60', '#add8e6', '#ff00ff', '#00ffff', '#ffffff']
endif
hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi Folded guifg=#00008b guibg=#dadada gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#dadada gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#dadada gui=NONE cterm=NONE
hi CursorLineNr guifg=NONE guibg=#dadada gui=NONE cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#ff8c00 gui=NONE cterm=NONE
hi! link EndOfBuffer NonText
hi StatusLine guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
hi StatusLineNC guifg=#ffffff guibg=#a8a8a8 gui=NONE cterm=NONE
hi StatusLineTerm guifg=#000000 guibg=#90ee90 gui=bold cterm=NONE
hi StatusLineTermNC guifg=#dadada guibg=#006400 gui=NONE cterm=NONE
hi VertSplit guifg=#a8a8a8 guibg=#a8a8a8 gui=NONE cterm=NONE
hi Pmenu guifg=#000000 guibg=#a8a8a8 gui=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#ffff60 gui=NONE cterm=NONE
hi PmenuSbar guifg=#ffffff guibg=#ffffff gui=NONE cterm=NONE
hi PmenuThumb guifg=#767676 guibg=#767676 gui=NONE cterm=NONE
hi TabLine guifg=#000000 guibg=#dadada gui=underline cterm=underline
hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton guifg=NONE guibg=#a8a8a8 gui=bold cterm=NONE
hi NonText guifg=#add8e6 guibg=#ffffff gui=NONE cterm=NONE
hi SpecialKey guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
hi Visual guifg=#000000 guibg=#a8a8a8 gui=NONE cterm=NONE
hi VisualNOS guifg=NONE guibg=NONE gui=bold,underline ctermfg=NONE ctermbg=NONE cterm=underline
hi LineNr guifg=#767676 guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#767676 guibg=NONE gui=NONE cterm=NONE
hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined guifg=#6a0dad guibg=NONE gui=underline cterm=underline
hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi! link ErrorMsg Error
hi WarningMsg guifg=#6a0dad guibg=#ffffff gui=NONE cterm=NONE
hi MoreMsg guifg=#006400 guibg=#ffffff gui=NONE cterm=NONE
hi ModeMsg guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi Question guifg=#a07070 guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi MatchParen guifg=#ffffff guibg=#ffafaf gui=NONE cterm=NONE
hi Search guifg=#ffffff guibg=#6a0dad gui=NONE cterm=NONE
hi IncSearch guifg=#008b8b guibg=#ffff00 gui=reverse cterm=reverse
hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
hi ColorColumn guifg=#000000 guibg=#ffafaf gui=NONE cterm=NONE
hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi lCursor guifg=#000000 guibg=#a07070 gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#2e8b57 guibg=NONE guisp=#2e8b57 gui=undercurl cterm=underline
hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
hi SpellRare guifg=#00008b guibg=NONE guisp=#00008b gui=undercurl cterm=underline
hi Identifier guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#006400 guibg=NONE gui=bold cterm=NONE
hi Constant guifg=#a07070 guibg=NONE gui=NONE cterm=NONE
hi Number guifg=#a07070 guibg=NONE gui=bold cterm=NONE
hi Float guifg=#a07070 guibg=NONE gui=bold cterm=NONE
hi PreProc guifg=#6a0dad guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#ff8c00 guibg=NONE gui=NONE cterm=NONE
hi SpecialChar guifg=#00008b guibg=NONE gui=NONE cterm=NONE
hi! link Tag Special
hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi! link Operator Statement
hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
hi Comment guifg=#a8a8a8 guibg=NONE gui=bold cterm=NONE
hi StorageClass guifg=#ff0000 guibg=NONE gui=bold cterm=NONE
hi Conceal guifg=#dadada guibg=#767676 gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title guifg=#006400 guibg=NONE gui=bold cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=16 ctermbg=231 cterm=NONE
hi Folded ctermfg=18 ctermbg=253 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=253 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=253 cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=253 cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=208 cterm=NONE
hi! link EndOfBuffer NonText
hi StatusLine ctermfg=231 ctermbg=16 cterm=NONE
hi StatusLineNC ctermfg=231 ctermbg=248 cterm=NONE
hi StatusLineTerm ctermfg=16 ctermbg=120 cterm=NONE
hi StatusLineTermNC ctermfg=253 ctermbg=22 cterm=NONE
hi VertSplit ctermfg=248 ctermbg=248 cterm=NONE
hi Pmenu ctermfg=16 ctermbg=248 cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=228 cterm=NONE
hi PmenuSbar ctermfg=231 ctermbg=231 cterm=NONE
hi PmenuThumb ctermfg=243 ctermbg=243 cterm=NONE
hi TabLine ctermfg=16 ctermbg=253 cterm=underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=16 ctermbg=231 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=248 cterm=NONE
hi NonText ctermfg=153 ctermbg=231 cterm=NONE
hi SpecialKey ctermfg=153 ctermbg=NONE cterm=NONE
hi Visual ctermfg=16 ctermbg=248 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi LineNr ctermfg=243 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=243 ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=55 ctermbg=NONE cterm=underline
hi Error ctermfg=196 ctermbg=231 cterm=reverse
hi! link ErrorMsg Error
hi WarningMsg ctermfg=55 ctermbg=231 cterm=NONE
hi MoreMsg ctermfg=22 ctermbg=231 cterm=NONE
hi ModeMsg ctermfg=16 ctermbg=231 cterm=NONE
hi Question ctermfg=95 ctermbg=NONE cterm=NONE
hi Todo ctermfg=16 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=231 ctermbg=217 cterm=NONE
hi Search ctermfg=231 ctermbg=55 cterm=NONE
hi IncSearch ctermfg=30 ctermbg=226 cterm=reverse
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi ColorColumn ctermfg=16 ctermbg=217 cterm=NONE
hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
hi lCursor ctermfg=16 ctermbg=95 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=29 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=18 ctermbg=NONE cterm=underline
hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
hi Statement ctermfg=22 ctermbg=NONE cterm=NONE
hi Constant ctermfg=95 ctermbg=NONE cterm=NONE
hi Number ctermfg=95 ctermbg=NONE cterm=NONE
hi Float ctermfg=95 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=55 ctermbg=NONE cterm=NONE
hi Special ctermfg=208 ctermbg=NONE cterm=NONE
hi SpecialChar ctermfg=18 ctermbg=NONE cterm=NONE
hi! link Tag Special
hi Type ctermfg=29 ctermbg=NONE cterm=NONE
hi! link Operator Statement
hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
hi Comment ctermfg=248 ctermbg=NONE cterm=NONE
hi StorageClass ctermfg=196 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=253 ctermbg=243 cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=22 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
let colors_name = "shine"
hi Normal ctermbg=White ctermfg=Black guifg=Black guibg=White
" Groups used in the 'highlight' and 'guicursor' options default value.
hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
hi IncSearch term=reverse cterm=reverse gui=reverse
hi ModeMsg term=bold cterm=bold gui=bold
hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
hi StatusLineNC term=reverse cterm=reverse gui=reverse
hi VertSplit term=reverse cterm=reverse gui=reverse
hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey guibg=fg
hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold
hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
hi Cursor ctermbg=Green guibg=Green guifg=Black
hi lCursor guibg=Cyan guifg=Black
hi Directory term=bold ctermfg=LightRed guifg=Red
hi LineNr term=underline ctermfg=Yellow guifg=Yellow
hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey90
hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green
hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi SpecialKey term=bold ctermfg=LightBlue guifg=Blue
hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta
hi WarningMsg term=standout ctermfg=LightRed guifg=Red
hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue
hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta
hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan
hi Comment ctermfg=DarkGrey ctermbg=White guifg=DarkGrey gui=bold
hi SpecialChar ctermfg=DarkGrey ctermbg=White guifg=DarkGrey gui=bold
hi StorageClass ctermfg=Red ctermbg=White guifg=Red gui=bold
hi Number ctermfg=LightRed ctermbg=White guifg=LightRed gui=bold
" Groups for syntax highlighting
hi Constant term=underline ctermfg=Magenta guifg=#a07070 guibg=grey80
hi Special term=bold ctermfg=LightRed guifg=DarkOrange guibg=grey80
if &t_Co > 8
hi Statement term=bold cterm=bold ctermfg=DarkGreen ctermbg=White guifg=#ffff60 gui=bold
if s:t_Co >= 16
hi Normal ctermfg=black ctermbg=white cterm=NONE
hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=underline
hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
hi! link EndOfBuffer NonText
hi StatusLine ctermfg=white ctermbg=black cterm=NONE
hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=NONE
hi StatusLineTerm ctermfg=black ctermbg=green cterm=NONE
hi StatusLineTermNC ctermfg=grey ctermbg=darkgreen cterm=NONE
hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
hi Pmenu ctermfg=black ctermbg=darkgrey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
hi PmenuSbar ctermfg=white ctermbg=white cterm=NONE
hi PmenuThumb ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi NonText ctermfg=blue ctermbg=white cterm=NONE
hi SpecialKey ctermfg=blue ctermbg=NONE cterm=NONE
hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi Error ctermfg=red ctermbg=white cterm=reverse
hi! link ErrorMsg Error
hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=white cterm=NONE
hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
hi Question ctermfg=darkred ctermbg=NONE cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi MatchParen ctermfg=white ctermbg=red cterm=NONE
hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=darkcyan ctermbg=yellow cterm=reverse
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=red cterm=NONE
hi Cursor ctermfg=white ctermbg=black cterm=NONE
hi lCursor ctermfg=black ctermbg=darkred cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkgreen ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkblue ctermbg=NONE cterm=underline
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi Number ctermfg=darkred ctermbg=NONE cterm=NONE
hi Float ctermfg=darkred ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi SpecialChar ctermfg=darkblue ctermbg=NONE cterm=NONE
hi! link Tag Special
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi! link Operator Statement
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi StorageClass ctermfg=red ctermbg=NONE cterm=NONE
hi Conceal ctermfg=grey ctermbg=darkgrey cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
hi Ignore ctermfg=LightGrey guifg=grey90
" vim: sw=2
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: light
" Color: Black #000000 16 black
" Color: DarkGrey #767676 243 darkgrey
" Color: MediumGrey #A8A8A8 248 darkgrey
" Color: LightGrey #DADADA 253 grey
" Color: White #ffffff 231 white
" Color: Cyan #00ffff 51 cyan
" Color: Magenta #ff00ff 201 magenta
" Color: Red #ff0000 196 red
" Color: Yellow #ffff00 226 yellow
" Color: SeaGreen #2e8b57 29 darkgreen
" Color: DarkBlue #00008b 18 darkblue
" Color: DarkCyan #008b8b 30 darkcyan
" Color: DarkGreen #006400 22 darkgreen
" Color: DarkOrange #ff8c00 208 darkyellow
" Color: DarkRed #8b0000 88 darkred
" Color: LightBlue #add8e6 153 blue
" Color: LightGreen #90ee90 120 green
" Color: LightMagenta#ff83fa 213 magenta
" Color: LightRed #ffafaf 217 red
" Color: MutedRed #a07070 95 darkred
" Color: MutedYellow #ffff60 228 yellow
" Color: Purple #6a0dad 55 darkmagenta
" Term colors: Black DarkRed DarkGreen Yellow DarkBlue Purple DarkCyan LightGrey
" Term colors: DarkGrey LightRed LightGreen MutedYellow LightBlue Magenta Cyan White
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,56 +1,350 @@
"%% SiSU Vim color file
" Slate Maintainer: Ralph Amissah <ralph@amissah.com>
" (originally looked at desert Hans Fugal <hans@fugal.net> http://hans.fugal.net/vim/colors/desert.vim (2003/05/06)
:set background=dark
:highlight clear
if version > 580
hi clear
if exists("syntax_on")
syntax reset
endif
" Name: slate
" Description: Remake of slate
" Author: Original maintainer Ralph Amissah <ralph@amissah.com>
" Maintainer: Original maintainer Ralph Amissah <ralph@amissah.com>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:45 2022
" Generated by Colortemplate v2.2.0
set background=dark
hi clear
let g:colors_name = 'slate'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#ff0000', '#5f8700', '#ffff00', '#87d7ff', '#d7d787', '#ffd7af', '#666666', '#333333', '#ffafaf', '#00875f', '#ffd700', '#5f87d7', '#afaf87', '#ff8787', '#ffffff']
endif
let colors_name = "slate"
:hi Normal guifg=White guibg=grey15
:hi Cursor guibg=khaki guifg=slategrey
:hi VertSplit guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse
:hi Folded guibg=black guifg=grey40 ctermfg=grey ctermbg=darkgrey
:hi FoldColumn guibg=black guifg=grey20 ctermfg=4 ctermbg=7
:hi IncSearch guifg=green guibg=black cterm=none ctermfg=yellow ctermbg=green
:hi ModeMsg guifg=goldenrod cterm=none ctermfg=brown
:hi MoreMsg guifg=SeaGreen ctermfg=darkgreen
:hi NonText guifg=RoyalBlue guibg=grey15 cterm=bold ctermfg=blue
:hi Question guifg=springgreen ctermfg=green
:hi Search guibg=peru guifg=wheat cterm=none ctermfg=grey ctermbg=blue
:hi SpecialKey guifg=yellowgreen ctermfg=darkgreen
:hi StatusLine guibg=#c2bfa5 guifg=black gui=none cterm=bold,reverse
:hi StatusLineNC guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse
:hi Title guifg=gold gui=bold cterm=bold ctermfg=yellow
:hi Statement guifg=CornflowerBlue ctermfg=lightblue
:hi Visual gui=none guifg=khaki guibg=olivedrab cterm=reverse
:hi WarningMsg guifg=salmon ctermfg=1
:hi String guifg=SkyBlue ctermfg=darkcyan
:hi Comment term=bold ctermfg=11 guifg=grey40
:hi Constant guifg=#ffa0a0 ctermfg=brown
:hi Special guifg=darkkhaki ctermfg=brown
:hi Identifier guifg=salmon ctermfg=red
:hi Include guifg=red ctermfg=red
:hi PreProc guifg=red guibg=white ctermfg=red
:hi Operator guifg=Red ctermfg=Red
:hi Define guifg=gold gui=bold ctermfg=yellow
:hi Type guifg=CornflowerBlue ctermfg=2
:hi Function guifg=navajowhite ctermfg=brown
:hi Structure guifg=green ctermfg=green
:hi LineNr guifg=grey50 ctermfg=3
:hi Ignore guifg=grey40 cterm=bold ctermfg=7
:hi Todo guifg=orangered guibg=yellow2
:hi Directory ctermfg=darkcyan
:hi ErrorMsg cterm=bold guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
:hi VisualNOS cterm=bold,underline
:hi WildMenu ctermfg=0 ctermbg=3
:hi DiffAdd ctermbg=4
:hi DiffChange ctermbg=5
:hi DiffDelete cterm=bold ctermfg=4 ctermbg=6
:hi DiffText cterm=bold ctermbg=1
:hi Underlined cterm=underline ctermfg=5
:hi Error guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
:hi SpellErrors guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
hi Normal guifg=#ffffff guibg=#262626 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#5f87d7 guibg=NONE gui=NONE cterm=NONE
hi StatusLine guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
hi StatusLineNC guifg=#666666 guibg=#afaf87 gui=NONE cterm=NONE
hi StatusLineTerm guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
hi StatusLineTermNC guifg=#666666 guibg=#afaf87 gui=NONE cterm=NONE
hi VertSplit guifg=#666666 guibg=#afaf87 gui=NONE cterm=NONE
hi PmenuSel guifg=#262626 guibg=#d7d787 gui=NONE cterm=NONE
hi Pmenu guifg=NONE guibg=#4a4a4a gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=#262626 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#ffd700 gui=NONE cterm=NONE
hi TabLineSel guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
hi TabLine guifg=#666666 guibg=#333333 gui=NONE cterm=NONE
hi TabLineFill guifg=#ff8787 guibg=#333333 gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton guifg=#262626 guibg=#d7d787 gui=NONE cterm=NONE
hi NonText guifg=#5f87d7 guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#00875f guibg=NONE gui=NONE cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#5f87d7 gui=NONE cterm=NONE
hi Folded guifg=#666666 guibg=#000000 gui=NONE cterm=NONE
hi FoldColumn guifg=#5f87d7 guibg=#000000 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#333333 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#333333 gui=NONE cterm=NONE
hi CursorLineNr guifg=NONE guibg=#333333 gui=NONE cterm=NONE
hi Visual guifg=#d7d787 guibg=#5f8700 gui=NONE cterm=NONE
hi SignColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE
hi VisualNOS guifg=#d7d787 guibg=#5f8700 gui=NONE cterm=NONE
hi LineNr guifg=#666666 guibg=NONE gui=NONE cterm=NONE
hi Underlined guifg=#5f87d7 guibg=NONE gui=underline cterm=underline
hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi ErrorMsg guifg=#ff0000 guibg=#000000 gui=reverse cterm=reverse
hi ModeMsg guifg=#262626 guibg=#ffd700 gui=NONE cterm=NONE
hi WarningMsg guifg=#ff8787 guibg=NONE gui=NONE cterm=NONE
hi MoreMsg guifg=#00875f guibg=NONE gui=NONE cterm=NONE
hi Question guifg=#ffd700 guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=#ff0000 guibg=#ffff00 gui=NONE cterm=NONE
hi MatchParen guifg=#000000 guibg=#ffd700 gui=NONE cterm=NONE
hi Search guifg=#000000 guibg=#d7875f gui=NONE cterm=NONE
hi IncSearch guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
hi WildMenu guifg=#262626 guibg=#d7d787 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#000000 gui=NONE cterm=NONE
hi Cursor guifg=#333333 guibg=#d7d787 gui=NONE cterm=NONE
hi lCursor guifg=#262626 guibg=#ffafaf gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
hi SpellLocal guifg=#ffafaf guibg=NONE guisp=#ffafaf gui=undercurl cterm=underline
hi SpellRare guifg=#ffd7af guibg=NONE guisp=#ffd7af gui=undercurl cterm=underline
hi Comment guifg=#666666 guibg=NONE gui=NONE cterm=NONE
hi String guifg=#87d7ff guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#ff8787 guibg=NONE gui=NONE cterm=NONE
hi Function guifg=#ffd7af guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#d7d787 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#5f87d7 guibg=NONE gui=bold cterm=NONE
hi Constant guifg=#ffafaf guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#d7875f guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#5f87d7 guibg=NONE gui=bold cterm=NONE
hi Operator guifg=#d7875f guibg=NONE gui=NONE cterm=NONE
hi Define guifg=#ffd700 guibg=NONE gui=bold cterm=NONE
hi Structure guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
hi Directory guifg=#00875f guibg=NONE gui=bold cterm=NONE
hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title guifg=#ffd700 guibg=NONE gui=bold cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=231 ctermbg=235 cterm=NONE
hi EndOfBuffer ctermfg=68 ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=16 ctermbg=144 cterm=NONE
hi StatusLineNC ctermfg=241 ctermbg=144 cterm=NONE
hi StatusLineTerm ctermfg=16 ctermbg=144 cterm=NONE
hi StatusLineTermNC ctermfg=241 ctermbg=144 cterm=NONE
hi VertSplit ctermfg=241 ctermbg=144 cterm=NONE
hi PmenuSel ctermfg=235 ctermbg=186 cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=239 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=235 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=220 cterm=NONE
hi TabLineSel ctermfg=16 ctermbg=144 cterm=NONE
hi TabLine ctermfg=241 ctermbg=236 cterm=NONE
hi TabLineFill ctermfg=210 ctermbg=236 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=235 ctermbg=186 cterm=NONE
hi NonText ctermfg=68 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=29 ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=68 cterm=NONE
hi Folded ctermfg=241 ctermbg=16 cterm=NONE
hi FoldColumn ctermfg=68 ctermbg=16 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=236 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=236 cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=236 cterm=NONE
hi Visual ctermfg=186 ctermbg=64 cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=235 cterm=NONE
hi VisualNOS ctermfg=186 ctermbg=64 cterm=NONE
hi LineNr ctermfg=241 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=68 ctermbg=NONE cterm=underline
hi Error ctermfg=196 ctermbg=231 cterm=reverse
hi ErrorMsg ctermfg=196 ctermbg=16 cterm=reverse
hi ModeMsg ctermfg=235 ctermbg=220 cterm=NONE
hi WarningMsg ctermfg=210 ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
hi Question ctermfg=220 ctermbg=NONE cterm=NONE
hi Todo ctermfg=196 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=16 ctermbg=220 cterm=NONE
hi Search ctermfg=16 ctermbg=173 cterm=NONE
hi IncSearch ctermfg=16 ctermbg=46 cterm=NONE
hi WildMenu ctermfg=235 ctermbg=186 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=16 cterm=NONE
hi Cursor ctermfg=236 ctermbg=186 cterm=NONE
hi lCursor ctermfg=235 ctermbg=217 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=226 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=217 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=223 ctermbg=NONE cterm=underline
hi Comment ctermfg=241 ctermbg=NONE cterm=NONE
hi String ctermfg=117 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=210 ctermbg=NONE cterm=NONE
hi Function ctermfg=223 ctermbg=NONE cterm=NONE
hi Special ctermfg=186 ctermbg=NONE cterm=NONE
hi Statement ctermfg=68 ctermbg=NONE cterm=NONE
hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=173 ctermbg=NONE cterm=NONE
hi Type ctermfg=68 ctermbg=NONE cterm=NONE
hi Operator ctermfg=173 ctermbg=NONE cterm=NONE
hi Define ctermfg=220 ctermbg=NONE cterm=NONE
hi Structure ctermfg=46 ctermbg=NONE cterm=NONE
hi Directory ctermfg=29 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=241 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=220 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=black ctermbg=grey cterm=NONE
hi StatusLineNC ctermfg=darkgrey ctermbg=grey cterm=NONE
hi StatusLineTerm ctermfg=black ctermbg=grey cterm=NONE
hi StatusLineTermNC ctermfg=darkgrey ctermbg=grey cterm=NONE
hi VertSplit ctermfg=darkgrey ctermbg=grey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=yellow cterm=NONE
hi TabLineSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi TabLine ctermfg=grey ctermbg=darkgrey cterm=NONE
hi TabLineFill ctermfg=cyan ctermbg=darkgrey cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=darkyellow cterm=NONE
hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=green ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=blue cterm=NONE
hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
hi Visual ctermfg=yellow ctermbg=darkgreen cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=black cterm=NONE
hi VisualNOS ctermfg=darkmagenta ctermbg=darkgreen cterm=NONE
hi LineNr ctermfg=grey ctermbg=NONE cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi Error ctermfg=darkred ctermbg=white cterm=reverse
hi ErrorMsg ctermfg=darkred ctermbg=black cterm=reverse
hi ModeMsg ctermfg=black ctermbg=yellow cterm=NONE
hi WarningMsg ctermfg=cyan ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=green ctermbg=NONE cterm=NONE
hi Question ctermfg=yellow ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkred ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=yellow cterm=NONE
hi Search ctermfg=black ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=black ctermbg=darkgreen cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
hi Cursor ctermfg=darkgrey ctermbg=darkmagenta cterm=NONE
hi lCursor ctermfg=black ctermbg=red cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkyellow ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=red ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi String ctermfg=cyan ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkred ctermbg=NONE cterm=NONE
hi Function ctermfg=yellow ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Statement ctermfg=blue ctermbg=NONE cterm=NONE
hi Constant ctermfg=red ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=blue ctermbg=NONE cterm=NONE
hi Operator ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Define ctermfg=yellow ctermbg=NONE cterm=NONE
hi Structure ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Directory ctermfg=green ctermbg=NONE cterm=NONE
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=yellow ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: foreground #FFFFFF 231 white
" Color: background #262626 235 black
" Color: color00 #000000 16 black
" Color: color08 #333333 236 darkgrey
" Color: color01 #FF0000 196 darkred
" Color: color09 #FFAFAF 217 red
" Color: color02 #5F8700 64 darkgreen
" Color: color10 #00875F 29 green
" Color: color03 #ffff00 226 darkyellow
" Color: color11 #FFD700 220 yellow
" Color: color04 #87d7FF 117 darkblue
" Color: color12 #5F87D7 68 blue
" Color: color05 #d7d787 186 darkmagenta
" Color: color13 #AFAF87 144 magenta
" Color: color06 #FFD7AF 223 darkcyan
" Color: color14 #FF8787 210 cyan
" Color: color07 #666666 241 grey
" Color: color15 #FFFFFF 231 white
" Color: color16 #D7875F 173 darkmagenta
" Color: color17 #00FF00 46 darkgreen
" Color: Pmenu #4A4A4A 239 darkgrey
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,238 +1,207 @@
" This script tests a color scheme for some errors and lists potential errors.
" Load the scheme and source this script, like this:
" :edit colors/desert.vim | :so colors/tools/check_colors.vim
vim9script
# This script tests a color scheme for some errors and lists potential errors.
# Load the scheme and source this script, like this:
# :edit colors/desert.vim | :ru colors/tools/check_colors.vim
let s:save_cpo= &cpo
set cpo&vim
def Test_check_colors()
const savedview = winsaveview()
cursor(1, 1)
var err = {}
func! Test_check_colors()
let l:savedview = winsaveview()
call cursor(1,1)
let err = {}
" 1) Check g:colors_name is existing
if !search('\<\%(g:\)\?colors_name\>', 'cnW')
let err['colors_name'] = 'g:colors_name not set'
else
let err['colors_name'] = 'OK'
endif
" 2) Check for some well-defined highlighting groups
let hi_groups = [
\ 'ColorColumn',
\ 'Comment',
\ 'Conceal',
\ 'Constant',
\ '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
if search('\c@suppress\s\+\<' .. group .. '\>', 'cnW')
" skip check, if the script contains a line like
" @suppress Visual:
continue
endif
if search('hi\%[ghlight]!\= \+link \+' .. group, 'cnW') " Linked group
continue
endif
if !search('hi\%[ghlight] \+\<' .. group .. '\>', 'cnW')
let groups[group] = 'No highlight definition for ' .. group
continue
endif
if !search('hi\%[ghlight] \+\<' .. group .. '\>.*[bf]g=', 'cnW')
let groups[group] = 'Missing foreground or background color for ' .. group
continue
endif
if search('hi\%[ghlight] \+\<' .. group .. '\>.*guibg=', 'cnW') &&
\ !search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermbg=', 'cnW')
\ && group != 'Cursor'
let groups[group] = 'Missing bg terminal color for ' .. group
continue
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)
endfor
let err['highlight'] = groups
" 3) Check, that it does not set background highlighting
" 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_let = 'let \%([&]\%([lg]:\)\?\)\%(background\|bg\)\s*=\s*\([''"]\?\)\w\+\1'
let bg_pat = '\%(' .. bg_set .. '\|' .. bg_let .. '\)'
let line = search(bg_pat, 'cnW')
if search(bg_pat, 'cnW')
exe line
if search('hi \U\w\+\s\+\S', 'cbnW')
let err['background'] = 'Should not set background option after :hi statement'
endif
else
let err['background'] = 'OK'
endif
call cursor(1,1)
" 4) Check, that t_Co is checked
let pat = '[&]t_Co\s*[<>=]=\?\s*\d\+'
if !search(pat, 'ncW')
let err['t_Co'] = 'Does not check terminal for capable colors'
endif
" 5) Initializes correctly, e.g. should have a section like
" hi clear
" if exists("syntax_on")
" syntax reset
" 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')
let err['init'] = 'No initialization'
endif
" 6) Does not use :syn on
if search('syn\%[tax]\s\+on', 'cnW')
let err['background'] = 'Should not issue :syn on'
endif
" 7) Does not define filetype specific groups like vimCommand, htmlTag,
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
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')
let line = search(pat, 'cW')
let err['filetype'] = get(err, 'filetype', 'Should not define: ') . matchstr(getline('.'), pat). ' '
endif
call cursor(1,1)
endfor
" 9) Normal should be defined first, not use reverse, fg or bg
call cursor(1,1)
let pat = 'hi\%[ghlight] \+\%(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
" print Result
call Result(err)
endfu
fu! Result(err)
let do_groups = 0
echohl Title|echomsg "---------------"|echohl Normal
for key in sort(keys(a:err))
if key is# 'highlight'
let do_groups = !empty(a:err[key])
continue
# 1) Check g:colors_name is existing
if !search('\<\%(g:\)\?colors_name\>', 'cnW')
err['colors_name'] = 'g:colors_name not set'
else
if a:err[key] !~ 'OK'
echohl Title
endif
echomsg printf("%15s: %s", key, a:err[key])
echohl Normal
err['colors_name'] = 'OK'
endif
endfor
echohl Title|echomsg "---------------"|echohl Normal
if do_groups
echohl Title | echomsg "Groups" | echohl Normal
for v1 in sort(keys(a:err['highlight']))
echomsg printf("%25s: %s", v1, a:err['highlight'][v1])
endfor
endif
endfu
try
call Test_check_colors()
catch
echohl ErrorMsg
echomsg v:exception
echohl NONE
finally
let &cpo = s:save_cpo
unlet s:save_cpo
endtry
# 2) Check for some well-defined highlighting groups
const hi_groups = [
'ColorColumn',
'Comment',
'Conceal',
'Constant',
'CurSearch',
'Cursor',
'CursorColumn',
'CursorLine',
'CursorLineNr',
'CursorLineFold',
'CursorLineSign',
'DiffAdd',
'DiffChange',
'DiffDelete',
'DiffText',
'Directory',
'EndOfBuffer',
'Error',
'ErrorMsg',
'FoldColumn',
'Folded',
'Identifier',
'Ignore',
'IncSearch',
'LineNr',
'LineNrAbove',
'LineNrBelow',
'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',
'debugPC',
'debugBreakpoint',
]
var groups = {}
for group in hi_groups
if search('\c@suppress\s\+\<' .. group .. '\>', 'cnW') != 0
# skip check, if the script contains a line like
# @suppress Visual:
continue
endif
if search('hi\%[ghlight]!\= \+link \+' .. group, 'cnW') != 0 # Linked group
continue
endif
if search('hi\%[ghlight] \+\<' .. group .. '\>', 'cnW') == 0
groups[group] = 'No highlight definition for ' .. group
continue
endif
if search('hi\%[ghlight] \+\<' .. group .. '\>.*[bf]g=', 'cnW') == 0
groups[group] = 'Missing foreground or background color for ' .. group
continue
endif
if search('hi\%[ghlight] \+\<' .. group .. '\>.*guibg=', 'cnW') != 0
&& search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermbg=', 'cnW') == 0
&& group != 'Cursor'
groups[group] = 'Missing bg terminal color for ' .. group
continue
endif
if search('hi\%[ghlight] \+\<' .. group .. '\>.*guifg=', 'cnW') == 0
&& group !~ '^Diff'
groups[group] = 'Missing guifg definition for ' .. group
continue
endif
if search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermfg=', 'cnW') == 0
&& group !~ '^Diff'
&& group != 'Cursor'
groups[group] = 'Missing ctermfg definition for ' .. group
continue
endif
# do not check for background colors, they could be intentionally left out
cursor(1, 1)
endfor
err['highlight'] = groups
# 3) Check, that it does not set background highlighting
# Doesn't ':hi Normal ctermfg=253 ctermfg=233' also set the background sometimes?
const bg_set = '\(set\?\|setl\(ocal\)\?\) .*\(background\|bg\)=\(dark\|light\)'
const bg_let = 'let \%([&]\%([lg]:\)\?\)\%(background\|bg\)\s*=\s*\([''"]\?\)\w\+\1'
const bg_pat = '\%(' .. bg_set .. '\|' .. bg_let .. '\)'
const line = search(bg_pat, 'cnW')
if search(bg_pat, 'cnW') != 0
exe ":" .. line
if search('hi \U\w\+\s\+\S', 'cbnW') != 0
err['background'] = 'Should not set background option after :hi statement'
endif
else
err['background'] = 'OK'
endif
cursor(1, 1)
# 4) Check, that t_Co is checked
var pat = '[&]t_Co\s*[<>=]=\?\s*\d\+'
if search(pat, 'ncW') == 0
err['t_Co'] = 'Does not check terminal for capable colors'
endif
# 5) Initializes correctly, e.g. should have at least:
# hi clear
pat = '^\s*hi\%[ghlight]\s*clear\s*$'
if search(pat, 'cnW') == 0
err['init'] = 'No initialization'
endif
# 6) Does not use :syn on
if search('syn\%[tax]\s\+on', 'cnW') != 0
err['background'] = 'Should not issue :syn on'
endif
# 7) Normal should be defined first, not use reverse, fg or bg
cursor(1, 1)
pat = 'hi\%[light] \+\%(link\|clear\)\@!\w\+\>'
search(pat, 'cW') # Look for the first hi def, skipping `hi link` and `hi clear`
if getline('.') !~# '\m\<Normal\>'
err['highlight']['Normal'] = 'Should be defined first'
elseif getline('.') =~# '\m\%(=\%(fg\|bg\)\)'
err['highlight']['Normal'] = "Should not use 'fg' or 'bg'"
elseif getline('.') =~# '\m=\%(inv\|rev\)erse'
err['highlight']['Normal'] = 'Should not use reverse mode'
endif
# 8) TODO: XXX: Check if g:terminal_ansi_colors are defined
winrestview(savedview)
g:err = err
Result(err)
enddef
def Result(err: any)
var do_groups: bool = v:false
echohl Title | echomsg "---------------" | echohl Normal
for key in sort(keys(err))
if key is 'highlight'
do_groups = !empty(err[key])
continue
else
if err[key] !~ 'OK'
echohl Title
endif
echomsg printf("%15s: %s", key, err[key])
echohl Normal
endif
endfor
echohl Title | echomsg "---------------" | echohl Normal
if do_groups
echohl Title | echomsg "Groups" | echohl Normal
for v1 in sort(keys(err['highlight']))
echomsg printf("%25s: %s", v1, err['highlight'][v1])
endfor
endif
enddef
Test_check_colors()

View File

@ -1,50 +1,362 @@
" Vim color file
" Maintainer: Thorsten Maerz <info@netztorte.de>
" Last Change: 2006 Dec 07
" grey on black
" optimized for TFT panels
" Name: torte
" Description: Remake of torte (grey on black)
" Author: Original maintainer Thorsten Maerz <info@netztorte.de>
" Maintainer: Original maintainer Thorsten Maerz <info@netztorte.de>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:46 2022
" Generated by Colortemplate v2.2.0
set background=dark
hi clear
if exists("syntax_on")
syntax reset
let g:colors_name = 'torte'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
"colorscheme default
let g:colors_name = "torte"
hi Normal guifg=#cccccc guibg=#000000 gui=NONE cterm=NONE
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#40ffff guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#ffff60 guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#60ff60 guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi Todo guifg=#ffff00 guibg=#000000 gui=reverse cterm=reverse
hi Folded guifg=#00cdcd guibg=#3a3a3a gui=NONE cterm=NONE
hi Visual guifg=#000000 guibg=#a9a9a9 gui=bold cterm=NONE
hi CursorColumn guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffff00 guibg=#666666 gui=NONE cterm=NONE
hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi ColorColumn guifg=#cccccc guibg=#8b0000 gui=NONE cterm=NONE
hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
hi Cursor guifg=#000000 guibg=#00ff00 gui=bold cterm=NONE
hi lCursor guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi Search guifg=#ff0000 guibg=#000000 gui=reverse cterm=reverse
hi IncSearch guifg=#00cd00 guibg=#000000 gui=reverse cterm=reverse
hi NonText guifg=#0000ff guibg=NONE gui=bold cterm=NONE
hi EndOfBuffer guifg=#0000ff guibg=NONE gui=bold cterm=NONE
hi ErrorMsg guifg=#ffffff guibg=#cd0000 gui=NONE cterm=NONE
hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi LineNr guifg=#7f7f7f guibg=NONE gui=NONE cterm=NONE
hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#cdcd00 gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#5c5cff guibg=NONE guisp=#5c5cff gui=undercurl cterm=underline
hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
hi SpellRare guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
hi StatusLine guifg=#ffffff guibg=#0000ee gui=bold cterm=NONE
hi StatusLineNC guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
hi VertSplit guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
hi TabLine guifg=#ffffff guibg=#7f7f7f gui=NONE cterm=NONE
hi TabLineFill guifg=NONE guibg=#000000 gui=reverse cterm=reverse
hi TabLineSel guifg=#cccccc guibg=#000000 gui=bold cterm=NONE
hi ToolbarLine guifg=NONE guibg=#000000 gui=NONE cterm=NONE
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
hi Pmenu guifg=fg guibg=#303030 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#bebebe gui=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
" hardcoded colors :
" GUI Comment : #80a0ff = Light blue
" GUI
highlight Normal guifg=Grey80 guibg=Black
highlight Search guifg=Black guibg=Red gui=bold
highlight Visual guifg=#404040 gui=bold
highlight Cursor guifg=Black guibg=Green gui=bold
highlight Special guifg=Orange
highlight Comment guifg=#80a0ff
highlight StatusLine guifg=blue guibg=white
highlight Statement guifg=Yellow gui=NONE
highlight Type gui=NONE
" Console
highlight Normal ctermfg=LightGrey ctermbg=Black
highlight Search ctermfg=Black ctermbg=Red cterm=NONE
highlight Visual cterm=reverse
highlight Cursor ctermfg=Black ctermbg=Green cterm=bold
highlight Special ctermfg=Brown
highlight Comment ctermfg=Blue
highlight StatusLine ctermfg=blue ctermbg=white
highlight Statement ctermfg=Yellow cterm=NONE
highlight Type cterm=NONE
" only for vim 5
if has("unix")
if v:version<600
highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE
highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold
highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=#404040 gui=bold
highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue gui=NONE
highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue gui=NONE
endif
if s:t_Co >= 256
hi Normal ctermfg=251 ctermbg=16 cterm=NONE
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=87 ctermbg=NONE cterm=NONE
hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
hi Type ctermfg=83 ctermbg=NONE cterm=NONE
hi Special ctermfg=214 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
hi Error ctermfg=231 ctermbg=196 cterm=NONE
hi Todo ctermfg=226 ctermbg=16 cterm=reverse
hi Folded ctermfg=44 ctermbg=237 cterm=NONE
hi Visual ctermfg=16 ctermbg=248 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=242 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=242 cterm=NONE
hi CursorLineNr ctermfg=226 ctermbg=242 cterm=NONE
hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=51 ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=251 ctermbg=88 cterm=NONE
hi Conceal ctermfg=254 ctermbg=248 cterm=NONE
hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
hi lCursor ctermfg=16 ctermbg=254 cterm=NONE
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=NONE
hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
hi Search ctermfg=196 ctermbg=16 cterm=reverse
hi IncSearch ctermfg=40 ctermbg=16 cterm=reverse
hi NonText ctermfg=21 ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=21 ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
hi LineNr ctermfg=102 ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=30 cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
hi Question ctermfg=46 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=184 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=63 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=51 ctermbg=NONE cterm=underline
hi StatusLine ctermfg=231 ctermbg=20 cterm=NONE
hi StatusLineNC ctermfg=16 ctermbg=254 cterm=NONE
hi VertSplit ctermfg=16 ctermbg=254 cterm=NONE
hi TabLine ctermfg=231 ctermbg=102 cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=16 cterm=reverse
hi TabLineSel ctermfg=251 ctermbg=16 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=16 cterm=NONE
hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
hi Pmenu ctermfg=fg ctermbg=236 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=250 cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Type ctermfg=green ctermbg=NONE cterm=NONE
hi Special ctermfg=darkred ctermbg=NONE cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi Ignore ctermfg=black ctermbg=black cterm=NONE
hi Error ctermfg=white ctermbg=red cterm=NONE
hi Todo ctermfg=yellow ctermbg=black cterm=reverse
hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Visual ctermfg=black ctermbg=grey cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
hi Cursor ctermfg=black ctermbg=green cterm=NONE
hi lCursor ctermfg=black ctermbg=grey cterm=NONE
hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
hi Search ctermfg=red ctermbg=black cterm=reverse
hi IncSearch ctermfg=darkgreen ctermbg=black cterm=reverse
hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=green ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=cyan ctermbg=NONE cterm=underline
hi StatusLine ctermfg=white ctermbg=darkblue cterm=NONE
hi StatusLineNC ctermfg=black ctermbg=grey cterm=NONE
hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
hi TabLine ctermfg=white ctermbg=darkgrey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
hi Pmenu ctermfg=fg ctermbg=darkgrey cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: foreground #CCCCCC 251 white
" Color: background #000000 16 black
" Color: color00 #000000 16 black
" Color: color08 #7f7f7f 102 darkgrey
" Color: color01 #cd0000 160 darkred
" Color: color09 #ff0000 196 red
" Color: color02 #00cd00 40 darkgreen
" Color: color10 #00ff00 46 green
" Color: color03 #cdcd00 184 darkyellow
" Color: color11 #ffff00 226 yellow
" Color: color04 #0000ee 20 darkblue
" Color: color12 #5c5cff 63 blue
" Color: color05 #cd00cd 164 darkmagenta
" Color: color13 #ff00ff 201 magenta
" Color: color06 #00cdcd 44 darkcyan
" Color: color14 #00ffff 51 cyan
" Color: color07 #e5e5e5 254 grey
" Color: color15 #ffffff 231 white
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
" Color: rgbGrey40 #666666 242 grey
" Color: rgbDarkGrey #a9a9a9 248 grey
" Color: rgbDarkBlue #00008b 18 darkblue
" Color: rgbDarkMagenta #8b008b 90 darkmagenta
" Color: rgbBlue #0000ff 21 blue
" Color: rgbDarkCyan #008b8b 30 darkcyan
" Color: Directory #00ffff 51 cyan
" Color: rgbSeaGreen #2e8b57 29 darkgreen
" Color: rgbGrey #bebebe 250 grey
" Color: Question #00ff00 46 green
" Color: SignColumn #a9a9a9 248 black
" Color: SpecialKey #00ffff 51 cyan
" Color: StatusLineTerm #90ee90 120 darkgreen
" Color: Title #ff00ff 201 magenta
" Color: WarningMsg #ff0000 196 red
" Color: ToolbarLine #7f7f7f 243 black
" Color: ToolbarButton #d3d3d3 252 darkgrey
" Color: Comment #80a0ff 111 blue
" Color: Constant #ffa0a0 217 darkmagenta
" Color: Special #ffa500 214 darkred
" Color: Identifier #40ffff 87 cyan
" Color: Statement #ffff60 227 yellow
" Color: PreProc #ff80ff 213 darkcyan
" Color: Type #60ff60 83 green
" Color: Underlined #80a0ff 111 blue
" Color: FoldedBG #3a3a3a 237 darkgrey
" Color: Pmenu #303030 236 darkgrey
" Color: rgbDarkRed #8b0000 88 darkred
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

@ -1,54 +1,341 @@
" local syntax file - set colors on a per-machine basis:
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2003 May 02
" Name: zellner
" Description: Light background colorscheme.
" Author: Original author Ron Aaron <ron@ronware.org>
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:47 2022
" Generated by Colortemplate v2.2.0
set background=light
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name = "zellner"
hi Comment term=bold ctermfg=Red guifg=Red
hi Normal guifg=black guibg=white
hi Constant term=underline ctermfg=Magenta guifg=Magenta
hi Special term=bold ctermfg=Magenta guifg=Magenta
hi Identifier term=underline ctermfg=Blue guifg=Blue
hi Statement term=bold ctermfg=DarkRed gui=NONE guifg=Brown
hi PreProc term=underline ctermfg=Magenta guifg=Purple
hi Type term=underline ctermfg=Blue gui=NONE guifg=Blue
hi Visual term=reverse ctermfg=Yellow ctermbg=Red gui=NONE guifg=Black guibg=Yellow
hi Search term=reverse ctermfg=Black ctermbg=Cyan gui=NONE guifg=Black guibg=Cyan
hi Tag term=bold ctermfg=DarkGreen guifg=DarkGreen
hi Error term=reverse ctermfg=15 ctermbg=9 guibg=Red guifg=White
hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
hi StatusLine term=bold,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=NONE guifg=Yellow guibg=DarkGray
hi! link MoreMsg Comment
hi! link ErrorMsg Visual
hi! link WarningMsg ErrorMsg
hi! link Question Comment
hi link String Constant
hi link Character Constant
hi link Number Constant
hi link Boolean Constant
hi link Float Number
hi link Function Identifier
hi link Conditional Statement
hi link Repeat Statement
hi link Label Statement
hi link Operator Statement
hi link Keyword Statement
hi link Exception Statement
hi link Include PreProc
hi link Define PreProc
hi link Macro PreProc
hi link PreCondit PreProc
hi link StorageClass Type
hi link Structure Type
hi link Typedef Type
hi link SpecialChar Special
hi link Delimiter Special
hi link SpecialComment Special
hi link Debug Special
hi clear
let g:colors_name = 'zellner'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#ffffff', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#a9a9a9', '#ff0000', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#000000']
endif
hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
hi CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
hi QuickFixLine guifg=#ffffff guibg=#6a5acd gui=NONE cterm=NONE
hi EndOfBuffer guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
hi StatusLine guifg=#ffff00 guibg=#a9a9a9 gui=NONE cterm=NONE
hi StatusLineNC guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi StatusLineTerm guifg=#ffffff guibg=#006400 gui=NONE cterm=NONE
hi StatusLineTermNC guifg=#ffffff guibg=#0000ff gui=NONE cterm=NONE
hi VertSplit guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi Pmenu guifg=#000000 guibg=#dadada gui=NONE cterm=NONE
hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#a9a9a9 gui=NONE cterm=NONE
hi TabLine guifg=#000000 guibg=#a9a9a9 gui=underline cterm=underline
hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
hi ToolbarLine guifg=NONE guibg=#d3d3d3 gui=NONE cterm=NONE
hi ToolbarButton guifg=NONE guibg=#a9a9a9 gui=bold cterm=NONE
hi NonText guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
hi Visual guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi VisualNOS guifg=NONE guibg=#ff0000 gui=NONE cterm=NONE
hi LineNr guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi WarningMsg guifg=#a020f0 guibg=#ffffff gui=NONE cterm=NONE
hi MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
hi Question guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi MatchParen guifg=#ffffff guibg=#ff00ff gui=NONE cterm=NONE
hi Search guifg=#ffffff guibg=#a020f0 gui=NONE cterm=NONE
hi IncSearch guifg=#000000 guibg=NONE gui=reverse cterm=reverse
hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi lCursor guifg=#000000 guibg=#ff00ff gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
hi SpellCap guifg=#0000ff guibg=NONE guisp=#0000ff gui=undercurl cterm=underline
hi SpellLocal guifg=#878700 guibg=NONE guisp=#878700 gui=undercurl cterm=underline
hi SpellRare guifg=#008787 guibg=NONE guisp=#008787 gui=undercurl cterm=underline
hi Comment guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#a020f0 guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
hi Tag guifg=#006400 guibg=NONE gui=NONE cterm=NONE
hi Directory guifg=#0000ff guibg=NONE gui=bold cterm=NONE
hi Conceal guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title guifg=#a020f0 guibg=NONE gui=bold cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=16 ctermbg=231 cterm=NONE
hi Folded ctermfg=18 ctermbg=252 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=254 cterm=NONE
hi CursorLineNr ctermfg=124 ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=231 ctermbg=62 cterm=NONE
hi EndOfBuffer ctermfg=248 ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=226 ctermbg=248 cterm=NONE
hi StatusLineNC ctermfg=231 ctermbg=16 cterm=NONE
hi StatusLineTerm ctermfg=231 ctermbg=22 cterm=NONE
hi StatusLineTermNC ctermfg=231 ctermbg=21 cterm=NONE
hi VertSplit ctermfg=231 ctermbg=16 cterm=NONE
hi Pmenu ctermfg=16 ctermbg=253 cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=231 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=248 cterm=NONE
hi TabLine ctermfg=16 ctermbg=248 cterm=underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=16 ctermbg=231 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=252 cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=248 cterm=NONE
hi NonText ctermfg=248 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=248 ctermbg=NONE cterm=NONE
hi Visual ctermfg=16 ctermbg=226 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=196 cterm=NONE
hi LineNr ctermfg=124 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=18 ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
hi Error ctermfg=196 ctermbg=231 cterm=reverse
hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
hi WarningMsg ctermfg=129 ctermbg=231 cterm=NONE
hi MoreMsg ctermfg=16 ctermbg=231 cterm=NONE
hi ModeMsg ctermfg=16 ctermbg=231 cterm=NONE
hi Question ctermfg=201 ctermbg=NONE cterm=NONE
hi Todo ctermfg=16 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=231 ctermbg=201 cterm=NONE
hi Search ctermfg=231 ctermbg=129 cterm=NONE
hi IncSearch ctermfg=16 ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=255 cterm=NONE
hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
hi lCursor ctermfg=16 ctermbg=201 cterm=NONE
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=21 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=100 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=30 ctermbg=NONE cterm=underline
hi Comment ctermfg=196 ctermbg=NONE cterm=NONE
hi Constant ctermfg=201 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=21 ctermbg=NONE cterm=NONE
hi Statement ctermfg=124 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=129 ctermbg=NONE cterm=NONE
hi Type ctermfg=21 ctermbg=NONE cterm=NONE
hi Special ctermfg=201 ctermbg=NONE cterm=NONE
hi Tag ctermfg=22 ctermbg=NONE cterm=NONE
hi Directory ctermfg=21 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=196 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=129 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 16
hi Normal ctermfg=black ctermbg=white cterm=NONE
hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=darkred ctermbg=NONE cterm=underline
hi QuickFixLine ctermfg=white ctermbg=blue cterm=NONE
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=yellow ctermbg=darkgrey cterm=NONE
hi StatusLineNC ctermfg=white ctermbg=black cterm=NONE
hi StatusLineTerm ctermfg=white ctermbg=darkgreen cterm=NONE
hi StatusLineTermNC ctermfg=white ctermbg=blue cterm=NONE
hi VertSplit ctermfg=white ctermbg=black cterm=NONE
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=white cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=grey cterm=NONE
hi NonText ctermfg=grey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=grey ctermbg=NONE cterm=NONE
hi Visual ctermfg=black ctermbg=yellow cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=red cterm=NONE
hi LineNr ctermfg=darkred ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi Error ctermfg=red ctermbg=white cterm=reverse
hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse
hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
hi MoreMsg ctermfg=black ctermbg=white cterm=NONE
hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
hi Question ctermfg=magenta ctermbg=NONE cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi MatchParen ctermfg=white ctermbg=magenta cterm=NONE
hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=black ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=grey cterm=NONE
hi Cursor ctermfg=white ctermbg=black cterm=NONE
hi lCursor ctermfg=black ctermbg=magenta cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi Comment ctermfg=red ctermbg=NONE cterm=NONE
hi Constant ctermfg=magenta ctermbg=NONE cterm=NONE
hi Identifier ctermfg=blue ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=blue ctermbg=NONE cterm=NONE
hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
hi Tag ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Directory ctermfg=blue ctermbg=NONE cterm=NONE
hi Conceal ctermfg=red ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: light
" Color: comment #ff0000 196 red
" Color: constant #ff00ff 201 magenta
" Color: identifier #0000ff 21 blue
" Color: statement #a52a2a 124 darkred
" Color: preproc #a020f0 129 darkmagenta
" Color: type #0000ff 21 blue
" Color: special #ff00ff 201 magenta
" Color: tag #006400 22 darkgreen
" Color: fg0 #000000 16 black
" Color: bg0 #ffffff 231 white
" Color: bg1 #a9a9a9 248 grey
" Color: status #a9a9a9 248 darkgrey
" Color: visual #ffff00 226 yellow
" Color: folded #d3d3d3 252 black
" Color: folded_fg #00008b 18 darkblue
" Color: cursorline #e5e5e5 254 black
" Color: pmenu #dadada 253 grey
" Color: wildmenu #ffff00 226 yellow
" Color: error #ff0000 196 red
" Color: linenr #a52a2a 124 darkred
" Color: colorcolumn #eeeeee 255 grey
" Color: slateblue #6a5acd 62 blue
" Color: darkcyan #008787 30 darkcyan
" Color: darkgreen #008700 28 darkgreen
" Color: darkyellow #878700 100 darkyellow
" Term colors: bg0 statement constant preproc identifier type special bg1
" Term colors: comment statement constant preproc identifier type special fg0
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" vim: et ts=2 sw=2

View File

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

View File

@ -1,7 +1,8 @@
" scdoc compiler for Vim
" Compiler: scdoc
" Maintainer: Greg Anders <greg@gpanders.com>
" Maintainer: Gregory Anders <contact@gpanders.com>
" Last Updated: 2019-10-24
" Upstream: https://github.com/gpanders/vim-scdoc
if exists('current_compiler')
finish

View File

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

View File

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

View File

@ -144,7 +144,9 @@ DOCS = \
usr_43.txt \
usr_44.txt \
usr_45.txt \
usr_46.txt \
usr_50.txt \
usr_51.txt \
usr_52.txt \
usr_90.txt \
usr_toc.txt \
various.txt \
@ -153,6 +155,7 @@ DOCS = \
version6.txt \
version7.txt \
version8.txt \
version9.txt \
vi_diff.txt \
vim9.txt \
visual.txt \
@ -289,7 +292,9 @@ HTMLS = \
usr_43.html \
usr_44.html \
usr_45.html \
usr_46.html \
usr_50.html \
usr_51.html \
usr_52.html \
usr_90.html \
usr_toc.html \
various.html \
@ -298,6 +303,7 @@ HTMLS = \
version6.html \
version7.html \
version8.html \
version9.html \
vi_diff.html \
vimindex.html \
vim9.html \

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.2. Last change: 2022 Jan 21
*autocmd.txt* For Vim version 8.2. Last change: 2022 Apr 17
VIM REFERENCE MANUAL by Bram Moolenaar
@ -63,7 +63,7 @@ effects. Be careful not to destroy your text.
they were given.
See |autocmd-nested| for [++nested]. "nested"
(without the ++) can also be used, for backwards
compatibility.
compatibility, but not in |Vim9| script. *E1078*
*autocmd-once*
If [++once] is supplied the command is executed once,
then removed ("one shot").
@ -95,6 +95,7 @@ Or use `:execute`: >
:augroup mine | exe "au! BufRead *" | augroup END
:augroup mine | exe "au BufRead * set tw=70" | augroup END
< *autocmd-expand*
Note that special characters (e.g., "%", "<cword>") in the ":autocmd"
arguments are not expanded when the autocommand is defined. These will be
expanded when the Event is recognized, and the {cmd} is executed. The only
@ -326,6 +327,7 @@ Name triggered by ~
|FileChangedRO| before making the first change to a read-only file
|DiffUpdated| after diffs have been updated
|DirChangedPre| before the working directory will change
|DirChanged| after the working directory has changed
|ShellCmdPost| after executing a shell command
@ -364,6 +366,7 @@ Name triggered by ~
|InsertEnter| starting Insert mode
|InsertChange| when typing <Insert> while in Insert or Replace mode
|InsertLeave| when leaving Insert mode
|InsertLeavePre| just before leaving Insert mode
|InsertCharPre| when a character was typed in Insert mode, before
inserting it
@ -400,6 +403,8 @@ Name triggered by ~
|User| to be used in combination with ":doautocmd"
|SigUSR1| after the SIGUSR1 signal has been detected
|WinScrolled| after scrolling or resizing a window
The alphabetical list of autocommand events: *autocmd-events-abc*
@ -469,13 +474,15 @@ BufRead or BufReadPost When starting to edit a new buffer, after
executing the modelines. See |BufWinEnter|
for when you need to do something after
processing the modelines.
This does NOT work for ":r file". Not used
when the file doesn't exist. Also used after
successfully recovering a file.
Also triggered for the filetypedetect group
when executing ":filetype detect" and when
writing an unnamed buffer in a way that the
buffer gets a name.
Also triggered:
- when writing an unnamed buffer in a way that
the buffer gets a name
- after successfully recovering a file
- for the filetypedetect group when executing
":filetype detect"
Not triggered:
- for the `:read file` command
- when the file doesn't exist
*BufReadCmd*
BufReadCmd Before starting to edit a new buffer. Should
read the file into the buffer. |Cmd-event|
@ -688,9 +695,9 @@ CursorHoldI Just like CursorHold, but in Insert mode.
CursorMoved After the cursor was moved in Normal or Visual
mode. Also when the text of the cursor line
has been changed, e.g., with "x", "rx" or "p".
Not triggered when there is typeahead, while
executing commands in a script file, when
an operator is pending or when moving to
Not always triggered when there is typeahead,
while executing commands in a script file,
when an operator is pending or when moving to
another window while remaining at the same
cursor position.
For an example see |match-parens|.
@ -703,9 +710,38 @@ CursorMoved After the cursor was moved in Normal or Visual
CursorMovedI After the cursor was moved in Insert mode.
Not triggered when the popup menu is visible.
Otherwise the same as CursorMoved.
*DiffUpdated*
DiffUpdated After diffs have been updated. Depending on
what kind of diff is being used (internal or
external) this can be triggered on every
change or when doing |:diffupdate|.
*DirChangedPre*
DirChangedPre The working directory is going to be changed,
as with |DirChanged|. The pattern is like
with |DirChanged|. The new directory can be
found in v:event.directory.
*DirChanged*
DirChanged The working directory has changed in response
to the |:cd| or |:tcd| or |:lcd| commands, or
as a result of the 'autochdir' option.
The pattern can be:
"window" to trigger on `:lcd`
"tabpage" to trigger on `:tcd`
"global" to trigger on `:cd`
"auto" to trigger on 'autochdir'.
"drop" to trigger on editing a file
<afile> is set to the new directory name.
*EncodingChanged*
EncodingChanged Fires off after the 'encoding' option has been
changed. Useful to set up fonts, for example.
*ExitPre*
ExitPre When using `:quit`, `:wq` in a way it makes
Vim exit, or using `:qall`, just after
|QuitPre|. Can be used to close any
non-essential window. Exiting may still be
cancelled if there is a modified buffer that
isn't automatically saved, use |VimLeavePre|
for really exiting.
*FileAppendCmd*
FileAppendCmd Before appending to a file. Should do the
appending to the file. Use the '[ and ']
@ -733,30 +769,6 @@ FileChangedRO Before making the first change to a read-only
*E881*
If the number of lines changes saving for undo
may fail and the change will be aborted.
*DiffUpdated*
DiffUpdated After diffs have been updated. Depending on
what kind of diff is being used (internal or
external) this can be triggered on every
change or when doing |:diffupdate|.
*DirChanged*
DirChanged The working directory has changed in response
to the |:cd| or |:tcd| or |:lcd| commands, or
as a result of the 'autochdir' option.
The pattern can be:
"window" to trigger on `:lcd`
"tabpage" to trigger on `:tcd`
"global" to trigger on `:cd`
"auto" to trigger on 'autochdir'.
"drop" to trigger on editing a file
<afile> is set to the new directory name.
*ExitPre*
ExitPre When using `:quit`, `:wq` in a way it makes
Vim exit, or using `:qall`, just after
|QuitPre|. Can be used to close any
non-essential window. Exiting may still be
cancelled if there is a modified buffer that
isn't automatically saved, use |VimLeavePre|
for really exiting.
*FileChangedShell*
FileChangedShell When Vim notices that the modification time of
a file has changed since editing started.
@ -1196,6 +1208,9 @@ TextYankPost After text has been yanked or deleted in the
current buffer. The following values of
|v:event| can be used to determine the operation
that triggered this autocmd:
inclusive TRUE if the motion is
|inclusive| else the motion is
|exclusive|.
operator The operation performed.
regcontents Text that was stored in the
register, as a list of lines,
@ -1221,7 +1236,13 @@ User Never executed automatically. To be used for
Note that when `:doautocmd User MyEvent` is
used while there are no matching autocommands,
you will get an error. If you don't want
that, define a dummy autocommand yourself.
that, either check whether an autocommand is
defined using `exists('#User#MyEvent')` or
define a dummy autocommand yourself.
Example: >
if exists('#User#MyEvent')
doautocmd User MyEvent
endif
*SigUSR1*
SigUSR1 After the SIGUSR1 signal has been detected.
@ -1310,10 +1331,23 @@ WinNew When a new window was created. Not done for
the first window, when Vim has just started.
Before a WinEnter event.
*WinScrolled*
WinScrolled After scrolling the content of a window or
resizing a window.
The pattern is matched against the
|window-ID|. Both <amatch> and <afile> are
set to the |window-ID|.
Non-recursive (the event cannot trigger
itself). However, if the command causes the
window to scroll or change size another
WinScrolled event will be triggered later.
Does not trigger when the command is added,
only after the first scroll or resize.
==============================================================================
6. Patterns *autocmd-patterns* *{aupat}*
The {aupat} argument of `:autocmd` can be a comma separated list. This works as
The {aupat} argument of `:autocmd` can be a comma-separated list. This works as
if the command was given with each pattern separately. Thus this command: >
:autocmd BufRead *.txt,*.info set et
Is equivalent to: >
@ -1633,7 +1667,7 @@ Examples for reading and writing compressed files: >
: autocmd BufReadPre,FileReadPre *.gz set bin
: autocmd BufReadPost,FileReadPost *.gz '[,']!gunzip
: autocmd BufReadPost,FileReadPost *.gz set nobin
: autocmd BufReadPost,FileReadPost *.gz execute ":doautocmd BufReadPost " . expand("%:r")
: autocmd BufReadPost,FileReadPost *.gz execute ":doautocmd BufReadPost " .. expand("%:r")
: autocmd BufWritePost,FileWritePost *.gz !mv <afile> <afile>:r
: autocmd BufWritePost,FileWritePost *.gz !gzip <afile>:r
@ -1732,7 +1766,7 @@ To insert the current date and time in a *.html file when writing it: >
: else
: let l = line("$")
: endif
: exe "1," . l . "g/Last modified: /s/Last modified: .*/Last modified: " .
: exe "1," .. l .. "g/Last modified: /s/Last modified: .*/Last modified: " ..
: \ strftime("%Y %b %d")
:endfun

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 8.2. Last change: 2022 Feb 04
*change.txt* For Vim version 8.2. Last change: 2022 May 07
VIM REFERENCE MANUAL by Bram Moolenaar
@ -614,9 +614,10 @@ attack or other people reading your file). When Vim exits the directory and
all files in it are deleted. When Vim has the setuid bit set this may cause
problems, the temp file is owned by the setuid user but the filter command
probably runs as the original user.
On MS-Windows the first of these directories that works is used: $TMP,
$TEMP, c:\TMP, c:\TEMP.
For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
Directory for temporary files is created in the first of these directories
that works:
Unix: $TMPDIR, /tmp, current-dir, $HOME.
Windows: $TMP, $TEMP, c:\TMP, c:\TEMP
For MS-Windows the GetTempFileName() system function is used.
For other systems the tmpnam() library function is used.
@ -778,8 +779,8 @@ matched pattern is deleted. The separator after {pattern} can also be left
out then. Example: >
:%s/TESTING
This deletes "TESTING" from all lines, but only one per line.
For compatibility with Vi these two exceptions are allowed:
*E1270*
For compatibility with Vi these two exceptions are allowed in legacy script:
"\/{string}/" and "\?{string}?" do the same as "//{string}/r".
"\&{string}&" does the same as "//{string}/".
*pattern-delimiter* *E146* *E1241* *E1242*
@ -946,7 +947,7 @@ Consider using a character like "@" or ":". There is no problem if the result
of the expression contains the separation character.
Examples: >
:s@\n@\="\r" . expand("$HOME") . "\r"@
:s@\n@\="\r" .. expand("$HOME") .. "\r"@
This replaces an end-of-line with a new line containing the value of $HOME. >
s/E/\="\<Char-0x20ac>"/g
@ -1123,7 +1124,7 @@ inside of strings can change! Also see 'softtabstop' option. >
the command. You need to escape the '|' and '"'
characters to prevent them from terminating the
command. Example: >
:put ='path' . \",/test\"
:put ='path' .. \",/test\"
< If there is no expression after '=', Vim uses the
previous expression. You can see it with ":dis =".
@ -1176,14 +1177,15 @@ register. With blockwise selection it also depends on the size of the block
and whether the corners are on an existing character. (Implementation detail:
it actually works by first putting the register after the selection and then
deleting the selection.)
With 'p' the previously selected text is put in the unnamed register. This is
useful if you want to put that text somewhere else. But you cannot repeat the
same change.
With 'P' the unnamed register is not changed, you can repeat the same change.
But the deleted text cannot be used. If you do need it you can use 'p' with
another register. E.g., yank the text to copy, Visually select the text to
replace and use "0p . You can repeat this as many times as you like, and the
unnamed register will be changed each time.
With |p| the previously selected text is put in the unnamed register (and
possibly the selection and/or clipboard). This is useful if you want to put
that text somewhere else. But you cannot repeat the same change.
With |P| the unnamed register is not changed (and neither the selection or
clipboard), you can repeat the same change. But the deleted text cannot be
used. If you do need it you can use |p| with another register. E.g., yank
the text to copy, Visually select the text to replace and use "0p . You can
repeat this as many times as you like, and the unnamed register will be
changed each time.
When you use a blockwise Visual mode command and yank only a single line into
a register, a paste on a visual selected area will paste that single line on
@ -1671,9 +1673,9 @@ readability.
letter meaning when present in 'formatoptions' ~
*fo-t*
t Auto-wrap text using textwidth
t Auto-wrap text using 'textwidth'
*fo-c*
c Auto-wrap comments using textwidth, inserting the current comment
c Auto-wrap comments using 'textwidth', inserting the current comment
leader automatically.
*fo-r*
r Automatically insert the current comment leader after hitting
@ -1682,6 +1684,9 @@ r Automatically insert the current comment leader after hitting
o Automatically insert the current comment leader after hitting 'o' or
'O' in Normal mode. In case comment is unwanted in a specific place
use CTRL-U to quickly delete it. |i_CTRL-U|
*fo-/*
/ When 'o' is included: do not insert the comment leader for a //
comment after a statement, only when // is at the start of the line.
*fo-q*
q Allow formatting of comments with "gq".
Note that formatting will not change blank lines or lines containing
@ -1744,8 +1749,8 @@ B When joining lines, don't insert a space between two multibyte
1 Don't break a line after a one-letter word. It's broken before it
instead (if possible).
*fo-]*
] Respect textwidth rigorously. With this flag set, no line can be
longer than textwidth, unless line-break-prohibition rules make this
] Respect 'textwidth' rigorously. With this flag set, no line can be
longer than 'textwidth', unless line-break-prohibition rules make this
impossible. Mainly for CJK scripts and works only if 'encoding' is
"utf-8".
*fo-j*

View File

@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.2. Last change: 2021 Nov 28
*channel.txt* For Vim version 8.2. Last change: 2022 Apr 16
VIM REFERENCE MANUAL by Bram Moolenaar
@ -25,6 +25,7 @@ The Netbeans interface also uses a channel. |netbeans|
12. Job options |job-options|
13. Controlling a job |job-control|
14. Using a prompt buffer |prompt-buffer|
15. Language Server Protocol |language-server-protocol|
{only when compiled with the |+channel| feature for channel stuff}
You can check this with: `has('channel')`
@ -53,6 +54,7 @@ RAW nothing known, Vim cannot tell where a message ends
NL every message ends in a NL (newline) character
JSON JSON encoding |json_encode()|
JS JavaScript style JSON-like encoding |js_encode()|
LSP Language Server Protocol encoding |language-server-protocol|
Common combination are:
- Using a job connected through pipes in NL mode. E.g., to run a style
@ -91,7 +93,7 @@ And you should see the message in Vim. You can move the cursor a word forward:
To handle asynchronous communication a callback needs to be used: >
func MyHandler(channel, msg)
echo "from the handler: " . a:msg
echo "from the handler: " .. a:msg
endfunc
call ch_sendexpr(channel, 'hello!', {'callback': "MyHandler"})
Vim will not wait for a response. Now the server can send the response later
@ -118,10 +120,13 @@ To open a channel: >
Use |ch_status()| to see if the channel could be opened.
{address} has the form "hostname:port". E.g., "localhost:8765".
When using an IPv6 address, enclose it within square brackets. E.g.,
"[2001:db8::1]:8765".
*channel-address*
{address} can be a domain name or an IP address, followed by a port number, or
a Unix-domain socket path prefixed by "unix:". E.g. >
www.example.com:80 " domain + port
127.0.0.1:1234 " IPv4 + port
[2001:db8::1]:8765 " IPv6 + port
unix:/tmp/my-socket " Unix-domain socket path
{options} is a dictionary with optional entries: *channel-open-options*
@ -130,18 +135,19 @@ When using an IPv6 address, enclose it within square brackets. E.g.,
"js" - Use JS (JavaScript) encoding, more efficient than JSON.
"nl" - Use messages that end in a NL character
"raw" - Use raw messages
"lsp" - Use language server protocol encoding
*channel-callback* *E921*
"callback" A function that is called when a message is received that is
not handled otherwise (e.g. a JSON message with ID zero). It
gets two arguments: the channel and the received message.
Example: >
func Handle(channel, msg)
echo 'Received: ' . a:msg
echo 'Received: ' .. a:msg
endfunc
let channel = ch_open("localhost:8765", {"callback": "Handle"})
<
When "mode" is "json" or "js" the "msg" argument is the body
of the received message, converted to Vim types.
When "mode" is "json" or "js" or "lsp" the "msg" argument is
the body of the received message, converted to Vim types.
When "mode" is "nl" the "msg" argument is one message,
excluding the NL.
When "mode" is "raw" the "msg" argument is the whole message
@ -165,7 +171,19 @@ When using an IPv6 address, enclose it within square brackets. E.g.,
to check for messages, the close_cb may be invoked while still
in the callback. The plugin must handle this somehow, it can
be useful to know that no more data is coming.
*channel-drop*
If it is not known if there is a message to be read, use a
try/catch block: >
try
let msg = ch_readraw(a:channel)
catch
let msg = 'no message'
endtry
try
let err = ch_readraw(a:channel, #{part: 'err'})
catch
let err = 'no error'
endtry
< *channel-drop*
"drop" Specifies when to drop messages:
"auto" When there is no callback to handle a message.
The "close_cb" is also considered for this.
@ -407,6 +425,7 @@ To send a message, without expecting a response: >
The process can send back a response, the channel handler will be called with
it.
*channel-onetime-callback*
To send a message and letting the response handled by a specific function,
asynchronously: >
call ch_sendraw(channel, {string}, {'callback': 'MyHandler'})
@ -443,7 +462,7 @@ to check if there is something to read.
Note that when there is no callback, messages are dropped. To avoid that add
a close callback to the channel.
To read all output from a RAW channel that is available: >
To read all normal output from a RAW channel that is available: >
let output = ch_readraw(channel)
To read the error output: >
let output = ch_readraw(channel, {"part": "err"})
@ -503,6 +522,7 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
according to the type of channel. The function cannot be used
with a raw channel. See |channel-use|.
{handle} can be a Channel or a Job that has a Channel.
When using the "lsp" channel mode, {expr} must be a |Dict|.
*E917*
{options} must be a Dictionary. It must not have a "callback"
entry. It can have a "timeout" entry to specify the timeout
@ -510,7 +530,8 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
ch_evalexpr() waits for a response and returns the decoded
expression. When there is an error or timeout it returns an
empty string.
empty |String| or, when using the "lsp" channel mode, returns an
empty |Dict|.
Note that while waiting for the response, Vim handles other
messages. You need to make sure this doesn't cause trouble.
@ -564,10 +585,15 @@ ch_info({handle}) *ch_info()*
When opened with ch_open():
"hostname" the hostname of the address
"port" the port of the address
"path" the path of the Unix-domain socket
"sock_status" "open" or "closed"
"sock_mode" "NL", "RAW", "JSON" or "JS"
"sock_io" "socket"
"sock_timeout" timeout in msec
Note that "path" is only present for Unix-domain sockets, for
regular ones "hostname" and "port" are present instead.
When opened with job_start():
"out_status" "open", "buffered" or "closed"
"out_mode" "NL", "RAW", "JSON" or "JS"
@ -578,7 +604,7 @@ ch_info({handle}) *ch_info()*
"err_io" "out", "null", "pipe", "file" or "buffer"
"err_timeout" timeout in msec
"in_status" "open" or "closed"
"in_mode" "NL", "RAW", "JSON" or "JS"
"in_mode" "NL", "RAW", "JSON", "JS" or "LSP"
"in_io" "null", "pipe", "file" or "buffer"
"in_timeout" timeout in msec
@ -610,8 +636,8 @@ ch_logfile({fname} [, {mode}]) *ch_logfile()*
is going on in real time.
To enable the log very early, to see what is received from a
terminal during startup, use |--cmd|: >
vim --cmd "call ch_logfile('logfile', 'w')"
terminal during startup, use |--log|: >
vim --log logfile
<
This function is not available in the |sandbox|.
NOTE: the channel communication is stored in the file, be
@ -626,11 +652,8 @@ ch_open({address} [, {options}]) *ch_open()*
Open a channel to {address}. See |channel|.
Returns a Channel. Use |ch_status()| to check for failure.
{address} is a String and has the form "hostname:port", e.g.,
"localhost:8765".
When using an IPv6 address, enclose it within square brackets.
E.g., "[2001:db8::1]:8765".
{address} is a String, see |channel-address| for the possible
accepted forms.
If {options} is given it must be a |Dictionary|.
See |channel-open-options|.
@ -674,6 +697,17 @@ ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
with a raw channel.
See |channel-use|. *E912*
{handle} can be a Channel or a Job that has a Channel.
When using the "lsp" channel mode, {expr} must be a |Dict|.
If the channel mode is "lsp", then returns a Dict. Otherwise
returns an empty String. If the "callback" item is present in
{options}, then the returned Dict contains the ID of the
request message. The ID can be used to send a cancellation
request to the LSP server (if needed). Returns an empty Dict
on error.
If a response message is not expected for {expr}, then don't
specify the "callback" item in {options}.
Can also be used as a |method|: >
GetChannel()->ch_sendexpr(expr)
@ -1288,18 +1322,18 @@ prompt. >
" Create a channel log so we can see what happens.
call ch_logfile('logfile', 'w')
" Function handling a line of text has been typed.
" Function handling a line of text that has been typed.
func TextEntered(text)
" Send the text to a shell with Enter appended.
call ch_sendraw(g:shell_job, a:text .. "\n")
endfunc
" Function handling output from the shell: Added above the prompt.
" Function handling output from the shell: Add it above the prompt.
func GotOutput(channel, msg)
call append(line("$") - 1, "- " . a:msg)
call append(line("$") - 1, "- " .. a:msg)
endfunc
" Function handling the shell exist: close the window.
" Function handling the shell exits: close the window.
func JobExit(job, status)
quit!
endfunc
@ -1310,7 +1344,6 @@ prompt. >
\ err_cb: function('GotOutput'),
\ exit_cb: function('JobExit'),
\ })
let shell_ch = job_getchannel(shell_job)
new
set buftype=prompt
@ -1321,6 +1354,231 @@ prompt. >
" start accepting shell commands
startinsert
<
The same in |Vim9| script: >
vim9script
# Create a channel log so we can see what happens.
ch_logfile('logfile', 'w')
var shell_job: job
# Function handling a line of text that has been typed.
def TextEntered(text: string)
# Send the text to a shell with Enter appended.
ch_sendraw(shell_job, text .. "\n")
enddef
# Function handling output from the shell: Add it above the prompt.
def GotOutput(channel: channel, msg: string)
append(line("$") - 1, "- " .. msg)
enddef
# Function handling the shell exits: close the window.
def JobExit(job: job, status: number)
quit!
enddef
# Start a shell in the background.
shell_job = job_start(["/bin/sh"], {
out_cb: GotOutput,
err_cb: GotOutput,
exit_cb: JobExit,
})
new
set buftype=prompt
var buf = bufnr('')
prompt_setcallback(buf, TextEntered)
prompt_setprompt(buf, "shell command: ")
# start accepting shell commands
startinsert
==============================================================================
15. Language Server Protocol *language-server-protocol*
The language server protocol specification is available at:
https://microsoft.github.io/language-server-protocol/specification
Each LSP protocol message starts with a simple HTTP header followed by the
payload encoded in JSON-RPC format. This is described in:
https://www.jsonrpc.org/specification
To encode and send a LSP request/notification message in a Vim |Dict| into a
LSP JSON-RPC message and to receive and decode a LSP JSON-RPC
response/notification message into a Vim |Dict|, connect to the LSP server
with the |channel-mode| set to "lsp".
For messages received on a channel with |channel-mode| set to "lsp", Vim will
process the HTTP header and decode the JSON-RPC payload into a Vim |Dict| type
and call the |channel-callback| function or the specified
|channel-onetime-callback| function. When sending messages on a channel using
the |ch_evalexpr()| or |ch_sendexpr()| functions, Vim will add the HTTP header
and encode the Vim expression into JSON. Refer to |json_encode()| and
|json_decode()| for more information about how Vim encodes and decodes the
builtin types into JSON.
To open a channel using the 'lsp' mode, set the 'mode' item in the |ch_open()|
{options} argument to 'lsp'. Example: >
let ch = ch_open(..., #{mode: 'lsp'})
To open a channel using the 'lsp' mode with a job, set the 'in_mode' and
'out_mode' items in the |job_start()| {options} argument to 'lsp'. Example: >
let cmd = ['clangd', '--background-index', '--clang-tidy']
let opts = {}
let opts.in_mode = 'lsp'
let opts.out_mode = 'lsp'
let opts.err_mode = 'nl'
let opts.out_cb = function('LspOutCallback')
let opts.err_cb = function('LspErrCallback')
let opts.exit_cb = function('LspExitCallback')
let job = job_start(cmd, opts)
Note that if a job outputs LSP messages on stdout and non-LSP messages on
stderr, then the channel-callback function should handle both the message
formats appropriately or you should use a separate callback function for
"out_cb" and "err_cb" to handle them as shown above.
To synchronously send a JSON-RPC request to the server, use the
|ch_evalexpr()| function. This function will wait and return the decoded
response message from the server. You can use either the |channel-timeout| or
the 'timeout' field in the {options} argument to control the response wait
time. If the request times out, then an empty |Dict| is returned. Example: >
let req = {}
let req.method = 'textDocument/definition'
let req.params = {}
let req.params.textDocument = #{uri: 'a.c'}
let req.params.position = #{line: 10, character: 3}
let defs = ch_evalexpr(ch, req, #{timeout: 100})
if defs->empty()
... <handle failure>
endif
Note that in the request message the 'id' field should not be specified. If it
is specified, then Vim will overwrite the value with an internally generated
identifier. Vim currently supports only a number type for the 'id' field.
The callback function will be invoked for both a successful and a failed RPC
request.
To send a JSON-RPC request to the server and asynchronously process the
response, use the |ch_sendexpr()| function and supply a callback function. If
the "id" field is present in the request message, then Vim will overwrite it
with an internally generated number. This function returns a Dict with the
identifier used for the message. This can be used to send cancellation
request to the LSP server (if needed). Example: >
let req = {}
let req.method = 'textDocument/hover'
let req.id = 200
let req.params = {}
let req.params.textDocument = #{uri: 'a.c'}
let req.params.position = #{line: 10, character: 3}
let resp = ch_sendexpr(ch, req, #{callback: 'HoverFunc'})
To cancel an outstanding asynchronous LSP request sent to the server using the
|ch_sendexpr()| function, send a cancelation message to the server using the
|ch_sendexpr()| function with the ID returned by the |ch_sendexpr()| function
for the request. Example: >
" send a completion request
let req = {}
let req.method = 'textDocument/completion'
let req.params = {}
let req.params.textDocument = #{uri: 'a.c'}
let req.params.position = #{line: 10, character: 3}
let reqstatus = ch_sendexpr(ch, req, #{callback: 'LspComplete'})
" send a cancellation notification
let notif = {}
let notif.method = '$/cancelRequest'
let notif.id = reqstatus.id
call ch_sendexpr(ch, notif)
To send a JSON-RPC notification message to the server, use the |ch_sendexpr()|
function. As the server will not send a response message to the notification,
don't specify the "callback" item. Example: >
call ch_sendexpr(ch, #{method: 'initialized'})
To respond to a JSON-RPC request message from the server, use the
|ch_sendexpr()| function. In the response message, copy the 'id' field value
from the server request message. Example: >
let resp = {}
let resp.id = req.id
let resp.result = 1
call ch_sendexpr(ch, resp)
The JSON-RPC notification messages from the server are delivered through the
|channel-callback| function.
Depending on the use case, you can use the ch_evalexpr(), ch_sendexpr() and
ch_sendraw() functions on the same channel.
A LSP request message has the following format (expressed as a Vim Dict). The
"params" field is optional: >
{
"jsonrpc": "2.0",
"id": <number>,
"method": <string>,
"params": <list|dict>
}
A LSP reponse message has the following format (expressed as a Vim Dict). The
"result" and "error" fields are optional: >
{
"jsonrpc": "2.0",
"id": <number>,
"result": <vim type>
"error": <dict>
}
A LSP notification message has the following format (expressed as a Vim Dict).
The "params" field is optional: >
{
"jsonrpc": "2.0",
"method": <string>,
"params": <list|dict>
}
Depending on the use case, you can use the ch_evalexpr(), ch_sendexpr() and
ch_sendraw() functions on the same channel.
A LSP request message has the following format (expressed as a Vim Dict). The
"params" field is optional: >
{
"jsonrpc": "2.0",
"id": <number>,
"method": <string>,
"params": <list|dict>
}
A LSP reponse message has the following format (expressed as a Vim Dict). The
"result" and "error" fields are optional: >
{
"jsonrpc": "2.0",
"id": <number>,
"result": <vim type>
"error": <dict>
}
A LSP notification message has the following format (expressed as a Vim Dict).
The "params" field is optional: >
{
"jsonrpc": "2.0",
"method": <string>,
"params": <list|dict>
}
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.2. Last change: 2022 Feb 04
*cmdline.txt* For Vim version 8.2. Last change: 2022 Apr 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -87,6 +87,7 @@ CTRL-Q Same as CTRL-V. But with some terminals it is used for
CTRL-SHIFT-V *c_CTRL-SHIFT-V* *c_CTRL-SHIFT-Q*
CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
then it inserts the Escape sequence for a key with modifiers.
In the GUI the |key-notation| is inserted without simplifying.
*c_<Left>* *c_Left*
<Left> cursor left
@ -227,7 +228,7 @@ CTRL-\ e {expr} *c_CTRL-\_e*
Example: >
:cmap <F7> <C-\>eAppendSome()<CR>
:func AppendSome()
:let cmd = getcmdline() . " Some()"
:let cmd = getcmdline() .. " Some()"
:" place the cursor on the )
:call setcmdpos(strlen(cmd))
:return cmd
@ -939,7 +940,7 @@ Note: these are typed literally, they are not special keys!
file name of the sourced file. *E498*
When executing a legacy function, is replaced with the call
stack, as with <stack> (this is for backwards
compatibility, using <stack> is preferred).
compatibility, using <stack> or <script> is preferred).
In Vim9 script using <sfile> in a function gives error
*E1245* .
Note that filename-modifiers are useless when <sfile> is
@ -951,6 +952,12 @@ Note: these are typed literally, they are not special keys!
".." in between items. E.g.:
"function {function-name1}[{lnum}]..{function-name2}[{lnum}]"
If there is no call stack you get error *E489* .
*:<script>* *<script>*
<script> When executing a `:source` command, is replaced with the file
name of the sourced file. When executing a function, is
replaced with the file name of the script where it is
defined.
If the file name cannot be determined you get error *E1274* .
*:<slnum>* *<slnum>*
<slnum> When executing a ":source" command, is replaced with the
line number. *E842*

View File

@ -382,13 +382,13 @@ Example (this does almost the same as 'diffexpr' being empty): >
function MyDiff()
let opt = ""
if &diffopt =~ "icase"
let opt = opt . "-i "
let opt = opt .. "-i "
endif
if &diffopt =~ "iwhite"
let opt = opt . "-b "
let opt = opt .. "-b "
endif
silent execute "!diff -a --binary " . opt . v:fname_in . " " . v:fname_new .
\ " > " . v:fname_out
silent execute "!diff -a --binary " .. opt .. v:fname_in .. " " .. v:fname_new ..
\ " > " .. v:fname_out
redraw!
endfunction
@ -445,8 +445,8 @@ Example (this does the same as 'patchexpr' being empty): >
set patchexpr=MyPatch()
function MyPatch()
:call system("patch -o " . v:fname_out . " " . v:fname_in .
\ " < " . v:fname_diff)
:call system("patch -o " .. v:fname_out .. " " .. v:fname_in ..
\ " < " .. v:fname_diff)
endfunction
Make sure that using the "patch" program doesn't have unwanted side effects.

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.2. Last change: 2022 Feb 04
*editing.txt* For Vim version 8.2. Last change: 2022 Apr 16
VIM REFERENCE MANUAL by Bram Moolenaar
@ -222,7 +222,7 @@ If you want to keep the changed buffer without saving it, switch on the
Edit {file} always. Discard any changes to the
current buffer.
Also see |++opt| and |+cmd|.
*:edit_#* *:e#*
:e[dit] [++opt] [+cmd] #[count]
Edit the [count]th buffer (as shown by |:files|).
This command does the same as [count] CTRL-^. But ":e
@ -389,7 +389,7 @@ as a wildcard when "[" is in the 'isfname' option. A simple way to avoid this
is to use "path\[[]abc]", this matches the file "path\[abc]".
*starstar-wildcard*
Expanding "**" is possible on Unix, Win32, Mac OS/X and a few other systems.
Expanding "**" is possible on Unix, Win32, macOS and a few other systems.
This allows searching a directory tree. This goes up to 100 directories deep.
Note there are some commands where this works slightly differently, see
|file-searching|.
@ -444,9 +444,10 @@ does apply like to other wildcards.
Environment variables in the expression are expanded when evaluating the
expression, thus this works: >
:e `=$HOME . '/.vimrc'`
This does not work, $HOME is inside a string and used literally: >
:e `='$HOME' . '/.vimrc'`
:e `=$HOME .. '/.vimrc'`
This uses $HOME inside a string and it will be used literally, most likely not
what you intended: >
:e `='$HOME' .. '/.vimrc'`
If the expression returns a string then names are to be separated with line
breaks. When the result is a |List| then each item is used as a name. Line
@ -1224,7 +1225,7 @@ Examples: >
If you want to always use ":confirm", set the 'confirm' option.
*:browse* *:bro* *E338* *E614* *E615* *E616*
*:browse* *:bro* *E338*
:bro[wse] {command} Open a file selection dialog for an argument to
{command}. At present this works for |:e|, |:w|,
|:wall|, |:wq|, |:wqall|, |:x|, |:xall|, |:exit|,
@ -1235,7 +1236,7 @@ If you want to always use ":confirm", set the 'confirm' option.
|:diffsplit|, |:diffpatch|, |:open|, |:pedit|,
|:redir|, |:source|, |:update|, |:visual|, |:vsplit|,
and |:qall| if 'confirm' is set.
{only in Win32, Athena, Motif, GTK and Mac GUI, in
{only in Win32, Motif, GTK and Mac GUI, in
console `browse edit` works if the FileExplorer
autocommand group exists}
When ":browse" is not possible you get an error
@ -1650,6 +1651,11 @@ If you don't get warned often enough you can use the following command.
if it exists now.
Once a file has been checked the timestamp is reset,
you will not be warned again.
Syntax highlighting, marks, diff status,
'fileencoding', 'fileformat' and 'binary' options
are not changed. See |v:fcs_choice| to reload these
too (for example, if a code formatting tools has
changed the file).
:[N]checkt[ime] {filename}
:[N]checkt[ime] [N]
@ -1689,8 +1695,8 @@ session or with another command (e.g., a filter command). Then you will know
which version of the file you want to keep.
The accuracy of the time check depends on the filesystem. On Unix it is
usually sub-second. With old file sytems and on MS-Windows it is normally one
second. Use has('nanotime') check if sub-second time stamp checks are
usually sub-second. With old file systems and on MS-Windows it is normally one
second. Use `has('nanotime')` to check if sub-second time stamp checks are
available.
There is one situation where you get the message while there is nothing wrong:

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.2. Last change: 2022 Feb 04
*eval.txt* For Vim version 8.2. Last change: 2022 May 13
VIM REFERENCE MANUAL by Bram Moolenaar
@ -181,7 +181,7 @@ You will not get an error if you try to change the type of a variable.
1.2 Function references ~
*Funcref* *E695* *E718* *E1086* *E1192*
*Funcref* *E695* *E718* *E1192*
A Funcref variable is obtained with the |function()| function, the |funcref()|
function or created with the lambda expression |expr-lambda|. It can be used
in an expression in the place of a function name, before the parenthesis
@ -261,7 +261,7 @@ position in the sequence.
List creation ~
*E696* *E697*
A List is created with a comma separated list of items in square brackets.
A List is created with a comma-separated list of items in square brackets.
Examples: >
:let mylist = [1, two, 3, "four"]
:let emptylist = []
@ -470,7 +470,7 @@ It is also possible to put remaining items in a List variable: >
:for [i, j; rest] in listlist
: call Doit(i, j)
: if !empty(rest)
: echo "remainder: " . string(rest)
: echo "remainder: " .. string(rest)
: endif
:endfor
@ -498,11 +498,11 @@ Functions that are useful with a List: >
:let list = split("a b c") " create list from items in a string
:let string = join(list, ', ') " create string from list items
:let s = string(list) " String representation of list
:call map(list, '">> " . v:val') " prepend ">> " to each item
:call map(list, '">> " .. v:val') " prepend ">> " to each item
Don't forget that a combination of features can make things simple. For
example, to add up all the numbers in a list: >
:exe 'let sum = ' . join(nrlist, '+')
:exe 'let sum = ' .. join(nrlist, '+')
1.4 Dictionaries ~
@ -514,7 +514,7 @@ ordering.
Dictionary creation ~
*E720* *E721* *E722* *E723*
A Dictionary is created with a comma separated list of entries in curly
A Dictionary is created with a comma-separated list of entries in curly
braces. Each entry has a key and a value, separated by a colon. Each key can
only appear once. Examples: >
:let mydict = {1: 'one', 2: 'two', 3: 'three'}
@ -523,8 +523,8 @@ only appear once. Examples: >
A key is always a String. You can use a Number, it will be converted to a
String automatically. Thus the String '4' and the number 4 will find the same
entry. Note that the String '04' and the Number 04 are different, since the
Number will be converted to the String '4'. The empty string can also be used
as a key.
Number will be converted to the String '4', leading zeros are dropped. The
empty string can also be used as a key.
In |Vim9| script literaly keys can be used if the key consists of alphanumeric
characters, underscore and dash, see |vim9-literal-dict|.
@ -534,7 +534,8 @@ legacy script. This does require the key to consist only of ASCII letters,
digits, '-' and '_'. Example: >
:let mydict = #{zero: 0, one_key: 1, two-key: 2, 333: 3}
Note that 333 here is the string "333". Empty keys are not possible with #{}.
In |Vim9| script the #{} form cannot be used.
In |Vim9| script the #{} form cannot be used because it can be confused with
the start of a comment.
A value can be any expression. Using a Dictionary for a value creates a
nested Dictionary: >
@ -568,7 +569,7 @@ turn the Dictionary into a List and pass it to |:for|.
Most often you want to loop over the keys, using the |keys()| function: >
:for key in keys(mydict)
: echo key . ': ' . mydict[key]
: echo key .. ': ' .. mydict[key]
:endfor
The List of keys is unsorted. You may want to sort them first: >
@ -576,13 +577,13 @@ The List of keys is unsorted. You may want to sort them first: >
To loop over the values use the |values()| function: >
:for v in values(mydict)
: echo "value: " . v
: echo "value: " .. v
:endfor
If you want both the key and the value use the |items()| function. It returns
a List in which each item is a List with two items, the key and the value: >
:for [key, value] in items(mydict)
: echo key . ': ' . value
: echo key .. ': ' .. value
:endfor
@ -677,7 +678,7 @@ Functions that can be used with a Dictionary: >
:let small = min(dict) " minimum value in dict
:let xs = count(dict, 'x') " count nr of times 'x' appears in dict
:let s = string(dict) " String representation of dict
:call map(dict, '">> " . v:val') " prepend ">> " to each item
:call map(dict, '">> " .. v:val') " prepend ">> " to each item
1.5 Blobs ~
@ -921,13 +922,13 @@ Expression nesting is limited to 1000 levels deep (300 when build with MSVC)
to avoid running out of stack and crashing. *E1169*
expr1 *expr1* *trinary* *falsy-operator* *??* *E109*
expr1 *expr1* *ternary* *falsy-operator* *??* *E109*
-----
The trinary operator: expr2 ? expr1 : expr1
The ternary operator: expr2 ? expr1 : expr1
The falsy operator: expr2 ?? expr1
Trinary operator ~
Ternary operator ~
In legacy script the expression before the '?' is evaluated to a number. If
it evaluates to |TRUE|, the result is the value of the expression between the
@ -1371,7 +1372,7 @@ And NOT: >
-(1.234->string())
What comes after "->" can be a name, a simple expression (not containing any
parenthesis), or any expression in parenthesis: >
parenthesis), or any expression in parentheses: >
base->name(args)
base->some.name(args)
base->alist[idx](args)
@ -1523,6 +1524,33 @@ to be doubled. These two commands are equivalent: >
if a =~ '\s*'
interpolated-string *interp-string* *E256*
--------------------
$"string" interpolated string constant *expr-$quote*
$'string' interpolated literal string constant *expr-$'*
Interpolated strings are an extension of the |string| and |literal-string|,
allowing the inclusion of Vim script expressions (see |expr1|). Any
expression returning a value can be enclosed between curly braces. The value
is converted to a string. All the text and results of the expressions
are concatenated to make a new string.
*E1278*
To include an opening brace '{' or closing brace '}' in the string content
double it. For double quoted strings using a backslash also works. A single
closing brace '}' will result in an error.
Examples: >
let your_name = input("What's your name? ")
< What's your name? Peter ~
>
echo
echo $"Hello, {your_name}!"
< Hello, Peter! ~
>
echo $"The square root of {{9}} is {sqrt(9)}"
< The square root of {9} is 3.0 ~
option *expr-option* *E112* *E113*
------
&option option value, local value if possible
@ -1530,7 +1558,7 @@ option *expr-option* *E112* *E113*
&l:option local option value
Examples: >
echo "tabstop is " . &tabstop
echo "tabstop is " .. &tabstop
if &insertmode
Any option name can be used here. See |options|. When using the local value
@ -1820,7 +1848,7 @@ maintain a counter: >
echo "script executed for the first time"
else
let s:counter = s:counter + 1
echo "script executed " . s:counter . " times now"
echo "script executed " .. s:counter .. " times now"
endif
Note that this means that filetype plugins don't get a different set of script
@ -1834,6 +1862,7 @@ Some variables can be set by the user, but the type cannot be changed.
*v:argv* *argv-variable*
v:argv The command line arguments Vim was invoked with. This is a
list of strings. The first item is the Vim command.
See |v:progpath| for the command with full path.
*v:beval_col* *beval_col-variable*
v:beval_col The number of the column, over which the mouse pointer is.
@ -1955,7 +1984,7 @@ v:completed_item
*v:count* *count-variable*
v:count The count given for the last Normal mode command. Can be used
to get the count before a mapping. Read-only. Example: >
:map _x :<C-U>echo "the count is " . v:count<CR>
:map _x :<C-U>echo "the count is " .. v:count<CR>
< Note: The <C-U> is required to remove the line range that you
get when typing ':' after a count.
When there are two counts, as in "3d2w", they are multiplied,
@ -2070,6 +2099,11 @@ v:fcs_choice What should happen after a |FileChangedShell| event was
do with the affected buffer:
reload Reload the buffer (does not work if
the file was deleted).
edit Reload the buffer and detect the
values for options such as
'fileformat', 'fileencoding', 'binary'
(does not work if the file was
deleted).
ask Ask the user what to do, as if there
was no autocommand. Except that when
only the timestamp changed nothing
@ -2177,7 +2211,8 @@ v:lnum Line number for the 'foldexpr' |fold-expr|, 'formatexpr' and
*v:maxcol* *maxcol-variable*
v:maxcol Maximum line length. Depending on where it is used it can be
screen columns, characters or bytes.
screen columns, characters or bytes. The value currently is
2147483647 on all systems.
*v:mouse_win* *mouse_win-variable*
v:mouse_win Window number for a mouse click obtained with |getchar()|.
@ -2209,6 +2244,8 @@ v:none An empty String. Used to put an empty item in JSON. See
< v:none ~
That is so that eval() can parse the string back to the same
value. Read-only.
Note that using `== v:none` and `!= v:none` will often give
an error. Instead, use `is v:none` and `isnot v:none` .
*v:null* *null-variable*
v:null An empty String. Used to put "null" in JSON. See
@ -2219,7 +2256,10 @@ v:null An empty String. Used to put "null" in JSON. See
< v:null ~
That is so that eval() can parse the string back to the same
value. Read-only.
In |Vim9| script "null" can be used without "v:".
In |Vim9| script `null` can be used without "v:".
In some places `v:null` and `null` can be used for a List,
Dict, Job, etc. that is not set. That is slightly different
than an empty List, Dict, etc.
*v:numbermax* *numbermax-variable*
v:numbermax Maximum value of a number.
@ -2823,9 +2863,9 @@ Example: >
: echohl Title
: echo a:title
: echohl None
: echo a:0 . " items:"
: echo a:0 .. " items:"
: for s in a:000
: echon ' ' . s
: echon ' ' .. s
: endfor
:endfunction
@ -2868,7 +2908,7 @@ This function can then be called with: >
this works:
*function-range-example* >
:function Mynumber(arg)
: echo line(".") . " " . a:arg
: echo line(".") .. " " .. a:arg
:endfunction
:1,5call Mynumber(getline("."))
<
@ -2879,7 +2919,7 @@ This function can then be called with: >
Example of a function that handles the range itself: >
:function Cont() range
: execute (a:firstline + 1) . "," . a:lastline . 's/^/\t\\ '
: execute (a:firstline + 1) .. "," .. a:lastline .. 's/^/\t\\ '
:endfunction
:4,8call Cont()
<
@ -2920,7 +2960,7 @@ the "autoload" directory in 'runtimepath'.
Using an autocommand ~
This is introduced in the user manual, section |41.14|.
This is introduced in the user manual, section |51.4|.
The autocommand is useful if you have a plugin that is a long Vim script file.
You can define the autocommand and quickly quit the script with `:finish`.
@ -2938,7 +2978,7 @@ The file "~/vim/bufnetfuncs.vim" should then define functions that start with
Using an autoload script ~
*autoload* *E746*
This is introduced in the user manual, section |41.15|.
This is introduced in the user manual, section |51.5|.
Using a script in the "autoload" directory is simpler, but requires using
exactly the right file name. A function that can be autoloaded has a name
@ -2996,8 +3036,9 @@ Also note that if you have two script files, and one calls a function in the
other and vice versa, before the used function is defined, it won't work.
Avoid using the autoload functionality at the toplevel.
In |Vim9| script you will get error *E1263* if you use a function name with a
"#" character when not in an autoload script.
In |Vim9| script you will get error *E1263* if you define a function with
a "#" character in the name. You should use a name without "#" and use
`:export`.
Hint: If you distribute a bunch of scripts you can pack them together with the
|vimball| utility. Also read the user manual |distribute-script|.
@ -3070,7 +3111,7 @@ declarations and assignments do not use a command. |vim9-declaration|
This cannot be used to add an item to a |List|.
This cannot be used to set a byte in a String. You
can do that like this: >
:let var = var[0:2] . 'X' . var[4:]
:let var = var[0:2] .. 'X' .. var[4:]
< When {var-name} is a |Blob| then {idx} can be the
length of the blob, in which case one byte is
appended.
@ -3140,7 +3181,7 @@ declarations and assignments do not use a command. |vim9-declaration|
is just like using the |:set| command: both the local
value and the global value are changed.
Example: >
:let &path = &path . ',/usr/local/include'
:let &path = &path .. ',/usr/local/include'
< This also works for terminal codes in the form t_xx.
But only for alphanumerical names. Example: >
:let &t_k1 = "\<Esc>[234;"
@ -3211,14 +3252,30 @@ declarations and assignments do not use a command. |vim9-declaration|
*:let=<<* *:let-heredoc*
*E990* *E991* *E172* *E221* *E1145*
:let {var-name} =<< [trim] {endmarker}
:let {var-name} =<< [trim] [eval] {endmarker}
text...
text...
{endmarker}
Set internal variable {var-name} to a |List|
containing the lines of text bounded by the string
{endmarker}. The lines of text is used as a
|literal-string|.
{endmarker}.
If "eval" is not specified, then each line of text is
used as a |literal-string|, except that single quotes
doe not need to be doubled.
If "eval" is specified, then any Vim expression in the
form {expr} is evaluated and the result replaces the
expression, like with |interp-string|.
Example where $HOME is expanded: >
let lines =<< trim eval END
some text
See the file {$HOME}/.vimrc
more text
END
< There can be multiple Vim expressions in a single line
but an expression cannot span multiple lines. If any
expression evaluation fails, then the assignment fails.
{endmarker} must not contain white space.
{endmarker} cannot start with a lower case character.
The last line should end only with the {endmarker}
@ -3268,6 +3325,13 @@ text...
1 2 3 4
5 6 7 8
DATA
let code =<< trim eval CODE
let v = {10 + 20}
let h = "{$HOME}"
let s = "{Str1()} abc {Str2()}"
let n = {MyFunc(3, 4)}
CODE
<
*E121*
:let {var-name} .. List the value of variable {var-name}. Multiple
@ -3416,14 +3480,17 @@ text...
opposite of |:lockvar|.
:if {expr1} *:if* *:end* *:endif* *:en* *E171* *E579* *E580*
:en[dif] Execute the commands until the next matching ":else"
or ":endif" if {expr1} evaluates to non-zero.
:en[dif] Execute the commands until the next matching `:else`
or `:endif` if {expr1} evaluates to non-zero.
Although the short forms work, it is recommended to
always use `:endif` to avoid confusion and to make
auto-indenting work properly.
From Vim version 4.5 until 5.0, every Ex command in
between the ":if" and ":endif" is ignored. These two
between the `:if` and `:endif` is ignored. These two
commands were just to allow for future expansions in a
backward compatible way. Nesting was allowed. Note
that any ":else" or ":elseif" was ignored, the "else"
that any `:else` or `:elseif` was ignored, the `else`
part was not executed either.
You can use this to remain compatible with older
@ -3432,32 +3499,38 @@ text...
: version-5-specific-commands
:endif
< The commands still need to be parsed to find the
"endif". Sometimes an older Vim has a problem with a
new command. For example, ":silent" is recognized as
a ":substitute" command. In that case ":execute" can
`endif`. Sometimes an older Vim has a problem with a
new command. For example, `:silent` is recognized as
a `:substitute` command. In that case `:execute` can
avoid problems: >
:if version >= 600
: execute "silent 1,$delete"
:endif
<
NOTE: The ":append" and ":insert" commands don't work
properly in between ":if" and ":endif".
In |Vim9| script `:endif` cannot be shortened, to
improve script readability.
NOTE: The `:append` and `:insert` commands don't work
properly in between `:if` and `:endif`.
*:else* *:el* *E581* *E583*
:el[se] Execute the commands until the next matching ":else"
or ":endif" if they previously were not being
:el[se] Execute the commands until the next matching `:else`
or `:endif` if they previously were not being
executed.
In |Vim9| script `:else` cannot be shortened, to
improve script readability.
*:elseif* *:elsei* *E582* *E584*
:elsei[f] {expr1} Short for ":else" ":if", with the addition that there
is no extra ":endif".
:elsei[f] {expr1} Short for `:else` `:if`, with the addition that there
is no extra `:endif`.
In |Vim9| script `:elseif` cannot be shortened, to
improve script readability.
:wh[ile] {expr1} *:while* *:endwhile* *:wh* *:endw*
*E170* *E585* *E588* *E733*
:endw[hile] Repeat the commands between ":while" and ":endwhile",
:endw[hile] Repeat the commands between `:while` and `:endwhile`,
as long as {expr1} evaluates to non-zero.
When an error is detected from a command inside the
loop, execution continues after the "endwhile".
loop, execution continues after the `endwhile`.
Example: >
:let lnum = 1
:while lnum <= line("$")
@ -3465,14 +3538,16 @@ text...
:let lnum = lnum + 1
:endwhile
<
NOTE: The ":append" and ":insert" commands don't work
properly inside a ":while" and ":for" loop.
In |Vim9| script `:while` and `:endwhile` cannot be
shortened, to improve script readability.
NOTE: The `:append` and `:insert` commands don't work
properly inside a `:while` and `:for` loop.
:for {var} in {object} *:for* *E690* *E732*
:endfo[r] *:endfo* *:endfor*
Repeat the commands between ":for" and ":endfor" for
each item in {object}. {object} can be a |List| or
a |Blob|. *E1177*
Repeat the commands between `:for` and `:endfor` for
each item in {object}. {object} can be a |List|,
a |Blob| or a |String|. *E1177*
Variable {var} is set to the value of each item.
In |Vim9| script the loop variable must not have been
@ -3480,7 +3555,7 @@ text...
global/window/tab/buffer variable.
When an error is detected for a command inside the
loop, execution continues after the "endfor".
loop, execution continues after the `endfor`.
Changing {object} inside the loop affects what items
are used. Make a copy if this is unwanted: >
:for item in copy(mylist)
@ -3505,9 +3580,12 @@ text...
iterate over. Unlike with |List|, modifying the
|Blob| does not affect the iteration.
In |Vim9| script `:endfor` cannot be shortened, to
improve script readability.
:for [{var1}, {var2}, ...] in {listlist}
:endfo[r] *E1140*
Like ":for" above, but each item in {listlist} must be
Like `:for` above, but each item in {listlist} must be
a list, of which each item is assigned to {var1},
{var2}, etc. Example: >
:for [lnum, col] in [[1, 3], [2, 5], [3, 8]]
@ -3515,39 +3593,44 @@ text...
:endfor
<
*:continue* *:con* *E586*
:con[tinue] When used inside a ":while" or ":for" loop, jumps back
:con[tinue] When used inside a `:while` or `:for` loop, jumps back
to the start of the loop.
If it is used after a |:try| inside the loop but
before the matching |:finally| (if present), the
commands following the ":finally" up to the matching
|:endtry| are executed first. This process applies to
all nested ":try"s inside the loop. The outermost
":endtry" then jumps back to the start of the loop.
If it is used after a `:try` inside the loop but
before the matching `:finally` (if present), the
commands following the `:finally` up to the matching
`:endtry` are executed first. This process applies to
all nested `:try`s inside the loop. The outermost
`:endtry` then jumps back to the start of the loop.
In |Vim9| script `:cont` is the shortest form, to
improve script readability.
*:break* *:brea* *E587*
:brea[k] When used inside a ":while" or ":for" loop, skips to
the command after the matching ":endwhile" or
":endfor".
If it is used after a |:try| inside the loop but
before the matching |:finally| (if present), the
commands following the ":finally" up to the matching
|:endtry| are executed first. This process applies to
all nested ":try"s inside the loop. The outermost
":endtry" then jumps to the command after the loop.
:brea[k] When used inside a `:while` or `:for` loop, skips to
the command after the matching `:endwhile` or
`:endfor`.
If it is used after a `:try` inside the loop but
before the matching `:finally` (if present), the
commands following the `:finally` up to the matching
`:endtry` are executed first. This process applies to
all nested `:try`s inside the loop. The outermost
`:endtry` then jumps to the command after the loop.
In |Vim9| script `:break` cannot be shortened, to
improve script readability.
:try *:try* *:endt* *:endtry*
*E600* *E601* *E602* *E1032*
:endt[ry] Change the error handling for the commands between
":try" and ":endtry" including everything being
executed across ":source" commands, function calls,
`:try` and `:endtry` including everything being
executed across `:source` commands, function calls,
or autocommand invocations.
When an error or interrupt is detected and there is
a |:finally| command following, execution continues
after the ":finally". Otherwise, or when the
":endtry" is reached thereafter, the next
(dynamically) surrounding ":try" is checked for
a corresponding ":finally" etc. Then the script
a `:finally` command following, execution continues
after the `:finally`. Otherwise, or when the
`:endtry` is reached thereafter, the next
(dynamically) surrounding `:try` is checked for
a corresponding `:finally` etc. Then the script
processing is terminated. Whether a function
definition has an "abort" argument does not matter.
Example: >
@ -3555,9 +3638,9 @@ text...
echomsg "not reached"
<
Moreover, an error or interrupt (dynamically) inside
":try" and ":endtry" is converted to an exception. It
can be caught as if it were thrown by a |:throw|
command (see |:catch|). In this case, the script
`:try` and `:endtry` is converted to an exception. It
can be caught as if it were thrown by a `:throw`
command (see `:catch`). In this case, the script
processing is not terminated.
The value "Vim:Interrupt" is used for an interrupt
@ -3572,13 +3655,16 @@ text...
try | sleep 100 | catch /^Vim:Interrupt$/ | endtry
try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
<
In |Vim9| script `:endtry` cannot be shortened, to
improve script readability.
*:cat* *:catch*
*E603* *E604* *E605* *E654* *E1033*
:cat[ch] /{pattern}/ The following commands until the next |:catch|,
|:finally|, or |:endtry| that belongs to the same
|:try| as the ":catch" are executed when an exception
:cat[ch] /{pattern}/ The following commands until the next `:catch`,
`:finally`, or `:endtry` that belongs to the same
`:try` as the `:catch` are executed when an exception
matching {pattern} is being thrown and has not yet
been caught by a previous ":catch". Otherwise, these
been caught by a previous `:catch`. Otherwise, these
commands are skipped.
When {pattern} is omitted all errors are caught.
Examples: >
@ -3600,29 +3686,35 @@ text...
NOTE: It is not reliable to ":catch" the TEXT of
an error message because it may vary in different
locales.
In |Vim9| script `:catch` cannot be shortened, to
improve script readability.
*:fina* *:finally* *E606* *E607*
:fina[lly] The following commands until the matching |:endtry|
:fina[lly] The following commands until the matching `:endtry`
are executed whenever the part between the matching
|:try| and the ":finally" is left: either by falling
through to the ":finally" or by a |:continue|,
|:break|, |:finish|, or |:return|, or by an error or
interrupt or exception (see |:throw|).
`:try` and the `:finally` is left: either by falling
through to the `:finally` or by a `:continue`,
`:break`, `:finish`, or `:return`, or by an error or
interrupt or exception (see `:throw`).
In |Vim9| script `:finally` cannot be shortened, to
improve script readability and avoid confusion with
`:final`.
*:th* *:throw* *E608* *E1129*
:th[row] {expr1} The {expr1} is evaluated and thrown as an exception.
If the ":throw" is used after a |:try| but before the
first corresponding |:catch|, commands are skipped
until the first ":catch" matching {expr1} is reached.
If there is no such ":catch" or if the ":throw" is
used after a ":catch" but before the |:finally|, the
commands following the ":finally" (if present) up to
the matching |:endtry| are executed. If the ":throw"
is after the ":finally", commands up to the ":endtry"
If the ":throw" is used after a `:try` but before the
first corresponding `:catch`, commands are skipped
until the first `:catch` matching {expr1} is reached.
If there is no such `:catch` or if the ":throw" is
used after a `:catch` but before the `:finally`, the
commands following the `:finally` (if present) up to
the matching `:endtry` are executed. If the `:throw`
is after the `:finally`, commands up to the `:endtry`
are skipped. At the ":endtry", this process applies
again for the next dynamically surrounding ":try"
again for the next dynamically surrounding `:try`
(which may be found in a calling function or sourcing
script), until a matching ":catch" has been found.
script), until a matching `:catch` has been found.
If the exception is not caught, the command processing
is terminated.
Example: >
@ -3631,13 +3723,16 @@ text...
for when an error causes the parsing to skip the whole
line and not see the "|" that separates the commands.
In |Vim9| script `:throw` cannot be shortened, to
improve script readability.
*:ec* *:echo*
:ec[ho] {expr1} .. Echoes each {expr1}, with a space in between. The
first {expr1} starts on a new line.
Also see |:comment|.
Use "\n" to start a new line. Use "\r" to move the
cursor to the first column.
Uses the highlighting set by the |:echohl| command.
Uses the highlighting set by the `:echohl` command.
Cannot be followed by a comment.
Example: >
:echo "the value of 'shell' is" &shell
@ -3646,21 +3741,21 @@ text...
And since Vim mostly postpones redrawing until it's
finished with a sequence of commands this happens
quite often. To avoid that a command from before the
":echo" causes a redraw afterwards (redraws are often
`:echo` causes a redraw afterwards (redraws are often
postponed until you type something), force a redraw
with the |:redraw| command. Example: >
with the `:redraw` command. Example: >
:new | redraw | echo "there is a new window"
<
*:echon*
:echon {expr1} .. Echoes each {expr1}, without anything added. Also see
|:comment|.
Uses the highlighting set by the |:echohl| command.
Uses the highlighting set by the `:echohl` command.
Cannot be followed by a comment.
Example: >
:echon "the value of 'shell' is " &shell
<
Note the difference between using ":echo", which is a
Vim command, and ":!echo", which is an external shell
Note the difference between using `:echo`, which is a
Vim command, and `:!echo`, which is an external shell
command: >
:!echo % --> filename
< The arguments of ":!" are expanded, see |:_%|. >
@ -3676,8 +3771,8 @@ text...
*:echoh* *:echohl*
:echoh[l] {name} Use the highlight group {name} for the following
|:echo|, |:echon| and |:echomsg| commands. Also used
for the |input()| prompt. Example: >
`:echo`, `:echon` and `:echomsg` commands. Also used
for the `input()` prompt. Example: >
:echohl WarningMsg | echo "Don't panic!" | echohl None
< Don't forget to set the group back to "None",
otherwise all following echo's will be highlighted.
@ -3686,14 +3781,14 @@ text...
:echom[sg] {expr1} .. Echo the expression(s) as a true message, saving the
message in the |message-history|.
Spaces are placed between the arguments as with the
|:echo| command. But unprintable characters are
`:echo` command. But unprintable characters are
displayed, not interpreted.
The parsing works slightly different from |:echo|,
more like |:execute|. All the expressions are first
The parsing works slightly different from `:echo`,
more like `:execute`. All the expressions are first
evaluated and concatenated before echoing anything.
If expressions does not evaluate to a Number or
String, string() is used to turn it into a string.
Uses the highlighting set by the |:echohl| command.
Uses the highlighting set by the `:echohl` command.
Example: >
:echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see."
< See |:echo-redraw| to avoid the message disappearing
@ -3703,12 +3798,12 @@ text...
message in the |message-history|. When used in a
script or function the line number will be added.
Spaces are placed between the arguments as with the
|:echomsg| command. When used inside a try conditional,
`:echomsg` command. When used inside a try conditional,
the message is raised as an error exception instead
(see |try-echoerr|).
Example: >
:echoerr "This script just failed!"
< If you just want a highlighted message use |:echohl|.
< If you just want a highlighted message use `:echohl`.
And to get a beep: >
:exe "normal \<Esc>"
@ -4021,7 +4116,7 @@ exception most recently caught as long it is not finished.
:function! Caught()
: if v:exception != ""
: echo 'Caught "' . v:exception . '" in ' . v:throwpoint
: echo 'Caught "' . v:exception .. '" in ' .. v:throwpoint
: else
: echo 'Nothing caught'
: endif
@ -4424,8 +4519,8 @@ a script in order to catch unexpected things.
:catch /^Vim:Interrupt$/
: echo "Script interrupted"
:catch /.*/
: echo "Internal error (" . v:exception . ")"
: echo " - occurred at " . v:throwpoint
: echo "Internal error (" .. v:exception .. ")"
: echo " - occurred at " .. v:throwpoint
:endtry
:" end of script
@ -4621,7 +4716,7 @@ parentheses can be cut out from |v:exception| with the ":substitute" command.
:function! CheckRange(a, func)
: if a:a < 0
: throw "EXCEPT:MATHERR:RANGE(" . a:func . ")"
: throw "EXCEPT:MATHERR:RANGE(" .. a:func .. ")"
: endif
:endfunction
:
@ -4648,13 +4743,13 @@ parentheses can be cut out from |v:exception| with the ":substitute" command.
: try
: execute "write" fnameescape(a:file)
: catch /^Vim(write):/
: throw "EXCEPT:IO(" . getcwd() . ", " . a:file . "):WRITEERR"
: throw "EXCEPT:IO(" .. getcwd() .. ", " .. a:file .. "):WRITEERR"
: endtry
:endfunction
:
:try
:
: " something with arithmetics and I/O
: " something with arithmetic and I/O
:
:catch /^EXCEPT:MATHERR:RANGE/
: let function = substitute(v:exception, '.*(\(\a\+\)).*', '\1', "")
@ -4667,9 +4762,9 @@ parentheses can be cut out from |v:exception| with the ":substitute" command.
: let dir = substitute(v:exception, '.*(\(.\+\),\s*.\+).*', '\1', "")
: let file = substitute(v:exception, '.*(.\+,\s*\(.\+\)).*', '\1', "")
: if file !~ '^/'
: let file = dir . "/" . file
: let file = dir .. "/" .. file
: endif
: echo 'I/O error for "' . file . '"'
: echo 'I/O error for "' .. file .. '"'
:
:catch /^EXCEPT/
: echo "Unspecified error"
@ -4737,7 +4832,7 @@ clauses, however, is executed.
: echo "inner finally"
: endtry
:catch
: echo 'outer catch-all caught "' . v:exception . '"'
: echo 'outer catch-all caught "' .. v:exception .. '"'
: finally
: echo "outer finally"
:endtry
@ -4799,7 +4894,7 @@ Printing in Binary ~
: let n = a:nr
: let r = ""
: while n
: let r = '01'[n % 2] . r
: let r = '01'[n % 2] .. r
: let n = n / 2
: endwhile
: return r
@ -4810,7 +4905,7 @@ Printing in Binary ~
:func String2Bin(str)
: let out = ''
: for ix in range(strlen(a:str))
: let out = out . '-' . Nr2Bin(char2nr(a:str[ix]))
: let out = out .. '-' .. Nr2Bin(char2nr(a:str[ix]))
: endfor
: return out[1:]
:endfunc

View File

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

View File

@ -507,7 +507,7 @@ Note the use of backslashes to avoid some characters to be interpreted by the
:function MyFoldText()
: let line = getline(v:foldstart)
: let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
: return v:folddashes . sub
: return v:folddashes .. sub
:endfunction
Evaluating 'foldtext' is done in the |sandbox|. The current window is set to

View File

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

View File

@ -47,20 +47,20 @@ Numbers, subscripts and superscripts are available with 's' and 'S':
But some don't come defined by default. Those are digraph definitions you can
add in your ~/.vimrc file. >
exec 'digraph \\ '.char2nr('')
exec 'digraph \< '.char2nr('≼')
exec 'digraph \> '.char2nr('≽')
exec 'digraph (L '.char2nr('⊈')
exec 'digraph )L '.char2nr('⊉')
exec 'digraph (/ '.char2nr('⊄')
exec 'digraph )/ '.char2nr('⊅')
exec 'digraph )/ '.char2nr('⊅')
exec 'digraph U+ '.char2nr('⊎')
exec 'digraph 0- '.char2nr('⊖')
exec 'digraph \\ ' .. char2nr('')
exec 'digraph \< ' .. char2nr('≼')
exec 'digraph \> ' .. char2nr('≽')
exec 'digraph (L ' .. char2nr('⊈')
exec 'digraph )L ' .. char2nr('⊉')
exec 'digraph (/ ' .. char2nr('⊄')
exec 'digraph )/ ' .. char2nr('⊅')
exec 'digraph )/ ' .. char2nr('⊅')
exec 'digraph U+ ' .. char2nr('⊎')
exec 'digraph 0- ' .. char2nr('⊖')
" Euler's constant
exec 'digraph ne '.char2nr('𝑒')
exec 'digraph ne ' .. char2nr('𝑒')
" Raku's atomic operations marker
exec 'digraph @@ '.char2nr('⚛')
exec 'digraph @@ ' .. char2nr('⚛')
Alternatively, you can write Insert mode abbreviations that convert ASCII-
based operators into their single-character Unicode equivalent. >

View File

@ -26,7 +26,7 @@ behavior of the plugin.
g:rustc_path~
Set this option to the path to rustc for use in the |:RustRun| and
|:RustExpand| commands. If unset, "rustc" will be located in $PATH: >
let g:rustc_path = $HOME."/bin/rustc"
let g:rustc_path = $HOME .. "/bin/rustc"
<
*g:rustc_makeprg_no_percent*
@ -87,7 +87,7 @@ g:rust_bang_comment_leader~
g:ftplugin_rust_source_path~
Set this option to a path that should be prepended to 'path' for Rust
source files: >
let g:ftplugin_rust_source_path = $HOME.'/dev/rust'
let g:ftplugin_rust_source_path = $HOME .. '/dev/rust'
<
*g:rustfmt_command*

View File

@ -1,4 +1,4 @@
*ft_sql.txt* For Vim version 8.2. Last change: 2019 Dec 07
*ft_sql.txt* For Vim version 8.2. Last change: 2022 Apr 06
by David Fishburn
@ -109,8 +109,8 @@ must be configurable. The filetype plugin attempts to define many of the
standard objects, plus many additional ones. In order to make this as
flexible as possible, you can override the list of objects from within your
|vimrc| with the following: >
let g:ftplugin_sql_objects = 'function,procedure,event,table,trigger' .
\ ',schema,service,publication,database,datatype,domain' .
let g:ftplugin_sql_objects = 'function,procedure,event,table,trigger' ..
\ ',schema,service,publication,database,datatype,domain' ..
\ ',index,subscription,synchronization,view,variable'
The following |Normal| mode and |Visual| mode maps have been created which use
@ -131,10 +131,10 @@ Repeatedly pressing ]} will cycle through each of these create statements: >
create index i1 on t1 (c1);
The default setting for g:ftplugin_sql_objects is: >
let g:ftplugin_sql_objects = 'function,procedure,event,' .
\ '\\(existing\\\\|global\\s\\+temporary\\s\\+\\)\\\{,1}' .
\ 'table,trigger' .
\ ',schema,service,publication,database,datatype,domain' .
let g:ftplugin_sql_objects = 'function,procedure,event,' ..
\ '\\(existing\\\\|global\\s\\+temporary\\s\\+\\)\\\{,1}' ..
\ 'table,trigger' ..
\ ',schema,service,publication,database,datatype,domain' ..
\ ',index,subscription,synchronization,view,variable'
The above will also handle these cases: >
@ -559,7 +559,7 @@ the SQL completion plugin. >
< 1. After typing SELECT press <C-C>t to display a list of tables.
2. Highlight the table you need the column list for.
3. Press <Enter> to choose the table from the list.
4. Press <C-C>l to request a comma separated list of all columns
4. Press <C-C>l to request a comma-separated list of all columns
for this table.
5. Based on the table name chosen in step 3, the plugin attempts to
decide on a reasonable table alias. You are then prompted to
@ -613,7 +613,7 @@ your |vimrc|: >
>
omni_sql_use_tbl_alias
< - Default: a
- This setting is only used when generating a comma separated
- This setting is only used when generating a comma-separated
column list. By default the map is <C-C>l. When generating
a column list, an alias can be prepended to the beginning of each
column, for example: e.emp_id, e.emp_name. This option has three
@ -697,9 +697,9 @@ plugin. >
<C-C>c
< - Displays a list of columns for a specific table. >
<C-C>l
< - Displays a comma separated list of columns for a specific table. >
< - Displays a comma-separated list of columns for a specific table. >
<C-C>L
< - Displays a comma separated list of columns for a specific table.
< - Displays a comma-separated list of columns for a specific table.
This should only be used when the completion window is active. >
<Right>
< - Displays a list of columns for the table currently highlighted in

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
*help.txt* For Vim version 8.2. Last change: 2021 Dec 27
*help.txt* For Vim version 8.2. Last change: 2022 May 13
VIM - main help file
k
@ -88,12 +88,15 @@ Tuning Vim ~
|usr_43.txt| Using filetypes
|usr_44.txt| Your own syntax highlighted
|usr_45.txt| Select your language
|usr_46.txt| Write plugins using Vim9 script
Writing Vim scripts ~
|usr_50.txt| Advanced Vim script writing
|usr_51.txt| Create a plugin
|usr_52.txt| Write plugins using Vim9 script
Making Vim Run ~
|usr_90.txt| Installing Vim
REFERENCE MANUAL: These files explain every detail of Vim. *reference_toc*
General subjects ~
@ -197,6 +200,7 @@ Versions ~
|version6.txt| Differences between Vim version 5.7 and 6.x
|version7.txt| Differences between Vim version 6.4 and 7.x
|version8.txt| Differences between Vim version 7.4 and 8.x
|version9.txt| Differences between Vim version 8.2 and 9.0
*sys-file-list*
Remarks about specific systems ~
|os_390.txt| OS/390 Unix

View File

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

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 8.2. Last change: 2021 Nov 12
*if_pyth.txt* For Vim version 8.2. Last change: 2022 Feb 22
VIM REFERENCE MANUAL by Paul Moore
@ -25,6 +25,10 @@ The Python 3 interface is available only when Vim was compiled with the
|+python3| feature.
Both can be available at the same time, but read |python-2-and-3|.
NOTE: Python 2 is old and no longer being developed. Using Python 3 is highly
recommended. Python 2 support will be dropped when it does not work properly
anymore.
==============================================================================
1. Commands *python-commands*
@ -65,7 +69,7 @@ There is no need to import sys, it's done by default.
*python-environment*
Environment variables set in Vim are not always available in Python. This
depends on how Vim and Python were build. Also see
depends on how Vim and Python were built. Also see
https://docs.python.org/3/library/os.html#os.environ
Note: Python is very sensitive to the indenting. Make sure the "class" line
@ -834,6 +838,19 @@ To work around such problems there are these options:
Raising SystemExit exception in python isn't endorsed way to quit vim, use: >
:py vim.command("qall!")
<
*E1266*
This error can occur when python 3 cannot load the required modules. This
means that your python 3 is not correctly installed or there are some mistakes
in your settings. Please check the following items:
1. Make sure that python 3 is correctly installed. Also check the version of
python.
2. Check the 'pythonthreedll' option.
3. Check the 'pythonthreehome' option.
4. Check the PATH environment variable if you don't set 'pythonthreedll'.
On MS-Windows, you can use where.exe to check which dll will be loaded.
E.g. >
where.exe python310.dll
5. Check the PYTHONPATH and PYTHONHOME environment variables.
*has-python*
You can test what Python version is available with: >
@ -910,7 +927,7 @@ The `:pyxdo` command works similar to `:pydo`.
*has-pythonx*
You can test if pyx* commands are available with: >
if has('pythonx')
echo 'pyx* commands are available. (Python ' . &pyx . ')'
echo 'pyx* commands are available. (Python ' .. &pyx .. ')'
endif
When compiled with only one of |+python| or |+python3|, the has() returns 1.

View File

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

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 8.2. Last change: 2022 Jan 28
*index.txt* For Vim version 8.2. Last change: 2022 Mar 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -939,7 +939,7 @@ tag command note action in Visual mode ~
|v_K| K run 'keywordprg' on the highlighted area
|v_O| O move horizontally to other corner of area
|v_P| P replace highlighted area with register
contents; unnamed register is unchanged
contents; registers are unchanged
Q does not start Ex mode
|v_R| R 2 delete the highlighted lines and start
insert
@ -1152,7 +1152,7 @@ tag command action ~
|:&| :& repeat last ":substitute"
|:star| :* execute contents of a register
|:<| :< shift lines one 'shiftwidth' left
|:=| := print the cursor line number
|:=| := print the last line number
|:>| :> shift lines one 'shiftwidth' right
|:@| :@ execute contents of a register
|:@@| :@@ repeat the previous ":@"
@ -1170,7 +1170,7 @@ tag command action ~
be remapped
|:args| :ar[gs] print the argument list
|:argadd| :arga[dd] add items to the argument list
:argdedupe :argdedupe remove duplicates from the argument list
|:argdedupe| :argded[upe] remove duplicates from the argument list
|:argdelete| :argd[elete] delete items from the argument list
|:argedit| :arge[dit] add item to the argument list and edit it
|:argdo| :argdo do a command on all items in the argument list

View File

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

View File

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

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 8.2. Last change: 2022 Jan 23
*map.txt* For Vim version 8.2. Last change: 2022 May 09
VIM REFERENCE MANUAL by Bram Moolenaar
@ -80,6 +80,8 @@ modes.
where the map command applies. Disallow mapping of
{rhs}, to avoid nested and recursive mappings. Often
used to redefine a command.
Note: When <Plug> appears in the {rhs} this part is
always applied even if remapping is disallowed.
:unm[ap] {lhs} |mapmode-nvo| *:unm* *:unmap*
@ -118,7 +120,8 @@ modes.
command applies.
Use the <buffer> argument to remove buffer-local
mappings |:map-<buffer>|
Warning: This also removes the default mappings.
Warning: This also removes the |mac-standard-mappings|
and the |dos-standard-mappings|.
:map |mapmode-nvo|
:nm[ap] |mapmode-n|
@ -314,7 +317,7 @@ Here is an example that inserts a list number that increases: >
func ListItem()
let g:counter += 1
return g:counter . '. '
return g:counter .. '. '
endfunc
func ListReset()
@ -387,7 +390,7 @@ contain special characters like function keys.
1.3 MAPPING AND MODES *:map-modes*
*mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o*
There are six sets of mappings
There are seven sets of mappings
- For Normal mode: When typing commands.
- For Visual mode: When typing commands while the Visual area is highlighted.
- For Select mode: like Visual mode but typing text replaces the selection.
@ -395,6 +398,7 @@ There are six sets of mappings
etc.). See below: |omap-info|.
- For Insert mode. These are also used in Replace mode.
- For Command-line mode: When entering a ":" or "/" command.
- For Terminal mode: When typing in a |:terminal| buffer.
Special case: While typing a count for a command in Normal mode, mapping zero
is disabled. This makes it possible to map zero without making it impossible
@ -694,6 +698,10 @@ The special key name "<Plug>" can be used for an internal mapping, which is
not to be matched with any key sequence. This is useful in plugins
|using-<Plug>|.
*<MouseMove>*
The special key name "<MouseMove>" can be used to handle mouse movement. It
needs to be enabled with 'mousemoveevent'. Currently only works in the GUI.
*<Char>* *<Char->*
To map a character by its decimal, octal or hexadecimal number the <Char>
construct can be used:
@ -1317,7 +1325,8 @@ underscore. Example: >
could define a mapping "<SNR>23_Add".
When defining a function in a script, "s:" can be prepended to the name to
make it local to the script. But when a mapping is executed from outside of
make it local to the script (in |Vim9| script functions without a prefix are
local to the script). But when a mapping is executed from outside of
the script, it doesn't know in which script the function was defined. To
avoid this problem, use "<SID>" instead of "s:". The same translation is done
as for mappings. This makes it possible to define a call to the function in
@ -1444,7 +1453,7 @@ See |:verbose-cmd| for more information.
Command attributes ~
*command-attributes*
User-defined commands are treated by Vim just like any other Ex commands. They
can have arguments, or have a range specified. Arguments are subject to
completion as filenames, buffers, etc. Exactly how this works depends upon the
@ -1561,9 +1570,11 @@ The function arguments are:
The function may use these for determining context. For the "custom"
argument, it is not necessary to filter candidates against the (implicit
pattern in) ArgLead. Vim will filter the candidates with its regexp engine
after function return, and this is probably more efficient in most cases. For
the "customlist" argument, Vim will not filter the returned completion
candidates and the user supplied function should filter the candidates.
after function return, and this is probably more efficient in most cases. If
'wildoptions' contains "fuzzy", then the candidates will be filtered using
|fuzzy-matching|. For the "customlist" argument, Vim will not
filter the returned completion candidates and the user supplied function
should filter the candidates.
The following example lists user names to a Finger command >
:com -complete=custom,ListUsers -nargs=1 Finger !finger <args>
@ -1697,12 +1708,12 @@ The valid escape sequences are
Examples: >
command! -nargs=+ -complete=file MyEdit
\ for f in expand(<q-args>, 0, 1) |
\ exe '<mods> split ' . f |
\ exe '<mods> split ' .. f |
\ endfor
function! SpecialEdit(files, mods)
for f in expand(a:files, 0, 1)
exe a:mods . ' split ' . f
exe a:mods .. ' split ' .. f
endfor
endfunction
command! -nargs=+ -complete=file Sedit
@ -1778,7 +1789,7 @@ This will invoke: >
: let i = 0
: while i < argc()
: if filereadable(argv(i))
: execute "e " . argv(i)
: execute "e " .. argv(i)
: execute a:command
: endif
: let i = i + 1

View File

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

View File

@ -1,4 +1,4 @@
*motion.txt* For Vim version 8.2. Last change: 2021 Dec 27
*motion.txt* For Vim version 8.2. Last change: 2022 Apr 18
VIM REFERENCE MANUAL by Bram Moolenaar
@ -33,7 +33,8 @@ know what the hjkl keys do. The mnemonic value of hjkl is clear from looking
at the keyboard. Think of j as an arrow pointing downwards.
The 'virtualedit' option can be set to make it possible to move the cursor to
positions where there is no character or halfway a character.
positions where there is no character or within a multi-column character (like
a tab).
==============================================================================
1. Motions and operators *operator*
@ -445,35 +446,35 @@ between Vi and Vim.
5. Text object motions *object-motions*
*(*
( [count] sentences backward. |exclusive| motion.
( [count] |sentence|s backward. |exclusive| motion.
*)*
) [count] sentences forward. |exclusive| motion.
) [count] |sentence|s forward. |exclusive| motion.
*{*
{ [count] paragraphs backward. |exclusive| motion.
{ [count] |paragraph|s backward. |exclusive| motion.
*}*
} [count] paragraphs forward. |exclusive| motion.
} [count] |paragraph|s forward. |exclusive| motion.
*]]*
]] [count] sections forward or to the next '{' in the
]] [count] |section|s forward or to the next '{' in the
first column. When used after an operator, then also
stops below a '}' in the first column. |exclusive|
Note that |exclusive-linewise| often applies.
*][*
][ [count] sections forward or to the next '}' in the
][ [count] |section|s forward or to the next '}' in the
first column. |exclusive|
Note that |exclusive-linewise| often applies.
*[[*
[[ [count] sections backward or to the previous '{' in
[[ [count] |section|s backward or to the previous '{' in
the first column. |exclusive|
Note that |exclusive-linewise| often applies.
*[]*
[] [count] sections backward or to the previous '}' in
[] [count] |section|s backward or to the previous '}' in
the first column. |exclusive|
Note that |exclusive-linewise| often applies.
@ -1019,7 +1020,7 @@ These commands are not marks themselves, but jump to a mark:
:let lnum = line(".")
:keepjumps normal gg
:call SetLastChange()
:keepjumps exe "normal " . lnum . "G"
:keepjumps exe "normal " .. lnum .. "G"
<
Note that ":keepjumps" must be used for every command.
When invoking a function the commands in that function
@ -1076,6 +1077,9 @@ The "file/text" column shows the file name, or the text at the jump if it is
in the current file (an indent is removed and a long line is truncated to fit
in the window).
The marker ">" indicates the current position in the jumplist. It may not be
shown when filtering the |:jumps| command using |:filter|
You are currently in line 1167. If you then use the CTRL-O command, the
cursor is put in line 1154. This results in:

View File

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

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 8.2. Last change: 2022 Feb 04
*options.txt* For Vim version 8.2. Last change: 2022 May 07
VIM REFERENCE MANUAL by Bram Moolenaar
@ -87,7 +87,7 @@ achieve special effects. These options come in three forms:
:se[t] {option}+={value} *:set+=*
Add the {value} to a number option, or append the
{value} to a string option. When the option is a
comma separated list, a comma is added, unless the
comma-separated list, a comma is added, unless the
value was empty.
If the option is a list of flags, superfluous flags
are removed. When adding a flag that was already
@ -97,7 +97,7 @@ achieve special effects. These options come in three forms:
:se[t] {option}^={value} *:set^=*
Multiply the {value} to a number option, or prepend
the {value} to a string option. When the option is a
comma separated list, a comma is added, unless the
comma-separated list, a comma is added, unless the
value was empty.
Also see |:set-args| above.
@ -383,12 +383,22 @@ lambda it will be converted to the name, e.g. "<lambda>123". Examples:
set opfunc=function('MyOpFunc')
set opfunc=funcref('MyOpFunc')
set opfunc={a\ ->\ MyOpFunc(a)}
" set using a funcref variable
Set to a script-local function: >
set opfunc=s:MyLocalFunc
set opfunc=<SID>MyLocalFunc
In |Vim9| script the "s:" and "<SID>" can be omitted if the function exists in
the script: >
set opfunc=MyLocalFunc
Set using a funcref variable: >
let Fn = function('MyTagFunc')
let &tagfunc = Fn
" set using a lambda expression
Set using a lambda expression: >
let &tagfunc = {t -> MyTagFunc(t)}
" set using a variable with lambda expression
Set using a variable with lambda expression: >
let L = {a, b, c -> MyTagFunc(a, b , c)}
let &tagfunc = L
@ -977,7 +987,8 @@ A jump table for the options with a short description can be found at |Q_op|.
nostop like start, except CTRL-W and CTRL-U do not stop at the start of
insert.
When the value is empty, Vi compatible backspacing is used.
When the value is empty, Vi compatible backspacing is used, none of
the ways mentioned for the items above are possible.
For backwards compatibility with version 5.4 and earlier:
value effect ~
@ -1008,7 +1019,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'backupcopy' 'bkc' string (Vi default for Unix: "yes", otherwise: "auto")
global or local to buffer |global-local|
When writing a file and a backup is made, this option tells how it's
done. This is a comma separated list of words.
done. This is a comma-separated list of words.
The main values are:
"yes" make a copy of the file and overwrite the original one
@ -1032,10 +1043,10 @@ A jump table for the options with a short description can be found at |Q_op|.
file.
- When the file is a link the new file will not be a link.
The "auto" value is the middle way: When Vim sees that renaming file
is possible without side effects (the attributes can be passed on and
the file is not a link) that is used. When problems are expected, a
copy will be made.
The "auto" value is the middle way: When Vim sees that renaming the
file is possible without side effects (the attributes can be passed on
and the file is not a link) that is used. When problems are expected,
a copy will be made.
The "breaksymlink" and "breakhardlink" values can be used in
combination with any of "yes", "no" and "auto". When included, they
@ -1054,13 +1065,13 @@ A jump table for the options with a short description can be found at |Q_op|.
When a copy is made, the original file is truncated and then filled
with the new text. This means that protection bits, owner and
symbolic links of the original file are unmodified. The backup file
symbolic links of the original file are unmodified. The backup file,
however, is a new file, owned by the user who edited the file. The
group of the backup is set to the group of the original file. If this
fails, the protection bits for the group are made the same as for
others.
When the file is renamed this is the other way around: The backup has
When the file is renamed, this is the other way around: The backup has
the same attributes of the original file, and the newly written file
is owned by the current user. When the file was a (hard/symbolic)
link, the new file will not! That's why the "auto" value doesn't
@ -1127,12 +1138,12 @@ A jump table for the options with a short description can be found at |Q_op|.
accidentally overwriting existing files with a backup file. You might
prefer using ".bak", but make sure that you don't have files with
".bak" that you want to keep.
Only normal file name characters can be used, "/\*?[|<>" are illegal.
Only normal file name characters can be used; "/\*?[|<>" are illegal.
If you like to keep a lot of backups, you could use a BufWritePre
autocommand to change 'backupext' just before writing the file to
include a timestamp. >
:au BufWritePre * let &bex = '-' . strftime("%Y%b%d%X") . '~'
:au BufWritePre * let &bex = '-' .. strftime("%Y%b%d%X") .. '~'
< Use 'backupdir' to put the backup in a different directory.
*'backupskip'* *'bsk'*
@ -1157,7 +1168,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Note that environment variables are not expanded. If you want to use
$HOME you must expand it explicitly, e.g.: >
:let &backupskip = escape(expand('$HOME'), '\') . '/tmp/*'
:let &backupskip = escape(expand('$HOME'), '\') .. '/tmp/*'
< Note that the default also makes sure that "crontab -e" works (when a
backup would be made by renaming the original file crontab won't see
@ -1208,10 +1219,10 @@ A jump table for the options with a short description can be found at |Q_op|.
The evaluation of the expression must not have side effects!
Example: >
function MyBalloonExpr()
return 'Cursor is at line ' . v:beval_lnum .
\', column ' . v:beval_col .
\ ' of file ' . bufname(v:beval_bufnr) .
\ ' on word "' . v:beval_text . '"'
return 'Cursor is at line ' .. v:beval_lnum ..
\ ', column ' .. v:beval_col ..
\ ' of file ' .. bufname(v:beval_bufnr) ..
\ ' on word "' .. v:beval_text .. '"'
endfunction
set bexpr=MyBalloonExpr()
set ballooneval
@ -1254,6 +1265,7 @@ A jump table for the options with a short description can be found at |Q_op|.
separated list of items. For each item that is present, the bell
will be silenced. This is most useful to specify specific events in
insert mode to be silenced.
You can also make it flash by using 'visualbell'.
item meaning when present ~
all All events.
@ -1279,6 +1291,7 @@ A jump table for the options with a short description can be found at |Q_op|.
register Unknown register after <C-R> in |Insert-mode|.
shell Bell from shell output |:!|.
spell Error happened on spell suggest.
term Bell from |:terminal| output.
wildmode More matches in |cmdline-completion| available
(depends on the 'wildmode' setting).
@ -1379,19 +1392,25 @@ A jump table for the options with a short description can be found at |Q_op|.
characters. It permits dynamic French paragraph
indentation (negative) or emphasizing the line
continuation (positive).
(default: 0)
sbr Display the 'showbreak' value before applying the
additional indent.
(default: off)
list:{n} Adds an additional indent for lines that match a
numbered or bulleted list (using the
'formatlistpat' setting).
list:-1 Uses the length of a match with 'formatlistpat'
for indentation.
The default value for min is 20, shift and list is 0.
(default: 0)
column:{n} Indent at column {n}. Will overrule the other
sub-options. Note: an additional indent may be
added for the 'showbreak' setting.
(default: off)
*'browsedir'* *'bsdir'*
'browsedir' 'bsdir' string (default: "last")
global
{only for Motif, Athena, GTK, Mac and Win32 GUI}
{only for Motif, GTK, Mac and Win32 GUI}
Which directory to use for the file browser:
last Use same directory as with last file browser, where a
file was opened or saved.
@ -1405,16 +1424,16 @@ A jump table for the options with a short description can be found at |Q_op|.
This option specifies what happens when a buffer is no longer
displayed in a window:
<empty> follow the global 'hidden' option
hide hide the buffer (don't unload it), also when 'hidden'
is not set
unload unload the buffer, also when 'hidden' is set or using
|:hide|
delete delete the buffer from the buffer list, also when
'hidden' is set or using |:hide|, like using
|:bdelete|
wipe wipe out the buffer from the buffer list, also when
'hidden' is set or using |:hide|, like using
|:bwipeout|
hide hide the buffer (don't unload it), even if 'hidden' is
not set
unload unload the buffer, even if 'hidden' is set; the
|:hide| command will also unlod the buffer
delete delete the buffer from the buffer list, even if
'hidden' is set; the |:hide| command will also delete
the buffer, making it behave like |:bdelete|
wipe wipe the buffer from the buffer list, even if
'hidden' is set; the |:hide| command will also wipe
out the buffer, making it behave like |:bwipeout|
CAREFUL: when "unload", "delete" or "wipe" is used changes in a buffer
are lost without a warning. Also, these values may break autocommands
@ -1527,7 +1546,7 @@ A jump table for the options with a short description can be found at |Q_op|.
If the default value taken from $CDPATH is not what you want, include
a modified version of the following command in your vimrc file to
override it: >
:let &cdpath = ',' . substitute(substitute($CDPATH, '[, ]', '\\\0', 'g'), ':', ',', 'g')
:let &cdpath = ',' .. substitute(substitute($CDPATH, '[, ]', '\\\0', 'g'), ':', ',', 'g')
< This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
(parts of 'cdpath' can be passed to the shell to expand file names).
@ -1572,8 +1591,8 @@ A jump table for the options with a short description can be found at |Q_op|.
set charconvert=CharConvert()
fun CharConvert()
system("recode "
\ . v:charconvert_from . ".." . v:charconvert_to
\ . " <" . v:fname_in . " >" v:fname_out)
\ .. v:charconvert_from .. ".." .. v:charconvert_to
\ .. " <" .. v:fname_in .. " >" .. v:fname_out)
return v:shell_error
endfun
< The related Vim variables are:
@ -1650,13 +1669,23 @@ A jump table for the options with a short description can be found at |Q_op|.
matter, include the keyword both the uppercase and lowercase:
"if,If,IF".
*'clipboard'* *'cb'*
*'cinscopedecls'* *'cinsd'*
'cinscopedecls' 'cinsd' string (default "public,protected,private")
local to buffer
{not available when compiled without the |+cindent|
feature}
Keywords that are interpreted as a C++ scope declaration by |cino-g|.
Useful e.g. for working with the Qt framework that defines additional
scope declarations "signals", "public slots" and "private slots": >
set cinscopedecls+=signals,public\ slots,private\ slots
< *'clipboard'* *'cb'*
'clipboard' 'cb' string (default "autoselect,exclude:cons\|linux"
for X-windows, "" otherwise)
global
{only in GUI versions or when the |+xterm_clipboard|
feature is included}
This option is a list of comma separated names.
This option is a list of comma-separated names.
Note: if one of the items is "exclude:", then you can't add an item
after that. Therefore do append an item with += but use ^= to
prepend, e.g.: >
@ -1757,7 +1786,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to window
{not available when compiled without the |+syntax|
feature}
'colorcolumn' is a comma separated list of screen columns that are
'colorcolumn' is a comma-separated list of screen columns that are
highlighted with ColorColumn |hl-ColorColumn|. Useful to align
text. Will make screen redrawing slower.
The screen column can be an absolute number, or a number preceded with
@ -1791,7 +1820,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'comments' 'com' string (default
"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-")
local to buffer
A comma separated list of strings that can start a comment line. See
A comma-separated list of strings that can start a comment line. See
|format-comments|. See |option-backslash| about using backslashes to
insert a space.
@ -1932,7 +1961,7 @@ A jump table for the options with a short description can be found at |Q_op|.
This option specifies how keyword completion |ins-completion| works
when CTRL-P or CTRL-N are used. It is also used for whole-line
completion |i_CTRL-X_CTRL-L|. It indicates the type of completion
and the places to scan. It is a comma separated list of flags:
and the places to scan. It is a comma-separated list of flags:
. scan the current buffer ('wrapscan' is ignored)
w scan buffers from other windows
b scan other loaded buffers that are in the buffer list
@ -2001,7 +2030,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'completeopt'* *'cot'*
'completeopt' 'cot' string (default: "menu,preview")
global
A comma separated list of options for Insert mode completion
A comma-separated list of options for Insert mode completion
|ins-completion|. The supported values are:
menu Use a popup menu to show the possible completions. The
@ -2617,7 +2646,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to window
{not available when compiled without the |+syntax|
feature}
Comma separated list of settings for how 'cursorline' is displayed.
Comma-separated list of settings for how 'cursorline' is displayed.
Valid values:
"line" Highlight the text line of the cursor with
CursorLine |hl-CursorLine|.
@ -2897,7 +2926,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'display' 'dy' string (default "", set to "truncate" in
|defaults.vim|)
global
Change the way text is displayed. This is comma separated list of
Change the way text is displayed. This is comma-separated list of
flags:
lastline When included, as much as possible of the last line
in a window will be displayed. "@@@" is put in the
@ -3101,7 +3130,7 @@ A jump table for the options with a short description can be found at |Q_op|.
A list of autocommand event names, which are to be ignored.
When set to "all" or when "all" is one of the items, all autocommand
events are ignored, autocommands will not be executed.
Otherwise this is a comma separated list of event names. Example: >
Otherwise this is a comma-separated list of event names. Example: >
:set ei=WinEnter,WinLeave
<
*'expandtab'* *'et'* *'noexpandtab'* *'noet'*
@ -3361,7 +3390,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the |+folding|
feature}
Characters to fill the statuslines and vertical separators.
It is a comma separated list of items:
It is a comma-separated list of items:
item default Used for ~
stl:c ' ' or '^' statusline of the current window
@ -3551,7 +3580,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the |+folding|
feature}
Specifies for which type of commands folds will be opened, if the
command moves the cursor into a closed fold. It is a comma separated
command moves the cursor into a closed fold. It is a comma-separated
list of items.
NOTE: When the command is part of a mapping this option is not used.
Add the |zv| command to the mapping to get the same effect.
@ -3769,7 +3798,7 @@ A jump table for the options with a short description can be found at |Q_op|.
For a console the 't_SI', 't_SR', and 't_EI' escape sequences are
used.
The option is a comma separated list of parts. Each part consist of a
The option is a comma-separated list of parts. Each part consist of a
mode-list and an argument-list:
mode-list:argument-list,mode-list:argument-list,..
The mode-list is a dash separated list of these modes:
@ -3888,7 +3917,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'guioptions'* *'go'*
'guioptions' 'go' string (default "egmrLtT" (MS-Windows,
"t" is removed in |defaults.vim|),
"aegimrLtT" (GTK, Motif and Athena),
"aegimrLtT" (GTK and Motif),
)
global
{only available when compiled with GUI enabled}
@ -3969,13 +3998,12 @@ A jump table for the options with a short description can be found at |Q_op|.
*'go-g'*
'g' Grey menu items: Make menu items that are not active grey. If
'g' is not included inactive menu items are not shown at all.
Exception: Athena will always use grey menu items.
*'go-t'*
't' Include tearoff menu items. Currently only works for Win32,
GTK+, and Motif 1.2 GUI.
*'go-T'*
'T' Include Toolbar. Currently only in Win32, GTK+, Motif, Photon
and Athena GUIs.
'T' Include Toolbar. Currently only in Win32, GTK+, Motif and
Photon GUIs.
*'go-r'*
'r' Right-hand scrollbar is always present.
*'go-R'*
@ -4028,7 +4056,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'guitablabel' 'gtl' string (default empty)
global
{only available when compiled with GUI enabled}
When nonempty describes the text to use in a label of the GUI tab
When non-empty describes the text to use in a label of the GUI tab
pages line. When empty and when the result is empty Vim will use a
default label. See |setting-guitablabel| for more info.
@ -4046,7 +4074,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'guitabtooltip' 'gtt' string (default empty)
global
{only available when compiled with GUI enabled}
When nonempty describes the text to use in a tooltip for the GUI tab
When non-empty describes the text to use in a tooltip for the GUI tab
pages line. When empty Vim will use a default tooltip.
This option is otherwise just like 'guitablabel' above.
You can include a line break. Simplest method is to use |:let|: >
@ -4081,7 +4109,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+multi_lang|
feature}
Comma separated list of languages. Vim will use the first language
Comma-separated list of languages. Vim will use the first language
for which the desired help can be found. The English help will always
be used as a last resort. You can add "en" to prefer English over
another language, but that will only find tags that exist in that
@ -4100,10 +4128,14 @@ A jump table for the options with a short description can be found at |Q_op|.
When off a buffer is unloaded when it is |abandon|ed. When on a
buffer becomes hidden when it is |abandon|ed. If the buffer is still
displayed in another window, it does not become hidden, of course.
The commands that move through the buffer list sometimes make a buffer
hidden although the 'hidden' option is off: When the buffer is
modified, 'autowrite' is off or writing is not possible, and the '!'
flag was used. See also |windows.txt|.
hidden even if the 'hidden' option is off when these three are true:
- the buffer is modified
- 'autowrite' is off or writing is not possible
- the '!' flag was used
Also see |windows.txt|.
To only make one buffer hidden use the 'bufhidden' option.
This option is set for one command with ":hide {command}" |:hide|.
WARNING: It's easy to forget that you have changes in hidden buffers.
@ -4129,7 +4161,7 @@ A jump table for the options with a short description can be found at |Q_op|.
z:StatusLineTerm,Z:StatusLineTermNC")
global
This option can be used to set highlighting mode for various
occasions. It is a comma separated list of character pairs. The
occasions. It is a comma-separated list of character pairs. The
first character in a pair gives the occasion, the second the mode to
use for that occasion. The occasions are:
|hl-SpecialKey| 8 Meta and special keys listed with ":map"
@ -4141,6 +4173,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|hl-ErrorMsg| e error messages
h (obsolete, ignored)
|hl-IncSearch| i 'incsearch' highlighting
|hl-CurSearch| y current instance of last search pattern
|hl-Search| l last search pattern highlighting (see 'hlsearch')
|hl-MoreMsg| m |more-prompt|
|hl-ModeMsg| M Mode (e.g., "-- INSERT --")
@ -4384,7 +4417,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|i_CTRL-^|.
The value is set to 1 when setting 'keymap' to a valid keymap name.
It is also used for the argument of commands like "r" and "f".
The value 0 may not work correctly with Athena and Motif with some XIM
The value 0 may not work correctly with Motif with some XIM
methods. Use 'imdisable' to disable XIM then.
You can set 'imactivatefunc' and 'imstatusfunc' to handle IME/XIM
@ -4405,7 +4438,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|c_CTRL-^|.
The value is set to 1 when it is not -1 and setting the 'keymap'
option to a valid keymap name.
The value 0 may not work correctly with Athena and Motif with some XIM
The value 0 may not work correctly with Motif with some XIM
methods. Use 'imdisable' to disable XIM then.
*'imstatusfunc'* *'imsf'*
@ -4796,7 +4829,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'keymodel'* *'km'*
'keymodel' 'km' string (default "")
global
List of comma separated words, which enable special things that keys
List of comma-separated words, which enable special things that keys
can do. These values can be used:
startsel Using a shifted special key starts selection (either
Select mode or Visual mode, depending on "key" being
@ -4877,7 +4910,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|+multi_lang| features}
Language to use for menu translation. Tells which file is loaded
from the "lang" directory in 'runtimepath': >
"lang/menu_" . &langmenu . ".vim"
"lang/menu_" .. &langmenu .. ".vim"
< (without the spaces). For example, to always use the Dutch menus, no
matter what $LANG is set to: >
:set langmenu=nl_NL.ISO_8859-1
@ -4997,7 +5030,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global or local to buffer |global-local|
{not available when compiled without the |+lispindent|
feature}
Comma separated list of words that influence the Lisp indenting.
Comma-separated list of words that influence the Lisp indenting.
|'lisp'|
*'list'* *'nolist'*
@ -5021,7 +5054,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'listchars' 'lcs' string (default "eol:$")
global or local to window |global-local|
Strings to use in 'list' mode and for the |:list| command. It is a
comma separated list of string settings.
comma-separated list of string settings.
*lcs-eol*
eol:c Character to show at the end of each line. When
omitted, there is no extra character at the end of the
@ -5506,6 +5539,18 @@ A jump table for the options with a short description can be found at |Q_op|.
The 'mousemodel' option is set by the |:behave| command.
*'mousemoveevent'* *'mousemev'*
'mousemoveevent' 'mousemev' boolean (default off)
global
{only works in the GUI}
When on, mouse move events are delivered to the input queue and are
available for mapping. The default, off, avoids the mouse movement
overhead except when needed. See |gui-mouse-mapping|.
Warning: Setting this option can make pending mappings to be aborted
when the mouse is moved.
Currently only works in the GUI, may be made to work in a terminal
later.
*'mouseshape'* *'mouses'* *E547*
'mouseshape' 'mouses' string (default "i-r:beam,s:updown,sd:udsizing,
vs:leftright,vd:lrsizing,m:no,
@ -5514,7 +5559,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{only available when compiled with the |+mouseshape|
feature}
This option tells Vim what the mouse pointer should look like in
different modes. The option is a comma separated list of parts, much
different modes. The option is a comma-separated list of parts, much
like used for 'guicursor'. Each part consist of a mode/location-list
and an argument-list:
mode-list:shape,mode-list:shape,..
@ -5891,7 +5936,7 @@ A jump table for the options with a short description can be found at |Q_op|.
< To use an environment variable, you probably need to replace the
separator. Here is an example to append $INCL, in which directory
names are separated with a semi-colon: >
:let &path = &path . "," . substitute($INCL, ';', ',', 'g')
:let &path = &path .. "," .. substitute($INCL, ';', ',', 'g')
< Replace the ';' with a ':' or whatever separator is used. Note that
this doesn't work when $INCL contains a comma or white space.
@ -6655,7 +6700,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'selectmode'* *'slm'*
'selectmode' 'slm' string (default "")
global
This is a comma separated list of words, which specifies when to start
This is a comma-separated list of words, which specifies when to start
Select mode instead of Visual mode, when a selection is started.
Possible values:
mouse when using the mouse
@ -7274,7 +7319,7 @@ A jump table for the options with a short description can be found at |Q_op|.
commands. It must end in ".{encoding}.add". You need to include the
path, otherwise the file is placed in the current directory.
*E765*
It may also be a comma separated list of names. A count before the
It may also be a comma-separated list of names. A count before the
|zg| and |zw| commands can be used to access each. This allows using
a personal word list file and a project word list file.
When a word is added while this option is empty Vim will set it for
@ -7296,7 +7341,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
{not available when compiled without the |+syntax|
feature}
A comma separated list of word list names. When the 'spell' option is
A comma-separated list of word list names. When the 'spell' option is
on spellchecking will be done for these languages. Example: >
set spelllang=en_us,nl,medical
< This means US English, Dutch and medical words are recognized. Words
@ -7341,7 +7386,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
{not available when compiled without the |+syntax|
feature}
A comma separated list of options for spell checking:
A comma-separated list of options for spell checking:
camel When a word is CamelCased, assume "Cased" is a
separate word: every upper-case character in a word
that comes after a lower case character indicates the
@ -7449,7 +7494,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global or local to window |global-local|
{not available when compiled without the |+statusline|
feature}
When nonempty, this option determines the content of the status line.
When non-empty, this option determines the content of the status line.
Also see |status-line|.
The option consists of printf style '%' items interspersed with
@ -7646,7 +7691,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
{not available when compiled without the
|+file_in_path| feature}
Comma separated list of suffixes, which are used when searching for a
Comma-separated list of suffixes, which are used when searching for a
file for the "gf", "[I", etc. commands. Example: >
:set suffixesadd=.java
<
@ -7692,7 +7737,7 @@ A jump table for the options with a short description can be found at |Q_op|.
This option controls the behavior when switching between buffers.
Mostly for |quickfix| commands some values are also used for other
commands, as mentioned below.
Possible values (comma separated list):
Possible values (comma-separated list):
useopen If included, jump to the first open window that
contains the specified buffer (if there is one).
Otherwise: Do not examine other windows.
@ -7757,7 +7802,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'tabline'* *'tal'*
'tabline' 'tal' string (default empty)
global
When nonempty, this option determines the content of the tab pages
When non-empty, this option determines the content of the tab pages
line at the top of the Vim window. When empty Vim will use a default
tab pages line. See |setting-tabline| for more info.
@ -7849,9 +7894,10 @@ A jump table for the options with a short description can be found at |Q_op|.
linear search can be avoided when case is ignored. Use a value of '2'
in the "!_TAG_FILE_SORTED" line for this. A tag file can be case-fold
sorted with the -f switch to "sort" in most unices, as in the command:
"sort -f -o tags tags". For "Exuberant ctags" version 5.x or higher
(at least 5.5) the --sort=foldcase switch can be used for this as
well. Note that case must be folded to uppercase for this to work.
"sort -f -o tags tags". For Universal ctags and Exuberant ctags
version 5.x or higher (at least 5.5) the --sort=foldcase switch can be
used for this as well. Note that case must be folded to uppercase for
this to work.
By default, tag searches are case-sensitive. Case is ignored when
'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
@ -8033,6 +8079,13 @@ A jump table for the options with a short description can be found at |Q_op|.
< This requires Vim to be built with the |+vtp| feature.
Note that the "cterm" attributes are still used, not the "gui" ones.
When using Vim with Windows Terminal, the background of Windows
Terminal is normally filled with the Vim background color. Setting
'termguicolors' and the guibg of the Normal highlight group to NONE
will make the background transparent: >
:hi Normal guibg=NONE
<
NOTE: This option is reset when 'compatible' is set.
*'termwinkey'* *'twk'*
@ -8308,7 +8361,7 @@ A jump table for the options with a short description can be found at |Q_op|.
This option cannot be set in a modeline when 'modelineexpr' is off.
Example: >
:auto BufEnter * let &titlestring = hostname() . "/" . expand("%:p")
:auto BufEnter * let &titlestring = hostname() .. "/" .. expand("%:p")
:set title titlestring=%<%F%=%l/%L-%P titlelen=70
< The value of 'titlelen' is used to align items in the middle or right
of the available space.
@ -8324,8 +8377,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'toolbar'* *'tb'*
'toolbar' 'tb' string (default "icons,tooltips")
global
{only for |+GUI_GTK|, |+GUI_Athena|, |+GUI_Motif| and
|+GUI_Photon|}
{only for |+GUI_GTK|, |+GUI_Motif| and |+GUI_Photon|}
The contents of this option controls various toolbar settings. The
possible values are:
icons Toolbar buttons are shown with icons.
@ -8339,7 +8391,7 @@ A jump table for the options with a short description can be found at |Q_op|.
If you want the toolbar to be shown with icons as well as text, do the
following: >
:set tb=icons,text
< Motif and Athena cannot display icons and text at the same time. They
< Motif cannot display icons and text at the same time. They
will show icons if both are requested.
If none of the strings specified in 'toolbar' are valid or if
@ -8658,7 +8710,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{not available when compiled without the |+mksession|
feature}
Changes the effect of the |:mkview| command. It is a comma separated
Changes the effect of the |:mkview| command. It is a comma-separated
list of words. Each word enables saving and restoring something:
word save and restore ~
cursor cursor position in file and in window
@ -8688,7 +8740,7 @@ A jump table for the options with a short description can be found at |Q_op|.
When non-empty, the viminfo file is read upon startup and written
when exiting Vim (see |viminfo-file|). Except when 'viminfofile' is
"NONE".
The string should be a comma separated list of parameters, each
The string should be a comma-separated list of parameters, each
consisting of a single character identifying the particular parameter,
followed by a number or string which specifies the value of that
parameter. If a particular character is left out, then the default
@ -8811,7 +8863,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'virtualedit'* *'ve'*
'virtualedit' 've' string (default "")
global or local to window |global-local|
A comma separated list of these words:
A comma-separated list of these words:
block Allow virtual editing in Visual block mode.
insert Allow virtual editing in Insert mode.
all Allow virtual editing in all modes.
@ -9027,7 +9079,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'wildmode' 'wim' string (Vim default: "full")
global
Completion mode that is used for the character specified with
'wildchar'. It is a comma separated list of up to four parts. Each
'wildchar'. It is a comma-separated list of up to four parts. Each
part specifies what to do for each consecutive use of 'wildchar'. The
first part specifies the behavior for the first use of 'wildchar',
The second part for the second use, etc.
@ -9077,6 +9129,14 @@ A jump table for the options with a short description can be found at |Q_op|.
feature}
A list of words that change how |cmdline-completion| is done.
The following values are supported:
fuzzy Use |fuzzy-matching| to find completion matches. When
this value is specified, wildcard expansion will not
be used for completion. The matches will be sorted by
the "best match" rather than alphabetically sorted.
This will find more matches than the wildcard
expansion. Currently fuzzy matching based completion
is not supported for file and directory names and
instead wildcard expansion is used.
pum Display the completion matches using the popupmenu
in the same style as the |ins-completion-menu|.
tagfile When using CTRL-D to list matching tags, the kind of

View File

@ -603,13 +603,13 @@ program to the new diff on VMS. Add this to your .vimrc file: >
function MyDiff()
let opt = ""
if &diffopt =~ "icase"
let opt = opt . "-i "
let opt = opt .. "-i "
endif
if &diffopt =~ "iwhite"
let opt = opt . "-b "
let opt = opt .. "-b "
endif
silent execute "!mc GNU:diff.exe -a " . opt . v:fname_in . " " . v:fname_new .
\ " > " . v:fname_out
silent execute "!mc GNU:diff.exe -a " .. opt .. v:fname_in .. " " .. v:fname_new ..
\ " > " .. v:fname_out
endfunction
endif

View File

@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 8.2. Last change: 2021 Apr 05
*os_win32.txt* For Vim version 8.2. Last change: 2022 Feb 14
VIM REFERENCE MANUAL by George Reilly
@ -294,7 +294,7 @@ A. When using :! to run an external command, you can run it with "start". For
/b no console window will be opened
You can use only one of these flags at a time. A second one will be
treated as the start of the command.
*windows-asynchronously*
Q. How do I avoid getting a window for programs that I run asynchronously?
A. You have two possible solutions depending on what you want:
1) You may use the /min flag in order to run program in a minimized state
@ -308,17 +308,17 @@ A. You have two possible solutions depending on what you want:
Example for a console application, run Exuberant ctags: >
:!start /min ctags -R .
< When it has finished you should see file named "tags" in your current
< When it has finished you should see file named "tags" in your current
directory. You should notice the window title blinking on your taskbar.
This is more noticeable for commands that take longer.
Now delete the "tags" file and run this command: >
:!start /b ctags -R .
< You should have the same "tags" file, but this time there will be no
< You should have the same "tags" file, but this time there will be no
blinking on the taskbar.
Example for a GUI application: >
:!start /min notepad
:!start /b notepad
< The first command runs notepad minimized and the second one runs it
< The first command runs notepad minimized and the second one runs it
normally.
*windows-icon*

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 8.2. Last change: 2022 Feb 04
*pattern.txt* For Vim version 8.2. Last change: 2022 Mar 04
VIM REFERENCE MANUAL by Bram Moolenaar
@ -19,7 +19,7 @@ explanations are in chapter 27 |usr_27.txt|.
8. Composing characters |patterns-composing|
9. Compare with Perl patterns |perl-patterns|
10. Highlighting matches |match-highlight|
11. Fuzzy matching |fuzzy-match|
11. Fuzzy matching |fuzzy-matching|
==============================================================================
1. Search commands *search-commands*
@ -164,9 +164,12 @@ index, on which the cursor is. This can look like this: >
Note: the count does not take offset into account.
When no match is found you get the error: *E486* Pattern not found
Note that for the |:global| command this behaves like a normal message, for Vi
compatibility. For the |:s| command the "e" flag can be used to avoid the
error message |:s_flags|.
Note that for the `:global` command, when used in legacy script, you get a
normal message "Pattern not found", for Vi compatibility.
In |Vim9| script you get E486 for "pattern not found" or *E538* when the pattern
matches in every line with `:vglobal`.
For the |:s| command the "e" flag can be used to avoid the error message
|:s_flags|.
*search-offset* *{offset}*
These commands search for the specified pattern. With "/" and "?" an
@ -376,7 +379,7 @@ Vim includes two regexp engines:
1. An old, backtracking engine that supports everything.
2. A new, NFA engine that works much faster on some patterns, possibly slower
on some patterns.
*E1281*
Vim will automatically select the right engine for you. However, if you run
into a problem or want to specifically select one engine or the other, you can
prepend one of the following to the pattern:
@ -963,7 +966,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
the cursor moves the display isn't updated for this change. An update
is done when using the |CTRL-L| command (the whole screen is updated).
Example, to highlight the column where the cursor currently is: >
:exe '/\%' . col(".") . 'c'
:exe '/\%' .. col(".") .. 'c'
< Alternatively use: >
/\%.c
< When 'hlsearch' is set and you move the cursor around and make changes
@ -1457,7 +1460,7 @@ Finally, these constructs are unique to Perl:
":2match" for another plugin.
==============================================================================
11. Fuzzy matching *fuzzy-match*
11. Fuzzy matching *fuzzy-matching*
Fuzzy matching refers to matching strings using a non-exact search string.
Fuzzy matching will match a string, if all the characters in the search string

View File

@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 8.2. Last change: 2021 Aug 16
*pi_netrw.txt* For Vim version 8.2. Last change: 2022 Apr 06
------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell
@ -968,7 +968,7 @@ itself:
fun! NetReadFixup(method, line1, line2)
if method == 3 " ftp (no <.netrc>)
let fourblanklines= line2 - 3
silent fourblanklines.",".line2."g/^\s*/d"
silent fourblanklines .. "," .. line2 .. "g/^\s*/d"
endif
endfunction
endif
@ -1975,7 +1975,7 @@ To use this function, simply assign its output to |g:netrw_list_hide| option. >
Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
Function can take additional files with git-ignore patterns.
Example: g:netrw_list_hide= netrw_gitignore#Hide() . '.*\.swp$'
Example: let g:netrw_list_hide= netrw_gitignore#Hide() .. '.*\.swp$'
Combining 'netrw_gitignore#Hide' with custom patterns.
<
@ -2815,7 +2815,7 @@ your browsing preferences. (see also: |netrw-settings|)
= 2: wide listing (multiple files in columns)
= 3: tree style listing
*g:netrw_list_hide* comma separated pattern list for hiding files
*g:netrw_list_hide* comma-separated pattern list for hiding files
Patterns are regular expressions (see |regexp|)
There's some special support for git-ignore
files: you may add the output from the helper
@ -2825,7 +2825,7 @@ your browsing preferences. (see also: |netrw-settings|)
Examples:
let g:netrw_list_hide= '.*\.swp$'
let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
let g:netrw_list_hide= netrw_gitignore#Hide() .. '.*\.swp$'
default: ""
*g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin

View File

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

View File

@ -139,28 +139,28 @@ If there is no error, return zero or an empty string.
The default for non MS-Windows or VMS systems is to simply use "lpr" to print
the file: >
system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice)
. ' ' . v:fname_in) . delete(v:fname_in) + v:shell_error
system('lpr' .. (&printdevice == '' ? '' : ' -P' .. &printdevice)
.. ' ' .. v:fname_in) .. delete(v:fname_in) + v:shell_error
On MS-Windows machines the default is to copy the file to the currently
specified printdevice: >
system('copy' . ' ' . v:fname_in . (&printdevice == ''
? ' LPT1:' : (' \"' . &printdevice . '\"')))
. delete(v:fname_in)
system('copy' .. ' ' .. v:fname_in .. (&printdevice == ''
? ' LPT1:' : (' \"' .. &printdevice .. '\"')))
.. delete(v:fname_in)
On VMS machines the default is to send the file to either the default or
currently specified printdevice: >
system('print' . (&printdevice == '' ? '' : ' /queue=' .
&printdevice) . ' ' . v:fname_in) . delete(v:fname_in)
system('print' .. (&printdevice == '' ? '' : ' /queue=' ..
&printdevice) .. ' ' .. v:fname_in) .. delete(v:fname_in)
If you change this option, using a function is an easy way to avoid having to
escape all the spaces. Example: >
:set printexpr=PrintFile(v:fname_in)
:function PrintFile(fname)
: call system("ghostview " . a:fname)
: call system("ghostview " .. a:fname)
: call delete(a:fname)
: return v:shell_error
:endfunc

View File

@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 8.2. Last change: 2022 Jan 04
*quickfix.txt* For Vim version 8.2. Last change: 2022 Feb 22
VIM REFERENCE MANUAL by Bram Moolenaar
@ -353,7 +353,7 @@ processing a quickfix or location list command, it will be aborted.
cursor position will not be changed. See |:cexpr| for
more information.
Example: >
:g/mypattern/caddexpr expand("%") . ":" . line(".") . ":" . getline(".")
:g/mypattern/caddexpr expand("%") .. ":" .. line(".") .. ":" .. getline(".")
<
*:lad* *:addd* *:laddexpr*
:lad[dexpr] {expr} Same as ":caddexpr", except the location list for the
@ -654,6 +654,27 @@ quickfix window. If there already is a window for that file, it is used
instead. If the buffer in the used window has changed, and the error is in
another file, jumping to the error will fail. You will first have to make
sure the window contains a buffer which can be abandoned.
When you select a file from the quickfix window, the following steps are used
to find a window to edit the file:
1. If a window displaying the selected file is present in the current tabpage
(starting with the window before the quickfix window), then that window is
used.
2. If the above step fails and if 'switchbuf' contains "usetab" and a window
displaying the selected file is present in any one of the tabpages
(starting with the first tabpage) then that window is used.
3. If the above step fails then a window in the current tabpage displaying a
buffer with 'buftype' not set (starting with the window before the quickfix
window) is used.
4. If the above step fails and if 'switchbuf' contains "uselast", then the
previously accessed window is used.
5. If the above step fails then the window before the quickfix window is used.
If there is no previous window, then the window after the quickfix window
is used.
6. If the above step fails, then a new horizontally split window above the
quickfix window is used.
*CTRL-W_<Enter>* *CTRL-W_<CR>*
You can use CTRL-W <Enter> to open a new window and jump to the error there.
@ -663,7 +684,7 @@ FileType event (also see |qf.vim|). Then the BufReadPost event is triggered,
using "quickfix" for the buffer name. This can be used to perform some action
on the listed errors. Example: >
au BufReadPost quickfix setlocal modifiable
\ | silent exe 'g/^/s//\=line(".")." "/'
\ | silent exe 'g/^/s//\=line(".") .. " "/'
\ | setlocal nomodifiable
This prepends the line number to each line. Note the use of "\=" in the
substitute string of the ":s" command, which is used to evaluate an
@ -692,13 +713,15 @@ this window, the displayed location list is used.
When you select a file from the location list window, the following steps are
used to find a window to edit the file:
1. If a window with the location list displayed in the location list window is
present, then the file is opened in that window.
2. If the above step fails and if the file is already opened in another
window, then that window is used.
3. If the above step fails then an existing window showing a buffer with
'buftype' not set is used.
4. If the above step fails, then the file is edited in a new window.
1. If a non-quickfix window associated with the location list is present in
the current tabpage, then that window is used.
2. If the above step fails and if the file is already opened in another window
in the current tabpage, then that window is used.
3. If the above step fails and 'switchbuf' contains "usetab" and if the file
is opened in a window in any one of the tabpages, then that window is used.
4. If the above step fails then a window in the current tabpage showing a
buffer with 'buftype' not set is used.
5. If the above step fails, then the file is edited in a new window.
In all of the above cases, if the location list for the selected window is not
yet set, then it is set to the location list displayed in the location list
@ -1037,7 +1060,7 @@ commands can be combined to create a NewGrep command: >
matching is used to find matching lines. In this
case, {pattern} is treated as a literal string
instead of a regular expression. See
|fuzzy-match| for more information about fuzzy
|fuzzy-matching| for more information about fuzzy
matching strings.
|QuickFixCmdPre| and |QuickFixCmdPost| are triggered.

View File

@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.2. Last change: 2021 Dec 21
*quickref.txt* For Vim version 8.2. Last change: 2022 May 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -643,6 +643,7 @@ Short explanation of each option: *option-list*
'cinkeys' 'cink' keys that trigger indent when 'cindent' is set
'cinoptions' 'cino' how to do indenting when 'cindent' is set
'cinwords' 'cinw' words where 'si' and 'cin' add an indent
'cinscopedecls' 'cinsd' words that are recognized by 'cino-g'
'clipboard' 'cb' use the clipboard as the unnamed register
'cmdheight' 'ch' number of lines to use for the command-line
'cmdwinheight' 'cwh' height of the command-line window
@ -814,6 +815,7 @@ Short explanation of each option: *option-list*
'mousefocus' 'mousef' keyboard focus follows the mouse
'mousehide' 'mh' hide mouse pointer while typing
'mousemodel' 'mousem' changes meaning of mouse buttons
'mousemoveevent' 'mousemev' report mouse moves with <MouseMove>
'mouseshape' 'mouses' shape of the mouse pointer in different modes
'mousetime' 'mouset' max time between mouse double-click
'mzquantum' 'mzq' the interval between polls for MzScheme threads
@ -1348,7 +1350,7 @@ Context-sensitive completion on the command-line:
|CTRL-W_^| CTRL-W ^ split window and edit alternate file
|CTRL-W_n| CTRL-W n or :new create new empty window
|CTRL-W_q| CTRL-W q or :q[uit] quit editing and close window
|CTRL-W_c| CTRL-W c or :cl[ose] make buffer hidden and close window
|CTRL-W_c| CTRL-W c or :clo[se] make buffer hidden and close window
|CTRL-W_o| CTRL-W o or :on[ly] make current window only one on the
screen

View File

@ -1,4 +1,4 @@
*remote.txt* For Vim version 8.2. Last change: 2021 Dec 27
*remote.txt* For Vim version 8.2. Last change: 2022 Feb 17
VIM REFERENCE MANUAL by Bram Moolenaar
@ -120,6 +120,10 @@ when sending command to it.
The --serverlist argument will cause Vim to print a list of registered command
servers on the standard output (stdout) and exit.
*{server}*
The {server} argument is used by several functions. When this is an empty
string then on Unix the default server name is used, which is "GVIM". On
MS-Windows an empty string does not work.
Win32 Note: Making the Vim server go to the foreground doesn't always work,
because MS-Windows doesn't allow it. The client will move the server to the

View File

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

View File

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

View File

@ -1,4 +1,4 @@
*scroll.txt* For Vim version 8.2. Last change: 2019 May 13
*scroll.txt* For Vim version 8.2. Last change: 2022 May 07
VIM REFERENCE MANUAL by Bram Moolenaar
@ -237,31 +237,34 @@ it works depends on your system. It might also work in an xterm
|xterm-mouse-wheel|. By default only vertical scroll wheels are supported,
but some GUIs also support horizontal scroll wheels.
For the Win32 GUI the scroll action is hard coded. It works just like
dragging the scrollbar of the current window. How many lines are scrolled
depends on your mouse driver. If the scroll action causes input focus
problems, see |intellimouse-wheel-problems|.
On MS-Windows, if the scroll action causes input focus -problems, see
|intellimouse-wheel-problems|.
For the X11 GUIs (Motif, Athena and GTK) scrolling the wheel generates key
For Win32 and the X11 GUIs (Motif and GTK) scrolling the wheel generates key
presses <ScrollWheelUp>, <ScrollWheelDown>, <ScrollWheelLeft> and
<ScrollWheelRight>. For example, if you push the scroll wheel upwards a
<ScrollWheelUp> key press is generated causing the window to scroll upwards
(while the text is actually moving downwards). The default action for these
keys are:
<ScrollWheelUp> scroll three lines up *<ScrollWheelUp>*
<ScrollWheelUp> scroll N lines up *<ScrollWheelUp>*
<S-ScrollWheelUp> scroll one page up *<S-ScrollWheelUp>*
<C-ScrollWheelUp> scroll one page up *<C-ScrollWheelUp>*
<ScrollWheelDown> scroll three lines down *<ScrollWheelDown>*
<ScrollWheelDown> scroll N lines down *<ScrollWheelDown>*
<S-ScrollWheelDown> scroll one page down *<S-ScrollWheelDown>*
<C-ScrollWheelDown> scroll one page down *<C-ScrollWheelDown>*
<ScrollWheelLeft> scroll six columns left *<ScrollWheelLeft>*
<ScrollWheelLeft> scroll N columns left *<ScrollWheelLeft>*
<S-ScrollWheelLeft> scroll one page left *<S-ScrollWheelLeft>*
<C-ScrollWheelLeft> scroll one page left *<C-ScrollWheelLeft>*
<ScrollWheelRight> scroll six columns right *<ScrollWheelRight>*
<ScrollWheelRight> scroll N columns right *<ScrollWheelRight>*
<S-ScrollWheelRight> scroll one page right *<S-ScrollWheelRight>*
<C-ScrollWheelRight> scroll one page right *<C-ScrollWheelRight>*
This should work in all modes, except when editing the command line.
The value of N depends on the system. By default Vim scrolls three lines when
moving vertically, and six columns when moving horizontally. On MS-Windows
the amount of lines and columns for each scroll action is taken from the
system-wide settings.
Note that horizontal scrolling only works if 'nowrap' is set. Also, unless
the "h" flag in 'guioptions' is set, the cursor moves to the longest visible
line if the cursor line is about to be scrolled off the screen (similarly to

View File

@ -101,7 +101,7 @@ precedence, otherwise the 'cursorline' highlighting.
Here is an example that places a sign "piet", displayed with the text ">>", in
line 23 of the current file: >
:sign define piet text=>> texthl=Search
:exe ":sign place 2 line=23 name=piet file=" . expand("%:p")
:exe ":sign place 2 line=23 name=piet file=" .. expand("%:p")
And here is the command to delete it again: >
:sign unplace 2

View File

@ -131,8 +131,8 @@ zuG Undo |zW| and |zG|, remove the word from the internal
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>
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

View File

@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.2. Last change: 2022 Feb 01
*starting.txt* For Vim version 8.2. Last change: 2022 May 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -344,6 +344,12 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
Example: >
vim -V20vimlog foobar
<
--log {filename} *--log*
Start logging and write entries to {filename}.
This works like calling `ch_logfile({filename}, 'a')` very
early during startup.
{only available with the +channel feature}
*-D*
-D Debugging. Go to debugging mode when executing the first
command from a script. |debug-mode|
@ -564,6 +570,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
{scriptout} cannot start with a digit.
If you want to record what is typed in a human readable for
you can use |ch_logfile()|, It adds "raw key input" lines.
Also see |--log|.
*-W*
-W {scriptout} Like -w, but do not append, overwrite an existing file.
@ -730,6 +737,7 @@ In Evim these options are changed from their default value:
:set guioptions-=a non-Unix only: don't do auto-select
Key mappings:
<CTRL-Q> quit, using `:confirm` prompt if there are changes
<Down> moves by screen lines rather than file lines
<Up> idem
Q does "gq", formatting, instead of Ex mode
@ -740,7 +748,6 @@ Key mappings:
<C-Insert> idem
CTRL-V Pastes from the clipboard (in any mode)
<S-Insert> idem
CTRL-Q do what CTRL-V used to do
CTRL-Z undo
CTRL-Y redo
<M-Space> system menu
@ -757,6 +764,8 @@ Additionally:
One hint: If you want to go to Normal mode to be able to type a sequence of
commands, use CTRL-L. |i_CTRL-L|
There is no way to stop "easy mode", you need to exit Vim.
==============================================================================
4. Initialization *initialization* *startup*
@ -1378,7 +1387,7 @@ resulting file, when executed with a ":source" command:
After restoring the Session, the full filename of your current Session is
available in the internal variable "v:this_session" |this_session-variable|.
An example mapping: >
:nmap <F2> :wa<Bar>exe "mksession! " . v:this_session<CR>:so ~/sessions/
:nmap <F2> :wa<Bar>exe "mksession! " .. v:this_session<CR>:so ~/sessions/
This saves the current Session, and starts off the command to load another.
A session includes all tab pages, unless "tabpages" was removed from

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.2. Last change: 2022 Feb 04
*syntax.txt* For Vim version 8.2. Last change: 2022 May 06
VIM REFERENCE MANUAL by Bram Moolenaar
@ -215,7 +215,7 @@ A syntax group name doesn't specify any color or attributes itself.
The name for a highlight or syntax group must consist of ASCII letters, digits
and the underscore. As a regexp: "[a-zA-Z0-9_]*". However, Vim does not give
an error when using other characters. The maxium length of a group name is
an error when using other characters. The maximum length of a group name is
about 200 bytes. *E1249*
To be able to allow each user to pick their favorite set of colors, there must
@ -488,7 +488,7 @@ your own highlight colors for the progress bar. Example: >
hi TOhtmlProgress guifg=#c0ffee ctermbg=7
<
*g:html_number_lines*
Default: current 'number' setting.
Default: Current 'number' setting.
When 0, buffer text is displayed in the generated HTML without line numbering.
When 1, a column of line numbers is added to the generated HTML with the same
highlighting as the line number column in Vim (|hl-LineNr|).
@ -577,7 +577,7 @@ folded text will open the fold as if |g:html_hover_unfold| were set.
:let g:html_no_foldcolumn = 1
<
*TOhtml-uncopyable-text* *g:html_prevent_copy*
Default: empty string.
Default: Empty string.
This option prevents certain regions of the generated HTML from being copied,
when you select all text in document rendered in a browser and copy it. Useful
for allowing users to copy-paste only the source text even if a fold column or
@ -603,7 +603,7 @@ uncopyable regions. In some browsers, especially older browsers, after
selecting an entire page and copying the selection, the <input> tags are not
pasted with the page text. If |g:html_no_invalid| is 0, the <input> tags have
invalid type; this works in more browsers, but the page will not validate.
Note: this method does NOT work in recent versions of Chrome and equivalent
Note: This method does NOT work in recent versions of Chrome and equivalent
browsers; the <input> tags get pasted with the text.
When "fallback" (default value), the same <input> elements are generated for
@ -653,18 +653,18 @@ evaluate to get a unique string to append to each ID used in a given document,
so that the full IDs will be unique even when combined with other content in a
larger HTML document. Example, to append _ and the buffer number to each ID: >
:let g:html_id_expr = '"_".bufnr("%")'
:let g:html_id_expr = '"_" .. bufnr("%")'
<
To append a string "_mystring" to the end of each ID: >
:let g:html_id_expr = '"_mystring"'
<
Note, when converting a diff view to HTML, the expression will only be
Note: When converting a diff view to HTML, the expression will only be
evaluated for the first window in the diff, and the result used for all the
windows.
*TOhtml-wrap-text* *g:html_pre_wrap*
Default: current 'wrap' setting.
Default: Current 'wrap' setting.
When 0, if |g:html_no_pre| is 0 or unset, the text in the generated HTML does
not wrap at the edge of the browser window.
When 1, if |g:html_use_css| is 1, the CSS 2.0 "white-space:pre-wrap" value is
@ -724,7 +724,7 @@ wide browser support. However, you can override this to support specific
encodings that may not be automatically detected by default (see options
below). See http://www.iana.org/assignments/character-sets for the IANA names.
Note, by default all Unicode encodings are converted to UTF-8 with no BOM in
Note: By default all Unicode encodings are converted to UTF-8 with no BOM in
the generated HTML, as recommended by W3C:
http://www.w3.org/International/questions/qa-choosing-encodings
@ -1328,8 +1328,8 @@ the global or buffer-local variable load_doxygen_syntax. This is done by
adding the following to your .vimrc. >
:let g:load_doxygen_syntax=1
There are a couple of variables that have an effect on syntax highlighting, and
are to do with non-standard highlighting options.
There are a couple of variables that have an effect on syntax highlighting,
and are to do with non-standard highlighting options.
Variable Default Effect ~
g:doxygen_enhanced_color
@ -1471,8 +1471,8 @@ To enable highlighting some special atoms, put this in your vimrc: >
ELIXIR *elixir.vim* *ft-elixir-syntax*
Elixir is a dynamic, functional language for building scalable and maintainable
applications.
Elixir is a dynamic, functional language for building scalable and
maintainable applications.
The following file extensions are auto-detected as Elixir file types:
@ -1488,7 +1488,7 @@ Elixir.
FLEXWIKI *flexwiki.vim* *ft-flexwiki-syntax*
FlexWiki is an ASP.NET-based wiki package available at http://www.flexwiki.com
NOTE: this site currently doesn't work, on Wikipedia is mentioned that
NOTE: This site currently doesn't work, on Wikipedia is mentioned that
development stopped in 2009.
Syntax highlighting is available for the most common elements of FlexWiki
@ -1568,8 +1568,8 @@ syntax highlighting will not be correct if the form is incorrectly set.
When you create a new fortran file, the syntax script assumes fixed source
form. If you always use free source form, then >
:let fortran_free_source=1
in your .vimrc prior to the :syntax on command. If you always use fixed source
form, then >
in your .vimrc prior to the :syntax on command. If you always use fixed
source form, then >
:let fortran_fixed_source=1
in your .vimrc prior to the :syntax on command.
@ -1840,8 +1840,8 @@ ends with -->) you can define >
JavaScript and Visual Basic embedded inside HTML documents are highlighted as
'Special' with statements, comments, strings and so on colored as in standard
programming languages. Note that only JavaScript and Visual Basic are currently
supported, no other scripting language has been added yet.
programming languages. Note that only JavaScript and Visual Basic are
currently supported, no other scripting language has been added yet.
Embedded and inlined cascading style sheets (CSS) are highlighted too.
@ -1945,8 +1945,8 @@ The java.vim syntax highlighting file offers several options:
In Java 1.0.2 it was never possible to have braces inside parens, so this was
flagged as an error. Since Java 1.1 this is possible (with anonymous
classes), and therefore is no longer marked as an error. If you prefer the old
way, put the following line into your vim startup file: >
classes), and therefore is no longer marked as an error. If you prefer the
old way, put the following line into your vim startup file: >
:let java_mark_braces_in_parens_as_errors=1
All identifiers in java.lang.* are always visible in all classes. To
@ -2064,10 +2064,10 @@ LISP *lisp.vim* *ft-lisp-syntax*
The lisp syntax highlighting provides two options: >
g:lisp_instring : if it exists, then "(...)" strings are highlighted
g:lisp_instring : If it exists, then "(...)" strings are highlighted
as if the contents of the string were lisp.
Useful for AutoLisp.
g:lisp_rainbow : if it exists and is nonzero, then differing levels
g:lisp_rainbow : If it exists and is nonzero, then differing levels
of parenthesization will receive different
highlighting.
<
@ -2197,6 +2197,15 @@ $VIMRUNTIME/syntax/syntax.vim).
mv_finance mv_logic mv_powseries
MARKDOWN *ft-markdown-syntax*
If you have long regions there might be wrong highlighting. At the cost of
slowing down displaying, you can have the engine look further back to sync on
the start of a region, for example 500 lines: >
:let g:markdown_minlines = 500
MATHEMATICA *mma.vim* *ft-mma-syntax* *ft-mathematica-syntax*
Empty *.m files will automatically be presumed to be Matlab files unless you
@ -2465,8 +2474,8 @@ If you do not want complex things like '@{${"foo"}}' to be parsed: >
(In Vim 6.x it was the other way around: "perl_extended_vars" enabled it.)
The coloring strings can be changed. By default strings and qq friends will be
highlighted like the first line. If you set the variable
The coloring strings can be changed. By default strings and qq friends will
be highlighted like the first line. If you set the variable
perl_string_as_statement, it will be highlighted as in the second line.
"hello world!"; qq|hello world|;
@ -2478,8 +2487,8 @@ perl_string_as_statement, it will be highlighted as in the second line.
The syncing has 3 options. The first two switch off some triggering of
synchronization and should only be needed in case it fails to work properly.
If while scrolling all of a sudden the whole screen changes color completely
then you should try and switch off one of those. Let me know if you can figure
out the line that causes the mistake.
then you should try and switch off one of those. Let me know if you can
figure out the line that causes the mistake.
One triggers on "^\s*sub\s*" and the other on "^[$@%]" more or less. >
@ -2516,7 +2525,7 @@ behavior, set 'perl_nofold_packages': >
PHP3 and PHP4 *php.vim* *php3.vim* *ft-php-syntax* *ft-php3-syntax*
[note: previously this was called "php3", but since it now also supports php4
[Note: Previously this was called "php3", but since it now also supports php4
it has been renamed to "php"]
There are the following options for the php syntax highlighting.
@ -2586,15 +2595,15 @@ PPWizard is a preprocessor for HTML and OS/2 INF files
This syntax file has the options:
- ppwiz_highlight_defs : determines highlighting mode for PPWizard's
- ppwiz_highlight_defs : Determines highlighting mode for PPWizard's
definitions. Possible values are
ppwiz_highlight_defs = 1 : PPWizard #define statements retain the
colors of their contents (e.g. PPWizard macros and variables)
colors of their contents (e.g. PPWizard macros and variables).
ppwiz_highlight_defs = 2 : preprocessor #define and #evaluate
ppwiz_highlight_defs = 2 : Preprocessor #define and #evaluate
statements are shown in a single color with the exception of line
continuation symbols
continuation symbols.
The default setting for ppwiz_highlight_defs is 1.
@ -2633,7 +2642,7 @@ highlighted by defining the postscr_level variable as follows: >
If this variable is not defined it defaults to 2 (level 2) since this is
the most prevalent version currently.
Note, not all PS interpreters will support all language features for a
Note: Not all PS interpreters will support all language features for a
particular language level. In particular the %!PS-Adobe-3.0 at the start of
PS files does NOT mean the PostScript present is level 3 PostScript!
@ -2735,7 +2744,7 @@ If you want all possible Python highlighting (the same as setting the
preceding last option and unsetting all other ones): >
:let python_highlight_all = 1
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.
QUAKE *quake.vim* *ft-quake-syntax*
@ -3175,16 +3184,16 @@ The Speedup syntax file has some options:
the DECLARE section; if you defined own types, you have to include
them in the syntax file.
- oneline_comments : this value ranges from 1 to 3 and determines the
- oneline_comments : This value ranges from 1 to 3 and determines the
highlighting of # style comments.
oneline_comments = 1 : allow normal Speedup code after an even
oneline_comments = 1 : Allow normal Speedup code after an even
number of #s.
oneline_comments = 2 : show code starting with the second # as
oneline_comments = 2 : Show code starting with the second # as
error. This is the default setting.
oneline_comments = 3 : show the whole line as error if it contains
oneline_comments = 3 : Show the whole line as error if it contains
more than one #.
Since especially OPERATION sections tend to become very large due to
@ -3223,8 +3232,8 @@ This covers the shell named "tcsh". It is a superset of csh. See |csh.vim|
for how the filetype is detected.
Tcsh does not allow \" in strings unless the "backslash_quote" shell variable
is set. If you want VIM to assume that no backslash quote constructs exist add
this line to your .vimrc: >
is set. If you want VIM to assume that no backslash quote constructs exist
add this line to your .vimrc: >
:let tcsh_backslash_quote = 0
@ -3590,7 +3599,7 @@ start and end tags. This can be turned on by >
:let g:xml_syntax_folding = 1
:set foldmethod=syntax
Note: syntax folding might slow down syntax highlighting significantly,
Note: Syntax folding might slow down syntax highlighting significantly,
especially for large files.
@ -3607,8 +3616,8 @@ Do you want to draw with the mouse? Try the following: >
:function! GetPixel()
: let c = getline(".")[col(".") - 1]
: echo c
: exe "noremap <LeftMouse> <LeftMouse>r".c
: exe "noremap <LeftDrag> <LeftMouse>r".c
: exe "noremap <LeftMouse> <LeftMouse>r" .. c
: exe "noremap <LeftDrag> <LeftMouse>r" .. c
:endfunction
:noremap <RightMouse> <LeftMouse>:call GetPixel()<CR>
:set guicursor=n:hor20 " to see the color beneath the cursor
@ -3713,12 +3722,13 @@ DEFINING CASE *:syn-case* *E390*
items until the next ":syntax case" command are affected.
:sy[ntax] case
Show either "syntax case match" or "syntax case ignore" (translated).
Show either "syntax case match" or "syntax case ignore".
DEFINING FOLDLEVEL *:syn-foldlevel*
:sy[ntax] foldlevel [start | minimum]
:sy[ntax] foldlevel start
:sy[ntax] foldlevel minimum
This defines how the foldlevel of a line is computed when using
foldmethod=syntax (see |fold-syntax| and |:syn-fold|):
@ -3731,13 +3741,16 @@ DEFINING FOLDLEVEL *:syn-foldlevel*
may close and open horizontally within a line.
:sy[ntax] foldlevel
Show either "syntax foldlevel start" or "syntax foldlevel minimum".
Show the current foldlevel method, either "syntax foldlevel start" or
"syntax foldlevel minimum".
{not meaningful when Vim was compiled without |+folding| feature}
SPELL CHECKING *:syn-spell*
:sy[ntax] spell [toplevel | notoplevel | default]
:sy[ntax] spell toplevel
:sy[ntax] spell notoplevel
:sy[ntax] spell default
This defines where spell checking is to be done for text that is not
in a syntax item:
@ -3752,8 +3765,8 @@ SPELL CHECKING *:syn-spell*
To activate spell checking the 'spell' option must be set.
:sy[ntax] spell
Show either "syntax spell toplevel", "syntax spell notoplevel" or
"syntax spell default" (translated).
Show the current syntax spell checking method, either "syntax spell
toplevel", "syntax spell notoplevel" or "syntax spell default".
SYNTAX ISKEYWORD SETTING *:syn-iskeyword*
@ -4352,7 +4365,7 @@ IMPLICIT CONCEAL *:syn-conceal-implicit*
given explicitly.
:sy[ntax] conceal
Show either "syntax conceal on" or "syntax conceal off" (translated).
Show either "syntax conceal on" or "syntax conceal off".
==============================================================================
8. Syntax patterns *:syn-pattern* *E401* *E402*
@ -4448,7 +4461,7 @@ Leading context *:syn-lc* *:syn-leading* *:syn-context*
Note: This is an obsolete feature, only included for backwards compatibility
with previous Vim versions. It's now recommended to use the |/\@<=| construct
in the pattern.
in the pattern. You can also often use |/\zs|.
The "lc" offset specifies leading context -- a part of the pattern that must
be present, but is not considered part of the match. An offset of "lc=n" will
@ -4894,7 +4907,7 @@ in their own color.
:hi[ghlight] {group-name}
List one highlight group.
*highlight-clear*
*highlight-clear* *:hi-clear*
:hi[ghlight] clear Reset all highlighting to the defaults. Removes all
highlighting for groups added by the user!
Uses the current value of 'background' to decide which
@ -4957,7 +4970,7 @@ the same syntax file on all terminals, and use the optimal highlighting.
*inverse* *italic* *standout*
*nocombine* *strikethrough*
term={attr-list} *attr-list* *highlight-term* *E418*
attr-list is a comma separated list (without spaces) of the
attr-list is a comma-separated list (without spaces) of the
following items (in any order):
bold
underline
@ -5085,8 +5098,8 @@ ctermul={color-nr} *highlight-ctermul*
The case of the color names is ignored.
Note that for 16 color ansi style terminals (including xterms), the
numbers in the NR-8 column is used. Here '*' means 'add 8' so that Blue
is 12, DarkGray is 8 etc.
numbers in the NR-8 column is used. Here '*' means 'add 8' so that
Blue is 12, DarkGray is 8 etc.
Note that for some color terminals these names may result in the wrong
colors!
@ -5141,7 +5154,7 @@ font={font-name} *highlight-font*
When setting the font for the "Normal" group, this becomes the default
font (until the 'guifont' option is changed; the last one set is
used).
The following only works with Motif and Athena, not with other GUIs:
The following only works with Motif, not with other GUIs:
When setting the font for the "Menu" group, the menus will be changed.
When setting the font for the "Tooltip" group, the tooltips will be
changed.
@ -5225,49 +5238,50 @@ These are the default highlighting groups. These groups are used by the
'highlight' option default. Note that the highlighting depends on the value
of 'background'. You can see the current settings with the ":highlight"
command.
When possible the name is highlighted in the used colors. If this makes it
unreadable use Visual selection.
*hl-ColorColumn*
ColorColumn used for the columns set with 'colorcolumn'
ColorColumn Used for the columns set with 'colorcolumn'.
*hl-Conceal*
Conceal placeholder characters substituted for concealed
text (see 'conceallevel')
Conceal Placeholder characters substituted for concealed
text (see 'conceallevel').
*hl-Cursor*
Cursor the character under the cursor
lCursor the character under the cursor when |language-mapping|
is used (see 'guicursor')
Cursor Character under the cursor.
lCursor Character under the cursor when |language-mapping|
is used (see 'guicursor').
*hl-CursorIM*
CursorIM like Cursor, but used when in IME mode |CursorIM|
CursorIM Like Cursor, but used when in IME mode. |CursorIM|
*hl-CursorColumn*
CursorColumn the screen column that the cursor is in when 'cursorcolumn' is
set
CursorColumn Screen column that the cursor is in when 'cursorcolumn' is set.
*hl-CursorLine*
CursorLine the screen line that the cursor is in when 'cursorline' is
set
CursorLine Screen line that the cursor is in when 'cursorline' is set.
*hl-Directory*
Directory directory names (and other special names in listings)
Directory Directory names (and other special names in listings).
*hl-DiffAdd*
DiffAdd diff mode: Added line |diff.txt|
DiffAdd Diff mode: Added line. |diff.txt|
*hl-DiffChange*
DiffChange diff mode: Changed line |diff.txt|
DiffChange Diff mode: Changed line. |diff.txt|
*hl-DiffDelete*
DiffDelete diff mode: Deleted line |diff.txt|
DiffDelete Diff mode: Deleted line. |diff.txt|
*hl-DiffText*
DiffText diff mode: Changed text within a changed line |diff.txt|
DiffText Diff mode: Changed text within a changed line. |diff.txt|
*hl-EndOfBuffer*
EndOfBuffer filler lines (~) after the last line in the buffer.
EndOfBuffer Filler lines (~) after the last line in the buffer.
By default, this is highlighted like |hl-NonText|.
*hl-ErrorMsg*
ErrorMsg error messages on the command line
ErrorMsg Error messages on the command line.
*hl-VertSplit*
VertSplit the column separating vertically split windows
VertSplit Column separating vertically split windows.
*hl-Folded*
Folded line used for closed folds
Folded Line used for closed folds.
*hl-FoldColumn*
FoldColumn 'foldcolumn'
*hl-SignColumn*
SignColumn column where |signs| are displayed
SignColumn Column where |signs| are displayed.
*hl-IncSearch*
IncSearch 'incsearch' highlighting; also used for the text replaced with
":s///c"
":s///c".
*hl-LineNr*
LineNr Line number for ":number" and ":#" commands, and when 'number'
or 'relativenumber' option is set.
@ -5285,11 +5299,11 @@ CursorLineSign Like SignColumn when 'cursorline' is set for the cursor line.
*hl-CursorLineFold*
CursorLineFold Like FoldColumn when 'cursorline' is set for the cursor line.
*hl-MatchParen*
MatchParen The character under the cursor or just before it, if it
MatchParen Character under the cursor or just before it, if it
is a paired bracket, and its match. |pi_paren.txt|
*hl-ModeMsg*
ModeMsg 'showmode' message (e.g., "-- INSERT --")
ModeMsg 'showmode' message (e.g., "-- INSERT --").
*hl-MoreMsg*
MoreMsg |more-prompt|
*hl-NonText*
@ -5298,26 +5312,30 @@ NonText '@' at the end of the window, characters from 'showbreak'
(e.g., ">" displayed when a double-wide character doesn't
fit at the end of the line).
*hl-Normal*
Normal normal text
Normal Normal text.
*hl-Pmenu*
Pmenu Popup menu: normal item.
Pmenu Popup menu: Normal item.
*hl-PmenuSel*
PmenuSel Popup menu: selected item.
PmenuSel Popup menu: Selected item.
*hl-PmenuSbar*
PmenuSbar Popup menu: scrollbar.
PmenuSbar Popup menu: Scrollbar.
*hl-PmenuThumb*
PmenuThumb Popup menu: Thumb of the scrollbar.
*hl-Question*
Question |hit-enter| prompt and yes/no questions
Question |hit-enter| prompt and yes/no questions.
*hl-QuickFixLine*
QuickFixLine Current |quickfix| item in the quickfix window.
*hl-Search*
Search Last search pattern highlighting (see 'hlsearch').
Also used for similar items that need to stand out.
*hl-CurSearch*
CurSearch Current match for the last search pattern (see 'hlsearch').
Note: This is correct after a search, but may get outdated if
changes are made or the screen is redrawn.
*hl-SpecialKey*
SpecialKey Meta and special keys listed with ":map", also for text used
to show unprintable characters in the text, 'listchars'.
Generally: text that is displayed differently from what it
Generally: Text that is displayed differently from what it
really is.
*hl-SpellBad*
SpellBad Word that is not recognized by the spellchecker. |spell|
@ -5334,35 +5352,35 @@ SpellRare Word that is recognized by the spellchecker as one that is
hardly ever used. |spell|
This will be combined with the highlighting used otherwise.
*hl-StatusLine*
StatusLine status line of current window
StatusLine Status line of current window.
*hl-StatusLineNC*
StatusLineNC status lines of not-current windows
Note: if this is equal to "StatusLine" Vim will use "^^^" in
Note: If this is equal to "StatusLine", Vim will use "^^^" in
the status line of the current window.
*hl-StatusLineTerm*
StatusLineTerm status line of current window, if it is a |terminal| window.
StatusLineTerm Status line of current window, if it is a |terminal| window.
*hl-StatusLineTermNC*
StatusLineTermNC status lines of not-current windows that is a |terminal|
StatusLineTermNC Status lines of not-current windows that is a |terminal|
window.
*hl-TabLine*
TabLine tab pages line, not active tab page label
TabLine Tab pages line, not active tab page label.
*hl-TabLineFill*
TabLineFill tab pages line, where there are no labels
TabLineFill Tab pages line, where there are no labels.
*hl-TabLineSel*
TabLineSel tab pages line, active tab page label
TabLineSel Tab pages line, active tab page label.
*hl-Terminal*
Terminal |terminal| window (see |terminal-size-color|)
Terminal |terminal| window (see |terminal-size-color|).
*hl-Title*
Title titles for output from ":set all", ":autocmd" etc.
Title Titles for output from ":set all", ":autocmd" etc.
*hl-Visual*
Visual Visual mode selection
Visual Visual mode selection.
*hl-VisualNOS*
VisualNOS Visual mode selection when vim is "Not Owning the Selection".
Only X11 Gui's |gui-x11| and |xterm-clipboard| supports this.
*hl-WarningMsg*
WarningMsg warning messages
WarningMsg Warning messages.
*hl-WildMenu*
WildMenu current match in 'wildmenu' completion
WildMenu Current match in 'wildmenu' completion.
*hl-User1* *hl-User1..9* *hl-User9*
The 'statusline' syntax allows the use of 9 different highlights in the
@ -5378,7 +5396,7 @@ Menu Current font, background and foreground colors of the menus.
Also used for the toolbar.
Applicable highlight arguments: font, guibg, guifg.
NOTE: For Motif and Athena the font argument actually
NOTE: For Motif the font argument actually
specifies a fontset at all times, no matter if 'guifontset' is
empty, and as such it is tied to the current |:language| when
set.
@ -5392,7 +5410,7 @@ Scrollbar Current background and foreground of the main window's
Tooltip Current font, background and foreground of the tooltips.
Applicable highlight arguments: font, guibg, guifg.
NOTE: For Motif and Athena the font argument actually
NOTE: For Motif the font argument actually
specifies a fontset at all times, no matter if 'guifontset' is
empty, and as such it is tied to the current |:language| when
set.
@ -5549,11 +5567,12 @@ WARNING: The longer the tags file, the slower this will be, and the more
memory Vim will consume.
Only highlighting typedefs, unions and structs can be done too. For this you
must use Exuberant ctags (found at http://ctags.sf.net).
must use Universal Ctags (found at https://ctags.io) or Exuberant ctags (found
at http://ctags.sf.net).
Put these lines in your Makefile:
# Make a highlight file for types. Requires Exuberant ctags and awk
# Make a highlight file for types. Requires Universal/Exuberant ctags and awk
types: types.vim
types.vim: *.[ch]
ctags --c-kinds=gstu -o- *.[ch] |\
@ -5563,9 +5582,9 @@ types.vim: *.[ch]
And put these lines in your .vimrc: >
" load the types.vim highlighting file, if it exists
autocmd BufRead,BufNewFile *.[ch] let fname = expand('<afile>:p:h') . '/types.vim'
autocmd BufRead,BufNewFile *.[ch] let fname = expand('<afile>:p:h') .. '/types.vim'
autocmd BufRead,BufNewFile *.[ch] if filereadable(fname)
autocmd BufRead,BufNewFile *.[ch] exe 'so ' . fname
autocmd BufRead,BufNewFile *.[ch] exe 'so ' .. fname
autocmd BufRead,BufNewFile *.[ch] endif
==============================================================================
@ -5751,7 +5770,7 @@ If your syntax causes redrawing to be slow, here are a few hints on making it
faster. To see slowness switch on some features that usually interfere, such
as 'relativenumber' and |folding|.
Note: this is only available when compiled with the |+profile| feature.
Note: This is only available when compiled with the |+profile| feature.
You many need to build Vim with "huge" features.
To find out what patterns are consuming most time, get an overview with this

View File

@ -381,24 +381,24 @@ pages and define labels for them. Then get the label for each tab page. >
for i in range(tabpagenr('$'))
" select the highlighting
if i + 1 == tabpagenr()
let s .= '%#TabLineSel#'
let s ..= '%#TabLineSel#'
else
let s .= '%#TabLine#'
let s ..= '%#TabLine#'
endif
" set the tab page number (for mouse clicks)
let s .= '%' . (i + 1) . 'T'
let s ..= '%' .. (i + 1) .. 'T'
" the label is made by MyTabLabel()
let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
let s ..= ' %{MyTabLabel(' .. (i + 1) .. ')} '
endfor
" after the last tab fill with TabLineFill and reset tab page nr
let s .= '%#TabLineFill#%T'
let s ..= '%#TabLineFill#%T'
" right-align the label to close the current tab page
if tabpagenr('$') > 1
let s .= '%=%#TabLine#%999Xclose'
let s ..= '%=%#TabLine#%999Xclose'
endif
return s
@ -461,14 +461,14 @@ windows in the tab page and a '+' if there is a modified buffer: >
" Append the number of windows in the tab page if more than one
let wincount = tabpagewinnr(v:lnum, '$')
if wincount > 1
let label .= wincount
let label ..= wincount
endif
if label != ''
let label .= ' '
let label ..= ' '
endif
" Append the buffer name
return label . bufname(bufnrlist[tabpagewinnr(v:lnum) - 1])
return label .. bufname(bufnrlist[tabpagewinnr(v:lnum) - 1])
endfunction
set guitablabel=%{GuiTabLabel()}

View File

@ -134,6 +134,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'cinkeys' options.txt /*'cinkeys'*
'cino' options.txt /*'cino'*
'cinoptions' options.txt /*'cinoptions'*
'cinscopedecls' options.txt /*'cinscopedecls'*
'cinsd' options.txt /*'cinsd'*
'cinw' options.txt /*'cinw'*
'cinwords' options.txt /*'cinwords'*
'clipboard' options.txt /*'clipboard'*
@ -487,7 +489,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'mousefocus' options.txt /*'mousefocus'*
'mousehide' options.txt /*'mousehide'*
'mousem' options.txt /*'mousem'*
'mousemev' options.txt /*'mousemev'*
'mousemodel' options.txt /*'mousemodel'*
'mousemoveevent' options.txt /*'mousemoveevent'*
'mouses' options.txt /*'mouses'*
'mouseshape' options.txt /*'mouseshape'*
'mouset' options.txt /*'mouset'*
@ -1355,6 +1359,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+mouse various.txt /*+mouse*
+mouse_dec various.txt /*+mouse_dec*
+mouse_gpm various.txt /*+mouse_gpm*
+mouse_gpm/dyn various.txt /*+mouse_gpm\/dyn*
+mouse_jsbterm various.txt /*+mouse_jsbterm*
+mouse_netterm various.txt /*+mouse_netterm*
+mouse_pterm various.txt /*+mouse_pterm*
@ -1452,6 +1457,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
--echo-wid starting.txt /*--echo-wid*
--help starting.txt /*--help*
--literal starting.txt /*--literal*
--log starting.txt /*--log*
--nofork starting.txt /*--nofork*
--noplugin starting.txt /*--noplugin*
--not-a-term starting.txt /*--not-a-term*
@ -1909,12 +1915,6 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
40.3 usr_40.txt /*40.3*
41.1 usr_41.txt /*41.1*
41.10 usr_41.txt /*41.10*
41.11 usr_41.txt /*41.11*
41.12 usr_41.txt /*41.12*
41.13 usr_41.txt /*41.13*
41.14 usr_41.txt /*41.14*
41.15 usr_41.txt /*41.15*
41.16 usr_41.txt /*41.16*
41.2 usr_41.txt /*41.2*
41.3 usr_41.txt /*41.3*
41.4 usr_41.txt /*41.4*
@ -1947,10 +1947,17 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
45.3 usr_45.txt /*45.3*
45.4 usr_45.txt /*45.4*
45.5 usr_45.txt /*45.5*
46.1 usr_46.txt /*46.1*
46.2 usr_46.txt /*46.2*
46.3 usr_46.txt /*46.3*
46.? usr_46.txt /*46.?*
50.1 usr_50.txt /*50.1*
51.1 usr_51.txt /*51.1*
51.2 usr_51.txt /*51.2*
51.3 usr_51.txt /*51.3*
51.4 usr_51.txt /*51.4*
51.5 usr_51.txt /*51.5*
51.6 usr_51.txt /*51.6*
52.1 usr_52.txt /*52.1*
52.2 usr_52.txt /*52.2*
52.3 usr_52.txt /*52.3*
52.4 usr_52.txt /*52.4*
8g8 various.txt /*8g8*
90.1 usr_90.txt /*90.1*
90.2 usr_90.txt /*90.2*
@ -1998,6 +2005,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:<cfile> cmdline.txt /*:<cfile>*
:<client> cmdline.txt /*:<client>*
:<cword> cmdline.txt /*:<cword>*
:<script> cmdline.txt /*:<script>*
:<sfile> cmdline.txt /*:<sfile>*
:<sflnum> cmdline.txt /*:<sflnum>*
:<slnum> cmdline.txt /*:<slnum>*
@ -2019,7 +2027,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:Break terminal.txt /*:Break*
:Cfilter quickfix.txt /*:Cfilter*
:Clear terminal.txt /*:Clear*
:CompilerSet usr_41.txt /*:CompilerSet*
:CompilerSet usr_51.txt /*:CompilerSet*
:Continue terminal.txt /*:Continue*
:DiffOrig diff.txt /*:DiffOrig*
:DoMatchParen pi_paren.txt /*:DoMatchParen*
@ -2077,6 +2085,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:Termdebug terminal.txt /*:Termdebug*
:TermdebugCommand terminal.txt /*:TermdebugCommand*
:Texplore pi_netrw.txt /*:Texplore*
:Until terminal.txt /*:Until*
:UseVimball pi_vimball.txt /*:UseVimball*
:Vexplore pi_netrw.txt /*:Vexplore*
:VimballList pi_vimball.txt /*:VimballList*
@ -2112,6 +2121,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:abclear map.txt /*:abclear*
:abo windows.txt /*:abo*
:aboveleft windows.txt /*:aboveleft*
:abstract vim9.txt /*:abstract*
:addd quickfix.txt /*:addd*
:al windows.txt /*:al*
:all windows.txt /*:all*
@ -2271,6 +2281,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:chistory quickfix.txt /*:chistory*
:cl quickfix.txt /*:cl*
:cla quickfix.txt /*:cla*
:class vim9.txt /*:class*
:clast quickfix.txt /*:clast*
:cle motion.txt /*:cle*
:clearjumps motion.txt /*:clearjumps*
@ -2415,6 +2426,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:dsp tagsrch.txt /*:dsp*
:dsplit tagsrch.txt /*:dsplit*
:e editing.txt /*:e*
:e# editing.txt /*:e#*
:ea undo.txt /*:ea*
:earlier undo.txt /*:earlier*
:ec eval.txt /*:ec*
@ -2432,6 +2444,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:edit editing.txt /*:edit*
:edit! editing.txt /*:edit!*
:edit!_f editing.txt /*:edit!_f*
:edit_# editing.txt /*:edit_#*
:edit_f editing.txt /*:edit_f*
:el eval.txt /*:el*
:else eval.txt /*:else*
@ -2441,12 +2454,15 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:emenu gui.txt /*:emenu*
:en eval.txt /*:en*
:end eval.txt /*:end*
:endclass vim9.txt /*:endclass*
:enddef vim9.txt /*:enddef*
:endenum vim9.txt /*:endenum*
:endf eval.txt /*:endf*
:endfo eval.txt /*:endfo*
:endfor eval.txt /*:endfor*
:endfunction eval.txt /*:endfunction*
:endif eval.txt /*:endif*
:endinterface vim9.txt /*:endinterface*
:endt eval.txt /*:endt*
:endtry eval.txt /*:endtry*
:endw eval.txt /*:endw*
@ -2455,6 +2471,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:ene! editing.txt /*:ene!*
:enew editing.txt /*:enew*
:enew! editing.txt /*:enew!*
:enum vim9.txt /*:enum*
:eval eval.txt /*:eval*
:ex editing.txt /*:ex*
:exe eval.txt /*:exe*
@ -2537,6 +2554,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:helpt helphelp.txt /*:helpt*
:helptags helphelp.txt /*:helptags*
:hi syntax.txt /*:hi*
:hi-clear syntax.txt /*:hi-clear*
:hi-default syntax.txt /*:hi-default*
:hi-link syntax.txt /*:hi-link*
:hi-normal syntax.txt /*:hi-normal*
@ -2581,6 +2599,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:inoreme gui.txt /*:inoreme*
:inoremenu gui.txt /*:inoremenu*
:insert insert.txt /*:insert*
:interface vim9.txt /*:interface*
:intro starting.txt /*:intro*
:is tagsrch.txt /*:is*
:isearch tagsrch.txt /*:isearch*
@ -3213,6 +3232,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:startgreplace insert.txt /*:startgreplace*
:startinsert insert.txt /*:startinsert*
:startreplace insert.txt /*:startreplace*
:static vim9.txt /*:static*
:stj tagsrch.txt /*:stj*
:stjump tagsrch.txt /*:stjump*
:stop starting.txt /*:stop*
@ -3390,6 +3410,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:tunma map.txt /*:tunma*
:tunmap map.txt /*:tunmap*
:tunmenu gui.txt /*:tunmenu*
:type vim9.txt /*:type*
:u undo.txt /*:u*
:un undo.txt /*:un*
:una map.txt /*:una*
@ -3604,6 +3625,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
<MiddleRelease> term.txt /*<MiddleRelease>*
<Mouse> term.txt /*<Mouse>*
<MouseDown> scroll.txt /*<MouseDown>*
<MouseMove> map.txt /*<MouseMove>*
<MouseUp> scroll.txt /*<MouseUp>*
<NL> motion.txt /*<NL>*
<Nop> map.txt /*<Nop>*
@ -3704,6 +3726,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
<range> map.txt /*<range>*
<reg> map.txt /*<reg>*
<register> map.txt /*<register>*
<script> cmdline.txt /*<script>*
<sfile> cmdline.txt /*<sfile>*
<sflnum> cmdline.txt /*<sflnum>*
<slnum> cmdline.txt /*<slnum>*
@ -3759,7 +3782,6 @@ Aleph options.txt /*Aleph*
Amiga os_amiga.txt /*Amiga*
Arabic arabic.txt /*Arabic*
Atari os_mint.txt /*Atari*
Athena gui_x11.txt /*Athena*
B motion.txt /*B*
BeBox os_beos.txt /*BeBox*
BeOS os_beos.txt /*BeOS*
@ -3948,6 +3970,7 @@ Dictionary-function eval.txt /*Dictionary-function*
DiffUpdated autocmd.txt /*DiffUpdated*
Digraphs digraph.txt /*Digraphs*
DirChanged autocmd.txt /*DirChanged*
DirChangedPre autocmd.txt /*DirChangedPre*
E motion.txt /*E*
E10 message.txt /*E10*
E100 diff.txt /*E100*
@ -4018,6 +4041,7 @@ E1061 vim9.txt /*E1061*
E1062 eval.txt /*E1062*
E1063 eval.txt /*E1063*
E1064 autocmd.txt /*E1064*
E1065 vim9.txt /*E1065*
E1066 vim9.txt /*E1066*
E1067 eval.txt /*E1067*
E1068 vim9.txt /*E1068*
@ -4030,12 +4054,14 @@ E1074 vim9.txt /*E1074*
E1075 vim9.txt /*E1075*
E1076 eval.txt /*E1076*
E1077 vim9.txt /*E1077*
E1078 autocmd.txt /*E1078*
E1079 vim9.txt /*E1079*
E108 eval.txt /*E108*
E1080 vim9.txt /*E1080*
E1081 eval.txt /*E1081*
E1083 editing.txt /*E1083*
E1084 eval.txt /*E1084*
E1085 eval.txt /*E1085*
E1086 eval.txt /*E1086*
E1087 vim9.txt /*E1087*
E1089 eval.txt /*E1089*
E109 eval.txt /*E109*
@ -4200,7 +4226,6 @@ E1231 map.txt /*E1231*
E1232 builtin.txt /*E1232*
E1233 builtin.txt /*E1233*
E1234 vim9.txt /*E1234*
E1235 vim9.txt /*E1235*
E1236 vim9.txt /*E1236*
E1237 map.txt /*E1237*
E1238 vim9.txt /*E1238*
@ -4234,7 +4259,13 @@ E1262 vim9.txt /*E1262*
E1263 eval.txt /*E1263*
E1264 vim9.txt /*E1264*
E1265 eval.txt /*E1265*
E1266 if_pyth.txt /*E1266*
E127 eval.txt /*E127*
E1270 change.txt /*E1270*
E1271 vim9.txt /*E1271*
E1274 cmdline.txt /*E1274*
E1276 builtin.txt /*E1276*
E1278 eval.txt /*E1278*
E128 eval.txt /*E128*
E129 eval.txt /*E129*
E13 message.txt /*E13*
@ -4373,6 +4404,7 @@ E252 options.txt /*E252*
E253 mbyte.txt /*E253*
E254 message.txt /*E254*
E255 sign.txt /*E255*
E256 eval.txt /*E256*
E257 if_cscop.txt /*E257*
E258 remote.txt /*E258*
E259 if_cscop.txt /*E259*
@ -4676,7 +4708,7 @@ E534 options.txt /*E534*
E535 options.txt /*E535*
E536 options.txt /*E536*
E537 options.txt /*E537*
E538 builtin.txt /*E538*
E538 pattern.txt /*E538*
E539 options.txt /*E539*
E54 pattern.txt /*E54*
E540 options.txt /*E540*
@ -4755,9 +4787,6 @@ E610 editing.txt /*E610*
E611 eval.txt /*E611*
E612 sign.txt /*E612*
E613 print.txt /*E613*
E614 editing.txt /*E614*
E615 editing.txt /*E615*
E616 editing.txt /*E616*
E617 options.txt /*E617*
E618 print.txt /*E618*
E619 print.txt /*E619*
@ -4999,6 +5028,7 @@ E835 options.txt /*E835*
E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837*
E838 netbeans.txt /*E838*
E839 vim9.txt /*E839*
E84 windows.txt /*E84*
E840 insert.txt /*E840*
E841 map.txt /*E841*
@ -5286,6 +5316,7 @@ Neovim intro.txt /*Neovim*
NetBSD-backspace options.txt /*NetBSD-backspace*
NetBeans netbeans.txt /*NetBeans*
NetUserPass() pi_netrw.txt /*NetUserPass()*
NoDefaultCurrentDirectoryInExePath builtin.txt /*NoDefaultCurrentDirectoryInExePath*
None eval.txt /*None*
Normal intro.txt /*Normal*
Normal-mode intro.txt /*Normal-mode*
@ -5492,6 +5523,7 @@ WinClosed autocmd.txt /*WinClosed*
WinEnter autocmd.txt /*WinEnter*
WinLeave autocmd.txt /*WinLeave*
WinNew autocmd.txt /*WinNew*
WinScrolled autocmd.txt /*WinScrolled*
X change.txt /*X*
X11 options.txt /*X11*
X11-icon gui_x11.txt /*X11-icon*
@ -5731,7 +5763,6 @@ assert_true() testing.txt /*assert_true()*
at motion.txt /*at*
atan() builtin.txt /*atan()*
atan2() builtin.txt /*atan2()*
athena-intellimouse gui.txt /*athena-intellimouse*
attr-list syntax.txt /*attr-list*
author intro.txt /*author*
auto-format change.txt /*auto-format*
@ -5746,6 +5777,7 @@ autocmd-disable autocmd.txt /*autocmd-disable*
autocmd-events autocmd.txt /*autocmd-events*
autocmd-events-abc autocmd.txt /*autocmd-events-abc*
autocmd-execute autocmd.txt /*autocmd-execute*
autocmd-expand autocmd.txt /*autocmd-expand*
autocmd-groups autocmd.txt /*autocmd-groups*
autocmd-intro autocmd.txt /*autocmd-intro*
autocmd-list autocmd.txt /*autocmd-list*
@ -5856,6 +5888,7 @@ bug-fixes-5 version5.txt /*bug-fixes-5*
bug-fixes-6 version6.txt /*bug-fixes-6*
bug-fixes-7 version7.txt /*bug-fixes-7*
bug-fixes-8 version8.txt /*bug-fixes-8*
bug-fixes-9 version9.txt /*bug-fixes-9*
bug-reports intro.txt /*bug-reports*
bugreport.vim intro.txt /*bugreport.vim*
bugs intro.txt /*bugs*
@ -6043,6 +6076,7 @@ changenr() builtin.txt /*changenr()*
changetick eval.txt /*changetick*
changing change.txt /*changing*
channel channel.txt /*channel*
channel-address channel.txt /*channel-address*
channel-callback channel.txt /*channel-callback*
channel-close channel.txt /*channel-close*
channel-close-in channel.txt /*channel-close-in*
@ -6054,6 +6088,7 @@ channel-functions-details channel.txt /*channel-functions-details*
channel-mode channel.txt /*channel-mode*
channel-more channel.txt /*channel-more*
channel-noblock channel.txt /*channel-noblock*
channel-onetime-callback channel.txt /*channel-onetime-callback*
channel-open channel.txt /*channel-open*
channel-open-options channel.txt /*channel-open-options*
channel-raw channel.txt /*channel-raw*
@ -6157,6 +6192,7 @@ collate-variable eval.txt /*collate-variable*
color-xterm syntax.txt /*color-xterm*
coloring syntax.txt /*coloring*
colortest.vim syntax.txt /*colortest.vim*
command-attributes map.txt /*command-attributes*
command-block vim9.txt /*command-block*
command-line-functions usr_41.txt /*command-line-functions*
command-line-window cmdline.txt /*command-line-window*
@ -6166,6 +6202,7 @@ compile-changes-5 version5.txt /*compile-changes-5*
compile-changes-6 version6.txt /*compile-changes-6*
compile-changes-7 version7.txt /*compile-changes-7*
compile-changes-8 version8.txt /*compile-changes-8*
compile-changes-9 version9.txt /*compile-changes-9*
compiler-compaqada ft_ada.txt /*compiler-compaqada*
compiler-decada ft_ada.txt /*compiler-decada*
compiler-gcc quickfix.txt /*compiler-gcc*
@ -6457,7 +6494,7 @@ dircolors.vim syntax.txt /*dircolors.vim*
dis motion.txt /*dis*
disable-menus gui.txt /*disable-menus*
discard editing.txt /*discard*
distribute-script usr_41.txt /*distribute-script*
distribute-script usr_51.txt /*distribute-script*
distribution intro.txt /*distribution*
diw motion.txt /*diw*
dl change.txt /*dl*
@ -6608,6 +6645,8 @@ expr-!=? eval.txt /*expr-!=?*
expr-!~ eval.txt /*expr-!~*
expr-!~# eval.txt /*expr-!~#*
expr-!~? eval.txt /*expr-!~?*
expr-$' eval.txt /*expr-$'*
expr-$quote eval.txt /*expr-$quote*
expr-% eval.txt /*expr-%*
expr-&& eval.txt /*expr-&&*
expr-' eval.txt /*expr-'*
@ -6755,6 +6794,7 @@ fname_new-variable eval.txt /*fname_new-variable*
fname_out-variable eval.txt /*fname_out-variable*
fnameescape() builtin.txt /*fnameescape()*
fnamemodify() builtin.txt /*fnamemodify()*
fo-/ change.txt /*fo-\/*
fo-1 change.txt /*fo-1*
fo-2 change.txt /*fo-2*
fo-B change.txt /*fo-B*
@ -6901,6 +6941,7 @@ ft-make-syntax syntax.txt /*ft-make-syntax*
ft-man-plugin filetype.txt /*ft-man-plugin*
ft-maple-syntax syntax.txt /*ft-maple-syntax*
ft-markdown-plugin filetype.txt /*ft-markdown-plugin*
ft-markdown-syntax syntax.txt /*ft-markdown-syntax*
ft-masm-syntax syntax.txt /*ft-masm-syntax*
ft-mathematica-syntax syntax.txt /*ft-mathematica-syntax*
ft-matlab-indent indent.txt /*ft-matlab-indent*
@ -6988,11 +7029,11 @@ ft_rust.txt ft_rust.txt /*ft_rust.txt*
ft_sql.txt ft_sql.txt /*ft_sql.txt*
ftdetect filetype.txt /*ftdetect*
ftp pi_netrw.txt /*ftp*
ftplugin usr_41.txt /*ftplugin*
ftplugin usr_51.txt /*ftplugin*
ftplugin-docs filetype.txt /*ftplugin-docs*
ftplugin-name usr_05.txt /*ftplugin-name*
ftplugin-overrule filetype.txt /*ftplugin-overrule*
ftplugin-special usr_41.txt /*ftplugin-special*
ftplugin-special usr_51.txt /*ftplugin-special*
ftplugins usr_05.txt /*ftplugins*
fullcommand() builtin.txt /*fullcommand()*
funcref() builtin.txt /*funcref()*
@ -7004,7 +7045,7 @@ function-range-example eval.txt /*function-range-example*
function-search-undo eval.txt /*function-search-undo*
function_key intro.txt /*function_key*
functions eval.txt /*functions*
fuzzy-match pattern.txt /*fuzzy-match*
fuzzy-matching pattern.txt /*fuzzy-matching*
fvwm.vim syntax.txt /*fvwm.vim*
fvwm2rc syntax.txt /*fvwm2rc*
fvwmrc syntax.txt /*fvwmrc*
@ -7318,8 +7359,10 @@ getcharmod() builtin.txt /*getcharmod()*
getcharpos() builtin.txt /*getcharpos()*
getcharsearch() builtin.txt /*getcharsearch()*
getcharstr() builtin.txt /*getcharstr()*
getcmdcompltype() builtin.txt /*getcmdcompltype()*
getcmdline() builtin.txt /*getcmdline()*
getcmdpos() builtin.txt /*getcmdpos()*
getcmdscreenpos() builtin.txt /*getcmdscreenpos()*
getcmdtype() builtin.txt /*getcmdtype()*
getcmdwintype() builtin.txt /*getcmdwintype()*
getcompletion() builtin.txt /*getcompletion()*
@ -7577,6 +7620,7 @@ hitest.vim syntax.txt /*hitest.vim*
hjkl usr_02.txt /*hjkl*
hl-ColorColumn syntax.txt /*hl-ColorColumn*
hl-Conceal syntax.txt /*hl-Conceal*
hl-CurSearch syntax.txt /*hl-CurSearch*
hl-Cursor syntax.txt /*hl-Cursor*
hl-CursorColumn syntax.txt /*hl-CursorColumn*
hl-CursorIM syntax.txt /*hl-CursorIM*
@ -7815,6 +7859,7 @@ improvements-5 version5.txt /*improvements-5*
improvements-6 version6.txt /*improvements-6*
improvements-7 version7.txt /*improvements-7*
improvements-8 version8.txt /*improvements-8*
improvements-9 version9.txt /*improvements-9*
in_bot channel.txt /*in_bot*
in_buf channel.txt /*in_buf*
in_io-buffer channel.txt /*in_io-buffer*
@ -7830,6 +7875,7 @@ incompatible-5 version5.txt /*incompatible-5*
incompatible-6 version6.txt /*incompatible-6*
incompatible-7 version7.txt /*incompatible-7*
incompatible-8 version8.txt /*incompatible-8*
incompatible-9 version9.txt /*incompatible-9*
indent() builtin.txt /*indent()*
indent-expression indent.txt /*indent-expression*
indent.txt indent.txt /*indent.txt*
@ -7876,6 +7922,7 @@ interfaces-5.2 version5.txt /*interfaces-5.2*
internal-variables eval.txt /*internal-variables*
internal-wordlist spell.txt /*internal-wordlist*
internet intro.txt /*internet*
interp-string eval.txt /*interp-string*
interrupt() builtin.txt /*interrupt()*
intro intro.txt /*intro*
intro.txt intro.txt /*intro.txt*
@ -7884,6 +7931,7 @@ invert() builtin.txt /*invert()*
ip motion.txt /*ip*
iquote motion.txt /*iquote*
is motion.txt /*is*
isabsolutepath() builtin.txt /*isabsolutepath()*
isdirectory() builtin.txt /*isdirectory()*
isinf() builtin.txt /*isinf()*
islocked() builtin.txt /*islocked()*
@ -7974,6 +8022,7 @@ lace.vim syntax.txt /*lace.vim*
lambda eval.txt /*lambda*
lang-variable eval.txt /*lang-variable*
language-mapping map.txt /*language-mapping*
language-server-protocol channel.txt /*language-server-protocol*
last-pattern pattern.txt /*last-pattern*
last-position-jump usr_05.txt /*last-position-jump*
last_buffer_nr() builtin.txt /*last_buffer_nr()*
@ -8137,6 +8186,7 @@ maparg() builtin.txt /*maparg()*
mapcheck() builtin.txt /*mapcheck()*
maple.vim syntax.txt /*maple.vim*
mapleader map.txt /*mapleader*
maplist() builtin.txt /*maplist()*
maplocalleader map.txt /*maplocalleader*
mapmode-c map.txt /*mapmode-c*
mapmode-i map.txt /*mapmode-i*
@ -8151,6 +8201,7 @@ mapmode-v map.txt /*mapmode-v*
mapmode-x map.txt /*mapmode-x*
mapnew() builtin.txt /*mapnew()*
mapping map.txt /*mapping*
mapping-dict builtin.txt /*mapping-dict*
mapping-functions usr_41.txt /*mapping-functions*
mapset() builtin.txt /*mapset()*
mark motion.txt /*mark*
@ -8230,6 +8281,7 @@ moo.vim syntax.txt /*moo.vim*
more-compatible version5.txt /*more-compatible*
more-prompt message.txt /*more-prompt*
more-variables eval.txt /*more-variables*
motif-intellimouse gui.txt /*motif-intellimouse*
motion-count-multiplied motion.txt /*motion-count-multiplied*
motion.txt motion.txt /*motion.txt*
mouse-mode-table term.txt /*mouse-mode-table*
@ -8538,6 +8590,7 @@ new-5 version5.txt /*new-5*
new-6 version6.txt /*new-6*
new-7 version7.txt /*new-7*
new-8 version8.txt /*new-8*
new-9 version9.txt /*new-9*
new-GTK-GUI version5.txt /*new-GTK-GUI*
new-MzScheme version7.txt /*new-MzScheme*
new-Select-mode version5.txt /*new-Select-mode*
@ -8571,6 +8624,7 @@ new-indent-flex version6.txt /*new-indent-flex*
new-items-6 version6.txt /*new-items-6*
new-items-7 version7.txt /*new-items-7*
new-items-8 version8.txt /*new-items-8*
new-items-9 version9.txt /*new-items-9*
new-line-continuation version5.txt /*new-line-continuation*
new-location-list version7.txt /*new-location-list*
new-lua version7.txt /*new-lua*
@ -8620,6 +8674,7 @@ new-utf-8 version6.txt /*new-utf-8*
new-vertsplit version6.txt /*new-vertsplit*
new-vim-script version7.txt /*new-vim-script*
new-vim-script-8 version8.txt /*new-vim-script-8*
new-vim-script-9 version9.txt /*new-vim-script-9*
new-vim-server version6.txt /*new-vim-server*
new-vimgrep version7.txt /*new-vimgrep*
new-vimscript-8.2 version8.txt /*new-vimscript-8.2*
@ -8738,7 +8793,8 @@ pascal.vim syntax.txt /*pascal.vim*
patches-8 version8.txt /*patches-8*
patches-8.1 version8.txt /*patches-8.1*
patches-8.2 version8.txt /*patches-8.2*
patches-after-8.2 version8.txt /*patches-after-8.2*
patches-9 version9.txt /*patches-9*
patches-after-8.2 version9.txt /*patches-after-8.2*
pathshorten() builtin.txt /*pathshorten()*
pattern pattern.txt /*pattern*
pattern-atoms pattern.txt /*pattern-atoms*
@ -8805,8 +8861,8 @@ plaintex.vim syntax.txt /*plaintex.vim*
plsql ft_sql.txt /*plsql*
plugin usr_05.txt /*plugin*
plugin-details filetype.txt /*plugin-details*
plugin-filetype usr_41.txt /*plugin-filetype*
plugin-special usr_41.txt /*plugin-special*
plugin-filetype usr_51.txt /*plugin-filetype*
plugin-special usr_51.txt /*plugin-special*
plugin_name.txt helphelp.txt /*plugin_name.txt*
pmbcs-option print.txt /*pmbcs-option*
pmbfn-option print.txt /*pmbfn-option*
@ -9354,7 +9410,7 @@ sound_playevent() builtin.txt /*sound_playevent()*
sound_playfile() builtin.txt /*sound_playfile()*
sound_stop() builtin.txt /*sound_stop()*
soundfold() builtin.txt /*soundfold()*
source-vim9-script usr_46.txt /*source-vim9-script*
source-vim9-script usr_52.txt /*source-vim9-script*
space intro.txt /*space*
spec-customizing pi_spec.txt /*spec-customizing*
spec-how-to-use-it pi_spec.txt /*spec-how-to-use-it*
@ -10006,6 +10062,7 @@ terminal.txt terminal.txt /*terminal.txt*
terminalprops() builtin.txt /*terminalprops()*
terminfo term.txt /*terminfo*
termresponse-variable eval.txt /*termresponse-variable*
ternary eval.txt /*ternary*
test-functions usr_41.txt /*test-functions*
test-functions-details testing.txt /*test-functions-details*
test_alloc_fail() testing.txt /*test_alloc_fail()*
@ -10097,7 +10154,6 @@ tooltips gui.txt /*tooltips*
toupper() builtin.txt /*toupper()*
tr() builtin.txt /*tr()*
trim() builtin.txt /*trim()*
trinary eval.txt /*trinary*
trojan-horse starting.txt /*trojan-horse*
true vim9.txt /*true*
true-variable eval.txt /*true-variable*
@ -10116,8 +10172,8 @@ type-casting vim9.txt /*type-casting*
type-checking vim9.txt /*type-checking*
type-inference vim9.txt /*type-inference*
type-mistakes tips.txt /*type-mistakes*
typecorrect-settings usr_41.txt /*typecorrect-settings*
typecorrect.txt usr_41.txt /*typecorrect.txt*
typecorrect-settings usr_51.txt /*typecorrect-settings*
typecorrect.txt usr_51.txt /*typecorrect.txt*
typename() builtin.txt /*typename()*
u undo.txt /*u*
uganda uganda.txt /*uganda*
@ -10134,8 +10190,8 @@ undo-remarks undo.txt /*undo-remarks*
undo-tree undo.txt /*undo-tree*
undo-two-ways undo.txt /*undo-two-ways*
undo.txt undo.txt /*undo.txt*
undo_ftplugin usr_41.txt /*undo_ftplugin*
undo_indent usr_41.txt /*undo_indent*
undo_ftplugin usr_51.txt /*undo_ftplugin*
undo_indent usr_51.txt /*undo_indent*
undofile() builtin.txt /*undofile()*
undotree() builtin.txt /*undotree()*
unicode mbyte.txt /*unicode*
@ -10145,7 +10201,7 @@ unlisted-buffer windows.txt /*unlisted-buffer*
up-down-motions motion.txt /*up-down-motions*
uppercase change.txt /*uppercase*
urxvt-mouse options.txt /*urxvt-mouse*
use-cpo-save usr_41.txt /*use-cpo-save*
use-cpo-save usr_51.txt /*use-cpo-save*
use-visual-cmds version4.txt /*use-visual-cmds*
useful-mappings tips.txt /*useful-mappings*
usenet intro.txt /*usenet*
@ -10153,7 +10209,7 @@ user-cmd-ambiguous map.txt /*user-cmd-ambiguous*
user-commands map.txt /*user-commands*
user-functions eval.txt /*user-functions*
user-manual usr_toc.txt /*user-manual*
using-<Plug> usr_41.txt /*using-<Plug>*
using-<Plug> usr_51.txt /*using-<Plug>*
using-menus gui.txt /*using-menus*
using-scripts repeat.txt /*using-scripts*
using-xxd tips.txt /*using-xxd*
@ -10189,7 +10245,9 @@ usr_42.txt usr_42.txt /*usr_42.txt*
usr_43.txt usr_43.txt /*usr_43.txt*
usr_44.txt usr_44.txt /*usr_44.txt*
usr_45.txt usr_45.txt /*usr_45.txt*
usr_46.txt usr_46.txt /*usr_46.txt*
usr_50.txt usr_50.txt /*usr_50.txt*
usr_51.txt usr_51.txt /*usr_51.txt*
usr_52.txt usr_52.txt /*usr_52.txt*
usr_90.txt usr_90.txt /*usr_90.txt*
usr_toc.txt usr_toc.txt /*usr_toc.txt*
utf-8 mbyte.txt /*utf-8*
@ -10452,6 +10510,7 @@ version-7.4 version7.txt /*version-7.4*
version-8.0 version8.txt /*version-8.0*
version-8.1 version8.txt /*version-8.1*
version-8.2 version8.txt /*version-8.2*
version-9.0 version9.txt /*version-9.0*
version-variable eval.txt /*version-variable*
version4.txt version4.txt /*version4.txt*
version5.txt version5.txt /*version5.txt*
@ -10466,6 +10525,8 @@ version8.0 version8.txt /*version8.0*
version8.1 version8.txt /*version8.1*
version8.2 version8.txt /*version8.2*
version8.txt version8.txt /*version8.txt*
version9.0 version9.txt /*version9.0*
version9.txt version9.txt /*version9.txt*
versionlong-variable eval.txt /*versionlong-variable*
vi intro.txt /*vi*
vi-differences vi_diff.txt /*vi-differences*
@ -10481,6 +10542,8 @@ vim-7.4 version7.txt /*vim-7.4*
vim-8 version8.txt /*vim-8*
vim-8.1 version8.txt /*vim-8.1*
vim-8.2 version8.txt /*vim-8.2*
vim-9 version9.txt /*vim-9*
vim-9.0 version9.txt /*vim-9.0*
vim-additions vi_diff.txt /*vim-additions*
vim-announce intro.txt /*vim-announce*
vim-arguments starting.txt /*vim-arguments*
@ -10510,7 +10573,7 @@ vim9-const vim9.txt /*vim9-const*
vim9-curly vim9.txt /*vim9-curly*
vim9-debug repeat.txt /*vim9-debug*
vim9-declaration vim9.txt /*vim9-declaration*
vim9-declarations usr_46.txt /*vim9-declarations*
vim9-declarations usr_52.txt /*vim9-declarations*
vim9-differences vim9.txt /*vim9-differences*
vim9-export vim9.txt /*vim9-export*
vim9-final vim9.txt /*vim9-final*
@ -10527,8 +10590,9 @@ vim9-namespace vim9.txt /*vim9-namespace*
vim9-no-dict-function vim9.txt /*vim9-no-dict-function*
vim9-rationale vim9.txt /*vim9-rationale*
vim9-reload vim9.txt /*vim9-reload*
vim9-s-namespace vim9.txt /*vim9-s-namespace*
vim9-scopes vim9.txt /*vim9-scopes*
vim9-script-intro usr_46.txt /*vim9-script-intro*
vim9-script-intro usr_52.txt /*vim9-script-intro*
vim9-types vim9.txt /*vim9-types*
vim9-unpack-ignore vim9.txt /*vim9-unpack-ignore*
vim9-user-command vim9.txt /*vim9-user-command*
@ -10684,6 +10748,7 @@ windowid windows.txt /*windowid*
windowid-variable eval.txt /*windowid-variable*
windows windows.txt /*windows*
windows-3.1 os_win32.txt /*windows-3.1*
windows-asynchronously os_win32.txt /*windows-asynchronously*
windows-icon os_win32.txt /*windows-icon*
windows-intro windows.txt /*windows-intro*
windows-starting windows.txt /*windows-starting*
@ -10710,15 +10775,15 @@ workshop workshop.txt /*workshop*
workshop-support workshop.txt /*workshop-support*
workshop.txt workshop.txt /*workshop.txt*
wrap-off intro.txt /*wrap-off*
write-compiler-plugin usr_41.txt /*write-compiler-plugin*
write-compiler-plugin usr_51.txt /*write-compiler-plugin*
write-device editing.txt /*write-device*
write-fail editing.txt /*write-fail*
write-filetype-plugin usr_41.txt /*write-filetype-plugin*
write-library-script usr_41.txt /*write-library-script*
write-local-help usr_41.txt /*write-local-help*
write-filetype-plugin usr_51.txt /*write-filetype-plugin*
write-library-script usr_51.txt /*write-library-script*
write-local-help usr_51.txt /*write-local-help*
write-permissions editing.txt /*write-permissions*
write-plugin usr_41.txt /*write-plugin*
write-plugin-quickload usr_41.txt /*write-plugin-quickload*
write-plugin usr_51.txt /*write-plugin*
write-plugin-quickload usr_51.txt /*write-plugin-quickload*
write-quit editing.txt /*write-quit*
write-readonly editing.txt /*write-readonly*
writefile() builtin.txt /*writefile()*
@ -10857,6 +10922,7 @@ zz scroll.txt /*zz*
{offset} pattern.txt /*{offset}*
{register} change.txt /*{register}*
{rhs} map.txt /*{rhs}*
{server} remote.txt /*{server}*
{subject} helphelp.txt /*{subject}*
{} intro.txt /*{}*
} motion.txt /*}*

View File

@ -561,7 +561,8 @@ also works. The <CR> and <NL> characters can never appear inside a line.
The second format is new. It includes additional information in optional
fields at the end of each line. It is backwards compatible with Vi. It is
only supported by new versions of ctags (such as Exuberant ctags).
only supported by new versions of ctags (such as Universal ctags or Exuberant
ctags).
{tagname} The identifier. Normally the name of a function, but it can
be any identifier. It cannot contain a <Tab>.
@ -724,7 +725,7 @@ matches the pattern "^# *define" it is not considered to be a comment.
If you want to list matches, and then select one to jump to, you could use a
mapping to do that for you. Here is an example: >
:map <F4> [I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."[\t"<CR>
:map <F4> [I:let nr = input("Which one: ")<Bar>exe "normal " .. nr .. "[\t"<CR>
<
*[i*
[i Display the first line that contains the keyword

View File

@ -1,4 +1,4 @@
*term.txt* For Vim version 8.2. Last change: 2021 Dec 21
*term.txt* For Vim version 8.2. Last change: 2022 Apr 23
VIM REFERENCE MANUAL by Bram Moolenaar
@ -386,9 +386,10 @@ Added by Vim (there are no standard codes for these):
t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'*
t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'*
|termcap-cursor-shape|
t_RV request terminal version string (for xterm) *t_RV* *'t_RV'*
The response is stored in |v:termresponse|
|xterm-8bit| |'ttymouse'| |xterm-codes|
t_RV request terminal version string (works for *t_RV* *'t_RV'*
xterm and other terminal emulators) The
response is stored in |v:termresponse| |xterm-8bit|
|'ttymouse'| |xterm-codes|
t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
see |'ambiwidth'|
The response is stored in |v:termu7resp|
@ -725,12 +726,12 @@ size is wrong you can use the 'lines' and 'columns' options to set the
correct values.
One command can be used to set the screen size:
*:mod* *:mode* *E359*
:mod[e] [mode]
Without argument this only detects the screen size and redraws the screen.
[mode] was used on MS-DOS, but it doesn't work anymore.
[mode] was used on MS-DOS, but it doesn't work anymore. In |Vim9| this
command is not supported.
==============================================================================
4. Slow and fast terminals *slow-fast-terminal*
@ -833,7 +834,7 @@ select and copy the text to the system, then press Esc.
Another way is to temporarily use ":sh" to run a shell, copy the text, then
exit the shell. 'mouse' can remain set to "a" then.
*xterm-clipboard*
In the Athena and Motif GUI versions, when running in a terminal and there is
In the Motif GUI version, when running in a terminal and there is
access to the X-server (DISPLAY is set), the copy and paste will behave like
in the GUI. If not, the middle mouse button will insert the unnamed register.
In that case, here is how you copy and paste a piece of text:
@ -984,7 +985,7 @@ an #if/#else/#endif block, the selection becomes linewise.
For MS-Windows and xterm the time for double clicking can be set with the
'mousetime' option. For the other systems this time is defined outside of Vim.
An example, for using a double click to jump to the tag under the cursor: >
:map <2-LeftMouse> :exe "tag ". expand("<cword>")<CR>
:map <2-LeftMouse> :exe "tag " .. expand("<cword>")<CR>
Dragging the mouse with a double click (button-down, button-up, button-down
and then drag) will result in whole words to be selected. This continues

View File

@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.2. Last change: 2022 Jan 21
*terminal.txt* For Vim version 8.2. Last change: 2022 Apr 06
VIM REFERENCE MANUAL by Bram Moolenaar
@ -674,7 +674,7 @@ term_getsize({buf}) *term_getsize()*
term_getstatus({buf}) *term_getstatus()*
Get the status of terminal {buf}. This returns a String with
a comma separated list of these items:
a comma-separated list of these items:
running job is running
finished job has finished
normal in Terminal-Normal mode
@ -979,8 +979,8 @@ Currently supported commands:
< Calls a function defined like this: >
function Tapi_Impression(bufnum, arglist)
if len(a:arglist) == 2
echomsg "impression " . a:arglist[0]
echomsg "count " . a:arglist[1]
echomsg "impression " .. a:arglist[0]
echomsg "count " .. a:arglist[1]
endif
endfunc
< Output from `:echo` may be erased by a redraw, use `:echomsg`
@ -1285,6 +1285,8 @@ Put focus on the gdb window to type commands there. Some common ones are:
- next execute the current line and stop at the next line
- step execute the current line and stop at the next statement,
entering functions
- until execute until past the current cursor line or past a specified
position or the current stack frame returns
- finish execute until leaving the current function
- where show the stack
- frame N go to the Nth stack frame
@ -1303,6 +1305,7 @@ gdb:
*:Step* execute the gdb "step" command
*:Over* execute the gdb "next" command (`:Next` is a Vim command)
*:Until* execute the gdb "until" command
*:Finish* execute the gdb "finish" command
*:Continue* execute the gdb "continue" command
*:Stop* interrupt the program

View File

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

View File

@ -101,14 +101,14 @@ What you need:
create it with the shell command "mkid file1 file2 ..".
Put this in your .vimrc: >
map _u :call ID_search()<Bar>execute "/\\<" . g:word . "\\>"<CR>
map _n :n<Bar>execute "/\\<" . g:word . "\\>"<CR>
map _u :call ID_search()<Bar>execute "/\\<" .. g:word .. "\\>"<CR>
map _n :n<Bar>execute "/\\<" .. g:word .. "\\>"<CR>
function! ID_search()
let g:word = expand("<cword>")
let x = system("lid --key=none ". g:word)
let x = system("lid --key=none " .. g:word)
let x = substitute(x, "\n", " ", "g")
execute "next " . x
execute "next " .. x
endfun
To use it, place the cursor on a word, type "_u" and vim will load the file
@ -356,13 +356,13 @@ This mapping will format any bullet list. It requires that there is an empty
line above and below each list entry. The expression commands are used to
be able to give comments to the parts of the mapping. >
:let m = ":map _f :set ai<CR>" " need 'autoindent' set
:let m = m . "{O<Esc>" " add empty line above item
:let m = m . "}{)^W" " move to text after bullet
:let m = m . "i <CR> <Esc>" " add space for indent
:let m = m . "gq}" " format text after the bullet
:let m = m . "{dd" " remove the empty line
:let m = m . "5lDJ" " put text after bullet
:let m = ":map _f :set ai<CR>" " need 'autoindent' set
:let m ..= "{O<Esc>" " add empty line above item
:let m ..= "}{)^W" " move to text after bullet
:let m ..= "i <CR> <Esc>" " add space for indent
:let m ..= "gq}" " format text after the bullet
:let m ..= "{dd" " remove the empty line
:let m ..= "5lDJ" " put text after bullet
:execute m |" define the mapping
(<> notation |<>|. Note that this is all typed literally. ^W is "^" "W", not
@ -514,15 +514,15 @@ A slightly more advanced version is used in the |matchparen| plugin.
let c = '\['
let c2 = '\]'
endif
let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' ..
\ '=~? "string\\|comment"'
execute 'if' s_skip '| let s_skip = 0 | endif'
let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip)
if m_lnum > 0 && m_lnum >= line('w0') && m_lnum <= line('w$')
exe 'match Search /\(\%' . c_lnum . 'l\%' . c_col .
\ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
exe 'match Search /\(\%' .. c_lnum .. 'l\%' .. c_col ..
\ 'c\)\|\(\%' .. m_lnum .. 'l\%' .. m_col .. 'c\)/'
let s:paren_hl_on = 1
endif
endfunction

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.2. Last change: 2022 Feb 04
*todo.txt* For Vim version 8.2. Last change: 2022 May 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -39,11 +39,25 @@ browser use: https://github.com/vim/vim/issues/1234
-------------------- Known bugs and current work -----------------------
Once Vim9 is stable:
- Use Vim9 for more runtime files.
- Check code coverage, add more tests if needed.
- Use Vim9 for runtime files.
vim9instr.c
vim9script.c
vim9type.c
- Inlude new set of colors: #9795
- Adjust intro message to say "help version9".
Graduate FEAT_CINDENT and FEAT_SMARTINDENT ?
Update the user manual:
- Move most of usr_52.txt into usr_41.txt
- Make usr_41.txt only about basic script writing
- Fill usr_50.txt as an "advanced section" of usr_41.txt
Further Vim9 improvements, possibly after launch:
- Check performance with callgrind and kcachegrind.
getline()/substitute()/setline() in #5632
- Better implementation for partial and tests for that.
- when using "const" mark the variable type as const with TTFLAG_CONST, so
that an error is given at compile time when trying to change it. E.g. for a
@ -56,8 +70,6 @@ Further Vim9 improvements, possibly after launch:
evaluation.
Use the location where the option was set for deciding whether it's to be
evaluated in Vim9 script context.
- Implement "import lazy" - like autoload but with a relative or absolute
path. #9595
- implement :type
- implement :enum
- implement :class and :interface: See |vim9-classes|
@ -79,6 +91,8 @@ Update list of features to vote on:
Popup windows:
- Preview popup not properly updated when it overlaps with completion menu.
(Yegappan Lakshmanan, 2021 May 22
- Add a function to redraw a specific popup window. Esp. to be used when
editing the command line, when screen updating doesn't happen. (Shougo)
- In some cases prop_remove() does not work correctly. (#8261)
- Add a flag to make a popup window focusable?
CTRL-W P cycle over any preview window or focusable popup, end up back in
@ -99,7 +113,6 @@ Popup windows:
- Should popup_getoptions() also return the mask? #7774
- Add a way to use popup_menu() synchronously: instead of invoking the
callback, return the choice. (Ben Jackson, #6534)
- Use popup (or popup menu) for command line completion
- When using a popup for the info of a completion menu, and there is not
enough space, let the popup overlap with the menu. (#4544)
- Implement flip option.
@ -117,11 +130,12 @@ Text properties:
where property fits in.
Or Should we let the textprop highlight overrule other (e.g. diff) highlight
if the priority is above a certain value? (#7392)
- Popup attached to text property stays visible when text is deleted with
"cc". (#7737) "C" works OK. "dd" also files in a buffer with a single
- "C" works OK. "dd" fails to delete text property in a buffer with a single
line.
- Add text property that shifts text to make room for annotation (e.g.
variable type). Like the opposite of conceal. Requires fixing the cursor
positioning and mouse clicks as with conceal mode.
- Auto-indenting may cause highlighting to shift. (#7719)
- "cc" does not call inserted_bytes(). (Axel Forsman, #5763)
- Combining text property with 'cursorline' does not always work (Billie
Cleek, #5533)
- See remarks at top of src/textprop.c
@ -144,8 +158,8 @@ Terminal debugger:
- Make prompt-buffer variant work better.
- Add option to not open the program window. It's not used when attaching to
an already running program. (M. Kelly)
- Use the optional token on requests, match the result with it. #10300
- When only gdb window exists, on "quit" edit another buffer.
- Use a sign group
- Termdebug does not work when Vim was built with mzscheme: gdb hangs just
after "run". Everything else works, including communication channel. Not
initializing mzscheme avoid the problem, thus it's not some #ifdef.
@ -190,30 +204,40 @@ Terminal emulator window:
- When the job only outputs lines, we could handle resizing the terminal
better: store lines separated by line breaks, instead of screen lines,
then when the window is resized redraw those lines.
- Redrawing is slow with Athena and Motif. (Ramel Eshed)
- Redrawing is slow with Motif. (Ramel Eshed)
- For the GUI fill termios with default values, perhaps like pangoterm:
http://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134
- When 'encoding' is not utf-8, or the job is using another encoding, setup
conversions.
When using 'cryptmethod' xchaha20 the undo file is not encrypted.
Need to handle extra bytes.
Add autocmd functions. PR #10291
a couple of outstanding comments, wait for Yegappan to respond
In Select mode the deleted text always goes into the unnamed register.
Use CTRL-R to specify the register to use. (#9531)
Can deref_func_name() and deref_function_name() be merged?
Some prompts are not translated: #9495
Add mode bits to maparg() dict? PR #10356
After patch 8.2.4915 w_botline is computed much more often. Can this be
reduced?
NFA regexp does not handle composing characters well: #10286
[ɔ̃] matches both ɔ and ɔ̃
\(ɔ\|ɔ̃\) matches ɔ and not ɔ̃
Improvement in terminal configuration mess: Request the terminfo entry from
the terminal itself. The $TERM value then is only relevant for whether this
feature is supported or not. Replaces the xterm mechanism to request each
entry separately. #6609
Multiplexers (screen, tmux) can request it to the underlaying terminal, and
pass it on with modifications.
Test_communicate_ipv6(): is flaky on many systems
Fails in line 64 of Ch_communicate, no exception is thrown.
Patch for Template string: #4634
Have another look at the implementation.
Add expanding <script> which works like <sfile> everywhere. #9189
Rename getdigraphlist -> digraph_getlist() etc.
Can "CSI nr X" be used instead of outputting spaces? Is it faster? #8002
Valgrind reports memory leaks in test_options.
Valgrind reports overlapping memcpy in
test_conceal.3
@ -234,12 +258,21 @@ Memory leaks in test_channel? (or is it because of fork())
PR to support %e and %k in 'errorformat'. #9624
PR to add left and right bitwise shift. #8457
Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red.
":set &shellpipe" and ":set &shellredir" should use the logic from
initialization to figure out the default value from 'shell'. Add a test for
this.
With concealed text mouse click doesn't put the cursor in the right position.
(Herb Sitz) Fix by Christian Brabandt, 2011 Jun 16. Doesn't work properly,
need to make the change in where RET_WIN_BUF_CHARTABSIZE() is called.
IDEA: when drawing the text, store the text byte index in ScreenLinesIdx[].
When converting screen column to text position use this.
The line number can be obtained from win->w_lines[].
MS-Windows: did path modifier :p:8 stop working? #8600
Add support for "underdouble", "underdot" and "underdash". #9553
@ -275,12 +308,12 @@ Also, z= in German on a long word can take a very long time, but CTRL-C to
interrupt does not work. Where to add ui_breakcheck()?
New English spell files also have very slow suggestions.
Searching for \%'> does not find anything when using line Visual selection.
Probably because it's using MAXCOL. #8238
Make "g>" and "g<" in Visual mode move the text right or left.
Also for a block selection. #8558
When using dictionary insert completion with 'ignorecase', the leading capital
in a word should be preserved.
Add optional argument to virtcol() that specifies "start", "cursor" or "end"
to tell which value from getvvcol() should be used. (#7964)
Value returned by virtcol() changes depending on how lines wrap. This is
@ -289,8 +322,7 @@ inconsistent with the documentation.
Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
Scroll doesn't work correctly, why?
glob() and globfile() do not always honor 'wildignorecase'. #8350
globpath() does not use 'wildignorecase' at all?
globpath() does not use 'wildignorecase' at all? (related to #8350)
Add 'termguiattr' option, use "gui=" attributes in the terminal? Would work
with 'termguicolors'. #1740
@ -304,8 +336,7 @@ Missing filetype test for bashrc, PKGBUILD, etc.
Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co
changes.
When using ":bwipe!" also get rid of references to be buffer, e.g. in the
jumplist and alternate file.
Add ??= operator, "a ??= b" works like "a = a ?? b". #10343
Add an option to start_timer() to return from the input loop with K_IGNORE.
This is useful e.g. when a popup was created that disables mappings, we need
@ -317,13 +348,6 @@ Any way to convert "$" back by using a special value? (#6901)
Can we detect true color support? https://gist.github.com/XVilka/8346728
Try setting a color then request the current color, like using t_u7.
Regexp to search for duplicate lines does not work correctly:
/\(^.*\n\)\1 (Chris Morgan, #6239)
MS-Windows: when writing undo file the infostreams are copied in
mch_copy_file_attribute(), that seems unnecessary. (#7925)
Add a flag to only copy attributes?
Make the jumplist behave like a tag stack. (#7738) Should there be a more
time bound navigation, like with undo?
@ -355,15 +379,6 @@ So that replaying the register doesn't use keymap/langmap and still does the
same thing.
Also see #737: langmap not applied to replaying recording.
Buffer autocommands are a bit inconsistent. Add a separate set of
autocommands for the buffer lifecycle:
BufIsCreated (after buffer ID exists)
BufIsLoaded (after buffer ID has content)
BufIsUnloaded (after buffer ID no longer has)
BufIsWiped (after buffer ID was wiped)
BufIsRenamed (after buffer ID gets another name)
The buffer list and windows are locked, no changes possible
Matchparen doesn't remove highlight after undo. (#7054)
Is OK when syntax HL is active.
@ -395,37 +410,11 @@ Why does Test_invalid_sid() not work in the GUI?
Lua: updating wrong buffer when using newly created, unloaded buffer.
(#6539)
When "+ register is set then "" points to it. If another Vim grabs the "+
register, then "" doesn't contain anything. Make it still follow "+.
(#6435)
File marks merging has duplicates since 7.4.1925. (Ingo Karkat, #5733)
"make test_gui" crashed in submenu_change(). Fix and remove workaround in
add_pixmap_args().
Athena is OK.
Motif: Build on Ubuntu can't enter any text in dialog text fields.
Running test_gui and test_gui_init with Motif sometimes kills the window
manager. Problem with Motif?
When editing a file with ":edit" the output of :swapname is relative, while
editing it with "vim file" it is absolute. (#355)
Which one should it be?
:map output does not clear the reset of the command line.
(#5623, also see #5962)
Problem with auto-formatting - inserting space and putting cursor before added
character. (#6154)
undo result wrong: Masato Nishihata, #4798
After recovering from a swap file the undofile should not be used, it causes
corruption. (#6631)
When the computer crashes while writing the undofile, the contents may be
lost. Write to a temp file, fsync and rename. (#8879)
When 'lazyredraw' is set sometimes the title is not updated.
(Jason Franklin, 2020 Feb 3) Looks like a race condition.
@ -463,13 +452,6 @@ Wrong error when using local arglist. (Harm te Hennepe, #6133)
Test loose_clipboard() by selecting text before suspending.
Undo puts cursor in wrong line after "cG<Esc>" undo.
Implement completion for "breakadd". Should expand the second argument, e.g.
"func", and then function names after ":breakadd func". Including
script-local functions.
Also for ":profile".
:unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019
Dec 19)
@ -491,18 +473,10 @@ 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)
Undo history wrong when ":next file" re-uses a buffer. (#5426)
ex_next() should pass flag to do_argfile(), then to do_ecmd().
Is there a test for this?
Help for ":argadd fname" says that if "fname" is already in the argument list
that entry is used. But instead it's always added. (#6210)
Add flag AL_FIND_ADD, if there is one argument find it in the list.
":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)
Statusline highlighting error, off by one. (#5599)
":find" with 'path' set to "data*" does not find files, while completion does
@ -557,9 +531,6 @@ when "qq" is mapped and after the first "q" the mouse is moved outside of the
gvim window (with focus follows mouse), then the K_FOCUSLOST key is put in the
input buffer. (#5302)
:buffer completion does not escape "+" properly and results in a regexp error.
(#5467)
Check_external_diff() is used too often. (Daniel Hahler, #4800)
Win32: after "[I" showing matches, scroll wheel messes up screen. (Tsakiridis,
@ -760,9 +731,6 @@ punctuation is repeated. (Smylers, 2018 Nov 17, #3621)
Using single wide base character with double wide composing character gives
drawing errors. Fill up the base character? (Dominique, #4328)
Problem with two buffers with the same name a/b, if it didn't exist before and
is created outside of Vim. (dskloetg, 2018 Jul 16, #3219)
When 'sidescrolloff' is set, using "zl" to go to the end of the line, suddenly
scrolls back. Should allow for this scrolling, like 'scrolloff' does when
using CTRL-E. (Yee Cheng Chin, #3721)
@ -781,8 +749,6 @@ when possible. (Dylan Lloyd, #3973)
Make ":interactive !cmd" stop termcap mode, also when used in an autocommand.
(#3692)
Add buffer argument to undotree(). (#4001)
matchaddpos() gets slow with many matches. Proposal by Rick Howe, 2018 Jul
19.
@ -865,10 +831,6 @@ Try out background make plugin:
or asyncmake:
https://github.com/yegappan/asyncmake
Add an option with file patterns, to be used when unloading a buffer: If there
is a match, remove entries for the buffer from marks, jumplist, etc. To be
used for git temp files.
Cursor in wrong position when line wraps. (#2540)
Setting 'columns' in a BufEnter autocommand causes a second tab width to
@ -901,10 +863,6 @@ missing: --nofork, -A , -b, -h, etc.
":au * * command" should not be allowed, only use * for event when listing or
deleting autocmds, not when adding them.
With 'foldmethod' "indent" and appending an empty line, what follows isn't
included in the existing fold. Deleting the empty line and undo fixes it.
(Oleg Koshovetc, 2018 Jul 15, #3214)
Column number is wrong when using 'linebreak' and 'wrap'. (Keith Smiley, 2018
Jan 15, #2555)
@ -919,15 +877,10 @@ Python indenting: alternative way to indent arguments:
http://orchistro.tistory.com/236
Should be supported with a flag.
Add the debug command line history to viminfo.
Add Makefiles to the runtime/spell directory tree, since nobody uses Aap.
Will have to explain the manual steps (downloading the .aff and .dic files,
applying the diff, etc.
Pasting a register in Visual mode cannot be repeated. (Mahmoud Al-Qudsi, 2018
Apr 26, #2849)
User dictionary ~/.vim/spell/lang.utf-8.add not used for spell checking until a
word is re-added to it. (Matej Cepl, 2018 Feb 6)
@ -1060,9 +1013,6 @@ behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
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
a command can delete it.
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
#2089) Patch with possible solution by Björn Linse.
@ -1122,9 +1072,6 @@ Use gvimext.dll from the nightly build? (Issue #249)
Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
8, #1690)
Using "wviminfo /tmp/viminfo" does not store file marks that Vim knows about,
it only works when merging with an existing file. (Shougo, 2017 Jun 19, #1781)
Memory leak in test97? The string is actually freed. Weird.
assert_fails() can only check for the first error. Make it possible to have
@ -1244,8 +1191,6 @@ Should :vmap in matchit.vim be :xmap? (Tony Mechelynck)
Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)
Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18)
Add "unicode true" to NSIS installer. Doesn't work with Windows 95, which we
no longer support.
@ -1342,10 +1287,6 @@ Regexp problems:
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
(2017 May 15, #1252)
Undo message is not always properly displayed. Patch by Ken Takata, 2013 oct
3. Doesn't work properly according to Yukihiro Nakadaira.
Also see #1635.
Idea from Sven: record sequence of keys. Useful to show others what they are
doing (look over the shoulder), and also to see what happened.
Probably list of keystrokes, with some annotations for mode changes.
@ -1358,9 +1299,6 @@ cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
Patch to order results from taglist(). (Duncan McDougall, 2016 Oct 25)
When using ":diffput" through a mapping, undo in the target buffer isn't
synced. (Ryan Carney, 2016 Sep 14)
Syntax highlighting for messages with RFC3339 timestamp (#946)
Did maintainer reply?
@ -1648,9 +1586,6 @@ This neither: (ZyX)
Change 'viewdir' to "$HOME/vimfiles/view" and use 'viewdiralt' to also read
from?
Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman,
2014 Jun 8)
Include a plugin manager with Vim? vim-plug seems to be the best currently:
https://github.com/junegunn/vim-plug.
Also Vundle: https://github.com/gmarik/vundle
@ -1714,12 +1649,6 @@ Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14)
Several syntax file match "^\s*" which may get underlined if that's in the
highlight group. Add a "\zs" after it?
The undo file name can get too long. (Issue 346)
For the path use a hash instead of dir%dir%dir%name hash%name.
Patch to add ":undorecover", get as much text out of the undo file as
possible. (Christian Brabandt, 2014 Mar 12, update Aug 22)
Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16)
Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12)
@ -1744,9 +1673,6 @@ Dec 13. Only helps a bit, 10000ii<Esc> is still too slow.
GTK: problem with 'L' in 'guioptions' changing the window width.
(Aaron Cornelius, 2012 Feb 6)
Patch to add option that tells whether small deletes go into the numbered
registers. (Aryeh Leib Taurog, 2013 Nov 18)
Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
The BufUnload event is triggered when re-using the empty buffer.
@ -1796,10 +1722,6 @@ Patch by Christian Brabandt, 2013 Apr 20, unfinished.
Bug: findfile("any", "file:///tmp;") does not work.
In the ATTENTION message about an existing swap file, mention the name of the
process that is running. It might actually be some other program, e.g. after
a reboot.
patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
Patch to add "combine" to :syntax, combines highlight attributes. (Nate
Soares, 2012 Dec 3)
@ -1864,10 +1786,6 @@ Alternate suggestion: let all columns continue, also the number column.
Patch to add tests for if_xcmdsrv.c., Jul 8, need some more work. (Brian Burns)
New tests Jul 13. Update Jul 17. Discussion Jul 18.
When running Vim in silent ex mode, an existing swapfile causes Vim to wait
for a user action without a prompt. (Maarten Billemont, 2012 Feb 3)
Do give the prompt? Quit with an error?
Patch for input method status. (Hirohito Higashi, 2012 Apr 18)
Update Vim app icon (for Gnome). (Jakub Steiner, 2013 Dec 6)
@ -1918,10 +1836,6 @@ On MS-Windows a temp dir with a & init causes system() to fail. (Ben Fritz,
Patch 7.3.116 was the wrong solution.
Christian Brabandt has another incomplete patch. (2011 Jul 13)
With concealed text mouse click doesn't put the cursor in the right position.
(Herb Sitz) Fix by Christian Brabandt, 2011 Jun 16. Doesn't work properly,
need to make the change in where RET_WIN_BUF_CHARTABSIZE() is called.
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
21, Ben Fritz, 2010 Sep 14)
@ -1944,9 +1858,6 @@ Oct 26)
Bug in repeating Visual "u". (Lawrence Kesteloot, 2010 Dec 20)
With "unamedplus" in 'clipboard' pasting in Visual mode causes error for empty
register. (Michael Seiwald, 2011 Jun 28) I can't reproduce it.
Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
When using a Vim server, a # in the path causes an error message.
@ -2051,9 +1962,6 @@ Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
there is one backslash. (Ray Frush, 2010 Nov 18) What does the original ex
do?
Searching mixed with Visual mode doesn't redraw properly. (James Vega, 2010 Nov
22)
New esperanto spell file can't be processed. (Dominique Pelle, 2011 Jan 30)
- move compflags to separate growarray?
- instead of a regexp use a hashtable. Expand '?', '*', '+'. What would be
@ -2146,9 +2054,6 @@ Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
Winckler, 2011 May 11)
Requires a map mode for Insert mode started from blockwise Visual mode.
Writing nested List and Dict in viminfo gives error message and can't be read
back. (Yukihiro Nakadaira, 2010 Nov 13)
Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11)
Additional info by Dominique Pelle. (also on 2010 Apr 10)
@ -2192,18 +2097,11 @@ like it has ":keepjumps" before it.
Coverity: Check if there are new reported defects:
https://scan.coverity.com/projects/241
Patch to support :undo absolute jump to file save number. (Christian Brabandt,
2010 Nov 5)
Patch to use 'foldnestmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011
Jan 7)
Problem with editing file in binary mode. (Ingo Krabbe, 2009 Oct 8)
With 'wildmode' set to "longest:full,full" and pressing Tab once the first
entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe, 2011
Feb 12)
Display error when 'tabline' that includes a file name with double-width
characters. (2010 Aug 14, bootleq)
@ -2309,10 +2207,6 @@ displayed in a window should return the value that's stored for that buffer.
":he ctrl_u" can be auto-corrected to ":he ctrl-u".
There should be a way after an abbreviation has expanded to go back to what
was typed. CTRL-G h ? Would also undo last word or line break inserted
perhaps. And undo CTRL-W. CTRL-G l would redo.
Diff mode out of sync. (Gary Johnson, 2010 Aug 4)
Win32 GUI: last message from startup doesn't show up when there is an echoerr
@ -2331,9 +2225,6 @@ Session file generates error upon loading, cause by --remote-silent-tab.
Using ~ works OK on 'a' with composing char, but not on 0x0418 with composing
char 0x0301. (Tony Mechelynck, 2009 Mar 4)
Searching for composing char works, but not when inside []. (ZyX, Benjamin R.
Haskell, 2010 Aug 24)
This does not work yet: "a\(%C\)" (get composing characters into a submatch).
Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
@ -2351,16 +2242,6 @@ a modeline.
Add cscope target to Makefile. (Tony Mechelynck, 2009 Jun 18, replies by
Sergey Khorev)
Consider making YankRing or something else that keeps a list of yanked text
part of standard Vim. The "1 to "9 registers are not sufficient.
6 When yanking into the unnamed registers several times, somehow make the
previous contents also available (like it's done for deleting). What
register names to use? g"1, g"2, etc.?
Also do this for the small delete register "-.
After doing "su" $HOME can be the old user's home, thus ~root/file is not
correct. Don't use it in the swap file.
Completion for ":buf" doesn't work properly on Win32 when 'shellslash' is off.
(Henrik Ohman, 2009, Jan 29)
@ -2392,11 +2273,6 @@ probably causes this.
'scrollbind' is not respected when deleting lines or undo. (Milan Vancura,
2009 Jan 16)
Document that default font in Athena can be set with resources:
XtDefaultFont: "9x15"
XtDefaultFontSet: "9x15"
(Richard Sherman, 2009 Apr 12)
Having "Syntax" in 'eventignore' for :bufdo may cause problems, e.g. for
":bufdo e" when buffers are open in windows. ex_listdo(eap) could set the
option only for when jumping to another buffer, not when the command argument
@ -2406,10 +2282,6 @@ is executed.
first line. (Ingo Karkat, 2008 Jul 1) Ian Kelling is working on this.
Similar problem with ":e". (Marc Montu, 2014 Apr 22)
Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1)
Works OK with Vim in an xterm.
Cursor line moves in other window when using CTRL-W J that doesn't change
anything. (Dasn, 2009 Apr 7)
@ -2442,10 +2314,6 @@ backslash? (Robert Vibrant, 2008 Jun 5)
When 'rightleft' is set, cursorcolumn isn't highlighted after the end of a
line. It's also wrong in folds. (Dominique Pelle, 2010 Aug 21)
After using <Tab> for command line completion after ":ta blah" and getting E33
(no tags file), further editing the command to e.g., ":echo 'blah'", the
command is not executed. Fix by Ian Kelling?
":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
Chase) Fix by Ian Kelling, 2008 Jul 14.
@ -2500,10 +2368,6 @@ Works OK when 'cmdheight' is 2.
8 Use a mechanism similar to omni completion to figure out the kind of tab
for CTRL-] and jump to the appropriate matching tag (if there are
several).
Alternative: be able to define a function that takes the tag name and uses
taglist() to find the right location. With indication of using CTRL-] so
that the context can be taken into account. (Robert Webb)
Patch by Christian Brabandt, 2013 May 31.
The utf class table is missing some entries:
0x2212, minus sign
@ -2539,22 +2403,12 @@ Try to reproduce at work.
Patch for default choice in file changed dialog. (Bjorn Winckler, 2008 Oct 19)
Is there a way to list all the files first?
When 'smartcase' is set and using CTRL-L to add to the search pattern it may
result in no matches. Convert chars to lower case? (Erik Wognsen, 2009 Apr
16)
Fail to edit file after failed register access. Error flag remains set?
(Lech Lorens, 2010 Aug 30)
Patch for redo register. (Ben Schmidt, 2007 Oct 19)
Await response to question to make the register writable.
Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
1)
In the swapfile dialog, add a H(elp) option that gives more info about what
each choice does. Similar to ":help swap-exists-choices"
":tab help" always opens a new tab, while ":help" re-uses an existing window.
Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
@ -2618,19 +2472,6 @@ popup menu over it, first draw the new popup menu, remember its position and
size and then redraw the text, skipping the characters under the popup menu.
This should avoid flicker. Other solution by A.Politz, 2007 Aug 22.
When a register contains illegal bytes, writing viminfo in utf-8 and reading
it back doesn't result in utf-8. (Devin Bayer)
Command line completion: Scanning for tags doesn't check for typed key now and
then? Hangs for about 5 seconds. Appears to be caused by finding include
files with "foo/**" in 'path'. (Kalisiak, 2006 July 15)
Additional info: When using the |wildcards| ** globing, vim hangs
indefinitely on lots of directories. The |file-searching| globing, like in
":set path=/**" does not hang as often as with globing with |wildcards|, like
in ":1find /**/file". This is for files that unix "find" can find very
quickly. Merging the 2 kinds of globing might make this an easier fix. (Ian
Kelling, 2008 July 4)
When the file name has parenthesis, e.g., "foo (bar).txt", ":!ls '%'" has the
parenthesis escaped but not the space. That's inconsistent. Either escape
neither or both. No escaping might be best, because it doesn't depend on
@ -2709,11 +2550,6 @@ Cursor displayed in the wrong position when using 'numberwidth'. (James Vega,
When $VAR contains a backslash expand('$VAR') removes it. (Teemu Likonen, 2008
Jun 18)
If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
In debug mode, using CTRL-R = to evaluate a function causes stepping through
the function. (Hari Krishna Dara, 2006 Jun 28)
C++ indenting wrong with "=". (James Kanze, 2007 Jan 26)
":lockvar" should use copyID to avoid endless loop.
@ -2819,13 +2655,6 @@ reload it then?
For Aap: include a config.arg.example file with hints how to use config.arg.
Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
only one buffer line displayed, causes display errors.
Completing with 'wildmenu' and using <Up> and <Down> to move through directory
tree stops unexpectedly when using ":cd " and entering a directory that
doesn't contain other directories.
Default for 'background' is wrong when using xterm with 256 colors.
Table with estimates from Matteo Cavalleri, 2014 Jan 10.
@ -3071,6 +2900,9 @@ Awaiting updated patches:
- For GUI Find/Replace dialog support using a regexp. Patch for Motif
and GTK by degreneir (nov 10 and nov 18).
- Patch for "paranoid mode" by Kevin Collins, March 7. Needs much more work.
- Patch for redo register. (Ben Schmidt, 2007 Oct 19)
Await response to question to make the register writable.
Better 'rightleft' or BIDI support:
- Minimal Vi with bidi support: https://github.com/aligrudi/neatvi
@ -3269,7 +3101,7 @@ Win32 GUI known bugs:
the font name).
Athena and Motif:
Motif:
6 New Motif toolbar button from Marcin Dalecki:
- When the mouse pointer is over an Agide button the red becomes black.
Something with the way colors are specified in the .xpm file.
@ -3281,7 +3113,7 @@ Athena and Motif:
wrong.
9 XIM is disabled by default for SGI/IRIX. Fix XIM so that 'imdisable' can
be off by default.
9 XIM doesn't work properly for Athena/Motif. (Yasuhiro Matsumoto) For now,
9 XIM doesn't work properly for Motif. (Yasuhiro Matsumoto) For now,
keep XIM active at all times when the input method has the preediting
flag.
8 X11: A menu that contains an umlaut is truncated at that character.
@ -3299,27 +3131,6 @@ Athena and Motif:
current locale. Workaround: set 'langmenu'.
Athena GUI:
9 The first event for any button in the menu or toolbar appears to get lost.
The second click on a menu does work.
9 When dragging the scrollbar thumb very fast, focus is only obtained in
the scrollbar itself. And the thumb is no longer updated when moving
through files.
7 The file selector is not resizable. With a big font it is difficult to
read long file names. (Schroeder)
4 Re-write the widget attachments and code so that we will not have to go
through and calculate the absolute position of every widget every time the
window is refreshed/changes size. This will help the "flashing-widgets"
problem during a refresh.
5 When starting gvim with all the default colors and then typing
":hi Menu guibg=cyan", the menus change color but the background of the
pullright pixmap doesn't change colors.
If you type ":hi Menu guibg=cyan font=anyfont", then the pixmap changes
colors as it should.
Allocating a new pixmap and setting the resource doesn't change the
pullright pixmap's colors. Why? Possible Athena bug?
Motif GUI:
- gui_mch_browsedir() is missing, browsedir() doesn't work nicely.
7 Use XmStringCreateLocalized() instead of XmStringCreateSimple()?
@ -3507,8 +3318,6 @@ Macintosh:
8 When doing Insert mode completion a mapping cannot recursively call
edit(), because the completion information is global. Put everything in
an allocated structure?
8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
7 mb_off2cells() doesn't work correctly on the tail byte of a double-byte
character. (Yasuhiro Matsumoto) It should return 1 when used on a tail
byte, like for utf-8. Store second byte of double-byte in ScreenLines2[]
@ -3636,10 +3445,6 @@ Macintosh:
maximum number of open files, error messages will appear. Detect that
this problem is present, and close any hidden files that don't have
changes.
8 With 'viminfo' set such that the ".viminfo" file is written on a FAT
filesystem, an illegal file name may be created: ".vim".
8 For each buffer that is opened, the viminfo file is opened and read to
check for file marks. This can be slow.
8 Core dump within signal function: gdb doesn't show stack backtrace! Option
to skip catch_signals()?
9 Repeating a "cw" with "." doesn't work if the text was pasted from the
@ -3689,9 +3494,6 @@ Macintosh:
"initdir" is the default path to be used.
7 When 'scrolloff' is exactly half the window height, "j" causes a scroll of
two lines at a time. "k" doesn't do this. (Cory T. Echols)
8 When write_viminfo() is used while there are many orphaned viminfo
tempfiles writing the viminfo file fails. Give a clear error message so
that the user knows the files have to be deleted.
I can't reproduce these (if you can, let me know how!):
@ -3800,7 +3602,7 @@ Problems that will (probably) not be solved:
Most interesting new features to be added when all bugs have been fixed:
- Using ":exe edit fname" has escaping problems. Use ":edit ++(fname)".
Thus use "++=" to give arguments as expressions, comma separated as if
Thus use "++=" to give arguments as expressions, comma-separated as if
calling a function.
With options: ":edit ++(['!', '++enc=abc'], ['+/pat'], fname)".
Alternative: Make a function for Ex commands: cmd_edit().
@ -4243,8 +4045,6 @@ Syntax highlighting:
7 CTRL-] checks the highlight group for finding out what the tag is.
7 Add an explanation how a list of words can be used to highlight misspelled
words.
8 Add more command line completion for :syntax.
8 Add more command line completion for :highlight.
7 Should find a better way to parse the :syntax and :highlight commands.
Use tables or lists that can be shared by parsing for execution and
completion?
@ -4302,12 +4102,6 @@ Vim script language:
restore option values. Especially useful for new options. Problem: how
to avoid a performance penalty (esp. for string options)?
- range for ":exec", pass it on to the executed command. (Webb)
8 ":{range}source": source the lines from the current file.
You can already yank lines and use :@" to execute them.
Most of do_source() would not be used, need a new function.
It's easy when not doing breakpoints or profiling.
Requires copying the lines into a list and then creating a function to
execute lines from the list. Similar to getnextac().
7 ":include" command: just like ":source" but doesn't start a new scriptID?
Will be tricky for the list of script names.
8 Have a look at VSEL. Would it be useful to include? (Bigham)
@ -4834,9 +4628,6 @@ Autocommands:
CursorHoldC - CursorHold while command-line editing
WinMoved - when windows have been moved around, e.g, ":wincmd J"
SearchPost - After doing a search command (e.g. to do "M")
PreDirChanged/PostDirChanged
- Before/after ":cd" has been used (for changing the
window title)
ShutDown - when the system is about to shut down
InsertCharPost - user typed a character in Insert mode, after inserting
the char.
@ -4861,6 +4652,14 @@ Autocommands:
Default: 0 = do not autosave the buffer.
Alternative: have 'autosave' use 'updatetime' and 'updatecount' but make
them save the file itself besides the swapfile.
- Buffer autocommands are a bit inconsistent. Add a separate set of
autocommands for the buffer lifecycle:
BufIsCreated (after buffer ID exists)
BufIsLoaded (after buffer ID has content)
BufIsUnloaded (after buffer ID no longer has)
BufIsWiped (after buffer ID was wiped)
BufIsRenamed (after buffer ID gets another name)
The buffer list and windows are locked, no changes possible
Omni completion:
@ -5039,6 +4838,35 @@ Command line completion:
- Add 'wildlongest' option: Key to use to find longest common match for
command line completion (default CTRL-L), like 'wildchar'. (Cregut)
Also: when there are several matches, show them line a CTRL-D.
- With 'wildmode' set to "longest:full,full" and pressing Tab once the first
entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe,
2011 Feb 12)
- After using <Tab> for command line completion after ":ta blah" and getting
E33 (no tags file), further editing the command to e.g., ":echo 'blah'",
the command is not executed. Fix by Ian Kelling?
- Command line completion: Scanning for tags doesn't check for typed key now
and then? Hangs for about 5 seconds. Appears to be caused by finding
include files with "foo/**" in 'path'. (Kalisiak, 2006 July 15)
Additional info: When using the |wildcards| ** globing, vim hangs
indefinitely on lots of directories. The |file-searching| globing, like in
":set path=/**" does not hang as often as with globing with |wildcards|,
like in ":1find /**/file". This is for files that unix "find" can find
very quickly. Merging the 2 kinds of globing might make this an easier
fix. (Ian Kelling, 2008 July 4)
- Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
only one buffer line displayed, causes display errors.
- Completing with 'wildmenu' and using <Up> and <Down> to move through
directory tree stops unexpectedly when using ":cd " and entering a
directory that doesn't contain other directories.
8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
8 Add more command line completion for :syntax.
8 Add more command line completion for :highlight.
- Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1) Works
OK with Vim in an xterm.
- If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't
work.
Command line history:
@ -5503,6 +5331,19 @@ Searching:
[not in xvim:] Add option to switch on matches crossing ONE line boundary.
7 Add ":iselect", a combination of ":ilist" and ":tselect". (Aaron) (Zellner)
Also ":dselect".
- Searching for \%'> does not find anything when using line Visual
selection. Probably because it's using MAXCOL. #8238
- Regexp to search for duplicate lines does not work correctly:
/\(^.*\n\)\1 (Chris Morgan, #6239)
- Problem with upwards search on Windows (works OK on Linux). (Brett
Stahlman, 2014 Jun 8)
- Searching mixed with Visual mode doesn't redraw properly. (James Vega,
2010 Nov 22)
- Searching for composing char works, but not when inside []. (ZyX, Benjamin
R. Haskell, 2010 Aug 24)
- When 'smartcase' is set and using CTRL-L to add to the search pattern it
may result in no matches. Convert chars to lower case? (Erik Wognsen,
2009 Apr 16)
Undo:
@ -5544,6 +5385,36 @@ Undo:
- When executing macro's: Save each line for undo only once.
- When doing a global substitute, causing almost all lines to be changed,
undo info becomes very big. Put undo info in swap file??
- MS-Windows: when writing undo file the infostreams are copied in
mch_copy_file_attribute(), that seems unnecessary. (#7925) Add a flag to
only copy attributes?
- undo result wrong: Masato Nishihata, #4798
- After recovering from a swap file the undofile should not be used, it
causes corruption. (#6631)
- When the computer crashes while writing the undofile, the contents may be
lost. Write to a temp file, fsync and rename. (#8879)
- Undo puts cursor in wrong line after "cG<Esc>" undo.
- Undo history wrong when ":next file" re-uses a buffer. (#5426) ex_next()
should pass flag to do_argfile(), then to do_ecmd(). Is there a test for
this?
- Add buffer argument to undotree(). (#4001)
- Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18)
- Undo message is not always properly displayed. Patch by Ken Takata, 2013
oct 3. Doesn't work properly according to Yukihiro Nakadaira.
Also see #1635.
- When using ":diffput" through a mapping, undo in the target buffer isn't
synced. (Ryan Carney, 2016 Sep 14)
- The undo file name can get too long. (Issue 346)
For the path use a hash instead of dir%dir%dir%name hash%name.
- Patch to add ":undorecover", get as much text out of the undo file as
possible. (Christian Brabandt, 2014 Mar 12, update Aug 22)
- Patch to support :undo absolute jump to file save number. (Christian
Brabandt, 2010 Nov 5)
- There should be a way after an abbreviation has expanded to go back to
what was typed. CTRL-G h ? Would also undo last word or line break
inserted perhaps. And undo CTRL-W. CTRL-G l would redo.
- When using 'cryptmethod' xchaha20 the undo file is not encrypted.
Need to handle extra bytes.
Buffer list:
@ -5574,6 +5445,18 @@ Buffer list:
8 Some file systems are case-sensitive, some are not. Besides
'wildignorecase' there might be more parts inside
CASE_INSENSITIVE_FILENAME that are useful on Unix.
- When using ":bwipe!" also get rid of references to be buffer, e.g. in the
jumplist and alternate file.
- ":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)
- :buffer completion does not escape "+" properly and results in a regexp
error. (#5467)
- Problem with two buffers with the same name a/b, if it didn't exist before
and is created outside of Vim. (dskloetg, 2018 Jul 16, #3219)
- Add an option with file patterns, to be used when unloading a buffer: If
there is a match, remove entries for the buffer from marks, jumplist, etc.
To be used for git temp files.
Swap (.swp) files:
@ -5604,6 +5487,21 @@ Swap (.swp) files:
original file. Also do this when the file is huge (>'maxmem'). We do
need to load the file once to count the number of lines? Perhaps keep a
cached list of which line is where.
- When editing a file with ":edit" the output of :swapname is relative,
while editing it with "vim file" it is absolute. (#355) Which one should
it be?
- When recovering a file, put the swap file name in b:recovered_swapfile.
Then a command can delete it.
- In the ATTENTION message about an existing swap file, mention the name of
the process that is running. It might actually be some other program,
e.g. after a reboot.
- When running Vim in silent ex mode, an existing swapfile causes Vim to
wait for a user action without a prompt. (Maarten Billemont, 2012 Feb 3)
Do give the prompt? Quit with an error?
- After doing "su" $HOME can be the old user's home, thus ~root/file is not
correct. Don't use it in the swap file.
- In the swapfile dialog, add a H(elp) option that gives more info about
what each choice does. Similar to ":help swap-exists-choices"
Viminfo:
@ -5630,6 +5528,21 @@ Viminfo:
same files in the windows. Use ":mksession" code?
- Make marks present in .viminfo usable as file marks: Display a list of
"last visited files" and select one to jump to.
- Add the debug command line history to viminfo.
- Using "wviminfo /tmp/viminfo" does not store file marks that Vim knows
about, it only works when merging with an existing file. (Shougo, 2017
Jun 19, #1781)
- Writing nested List and Dict in viminfo gives error message and can't be
read back. (Yukihiro Nakadaira, 2010 Nov 13)
- When a register contains illegal bytes, writing viminfo in utf-8 and
reading it back doesn't result in utf-8. (Devin Bayer)
8 With 'viminfo' set such that the ".viminfo" file is written on a FAT
filesystem, an illegal file name may be created: ".vim".
8 For each buffer that is opened, the viminfo file is opened and read to
check for file marks. This can be slow.
8 When write_viminfo() is used while there are many orphaned viminfo
tempfiles writing the viminfo file fails. Give a clear error message so
that the user knows the files have to be deleted.
Modelines:
@ -5673,7 +5586,7 @@ Options:
7 ":with option=value | command": temporarily set an option value and
restore it after the command has executed.
8 Make "old" number options that really give a number of effects into string
options that are a comma separated list. The old number values should
options that are a comma-separated list. The old number values should
also be supported.
8 Add commands to save and restore an option, which also preserves the flag
that marks if the option was set. Useful to keep the effect of setting
@ -5848,6 +5761,23 @@ Registers:
to position of previous deleted (to swap foo and bar in " + foo")
8 Should be able to yank and delete into the "/ register.
How to take care of the flags (offset, magic)?
- In Select mode the deleted text always goes into the unnamed register.
Use CTRL-R to specify the register to use. (#9531)
- When "+ register is set then "" points to it. If another Vim grabs the "+
register, then "" doesn't contain anything. Make it still follow "+.
(#6435)
- Pasting a register in Visual mode cannot be repeated. (Mahmoud Al-Qudsi,
2018 Apr 26, #2849)
- Patch to add option that tells whether small deletes go into the numbered
registers. (Aryeh Leib Taurog, 2013 Nov 18)
- With "unamedplus" in 'clipboard' pasting in Visual mode causes error for
empty register. (Michael Seiwald, 2011 Jun 28) I can't reproduce it.
- Consider making YankRing or something else that keeps a list of yanked
text part of standard Vim. The "1 to "9 registers are not sufficient.
6 When yanking into the unnamed registers several times, somehow make the
previous contents also available (like it's done for deleting). What
register names to use? g"1, g"2, etc.?
Also do this for the small delete register "-.
Debug mode:
@ -5855,6 +5785,9 @@ Debug mode:
8 Add breakpoints for assigning to a variable.
7 Store the history from debug mode in viminfo.
7 Make the debug mode history available with histget() et al.
- In debug mode, using CTRL-R = to evaluate a function causes stepping
through the function. (Hari Krishna Dara, 2006 Jun 28)
Various improvements:
7 Add plugins for formatting? Should be able to make a choice depending on

View File

@ -1,4 +1,4 @@
*uganda.txt* For Vim version 8.2. Last change: 2022 Feb 04
*uganda.txt* For Vim version 8.2. Last change: 2022 Mar 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -133,11 +133,12 @@ Kibaale Children's Centre *kcc* *Kibaale* *charity*
Kibaale Children's Centre (KCC) is located in Kibaale, a small town in the
south of Uganda, near Tanzania, in East Africa. The area is known as Rakai
District. The population is mostly farmers. Although people are poor, there
is enough food. But this district is suffering from AIDS more than any other
part of the world. Some say that it started there. Estimations are that 10
to 30% of the Ugandans are infected with HIV. Because parents die, there are
many orphans. In this district about 60,000 children have lost one or both
parents, out of a population of 350,000. And this is still continuing.
usually is enough food. But this district is suffering from AIDS more than
any other part of the world. Some say that it started there. Estimations are
that in the past 10 to 30% of the Ugandans are infected with HIV. Because
parents die, there are many orphans. In this district about 60,000 children
have lost one or both parents, out of a population of 350,000. Although AIDS
is now mostly under control, the problems are still continuing.
The children need a lot of help. The KCC is working hard to provide the needy
with food, medical care and education. Food and medical care to keep them
@ -223,7 +224,7 @@ Canada: Contact Kuwasha in Surrey, Canada. They take care of the
forwards 100% of the money to the project in Uganda. You can
send them a one time donation directly.
Please send me a note so that I know what has been donated
because of Vim. Look on their for information about
because of Vim. Look on their site for information about
sponsorship: https://www.kuwasha.net/
If you make a donation to Kuwasha you will receive a tax
receipt which can be submitted with your tax return.
@ -248,7 +249,7 @@ Credit Card: You can use PayPal to send money with a Credit card. This is
The e-mail address for sending the money to is:
Bram@iccf-holland.org
Others: Transfer to one of these accounts if possible:
Others: Transfer to this account if possible:
ING bank: IBAN: NL95 INGB 0004 5487 74
Swift code: INGBNL2A
under the name "stichting ICCF Holland", Amersfoort

View File

@ -286,12 +286,12 @@ history file. E.g.: >
au BufReadPost * call ReadUndo()
au BufWritePost * call WriteUndo()
func ReadUndo()
if filereadable(expand('%:h'). '/UNDO/' . expand('%:t'))
if filereadable(expand('%:h') .. '/UNDO/' .. expand('%:t'))
rundo %:h/UNDO/%:t
endif
endfunc
func WriteUndo()
let dirname = expand('%:h') . '/UNDO'
let dirname = expand('%:h') .. '/UNDO'
if !isdirectory(dirname)
call mkdir(dirname)
endif

View File

@ -270,7 +270,7 @@ line break. Revert with ":iunmap <C-U>".
Enable using the mouse if available. See 'mouse'.
>
vnoremap _g y:exe "grep /" . escape(@", '\\/') . "/ *.c *.h"<CR>
vnoremap _g y:exe "grep /" .. escape(@", '\\/') .. "/ *.c *.h"<CR>
This mapping yanks the visually selected text and searches for it in C files.
You can see that a mapping can be used to do quite complicated things. Still,

View File

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

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.2. Last change: 2022 Jan 28
*usr_41.txt* For Vim version 8.2. Last change: 2022 May 13
VIM USER MANUAL - by Bram Moolenaar
@ -19,12 +19,6 @@ script. There are a lot of them, thus this is a long chapter.
|41.8| Lists and Dictionaries
|41.9| Exceptions
|41.10| Various remarks
|41.11| Writing a plugin
|41.12| Writing a filetype plugin
|41.13| Writing a compiler plugin
|41.14| Writing a plugin that loads quickly
|41.15| Writing library scripts
|41.16| Distributing Vim scripts
Next chapter: |usr_42.txt| Add new menus
Previous chapter: |usr_40.txt| Make new commands
@ -42,14 +36,10 @@ Syntax files are also Vim scripts. As are files that set options for a
specific file type. A complicated macro can be defined by a separate Vim
script file. You can think of other uses yourself.
If you are familiar with Python, you can find a comparison between
Python and Vim script here, with pointers to other documents:
https://gist.github.com/yegappan/16d964a37ead0979b05e655aa036cad0
And if you are familiar with JavaScript:
https://w0rp.com/blog/post/vim-script-for-the-javascripter/
Vim script comes in two flavors: legacy and |Vim9|. Since this help file is
for new users, we'll teach you the newer and more convenient |Vim9| syntax.
While legacy script is particular for Vim, |Vim9| script looks more like other
languages, such as JavaScript and TypeScript.
To try out Vim script the best way is to edit a script file and source it.
Basically: >
@ -162,7 +152,7 @@ and avoid errors. Such as thinking that the "-0o36" above makes the number
negative, while it is actually seen as a subtraction.
To actually have the minus sign be used for negation, you can put the second
expression in parenthesis: >
expression in parentheses: >
echo -0x7f (-0o36)
@ -904,6 +894,7 @@ System functions and manipulation of files:
getfperm() get the permissions of a file
setfperm() set the permissions of a file
getftype() get the kind of a file
isabsolutepath() check if a path is absolute
isdirectory() check if a directory exists
getfsize() get the size of a file
getcwd() get the current working directory
@ -975,8 +966,12 @@ Buffers, windows and the argument list:
swapname() get the swap file path of a buffer
Command line: *command-line-functions*
getcmdcompltype() get the type of the current command line
completion
getcmdline() get the current command line
getcmdpos() get position of the cursor in the command line
getcmdscreenpos() get screen position of the cursor in the
command line
setcmdpos() set position of the cursor in the command line
getcmdtype() return the current command-line type
getcmdwintype() return the current command-line window type
@ -1092,6 +1087,7 @@ Mappings and Menus: *mapping-functions*
hasmapto() check if a mapping exists
mapcheck() check if a matching mapping exists
maparg() get rhs of a mapping
maplist() get list of all mappings
mapset() restore a mapping
menu_info() get information about a menu item
wildmenumode() check if the wildmode is active
@ -1922,836 +1918,6 @@ are script-local.
If you split your plugin into parts, you can use `import` and `export` to
share items between those parts. See `:export` for the details.
==============================================================================
*41.11* Writing a plugin *write-plugin*
You can write a Vim script in such a way that many people can use it. This is
called a plugin. Vim users can drop your script in their plugin directory and
use its features right away |add-plugin|.
There are actually two types of plugins:
global plugins: For all types of files.
filetype plugins: Only for files of a specific type.
In this section the first type is explained. Most items are also relevant for
writing filetype plugins. The specifics for filetype plugins are in the next
section |write-filetype-plugin|.
NAME
First of all you must choose a name for your plugin. The features provided
by the plugin should be clear from its name. And it should be unlikely that
someone else writes a plugin with the same name but which does something
different.
A script that corrects typing mistakes could be called "typecorrect.vim". We
will use it here as an example.
For the plugin to work for everybody, it should follow a few guidelines. This
will be explained step-by-step. The complete example plugin is at the end.
BODY
Let's start with the body of the plugin, the lines that do the actual work: >
14 iabbrev teh the
15 iabbrev otehr other
16 iabbrev wnat want
17 iabbrev synchronisation
18 \ synchronization
The actual list should be much longer, of course.
The line numbers have only been added to explain a few things, don't put them
in your plugin file!
FIRST LINE
>
1 vim9script noclear
You need to use `vimscript` as the very first command. Best is to put it in
the very first line.
The script we are writing will have a `finish` command to bail out when it is
loaded a second time. To avoid the items defined in the script are lost the
"noclear" argument is used. More info about this at |vim9-reload|.
HEADER
You will probably add new corrections to the plugin and soon have several
versions lying around. And when distributing this file, people will want to
know who wrote this wonderful plugin and where they can send remarks.
Therefore, put a header at the top of your plugin: >
2 # Vim global plugin for correcting typing mistakes
3 # Last Change: 2021 Dec 30
4 # Maintainer: Bram Moolenaar <Bram@vim.org>
About copyright and licensing: Since plugins are very useful and it's hardly
worth restricting their distribution, please consider making your plugin
either public domain or use the Vim |license|. A short note about this near
the top of the plugin should be sufficient. Example: >
5 # License: This file is placed in the public domain.
LINE CONTINUATION AND AVOIDING SIDE EFFECTS *use-cpo-save*
In line 18 above, the line-continuation mechanism is used |line-continuation|.
Users with 'compatible' set will run into trouble here, they will get an error
message. We can't just reset 'compatible', because that has a lot of side
effects. Instead, we will set the 'cpoptions' option to its Vim default
value and restore it later. That will allow the use of line-continuation and
make the script work for most people. It is done like this: >
11 var save_cpo = &cpo
12 set cpo&vim
..
42 &cpo = save_cpo
We first store the old value of 'cpoptions' in the "save_cpo" variable. At
the end of the plugin this value is restored.
Notice that "save_cpo" is a script-local variable. A global variable could
already be in use for something else. Always use script-local variables for
things that are only used in the script.
NOT LOADING
It is possible that a user doesn't always want to load this plugin. Or the
system administrator has dropped it in the system-wide plugin directory, but a
user has his own plugin he wants to use. Then the user must have a chance to
disable loading this specific plugin. These lines will make it possible: >
7 if exists("g:loaded_typecorrect")
8 finish
9 endif
10 g:loaded_typecorrect = 1
This also avoids that when the script is loaded twice it would pointlessly
redefine functions and cause trouble for autocommands that are added twice.
The name is recommended to start with "g:loaded_" and then the file name of
the plugin, literally. The "g:" is prepended to make the variable global, so
that other places can check whether its functionality is available. Without
"g:" it would be local to the script.
Using `finish` stops Vim from reading the rest of the file, it's much quicker
than using if-endif around the whole file, since Vim would still need to parse
the commands to find the `endif`.
MAPPING
Now let's make the plugin more interesting: We will add a mapping that adds a
correction for the word under the cursor. We could just pick a key sequence
for this mapping, but the user might already use it for something else. To
allow the user to define which keys a mapping in a plugin uses, the <Leader>
item can be used: >
22 map <unique> <Leader>a <Plug>TypecorrAdd;
The "<Plug>TypecorrAdd;" thing will do the work, more about that further on.
The user can set the "g:mapleader" variable to the key sequence that he wants
plugin mappings to start with. Thus if the user has done: >
g:mapleader = "_"
the mapping will define "_a". If the user didn't do this, the default value
will be used, which is a backslash. Then a map for "\a" will be defined.
Note that <unique> is used, this will cause an error message if the mapping
already happened to exist. |:map-<unique>|
But what if the user wants to define his own key sequence? We can allow that
with this mechanism: >
21 if !hasmapto('<Plug>TypecorrAdd;')
22 map <unique> <Leader>a <Plug>TypecorrAdd;
23 endif
This checks if a mapping to "<Plug>TypecorrAdd;" already exists, and only
defines the mapping from "<Leader>a" if it doesn't. The user then has a
chance of putting this in his vimrc file: >
map ,c <Plug>TypecorrAdd;
Then the mapped key sequence will be ",c" instead of "_a" or "\a".
PIECES
If a script gets longer, you often want to break up the work in pieces. You
can use functions or mappings for this. But you don't want these functions
and mappings to interfere with the ones from other scripts. For example, you
could define a function Add(), but another script could try to define the same
function. To avoid this, we define the function local to the script.
Fortunately, in |Vim9| script this is the default. In a legacy script you
would need to prefix the name with "s:".
We will define a function that adds a new typing correction: >
30 def Add(from: string, correct: bool)
31 var to = input("type the correction for " .. from .. ": ")
32 exe ":iabbrev " .. from .. " " .. to
..
36 enddef
Now we can call the function Add() from within this script. If another
script also defines Add(), it will be local to that script and can only
be called from that script. There can also be a global g:Add() function,
which is again another function.
<SID> can be used with mappings. It generates a script ID, which identifies
the current script. In our typing correction plugin we use it like this: >
24 noremap <unique> <script> <Plug>TypecorrAdd; <SID>Add
..
28 noremap <SID>Add :call <SID>Add(expand("<cword>"), true)<CR>
Thus when a user types "\a", this sequence is invoked: >
\a -> <Plug>TypecorrAdd; -> <SID>Add -> :call <SID>Add(...)
If another script also maps <SID>Add, it will get another script ID and
thus define another mapping.
Note that instead of Add() we use <SID>Add() here. That is because the
mapping is typed by the user, thus outside of the script context. The <SID>
is translated to the script ID, so that Vim knows in which script to look for
the Add() function.
This is a bit complicated, but it's required for the plugin to work together
with other plugins. The basic rule is that you use <SID>Add() in mappings and
Add() in other places (the script itself, autocommands, user commands).
We can also add a menu entry to do the same as the mapping: >
26 noremenu <script> Plugin.Add\ Correction <SID>Add
The "Plugin" menu is recommended for adding menu items for plugins. In this
case only one item is used. When adding more items, creating a submenu is
recommended. For example, "Plugin.CVS" could be used for a plugin that offers
CVS operations "Plugin.CVS.checkin", "Plugin.CVS.checkout", etc.
Note that in line 28 ":noremap" is used to avoid that any other mappings cause
trouble. Someone may have remapped ":call", for example. In line 24 we also
use ":noremap", but we do want "<SID>Add" to be remapped. This is why
"<script>" is used here. This only allows mappings which are local to the
script. |:map-<script>| The same is done in line 26 for ":noremenu".
|:menu-<script>|
<SID> AND <Plug> *using-<Plug>*
Both <SID> and <Plug> are used to avoid that mappings of typed keys interfere
with mappings that are only to be used from other mappings. Note the
difference between using <SID> and <Plug>:
<Plug> is visible outside of the script. It is used for mappings which the
user might want to map a key sequence to. <Plug> is a special code
that a typed key will never produce.
To make it very unlikely that other plugins use the same sequence of
characters, use this structure: <Plug> scriptname mapname
In our example the scriptname is "Typecorr" and the mapname is "Add".
We add a semicolon as the terminator. This results in
"<Plug>TypecorrAdd;". Only the first character of scriptname and
mapname is uppercase, so that we can see where mapname starts.
<SID> is the script ID, a unique identifier for a script.
Internally Vim translates <SID> to "<SNR>123_", where "123" can be any
number. Thus a function "<SID>Add()" will have a name "<SNR>11_Add()"
in one script, and "<SNR>22_Add()" in another. You can see this if
you use the ":function" command to get a list of functions. The
translation of <SID> in mappings is exactly the same, that's how you
can call a script-local function from a mapping.
USER COMMAND
Now let's add a user command to add a correction: >
38 if !exists(":Correct")
39 command -nargs=1 Correct :call Add(<q-args>, false)
40 endif
The user command is defined only if no command with the same name already
exists. Otherwise we would get an error here. Overriding the existing user
command with ":command!" is not a good idea, this would probably make the user
wonder why the command he defined himself doesn't work. |:command|
If it did happen you can find out who to blame with: >
verbose command Correct
SCRIPT VARIABLES
When a variable starts with "s:" it is a script variable. It can only be used
inside a script. Outside the script it's not visible. This avoids trouble
with using the same variable name in different scripts. The variables will be
kept as long as Vim is running. And the same variables are used when sourcing
the same script again. |s:var|
The nice thing about |Vim9| script is that variables are local to the script
by default. You can prepend "s:" if you like, but you do not need to. And
functions in the script can also use the script variables without a prefix.
Script-local variables can also be used in functions, autocommands and user
commands that are defined in the script. Thus they are the perfect way to
share information between parts of your plugin, without it leaking out. In
our example we can add a few lines to count the number of corrections: >
19 var count = 4
..
30 def Add(from: string, correct: bool)
..
34 count += 1
35 echo "you now have " .. count .. " corrections"
36 enddef
"count" is declared and initialized to 4 in the script itself. When later
the Add() function is called, it increments "count". It doesn't matter from
where the function was called, since it has been defined in the script, it
will use the local variables from this script.
THE RESULT
Here is the resulting complete example: >
1 vim9script noclear
2 # Vim global plugin for correcting typing mistakes
3 # Last Change: 2021 Dec 30
4 # Maintainer: Bram Moolenaar <Bram@vim.org>
5 # License: This file is placed in the public domain.
6
7 if exists("g:loaded_typecorrect")
8 finish
9 endif
10 g:loaded_typecorrect = 1
11 var save_cpo = &cpo
12 set cpo&vim
13
14 iabbrev teh the
15 iabbrev otehr other
16 iabbrev wnat want
17 iabbrev synchronisation
18 \ synchronization
19 var count = 4
20
21 if !hasmapto('<Plug>TypecorrAdd;')
22 map <unique> <Leader>a <Plug>TypecorrAdd;
23 endif
24 noremap <unique> <script> <Plug>TypecorrAdd; <SID>Add
25
26 noremenu <script> Plugin.Add\ Correction <SID>Add
27
28 noremap <SID>Add :call <SID>Add(expand("<cword>"), true)<CR>
29
30 def Add(from: string, correct: bool)
31 var to = input("type the correction for " .. from .. ": ")
32 exe ":iabbrev " .. from .. " " .. to
33 if correct | exe "normal viws\<C-R>\" \b\e" | endif
34 count += 1
35 echo "you now have " .. count .. " corrections"
36 enddef
37
38 if !exists(":Correct")
39 command -nargs=1 Correct call Add(<q-args>, false)
40 endif
41
42 &cpo = save_cpo
Line 33 wasn't explained yet. It applies the new correction to the word under
the cursor. The |:normal| command is used to use the new abbreviation. Note
that mappings and abbreviations are expanded here, even though the function
was called from a mapping defined with ":noremap".
DOCUMENTATION *write-local-help*
It's a good idea to also write some documentation for your plugin. Especially
when its behavior can be changed by the user. See |add-local-help| for how
they are installed.
Here is a simple example for a plugin help file, called "typecorrect.txt": >
1 *typecorrect.txt* Plugin for correcting typing mistakes
2
3 If you make typing mistakes, this plugin will have them corrected
4 automatically.
5
6 There are currently only a few corrections. Add your own if you like.
7
8 Mappings:
9 <Leader>a or <Plug>TypecorrAdd;
10 Add a correction for the word under the cursor.
11
12 Commands:
13 :Correct {word}
14 Add a correction for {word}.
15
16 *typecorrect-settings*
17 This plugin doesn't have any settings.
The first line is actually the only one for which the format matters. It will
be extracted from the help file to be put in the "LOCAL ADDITIONS:" section of
help.txt |local-additions|. The first "*" must be in the first column of the
first line. After adding your help file do ":help" and check that the entries
line up nicely.
You can add more tags inside ** in your help file. But be careful not to use
existing help tags. You would probably use the name of your plugin in most of
them, like "typecorrect-settings" in the example.
Using references to other parts of the help in || is recommended. This makes
it easy for the user to find associated help.
FILETYPE DETECTION *plugin-filetype*
If your filetype is not already detected by Vim, you should create a filetype
detection snippet in a separate file. It is usually in the form of an
autocommand that sets the filetype when the file name matches a pattern.
Example: >
au BufNewFile,BufRead *.foo setlocal filetype=foofoo
Write this single-line file as "ftdetect/foofoo.vim" in the first directory
that appears in 'runtimepath'. For Unix that would be
"~/.vim/ftdetect/foofoo.vim". The convention is to use the name of the
filetype for the script name.
You can make more complicated checks if you like, for example to inspect the
contents of the file to recognize the language. Also see |new-filetype|.
SUMMARY *plugin-special*
Summary of special things to use in a plugin:
var name Variable local to the script.
<SID> Script-ID, used for mappings and functions local to
the script.
hasmapto() Function to test if the user already defined a mapping
for functionality the script offers.
<Leader> Value of "mapleader", which the user defines as the
keys that plugin mappings start with.
map <unique> Give a warning if a mapping already exists.
noremap <script> Use only mappings local to the script, not global
mappings.
exists(":Cmd") Check if a user command already exists.
==============================================================================
*41.12* Writing a filetype plugin *write-filetype-plugin* *ftplugin*
A filetype plugin is like a global plugin, except that it sets options and
defines mappings for the current buffer only. See |add-filetype-plugin| for
how this type of plugin is used.
First read the section on global plugins above |41.11|. All that is said there
also applies to filetype plugins. There are a few extras, which are explained
here. The essential thing is that a filetype plugin should only have an
effect on the current buffer.
DISABLING
If you are writing a filetype plugin to be used by many people, they need a
chance to disable loading it. Put this at the top of the plugin: >
# Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
b:did_ftplugin = 1
This also needs to be used to avoid that the same plugin is executed twice for
the same buffer (happens when using an ":edit" command without arguments).
Now users can disable loading the default plugin completely by making a
filetype plugin with only these lines: >
vim9script
b:did_ftplugin = 1
This does require that the filetype plugin directory comes before $VIMRUNTIME
in 'runtimepath'!
If you do want to use the default plugin, but overrule one of the settings,
you can write the different setting in a script: >
setlocal textwidth=70
Now write this in the "after" directory, so that it gets sourced after the
distributed "vim.vim" ftplugin |after-directory|. For Unix this would be
"~/.vim/after/ftplugin/vim.vim". Note that the default plugin will have set
"b:did_ftplugin", but it is ignored here.
OPTIONS
To make sure the filetype plugin only affects the current buffer use the >
setlocal
command to set options. And only set options which are local to a buffer (see
the help for the option to check that). When using `:setlocal` for global
options or options local to a window, the value will change for many buffers,
and that is not what a filetype plugin should do.
When an option has a value that is a list of flags or items, consider using
"+=" and "-=" to keep the existing value. Be aware that the user may have
changed an option value already. First resetting to the default value and
then changing it is often a good idea. Example: >
setlocal formatoptions& formatoptions+=ro
MAPPINGS
To make sure mappings will only work in the current buffer use the >
map <buffer>
command. This needs to be combined with the two-step mapping explained above.
An example of how to define functionality in a filetype plugin: >
if !hasmapto('<Plug>JavaImport;')
map <buffer> <unique> <LocalLeader>i <Plug>JavaImport;
endif
noremap <buffer> <unique> <Plug>JavaImport; oimport ""<Left><Esc>
|hasmapto()| is used to check if the user has already defined a map to
<Plug>JavaImport;. If not, then the filetype plugin defines the default
mapping. This starts with |<LocalLeader>|, which allows the user to select
the key(s) he wants filetype plugin mappings to start with. The default is a
backslash.
"<unique>" is used to give an error message if the mapping already exists or
overlaps with an existing mapping.
|:noremap| is used to avoid that any other mappings that the user has defined
interferes. You might want to use ":noremap <script>" to allow remapping
mappings defined in this script that start with <SID>.
The user must have a chance to disable the mappings in a filetype plugin,
without disabling everything. Here is an example of how this is done for a
plugin for the mail filetype: >
# Add mappings, unless the user didn't want this.
if !exists("g:no_plugin_maps") && !exists("g:no_mail_maps")
# Quote text by inserting "> "
if !hasmapto('<Plug>MailQuote;')
vmap <buffer> <LocalLeader>q <Plug>MailQuote;
nmap <buffer> <LocalLeader>q <Plug>MailQuote;
endif
vnoremap <buffer> <Plug>MailQuote; :s/^/> /<CR>
nnoremap <buffer> <Plug>MailQuote; :.,$s/^/> /<CR>
endif
Two global variables are used:
|g:no_plugin_maps| disables mappings for all filetype plugins
|g:no_mail_maps| disables mappings for the "mail" filetype
USER COMMANDS
To add a user command for a specific file type, so that it can only be used in
one buffer, use the "-buffer" argument to |:command|. Example: >
command -buffer Make make %:r.s
VARIABLES
A filetype plugin will be sourced for each buffer of the type it's for. Local
script variables will be shared between all invocations. Use local buffer
variables |b:var| if you want a variable specifically for one buffer.
FUNCTIONS
When defining a function, this only needs to be done once. But the filetype
plugin will be sourced every time a file with this filetype will be opened.
This construct makes sure the function is only defined once: >
if !exists("*Func")
def Func(arg)
...
enddef
endif
<
UNDO *undo_indent* *undo_ftplugin*
When the user does ":setfiletype xyz" the effect of the previous filetype
should be undone. Set the b:undo_ftplugin variable to the commands that will
undo the settings in your filetype plugin. Example: >
let b:undo_ftplugin = "setlocal fo< com< tw< commentstring<"
\ .. "| unlet b:match_ignorecase b:match_words b:match_skip"
Using ":setlocal" with "<" after the option name resets the option to its
global value. That is mostly the best way to reset the option value.
This does require removing the "C" flag from 'cpoptions' to allow line
continuation, as mentioned above |use-cpo-save|.
For undoing the effect of an indent script, the b:undo_indent variable should
be set accordingly.
FILE NAME
The filetype must be included in the file name |ftplugin-name|. Use one of
these three forms:
.../ftplugin/stuff.vim
.../ftplugin/stuff_foo.vim
.../ftplugin/stuff/bar.vim
"stuff" is the filetype, "foo" and "bar" are arbitrary names.
SUMMARY *ftplugin-special*
Summary of special things to use in a filetype plugin:
<LocalLeader> Value of "maplocalleader", which the user defines as
the keys that filetype plugin mappings start with.
map <buffer> Define a mapping local to the buffer.
noremap <script> Only remap mappings defined in this script that start
with <SID>.
setlocal Set an option for the current buffer only.
command -buffer Define a user command local to the buffer.
exists("*s:Func") Check if a function was already defined.
Also see |plugin-special|, the special things used for all plugins.
==============================================================================
*41.13* Writing a compiler plugin *write-compiler-plugin*
A compiler plugin sets options for use with a specific compiler. The user can
load it with the |:compiler| command. The main use is to set the
'errorformat' and 'makeprg' options.
Easiest is to have a look at examples. This command will edit all the default
compiler plugins: >
next $VIMRUNTIME/compiler/*.vim
Type `:next` to go to the next plugin file.
There are two special items about these files. First is a mechanism to allow
a user to overrule or add to the default file. The default files start with: >
if exists("g:current_compiler")
finish
endif
g:current_compiler = "mine"
When you write a compiler file and put it in your personal runtime directory
(e.g., ~/.vim/compiler for Unix), you set the "current_compiler" variable to
make the default file skip the settings.
*:CompilerSet*
The second mechanism is to use ":set" for ":compiler!" and ":setlocal" for
":compiler". Vim defines the ":CompilerSet" user command for this. However,
older Vim versions don't, thus your plugin should define it then. This is an
example: >
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat& " use the default 'errorformat'
CompilerSet makeprg=nmake
When you write a compiler plugin for the Vim distribution or for a system-wide
runtime directory, use the mechanism mentioned above. When
"current_compiler" was already set by a user plugin nothing will be done.
When you write a compiler plugin to overrule settings from a default plugin,
don't check "current_compiler". This plugin is supposed to be loaded
last, thus it should be in a directory at the end of 'runtimepath'. For Unix
that could be ~/.vim/after/compiler.
==============================================================================
*41.14* Writing a plugin that loads quickly *write-plugin-quickload*
A plugin may grow and become quite long. The startup delay may become
noticeable, while you hardly ever use the plugin. Then it's time for a
quickload plugin.
The basic idea is that the plugin is loaded twice. The first time user
commands and mappings are defined that offer the functionality. The second
time the functions that implement the functionality are defined.
It may sound surprising that quickload means loading a script twice. What we
mean is that it loads quickly the first time, postponing the bulk of the
script to the second time, which only happens when you actually use it. When
you always use the functionality it actually gets slower!
This uses a FuncUndefined autocommand. Since Vim 7 there is an alternative:
use the |autoload| functionality |41.15|. That will also use |Vim9| script
instead of legacy script that is used here.
The following example shows how it's done: >
" Vim global plugin for demonstrating quick loading
" Last Change: 2005 Feb 25
" Maintainer: Bram Moolenaar <Bram@vim.org>
" License: This file is placed in the public domain.
if !exists("s:did_load")
command -nargs=* BNRead call BufNetRead(<f-args>)
map <F19> :call BufNetWrite('something')<CR>
let s:did_load = 1
exe 'au FuncUndefined BufNet* source ' .. expand('<sfile>')
finish
endif
function BufNetRead(...)
echo 'BufNetRead(' .. string(a:000) .. ')'
" read functionality here
endfunction
function BufNetWrite(...)
echo 'BufNetWrite(' .. string(a:000) .. ')'
" write functionality here
endfunction
When the script is first loaded "s:did_load" is not set. The commands between
the "if" and "endif" will be executed. This ends in a |:finish| command, thus
the rest of the script is not executed.
The second time the script is loaded "s:did_load" exists and the commands
after the "endif" are executed. This defines the (possible long)
BufNetRead() and BufNetWrite() functions.
If you drop this script in your plugin directory Vim will execute it on
startup. This is the sequence of events that happens:
1. The "BNRead" command is defined and the <F19> key is mapped when the script
is sourced at startup. A |FuncUndefined| autocommand is defined. The
":finish" command causes the script to terminate early.
2. The user types the BNRead command or presses the <F19> key. The
BufNetRead() or BufNetWrite() function will be called.
3. Vim can't find the function and triggers the |FuncUndefined| autocommand
event. Since the pattern "BufNet*" matches the invoked function, the
command "source fname" will be executed. "fname" will be equal to the name
of the script, no matter where it is located, because it comes from
expanding "<sfile>" (see |expand()|).
4. The script is sourced again, the "s:did_load" variable exists and the
functions are defined.
Notice that the functions that are loaded afterwards match the pattern in the
|FuncUndefined| autocommand. You must make sure that no other plugin defines
functions that match this pattern.
==============================================================================
*41.15* Writing library scripts *write-library-script*
Some functionality will be required in several places. When this becomes more
than a few lines you will want to put it in one script and use it from many
scripts. We will call that one script a library script.
Manually loading a library script is possible, so long as you avoid loading it
when it's already done. You can do this with the |exists()| function.
Example: >
if !exists('*MyLibFunction')
runtime library/mylibscript.vim
endif
MyLibFunction(arg)
Here you need to know that MyLibFunction() is defined in a script
"library/mylibscript.vim" in one of the directories in 'runtimepath'.
To make this a bit simpler Vim offers the autoload mechanism. Then the
example looks like this: >
mylib#myfunction(arg)
That's a lot simpler, isn't it? Vim will recognize the function name by the
embedded "#" character and when it's not defined search for the script
"autoload/mylib.vim" in 'runtimepath'. That script must define the
"mylib#myfunction()" function.
You can put many other functions in the mylib.vim script, you are free to
organize your functions in library scripts. But you must use function names
where the part before the '#' matches the script name. Otherwise Vim would
not know what script to load.
If you get really enthusiastic and write lots of library scripts, you may
want to use subdirectories. Example: >
netlib#ftp#read('somefile')
For Unix the library script used for this could be:
~/.vim/autoload/netlib/ftp.vim
Where the function is defined like this: >
def netlib#ftp#read(fname: string)
# Read the file fname through ftp
enddef
Notice that the name the function is defined with is exactly the same as the
name used for calling the function. And the part before the last '#'
exactly matches the subdirectory and script name.
You can use the same mechanism for variables: >
var weekdays = dutch#weekdays
This will load the script "autoload/dutch.vim", which should contain something
like: >
var dutch#weekdays = ['zondag', 'maandag', 'dinsdag', 'woensdag',
\ 'donderdag', 'vrijdag', 'zaterdag']
Further reading: |autoload|.
==============================================================================
*41.16* Distributing Vim scripts *distribute-script*
Vim users will look for scripts on the Vim website: http://www.vim.org.
If you made something that is useful for others, share it!
Another place is github. But there you need to know where to find it! The
advantage is that most plugin managers fetch plugins from github. You'll have
to use your favorite search engine to find them.
Vim scripts can be used on any system. However, there might not be a tar or
gzip command. If you want to pack files together and/or compress them the
"zip" utility is recommended.
For utmost portability use Vim itself to pack scripts together. This can be
done with the Vimball utility. See |vimball|.
It's good if you add a line to allow automatic updating. See |glvs-plugins|.
==============================================================================
Next chapter: |usr_42.txt| Add new menus

View File

@ -1,4 +1,4 @@
*usr_45.txt* For Vim version 8.2. Last change: 2020 Jun 11
*usr_45.txt* For Vim version 8.2. Last change: 2022 May 13
VIM USER MANUAL - by Bram Moolenaar
@ -15,7 +15,7 @@ in various languages is explained.
|45.4| Editing files with a different encoding
|45.5| Entering language text
Next chapter: |usr_46.txt| Write plugins using Vim9 script
Next chapter: |usr_50.txt| Advanced Vim script writing
Previous chapter: |usr_44.txt| Your own syntax highlighted
Table of contents: |usr_toc.txt|
@ -408,6 +408,6 @@ Don't type the spaces. See |i_CTRL-V_digit| for the details.
==============================================================================
Next chapter: |usr_46.txt| Write plugins using Vim9 script
Next chapter: |usr_50.txt| Advanced Vim script writing
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

25
runtime/doc/usr_50.txt Normal file
View File

@ -0,0 +1,25 @@
*usr_50.txt* For Vim version 8.2. Last change: 2022 May 13
VIM USER MANUAL - by Bram Moolenaar
Advanced Vim script writing
TODO - this chapter is to be written
|50.1| Writing stuff
Next chapter: |usr_51.txt| Create a plugin
Previous chapter: |usr_45.txt| Select your language (local)
Table of contents: |usr_toc.txt|
==============================================================================
*50.1* Writing stuff
TODO
==============================================================================
Next chapter: |usr_51.txt| Create a plugin
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

860
runtime/doc/usr_51.txt Normal file
View File

@ -0,0 +1,860 @@
*usr_51.txt* For Vim version 8.2. Last change: 2022 May 13
VIM USER MANUAL - by Bram Moolenaar
Write plugins
Plugins can be used to define settings for a specific type of file, syntax
highlighting and many other things. This chapter explains how to write the
most common Vim plugins.
|51.1| Writing a generic plugin
|51.2| Writing a filetype plugin
|51.3| Writing a compiler plugin
|51.4| Writing a plugin that loads quickly
|51.5| Writing library scripts
|51.6| Distributing Vim scripts
Next chapter: |usr_52.txt| Write plugins using Vim9 script
Previous chapter: |usr_50.txt| Advanced Vim script writing
Table of contents: |usr_toc.txt|
==============================================================================
*51.1* Writing a generic plugin *write-plugin*
You can write a Vim script in such a way that many people can use it. This is
called a plugin. Vim users can drop your script in their plugin directory and
use its features right away |add-plugin|.
There are actually two types of plugins:
global plugins: For all types of files.
filetype plugins: Only for files of a specific type.
In this section the first type is explained. Most items are also relevant for
writing filetype plugins. The specifics for filetype plugins are in the next
section |write-filetype-plugin|.
NAME
First of all you must choose a name for your plugin. The features provided
by the plugin should be clear from its name. And it should be unlikely that
someone else writes a plugin with the same name but which does something
different.
A script that corrects typing mistakes could be called "typecorrect.vim". We
will use it here as an example.
For the plugin to work for everybody, it should follow a few guidelines. This
will be explained step-by-step. The complete example plugin is at the end.
BODY
Let's start with the body of the plugin, the lines that do the actual work: >
14 iabbrev teh the
15 iabbrev otehr other
16 iabbrev wnat want
17 iabbrev synchronisation
18 \ synchronization
The actual list should be much longer, of course.
The line numbers have only been added to explain a few things, don't put them
in your plugin file!
FIRST LINE
>
1 vim9script noclear
You need to use `vimscript` as the very first command. Best is to put it in
the very first line.
The script we are writing will have a `finish` command to bail out when it is
loaded a second time. To avoid that the items defined in the script are lost
the "noclear" argument is used. More info about this at |vim9-reload|.
HEADER
You will probably add new corrections to the plugin and soon have several
versions lying around. And when distributing this file, people will want to
know who wrote this wonderful plugin and where they can send remarks.
Therefore, put a header at the top of your plugin: >
2 # Vim global plugin for correcting typing mistakes
3 # Last Change: 2021 Dec 30
4 # Maintainer: Bram Moolenaar <Bram@vim.org>
About copyright and licensing: Since plugins are very useful and it's hardly
worth restricting their distribution, please consider making your plugin
either public domain or use the Vim |license|. A short note about this near
the top of the plugin should be sufficient. Example: >
5 # License: This file is placed in the public domain.
LINE CONTINUATION AND AVOIDING SIDE EFFECTS *use-cpo-save*
In line 18 above, the line-continuation mechanism is used |line-continuation|.
Users with 'compatible' set will run into trouble here, they will get an error
message. We can't just reset 'compatible', because that has a lot of side
effects. Instead, we will set the 'cpoptions' option to its Vim default
value and restore it later. That will allow the use of line-continuation and
make the script work for most people. It is done like this: >
11 var save_cpo = &cpo
12 set cpo&vim
..
42 &cpo = save_cpo
We first store the old value of 'cpoptions' in the "save_cpo" variable. At
the end of the plugin this value is restored.
Notice that "save_cpo" is a script-local variable. A global variable could
already be in use for something else. Always use script-local variables for
things that are only used in the script.
NOT LOADING
It is possible that a user doesn't always want to load this plugin. Or the
system administrator has dropped it in the system-wide plugin directory, but a
user has his own plugin he wants to use. Then the user must have a chance to
disable loading this specific plugin. These lines will make it possible: >
7 if exists("g:loaded_typecorrect")
8 finish
9 endif
10 g:loaded_typecorrect = 1
This also avoids that when the script is loaded twice it would pointlessly
redefine functions and cause trouble for autocommands that are added twice.
The name is recommended to start with "g:loaded_" and then the file name of
the plugin, literally. The "g:" is prepended to make the variable global, so
that other places can check whether its functionality is available. Without
"g:" it would be local to the script.
Using `finish` stops Vim from reading the rest of the file, it's much quicker
than using if-endif around the whole file, since Vim would still need to parse
the commands to find the `endif`.
MAPPING
Now let's make the plugin more interesting: We will add a mapping that adds a
correction for the word under the cursor. We could just pick a key sequence
for this mapping, but the user might already use it for something else. To
allow the user to define which keys a mapping in a plugin uses, the <Leader>
item can be used: >
22 map <unique> <Leader>a <Plug>TypecorrAdd;
The "<Plug>TypecorrAdd;" thing will do the work, more about that further on.
The user can set the "g:mapleader" variable to the key sequence that he wants
plugin mappings to start with. Thus if the user has done: >
g:mapleader = "_"
the mapping will define "_a". If the user didn't do this, the default value
will be used, which is a backslash. Then a map for "\a" will be defined.
Note that <unique> is used, this will cause an error message if the mapping
already happened to exist. |:map-<unique>|
But what if the user wants to define his own key sequence? We can allow that
with this mechanism: >
21 if !hasmapto('<Plug>TypecorrAdd;')
22 map <unique> <Leader>a <Plug>TypecorrAdd;
23 endif
This checks if a mapping to "<Plug>TypecorrAdd;" already exists, and only
defines the mapping from "<Leader>a" if it doesn't. The user then has a
chance of putting this in his vimrc file: >
map ,c <Plug>TypecorrAdd;
Then the mapped key sequence will be ",c" instead of "_a" or "\a".
PIECES
If a script gets longer, you often want to break up the work in pieces. You
can use functions or mappings for this. But you don't want these functions
and mappings to interfere with the ones from other scripts. For example, you
could define a function Add(), but another script could try to define the same
function. To avoid this, we define the function local to the script.
Fortunately, in |Vim9| script this is the default. In a legacy script you
would need to prefix the name with "s:".
We will define a function that adds a new typing correction: >
30 def Add(from: string, correct: bool)
31 var to = input("type the correction for " .. from .. ": ")
32 exe ":iabbrev " .. from .. " " .. to
..
36 enddef
Now we can call the function Add() from within this script. If another
script also defines Add(), it will be local to that script and can only
be called from that script. There can also be a global g:Add() function,
which is again another function.
<SID> can be used with mappings. It generates a script ID, which identifies
the current script. In our typing correction plugin we use it like this: >
24 noremap <unique> <script> <Plug>TypecorrAdd; <SID>Add
..
28 noremap <SID>Add :call <SID>Add(expand("<cword>"), true)<CR>
Thus when a user types "\a", this sequence is invoked: >
\a -> <Plug>TypecorrAdd; -> <SID>Add -> :call <SID>Add(...)
If another script also maps <SID>Add, it will get another script ID and
thus define another mapping.
Note that instead of Add() we use <SID>Add() here. That is because the
mapping is typed by the user, thus outside of the script context. The <SID>
is translated to the script ID, so that Vim knows in which script to look for
the Add() function.
This is a bit complicated, but it's required for the plugin to work together
with other plugins. The basic rule is that you use <SID>Add() in mappings and
Add() in other places (the script itself, autocommands, user commands).
We can also add a menu entry to do the same as the mapping: >
26 noremenu <script> Plugin.Add\ Correction <SID>Add
The "Plugin" menu is recommended for adding menu items for plugins. In this
case only one item is used. When adding more items, creating a submenu is
recommended. For example, "Plugin.CVS" could be used for a plugin that offers
CVS operations "Plugin.CVS.checkin", "Plugin.CVS.checkout", etc.
Note that in line 28 ":noremap" is used to avoid that any other mappings cause
trouble. Someone may have remapped ":call", for example. In line 24 we also
use ":noremap", but we do want "<SID>Add" to be remapped. This is why
"<script>" is used here. This only allows mappings which are local to the
script. |:map-<script>| The same is done in line 26 for ":noremenu".
|:menu-<script>|
<SID> AND <Plug> *using-<Plug>*
Both <SID> and <Plug> are used to avoid that mappings of typed keys interfere
with mappings that are only to be used from other mappings. Note the
difference between using <SID> and <Plug>:
<Plug> is visible outside of the script. It is used for mappings which the
user might want to map a key sequence to. <Plug> is a special code
that a typed key will never produce.
To make it very unlikely that other plugins use the same sequence of
characters, use this structure: <Plug> scriptname mapname
In our example the scriptname is "Typecorr" and the mapname is "Add".
We add a semicolon as the terminator. This results in
"<Plug>TypecorrAdd;". Only the first character of scriptname and
mapname is uppercase, so that we can see where mapname starts.
<SID> is the script ID, a unique identifier for a script.
Internally Vim translates <SID> to "<SNR>123_", where "123" can be any
number. Thus a function "<SID>Add()" will have a name "<SNR>11_Add()"
in one script, and "<SNR>22_Add()" in another. You can see this if
you use the ":function" command to get a list of functions. The
translation of <SID> in mappings is exactly the same, that's how you
can call a script-local function from a mapping.
USER COMMAND
Now let's add a user command to add a correction: >
38 if !exists(":Correct")
39 command -nargs=1 Correct :call Add(<q-args>, false)
40 endif
The user command is defined only if no command with the same name already
exists. Otherwise we would get an error here. Overriding the existing user
command with ":command!" is not a good idea, this would probably make the user
wonder why the command he defined himself doesn't work. |:command|
If it did happen you can find out who to blame with: >
verbose command Correct
SCRIPT VARIABLES
When a variable starts with "s:" it is a script variable. It can only be used
inside a script. Outside the script it's not visible. This avoids trouble
with using the same variable name in different scripts. The variables will be
kept as long as Vim is running. And the same variables are used when sourcing
the same script again. |s:var|
The nice thing about |Vim9| script is that variables are local to the script
by default. You can prepend "s:" if you like, but you do not need to. And
functions in the script can also use the script variables without a prefix.
Script-local variables can also be used in functions, autocommands and user
commands that are defined in the script. Thus they are the perfect way to
share information between parts of your plugin, without it leaking out. In
our example we can add a few lines to count the number of corrections: >
19 var count = 4
..
30 def Add(from: string, correct: bool)
..
34 count += 1
35 echo "you now have " .. count .. " corrections"
36 enddef
"count" is declared and initialized to 4 in the script itself. When later
the Add() function is called, it increments "count". It doesn't matter from
where the function was called, since it has been defined in the script, it
will use the local variables from this script.
THE RESULT
Here is the resulting complete example: >
1 vim9script noclear
2 # Vim global plugin for correcting typing mistakes
3 # Last Change: 2021 Dec 30
4 # Maintainer: Bram Moolenaar <Bram@vim.org>
5 # License: This file is placed in the public domain.
6
7 if exists("g:loaded_typecorrect")
8 finish
9 endif
10 g:loaded_typecorrect = 1
11 var save_cpo = &cpo
12 set cpo&vim
13
14 iabbrev teh the
15 iabbrev otehr other
16 iabbrev wnat want
17 iabbrev synchronisation
18 \ synchronization
19 var count = 4
20
21 if !hasmapto('<Plug>TypecorrAdd;')
22 map <unique> <Leader>a <Plug>TypecorrAdd;
23 endif
24 noremap <unique> <script> <Plug>TypecorrAdd; <SID>Add
25
26 noremenu <script> Plugin.Add\ Correction <SID>Add
27
28 noremap <SID>Add :call <SID>Add(expand("<cword>"), true)<CR>
29
30 def Add(from: string, correct: bool)
31 var to = input("type the correction for " .. from .. ": ")
32 exe ":iabbrev " .. from .. " " .. to
33 if correct | exe "normal viws\<C-R>\" \b\e" | endif
34 count += 1
35 echo "you now have " .. count .. " corrections"
36 enddef
37
38 if !exists(":Correct")
39 command -nargs=1 Correct call Add(<q-args>, false)
40 endif
41
42 &cpo = save_cpo
Line 33 wasn't explained yet. It applies the new correction to the word under
the cursor. The |:normal| command is used to use the new abbreviation. Note
that mappings and abbreviations are expanded here, even though the function
was called from a mapping defined with ":noremap".
DOCUMENTATION *write-local-help*
It's a good idea to also write some documentation for your plugin. Especially
when its behavior can be changed by the user. See |add-local-help| for how
they are installed.
Here is a simple example for a plugin help file, called "typecorrect.txt": >
1 *typecorrect.txt* Plugin for correcting typing mistakes
2
3 If you make typing mistakes, this plugin will have them corrected
4 automatically.
5
6 There are currently only a few corrections. Add your own if you like.
7
8 Mappings:
9 <Leader>a or <Plug>TypecorrAdd;
10 Add a correction for the word under the cursor.
11
12 Commands:
13 :Correct {word}
14 Add a correction for {word}.
15
16 *typecorrect-settings*
17 This plugin doesn't have any settings.
The first line is actually the only one for which the format matters. It will
be extracted from the help file to be put in the "LOCAL ADDITIONS:" section of
help.txt |local-additions|. The first "*" must be in the first column of the
first line. After adding your help file do ":help" and check that the entries
line up nicely.
You can add more tags inside ** in your help file. But be careful not to use
existing help tags. You would probably use the name of your plugin in most of
them, like "typecorrect-settings" in the example.
Using references to other parts of the help in || is recommended. This makes
it easy for the user to find associated help.
FILETYPE DETECTION *plugin-filetype*
If your filetype is not already detected by Vim, you should create a filetype
detection snippet in a separate file. It is usually in the form of an
autocommand that sets the filetype when the file name matches a pattern.
Example: >
au BufNewFile,BufRead *.foo setlocal filetype=foofoo
Write this single-line file as "ftdetect/foofoo.vim" in the first directory
that appears in 'runtimepath'. For Unix that would be
"~/.vim/ftdetect/foofoo.vim". The convention is to use the name of the
filetype for the script name.
You can make more complicated checks if you like, for example to inspect the
contents of the file to recognize the language. Also see |new-filetype|.
SUMMARY *plugin-special*
Summary of special things to use in a plugin:
var name Variable local to the script.
<SID> Script-ID, used for mappings and functions local to
the script.
hasmapto() Function to test if the user already defined a mapping
for functionality the script offers.
<Leader> Value of "mapleader", which the user defines as the
keys that plugin mappings start with.
map <unique> Give a warning if a mapping already exists.
noremap <script> Use only mappings local to the script, not global
mappings.
exists(":Cmd") Check if a user command already exists.
==============================================================================
*51.2* Writing a filetype plugin *write-filetype-plugin* *ftplugin*
A filetype plugin is like a global plugin, except that it sets options and
defines mappings for the current buffer only. See |add-filetype-plugin| for
how this type of plugin is used.
First read the section on global plugins above |51.1|. All that is said there
also applies to filetype plugins. There are a few extras, which are explained
here. The essential thing is that a filetype plugin should only have an
effect on the current buffer.
DISABLING
If you are writing a filetype plugin to be used by many people, they need a
chance to disable loading it. Put this at the top of the plugin: >
# Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
b:did_ftplugin = 1
This also needs to be used to avoid that the same plugin is executed twice for
the same buffer (happens when using an ":edit" command without arguments).
Now users can disable loading the default plugin completely by making a
filetype plugin with only these lines: >
vim9script
b:did_ftplugin = 1
This does require that the filetype plugin directory comes before $VIMRUNTIME
in 'runtimepath'!
If you do want to use the default plugin, but overrule one of the settings,
you can write the different setting in a script: >
setlocal textwidth=70
Now write this in the "after" directory, so that it gets sourced after the
distributed "vim.vim" ftplugin |after-directory|. For Unix this would be
"~/.vim/after/ftplugin/vim.vim". Note that the default plugin will have set
"b:did_ftplugin", but it is ignored here.
OPTIONS
To make sure the filetype plugin only affects the current buffer use the >
setlocal
command to set options. And only set options which are local to a buffer (see
the help for the option to check that). When using `:setlocal` for global
options or options local to a window, the value will change for many buffers,
and that is not what a filetype plugin should do.
When an option has a value that is a list of flags or items, consider using
"+=" and "-=" to keep the existing value. Be aware that the user may have
changed an option value already. First resetting to the default value and
then changing it is often a good idea. Example: >
setlocal formatoptions& formatoptions+=ro
MAPPINGS
To make sure mappings will only work in the current buffer use the >
map <buffer>
command. This needs to be combined with the two-step mapping explained above.
An example of how to define functionality in a filetype plugin: >
if !hasmapto('<Plug>JavaImport;')
map <buffer> <unique> <LocalLeader>i <Plug>JavaImport;
endif
noremap <buffer> <unique> <Plug>JavaImport; oimport ""<Left><Esc>
|hasmapto()| is used to check if the user has already defined a map to
<Plug>JavaImport;. If not, then the filetype plugin defines the default
mapping. This starts with |<LocalLeader>|, which allows the user to select
the key(s) he wants filetype plugin mappings to start with. The default is a
backslash.
"<unique>" is used to give an error message if the mapping already exists or
overlaps with an existing mapping.
|:noremap| is used to avoid that any other mappings that the user has defined
interferes. You might want to use ":noremap <script>" to allow remapping
mappings defined in this script that start with <SID>.
The user must have a chance to disable the mappings in a filetype plugin,
without disabling everything. Here is an example of how this is done for a
plugin for the mail filetype: >
# Add mappings, unless the user didn't want this.
if !exists("g:no_plugin_maps") && !exists("g:no_mail_maps")
# Quote text by inserting "> "
if !hasmapto('<Plug>MailQuote;')
vmap <buffer> <LocalLeader>q <Plug>MailQuote;
nmap <buffer> <LocalLeader>q <Plug>MailQuote;
endif
vnoremap <buffer> <Plug>MailQuote; :s/^/> /<CR>
nnoremap <buffer> <Plug>MailQuote; :.,$s/^/> /<CR>
endif
Two global variables are used:
|g:no_plugin_maps| disables mappings for all filetype plugins
|g:no_mail_maps| disables mappings for the "mail" filetype
USER COMMANDS
To add a user command for a specific file type, so that it can only be used in
one buffer, use the "-buffer" argument to |:command|. Example: >
command -buffer Make make %:r.s
VARIABLES
A filetype plugin will be sourced for each buffer of the type it's for. Local
script variables will be shared between all invocations. Use local buffer
variables |b:var| if you want a variable specifically for one buffer.
FUNCTIONS
When defining a function, this only needs to be done once. But the filetype
plugin will be sourced every time a file with this filetype will be opened.
This construct makes sure the function is only defined once: >
if !exists("*Func")
def Func(arg)
...
enddef
endif
<
UNDO *undo_indent* *undo_ftplugin*
When the user does ":setfiletype xyz" the effect of the previous filetype
should be undone. Set the b:undo_ftplugin variable to the commands that will
undo the settings in your filetype plugin. Example: >
let b:undo_ftplugin = "setlocal fo< com< tw< commentstring<"
\ .. "| unlet b:match_ignorecase b:match_words b:match_skip"
Using ":setlocal" with "<" after the option name resets the option to its
global value. That is mostly the best way to reset the option value.
This does require removing the "C" flag from 'cpoptions' to allow line
continuation, as mentioned above |use-cpo-save|.
For undoing the effect of an indent script, the b:undo_indent variable should
be set accordingly.
Both these variables use legacy script syntax, not |Vim9| syntax.
FILE NAME
The filetype must be included in the file name |ftplugin-name|. Use one of
these three forms:
.../ftplugin/stuff.vim
.../ftplugin/stuff_foo.vim
.../ftplugin/stuff/bar.vim
"stuff" is the filetype, "foo" and "bar" are arbitrary names.
SUMMARY *ftplugin-special*
Summary of special things to use in a filetype plugin:
<LocalLeader> Value of "maplocalleader", which the user defines as
the keys that filetype plugin mappings start with.
map <buffer> Define a mapping local to the buffer.
noremap <script> Only remap mappings defined in this script that start
with <SID>.
setlocal Set an option for the current buffer only.
command -buffer Define a user command local to the buffer.
exists("*s:Func") Check if a function was already defined.
Also see |plugin-special|, the special things used for all plugins.
==============================================================================
*51.3* Writing a compiler plugin *write-compiler-plugin*
A compiler plugin sets options for use with a specific compiler. The user can
load it with the |:compiler| command. The main use is to set the
'errorformat' and 'makeprg' options.
Easiest is to have a look at examples. This command will edit all the default
compiler plugins: >
next $VIMRUNTIME/compiler/*.vim
Type `:next` to go to the next plugin file.
There are two special items about these files. First is a mechanism to allow
a user to overrule or add to the default file. The default files start with: >
vim9script
if exists("g:current_compiler")
finish
endif
g:current_compiler = "mine"
When you write a compiler file and put it in your personal runtime directory
(e.g., ~/.vim/compiler for Unix), you set the "current_compiler" variable to
make the default file skip the settings.
*:CompilerSet*
The second mechanism is to use ":set" for ":compiler!" and ":setlocal" for
":compiler". Vim defines the ":CompilerSet" user command for this. However,
older Vim versions don't, thus your plugin should define it then. This is an
example: >
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat& " use the default 'errorformat'
CompilerSet makeprg=nmake
When you write a compiler plugin for the Vim distribution or for a system-wide
runtime directory, use the mechanism mentioned above. When
"current_compiler" was already set by a user plugin nothing will be done.
When you write a compiler plugin to overrule settings from a default plugin,
don't check "current_compiler". This plugin is supposed to be loaded
last, thus it should be in a directory at the end of 'runtimepath'. For Unix
that could be ~/.vim/after/compiler.
==============================================================================
*51.4* Writing a plugin that loads quickly *write-plugin-quickload*
A plugin may grow and become quite long. The startup delay may become
noticeable, while you hardly ever use the plugin. Then it's time for a
quickload plugin.
The basic idea is that the plugin is loaded twice. The first time user
commands and mappings are defined that offer the functionality. The second
time the functions that implement the functionality are defined.
It may sound surprising that quickload means loading a script twice. What we
mean is that it loads quickly the first time, postponing the bulk of the
script to the second time, which only happens when you actually use it. When
you always use the functionality it actually gets slower!
This uses a FuncUndefined autocommand. Since Vim 7 there is an alternative:
use the |autoload| functionality |51.5|. That will also use |Vim9| script
instead of legacy script that is used here.
The following example shows how it's done: >
" Vim global plugin for demonstrating quick loading
" Last Change: 2005 Feb 25
" Maintainer: Bram Moolenaar <Bram@vim.org>
" License: This file is placed in the public domain.
if !exists("s:did_load")
command -nargs=* BNRead call BufNetRead(<f-args>)
map <F19> :call BufNetWrite('something')<CR>
let s:did_load = 1
exe 'au FuncUndefined BufNet* source ' .. expand('<sfile>')
finish
endif
function BufNetRead(...)
echo 'BufNetRead(' .. string(a:000) .. ')'
" read functionality here
endfunction
function BufNetWrite(...)
echo 'BufNetWrite(' .. string(a:000) .. ')'
" write functionality here
endfunction
When the script is first loaded "s:did_load" is not set. The commands between
the "if" and "endif" will be executed. This ends in a |:finish| command, thus
the rest of the script is not executed.
The second time the script is loaded "s:did_load" exists and the commands
after the "endif" are executed. This defines the (possible long)
BufNetRead() and BufNetWrite() functions.
If you drop this script in your plugin directory Vim will execute it on
startup. This is the sequence of events that happens:
1. The "BNRead" command is defined and the <F19> key is mapped when the script
is sourced at startup. A |FuncUndefined| autocommand is defined. The
":finish" command causes the script to terminate early.
2. The user types the BNRead command or presses the <F19> key. The
BufNetRead() or BufNetWrite() function will be called.
3. Vim can't find the function and triggers the |FuncUndefined| autocommand
event. Since the pattern "BufNet*" matches the invoked function, the
command "source fname" will be executed. "fname" will be equal to the name
of the script, no matter where it is located, because it comes from
expanding "<sfile>" (see |expand()|).
4. The script is sourced again, the "s:did_load" variable exists and the
functions are defined.
Notice that the functions that are loaded afterwards match the pattern in the
|FuncUndefined| autocommand. You must make sure that no other plugin defines
functions that match this pattern.
==============================================================================
*51.5* Writing library scripts *write-library-script*
Some functionality will be required in several places. When this becomes more
than a few lines you will want to put it in one script and use it from many
scripts. We will call that one script a library script.
Manually loading a library script is possible, so long as you avoid loading it
when it's already done. You can do this with the |exists()| function.
Example: >
if !exists('*MyLibFunction')
runtime library/mylibscript.vim
endif
MyLibFunction(arg)
Here you need to know that MyLibFunction() is defined in a script
"library/mylibscript.vim" in one of the directories in 'runtimepath'.
To make this a bit simpler Vim offers the autoload mechanism. Then the
example looks like this: >
mylib#myfunction(arg)
That's a lot simpler, isn't it? Vim will recognize the function name by the
embedded "#" character and when it's not defined search for the script
"autoload/mylib.vim" in 'runtimepath'. That script must define the
"mylib#myfunction()" function.
You can put many other functions in the mylib.vim script, you are free to
organize your functions in library scripts. But you must use function names
where the part before the '#' matches the script name. Otherwise Vim would
not know what script to load.
If you get really enthusiastic and write lots of library scripts, you may
want to use subdirectories. Example: >
netlib#ftp#read('somefile')
For Unix the library script used for this could be:
~/.vim/autoload/netlib/ftp.vim
Where the function is defined like this: >
def netlib#ftp#read(fname: string)
# Read the file fname through ftp
enddef
Notice that the name the function is defined with is exactly the same as the
name used for calling the function. And the part before the last '#'
exactly matches the subdirectory and script name.
You can use the same mechanism for variables: >
var weekdays = dutch#weekdays
This will load the script "autoload/dutch.vim", which should contain something
like: >
var dutch#weekdays = ['zondag', 'maandag', 'dinsdag', 'woensdag',
\ 'donderdag', 'vrijdag', 'zaterdag']
Further reading: |autoload|.
==============================================================================
*51.6* Distributing Vim scripts *distribute-script*
Vim users will look for scripts on the Vim website: http://www.vim.org.
If you made something that is useful for others, share it!
Another place is github. But there you need to know where to find it! The
advantage is that most plugin managers fetch plugins from github. You'll have
to use your favorite search engine to find them.
Vim scripts can be used on any system. However, there might not be a tar or
gzip command. If you want to pack files together and/or compress them the
"zip" utility is recommended.
For utmost portability use Vim itself to pack scripts together. This can be
done with the Vimball utility. See |vimball|.
It's good if you add a line to allow automatic updating. See |glvs-plugins|.
==============================================================================
Next chapter: |usr_52.txt| Write plugins using Vim9 script
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*usr_46.txt* For Vim version 8.2. Last change: 2020 Jun 14
*usr_52.txt* For Vim version 8.2. Last change: 2022 May 13
VIM USER MANUAL - by Bram Moolenaar
@ -9,17 +9,17 @@ The Vim9 script language is used for writing plugins, especially larger ones
that use multiple files. This chapter explains how to split up a plugin into
modules, import and export items and keep the rest local.
|46.1| Introduction
|46.2| Variable declarations
|46.3| Functions and types
|46.?| Using a Vim9 script from legacy script
|52.1| Introduction
|52.2| Variable declarations
|52.3| Functions and types
|52.4| Using a Vim9 script from legacy script
Next chapter: |usr_90.txt| Installing Vim
Previous chapter: |usr_45.txt| Select your language (locale)
Previous chapter: |usr_51.txt| Create a plugin
Table of contents: |usr_toc.txt|
==============================================================================
*46.1* Introduction *vim9-script-intro*
*52.1* Introduction *vim9-script-intro*
Vim9 script was designed to make it easier to write large Vim scripts. It
looks more like other script languages, especially Typescript. Also,
@ -69,7 +69,7 @@ Notice that the assignment `result = GetPart(count)` does not use the `let`
command. That is explained in the next section.
==============================================================================
*46.2* Variable declarations *vim9-declarations*
*52.2* Variable declarations *vim9-declarations*
In Vim9 script variables are declared once with a `:let` or `:const` command.
Assigning a value is done without `:let` and it is not possible to `:unlet`
@ -108,7 +108,7 @@ Although it's shorter to do: >
let word = condition ? 'yes' : 'no'
==============================================================================
*46.3* Functions and types
*52.3* Functions and types
Legacy Vim script does have type checking, but this happens at runtime, when
the code is executed. And it's permissive, often a computation gives an
@ -161,7 +161,7 @@ multiple types, you can use the "any" type: >
enddef
==============================================================================
*46.?* Using a Vim9 script from legacy script *source-vim9-script*
*52.4* Using a Vim9 script from legacy script *source-vim9-script*
In some cases you have a legacy Vim script where you want to use items from a
Vim9 script. For example in your .vimrc you want to initialize a plugin. The

View File

@ -1,4 +1,4 @@
*usr_90.txt* For Vim version 8.2. Last change: 2020 Jun 11
*usr_90.txt* For Vim version 8.2. Last change: 2022 May 13
VIM USER MANUAL - by Bram Moolenaar
@ -15,7 +15,7 @@ upgrading to a new version is done.
|90.4| Common installation issues
|90.5| Uninstalling Vim
Previous chapter: |usr_46.txt| Write plugins using Vim9 script
Previous chapter: |usr_52.txt| Write plugins using Vim9 script
Table of contents: |usr_toc.txt|
==============================================================================

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