Compare commits

...

146 Commits

Author SHA1 Message Date
bf6614643f patch 8.2.5110: icon filetype not recognized from the first line
Problem:    Icon filetype not recognized from the first line.
Solution:   Add a check for the first line. (Doug Kearns)
2022-06-16 13:27:18 +01:00
7a1d32809b patch 8.2.5109: mode not updated after CTRL-O CTRL-C in Insert mode
Problem:    Mode not updated after CTRL-O CTRL-C in Insert mode.
Solution:   Set redraw_mode and use it. (closes #10581)
2022-06-16 13:04:45 +01:00
308660bd26 patch 8.2.5108: retab test disabled because it hangs on MS-Windows
Problem:    Retab test disabled because it hangs on MS-Windows.
Solution:   Also set got_int at the other place a overlong text is detected.
2022-06-16 12:10:48 +01:00
93a1096fe4 patch 8.2.5107: some callers of rettv_list_alloc() check for not OK
Problem:    Some callers of rettv_list_alloc() check for not OK. (Christ van
            Willegen)
Solution:   Use "==" instead of "!=" when checking the return value.
2022-06-16 11:42:09 +01:00
44068e97db patch 8.2.5106: default cmdwin mappings are re-mappable
Problem:    Default cmdwin mappings are re-mappable.
Solution:   Make the default mappings not re-mappable. (closes #10580)  Use
            symbols for the first do_map() argument.
2022-06-16 11:14:55 +01:00
83497f8758 patch 8.2.5105: test still hangs on MS-Windows
Problem:    Test still hangs on MS-Windows.
Solution:   Skip "nocatch" test the right way.
2022-06-15 22:11:45 +01:00
b31cb04771 patch 8.2.5104: test hangs on MS-Windows
Problem:    Test hangs on MS-Windows.
Solution:   Skip another test on MS-Windows.
2022-06-15 21:28:55 +01:00
34f99584c7 patch 8.2.5103: build fails with small features
Problem:    Build fails with small features.
Solution:   Add #ifdef.  Skip test on MS-Windows.
2022-06-15 21:08:09 +01:00
8bea171f15 patch 8.2.5102: interrupt not caught in test
Problem:    Interrupt not caught in test.
Solution:   Consider an exception thrown in the current try/catch when got_int
            is set.  Also catch early exit when not using try/catch.
2022-06-15 20:49:35 +01:00
cf65d88ff8 patch 8.2.5101: MS-Windows with MinGW: $CC may be "cc" instead of "gcc"
Problem:    MS-Windows with MinGW: $CC may be "cc" instead of "gcc".
Solution:   Set $CC if it is not matching "clang". (Yegappan Lakshmanan,
            closes #10578)
2022-06-15 18:31:45 +01:00
dad5d2f87b patch 8.2.5100: memory usage tests are not retried
Problem:    Memory usage tests are not retried.
Solution:   Mark memory usage tests as flaky.
2022-06-15 18:08:42 +01:00
62eb239c1c patch 8.2.5099: some terminal tests are not retried
Problem:    Some terminal tests are not retried.
Solution:   Mark terminal tests as flaky.
2022-06-15 17:52:44 +01:00
fc9f0fd6d1 patch 8.2.5098: spelldump test sometimes hangs
Problem:    Spelldump test sometimes hangs.
Solution:   Catch the problem of the spell file not being found to avoid
            hanging in the download dialog.
2022-06-15 16:57:44 +01:00
74ac29cecd patch 8.2.5097: using uninitialized memory when using 'listchars'
Problem:    Using uninitialized memory when using 'listchars'.
Solution:   Use the length returned by mb_char2bytes(). (closes #10576)
2022-06-15 12:12:44 +01:00
377d92a912 patch 8.2.5096: terminal test still fails with some shell commands
Problem:    Terminal test still fails with some shell commands.
Solution:   Add missing "call".  (closes #10530)
2022-06-14 21:22:12 +01:00
99f4b6e082 patch 8.2.5095: terminal test still fails with some shell commands
Problem:    Terminal test still fails with some shell commands.
Solution:   Disable setting the window title in the Vim instance running in a
            terminal window. (closes #10530)
2022-06-14 19:52:16 +01:00
8c1b8cb2e0 Update runtime files 2022-06-14 17:41:28 +01:00
217ea51ee4 patch 8.2.5094: MS-Windows GUI: empty command may cause a dialog
Problem:    MS-Windows GUI: empty command may cause a dialog.
Solution:   Delete the dialog file.  Improve the message.
2022-06-14 17:13:59 +01:00
6ce1b59228 patch 8.2.5093: error message for unknown command may have the command twice
Problem:    Error message for unknown command may mention the command twice.
            (Malcolm Rowe)
Solution:   Add the did_append_cmd flag. (closes #10570)
2022-06-14 16:06:07 +01:00
48ce135e6d patch 8.2.5092: using "'<,'>" in Ex mode may compare unrelated pointers
Problem:    Using "'<,'>" in Ex mode may compare unrelated pointers.
Solution:   Set eap->cmd to "+" only later.
2022-06-14 15:43:18 +01:00
e564c7009d patch 8.2.5091: terminal test fails with some shell commands
Problem:    Terminal test fails with some shell commands.
Solution:   Disable setting the window title. (closes #10530)
2022-06-14 15:00:28 +01:00
831d6d4c02 patch 8.2.5090: MS-Windows: vim.def is no longer used
Problem:    MS-Windows: vim.def is no longer used.
Solution:   Delete vim.def. (Ken Takata, closes #10569)
2022-06-14 13:58:29 +01:00
ca195cc84f patch 8.2.5089: some functions return a different value on failure
Problem:    Some functions return a different value on failure.
Solution:   Initialize the return value earlier. (Yegappan Lakshmanan,
            closes #10568)
2022-06-14 13:42:26 +01:00
cd7496382e patch 8.2.5088: value of cmod_verbose is a bit complicated to use
Problem:    Value of cmod_verbose is a bit complicated to use.
Solution:   Use zero for not set, value + 1 when set. (closes #10564)
2022-06-14 13:30:35 +01:00
1630bd980a patch 8.2.5087: cannot build with clang on MS-Windows
Problem:    Cannot build with clang on MS-Windows.
Solution:   Add support for building with clang. (Yegappan Lakshmanan,
            closes #10557)
2022-06-14 12:30:25 +01:00
361f9d2da4 patch 8.2.5086: CI runs on Windows 2019
Problem:    CI runs on Windows 2019.
Solution:   Switch to Windows 2022.
2022-06-14 11:35:21 +01:00
819ab82f7e patch 8.2.5085: gcc gives warning for signed/unsigned difference
Problem:    Gcc gives warning for signed/unsigned difference.
Solution:   Use a different pointer type. (John Marriott)
2022-06-13 22:34:14 +01:00
2d12c25a1b patch 8.2.5084: when the GUI shows a dialog tests get stuck
Problem:    When the GUI shows a dialog tests get stuck.
Solution:   Add the --gui-dialog-file argument.
2022-06-13 21:42:45 +01:00
db77c49401 patch 8.2.5083: autocmd test still fails on MS-Windows
Problem:    Autocmd test still fails on MS-Windows.
Solution:   Change backward to forward slashes.
2022-06-12 23:26:50 +01:00
9397423985 patch 8.2.5082: retab test fails
Problem:    Retab test fails.
Solution:   Disable the test for now.
2022-06-12 23:05:07 +01:00
7c0d0c3c75 patch 8.2.5081: autocmd test fails on MS-Windows
Problem:    Autocmd test fails on MS-Windows.
Solution:   Set shellslash to get forward slashes.
2022-06-12 22:33:33 +01:00
6ba83ba9ee Update runtime files. 2022-06-12 22:15:57 +01:00
a7ac4c9c39 patch 8.2.5080: when indenting gets out of hand it is hard to stop
Problem:    When indenting gets out of hand it is hard to stop.
Solution:   When line gets too long set got_int.
2022-06-12 21:11:03 +01:00
d8c9d32c89 patch 8.2.5079: DirChanged autocommand may use freed memory
Problem:    DirChanged autocommand may use freed memory. (Shane-XB Qian)
Solution:   Free the memory later. (closes #10555)
2022-06-12 11:49:16 +01:00
3269efdf01 patch 8.2.5078: substitute test has a one second delay
Problem:    Substitute test has a one second delay.
Solution:   Use ":silent!".  Add another test case. (closes #10558)
2022-06-12 11:13:05 +01:00
a34b4460c2 patch 8.2.5077: various warnings from clang on MS-Windows
Problem:    Various warnings from clang on MS-Windows.
Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #10553)
2022-06-11 10:43:26 +01:00
2e7cba347f patch 8.2.5076: unnecessary code
Problem:    Unnecessary code.
Solution:   Remove code and replace with function call. (closes #10552)
2022-06-10 15:30:32 +01:00
b74e046491 patch 8.2.5075: clang gives an out of bounds warning
Problem:    Clang gives an out of bounds warning.
Solution:   adjust conditional expression (John Marriott)
2022-06-10 14:52:35 +01:00
ad73cc2ff2 patch 8.2.5074: spell test fails on MS-Windows
Problem:    Spell test fails on MS-Windows.
Solution:   Do not change 'encoding'
2022-06-10 00:02:10 +01:00
35d7a2fb13 patch 8.2.5073: clang on MS-Windows produces warnings
Problem:    Clang on MS-Windows produces warnings.
Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #10546)
2022-06-09 20:53:54 +01:00
63f3260378 Update runtime files 2022-06-09 20:45:54 +01:00
2813f38e02 patch 8.2.5072: using uninitialized value and freed memory in spell command
Problem:    Using uninitialized value and freed memory in spell command.
Solution:   Initialize "attr".  Check for empty line early.
2022-06-09 19:54:24 +01:00
f5465ff5c8 patch 8.2.5071: with some Mac OS version clockid_t is redefined
Problem:    With some Mac OS version clockid_t is redefined.
Solution:   Adjust #ifdefs. (Ozaki Kiichi, closes #10549)
2022-06-09 14:50:10 +01:00
b5f0801b1f patch 8.2.5070: unnecessary code
Problem:    Unnecessary code.
Solution:   Remove code that isn't needed. (closes #10534)
2022-06-09 13:55:28 +01:00
ebb01bdb27 patch 8.2.5069: various warnings from clang on MS-Windows
Problem:    Various warnings from clang on MS-Windows.
Solution:   Fix the code to avoid the warnings. (Yegappan Lakshmanan,
            closes #10538)
2022-06-08 15:14:09 +01:00
68093d36bf patch 8.2.5068: gcc 12.1 warning when building tee
Problem:    Gcc 12.1 warning when building tee.
Solution:   Change type to size_t. (John Marriott)
2022-06-08 13:11:45 +01:00
f78b52ba24 patch 8.2.5067: timer_create is not available on every Mac system
Problem:    Timer_create is not available on every Mac system. (Hisashi T
            Fujinaka)
Solution:   Adjust #ifdef.
2022-06-08 10:48:18 +01:00
aca12fd89b patch 8.2.5066: timer_create is not available on every Mac system
Problem:    Timer_create is not available on every Mac system. (Hisashi T
            Fujinaka)
Solution:   Adjust #ifdef.
2022-06-07 10:16:15 +01:00
739f7998ab patch 8.2.5065: wrong return type for main() in tee.c
Problem:    Wrong return type for main() in tee.c.
Solution:   Use "int" instead of "void".  Remove unused variable.
2022-06-06 22:16:09 +01:00
016188fd8a Update runtime files. 2022-06-06 20:52:59 +01:00
3760bfddc4 patch 8.2.5064: no test for what 8.1.0052 fixes
Problem:    No test for what 8.1.0052 fixes.
Solution:   Add a test. (closes #10531)
2022-06-06 16:22:46 +01:00
44a3f3353e patch 8.2.5063: error for a command may go over the end of IObuff
Problem:    Error for a command may go over the end of IObuff.
Solution:   Truncate the message.
2022-06-06 15:38:21 +01:00
1f89abf69d patch 8.2.5062: Coverity warns for dead code
Problem:    Coverity warns for dead code.
Solution:   Remove the dead code.
2022-06-06 10:07:01 +01:00
99c48fe997 patch 8.2.5061: C89 requires signal handlers to return void
Problem:    C89 requires signal handlers to return void.
Solution:   Drop RETSIGTYPE and hard-code a void return value.
2022-06-05 22:05:19 +01:00
de1d734379 patch 8.2.5060: running configure fails
Problem:    Running configure fails.
Solution:   Remove line break.
2022-06-05 20:03:17 +01:00
1004b3d970 patch 8.2.5059: autoconf 2.71 produces many obsolete warnings
Problem:    Autoconf 2.71 produces many obsolete warnings.
Solution:   Replace obsolete macros with non-obsolete ones, where the
            functionality does not change. (issue #10528)
2022-06-05 19:51:55 +01:00
e3a529bc87 patch 8.2.5058: input() does not handle composing characters properly
Problem:    input() does not handle composing characters properly.
Solution:   Use mb_cptr2char_adv() instead of mb_ptr2char_adv().
            (closes #10527)
2022-06-05 19:01:37 +01:00
6574577cac patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Problem:    Using gettimeofday() for timeout is very inefficient.
Solution:   Set a platform dependent timer. (Paul Ollis, closes #10505)
2022-06-05 16:55:54 +01:00
1d97db3d98 patch 8.2.5056: the channel log only contains some of the raw terminal output
Problem:    The channel log only contains some of the raw terminal output.
Solution:   Add the "o" flag to log all terminal output.  Use it for "--log".
2022-06-04 22:15:54 +01:00
327e6dd822 patch 8.2.5055: statusline is not updated when terminal title changes
Problem:    Statusline is not updated when terminal title changes.
Solution:   Redraw the status line when the title changes. (issue #10425)
2022-06-04 19:57:59 +01:00
cfa8f9a3f2 Update runtime files 2022-06-03 21:59:47 +01:00
635f48010d patch 8.2.5054: no good filetype for conf files similar to dosini
Problem:    No good filetype for conf files similar to dosini.
Solution:   Add the confini filetype. (closes #10510)
2022-06-03 18:40:53 +01:00
75ebd2aab0 patch 8.2.5053: cannot have a comment halfway an expression in a block
Problem:    Cannot have a comment halfway an expression in an autocmd command
            block.
Solution:   When skipping over the NL also skip over comments. (closes #10519)
2022-06-03 17:39:46 +01:00
bfaa24f953 patch 8.2.5052: CI checkout step title is a bit cryptic
Problem:    CI checkout step title is a bit cryptic.
Solution:   Add a better title. (closes #10509)
2022-06-01 21:26:34 +01:00
882476ad7b patch 8.2.5051: check for autocmd_add() event argument is confusing
Problem:    Check for autocmd_add() event argument is confusing.
Solution:   Make the code more straightforward.
2022-06-01 16:02:38 +01:00
409510c588 patch 8.2.5050: using freed memory when searching for pattern in path
Problem:    Using freed memory when searching for pattern in path.
Solution:   Make a copy of the line.
2022-06-01 15:23:13 +01:00
00e977cb83 patch 8.2.5049: insufficient tests for autocommands
Problem:    Insufficient tests for autocommands.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #10507)
2022-06-01 12:31:53 +01:00
b5912e0643 patch 8.2.5048: when using XIM the gui test may fail
Problem:    When using XIM the gui test may fail.
Solution:   Only use --not-a-term when not using XIM.
2022-05-31 17:03:14 +01:00
368137aa52 patch 8.2.5047: CurSearch highlight is often wrong
Problem:    CurSearch highlight is often wrong.
Solution:   Remember the last highlighted position and redraw when needed.
2022-05-31 13:43:12 +01:00
4aaf3e7f4d patch 8.2.5046: vim_regsub() can overwrite the destination
Problem:    vim_regsub() can overwrite the destination.
Solution:   Pass the destination length, give an error when it doesn't fit.
2022-05-30 20:58:55 +01:00
10db31f949 patch 8.2.5045: can escape a terminal popup window when the job is finished
Problem:    Can escape a terminal popup window when the job is finished.
Solution:   Only check for a finished job where it is relevant.
            (closes #10253)
2022-05-30 17:58:03 +01:00
be99042b03 patch 8.2.5044: command line test fails
Problem:    Command line test fails.
Solution:   Also beep when cmdline win can't be opened because of locks.
            Make the test not beep.  Make the test pass on MS-Windows.
2022-05-30 16:01:42 +01:00
71223e2db8 patch 8.2.5043: can open a cmdline window from a substitute expression
Problem:    Can open a cmdline window from a substitute expression.
Solution:   Disallow opening a command line window when text or buffer is
            locked.
2022-05-30 15:23:09 +01:00
89b25585cc patch 8.2.5042: scrollbar thumb in tall scrolled popup not visible
Problem:    Scrollbar thumb in tall scrolled popup not visible.
Solution:   Show at least one thumb character. (fixes 10492)
2022-05-30 13:20:56 +01:00
9e636b9d2e patch 8.2.5041: cannot close a terminal popup with "NONE" job
Problem:    Cannot close a terminal popup with "NONE" job.
Solution:   Adjust the conditions for whether a job is running.
            (closes #10498)
2022-05-29 22:37:05 +01:00
fc376e0b1a patch 8.2.5040: scrollbar thumb in scrolled popup not visible
Problem:    Scrollbar thumb in scrolled popup not visible.
Solution:   Show at least one thumb character. (fixes 10492)
2022-05-29 18:18:18 +01:00
83bd7a9740 patch 8.2.5039: confusing error if first argument of popup_create() is wrong
Problem:    Confusing error if first argument of popup_create() is wrong.
Solution:   Give a more informative error.
2022-05-29 17:13:24 +01:00
d28950f954 patch 8.2.5038: a finished terminal in a popup window does not show scrollbar
Problem:    A finished terminal in a popup window does not show a scrollbar.
Solution:   Show the scrollbar if the terminal job is finished. (closes
            #10497)
2022-05-29 14:13:04 +01:00
4d97a565ae patch 8.2.5037: cursor position may be invalid after "0;" range
Problem:    Cursor position may be invalid after "0;" range.
Solution:   Check the cursor position when it was set by ";" in the range.
2022-05-28 14:25:35 +01:00
305abc6123 patch 8.2.5036: using two counters for timeout check in NFA engine
Problem:    Using two counters for timeout check in NFA engine.
Solution:   Use only one counter.  Tune the counts based on guessing.
2022-05-28 11:08:40 +01:00
e6f13b473c patch 8.2.5035: when splitting a window the changelist position moves
Problem:    When splitting a window the changelist position moves.
Solution:   Set the changelist index a bit later. (closes #10493)
2022-05-28 10:49:44 +01:00
5a6ec10cc8 patch 8.2.5034: there is no way to get the byte index from a virtual column
Problem:    There is no way to get the byte index from a virtual column.
Solution:   Add virtcol2col(). (Yegappan Lakshmanan, closes #10477,
            closes #10098)
2022-05-27 21:58:00 +01:00
968443efb5 patch 8.2.5033: build error with +eval but without +quickfix
Problem:    Build error with +eval but without +quickfix.  Warning for
            uninitialized variable.
Solution:   Adjust #ifdefs. (John Marriott)
2022-05-27 21:16:34 +01:00
ddf5312929 patch 8.2.5032: Python 3 test fails without the GUI
Problem:    Python 3 test fails without the GUI.
Solution:   Check the balloon_eval feature is available.
2022-05-27 20:23:20 +01:00
76381a5b4f patch 8.2.5031: cannot easily run the benchmarks
Problem:    Cannot easily run the benchmarks.
Solution:   Have "make benchmark" in the src directory work.
2022-05-27 20:13:28 +01:00
e0ff3a7de6 patch 8.2.5030: autocmd_add() can only handle one event and pattern
Problem:    autocmd_add() can only handle one event and pattern.
Solution:   Support a list of events and patterns. (Yegappan Lakshmanan,
            closes #10483)
2022-05-27 18:05:33 +01:00
cfe456543e patch 8.2.5029: "textlock" is always zero
Problem:    "textlock" is always zero.
Solution:   Remove "textlock" and rename "textwinlock" to "textlock".
            (closes #10489)
2022-05-27 17:26:55 +01:00
02e8d4e4ff patch 8.2.5028: syntax regexp matching can be slow
Problem:    Syntax regexp matching can be slow.
Solution:   Adjust the counters for checking the timeout to check about once
            per msec. (closes #10487, closes #2712)
2022-05-27 15:35:28 +01:00
bf79a4e48d patch 8.2.5027: error for missing :endif when an exception was thrown
Problem:    Error for missing :endif when an exception was thrown. (Dani
            Dickstein)
Solution:   Do not give an error when aborting. (closes #10490)
2022-05-27 13:52:08 +01:00
31d9948e3a patch 8.2.5026: Vim9: a few lines not covered by tests
Problem:    Vim9: a few lines not covered by tests.
Solution:   Delete dead code.  Add a few test cases. make "12->func()" work.
2022-05-26 22:24:43 +01:00
5cb53b7afe patch 8.2.5025: Vim9: a few lines not covered by tests
Problem:    Vim9: a few lines not covered by tests.
Solution:   Add a few tests.
2022-05-26 19:54:05 +01:00
e2fa213cf5 patch 8.2.5024: using freed memory with "]d"
Problem:    Using freed memory with "]d".
Solution:   Copy the pattern before searching.
2022-05-26 16:32:44 +01:00
338f1fc0ee patch 8.2.5023: substitute overwrites allocated buffer
Problem:    Substitute overwrites allocated buffer.
Solution:   Disallow undo when in a substitute command.
2022-05-26 15:56:23 +01:00
9bcb9ca9c7 patch 8.2.5022: 'completefunc'/'omnifunc' error does not end completion
Problem:    'completefunc'/'omnifunc' error does not end completion.
Solution:   Check if there was an error or exception. (closes #10486,
            closes #4218)
2022-05-26 15:23:26 +01:00
30b9a41ad9 patch 8.2.5021: build fails with normal features and +terminal
Problem:    Build fails with normal features and +terminal. (Dominique Pellé)
Solution:   Add #ifdefs. (closes #10484)
2022-05-26 14:06:37 +01:00
c7e54efe4d patch 8.2.5020: using 'imstatusfunc' and 'imactivatefunc' breaks 'foldopen'
Problem:    Using 'imstatusfunc' and 'imactivatefunc' breaks 'foldopen'.
Solution:   Save and restore the KeyTyped flag. (closes #10479)
2022-05-26 13:16:25 +01:00
0f7a3e1de6 patch 8.2.5019: cannot get the first screen column of a character
Problem:    Cannot get the first screen column of a character.
Solution:   Let virtcol() optionally return a list. (closes #10482,
            closes #7964)
2022-05-26 12:10:37 +01:00
c3caa7f788 patch 8.2.5018: Vim9: some code is not covered by tests
Problem:    Vim9: some code is not covered by tests.
Solution:   Delete dead code.
2022-05-25 19:15:10 +01:00
8be36eecdc patch 8.2.5017: gcc 12.1 warns for uninitialized variable
Problem:    Gcc 12.1 warns for uninitialized variable.
Solution:   Initialize the variable. (closes #10476)
2022-05-25 17:29:46 +01:00
2a585c8501 patch 8.2.5016: access before start of text with a put command
Problem:    Access before start of text with a put command.
Solution:   Check the length is more than zero.
2022-05-25 15:15:38 +01:00
bf82df0dd4 patch 8.2.5015: Hoon and Moonscript files are not recognized
Problem:    Hoon and Moonscript files are not recognized.
Solution:   Add filetype patterns. (Goc Dundar, closes #10478)
2022-05-25 12:42:08 +01:00
4c3d21acaa patch 8.2.5014: byte offsets are wrong when using text properties
Problem:    Byte offsets are wrong when using text properties.
Solution:   Make sure text properties do not affect the byte counts.
            (Paul Ollis, closes #10474)
2022-05-24 21:26:37 +01:00
78d52883e1 patch 8.2.5013: after text formatting cursor may be in an invalid position
Problem:    After text formatting the cursor may be in an invalid position.
Solution:   Correct the cursor position after formatting.
2022-05-24 13:57:54 +01:00
53737b5eee patch 8.2.5012: cannot select one character inside ()
Problem:    Cannot select one character inside ().
Solution:   Do not try to extend the area if it is empty. (closes #10472,
            closes #6616)
2022-05-24 11:49:31 +01:00
971f6825ee patch 8.2.5011: Replacing an autocommand requires several lines
Problem:    Replacing an autocommand requires several lines.
Solution:   Add the "replace" flag to autocmd_add(). (Yegappan Lakshmanan,
            closes #10473)
2022-05-24 11:40:11 +01:00
c9a431c763 patch 8.2.5010: the terminal debugger uses various global variables
Problem:    The terminal debugger uses various global variables.
Solution:   Add a dictionary to hold the terminal debugger preferences.
2022-05-23 21:49:41 +01:00
e8c4a64bff patch 8.2.5009: fold may not be closeable after appending
Problem:    Fold may not be closeable after appending.
Solution:   Set the fd_small flag to MAYBE. (Brandon Simmons, closes #10471)
2022-05-23 15:33:08 +01:00
7e66778815 patch 8.2.5008: when 'formatoptions' contains "/" wrongly wrapping comment
Problem:    When 'formatoptions' contains "/" wrongly wrapping a long trailing
            comment.
Solution:   Pass the OPENLINE_FORMAT flag.
2022-05-23 13:10:48 +01:00
6d24b4ff69 patch 8.2.5007: spell suggestion may use uninitialized memory
Problem:    Spell suggestion may use uninitialized memory. (Zdenek Dohnal)
Solution:   Avoid going over the end of the word.
2022-05-23 12:01:50 +01:00
68e64d2c17 patch 8.2.5006: asan warns for undefined behavior
Problem:    Asan warns for undefined behavior.
Solution:   Cast the shifted value to unsigned.
2022-05-22 22:07:52 +01:00
5b529230f1 patch 8.2.5005: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (John Marriott)
Solution:   Initialize the pointer to NULL.
2022-05-22 21:53:26 +01:00
338bf58eba patch 8.2.5004: right shift on negative number does not work as documented
Problem:    Right shift on negative number does not work as documented.
Solution:   Use a uvarnumber_T type cast.
2022-05-22 20:16:32 +01:00
a061f34191 patch 8.2.5003: cannot do bitwise shifts
Problem:    Cannot do bitwise shifts.
Solution:   Add the >> and << operators. (Yegappan Lakshmanan, closes #8457)
2022-05-22 19:13:49 +01:00
9b2edfd3bf patch 8.2.5002: deletebufline() may change Visual selection
Problem:    deletebufline() may change Visual selection.
Solution:   Disable Visual mode when using another buffer. (closes #10469)
2022-05-22 15:35:53 +01:00
8a3704723c patch 8.2.5001: checking translations affects the search pattern history
Problem:    Checking translations affects the search pattern history.
Solution:   Use "keeppatterns". (Doug Kearns)
2022-05-22 15:28:31 +01:00
835ee980ee patch 8.2.5000: no patch for documentation updates
Problem:    No patch for documentation updates.
Solution:   Update documentation files.
2022-05-22 14:50:16 +01:00
aa9729b652 patch 8.2.4999: filetype test table is not properly sorted
Problem:    Filetype test table is not properly sorted.
Solution:   Sort by filetype. (Doug Kearns)
2022-05-22 14:26:54 +01:00
bce69d65dd patch 8.2.4998: Vim9: crash when using multiple funcref()
Problem:    Vim9: crash when using multiple funcref().
Solution:   Check if varargs type is NULL. (closes #10467)
2022-05-22 13:45:52 +01:00
37233f6022 patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Problem:    Python: changing hidden buffer can cause the display to be messed
            up.
Solution:   Do not mark changed lines when using another buffer. (Paul Ollis,
            closes #10437, closes #7972)
2022-05-22 12:23:48 +01:00
0ad00a7fd3 patch 8.2.4996: setbufline() may change Visual selection
Problem:    setbufline() may change Visual selection. (Qiming Zhao)
Solution:   Disable Visual mode when using another buffer. (closes #10466)
2022-05-22 11:59:25 +01:00
dafef51b1c patch 8.2.4995: still a compiler warning for possibly uninitialized variable
Problem:    Still a compiler warning for possibly uninitialized variable.
            (Tony Mechelynck)
Solution:   Initialize variables.
2022-05-21 21:55:55 +01:00
7e569d09d2 patch 8.2.4994: tests are using legacy functions
Problem:    Tests are using legacy functions.
Solution:   Convert a few tests to use :def functions.
2022-05-21 21:30:50 +01:00
8e145b8246 patch 8.2.4993: smart/C/lisp indenting is optional
Problem:    smart/C/lisp indenting is optional, which makes the code more
            complex, while it only reduces the executable size a bit.
Solution:   Graduate FEAT_CINDENT, FEAT_SMARTINDENT and FEAT_LISP.
2022-05-21 20:17:31 +01:00
5a01caa904 patch 8.2.4992: compiler warning for possibly uninitialized variable
Problem:    Compiler warning for possibly uninitialized variable. (Tony
            Mechelynck)
Solution:   Initialize variable in the caller instead of in the function.
2022-05-21 18:56:58 +01:00
93c1573dd2 patch 8.2.4991: no test for hwat patch 8.1.0535 fixes
Problem:    No test for hwat patch 8.1.0535 fixes.
Solution:   Add a test. (closes #10462)
2022-05-21 16:34:38 +01:00
1a56ea8381 patch 8.2.4990: memory leak when :defcompile fails
Problem:    Memory leak when :defcompile fails.
Solution:   Free fname when returning early.
2022-05-21 16:28:42 +01:00
f79d9dd43f patch 8.2.4989: cannot specify a function name for :defcompile
Problem:    Cannot specify a function name for :defcompile.
Solution:   Implement a function name argument for :defcompile.
2022-05-21 15:39:02 +01:00
2d8ed0203a Update runtime files. 2022-05-21 13:08:16 +01:00
0d534d9cf2 patch 8.2.4988: textprop in wrong position when replacing multi-byte chars
Problem:    Textprop in wrong position when replacing multi-byte chars.
Solution:   Adjust textprop position. (closes #10461)
2022-05-21 11:20:42 +01:00
3fcccf94e8 patch 8.2.4987: after deletion a small fold may be closable
Problem:    After deletion a small fold may be closable.
Solution:   Check for a reverse range. (Brandon Simmons, closes #10457)
2022-05-20 18:25:21 +01:00
8a83ffdc43 patch 8.2.4986: some github actions are outdated
Problem:    Some github actions are outdated.
Solution:   Update CodeQl to v2, update checkout to v3. (closes #10450)
2022-05-20 17:19:06 +01:00
875339b22a patch 8.2.4985: PVS warns for possible array underrun
Problem:    PVS warns for possible array underrun.
Solution:   Add a check for a positive value. (closes #10451)
2022-05-20 14:10:50 +01:00
6dab00aa54 patch 8.2.4984: dragging statusline fails for window with winbar
Problem:    Dragging statusline fails for window with winbar.
Solution:   Fix off-by-one error. (closes #10448)
2022-05-20 13:45:59 +01:00
b0855f5324 patch 8.2.4983: colors test fails in the GUI
Problem:    Colors test fails in the GUI.
Solution:   Reset g:terminal_ansi_colors.
2022-05-20 10:39:18 +01:00
b2b3acbf2b patch 8.2.4982: colors in terminal window are not 100% correct
Problem:    Colors in terminal window are not 100% correct.
Solution:   Use g:terminal_ansi_colors as documented. (closes #10429,
            closes #7227 closes #10347)
2022-05-20 10:10:34 +01:00
1755a91851 patch 8.2.4981: it is not possible to manipulate autocommands
Problem:    It is not possible to manipulate autocommands.
Solution:   Add functions to add, get and set autocommands. (Yegappan
            Lakshmanan, closes #10291)
2022-05-19 10:31:47 +01:00
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
306 changed files with 20682 additions and 13317 deletions

34
.github/CODEOWNERS vendored
View File

@ -59,7 +59,10 @@ runtime/compiler/jjs.vim @dkearns
runtime/compiler/jshint.vim @dkearns
runtime/compiler/jsonlint.vim @dkearns
runtime/compiler/lazbuild.vim @dkearns
runtime/compiler/perl.vim @petdance @heptite
runtime/compiler/perlcritic.vim @petdance @dkearns
runtime/compiler/php.vim @dkearns
runtime/compiler/podchecker.vim @petdance @dkearns
runtime/compiler/powershell.vim @heaths
runtime/compiler/rake.vim @tpope @dkearns
runtime/compiler/rhino.vim @dkearns
@ -97,6 +100,7 @@ runtime/ftplugin/clojure.vim @axvr
runtime/ftplugin/csh.vim @dkearns
runtime/ftplugin/css.vim @dkearns
runtime/ftplugin/cucumber.vim @tpope
runtime/ftplugin/dosbatch.vim @mrdubya
runtime/ftplugin/eiffel.vim @dkearns
runtime/ftplugin/eruby.vim @tpope @dkearns
runtime/ftplugin/fpcmake.vim @dkearns
@ -128,7 +132,10 @@ runtime/ftplugin/nsis.vim @k-takata
runtime/ftplugin/octave.vim @dkearns
runtime/ftplugin/pascal.vim @dkearns
runtime/ftplugin/pbtxt.vim @lakshayg
runtime/ftplugin/perl.vim @petdance @dkearns
runtime/ftplugin/pdf.vim @tpope
runtime/ftplugin/pod.vim @petdance @dkearns
runtime/ftplugin/postscr.vim @mrdubya
runtime/ftplugin/ps1.vim @heaths
runtime/ftplugin/ps1xml.vim @heaths
runtime/ftplugin/qb64.vim @dkearns
@ -139,15 +146,18 @@ runtime/ftplugin/scss.vim @tpope
runtime/ftplugin/solution.vim @dkearns
runtime/ftplugin/spec.vim @ignatenkobrain
runtime/ftplugin/systemverilog.vim @Kocha
runtime/ftplugin/tap.vim @petdance
runtime/ftplugin/tcsh.vim @dkearns
runtime/ftplugin/tidy.vim @dkearns
runtime/ftplugin/tmux.vim @ericpruitt
runtime/ftplugin/toml.vim @averms
runtime/ftplugin/tt2html.vim @petdance
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/xs.vim @petdance
runtime/ftplugin/zsh.vim @chrisbra
runtime/indent/basic.vim @dkearns
runtime/indent/bst.vim @tpope
@ -176,7 +186,8 @@ runtime/indent/mma.vim @dkearns
runtime/indent/nginx.vim @chr4
runtime/indent/nsis.vim @k-takata
runtime/indent/occam.vim @dkearns
runtime/indent/postscr.vim @dkearns
runtime/indent/perl.vim @petdance
runtime/indent/postscr.vim @mrdubya
runtime/indent/prolog.vim @dkearns
runtime/indent/ps1.vim @heaths
runtime/indent/qb64.vim @dkearns
@ -192,6 +203,7 @@ runtime/indent/teraterm.vim @k-takata
runtime/indent/xml.vim @chrisbra
runtime/indent/zsh.vim @chrisbra
runtime/keymap/tamil_tscii.vim @yegappan
runtime/lang/menu_en_gb.latin1.vim @mrdubya
runtime/pack/dist/opt/cfilter/plugin/cfilter.vim @yegappan
runtime/pack/dist/opt/matchit/ @chrisbra
runtime/plugin/getscriptPlugin.vim @cecamp
@ -219,6 +231,7 @@ runtime/syntax/cucumber.vim @tpope
runtime/syntax/datascript.vim @dpelle
runtime/syntax/dcl.vim @cecamp
runtime/syntax/desktop.vim @e-kwsm
runtime/syntax/dosbatch.vim @mrdubya
runtime/syntax/dot.vim @mmottl
runtime/syntax/doxygen.vim @frogonwheels
runtime/syntax/dtd.vim @chrisbra
@ -250,6 +263,7 @@ runtime/syntax/mailcap.vim @dkearns
runtime/syntax/make.vim @rohieb
runtime/syntax/maple.vim @cecamp
runtime/syntax/markdown.vim @tpope
runtime/syntax/mason.vim @petdance
runtime/syntax/meson.vim @Liambeguin
runtime/syntax/modula3.vim @dkearns
runtime/syntax/netrw.vim @cecamp
@ -259,7 +273,10 @@ runtime/syntax/nsis.vim @k-takata
runtime/syntax/pascal.vim @dkearns
runtime/syntax/pbtxt.vim @lakshayg
runtime/syntax/pdf.vim @tpope
runtime/syntax/perl.vim @petdance
runtime/syntax/php.vim @TysonAndre
runtime/syntax/pod.vim @petdance
runtime/syntax/postscr.vim @mrdubya
runtime/syntax/privoxy.vim @dkearns
runtime/syntax/prolog.vim @XVilka
runtime/syntax/ps1.vim @heaths
@ -267,6 +284,7 @@ runtime/syntax/ps1xml.vim @heaths
runtime/syntax/psl.vim @danielkho
runtime/syntax/qb64.vim @dkearns
runtime/syntax/rc.vim @chrisbra
runtime/syntax/rebol.vim @mrdubya
runtime/syntax/routeros.vim @zainin
runtime/syntax/rpcgen.vim @cecamp
runtime/syntax/ruby.vim @dkearns
@ -281,18 +299,23 @@ runtime/syntax/sshdconfig.vim @Jakuje
runtime/syntax/sudoers.vim @e-kwsm
runtime/syntax/systemverilog.vim @Kocha
runtime/syntax/tags.vim @cecamp
runtime/syntax/tap.vim @petdance
runtime/syntax/tcsh.vim @dkearns
runtime/syntax/teraterm.vim @k-takata
runtime/syntax/tex.vim @cecamp
runtime/syntax/tidy.vim @dkearns
runtime/syntax/tmux.vim @ericpruitt
runtime/syntax/toml.vim @averms
runtime/syntax/tt2.vim @petdance
runtime/syntax/tt2html.vim @petdance
runtime/syntax/tt2js.vim @petdance
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
runtime/syntax/xs.vim @petdance
runtime/syntax/xslt.vim @Boobies
runtime/syntax/xxd.vim @cecamp
runtime/syntax/yacc.vim @cecamp
@ -303,7 +326,16 @@ runtime/tutor/tutor.fr @dpelle
runtime/tutor/tutor.fr.utf-8 @dpelle
src/iscygpty.* @k-takata
src/libvterm/ @leonerd
src/po/ca.po @nfdisco
src/po/de.po @chrisbra
src/po/eo.po @dpelle
src/po/es.po @victorhck
src/po/fi.po @flammie
src/po/fr.po @dpelle
src/po/ga.po @kscanne
src/po/it.po @azc100
src/po/ja.po @k-takata
src/po/sr.po @eevan78
src/po/tr.po @bitigchi
src/po/uk.po @sakhnik
src/xxd/ @jnweiger

View File

@ -61,7 +61,8 @@ jobs:
extra: vimtags
steps:
- uses: actions/checkout@v2
- name: Checkout repository from github
uses: actions/checkout@v3
- name: Install packages
run: |
@ -295,7 +296,8 @@ jobs:
features: [tiny, normal, huge]
steps:
- uses: actions/checkout@v2
- name: Checkout repository from github
uses: actions/checkout@v3
- name: Install packages
if: matrix.features == 'huge'
@ -353,7 +355,7 @@ jobs:
make ${TEST}
windows:
runs-on: windows-2019
runs-on: windows-2022
env:
# Interfaces
@ -369,6 +371,7 @@ jobs:
# Python 2
PYTHON_VER: 27
PYTHON_VER_DOT: '2.7'
PYTHON_DIR: 'C:\Python27'
# Python 3
PYTHON3_VER: 310
PYTHON3_VER_DOT: '3.10'
@ -421,18 +424,26 @@ jobs:
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/@")
if [ "${{ matrix.arch }}" = "x86" ]; then
choco install python2 --forcex86
else
choco install python2
fi
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
echo "PYTHON3_DIR=$python3_dir" >> $GITHUB_ENV
- uses: msys2/setup-msys2@v2
if: matrix.toolchain == 'mingw'
with:
update: true
install: tar
pacboy: >-
make:p gcc:p
msystem: ${{ matrix.msystem }}
release: false
- uses: actions/checkout@v2
- name: Checkout repository from github
uses: actions/checkout@v3
- name: Create a list of download URLs
shell: cmd

View File

@ -36,12 +36,12 @@ jobs:
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Checkout repository from github
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@ -52,7 +52,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@ -66,4 +66,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2

View File

@ -13,7 +13,8 @@ jobs:
DEBIAN_FRONTEND: noninteractive
steps:
- uses: actions/checkout@v2
- name: Checkout repository from github
uses: actions/checkout@v3
- name: Download Coverity
run: |

View File

@ -574,7 +574,6 @@ SRC_DOS = \
src/testdir/Make_ming.mak \
src/testdir/dos.vim \
src/uninstall.c \
src/vim.def \
src/vim.rc \
src/vim.manifest \
src/vimrun.c \

View File

@ -56,7 +56,7 @@ indenttest:
cd runtime/indent && \
$(MAKE) clean && \
$(MAKE) test VIM="$(VIM_FOR_INDENTTEST)"
#########################################################################
# 2. Creating the various distribution files.
@ -93,8 +93,7 @@ MINOR = 2
# READMEdir/Contents, MAJOR/MINOR above, VIMMAJOR and VIMMINOR in
# src/Makefile, README.txt, README.md, src/README.md, READMEdir/README*.txt,
# runtime/doc/*.txt and make nsis/gvim_version.nsh.
# For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def,
# src/vim.manifest.
# For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.manifest.
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, Lua, Cscope and
# "huge" features. Add MZscheme if you can make it work.
# Use "make reconfig" after selecting the configure arguments.

View File

@ -189,6 +189,10 @@ def DetectFromHashBang(firstline: string)
elseif name =~ 'gforth\>'
set ft=forth
# Icon
elseif name =~ 'icon\>'
set ft=icon
endif
enddef

View File

@ -1,14 +1,18 @@
README.txt for color scheme files
These files are used for the ":colorscheme" command. They appear in the
These files are used for the `:colorscheme` command. They appear in the
"Edit/Color Scheme" menu in the GUI.
The colorschemes were updated for the Vim 9 release. If you don't like the
changes you can find the old ones here:
https://github.com/vim/colorschemes/tree/master/legacy_colors
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.
1. Define a new Normal color and set the 'background' option accordingly. >
set background={light or dark}
highlight clear
@ -16,7 +20,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'.
'background'. >
highlight clear Normal
set background&
@ -29,17 +33,17 @@ There are two basic ways to define a color scheme:
...
endif
You can use ":highlight clear" to reset everything to the defaults, and then
You can use `:highlight clear` to reset everything to the defaults, and then
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
Note that `:highlight clear` uses the value of 'background', thus set it
before this command.
Some attributes (e.g., bold) might be set in the defaults that you want
removed in your color scheme. Use something like "gui=NONE" to remove the
attributes.
In case you want to set 'background' depending on the colorscheme selected,
this autocmd might be useful:
this autocmd might be useful: >
autocmd SourcePre */colors/blue_sky.vim set background=dark
@ -49,7 +53,7 @@ In case you want to tweak a colorscheme after it was loaded, check out the
ColorScheme autocommand event.
To clean up just before loading another colorscheme, use the ColorSchemePre
autocommand event. For example:
autocommand event. For example: >
let g:term_ansi_colors = ...
augroup MyColorscheme
@ -59,20 +63,20 @@ 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, see ":help highlight-groups" and
":help 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 for better portability. See
":help cterm-colors".
`:help cterm-colors` .
The default color settings can be found in the source file src/syntax.c.
Search for "highlight_init".
@ -86,7 +90,7 @@ please check the following items:
- 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:
it this way: >
let g:colors_name = expand('<sfile>:t:r')
@ -121,7 +125,7 @@ please check the following items:
- 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:
requires: >
colorscheme foobar
@ -136,3 +140,6 @@ that:
- it was made with colortemplate,
and join us at vim/colorschemes: (https://github.com/vim/colorschemes).
vim: set ft=help :

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sat 11 Jun 2022 11:16:14 MSK
" Generated by Colortemplate v2.2.0
@ -27,7 +27,7 @@ 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 CursorIM guifg=#000000 guibg=#ffdf00 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
@ -52,11 +52,6 @@ hi SpellLocal guifg=#ffffff guibg=NONE guisp=#ffffff gui=undercurl cterm=underli
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
@ -66,6 +61,19 @@ 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 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 Terminal Normal
hi! link Debug Special
hi! link diffAdded String
@ -81,21 +89,14 @@ hi! link lCursor Cursor
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineNr CursorLine
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 StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLine StatusLineNC
hi! link TabLineFill StatusLineNC
hi! link TabLineSel StatusLine
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
@ -134,7 +135,7 @@ if s:t_Co >= 256
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 CursorIM ctermfg=16 ctermbg=220 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
@ -159,11 +160,6 @@ if s:t_Co >= 256
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
@ -173,6 +169,19 @@ if s:t_Co >= 256
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 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 Terminal Normal
hi! link Debug Special
hi! link diffAdded String
@ -188,21 +197,14 @@ if s:t_Co >= 256
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineNr CursorLine
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 StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLine StatusLineNC
hi! link TabLineFill StatusLineNC
hi! link TabLineSel StatusLine
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
@ -244,7 +246,7 @@ if s:t_Co >= 16
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 CursorIM ctermfg=black ctermbg=yellow 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
@ -269,11 +271,6 @@ if s:t_Co >= 16
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
@ -283,6 +280,19 @@ if s:t_Co >= 16
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 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 Terminal Normal
hi! link Debug Special
hi! link diffAdded String
@ -298,21 +308,14 @@ if s:t_Co >= 16
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineNr CursorLine
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 StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLine StatusLineNC
hi! link TabLineFill StatusLineNC
hi! link TabLineSel StatusLine
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
@ -344,6 +347,116 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=darkyellow ctermbg=blue cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi Pmenu ctermfg=black ctermbg=cyan cterm=NONE
hi PmenuSel ctermfg=black ctermbg=gray cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=magenta cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=black ctermbg=green cterm=NONE
hi CursorColumn ctermfg=blue ctermbg=yellow cterm=bold,reverse
hi CursorIM ctermfg=black ctermbg=yellow cterm=NONE
hi EndOfBuffer ctermfg=yellow ctermbg=blue cterm=NONE
hi Error ctermfg=red ctermbg=blue cterm=reverse
hi ErrorMsg ctermfg=gray ctermbg=red cterm=NONE
hi FoldColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi Folded ctermfg=blue ctermbg=yellow 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=blue 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=cyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=red ctermbg=yellow cterm=reverse
hi SpellCap ctermfg=green ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=gray ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=magenta ctermbg=yellow cterm=reverse
hi StatusLine ctermfg=cyan ctermbg=blue cterm=bold,reverse
hi StatusLineNC ctermfg=blue ctermbg=cyan cterm=NONE
hi ToolbarButton ctermfg=blue ctermbg=gray cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=cyan ctermbg=NONE cterm=NONE
hi Visual ctermfg=black ctermbg=cyan cterm=NONE
hi VisualNOS ctermfg=cyan ctermbg=gray cterm=NONE
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=blue ctermbg=yellow cterm=NONE
hi debugBreakpoint ctermfg=green ctermbg=blue cterm=reverse
hi debugPC ctermfg=cyan ctermbg=blue cterm=reverse
hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi Comment ctermfg=black ctermbg=NONE cterm=bold
hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
hi Identifier ctermfg=gray ctermbg=NONE cterm=NONE
hi Ignore ctermfg=gray ctermbg=NONE cterm=NONE
hi PreProc ctermfg=green ctermbg=NONE cterm=NONE
hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
hi Statement ctermfg=gray ctermbg=NONE cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type ctermfg=red ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
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 CursorLineNr CursorLine
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLine StatusLineNC
hi! link TabLineFill StatusLineNC
hi! link TabLineSel StatusLine
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=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -444,4 +557,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sat 11 Jun 2022 14:37:41 MSK
" Generated by Colortemplate v2.2.0
@ -18,88 +18,18 @@ 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 TabLineFill TabLine
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
@ -123,68 +53,112 @@ hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
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 Normal guifg=#c0c0c0 guibg=#000040 gui=NONE cterm=NONE
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 QuickFixLine guifg=#000000 guibg=#ff80ff gui=NONE cterm=NONE
hi Error guifg=#ffa0a0 guibg=NONE gui=reverse cterm=reverse
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 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 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 TabLine guifg=#000000 guibg=#808080 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 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 TabLineSel guifg=#000040 guibg=#c0c0c0 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffff60 guibg=#666666 gui=NONE cterm=NONE
hi Search guifg=#90fff0 guibg=#0030ff 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=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 CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
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 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! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
@ -197,8 +171,43 @@ if s:t_Co >= 256
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Normal ctermfg=252 ctermbg=17 cterm=NONE
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 QuickFixLine ctermfg=16 ctermbg=213 cterm=NONE
hi Error ctermfg=217 ctermbg=NONE cterm=reverse
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 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 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 TabLine ctermfg=16 ctermbg=102 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 Directory ctermfg=30 ctermbg=NONE cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=NONE
hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
@ -211,29 +220,10 @@ if s:t_Co >= 256
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 TabLineSel ctermfg=17 ctermbg=252 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=59 cterm=NONE
hi CursorLineNr ctermfg=227 ctermbg=59 cterm=NONE
hi Search ctermfg=123 ctermbg=27 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
@ -244,28 +234,15 @@ endif
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
@ -275,7 +252,6 @@ if s:t_Co >= 16
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
@ -284,11 +260,7 @@ if s:t_Co >= 16
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
@ -298,21 +270,6 @@ if s:t_Co >= 16
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
@ -325,29 +282,6 @@ if s:t_Co >= 16
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
@ -360,6 +294,67 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=grey ctermbg=darkred cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=grey ctermbg=darkmagenta cterm=NONE
hi Error ctermfg=darkred ctermbg=grey cterm=reverse
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=NONE cterm=bold,reverse
hi IncSearch ctermfg=grey ctermbg=darkblue cterm=reverse
hi LineNr ctermfg=green ctermbg=NONE cterm=bold
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
hi ModeMsg ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=grey ctermbg=blue cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=blue ctermbg=grey cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
hi Question ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Search ctermfg=darkcyan ctermbg=blue cterm=NONE
hi SignColumn ctermfg=grey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi StatusLine ctermfg=darkblue ctermbg=grey cterm=bold,reverse
hi StatusLineNC ctermfg=grey ctermbg=black cterm=reverse
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
hi TabLine ctermfg=grey ctermbg=black cterm=reverse
hi TabLineSel ctermfg=darkblue ctermbg=grey cterm=bold,reverse
hi ToolbarButton ctermfg=darkblue ctermbg=grey cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=blue ctermbg=grey cterm=reverse
hi VisualNOS ctermfg=blue ctermbg=grey cterm=reverse,underline
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=yellow ctermbg=black cterm=NONE
hi debugBreakpoint ctermfg=darkgreen ctermbg=darkblue cterm=reverse
hi debugPC ctermfg=darkcyan ctermbg=darkblue cterm=reverse
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Comment ctermfg=darkblue ctermbg=NONE cterm=bold
hi Constant ctermfg=darkred ctermbg=NONE cterm=bold
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -466,4 +461,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sun Jun 12 10:50:30 2022
" Generated by Colortemplate v2.2.0
@ -18,11 +18,18 @@ 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', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#bcbcbc', '#ee0000', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#000000']
endif
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! link ErrorMsg Error
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 StatusLine guifg=#ffff00 guibg=#00008b gui=bold cterm=bold
hi StatusLineNC guifg=#ffd700 guibg=#00008b gui=NONE cterm=NONE
hi StatusLineTerm guifg=#ffff00 guibg=#0000ff gui=bold cterm=NONE
hi StatusLineTerm guifg=#ffff00 guibg=#0000ff gui=bold cterm=bold
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
@ -31,9 +38,9 @@ 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 TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=bold
hi ToolbarLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
hi ToolbarButton guifg=#ffffff guibg=#bcbcbc gui=bold cterm=NONE
hi ToolbarButton guifg=#ffffff guibg=#bcbcbc gui=bold cterm=bold
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
@ -42,21 +49,20 @@ 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 CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=bold
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 MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=bold
hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=bold
hi Question guifg=#00cd00 guibg=NONE gui=bold cterm=bold
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 WildMenu guifg=#00008b guibg=#ffd700 gui=bold cterm=bold
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
@ -69,20 +75,14 @@ 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 Statement guifg=#0000ff guibg=NONE gui=bold cterm=bold
hi PreProc guifg=#cd00cd guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#0000ff guibg=NONE gui=bold cterm=NONE
hi Type guifg=#0000ff guibg=NONE gui=bold cterm=bold
hi Special guifg=#ff1493 guibg=NONE gui=NONE cterm=NONE
hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=bold
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 Title guifg=#cd00cd guibg=NONE gui=bold cterm=bold
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
@ -90,11 +90,18 @@ 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 Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link ErrorMsg Error
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 StatusLine ctermfg=226 ctermbg=18 cterm=bold
hi StatusLineNC ctermfg=220 ctermbg=18 cterm=NONE
hi StatusLineTerm ctermfg=226 ctermbg=21 cterm=NONE
hi StatusLineTerm ctermfg=226 ctermbg=21 cterm=bold
hi StatusLineTermNC ctermfg=254 ctermbg=21 cterm=NONE
hi VertSplit ctermfg=254 ctermbg=18 cterm=NONE
hi Pmenu ctermfg=16 ctermbg=152 cterm=NONE
@ -103,9 +110,9 @@ if s:t_Co >= 256
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 TabLineSel ctermfg=16 ctermbg=231 cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=254 cterm=NONE
hi ToolbarButton ctermfg=231 ctermbg=250 cterm=NONE
hi ToolbarButton ctermfg=231 ctermbg=250 cterm=bold
hi NonText ctermfg=250 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=250 ctermbg=NONE cterm=NONE
hi Folded ctermfg=18 ctermbg=254 cterm=NONE
@ -114,21 +121,20 @@ if s:t_Co >= 256
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 CursorLineNr ctermfg=124 ctermbg=NONE cterm=bold
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 MoreMsg ctermfg=16 ctermbg=231 cterm=bold
hi ModeMsg ctermfg=16 ctermbg=231 cterm=bold
hi Question ctermfg=40 ctermbg=NONE cterm=bold
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 WildMenu ctermfg=18 ctermbg=220 cterm=bold
hi ColorColumn ctermfg=16 ctermbg=254 cterm=NONE
hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
hi lCursor ctermfg=16 ctermbg=40 cterm=NONE
@ -141,20 +147,14 @@ if s:t_Co >= 256
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 Statement ctermfg=21 ctermbg=NONE cterm=bold
hi PreProc ctermfg=164 ctermbg=NONE cterm=NONE
hi Type ctermfg=21 ctermbg=NONE cterm=NONE
hi Type ctermfg=21 ctermbg=NONE cterm=bold
hi Special ctermfg=198 ctermbg=NONE cterm=NONE
hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
hi Directory ctermfg=30 ctermbg=NONE cterm=bold
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 Title ctermfg=164 ctermbg=NONE cterm=bold
hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
@ -167,9 +167,9 @@ endif
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 StatusLine ctermfg=yellow ctermbg=darkblue cterm=bold
hi StatusLineNC ctermfg=darkyellow ctermbg=darkblue cterm=NONE
hi StatusLineTerm ctermfg=yellow ctermbg=blue cterm=NONE
hi StatusLineTerm ctermfg=yellow ctermbg=blue cterm=bold
hi StatusLineTermNC ctermfg=grey ctermbg=blue cterm=NONE
hi VertSplit ctermfg=grey ctermbg=darkblue cterm=NONE
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
@ -178,9 +178,9 @@ if s:t_Co >= 16
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 TabLineSel ctermfg=black ctermbg=white cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=grey cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=bold
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=grey cterm=NONE
@ -189,21 +189,20 @@ if s:t_Co >= 16
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 CursorLineNr ctermfg=darkgrey ctermbg=NONE cterm=bold
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 MoreMsg ctermfg=black ctermbg=white cterm=bold
hi ModeMsg ctermfg=black ctermbg=white cterm=bold
hi Question ctermfg=darkgreen ctermbg=NONE cterm=bold
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 WildMenu ctermfg=darkblue ctermbg=darkyellow cterm=bold
hi ColorColumn ctermfg=black ctermbg=grey cterm=NONE
hi Cursor ctermfg=white ctermbg=black cterm=NONE
hi lCursor ctermfg=black ctermbg=darkgreen cterm=NONE
@ -216,20 +215,14 @@ if s:t_Co >= 16
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 Statement ctermfg=darkblue ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=blue ctermbg=NONE cterm=NONE
hi Type ctermfg=blue ctermbg=NONE cterm=bold
hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
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 Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi Visual ctermfg=white ctermbg=darkgrey cterm=NONE
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
@ -240,6 +233,71 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=black ctermbg=gray cterm=NONE
hi EndOfBuffer ctermfg=darkblue ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=darkblue ctermbg=darkyellow cterm=bold,reverse
hi StatusLineNC ctermfg=darkblue ctermbg=darkyellow cterm=reverse
hi StatusLineTerm ctermfg=darkblue ctermbg=darkyellow cterm=bold,reverse
hi StatusLineTermNC ctermfg=darkblue ctermbg=darkyellow cterm=reverse
hi VertSplit ctermfg=darkblue ctermbg=darkyellow cterm=reverse
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
hi TabLine ctermfg=gray ctermbg=black cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=black cterm=NONE
hi TabLineSel ctermfg=black ctermbg=gray cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=gray cterm=bold,reverse
hi NonText ctermfg=darkblue ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi LineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
hi Error ctermfg=red ctermbg=gray cterm=reverse
hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi Question ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkmagenta cterm=bold
hi Search ctermfg=black ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=darkred cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=reverse
hi SpellCap ctermfg=darkcyan ctermbg=black cterm=reverse
hi SpellLocal ctermfg=darkblue ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=reverse
hi debugBreakpoint ctermfg=darkyellow ctermbg=darkblue cterm=NONE
hi debugPC ctermfg=darkmagenta 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=bold
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Special ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -328,6 +386,14 @@ endif
" Color: linenr #a52a2a 124 darkgrey
" Color: Yellow #ffff00 226 yellow
" Color: SlateBlue #6a5acd 62 blue
" Color: black #000000 16 black
" Color: darkred #870000 88 darkred
" Color: darkgreen #008700 28 darkgreen
" Color: darkyellow #878700 100 darkyellow
" Color: darkblue #000087 18 darkblue
" Color: darkmagenta #870087 18 darkmagenta
" Color: darkcyan #008787 30 darkcyan
" Color: gray #878787 102 gray
" 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
@ -336,4 +402,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sun Jun 12 10:51:36 2022
" Generated by Colortemplate v2.2.0
@ -18,8 +18,14 @@ 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
hi Normal guifg=#ffffff guibg=#333333 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! link EndOfBuffer NonText
hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
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
@ -33,7 +39,7 @@ 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 ToolbarButton guifg=#333333 guibg=#ffde9b gui=bold cterm=bold
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
@ -43,16 +49,16 @@ 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 CursorLineNr guifg=#eeee00 guibg=NONE gui=bold cterm=bold
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 ModeMsg guifg=#ffde9b guibg=NONE gui=bold cterm=bold
hi WarningMsg guifg=#cd5c5c guibg=NONE gui=bold cterm=bold
hi MoreMsg guifg=#9acd32 guibg=NONE gui=bold cterm=bold
hi Question guifg=#89fb98 guibg=NONE gui=bold cterm=bold
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
@ -69,29 +75,29 @@ hi SpellLocal guifg=#ffde9b guibg=NONE guisp=#ffde9b gui=undercurl cterm=underli
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 Statement guifg=#f0e68c guibg=NONE gui=bold cterm=bold
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 Type guifg=#bdb76b guibg=NONE gui=bold cterm=bold
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 Title guifg=#cd5c5c guibg=NONE gui=bold cterm=bold
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! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link EndOfBuffer NonText
hi Normal ctermfg=231 ctermbg=236 cterm=NONE
hi StatusLine ctermfg=236 ctermbg=144 cterm=NONE
hi StatusLineNC ctermfg=242 ctermbg=144 cterm=NONE
hi StatusLineTerm ctermfg=236 ctermbg=144 cterm=NONE
@ -105,7 +111,7 @@ if s:t_Co >= 256
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 ToolbarButton ctermfg=236 ctermbg=222 cterm=bold
hi NonText ctermfg=81 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=112 ctermbg=NONE cterm=NONE
hi Folded ctermfg=226 ctermbg=239 cterm=NONE
@ -115,16 +121,16 @@ if s:t_Co >= 256
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 CursorLineNr ctermfg=226 ctermbg=NONE cterm=bold
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 ModeMsg ctermfg=222 ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=167 ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=112 ctermbg=NONE cterm=bold
hi Question ctermfg=120 ctermbg=NONE cterm=bold
hi Todo ctermfg=196 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=242 ctermbg=143 cterm=NONE
hi Search ctermfg=186 ctermbg=242 cterm=NONE
@ -139,21 +145,15 @@ if s:t_Co >= 256
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 Statement ctermfg=186 ctermbg=NONE cterm=bold
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 Type ctermfg=143 ctermbg=NONE cterm=bold
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 Title ctermfg=167 ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@ -164,7 +164,6 @@ endif
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
@ -183,50 +182,44 @@ if s:t_Co >= 16
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 VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
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 CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=bold
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 ModeMsg ctermfg=magenta ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Question ctermfg=green ctermbg=NONE cterm=bold
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 SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkblue ctermbg=grey cterm=reverse
hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=reverse
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 Statement ctermfg=yellow ctermbg=NONE cterm=bold
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 Type ctermfg=darkyellow ctermbg=NONE cterm=bold
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 Title ctermfg=darkred ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@ -235,6 +228,72 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi StatusLine ctermfg=grey ctermbg=black cterm=bold,reverse
hi StatusLineNC ctermfg=grey ctermbg=black cterm=reverse
hi StatusLineTerm ctermfg=grey ctermbg=black cterm=bold,reverse
hi StatusLineTermNC ctermfg=grey ctermbg=black cterm=reverse
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi NonText ctermfg=darkblue ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Error ctermfg=darkred ctermbg=grey cterm=reverse
hi ErrorMsg ctermfg=darkred ctermbg=grey cterm=reverse
hi ModeMsg ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Question ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Todo ctermfg=darkred 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=darkyellow cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkmagenta cterm=NONE
hi ColorColumn ctermfg=grey ctermbg=darkred cterm=NONE
hi debugPC ctermfg=grey ctermbg=NONE cterm=reverse
hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkblue ctermbg=grey cterm=reverse
hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi Comment ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Identifier ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkred ctermbg=NONE cterm=NONE
hi Type ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Special ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkred ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -332,4 +391,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -3,7 +3,7 @@
" 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
" Last Updated: Sun Jun 12 10:48:00 2022
" Generated by Colortemplate v2.2.0
@ -52,7 +52,7 @@ 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 CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=bold
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
@ -63,14 +63,14 @@ 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 ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=bold
hi NonText guifg=#0000ff guibg=NONE gui=bold cterm=bold
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 Question guifg=#00ff00 guibg=NONE gui=bold cterm=bold
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
@ -78,13 +78,13 @@ 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 StatusLine guifg=#000000 guibg=#00ffff gui=bold cterm=bold
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 TabLineSel guifg=#00ffff guibg=#000000 gui=bold cterm=bold
hi Terminal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=bold
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
@ -100,13 +100,13 @@ 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 Statement guifg=#aa4444 guibg=NONE gui=bold cterm=bold
hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
hi Type guifg=#60ff60 guibg=NONE gui=bold cterm=NONE
hi Type guifg=#60ff60 guibg=NONE gui=bold cterm=bold
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 ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=bold
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
@ -120,7 +120,7 @@ if s:t_Co >= 256
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 CursorLineNr ctermfg=226 ctermbg=NONE cterm=bold
hi Folded ctermfg=51 ctermbg=59 cterm=NONE
hi Conceal ctermfg=59 ctermbg=NONE cterm=NONE
hi Cursor ctermfg=16 ctermbg=51 cterm=NONE
@ -131,14 +131,14 @@ if s:t_Co >= 256
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 ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=bold
hi NonText ctermfg=21 ctermbg=NONE cterm=bold
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 Question ctermfg=46 ctermbg=NONE cterm=bold
hi Search ctermfg=16 ctermbg=226 cterm=NONE
hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
@ -146,13 +146,13 @@ if s:t_Co >= 256
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 StatusLine ctermfg=16 ctermbg=51 cterm=bold
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 TabLineSel ctermfg=51 ctermbg=16 cterm=bold
hi Terminal ctermfg=51 ctermbg=16 cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=bold
hi VertSplit ctermfg=16 ctermbg=44 cterm=NONE
hi Visual ctermfg=16 ctermbg=145 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
@ -168,13 +168,13 @@ if s:t_Co >= 256
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 Statement ctermfg=131 ctermbg=NONE cterm=bold
hi Todo ctermfg=21 ctermbg=226 cterm=NONE
hi Type ctermfg=83 ctermbg=NONE cterm=NONE
hi Type ctermfg=83 ctermbg=NONE cterm=bold
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 ToolbarButton ctermfg=16 ctermbg=254 cterm=bold
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
@ -202,14 +202,14 @@ if s:t_Co >= 16
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 ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi NonText ctermfg=darkblue ctermbg=NONE cterm=bold
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 Question ctermfg=green ctermbg=NONE cterm=bold
hi Search ctermfg=black ctermbg=yellow cterm=NONE
hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
@ -217,13 +217,13 @@ if s:t_Co >= 16
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 StatusLine ctermfg=black ctermbg=cyan cterm=bold
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 TabLineSel ctermfg=cyan ctermbg=black cterm=bold
hi Terminal ctermfg=cyan ctermbg=black cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=bold
hi VertSplit ctermfg=black ctermbg=darkcyan cterm=NONE
hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
@ -239,13 +239,13 @@ if s:t_Co >= 16
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 Statement ctermfg=darkred ctermbg=NONE cterm=bold
hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
hi Type ctermfg=green ctermbg=NONE cterm=NONE
hi Type ctermfg=green ctermbg=NONE cterm=bold
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 ToolbarButton ctermfg=black ctermbg=grey cterm=bold
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
@ -256,6 +256,76 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=darkcyan ctermbg=black cterm=NONE
hi QuickFixLine ctermfg=grey ctermbg=darkgreen cterm=NONE
hi ColorColumn ctermfg=darkcyan ctermbg=darkred cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=underline
hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=darkblue ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=NONE ctermbg=NONE cterm=reverse
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=black 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=grey ctermbg=NONE cterm=NONE
hi PmenuSbar ctermfg=grey ctermbg=grey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkcyan cterm=NONE
hi Question ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkblue ctermbg=darkyellow cterm=reverse
hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi StatusLine ctermfg=darkcyan ctermbg=NONE cterm=bold,reverse
hi StatusLineNC ctermfg=black ctermbg=darkcyan cterm=NONE
hi TabLine ctermfg=black ctermbg=darkcyan cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Terminal ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=black ctermbg=darkcyan cterm=NONE
hi Visual ctermfg=black ctermbg=grey cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi Comment ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
hi Function ctermfg=grey ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=black ctermbg=NONE cterm=NONE
hi Operator ctermfg=darkred ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Repeat ctermfg=grey ctermbg=NONE cterm=NONE
hi Special ctermfg=darkred ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Underlined ctermfg=darkblue 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=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -372,4 +442,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sun Jun 12 10:52:56 2022
" Generated by Colortemplate v2.2.0
@ -18,52 +18,10 @@ 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 VertSplit StatusLineNC
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
@ -83,18 +41,6 @@ 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
@ -118,58 +64,70 @@ hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
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=bold
hi StatusLineNC guifg=#333333 guibg=#d3d3d3 gui=NONE cterm=NONE
hi TabLineSel guifg=#333333 guibg=#ffffff gui=bold cterm=bold
hi TabLine guifg=#333333 guibg=#d3d3d3 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 QuickFixLine guifg=#ffffff guibg=#8b008b gui=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 LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi FoldColumn guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
hi Folded guifg=#00008b guibg=#d3d3d3 gui=bold cterm=bold
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=bold
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 ToolbarButton guifg=NONE guibg=#999999 gui=bold cterm=bold
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=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=bold,underline
hi WarningMsg guifg=#8b0000 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=bold
hi debugBreakpoint guifg=#00008b guibg=#ff0000 gui=NONE cterm=NONE
hi debugPC guifg=#00008b guibg=#0000ff 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 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=bold
hi Todo guifg=#ffff00 guibg=#0000ff gui=reverse cterm=reverse
hi Type guifg=#00ff00 guibg=NONE gui=bold cterm=bold
hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
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 VertSplit StatusLineNC
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
@ -189,18 +147,6 @@ if s:t_Co >= 256
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
@ -224,6 +170,60 @@ if s:t_Co >= 256
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
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=bold
hi StatusLineNC ctermfg=236 ctermbg=252 cterm=NONE
hi TabLineSel ctermfg=236 ctermbg=231 cterm=bold
hi TabLine ctermfg=236 ctermbg=252 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 QuickFixLine ctermfg=231 ctermbg=90 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 LineNr ctermfg=226 ctermbg=NONE cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=153 ctermbg=NONE cterm=NONE
hi Folded ctermfg=18 ctermbg=252 cterm=bold
hi IncSearch ctermfg=46 ctermbg=NONE cterm=reverse
hi MatchParen ctermfg=NONE ctermbg=30 cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
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 ToolbarButton ctermfg=NONE ctermbg=246 cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=231 ctermbg=246 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi WarningMsg ctermfg=88 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=16 ctermbg=226 cterm=bold
hi debugBreakpoint ctermfg=18 ctermbg=196 cterm=NONE
hi debugPC ctermfg=18 ctermbg=21 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 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=bold
hi Todo ctermfg=226 ctermbg=21 cterm=reverse
hi Type ctermfg=46 ctermbg=NONE cterm=bold
hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@ -233,52 +233,10 @@ if s:t_Co >= 256
endif
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 VertSplit StatusLineNC
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
@ -298,18 +256,6 @@ if s:t_Co >= 16
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
@ -333,6 +279,60 @@ if s:t_Co >= 16
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
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 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 QuickFixLine ctermfg=white ctermbg=darkmagenta 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 LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=lightblue ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=gray cterm=bold
hi IncSearch ctermfg=green ctermbg=NONE cterm=reverse
hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
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 ToolbarButton ctermfg=NONE ctermbg=darkgray cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=white ctermbg=darkgray cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=bold
hi debugBreakpoint ctermfg=darkblue ctermbg=red cterm=NONE
hi debugPC ctermfg=darkblue ctermbg=blue 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 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=bold
hi Todo ctermfg=darkyellow ctermbg=blue cterm=reverse
hi Type ctermfg=green ctermbg=NONE cterm=bold
hi Underlined ctermfg=lightblue ctermbg=NONE cterm=underline
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@ -341,6 +341,68 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=gray ctermbg=black cterm=NONE
hi ColorColumn ctermfg=gray ctermbg=darkred cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=bold
hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=bold
hi StatusLine ctermfg=gray ctermbg=black cterm=bold,reverse
hi StatusLineNC ctermfg=gray ctermbg=black cterm=reverse
hi TabLineSel ctermfg=gray ctermbg=black cterm=bold,reverse
hi TabLine ctermfg=gray ctermbg=black cterm=reverse
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=gray cterm=NONE
hi PmenuSel ctermfg=black ctermbg=gray cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=black cterm=NONE
hi QuickFixLine ctermfg=gray ctermbg=darkmagenta cterm=NONE
hi Error ctermfg=red ctermbg=gray cterm=reverse
hi ErrorMsg ctermfg=gray ctermbg=red cterm=NONE
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=gray cterm=NONE
hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=blue ctermbg=NONE cterm=bold
hi Question ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=gray ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi debugBreakpoint ctermfg=darkblue ctermbg=darkred cterm=NONE
hi debugPC ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Comment ctermfg=darkblue ctermbg=NONE cterm=bold
hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=gray ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi Special ctermfg=darkred ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Todo ctermfg=darkyellow ctermbg=blue cterm=reverse
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -445,4 +507,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" Maintainer: Original maintainer Shian Lee.
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Wed May 11 22:56:38 2022
" Last Updated: Sun Jun 12 10:53:58 2022
" Generated by Colortemplate v2.2.0
@ -20,9 +20,9 @@ if (has('termguicolors') && &termguicolors) || has('gui_running')
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 StatusLine guifg=#000000 guibg=#dadada gui=bold cterm=bold
hi StatusLineNC guifg=#000000 guibg=#6c6c6c gui=NONE cterm=NONE
hi StatusLineTerm guifg=#000000 guibg=#00ff00 gui=bold cterm=NONE
hi StatusLineTerm guifg=#000000 guibg=#00ff00 gui=bold cterm=bold
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
@ -31,8 +31,8 @@ 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 TabLineSel guifg=#ffffff guibg=#000000 gui=bold cterm=bold
hi ToolbarButton guifg=#dadada guibg=#6c6c6c gui=bold cterm=bold
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
@ -40,7 +40,7 @@ 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 CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=bold
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
@ -50,10 +50,10 @@ 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 ModeMsg guifg=#ffffff guibg=NONE gui=bold cterm=bold
hi WarningMsg guifg=#870000 guibg=NONE gui=bold cterm=bold
hi MoreMsg guifg=#5fd75f guibg=NONE gui=bold cterm=bold
hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=bold
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
@ -68,16 +68,16 @@ hi SpellRare guifg=#00ff00 guibg=NONE guisp=#00ff00 gui=undercurl cterm=underlin
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 Statement guifg=#ffffff guibg=NONE gui=bold cterm=bold
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 Type guifg=#00ff00 guibg=NONE gui=bold cterm=bold
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 Title guifg=#ff00ff guibg=NONE gui=bold cterm=bold
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
@ -92,9 +92,9 @@ 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 StatusLine ctermfg=16 ctermbg=253 cterm=bold
hi StatusLineNC ctermfg=16 ctermbg=242 cterm=NONE
hi StatusLineTerm ctermfg=16 ctermbg=46 cterm=NONE
hi StatusLineTerm ctermfg=16 ctermbg=46 cterm=bold
hi StatusLineTermNC ctermfg=16 ctermbg=77 cterm=NONE
hi VertSplit ctermfg=16 ctermbg=242 cterm=NONE
hi Pmenu ctermfg=253 ctermbg=238 cterm=NONE
@ -103,8 +103,8 @@ if s:t_Co >= 256
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 TabLineSel ctermfg=231 ctermbg=16 cterm=bold
hi ToolbarButton ctermfg=253 ctermbg=242 cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=236 cterm=NONE
hi NonText ctermfg=37 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=37 ctermbg=NONE cterm=NONE
@ -112,7 +112,7 @@ if s:t_Co >= 256
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 CursorLineNr ctermfg=226 ctermbg=NONE cterm=bold
hi ColorColumn ctermfg=NONE ctermbg=238 cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=201 cterm=NONE
hi VisualNOS ctermfg=253 ctermbg=242 cterm=NONE
@ -122,10 +122,10 @@ if s:t_Co >= 256
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 ModeMsg ctermfg=231 ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=88 ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=77 ctermbg=NONE cterm=bold
hi Question ctermfg=46 ctermbg=NONE cterm=bold
hi Todo ctermfg=27 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=236 ctermbg=142 cterm=NONE
hi Search ctermfg=16 ctermbg=226 cterm=NONE
@ -140,16 +140,16 @@ if s:t_Co >= 256
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 Statement ctermfg=231 ctermbg=NONE cterm=bold
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 Type ctermfg=46 ctermbg=NONE cterm=bold
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 Title ctermfg=201 ctermbg=NONE cterm=bold
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
@ -167,9 +167,9 @@ endif
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 StatusLine ctermfg=black ctermbg=white cterm=bold
hi StatusLineNC ctermfg=black ctermbg=grey cterm=NONE
hi StatusLineTerm ctermfg=black ctermbg=green cterm=NONE
hi StatusLineTerm ctermfg=black ctermbg=green cterm=bold
hi StatusLineTermNC ctermfg=black ctermbg=darkgreen cterm=NONE
hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
@ -178,7 +178,7 @@ if s:t_Co >= 16
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 TabLineSel ctermfg=white ctermbg=black cterm=bold
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
hi NonText ctermfg=darkcyan ctermbg=NONE cterm=NONE
@ -197,10 +197,10 @@ if s:t_Co >= 16
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 ModeMsg ctermfg=white ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Question ctermfg=green ctermbg=NONE cterm=bold
hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
hi Search ctermfg=black ctermbg=yellow cterm=NONE
@ -215,16 +215,16 @@ if s:t_Co >= 16
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 Statement ctermfg=white ctermbg=NONE cterm=bold
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 Type ctermfg=green ctermbg=NONE cterm=bold
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 Title ctermfg=magenta ctermbg=NONE cterm=bold
hi! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
@ -239,6 +239,73 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi EndOfBuffer ctermfg=grey ctermbg=black cterm=bold
hi StatusLine ctermfg=grey ctermbg=black cterm=bold,reverse
hi StatusLineNC ctermfg=grey ctermbg=black cterm=reverse
hi StatusLineTerm ctermfg=darkgreen ctermbg=black cterm=bold,reverse
hi StatusLineTermNC ctermfg=darkgreen ctermbg=black cterm=reverse
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
hi PmenuThumb ctermfg=black ctermbg=darkyellow cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
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=NONE ctermbg=NONE cterm=reverse
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=bold
hi ColorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkmagenta cterm=NONE
hi VisualNOS ctermfg=black ctermbg=grey cterm=NONE
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
hi ModeMsg ctermfg=grey ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
hi IncSearch ctermfg=black ctermbg=darkgreen cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkblue ctermbg=darkyellow cterm=reverse
hi SpellLocal ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi Comment ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Identifier ctermfg=magenta ctermbg=NONE cterm=NONE
hi Function ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Statement ctermfg=grey ctermbg=NONE cterm=bold
hi Constant ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Special ctermfg=darkred ctermbg=NONE cterm=NONE
hi Delimiter ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -334,4 +401,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -3,7 +3,7 @@
" 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
" Last Updated: Sat 11 Jun 2022 11:24:58 MSK
" Generated by Colortemplate v2.2.0
@ -57,25 +57,25 @@ 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 CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=bold
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 EndOfBuffer guifg=#cd0000 guibg=NONE gui=bold cterm=bold
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 ModeMsg guifg=#ffffff guibg=#0000ff gui=bold cterm=bold
hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=bold
hi NonText guifg=#cd0000 guibg=NONE gui=bold cterm=bold
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 Question guifg=#5c5cff guibg=NONE gui=bold cterm=bold
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
@ -83,12 +83,12 @@ 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 StatusLine guifg=#0000ff guibg=#ffffff gui=bold cterm=bold
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 TabLine guifg=#0000ff guibg=#ffffff gui=bold cterm=bold
hi TabLineFill guifg=#0000ff guibg=#ffffff gui=bold cterm=bold
hi TabLineSel guifg=#ffffff guibg=#0000ff gui=bold cterm=bold
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=bold
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
@ -101,13 +101,13 @@ 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 Statement guifg=#ffff60 guibg=NONE gui=bold cterm=bold
hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
hi Type guifg=#60ff60 guibg=NONE gui=bold cterm=NONE
hi Type guifg=#60ff60 guibg=NONE gui=bold cterm=bold
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 ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=bold
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
@ -118,25 +118,25 @@ if s:t_Co >= 256
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 CursorLineNr ctermfg=226 ctermbg=NONE cterm=bold
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 EndOfBuffer ctermfg=160 ctermbg=NONE cterm=bold
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 ModeMsg ctermfg=231 ctermbg=21 cterm=bold
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=bold
hi NonText ctermfg=160 ctermbg=NONE cterm=bold
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 Question ctermfg=63 ctermbg=NONE cterm=bold
hi Search ctermfg=231 ctermbg=196 cterm=NONE
hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=160 ctermbg=NONE cterm=NONE
@ -144,12 +144,12 @@ if s:t_Co >= 256
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 StatusLine ctermfg=21 ctermbg=231 cterm=bold
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 TabLine ctermfg=21 ctermbg=231 cterm=bold
hi TabLineFill ctermfg=21 ctermbg=231 cterm=bold
hi TabLineSel ctermfg=231 ctermbg=21 cterm=bold
hi Title ctermfg=201 ctermbg=NONE cterm=bold
hi VertSplit ctermfg=21 ctermbg=254 cterm=NONE
hi Visual ctermfg=NONE ctermbg=59 cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
@ -162,13 +162,13 @@ if s:t_Co >= 256
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 Statement ctermfg=227 ctermbg=NONE cterm=bold
hi Todo ctermfg=21 ctermbg=226 cterm=NONE
hi Type ctermfg=83 ctermbg=NONE cterm=NONE
hi Type ctermfg=83 ctermbg=NONE cterm=bold
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 ToolbarButton ctermfg=16 ctermbg=254 cterm=bold
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@ -180,27 +180,27 @@ endif
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
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 EndOfBuffer ctermfg=darkred ctermbg=NONE cterm=bold
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 ModeMsg ctermfg=white ctermbg=darkblue cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi NonText ctermfg=darkred ctermbg=NONE cterm=bold
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 Question ctermfg=blue ctermbg=NONE cterm=bold
hi Search ctermfg=white ctermbg=red cterm=NONE
hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkred ctermbg=NONE cterm=NONE
@ -208,12 +208,12 @@ if s:t_Co >= 16
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 StatusLine ctermfg=darkblue ctermbg=white cterm=bold
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 TabLine ctermfg=darkblue ctermbg=white cterm=bold
hi TabLineFill ctermfg=darkblue ctermbg=white cterm=bold
hi TabLineSel ctermfg=white ctermbg=darkblue cterm=bold
hi Title ctermfg=magenta ctermbg=NONE cterm=bold
hi VertSplit ctermfg=darkblue ctermbg=grey cterm=NONE
hi Visual ctermfg=NONE ctermbg=darkgrey cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
@ -226,13 +226,13 @@ if s:t_Co >= 16
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 Statement ctermfg=yellow ctermbg=NONE cterm=bold
hi Todo ctermfg=darkblue ctermbg=yellow cterm=NONE
hi Type ctermfg=green ctermbg=NONE cterm=NONE
hi Type ctermfg=green ctermbg=NONE cterm=bold
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 ToolbarButton ctermfg=black ctermbg=grey cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@ -241,6 +241,68 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi ColorColumn ctermfg=grey ctermbg=darkred cterm=NONE
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=darkred ctermbg=NONE cterm=bold
hi ErrorMsg ctermfg=darkred ctermbg=grey cterm=bold,reverse
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=darkblue cterm=NONE
hi ModeMsg ctermfg=white ctermbg=darkblue cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi NonText ctermfg=darkred ctermbg=NONE cterm=bold
hi Pmenu ctermfg=grey 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=darkcyan cterm=NONE
hi Question ctermfg=darkblue ctermbg=NONE cterm=bold
hi Search ctermfg=grey ctermbg=darkred cterm=NONE
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkred ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi StatusLine ctermfg=grey ctermbg=darkblue cterm=bold,reverse
hi StatusLineNC ctermfg=grey ctermbg=darkblue cterm=reverse
hi TabLine ctermfg=grey ctermbg=darkblue cterm=bold,reverse
hi TabLineFill ctermfg=darkblue ctermbg=grey cterm=bold
hi TabLineSel ctermfg=grey ctermbg=darkblue cterm=bold
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi VertSplit ctermfg=darkblue ctermbg=grey cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi Comment ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi Error ctermfg=darkred ctermbg=grey cterm=reverse
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=black ctermbg=black cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Todo ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -357,4 +419,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sun Jun 12 10:55:30 2022
" Generated by Colortemplate v2.2.0
@ -18,16 +18,22 @@ 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 Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
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 EndOfBuffer guifg=#0000ff guibg=#cccccc gui=bold cterm=bold
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 CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=bold
hi QuickFixLine guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi StatusLine guifg=#eeeeee guibg=#000000 gui=bold cterm=NONE
hi StatusLine guifg=#eeeeee guibg=#000000 gui=bold cterm=bold
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
@ -36,10 +42,10 @@ 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 TabLineSel guifg=#000000 guibg=#e4e4e4 gui=bold cterm=bold
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 ToolbarButton guifg=NONE guibg=#bcbcbc gui=bold cterm=bold
hi NonText guifg=#0000ff guibg=#bcbcbc gui=bold cterm=bold
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
@ -49,15 +55,15 @@ 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 WarningMsg guifg=#6a0dad guibg=NONE gui=bold cterm=bold
hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=bold
hi ModeMsg guifg=#000000 guibg=NONE gui=bold cterm=bold
hi Question guifg=#008787 guibg=NONE gui=bold cterm=bold
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 WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=bold
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
@ -68,36 +74,36 @@ hi SpellRare guifg=#2e8b57 guibg=NONE guisp=#2e8b57 gui=undercurl cterm=underlin
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 Statement guifg=#a52a2a guibg=NONE gui=bold cterm=bold
hi PreProc guifg=#6a0dad guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=bold
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 Directory guifg=#008787 guibg=NONE gui=bold cterm=bold
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 Title guifg=#a52a2a guibg=NONE gui=bold cterm=bold
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 Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
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 EndOfBuffer ctermfg=21 ctermbg=252 cterm=bold
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 CursorLineNr ctermfg=124 ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=16 ctermbg=226 cterm=NONE
hi StatusLine ctermfg=255 ctermbg=16 cterm=NONE
hi StatusLine ctermfg=255 ctermbg=16 cterm=bold
hi StatusLineNC ctermfg=250 ctermbg=16 cterm=NONE
hi VertSplit ctermfg=250 ctermbg=16 cterm=NONE
hi Pmenu ctermfg=16 ctermbg=249 cterm=NONE
@ -106,10 +112,10 @@ if s:t_Co >= 256
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 TabLineSel ctermfg=16 ctermbg=254 cterm=bold
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 ToolbarButton ctermfg=NONE ctermbg=250 cterm=bold
hi NonText ctermfg=21 ctermbg=250 cterm=bold
hi SpecialKey ctermfg=250 ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=252 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=21 cterm=NONE
@ -119,15 +125,15 @@ if s:t_Co >= 256
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 WarningMsg ctermfg=55 ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=bold
hi ModeMsg ctermfg=16 ctermbg=NONE cterm=bold
hi Question ctermfg=30 ctermbg=NONE cterm=bold
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 WildMenu ctermfg=16 ctermbg=226 cterm=bold
hi ColorColumn ctermfg=16 ctermbg=231 cterm=NONE
hi Cursor ctermfg=254 ctermbg=29 cterm=NONE
hi lCursor ctermfg=254 ctermbg=124 cterm=NONE
@ -138,20 +144,14 @@ if s:t_Co >= 256
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 Statement ctermfg=124 ctermbg=NONE cterm=bold
hi PreProc ctermfg=55 ctermbg=NONE cterm=NONE
hi Type ctermfg=29 ctermbg=NONE cterm=NONE
hi Type ctermfg=29 ctermbg=NONE cterm=bold
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 Directory ctermfg=30 ctermbg=NONE cterm=bold
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 Title ctermfg=124 ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@ -161,8 +161,6 @@ if s:t_Co >= 256
endif
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
@ -170,7 +168,7 @@ if s:t_Co >= 16
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 StatusLine ctermfg=white ctermbg=black cterm=bold
hi StatusLineNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi VertSplit ctermfg=darkgrey ctermbg=black cterm=NONE
hi Pmenu ctermfg=black ctermbg=white cterm=NONE
@ -179,10 +177,10 @@ if s:t_Co >= 16
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 TabLineSel ctermfg=black ctermbg=grey cterm=bold
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 ToolbarButton ctermfg=NONE ctermbg=white cterm=bold
hi NonText ctermfg=blue ctermbg=white cterm=bold
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=white cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=blue cterm=NONE
@ -192,15 +190,15 @@ if s:t_Co >= 16
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 WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi ModeMsg ctermfg=black ctermbg=NONE cterm=bold
hi Question ctermfg=darkcyan ctermbg=NONE cterm=bold
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 WildMenu ctermfg=black ctermbg=yellow cterm=bold
hi ColorColumn ctermfg=black ctermbg=white cterm=NONE
hi Cursor ctermfg=grey ctermbg=darkgreen cterm=NONE
hi lCursor ctermfg=grey ctermbg=darkred cterm=NONE
@ -211,20 +209,14 @@ if s:t_Co >= 16
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 Statement ctermfg=darkred ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
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 Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
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 Title ctermfg=darkred ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@ -233,6 +225,69 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=black ctermbg=gray cterm=NONE
hi EndOfBuffer ctermfg=darkblue 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=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
hi StatusLine ctermfg=black ctermbg=gray cterm=bold,reverse
hi StatusLineNC ctermfg=black ctermbg=gray cterm=reverse
hi VertSplit ctermfg=black ctermbg=gray cterm=reverse
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
hi TabLine ctermfg=gray ctermbg=black cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=black ctermbg=gray cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=gray cterm=bold,reverse
hi NonText ctermfg=darkblue ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=darkblue ctermbg=NONE cterm=bold
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi LineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Error ctermfg=darkred ctermbg=gray cterm=reverse
hi ErrorMsg ctermfg=darkred ctermbg=gray cterm=reverse
hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi Question ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=gray ctermbg=darkblue cterm=NONE
hi Search ctermfg=gray ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=darkred cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=reverse
hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi Comment ctermfg=darkblue ctermbg=NONE cterm=bold
hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkred ctermbg=NONE cterm=bold
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=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkred ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -323,6 +378,14 @@ endif
" Color: error #ff0000 196 red
" Color: colorcolumn #ffffff 231 white
" Color: spellcap #00d700 40 green
" Color: black #000000 16 black
" Color: darkred #870000 88 darkred
" Color: darkgreen #008700 28 darkgreen
" Color: darkyellow #878700 100 darkyellow
" Color: darkblue #000087 18 darkblue
" Color: darkmagenta #870087 18 darkmagenta
" Color: darkcyan #008787 30 darkcyan
" Color: gray #878787 102 gray
" 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
@ -331,4 +394,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sun Jun 12 10:56:21 2022
" Generated by Colortemplate v2.2.0
@ -18,6 +18,12 @@ 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 Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi Normal guifg=#87ff87 guibg=#000000 gui=NONE cterm=NONE
@ -33,14 +39,14 @@ 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 ToolbarButton guifg=#ffffff guibg=#444444 gui=bold cterm=bold
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 CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=bold
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
@ -50,10 +56,10 @@ 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 ModeMsg guifg=#87ff87 guibg=NONE gui=bold cterm=bold
hi WarningMsg guifg=#ffa700 guibg=NONE gui=bold cterm=bold
hi MoreMsg guifg=#005f00 guibg=NONE gui=bold cterm=bold
hi Question guifg=#00ffff guibg=NONE gui=bold cterm=bold
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
@ -75,19 +81,19 @@ 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 Title guifg=#ff00ff guibg=NONE gui=bold cterm=bold
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 Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi Normal ctermfg=120 ctermbg=16 cterm=NONE
@ -103,14 +109,14 @@ if s:t_Co >= 256
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 ToolbarButton ctermfg=231 ctermbg=238 cterm=bold
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 CursorLineNr ctermfg=226 ctermbg=NONE cterm=bold
hi ColorColumn ctermfg=NONE ctermbg=235 cterm=NONE
hi Visual ctermfg=231 ctermbg=22 cterm=NONE
hi VisualNOS ctermfg=231 ctermbg=22 cterm=NONE
@ -120,10 +126,10 @@ if s:t_Co >= 256
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 ModeMsg ctermfg=120 ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=214 ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=22 ctermbg=NONE cterm=bold
hi Question ctermfg=51 ctermbg=NONE cterm=bold
hi Todo ctermfg=21 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=236 ctermbg=223 cterm=NONE
hi Search ctermfg=231 ctermbg=21 cterm=NONE
@ -145,13 +151,7 @@ if s:t_Co >= 256
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 Title ctermfg=201 ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@ -161,8 +161,6 @@ if s:t_Co >= 256
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
@ -176,7 +174,7 @@ if s:t_Co >= 16
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 ToolbarButton ctermfg=white ctermbg=darkgrey cterm=bold
hi NonText ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
@ -193,10 +191,10 @@ if s:t_Co >= 16
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 ModeMsg ctermfg=green ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Question ctermfg=cyan ctermbg=NONE cterm=bold
hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
hi Search ctermfg=white ctermbg=blue cterm=NONE
@ -218,13 +216,7 @@ if s:t_Co >= 16
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 Title ctermfg=magenta ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@ -233,6 +225,70 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=darkgreen ctermbg=black cterm=NONE
hi EndOfBuffer ctermfg=darkblue ctermbg=NONE cterm=bold
hi StatusLine ctermfg=darkblue ctermbg=grey cterm=bold,reverse
hi StatusLineNC ctermfg=grey ctermbg=black cterm=reverse
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow 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=grey ctermbg=black cterm=reverse
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
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=darkyellow ctermbg=NONE cterm=bold
hi ColorColumn ctermfg=grey ctermbg=darkred cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=reverse,underline
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
hi ModeMsg ctermfg=grey ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Question ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Todo ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
hi Search ctermfg=grey ctermbg=darkblue cterm=NONE
hi IncSearch ctermfg=darkred ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi Comment ctermfg=darkred ctermbg=NONE cterm=bold
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Constant ctermfg=grey ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi Type ctermfg=grey ctermbg=NONE cterm=NONE
hi Special ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -332,4 +388,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -3,7 +3,7 @@
" 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
" Last Updated: Sun Jun 12 10:57:11 2022
" Generated by Colortemplate v2.2.0
@ -27,7 +27,7 @@ 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 Statement guifg=#c0c000 guibg=NONE gui=bold cterm=bold
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
@ -39,12 +39,12 @@ 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 Title guifg=#ff00ff guibg=NONE gui=bold cterm=bold
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 NonText guifg=#0000ff guibg=NONE gui=bold cterm=bold
hi EndOfBuffer guifg=#0000ff guibg=NONE gui=bold cterm=bold
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
@ -53,16 +53,16 @@ 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 CursorLineNr guifg=#ffff00 guibg=#3a3a3a gui=bold cterm=bold
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 ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg guifg=#5c5cff guibg=NONE gui=bold cterm=bold
hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=bold
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
@ -75,9 +75,9 @@ 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 TabLineSel guifg=#ffffff guibg=#000000 gui=bold cterm=bold
hi ToolbarLine guifg=NONE guibg=#000000 gui=NONE cterm=NONE
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=bold
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
@ -98,7 +98,7 @@ if s:t_Co >= 256
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 Statement ctermfg=142 ctermbg=NONE cterm=bold
hi PreProc ctermfg=46 ctermbg=NONE cterm=NONE
hi Type ctermfg=34 ctermbg=NONE cterm=NONE
hi Special ctermfg=21 ctermbg=NONE cterm=NONE
@ -110,12 +110,12 @@ if s:t_Co >= 256
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 Title ctermfg=225 ctermbg=NONE cterm=bold
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 NonText ctermfg=63 ctermbg=NONE cterm=bold
hi EndOfBuffer ctermfg=63 ctermbg=NONE cterm=bold
hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
hi WarningMsg ctermfg=224 ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=51 ctermbg=248 cterm=NONE
@ -124,16 +124,16 @@ if s:t_Co >= 256
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 CursorLineNr ctermfg=226 ctermbg=237 cterm=bold
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 ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=63 ctermbg=NONE cterm=bold
hi Question ctermfg=121 ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=81 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=44 cterm=NONE
@ -146,9 +146,9 @@ if s:t_Co >= 256
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 TabLineSel ctermfg=231 ctermbg=16 cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=16 cterm=NONE
hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
hi ToolbarButton ctermfg=16 ctermbg=254 cterm=bold
hi Pmenu ctermfg=fg ctermbg=236 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=16 ctermbg=254 cterm=NONE
@ -172,7 +172,7 @@ if s:t_Co >= 16
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 Statement ctermfg=darkyellow ctermbg=NONE cterm=bold
hi PreProc ctermfg=green ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Special ctermfg=blue ctermbg=NONE cterm=NONE
@ -184,12 +184,12 @@ if s:t_Co >= 16
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 Title ctermfg=magenta ctermbg=NONE cterm=bold
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 NonText ctermfg=blue ctermbg=NONE cterm=bold
hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=bold
hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=cyan ctermbg=black cterm=NONE
@ -205,9 +205,9 @@ if s:t_Co >= 16
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 ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=blue ctermbg=NONE cterm=bold
hi Question ctermfg=green ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
@ -220,9 +220,9 @@ if s:t_Co >= 16
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 TabLineSel ctermfg=white ctermbg=black cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=bold
hi Pmenu ctermfg=fg ctermbg=darkgrey cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=black ctermbg=grey cterm=NONE
@ -235,6 +235,75 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi EndOfBuffer ctermfg=grey ctermbg=black cterm=bold
hi StatusLine ctermfg=darkblue ctermbg=grey cterm=reverse
hi StatusLineNC ctermfg=grey ctermbg=black cterm=reverse
hi StatusLineTerm ctermfg=darkblue ctermbg=grey cterm=reverse
hi StatusLineTermNC ctermfg=grey ctermbg=black cterm=reverse
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
hi PmenuThumb ctermfg=black ctermbg=darkyellow cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
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=NONE ctermbg=NONE cterm=reverse
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=bold
hi ColorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkmagenta cterm=NONE
hi VisualNOS ctermfg=black ctermbg=grey cterm=NONE
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
hi ModeMsg ctermfg=grey ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkcyan cterm=NONE
hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
hi IncSearch ctermfg=black ctermbg=darkgreen cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkblue ctermbg=darkyellow cterm=reverse
hi SpellLocal ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi Comment ctermfg=grey ctermbg=NONE cterm=bold
hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkyellow ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Special ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi Directory ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -359,4 +428,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sun Jun 12 10:58:17 2022
" Generated by Colortemplate v2.2.0
@ -18,27 +18,33 @@ 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! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
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 CursorLineNr guifg=#cd0000 guibg=NONE gui=bold cterm=bold
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 StatusLine guifg=#ffffff guibg=#000000 gui=bold cterm=bold
hi StatusLineNC guifg=#ffdab9 guibg=#737373 gui=bold cterm=bold
hi StatusLineTerm guifg=#ffffff guibg=#2e8b57 gui=bold cterm=bold
hi StatusLineTermNC guifg=#ffdab9 guibg=#008b8b gui=bold cterm=bold
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 PmenuSel guifg=#000000 guibg=#f5c195 gui=bold cterm=bold
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 TabLineSel guifg=#000000 guibg=#ffdab9 gui=bold cterm=bold
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 ToolbarButton guifg=#ffdab9 guibg=#737373 gui=bold cterm=bold
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
@ -47,17 +53,17 @@ 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 Error guifg=#ff0000 guibg=#ffffff gui=bold,reverse cterm=bold,reverse
hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=bold,reverse cterm=bold,reverse
hi WarningMsg guifg=#cd00cd guibg=#ffdab9 gui=bold cterm=bold
hi MoreMsg guifg=#2e8b57 guibg=#ffdab9 gui=bold cterm=bold
hi ModeMsg guifg=#000000 guibg=#ffdab9 gui=bold cterm=bold
hi Question guifg=#c00058 guibg=NONE gui=bold cterm=bold
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 WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=bold
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
@ -68,47 +74,47 @@ hi SpellRare guifg=#6a5acd guibg=NONE guisp=#6a5acd gui=undercurl cterm=underlin
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 Statement guifg=#a52a2a guibg=NONE gui=bold cterm=bold
hi PreProc guifg=#cd00cd guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=bold
hi Special guifg=#6a5acd guibg=NONE gui=NONE cterm=NONE
hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=bold
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 Title guifg=#cd00cd guibg=NONE gui=bold cterm=bold
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 Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
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 CursorLineNr ctermfg=160 ctermbg=NONE cterm=bold
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 StatusLine ctermfg=231 ctermbg=16 cterm=bold
hi StatusLineNC ctermfg=223 ctermbg=243 cterm=bold
hi StatusLineTerm ctermfg=231 ctermbg=29 cterm=bold
hi StatusLineTermNC ctermfg=223 ctermbg=30 cterm=bold
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 PmenuSel ctermfg=16 ctermbg=180 cterm=bold
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 TabLineSel ctermfg=16 ctermbg=223 cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=223 ctermbg=243 cterm=NONE
hi ToolbarButton ctermfg=223 ctermbg=243 cterm=bold
hi NonText ctermfg=243 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=243 ctermbg=NONE cterm=NONE
hi Visual ctermfg=16 ctermbg=252 cterm=NONE
@ -117,17 +123,17 @@ if s:t_Co >= 256
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 Error ctermfg=196 ctermbg=231 cterm=bold,reverse
hi ErrorMsg ctermfg=196 ctermbg=231 cterm=bold,reverse
hi WarningMsg ctermfg=164 ctermbg=223 cterm=bold
hi MoreMsg ctermfg=29 ctermbg=223 cterm=bold
hi ModeMsg ctermfg=16 ctermbg=223 cterm=bold
hi Question ctermfg=161 ctermbg=NONE cterm=bold
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 WildMenu ctermfg=16 ctermbg=226 cterm=bold
hi ColorColumn ctermfg=NONE ctermbg=255 cterm=NONE
hi Cursor ctermfg=223 ctermbg=16 cterm=NONE
hi lCursor ctermfg=16 ctermbg=161 cterm=NONE
@ -138,20 +144,14 @@ if s:t_Co >= 256
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 Statement ctermfg=124 ctermbg=NONE cterm=bold
hi PreProc ctermfg=164 ctermbg=NONE cterm=NONE
hi Type ctermfg=29 ctermbg=NONE cterm=NONE
hi Type ctermfg=29 ctermbg=NONE cterm=bold
hi Special ctermfg=62 ctermbg=NONE cterm=NONE
hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
hi Directory ctermfg=30 ctermbg=NONE cterm=bold
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 Title ctermfg=164 ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@ -168,20 +168,20 @@ if s:t_Co >= 16
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 StatusLine ctermfg=white ctermbg=black cterm=bold
hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=bold
hi StatusLineTerm ctermfg=white ctermbg=darkgreen cterm=bold
hi StatusLineTermNC ctermfg=white ctermbg=darkcyan cterm=bold
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 PmenuSel ctermfg=black ctermbg=yellow cterm=bold
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 TabLineSel ctermfg=black ctermbg=white cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=bold
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Visual ctermfg=black ctermbg=grey cterm=NONE
@ -190,17 +190,17 @@ if s:t_Co >= 16
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 Error ctermfg=darkred ctermbg=white cterm=bold,reverse
hi ErrorMsg ctermfg=darkred ctermbg=white cterm=bold,reverse
hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=white cterm=bold
hi ModeMsg ctermfg=black ctermbg=white cterm=bold
hi Question ctermfg=darkred ctermbg=NONE cterm=bold
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 WildMenu ctermfg=black ctermbg=yellow cterm=bold
hi ColorColumn ctermfg=NONE ctermbg=grey cterm=NONE
hi Cursor ctermfg=white ctermbg=black cterm=NONE
hi lCursor ctermfg=black ctermbg=darkred cterm=NONE
@ -211,20 +211,14 @@ if s:t_Co >= 16
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 Statement ctermfg=darkred ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Special ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
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 Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@ -233,6 +227,71 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=black ctermbg=gray 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=gray ctermbg=darkcyan cterm=NONE
hi EndOfBuffer ctermfg=darkblue ctermbg=NONE cterm=bold
hi StatusLine ctermfg=black ctermbg=gray cterm=bold,reverse
hi StatusLineNC ctermfg=black ctermbg=gray cterm=reverse
hi StatusLineTerm ctermfg=black ctermbg=gray cterm=bold,reverse
hi StatusLineTermNC ctermfg=black ctermbg=gray cterm=reverse
hi VertSplit ctermfg=black ctermbg=gray cterm=reverse
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
hi TabLine ctermfg=gray ctermbg=black cterm=NONE
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=black ctermbg=gray cterm=bold,reverse
hi NonText ctermfg=darkblue ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=darkblue ctermbg=NONE cterm=bold
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi LineNr ctermfg=black ctermbg=NONE cterm=bold
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Error ctermfg=darkred ctermbg=gray cterm=bold,reverse
hi ErrorMsg ctermfg=darkred ctermbg=gray cterm=bold,reverse
hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi ModeMsg ctermfg=black ctermbg=NONE cterm=bold
hi Question ctermfg=darkred ctermbg=NONE cterm=bold
hi Todo ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=gray ctermbg=darkblue cterm=NONE
hi Search ctermfg=gray ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=darkred cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=reverse
hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkblue ctermbg=NONE cterm=reverse
hi Comment ctermfg=NONE ctermbg=NONE cterm=bold
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkred ctermbg=NONE cterm=bold
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=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -324,6 +383,14 @@ endif
" Color: blue #0000ff 21 darkblue
" Color: red #ff0000 196 darkred
" Color: colorcolumn #eeeeee 255 grey
" Color: black #000000 16 black
" Color: darkred #870000 88 darkred
" Color: darkgreen #008700 28 darkgreen
" Color: darkyellow #878700 100 darkyellow
" Color: darkblue #000087 18 darkblue
" Color: darkmagenta #870087 18 darkmagenta
" Color: darkcyan #008787 30 darkcyan
" Color: gray #878787 102 gray
" 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
@ -332,4 +399,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -3,7 +3,7 @@
" 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
" Last Updated: Sat 11 Jun 2022 11:29:07 MSK
" Generated by Colortemplate v2.2.0
@ -44,6 +44,8 @@ hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
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']
@ -107,8 +109,6 @@ 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
@ -174,8 +174,6 @@ if s:t_Co >= 256
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
@ -244,8 +242,6 @@ if s:t_Co >= 16
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
@ -254,6 +250,72 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=darkcyan ctermbg=black cterm=NONE
hi ColorColumn ctermfg=darkcyan ctermbg=darkred cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=underline
hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
hi EndOfBuffer ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=darkred ctermbg=grey cterm=reverse
hi FoldColumn ctermfg=grey ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkcyan ctermbg=black cterm=reverse
hi IncSearch ctermfg=darkyellow ctermbg=darkblue cterm=NONE
hi LineNr ctermfg=grey ctermbg=NONE cterm=bold
hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=bold
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Pmenu ctermfg=grey 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=darkgreen ctermbg=black cterm=bold
hi Search ctermfg=black ctermbg=grey cterm=NONE
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=darkblue ctermbg=grey cterm=bold,reverse
hi StatusLineNC ctermfg=darkblue ctermbg=grey cterm=reverse
hi VertSplit ctermfg=darkblue ctermbg=darkblue cterm=NONE
hi TabLine ctermfg=black ctermbg=darkcyan cterm=NONE
hi TabLineFill ctermfg=darkblue ctermbg=darkblue cterm=NONE
hi TabLineSel ctermfg=darkcyan ctermbg=black cterm=bold
hi Terminal ctermfg=darkcyan ctermbg=black cterm=NONE
hi Title ctermfg=grey ctermbg=NONE cterm=bold
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
hi WarningMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkgreen cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkyellow ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi Comment ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Error ctermfg=darkred ctermbg=grey cterm=bold,reverse
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=black ctermbg=black cterm=NONE
hi Label ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Operator ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Statement ctermfg=darkblue ctermbg=NONE cterm=bold
hi Todo ctermfg=black ctermbg=darkyellow cterm=bold
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -375,4 +437,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sun Jun 12 11:02:11 2022
" Generated by Colortemplate v2.2.0
@ -18,16 +18,25 @@ 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! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link EndOfBuffer NonText
hi! link ErrorMsg Error
hi! link Tag Special
hi! link Operator Statement
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 StatusLine guifg=#ffffff guibg=#000000 gui=bold cterm=bold
hi StatusLineNC guifg=#ffffff guibg=#a8a8a8 gui=NONE cterm=NONE
hi StatusLineTerm guifg=#000000 guibg=#90ee90 gui=bold cterm=NONE
hi StatusLineTerm guifg=#000000 guibg=#90ee90 gui=bold cterm=bold
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
@ -36,9 +45,9 @@ 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 TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=bold
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 ToolbarButton guifg=NONE guibg=#a8a8a8 gui=bold cterm=bold
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
@ -48,7 +57,6 @@ 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
@ -57,7 +65,7 @@ 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 WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=bold
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
@ -65,45 +73,46 @@ 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 Statement guifg=#2e8b57 guibg=NONE gui=bold cterm=bold
hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=bold
hi Comment guifg=#a8a8a8 guibg=NONE gui=bold cterm=NONE
hi StorageClass guifg=#ff0000 guibg=NONE gui=bold cterm=bold
hi Conceal guifg=#dadada guibg=#767676 gui=NONE cterm=NONE
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 Number guifg=#a07070 guibg=NONE gui=bold cterm=bold
hi Float guifg=#a07070 guibg=NONE gui=bold cterm=bold
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 Directory guifg=#008b8b guibg=NONE gui=bold cterm=bold
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 Title guifg=#006400 guibg=NONE gui=bold cterm=bold
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 Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link EndOfBuffer NonText
hi! link ErrorMsg Error
hi! link Tag Special
hi! link Operator Statement
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 StatusLine ctermfg=231 ctermbg=16 cterm=bold
hi StatusLineNC ctermfg=231 ctermbg=248 cterm=NONE
hi StatusLineTerm ctermfg=16 ctermbg=120 cterm=NONE
hi StatusLineTerm ctermfg=16 ctermbg=120 cterm=bold
hi StatusLineTermNC ctermfg=253 ctermbg=22 cterm=NONE
hi VertSplit ctermfg=248 ctermbg=248 cterm=NONE
hi Pmenu ctermfg=16 ctermbg=248 cterm=NONE
@ -112,9 +121,9 @@ if s:t_Co >= 256
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 TabLineSel ctermfg=16 ctermbg=231 cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=248 cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=248 cterm=bold
hi NonText ctermfg=153 ctermbg=231 cterm=NONE
hi SpecialKey ctermfg=153 ctermbg=NONE cterm=NONE
hi Visual ctermfg=16 ctermbg=248 cterm=NONE
@ -124,7 +133,6 @@ if s:t_Co >= 256
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
@ -133,7 +141,7 @@ if s:t_Co >= 256
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 WildMenu ctermfg=16 ctermbg=226 cterm=bold
hi ColorColumn ctermfg=16 ctermbg=217 cterm=NONE
hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
hi lCursor ctermfg=16 ctermbg=95 cterm=NONE
@ -141,29 +149,21 @@ if s:t_Co >= 256
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 Statement ctermfg=29 ctermbg=NONE cterm=bold
hi Type ctermfg=29 ctermbg=NONE cterm=bold
hi Comment ctermfg=248 ctermbg=NONE cterm=NONE
hi StorageClass ctermfg=196 ctermbg=NONE cterm=bold
hi Conceal ctermfg=253 ctermbg=243 cterm=NONE
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 Number ctermfg=95 ctermbg=NONE cterm=bold
hi Float ctermfg=95 ctermbg=NONE cterm=bold
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 Directory ctermfg=30 ctermbg=NONE cterm=bold
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 Title ctermfg=22 ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@ -176,13 +176,12 @@ 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 CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
hi! link EndOfBuffer NonText
hi StatusLine ctermfg=white ctermbg=black cterm=NONE
hi StatusLine ctermfg=white ctermbg=black cterm=bold
hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=NONE
hi StatusLineTerm ctermfg=black ctermbg=green cterm=NONE
hi StatusLineTerm ctermfg=black ctermbg=green cterm=bold
hi StatusLineTermNC ctermfg=grey ctermbg=darkgreen cterm=NONE
hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
hi Pmenu ctermfg=black ctermbg=darkgrey cterm=NONE
@ -191,9 +190,9 @@ if s:t_Co >= 16
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 TabLineSel ctermfg=black ctermbg=white cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=darkgrey cterm=bold
hi NonText ctermfg=blue ctermbg=white cterm=NONE
hi SpecialKey ctermfg=blue ctermbg=NONE cterm=NONE
hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
@ -203,7 +202,6 @@ if s:t_Co >= 16
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
@ -212,7 +210,7 @@ if s:t_Co >= 16
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 WildMenu ctermfg=black ctermbg=yellow cterm=bold
hi ColorColumn ctermfg=black ctermbg=red cterm=NONE
hi Cursor ctermfg=white ctermbg=black cterm=NONE
hi lCursor ctermfg=black ctermbg=darkred cterm=NONE
@ -220,29 +218,21 @@ if s:t_Co >= 16
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 Statement ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi StorageClass ctermfg=red ctermbg=NONE cterm=bold
hi Conceal ctermfg=grey ctermbg=darkgrey cterm=NONE
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 Number ctermfg=darkred ctermbg=NONE cterm=bold
hi Float ctermfg=darkred ctermbg=NONE cterm=bold
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 Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
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 Title ctermfg=darkgreen ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@ -251,6 +241,73 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=black ctermbg=grey 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=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
hi StatusLine ctermfg=black ctermbg=grey cterm=bold,reverse
hi StatusLineNC ctermfg=black ctermbg=grey cterm=reverse
hi StatusLineTerm ctermfg=black ctermbg=darkgreen cterm=bold,reverse
hi StatusLineTermNC ctermfg=grey ctermbg=darkgreen cterm=reverse
hi VertSplit ctermfg=black ctermbg=grey cterm=reverse
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuSbar ctermfg=grey ctermbg=grey cterm=NONE
hi PmenuThumb ctermfg=black ctermbg=black cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=reverse
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=grey ctermbg=black cterm=reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=bold,reverse
hi NonText ctermfg=darkblue ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
hi LineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi FoldColumn ctermfg=grey ctermbg=NONE cterm=bold
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Error ctermfg=darkred ctermbg=NONE cterm=bold,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=darkred ctermbg=NONE cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=grey ctermbg=darkred cterm=NONE
hi Search ctermfg=grey ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=darkcyan ctermbg=darkyellow cterm=reverse
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=bold
hi ColorColumn ctermfg=black ctermbg=darkred cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=reverse
hi SpellCap ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=reverse
hi SpellRare ctermfg=darkblue ctermbg=NONE cterm=reverse
hi Statement ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Comment ctermfg=black ctermbg=NONE cterm=bold
hi StorageClass ctermfg=darkred ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi Number ctermfg=darkred ctermbg=NONE cterm=bold
hi Float ctermfg=darkred ctermbg=NONE cterm=bold
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 Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkgreen ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -350,4 +407,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sun Jun 12 11:03:10 2022
" Generated by Colortemplate v2.2.0
@ -18,6 +18,12 @@ 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
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 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
@ -41,6 +47,7 @@ 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 ColorColumn guifg=NONE guibg=#000000 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
@ -58,7 +65,6 @@ 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
@ -70,29 +76,29 @@ 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 Statement guifg=#5f87d7 guibg=NONE gui=bold cterm=bold
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 Type guifg=#5f87d7 guibg=NONE gui=bold cterm=bold
hi Operator guifg=#d7875f guibg=NONE gui=NONE cterm=NONE
hi Define guifg=#ffd700 guibg=NONE gui=bold cterm=NONE
hi Define guifg=#ffd700 guibg=NONE gui=bold cterm=bold
hi Structure guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
hi Directory guifg=#00875f guibg=NONE gui=bold cterm=NONE
hi Directory guifg=#00875f guibg=NONE gui=bold cterm=bold
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 Title guifg=#ffd700 guibg=NONE gui=bold cterm=bold
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 Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Normal ctermfg=231 ctermbg=235 cterm=NONE
hi EndOfBuffer ctermfg=68 ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=16 ctermbg=144 cterm=NONE
@ -116,6 +122,7 @@ if s:t_Co >= 256
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 ColorColumn ctermfg=NONE ctermbg=16 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
@ -133,9 +140,6 @@ if s:t_Co >= 256
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
@ -145,23 +149,17 @@ if s:t_Co >= 256
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 Statement ctermfg=68 ctermbg=NONE cterm=bold
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 Type ctermfg=68 ctermbg=NONE cterm=bold
hi Operator ctermfg=173 ctermbg=NONE cterm=NONE
hi Define ctermfg=220 ctermbg=NONE cterm=NONE
hi Define ctermfg=220 ctermbg=NONE cterm=bold
hi Structure ctermfg=46 ctermbg=NONE cterm=NONE
hi Directory ctermfg=29 ctermbg=NONE cterm=NONE
hi Directory ctermfg=29 ctermbg=NONE cterm=bold
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 Title ctermfg=220 ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@ -194,7 +192,7 @@ if s:t_Co >= 16
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 CursorLineNr ctermfg=yellow ctermbg=NONE cterm=bold
hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
hi Visual ctermfg=yellow ctermbg=darkgreen cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=black cterm=NONE
@ -212,9 +210,6 @@ if s:t_Co >= 16
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
@ -224,23 +219,17 @@ if s:t_Co >= 16
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 Statement ctermfg=blue ctermbg=NONE cterm=bold
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 Type ctermfg=blue ctermbg=NONE cterm=bold
hi Operator ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Define ctermfg=yellow ctermbg=NONE cterm=NONE
hi Define ctermfg=yellow ctermbg=NONE cterm=bold
hi Structure ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Directory ctermfg=green ctermbg=NONE cterm=NONE
hi Directory ctermfg=green ctermbg=NONE cterm=bold
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 Title ctermfg=yellow ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@ -249,6 +238,75 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi EndOfBuffer ctermfg=darkblue ctermbg=NONE cterm=bold
hi StatusLine ctermfg=grey ctermbg=black cterm=bold,reverse
hi StatusLineNC ctermfg=grey ctermbg=black cterm=reverse
hi StatusLineTerm ctermfg=grey ctermbg=black cterm=bold,reverse
hi StatusLineTermNC ctermfg=grey ctermbg=black cterm=reverse
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkyellow cterm=NONE
hi TabLineSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi TabLine ctermfg=grey ctermbg=black cterm=reverse
hi TabLineFill ctermfg=grey ctermbg=black cterm=reverse
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi NonText ctermfg=darkblue ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=darkgreen ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=black ctermbg=darkblue 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=darkyellow ctermbg=NONE cterm=bold
hi ColorColumn ctermfg=grey ctermbg=darkred cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi VisualNOS ctermfg=darkmagenta ctermbg=darkgreen cterm=underline
hi LineNr ctermfg=grey ctermbg=NONE cterm=bold
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Error ctermfg=darkred ctermbg=grey cterm=reverse
hi ErrorMsg ctermfg=darkred ctermbg=black cterm=reverse
hi ModeMsg ctermfg=NONE ctermbg=darkyellow cterm=NONE
hi WarningMsg ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkred ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkyellow 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 SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkyellow ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi Comment ctermfg=grey ctermbg=NONE cterm=bold
hi String ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkred ctermbg=NONE cterm=NONE
hi Function ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkblue ctermbg=NONE cterm=bold
hi Constant ctermfg=darkred ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=darkblue ctermbg=NONE cterm=bold
hi Operator ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Define ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Structure ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkyellow ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -347,4 +405,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sun Jun 12 11:04:48 2022
" Generated by Colortemplate v2.2.0
@ -18,9 +18,15 @@ 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=#cccccc guibg=#000000 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! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi Normal guifg=#cccccc guibg=#000000 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=#40ffff guibg=NONE gui=NONE cterm=NONE
@ -44,7 +50,7 @@ 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 Title guifg=#ff00ff guibg=NONE gui=bold cterm=bold
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
@ -54,9 +60,9 @@ 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 ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=bold
hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=bold
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
@ -65,33 +71,33 @@ 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 StatusLine guifg=#ffffff guibg=#0000ee gui=bold cterm=bold
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 TabLineSel guifg=#cccccc guibg=#000000 gui=bold cterm=bold
hi ToolbarLine guifg=NONE guibg=#000000 gui=NONE cterm=NONE
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=bold
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
if s:t_Co >= 256
hi Normal ctermfg=251 ctermbg=16 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! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi Normal ctermfg=251 ctermbg=16 cterm=NONE
hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=87 ctermbg=NONE cterm=NONE
@ -115,7 +121,7 @@ if s:t_Co >= 256
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 Title ctermfg=201 ctermbg=NONE cterm=bold
hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
hi Search ctermfg=196 ctermbg=16 cterm=reverse
hi IncSearch ctermfg=40 ctermbg=16 cterm=reverse
@ -125,9 +131,9 @@ if s:t_Co >= 256
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 ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=bold
hi Question ctermfg=46 ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
@ -136,24 +142,18 @@ if s:t_Co >= 256
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 StatusLine ctermfg=231 ctermbg=20 cterm=bold
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 TabLineSel ctermfg=251 ctermbg=16 cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=16 cterm=NONE
hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
hi ToolbarButton ctermfg=16 ctermbg=254 cterm=bold
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
@ -164,8 +164,6 @@ 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
@ -181,7 +179,7 @@ if s:t_Co >= 16
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 CursorLineNr ctermfg=yellow ctermbg=NONE cterm=bold
hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=cyan ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
@ -189,7 +187,7 @@ if s:t_Co >= 16
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 Title ctermfg=magenta ctermbg=NONE cterm=bold
hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
hi Search ctermfg=red ctermbg=black cterm=reverse
hi IncSearch ctermfg=darkgreen ctermbg=black cterm=reverse
@ -199,9 +197,9 @@ if s:t_Co >= 16
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 ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Question ctermfg=green ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
@ -210,24 +208,18 @@ if s:t_Co >= 16
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 StatusLine ctermfg=white ctermbg=darkblue cterm=bold
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 TabLineSel ctermfg=white ctermbg=black cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=bold
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
@ -236,6 +228,69 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi Comment ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkyellow ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Special ctermfg=darkred ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Ignore ctermfg=black ctermbg=black cterm=NONE
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
hi Todo ctermfg=darkyellow ctermbg=black cterm=reverse
hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=bold,underline
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Search ctermfg=darkred ctermbg=black cterm=bold,reverse
hi IncSearch ctermfg=darkgreen ctermbg=black cterm=reverse
hi NonText ctermfg=darkblue ctermbg=NONE cterm=bold
hi EndOfBuffer ctermfg=darkblue ctermbg=NONE cterm=bold
hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi LineNr ctermfg=grey ctermbg=NONE cterm=bold
hi MatchParen ctermfg=grey ctermbg=darkcyan cterm=NONE
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Question ctermfg=darkgreen ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkblue ctermbg=darkyellow cterm=reverse
hi SpellLocal ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi StatusLine ctermfg=grey ctermbg=darkblue cterm=bold
hi StatusLineNC ctermfg=black ctermbg=grey cterm=NONE
hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
hi TabLineSel ctermfg=white ctermbg=black cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkmagenta cterm=NONE
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -359,4 +414,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -4,7 +4,7 @@
" 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
" Last Updated: Sun Jun 12 11:05:43 2022
" Generated by Colortemplate v2.2.0
@ -18,11 +18,17 @@ 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! link Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
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 CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=bold
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
@ -36,9 +42,9 @@ 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 TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=bold
hi ToolbarLine guifg=NONE guibg=#d3d3d3 gui=NONE cterm=NONE
hi ToolbarButton guifg=NONE guibg=#a9a9a9 gui=bold cterm=NONE
hi ToolbarButton guifg=NONE guibg=#a9a9a9 gui=bold cterm=bold
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
@ -50,9 +56,9 @@ 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 MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=bold
hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=bold
hi Question guifg=#ff00ff guibg=NONE gui=bold cterm=bold
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
@ -73,27 +79,27 @@ 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 Directory guifg=#0000ff guibg=NONE gui=bold cterm=bold
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 Title guifg=#a020f0 guibg=NONE gui=bold cterm=bold
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 Terminal Normal
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
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 CursorLineNr ctermfg=124 ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=231 ctermbg=62 cterm=NONE
hi EndOfBuffer ctermfg=248 ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=226 ctermbg=248 cterm=NONE
@ -107,9 +113,9 @@ if s:t_Co >= 256
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 TabLineSel ctermfg=16 ctermbg=231 cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=252 cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=248 cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=248 cterm=bold
hi NonText ctermfg=248 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=248 ctermbg=NONE cterm=NONE
hi Visual ctermfg=16 ctermbg=226 cterm=NONE
@ -121,9 +127,9 @@ if s:t_Co >= 256
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 MoreMsg ctermfg=16 ctermbg=231 cterm=bold
hi ModeMsg ctermfg=16 ctermbg=231 cterm=bold
hi Question ctermfg=201 ctermbg=NONE cterm=bold
hi Todo ctermfg=16 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=231 ctermbg=201 cterm=NONE
hi Search ctermfg=231 ctermbg=129 cterm=NONE
@ -144,16 +150,10 @@ if s:t_Co >= 256
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 Directory ctermfg=21 ctermbg=NONE cterm=bold
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 Title ctermfg=129 ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@ -164,10 +164,10 @@ endif
if s:t_Co >= 16
hi Normal ctermfg=black ctermbg=white cterm=NONE
hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkblue ctermbg=NONE cterm=bold
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 CursorLineNr ctermfg=darkred ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=white ctermbg=blue cterm=NONE
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=yellow ctermbg=darkgrey cterm=NONE
@ -181,9 +181,9 @@ if s:t_Co >= 16
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 TabLineSel ctermfg=black ctermbg=white cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=grey cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=grey cterm=bold
hi NonText ctermfg=grey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=grey ctermbg=NONE cterm=NONE
hi Visual ctermfg=black ctermbg=yellow cterm=NONE
@ -195,9 +195,9 @@ if s:t_Co >= 16
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 MoreMsg ctermfg=black ctermbg=white cterm=bold
hi ModeMsg ctermfg=black ctermbg=white cterm=bold
hi Question ctermfg=magenta ctermbg=NONE cterm=bold
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi MatchParen ctermfg=white ctermbg=magenta cterm=NONE
hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
@ -218,16 +218,10 @@ if s:t_Co >= 16
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 Directory ctermfg=blue ctermbg=NONE cterm=bold
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 Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@ -236,6 +230,71 @@ if s:t_Co >= 16
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=black ctermbg=gray cterm=NONE
hi Folded ctermfg=darkblue ctermbg=NONE cterm=bold
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=darkred ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=gray ctermbg=darkblue cterm=NONE
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=bold
hi StatusLine ctermfg=black ctermbg=gray cterm=bold,reverse
hi StatusLineNC ctermfg=black ctermbg=gray cterm=reverse
hi StatusLineTerm ctermfg=black ctermbg=gray cterm=bold,reverse
hi StatusLineTermNC ctermfg=black ctermbg=gray cterm=reverse
hi VertSplit ctermfg=black ctermbg=gray cterm=reverse
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkmagenta cterm=NONE
hi TabLine ctermfg=black ctermbg=gray cterm=reverse
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=gray ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=gray cterm=bold,reverse
hi NonText ctermfg=gray ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=gray ctermbg=NONE cterm=bold
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
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=NONE ctermbg=NONE cterm=underline
hi Error ctermfg=darkred ctermbg=black cterm=reverse
hi ErrorMsg ctermfg=darkred ctermbg=black cterm=reverse
hi WarningMsg ctermfg=darkmagenta ctermbg=black cterm=NONE
hi MoreMsg ctermfg=gray ctermbg=black cterm=bold
hi ModeMsg ctermfg=gray ctermbg=black cterm=bold
hi Question ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkmagenta cterm=NONE
hi Search ctermfg=black ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=gray ctermbg=NONE cterm=reverse
hi WildMenu ctermfg=gray ctermbg=darkyellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=darkred cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=reverse
hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkyellow ctermbg=darkblue cterm=reverse
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi Comment ctermfg=darkred ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkred ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi Type ctermfg=darkblue ctermbg=NONE cterm=bold
hi Special ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold
hi Conceal ctermfg=darkred ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=white ctermbg=darkmagenta cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
@ -327,9 +386,14 @@ endif
" Color: linenr #a52a2a 124 darkred
" Color: colorcolumn #eeeeee 255 grey
" Color: slateblue #6a5acd 62 blue
" Color: darkcyan #008787 30 darkcyan
" Color: black #000000 16 black
" Color: darkred #870000 88 darkred
" Color: darkgreen #008700 28 darkgreen
" Color: darkyellow #878700 100 darkyellow
" Color: darkblue #000087 18 darkblue
" Color: darkmagenta #870087 18 darkmagenta
" Color: darkcyan #008787 30 darkcyan
" Color: gray #878787 102 gray
" 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
@ -338,4 +402,6 @@ endif
" Color: bgDiffT #C6C6C6 251 grey
" Color: fgDiffW #FFFFFF 231 white
" Color: fgDiffB #000000 16 black
" Color: bgDiffC8 #5F87AF 67 darkblue
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
" vim: et ts=2 sw=2

View File

@ -1,7 +1,11 @@
" Vim Compiler File
" Compiler: Perl syntax checks (perl -Wc)
" Maintainer: Christian J. Robinson <heptite@gmail.com>
" Last Change: 2019 Jul 22
" Vim compiler file
" Compiler: Perl syntax checks (perl -Wc)
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Christian J. Robinson <heptite@gmail.com>
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2021 Nov 2
if exists("current_compiler")
finish
@ -15,10 +19,10 @@ endif
let s:savecpo = &cpo
set cpo&vim
if exists('g:perl_compiler_force_warnings') && g:perl_compiler_force_warnings == 0
let s:warnopt = 'w'
else
if get(g:, 'perl_compiler_force_warnings', 1)
let s:warnopt = 'W'
else
let s:warnopt = 'w'
endif
if getline(1) =~# '-[^ ]*T'

View File

@ -0,0 +1,27 @@
" Vim compiler file
" Compiler: perlcritic
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Doug Kearns <dougkearns@gmail.com>
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2021 Oct 20
if exists("current_compiler")
finish
endif
let current_compiler = "perlcritic"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo&vim
CompilerSet makeprg=perlcritic\ --nocolor\ --quiet\ --verbose\ \"\\%f:\\%l:\\%c:\\%s:\\%m\\n\"
CompilerSet errorformat=%f:%l:%c:%n:%m,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -0,0 +1,28 @@
" Vim compiler file
" Compiler: podchecker
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Doug Kearns <dougkearns@gmail.com>
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2021 Oct 20
if exists("current_compiler")
finish
endif
let current_compiler = "podchecker"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo&vim
CompilerSet makeprg=podchecker\ -w
CompilerSet errorformat=\*\*\*\ %tRROR:\ %m\ at\ line\ %l\ in\ file\ %f,
\\*\*\*\ %tARNING:\ %m\ at\ line\ %l\ in\ file\ %f,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.2. Last change: 2022 Apr 17
*autocmd.txt* For Vim version 8.2. Last change: 2022 May 24
VIM REFERENCE MANUAL by Bram Moolenaar
@ -47,6 +47,28 @@ effects. Be careful not to destroy your text.
It's a good idea to use the same autocommands for the File* and Buf* events
when possible.
Recommended use:
- Always use a group, so that it's easy to delete the autocommand.
- Keep the command itself short, call a function to do more work.
- Make it so that the script it is defined in can be sourced several times
without the autocommand being repeated.
Example in Vim9 script: >
autocmd_add({replace: true,
group: 'DemoGroup',
event: 'BufEnter',
pattern: '*.txt',
cmd: 'call DemoBufEnter()'
})
In legacy script: >
call autocmd_add(#{replace: v:true,
\ group: 'DemoGroup',
\ event: 'BufEnter',
\ pattern: '*.txt',
\ cmd: 'call DemoBufEnter()'
\ })
==============================================================================
2. Defining autocommands *autocmd-define*
@ -82,6 +104,10 @@ triggered.
/<start
}
The |autocmd_add()| function can be used to add a list of autocmds and autocmd
groups from a Vim script. It is preferred if you have anything that would
require using `:execute` with `:autocmd`.
Note: The ":autocmd" command can only be followed by another command when the
'|' appears where the pattern is expected. This works: >
:augroup mine | au! BufRead | augroup END
@ -146,6 +172,9 @@ prompt. When one command outputs two messages this can happen anyway.
==============================================================================
3. Removing autocommands *autocmd-remove*
In addition to the below described commands, the |autocmd_delete()| function can
be used to remove a list of autocmds and autocmd groups from a Vim script.
:au[tocmd]! [group] {event} {aupat} [++once] [++nested] {cmd}
Remove all autocommands associated with {event} and
{aupat}, and add the command {cmd}.
@ -198,6 +227,9 @@ argument behavior differs from that for defining and removing autocommands.
In order to list buffer-local autocommands, use a pattern in the form <buffer>
or <buffer=N>. See |autocmd-buflocal|.
The |autocmd_get()| function can be used from a Vim script to get a list of
autocmds.
*:autocmd-verbose*
When 'verbose' is non-zero, listing an autocommand will also display where it
was last defined. Example: >

View File

@ -1,4 +1,4 @@
*builtin.txt* For Vim version 8.2. Last change: 2022 May 10
*builtin.txt* For Vim version 8.2. Last change: 2022 Jun 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -60,6 +60,9 @@ assert_report({msg}) Number report a test failure
assert_true({actual} [, {msg}]) Number assert {actual} is true
atan({expr}) Float arc tangent of {expr}
atan2({expr1}, {expr2}) Float arc tangent of {expr1} / {expr2}
autocmd_add({acmds}) Bool add a list of autocmds and groups
autocmd_delete({acmds}) Bool delete a list of autocmds and groups
autocmd_get([{opts}]) List return a list of autocmds
balloon_gettext() String current text in the balloon
balloon_show({expr}) none show {expr} inside the balloon
balloon_split({msg}) List split {msg} as used for a balloon
@ -686,7 +689,10 @@ undotree() List undo file tree
uniq({list} [, {func} [, {dict}]])
List remove adjacent duplicates from a list
values({dict}) List values in {dict}
virtcol({expr}) Number screen column of cursor or mark
virtcol({expr} [, {list}]) Number or List
screen column of cursor or mark
virtcol2col({winid}, {lnum}, {col})
Number byte index of a character on screen
visualmode([expr]) String last visual mode used
wildmenumode() Number whether 'wildmenu' mode is active
win_execute({id}, {command} [, {silent}])
@ -747,7 +753,7 @@ acos({expr}) *acos()*
Return the arc cosine of {expr} measured in radians, as a
|Float| in the range of [0, pi].
{expr} must evaluate to a |Float| or a |Number| in the range
[-1, 1].
[-1, 1]. Otherwise acos() returns "nan".
Examples: >
:echo acos(0)
< 1.570796 >
@ -769,6 +775,7 @@ add({object}, {expr}) *add()*
item. Use |extend()| to concatenate |Lists|.
When {object} is a |Blob| then {expr} must be a number.
Use |insert()| to add an item at another position.
Returns 1 if {object} is not a |List| or a |Blob|.
Can also be used as a |method|: >
mylist->add(val1)->add(val2)
@ -777,6 +784,7 @@ add({object}, {expr}) *add()*
and({expr}, {expr}) *and()*
Bitwise AND on the two arguments. The arguments are converted
to a number. A List, Dict or Float argument causes an error.
Also see `or()` and `xor()`.
Example: >
:let flag = and(bits, 0x80)
< Can also be used as a |method|: >
@ -870,11 +878,17 @@ argv([{nr} [, {winid}]])
The {winid} argument specifies the window ID, see |argc()|.
For the Vim command line arguments see |v:argv|.
Returns an empty string if {nr}th argument is not present in
the argument list. Returns an empty List if the {winid}
argument is invalid.
asin({expr}) *asin()*
Return the arc sine of {expr} measured in radians, as a |Float|
in the range of [-pi/2, pi/2].
{expr} must evaluate to a |Float| or a |Number| in the range
[-1, 1].
Returns "nan" if {expr} is outside the range [-1, 1]. Returns
0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
:echo asin(0.8)
< 0.927295 >
@ -895,6 +909,7 @@ atan({expr}) *atan()*
Return the principal value of the arc tangent of {expr}, in
the range [-pi/2, +pi/2] radians, as a |Float|.
{expr} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
:echo atan(100)
< 1.560797 >
@ -911,6 +926,8 @@ atan2({expr1}, {expr2}) *atan2()*
Return the arc tangent of {expr1} / {expr2}, measured in
radians, as a |Float| in the range [-pi, pi].
{expr1} and {expr2} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr1} or {expr2} is not a |Float| or a
|Number|.
Examples: >
:echo atan2(-1, 1)
< -0.785398 >
@ -922,9 +939,162 @@ atan2({expr1}, {expr2}) *atan2()*
<
{only available when compiled with the |+float| feature}
autocmd_add({acmds}) *autocmd_add()*
Adds a List of autocmds and autocmd groups.
The {acmds} argument is a List where each item is a Dict with
the following optional items:
bufnr buffer number to add a buffer-local autocmd.
If this item is specified, then the "pattern"
item is ignored.
cmd Ex command to execute for this autocmd event
event autocmd event name. Refer to |autocmd-events|.
This can be either a String with a single
event name or a List of event names.
group autocmd group name. Refer to |autocmd-groups|.
If this group doesn't exist then it is
created. If not specified or empty, then the
default group is used.
nested boolean flag, set to v:true to add a nested
autocmd. Refer to |autocmd-nested|.
once boolean flag, set to v:true to add an autocmd
which executes only once. Refer to
|autocmd-once|.
pattern autocmd pattern string. Refer to
|autocmd-patterns|. If "bufnr" item is
present, then this item is ignored. This can
be a String with a single pattern or a List of
patterns.
replace boolean flag, set to v:true to remove all the
commands associated with the specified autocmd
event and group and add the {cmd}. This is
useful to avoid adding the same command
multiple times for an autocmd event in a group.
Returns v:true on success and v:false on failure.
Examples: >
" Create a buffer-local autocmd for buffer 5
let acmd = {}
let acmd.group = 'MyGroup'
let acmd.event = 'BufEnter'
let acmd.bufnr = 5
let acmd.cmd = 'call BufEnterFunc()'
call autocmd_add([acmd])
Can also be used as a |method|: >
GetAutocmdList()->autocmd_add()
<
autocmd_delete({acmds}) *autocmd_delete()*
Deletes a List of autocmds and autocmd groups.
The {acmds} argument is a List where each item is a Dict with
the following optional items:
bufnr buffer number to delete a buffer-local autocmd.
If this item is specified, then the "pattern"
item is ignored.
cmd Ex command for this autocmd event
event autocmd event name. Refer to |autocmd-events|.
If '*' then all the autocmd events in this
group are deleted.
group autocmd group name. Refer to |autocmd-groups|.
If not specified or empty, then the default
group is used.
nested set to v:true for a nested autocmd.
Refer to |autocmd-nested|.
once set to v:true for an autocmd which executes
only once. Refer to |autocmd-once|.
pattern autocmd pattern string. Refer to
|autocmd-patterns|. If "bufnr" item is
present, then this item is ignored.
If only {group} is specified in a {acmds} entry and {event},
{pattern} and {cmd} are not specified, then that autocmd group
is deleted.
Returns |v:true| on success and |v:false| on failure.
Examples: >
" :autocmd! BufLeave *.vim
let acmd = #{event: 'BufLeave', pattern: '*.vim'}
call autocmd_delete([acmd]})
" :autocmd! MyGroup1 BufLeave
let acmd = #{group: 'MyGroup1', event: 'BufLeave'}
call autocmd_delete([acmd])
" :autocmd! MyGroup2 BufEnter *.c
let acmd = #{group: 'MyGroup2', event: 'BufEnter',
\ pattern: '*.c'}
" :autocmd! MyGroup2 * *.c
let acmd = #{group: 'MyGroup2', event: '*',
\ pattern: '*.c'}
call autocmd_delete([acmd])
" :autocmd! MyGroup3
let acmd = #{group: 'MyGroup3'}
call autocmd_delete([acmd])
<
Can also be used as a |method|: >
GetAutocmdList()->autocmd_delete()
autocmd_get([{opts}]) *autocmd_get()*
Returns a |List| of autocmds. If {opts} is not supplied, then
returns the autocmds for all the events in all the groups.
The optional {opts} Dict argument supports the following
items:
group Autocmd group name. If specified, returns only
the autocmds defined in this group. If the
specified group doesn't exist, results in an
error message. If set to an empty string,
then the default autocmd group is used.
event Autocmd event name. If specified, returns only
the autocmds defined for this event. If set
to "*", then returns autocmds for all the
events. If the specified event doesn't exist,
results in an error message.
pattern Autocmd pattern. If specified, returns only
the autocmds defined for this pattern.
A combination of the above three times can be supplied in
{opts}.
Each Dict in the returned List contains the following items:
bufnr For buffer-local autocmds, buffer number where
the autocmd is defined.
cmd Command executed for this autocmd.
event Autocmd event name.
group Autocmd group name.
nested Boolean flag, set to v:true for a nested
autocmd. See |autocmd-nested|.
once Boolean flag, set to v:true, if the autocmd
will be executed only once. See |autocmd-once|.
pattern Autocmd pattern. For a buffer-local
autocmd, this will be of the form "<buffer=n>".
If there are multiple commands for an autocmd event in a
group, then separate items are returned for each command.
Returns an empty List if an autocmd with the specified group
or event or pattern is not found.
Examples: >
" :autocmd MyGroup
echo autocmd_get(#{group: 'Mygroup'})
" :autocmd G BufUnload
echo autocmd_get(#{group: 'G', event: 'BufUnload'})
" :autocmd G * *.ts
let acmd = #{group: 'G', event: '*', pattern: '*.ts'}
echo autocmd_get(acmd)
" :autocmd Syntax
echo autocmd_get(#{event: 'Syntax'})
" :autocmd G BufEnter *.ts
let acmd = #{group: 'G', event: 'BufEnter',
\ pattern: '*.ts'}
echo autocmd_get(acmd)
<
Can also be used as a |method|: >
Getopts()->autocmd_get()
<
balloon_gettext() *balloon_gettext()*
Return the current text in the balloon. Only for the string,
not used for the List.
not used for the List. Returns an empty string if balloon
is not present.
balloon_show({expr}) *balloon_show()*
Show {expr} inside the balloon. For the GUI {expr} is used as
@ -961,7 +1131,8 @@ balloon_split({msg}) *balloon_split()*
Split String {msg} into lines to be displayed in a balloon.
The splits are made for the current window size and optimize
to show debugger output.
Returns a |List| with the split lines.
Returns a |List| with the split lines. Returns an empty List
on error.
Can also be used as a |method|: >
GetText()->balloon_split()->balloon_show()
@ -1015,7 +1186,8 @@ bufadd({name}) *bufadd()*
let bufnr = bufadd('someName')
call bufload(bufnr)
call setbufline(bufnr, 1, ['some', 'text'])
< Can also be used as a |method|: >
< Returns 0 on error.
Can also be used as a |method|: >
let bufnr = 'somename'->bufadd()
bufexists({buf}) *bufexists()*
@ -1170,6 +1342,8 @@ byte2line({byte}) *byte2line()*
one.
Also see |line2byte()|, |go| and |:goto|.
Returns -1 if the {byte} value is invalid.
Can also be used as a |method|: >
GetOffset()->byte2line()
@ -1241,6 +1415,8 @@ ceil({expr}) *ceil()*
echo ceil(4.0)
< 4.0
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Can also be used as a |method|: >
Compute()->ceil()
<
@ -1257,9 +1433,10 @@ changenr() *changenr()*
When a change was made it is the number of that change. After
redo it is the number of the redone change. After undo it is
one less than the number of the undone change.
Returns 0 if the undo list is empty.
char2nr({string} [, {utf8}]) *char2nr()*
Return number value of the first char in {string}.
Return Number value of the first char in {string}.
Examples: >
char2nr(" ") returns 32
char2nr("ABC") returns 65
@ -1275,10 +1452,11 @@ char2nr({string} [, {utf8}]) *char2nr()*
let list = map(split(str, '\zs'), {_, val -> char2nr(val)})
< Result: [65, 66, 67]
Returns 0 if {string} is not a |String|.
Can also be used as a |method|: >
GetChar()->char2nr()
charclass({string}) *charclass()*
Return the character class of the first character in {string}.
The character class is one of:
@ -1288,6 +1466,7 @@ charclass({string}) *charclass()*
3 emoji
other specific Unicode class
The class is used in patterns and word motions.
Returns 0 if {string} is not a |String|.
charcol({expr}) *charcol()*
@ -1358,8 +1537,7 @@ cindent({lnum}) *cindent()*
indenting rules, as with 'cindent'.
The indent is counted in spaces, the value of 'tabstop' is
relevant. {lnum} is used just like in |getline()|.
When {lnum} is invalid or Vim was not compiled the |+cindent|
feature, -1 is returned.
When {lnum} is invalid -1 is returned.
See |C-indenting|.
Can also be used as a |method|: >
@ -1400,7 +1578,7 @@ col({expr}) The result is a Number, which is the byte index of the column
col("$") length of cursor line plus one
col("'t") column of mark t
col("'" .. markname) column of mark markname
< The first column is 1. 0 is returned for an error.
< The first column is 1. Returns 0 if {expr} is invalid.
For an uppercase mark the column may actually be in another
buffer.
For the cursor position, when 'virtualedit' is active, the
@ -1518,6 +1696,8 @@ complete_info([{what}]) *complete_info()*
|pum_getpos()|. It's also available in |v:event| during the
|CompleteChanged| event.
Returns an empty |Dictionary| on error.
Examples: >
" Get all items
call complete_info()
@ -1570,13 +1750,13 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
An example: >
let choice = confirm("What do you want?",
\ "&Apples\n&Oranges\n&Bananas", 2)
\ "&Apples\n&Oranges\n&Bananas", 2)
if choice == 0
echo "make up your mind!"
echo "make up your mind!"
elseif choice == 3
echo "tasteful"
echo "tasteful"
else
echo "I prefer bananas myself."
echo "I prefer bananas myself."
endif
< In a GUI dialog, buttons are used. The layout of the buttons
depends on the 'v' flag in 'guioptions'. If it is included,
@ -1603,6 +1783,7 @@ copy({expr}) Make a copy of {expr}. For Numbers and Strings this isn't
cos({expr}) *cos()*
Return the cosine of {expr}, measured in radians, as a |Float|.
{expr} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
:echo cos(100)
< 0.862319 >
@ -1619,6 +1800,7 @@ cosh({expr}) *cosh()*
Return the hyperbolic cosine of {expr} as a |Float| in the range
[1, inf].
{expr} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
:echo cosh(0.5)
< 1.127626 >
@ -1730,6 +1912,9 @@ debugbreak({pid}) *debugbreak()*
processes is undefined. See |terminal-debugger|.
{only available on MS-Windows}
Returns |TRUE| if successfully interrupted the program.
Otherwise returns |FALSE|.
Can also be used as a |method|: >
GetPid()->debugbreak()
@ -2164,8 +2349,8 @@ exists({expr}) The result is a Number, which is |TRUE| if {expr} is defined,
< There must be no space between the symbol (&/$/*/#) and the
name.
There must be no extra characters after the name, although in
a few cases this is ignored. That may become more strict in
the future, thus don't count on it!
a few cases this is ignored. That may become stricter in the
future, thus don't count on it!
Working example: >
exists(":make")
< NOT working example: >
@ -2200,6 +2385,7 @@ exp({expr}) *exp()*
Return the exponential of {expr} as a |Float| in the range
[0, inf].
{expr} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
:echo exp(2)
< 7.389056 >
@ -2366,7 +2552,7 @@ extend({expr1}, {expr2} [, {expr3}]) *extend()*
{expr2} remains unchanged.
When {expr1} is locked and {expr2} is not empty the operation
fails.
Returns {expr1}.
Returns {expr1}. Returns 0 on error.
Can also be used as a |method|: >
mylist->extend(otherlist)
@ -2540,6 +2726,8 @@ finddir({name} [, {path} [, {count}]]) *finddir()*
{name} in {path} instead of the first one.
When {count} is negative return all the matches in a |List|.
Returns an empty string if the directory is not found.
This is quite similar to the ex-command `:find`.
{only available when compiled with the |+file_in_path|
feature}
@ -2590,6 +2778,7 @@ float2nr({expr}) *float2nr()*
Convert {expr} to a Number by omitting the part after the
decimal point.
{expr} must evaluate to a |Float| or a Number.
Returns 0 if {expr} is not a |Float| or a |Number|.
When the value of {expr} is out of range for a |Number| the
result is truncated to 0x7fffffff or -0x7fffffff (or when
64-bit Number support is enabled, 0x7fffffffffffffff or
@ -2617,6 +2806,7 @@ floor({expr}) *floor()*
Return the largest integral value less than or equal to
{expr} as a |Float| (round down).
{expr} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
echo floor(1.856)
< 1.0 >
@ -2639,6 +2829,8 @@ fmod({expr1}, {expr2}) *fmod()*
the magnitude of {expr2}. If {expr2} is zero, the value
returned is zero. The value returned is a |Float|.
{expr1} and {expr2} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr1} or {expr2} is not a |Float| or a
|Number|.
Examples: >
:echo fmod(12.33, 1.22)
< 0.13 >
@ -2660,6 +2852,7 @@ fnameescape({string}) *fnameescape()*
appears in a filename, it depends on the value of 'isfname'.
A leading '+' and '>' is also escaped (special after |:edit|
and |:write|). And a "-" by itself (special after |:cd|).
Returns an empty string on error.
Example: >
:let fname = '+some str%nge|name'
:exe "edit " .. fnameescape(fname)
@ -2677,7 +2870,8 @@ fnamemodify({fname}, {mods}) *fnamemodify()*
:echo fnamemodify("main.c", ":p:h")
< results in: >
/home/mool/vim/vim/src
< If {mods} is empty then {fname} is returned.
< If {mods} is empty or an unsupported modifier is used then
{fname} is returned.
Note: Environment variables don't work in {fname}, use
|expand()| first then.
@ -2734,6 +2928,7 @@ foldtext() Returns a String, to be displayed for a closed fold. This is
When used to draw the actual foldtext, the rest of the line
will be filled with the fold char from the 'fillchars'
setting.
Returns an empty string when there is no fold.
{not available when compiled without the |+folding| feature}
foldtextresult({lnum}) *foldtextresult()*
@ -2785,6 +2980,7 @@ funcref({name} [, {arglist}] [, {dict}])
been loaded (to avoid mistakenly loading the autoload script
when only intending to use the function name, use |function()|
instead). {name} cannot be a builtin function.
Returns 0 on error.
Can also be used as a |method|: >
GetFuncname()->funcref([arg])
@ -2865,6 +3061,8 @@ function({name} [, {arglist}] [, {dict}])
< Invokes the function as with: >
call context.Callback('one', 500)
<
Returns 0 on error.
Can also be used as a |method|: >
GetFuncname()->function([arg])
@ -2918,6 +3116,7 @@ get({func}, {what})
"func" The function
"dict" The dictionary
"args" The list with arguments
Returns zero on error.
Preferably used as a |method|: >
myfunc->get(what)
<
@ -3077,7 +3276,7 @@ getchar([expr]) *getchar()*
Without [expr] and when [expr] is 0 a whole character or
special key is returned. If it is a single character, the
result is a number. Use nr2char() to convert it to a String.
result is a Number. Use |nr2char()| to convert it to a String.
Otherwise a String is returned with the encoded character.
For a special key it's a String with a sequence of bytes
starting with 0x80 (decimal: 128). This is the same value as
@ -3160,7 +3359,7 @@ getcharmod() *getcharmod()*
128 command (Macintosh only)
Only the modifiers that have not been included in the
character itself are obtained. Thus Shift-a results in "A"
without a modifier.
without a modifier. Returns 0 if no modifiers are used.
*getcharpos()*
getcharpos({expr})
@ -3510,7 +3709,7 @@ getftype({fname}) *getftype()*
getimstatus() *getimstatus()*
The result is a Number, which is |TRUE| when the IME status is
active.
active and |FALSE| otherwise.
See 'imstatusfunc'.
getjumplist([{winnr} [, {tabnr}]]) *getjumplist()*
@ -3520,7 +3719,8 @@ getjumplist([{winnr} [, {tabnr}]]) *getjumplist()*
With {winnr} only use this window in the current tab page.
{winnr} can also be a |window-ID|.
With {winnr} and {tabnr} use the window in the specified tab
page.
page. If {winnr} or {tabnr} is invalid, an empty list is
returned.
The returned list contains two entries: a list with the jump
locations and the last used jump position number in the list.
@ -3601,7 +3801,8 @@ getmarklist([{buf}]) *getmarklist()*
If the optional {buf} argument is specified, returns the
local marks defined in buffer {buf}. For the use of {buf},
see |bufname()|.
see |bufname()|. If {buf} is invalid, an empty list is
returned.
Each item in the returned List is a |Dict| with the following:
mark name of the mark prefixed by "'"
@ -3623,7 +3824,8 @@ getmatches([{win}]) *getmatches()*
as |setmatches()| can restore a list of matches saved by
|getmatches()|.
If {win} is specified, use the window with this number or
window ID instead of the current window.
window ID instead of the current window. If {win} is invalid,
an empty list is returned.
Example: >
:echo getmatches()
< [{'group': 'MyGroup1', 'pattern': 'TODO',
@ -3695,6 +3897,7 @@ getpos({expr}) Get the position for String {expr}. For possible values of
use |getcharpos()|.
A very large column number equal to |v:maxcol| can be returned,
in which case it means "after the end of the line".
If {expr} is invalid, returns a list with all zeros.
This can be used to save and restore the position of a mark: >
let save_a_mark = getpos("'a")
...
@ -4904,7 +5107,7 @@ len({expr}) The result is a Number, which is the length of the argument.
When {expr} is a |Blob| the number of bytes is returned.
When {expr} is a |Dictionary| the number of entries in the
|Dictionary| is returned.
Otherwise an error is given.
Otherwise an error is given and returns zero.
Can also be used as a |method|: >
mylist->len()
@ -4997,6 +5200,7 @@ line({expr} [, {winid}]) *line()*
|getpos()|.
With the optional {winid} argument the values are obtained for
that window instead of the current window.
Returns 0 for invalid values of {expr} and {winid}.
Examples: >
line(".") line number of the cursor
line(".", winid) idem, in window "winid"
@ -5031,8 +5235,7 @@ lispindent({lnum}) *lispindent()*
indenting rules, as with 'lisp'.
The indent is counted in spaces, the value of 'tabstop' is
relevant. {lnum} is used just like in |getline()|.
When {lnum} is invalid or Vim was not compiled the
|+lispindent| feature, -1 is returned. In |Vim9| script an
When {lnum} is invalid -1 is returned. In |Vim9| script an
error is given.
Can also be used as a |method|: >
@ -5065,6 +5268,8 @@ list2str({list} [, {utf8}]) *list2str()*
With UTF-8 composing characters work as expected: >
list2str([97, 769]) returns "á"
<
Returns an empty string on error.
Can also be used as a |method|: >
GetList()->list2str()
@ -5137,6 +5342,8 @@ listener_add({callback} [, {buf}]) *listener_add()*
The {callback} is also not invoked when the buffer is
unloaded, use the |BufUnload| autocmd event for that.
Returns zero if {callback} or {buf} is invalid.
Can also be used as a |method|, the base is passed as the
second argument: >
GetBuffer()->listener_add(callback)
@ -5169,6 +5376,7 @@ log({expr}) *log()*
Return the natural logarithm (base e) of {expr} as a |Float|.
{expr} must evaluate to a |Float| or a |Number| in the range
(0, inf].
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
:echo log(10)
< 2.302585 >
@ -5184,6 +5392,7 @@ log({expr}) *log()*
log10({expr}) *log10()*
Return the logarithm of Float {expr} to base 10 as a |Float|.
{expr} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
:echo log10(1000)
< 3.0 >
@ -5282,8 +5491,9 @@ maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
below. To get a list of all mappings see |maplist()|.
When there is no mapping for {name}, an empty String is
returned. When the mapping for {name} is empty, then "<Nop>"
is returned.
returned if {dict} is FALSE, otherwise returns an empty Dict.
When the mapping for {name} is empty, then "<Nop>" is
returned.
The {name} can have special key names, like in the ":map"
command.
@ -5326,7 +5536,7 @@ maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
"sid" The script local ID, used for <sid> mappings
(|<SID>|).
"scriptversion" The version of the script. 999999 for
|Vim9| script.
|Vim9| script.
"lnum" The line number in "sid", zero if unknown.
"nowait" Do not wait for other, longer mappings.
(|:map-<nowait>|).
@ -5431,7 +5641,7 @@ mapset({dict})
Restore a mapping from a dictionary, possibly returned by
|maparg()| or |maplist()|. A buffer mapping, when dict.buffer
is true, is set on the current buffer; it is up to the caller
to insure that the intended buffer is the current buffer. This
to ensure that the intended buffer is the current buffer. This
feature allows copying mappings from one buffer to another.
The dict.mode value may restore a single mapping that covers
more than one mode, like with mode values of '!', ' ', 'nox',
@ -5576,6 +5786,8 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
The number of matches is not limited, as it is the case with
the |:match| commands.
Returns -1 on error.
Example: >
:highlight MyGroup ctermbg=green guibg=green
:let m = matchadd("MyGroup", "TODO")
@ -5614,6 +5826,8 @@ matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
The maximum number of positions in {pos} is 8.
Returns -1 on error.
Example: >
:highlight MyGroup ctermbg=green guibg=green
:let m = matchaddpos("MyGroup", [[23, 24], 34])
@ -6059,11 +6273,17 @@ nr2char({expr} [, {utf8}]) *nr2char()*
or({expr}, {expr}) *or()*
Bitwise OR on the two arguments. The arguments are converted
to a number. A List, Dict or Float argument causes an error.
Also see `and()` and `xor()`.
Example: >
:let bits = or(bits, 0x80)
< Can also be used as a |method|: >
:let bits = bits->or(0x80)
< Rationale: The reason this is a function and not using the "|"
character like many languages, is that Vi has always used "|"
to separate commands. In many places it would not be clear if
"|" is an operator or a command separator.
pathshorten({path} [, {len}]) *pathshorten()*
Shorten directory names in the path {path} and return the
@ -6077,6 +6297,7 @@ pathshorten({path} [, {len}]) *pathshorten()*
:echo pathshorten('~/.vim/autoload/myfile.vim', 2)
< ~/.vi/au/myfile.vim ~
It doesn't matter if the path exists or not.
Returns an empty string on error.
Can also be used as a |method|: >
GetDirectories()->pathshorten()
@ -6106,6 +6327,7 @@ popup_ functions are documented here: |popup-functions|
pow({x}, {y}) *pow()*
Return the power of {x} to the exponent {y} as a |Float|.
{x} and {y} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {x} or {y} is not a |Float| or a |Number|.
Examples: >
:echo pow(3, 3)
< 27.0 >
@ -6482,6 +6704,7 @@ rand([{expr}]) *rand()* *random*
{expr} can be initialized by |srand()| and will be updated by
rand(). If {expr} is omitted, an internal seed value is used
and updated.
Returns -1 if {expr} is invalid.
Examples: >
:echo rand()
@ -6571,6 +6794,8 @@ readdir({directory} [, {expr} [, {dict}]]) *readdir()*
endfunction
echo s:tree(".")
<
Returns an empty List on error.
Can also be used as a |method|: >
GetDirName()->readdir()
<
@ -6629,7 +6854,6 @@ readdirex({directory} [, {expr} [, {dict}]]) *readdirex()*
For example, to get a list of all files in the current
directory without sorting the individual entries: >
readdirex(dirname, '1', #{sort: 'none'})
<
Can also be used as a |method|: >
GetDirName()->readdirex()
@ -6710,15 +6934,17 @@ reltime([{start} [, {end}]]) *reltime()*
The item can be passed to |reltimestr()| to convert it to a
string or |reltimefloat()| to convert to a Float.
Without an argument reltime() returns the current time.
Without an argument reltime() returns the current time (the
representation is system-dependend, it can not be used as the
wall-clock time, see |localtime()| for that).
With one argument is returns the time passed since the time
specified in the argument.
With two arguments it returns the time passed between {start}
and {end}.
The {start} and {end} arguments must be values returned by
reltime(). If there is an error zero is returned in legacy
script, in Vim9 script an error is given.
reltime(). If there is an error an empty List is returned in
legacy script, in Vim9 script an error is given.
Can also be used as a |method|: >
GetStart()->reltime()
@ -6837,7 +7063,8 @@ remote_peek({serverid} [, {retvar}]) *remote_peek()*
remote_read({serverid}, [{timeout}]) *remote_read()*
Return the oldest available reply from {serverid} and consume
it. Unless a {timeout} in seconds is given, it blocks until a
reply is available.
reply is available. Returns an empty string, if a reply is
not available or on error.
See also |clientserver|.
This function is not available in the |sandbox|.
{only available when compiled with the |+clientserver| feature}
@ -6896,6 +7123,7 @@ remove({list}, {idx} [, {end}]) *remove()*
item as {end} a list with one item is returned. When {end}
points to an item before {idx} this is an error.
See |list-index| for possible values of {idx} and {end}.
Returns zero on error.
Example: >
:echo "last item: " .. remove(mylist, -1)
:call remove(mylist, 0, 9)
@ -6912,6 +7140,7 @@ remove({blob}, {idx} [, {end}])
return a |Blob| with these bytes. When {idx} points to the same
byte as {end} a |Blob| with one byte is returned. When {end}
points to a byte before {idx} this is an error.
Returns zero on error.
Example: >
:echo "last byte: " .. remove(myblob, -1)
:call remove(mylist, 0, 9)
@ -6921,6 +7150,7 @@ remove({dict}, {key})
Example: >
:echo "removed " .. remove(dict, "one")
< If there is no {key} in {dict} this is an error.
Returns zero on error.
rename({from}, {to}) *rename()*
Rename the file by the name {from} to the name {to}. This
@ -6969,6 +7199,7 @@ reverse({object}) *reverse()*
Reverse the order of items in {object} in-place.
{object} can be a |List| or a |Blob|.
Returns {object}.
Returns zero if {object} is not a List or a Blob.
If you want an object to remain unmodified make a copy first: >
:let revlist = reverse(copy(mylist))
< Can also be used as a |method|: >
@ -6979,6 +7210,7 @@ round({expr}) *round()*
as a |Float|. If {expr} lies halfway between two integral
values, then use the larger one (away from zero).
{expr} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
echo round(0.456)
< 0.0 >
@ -7013,6 +7245,7 @@ screenattr({row}, {col}) *screenattr()*
Like |screenchar()|, but return the attribute. This is a rather
arbitrary number that can only be used to compare to the
attribute at other positions.
Returns -1 when row or col is out of range.
Can also be used as a |method|: >
GetRow()->screenattr(col)
@ -7076,6 +7309,7 @@ screenpos({winid}, {lnum}, {col}) *screenpos()*
|conceal| taken into account.
If the position is in a closed fold the screen position of the
first character is returned, {col} is not used.
Returns an empty Dict if {winid} is invalid.
Can also be used as a |method|: >
GetWinid()->screenpos(lnum, col)
@ -8136,6 +8370,7 @@ simplify({filename}) *simplify()*
sin({expr}) *sin()*
Return the sine of {expr}, measured in radians, as a |Float|.
{expr} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
:echo sin(100)
< -0.506366 >
@ -8152,6 +8387,7 @@ sinh({expr}) *sinh()*
Return the hyperbolic sine of {expr} as a |Float| in the range
[-inf, inf].
{expr} must evaluate to a |Float| or a |Number|.
Returns 0.0 if {expr} is not a |Float| or a |Number|.
Examples: >
:echo sinh(0.5)
< 0.521095 >
@ -8171,6 +8407,7 @@ slice({expr}, {start} [, {end}]) *slice()*
|vim9script|. Also, composing characters are not counted.
When {end} is omitted the slice continues to the last item.
When {end} is -1 the last item is omitted.
Returns an empty value if {start} or {end} are invalid.
Can also be used as a |method|: >
GetList()->slice(offset)
@ -8182,7 +8419,7 @@ sort({list} [, {how} [, {dict}]]) *sort()* *E702*
If you want a list to remain unmodified make a copy first: >
:let sortedlist = sort(copy(mylist))
< When {how} is omitted or is an string, then sort() uses the
< When {how} is omitted or is a string, then sort() uses the
string representation of each item to sort on. Numbers sort
after Strings, |Lists| after Numbers. For sorting text in the
current buffer use |:sort|.
@ -8416,7 +8653,8 @@ sqrt({expr}) *sqrt()*
Return the non-negative square root of Float {expr} as a
|Float|.
{expr} must evaluate to a |Float| or a |Number|. When {expr}
is negative the result is NaN (Not a Number).
is negative the result is NaN (Not a Number). Returns 0.0 if
{expr} is not a |Float| or a |Number|.
Examples: >
:echo sqrt(100)
< 10.0 >
@ -8497,6 +8735,8 @@ str2float({string} [, {quoted}]) *str2float()*
|substitute()|: >
let f = str2float(substitute(text, ',', '', 'g'))
<
Returns 0.0 if the conversion fails.
Can also be used as a |method|: >
let f = text->substitute(',', '', 'g')->str2float()
<
@ -8536,6 +8776,8 @@ str2nr({string} [, {base} [, {quoted}]]) *str2nr()*
{base} is 2 a leading "0b" or "0B" is ignored.
Text after the number is silently ignored.
Returns 0 if {string} is empty or on error.
Can also be used as a |method|: >
GetText()->str2nr()
@ -8546,6 +8788,8 @@ strcharlen({string}) *strcharlen()*
|strchars()| can count the number of characters, counting
composing characters separately.
Returns 0 if {string} is empty or on error.
Also see |strlen()|, |strdisplaywidth()| and |strwidth()|.
Can also be used as a |method|: >
@ -8637,9 +8881,11 @@ strftime({format} [, {time}]) *strftime()*
GetFormat()->strftime()
strgetchar({str}, {index}) *strgetchar()*
Get character {index} from {str}. This uses a character
index, not a byte index. Composing characters are considered
separate characters here.
Get a Number corresponding to the character at {index} in
{str}. This uses a zero-based character index, not a byte
index. Composing characters are considered separate
characters here. Use |nr2char()| to convert the Number to a
String.
Also see |strcharpart()| and |strchars()|.
Can also be used as a |method|: >
@ -9579,7 +9825,7 @@ values({dict}) *values()*
Can also be used as a |method|: >
mydict->values()
virtcol({expr}) *virtcol()*
virtcol({expr} [, {list}]) *virtcol()*
The result is a Number, which is the screen column of the file
position given with {expr}. That is, the last screen position
occupied by the character at that position, when the screen
@ -9588,13 +9834,17 @@ virtcol({expr}) *virtcol()*
the <Tab>. For example, for a <Tab> in column 1, with 'ts'
set to 8, it returns 8. |conceal| is ignored.
For the byte position use |col()|.
For the use of {expr} see |col()|.
When 'virtualedit' is used {expr} can be [lnum, col, off], where
"off" is the offset in screen columns from the start of the
character. E.g., a position within a <Tab> or after the last
character. When "off" is omitted zero is used.
When Virtual editing is active in the current mode, a position
beyond the end of the line can be returned. |'virtualedit'|
When 'virtualedit' is used {expr} can be [lnum, col, off],
where "off" is the offset in screen columns from the start of
the character. E.g., a position within a <Tab> or after the
last character. When "off" is omitted zero is used. When
Virtual editing is active in the current mode, a position
beyond the end of the line can be returned. Also see
|'virtualedit'|
The accepted positions are:
. the cursor position
$ the end of the cursor line (the result is the
@ -9606,11 +9856,22 @@ virtcol({expr}) *virtcol()*
cursor is the end). When not in Visual mode
returns the cursor position. Differs from |'<| in
that it's updated right away.
If {list} is present and non-zero then virtcol() returns a List
with the first and last screen position occupied by the
character.
Note that only marks in the current file can be used.
Examples: >
virtcol(".") with text "foo^Lbar", with cursor on the "^L", returns 5
virtcol("$") with text "foo^Lbar", returns 9
virtcol("'t") with text " there", with 't at 'h', returns 6
" With text "foo^Lbar" and cursor on the "^L":
virtcol(".") " returns 5
virtcol(".", 1) " returns [4, 5]
virtcol("$") " returns 9
" With text " there", with 't at 'h':
virtcol("'t") " returns 6
< The first column is 1. 0 is returned for an error.
A more advanced example that echoes the maximum length of
all lines: >
@ -9619,6 +9880,25 @@ virtcol({expr}) *virtcol()*
< Can also be used as a |method|: >
GetPos()->virtcol()
virtcol2col({winid}, {lnum}, {col}) *virtcol2col()*
The result is a Number, which is the byte index of the
character in window {winid} at buffer line {lnum} and virtual
column {col}.
If {col} is greater than the last virtual column in line
{lnum}, then the byte index of the character at the last
virtual column is returned.
The {winid} argument can be the window number or the
|window-ID|. If this is zero, then the current window is used.
Returns -1 if the window {winid} doesn't exist or the buffer
line {lnum} or virtual column {col} is invalid.
See also |screenpos()|, |virtcol()| and |col()|.
Can also be used as a |method|: >
GetWinid()->virtcol2col(lnum, col)
visualmode([{expr}]) *visualmode()*
The result is a String, which describes the last Visual mode
@ -9899,6 +10179,7 @@ winnr([{arg}]) The result is a Number, which is the number of the current
current window (where |CTRL-W_l| goes to).
The number can be used with |CTRL-W_w| and ":wincmd w"
|:wincmd|.
When {arg} is invalid an error is given and zero is returned.
Also see |tabpagewinnr()| and |win_getid()|.
Examples: >
let window_count = winnr('$')
@ -10051,6 +10332,7 @@ writefile({object}, {fname} [, {flags}])
xor({expr}, {expr}) *xor()*
Bitwise XOR on the two arguments. The arguments are converted
to a number. A List, Dict or Float argument causes an error.
Also see `and()` and `or()`.
Example: >
:let bits = xor(bits, 0x80)
<

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 8.2. Last change: 2022 May 07
*change.txt* For Vim version 8.2. Last change: 2022 May 26
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1272,7 +1272,7 @@ to their previous contents. When the '>' flag is present in 'cpoptions' then
a line break is inserted before the appended text.
5. Read-only registers ":, ". and "%
These are '%', '#', ':' and '.'. You can use them only with the "p", "P",
These are '%', ':' and '.'. You can use them only with the "p", "P",
and ":put" commands and with CTRL-R.
*quote_.* *quote.* *E29*
". Contains the last inserted text (the same as what is inserted

View File

@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.2. Last change: 2022 Apr 16
*channel.txt* For Vim version 8.2. Last change: 2022 Jun 04
VIM REFERENCE MANUAL by Bram Moolenaar
@ -628,15 +628,18 @@ ch_logfile({fname} [, {mode}]) *ch_logfile()*
Start logging channel activity to {fname}.
When {fname} is an empty string: stop logging.
When {mode} is omitted or "a" append to the file.
When {mode} is "w" start with an empty file.
When {mode} is omitted or contains "a" or is "o" then append
to the file.
When {mode} contains "w" and not "a" start with an empty file.
When {mode} contains "o" then log all terminal output.
Otherwise only some interesting terminal output is logged.
Use |ch_log()| to write log messages. The file is flushed
after every message, on Unix you can use "tail -f" to see what
is going on in real time.
To enable the log very early, to see what is received from a
terminal during startup, use |--log|: >
terminal during startup, use |--log| (this uses mode "ao"): >
vim --log logfile
<
This function is not available in the |sandbox|.

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.2. Last change: 2022 May 13
*eval.txt* For Vim version 8.2. Last change: 2022 Jun 03
VIM REFERENCE MANUAL by Bram Moolenaar
@ -183,10 +183,15 @@ You will not get an error if you try to change the type of a variable.
1.2 Function references ~
*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
around the arguments, to invoke the function it refers to. Example: >
function, (in |Vim9| script) the name of a 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 around the arguments, to invoke the
function it refers to. Example in |Vim9| script: >
:var Fn = MyFunc
:echo Fn()
Legacy script: >
:let Fn = function("MyFunc")
:echo Fn()
< *E704* *E705* *E707*
@ -868,33 +873,36 @@ Expression syntax summary, from least to most significant:
expr5 isnot expr5 different |List|, |Dictionary| or |Blob|
instance
|expr5| expr6
expr6 + expr6 ... number addition, list or blob concatenation
expr6 - expr6 ... number subtraction
expr6 . expr6 ... string concatenation
expr6 .. expr6 ... string concatenation
|expr5| expr6 << expr6 bitwise left shift
expr6 >> expr6 bitwise right shift
|expr6| expr7
expr7 * expr7 ... number multiplication
expr7 / expr7 ... number division
expr7 % expr7 ... number modulo
expr7 + expr7 ... number addition, list or blob concatenation
expr7 - expr7 ... number subtraction
expr7 . expr7 ... string concatenation
expr7 .. expr7 ... string concatenation
|expr7| expr8
<type>expr8 type check and conversion (|Vim9| only)
expr8 * expr8 ... number multiplication
expr8 / expr8 ... number division
expr8 % expr8 ... number modulo
|expr8| expr9
! expr8 logical NOT
- expr8 unary minus
+ expr8 unary plus
<type>expr9 type check and conversion (|Vim9| only)
|expr9| expr10
expr9[expr1] byte of a String or item of a |List|
expr9[expr1 : expr1] substring of a String or sublist of a |List|
expr9.name entry in a |Dictionary|
expr9(expr1, ...) function call with |Funcref| variable
expr9->name(expr1, ...) |method| call
! expr9 logical NOT
- expr9 unary minus
+ expr9 unary plus
|expr10| number number constant
|expr10| expr11
expr10[expr1] byte of a String or item of a |List|
expr10[expr1 : expr1] substring of a String or sublist of a |List|
expr10.name entry in a |Dictionary|
expr10(expr1, ...) function call with |Funcref| variable
expr10->name(expr1, ...) |method| call
|expr11| number number constant
"string" string constant, backslash is special
'string' string constant, ' is doubled
[expr1, ...] |List|
@ -1128,14 +1136,27 @@ can be matched like an ordinary character. Examples:
"foo\nbar" =~ "\\n" evaluates to 0
expr5 and expr6 *expr5* *expr6* *E1036* *E1051*
---------------
expr6 + expr6 Number addition, |List| or |Blob| concatenation *expr-+*
expr6 - expr6 Number subtraction *expr--*
expr6 . expr6 String concatenation *expr-.*
expr6 .. expr6 String concatenation *expr-..*
expr5 *expr5* *bitwise-shift*
-----
expr6 << expr6 bitwise left shift *expr-<<*
expr6 >> expr6 bitwise right shift *expr->>*
*E1282* *E1283*
The "<<" and ">>" operators can be used to perform bitwise left or right shift
of the left operand by the number of bits specified by the right operand. The
operands are used as positive numbers. When shifting right with ">>" the
topmost bit (somtimes called the sign bit) is cleared. If the right operand
(shift amount) is more than the maximum number of bits in a number
(|v:numbersize|) the result is zero.
For |Lists| only "+" is possible and then both expr6 must be a list. The
expr6 and expr7 *expr6* *expr7* *E1036* *E1051*
---------------
expr7 + expr7 Number addition, |List| or |Blob| concatenation *expr-+*
expr7 - expr7 Number subtraction *expr--*
expr7 . expr7 String concatenation *expr-.*
expr7 .. expr7 String concatenation *expr-..*
For |Lists| only "+" is possible and then both expr7 must be a list. The
result is a new list with the two lists Concatenated.
For String concatenation ".." is preferred, since "." is ambiguous, it is also
@ -1147,9 +1168,9 @@ In |Vim9| script the arguments of ".." are converted to String for simple
types: Number, Float, Special and Bool. For other types |string()| should be
used.
expr7 * expr7 Number multiplication *expr-star*
expr7 / expr7 Number division *expr-/*
expr7 % expr7 Number modulo *expr-%*
expr8 * expr8 Number multiplication *expr-star*
expr8 / expr8 Number division *expr-/*
expr8 % expr8 Number modulo *expr-%*
In legacy script, for all operators except "." and "..", Strings are converted
to Numbers.
@ -1191,18 +1212,18 @@ None of these work for |Funcref|s.
".", ".." and "%" do not work for Float. *E804* *E1035*
expr7 *expr7*
expr8 *expr8*
-----
<type>expr8
<type>expr9
This is only available in |Vim9| script, see |type-casting|.
expr8 *expr8*
expr9 *expr9*
-----
! expr8 logical NOT *expr-!*
- expr8 unary minus *expr-unary--*
+ expr8 unary plus *expr-unary-+*
! expr9 logical NOT *expr-!*
- expr9 unary minus *expr-unary--*
+ expr9 unary plus *expr-unary-+*
For '!' |TRUE| becomes |FALSE|, |FALSE| becomes |TRUE| (one).
For '-' the sign of the number is changed.
@ -1224,21 +1245,21 @@ These three can be repeated and mixed. Examples:
--9 == 9
expr9 *expr9*
-----
This expression is either |expr10| or a sequence of the alternatives below,
expr10 *expr10*
------
This expression is either |expr11| or a sequence of the alternatives below,
in any order. E.g., these are all possible:
expr9[expr1].name
expr9.name[expr1]
expr9(expr1, ...)[expr1].name
expr9->(expr1, ...)[expr1]
expr10[expr1].name
expr10.name[expr1]
expr10(expr1, ...)[expr1].name
expr10->(expr1, ...)[expr1]
Evaluation is always from left to right.
expr9[expr1] item of String or |List| *expr-[]* *E111*
expr10[expr1] item of String or |List| *expr-[]* *E111*
*E909* *subscript* *E1062*
In legacy Vim script:
If expr9 is a Number or String this results in a String that contains the
expr1'th single byte from expr9. expr9 is used as a String (a number is
If expr10 is a Number or String this results in a String that contains the
expr1'th single byte from expr10. expr10 is used as a String (a number is
automatically converted to a String), expr1 as a Number. This doesn't
recognize multibyte encodings, see `byteidx()` for an alternative, or use
`split()` to turn the string into a list of characters. Example, to get the
@ -1246,8 +1267,8 @@ byte under the cursor: >
:let c = getline(".")[col(".") - 1]
In |Vim9| script: *E1147* *E1148*
If expr9 is a String this results in a String that contains the expr1'th
single character (including any composing characters) from expr9. To use byte
If expr10 is a String this results in a String that contains the expr1'th
single character (including any composing characters) from expr10. To use byte
indexes use |strpart()|.
Index zero gives the first byte or character. Careful: text column numbers
@ -1258,7 +1279,7 @@ String. A negative index always results in an empty string (reason: backward
compatibility). Use [-1:] to get the last byte or character.
In Vim9 script a negative index is used like with a list: count from the end.
If expr9 is a |List| then it results the item at index expr1. See |list-index|
If expr10 is a |List| then it results the item at index expr1. See |list-index|
for possible index values. If the index is out of range this results in an
error. Example: >
:let item = mylist[-1] " get last item
@ -1268,14 +1289,14 @@ Generally, if a |List| index is equal to or higher than the length of the
error.
expr9[expr1a : expr1b] substring or sublist *expr-[:]*
expr10[expr1a : expr1b] substring or sublist *expr-[:]*
If expr9 is a String this results in the substring with the bytes or
characters from expr1a to and including expr1b. expr9 is used as a String,
If expr10 is a String this results in the substring with the bytes or
characters from expr1a to and including expr1b. expr10 is used as a String,
expr1a and expr1b are used as a Number.
In legacy Vim script the indexes are byte indexes. This doesn't recognize
multibyte encodings, see |byteidx()| for computing the indexes. If expr9 is
multibyte encodings, see |byteidx()| for computing the indexes. If expr10 is
a Number it is first converted to a String.
In Vim9 script the indexes are character indexes and include composing
@ -1302,20 +1323,20 @@ Examples: >
:let s = s[:-3] " remove last two bytes
<
*slice*
If expr9 is a |List| this results in a new |List| with the items indicated by
If expr10 is a |List| this results in a new |List| with the items indicated by
the indexes expr1a and expr1b. This works like with a String, as explained
just above. Also see |sublist| below. Examples: >
:let l = mylist[:3] " first four items
:let l = mylist[4:4] " List with one item
:let l = mylist[:] " shallow copy of a List
If expr9 is a |Blob| this results in a new |Blob| with the bytes in the
If expr10 is a |Blob| this results in a new |Blob| with the bytes in the
indexes expr1a and expr1b, inclusive. Examples: >
:let b = 0zDEADBEEF
:let bs = b[1:2] " 0zADBE
:let bs = b[:] " copy of 0zDEADBEEF
Using expr9[expr1] or expr9[expr1a : expr1b] on a |Funcref| results in an
Using expr10[expr1] or expr10[expr1a : expr1b] on a |Funcref| results in an
error.
Watch out for confusion between a namespace and a variable followed by a colon
@ -1324,11 +1345,11 @@ for a sublist: >
mylist[s:] " uses namespace s:, error!
expr9.name entry in a |Dictionary| *expr-entry*
expr10.name entry in a |Dictionary| *expr-entry*
*E1203* *E1229*
If expr9 is a |Dictionary| and it is followed by a dot, then the following
If expr10 is a |Dictionary| and it is followed by a dot, then the following
name will be used as a key in the |Dictionary|. This is just like:
expr9[name].
expr10[name].
The name must consist of alphanumeric characters, just like a variable name,
but it may start with a number. Curly braces cannot be used.
@ -1345,17 +1366,17 @@ Note that the dot is also used for String concatenation. To avoid confusion
always put spaces around the dot for String concatenation.
expr9(expr1, ...) |Funcref| function call *E1085*
expr10(expr1, ...) |Funcref| function call *E1085*
When expr9 is a |Funcref| type variable, invoke the function it refers to.
When expr10 is a |Funcref| type variable, invoke the function it refers to.
expr9->name([args]) method call *method* *->*
expr9->{lambda}([args])
expr10->name([args]) method call *method* *->*
expr10->{lambda}([args])
*E260* *E276* *E1265*
For methods that are also available as global functions this is the same as: >
name(expr9 [, args])
There can also be methods specifically for the type of "expr9".
name(expr10 [, args])
There can also be methods specifically for the type of "expr10".
This allows for chaining, passing the value that one method returns to the
next method: >
@ -1364,7 +1385,7 @@ next method: >
Example of using a lambda: >
GetPercentage()->{x -> x * 100}()->printf('%d%%')
<
When using -> the |expr8| operators will be applied first, thus: >
When using -> the |expr9| operators will be applied first, thus: >
-1.234->string()
Is equivalent to: >
(-1.234)->string()
@ -1393,7 +1414,7 @@ When using the lambda form there must be no white space between the } and the
(.
*expr10*
*expr11*
number
------
number number constant *expr-number*
@ -1402,6 +1423,10 @@ number number constant *expr-number*
Decimal, Hexadecimal (starting with 0x or 0X), Binary (starting with 0b or 0B)
and Octal (starting with 0, 0o or 0O).
Assuming 64 bit numbers are used (see |v:numbersize|) an unsigned number is
truncated to 0x7fffffffffffffff or 9223372036854775807. You can use -1 to get
0xffffffffffffffff.
*floating-point-format*
Floating point numbers can be written in two forms:
@ -1524,7 +1549,7 @@ to be doubled. These two commands are equivalent: >
if a =~ '\s*'
interpolated-string *interp-string* *E256*
interpolated-string *$quote* *interp-string* *E256*
--------------------
$"string" interpolated string constant *expr-$quote*
$'string' interpolated literal string constant *expr-$'*
@ -2978,7 +3003,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 |51.5|.
This is introduced in the user manual, section |52.2|.
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

View File

@ -1,4 +1,4 @@
*indent.txt* For Vim version 8.2. Last change: 2022 Apr 07
*indent.txt* For Vim version 8.2. Last change: 2022 May 21
VIM REFERENCE MANUAL by Bram Moolenaar
@ -22,9 +22,6 @@ indent and do not perform other formatting. There are additional options that
affect other kinds of formatting as well as indenting, see |format-comments|,
|fo-table|, |gq| and |formatting| for the main ones.
Note that this will not work when the |+smartindent| or |+cindent| features
have been disabled at compile time.
There are in fact four main methods available for indentation, each one
overrides the previous if it is enabled, or non-empty for 'indentexpr':
'autoindent' uses the indent from the previous line.

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 8.2. Last change: 2022 Mar 05
*index.txt* For Vim version 8.2. Last change: 2022 Jun 11
VIM REFERENCE MANUAL by Bram Moolenaar
@ -295,7 +295,7 @@ tag char note action in Normal mode ~
|/| /{pattern}<CR> 1 search forward for the Nth occurrence of
{pattern}
|/<CR>| /<CR> 1 search forward for {pattern} of last search
|count| 0 1 cursor to the first char of the line
|0| 0 1 cursor to the first char of the line
|count| 1 prepend to command to give a count
|count| 2 "
|count| 3 "

View File

@ -671,7 +671,7 @@ Note: The keys that are valid in CTRL-X mode are not mapped. This allows for
ends CTRL-X mode (any key that is not a valid CTRL-X mode command) is mapped.
Also, when doing completion with 'complete' mappings apply as usual.
*E578* *E565*
*E565*
Note: While completion is active Insert mode can't be used recursively and
buffer text cannot be changed. Mappings that somehow invoke ":normal i.."
will generate an E565 error.

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 8.2. Last change: 2022 May 09
*map.txt* For Vim version 8.2. Last change: 2022 Jun 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -63,6 +63,7 @@ modes.
allows for nested and recursive use of mappings.
Note: Trailing spaces are included in the {rhs},
because space is a valid Normal mode command.
See |map-trailing-white|.
*:nore* *:norem*
:no[remap] {lhs} {rhs} |mapmode-nvo| *:no* *:noremap* *:nor*
@ -100,10 +101,8 @@ modes.
for other modes where it applies.
It also works when {lhs} matches the {rhs} of a
mapping. This is for when an abbreviation applied.
Note: Trailing spaces are included in the {lhs}. This
unmap does NOT work: >
:map @@ foo
:unmap @@ | print
Note: Trailing spaces are included in the {lhs}.
See |map-trailing-white|.
:mapc[lear] |mapmode-nvo| *:mapc* *:mapclear*
:nmapc[lear] |mapmode-n| *:nmapc* *:nmapclear*
@ -168,6 +167,27 @@ that mapping won't get expanded yet, Vim is waiting for another character.
If you type a space, then "foo" will get inserted, plus the space. If you
type "a", then "bar" will get inserted.
Trailing white space ~
*map-trailing-white*
This unmap command does NOT work: >
:map @@ foo
:unmap @@ | print
Because it tries to unmap "@@ ", including the white space before the command
separator "|". Other examples with trailing white space: >
unmap @@
unmap @@ # Vim9 script comment
unmap @@ " legacy comment
An error will be issued, which is very hard to identify, because the ending
whitespace character in `unmap @@ ` is not visible.
A generic solution is to put the command separator "|" right after the mapped
keys. After that white space and a comment may follow: >
unmap @@| # Vim9 scriptcomment
unmap @@| " legacy scriptcomment
1.2 SPECIAL ARGUMENTS *:map-arguments*
@ -701,6 +721,7 @@ not to be matched with any key sequence. This is useful in plugins
*<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.
The |getmousepos()| function can be used to obtain the mouse position.
*<Char>* *<Char->*
To map a character by its decimal, octal or hexadecimal number the <Char>

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 8.2. Last change: 2022 May 07
*options.txt* For Vim version 8.2. Last change: 2022 Jun 07
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1621,8 +1621,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'cindent'* *'cin'* *'nocindent'* *'nocin'*
'cindent' 'cin' boolean (default off)
local to buffer
{not available when compiled without the |+cindent|
feature}
Enables automatic C program indenting. See 'cinkeys' to set the keys
that trigger reindenting in insert mode and 'cinoptions' to set your
preferred indent style.
@ -1639,8 +1637,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'cinkeys'* *'cink'*
'cinkeys' 'cink' string (default "0{,0},0),0],:,0#,!^F,o,O,e")
local to buffer
{not available when compiled without the |+cindent|
feature}
A list of keys that, when typed in Insert mode, cause reindenting of
the current line. Only used if 'cindent' is on and 'indentexpr' is
empty.
@ -1650,8 +1646,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'cinoptions'* *'cino'*
'cinoptions' 'cino' string (default "")
local to buffer
{not available when compiled without the |+cindent|
feature}
The 'cinoptions' affect the way 'cindent' reindents lines in a C
program. See |cinoptions-values| for the values of this option, and
|C-indenting| for info on C indenting in general.
@ -1660,8 +1654,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'cinwords'* *'cinw'*
'cinwords' 'cinw' string (default "if,else,while,do,for,switch")
local to buffer
{not available when compiled without both the
|+cindent| and the |+smartindent| features}
These keywords start an extra indent in the next line when
'smartindent' or 'cindent' is set. For 'cindent' this is only done at
an appropriate place (inside {}).
@ -1672,8 +1664,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'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": >
@ -4274,7 +4264,8 @@ A jump table for the options with a short description can be found at |Q_op|.
The type of highlighting used can be set with the 'l' occasion in the
'highlight' option. This uses the "Search" highlight group by
default. Note that only the matching text is highlighted, any offsets
are not applied.
are not applied. If the "CurSearch" highlight group is set then the
current match is highlighted with that.
See also: 'incsearch' and |:match|.
When you get bored looking at the highlighted matches, you can turn it
off with |:nohlsearch|. This does not change the option value, as
@ -4578,8 +4569,8 @@ A jump table for the options with a short description can be found at |Q_op|.
*'indentexpr'* *'inde'*
'indentexpr' 'inde' string (default "")
local to buffer
{not available when compiled without the |+cindent|
or |+eval| features}
{not available when compiled without the |+eval|
feature}
Expression which is evaluated to obtain the proper indent for a line.
It is used when a new line is created, for the |=| operator and
in Insert mode as specified with the 'indentkeys' option.
@ -4624,8 +4615,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'indentkeys'* *'indk'*
'indentkeys' 'indk' string (default "0{,0},0),0],:,0#,!^F,o,O,e")
local to buffer
{not available when compiled without the |+cindent|
feature}
A list of keys that, when typed in Insert mode, cause reindenting of
the current line. Only happens if 'indentexpr' isn't empty.
The format is identical to 'cinkeys', see |indentkeys-format|.
@ -5013,8 +5002,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'lisp'* *'nolisp'*
'lisp' boolean (default off)
local to buffer
{not available when compiled without the |+lispindent|
feature}
Lisp mode: When <Enter> is typed in insert mode set the indent for
the next line to Lisp standards (well, sort of). Also happens with
"cc" or "S". 'autoindent' must also be on for this to work. The 'p'
@ -5028,8 +5015,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'lispwords'* *'lw'*
'lispwords' 'lw' string (default is very long)
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.
|'lisp'|
@ -5091,14 +5076,23 @@ A jump table for the options with a short description can be found at |Q_op|.
"space" setting is used. For example,
`:set listchars=multispace:---+` shows ten consecutive
spaces as:
---+---+--
---+---+-- ~
*lcs-lead*
lead:c Character to show for leading spaces. When omitted,
leading spaces are blank. Overrides the "space" and
"multispace" settings for leading spaces. You can
combine it with "tab:", for example: >
:set listchars+=tab:>-,lead:.
< *lcs-trail*
< *lcs-leadmultispace*
leadmultispace:c...
Like multispace value, but only for leading whitespace
Overrides |lcs-lead| for leading multiple spaces.
`:set listchars=leadmultispace:---+` shows ten consecutive
leading spaces as:
---+---+--XXX ~
Where "XXX" denotes the first non-blank characters in
the line.
*lcs-trail*
trail:c Character to show for trailing spaces. When omitted,
trailing spaces are blank. Overrides the "space" and
"multispace" settings for trailing spaces.
@ -7222,8 +7216,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'smartindent'* *'si'* *'nosmartindent'* *'nosi'*
'smartindent' 'si' boolean (default off)
local to buffer
{not available when compiled without the
|+smartindent| feature}
Do smart autoindenting when starting a new line. Works for C-like
programs, but can also be used for other languages. 'cindent' does
something like this, works better in most cases, but is more strict,
@ -7642,10 +7634,9 @@ A jump table for the options with a short description can be found at |Q_op|.
If the statusline is not updated when you want it (e.g., after setting
a variable that's used in an expression), you can force an update by
setting an option without changing its value. Example: >
:let &ro = &ro
using `:redrawstatus`.
< A result of all digits is regarded a number for display purposes.
A result of all digits is regarded a number for display purposes.
Otherwise the result is taken as flag text and applied to the rules
described above.

View File

@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 8.2. Last change: 2022 Feb 14
*os_win32.txt* For Vim version 8.2. Last change: 2022 May 24
VIM REFERENCE MANUAL by George Reilly
@ -7,7 +7,7 @@
*win32* *Win32* *MS-Windows*
This file documents the idiosyncrasies of the Win32 version of Vim.
The Win32 version of Vim works on Windows XP, Vista, 7, 8 and 10. There are
The Win32 version of Vim works on Windows XP, Vista, 7, 8, 10 and 11. There are
both console and GUI versions.
The 32 bit version also runs on 64 bit MS-Windows systems.
@ -42,6 +42,11 @@ The GUI version was made by George V. Reilly and Robert Webb.
For compiling see "src/INSTALLpc.txt". *win32-compiling*
*WSL*
When using Vim on WSL (Windows Subsystem for Linux) the remarks here do not
apply, `has('win32')` will return false then. In case you need to know
whether Vim is running on WSL you can use `exists('$WSLENV')`.
==============================================================================
1. Known problems *win32-problems*

View File

@ -379,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:

View File

@ -1,4 +1,4 @@
*popup.txt* For Vim version 8.2. Last change: 2022 Apr 04
*popup.txt* For Vim version 8.2. Last change: 2022 Jun 06
VIM REFERENCE MANUAL by Bram Moolenaar
@ -147,7 +147,8 @@ A special case is running a terminal in a popup window. Many rules are then
different: *E863*
- The popup window always has focus, it is not possible to switch to another
window.
- When the job ends, the popup window closes.
- When the job ends, the popup window shows the buffer in Terminal-Normal
mode. Use `:q` to close it or use "term_finish" value "close".
- The popup window can be closed with `popup_close()`, the terminal buffer
then becomes hidden.
- It is not possible to open a second popup window with a terminal. *E861*
@ -998,20 +999,23 @@ To make the four corners transparent:
==============================================================================
4. Examples *popup-examples*
These examples use |Vim9| script.
TODO: more interesting examples
*popup_dialog-example*
Prompt the user to press y/Y or n/N: >
func MyDialogHandler(id, result)
if a:result
" ... 'y' or 'Y' was pressed
endif
endfunc
call popup_dialog('Continue? y/n', #{
\ filter: 'popup_filter_yesno',
\ callback: 'MyDialogHandler',
\ })
popup_dialog('Continue? y/n', {
filter: 'popup_filter_yesno',
callback: (id, result) => {
if result == 1
echomsg "'y' or 'Y' was pressed"
else
echomsg "'y' or 'Y' was NOT pressed"
endif
},
})
<
*popup_menu-shortcut-example*
Extend popup_filter_menu() with shortcut keys: >
@ -1039,6 +1043,10 @@ Extend popup_filter_menu() with shortcut keys: >
" No shortcut, pass to generic filter
return popup_filter_menu(a:id, a:key)
endfunc
func MyMenuHandler(id, result)
echo $'Result: {a:result}'
endfunc
<
*popup_beval_example*
Example for using a popup window for 'ballooneval': >

View File

@ -1,4 +1,4 @@
*sponsor.txt* For Vim version 8.2. Last change: 2021 Jul 07
*sponsor.txt* For Vim version 8.2. Last change: 2022 May 26
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.2. Last change: 2022 May 10
*starting.txt* For Vim version 8.2. Last change: 2022 Jun 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -346,7 +346,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
<
--log {filename} *--log*
Start logging and write entries to {filename}.
This works like calling `ch_logfile({filename}, 'a')` very
This works like calling `ch_logfile({filename}, 'ao')` very
early during startup.
{only available with the +channel feature}
@ -431,6 +431,13 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
Also avoids the "Reading from stdin..." message.
Also avoids the "N files to edit" message.
--gui-dialog-file {name} *--gui-dialog-file*
When using the GUI, instead of showing a dialog, write the
title and message of the dialog to file {name}. The file is
created or appended to. Only useful for testing, to avoid
that the test gets stuck on a dialog that can't be seen.
Without the GUI the argument is ignored.
*--ttyfail*
--ttyfail When the stdin or stdout is not a terminal (tty) then exit
right away.

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.2. Last change: 2022 May 06
*syntax.txt* For Vim version 8.2. Last change: 2022 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -32,13 +32,14 @@ In the User Manual:
10. Including syntax files |:syn-include|
11. Synchronizing |:syn-sync|
12. Listing syntax items |:syntax|
13. Highlight command |:highlight|
14. Linking groups |:highlight-link|
15. Cleaning up |:syn-clear|
16. Highlighting tags |tag-highlight|
17. Window-local syntax |:ownsyntax|
18. Color xterms |xterm-color|
19. When syntax is slow |:syntime|
13. Colorschemes |color-schemes|
14. Highlight command |:highlight|
15. Linking groups |:highlight-link|
16. Cleaning up |:syn-clear|
17. Highlighting tags |tag-highlight|
18. Window-local syntax |:ownsyntax|
19. Color xterms |xterm-color|
20. When syntax is slow |:syntime|
{Vi does not have any of these commands}
@ -1511,7 +1512,7 @@ modes Conditional, Number, Statement, Comment, PreProc, Type, and String,
following the language specifications in 'Symbolic Manipulation with FORM' by
J.A.M. Vermaseren, CAN, Netherlands, 1991.
If you want include your own changes to the default colors, you have to
If you want to include your own changes to the default colors, you have to
redefine the following syntax groups:
- formConditional
@ -4845,20 +4846,14 @@ Note that the ":syntax" command can be abbreviated to ":sy", although ":syn"
is mostly used, because it looks better.
==============================================================================
13. Highlight command *:highlight* *:hi* *E28* *E411* *E415*
There are three types of highlight groups:
- The ones used for specific languages. For these the name starts with the
name of the language. Many of these don't have any attributes, but are
linked to a group of the second type.
- The ones used for all syntax languages.
- The ones used for the 'highlight' option.
*hitest.vim*
You can see all the groups currently active with this command: >
:so $VIMRUNTIME/syntax/hitest.vim
This will open a new window containing all highlight group names, displayed
in their own color.
13. Colorschemes *color-schemes*
In the next section you can find information about indivisual highlight groups
and how to specify colors for them. Most likely you want to just select a set
of colors by using the `:colorscheme` command, for example: >
colorscheme pablo
<
*:colo* *:colorscheme* *E185*
:colo[rscheme] Output the name of the currently active color scheme.
This is basically the same as >
@ -4876,30 +4871,70 @@ in their own color.
Doesn't work recursively, thus you can't use
":colorscheme" in a color scheme script.
You have two options for customizing a color scheme.
For changing the appearance of specific colors, you
can redefine a color name before loading the scheme.
The desert scheme uses the khaki color for the cursor.
To use a darker variation of the same color: >
You have two options for customizing a color scheme. For changing the
appearance of specific colors, you can redefine a color name before loading
the scheme. The desert scheme uses the khaki color for the cursor. To use a
darker variation of the same color: >
let v:colornames['khaki'] = '#bdb76b'
colorscheme desert
let v:colornames['khaki'] = '#bdb76b'
colorscheme desert
<
For further customization, such as changing
|:highlight-link| associations, use another name, e.g.
"~/.vim/colors/mine.vim", and use `:runtime` to load
the original color scheme: >
runtime colors/evening.vim
hi Statement ctermfg=Blue guifg=Blue
For further customization, such as changing |:highlight-link| associations,
use another name, e.g. "~/.vim/colors/mine.vim", and use `:runtime` to load
the original color scheme: >
runtime colors/evening.vim
hi Statement ctermfg=Blue guifg=Blue
< Before the color scheme will be loaded all default
color list scripts (`colors/lists/default.vim`) will
be executed and then the |ColorSchemePre| autocommand
event is triggered. After the color scheme has been
loaded the |ColorScheme| autocommand event is
triggered.
For info about writing a color scheme file: >
:edit $VIMRUNTIME/colors/README.txt
Before the color scheme will be loaded all default color list scripts
(`colors/lists/default.vim`) will be executed and then the |ColorSchemePre|
autocommand event is triggered. After the color scheme has been loaded the
|ColorScheme| autocommand event is triggered.
If a color scheme is almost right, you can add modifications on top of it by
using the |ColorScheme| autocommand. For example, to remove the background
color (can make it transparent in some terminals): >
augroup my_colorschemes
au!
au Colorscheme pablo hi Normal ctermbg=NONE
augroup END
Change a couple more colors: >
augroup my_colorschemes
au!
au Colorscheme pablo hi Normal ctermbg=NONE
\ | higlight Special ctermfg=63
\ | highlight Identifier ctermfg=44
augroup END
If you make a lot of changes it might be better to copy the distributed
colorscheme to your home directory and change it: >
:!cp $VIMRUNTIME/colors/pablo.vim ~/.vim/colors
:edit ~/.vim/colors/pablo.vim
With Vim 9.0 the collection of color schemes was updated and made work in many
different terminals. One change was to often define the Normal highlight
group to make sure the colors work well. In case you prefer the old version,
you can find them here:
https://github.com/vim/colorschemes/blob/master/legacy_colors/
For info about writing a color scheme file: >
:edit $VIMRUNTIME/colors/README.txt
==============================================================================
14. Highlight command *:highlight* *:hi* *E28* *E411* *E415*
There are three types of highlight groups:
- The ones used for specific languages. For these the name starts with the
name of the language. Many of these don't have any attributes, but are
linked to a group of the second type.
- The ones used for all syntax languages.
- The ones used for the 'highlight' option.
*hitest.vim*
You can see all the groups currently active with this command: >
:so $VIMRUNTIME/syntax/hitest.vim
This will open a new window containing all highlight group names, displayed
in their own color.
:hi[ghlight] List all the current highlight groups that have
attributes set.
@ -5206,7 +5241,7 @@ guisp={color-name} *highlight-guisp*
All values are hexadecimal, range from "00" to "ff". Examples: >
:highlight Comment guifg=#11f0c3 guibg=#ff00ff
<
If you are authoring a color scheme and use the same hexademical value
If you are authoring a color scheme and use the same hexadecimal value
repeatedly, you can define a name for it in |v:colornames|. For
example: >
@ -5360,8 +5395,8 @@ StatusLineNC status lines of not-current windows
*hl-StatusLineTerm*
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|
window.
StatusLineTermNC Status lines of not-current windows that is a
|terminal| window.
*hl-TabLine*
TabLine Tab pages line, not active tab page label.
*hl-TabLineFill*
@ -5416,7 +5451,7 @@ Tooltip Current font, background and foreground of the tooltips.
set.
==============================================================================
14. Linking groups *:hi-link* *:highlight-link* *E412* *E413*
15. Linking groups *:hi-link* *:highlight-link* *E412* *E413*
When you want to use the same highlighting for several syntax groups, you
can do this more easily by linking the groups into one common highlight
@ -5460,7 +5495,7 @@ another color scheme, put a command like this in the
highlight! default link cComment Question
==============================================================================
15. Cleaning up *:syn-clear* *E391*
16. Cleaning up *:syn-clear* *E391*
If you want to clear the syntax stuff for the current buffer, you can use this
command: >
@ -5552,7 +5587,7 @@ syntax/syncolor.vim files are loaded:
them.
==============================================================================
16. Highlighting tags *tag-highlight*
17. Highlighting tags *tag-highlight*
If you want to highlight all the tags in your file, you can use the following
mappings.
@ -5588,7 +5623,7 @@ And put these lines in your .vimrc: >
autocmd BufRead,BufNewFile *.[ch] endif
==============================================================================
17. Window-local syntax *:ownsyntax*
18. Window-local syntax *:ownsyntax*
Normally all windows on a buffer share the same syntax settings. It is
possible, however, to set a particular window on a file to have its own
@ -5618,7 +5653,7 @@ is loaded into that window or the file is reloaded.
When splitting the window, the new window will use the original syntax.
==============================================================================
18. Color xterms *xterm-color* *color-xterm*
19. Color xterms *xterm-color* *color-xterm*
Most color xterms have only eight colors. If you don't get colors with the
default setup, it should work with these lines in your .vimrc: >
@ -5762,7 +5797,7 @@ that Setup / Font / Enable Bold is NOT enabled.
==============================================================================
19. When syntax is slow *:syntime*
20. When syntax is slow *:syntime*
This is aimed at authors of a syntax file.

View File

@ -12,6 +12,7 @@ $VIM starting.txt /*$VIM*
$VIM-use version5.txt /*$VIM-use*
$VIMRUNTIME starting.txt /*$VIMRUNTIME*
$VIM_POSIX vi_diff.txt /*$VIM_POSIX*
$quote eval.txt /*$quote*
% motion.txt /*%*
%:. cmdline.txt /*%:.*
%:8 cmdline.txt /*%:8*
@ -1455,6 +1456,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
--clean starting.txt /*--clean*
--cmd starting.txt /*--cmd*
--echo-wid starting.txt /*--echo-wid*
--gui-dialog-file starting.txt /*--gui-dialog-file*
--help starting.txt /*--help*
--literal starting.txt /*--literal*
--log starting.txt /*--log*
@ -1915,6 +1917,8 @@ $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.2 usr_41.txt /*41.2*
41.3 usr_41.txt /*41.3*
41.4 usr_41.txt /*41.4*
@ -1948,16 +1952,17 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
45.4 usr_45.txt /*45.4*
45.5 usr_45.txt /*45.5*
50.1 usr_50.txt /*50.1*
50.2 usr_50.txt /*50.2*
50.3 usr_50.txt /*50.3*
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*
52.5 usr_52.txt /*52.5*
8g8 various.txt /*8g8*
90.1 usr_90.txt /*90.1*
90.2 usr_90.txt /*90.2*
@ -4267,6 +4272,9 @@ E1274 cmdline.txt /*E1274*
E1276 builtin.txt /*E1276*
E1278 eval.txt /*E1278*
E128 eval.txt /*E128*
E1281 pattern.txt /*E1281*
E1282 eval.txt /*E1282*
E1283 eval.txt /*E1283*
E129 eval.txt /*E129*
E13 message.txt /*E13*
E131 eval.txt /*E131*
@ -4748,7 +4756,6 @@ E574 starting.txt /*E574*
E575 starting.txt /*E575*
E576 starting.txt /*E576*
E577 starting.txt /*E577*
E578 insert.txt /*E578*
E579 eval.txt /*E579*
E580 eval.txt /*E580*
E581 eval.txt /*E581*
@ -5516,6 +5523,7 @@ W20 if_pyth.txt /*W20*
W21 if_pyth.txt /*W21*
W22 eval.txt /*W22*
WORD motion.txt /*WORD*
WSL os_win32.txt /*WSL*
WWW intro.txt /*WWW*
Win32 os_win32.txt /*Win32*
WinBar gui.txt /*WinBar*
@ -5778,6 +5786,7 @@ 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-functions usr_41.txt /*autocmd-functions*
autocmd-groups autocmd.txt /*autocmd-groups*
autocmd-intro autocmd.txt /*autocmd-intro*
autocmd-list autocmd.txt /*autocmd-list*
@ -5789,6 +5798,9 @@ autocmd-remove autocmd.txt /*autocmd-remove*
autocmd-searchpat autocmd.txt /*autocmd-searchpat*
autocmd-use autocmd.txt /*autocmd-use*
autocmd.txt autocmd.txt /*autocmd.txt*
autocmd_add() builtin.txt /*autocmd_add()*
autocmd_delete() builtin.txt /*autocmd_delete()*
autocmd_get() builtin.txt /*autocmd_get()*
autocmds-kept version5.txt /*autocmds-kept*
autocommand autocmd.txt /*autocommand*
autocommand-events autocmd.txt /*autocommand-events*
@ -5842,6 +5854,7 @@ beval_winid-variable eval.txt /*beval_winid-variable*
beval_winnr-variable eval.txt /*beval_winnr-variable*
binary-number eval.txt /*binary-number*
bitwise-function usr_41.txt /*bitwise-function*
bitwise-shift eval.txt /*bitwise-shift*
blob eval.txt /*blob*
blob-functions usr_41.txt /*blob-functions*
blob-identity eval.txt /*blob-identity*
@ -6189,6 +6202,7 @@ col() builtin.txt /*col()*
coldfusion.vim syntax.txt /*coldfusion.vim*
collapse tips.txt /*collapse*
collate-variable eval.txt /*collate-variable*
color-schemes syntax.txt /*color-schemes*
color-xterm syntax.txt /*color-xterm*
coloring syntax.txt /*coloring*
colortest.vim syntax.txt /*colortest.vim*
@ -6657,6 +6671,7 @@ expr-.. eval.txt /*expr-..*
expr-/ eval.txt /*expr-\/*
expr-< eval.txt /*expr-<*
expr-<# eval.txt /*expr-<#*
expr-<< eval.txt /*expr-<<*
expr-<= eval.txt /*expr-<=*
expr-<=# eval.txt /*expr-<=#*
expr-<=? eval.txt /*expr-<=?*
@ -6672,6 +6687,7 @@ expr-># eval.txt /*expr->#*
expr->= eval.txt /*expr->=*
expr->=# eval.txt /*expr->=#*
expr->=? eval.txt /*expr->=?*
expr->> eval.txt /*expr->>*
expr->? eval.txt /*expr->?*
expr-[:] eval.txt /*expr-[:]*
expr-[] eval.txt /*expr-[]*
@ -6699,6 +6715,7 @@ expr-unary-- eval.txt /*expr-unary--*
expr-variable eval.txt /*expr-variable*
expr1 eval.txt /*expr1*
expr10 eval.txt /*expr10*
expr11 eval.txt /*expr11*
expr2 eval.txt /*expr2*
expr3 eval.txt /*expr3*
expr4 eval.txt /*expr4*
@ -7273,6 +7290,7 @@ g:tar_nomax pi_tar.txt /*g:tar_nomax*
g:tar_readoptions pi_tar.txt /*g:tar_readoptions*
g:tar_secure pi_tar.txt /*g:tar_secure*
g:tar_writeoptions pi_tar.txt /*g:tar_writeoptions*
g:termdebug_config terminal.txt /*g:termdebug_config*
g:termdebugger terminal.txt /*g:termdebugger*
g:terminal_ansi_colors terminal.txt /*g:terminal_ansi_colors*
g:tex_comment_nospell syntax.txt /*g:tex_comment_nospell*
@ -8032,6 +8050,7 @@ lcs-conceal options.txt /*lcs-conceal*
lcs-eol options.txt /*lcs-eol*
lcs-extends options.txt /*lcs-extends*
lcs-lead options.txt /*lcs-lead*
lcs-leadmultispace options.txt /*lcs-leadmultispace*
lcs-multispace options.txt /*lcs-multispace*
lcs-nbsp options.txt /*lcs-nbsp*
lcs-precedes options.txt /*lcs-precedes*
@ -8172,6 +8191,7 @@ map-self-destroy tips.txt /*map-self-destroy*
map-space_in_lhs map.txt /*map-space_in_lhs*
map-space_in_rhs map.txt /*map-space_in_rhs*
map-table map.txt /*map-table*
map-trailing-white map.txt /*map-trailing-white*
map-typing map.txt /*map-typing*
map-which-keys map.txt /*map-which-keys*
map.txt map.txt /*map.txt*
@ -10183,6 +10203,7 @@ underline syntax.txt /*underline*
undo undo.txt /*undo*
undo-blocks undo.txt /*undo-blocks*
undo-branches undo.txt /*undo-branches*
undo-break undo.txt /*undo-break*
undo-commands undo.txt /*undo-commands*
undo-persistence undo.txt /*undo-persistence*
undo-redo undo.txt /*undo-redo*
@ -10201,7 +10222,6 @@ 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_51.txt /*use-cpo-save*
use-visual-cmds version4.txt /*use-visual-cmds*
useful-mappings tips.txt /*useful-mappings*
usenet intro.txt /*usenet*
@ -10573,7 +10593,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_52.txt /*vim9-declarations*
vim9-declarations usr_41.txt /*vim9-declarations*
vim9-differences vim9.txt /*vim9-differences*
vim9-export vim9.txt /*vim9-export*
vim9-final vim9.txt /*vim9-final*
@ -10592,7 +10612,6 @@ 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_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*
@ -10649,6 +10668,7 @@ vimscript-version eval.txt /*vimscript-version*
vimscript-versions eval.txt /*vimscript-versions*
vimtutor usr_01.txt /*vimtutor*
virtcol() builtin.txt /*virtcol()*
virtcol2col() builtin.txt /*virtcol2col()*
visual-block visual.txt /*visual-block*
visual-change visual.txt /*visual-change*
visual-examples visual.txt /*visual-examples*
@ -10779,11 +10799,11 @@ 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_51.txt /*write-filetype-plugin*
write-library-script usr_51.txt /*write-library-script*
write-library-script usr_52.txt /*write-library-script*
write-local-help usr_51.txt /*write-local-help*
write-permissions editing.txt /*write-permissions*
write-plugin usr_51.txt /*write-plugin*
write-plugin-quickload usr_51.txt /*write-plugin-quickload*
write-plugin-quickload usr_52.txt /*write-plugin-quickload*
write-quit editing.txt /*write-quit*
write-readonly editing.txt /*write-readonly*
writefile() builtin.txt /*writefile()*

View File

@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.2. Last change: 2022 Apr 06
*terminal.txt* For Vim version 8.2. Last change: 2022 Jun 09
VIM REFERENCE MANUAL by Bram Moolenaar
@ -101,7 +101,7 @@ The special key combination CTRL-\ CTRL-N can be used to switch to Normal
mode, just like this works in any other mode.
*t_CTRL-W_CTRL-C*
CTRL-W CTRL-C can be typed to forcefully end the job. On MS-Windows a
CTRL-BREAK will also kill the job.
CTRL-Break will also kill the job.
If you type CTRL-C the effect depends on what the pty has been configured to
do. For simple commands this causes a SIGINT to be sent to the job, which
@ -1367,7 +1367,7 @@ Four autocommands can be used: >
*TermdebugStartPre*
TermdebugStartPre Before starting debugging.
Not triggered if the debugger is already
running or |g:termdebugger| cannot be
running or the debugger command cannot be
executed.
*TermdebugStartPost*
TermdebugStartPost After debugging has initialized.
@ -1398,18 +1398,24 @@ in a buffer with 'buftype' set to "prompt". This works slightly differently:
*termdebug_use_prompt*
Prompt mode can be used even when the |+terminal| feature is present with: >
let g:termdebug_config['use_prompt'] = 1
Or if there is no g:termdebug_config: >
let g:termdebug_use_prompt = 1
<
*termdebug_map_K*
The K key is normally mapped to :Evaluate. If you do not want this use: >
let g:termdebug_config['map_K'] = 0
Or if there is no g:termdebug_config: >
let g:termdebug_map_K = 0
<
*termdebug_disasm_window*
If you want the Asm window shown by default, set this to 1. Setting to
any value greater than 1 will set the Asm window height to that value: >
If you want the Asm window shown by default, set the flag to 1.
the "disasm_window_height" entry can be used to set the window height: >
let g:termdebug_config['disasm_window'] = 1
let g:termdebug_config['disasm_window_height'] = 15
or, if there is no g:termdebug_config: >
let g:termdebug_disasm_window = 15
<
Any value greater than 1 will set the Asm window height to that value: >
Communication ~
*termdebug-communication*
@ -1426,15 +1432,36 @@ communication channel.
Customizing ~
*termdebug-customizing* *g:termdebug_config*
In the past several global variables were used for configuration. These are
deprecated, using the g:termdebug_config dictionary is preferred. When
g:termdebug_config exists the other global variables will not be used.
GDB command *termdebug-customizing*
GDB command ~
*g:termdebugger*
To change the name of the gdb command, set the "g:termdebugger" variable before
invoking `:Termdebug`: >
To change the name of the gdb command, set "debugger" entry in
g:termdebug_config or the "g:termdebugger" variable before invoking
`:Termdebug`: >
let g:termdebug_config['command'] = "mygdb"
Or if there is no g:termdebug_config: >
let g:termdebugger = "mygdb"
If the command needs an argument use a List: >
let g:termdebug_config['command'] = ['rr', 'replay', '--']
Or if there is no g:termdebug_config: >
let g:termdebugger = ['rr', 'replay', '--']
< *gdb-version*
Several arguments will be added to make gdb work well for the debugger.
If you want to modify them, add a function to filter the argument list: >
let g:termdebug_config['command_filter'] = MyDebugFilter
If you do not want the arguments to be added, but you do need to set the
"pty", use a function to add the necessary arguments: >
let g:termdebug_config['command_add_args'] = MyAddArguments
The function will be called with the list of arguments so far, and a second
argument that is the name of the pty.
*gdb-version*
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
interface. The "new-ui" command requires gdb version 7.12 or later. if you
get this error:
@ -1442,8 +1469,8 @@ get this error:
Then your gdb is too old.
Colors *hl-debugPC* *hl-debugBreakpoint*
Colors~
*hl-debugPC* *hl-debugBreakpoint*
The color of the signs can be adjusted with these highlight groups:
- debugPC the current position
- debugBreakpoint a breakpoint
@ -1473,6 +1500,8 @@ these entries to the popup menu:
Clear breakpoint `:Clear`
Evaluate `:Evaluate`
If you don't want this then disable it with: >
let g:termdebug_config['popup'] = 0
or if there is no g:termdebug_config: >
let g:termdebug_popup = 0
@ -1480,15 +1509,17 @@ Vim window width *termdebug_wide*
To change the width of the Vim window when debugging starts and use a vertical
split: >
let g:termdebug_config['wide'] = 163
Or if there is no g:termdebug_config: >
let g:termdebug_wide = 163
This will set 'columns' to 163 when `:Termdebug` is used. The value is
restored when quitting the debugger.
If g:termdebug_wide is set and 'columns' is already a greater value, then a
If the wide value is set and 'columns' is already a greater value, then a
vertical split will be used without modifying 'columns'.
Set g:termdebug_wide to 1 to use a vertical split without ever changing
Set the wide value to 1 to use a vertical split without ever changing
'columns'. This is useful when the terminal can't be resized by Vim.

View File

@ -1,4 +1,4 @@
*testing.txt* For Vim version 8.2. Last change: 2022 Apr 03
*testing.txt* For Vim version 8.2. Last change: 2022 May 16
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.2. Last change: 2022 May 14
*todo.txt* For Vim version 8.2. Last change: 2022 Jun 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -38,23 +38,21 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs*
-------------------- Known bugs and current work -----------------------
Once Vim9 is stable:
retab test Test_retab_endless() disabled - why is interrupt not caught?
searchpair() must call function to set timeout, not pass the time limit down
(and set it many times). #10562
Add test for --gui-dialog-file, check :confirm q with change buffer.
Prepare for Vim 9.0 release:
- Update the user manual:
- Add more to usr_50.txt as an "advanced section" of usr_41.txt
- Move some from vim9.txt to the user manual? Keep the specification.
- Use Vim9 for more runtime files.
- Check code coverage, add more tests if needed.
vim9instr.c
vim9script.c
vim9type.c
- Inlude new set of colors: #9795
- Make popup-examples use Vim9 script Issue #10499
- 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
@ -90,10 +88,10 @@ 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
(Yegappan Lakshmanan, 2021 May 22)
- Srollbar thumb sometimes not visible #10492
- 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
current window.
@ -130,14 +128,13 @@ 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)
Combining text property with 'cursorline' does not always work (Billie
Cleek, #5533)
- "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)
- Combining text property with 'cursorline' does not always work (Billie
Cleek, #5533)
- See remarks at top of src/textprop.c
'incsearch' with :s:
@ -155,6 +152,9 @@ Prompt buffer:
- add prompt_addtext({buf}, {expr}) none add text to a prompt buffer
Terminal debugger:
- Add a mechanism for configuration. Instead of several global variables use
a dictionary. Use callbacks for some things, e.g. opening a debug window in
a certain position.
- 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)
@ -210,13 +210,12 @@ Terminal emulator window:
- When 'encoding' is not utf-8, or the job is using another encoding, setup
conversions.
Add autocmd functions. PR #10291
a couple of outstanding comments, wait for Yegappan to respond
Autoconf: must use autoconf 2.69, later version generates lots of warnings
attempt in ~/tmp/configure.ac
- try using autoconf 2.71 and fix all "obsolete" warnings
Can deref_func_name() and deref_function_name() be merged?
Add mode bits to maparg() dict? PR #10356
After patch 8.2.4915 w_botline is computed much more often. Can this be
reduced?
@ -228,14 +227,9 @@ 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
Multiplexers (screen, tmux) can request it to the underlying 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.
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.
@ -258,7 +252,8 @@ 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
With a window height of 6 and 'scrolloff' set to 3, using "j" does not scroll
evenly. (#10545)
Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red.
@ -279,8 +274,6 @@ Add support for "underdouble", "underdot" and "underdash". #9553
test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
Mapping with partial match not executed properly in GTK. (Ingo Karkat, #7082)
Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is
spread out. Make a section with copy/paste examples of script and pointers to
more information.
@ -297,6 +290,8 @@ Request to use "." for the cursor column in search pattern \%<.c and \%<.v.
":filter set termcap" only filters terminal codes, not keys. (#9297)
Add an option to restrict 'incsearch' to not scroll the view. (Tavis Ormandy)
Remove SPACE_IN_FILENAME ? It is only used for completion.
When 'term' starts with "foot" then default t_TI and t_TE to the values used
@ -319,9 +314,6 @@ to tell which value from getvvcol() should be used. (#7964)
Value returned by virtcol() changes depending on how lines wrap. This is
inconsistent with the documentation.
Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
Scroll doesn't work correctly, why?
globpath() does not use 'wildignorecase' at all? (related to #8350)
Add 'termguiattr' option, use "gui=" attributes in the terminal? Would work
@ -363,9 +355,6 @@ Should also work without any group:
Should add a match/str/list/pos method that also returns the test and position
of submatches. #8355
Syntax highlight for a region does not work with a "nextgroup" if the start
match is empty. #8449
Check out PR #543 (Roland Puntaier).
Patch for multibyte characters in langmap and applying a mapping on them.
(Christian Brabandt, 2015 Jun 12, update July 25)
@ -488,9 +477,6 @@ Sound: support on Mac? Or does libcanberra work there?
Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
The :syntax cchar value can only be a single character. It would be useful to
support combining characters. (Charles Campbell) Also #4687
"--cleanFOO" does not result in an error. (#5537)
Output from assert_equalfile() doesn't give a hint about what's different.
@ -659,9 +645,6 @@ that Vim doesn't find the edited file in the buffer list, causing the
ATTENTION message? (Tony Mechelynck, 2008 Dec 1)
Also: swap files are in ~/tmp/ One has relative file name ".mozilla/...".
'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
Likonen, March 19)
When using a timer callback vgetc_busy is reset, allowing for using input().
But in a channel callback this does not happen. We need to do something
similar to check_due_timer(). Also see #3809.
@ -809,13 +792,6 @@ Compiler warning (geeknik, 2017 Oct 26):
Add Native language protocol server (LSP) support. (Yegappan Lakshmanan, 2018
Oct 28)
Add more testing of the GTK GUI.
- gtk_test_widget_click() can be used to simulate a click in a widget.
Tests failing for "make testgui" with GTK:
- Test_setbufvar_options()
- Test_exit_callback_interval()
Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
Patch to be able to disable default digraphs (incomplete) (Eric Pruitt, 2018
@ -886,9 +862,6 @@ word is re-added to it. (Matej Cepl, 2018 Feb 6)
Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
(Marcin Szewczyk, 2017 Apr 26)
Using 'wildignore' also applies to literally entered file name. Also with
:drop (remote commands).
@ -948,9 +921,6 @@ Patch to support hunspell. (Matej Cepl, Jan 2018, #2500) Based on older patch
in #846)
Doesn't work on Windows yet. Not ready to included, hard coded paths.
Win32 GUI: when running a fast timer, the cursor no longer blinks.
Was reported: cursor blinks in terminal on widows with a timer. (xtal8, #2142)
When a timer is running and typing CTRL-R on the command line, it is not
redrawn properly. (xtal8, 2017 Oct 23, #2241)
@ -1002,8 +972,6 @@ After using :noautocmd CursorMoved may still trigger. (Andy Stewart, 2017 Sep
When bracketed paste is used, pasting at the ":append" prompt does not get the
line breaks. (Ken Takata, 2017 Aug 22)
The ":move" command does not honor closed folds. (Ryan Lue, #2351)
Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)
Test_writefile_fails_conversion failure on Solaris because if different iconv
@ -1115,10 +1083,6 @@ Suggestion to improve pt-br spell checking. (Marcelo D Montu, 2016 Dec 15,
Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
GTK: When adding a timer from 'balloonexpr' it won't fire, because
g_main_context_iteration() doesn't return. Need to trigger an event when the
timer expires.
Rule to use "^" for statusline does not work if a space is defined with
highlighting for both stl and stlnc. Patch by Ken Hamada (itchyny, 2016 Dec 11)
@ -1518,8 +1482,6 @@ Result of systemlist() does not show whether text ended in line break.
When in 'comments' "n:x" follows after three-part comment directly it repeats
any one-character from the previous line. (Kartik Agaram, 2014 Sep 19)
Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
Patch: Let rare word highlighting overrule good word highlighting.
@ -1534,11 +1496,6 @@ was already defined.
Patch for ordered dict. (Ozaki Kiichi, 2015 May 7)
Patch to make closed folds line up. (Charles Campbell, 2014 Sep 12)
Remark from Roland Eggner: does it cause crashes? (2014 Dec 12)
Updated patch by Roland Eggner, Dec 16
Updated patch from Charles, 2016 Jul 2
Patch for building a 32bit Vim with 64bit MingW compiler.
(Michael Soyka, 2014 Oct 15)
@ -1646,9 +1603,6 @@ Also see #2034.
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?
Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16)
Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12)
@ -1670,9 +1624,6 @@ When evaluating expression in backticks, autoload doesn't work.
Using <nr>ifoobar<esc> can slow down Vim. Patch by Christian Brabandt, 2013
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)
Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
The BufUnload event is triggered when re-using the empty buffer.
@ -1698,9 +1649,6 @@ Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt,
Patch to view coverage of the tests. (Nazri Ramliy, 2013 Feb 15)
Patch to invert characters differently in GTK. (Yukihiro Nakadaira, 2013 May
5)
Patch to add "Q" and "A" responses to interactive :substitute. They are
carried over when using :global. (Christian Brabandt, 2013 Jun 19)
@ -1714,21 +1662,12 @@ Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2)
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
- Add regex for 'paragraphs' and 'sections': 'parare' and 'sectre'. Combine
the two into a regex for searching. (Ned Konz)
Patch by Christian Brabandt, 2013 Apr 20, unfinished.
Bug: findfile("any", "file:///tmp;") does not work.
patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
Patch to add "combine" to :syntax, combines highlight attributes. (Nate
Soares, 2012 Dec 3)
Syntax update problem in one buffer opened in two windows, bottom window is
not correctly updated. (Paul Harris, 2012 Feb 27)
Patch to add getsid(). (Tyru, 2011 Oct 2) Do we want this? Update Oct 4.
Or use expand('<sid>')?
@ -1779,10 +1718,6 @@ URXVT:
- Use urxvt mouse support also in xterm. Explanations:
http://www.midnight-commander.org/ticket/2662
Patch to have the fold and sign column and at the last line of the buffer.
(Marco Hinz, 2014 Sep 25)
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.
@ -1836,10 +1771,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)
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)
Win32: Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 17)
New feature, requires testing. Made some remarks.
@ -1901,18 +1832,12 @@ the help file.
After patch 7.3.097 still get E15. (Yukihiro Nakadaira, 2011 Jan 18)
Also for another example (ZyX, 2011 Jan 24)
Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
"0g@$" puts '] on last byte of multibyte. (ZyX, 2011 Jan 22)
Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
Problem with "syn sync grouphere". (Gustavo Niemeyer, 2011 Jan 27)
Using "syn sync breaklines=2" works for when text is changed, but not when
scrolling or redrawing. Should start search for syntax patterns above the
first drawn line. (#8103)
Loading autoload script even when usage is inside "if 0". (Christian Brabandt,
2010 Dec 18)
@ -1945,19 +1870,12 @@ In the sandbox it's not allowed to do many things, but it's possible to change
or set variables. Add a way to prevent variables from being changed in the
sandbox? E.g.: ":protect g:restore_settings".
GTK: drawing a double-width combining character over single-width characters
doesn't look right. (Dominique Pelle, 2010 Aug 8)
GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
Win32: tear-off menu does not work when menu language is German. (Markus
Bossler, 2011 Mar 2) Fixed by 7.3.095?
Wish for NetBeans commands:
- make it possible to have 'defineAnnoType' also handle terminal colors.
Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
7.3.014 changed how backslash at end of line works, but still get a NUL when
there is one backslash. (Ray Frush, 2010 Nov 18) What does the original ex
do?
@ -1983,9 +1901,6 @@ the command line. (Ingo Karkat, 2011 Jan 25)
Since patch 7.2.46 Yankring plugin has become very slow, eventually make Vim
crash? (Raiwil, 2010 Nov 17)
Patch to add FoldedLineNr highlighting: different highlighting for the line
number of a closed fold. (eXerigumo Clanjor, 2013 Jul 15)
Regexp engine performance:
- Profiling:
./vim -u NONE -s ~/vim/test/ruby.vim
@ -2034,8 +1949,6 @@ C-indenting: A matching { in a comment is ignored, but intermediate { are not
checked to be in a comment. Implement FM_SKIPCOMM flag of findmatchlimit().
Issue 46.
Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)
Using CompilerSet doesn't record where an option was set from. E.g., in the
gcc compiler plugin. (Gary Johnson, 2010 Dec 13)
@ -2097,9 +2010,6 @@ like it has ":keepjumps" before it.
Coverity: Check if there are new reported defects:
https://scan.coverity.com/projects/241
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)
Display error when 'tabline' that includes a file name with double-width
@ -2110,11 +2020,6 @@ Problem with stop directory in findfile(). (Adam Simpkins, 2009 Aug 26)
Using ']' as the end of a range in a pattern requires double escaping:
/[@-\\]] (Andy Wokula, 2011 Jun 28)
Syntax priority problem. (Charles Campbell, 2011 Sep 15)
When completion inserts the first match, it may trigger the line to be folded.
Disable updating folds while completion is active? (Peter Odding, 2010 Jun 9)
For running gvim on a USB stick: avoid the OLE registration. Use a command
line argument -noregister.
@ -2170,8 +2075,6 @@ J. Wang, 2009 Mar 31)
When $VIMRUNTIME is set in .vimrc, need to reload lang files. Already done
for GTK, how about others? (Ron Aaron, 2010 Apr 10)
Patch for GTK buttons X1Mouse and X2Mouse. (Christian J. Robinson, 2010 Aug 9)
":tab split fname" doesn't set the alternate file in the original window,
because win_valid() always returns FALSE. Below win_new_tabpage() in
ex_docmd.c.
@ -2189,10 +2092,6 @@ Don't load macmap.vim on startup, turn it into a plugin. (Ron Aaron,
Add "no_hlsearch" to winsaveview().
When 'foldmethod' is "indent", adding an empty line below a fold and then
indented text, creates a new fold instead of joining it with the previous one.
(Evan Laforge, 2009 Oct 17)
Bug: When reloading a buffer changed outside of Vim, BufRead autocommands
are applied to the wrong buffer/window. (Ben Fritz, 2009 Apr 2, May 11)
Ignore window options when not in the right window?
@ -2209,9 +2108,6 @@ displayed in a window should return the value that's stored for that buffer.
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
command. (Cyril Slobin, 2009 Mar 13)
Win32: completion of file name ":e c:\!test" results in ":e c:\\!test", which
does not work. (Nieko Maatjes, 2009 Jan 8, Ingo Karkat, 2009 Jan 22)
@ -2351,10 +2247,6 @@ Win32: Using "gvim --remote-tab-silent elŝuti.txt" doesn't work, the
multibyte character isn't passed and edits elsuti.txt.
(Raúl Núñez de Arenas Coronado, 2015 Dec 18)
Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
2008 May 14)
Possibly related problem: Alexey Muranov, 2015 Apr 2
Problem with CTRL-F. (Charles Campbell, 2008 March 21)
Only happens with "gvim -geometry "160x26+4+27" -u NONE -U NONE prop.c".
'lines' is 54. (2008 March 27)
@ -2381,21 +2273,6 @@ line doesn't fit. (Dasn, 2008 May 1)
GUI: In Normal mode can't yank the modeless selection. Make "gy" do this?
Works like CTRL-Y in Command line mode.
Mac: Move Carbon todo items to os_mac.txt. Note that this version is frozen,
try the Cocoa version.
Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
changed or the window is resized.
GTK: when setting 'columns' in a startup script and doing ":vertical diffsplit"
the window isn't redrawn properly, see two vertical bars.
Mac: Patch for configure: remove arch from ruby link args. (Knezevic, 2008
Mar 5) Alternative: Kazuki Sakamoto, Mar 7.
Mac: trouble compiling with Motif, requires --disable-darwin. (Raf, 2008 Aug
1) Reply by Ben Schmidt.
C't: On utf-8 system, editing file with umlaut through Gnome results in URL
with %nn%nn, which is taken as two characters instead of one.
Try to reproduce at work.
@ -2412,15 +2289,9 @@ Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
":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)
Add ":nofold". Range will apply without expanding to closed fold.
Using Aap to build Vim: add remarks about how to set personal preferences.
Example on http://www.calmar.ws/tmp/aap.html
Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb 26)
Bug in using a transparent syntax region. (Hanlen in vim-dev maillist, 2007
Jul 31)
When 'diffopt' has "context:0" a single deleted line causes two folds to merge
and mess up syncing. (Austin Jennings, 2008 Jan 31)
@ -2629,8 +2500,6 @@ Jul 22)
There should be something about spell checking in the user manual.
Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
Add an option to specify the character to use when a double-width character is
moved to the next line. Default '>', set to a space to blank it out. Check
that char is single width when it's set (compare with 'listchars').
@ -2681,8 +2550,6 @@ Only skip shortening for ":cc"?
Problem with ":call" and dictionary function. Hari Krishna Dara, Charles
Campbell 2006 Jul 06.
Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6)
A custom completion function in a ":command" cannot be a Funcref. (Andy
Wokula, 2007 Aug 25)
@ -2715,18 +2582,9 @@ and <notisdir> to autocommand patterns? Also <isfile>?
Add command modifier that skips wildcard expansion, so that you don't need to
put backslashes before special chars, only for white space.
Syntax HL: open two windows on the same C code, delete a ")" in one window,
resulting in highlighted "{" in that window, not in the other.
In mswin.vim: Instead of mapping <C-V> for Insert mode in a complicated way,
can it be done like ":imap <C-V> <MiddleMouse>" without negative side effects?
GTK: when the Tab pages bar appears or disappears while the window is
maximized the window is no longer maximized. Patch that has some idea but
doesn't work from Geoffrey Antos, 2008 May 5.
Also: the window may no longer fit on the screen, thus the command line is not
visible.
When right after "vim file", "M" then CTRL-W v the windows are scrolled
differently and unexpectedly. Caused by patch 7.2.398?
@ -2755,9 +2613,6 @@ When completing from another file that uses a different encoding completion
text has the wrong encoding. E.g., when 'encoding' is utf-8 and file is
latin1. Example from Gombault Damien, 2007 Mar 24.
Syntax HL: When using "nextgroup" and the group has an empty match, there is
no search at that position for another match. (Lukas Mai, 2008 April 11)
In gvim the backspace key produces a backspace character, but on Linux the
VERASE key is Delete. Set VERASE to Backspace? (patch by Stephane Chazelas,
2007 Oct 16)
@ -2778,9 +2633,6 @@ When switching between windows the cursor is often put in the middle.
Remember the relative position and restore that, just like lnum and col are
restored. (Luc St-Louis)
Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn Winckler,
2010 Jun 30)
Add an option for a minimal text length before inserting a line break for
'textwidth'. Avoids very short lines when a very long word follows.
(Kartik Agaram)
@ -3019,7 +2871,7 @@ Vi incompatibility:
thing. (only repeat insert for the first line).
GTK+ GUI known bugs:
GTK+ GUI:
9 Crash with X command server over ssh. (Ciaran McCreesh, 2006 Feb 6)
8 GTK 2: Combining UTF-8 characters not displayed properly in menus (Mikolaj
Machowski) They are displayed as separate characters. Problem in
@ -3034,6 +2886,33 @@ GTK+ GUI known bugs:
- Gnome2: When moving the toolbar out of the dock, so that it becomes
floating, it can no longer be moved. Therefore making it float has been
blocked for now.
- Mapping with partial match not executed properly in GTK. (Ingo Karkat,
#7082)
- Add more testing of the GTK GUI.
- gtk_test_widget_click() can be used to simulate a click in a widget.
- Tests failing for "make testgui" with GTK:
- Test_setbufvar_options()
- Test_exit_callback_interval()
- When adding a timer from 'balloonexpr' it won't fire, because
g_main_context_iteration() doesn't return. Need to trigger an event when
the timer expires.
- problem with 'L' in 'guioptions' changing the window width. (Aaron
Cornelius, 2012 Feb 6)
- Patch to invert characters differently in GTK. (Yukihiro Nakadaira, 2013
May 5)
- drawing a double-width combining character over single-width characters
doesn't look right. (Dominique Pelle, 2010 Aug 8)
- tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
- Patch for GTK buttons X1Mouse and X2Mouse. (Christian J. Robinson, 2010
Aug 9)
- When setting 'columns' in a startup script and doing ":vertical diffsplit"
the window isn't redrawn properly, see two vertical bars.
- when the Tab pages bar appears or disappears while the window is maximized
the window is no longer maximized. Patch that has some idea but doesn't
work from Geoffrey Antos, 2008 May 5. Also: the window may no longer fit
on the screen, thus the command line is not visible.
- Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn
Winckler, 2010 Jun 30)
Win32 GUI known bugs:
@ -3099,6 +2978,10 @@ Win32 GUI known bugs:
still be used somewhere. This is too tricky, do the font selection first,
then set the new font by name (requires putting all logfont parameters in
the font name).
- When running a fast timer, the cursor no longer blinks. Was reported:
cursor blinks in terminal on widows with a timer. (xtal8, #2142)
- Last message from startup doesn't show up when there is an echoerr
command. (Cyril Slobin, 2009 Mar 13)
Motif:
@ -3279,6 +3162,18 @@ Macintosh:
9 When DiskLock is running, using a swap file causes a crash. Appears to be
a problem with writing a file that starts with a dot. (Giacalone)
9 In mac_expandpath() check that handling of backslashes is done properly.
- Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
- Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
- Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)
- Move Carbon todo items to os_mac.txt. Note that this version is frozen,
try the Cocoa version.
- After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
changed or the window is resized.
- Patch for configure: remove arch from ruby link args. (Knezevic, 2008 Mar
5) Alternative: Kazuki Sakamoto, Mar 7.
- trouble compiling with Motif, requires --disable-darwin. (Raf, 2008 Aug 1)
Reply by Ben Schmidt.
- Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
"Small" problems:
@ -3809,6 +3704,30 @@ Diff mode:
Folding:
(commands still available: zI zJ zK zp zP zq zQ zV zy zY;
secondary: zB zS zT zZ, z=)
- Patch to make closed folds line up. (Charles Campbell, 2014 Sep 12)
Remark from Roland Eggner: does it cause crashes? (2014 Dec 12)
Updated patch by Roland Eggner, Dec 16
Updated patch from Charles, 2016 Jul 2
- Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
- Patch to have the fold and sign column and at the last line of the buffer.
(Marco Hinz, 2014 Sep 25)
Alternate suggestion: let all columns continue, also the number column.
- Patch to add FoldedLineNr highlighting: different highlighting for the
line number of a closed fold. (eXerigumo Clanjor, 2013 Jul 15)
- Patch to use 'foldnestmax' also for "marker" foldmethod. (Arnaud Lacombe,
2011 Jan 7)
- 'foldcolumn' in modeline applied to wrong window when using a session.
(Teemu Likonen, March 19)
- With foldmethod=syntax and nofoldenable comment highlighting isn't
removed. (Marcin Szewczyk, 2017 Apr 26)
- The ":move" command does not honor closed folds. (Ryan Lue, #2351)
- When completion inserts the first match, it may trigger the line to be
folded. Disable updating folds while completion is active? (Peter Odding,
2010 Jun 9)
- When 'foldmethod' is "indent", adding an empty line below a fold and then
indented text, creates a new fold instead of joining it with the previous
one. (Evan Laforge, 2009 Oct 17)
- Add ":nofold". Range will apply without expanding to closed fold.
8 Vertical folds: looks like vertically split windows, but the cursor moves
through the vertical separator, separator moves when scrolling.
8 Add "z/" and "z?" for searching in not folded text only. Or use a regexp
@ -3912,6 +3831,8 @@ Multi-byte characters:
table anymore (breakat_flags[]).
Simplistic solution: when 'formatoptions' contains "m" also break a line
at a multibyte character >= 0x100.
Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
Scroll doesn't work correctly, why?
- Add the possibility to enter mappings which are used whenever normal text
could be entered. E.g., for "f" command. But not in Normal mode. Sort
of opposite of 'langmap'. Use ":amap" command?
@ -3919,6 +3840,9 @@ Multi-byte characters:
account. The "linebreak" program from Bruno Haible can do it:
ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
But it's very complicated...
- Problem with 'langmap' being used on the rhs of a mapping. (Nikolai
Weibull, 2008 May 14).
Possibly related problem: Alexey Muranov, 2015 Apr 2
Printing:
@ -3942,8 +3866,8 @@ Printing:
Syntax highlighting:
Long term goal: faster, better, etc. Options:
- use treesitter, NeoVim uses it
- use TextMate, vscode uses it. #9087
- use treesitter, NeoVim uses it - Many people don't like it.
- use TextMate, vscode uses it. #9087 - possibly a long term solution
8 Make ":syn off" use 'runtimepath' instead of $VIMRUNTIME. (Gary Johnson)
Should do the same for ":syn on" and ":syn manual".
8 Support "containedin" argument for ":syn include", so that the defined
@ -4092,6 +4016,34 @@ Syntax highlighting:
text, exit at end of file, don't allow editing, etc. moreim? lessim?
7 SpecialKey highlighting overrules syntax highlighting. Can't give an
unprintable char another color. Would be useful for ^M at end of line.
- Syntax highlight for a region does not work with a "nextgroup" if the
start match is empty. #8449
- The :syntax cchar value can only be a single character. It would be
useful to support combining characters. (Charles Campbell) Also #4687
- Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
- Several syntax file match "^\s*" which may get underlined if that's in the
highlight group. Add a "\zs" after it?
- patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
Patch to add "combine" to :syntax, combines highlight attributes. (Nate
Soares, 2012 Dec 3)
- Syntax update problem in one buffer opened in two windows, bottom window
is not correctly updated. (Paul Harris, 2012 Feb 27)
- 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)
- Using "syn sync breaklines=2" works for when text is changed, but not when
scrolling or redrawing. Should start search for syntax patterns above the
first drawn line. (#8103)
- Syntax priority problem. (Charles Campbell, 2011 Sep 15)
- Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb
26)
- Bug in using a transparent syntax region. (Hanlen in vim-dev maillist,
2007 Jul 31)
- Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6)
- Open two windows on the same C code, delete a ")" in one window, resulting
in highlighted "{" in that window, not in the other.
- When using "nextgroup" and the group has an empty match, there is no
search at that position for another match. (Lukas Mai, 2008 April 11)
Vim script language:

View File

@ -1,4 +1,4 @@
*undo.txt* For Vim version 8.2. Last change: 2020 Nov 30
*undo.txt* For Vim version 8.2. Last change: 2022 Jun 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -105,12 +105,16 @@ change again. But you can do something like this: >
After this a "u" command will undo the delete command and the previous
change.
*undo-break*
To do the opposite, break a change into two undo blocks, in Insert mode use
CTRL-G u. This is useful if you want an insert command to be undoable in
parts. E.g., for each sentence. |i_CTRL-G_u|
Setting the value of 'undolevels' also breaks undo. Even when the new value
is equal to the old value.
is equal to the old value. In |Vim9| script: >
&undolevels = &undolevels
In legacy script: >
let &undolevels = &undolevels
==============================================================================
4. Undo branches *undo-branches* *undo-tree*

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.2. Last change: 2022 May 13
*usr_41.txt* For Vim version 8.2. Last change: 2022 Jun 10
VIM USER MANUAL - by Bram Moolenaar
@ -7,7 +7,7 @@
The Vim script language is used for the startup vimrc file, syntax files, and
many other things. This chapter explains the items that can be used in a Vim
script. There are a lot of them, thus this is a long chapter.
script. There are a lot of them, therefore this is a long chapter.
|41.1| Introduction
|41.2| Variables
@ -17,8 +17,10 @@ script. There are a lot of them, thus this is a long chapter.
|41.6| Using functions
|41.7| Defining a function
|41.8| Lists and Dictionaries
|41.9| Exceptions
|41.10| Various remarks
|41.9| White space
|41.10| Line continuation
|41.11| Comments
|41.12| Fileformat
Next chapter: |usr_42.txt| Add new menus
Previous chapter: |usr_40.txt| Make new commands
@ -28,9 +30,10 @@ Table of contents: |usr_toc.txt|
*41.1* Introduction *vim-script-intro* *script*
Your first experience with Vim scripts is the vimrc file. Vim reads it when
it starts up and executes the commands. You can set options to values you
prefer. And you can use any colon command in it (commands that start with a
":"; these are sometimes referred to as Ex commands or command-line commands).
it starts up and executes the commands. You can set options to the values you
prefer, define mappings, select plugins and much more. You can use any colon
command in it (commands that start with a ":"; these are sometimes referred to
as Ex commands or command-line commands).
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
@ -38,8 +41,8 @@ script file. You can think of other uses yourself.
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.
While legacy script is particularly 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: >
@ -65,8 +68,9 @@ The output of the example code is:
count is 4 ~
In the first line the `vim9script` command makes clear this is a new, |Vim9|
script file. That matters for how the rest of the file is used.
script file. That matters for how the rest of the file is used. It is
recommended to put it in the very fist line, before any comments.
*vim9-declarations*
The `var i = 1` command declares the "i" variable and initializes it. The
generic form is: >
@ -100,29 +104,53 @@ The example was given to explain the commands, but would you really want to
make such a loop, it can be written much more compact: >
for i in range(1, 4)
echo "count is" i
echo $"count is {i}"
endfor
We won't explain how `for` and `range()` work until later. Follow the links
if you are impatient.
We won't explain how `for`, `range()`and `$"string"` work until later. Follow
the links if you are impatient.
TRYING OUT EXAMPLES
You can easily try out most examples in these help files without saving the
commands to a file. For example, to try out the "for" loop above do this:
1. position the cursor on the "for"
2. start Visual mode with "v"
3. move down to the "endfor"
4. press colon, then "so" and Enter
After pressing colon you will see ":'<,'>", which is the range of the Visually
selected text.
For some commands it matters they are executed as in |Vim9| script. But typed
commands normally use legacy script syntax, such as the example below that
causes the E1004 error. For that use this fourth step:
4. press colon, then "vim9 so" and Enter
"vim9" is short for `vim9cmd`, which is a command modifier to execute the
following command in |Vim9| syntax.
Note that this won't work for examples that require a script context.
FOUR KINDS OF NUMBERS
Numbers can be decimal, hexadecimal, octal or binary.
Numbers can be decimal, hexadecimal, octal and binary.
A hexadecimal number starts with "0x" or "0X". For example "0x1f" is decimal
31.
31 and 0x1234 is decimal 4660.
An octal number starts with "0o", "0O". "0o17" is decimal 15.
A binary number starts with "0b" or "0B". For example "0b101" is decimal 5.
A decimal number is just digits. Careful: In legacy script don't put a zero
before a decimal number, it will be interpreted as an octal number!
before a decimal number, it will be interpreted as an octal number! That's
one reason to use |Vim9| script.
The `echo` command evaluates its argument and always prints decimal numbers.
Example: >
The `echo` command evaluates its argument and when it is a number always
prints the decimal form. Example: >
echo 0x7f 0o36
< 127 30 ~
@ -155,6 +183,7 @@ To actually have the minus sign be used for negation, you can put the second
expression in parentheses: >
echo -0x7f (-0o36)
< -127 -30 ~
==============================================================================
*41.2* Variables
@ -165,19 +194,19 @@ cannot start with a digit. Valid variable names are:
counter
_aap3
very_long_variable_name_with_underscores
FuncLength
CamelCaseName
LENGTH
Invalid names are "foo+bar" and "6var".
Invalid names are "foo.bar" and "6var".
Some variables are global. To see a list of currently defined global
variables type this command: >
:let
You can use global variables everywhere. However, it is easy to use the same
name in two unrelated scripts. Therefore variables declared in a script are
local to that script. For example, if you have this in "script1.vim": >
You can use global variables everywhere. However, it is too easy to use the
same name in two unrelated scripts. Therefore variables declared in a script
are local to that script. For example, if you have this in "script1.vim": >
vim9script
var counter = 5
@ -194,19 +223,24 @@ Using a script-local variable means you can be sure that it is only changed in
that script and not elsewhere.
If you do want to share variables between scripts, use the "g:" prefix and
assign the value directly, do not use `var`. Thus in "script1.vim": >
assign the value directly, do not use `var`. And use a specific name to avoid
mistakes. Thus in "script1.vim": >
vim9script
g:counter = 5
echo g:counter
g:mash_counter = 5
echo g:mash_counter
< 5 ~
And then in "script2.vim": >
vim9script
echo g:counter
echo g:mash_counter
< 5 ~
Global variables can also be accessed on the command line, E.g. typing this: >
echo g:mash_counter
That will not work for a script-local variable.
More about script-local variables here: |script-variable|.
There are more kinds of variables, see |internal-variables|. The most often
@ -231,7 +265,7 @@ when it doesn't, append !: >
unlet! g:counter
You cannot `unlet` script-local variables in |Vim9| script. You can in legacy
You cannot `unlet` script-local variables in |Vim9| script, only in legacy
script.
When a script finishes, the local variables declared there will not be
@ -251,12 +285,15 @@ Every time you call the function it will return the next count: >
:echo g:GetCount()
< 2 ~
If you are worried a script-local variable is consuming too much
memory, set it to an empty value after you no longer need it.
If you are worried a script-local variable is consuming too much memory, set
it to an empty or null value after you no longer need it. Example: >
var lines = readfile(...)
...
lines = []
Note: below we'll leave out the `vim9script` line, so we can concentrate on
the relevant commands, but you'll still need to put it at the top of your
script file.
Note: below we'll leave out the `vim9script` line from examples, so we can
concentrate on the relevant commands, but you'll still need to put it at the
top of your script file.
STRING VARIABLES AND CONSTANTS
@ -275,9 +312,13 @@ want to give the variable a value yet, you need to specify the type: >
var name: string
var age: number
...
name = "Peter"
age = 42
if male
name = "Peter"
age = 42
else
name = "Elisa"
age = 45
endif
If you make a mistake and try to assign the wrong type of value you'll get an
error: >
@ -287,8 +328,8 @@ error: >
More about types in |41.8|.
To assign a string value to a variable, you need to use a string constant.
There are two types of these. First the string in double quotes, as we used
To assign a string value to a variable, you can use a string constant. There
are two types of these. First the string in double quotes, as we used
already. If you want to include a double quote inside the string, put a
backslash in front of it: >
@ -296,7 +337,7 @@ backslash in front of it: >
echo name
< he is "Peter" ~
To avoid the need for a backslash, you can use a string in single quotes: >
To avoid the need for backslashes, you can use a string in single quotes: >
var name = 'he is "Peter"'
echo name
@ -341,8 +382,8 @@ themselves. Thus everywhere an expression is expected, you can use a number,
string or variable. Other basic items in an expression are:
$NAME environment variable
&name option
@r register
&name option value
@r register contents
Examples: >
@ -384,15 +425,24 @@ Grouping is done with parentheses. No surprises here. Example: >
echo (10 + 5) * 2
< 30 ~
OTHERS
Strings can be concatenated with ".." (see |expr6|). Example: >
echo "foo" .. "bar"
< foobar ~
echo "Name: " .. name
Name: Peter
When the "echo" command gets multiple arguments, it separates them with a
space. In the example the argument is a single expression, thus no space is
inserted.
If you don't like the concatenation you can use the $"string" form, which
accepts an expression in curly braces: >
echo $"Name: {name}"
See |interp-string| for more information.
Borrowed from the C language is the conditional expression: >
a ? b : c
@ -408,6 +458,10 @@ see it works as: >
(a) ? (b) : (c)
There is also the falsy operator: >
echo name ?? "No name given"
See |??|.
==============================================================================
*41.4* Conditionals
@ -472,16 +526,17 @@ ones:
The result is true if the condition is met and false otherwise. An example: >
if v:version >= 700
if v:version >= 800
echo "congratulations"
else
echo "you are using an old version, upgrade!"
endif
Here "v:version" is a variable defined by Vim, which has the value of the Vim
version. 600 is for version 6.0, version 6.1 has the value 601. This is
very useful to write a script that works with multiple versions of Vim.
|v:version|
version. 800 is for version 8.0, version 8.1 has the value 801. This is
useful to write a script that works with multiple versions of Vim.
See |v:version|. You can also check for a specific feature with `has()` or a
specific patch, see |has-patch|.
The logic operators work both for numbers and strings. When comparing two
strings, the mathematical difference is used. This compares byte values,
@ -505,8 +560,8 @@ pattern, like what's used for searching. Example: >
endif
Notice the use of a single-quote string for the pattern. This is useful,
because backslashes would need to be doubled in a double-quote string and
patterns tend to contain many backslashes.
because patterns tend to contain many backslashes and backslashes need to be
doubled in a double-quote string.
The match is not anchored, if you want to match the whole string start with
"^" and end with "$".
@ -543,6 +598,7 @@ Example: >
The `sleep` command makes Vim take a nap. The "50m" specifies fifty
milliseconds. Another example is `sleep 4`, which sleeps for four seconds.
`continue` and `break` can also be used in between `for` and `endfor`.
Even more looping can be done with the `for` command, see below in |41.8|.
==============================================================================
@ -579,9 +635,9 @@ Example: >
This will move the cursor "count" lines down.
Make sure that the argument for `normal` is a complete command. Otherwise
Vim will run into the end of the argument and abort the command. For example,
if you start the delete operator, you must give the movement command also.
This works: >
Vim will run into the end of the argument and silently abort the command. For
example, if you start the delete operator, you must give the movement command
also. This works: >
normal d$
@ -604,8 +660,8 @@ Notice the use of the special key "\<Esc>". This avoids having to enter a
real <Esc> character in your script. That is where `execute` with a
double-quote string comes in handy.
If you don't want to execute a string but evaluate it to get its expression
value, you can use the eval() function: >
If you don't want to execute a string as a command but evaluate it to get the
result of the expression, you can use the eval() function: >
var optname = "path"
var optvalue = eval('&' .. optname)
@ -620,19 +676,20 @@ Vim defines many functions and provides a large amount of functionality that
way. A few examples will be given in this section. You can find the whole
list below: |function-list|.
A function is called with the `call` command. The parameters are passed in
between parentheses separated by commas. Example: >
A function is called with the parameters in between parentheses, separated by
commas. Example: >
call search("Date: ", "W")
search("Date: ", "W")
This calls the search() function, with arguments "Date: " and "W". The
search() function uses its first argument as a search pattern and the second
one as flags. The "W" flag means the search doesn't wrap around the end of
the file.
Using `call` is optional in |Vim9| script, this works the same way: >
Using the `call` command is optional in |Vim9| script. It is required in
legacy script and on the command line: >
search("Date: ", "W")
call search("Date: ", "W")
A function can be called in an expression. Example: >
@ -644,10 +701,10 @@ The getline() function obtains a line from the current buffer. Its argument
is a specification of the line number. In this case "." is used, which means
the line where the cursor is.
The substitute() function does something similar to the `substitute` command.
The first argument is the string on which to perform the substitution. The
second argument is the pattern, the third the replacement string. Finally,
the last arguments are the flags.
The substitute() function does something similar to the `:substitute` command.
The first argument "line" is the string on which to perform the substitution.
The second argument '\a' is the pattern, the third "*" is the replacement
string. Finally, the last argument "g" is the flags.
The setline() function sets the line, specified by the first argument, to a
new string, the second argument. In this example the line under the cursor is
@ -656,7 +713,7 @@ statements is equal to: >
:substitute/\a/*/g
Using the functions becomes more interesting when you do more work before and
Using the functions becomes interesting when you do more work before and
after the substitute() call.
@ -835,6 +892,7 @@ Cursor and mark position: *cursor-functions* *mark-functions*
screencol() get screen column of the cursor
screenrow() get screen row of the cursor
screenpos() screen row and col of a text character
virtcol2col() byte index of a text character on screen
getcurpos() get position of the cursor
getpos() get position of cursor, mark, etc.
setpos() set position of cursor, mark, etc.
@ -925,6 +983,11 @@ Date and Time: *date-functions* *time-functions*
reltimestr() convert reltime() result to a string
reltimefloat() convert reltime() result to a Float
Autocmds: *autocmd-functions*
autocmd_add() add a list of autocmds and groups
autocmd_delete() delete a list of autocmds and groups
autocmd_get() return a list of autocmds
*buffer-functions* *window-functions* *arg-functions*
Buffers, windows and the argument list:
argc() number of entries in the argument list
@ -1341,8 +1404,9 @@ Let's assign the variable "smaller" the value of the smallest number: >
smaller = num2
endif
The variable "smaller" is a local variable. Variables used inside a function
are local unless prefixed by something like "g:", "w:", or "s:".
The variable "smaller" is a local variable. It is declared to be a number,
that way Vim can warn you for any mistakes. Variables used inside a function
are local unless prefixed by something like "g:", "w:", or "b:".
Note:
To access a global variable from inside a function you must prepend
@ -1398,15 +1462,23 @@ functions in the script: >
defcompile
For a function that does not return anything leave out the return type: >
Compiling functions takes a little time, but does report errors early. You
could use `:defcompile` at the end of your script while working on it, and
comment it out when everything is fine.
For a function that does not return anything simply leave out the return type: >
def SayIt(text: string)
echo text
enddef
If you want to return any kind of value, you can use the "any" return type: >
def GetValue(): any
This disables type checking for the return value, use only when needed.
It is also possible to define a legacy function with `function` and
`endfunction`. These do not have types and are not compiled. They execute
much slower.
`endfunction`. These do not have types and are not compiled. Therefore they
execute much slower.
USING A RANGE
@ -1420,47 +1492,12 @@ once for every line in the range, with the cursor in that line. Example: >
If you call this function with: >
:10,15call Number()
:10,15Number()
The function will be called six times, starting on line 10 and ending on line
15.
VARIABLE NUMBER OF ARGUMENTS
Vim enables you to define functions that have a variable number of arguments.
The following command, for instance, defines a function that must have 1
argument (start) and can have up to 20 additional arguments: >
def Show(start: string, ...items: list<string>)
The variable "items" will be a list containing the extra arguments. You can
use it like any list, for example: >
def Show(start: string, ...items: list<string>)
echohl Title
echo "start is " .. start
echohl None
for index in range(len(items))
echon " Arg " .. index .. " is " .. items[index]
endfor
echo
enddef
You can call it like this: >
Show('Title', 'one', 'two', 'three')
< start is Title Arg 0 is one Arg 1 is two Arg 2 is three ~
This uses the `echohl` command to specify the highlighting used for the
following `echo` command. `echohl None` stops it again. The `echon` command
works like `echo`, but doesn't output a line break.
If you call it with one argument the "items" list will be empty.
`range(len(items))` returns a list with the indexes, what `for` loops over,
we'll explain that further down.
LISTING FUNCTIONS
The `function` command lists the names and arguments of all user-defined
@ -1472,7 +1509,7 @@ functions: >
function SetSyn(name) ~
The "<SNR>" prefix means that a function is script-local. |Vim9| functions
wil start with "def" and include argument and return types. Legacy functions
will start with "def" and include argument and return types. Legacy functions
are listed with "function".
To see what a function does, use its name as an argument for `function`: >
@ -1483,12 +1520,11 @@ To see what a function does, use its name as an argument for `function`: >
3 endif ~
endfunction ~
To see the "Show" function you need to include the script prefix, since a
"Show" function can be defined multiple times in different scripts. To find
To see the "Show" function you need to include the script prefix, since
multiple "Show" functions can be defined in different scripts. To find
the exact name you can use `function`, but the result may be a very long list.
To only get the functions matching a pattern you can use the `filter` prefix:
>
:filter Show function
< def <SNR>86_Show(start: string, ...items: list<string>) ~
>
@ -1522,26 +1558,31 @@ You get an error when the function doesn't exist or cannot be deleted.
FUNCTION REFERENCES
Sometimes it can be useful to have a variable point to one function or
another. You can do it with function reference variable. Often shortened to
"funcref". Example: >
another. You can do it with a function reference variable. Often shortened
to "funcref". Example: >
def Right()
def Right(): string
return 'Right!'
enddef
def Wrong()
def Wrong(): string
return 'Wrong!'
enddef
var Afunc = g:result == 1 ? Right : Wrong
Afunc()
echo Afunc()
< Wrong! ~
This assumes "g:result" is not one.
This assumes "g:result" is not one. See |Funcref| for details.
Note that the name of a variable that holds a function reference must start
with a capital. Otherwise it could be confused with the name of a builtin
function.
FURTHER READING
Using a variable number of arguments is introduced in section |50.2|.
More information about defining your own functions here: |user-functions|.
==============================================================================
@ -1554,7 +1595,7 @@ A List is an ordered sequence of items. The items can be any kind of value,
thus you can make a List of numbers, a List of Lists and even a List of mixed
items. To create a List with three strings: >
var alist = ['aap', 'mies', 'noot']
var alist = ['aap', 'noot', 'mies']
The List items are enclosed in square brackets and separated by commas. To
create an empty List: >
@ -1576,14 +1617,14 @@ List concatenation is done with +: >
echo alist
< ['foo', 'bar', 'and', 'more'] ~
Or, if you want to extend a List with a function: >
Or, if you want to extend a List with a function, use `extend()`: >
var alist = ['one']
extend(alist, ['two', 'three'])
echo alist
< ['one', 'two', 'three'] ~
Notice that using `add()` will have a different effect: >
Notice that using `add()` will have a different effect than `extend()`: >
var alist = ['one']
add(alist, ['two', 'three'])
@ -1608,7 +1649,7 @@ One of the nice things you can do with a List is iterate over it: >
This will loop over each element in List "alist", assigning each value to
variable "n". The generic form of a for loop is: >
for {varname} in {listexpression}
for {varname} in {list-expression}
{commands}
endfor
@ -1623,7 +1664,10 @@ range() function creates one for you: >
2 ~
Notice that the first item of the List that range() produces is zero, thus the
last item is one less than the length of the list.
last item is one less than the length of the list. Detail: Internally range()
does not actually create the list, so that a large range used in a for loop
works efficiently. When used elsewhere, the range is turned into an actual
list, which takes more time for a long list.
You can also specify the maximum value, the stride and even go backwards: >
@ -1634,15 +1678,17 @@ You can also specify the maximum value, the stride and even go backwards: >
6 ~
4 ~
A more useful example, looping over lines in the buffer: >
A more useful example, looping over all the lines in the buffer: >
for line in getline(1, 20)
for line in getline(1, 50)
if line =~ "Date: "
echo line
endif
endfor
This looks into lines 1 to 20 (inclusive) and echoes any date found in there.
This looks into lines 1 to 50 (inclusive) and echoes any date found in there.
For further reading see |Lists|.
DICTIONARIES
@ -1694,104 +1740,30 @@ specific order: >
But you can never get back the order in which items are defined. For that you
need to use a List, it stores items in an ordered sequence.
For further reading see |Lists| and |Dictionaries|.
For further reading see |Dictionaries|.
==============================================================================
*41.9* Exceptions
Let's start with an example: >
try
read ~/templates/pascal.tmpl
catch /E484:/
echo "Sorry, the Pascal template file cannot be found."
endtry
The `read` command will fail if the file does not exist. Instead of
generating an error message, this code catches the error and gives the user a
nice message.
For the commands in between `try` and `endtry` errors are turned into
exceptions. An exception is a string. In the case of an error the string
contains the error message. And every error message has a number. In this
case, the error we catch contains "E484:". This number is guaranteed to stay
the same (the text may change, e.g., it may be translated).
Besides being able to give a nice error message, Vim will also continue
executing commands. Otherwise, once an uncaught error is encountered,
execution will be aborted.
When the `read` command causes another error, the pattern "E484:" will not
match in it. Thus this exception will not be caught and result in the usual
error message.
You might be tempted to do this: >
try
read ~/templates/pascal.tmpl
catch
echo "Sorry, the Pascal template file cannot be found."
endtry
This means all errors are caught. But then you will not see an error that
would indicate a completely different problem, such as "E21: Cannot make
changes, 'modifiable' is off".
Another useful mechanism is the `finally` command: >
var tmp = tempname()
try
exe ":.,$write " .. tmp
exe "!filter " .. tmp
:.,$delete
exe ":$read " .. tmp
finally
call delete(tmp)
endtry
This filters the lines from the cursor until the end of the file through the
"filter" command, which takes a file name argument. No matter if the
filtering works, something goes wrong in between `try` and `finally` or the
user cancels the filtering by pressing CTRL-C, the `call delete(tmp)` is
always executed. This makes sure you don't leave the temporary file behind.
More information about exception handling can be found in the reference
manual: |exception-handling|.
==============================================================================
*41.10* Various remarks
Here is a summary of items that are useful to know when writing Vim scripts.
The end-of-line character depends on the system. For Vim scripts it is
recommended to always use the Unix fileformat, this also works on any other
system. That way you can copy your Vim scripts from MS-Windows to Unix and
they still work. See |:source_crnl|. To be sure it is set right, do this
before writing the file: >
:setlocal fileformat=unix
WHITE SPACE
*41.9* White space
Blank lines are allowed and ignored.
Leading whitespace characters (blanks and TABs) are always ignored.
Trailing whitespace is often ignored, but not always. One command that
includes it is `map`.
includes it is `map`. You have to watch out for that, it can cause hard to
understand mistakes. A generic solution is to never use trailing white space,
unless you really need it.
To include a whitespace character in the value of an option, it must be
escaped by a "\" (backslash) as in the following example: >
:set tags=my\ nice\ file
The same example written as: >
If it would be written as: >
:set tags=my nice file
will issue an error, because it is interpreted as: >
This will issue an error, because it is interpreted as: >
:set tags=my
:set nice
@ -1799,17 +1771,52 @@ will issue an error, because it is interpreted as: >
|Vim9| script is very picky when it comes to white space. This was done
intentionally to make sure scripts are easy to read and to avoid mistakes.
If you use white space sensibly it will just work. When not you will get an
error message telling you where white space is missing or should be removed.
==============================================================================
*41.10* Line continuation
COMMENTS
In legacy Vim script line continuation is done by preceding a continuation
line with a backslash: >
let mylist = [
\ 'one',
\ 'two',
\ ]
In |Vim9| script the character # starts a comment. Everything after
and including this character until the end-of-line is considered a comment and
This requires the 'cpo' option to exclude the "C" flag. Normally this is done
by putting this at the start of the script: >
let s:save_cpo = &cpo
set cpo&vim
And restore the option at the end of the script: >
let &cpo = s:save_cpo
unlet s:save_cpo
A few more details can be found here: |line-continuation|.
In |Vim9| script the backslash can still be used, but in most places it is not
needed: >
var mylist = [
'one',
'two',
]
Also, the 'cpo' option does not need to be changed. See
|vim9-line-continuation| for details.
==============================================================================
*41.11* Comments
In |Vim9| script the character # starts a comment. That character and
everything after it until the end-of-line is considered a comment and
is ignored, except for commands that don't consider comments, as shown in
examples below. A comment can start on any character position on the line,
but not when it is part of the command, e.g. in a string.
but not when it is part of the command, e.g. inside a string.
The character " (the double quote mark) starts a comment in legacy script.
This involves some cleverness to make sure double quoted strings are not
recognized as comments (just one reason to prefer |Vim9| script).
There is a little "catch" with comments for some commands. Examples: >
@ -1818,11 +1825,12 @@ There is a little "catch" with comments for some commands. Examples: >
execute cmd # do it
!ls *.c # list C files
The abbreviation 'dev' will be expanded to 'development # shorthand'. The
mapping of <F3> will actually be the whole line after the 'o# ....' including
the '# insert include'. The `execute` command will give an error. The `!`
command will send everything after it to the shell, most likely causing an
error.
- The abbreviation 'dev' will be expanded to 'development # shorthand'.
- The mapping of <F3> will actually be the whole line after the 'o# ....'
including the '# insert include'.
- The `execute` command will give an error.
- The `!` command will send everything after it to the shell, most likely
causing an error.
There can be no comment after `map`, `abbreviate`, `execute` and `!` commands
(there are a few more commands with this restriction). For the `map`,
@ -1844,7 +1852,8 @@ trailing whitespace is included: >
map <F4> o#include
To spot these problems, you can highlight trailing spaces: >
Here it is intended, in other cases it might be accidental. To spot these
problems, you can highlight trailing spaces: >
match Search /\s\+$/
For Unix there is one special way to comment a line, that allows making a Vim
@ -1853,73 +1862,21 @@ script executable, and it also works in legacy script: >
echo "this is a Vim script"
quit
==============================================================================
*41.12* Fileformat
PITFALLS
The end-of-line character depends on the system. For Vim scripts it is
recommended to always use the Unix fileformat. This also works on any other
system. That way you can copy your Vim scripts from MS-Windows to Unix and
they still work. See |:source_crnl|. To be sure it is set right, do this
before writing the file: >
An even bigger problem arises in the following example: >
map ,ab o#include
unmap ,ab
Here the unmap command will not work, because it tries to unmap ",ab ". This
does not exist as a mapped sequence. An error will be issued, which is very
hard to identify, because the ending whitespace character in `unmap ,ab ` is
not visible.
And this is the same as what happens when one uses a comment after an 'unmap'
command: >
unmap ,ab # comment
Here the comment part will be ignored. However, Vim will try to unmap
',ab ', which does not exist. Rewrite it as: >
unmap ,ab| # comment
RESTORING THE VIEW
Sometimes you want to make a change and go back to where the cursor was.
Restoring the relative position would also be nice, so that the same line
appears at the top of the window.
This example yanks the current line, puts it above the first line in the file
and then restores the view: >
map ,p ma"aYHmbgg"aP`bzt`a
What this does: >
ma"aYHmbgg"aP`bzt`a
< ma set mark a at cursor position
"aY yank current line into register a
Hmb go to top line in window and set mark b there
gg go to first line in file
"aP put the yanked line above it
`b go back to top line in display
zt position the text in the window as before
`a go back to saved cursor position
PACKAGING
Sometimes you will want to use global variables or functions, so that they can
be used anywhere. A good example is a global variable that passes a
preference to a plugin. To avoid other scripts using the same name, use a
prefix that is very unlikely to be used elsewhere. For example, if you have a
"mytags" plugin, you could use: >
g:mytags_location = '$HOME/project'
g:mytags_style = 'fast'
To minimize interference between plugins keep as much as possible local to the
script. |Vim9| script helps you with that, by default functions and variables
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.
:setlocal fileformat=unix
==============================================================================
Advance information about writing Vim script is in |usr_50.txt|.
Next chapter: |usr_42.txt| Add new menus
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,22 +1,141 @@
*usr_50.txt* For Vim version 8.2. Last change: 2022 May 13
*usr_50.txt* For Vim version 8.2. Last change: 2022 Jun 03
VIM USER MANUAL - by Bram Moolenaar
Advanced Vim script writing
TODO - this chapter is to be written
|50.1| Writing stuff
|50.1| Exceptions
|50.2| Function with variable number of arguments
|50.3| Restoring the view
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
*50.1* Exceptions
Let's start with an example: >
try
read ~/templates/pascal.tmpl
catch /E484:/
echo "Sorry, the Pascal template file cannot be found."
endtry
The `read` command will fail if the file does not exist. Instead of
generating an error message, this code catches the error and gives the user a
message with more information.
For the commands in between `try` and `endtry` errors are turned into
exceptions. An exception is a string. In the case of an error the string
contains the error message. And every error message has a number. In this
case, the error we catch contains "E484:". This number is guaranteed to stay
the same (the text may change, e.g., it may be translated).
Besides being able to give a nice error message, Vim will also continue
executing commands after the `:endtry`. Otherwise, once an uncaught error is
encountered, execution of the script/function/mapping will be aborted.
When the `read` command causes another error, the pattern "E484:" will not
match in it. Thus this exception will not be caught and result in the usual
error message and execution is aborted.
You might be tempted to do this: >
try
read ~/templates/pascal.tmpl
catch
echo "Sorry, the Pascal template file cannot be found."
endtry
This means all errors are caught. But then you will not see an error that
would indicate a completely different problem, such as "E21: Cannot make
changes, 'modifiable' is off". Think twice before you catch any error!
Another useful mechanism is the `finally` command: >
var tmp = tempname()
try
exe ":.,$write " .. tmp
exe "!filter " .. tmp
:.,$delete
exe ":$read " .. tmp
finally
delete(tmp)
endtry
This filters the lines from the cursor until the end of the file through the
"filter" command, which takes a file name argument. No matter if the
filtering works, if something goes wrong in between `try` and `finally` or the
user cancels the filtering by pressing CTRL-C, the `delete(tmp)` call is
always executed. This makes sure you don't leave the temporary file behind.
The `finally` does not catch the exception, the error will still abort
further execution.
More information about exception handling can be found in the reference
manual: |exception-handling|.
==============================================================================
*50.2* Function with variable number of arguments
Vim enables you to define functions that have a variable number of arguments.
The following command, for instance, defines a function that must have 1
argument (start) and can have up to 20 additional arguments: >
def Show(start: string, ...items: list<string>)
The variable "items" will be a list in the function containing the extra
arguments. You can use it like any list, for example: >
def Show(start: string, ...items: list<string>)
echohl Title
echo "start is " .. start
echohl None
for index in range(len(items))
echon $" Arg {index} is {items[index]}"
endfor
echo
enddef
You can call it like this: >
Show('Title', 'one', 'two', 'three')
< start is Title Arg 0 is one Arg 1 is two Arg 2 is three ~
This uses the `echohl` command to specify the highlighting used for the
following `echo` command. `echohl None` stops it again. The `echon` command
works like `echo`, but doesn't output a line break.
If you call it with one argument the "items" list will be empty.
`range(len(items))` returns a list with the indexes, what `for` loops over,
we'll explain that further down.
==============================================================================
*50.3* Restoring the view
Sometimes you want to make a change and go back to where the cursor was.
Restoring the relative position would also be nice, so that the same line
appears at the top of the window.
This example yanks the current line, puts it above the first line in the file
and then restores the view: >
map ,p ma"aYHmbgg"aP`bzt`a
What this does: >
ma"aYHmbgg"aP`bzt`a
< ma set mark a at cursor position
"aY yank current line into register a
Hmb go to top line in window and set mark b there
gg go to first line in file
"aP put the yanked line above it
`b go back to top line in display
zt position the text in the window as before
`a go back to saved cursor position
TODO
==============================================================================

View File

@ -1,4 +1,4 @@
*usr_51.txt* For Vim version 8.2. Last change: 2022 May 13
*usr_51.txt* For Vim version 8.2. Last change: 2022 Jun 03
VIM USER MANUAL - by Bram Moolenaar
@ -12,11 +12,9 @@ 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
|51.4| Distributing Vim scripts
Next chapter: |usr_52.txt| Write plugins using Vim9 script
Next chapter: |usr_52.txt| Write large plugins
Previous chapter: |usr_50.txt| Advanced Vim script writing
Table of contents: |usr_toc.txt|
@ -36,6 +34,9 @@ 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|.
We will use |Vim9| syntax here, the recommended way to write new plugins.
Make sure the file starts with the `vim9script` command.
NAME
@ -55,11 +56,11 @@ 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
12 iabbrev teh the
13 iabbrev otehr other
14 iabbrev wnat want
15 iabbrev synchronisation
16 \ synchronization
The actual list should be much longer, of course.
@ -98,28 +99,6 @@ 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
@ -153,7 +132,7 @@ 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;
20 map <unique> <Leader>a <Plug>TypecorrAdd;
The "<Plug>TypecorrAdd;" thing will do the work, more about that further on.
@ -171,9 +150,9 @@ 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
19 if !hasmapto('<Plug>TypecorrAdd;')
20 map <unique> <Leader>a <Plug>TypecorrAdd;
21 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
@ -196,11 +175,11 @@ 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
28 def Add(from: string, correct: bool)
29 var to = input($"type the correction for {from}: ")
30 exe $":iabbrev {from} {to}"
...
34 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
@ -210,9 +189,9 @@ 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>
22 noremap <unique> <script> <Plug>TypecorrAdd; <SID>Add
...
26 noremap <SID>Add :call <SID>Add(expand("<cword>"), true)<CR>
Thus when a user types "\a", this sequence is invoked: >
@ -232,7 +211,7 @@ 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
24 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
@ -276,9 +255,9 @@ 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
36 if !exists(":Correct")
37 command -nargs=1 Correct :call Add(<q-args>, false)
38 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
@ -299,20 +278,21 @@ 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.
functions in the script can also use the script variables without a prefix
(they must be declared before the function for this to work).
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
17 var count = 4
...
28 def Add(from: string, correct: bool)
...
32 count += 1
33 echo "you now have " .. count .. " corrections"
34 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
@ -334,40 +314,36 @@ Here is the resulting complete example: >
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
11
12 iabbrev teh the
13 iabbrev otehr other
14 iabbrev wnat want
15 iabbrev synchronisation
16 \ synchronization
17 var count = 4
18
19 if !hasmapto('<Plug>TypecorrAdd;')
20 map <unique> <Leader>a <Plug>TypecorrAdd;
21 endif
22 noremap <unique> <script> <Plug>TypecorrAdd; <SID>Add
23
24 noremenu <script> Plugin.Add\ Correction <SID>Add
25
26 noremenu <script> Plugin.Add\ Correction <SID>Add
26 noremap <SID>Add :call <SID>Add(expand("<cword>"), true)<CR>
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
28 def Add(from: string, correct: bool)
29 var to = input("type the correction for " .. from .. ": ")
30 exe ":iabbrev " .. from .. " " .. to
31 if correct | exe "normal viws\<C-R>\" \b\e" | endif
32 count += 1
33 echo "you now have " .. count .. " corrections"
34 enddef
35
36 if !exists(":Correct")
37 command -nargs=1 Correct call Add(<q-args>, false)
38 endif
Line 33 wasn't explained yet. It applies the new correction to the word under
Line 31 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".
@ -413,24 +389,6 @@ 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:
@ -497,7 +455,7 @@ you can write the different setting in a script: >
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.
"b:did_ftplugin", it is ignored here.
OPTIONS
@ -591,6 +549,9 @@ This construct makes sure the function is only defined once: >
enddef
endif
<
Don't forget to use "noclear" with the `vim9script` command to avoid that the
function is deleted when the script is sourced a second time.
UNDO *undo_indent* *undo_ftplugin*
@ -598,15 +559,12 @@ 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<"
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.
@ -625,6 +583,24 @@ these three forms:
"stuff" is the filetype, "foo" and "bar" are arbitrary names.
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 *ftplugin-special*
Summary of special things to use in a filetype plugin:
@ -693,149 +669,7 @@ 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*
*51.4* 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!
@ -855,6 +689,6 @@ 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
Next chapter: |usr_52.txt| Write large plugins
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,25 +1,25 @@
*usr_52.txt* For Vim version 8.2. Last change: 2022 May 13
*usr_52.txt* For Vim version 8.2. Last change: 2022 Jun 04
VIM USER MANUAL - by Bram Moolenaar
Write plugins using Vim9 script
Write larger plugins
When plugins do more than simple things, they tend to grow big. This file
explains how to make sure they still load fast and how to split them up in
smaller parts.
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.
|52.1| Introduction
|52.2| Variable declarations
|52.3| Functions and types
|52.4| Using a Vim9 script from legacy script
|52.1| Export and import
|52.2| Autoloading
|52.3| Autoloading without import/export
|52.4| Other mechanisms to use
|52.5| Using a Vim9 script from legacy script
Next chapter: |usr_90.txt| Installing Vim
Previous chapter: |usr_51.txt| Create a plugin
Table of contents: |usr_toc.txt|
==============================================================================
*52.1* Introduction *vim9-script-intro*
*52.1* Export and import
Vim9 script was designed to make it easier to write large Vim scripts. It
looks more like other script languages, especially Typescript. Also,
@ -27,153 +27,302 @@ functions are compiled into instructions that can be executed quickly. This
makes Vim9 script a lot faster, up to a 100 times.
The basic idea is that a script file has items that are private, only used
inside the script file, and items that are exported, used outside of the
script file. The exported items can then be used by scripts that import them.
That makes very clear what is defined where.
inside the script file, and items that are exported, which can be used by
scripts that import them. That makes very clear what is defined where.
Let's start with an example, a script that exports one function and has one
private function: >
vim9script " This indicates a Vim9 script file.
vim9script
export def GetMessage(): string
let result = ''
...
result = GetPart(count)
...
export def GetMessage(count: string): string
var nr = str2nr(count)
var result = $'To {nr} we say '
result ..= GetReply(nr)
return result
enddef
def GetPart(nr: number): string
if nr == 4
def GetReply(nr: number): string
if nr == 42
return 'yes'
elseif nr = 22
return 'maybe'
else
return 'no'
endif
enddef
The `vim9script` command must be the very first command in the file. Without
it Vim will assume legacy script syntax.
The `vim9script` command is required, `export` only works in a |Vim9| script.
The `export def GetMessage(): string` line starts with `export`, meaning that
this function can be imported and called by other scripts. The line
`def GetPart(...` does not start with `export`, this is a script-local
function, it can only be used inside this script file.
The `export def GetMessage(...` line starts with `export`, meaning that this
function can be called by other scripts. The line `def GetReply(...` does not
start with `export`, this is a script-local function, it can only be used
inside this script file.
In the `export def GetMessage(): string` line you will notice the colon and
the return type. Vim9 functions, defined with `def`, require specifying the
type of arguments and the return type. That way Vim can compile the code
efficiently. The GetPart function defines an argument "nr" of type "number".
Now about the script where this is imported. In this example we use this
layout, which works well for a plugin below the "pack" directory:
.../plugin/theplugin.vim
.../lib/getmessage.vim
Notice that the assignment `result = GetPart(count)` does not use the `let`
command. That is explained in the next section.
Assuming the "..." directory has been added to 'runtimepath', Vim will look
for plugins in the "plugin" directory and source "theplugin.vim". Vim does
not recognize the "lib" directory, you can put any scripts there.
The above script that exports GetMessage() goes in lib/getmessage.vim. The
GetMessage() function is used in plugin/theplugin.vim: >
vim9script
import "../lib/getmessage.vim"
command -nargs=1 ShowMessage echomsg getmessage.GetMessage(<f-args>)
The `import` command uses a relative path, it starts with "../", which means
to go one directory up. For other kinds of paths see the `:import` command.
How we can try out the command that the plugin provides: >
ShowMessage 1
< To 1 we say no ~
>
ShowMessage 22
< To 22 we say maybe ~
Notice that the function GetMessage() is prefixed with the imported script
name "getmessage". That way, for every imported function used, you know what
script it was imported from. If you import several scripts each of them could
define a GetMessage() function: >
vim9script
import "../lib/getmessage.vim"
import "../lib/getother.vim"
command -nargs=1 ShowMessage echomsg getmessage.GetMessage(<f-args>)
command -nargs=1 ShowOther echomsg getother.GetMessage(<f-args>)
If the imported script name is long or you use it in many places, you can
shorten it by adding an "as" argument: >
import "../lib/getmessage.vim" as msg
command -nargs=1 ShowMessage echomsg msg.GetMessage(<f-args>)
RELOADING
One thing to keep in mind: the imported "lib/getmessage.vim" script will be
sourced only once. When it is imported a second time sourcing it will be
skipped, since the items in it have already been created. It does not matter
if this import command is in another script, or in the same script that is
sourced again.
This is efficient when using a plugin, but when still developing a plugin it
means that changing "lib/getmessage.vim" after it has been imported will have
no effect. You need to quit Vim and start it again. (Rationale: the items
defined in the script could be used in a compiled function, sourcing the
script again may break those functions).
USING GLOBALS
Sometimes you will want to use global variables or functions, so that they can
be used anywhere. A good example is a global variable that passes a
preference to a plugin. To avoid other scripts using the same name, use a
prefix that is very unlikely to be used elsewhere. For example, if you have a
"mytags" plugin, you could use: >
g:mytags_location = '$HOME/project'
g:mytags_style = 'fast'
==============================================================================
*52.2* Variable declarations *vim9-declarations*
*52.2* Autoloading
In Vim9 script variables are declared once with a `:let` or `:const` command.
Assigning a value is done without `:let` and it is not possible to `:unlet`
the variable.
After splitting your large script into pieces, all the lines will still be
loaded and executed the moment the script is used. Every `import` loads the
imported script to find the items defined there. Although that is good for
finding errors early, it also takes time. Which is wasted if the
functionality is not often used.
In most cases you will want to declare the variable and initialize it at the
same time: >
let myText = 'some text'
...
myText = 'other text'
Instead of having `import` load the script immediately, it can be postponed
until needed. Using the example above, only one change needs to be made in
the plugin/theplugin.vim script: >
import autoload "../lib/getmessage.vim"
The type of the variable will be inferred from the expression. In this case
it is a string. If you initialize with a number, then the type is number: >
let myNumber = 1234
...
myNumber = 0
Nothing in the rest of the script needs to change. However, the types will
not be checked. Not even the existence of the GetMessage() function is
checked until it is used. You will have to decide what is more important for
your script: fast startup or getting errors early. You can also add the
"autoload" argument later, after you have checked everything works.
If you try to assign a string to this variable, you will get an error: >
let myNumber = 'this fails!'
In the rare case you want a variable that can take values of any type, you
have to specify the type: >
let myVar: any = 1234
myVar = 'text also works'
AUTOLOAD DIRECTORY
You can also declare a variable without assigning a value. In that case Vim
will initialize it to zero or empty: >
let word: string
if condition
word = 'yes'
else
word = 'no'
Another form is to use autoload with a script name that is not an absolute or
relative path: >
import autload "monthlib.vim"
This will search for the script "monthlib.vim" in the autoload directories of
'runtimepath'. With Unix one of the directories often is "~/.vim/autoload".
The main advantage of this is that this script can be easily shared with other
scripts. You do need to make sure that the script name is unique, since Vim
will search all the "autoload" directories in 'runtimepath', and if you are
using several plugins with a plugin manager, it may add a directory to
'runtimepath', each of which might have an "autoload" directory.
Without autoload: >
import "monthlib.vim"
Vim will search for the script "monthlib.vim" in the import directories of
'runtimepath'. Note that in this case adding or removing "autoload" changes
where the script is found. With a relative or absolute path the location does
not change.
==============================================================================
*52.3* Autoloading without import/export
*write-library-script*
A mechanism from before import/export is still useful and some users may find
it a bit simpler. The idea is that you call a function with a special name.
That function is then in an autoload script. We will call that one script a
library script.
The autoload mechanism is based on a funtion name that has "#" characters: >
mylib#myfunction(arg)
Vim will recognize the function name by the embedded "#" character and when
it is not defined yet search for the script "autoload/mylib.vim" in
'runtimepath'. That script must define the "mylib#myfunction()" function.
Obviously the name "mylib" is the part before the "#" and is used as the name
of the script, adding ".vim".
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. This is where it differs from the import/export
mechanism.
If you get really enthusiastic and write lots of library scripts, you may
want to use subdirectories. Example: >
netlib#ftp#read('somefile')
Here the script name is taken from the function name up to the last "#". The
"#" in the middle are replaced by a slash, the last one by ".vim". Thus you
get "netlib/ftp.vim". 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|.
==============================================================================
*52.4* Other mechanisms to use
Some may find the use of several files a hassle and prefer to keep everything
together in one script. To avoid this resulting in slow startup there is a
mechanism that only defines a small part and postpones the rest to when it is
actually used. *write-plugin-quickload*
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. This works differently from the
|autoload| functionality explained above.
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
Although it's shorter to do: >
let word = condition ? 'yes' : 'no'
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.
==============================================================================
*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
unexpected value instead of reporting an error. Thus you can define a
function and think it's fine, but see a problem only later when it is called: >
let s:collected = ''
func ExtendAndReturn(add)
let s:collected += a:add
return s:collected
endfunc
Can you spot the error? Try this: >
echo ExtendAndReturn('text')
And you'll see zero. Why? Because in legacy Vim script "+=" will convert the
arguments to numbers, and any string without a number results in zero!
With `:def` the type checking happens when compiling the function. For that
you need to specify the argument types and the return type. Also notice that
the argument is used without the "a:" prefix: >
let s:collected = ''
def ExtendAndReturn(add: string): string
s:collected += add
return s:collected
enddef
defcompile
Here we use `:defcompile` to do the compilation right away, without it the
compilation would happen when the function is called. Vim will tell you what
you did wrong: >
E1013: type mismatch, expected number but got string
Vim9 script is strict, it uses the "+" operator only for numbers and floats.
For string concatenation ".." must be used. This avoids mistakes and avoids
the automatic conversion that gave a surprising result above. So you change
the first line of the function to: >
s:collected ..= add
And now it works.
If the function does not return anything, just leave out the return type: >
def ReportResult(result: string)
echo 'The result is: ' .. result
enddef
This is also checked, if you try to return a value you'll get an error.
In case you don't care about types or have a function that does work with
multiple types, you can use the "any" type: >
def Store(key: string, value: any)
resultDict[key] = value
enddef
==============================================================================
*52.4* Using a Vim9 script from legacy script *source-vim9-script*
*52.5* Using a Vim9 script from legacy script *source-vim9-script*
In some cases you have a legacy Vim script where you want to use items from a
Vim9 script. For example in your .vimrc you want to initialize a plugin. The
best way to do this is to use `:import`. For example: >
import Init as NiceInit from 'myNicePlugin.vim'
call NiceInit('today')
import 'myNicePlugin.vim'
call myNicePlugin.NiceInit('today')
This finds the exported function "Init" in the Vim9 script file and makes it
available as script-local item "NiceInit". `:import` always uses the script
namespace, even when "s:" is not given. If "myNicePlugin.vim" was already
sourced it is not sourced again.
This finds the exported function "NiceInit" in the Vim9 script file and makes
it available as script-local item "myNicePlugin.NiceInit". `:import` always
uses the script namespace, even when "s:" is not given. If "myNicePlugin.vim"
was already sourced it is not sourced again.
Besides avoiding putting any items in the global namespace (where name clashes
can cause unexpected errors), this also means the script is sourced only once,
@ -189,4 +338,5 @@ will have to make sure to use a unique name for these global items. Example: >
Next chapter: |usr_90.txt| Installing Vim
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*usr_toc.txt* For Vim version 8.2. Last change: 2022 May 13
*usr_toc.txt* For Vim version 8.2. Last change: 2022 Jun 03
VIM USER MANUAL - by Bram Moolenaar
@ -304,8 +304,10 @@ Make Vim work as you like it.
|41.6| Using functions
|41.7| Defining a function
|41.8| Lists and Dictionaries
|41.9| Exceptions
|41.10| Various remarks
|41.9| White space
|41.10| Line continuation
|41.11| Comments
|41.12| Fileformat
|usr_42.txt| Add new menus
|42.1| Introduction
@ -341,21 +343,23 @@ Make Vim work as you like it.
==============================================================================
Writing Vim script ~
|usr_50.txt| TODO
|usr_50.txt| Advanced Vim script writing
|50.1| Exceptions
|50.2| Function with variable number of arguments
|50.3| Restoring the view
|usr_51.txt| Write 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
|51.4| Distributing Vim scripts
|usr_52.txt| Write plugins using Vim9 script
|52.1| Introduction
|52.2| Variable declarations
|52.3| Functions and types
|52.4| Using a Vim9 script from legacy script
|usr_52.txt| Write larger plugins
|52.1| Export and import
|52.2| Autoloading
|52.3| Autoloading without import/export
|52.4| Other mechanisms to use
|52.5| Using a Vim9 script from legacy script
==============================================================================
Making Vim Run ~

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 8.2. Last change: 2022 Apr 03
*various.txt* For Vim version 8.2. Last change: 2022 May 21
VIM REFERENCE MANUAL by Bram Moolenaar
@ -346,7 +346,7 @@ B *++builtin_terms* maximal terminals builtin |builtin-terms|
N *+byte_offset* support for 'o' flag in 'statusline' option, "go"
and ":goto" commands.
m *+channel* inter process communication |channel|
N *+cindent* |'cindent'|, C indenting
6 *+cindent* |'cindent'|, C indenting
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
*+clipboard* |clipboard| support compiled-in
*+clipboard_working* |clipboard| support compiled-in and working
@ -398,7 +398,7 @@ N *+lambda* |lambda| and |closure|
B *+langmap* |'langmap'|
N *+libcall* |libcall()|
N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'|
N *+lispindent* |'lisp'|
t *+lispindent* |'lisp'|
T *+listcmds* Vim commands for the list of buffers |buffer-hidden|
and argument list |:argdelete|
T *+localmap* Support for mappings local to a buffer |:map-local|
@ -450,7 +450,7 @@ m *+ruby* Ruby interface |ruby|
m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn|
T *+scrollbind* |'scrollbind'|
B *+signs* |:sign|
N *+smartindent* |'smartindent'|
t *+smartindent* |'smartindent'|
B *+sodium* compiled with libsodium for better encryption support
B *+sound* |sound_playevent()|, |sound_playfile()| functions, etc.
N *+spell* spell checking support, see |spell|

View File

@ -1,4 +1,4 @@
*vim9.txt* For Vim version 8.2. Last change: 2022 May 13
*vim9.txt* For Vim version 8.2. Last change: 2022 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -86,7 +86,7 @@ script and `:def` functions; details are below:
var count = 0
count += 3
- Constants can be declared with `:final` and `:const`: >
final matches = [] # add matches
final matches = [] # add to the list later
const names = ['Betty', 'Peter'] # cannot be changed
- `:final` cannot be used as an abbreviation of `:finally`.
- Variables and functions are script-local by default.
@ -177,12 +177,12 @@ created yet. In this case you can call `execute()` to invoke it at runtime. >
`:def` has no options like `:function` does: "range", "abort", "dict" or
"closure". A `:def` function always aborts on an error (unless `:silent!` was
used for the command or the error was caught a `:try` block), does not get a
range passed cannot be a "dict" function, and can always be a closure.
range passed, cannot be a "dict" function, and can always be a closure.
*vim9-no-dict-function*
Later classes will be added, which replaces the "dict function" mechanism.
For now you will need to pass the dictionary explicitly: >
def DictFunc(d: dict<any>, arg: string)
echo d[arg]
def DictFunc(self: dict<any>, arg: string)
echo self[arg]
enddef
var ad = {item: 'value', func: DictFunc}
ad.func(ad, 'item')
@ -223,7 +223,7 @@ The argument "_" (an underscore) can be used to ignore the argument. This is
most useful in callbacks where you don't need it, but do need to give an
argument to match the call. E.g. when using map() two arguments are passed,
the key and the value, to ignore the key: >
map(myList, (_, v) => v * 2)
map(numberList, (_, v) => v * 2)
There is no error for using the "_" argument multiple times. No type needs to
be given.
@ -234,7 +234,7 @@ When using `:function` or `:def` to specify a new function at the script level
in a Vim9 script, the function is local to the script. Like prefixing "s:" in
legacy script. To define a global function or variable the "g:" prefix must
be used. For functions in a script that is to be imported and in an autoload
script "export" needs to be used. >
script "export" needs to be used for those to be used elsewhere. >
def ThisFunction() # script-local
def g:ThatFunction() # global
export def Function() # for import and import autoload
@ -250,13 +250,20 @@ argument, pass the function reference itself: >
var Fok = function(Inner) # OK
var Fbad = function('Inner') # does not work
It is not possible to define a script-local function. It is possible to
define a global function by using the "g:" prefix.
Detail: this is because "Inner" will actually become a function reference to a
function with a generated name.
It is not possible to define a script-local function in a function. You can
define a local function and assign it to a script-local funcref (it must have
been declared at the script level). It is possible to define a global
function by using the "g:" prefix.
When referring to a function and no "s:" or "g:" prefix is used, Vim will
search for the function:
- in the function scope, in block scopes
- in the script scope, possibly imported
- in the script scope
Imported functions are found with the prefix from the `:import` command.
Since a script-local function reference can be used without "s:" the name must
start with an upper case letter even when using the "s:" prefix. In legacy
@ -272,6 +279,7 @@ variables and functions in a legacy script do use "s:", while in a Vim9 script
they do not use "s:". This matches what you see in the rest of the file.
In legacy functions the use of "s:" for script items is required, as before.
No matter if the script is Vim9 or legacy.
In all cases the function must be defined before used. That is when it is
called, when `:defcompile` causes it to be compiled, or when code that calls
@ -279,11 +287,13 @@ it is being compiled (to figure out the return type).
The result is that functions and variables without a namespace can usually be
found in the script, either defined there or imported. Global functions and
variables could be defined anywhere (good luck finding out where!).
variables could be defined anywhere (good luck finding out where! You can
often see where it was last set using |:verbose|).
*E1102*
Global functions can still be defined and deleted at nearly any time. In
Vim9 script script-local functions are defined once when the script is sourced
and cannot be deleted or replaced.
and cannot be deleted or replaced by itself (it can be by reloading the
script).
When compiling a function and a function call is encountered for a function
that is not (yet) defined, the |FuncUndefined| autocommand is not triggered.
@ -350,6 +360,13 @@ The declaration must be done earlier: >
inner = 0
endif
echo inner
Although this is shorter and faster for simple values: >
var inner = 0
if cond
inner = 5
endif
echo inner
< *E1025* *E1128*
To intentionally hide a variable from code that follows, a block can be
used: >
@ -1210,7 +1227,14 @@ prefix if they do not exist at the time of compiling.
*:defc* *:defcompile*
:defc[ompile] Compile functions defined in the current script that
were not compiled yet.
This will report errors found during the compilation.
This will report any errors found during compilation.
:defc[ompile] {func}
:defc[ompile] debug {func}
:defc[ompile] profile {func}
Compile function {func}, if needed. Use "debug" and
"profile" to specify the compilation mode.
This will report any errors found during compilation.
*:disa* *:disassemble*
:disa[ssemble] {func} Show the instructions generated for {func}.
@ -1588,7 +1612,7 @@ and cannot be accessed by the importing script.
This mechanism exists for writing a script that can be sourced (imported) by
other scripts, while making sure these other scripts only have access to what
you want them to. This also avoids using the global namespace, which has a
risc of name collisions. For example when you have two plugins with similar
risk of name collisions. For example when you have two plugins with similar
functionality.
You can cheat by using the global namespace explicitly. That should be done
@ -1734,7 +1758,9 @@ used: >
When the mapping is defined "<SID>name." will be replaced with <SNR> and the
script ID of the imported script.
An even simpler solution is using |<ScriptCmd>|: >
noremap ,a <ScriptCmd>name.Function()<CR>
<
*:import-cycle*
The `import` commands are executed when encountered. If script A imports
script B, and B (directly or indirectly) imports A, this will be skipped over.
@ -1938,13 +1964,14 @@ We can also remove clutter, mainly things that were done to make Vim script
backwards compatible with the good old Vi commands.
Examples:
- Drop `:call` for calling a function and `:eval` for manipulating data.
- Drop `:call` for calling a function and `:eval` for evaluating an
expression.
- Drop using a leading backslash for line continuation, automatically figure
out where an expression ends.
However, this does require that some things need to change:
- Comments start with # instead of ", to avoid confusing them with strings.
This is good anyway, it is known from several popular languages.
This is good anyway, it is also used by several popular languages.
- Ex command ranges need to be prefixed with a colon, to avoid confusion with
expressions (single quote can be a string or a mark, "/" can be divide or a
search command, etc.).
@ -2074,12 +2101,13 @@ values are accepted:
false: `false`, `v:false`, `0`, `0 > 9`
Note that the number zero is false and the number one is true. This is more
permissive than most other languages. It was done because many builtin
functions return these values.
functions return these values, and changing that causes more problems than it
solves. After using this for a while it turned out to work well.
If you have any type of value and want to use it as a boolean, use the `!!`
operator:
true: `!!'text'`, `!![99]`, `!!{'x': 1}`, `!!99`
false: `!!''`, `!![]`, `!!{}`
true: `!!'text'` `!![99]` `!!{'x': 1}` `!!99`
false: `!!''` `!![]` `!!{}`
From a language like JavaScript we have this handy construct: >
GetName() || 'unknown'
@ -2101,19 +2129,20 @@ In Vim9 script a mechanism very similar to the JavaScript import and export
mechanism is supported. It is a variant to the existing `:source` command
that works like one would expect:
- Instead of making everything global by default, everything is script-local,
unless exported.
some of these are exported.
- When importing a script the symbols that are imported are explicitly listed,
avoiding name conflicts and failures if functionality is added later.
- The mechanism allows for writing a big, long script with a very clear API:
the exported function(s) and class(es).
the exported functions, variables and classes.
- By using relative paths loading can be much faster for an import inside of a
package, no need to search many directories.
- Once an import has been used, it can be cached and loading it again can be
avoided.
- Once an import has been used, its items are cached and loading it again is
not needed.
- The Vim-specific use of "s:" to make things script-local can be dropped.
When sourcing a Vim9 script from a legacy script, only the items defined
globally can be used, not the exported items. Alternatives considered:
When sourcing a Vim9 script (from a Vim9 or legacy script), only the items
defined globally can be used, not the exported items. Alternatives
considered:
- All the exported items become available as script-local items. This makes
it uncontrollable what items get defined and likely soon leads to trouble.
- Use the exported items and make them global. Disadvantage is that it's then
@ -2121,7 +2150,7 @@ globally can be used, not the exported items. Alternatives considered:
- Completely disallow sourcing a Vim9 script, require using `:import`. That
makes it difficult to use scripts for testing, or sourcing them from the
command line to try them out.
Note that you can also use `:import` in legacy Vim script, see above.
Note that you CAN also use `:import` in legacy Vim script, see above.
Compiling functions early ~
@ -2139,17 +2168,17 @@ figure out their type, so that forward references are found, and only then
execute the script and compile the functions. This means the script has to be
parsed twice, which is slower, and some conditions at the script level, such
as checking if a feature is supported, are hard to use. An attempt was made
to see if it works, but it turned out to be impossible to make work nicely.
to see if it works, but it turned out to be impossible to make work well.
It would be possible to compile all the functions at the end of the script.
The drawback is that if a function never gets called, the overhead of
compiling it counts anyway. Since startup speed is very important, in most
cases it's better to do it later and accept that syntax and type errors are
only reported then. In case these errors should be found early, e.g. when
testing, the `:defcompile` command will help out.
testing, a `:defcompile` command at the end of the script will help out.
Why not use an embedded language? ~
Why not use an existing embedded language? ~
Vim supports interfaces to Perl, Python, Lua, Tcl and a few others. But
these interfaces have never become widely used, for various reasons. When
@ -2158,8 +2187,8 @@ and concentrate on Vim script.
Still, plugin writers may find other languages more familiar, want to use
existing libraries or see a performance benefit. We encourage plugin authors
to write code in any language and run it as an external tool, using jobs and
channels. We can try to make this easier somehow.
to write code in any language and run it as an external process, using jobs
and channels. We can try to make this easier somehow.
Using an external tool also has disadvantages. An alternative is to convert
the tool into Vim script. For that to be possible without too much
@ -2175,9 +2204,10 @@ dictionary. With some care this can be made to work, but it does not look
like real classes. On top of that, it's quite slow, because of the use of
dictionaries.
The support of classes in Vim9 script is a "minimal common functionality" of
class support in most languages. It works much like Java, which is the most
popular programming language.
It would be good to support real classes, and this is planned for a later
version. The support is a "minimal common functionality" of class support in
most languages. It will work much like Java, which is the most popular
programming language.

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Apr 25
" Last Change: 2022 Jun 03
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@ -409,7 +409,7 @@ au BufNewFile,BufRead *.cu,*.cuh setf cuda
" Dockerfile; Podman uses the same syntax with name Containerfile
" Also see Dockerfile.* below.
au BufNewFile,BufRead Containerfile,Dockerfile,*.Dockerfile setf dockerfile
au BufNewFile,BufRead Containerfile,Dockerfile,dockerfile,*.[dD]ockerfile setf dockerfile
" WildPackets EtherPeek Decoder
au BufNewFile,BufRead *.dcd setf dcd
@ -819,6 +819,9 @@ au BufNewFile,BufRead *.hjson setf hjson
" Hollywood
au BufRead,BufNewFile *.hws setf hollywood
" Hoon
au BufRead,BufNewFile *.hoon setf hoon
" Tilde (must be before HTML)
au BufNewFile,BufRead *.t.html setf tilde
@ -1172,6 +1175,9 @@ au BufNewFile,BufRead *.isc,*.monk,*.ssc,*.tsc setf monk
" MOO
au BufNewFile,BufRead *.moo setf moo
" Moonscript
au BufNewFile,BufRead *.moon setf moonscript
" Modconf
au BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf modconf
@ -1284,25 +1290,25 @@ au BufNewFile,BufRead opam,*.opam,*.opam.template setf opam
au BufNewFile,BufRead [a-zA-Z0-9]*Dict\(.*\)\=,[a-zA-Z]*Properties\(.*\)\=,*Transport\(.*\),fvSchemes,fvSolution,fvConstrains,fvModels,*/constant/g,*/0\(\.orig\)\=/* call dist#ft#FTfoam()
" OpenROAD
au BufNewFile,BufRead *.or setf openroad
au BufNewFile,BufRead *.or setf openroad
" OPL
au BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl
au BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl
" OpenSCAD
au BufNewFile,BufRead *.scad setf openscad
au BufNewFile,BufRead *.scad setf openscad
" Oracle config file
au BufNewFile,BufRead *.ora setf ora
au BufNewFile,BufRead *.ora setf ora
" Org
au BufNewFile,BufRead *.org,*.org_archive setf org
au BufNewFile,BufRead *.org,*.org_archive setf org
" Packet filter conf
au BufNewFile,BufRead pf.conf setf pf
au BufNewFile,BufRead pf.conf setf pf
" Pacman config
au BufNewFile,BufRead */etc/pacman.conf setf conf
" ini style config files, using # comments
au BufNewFile,BufRead */etc/pacman.conf,mpv.conf setf confini
" Pacman hooks
au BufNewFile,BufRead *.hook
@ -1317,36 +1323,36 @@ au BufNewFile,BufRead */etc/pam.conf setf pamconf
au BufNewFile,BufRead pam_env.conf,.pam_environment setf pamenv
" PApp
au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp
au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp
" Password file
au BufNewFile,BufRead */etc/passwd,*/etc/passwd-,*/etc/passwd.edit,*/etc/shadow,*/etc/shadow-,*/etc/shadow.edit,*/var/backups/passwd.bak,*/var/backups/shadow.bak setf passwd
" Pascal (also *.p, *.pp, *.inc)
au BufNewFile,BufRead *.pas setf pascal
au BufNewFile,BufRead *.pas setf pascal
" Pascal or Puppet manifest
au BufNewFile,BufRead *.pp call dist#ft#FTpp()
au BufNewFile,BufRead *.pp call dist#ft#FTpp()
" Delphi or Lazarus program file
au BufNewFile,BufRead *.dpr,*.lpr setf pascal
au BufNewFile,BufRead *.dpr,*.lpr setf pascal
" Free Pascal makefile definition file
au BufNewFile,BufRead *.fpc setf fpcmake
au BufNewFile,BufRead *.fpc setf fpcmake
" PDF
au BufNewFile,BufRead *.pdf setf pdf
au BufNewFile,BufRead *.pdf setf pdf
" PCMK - HAE - crm configure edit
au BufNewFile,BufRead *.pcmk setf pcmk
au BufNewFile,BufRead *.pcmk setf pcmk
" Perl
if has("fname_case")
au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl()
au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl()
else
au BufNewFile,BufRead *.pl call dist#ft#FTpl()
au BufNewFile,BufRead *.pl call dist#ft#FTpl()
endif
au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl
au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl
" Perl, XPM or XPM2
au BufNewFile,BufRead *.pm

View File

@ -0,0 +1,10 @@
" Vim filetype plugin file
" Language: confini
" Quit if a ftplugin file was already loaded
if exists("b:did_ftplugin")
finish
endif
" Use the cfg plugin, it's similar enough.
runtime! ftplugin/cfg.vim

View File

@ -1,29 +1,43 @@
" Vim filetype plugin file
" Language: C#
" Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Tue, 09 Mar 2004 14:09:33 CET
" Language: C#
" Maintainer: Nick Jensen <nickspoon@gmail.com>
" Former Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: 2021-12-07
" License: Vim (see :h license)
" Repository: https://github.com/nickspoons/vim-cs
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
if exists('b:did_ftplugin')
finish
endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
let s:keepcpo= &cpo
set cpo&vim
let s:save_cpo = &cpoptions
set cpoptions&vim
" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql
setlocal formatoptions-=t formatoptions+=croql
" Set 'comments' to format dashed lists in comments.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "C# Source Files (*.cs)\t*.cs\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin = 'setl com< fo<'
if exists('loaded_matchit') && !exists('b:match_words')
" #if/#endif support included by default
let b:match_words = '\%(^\s*\)\@<=#\s*region\>:\%(^\s*\)\@<=#\s*endregion\>,'
let b:undo_ftplugin .= ' | unlet! b:match_words'
endif
let &cpo = s:keepcpo
unlet s:keepcpo
if (has('gui_win32') || has('gui_gtk')) && !exists('b:browsefilter')
let b:browsefilter = "C# Source Files (*.cs *.csx)\t*.cs;*.csx\n" .
\ "C# Project Files (*.csproj)\t*.csproj\n" .
\ "Visual Studio Solution Files (*.sln)\t*.sln\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
endif
let &cpoptions = s:save_cpo
unlet s:save_cpo
" vim:et:sw=2:sts=2

View File

@ -1,6 +1,6 @@
" Vim settings file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66)
" Version: (v53) 2021 April 06
" Version: (v53) 2021 April 06 (updated 2022 May 22)
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-plugin from Vim
" Credits:
@ -105,12 +105,13 @@ if !exists("b:match_words")
let s:notselect = '\%(\<select\s\+\)\@<!'
let s:notelse = '\%(\<end\s\+\|\<else\s\+\)\@<!'
let s:notprocedure = '\%(\s\+procedure\>\)\@!'
let s:nothash = '\%(^\s*#\s*\)\@<!'
let b:match_ignorecase = 1
let b:match_words =
\ '(:),' .
\ '\<select\s*case\>:' . s:notselect. '\<case\>:\<end\s*select\>,' .
\ s:notelse . '\<if\s*(.\+)\s*then\>:' .
\ '\<else\s*\%(if\s*(.\+)\s*then\)\=\>:\<end\s*if\>,'.
\ s:nothash . '\<else\s*\%(if\s*(.\+)\s*then\)\=\>:' . s:nothash . '\<end\s*if\>,'.
\ 'do\s\+\(\d\+\):\%(^\s*\)\@<=\1\s,'.
\ s:notend . '\<do\>:\<end\s*do\>,'.
\ s:notelse . '\<where\>:\<elsewhere\>:\<end\s*where\>,'.
@ -122,7 +123,8 @@ if !exists("b:match_words")
\ s:notend . '\<subroutine\>:\<end\s*subroutine\>,'.
\ s:notend . '\<function\>:\<end\s*function\>,'.
\ s:notend . '\<module\>' . s:notprocedure . ':\<end\s*module\>,'.
\ s:notend . '\<program\>:\<end\s*program\>'
\ s:notend . '\<program\>:\<end\s*program\>,'.
\ '\%(^\s*\)\@<=#\s*if\%(def\|ndef\)\=\>:\%(^\s*\)\@<=#\s*\%(elif\|else\)\>:\%(^\s*\)\@<=#\s*endif\>'
endif
" File filters for :browse e

View File

@ -1,21 +1,20 @@
" Vim filetype plugin file
" Language: Modula-3 Makefile
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2021 April 15
" Last Change: 2022 June 12
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
runtime! ftplugin/m3quake.vim
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Modula-3 Makefile (m3makefile m3overrides)\tm3makefile;m3overrides\n" ..
\ "All Files (*.*)\t*.*\n"
if (has("gui_win32") || has("gui_gtk")) && exists("b:m3quake_set_browsefilter")
let b:browsefilter = "Modula-3 Makefile (m3makefile m3overrides)\tm3makefile;m3overrides\n" ..
\ "All Files (*.*)\t*.*\n"
endif
let &cpo = s:cpo_save

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Modula-3 Quake
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2021 April 15
" Last Change: 2022 June 12
if exists("b:did_ftplugin")
finish
@ -15,18 +15,20 @@ setlocal comments=s1:/*,mb:*,ex:*/,:%
setlocal commentstring=%\ %s
setlocal formatoptions-=t formatoptions+=croql
let b:undo_ftplugin = "setl fo< com< cms<"
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_words = '\<\%(proc\|if\|foreach\)\>:\<else\>:\<end\>'
let b:undo_ftplugin ..= " | unlet! b:match_words"
endif
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Modula-3 Quake Source Files (*.quake)\t*.quake\n" ..
\ "All Files (*.*)\t*.*\n"
let b:m3quake_set_browsefilter = 1
let b:undo_ftplugin ..= " | unlet! b:browsefilter b:m3quake_set_browsefilter"
endif
let b:undo_ftplugin = "setl fo< com< cms< " ..
\ "| unlet! b:browsefilter b:match_words"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Modula-3
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2021 Apr 08
" Last Change: 2022 June 12
if exists("b:did_ftplugin")
finish
@ -14,24 +14,28 @@ set cpo&vim
setlocal comments=s0:(*,mb:\ ,ex:*)
setlocal commentstring=(*%s*)
setlocal formatoptions-=t formatoptions+=croql
setlocal suffixesadd+=.m3
setlocal formatprg=m3pp
let b:undo_ftplugin = "setlocal com< cms< fo< fp< sua<"
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_words = '\<REPEAT\>:\<UNTIL\>,' ..
\ '\<\%(BEGIN\|CASE\|FOR\|IF\|LOCK\|LOOP\|TRY\|TYPECASE\|WHILE\|WITH\)\>' ..
\ '\<\%(BEGIN\|CASE\|FOR\|IF\|LOCK\|LOOP\|TRY\|TYPECASE\|WHILE\|WITH\|RECORD\|OBJECT\)\>' ..
\ ':' ..
\ '\<\%(ELSIF\|ELSE\|EXCEPT\|FINALLY\)\>\|\%(^\s*\)\@<=\S.*=>' ..
\ '\<\%(ELSIF\|ELSE\|EXCEPT\|FINALLY\|METHODS\|OVERRIDES\)\>\|\%(^\s*\)\@<=\S.*=>' ..
\ ':' ..
\ '\<END\>'
\ '\<END\>,' ..
\ '(\*:\*),<\*:\*>'
let b:undo_ftplugin ..= " | unlet! b:match_words"
endif
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Modula-3 Source Files (*.m3)\t*.m3\n" ..
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif
let b:undo_ftplugin = "setl com< cms< fo< " ..
\ "| unlet! b:browsefilter b:match_words"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -3,7 +3,8 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" Last Change: 2020 Apr 15
" License: Vim License (see :help license)
" Last Change: 2021 Nov 10
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@ -20,27 +21,36 @@ setlocal keywordprg=perldoc\ -f
setlocal comments=:#
setlocal commentstring=#%s
" Change the browse dialog on Win32 to show mainly Perl-related files
if has("gui_win32")
let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" .
\ "Perl Modules (*.pm)\t*.pm\n" .
\ "Perl Documentation Files (*.pod)\t*.pod\n" .
\ "All Files (*.*)\t*.*\n"
endif
" Provided by Ned Konz <ned at bike-nomad dot com>
"---------------------------------------------
setlocal include=\\<\\(use\\\|require\\)\\>
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
" '+' is removed to support plugins in Catalyst or DBIx::Class
" where the leading plus indicates a fully-qualified module name.
setlocal includeexpr=substitute(substitute(substitute(substitute(v:fname,'+','',''),'::','/','g'),'->\*','',''),'$','.pm','')
setlocal define=[^A-Za-z_]
setlocal iskeyword+=:
" The following line changes a global variable but is necessary to make
" gf and similar commands work. Thanks to Andrew Pimlott for pointing
" out the problem. If this causes a problem for you, add an
" after/ftplugin/perl.vim file that contains
" set isfname-=:
" out the problem.
let s:old_isfname = &isfname
set isfname+=:
let s:new_isfname = &isfname
augroup perl_global_options
au!
exe "au BufEnter * if &filetype == 'perl' | let &isfname = '" . s:new_isfname . "' | endif"
exe "au BufLeave * if &filetype == 'perl' | let &isfname = '" . s:old_isfname . "' | endif"
augroup END
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< kp< com< cms< inc< inex< def< isk<" .
\ " | let &isfname = '" . s:old_isfname . "'"
if get(g:, 'perl_fold', 0)
setlocal foldmethod=syntax
let b:undo_ftplugin .= " | setlocal fdm<"
endif
" Set this once, globally.
if !exists("perlpath")
@ -74,16 +84,26 @@ if &l:path == ""
else
let &l:path=&l:path.",".perlpath
endif
let b:undo_ftplugin .= " | setlocal pa<"
"---------------------------------------------
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
\ " | unlet! b:browsefilter"
" Change the browse dialog to show mainly Perl-related files
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" .
\ "Perl Modules (*.pm)\t*.pm\n" .
\ "Perl Documentation Files (*.pod)\t*.pod\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= " | unlet! b:browsefilter"
endif
" proper matching for matchit plugin
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
let b:match_words = '\<if\>:\<elsif\>:\<else\>'
" Proper matching for matchit plugin
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
let b:match_words = '\<if\>:\<elsif\>:\<else\>'
let b:undo_ftplugin .= " | unlet! b:match_words b:match_skip"
endif
" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
unlet s:save_cpo s:old_isfname s:new_isfname

71
runtime/ftplugin/pod.vim Normal file
View File

@ -0,0 +1,71 @@
" Vim filetype plugin file
" Language: Perl POD format
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Doug Kearns <dougkearns@gmail.com>
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2021 Oct 19
if exists("b:did_ftplugin")
finish
endif
let s:save_cpo = &cpo
set cpo-=C
setlocal comments=fb:=for\ comment
setlocal commentstring==for\ comment\ %s
let b:undo_ftplugin = "setl com< cms<"
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_words =
\ '^=pod\>:^=cut\>,' .
\ '^=begin\s\+\(\S\+\):^=end\s\+\1,' .
\ '^=over\>:^=item\>:^=back\>,' .
\ '[IBCLEFSXZ]<<\%(\s\+\|$\)\@=:\%(\s\+\|^\)\@<=>>,' .
\ '[IBCLEFSXZ]<:>'
let b:undo_ftplugin .= " | unlet! b:match_words"
endif
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "POD Source Files (*.pod)\t*.pod\n" .
\ "Perl Source Files (*.pl)\t*.pl\n" .
\ "Perl Modules (*.pm)\t*.pm\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= " | unlet! b:browsefilter"
endif
function! s:jumpToSection(backwards)
let flags = a:backwards ? 'bsWz' : 'sWz'
if has('syntax_items')
let skip = "synIDattr(synID(line('.'), col('.'), 1), 'name') !~# '\\<podCommand\\>'"
else
let skip = ''
endif
for i in range(v:count1)
call search('^=\a', flags, 0, 0, skip)
endfor
endfunction
if !exists("no_plugin_maps") && !exists("no_pod_maps")
nnoremap <silent> <buffer> ]] <Cmd>call <SID>jumpToSection()<CR>
vnoremap <silent> <buffer> ]] <Cmd>call <SID>jumpToSection()<CR>
nnoremap <silent> <buffer> ][ <Cmd>call <SID>jumpToSection()<CR>
vnoremap <silent> <buffer> ][ <Cmd>call <SID>jumpToSection()<CR>
nnoremap <silent> <buffer> [[ <Cmd>call <SID>jumpToSection(1)<CR>
vnoremap <silent> <buffer> [[ <Cmd>call <SID>jumpToSection(1)<CR>
nnoremap <silent> <buffer> [] <Cmd>call <SID>jumpToSection(1)<CR>
vnoremap <silent> <buffer> [] <Cmd>call <SID>jumpToSection(1)<CR>
let b:undo_ftplugin .=
\ " | silent! exe 'nunmap <buffer> ]]' | silent! exe 'vunmap <buffer> ]]'" .
\ " | silent! exe 'nunmap <buffer> ][' | silent! exe 'vunmap <buffer> ]['" .
\ " | silent! exe 'nunmap <buffer> ]]' | silent! exe 'vunmap <buffer> ]]'" .
\ " | silent! exe 'nunmap <buffer> []' | silent! exe 'vunmap <buffer> []'"
endif
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: set expandtab:

View File

@ -3,6 +3,7 @@
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
" Former Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com> (until March 2014)
" Last Change: Mon Jun 01 21:15 MSK 2015 Igor Gnatenko
" Update by Zdenek Dohnal, 2022 May 17
if exists("b:did_ftplugin")
finish
@ -41,8 +42,8 @@ else:
headers = spec.sourceHeader
version = headers["Version"]
release = headers["Release"]
vim.command("let ver = " + version)
vim.command("let rel = " + release)
vim.command("let ver = '" + version + "'")
vim.command("let rel = '" + release + "'")
PYEND
endif
endfunction

27
runtime/ftplugin/tap.vim Normal file
View File

@ -0,0 +1,27 @@
" Vim filetype plugin file
" Language: Verbose TAP Output
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2021 Oct 22
" Only do this when not done yet for this buffer
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
setlocal foldtext=TAPTestLine_foldtext()
function! TAPTestLine_foldtext()
let line = getline(v:foldstart)
let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
return sub
endfunction
setlocal foldminlines=5
setlocal foldcolumn=2
setlocal foldenable
setlocal foldmethod=syntax
let b:undo_ftplugin = 'setlocal foldtext< foldminlines< foldcolumn< foldenable< foldmethod<'

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: TT2 embedded with HTML
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-07-21
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2018 Mar 28
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")

View File

@ -1,9 +1,10 @@
" Vim filetype plugin file
" Language: XS (Perl extension interface language)
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-07-21
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2018 Mar 28
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")

View File

@ -5,6 +5,7 @@
Name[ca]=GVim
Name[de]=GVim
Name[eo]=GVim
Name[es]=GVim
Name[fi]=GVim
Name[fr]=GVim
Name[ga]=GVim
@ -18,6 +19,7 @@ Name=GVim
GenericName[ca]=Editor de text
GenericName[de]=Texteditor
GenericName[eo]=Tekstoredaktilo
GenericName[es]=Editor de texto
GenericName[fi]=Tekstinmuokkain
GenericName[fr]=Éditeur de texte
GenericName[ga]=Eagarthóir Téacs
@ -32,6 +34,7 @@ GenericName=Text Editor
Comment[ca]=Edita fitxers de text
Comment[de]=Textdateien bearbeiten
Comment[eo]=Redakti tekstajn dosierojn
Comment[es]=Editar archivos de texto
Comment[fi]=Muokkaa tekstitiedostoja
Comment[fr]=Éditer des fichiers texte
Comment[ga]=Cuir comhaid téacs in eagar
@ -61,7 +64,6 @@ Comment[da]=Rediger tekstfiler
Comment[el]=Επεξεργασία αρχείων κειμένου
Comment[en_CA]=Edit text files
Comment[en_GB]=Edit text files
Comment[es]=Edita archivos de texto
Comment[et]=Redigeeri tekstifaile
Comment[eu]=Editatu testu-fitxategiak
Comment[fa]=ویرایش پرونده‌های متنی
@ -112,6 +114,7 @@ Type=Application
Keywords[ca]=Text;editor;
Keywords[de]=Text;Editor;
Keywords[eo]=Teksto;redaktilo;
Keywords[es]=Texto;editor;
Keywords[fi]=Teksti;muokkain;editori;
Keywords[fr]=Texte;éditeur;
Keywords[ga]=Téacs;eagarthóir;

View File

@ -4,24 +4,28 @@ vim9script
# Called when editing the doc/syntax.txt file
export def HighlightGroups()
var save_cursor = getcurpos()
var buf: number = bufnr('%')
var lnum: number = search('\*highlight-groups\*', 'cn')
while getline(lnum) !~ '===' && lnum < line('$')
var start: number = search('\*highlight-groups\*', 'c')
var end: number = search('^======')
for lnum in range(start, end)
var word: string = getline(lnum)->matchstr('^\w\+\ze\t')
if word->hlexists()
var name = 'help-hl-' .. word
if prop_type_list({bufnr: buf})->match(name) == -1
prop_type_add('help-hl-' .. word, {
bufnr: buf,
highlight: word,
combine: false,
})
else
var type = 'help-hl-' .. word
if prop_type_list({bufnr: buf})->index(type) != -1
# was called before, delete existing properties
prop_remove({type: name, bufnr: buf})
prop_remove({type: type, bufnr: buf})
prop_type_delete(type, {bufnr: buf})
endif
prop_add(lnum, 1, {length: word->strlen(), type: 'help-hl-' .. word})
prop_type_add(type, {
bufnr: buf,
highlight: word,
combine: false,
})
prop_add(lnum, 1, {length: word->strlen(), type: type})
endif
++lnum
endwhile
endfor
setpos('.', save_cursor)
enddef

View File

@ -0,0 +1,10 @@
" Vim indent file
" Language: confini
" Quit if an indent file was already loaded.
if exists("b:did_indent")
finish
endif
" Use the cfg indenting, it's similar enough.
runtime! indent/cfg.vim

View File

@ -3,13 +3,10 @@
" Maintainer: Nick Jensen <nickspoon@gmail.com>
" Former Maintainers: Aquila Deus
" Johannes Zellner <johannes@zellner.org>
" Last Change: 2018-11-21
" Filenames: *.cs
" Last Change: 2020-03-26
" License: Vim (see :h license)
" Repository: https://github.com/nickspoons/vim-cs
"
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
finish
endif
@ -22,19 +19,23 @@ set cpoptions&vim
setlocal indentexpr=GetCSIndent(v:lnum)
function! s:IsCompilerDirective(line)
return a:line =~? '^\s*#'
" Exclude #region and #endregion - these should be indented normally
return a:line =~# '^\s*#' && !s:IsRegionDirective(a:line)
endf
function! s:IsRegionDirective(line)
return a:line =~# '^\s*#\s*region' || a:line =~# '^\s*#\s*endregion'
endf
function! s:IsAttributeLine(line)
return a:line =~? '^\s*\[[A-Za-z]' && a:line =~? '\]$'
return a:line =~# '^\s*\[[A-Za-z]' && a:line =~# '\]$'
endf
function! s:FindPreviousNonCompilerDirectiveLine(start_lnum)
for delta in range(0, a:start_lnum)
let lnum = a:start_lnum - delta
let line = getline(lnum)
let is_directive = s:IsCompilerDirective(line)
if !is_directive
if !s:IsCompilerDirective(line) && !s:IsRegionDirective(line)
return lnum
endif
endfor
@ -58,8 +59,9 @@ function! GetCSIndent(lnum) abort
let lnum = s:FindPreviousNonCompilerDirectiveLine(a:lnum - 1)
let previous_code_line = getline(lnum)
if s:IsAttributeLine(previous_code_line)
let ind = indent(lnum)
return ind
return indent(lnum)
elseif s:IsRegionDirective(this_line)
return cindent(lnum)
else
return cindent(a:lnum)
endif

View File

@ -1,13 +1,13 @@
" Vim indent file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version: (v48) 2020 October 07
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Version: (v49) 2022 May 14
" Maintainer: Ajit J. Thakkar <thakkar.ajit@gmail.com>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-indent from Vim
" Credits:
" Version 0.1 was created in September 2000 by Ajit Thakkar.
" Since then, useful suggestions and contributions have been made, in order, by:
" Albert Oliver Serra, Takuya Fujiwara, Philipp Edelmann, Eisuke Kawashima,
" and Louis Cochen.
" Louis Cochen, and Doug Kearns.
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@ -17,6 +17,7 @@ let b:did_indent = 1
let s:cposet=&cpoptions
set cpoptions&vim
let b:undo_indent = "setl inde< indk<"
setlocal indentkeys+==~end,=~case,=~if,=~else,=~do,=~where,=~elsewhere,=~select
setlocal indentkeys+==~endif,=~enddo,=~endwhere,=~endselect,=~elseif

View File

@ -1,180 +1,109 @@
" Vim indent file
" Language: Perl 5
" Language: Perl
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" Last Change: 2020 Apr 15
" License: Vim License (see :help license)
" Last Change: 2021 Sep 24
" Suggestions and improvements by :
" Aaron J. Sherman (use syntax for hints)
" Artem Chuprina (play nice with folding)
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
" TODO things that are not or not properly indented (yet) :
" - Continued statements
" print "foo",
" "bar";
" print "foo"
" if bar();
" - Multiline regular expressions (m//x)
" (The following probably needs modifying the perl syntax file)
" - qw() lists
" - Heredocs with terminators that don't match \I\i*
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
" Is syntax highlighting active ?
let b:indent_use_syntax = has("syntax")
setlocal indentexpr=GetPerlIndent()
setlocal indentkeys+=0=,0),0],0=or,0=and
if !b:indent_use_syntax
setlocal indentkeys+=0=EO
endif
let s:cpo_save = &cpo
" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C
function! GetPerlIndent()
setlocal formatoptions-=t
setlocal formatoptions+=crqol
setlocal keywordprg=perldoc\ -f
" Get the line to be indented
let cline = getline(v:lnum)
setlocal comments=:#
setlocal commentstring=#%s
" Indent POD markers to column 0
if cline =~ '^\s*=\L\@!'
return 0
endif
" Provided by Ned Konz <ned at bike-nomad dot com>
"---------------------------------------------
setlocal include=\\<\\(use\\\|require\\)\\>
" '+' is removed to support plugins in Catalyst or DBIx::Class
" where the leading plus indicates a fully-qualified module name.
setlocal includeexpr=substitute(substitute(substitute(substitute(v:fname,'+','',''),'::','/','g'),'->\*','',''),'$','.pm','')
setlocal define=[^A-Za-z_]
setlocal iskeyword+=:
" Get current syntax item at the line's first char
let csynid = ''
if b:indent_use_syntax
let csynid = synIDattr(synID(v:lnum,1,0),"name")
endif
" The following line changes a global variable but is necessary to make
" gf and similar commands work. Thanks to Andrew Pimlott for pointing
" out the problem.
let s:old_isfname = &isfname
set isfname+=:
let s:new_isfname = &isfname
" Don't reindent POD and heredocs
if csynid == "perlPOD" || csynid == "perlHereDoc" || csynid =~ "^pod"
return indent(v:lnum)
endif
augroup perl_global_options
au!
exe "au BufEnter * if &filetype == 'perl' | let &isfname = '" . s:new_isfname . "' | endif"
exe "au BufLeave * if &filetype == 'perl' | let &isfname = '" . s:old_isfname . "' | endif"
augroup END
" Indent end-of-heredocs markers to column 0
if b:indent_use_syntax
" Assumes that an end-of-heredoc marker matches \I\i* to avoid
" confusion with other types of strings
if csynid == "perlStringStartEnd" && cline =~ '^\I\i*$'
return 0
endif
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< kp< com< cms< inc< inex< def< isk<" .
\ " | let &isfname = '" . s:old_isfname . "'"
if get(g:, 'perl_fold', 0)
setlocal foldmethod=syntax
let b:undo_ftplugin .= " | setlocal fdm<"
endif
" Set this once, globally.
if !exists("perlpath")
if executable("perl")
try
if &shellxquote != '"'
let perlpath = system('perl -e "print join(q/,/,@INC)"')
else
let perlpath = system("perl -e 'print join(q/,/,@INC)'")
endif
let perlpath = substitute(perlpath,',.$',',,','')
catch /E145:/
let perlpath = ".,,"
endtry
else
" Without syntax hints, assume that end-of-heredocs markers begin with EO
if cline =~ '^\s*EO'
return 0
endif
" If we can't call perl to get its path, just default to using the
" current directory and the directory of the current file.
let perlpath = ".,,"
endif
endif
" Now get the indent of the previous perl line.
" Find a non-blank line above the current line.
let lnum = prevnonblank(v:lnum - 1)
" Hit the start of the file, use zero indent.
if lnum == 0
return 0
endif
let line = getline(lnum)
let ind = indent(lnum)
" Skip heredocs, POD, and comments on 1st column
if b:indent_use_syntax
let skippin = 2
while skippin
let synid = synIDattr(synID(lnum,1,0),"name")
if (synid == "perlStringStartEnd" && line =~ '^\I\i*$')
\ || (skippin != 2 && synid == "perlPOD")
\ || (skippin != 2 && synid == "perlHereDoc")
\ || synid == "perlComment"
\ || synid =~ "^pod"
let lnum = prevnonblank(lnum - 1)
if lnum == 0
return 0
endif
let line = getline(lnum)
let ind = indent(lnum)
let skippin = 1
else
let skippin = 0
endif
endwhile
" Append perlpath to the existing path value, if it is set. Since we don't
" use += to do it because of the commas in perlpath, we have to handle the
" global / local settings, too.
if &l:path == ""
if &g:path == ""
let &l:path=perlpath
else
if line =~ "^EO"
let lnum = search("<<[\"']\\=EO", "bW")
let line = getline(lnum)
let ind = indent(lnum)
endif
let &l:path=&g:path.",".perlpath
endif
else
let &l:path=&l:path.",".perlpath
endif
" Indent blocks enclosed by {}, (), or []
if b:indent_use_syntax
" Find a real opening brace
" NOTE: Unlike Perl character classes, we do NOT need to escape the
" closing brackets with a backslash. Doing so just puts a backslash
" in the character class and causes sorrow. Instead, put the closing
" bracket as the first character in the class.
let braceclass = '[][(){}]'
let bracepos = match(line, braceclass, matchend(line, '^\s*[])}]'))
while bracepos != -1
let synid = synIDattr(synID(lnum, bracepos + 1, 0), "name")
" If the brace is highlighted in one of those groups, indent it.
" 'perlHereDoc' is here only to handle the case '&foo(<<EOF)'.
if synid == ""
\ || synid == "perlMatchStartEnd"
\ || synid == "perlHereDoc"
\ || synid == "perlBraces"
\ || synid == "perlStatementIndirObj"
\ || synid =~ "^perlFiledescStatement"
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let brace = strpart(line, bracepos, 1)
if brace == '(' || brace == '{' || brace == '['
let ind = ind + shiftwidth()
else
let ind = ind - shiftwidth()
endif
endif
let bracepos = match(line, braceclass, bracepos + 1)
endwhile
let bracepos = matchend(cline, '^\s*[])}]')
if bracepos != -1
let synid = synIDattr(synID(v:lnum, bracepos, 0), "name")
if synid == ""
\ || synid == "perlMatchStartEnd"
\ || synid == "perlBraces"
\ || synid == "perlStatementIndirObj"
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let ind = ind - shiftwidth()
endif
endif
else
if line =~ '[{[(]\s*\(#[^])}]*\)\=$'
let ind = ind + shiftwidth()
endif
if cline =~ '^\s*[])}]'
let ind = ind - shiftwidth()
endif
endif
let b:undo_ftplugin .= " | setlocal pa<"
"---------------------------------------------
" Indent lines that begin with 'or' or 'and'
if cline =~ '^\s*\(or\|and\)\>'
if line !~ '^\s*\(or\|and\)\>'
let ind = ind + shiftwidth()
endif
elseif line =~ '^\s*\(or\|and\)\>'
let ind = ind - shiftwidth()
endif
" Change the browse dialog to show mainly Perl-related files
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" .
\ "Perl Modules (*.pm)\t*.pm\n" .
\ "Perl Documentation Files (*.pod)\t*.pod\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= " | unlet! b:browsefilter"
endif
return ind
" Proper matching for matchit plugin
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
let b:match_words = '\<if\>:\<elsif\>:\<else\>'
let b:undo_ftplugin .= " | unlet! b:match_words b:match_skip"
endif
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:ts=8:sts=4:sw=4:expandtab:ft=vim
" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo s:old_isfname s:new_isfname

View File

@ -1,10 +1,8 @@
" PostScript indent file
" Language: PostScript
" Maintainer: Mike Williams <mrw@netcomuk.co.uk> (Invalid email address)
" Doug Kearns <dougkearns@gmail.com>
" Maintainer: Mike Williams <mrw@eandem.co.uk>
" Last Change: 2022 Apr 06
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish

View File

@ -2,7 +2,7 @@
"
" Author: Bram Moolenaar
" Copyright: Vim license applies, see ":help license"
" Last Change: 2022 May 09
" Last Change: 2022 May 23
"
" WORK IN PROGRESS - The basics works stable, more to come
" Note: In general you need at least GDB 7.12 because this provides the
@ -65,11 +65,6 @@ set cpo&vim
command -nargs=* -complete=file -bang Termdebug call s:StartDebug(<bang>0, <f-args>)
command -nargs=+ -complete=file -bang TermdebugCommand call s:StartDebugCommand(<bang>0, <f-args>)
" Name of the gdb command, defaults to "gdb".
if !exists('g:termdebugger')
let g:termdebugger = 'gdb'
endif
let s:pc_id = 12
let s:asm_id = 13
let s:break_id = 14 " breakpoint number is added to this
@ -99,8 +94,17 @@ call s:Highlight(1, '', &background)
hi default debugBreakpoint term=reverse ctermbg=red guibg=red
hi default debugBreakpointDisabled term=reverse ctermbg=gray guibg=gray
" Get the command to execute the debugger as a list, defaults to ["gdb"].
func s:GetCommand()
return type(g:termdebugger) == v:t_list ? copy(g:termdebugger) : [g:termdebugger]
if exists('g:termdebug_config')
let cmd = get(g:termdebug_config, 'command', 'gdb')
elseif exists('g:termdebugger')
let cmd = g:termdebugger
else
let cmd = 'gdb'
endif
return type(cmd) == v:t_list ? copy(cmd) : [cmd]
endfunc
func s:StartDebug(bang, ...)
@ -144,10 +148,16 @@ func s:StartDebug_internal(dict)
let s:save_columns = 0
let s:allleft = 0
if exists('g:termdebug_wide')
if &columns < g:termdebug_wide
let wide = 0
if exists('g:termdebug_config')
let wide = get(g:termdebug_config, 'wide', 0)
elseif exists('g:termdebug_wide')
let wide = g:termdebug_wide
endif
if wide > 0
if &columns < wide
let s:save_columns = &columns
let &columns = g:termdebug_wide
let &columns = wide
" If we make the Vim window wider, use the whole left half for the debug
" windows.
let s:allleft = 1
@ -158,7 +168,12 @@ func s:StartDebug_internal(dict)
endif
" Override using a terminal window by setting g:termdebug_use_prompt to 1.
let use_prompt = exists('g:termdebug_use_prompt') && g:termdebug_use_prompt
let use_prompt = 0
if exists('g:termdebug_config')
let use_prompt = get(g:termdebug_config, 'use_prompt', 0)
elseif exists('g:termdebug_use_prompt')
let use_prompt = g:termdebug_use_prompt
endif
if has('terminal') && !has('win32') && !use_prompt
let s:way = 'terminal'
else
@ -171,12 +186,10 @@ func s:StartDebug_internal(dict)
call s:StartDebug_term(a:dict)
endif
if exists('g:termdebug_disasm_window')
if g:termdebug_disasm_window
let curwinid = win_getid(winnr())
call s:GotoAsmwinOrCreateIt()
call win_gotoid(curwinid)
endif
if s:GetDisasmWindow()
let curwinid = win_getid(winnr())
call s:GotoAsmwinOrCreateIt()
call win_gotoid(curwinid)
endif
if exists('#User#TermdebugStartPost')
@ -240,18 +253,28 @@ func s:StartDebug_term(dict)
let proc_args = get(a:dict, 'proc_args', [])
let gdb_cmd = s:GetCommand()
" Add -quiet to avoid the intro message causing a hit-enter prompt.
let gdb_cmd += ['-quiet']
" Disable pagination, it causes everything to stop at the gdb
let gdb_cmd += ['-iex', 'set pagination off']
" Interpret commands while the target is running. This should usually only
" be exec-interrupt, since many commands don't work properly while the
" target is running (so execute during startup).
let gdb_cmd += ['-iex', 'set mi-async on']
" Open a terminal window to run the debugger.
let gdb_cmd += ['-tty', pty]
" Command executed _after_ startup is done, provides us with the necessary feedback
let gdb_cmd += ['-ex', 'echo startupdone\n']
if exists('g:termdebug_config') && has_key(g:termdebug_config, 'command_add_args')
let gdb_cmd = g:termdebug_config.command_add_args(gdb_cmd, pty)
else
" Add -quiet to avoid the intro message causing a hit-enter prompt.
let gdb_cmd += ['-quiet']
" Disable pagination, it causes everything to stop at the gdb
let gdb_cmd += ['-iex', 'set pagination off']
" Interpret commands while the target is running. This should usually only
" be exec-interrupt, since many commands don't work properly while the
" target is running (so execute during startup).
let gdb_cmd += ['-iex', 'set mi-async on']
" Open a terminal window to run the debugger.
let gdb_cmd += ['-tty', pty]
" Command executed _after_ startup is done, provides us with the necessary
" feedback
let gdb_cmd += ['-ex', 'echo startupdone\n']
endif
if exists('g:termdebug_config') && has_key(g:termdebug_config, 'command_filter')
let gdb_cmd = g:termdebug_config.command_filter(gdb_cmd)
endif
" Adding arguments requested by the user
let gdb_cmd += gdb_args
@ -855,7 +878,13 @@ func s:InstallCommands()
command Asm call s:GotoAsmwinOrCreateIt()
command Winbar call s:InstallWinbar()
if !exists('g:termdebug_map_K') || g:termdebug_map_K
let map = 1
if exists('g:termdebug_config')
let map = get(g:termdebug_config, 'map_K', 1)
elseif exists('g:termdebug_map_K')
let map = g:termdebug_map_K
endif
if map
let s:k_map_saved = maparg('K', 'n', 0, 1)
nnoremap K :Evaluate<CR>
endif
@ -863,7 +892,13 @@ func s:InstallCommands()
if has('menu') && &mouse != ''
call s:InstallWinbar()
if !exists('g:termdebug_popup') || g:termdebug_popup != 0
let popup = 1
if exists('g:termdebug_config')
let popup = get(g:termdebug_config, 'popup', 1)
elseif exists('g:termdebug_popup')
let popup = g:termdebug_popup
endif
if popup
let s:saved_mousemodel = &mousemodel
let &mousemodel = 'popup_setpos'
an 1.200 PopUp.-SEP3- <Nop>
@ -1183,6 +1218,26 @@ func s:GotoSourcewinOrCreateIt()
endif
endfunc
func s:GetDisasmWindow()
if exists('g:termdebug_config')
return get(g:termdebug_config, 'disasm_window', 0)
endif
if exists('g:termdebug_disasm_window')
return g:termdebug_disasm_window
endif
return 0
endfunc
func s:GetDisasmWindowHeight()
if exists('g:termdebug_config')
return get(g:termdebug_config, 'disasm_window_height', 0)
endif
if exists('g:termdebug_disasm_window') && g:termdebug_disasm_window > 1
return g:termdebug_disasm_window
endif
return 0
endfunc
func s:GotoAsmwinOrCreateIt()
if !win_gotoid(s:asmwin)
if win_gotoid(s:sourcewin)
@ -1206,10 +1261,8 @@ func s:GotoAsmwinOrCreateIt()
exe 'file Termdebug-asm-listing'
endif
if exists('g:termdebug_disasm_window')
if g:termdebug_disasm_window > 1
exe 'resize ' . g:termdebug_disasm_window
endif
if s:GetDisasmWindowHeight() > 0
exe 'resize ' .. s:GetDisasmWindowHeight()
endif
endif

View File

@ -1,11 +1,14 @@
" Vim plugin for using Vim as manpager.
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
" Last Change: 2020 Aug 05
" Last Change: 2022 Jun 05
command! -nargs=0 MANPAGER call s:ManPager() | delcommand MANPAGER
function! s:ManPager()
set nocompatible
function s:ManPager()
" global options, keep these to a minimum to avoid side effects
if &compatible
set nocompatible
endif
if exists('+viminfofile')
set viminfofile=NONE
endif
@ -27,7 +30,7 @@ function! s:ManPager()
if n > 1
exe "1," . n-1 . "d"
endif
setlocal nomodified readonly
setlocal nomodifiable nomodified readonly nowrite
syntax on
endfunction

View File

@ -0,0 +1,12 @@
" Vim syntax file
" Language: confini
" Quit if a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Use the cfg syntax for now, it's similar.
runtime! syntax/cfg.vim
let b:current_syntax = 'confini'

View File

@ -3,13 +3,16 @@
" Maintainer: Nick Jensen <nickspoon@gmail.com>
" Former Maintainers: Anduin Withers <awithers@anduin.com>
" Johannes Zellner <johannes@zellner.org>
" Last Change: 2020-11-23
" Last Change: 2022-03-01
" Filenames: *.cs
" License: Vim (see :h license)
" Repository: https://github.com/nickspoons/vim-cs
"
" REFERENCES:
" [1] ECMA TC39: C# Language Specification (WD13Oct01.doc)
" References:
" - ECMA-334 5th Edition: C# Language Specification
" https://www.ecma-international.org/publications-and-standards/standards/ecma-334/
" - C# Language Design: Draft 6th Edition and later proposals
" https://github.com/dotnet/csharplang
if exists('b:current_syntax')
finish
@ -19,37 +22,72 @@ let s:save_cpo = &cpoptions
set cpoptions&vim
syn keyword csType bool byte char decimal double float int long object sbyte short string T uint ulong ushort var void dynamic
syn keyword csStorage delegate enum interface namespace struct
syn keyword csType nint nuint " contextual
syn keyword csStorage enum interface namespace struct
syn match csStorage "\<delegate\>"
syn keyword csRepeat break continue do for foreach goto return while
syn keyword csConditional else if switch
syn keyword csLabel case default
syn match csOperatorError display +::+
syn match csGlobal display +global::+
" user labels (see [1] 8.6 Statements)
syn match csLabel display +^\s*\I\i*\s*:\%([^:]\)\@=+
syn keyword csModifier abstract const extern internal override private protected public readonly sealed static virtual volatile
syn keyword csConstant false null true
syn keyword csException try catch finally throw when
syn keyword csLinq ascending by descending equals from group in into join let on orderby select where
syn keyword csAsync async await
syn keyword csUnspecifiedStatement as base checked event fixed in is lock nameof operator out params ref sizeof stackalloc this unchecked unsafe using
syn keyword csUnsupportedStatement add remove value
syn match csNamespaceAlias "@\=\h\w*\ze\_s*::" display
syn match csGlobalNamespaceAlias "global\ze\_s*::" display
syn cluster csNamespaceAlias contains=csGlobalNamespaceAlias,csNamespaceAlias,csNamespaceAliasQualifier
" user labels
syn match csLabel display +^\s*\I\i*\s*:\%([^:]\)\@=+
" Function pointers
syn match csType "\<delegate\s*\*" contains=csOpSymbols nextgroup=csManagedModifier skipwhite skipempty
syn keyword csManagedModifier managed unmanaged contained
" Modifiers
syn match csUsingModifier "\<global\ze\_s\+using\>"
syn keyword csAccessModifier internal private protected public
" TODO: in new out
syn keyword csModifier abstract const event override readonly sealed static virtual volatile
syn match csModifier "\<\%(extern\|fixed\|unsafe\)\>"
syn match csModifier "\<partial\ze\_s\+\%(class\|struct\|interface\|record\|void\)\>"
syn keyword csException try catch finally throw when
syn keyword csLinq ascending by descending equals from group in into join let on orderby select
syn match csLinq "\<where\>"
" Type parameter constraint clause
syn match csStorage "\<where\>\ze\_s\+@\=\h\w*\_s*:"
" Async
syn keyword csAsyncModifier async
syn keyword csAsyncOperator await
syn match csStorage "\<extern\ze\s\+alias\>"
syn match csStorage "\%(\<extern\s\+\)\@16<=alias\>"
syn match csStatement "\<\%(checked\|unchecked\|unsafe\)\ze\_s*{"
syn match csStatement "\<fixed\ze\_s*("
syn keyword csStatement lock
syn match csStatement "\<yield\ze\_s\+\%(return\|break\)\>"
syn match csAccessor "\<\%(get\|set\|init\|add\|remove\)\ze\_s*\%([;{]\|=>\)"
syn keyword csAccess base
syn match csAccess "\<this\>"
" Extension method parameter modifier
syn match csModifier "\<this\ze\_s\+@\=\h"
syn keyword csUnspecifiedStatement as in is nameof operator out params ref sizeof stackalloc using
syn keyword csUnsupportedStatement value
syn keyword csUnspecifiedKeyword explicit implicit
" Contextual Keywords
syn match csContextualStatement /\<yield[[:space:]\n]\+\%(return\|break\)/me=s+5
syn match csContextualStatement /\<partial[[:space:]\n]\+\%(class\|struct\|interface\)/me=s+7
syn match csContextualStatement /\<\%(get\|set\)\%(;\|[[:space:]\n]*{\)/me=s+3
syn match csContextualStatement /\<\%(get\|set\)\s*=>/me=s+3
syn match csContextualStatement /\<where\>[^:]\+:/me=s+5
" Operators
syn keyword csTypeOf typeof contained
syn region csTypeOfStatement start="typeof(" end=")" contains=csType, csTypeOf
syn keyword csTypeOf typeof nextgroup=csTypeOfOperand,csTypeOfError skipwhite skipempty
syn region csTypeOfOperand matchgroup=csParens start="(" end=")" contained contains=csType
syn match csTypeOfError "[^([:space:]]" contained
syn match csKeywordOperator "\<\%(checked\|unchecked\)\ze\_s*("
" Punctuation
syn match csBraces "[{}\[\]]" display
syn match csBraces "[{}[\]]" display
syn match csParens "[()]" display
syn match csOpSymbols "+\{1,2}" display
syn match csOpSymbols "-\{1,2}" display
@ -64,128 +102,173 @@ syn match csLogicSymbols "&&" display
syn match csLogicSymbols "||" display
syn match csLogicSymbols "?" display
syn match csLogicSymbols ":" display
syn match csNamespaceAliasQualifier "::" display
" Generics
syn region csGeneric matchgroup=csGenericBraces start="<" end=">" oneline contains=csType,csGeneric,csUserType,csUserIdentifier,csUserInterface,csUserMethod
syn region csGeneric matchgroup=csGenericBraces start="<" end=">" oneline contains=csType,csGeneric,@csNamespaceAlias,csUserType,csUserIdentifier,csUserInterface,csUserMethod
" Comments
"
" PROVIDES: @csCommentHook
syn keyword csTodo contained TODO FIXME XXX NOTE HACK TBD
syn region csComment start="/\*" end="\*/" contains=@csCommentHook,csTodo,@Spell
syn match csComment "//.*$" contains=@csCommentHook,csTodo,@Spell
syn region csBlockComment start="/\*" end="\*/" contains=@csCommentHook,csTodo,@Spell
syn match csLineComment "//.*$" contains=@csCommentHook,csTodo,@Spell
syn cluster csComment contains=csLineComment,csBlockComment
" xml markup inside '///' comments
syn cluster xmlRegionHook add=csXmlCommentLeader
syn cluster xmlCdataHook add=csXmlCommentLeader
syn cluster xmlStartTagHook add=csXmlCommentLeader
syn keyword csXmlTag contained Libraries Packages Types Excluded ExcludedTypeName ExcludedLibraryName
syn keyword csXmlTag contained ExcludedBucketName TypeExcluded Type TypeKind TypeSignature AssemblyInfo
syn keyword csXmlTag contained AssemblyName AssemblyPublicKey AssemblyVersion AssemblyCulture Base
syn keyword csXmlTag contained BaseTypeName Interfaces Interface InterfaceName Attributes Attribute
syn keyword csXmlTag contained AttributeName Members Member MemberSignature MemberType MemberValue
syn keyword csXmlTag contained ReturnValue ReturnType Parameters Parameter MemberOfPackage
syn keyword csXmlTag contained ThreadingSafetyStatement Docs devdoc example overload remarks returns summary
syn keyword csXmlTag contained threadsafe value internalonly nodoc exception param permission platnote
syn keyword csXmlTag contained seealso b c i pre sub sup block code note paramref see subscript superscript
syn keyword csXmlTag contained list listheader item term description altcompliant altmember
syn region csSummary start="^\s*/// <summary" end="^\%\(\s*///\)\@!" transparent fold keepend
syn cluster xmlTagHook add=csXmlTag
" xml markup inside '///' and /**...*/ comments
syn cluster xmlRegionHook add=csXmlLineCommentLeader,csXmlBlockCommentMiddle
syn cluster xmlCdataHook add=csXmlLineCommentLeader,csXmlBlockCommentMiddle
syn cluster xmlStartTagHook add=csXmlLineCommentLeader,csXmlBlockCommentMiddle
syn cluster xmlTagHook add=csXmlTag
syn cluster xmlAttribHook add=csXmlAttrib
syn match csXmlCommentLeader "///" contained
syn match csXmlComment "///.*$" contains=csXmlCommentLeader,@csXml,@Spell keepend
" https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/xmldoc/recommended-tags
syn keyword csXmlTag contained summary remarks
syn keyword csXmlTag contained returns param paramref exception value
syn keyword csXmlTag contained para list c code example
syn keyword csXmlTag contained inheritdoc include
syn keyword csXmlTag contained see seealso
syn keyword csXmlTag contained typeparam typeparamref
syn keyword csXmlTag contained b i u br a
syn keyword csXmlAttrib contained cref href
syn match csXmlLineCommentLeader "///" contained
syn match csXmlLineComment "///.*$" contains=csXmlLineCommentLeader,@csXml,@Spell keepend
syn match csXmlBlockCommentMiddle "^\s*\zs\*" contained
syn region csXmlBlockComment start="/\*\*" end="\*/" contains=@csXml,@Spell,csXmlBlockCommentMiddle keepend
syn include @csXml syntax/xml.vim
hi def link xmlRegion Comment
" Since syntax/xml.vim contains `syn spell toplevel`, we need to set it back to `default` here.
syn spell default
" [1] 9.5 Pre-processing directives
syn region csPreCondit start="^\s*#\s*\%(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\|pragma\)\>" skip="\\$" end="$" contains=csComment keepend
syn region csRegion matchgroup=csPreCondit start="^\s*#\s*region.*$" end="^\s*#\s*endregion" transparent fold contains=TOP
syn region csSummary start="^\s*/// <summary" end="^\%\(\s*///\)\@!" transparent fold keepend
" Pre-processing directives
syn region csPreProcDeclaration start="^\s*\zs#\s*\%(define\|undef\)\>" end="$" contains=csLineComment keepend
syn region csPreProcConditional start="^\s*\zs#\s*\%(if\|elif\)\>" end="$" contains=csLineComment keepend
syn region csPreProcConditional start="^\s*\zs#\s*\%(else\|endif\)\>" end="$" contains=csLineComment keepend
syn region csPreProcLine start="^\s*\zs#\s*line\>" end="$" contains=csLineComment keepend
syn region csPreProcDiagnostic start="^\s*\zs#\s*\%(error\|warning\)\>" end="$"
syn region csPreProcConditionalSection matchgroup=csPreProcRegion start="^\s*#\s*region\>.*" end="^\s*#\s*endregion\>.*" transparent fold contains=TOP
syn region csPreProcPragma start="^\s*\zs#\s*pragma\>" end="$" contains=csLineComment keepend
syn region csPreProcNullable start="^\s*\zs#\s*nullable\>" end="$" contains=csLineComment keepend
if expand('%:e') == 'csx' || getline('1') =~ '^#!.*\<dotnet-script\>'
syn region csPreProcInclude start="^\s*\zs#\s*\%(load\|r\)\>" end="$" contains=csLineComment keepend
syn match csShebang "\%^#!.*" display
endif
syn region csClassType start="@\@1<!\<class\>"hs=s+6 end="[:\n{]"me=e-1 contains=csClass
syn cluster csPreProcessor contains=csPreProc.*
syn region csClassType start="\<class\>"hs=s+6 end=">" end="[:{]"me=e-1 contains=csClass
" csUserType may be defined by user scripts/plugins - it should be contained in csNewType
syn region csNewType start="@\@1<!\<new\>"hs=s+4 end="[;\n{(<\[]"me=e-1 contains=csNew,csUserType
syn region csNewType start="\<new\>"hs=s+4 end="[;\n{(<\[]"me=e-1 contains=csNew,@csNamespaceAlias,csUserType
syn region csIsType start=" is "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs
syn region csIsType start=" as "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs
syn keyword csNew new contained
syn keyword csClass class contained
syn keyword csIsAs is as
syn keyword csBoolean false true
syn keyword csNull null
" Strings and constants
syn match csSpecialError "\\." contained
syn match csSpecialCharError "[^']" contained
" [1] 9.4.4.4 Character literals
syn match csSpecialChar +\\["\\'0abfnrtvx]+ contained display
syn match csUnicodeNumber +\\x\x\{2,4}+ contained contains=csUnicodeSpecifier display
" Character literals
syn match csSpecialChar +\\["\\'0abfnrtv]+ contained display
syn match csUnicodeNumber +\\x\x\{1,4}+ contained contains=csUnicodeSpecifier display
syn match csUnicodeNumber +\\u\x\{4}+ contained contains=csUnicodeSpecifier display
syn match csUnicodeNumber +\\U\x\{8}+ contained contains=csUnicodeSpecifier display
syn match csUnicodeSpecifier +\\[uU]+ contained display
syn match csUnicodeNumber +\\U00\x\{6}+ contained contains=csUnicodeSpecifier display
syn match csUnicodeSpecifier +\\[uUx]+ contained display
syn region csString matchgroup=csQuote start=+"+ end=+"+ end=+$+ extend contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
syn match csCharacter "'[^']*'" contains=csSpecialChar,csSpecialCharError,csUnicodeNumber display
syn match csCharacter "'\\''" contains=csSpecialChar display
syn match csCharacter "'[^\\]'" display
syn match csNumber "\<0[0-7]*[lL]\=\>" display
syn match csNumber "\<0[xX][[:xdigit:]_]\+[lL]\=\>" display
syn match csNumber "\<0[bB][01_]\+[lL]\=\>" display
syn match csNumber "\<[[:digit:]_]\+[lL]\=\>" display
syn match csNumber "\<[[:digit:]_]\+\.[[:digit:]_]*\%\([eE][-+]\=[[:digit:]_]\+\)\=[fFdDmM]\=" display
syn match csNumber "\.[[:digit:]_]\+\%\([eE][-+]\=[[:digit:]_]\+\)\=[fFdDmM]\=" display
syn match csNumber "\<[[:digit:]_]\+[eE][-+]\=[[:digit:]_]\+[fFdDmM]\=\>" display
syn match csNumber "\<[[:digit:]_]\+\%\([eE][-+]\=[[:digit:]_]\+\)\=[fFdDmM]\>" display
" Numbers
syn case ignore
syn match csInteger "\<0b[01_]*[01]\%([lu]\|lu\|ul\)\=\>" display
syn match csInteger "\<\d\+\%(_\+\d\+\)*\%([lu]\|lu\|ul\)\=\>" display
syn match csInteger "\<0x[[:xdigit:]_]*\x\%([lu]\|lu\|ul\)\=\>" display
syn match csReal "\<\d\+\%(_\+\d\+\)*\.\d\+\%(_\+\d\+\)*\%\(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=" display
syn match csReal "\.\d\+\%(_\+\d\+\)*\%(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=\>" display
syn match csReal "\<\d\+\%(_\+\d\+\)*e[-+]\=\d\+\%(_\+\d\+\)*[fdm]\=\>" display
syn match csReal "\<\d\+\%(_\+\d\+\)*[fdm]\>" display
syn case match
syn cluster csNumber contains=csInteger,csReal
syn region csInterpolatedString matchgroup=csQuote start=+\$"+ end=+"+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
syn region csInterpolation matchgroup=csInterpolationDelimiter start=+{+ end=+}+ keepend contained contains=@csAll,csBraced,csBracketed,csInterpolationAlign,csInterpolationFormat
syn match csEscapedInterpolation "{{" transparent contains=NONE display
syn match csEscapedInterpolation "}}" transparent contains=NONE display
syn region csInterpolationAlign matchgroup=csInterpolationAlignDel start=+,+ end=+}+ end=+:+me=e-1 contained contains=csNumber,csConstant,csCharacter,csParens,csOpSymbols,csString,csBracketed display
syn region csInterpolationAlign matchgroup=csInterpolationAlignDel start=+,+ end=+}+ end=+:+me=e-1 contained contains=@csNumber,csBoolean,csConstant,csCharacter,csParens,csOpSymbols,csString,csBracketed display
syn match csInterpolationFormat +:[^}]\+}+ contained contains=csInterpolationFormatDel display
syn match csInterpolationAlignDel +,+ contained display
syn match csInterpolationFormatDel +:+ contained display
syn region csVerbatimString matchgroup=csQuote start=+@"+ end=+"+ skip=+""+ extend contains=csVerbatimQuote,@Spell
syn match csVerbatimQuote +""+ contained
syn match csQuoteError +@$"+he=s+2,me=s+2
syn region csInterVerbString matchgroup=csQuote start=+\$@"+ end=+"+ skip=+""+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,csVerbatimQuote,@Spell
syn region csInterVerbString matchgroup=csQuote start=+$@"+ start=+@$"+ end=+"+ skip=+""+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,csVerbatimQuote,@Spell
syn cluster csString contains=csString,csInterpolatedString,csVerbatimString,csInterVerbString
syn cluster csLiteral contains=csBoolean,@csNumber,csCharacter,@csString,csNull
syn region csBracketed matchgroup=csParens start=+(+ end=+)+ extend contained transparent contains=@csAll,csBraced,csBracketed
syn region csBraced matchgroup=csParens start=+{+ end=+}+ extend contained transparent contains=@csAll,csBraced,csBracketed
syn cluster csAll contains=csCharacter,csClassType,csComment,csContextualStatement,csEndColon,csIsType,csLabel,csLogicSymbols,csNewType,csConstant,csNumber,csOpSymbols,csOperatorError,csParens,csPreCondit,csRegion,csString,csSummary,csType,csUnicodeNumber,csUnicodeSpecifier,csInterpolatedString,csVerbatimString,csInterVerbString,csUserType,csUserIdentifier,csUserInterface,csUserMethod
syn cluster csAll contains=@csLiteral,csClassType,@csComment,csEndColon,csIsType,csLabel,csLogicSymbols,csNewType,csOpSymbols,csParens,@csPreProcessor,csSummary,@csNamespaceAlias,csType,csUnicodeNumber,csUserType,csUserIdentifier,csUserInterface,csUserMethod
" Keyword identifiers
syn match csIdentifier "@\h\w*"
" The default highlighting.
hi def link csType Type
hi def link csClassType Type
hi def link csIsType Type
hi def link csStorage Structure
hi def link csClass Structure
hi def link csRepeat Repeat
hi def link csConditional Conditional
hi def link csLabel Label
hi def link csModifier StorageClass
hi def link csConstant Constant
hi def link csException Exception
hi def link csTypeOf Keyword
hi def link csTypeOfStatement Typedef
hi def link csUnspecifiedStatement Statement
hi def link csUnsupportedStatement Statement
hi def link csUnspecifiedKeyword Keyword
hi def link csGlobalNamespaceAlias Include
hi def link csType Type
hi def link csClassType Type
hi def link csIsType Type
hi def link csStorage Structure
hi def link csClass Structure
hi def link csNew Statement
hi def link csLinq Statement
hi def link csIsAs Keyword
hi def link csAsync Keyword
hi def link csContextualStatement Statement
hi def link csOperatorError Error
hi def link csAccessor Keyword
hi def link csAccess Keyword
hi def link csLinq Statement
hi def link csStatement Statement
hi def link csRepeat Repeat
hi def link csConditional Conditional
hi def link csLabel Label
hi def link csException Exception
hi def link csModifier StorageClass
hi def link csAccessModifier csModifier
hi def link csAsyncModifier csModifier
hi def link csManagedModifier csModifier
hi def link csUsingModifier csModifier
hi def link csTodo Todo
hi def link csComment Comment
hi def link csLineComment csComment
hi def link csBlockComment csComment
hi def link csKeywordOperator Keyword
hi def link csAsyncOperator csKeywordOperator
hi def link csTypeOf csKeywordOperator
hi def link csTypeOfOperand Typedef
hi def link csTypeOfError Error
hi def link csOpSymbols Operator
hi def link csLogicSymbols Operator
@ -193,15 +276,29 @@ hi def link csSpecialError Error
hi def link csSpecialCharError Error
hi def link csString String
hi def link csQuote String
hi def link csQuoteError Error
hi def link csInterpolatedString String
hi def link csVerbatimString String
hi def link csInterVerbString String
hi def link csVerbatimQuote SpecialChar
hi def link csPreCondit PreCondit
hi def link csPreProc PreProc
hi def link csPreProcDeclaration Define
hi def link csPreProcConditional PreCondit
hi def link csPreProcLine csPreProc
hi def link csPreProcDiagnostic csPreProc
hi def link csPreProcRegion csPreProc
hi def link csPreProcPragma csPreProc
hi def link csPreProcNullable csPreProc
hi def link csPreProcInclude csPreProc
hi def link csShebang csPreProc
hi def link csConstant Constant
hi def link csNull Constant
hi def link csBoolean Boolean
hi def link csCharacter Character
hi def link csSpecialChar SpecialChar
hi def link csNumber Number
hi def link csInteger Number
hi def link csReal Float
hi def link csUnicodeNumber SpecialChar
hi def link csUnicodeSpecifier SpecialChar
hi def link csInterpolationDelimiter Delimiter
@ -212,9 +309,12 @@ hi def link csInterpolationFormatDel csInterpolationDelimiter
hi def link csGenericBraces csBraces
" xml markup
hi def link csXmlCommentLeader Comment
hi def link csXmlComment Comment
hi def link csXmlLineCommentLeader Comment
hi def link csXmlLineComment Comment
hi def link csXmlBlockComment Comment
hi def link csXmlBlockCommentMiddle csXmlBlockComment
hi def link csXmlTag Statement
hi def link csXmlAttrib Statement
let b:current_syntax = 'cs'

View File

@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
" Last Change: 2022 May 13
" Last Change: 2022 May 15
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@ -215,7 +215,7 @@ hi def link helpError Error
hi def link helpTodo Todo
hi def link helpURL String
if expand('%:p') =~ '[/\\]doc[/\\]syntax.txt'
if has('textprop') && expand('%:p') =~ '[/\\]doc[/\\]syntax.txt'
" highlight groups with their respective color
import 'dist/vimhelp.vim'
call vimhelp.HighlightGroups()

View File

@ -3,7 +3,7 @@
" Original Author: Mohamed Boughaba <mohamed dot bgb at gmail dot com>
" Maintainer: Quentin Hibon (github user hiqua)
" Version: 0.4
" Last Change: 2022 May 05
" Last Change: 2022 Jun 05
" References:
" http://i3wm.org/docs/userguide.html#configuring
@ -17,9 +17,6 @@ endif
scriptencoding utf-8
" Error
syn match i3ConfigError /.*/
" Todo
syn keyword i3ConfigTodo TODO FIXME XXX contained
@ -180,13 +177,12 @@ syn match i3ConfigDrawingMarks /^\s*show_marks\s\+\(yes\|no\)\s\?$/ contains=i3C
" Group mode/bar
syn keyword i3ConfigBlockKeyword mode bar colors i3bar_command status_command position exec mode hidden_state modifier id position output background statusline tray_output tray_padding separator separator_symbol workspace_min_width workspace_buttons strip_workspace_numbers binding_mode_indicator focused_workspace active_workspace inactive_workspace urgent_workspace binding_mode contained
syn region i3ConfigBlock start=+.*s\?{$+ end=+^}$+ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
syn region i3ConfigBlock start=+^\s*[^#]*s\?{$+ end=+^\s*[^#]*}$+ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
" Line continuation
syn region i3ConfigLineCont start=/^.*\\$/ end=/^.*$/ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
" Define the highlighting.
hi def link i3ConfigError Error
hi def link i3ConfigTodo Todo
hi def link i3ConfigComment Comment
hi def link i3ConfigFontContent Type

View File

@ -2,7 +2,7 @@
" Language: Java
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: https://github.com/fleiner/vim/blob/master/runtime/syntax/java.vim
" Last Change: 2018 July 26
" Last Change: 2022 Jun 08
" Please check :help java.vim for comments on some of the options available.
@ -23,8 +23,6 @@ set cpo&vim
syn match javaError "[\\@`]"
syn match javaError "<<<\|\.\.\|=>\|||=\|&&=\|\*\/"
syn match javaOK "\.\.\."
" use separate name so that it can be deleted in javacc.vim
syn match javaError2 "#\|=<"
hi def link javaError2 javaError
@ -59,8 +57,12 @@ syn match javaUserLabelRef "\k\+" contained
syn match javaVarArg "\.\.\."
syn keyword javaScopeDecl public protected private abstract
function s:isModuleInfoDeclarationCurrentBuffer() abort
return fnamemodify(bufname("%"), ":t") =~ '^module-info\%(\.class\>\)\@!'
endfunction
" Java Modules(Since Java 9, for "module-info.java" file)
if fnamemodify(bufname("%"), ":t") == "module-info.java"
if s:isModuleInfoDeclarationCurrentBuffer()
syn keyword javaModuleStorageClass module transitive
syn keyword javaModuleStmt open requires exports opens uses provides
syn keyword javaModuleExternal to with
@ -72,20 +74,42 @@ if exists("java_highlight_java_lang_ids")
endif
if exists("java_highlight_all") || exists("java_highlight_java") || exists("java_highlight_java_lang")
" java.lang.*
syn match javaLangClass "\<System\>"
syn keyword javaR_JavaLang NegativeArraySizeException ArrayStoreException IllegalStateException RuntimeException IndexOutOfBoundsException UnsupportedOperationException ArrayIndexOutOfBoundsException ArithmeticException ClassCastException EnumConstantNotPresentException StringIndexOutOfBoundsException IllegalArgumentException IllegalMonitorStateException IllegalThreadStateException NumberFormatException NullPointerException TypeNotPresentException SecurityException
"
" The keywords of javaR_JavaLang, javaC_JavaLang, javaE_JavaLang,
" and javaX_JavaLang are sub-grouped according to the Java version
" of their introduction, and sub-group keywords (that is, class
" names) are arranged in alphabetical order, so that future newer
" keywords can be pre-sorted and appended without disturbing
" the current keyword placement. The below _match_es follow suit.
syn keyword javaR_JavaLang ArithmeticException ArrayIndexOutOfBoundsException ArrayStoreException ClassCastException IllegalArgumentException IllegalMonitorStateException IllegalThreadStateException IndexOutOfBoundsException NegativeArraySizeException NullPointerException NumberFormatException RuntimeException SecurityException StringIndexOutOfBoundsException IllegalStateException UnsupportedOperationException EnumConstantNotPresentException TypeNotPresentException IllegalCallerException LayerInstantiationException
syn cluster javaTop add=javaR_JavaLang
syn cluster javaClasses add=javaR_JavaLang
hi def link javaR_JavaLang javaR_Java
syn keyword javaC_JavaLang Process RuntimePermission StringKeySet CharacterData01 Class ThreadLocal ThreadLocalMap CharacterData0E Package Character StringCoding Long ProcessImpl ProcessEnvironment Short AssertionStatusDirectives 1PackageInfoProxy UnicodeBlock InheritableThreadLocal AbstractStringBuilder StringEnvironment ClassLoader ConditionalSpecialCasing CharacterDataPrivateUse StringBuffer StringDecoder Entry StringEntry WrappedHook StringBuilder StrictMath State ThreadGroup Runtime CharacterData02 MethodArray Object CharacterDataUndefined Integer Gate Boolean Enum Variable Subset StringEncoder Void Terminator CharsetSD IntegerCache CharacterCache Byte CharsetSE Thread SystemClassLoaderAction CharacterDataLatin1 StringValues StackTraceElement Shutdown ShortCache String ConverterSD ByteCache Lock EnclosingMethodInfo Math Float Value Double SecurityManager LongCache ProcessBuilder StringEntrySet Compiler Number UNIXProcess ConverterSE ExternalData CaseInsensitiveComparator CharacterData00 NativeLibrary
" Member enumerations:
syn match javaC_JavaLang "\%(\<Thread\.\)\@<=\<State\>"
syn match javaC_JavaLang "\%(\<Character\.\)\@<=\<UnicodeScript\>"
syn match javaC_JavaLang "\%(\<ProcessBuilder\.Redirect\.\)\@<=\<Type\>"
syn match javaC_JavaLang "\%(\<StackWalker\.\)\@<=\<Option\>"
syn match javaC_JavaLang "\%(\<System\.Logger\.\)\@<=\<Level\>"
" Member classes:
syn match javaC_JavaLang "\%(\<Character\.\)\@<=\<Subset\>"
syn match javaC_JavaLang "\%(\<Character\.\)\@<=\<UnicodeBlock\>"
syn match javaC_JavaLang "\%(\<ProcessBuilder\.\)\@<=\<Redirect\>"
syn match javaC_JavaLang "\%(\<ModuleLayer\.\)\@<=\<Controller\>"
syn match javaC_JavaLang "\%(\<Runtime\.\)\@<=\<Version\>"
syn match javaC_JavaLang "\%(\<System\.\)\@<=\<LoggerFinder\>"
syn match javaC_JavaLang "\%(\<Enum\.\)\@<=\<EnumDesc\>"
syn keyword javaC_JavaLang Boolean Character Class ClassLoader Compiler Double Float Integer Long Math Number Object Process Runtime SecurityManager String StringBuffer Thread ThreadGroup Byte Short Void InheritableThreadLocal Package RuntimePermission ThreadLocal StrictMath StackTraceElement Enum ProcessBuilder StringBuilder ClassValue Module ModuleLayer StackWalker Record
syn match javaC_JavaLang "\<System\>" " See javaDebug.
syn cluster javaTop add=javaC_JavaLang
syn cluster javaClasses add=javaC_JavaLang
hi def link javaC_JavaLang javaC_Java
syn keyword javaE_JavaLang IncompatibleClassChangeError InternalError UnknownError ClassCircularityError AssertionError ThreadDeath IllegalAccessError NoClassDefFoundError ClassFormatError UnsupportedClassVersionError NoSuchFieldError VerifyError ExceptionInInitializerError InstantiationError LinkageError NoSuchMethodError Error UnsatisfiedLinkError StackOverflowError AbstractMethodError VirtualMachineError OutOfMemoryError
syn keyword javaE_JavaLang AbstractMethodError ClassCircularityError ClassFormatError Error IllegalAccessError IncompatibleClassChangeError InstantiationError InternalError LinkageError NoClassDefFoundError NoSuchFieldError NoSuchMethodError OutOfMemoryError StackOverflowError ThreadDeath UnknownError UnsatisfiedLinkError VerifyError VirtualMachineError ExceptionInInitializerError UnsupportedClassVersionError AssertionError BootstrapMethodError
syn cluster javaTop add=javaE_JavaLang
syn cluster javaClasses add=javaE_JavaLang
hi def link javaE_JavaLang javaE_Java
syn keyword javaX_JavaLang CloneNotSupportedException Exception NoSuchMethodException IllegalAccessException NoSuchFieldException Throwable InterruptedException ClassNotFoundException InstantiationException
syn keyword javaX_JavaLang ClassNotFoundException CloneNotSupportedException Exception IllegalAccessException InstantiationException InterruptedException NoSuchMethodException Throwable NoSuchFieldException ReflectiveOperationException
syn cluster javaTop add=javaX_JavaLang
syn cluster javaClasses add=javaX_JavaLang
hi def link javaX_JavaLang javaX_Java
@ -118,7 +142,7 @@ if exists("java_space_errors")
endif
endif
syn region javaLabelRegion transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":" contains=javaNumber,javaCharacter,javaString
syn region javaLabelRegion transparent matchgroup=javaLabel start="\<case\>" end="->" matchgroup=NONE end=":" contains=javaNumber,javaCharacter,javaString
syn match javaUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel
syn keyword javaLabel default
@ -126,7 +150,7 @@ syn keyword javaLabel default
" annoying. Was: if !exists("java_allow_cpp_keywords")
" The following cluster contains all java groups except the contained ones
syn cluster javaTop add=javaExternal,javaError,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaClassDecl,javaClassDecl,javaScopeDecl,javaError,javaError2,javaUserLabel,javaLangObject,javaAnnotation,javaVarArg
syn cluster javaTop add=javaExternal,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaScopeDecl,javaError2,javaUserLabel,javaLangObject,javaAnnotation,javaVarArg
" Comments
@ -153,7 +177,7 @@ syn cluster javaTop add=javaComment,javaLineComment
if !exists("java_ignore_javadoc") && main_syntax != 'jsp'
syntax case ignore
" syntax coloring for javadoc comments (HTML)
syntax include @javaHtml <sfile>:p:h/html.vim
syntax include @javaHtml syntax/html.vim
unlet b:current_syntax
" HTML enables spell checking for all text that is not in a syntax item. This
" is wrong for Java (all identifiers would be spell-checked), so it's undone
@ -336,7 +360,7 @@ hi def link htmlComment Special
hi def link htmlCommentPart Special
hi def link javaSpaceError Error
if fnamemodify(bufname("%"), ":t") == "module-info.java"
if s:isModuleInfoDeclarationCurrentBuffer()
hi def link javaModuleStorageClass StorageClass
hi def link javaModuleStmt Statement
hi def link javaModuleExternal Include
@ -348,6 +372,7 @@ if main_syntax == 'java'
unlet main_syntax
endif
delfunction! s:isModuleInfoDeclarationCurrentBuffer
let b:spell_options="contained"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -7,7 +7,7 @@
" (ss) repaired several quoting and grouping glitches
" (ss) fixed regex parsing issue with multiple qualifiers [gi]
" (ss) additional factoring of keywords, globals, and members
" Last Change: 2021 Mar 30
" Last Change: 2022 Jun 09
" 2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke)
" 2018 Apr 14: adjusted javaScriptRegexpString (LongJohnCoder)
@ -39,9 +39,16 @@ syn region javaScriptStringT start=+`+ skip=+\\\\\|\\`+ end=+`+ contai
syn region javaScriptEmbed start=+${+ end=+}+ contains=@javaScriptEmbededExpr
" number handling by Christopher Leonard chris.j.leonard@gmx.com
syn match javaScriptSpecialCharacter "'\\.'"
syn match javaScriptNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
syn match javaScriptNumber "-\=\<\d\+\%(_\d\+\)*\>"
syn match javaScriptNumber "\<0[bB][0-1]\+\(_[0-1]\+\)*\>"
syn match javaScriptNumber "\<0[oO][0-7]\+\(_[0-7]\+\)*\>"
syn match javaScriptNumber "\<0\([0-7]\+\(_[0-7]\+\)*\)\?\>"
syn match javaScriptNumber "\<0[xX][0-9a-fA-F]\+\(_[0-9a-fA-F]\+\)*\>"
syn match javaScriptNumber "\<\d\+\(_\d\+\)*[eE][+-]\?\d\+\>"
syn match javaScriptNumber "\<[1-9]\d*\(_\d\+\)*\(\.\(\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\)\?\)\?\>"
syn match javaScriptNumber "\<\(\d\+\(_\d\+\)*\)\?\.\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\>"
syn match javaScriptNumber "\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\)\?\>"
syn region javaScriptRegexpString start=+[,(=+]\s*/[^/*]+ms=e-1,me=e-1 skip=+\\\\\|\\/+ end=+/[gimuys]\{0,2\}\s*$+ end=+/[gimuys]\{0,2\}\s*[+;.,)\]}]+me=e-1 end=+/[gimuys]\{0,2\}\s\+\/+me=e-1 contains=@htmlPreproc,javaScriptComment oneline
syn keyword javaScriptConditional if else switch

View File

@ -2,7 +2,8 @@
" Language: M4
" Maintainer: Claudio Fleiner (claudio@fleiner.com)
" URL: http://www.fleiner.com/vim/syntax/m4.vim
" Last Change: 2005 Jan 15
" (outdated)
" Last Change: 2022 Jun 12
" This file will highlight user function calls if they use only
" capital letters and have at least one argument (i.e. the '('
@ -21,6 +22,7 @@ endif
syn match m4Variable contained "\$\d\+"
syn match m4Special contained "$[@*#]"
syn match m4Comment "\<\(m4_\)\=dnl\>.*" contains=SpellErrors
syn match m4Comment "#.*" contains=SpellErrors
syn match m4Constants "\<\(m4_\)\=__file__"
syn match m4Constants "\<\(m4_\)\=__line__"
syn keyword m4Constants divnum sysval m4_divnum m4_sysval
@ -32,7 +34,7 @@ syn region m4Command matchgroup=m4builtin start="\<\(m4_\)\=\(len\|index\|regex
syn keyword m4Statement divert undivert
syn region m4Command matchgroup=m4Type start="\<\(m4_\)\=\(undefine\|popdef\)("he=e-1 end=")" contains=@m4Top
syn region m4Function matchgroup=m4Type start="\<[_A-Z][_A-Z0-9]*("he=e-1 end=")" contains=@m4Top
syn region m4String start="`" end="'" contained contains=@m4Top,@m4StringContents,SpellErrors
syn region m4String start="`" end="'" contains=SpellErrors
syn cluster m4Top contains=m4Comment,m4Constants,m4Special,m4Variable,m4String,m4Paren,m4Command,m4Statement,m4Function
" Define the default highlighting.

View File

@ -1,11 +1,12 @@
" Vim syntax file
" Language: Mason (Perl embedded in HTML)
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl/tree/master
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2017-09-12
" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Andrew Smith <andrewdsmith@yahoo.com>
" Language: Mason (Perl embedded in HTML)
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2021 Oct 10
" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Andrew Smith <andrewdsmith@yahoo.com>
"
" TODO:
" - Fix <%text> blocks to show HTML tags but ignore Mason tags.
@ -74,6 +75,7 @@ syn cluster masonTop contains=masonLine,masonExpr,masonPerl,masonComp,masonArgs,
" syntax files.
hi def link masonDoc Comment
hi def link masonPod Comment
hi def link podOrdinary masonPod
hi def link masonPerlComment perlComment
let b:current_syntax = "mason"

View File

@ -1,15 +1,17 @@
" Vim syntax file
" Language: Perl 5
" Language: Perl
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: https://github.com/vim-perl/vim-perl/tree/master
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" Last Change: 2020 Apr 15
" License: Vim License (see :help license)
" Last Change: 2021 Oct 7
" Contributors: Andy Lester <andy@petdance.com>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Lukas Mai <l.mai.web.de>
" Nick Hibma <nick@van-laarhoven.org>
" Sonia Heimann <niania@netsurf.org>
" Rob Hoelz <rob@hoelz.ro>
" Doug Kearns <dougkearns@gmail.com>
" and many others.
"
" Please download the most recent version first, before mailing
@ -41,11 +43,11 @@ set cpo&vim
" POD starts with ^=<word> and ends with ^=cut
if !exists("perl_include_pod") || perl_include_pod == 1
if get(g:, 'perl_include_pod', 1)
" Include a while extra syntax file
syn include @Pod syntax/pod.vim
unlet b:current_syntax
if exists("perl_fold")
if get(g:, 'perl_fold', 1)
syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend fold extend
syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend fold extend
else
@ -54,7 +56,7 @@ if !exists("perl_include_pod") || perl_include_pod == 1
endif
else
" Use only the bare minimum of rules
if exists("perl_fold")
if get(g:, 'perl_fold', 1)
syn region perlPOD start="^=[a-z]" end="^=cut" fold
else
syn region perlPOD start="^=[a-z]" end="^=cut"
@ -92,7 +94,7 @@ syn match perlStatementFiles "\<\%(ch\%(dir\|mod\|own\|root\)\|glob\|link\|mkdi
syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
syn match perlStatementFlow "\<\%(caller\|die\|dump\|eval\|exit\|wantarray\|evalbytes\)\>"
syn match perlStatementInclude "\<\%(require\|import\|unimport\)\>"
syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autodie\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|overloading\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autodie\%(::\%(exception\%(::system\)\=\|hints\|skip\)\)\=\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|deprecate\|diagnostics\|encoding\%(::warnings\)\=\|experimental\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|ok\|open\|ops\|overload\|overloading\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
syn match perlStatementProc "\<\%(alarm\|exec\|fork\|get\%(pgrp\|ppid\|priority\)\|kill\|pipe\|set\%(pgrp\|priority\)\|sleep\|system\|times\|wait\%(pid\)\=\)\>"
syn match perlStatementSocket "\<\%(accept\|bind\|connect\|get\%(peername\|sock\%(name\|opt\)\)\|listen\|recv\|send\|setsockopt\|shutdown\|socket\%(pair\)\=\)\>"
syn match perlStatementIPC "\<\%(msg\%(ctl\|get\|rcv\|snd\)\|sem\%(ctl\|get\|op\)\|shm\%(ctl\|get\|read\|write\)\)\>"
@ -138,38 +140,36 @@ syn match perlPackageRef "[$@#%*&]\%(\%(::\|'\)\=\I\i*\%(\%(::\|'\)\I\i*\)*\)\
" If you don't want complex things like @{${"foo"}} to be processed,
" just set the variable "perl_no_extended_vars"...
if !exists("perl_no_scope_in_variables")
syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
if !get(g:, 'perl_no_scope_in_variables', 0)
syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref
syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref
syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref
else
syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref
syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref
syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref
endif
syn match perlVarPlain2 "%[-+]"
if !exists("perl_no_extended_vars")
syn cluster perlExpr contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlArrow,perlBraces
syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contains=perlVarSimpleMemberName contained extend
if !get(g:, 'perl_no_extended_vars', 0)
syn cluster perlExpr contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQ,perlQQ,perlQW,perlQR,perlArrow,perlBraces
syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref contained
syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref contained
syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref contained
syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref contained
syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend
syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend
syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend
syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend
syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref contains=perlVarSimpleMemberName contained extend
syn match perlVarSimpleMemberName "\I\i*" contained
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod,perlPostDeref
syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
syn match perlPostDeref "->\%($#\|[$@%&*]\)\*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
syn region perlPostDeref start="->\%($#\|[$@%&*]\)\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
syn region perlPostDeref matchgroup=perlPostDeref start="->\%($#\|[$@%&*]\){" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend
syn match perlPackageConst "__PACKAGE__" nextgroup=perlPostDeref
syn match perlPostDeref "->\%($#\|[$@%&*]\)\*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlPostDeref
syn region perlPostDeref start="->\%($#\|[$@%&*]\)\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlPostDeref
syn region perlPostDeref matchgroup=perlPostDeref start="->\%($#\|[$@%&*]\){" skip="\\}" end="}" keepend extend contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlPostDeref
endif
" File Descriptors
@ -221,10 +221,16 @@ syn region perlShellCommand matchgroup=perlMatchStartEnd start="`" end="`" cont
" Constants
"
" Numbers
syn match perlNumber "\<\%(0\%(x\x[[:xdigit:]_]*\|b[01][01_]*\|\o[0-7_]*\|\)\|[1-9][[:digit:]_]*\)\>"
syn match perlFloat "\<\d[[:digit:]_]*[eE][\-+]\=\d\+"
syn match perlFloat "\<\d[[:digit:]_]*\.[[:digit:]_]*\%([eE][\-+]\=\d\+\)\="
syn match perlFloat "\.[[:digit:]][[:digit:]_]*\%([eE][\-+]\=\d\+\)\="
syn case ignore
syn match perlNumber "\<\%(0\|[1-9]\%(_\=\d\)*\)\>"
syn match perlNumber "\<0\%(x\x\%(_\=\x\)*\|b[01]\%(_\=[01]\)*\|o\=\%(_\=\o\)*\)\>"
syn match perlFloat "\<\d\%(_\=\d\)*e[-+]\=\d\%(_\=\d\)*"
syn match perlFloat "\<\d\%(_\=\d\)*\.\%(\d\%(_\=\d\)*\)\=\%(e[-+]\=\d\%(_\=\d\)*\)\="
syn match perlFloat "\.\d\%(_\=\d\)*\%(e[-+]\=\d\%(_\=\d\)*\)\="
syn match perlFloat "\<0x\x\%(_\=\x\)*p[-+]\=\d\%(_\=\d\)*"
syn match perlFloat "\<0x\x\%(_\=\x\)*\.\%(\x\%(_\=\x\)*\)\=\%(p[-+]\=\d\%(_\=\d\)*\)\="
syn match perlFloat "\<0x\.\x\%(_\=\x\)*\%(p[-+]\=\d\%(_\=\d\)*\)\="
syn case match
syn match perlString "\<\%(v\d\+\%(\.\d\+\)*\|\d\+\%(\.\d\+\)\{2,}\)\>" contains=perlVStringV
syn match perlVStringV "\<v" contained
@ -242,22 +248,24 @@ syn region perlAnglesDQ start=+<+ end=+>+ extend contained contains=perlAnglesD
" Simple version of searches and matches
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgcn]*+ contains=@perlInterpSQ keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgcn]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgcn]*+ contains=@perlInterpMatch,perlBracesDQ extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgcn]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgcn]*+ contains=@perlInterpMatch,perlBracketsDQ keepend extend
syn match perlMatchModifiers "[msixpadluncgo]\+" contained
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1+ contains=@perlInterpMatch keepend extend nextgroup=perlMatchModifiers
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#+ contains=@perlInterpMatch keepend extend nextgroup=perlMatchModifiers
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'+ contains=@perlInterpSQ keepend extend nextgroup=perlMatchModifiers
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/+ contains=@perlInterpSlash keepend extend nextgroup=perlMatchModifiers
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)+ contains=@perlInterpMatch,perlParensDQ keepend extend nextgroup=perlMatchModifiers
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ extend nextgroup=perlMatchModifiers
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ keepend extend nextgroup=perlMatchModifiers
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ keepend extend nextgroup=perlMatchModifiers
" Below some hacks to recognise the // variant. This is virtually impossible to catch in all
" cases as the / is used in so many other ways, but these should be the most obvious ones.
syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash extend
syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/+ contains=@perlInterpSlash extend nextgroup=perlMatchModifiers
" Substitutions
" perlMatch is the first part, perlSubstitution* is the substitution part
syn match perlSubstitutionModifiers "[msixpadluncgero]\+" contained
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1+me=e-1 contains=@perlInterpMatch nextgroup=perlSubstitutionGQQ keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*'+ end=+'+me=e-1 contains=@perlInterpSQ nextgroup=perlSubstitutionSQ keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*/+ end=+/+me=e-1 contains=@perlInterpSlash nextgroup=perlSubstitutionGQQ keepend extend
@ -266,38 +274,39 @@ syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcern]*+ keepend contained contains=@perlInterpDQ extend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcern]*+ contained contains=@perlInterpSQ keepend extend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1+ keepend contained contains=@perlInterpDQ extend nextgroup=perlSubstitutionModifiers
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)+ contained contains=@perlInterpDQ,perlParensDQ keepend extend nextgroup=perlSubstitutionModifiers
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\]+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend nextgroup=perlSubstitutionModifiers
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend nextgroup=perlSubstitutionModifiers
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend nextgroup=perlSubstitutionModifiers
syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'+ contained contains=@perlInterpSQ keepend extend nextgroup=perlSubstitutionModifiers
" Translations
" perlMatch is the first part, perlTranslation* is the second, translator part.
syn match perlTranslationModifiers "[cdsr]\+" contained
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\>\s*\z([^[:space:]([{<#]\)+ end=+\z1+me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationGQ
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)#+ end=+#+me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationGQ
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]([{<]\)+ end=+\z1[cdsr]*+ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+(+ end=+)[cdsr]*+ contains=perlParensSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][cdsr]*+ contains=perlBracketsSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+{+ end=+}[cdsr]*+ contains=perlBracesSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+<+ end=+>[cdsr]*+ contains=perlAnglesSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]([{<]\)+ end=+\z1+ contained nextgroup=perlTranslationModifiers
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+(+ end=+)+ contains=perlParensSQ contained nextgroup=perlTranslationModifiers
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\[+ end=+\]+ contains=perlBracketsSQ contained nextgroup=perlTranslationModifiers
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+{+ end=+}+ contains=perlBracesSQ contained nextgroup=perlTranslationModifiers
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+<+ end=+>+ contains=perlAnglesSQ contained nextgroup=perlTranslationModifiers
" Strings and q, qq, qw and qr expressions
syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQ keepend extend
syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@perlInterpDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q#+ end=+#+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
syn region perlQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend extend
syn region perlQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q#+ end=+#+ contains=@perlInterpSQ keepend extend
syn region perlQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend extend
syn region perlQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend extend
syn region perlQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]#+ end=+#+ contains=@perlInterpDQ keepend extend
@ -306,48 +315,83 @@ syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*{+ end=+}+ contains=@perlInterpDQ,perlBracesDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*<+ end=+>+ contains=@perlInterpDQ,perlAnglesDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw#+ end=+#+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
syn region perlQW matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend extend
syn region perlQW matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw#+ end=+#+ contains=@perlInterpSQ keepend extend
syn region perlQW matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend extend
syn region perlQW matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend extend
syn region perlQW matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQW matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosxdual]*+ contains=@perlInterpMatch keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosxdual]*+ contains=@perlInterpSlash keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosxdual]*+ contains=@perlInterpMatch keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosxdual]*+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosxdual]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
syn match perlQRModifiers "[msixpadluno]\+" contained
syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1+ contains=@perlInterpMatch keepend extend nextgroup=perlQRModifiers
syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/+ contains=@perlInterpSlash keepend extend nextgroup=perlQRModifiers
syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#+ contains=@perlInterpMatch keepend extend nextgroup=perlQRModifiers
syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'+ contains=@perlInterpSQ keepend extend nextgroup=perlQRModifiers
syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)+ contains=@perlInterpMatch,perlParensDQ keepend extend nextgroup=perlQRModifiers
" A special case for qr{}, qr<> and qr[] which allows for comments and extra whitespace in the pattern
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosxdual]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosxdual]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosxdual]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend
syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend nextgroup=perlQRModifiers
syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend nextgroup=perlQRModifiers
syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend nextgroup=perlQRModifiers
" Constructs such as print <<EOF [...] EOF, 'here' documents
"
" XXX Any statements after the identifier are in perlString colour (i.e.
" 'if $a' in 'print <<EOF if $a'). This is almost impossible to get right it
" seems due to the 'auto-extending nature' of regions.
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*""+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*''+ end=+$+ contains=@perlTop oneline
if exists("perl_fold")
syn region perlHereDoc start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
" XXX Indented heredocs are not perfect - they sometimes seem to take a moment
" to update if switched from double to single quotes and vice versa.
"
" Note: bare delimiters such as << to mean <<"" are not supported. These are a
" fatal error since 5.28 and, apparently, a rarely used feature.
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\~\=\I\i*+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\~\=\\\I\i*+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\~\=\s*"[^\\"]*\%(\\.[^\\"]*\)*"+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\~\=\s*'[^\\']*\%(\\.[^\\']*\)*'+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\~\=\s*`[^\\`]*\%(\\.[^\\`]*\)*`+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\~\=\s*""+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\~\=\s*''+ end=+$+ contains=@perlTop oneline
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\~\=\s*``+ end=+$+ contains=@perlTop oneline
if get(g:, 'perl_fold', 0)
syn region perlHereDoc start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
syn region perlHereDoc start=+<<\\\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ fold extend
syn region perlHereDoc start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
syn region perlHereDoc start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ fold extend
syn region perlHereDoc start=+<<\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine fold extend
syn region perlHereDoc start=+<<\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine fold extend
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL fold extend
syn region perlHereDoc start=+<<\s*`\z([^\\`]*\%(\\.[^\\`]*\)*\)`+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
syn region perlHereDoc start=+<<\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine fold extend
syn region perlHereDoc start=+<<\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine fold extend
syn region perlHereDoc start=+<<\s*``+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine fold extend
else
syn region perlHereDoc start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
syn region perlHereDoc start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
syn region perlHereDoc start=+<<\\\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ
syn region perlHereDoc start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
syn region perlHereDoc start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ
syn region perlHereDoc start=+<<\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine
syn region perlHereDoc start=+<<\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL
syn region perlHereDoc start=+<<\s*`\z([^\\`]*\%(\\.[^\\`]*\)*\)`+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
syn region perlHereDoc start=+<<\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine
syn region perlHereDoc start=+<<\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine
syn region perlHereDoc start=+<<\s*``+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine
endif
if get(g:, 'perl_fold', 0)
syn region perlIndentedHereDoc start=+<<\~\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\s*\z1$+ contains=perlIndentedHereDocStart,@perlInterpDQ fold extend
syn region perlIndentedHereDoc start=+<<\~\\\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\s*\z1$+ contains=perlIndentedHereDocStart,@perlInterpSQ fold extend
syn region perlIndentedHereDoc start=+<<\~\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\s*\z1$+ contains=perlIndentedHereDocStart,@perlInterpDQ fold extend
syn region perlIndentedHereDoc start=+<<\~\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\s*\z1$+ contains=perlIndentedHereDocStart,@perlInterpSQ fold extend
syn region perlIndentedHereDoc start=+<<\~\s*`\z([^\\`]*\%(\\.[^\\`]*\)*\)`+ matchgroup=perlStringStartEnd end=+^\s*\z1$+ contains=perlIndentedHereDocStart,@perlInterpDQ fold extend
syn region perlIndentedHereDoc start=+<<\~\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlIndentedHereDocStart,@perlInterpDQ,perlNotEmptyLine fold extend
syn region perlIndentedHereDoc start=+<<\~\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlIndentedHereDocStart,@perlInterpSQ,perlNotEmptyLine fold extend
syn region perlIndentedHereDoc start=+<<\~\s*``+ matchgroup=perlStringStartEnd end=+^$+ contains=perlIndentedHereDocStart,@perlInterpDQ,perlNotEmptyLine fold extend
else
syn region perlIndentedHereDoc start=+<<\~\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\s*\z1$+ contains=perlHereDocStart,@perlInterpDQ
syn region perlIndentedHereDoc start=+<<\~\\\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\s*\z1$+ contains=perlHereDocStart,@perlInterpSQ
syn region perlIndentedHereDoc start=+<<\~\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\s*\z1$+ contains=perlHereDocStart,@perlInterpDQ
syn region perlIndentedHereDoc start=+<<\~\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\s*\z1$+ contains=perlHereDocStart,@perlInterpSQ
syn region perlIndentedHereDoc start=+<<\~\s*`\z([^\\`]*\%(\\.[^\\`]*\)*\)`+ matchgroup=perlStringStartEnd end=+^\s*\z1$+ contains=perlHereDocStart,@perlInterpDQ
syn region perlIndentedHereDoc start=+<<\~\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine
syn region perlIndentedHereDoc start=+<<\~\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine
syn region perlIndentedHereDoc start=+<<\~\s*``+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine
endif
@ -357,24 +401,15 @@ syn match perlPackageDecl "\<package\s\+\%(\h\|::\)\%(\w\|::\)*" contains=per
syn keyword perlStatementPackage package contained
" Functions
" sub [name] [(prototype)] {
"
syn match perlSubError "[^[:space:];{#]" contained
syn match perlSubAttributesCont "\h\w*\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained
syn region perlSubAttributesCont matchgroup=perlSubAttributesCont start="\h\w*(" end=")\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained contains=@perlInterpSQ,perlParensSQ
syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError,perlFakeGroup
syn match perlSubAttributes "" contained nextgroup=perlSubError
syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
if get(g:, "perl_sub_signatures", 0)
syn match perlSignature +(\_[^)]*)\_s*+ nextgroup=perlSubAttributes,perlComment contained
syn match perlSubSignature "\s*([^)]*)" contained extend
else
syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
syn match perlSubPrototype +(\_[^)]*)\_s*+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
syn match perlSubPrototype "\s*([\\$@%&*\[\];]*)" contained extend
endif
syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlSignature,perlSubAttributes,perlComment
syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
syn match perlSubAttribute "\s*:\s*\h\w*\%(([^)]*)\|\)" contained extend
syn match perlSubName "\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\s*" contained extend
syn region perlSubDeclaration start="" end="[;{]" contains=perlSubName,perlSubPrototype,perlSubAttribute,perlSubSignature,perlComment contained transparent
syn match perlFunction "\<sub\>\_s*" nextgroup=perlSubDeclaration
" The => operator forces a bareword to the left of it to be interpreted as
" a string
@ -394,39 +429,68 @@ syn match perlFormatField "@[^A-Za-z_|<>~#*]"me=e-1 contained
syn match perlFormatField "@$" contained
" __END__ and __DATA__ clauses
if exists("perl_fold")
syntax region perlDATA start="^__DATA__$" skip="." end="." contains=@perlDATA fold
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA fold
" Vim excludes empty syn-region end lines from the fold region. This is
" probably a bug and means a DATA section ending with an empty line does not
" have that final line included in the fold.
"
" As a workaround we exploit an unterminated syntax region here with an end
" pattern that will (probably) never match. This forces all lines to be
" included in the fold region. Of course, if it does match then there's
" nothing to work around as it is a non-empty line.
"
" This problem also exists with empty string delimited heredocs but there's no
" known workaround for that case.
if get(g:, 'perl_fold', 0)
syntax region perlDATA matchgroup=perlDATAStart start="^__DATA__$" end="VIM_PERL_EOF\%$" contains=perlPOD,@perlDATA fold
syntax region perlEND matchgroup=perlENDStart start="^__END__$" end="VIM_PERL_EOF\%$" contains=perlPOD,@perlDATA fold
else
syntax region perlDATA start="^__DATA__$" skip="." end="." contains=@perlDATA
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA
syntax region perlDATA matchgroup=perlDATAStart start="^__DATA__$" end="\%$" contains=perlPOD,@perlDATA
syntax region perlEND matchgroup=perlENDStart start="^__END__$" end="\%$" contains=perlPOD,@perlDATA
endif
"
" Folding
if exists("perl_fold")
if get(g:, 'perl_fold', 0)
" Note: this bit must come before the actual highlighting of the "package"
" keyword, otherwise this will screw up Pod lines that match /^package/
if !exists("perl_nofold_packages")
if !get(g:, 'perl_nofold_packages', 0)
syn region perlPackageFold start="^package \S\+;\s*\%(#.*\)\=$" end="^1;\=\s*\%(#.*\)\=$" end="\n\+package"me=s-1 transparent fold keepend
syn region perlPackageFold start="^\z(\s*\)package\s*\S\+\s*{" end="^\z1}" transparent fold keepend
endif
if !exists("perl_nofold_subs")
if !get(g:, 'perl_nofold_subs', 0)
if get(g:, "perl_fold_anonymous_subs", 0)
syn region perlSubFold start="\<sub\>[^{]*{" end="}" transparent fold keepend extend
syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
" EXPLANATION:
" \<sub\> - "sub" keyword
" \_[^;{]* - any characters, including new line, but not ";" or "{", zero or more times
" \%(([\\$@%&*\[\];]*)\)\= - prototype definition, \$@%&*[]; characters between (), zero or 1 times
" \_[^;]* - any characters, including new line, but not ";" or "{", zero or more times
" { - start subroutine block
syn region perlSubFold start="\<sub\>\_[^;{]*\%(([\\$@%&*\[\];]*)\)\=\_[^;{]*{" end="}" transparent fold keepend extend
else
syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend
syn region perlSubFold start="^\z(\s*\)\<\%(BEGIN\|END\|CHECK\|INIT\|UNITCHECK\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend
" EXPLANATION:
" same, as above, but first non-space character after "sub" keyword must
" be [A-Za-z_]
syn region perlSubFold start="\<sub\>\s*\h\_[^;{]*\%(([\\$@%&*\[\];]*)\)\=\_[^;]*{" end="}" transparent fold keepend extend
endif
syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\|UNITCHECK\)\>\_s*{" end="}" transparent fold keepend
endif
if get(g:, 'perl_fold_blocks', 0)
syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)for\%(each\)\=\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
" TODO this is works incorrectly
syn region perlBlockFold start="^\z(\s*\)\%(do\|else\)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*while" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
else
if get(g:, 'perl_fold_do_blocks', 0)
syn region perlDoBlockDeclaration start="" end="{" contains=perlComment contained transparent
syn match perlOperator "\<do\>\_s*" nextgroup=perlDoBlockDeclaration
syn region perlDoBlockFold start="\<do\>\_[^{]*{" end="}" transparent fold keepend extend
endif
endif
if exists("perl_fold_blocks")
syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)for\%(each\)\=\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
syn region perlBlockFold start="^\z(\s*\)\%(do\|else\)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*while" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
endif
setlocal foldmethod=syntax
syn sync fromstart
else
" fromstart above seems to set minlines even if perl_fold is not set.
@ -438,29 +502,28 @@ endif
" The default highlighting.
hi def link perlSharpBang PreProc
hi def link perlControl PreProc
hi def link perlInclude Include
hi def link perlSpecial Special
hi def link perlString String
hi def link perlControl PreProc
hi def link perlInclude Include
hi def link perlSpecial Special
hi def link perlString String
hi def link perlCharacter Character
hi def link perlNumber Number
hi def link perlFloat Float
hi def link perlNumber Number
hi def link perlFloat Float
hi def link perlType Type
hi def link perlIdentifier Identifier
hi def link perlLabel Label
hi def link perlLabel Label
hi def link perlStatement Statement
hi def link perlConditional Conditional
hi def link perlRepeat Repeat
hi def link perlRepeat Repeat
hi def link perlOperator Operator
hi def link perlFunction Keyword
hi def link perlSubName Function
hi def link perlSubName Function
hi def link perlSubPrototype Type
hi def link perlSignature Type
hi def link perlSubAttributes PreProc
hi def link perlSubAttributesCont perlSubAttributes
hi def link perlComment Comment
hi def link perlSubSignature Type
hi def link perlSubAttribute PreProc
hi def link perlComment Comment
hi def link perlTodo Todo
if exists("perl_string_as_statement")
if get(g:, 'perl_string_as_statement', 0)
hi def link perlStringStartEnd perlStatement
else
hi def link perlStringStartEnd perlString
@ -470,21 +533,29 @@ hi def link perlList perlStatement
hi def link perlMisc perlStatement
hi def link perlVarPlain perlIdentifier
hi def link perlVarPlain2 perlIdentifier
hi def link perlArrow perlIdentifier
hi def link perlArrow perlIdentifier
hi def link perlFiledescRead perlIdentifier
hi def link perlFiledescStatement perlIdentifier
hi def link perlVarSimpleMember perlIdentifier
hi def link perlVarSimpleMemberName perlString
hi def link perlVarNotInMatches perlIdentifier
hi def link perlVarSimpleMember perlIdentifier
hi def link perlVarSimpleMemberName perlString
hi def link perlVarNotInMatches perlIdentifier
hi def link perlVarSlash perlIdentifier
hi def link perlQ perlString
hi def link perlQQ perlString
hi def link perlHereDoc perlString
hi def link perlQW perlString
hi def link perlQR perlString
hi def link perlMatchModifiers perlMatchStartEnd
hi def link perlSubstitutionModifiers perlMatchStartEnd
hi def link perlTranslationModifiers perlMatchStartEnd
hi def link perlQRModifiers perlStringStartEnd
hi def link perlHereDoc perlString
hi def link perlIndentedHereDoc perlString
hi def link perlStringUnexpanded perlString
hi def link perlSubstitutionSQ perlString
hi def link perlSubstitutionGQQ perlString
hi def link perlTranslationGQ perlString
hi def link perlMatch perlString
hi def link perlMatchStartEnd perlStatement
hi def link perlSubstitutionSQ perlString
hi def link perlSubstitutionGQQ perlString
hi def link perlTranslationGQ perlString
hi def link perlMatch perlString
hi def link perlMatchStartEnd perlStatement
hi def link perlFormatName perlIdentifier
hi def link perlFormatField perlString
hi def link perlPackageDecl perlType
@ -493,44 +564,48 @@ hi def link perlPackageRef perlType
hi def link perlStatementPackage perlStatement
hi def link perlStatementStorage perlStatement
hi def link perlStatementControl perlStatement
hi def link perlStatementScalar perlStatement
hi def link perlStatementRegexp perlStatement
hi def link perlStatementScalar perlStatement
hi def link perlStatementRegexp perlStatement
hi def link perlStatementNumeric perlStatement
hi def link perlStatementList perlStatement
hi def link perlStatementHash perlStatement
hi def link perlStatementIOfunc perlStatement
hi def link perlStatementList perlStatement
hi def link perlStatementHash perlStatement
hi def link perlStatementIOfunc perlStatement
hi def link perlStatementFiledesc perlStatement
hi def link perlStatementVector perlStatement
hi def link perlStatementFiles perlStatement
hi def link perlStatementFlow perlStatement
hi def link perlStatementVector perlStatement
hi def link perlStatementFiles perlStatement
hi def link perlStatementFlow perlStatement
hi def link perlStatementInclude perlStatement
hi def link perlStatementProc perlStatement
hi def link perlStatementSocket perlStatement
hi def link perlStatementProc perlStatement
hi def link perlStatementSocket perlStatement
hi def link perlStatementIPC perlStatement
hi def link perlStatementNetwork perlStatement
hi def link perlStatementPword perlStatement
hi def link perlStatementTime perlStatement
hi def link perlStatementMisc perlStatement
hi def link perlStatementPword perlStatement
hi def link perlStatementTime perlStatement
hi def link perlStatementMisc perlStatement
hi def link perlStatementIndirObj perlStatement
hi def link perlFunctionName perlIdentifier
hi def link perlMethod perlIdentifier
hi def link perlMethod perlIdentifier
hi def link perlPostDeref perlIdentifier
hi def link perlFunctionPRef perlType
if !get(g:, 'perl_include_pod', 1)
hi def link perlPOD perlComment
endif
hi def link perlShellCommand perlString
hi def link perlSpecialAscii perlSpecial
hi def link perlSpecialDollar perlSpecial
hi def link perlSpecialString perlSpecial
hi def link perlSpecialStringU perlSpecial
hi def link perlSpecialDollar perlSpecial
hi def link perlSpecialString perlSpecial
hi def link perlSpecialStringU perlSpecial
hi def link perlSpecialMatch perlSpecial
hi def link perlEND perlComment
hi def link perlENDStart perlEND
hi def link perlDATA perlComment
hi def link perlDATAStart perlDATA
" NOTE: Due to a bug in Vim (or more likely, a misunderstanding on my part),
" I had to remove the transparent property from the following regions
" in order to get them to highlight correctly. Feel free to remove
" these and reinstate the transparent property if you know how.
" I had to remove the transparent property from the following regions
" in order to get them to highlight correctly. Feel free to remove
" these and reinstate the transparent property if you know how.
hi def link perlParensSQ perlString
hi def link perlBracketsSQ perlString
hi def link perlBracesSQ perlString
@ -546,23 +621,21 @@ hi def link perlSpecialStringU2 perlString
" Possible errors
hi def link perlNotEmptyLine Error
hi def link perlElseIfError Error
hi def link perlSubPrototypeError Error
hi def link perlSubError Error
" Syncing to speed up processing
"
if !exists("perl_no_sync_on_sub")
if !get(g:, 'perl_no_sync_on_sub', 0)
syn sync match perlSync grouphere NONE "^\s*\<package\s"
syn sync match perlSync grouphere NONE "^\s*\<sub\>"
syn sync match perlSync grouphere NONE "^}"
endif
if !exists("perl_no_sync_on_global_var")
if !get(g:, 'perl_no_sync_on_global_var', 0)
syn sync match perlSync grouphere NONE "^$\I[[:alnum:]_:]+\s*=\s*{"
syn sync match perlSync grouphere NONE "^[@%]\I[[:alnum:]_:]+\s*=\s*("
endif
if exists("perl_sync_dist")
if get(g:, 'perl_sync_dist', 0)
execute "syn sync maxlines=" . perl_sync_dist
else
syn sync maxlines=100

View File

@ -2,9 +2,10 @@
" Language: Perl POD format
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Previously: Scott Bigham <dsb@killerbunnies.org>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2017-09-12
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2021 Oct 8
" To add embedded POD documentation highlighting to your syntax file, add
" the commands:
@ -27,71 +28,117 @@ endif
let s:cpo_save = &cpo
set cpo&vim
" POD commands
syn match podCommand "^=encoding" nextgroup=podCmdText contains=@NoSpell
syn match podCommand "^=head[1234]" nextgroup=podCmdText contains=@NoSpell
syn match podCommand "^=item" nextgroup=podCmdText contains=@NoSpell
syn match podCommand "^=over" nextgroup=podOverIndent skipwhite contains=@NoSpell
syn match podCommand "^=back" contains=@NoSpell
syn match podCommand "^=cut" contains=@NoSpell
syn match podCommand "^=pod" contains=@NoSpell
syn match podCommand "^=for" nextgroup=podForKeywd skipwhite contains=@NoSpell
syn match podCommand "^=begin" nextgroup=podForKeywd skipwhite contains=@NoSpell
syn match podCommand "^=end" nextgroup=podForKeywd skipwhite contains=@NoSpell
" TODO: add supported encodings when we can utilize better performing Vim 8 features
syn match podEncoding "[0-9A-Za-z_-]\+" contained contains=@NoSpell
" Text of a =head1, =head2 or =item command
syn match podCmdText ".*$" contained contains=podFormat,@NoSpell
syn region podCmdText start="\S.*$" end="^\ze\s*$" end="^\ze=cut\>" contained contains=podFormat,@NoSpell
" Indent amount of =over command
syn match podOverIndent "\d\+" contained contains=@NoSpell
syn match podOverIndent "\d*\.\=\d\+\>" contained contains=@NoSpell
" Formatter identifier keyword for =for, =begin and =end commands
syn match podForKeywd "\S\+" contained contains=@NoSpell
" An indented line, to be displayed verbatim
syn match podVerbatimLine "^\s.*$" contains=@NoSpell
syn region podVerbatim start="^\s\+\S.*$" end="^\ze\s*$" end="^\ze=cut\>" contains=@NoSpell
syn region podOrdinary start="^\S.*$" end="^\ze\s*$" end="^\ze=cut\>" contains=podFormat,podSpecial,@Spell
" Inline textual items handled specially by POD
syn match podSpecial "\(\<\|&\)\I\i*\(::\I\i*\)*([^)]*)" contains=@NoSpell
syn match podSpecial "[$@%]\I\i*\(::\I\i*\)*\>" contains=@NoSpell
" Special formatting sequences
syn region podFormat start="[IBSCLFX]<[^<]"me=e-1 end=">" oneline contains=podFormat,@NoSpell
syn region podFormat start="[IBSCLFX]<<\s" end="\s>>" oneline contains=podFormat,@NoSpell
syn cluster podFormat contains=podFormat,podFormatError
syn match podFormatError "[ADGHJKM-RT-WY]<"
syn region podFormat matchgroup=podFormatDelimiter start="[IBSCLFX]<" end=">" contains=@podFormat,@NoSpell
syn region podFormat matchgroup=podFormatDelimiter start="[IBSCLFX]<<\%(\s\+\|$\)" end="\%(\s\+\|^\)>>" contains=@podFormat,@NoSpell
syn match podFormat "Z<>"
syn match podFormat "E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2,@NoSpell
syn match podEscape "\I\i*>"me=e-1 contained contains=@NoSpell
syn match podEscape2 "\d\+>"me=e-1 contained contains=@NoSpell
syn region podFormat matchgroup=podFormatDelimiter start="E<" end=">" oneline contains=podEscape,podEscape2,@NoSpell
" HTML entities {{{1
" Source: Pod/Escapes.pm
syn keyword podEscape contained lt gt quot amp apos sol verbar lchevron rchevron nbsp iexcl cent pound curren yen brvbar sect uml copy ordf laquo not shy reg macr deg plusmn sup2 sup3 acute micro para middot cedil sup1 ordm raquo frac14 frac12 frac34 iquest Agrave Aacute Acirc Atilde Auml Aring AElig Ccedil Egrave Eacute Ecirc Euml Igrave Iacute Icirc Iuml ETH Ntilde Ograve Oacute Ocirc Otilde Ouml times Oslash Ugrave Uacute Ucirc Uuml Yacute THORN szlig agrave aacute acirc atilde auml aring aelig ccedil egrave eacute ecirc euml igrave iacute icirc iuml eth ntilde ograve oacute ocirc otilde ouml divide oslash ugrave uacute ucirc uuml yacute thorn yuml fnof Alpha Beta Gamma Delta Epsilon Zeta Eta Theta Iota Kappa Lambda Mu Nu Xi Omicron Pi Rho Sigma Tau Upsilon Phi Chi Psi Omega alpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu nu xi omicron pi rho sigmaf sigma tau upsilon phi chi psi omega thetasym upsih piv bull hellip prime Prime oline frasl weierp image real trade alefsym larr uarr rarr darr harr crarr lArr uArr rArr dArr hArr forall part exist empty nabla isin notin ni prod sum minus lowast radic prop infin ang and or cap cup int there4 sim cong asymp ne equiv le ge sub sup nsub sube supe oplus otimes perp sdot lceil rceil lfloor rfloor lang rang loz spades clubs hearts diams OElig oelig Scaron scaron Yuml circ tilde ensp emsp thinsp zwnj zwj lrm rlm ndash mdash lsquo rsquo sbquo ldquo rdquo bdquo dagger Dagger permil lsaquo rsaquo
" }}}
syn match podEscape2 "\d\+" contained contains=@NoSpell
syn match podEscape2 "0\=x\x\+" contained contains=@NoSpell
syn match podEscape2 "0\o\+" contained contains=@NoSpell
" POD commands
syn match podCommand "^=encoding\>" nextgroup=podEncoding skipwhite contains=@NoSpell
syn match podCommand "^=head[1234]\>" nextgroup=podCmdText skipwhite skipnl contains=@NoSpell
syn match podCommand "^=item\>" nextgroup=podCmdText skipwhite skipnl contains=@NoSpell
syn match podCommand "^=over\>" nextgroup=podOverIndent skipwhite contains=@NoSpell
syn match podCommand "^=back" contains=@NoSpell
syn match podCommand "^=cut" contains=@NoSpell
syn match podCommand "^=pod" contains=@NoSpell
syn match podCommand "^=for" nextgroup=podForKeywd skipwhite contains=@NoSpell
syn match podCommand "^=begin" nextgroup=podForKeywd skipwhite contains=@NoSpell
syn match podCommand "^=end" nextgroup=podForKeywd skipwhite contains=@NoSpell
" Comments
syn keyword podForKeywd comment contained nextgroup=podForComment skipwhite skipnl
if exists("perl_pod_no_comment_fold")
syn region podBeginComment start="^=begin\s\+comment\s*$" end="^=end\s\+comment\ze\s*$" keepend extend contains=podCommand
syn region podForComment start="\S.*$" end="^\ze\s*$" end="^\ze=cut\>" contained contains=@Spell,podTodo
else
syn region podBeginComment start="^=begin\s\+comment\s*$" end="^=end\s\+comment\ze\s*$" keepend extend contains=podCommand,podTodo fold
syn region podForComment start="\S.*$" end="^\ze\s*$" end="^\ze=cut\>" contained contains=@Spell,podTodo fold
endif
syn keyword podTodo contained TODO FIXME XXX
" Plain Pod files
syn region podNonPod start="\%^\%(=\w\+\>\)\@!" end="^\ze=\a\w*\>"
syn region podNonPod matchgroup=podCommand start="^=cut\>" end="\%$"
syn region podNonPod matchgroup=podCommand start="^=cut\>" end="^\ze=\a\w*\>"
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link podCommand Statement
hi def link podBeginComment Comment
hi def link podForComment Comment
hi def link podNonPod Comment
hi def link podTodo Todo
hi def link podCmdText String
hi def link podEncoding Constant
hi def link podOverIndent Number
hi def link podForKeywd Identifier
hi def link podVerbatim PreProc
hi def link podFormat Identifier
hi def link podVerbatimLine PreProc
hi def link podFormatDelimiter podFormat
hi def link podFormatError Error
hi def link podSpecial Identifier
hi def link podEscape String
hi def link podEscape Constant
hi def link podEscape2 Number
if exists("perl_pod_spellcheck_headings")
" Spell-check headings
syn clear podCmdText
syn match podCmdText ".*$" contained contains=podFormat
syn region podCmdText start="\S.*$" end="^\s*$" end="^\ze=cut\>" contained contains=podFormat
endif
if exists("perl_pod_formatting")
" By default, escapes like C<> are not checked for spelling. Remove B<>
" and I<> from the list of escapes.
syn clear podFormat
syn region podFormat start="[CLF]<[^<]"me=e-1 end=">" oneline contains=podFormat,@NoSpell
syn region podFormat start="[CLF]<<\s" end="\s>>" oneline contains=podFormat,@NoSpell
syn region podFormat start="[CLF]<[^<]"me=e-1 end=">" contains=@podFormat,@NoSpell
syn region podFormat start="[CLF]<<\%(\s\+\|$\)" end="\%(\s\+\|^\)>>" contains=@podFormat,@NoSpell
" Don't spell-check inside E<>, but ensure that the E< itself isn't
" marked as a spelling mistake.
syn match podFormat "E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2,@NoSpell
syn region podFormat start="E<" end=">" oneline contains=podEscape,podEscape2,@NoSpell
" Z<> is a mock formatting code. Ensure Z<> on its own isn't marked as a
" spelling mistake.
@ -105,41 +152,41 @@ if exists("perl_pod_formatting")
syn match podIndexOpen "X<" contains=@NoSpell
" Same as above but for the << >> syntax.
syn match podBoldAlternativeDelimOpen "B<< " contains=@NoSpell
syn match podItalicAlternativeDelimOpen "I<< " contains=@NoSpell
syn match podNoSpaceAlternativeDelimOpen "S<< " contains=@NoSpell
syn match podIndexAlternativeDelimOpen "X<< " contains=@NoSpell
syn match podBoldAlternativeDelimOpen "B<<\%(\s\+\|$\)" contains=@NoSpell
syn match podItalicAlternativeDelimOpen "I<<\%(\s\+\|$\)" contains=@NoSpell
syn match podNoSpaceAlternativeDelimOpen "S<<\%(\s\+\|$\)" contains=@NoSpell
syn match podIndexAlternativeDelimOpen "X<<\%(\s\+\|$\)" contains=@NoSpell
" Add support for spell checking text inside B<>, I<>, S<> and X<>.
syn region podBold start="B<[^<]"me=e end=">" oneline contains=podBoldItalic,podBoldOpen
syn region podBoldAlternativeDelim start="B<<\s" end="\s>>" oneline contains=podBoldAlternativeDelimOpen
syn region podBold start="B<[^<]"me=e end=">" contains=podBoldItalic,podBoldOpen
syn region podBoldAlternativeDelim start="B<<\%(\s\+\|$\)" end="\%(\s\+\|^\)>>" contains=podBoldAlternativeDelimOpen
syn region podItalic start="I<[^<]"me=e end=">" oneline contains=podItalicBold,podItalicOpen
syn region podItalicAlternativeDelim start="I<<\s" end="\s>>" oneline contains=podItalicAlternativeDelimOpen
syn region podItalic start="I<[^<]"me=e end=">" contains=podItalicBold,podItalicOpen
syn region podItalicAlternativeDelim start="I<<\%(\s\+\|$\)" end="\%(\s\+\|^\)>>" contains=podItalicAlternativeDelimOpen
" Nested bold/italic and vice-versa
syn region podBoldItalic contained start="I<[^<]"me=e end=">" oneline
syn region podItalicBold contained start="B<[^<]"me=e end=">" oneline
syn region podBoldItalic contained start="I<[^<]"me=e end=">"
syn region podItalicBold contained start="B<[^<]"me=e end=">"
syn region podNoSpace start="S<[^<]"ms=s-2 end=">"me=e oneline contains=podNoSpaceOpen
syn region podNoSpaceAlternativeDelim start="S<<\s"ms=s-2 end="\s>>"me=e oneline contains=podNoSpaceAlternativeDelimOpen
syn region podNoSpace start="S<[^<]"ms=s-2 end=">"me=e contains=podNoSpaceOpen
syn region podNoSpaceAlternativeDelim start="S<<\%(\s\+\|$\)"ms=s-2 end="\%(\s\+\|^\)>>"me=e contains=podNoSpaceAlternativeDelimOpen
syn region podIndex start="X<[^<]"ms=s-2 end=">"me=e oneline contains=podIndexOpen
syn region podIndexAlternativeDelim start="X<<\s"ms=s-2 end="\s>>"me=e oneline contains=podIndexAlternativeDelimOpen
syn region podIndex start="X<[^<]"ms=s-2 end=">"me=e contains=podIndexOpen
syn region podIndexAlternativeDelim start="X<<\%(\s\+\|$\)"ms=s-2 end="\%(\s\+\|^\)>>"me=e contains=podIndexAlternativeDelimOpen
" Restore this (otherwise B<> is shown as bold inside verbatim)
syn match podVerbatimLine "^\s.*$" contains=@NoSpell
syn region podVerbatim start="^\s\+\S.*$" end="^\ze\s*$" end="^\ze=cut\>" contains=@NoSpell
" Ensure formatted text can be displayed in headings and items
syn clear podCmdText
if exists("perl_pod_spellcheck_headings")
syn match podCmdText ".*$" contained contains=podFormat,podBold,
syn match podCmdText ".*$" contained contains=@podFormat,podBold,
\podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim,
\podBoldOpen,podItalicOpen,podBoldAlternativeDelimOpen,
\podItalicAlternativeDelimOpen,podNoSpaceOpen
else
syn match podCmdText ".*$" contained contains=podFormat,podBold,
syn match podCmdText ".*$" contained contains=@podFormat,podBold,
\podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim,
\@NoSpell
endif
@ -172,4 +219,4 @@ let b:current_syntax = "pod"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
" vim: ts=8 fdm=marker:

View File

@ -2,8 +2,8 @@
" Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change: Oct 26, 2021
" Version: 199
" Last Change: Jun 09, 2022
" Version: 201
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr) and heredoc fixes from Felipe Contreras
@ -138,7 +138,7 @@ syn cluster shErrorList contains=shDoError,shIfError,shInError,shCaseError,shEsa
if exists("b:is_kornshell") || exists("b:is_bash")
syn cluster ErrorList add=shDTestError
endif
syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor,shFunctionKey,shFunctionOne,shFunctionTwo
syn cluster shArithParenList contains=shArithmetic,shArithParen,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor,shFunctionKey,shFunctionOne,shFunctionTwo
syn cluster shArithList contains=@shArithParenList,shParenError
syn cluster shCaseEsacList contains=shCaseStart,shCaseLabel,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
@ -147,8 +147,8 @@ if exists("b:is_kornshell") || exists("b:is_bash")
endif
syn cluster shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shComment,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
" COMBAK: removing shEscape from shDblQuoteList fails ksh04:43
syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
" COMBAK: removing shEscape from shDblQuoteList fails ksh04:43 -- Jun 09, 2022: I don't see the problem with ksh04, so am reinstating shEscape
syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
syn cluster shDerefVarList contains=shDerefOffset,shDerefOp,shDerefVarArray,shDerefOpError
syn cluster shEchoList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
@ -157,11 +157,12 @@ syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest
syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
if exists("b:is_kornshell") || exists("b:is_bash")
syn cluster shFunctionList add=shRepeat,shDblBrace,shDblParen,shForPP
syn cluster shDerefList add=shCommandSubList,shEchoDeref
endif
syn cluster shHereBeginList contains=@shCommandSubList
syn cluster shHereList contains=shBeginHere,shHerePayload
syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
syn cluster shIdList contains=shCommandSub,shCommandSubBQ,shWrapLineOperator,shSetOption,shComment,shDeref,shDerefSimple,shHereString,shNumber,shOperator,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
syn cluster shIdList contains=shArithmetic,shCommandSub,shCommandSubBQ,shWrapLineOperator,shSetOption,shComment,shDeref,shDerefSimple,shHereString,shNumber,shOperator,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shIf,shOption,shSet,shTest,shTestOpr,shTouch
if exists("b:is_kornshell") || exists("b:is_bash")
@ -179,6 +180,10 @@ syn cluster shForList contains=shTestOpr,shNumber,shDerefSimple,shDeref,shComman
" This one is needed INSIDE a CommandSub, so that `echo bla` be correct
syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
syn region shEchoDeref contained matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" end="[<>;&|()`}]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
syn region shEchoDeref contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" end="[<>;&|()`}]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
endif
syn match shEchoQuote contained '\%(\\\\\)*\\["`'()]'
" This must be after the strings, so that ... \" will be correct
@ -291,13 +296,15 @@ syn match shCaseStart contained skipwhite skipnl "(" nextgroup=shCase,shCaseBa
syn match shCaseLabel contained skipwhite "\%(\\.\|[-a-zA-Z0-9_*.]\)\+" contains=shCharClass
if exists("b:is_bash")
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end=";&" end=";;&" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
elseif exists("b:is_kornshell")
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end=";&" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
else
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
endif
ShFoldIfDoFor syn region shCaseEsac matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
syn keyword shCaseIn contained skipwhite skipnl in nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
if exists("b:is_bash")
if exists("b:is_bash") || exists("b:is_kornshell")
syn region shCaseExSingleQuote matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial skipwhite skipnl nextgroup=shCaseBar contained
elseif !exists("g:sh_no_error")
syn region shCaseExSingleQuote matchgroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained
@ -329,10 +336,11 @@ syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.' nextgroup=shComment
" systems too, however, so the following syntax will flag $(..) as
" an Error under /bin/sh. By consensus of vimdev'ers!
if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
syn region shCommandSub matchgroup=shCmdSubRegion start="\$(" skip='\\\\\|\\.' end=")" contains=@shCommandSubList
syn region shCommandSub matchgroup=shCmdSubRegion start="\$(\ze[^(]" skip='\\\\\|\\.' end=")" contains=@shCommandSubList
syn region shArithmetic matchgroup=shArithRegion start="\$((" skip='\\\\\|\\.' end="))" contains=@shArithList
syn region shArithmetic matchgroup=shArithRegion start="\$\[" skip='\\\\\|\\.' end="\]" contains=@shArithList
syn match shSkipInitWS contained "^\s\+"
syn region shArithParen matchgroup=shArithRegion contained start="(" end=")" contains=@shArithParenList
elseif !exists("g:sh_no_error")
syn region shCommandSub matchgroup=Error start="\$(" end=")" contains=@shCommandSubList
endif
@ -368,7 +376,7 @@ endif
syn match shNumber "\<\d\+\>#\="
syn match shNumber "\<-\=\.\=\d\+\>#\="
syn match shCtrlSeq "\\\d\d\d\|\\[abcfnrtv0]" contained
if exists("b:is_bash")
if exists("b:is_bash") || exists("b:is_kornshell")
syn match shSpecial "[^\\]\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]" contained
syn match shSpecial "^\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]" contained
syn region shExSingleQuote matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial nextgroup=shSpecialNxt
@ -441,19 +449,24 @@ syn match shVar contained "\h\w*"
syn region shAtExpr contained start="@(" end=")" contains=@shIdList
if exists("b:is_bash")
syn match shSet "^\s*set\ze\s\+$"
syn region shSetList oneline matchgroup=shSet start="\<\%(declare\|local\|export\)\>\ze[/a-zA-Z_]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList
syn region shSetList oneline matchgroup=shSet start="\<\%(declare\|local\|export\)\>\ze[/a-zA-Z_]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList
syn region shSetList oneline matchgroup=shSet start="\<\%(set\|unset\)\>[/a-zA-Z_]\@!" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+=" contains=@shIdList nextgroup=shComment
elseif exists("b:is_kornshell") || exists("b:is_posix")
syn match shSet "^\s*set\ze\s\+$"
if exists("b:is_dash")
syn region shSetList oneline matchgroup=shSet start="\<\%(local\)\>\ze[/]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
syn region shSetList oneline matchgroup=shSet start="\<\%(local\)\>\ze[/]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
endif
syn region shSetList oneline matchgroup=shSet start="\<\(export\)\>\ze[/]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
syn region shSetList oneline matchgroup=shSet start="\<\(export\)\>\ze[/]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
syn region shSetList oneline matchgroup=shSet start="\<\%(set\|unset\>\)\ze[/a-zA-Z_]\@!" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList nextgroup=shComment
else
syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[/a-zA-Z_]\@!" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
endif
" KornShell namespace: {{{1
if exists("b:is_kornshell")
syn keyword shFunctionKey namespace skipwhite skipnl nextgroup=shFunctionTwo
endif
" Functions: {{{1
if !exists("b:is_posix")
syn keyword shFunctionKey function skipwhite skipnl nextgroup=shFunctionTwo
@ -473,7 +486,7 @@ endif
" Parameter Dereferencing: {{{1
" ========================
if !exists("g:sh_no_error")
if !exists("g:sh_no_error") && !(exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix"))
syn match shDerefWordError "[^}$[~]" contained
endif
syn match shDerefSimple "\$\%(\h\w*\|\d\)" nextgroup=@shNoZSList
@ -486,6 +499,13 @@ if exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix")
syn region shDeref matchgroup=PreProc start="\${\$\$" end="}" contains=@shDerefList nextgroup=@shSpecialNoZS,shSpecialStart
endif
" ksh: ${.sh.*} variables: {{{1
" ========================================
if exists("b:is_kornshell")
" syn match shDerefVar contained "[.]*" nextgroup=@shDerefVarList
syn match shDerefVar contained "\.\+" nextgroup=@shDerefVarList
endif
" ksh: ${!var[*]} array index list syntax: {{{1
" ========================================
if exists("b:is_kornshell") || exists("b:is_posix")

View File

@ -2,9 +2,9 @@
" Language: Verbose TAP Output
" Maintainer: Rufus Cable <rufus@threebytesfull.com>
" Remark: Simple syntax highlighting for TAP output
" License:
" License: Vim License (see :help license)
" Copyright: (c) 2008-2013 Rufus Cable
" Last Change: 2014-12-13
" Last Change: 2020 Mar 15
if exists("b:current_syntax")
finish
@ -29,12 +29,12 @@ syn match tapTestStatusOK /ok/ contained
syn match tapTestStatusNotOK /not ok/ contained
" highlight todo tests
syn match tapTestTodo /\(# TODO\|Failed (TODO)\) .*$/ contained contains=tapTestTodoRev
syn match tapTestTodoRev /\<TODO\>/ contained
syn match tapTestTodo /\c\(# TODO\|Failed (TODO)\) .*$/ contained contains=tapTestTodoRev
syn match tapTestTodoRev /\c\<TODO\>/ contained
" highlight skipped tests
syn match tapTestSkip /# skip .*$/ contained contains=tapTestSkipTag
syn match tapTestSkipTag /\(# \)\@<=skip\>/ contained
syn match tapTestSkip /\c# skip .*$/ contained contains=tapTestSkipTag
syn match tapTestSkipTag /\c\(# \)\@<=skip\>/ contained
" look behind so "ok 123" and "not ok 124" match test number
syn match tapTestNumber /\(ok \)\@<=\d\d*/ contained
@ -51,17 +51,6 @@ syn region tapTestResultsSummaryNotOK start=/TODO passed:/ end=/$/ contained
syn region tapTestInstructionsRegion start=/\%1l/ end=/^$/
set foldtext=TAPTestLine_foldtext()
function! TAPTestLine_foldtext()
let line = getline(v:foldstart)
let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
return sub
endfunction
set foldminlines=5
set foldcolumn=2
set foldenable
set foldmethod=syntax
syn sync fromstart
if !exists("did_tapverboseoutput_syntax_inits")

View File

@ -1,9 +1,11 @@
" Vim syntax file
" Language: TT2 (Perl Template Toolkit)
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2015-04-25
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2018 Mar 28
"
" Installation:
" put tt2.vim and tt2html.vim in to your syntax directory.
@ -42,9 +44,6 @@
" Release
" 0.1.0
" Internal
"
" License: follow Vim :help uganda
"
if !exists("b:tt2_syn_tags")
let b:tt2_syn_tags = '\[% %]'
@ -95,7 +94,7 @@ if exists("b:tt2_syn_tags")
"Include Perl syntax when 'PERL' 'RAWPERL' block
if b:tt2_syn_inc_perl
syn include @Perl $VIMRUNTIME/syntax/perl.vim
syn include @Perl syntax/perl.vim
exec 'syn region tt2_perlcode '.
\ 'start=+\(\(RAW\)\=PERL\s*[-]\=' . s:ed . '\(\n\)\=\)\@<=+ ' .
\ 'end=+' . s:st . '[-]\=\s*END+me=s-1 contains=@Perl keepend'
@ -122,7 +121,7 @@ else
"Include Perl syntax when 'PERL' 'RAWPERL' block
if b:tt2_syn_inc_perl
syn include @Perl $VIMRUNTIME/syntax/perl.vim
syn include @Perl syntax/perl.vim
syn region tt2_perlcode
\ start=+\(\(RAW\)\=PERL\s*[-]\=%]\(\n\)\=\)\@<=+
\ end=+\[%[-]\=\s*END+me=s-1
@ -155,7 +154,7 @@ syn match tt2_operator "[!=<>]=\=\|&&\|||" contained
syn match tt2_operator "\(\s\)\@<=_\(\s\)\@=" contained
syn match tt2_operator "=>\|," contained
syn match tt2_deref "\([[:alnum:]_)\]}]\s*\)\@<=\." contained
syn match tt2_comment +#.*$+ contained extend
syn match tt2_comment +#.*$+ contained
syn match tt2_func +\<\I\w*\(\s*(\)\@=+ contained nextgroup=tt2_bracket_r skipempty skipwhite
"
syn region tt2_bracket_r start=+(+ end=+)+ contained contains=@tt2_statement_cluster keepend extend

View File

@ -1,9 +1,11 @@
" Vim syntax file
" Language: TT2 embedded with HTML
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-07-21
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2018 Mar 28
if exists("b:current_syntax")
finish

View File

@ -1,9 +1,11 @@
" Vim syntax file
" Language: TT2 embedded with Javascript
" Maintainer: Andy Lester <andy@petdance.com>
" Author: Yates, Peter <pd.yates@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-07-21
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2018 Mar 28
if exists("b:current_syntax")
finish

View File

@ -1,8 +1,8 @@
" Vim syntax file
" Language: Vim 8.2 script
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: May 07, 2022
" Version: 8.2-38
" Last Change: June 12, 2022
" Version: 8.2-44
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
" Automatically generated keyword lists: {{{1
@ -19,13 +19,12 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
syn cluster vimCommentGroup contains=vimTodo,@Spell
" regular vim commands {{{2
syn keyword vimCommand contained a ar[gs] argg[lobal] b[uffer] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] delc[ommand] deletp di[splay] diffs[plit] dl dr[op] ec elsei[f] endf[unction] enum exu[sage] fin[d] foldc[lose] g h[elp] hi if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes[sages] mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] py3f[ile] pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoremenu spelli[nfo] spr[evious] sri star[tinsert] sts[elect] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] v vie[w] vne[w] win[size] wq xmapc[lear] xr[estore]
syn keyword vimCommand contained ab arga[dd] argl[ocal] ba[ll] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cn[ext] colo[rscheme] cons[t] cs d[elete] delel delf[unction] dif[fupdate] difft[his] dli[st] ds[earch] echoc[onsole] em[enu] endfo[r] eval f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir smenu so[urce] spellr[are] sr srl startg[replace] substitutepattern sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] var vim9[cmd] vs[plit] winc[md] wqa[ll] xme xunme
syn keyword vimCommand contained abc[lear] argd[elete] argu[ment] bad[d] bm[odified] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnew[er] com cope[n] cscope debug delep dell diffg[et] dig[raphs] do dsp[lit] echoe[rr] en[dif] endinterface ex files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] pw[d] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smile sor[t] spellr[epall] srI srn startr[eplace] substituterepeat sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl ve[rsion] vim9s[cript] wN[ext] windo wundo xmenu xunmenu
syn keyword vimCommand contained abo[veleft] argded[upe] as[cii] balt bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] class cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] deletel delm[arks] diffo[ff] dir doau e[dit] echom[sg] endclass endt[ry] exi[t] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] leg[acy] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] sn[ext] sp[lit] spellr[rare] src srp static sun[hide] sy tN[ext] tabe[dit] tabnew tc[d] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unlo[ckvar] verb[ose] vim[grep] w[rite] winp[os] wv[iminfo] xnoreme xwininfo
syn keyword vimCommand contained abstract argdo au bd[elete] bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] cle[arjumps] cnor comp[iler] cpf[ile] cun def deletep delp diffp[atch] disa[ssemble] doaut ea echon enddef endw[hile] exp filetype fix[del] for gui helpg[rep] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] st[op] stj[ump] sunme syn ta[g] tabf[ind] tabo[nly] tch[dir] tf[irst] tln tmapc[lear] try una[bbreviate] uns[ilent] vert[ical] vimgrepa[dd] wa[ll] wn[ext] x[it] xnoremenu y[ank]
syn keyword vimCommand contained addd arge[dit] bN[ext] bel[owright] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] defc[ompile] deletl dep diffpu[t] dj[ump] dp earlier el[se] endenum ene[w] export filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py3f[ile] pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong] srg sta[g] stopi[nsert] sunmenu sync tab tabfir[st] tabp[revious] tcl th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] up[date] vi[sual] viu[sage] wh[ile] wp[revious] xa[ll] xprop z[^.=]
syn keyword vimCommand contained al[l]
syn keyword vimCommand contained a al[l] arge[dit] bN[ext] bel[owright] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] defc[ompile] deletl dep diffpu[t] dj[ump] dp earlier el[se] endenum ene[w] export filt[er] fo[ld] fu[nction] h[elp] hi if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes[sages] mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] py3f[ile] pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoremenu spelli[nfo] spr[evious] sri star[tinsert] sts[elect] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] v vie[w] vne[w] win[size] wq xmapc[lear] xr[estore]
syn keyword vimCommand contained ab ar[gs] argg[lobal] b[uffer] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] delc[ommand] deletp di[splay] diffs[plit] dl dr[op] ec elsei[f] endf[unction] enum exu[sage] fin[d] foldc[lose] go[to] ha[rdcopy] hid[e] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir smenu so[urce] spellr[are] sr srl startg[replace] substitutepattern sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] var vim9[cmd] vs[plit] winc[md] wqa[ll] xme xunme
syn keyword vimCommand contained abc[lear] arga[dd] argl[ocal] ba[ll] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cn[ext] colo[rscheme] cons[t] cs d[elete] delel delf[unction] dif[fupdate] difft[his] dli[st] ds[earch] echoc[onsole] em[enu] endfo[r] eval f[ile] fina[lly] foldd[oopen] gr[ep] helpc[lose] his[tory] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] pw[d] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smile sor[t] spellr[epall] srI srn startr[eplace] substituterepeat sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl ve[rsion] vim9s[cript] wN[ext] windo wundo xmenu xunmenu
syn keyword vimCommand contained abo[veleft] argd[elete] argu[ment] bad[d] bm[odified] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnew[er] com cope[n] cscope debug delep dell diffg[et] dig[raphs] do dsp[lit] echoe[rr] en[dif] endinterface ex files fini[sh] folddoc[losed] grepa[dd] helpf[ind] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] leg[acy] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] sn[ext] sp[lit] spellr[rare] src srp static sun[hide] sy tN[ext] tabe[dit] tabnew tc[d] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unlo[ckvar] verb[ose] vim[grep] w[rite] winp[os] wv[iminfo] xnoreme xwininfo
syn keyword vimCommand contained abstract argded[upe] as[cii] balt bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] class cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] deletel delm[arks] diffo[ff] dir doau e[dit] echom[sg] endclass endt[ry] exi[t] filet fir[st] foldo[pen] gui helpg[rep] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] st[op] stj[ump] sunme syn ta[g] tabf[ind] tabo[nly] tch[dir] tf[irst] tln tmapc[lear] try una[bbreviate] uns[ilent] vert[ical] vimgrepa[dd] wa[ll] wn[ext] x[it] xnoremenu y[ank]
syn keyword vimCommand contained addd argdo au bd[elete] bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] cle[arjumps] cnor comp[iler] cpf[ile] cun def deletep delp diffp[atch] disa[ssemble] doaut ea echon enddef endw[hile] exp filetype fix[del] for gvim helpt[ags] iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py3f[ile] pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong] srg sta[g] stopi[nsert] sunmenu sync tab tabfir[st] tabp[revious] tcl th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] up[date] vi[sual] viu[sage] wh[ile] wp[revious] xa[ll] xprop z[^.=]
syn match vimCommand contained "\<z[-+^.=]\=\>"
syn keyword vimStdPlugin contained Arguments Asm Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns
@ -79,12 +78,12 @@ syn match vimHLGroup contained "Conceal"
syn case match
" Function Names {{{2
syn keyword vimFuncName contained abs argc assert_equal assert_match atan browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filter floor foldlevel function getchangelist getcmdcompltype getcompletion getfperm getline getpos gettabvar getwinposx has histget hlset input inputsecret isdirectory job_getchannel job_stop json_encode line listener_add log10 maplist matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_null_blob test_null_list test_refcount test_void timer_stopall trunc uniq winbufnr win_getid win_id2win winnr win_splitmove
syn keyword vimFuncName contained acos argidx assert_equalfile assert_nobeep atan2 browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath extend finddir fmod foldtext garbagecollect getchar getcmdline getcurpos getfsize getloclist getqflist gettabwinvar getwinposy has_key histnr hostname inputdialog insert isinf job_info join keys line2byte listener_flush luaeval mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_channel test_null_partial test_setmouse timer_info tolower type values wincol win_gettype winlayout winrestcmd winwidth
syn keyword vimFuncName contained add arglistid assert_exception assert_notequal balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extendnew findfile fnameescape foldtextresult get getcharmod getcmdpos getcursorcharpos getftime getmarklist getreg gettagstack getwinvar haslocaldir hlexists iconv inputlist interrupt islocked job_setoptions js_decode len lispindent listener_remove map mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_dict test_null_string test_settime timer_pause toupper typename virtcol windowsversion win_gotoid winline winrestview wordcount
syn keyword vimFuncName contained and argv assert_fails assert_notmatch balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdscreenpos getcwd getftype getmatches getreginfo gettext glob hasmapto hlget indent inputrestore invert isnan job_start js_encode libcall list2blob localtime maparg match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_event test_null_function test_option_not_set test_srand_seed timer_start tr undofile visualmode win_execute winheight win_move_separator winsaveview writefile
syn keyword vimFuncName contained append asin assert_false assert_report balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcmdtype getenv getimstatus getmousepos getregtype getwininfo glob2regpat histadd hlID index inputsave isabsolutepath items job_status json_decode libcallnr list2str log mapcheck matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_ignore_error test_null_job test_override test_unknown timer_stop trim undotree wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor
syn keyword vimFuncName contained appendbufline assert_beeps assert_inrange assert_true blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filewritable float2nr foldclosedend funcref getbufvar getcharstr getcmdwintype getfontname getjumplist getpid gettabinfo getwinpos globpath histdel
syn keyword vimFuncName contained abs argc assert_equal assert_match atan balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled extendnew findfile fnameescape foldtextresult get getcharmod getcmdpos getcursorcharpos getftime getmarklist getreg gettagstack getwinvar haslocaldir hlexists indent inputsave isdirectory job_info join keys line2byte listener_flush luaeval mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_channel test_null_partial test_setmouse timer_info tolower type values winbufnr win_getid win_id2win winnr win_splitmove
syn keyword vimFuncName contained acos argidx assert_equalfile assert_nobeep atan2 balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdscreenpos getcwd getftype getmatches getreginfo gettext glob hasmapto hlget index inputsecret isinf job_setoptions js_decode len lispindent listener_remove map mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_dict test_null_string test_settime timer_pause toupper typename virtcol wincol win_gettype winlayout winrestcmd winwidth
syn keyword vimFuncName contained add arglistid assert_exception assert_notequal autocmd_add blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcmdtype getenv getimstatus getmousepos getregtype getwininfo glob2regpat histadd hlID input insert islocked job_start js_encode libcall list2blob localtime maparg match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_event test_null_function test_option_not_set test_srand_seed timer_start tr undofile virtcol2col windowsversion win_gotoid winline winrestview wordcount
syn keyword vimFuncName contained and argv assert_fails assert_notmatch autocmd_delete browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filewritable float2nr foldclosedend funcref getbufvar getcharstr getcmdwintype getfontname getjumplist getpid gettabinfo getwinpos globpath histdel hlset inputdialog interrupt isnan job_status json_decode libcallnr list2str log mapcheck matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_ignore_error test_null_job test_override test_unknown timer_stop trim undotree visualmode win_execute winheight win_move_separator winsaveview writefile
syn keyword vimFuncName contained append asin assert_false assert_report autocmd_get browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath expr10 filter floor foldlevel function getchangelist getcmdcompltype getcompletion getfperm getline getpos gettabvar getwinposx has histget hostname inputlist invert items job_stop json_encode line listener_add log10 maplist matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_null_blob test_null_list test_refcount test_void timer_stopall trunc uniq wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor
syn keyword vimFuncName contained appendbufline assert_beeps assert_inrange assert_true balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extend finddir fmod foldtext garbagecollect getchar getcmdline getcurpos getfsize getloclist getqflist gettabwinvar getwinposy has_key histnr iconv inputrestore isabsolutepath job_getchannel
"--- syntax here and above generated by mkvimvim ---
" Special Vim Highlighting (not automatic) {{{1
@ -328,7 +327,7 @@ syn match vimPatSep contained "\\|"
syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\\]['"]" contains=@vimStringGroup
syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline
syn match vimNotPatSep contained "\\\\"
syn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
syn cluster vimStringGroup contains=vimEscape,vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ contains=@vimStringGroup
syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+
syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup
@ -336,6 +335,7 @@ syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@v
"syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup " see tst45.vim
syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont
syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+
syn match vimEscape contained "\\."
" Substitutions: {{{2
" =============
@ -400,7 +400,7 @@ syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
" Let: {{{2
" ===
syn keyword vimLet let unl[et] skipwhite nextgroup=vimVar,vimFuncVar,vimLetHereDoc
VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='=<<\s\+\%(trim\>\)\=\s*\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1\s*$'
VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='=<<\s\+\%(trim\|eval\>\)\=\s*\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1\s*$'
" Abbreviations: {{{2
" =============
@ -470,7 +470,6 @@ syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\
syn keyword vimFuncEcho contained ec ech echo
" User Command Highlighting: {{{2
"syn match vimUsrCmd '^\s*\zs\u\w*.*$'
syn match vimUsrCmd '^\s*\zs\u\%(\w*\)\@>\%([(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!'
" Errors And Warnings: {{{2
@ -897,6 +896,7 @@ if !exists("skip_vim_syntax_inits")
hi def link vimElseif vimCondHL
hi def link vimEnvvar PreProc
hi def link vimError Error
hi def link vimEscape Special
hi def link vimFBVar vimVar
hi def link vimFgBgAttrib vimHiAttrib
hi def link vimFuncEcho vimCommand

View File

@ -34,9 +34,9 @@ syn region webmacroList contained matchgroup=Structure start="\[" matchgroup=Str
syn region webmacroIf start="#if" start="#else" end="{"me=e-1 contains=webmacroVariable,webmacroNumber,webmacroString,webmacroBoolean,webmacroList nextgroup=webmacroBraces
syn region webmacroForeach start="#foreach" end="{"me=e-1 contains=webmacroVariable,webmacroNumber,webmacroString,webmacroBoolean,webmacroList nextgroup=webmacroBraces
syn match webmacroSet "#set .*$" contains=webmacroVariable,webmacroNumber,webmacroNumber,webmacroBoolean,webmacroString,webmacroList
syn match webmacroInclude "#include .*$" contains=webmacroVariable,webmacroNumber,webmacroNumber,webmacroBoolean,webmacroString,webmacroList
syn match webmacroParse "#parse .*$" contains=webmacroVariable,webmacroNumber,webmacroNumber,webmacroBoolean,webmacroString,webmacroList
syn match webmacroSet "#set .*$" contains=webmacroVariable,webmacroNumber,webmacroBoolean,webmacroString,webmacroList
syn match webmacroInclude "#include .*$" contains=webmacroVariable,webmacroNumber,webmacroBoolean,webmacroString,webmacroList
syn match webmacroParse "#parse .*$" contains=webmacroVariable,webmacroNumber,webmacroBoolean,webmacroString,webmacroList
syn region webmacroUse matchgroup=PreProc start="#use .*" matchgroup=PreProc end="^-.*" contains=webmacroHash,@HtmlTop
syn region webmacroBraces matchgroup=Structure start="{" matchgroup=Structure end="}" contained transparent
syn match webmacroBracesError "[{}]"

View File

@ -1,9 +1,12 @@
" Vim syntax file
" Language: XS (Perl extension interface language)
" Author: Autogenerated from perl headers, on an original basis of Michael W. Dodge <sarge@pobox.com>
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Previous: Vincent Pit <perl@profvince.com>
" Last Change: 2017-09-12
" Language: XS (Perl extension interface language)
" Author: Autogenerated from perl headers, on an original basis of Michael W. Dodge <sarge@pobox.com>
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Previous: Vincent Pit <perl@profvince.com>
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
" License: Vim License (see :help license)
" Last Change: 2018 Mar 28
if exists("b:current_syntax")
finish

View File

@ -5,6 +5,7 @@
Name[ca]=Vim
Name[de]=Vim
Name[eo]=Vim
Name[es]=Vim
Name[fi]=Vim
Name[fr]=Vim
Name[ga]=Vim
@ -18,6 +19,7 @@ Name=Vim
GenericName[ca]=Editor de text
GenericName[de]=Texteditor
GenericName[eo]=Tekstoredaktilo
GenericName[es]=Editor de texto
GenericName[fi]=Tekstinmuokkain
GenericName[fr]=Éditeur de texte
GenericName[ga]=Eagarthóir Téacs
@ -32,6 +34,7 @@ GenericName=Text Editor
Comment[ca]=Edita fitxers de text
Comment[de]=Textdateien bearbeiten
Comment[eo]=Redakti tekstajn dosierojn
Comment[es]=Editar archivos de texto
Comment[fi]=Muokkaa tekstitiedostoja
Comment[fr]=Éditer des fichiers texte
Comment[ga]=Cuir comhaid téacs in eagar
@ -61,7 +64,6 @@ Comment[da]=Rediger tekstfiler
Comment[el]=Επεξεργασία αρχείων κειμένου
Comment[en_CA]=Edit text files
Comment[en_GB]=Edit text files
Comment[es]=Edita archivos de texto
Comment[et]=Redigeeri tekstifaile
Comment[eu]=Editatu testu-fitxategiak
Comment[fa]=ویرایش پرونده‌های متنی
@ -112,6 +114,7 @@ Type=Application
Keywords[ca]=Text;editor;
Keywords[de]=Text;Editor;
Keywords[eo]=Teksto;redaktilo;
Keywords[es]=Texto;editor;
Keywords[fi]=Teksti;muokkain;editori;
Keywords[fr]=Texte;éditeur;
Keywords[ga]=Téacs;eagarthóir;

View File

@ -53,7 +53,9 @@ WINDRES := $(CROSS_COMPILE)windres
WINDRES_FLAGS =
LIBS := -luuid -lgdi32
RES := gvimext.res
ifeq ($(findstring clang++,$(CXX)),)
DEFFILE = gvimext_ming.def
endif
OBJ := gvimext.o
DLL := gvimext.dll

View File

@ -282,6 +282,30 @@ This command is in msys32.bat. Or for the 64 bit compiler use msys64.bat:
If you have msys64 in another location you will need to adjust the paths for
that.
2.5. Build Vim with Clang
The following package group is required for building Vim with Clang:
* mingw-w64-clang-x86_64-clang
Use the following command to install it:
$ pacman -S mingw-w64-clang-x86_64-clang
Go to the source directory of Vim, then execute the make command. E.g.:
CC=clang
CXX=clang++
# To build Vim without the GUI support
make -f Make_ming.mak GUI=no
# To build Vim with the GUI support
make -f Make_ming.mak GUI=yes XPM=no
To build Vim with the address sanitizer (ASAN), execute the following command:
CC=clang
CXX=clang++
make -f Make_ming.mak DEBUG=yes ASAN=yes
3. MinGW
========

View File

@ -217,8 +217,14 @@ MKDIR = mkdir
DIRSLASH = \\
endif
endif
# set $CC to "gcc" unless it matches "clang"
ifeq ($(findstring clang,$(CC)),)
CC := $(CROSS_COMPILE)gcc
endif
# set $CXX to "g++" unless it matches "clang"
ifeq ($(findstring clang,$(CXX)),)
CXX := $(CROSS_COMPILE)g++
endif
ifeq ($(UNDER_CYGWIN),yes)
WINDRES := $(CROSS_COMPILE)windres
else
@ -520,6 +526,8 @@ endif
###########################################################################
CFLAGS = -I. -Iproto $(DEFINES) -pipe -march=$(ARCH) -Wall
# To get additional compiler warnings
#CFLAGS += -Wextra -pedantic
CXXFLAGS = -std=gnu++11
# This used to have --preprocessor, but it's no longer supported
WINDRES_FLAGS =
@ -722,7 +730,11 @@ else
CFLAGS += -Os
else ifeq ($(OPTIMIZE), MAXSPEED)
CFLAGS += -O3
CFLAGS += -fomit-frame-pointer -freg-struct-return
CFLAGS += -fomit-frame-pointer
ifeq ($(findstring clang,$(CC)),)
# Only GCC supports the "reg-struct-return" option. Clang doesn't support this.
CFLAGS += -freg-struct-return
endif
else # SPEED
CFLAGS += -O2
endif
@ -734,6 +746,17 @@ CFLAGS += --coverage
LFLAGS += --coverage
endif
# If the ASAN=yes argument is supplied, then compile Vim with the address
# sanitizer (asan). Only supported by MingW64 clang compiler.
# May make Vim twice as slow. Errors are reported on stderr.
# More at: https://code.google.com/p/address-sanitizer/
# Useful environment variable:
# set ASAN_OPTIONS=print_stacktrace=1 log_path=asan
ifeq ($(ASAN),yes)
#CFLAGS += -g -O0 -fsanitize-recover=all -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
CFLAGS += -g -O0 -fsanitize-recover=all -fsanitize=address -fno-omit-frame-pointer
endif
LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lnetapi32 -lversion
GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o
CUIOBJ = $(OUTDIR)/iscygpty.o
@ -1076,6 +1099,13 @@ ifeq (yes, $(MAP))
LFLAGS += -Wl,-Map=$(TARGET).map
endif
# The default stack size on Windows is 2 MB. With the default stack size, the
# following tests fail with the clang address sanitizer:
# Test_listdict_compare, Test_listdict_compare_complex, Test_deep_recursion,
# Test_map_error, Test_recursive_define, Test_recursive_addstate
# To increase the stack size to 16MB, uncomment the following line:
#LFLAGS += -Wl,-stack -Wl,0x1000000
all: $(MAIN_TARGET) vimrun.exe xxd/xxd.exe tee/tee.exe install.exe uninstall.exe GvimExt/gvimext.dll
vimrun.exe: vimrun.c

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