Compare commits

...

448 Commits

Author SHA1 Message Date
56a8ffdb6e patch 8.2.3711: Vim9: memory leak when compiling :elseif fails
Problem:    Vim9: memory leak when compiling :elseif fails.
Solution:   Cleanup ppconst.
2021-12-01 10:10:22 +00:00
3d2e031d4f patch 8.2.3710: Vim9: backtick expression expanded for :global
Problem:    Vim9: backtick expression expanded for :global.
Solution:   Check the following command.
2021-12-01 09:27:20 +00:00
fad2742d53 patch 8.2.3709: Vim9: backtick expression expanded when not desired
Problem:    Vim9: backtick expression expanded when not desired.
Solution:   Only expand a backtick expression for commands that expand their
            argument.  Remove a few outdated TODO comments.
2021-11-30 21:58:19 +00:00
69535d8a0a patch 8.2.3708: Vim9: test fails with different error
Problem:    Vim9: test fails with different error.
Solution:   Correct the error number.
2021-11-30 21:39:39 +00:00
90770b746e patch 8.2.3707: Vim9: constant expression of elseif not recognized
Problem:    Vim9: constant expression of elseif not recognized.
Solution:   Set instruction count before generating the expression.
2021-11-30 20:57:38 +00:00
42eba04522 patch 8.2.3706: text property highlighting is used on Tab
Problem:    Text property highlighting is used on Tab.
Solution:   Only set in_linebreak when not on a Tab. (closes #9242)
2021-11-30 20:22:49 +00:00
eba3b7f664 patch 8.2.3705: cannot pass a lambda name to function() or funcref()
Problem:    Cannot pass a lambda name to function() or funcref(). (Yegappan
            Lakshmanan)
Solution:   Handle a lambda name differently.
2021-11-30 18:25:08 +00:00
ab36e6ae7b patch 8.2.3704: Vim9: cannot use a list declaration in a :def function
Problem:    Vim9: cannot use a list declaration in a :def function.
Solution:   Make it work.
2021-11-30 16:14:49 +00:00
53ba95e4f0 patch 8.2.3703: most people call F# "fsharp" and not "fs"
Problem:    Most people call F# "fsharp" and not "fs".
Solution:   Rename filetype "fs" to "fsharp".
2021-11-30 13:02:58 +00:00
98cb90ef86 patch 8.2.3702: first key in dict is seen as curly expression and fails
Problem:    First key in dict is seen as curly expression and fails.
Solution:   Ignore failure of curly expression. (closes #9247)
2021-11-30 11:56:22 +00:00
c750d91a07 patch 8.2.3701: Vim9: invalid LHS is not possible
Problem:    Vim9: invalid LHS is not possible.
Solution:   Remove unreachable error message.
2021-11-29 22:02:12 +00:00
6b839ac775 patch 8.2.3700: text property highlighting continues over breakindent
Problem:    Text property highlighting continues over breakindent.
Solution:   Stop before the end column. (closes #9242)
2021-11-29 21:12:35 +00:00
651fca85c7 patch 8.2.3699: the +title feature adds a lot of #ifdef but little code
Problem:    The +title feature adds a lot of #ifdef but little code.
Solution:   Graduate the +title feature.
2021-11-29 20:39:38 +00:00
0c359af5c0 patch 8.2.3698: match highlighting continues over breakindent
Problem:    Match highlighting continues over breakindent.
Solution:   Stop before the end column. (closes #9242)
2021-11-29 19:18:57 +00:00
0b74d00693 patch 8.2.3697: cannot drag a popup without a border
Problem:    Cannot drag a popup without a border.
Solution:   Add the "dragall" option. (closes #9218)
2021-11-29 17:38:02 +00:00
7f2c341664 patch 8.2.3696: Vim9: error for invalid assignment when skipping
Problem:    Vim9: error for invalid assignment when skipping.
Solution:   Do not check white space when skipping. (closes #9243)
2021-11-29 16:01:49 +00:00
5c1ec439f0 patch 8.2.3695: confusing error for missing key
Problem:    Confusing error for missing key.
Solution:   Use the actualy key for the error. (closes #9241)
2021-11-29 13:44:55 +00:00
af377e34b0 patch 8.2.3694: cannot use quotes in the count of an Ex command
Problem:    Cannot use quotes in the count of an Ex command.
Solution:   Add getdigits_quoted().  Give an error when misplacing a quote in
            a range. (closes #9240)
2021-11-29 12:12:43 +00:00
293eb9ba46 patch 8.2.3693: Coverity warns for possibly using a NULL pointer
Problem:    Coverity warns for possibly using a NULL pointer.
Solution:   Check for NULL and give an error.
2021-11-29 10:36:19 +00:00
38453528c3 patch 8.2.3692: Vim9: cannot use :func inside a :def function
Problem:    Vim9: cannot use :func inside a :def function.
Solution:   Make it work.
2021-11-28 22:00:12 +00:00
f566666e88 patch 8.2.3691: build failure with small features
Problem:    Build failure with small features.
Solution:   Add #ifdef. (Dominique Pellé)
2021-11-28 21:33:36 +00:00
06bffe836c patch 8.2.3690: Vim9: "filter #pat# cmd" does not work
Problem:    Vim9: "filter #pat# cmd" does not work.
Solution:   Do not see #pat# as a comment.
2021-11-28 20:24:17 +00:00
3ccb579516 patch 8.2.3689: ex_let_one() is too long
Problem:    ex_let_one() is too long.
Solution:   Split into multiple functions.
2021-11-28 19:53:42 +00:00
2e0f3ecb70 patch 8.2.3688: the window title is not updated when dragging the scrollbar
Problem:    The window title is not updated when dragging the scrollbar.
Solution:   Call maketitle(). (Christian Brabandt, closes #9238, closes #5383)
2021-11-28 18:41:05 +00:00
59f4f9505a patch 8.2.3687: blockwise insert does not handle autoindent properly
Problem:    Blockwise insert does not handle autoindent properly when tab is
            inserted.
Solution:   Adjust text column for indent before computing column.
            (closes #9229)
2021-11-27 22:47:43 +00:00
3d14c0f2b9 patch 8.2.3686: filetype detection often mixes up Forth and F#
Problem:    Filetype detection often mixes up Forth and F#.
Solution:   Add a function to inspect the file contents. (Doug Kearns)
2021-11-27 17:22:07 +00:00
c07f11e42f patch 8.2.3685: Visual studio project files are not recognized
Problem:    Visual studio project files are not recognized.
Solution:   Use the xml file type. (Doug Kearns)
2021-11-27 14:31:47 +00:00
e9b0b40b79 patch 8.2.3684: blockwise insert does not handle autoindent properly
Problem:    Blockwise insert does not handle autoindent properly.
Solution:   Adjust text column for indent. (closes #9229)
2021-11-27 13:28:24 +00:00
279d733dfb patch 8.2.3683: Vim9: cannot use in :...do commands
Problem:    Vim9: cannot use  in :...do commands.
Solution:   Add EX_EXPAND to the commands. (closes #9232)
2021-11-27 11:42:50 +00:00
6304be625c Update runtime files. 2021-11-27 10:57:26 +00:00
7824fc80f6 patch 8.2.3682: Vim9: assigning to a script variable drops the type
Problem:    Vim9: assigning to a script variable drops the required type.
Solution:   Lookup the type of the variable and use it. (closes #9219)
2021-11-26 17:36:51 +00:00
bfc5786a61 patch 8.2.3681: cannot drag popup window after click on a status line
Problem:    Cannot drag popup window after click on a status line. (Sergey
            Vlasov)
Solution:   Reset on_status_line. (closes #9221)
2021-11-26 15:57:40 +00:00
d1d8a595bd patch 8.2.3680: repeated code in xxd
Problem:    Repeated code in xxd.
Solution:   Change exit_on_ferror() to getc_or_die(). (closes #9226)
2021-11-26 13:59:27 +00:00
7329cfab36 patch 8.2.3679: objc file detected as Octave
Problem:    objc file detected as Octave. (Antony Lee)
Solution:   Detect objc by preprocessor lines. (Doug Kearns, closes #9223,
            closes #9220)
2021-11-26 13:01:41 +00:00
85be8563fe patch 8.2.3678: illegal memory access
Problem:    Illegal memory access.
Solution:   Ignore changed indent when computing byte offset.
2021-11-25 20:40:11 +00:00
4d07253a48 patch 8.2.3677: after a put the '] mark is on the last byte
Problem:    After a put the '] mark is on the last byte of a multi-byte
            character.
Solution:   Move it to the first byte. (closes #9047)
2021-11-25 19:31:15 +00:00
309ce25189 patch 8.2.3676: unused runtime file
Problem:    Unused runtime file.
Solution:   Remove rgb.txt.
2021-11-25 15:11:03 +00:00
ba8c92687d patch 8.2.3675: using freed memory when vim_strsave() fails
Problem:    Using freed memory when vim_strsave() fails.
Solution:   Clear "last_sourcing_name".  Check for msg_source() called
            recursively. (closes #8217)
2021-11-25 14:43:18 +00:00
96e7a5928e patch 8.2.3674: when ml_get_buf() fails it messes up IObuff
Problem:    When ml_get_buf() fails it messes up IObuff.
Solution:   Return a local pointer. (closes #9214)
2021-11-25 13:52:37 +00:00
0bd8d05638 patch 8.2.3673: crash when allocating signal stack fails
Problem:    Crash when allocating signal stack fails.
Solution:   Only using sourcing info when available. (closes #9215)
2021-11-25 13:39:28 +00:00
71b36206be patch 8.2.3672: build failure with unsigned char
Problem:    Build failure with unsigned char.
Solution:   Use int instead of char.
2021-11-25 13:26:19 +00:00
34c20ff85b patch 8.2.3671: restarting Insert mode in prompt buffer too often
Problem:    Restarting Insert mode in prompt buffer too often when a callback
            switches windows and comes back. (Sean Dewar)
Solution:   Do not set "restart_edit" when already in Insert mode.
2021-11-25 13:04:48 +00:00
8af87bd6b1 patch 8.2.3670: error checks repeated several times
Problem:    Error checks repeated several times.
Solution:   Move the checks to functions. (closes #9213)
2021-11-25 11:16:50 +00:00
bd228fd097 patch 8.2.3669: buffer overflow with long help argument
Problem:    Buffer overflow with long help argument.
Solution:   Use snprintf().
2021-11-25 10:50:12 +00:00
bb277fd89f patch 8.2.3668: messages may be corrupted
Problem:    Messages may be corrupted.
Solution:   Use another buffer instead of IObuff. (Yegappan Lakshmanan,
            closes #9195)
2021-11-24 20:28:31 +00:00
510d8e6056 patch 8.2.3667: building libvterm fails with MSVC
Problem:    Building libvterm fails with MSVC.
Solution:   Don't use C99 construct.
2021-11-24 19:55:46 +00:00
7da341560e patch 8.2.3666: libvterm is outdated
Problem:    Libvterm is outdated.
Solution:   Include patches from revision 769 to revision 789.
2021-11-24 19:30:55 +00:00
19916a8c89 patch 8.2.3665: cannot use a lambda for 'tagfunc'
Problem:    Cannot use a lambda for 'tagfunc'.
Solution:   Use 'tagfunc' like 'opfunc'. (Yegappan Lakshmanan, closes #9204)
2021-11-24 16:32:55 +00:00
e413ea04b7 patch 8.2.3664: cannot adjust sign highlighting for 'cursorline'
Problem:    Cannot adjust sign highlighting for 'cursorline'.
Solution:   Add CursorLineSign and CursorLineFold highlight groups.
            (Gregory Anders, closes #9201)
2021-11-24 16:20:13 +00:00
1f2453fec6 patch 8.2.3663: using %S in printf() does not work correctly
Problem:    Using %S in printf() does not work correctly.
Solution:   Fix the problem and add more tests. (closes #9208)
2021-11-24 15:32:57 +00:00
cf1e0239ce patch 8.2.3662: illegal memory access if malloc() fails
Problem:    Illegal memory access if malloc() fails.
Solution:   Check 'foldmethod' is not empty. (closes #9207)
2021-11-24 15:13:26 +00:00
8bc07e800c patch 8.2.3661: test for put with large count fails
Problem:    Test for put with large count fails.
Solution:   Adjust the counts in the test.
2021-11-24 14:59:17 +00:00
9b0e82f35e patch 8.2.3660: overflow check uses wrong number
Problem:    Overflow check uses wrong number.
Solution:   Divide by ten.
2021-11-24 13:40:29 +00:00
03725c5795 patch 8.2.3659: integer overflow with large line number
Problem:    Integer overflow with large line number.
Solution:   Check for overflow. (closes #9202)
2021-11-24 12:17:53 +00:00
48608b4a4b patch 8.2.3658: duplicate code in xxd
Problem:    Duplicate code in xxd.
Solution:   Merge duplicated code. Add more tests. (closes #9192)
2021-11-24 11:18:07 +00:00
112bed0cbe patch 8.2.3657: Vim9: debug text misses one line of return statement
Problem:    Vim9: debug text misses one line of return statement.
Solution:   Add a line when not at a debug instruction. (closes #9137)
2021-11-23 22:16:34 +00:00
65259b5c6a patch 8.2.3656: Vim9: no error for an evironment variable by itself
Problem:    Vim9: no error for an evironment variable by itself.
Solution:   Give a "without effect" error. (closes #9166)
2021-11-23 14:52:06 +00:00
cc9d725bbb patch 8.2.3655: compiler warning for using size_t for int
Problem:    Compiler warning for using size_t for int.
Solution:   Add a type cast. (Mike Williams, closes #9199)
2021-11-23 12:35:57 +00:00
ee93e327ba patch 8.2.3654: GTK: a touch-drag does not update the selection
Problem:    GTK: a touch-drag does not update the selection.
Solution:   Add GDK_BUTTON1_MASK to the state. (Chris Dalton, close #9196,
            closes #9194)
2021-11-23 12:27:48 +00:00
b771b6b5fe patch 8.2.3653: terminal ANSI colors may be wrong
Problem:    Terminal ANSI colors may be wrong.
Solution:   Initialize the color type. (closes #9198, closes #9197)
2021-11-23 12:07:25 +00:00
e021662f39 patch 8.2.3652: can only get text properties one line at a time
Problem:    Can only get text properties one line at a time.
Solution:   Add options to prop_list() to use a range of lines and filter by
            types. (Yegappan Lakshmanan, closes #9138)
2021-11-23 11:46:32 +00:00
04b568b38f patch 8.2.3651: Vim9: no error for :lock or :unlock with unknown variable
Problem:    Vim9: no error for :lock or :unlock with unknown variable.
Solution:   Give an error. (closes #9188)
2021-11-22 21:58:41 +00:00
3b3755fe19 patch 8.2.3650: Vim9: for loop variable can be a list member
Problem:    Vim9: for loop variable can be a list member.
Solution:   Check for valid variable name. (closes #9179)
2021-11-22 20:10:18 +00:00
7a53f29c03 patch 8.2.3649: Vim9: error for variable declared in while loop
Problem:    Vim9: error for variable declared in while loop.
Solution:   Do not keep the first variable. (closes #9191)
2021-11-22 18:31:02 +00:00
4671e88d7d patch 8.2.3648: "verbose pwd" is incorrect after dropping files on Vim
Problem:    "verbose pwd" is incorrect after dropping files on Vim.
Solution:   Set the chdir reason to "drop".
2021-11-22 17:21:48 +00:00
ce59b9f292 patch 8.2.3647: GTK: when using ligatures the cursor is drawn wrong
Problem:    GTK: when using ligatures the cursor is drawn wrong.
Solution:   Clear more characters when ligatures are used. (Dusan Popovic,
            closes #9190)
2021-11-22 17:18:44 +00:00
c449271f4e patch 8.2.3646: using <sfile> in a function gives an unexpected result
Problem:    Using <sfile> in a function gives an unexpected result.
Solution:   Give an error in a Vim9 function. (issue #9189)
2021-11-22 15:37:15 +00:00
7d5b8becc3 patch 8.2.3645: Vim9: The "no effect" error is not given for all registers
Problem:    Vim9: The "no effect" error is not given for all registers.
Solution:   Include any character following '@'. (closes #8779)
2021-11-22 15:05:46 +00:00
2228cd72cf patch 8.2.3644: count for 'operatorfunc' in Visual mode is not redone
Problem:    Count for 'operatorfunc' in Visual mode is not redone.
Solution:   Add the count to the redo buffer. (closes #9174)
2021-11-22 14:16:08 +00:00
a3f83feb63 patch 8.2.3643: header for source file is outdated
Problem:    Header for source file is outdated.
Solution:   Make the header more accurate. (closes #9186)
2021-11-22 12:47:39 +00:00
73448a27a8 patch 8.2.3642: list of distributed files is outdated
Problem:    List of distributed files is outdated.
Solution:   Rename term.h to termdefs.h.
2021-11-22 12:06:06 +00:00
581f41adb3 patch 8.2.3641: xxd code has duplicate expressions
Problem:    Xxd code has duplicate expressions.
Solution:   Refactor to avoid duplication. (closes #9185)
2021-11-22 11:57:31 +00:00
88a4205f1c Update runtime files 2021-11-21 21:13:36 +00:00
eea32afdb8 patch 8.2.3640: freeze when calling term_wait() in a close callback
Problem:    Freeze when calling term_wait() in a close callback.
Solution:   Set a "closing" flag to tell term_wait() to return. (closes #9152)
2021-11-21 14:51:13 +00:00
7f0c4b418e patch 8.2.3639: line commented out accidentally
Problem:    Line commented out accidentally.
Solution:   Uncomment. (Volodymyr Kot, closes #9172)
2021-11-21 12:27:13 +00:00
4785fe02bb patch 8.2.3638: getcompletion() always passes zero as position
Problem:    getcompletion() always passes zero as position to custom
            completion function.
Solution:   Pass the pattern length. (closes #9173)
2021-11-21 12:13:56 +00:00
923dce2b07 patch 8.2.3637: typos in test files
Problem:    Typos in test files.
Solution:   Correct the typos. (Dominique Pellé, closes #9175)
2021-11-21 11:36:04 +00:00
2c23670300 patch 8.2.3636: Coverity warns for unreachable code
Problem:    Coverity warns for unreachable code.
Solution:   Remove unreachable else block.
2021-11-21 11:15:49 +00:00
3c19b50500 patch 8.2.3635: GTK: composing underline does not show
Problem:    GTK: composing underline does not show.
Solution:   Include composing character in pango call. A few more
            optimizations for ligatures.  (Dusan Popovic, closes #9171,
            closes #9147)
2021-11-20 22:03:30 +00:00
d604d78e7b patch 8.2.3634: error for already defined function uses wrong line number
Problem:    Error for already defined function uses wrong line number.
Solution:   Set SOURCING_LNUM before giving the error message. (closes #9085)
2021-11-20 21:46:20 +00:00
a755fdbe80 patch 8.2.3633: Vim9: line number of lambda is off by one
Problem:    Vim9: line number of lambda is off by one.
Solution:   Add one to the line number. (closes #9083)
2021-11-20 21:35:41 +00:00
9cd9385db7 patch 8.2.3632: GTK3: undercurl does not get removed properly
Problem:    GTK3: undercurl does not get removed properly.
Solution:   Set the cairo cursor first. (closes #9170)
2021-11-20 20:42:29 +00:00
c8a9fe541d patch 8.2.3631: "syntax enable" does not work properly in Vim9 context
Problem:    "syntax enable" does not work properly in Vim9 context.
Solution:   Also handle Vim9 context. (closes #9161)
2021-11-20 19:50:59 +00:00
d85fccdfed patch 8.2.3630: printf() with %S does not handle multi-byte correctly
Problem:    Printf() with %S does not handle multi-byte correctly.
Solution:   Count cells instead of bytes. (closes #9169, closes #7486)
2021-11-20 19:38:31 +00:00
a119812437 patch 8.2.3629: command completion in cmdline window uses global commands
Problem:    Command completion in cmdline window uses global user commands,
            not local commands for the window where it was opened from.
Solution:   Use local commands. (closes #9168)
2021-11-20 19:13:39 +00:00
87fd0924e2 patch 8.2.3628: looking terminal colors is a bit slow
Problem:    Looking terminal colors is a bit slow.
Solution:   Cache the terminal colors. (closes #9130, closes #9058)
2021-11-20 13:47:45 +00:00
cdf5fdb294 patch 8.2.3627: difficult to know where the text starts in a window
Problem:    difficult to know where the text starts in a window. (Sergey
            Vlasov)
Solution:   Add the "textoff" entry in the result of getwininfo().
            (closes #9163)
2021-11-20 11:14:24 +00:00
b8e642f7ac patch 8.2.3626: "au! event" cannot be followed by another command
Problem:    "au!" and "au! event" cannot be followed by another command as
            documented.
Solution:   When a bar is found set nextcmd.
2021-11-20 10:38:25 +00:00
2de9b7c7c8 patch 8.2.3625: illegal memory access when C-indenting
Problem:    Illegal memory access when C-indenting.
Solution:   Also set the cursor column.
2021-11-19 19:41:13 +00:00
3ad695328f patch 8.2.3624: when renaming a terminal buffer status text is not updated
Problem:    When renaming a terminal buffer the status text is not updated.
Solution:   Clear the cached status text when renaming a terminal buffer.
            (closes #9162)
2021-11-19 17:01:08 +00:00
8b8d829faf patch 8.2.3623: "$*" is expanded to "nonomatch"
Problem:    "$*" is expanded to "nonomatch".
Solution:   Only add "set nonomatch" when using a csh-like shell. (Christian
            Brabandt, closes #9159, closes #9153)
2021-11-19 12:37:36 +00:00
64be6aa3a5 patch 8.2.3622: "verbose pwd" shows confusing info
Problem:    "verbose pwd" shows confusing info when :lcd does not change
            directory.
Solution:   Clear last_chdir_reason also when the directory does not change.
            (closes #9160)
2021-11-19 11:59:08 +00:00
1d69ef410a patch 8.2.3621: build failure
Problem:    Build failure.
Solution:   Add missing change.
2021-11-19 11:35:32 +00:00
b3a29558ee patch 8.2.3620: memory leak reported in libtlib
Problem:    Memory leak reported in libtlib.
Solution:   Call del_curterm() when cleaning up memory.  Rename term.h to
            termdefs.h to avoid a name clash.
2021-11-19 11:28:04 +00:00
777175b0df patch 8.2.3619: cannot use a lambda for 'operatorfunc'
Problem:    Cannot use a lambda for 'operatorfunc'.
Solution:   Support using a lambda or partial. (Yegappan Lakshmanan,
            closes #8775)
2021-11-18 22:08:57 +00:00
851c7a699a patch 8.2.3618: getcwd() is unclear about how 'autochdir' is used
Problem:    getcwd() is unclear about how 'autochdir' is used.
Solution:   Update the help for getcwd().  Without any arguments always return
            the actual current directory. (closes #9142)
2021-11-18 20:47:31 +00:00
0526815c15 patch 8.2.3617: ":verbose pwd" does not mention 'autochdir' was applied
Problem:    ":verbose pwd" does not mention 'autochdir' was applied.
Solution:   Remember the last chdir was done by 'autochdir'.  (issue #9142)
2021-11-18 18:53:45 +00:00
3cad470385 patch 8.2.3616: arglist test does not clear the argument list consistently
Problem:    Arglist test does not clear the argument list consistently.
Solution:   Call Reset_arglist(). (Shougo Matsushita, closes #9154)
2021-11-18 15:37:29 +00:00
818ff25cd1 patch 8.2.3615: wrong indent in first line if re-formatting with indent expr
Problem:    When re-formatting with an indent expression the first line of a
            paragraph may get the wrong indent. (Martin F. Krafft)
Solution:   Apply the correct indenting function for the first line.
            (Christian Brabandt, closes #9150, closes #9056)
2021-11-18 13:56:37 +00:00
6555500bcf patch 8.2.3614: zindex of popup windows not used when redrawing popup menu
Problem:    zindex of popup windows not used when redrawing popup menu.
Solution:   Check the zindex when redrawing the popup menu.  (closes #9129,
            closes #9089)
2021-11-17 20:40:16 +00:00
e015d99abb patch 8.2.3613: :find test fails
Problem:    :find test fails.
Solution:   Put length check inside if block.
2021-11-17 19:01:53 +00:00
64066b9acd patch 8.2.3612: using freed memory with regexp using a mark
Problem:    Using freed memory with regexp using a mark.
Solution:   Get the line again after getting the mark position.
2021-11-17 18:22:56 +00:00
615ddd5342 patch 8.2.3611: crash when using CTRL-W f without finding a file name
Problem:    Crash when using CTRL-W f without finding a file name.
Solution:   Bail out when the file name length is zero.
2021-11-17 18:00:31 +00:00
a062006b9d patch 8.2.3610: crash when ModeChanged triggered too early
Problem:    Crash when ModeChanged triggered too early.
Solution:   Trigger ModeChanged after setting VIsual.
2021-11-17 16:52:40 +00:00
3075a45592 patch 8.2.3609: internal error when ModeChanged is triggered recursively
Problem:    Internal error when ModeChanged is triggered when v:event is
            already in use.
Solution:   Save and restore v:event if needed.
2021-11-17 15:51:52 +00:00
125ffd21f9 patch 8.2.3608: users who type "q:" instead of ":q" are confused
Problem:    Users who type "q:" instead of ":q" are confused.
Solution:   Add an autocmd to give a message that explains this is the
            command-line window. (Egor Zvorykin, closes #9146)
2021-11-17 14:01:14 +00:00
9459b8d461 patch 8.2.3607: GTK3 screen updating is slow
Problem:    GTK3 screen updating is slow.
Solution:   Remove some of the GTK3-specific code. (closes #9052)
2021-11-16 20:03:56 +00:00
d3682c5f28 patch 8.2.3606: file missing from list of distributed files
Problem:    File missing from list of distributed files.
Solution:   Add the file.
2021-11-16 19:20:56 +00:00
519cc559b0 Update runtime files 2021-11-16 19:18:26 +00:00
728104da6c Add missing change to version.c 2021-11-16 17:50:34 +00:00
2a16dc6613 patch 8.2.3605: cannot clear and unlinke a highlight group with hlset()
Problem:    Cannot clear and unlinke a highlight group with hlset() in a
            single call.
Solution:   Add the "force" option. (Yegappan Lakshmanan, closes #9117)
2021-11-16 17:19:30 +00:00
c143fa0778 patch 8.2.3604: not all sudoers files are recognized
Problem:    Not all sudoers files are recognized.
Solution:   Add a file pattern. (Doug Kearns, closes #1192)
2021-11-16 16:38:42 +00:00
b1b163efd7 patch 8.2.3603: fish filetype not recognized
Problem:    Fish filetype not recognized.
Solution:   Add a file pattern and match script line. (Doug Kearns)
2021-11-16 15:28:10 +00:00
1be7e21583 patch 8.2.3602: Python3 test fails with Python 3.10 on MS-Windows
Problem:    Python3 test fails with Python 3.10 on MS-Windows.
Solution:   Adjust the expected error. (Ken Takata, closes #9118)
2021-11-16 13:08:56 +00:00
fa53722367 patch 8.2.3601: check for overflow in put count does not work well
Problem:    Check for overflow in put count does not work well.
Solution:   Improve the overflow check. (Ozaki Kiichi, closes #9102)
2021-11-16 12:50:46 +00:00
314b773abb patch 8.2.3600: filetype test fails
Problem:    Filetype test fails.
Solution:   Add missint change.
2021-11-16 11:53:13 +00:00
782b4bbc16 patch 8.2.3599: not all gdbinit files are recognized
Problem:    Not all gdbinit files are recognized.
Solution:   Add "gdbinit". (Doug Kearns)
2021-11-16 11:10:11 +00:00
0818ab82e7 patch 8.2.3598: RouterOS filetype is not recognized
Problem:    RouterOS filetype is not recognized.
Solution:   Add file and script patterns. (closes #9097)
2021-11-15 21:44:11 +00:00
36968af155 patch 8.2.3597: Vim seems to hang when writing a long text to a terminal
Problem:    Vim seems to hang when writing a very long text to a terminal
            window.
Solution:   Limit the amount of text based on 'termwinscroll'. (issue #9080)
2021-11-15 17:13:11 +00:00
733b124a90 patch 8.2.3596: crash when using :pedit in Vim9 script
Problem:    Crash when using :pedit in Vim9 script.
Solution:   Move check for arguments to after checking there are arguments.
            (Yegappan Lakshmanan, closes #9134, closes #9135)
2021-11-15 11:22:09 +00:00
0d5a12ea04 patch 8.2.3595: check for signed overflow might not work everywhere
Problem:    Check for signed overflow might not work everywhere.
Solution:   Limit to 32 bit int. (closes #9043, closes #9067)
2021-11-14 14:05:18 +00:00
786e05beb5 patch 8.2.3594: xxd code is a bit difficult to understand
Problem:    Xxd code is a bit difficult to understand.
Solution:   Move some lines to a separate function. (closes #9037)
2021-11-14 13:46:05 +00:00
7f13b24ab6 patch 8.2.3593: directory is wrong after executing "lcd" with win_execute()
Problem:    Directory is wrong after executing "lcd" with win_execute().
Solution:   Correct the directory when going back to the original window.
            (closes #9132)
2021-11-14 11:41:31 +00:00
6a950a6007 patch 8.2.3592: Test_hlset fails when terminal has many columns
Problem:    Test_hlset fails when terminal has many columns.
Solution:   Set the number of columns to 80. (Dominique Pellé, closes #9101,
            closes #9100)
2021-11-13 18:44:37 +00:00
23beefed73 patch 8.2.3591: no event is triggered when closing a window
Problem:    No event is triggered when closing a window.
Solution:   Add the WinClosed event. (Naohiro Ono, closes #9110)
2021-11-13 12:38:49 +00:00
a0fca17251 patch 8.2.3590: test for v:colornames sometimes fails
Problem:    Test for v:colornames sometimes fails. (Dominique Pellé)
Solution:   Check features.  Clear v:colornames between tests. (Drew Vogel,
            closes #9105, closes #9073)
2021-11-13 10:50:01 +00:00
5300be620c patch 8.2.3589: failure when "term_rows" of term_start() is an unusual value
Problem:    Failure when the "term_rows" argument of term_start() is an
            unusual value.
Solution:   Limit to range of zero to 1000. (closes #9116)
2021-11-13 10:27:40 +00:00
606efc7df4 patch 8.2.3588: break statement is never reached
Problem:    Break statement is never reached.
Solution:   Rely on return value of set_chars_option() not changing.
            (closes #9103)
2021-11-12 19:52:47 +00:00
0a15c7676b patch 8.2.3587: compiler test fails with backslash file separator
Problem:    Compiler test fails with backslash file separator.
Solution:   Accept slash and backslash.
2021-11-12 16:09:54 +00:00
326e7da609 patch 8.2.3586: command completion test fails
Problem:    Command completion test fails.
Solution:   Add new argument to expected output
2021-11-12 16:06:03 +00:00
8813739673 patch 8.2.3585: crash when passing float to "term_rows" of term_start()
Problem:    Crash when passing float to "term_rows" in the options argument of
            term_start(). (Virginia Senioria)
Solution:   Bail out if the argument is not a number. (closes #9116)
2021-11-12 16:01:15 +00:00
58ef8a31d7 patch 8.2.3584: "verbose set efm" reports location of the :compiler command
Problem:    "verbose set efm" reports the location of the :compiler command.
            (Gary Johnson)
Solution:   Add the "-keepscript" argument to :command and use it when
            defining CompilerSet.
2021-11-12 11:25:11 +00:00
0c71114aed patch 8.2.3583: the "gd" and "gD" commands do not update search stats
Problem:    The "gd" and "gD" commands do not update search stats. (Gary
            Johnson)
Solution:   Clear search stats.
2021-11-12 10:30:04 +00:00
113cb513f7 Update runtime files 2021-11-07 20:27:04 +00:00
15d9890eee patch 8.2.3582: reading uninitialized memory when giving spell suggestions
Problem:    Reading uninitialized memory when giving spell suggestions.
Solution:   Check that preword is not empty.
2021-11-04 15:46:05 +00:00
0b5b06cb47 patch 8.2.3581: reading character past end of line
Problem:    Reading character past end of line.
Solution:   Correct the cursor column.
2021-11-04 15:10:11 +00:00
aaec1d4fb1 patch 8.2.3580: gj does not move properly with a wide character
Problem:    gj does not move properly with a wide character.
Solution:   Move one to the right. (Christian Brabandt, closes #8702)
2021-11-04 13:28:29 +00:00
4b2c804767 patch 8.2.3579: CI sometimes fails for MinGW
Problem:    CI sometimes fails for MinGW.
Solution:   Use backslashes in HandleSwapExists(). (Christian Brabandt,
            closes #9078)
2021-11-03 22:31:44 +00:00
b32aa8a6a1 Add missing piece of patch 8.2.3578 2021-11-03 22:25:06 +00:00
d1a8d658e1 patch 8.2.3578: manipulating highlighting is complicated
Problem:    Manipulating highlighting is complicated.
Solution:   Add the hlget() and hlset() functions. (Yegappan Lakshmanan,
            closes #9039)
2021-11-03 21:56:45 +00:00
0f0044125c patch 8.2.3577: overflow check fails with 32 ints
Problem:    Overflow check fails with 32 ints.
Solution:   Only test with 64 bit ints.
2021-11-03 13:43:16 +00:00
a63780b977 patch 8.2.3576: some functions are not documented for use with a method
Problem:    Some functions are not documented for use with a method.
Solution:   Add examples.  Fix that sign_unplacelist() only takes one
            argument. (Sean Dewar, closes #9081)
2021-11-03 13:15:47 +00:00
e551ccfb93 patch 8.2.3575: overflow check still fails when sizeof(int) == sizeof(long)
Problem:    Overflow check still fails when sizeof(int) == sizeof(long).
Solution:   Use a float to check the result.
2021-11-02 23:11:00 +00:00
8a1962d135 patch 8.2.3574: divide by zero
Problem:    Divide by zero.
Solution:   Don't check for overflow if multiplicand is zero.
2021-11-02 22:48:49 +00:00
69b3072d98 patch 8.2.3573: cannot decide whether to skip test that fails with 64 bit
Problem:    Cannot decide whether to skip test that fails with 64 bit ints.
            (closes #9072)
Solution:   Add v:sizeofint, v:sizeoflong and v:sizeofpointer.  Improve the
            check for multiply overflow.
2021-11-02 21:39:49 +00:00
7a33ebfc5b patch 8.2.3572: memory leak when closing window and using "multispace"
Problem:    Memory leak when closing window and using "multispace" in
            'listchars'.
Solution:   Free the memory. (closes #9071)
2021-11-02 20:56:07 +00:00
e2f66064d1 patch 8.2.3571: some unicode control characters are considered printable
Problem:    Some unicode control characters are considered printable.
Solution:   Make 0x2060 - 0x2069 not printable.
2021-11-02 20:24:38 +00:00
ec6e63079d patch 8.2.3570: Test_very_large_count fails on 32bit systems
Problem:    Test_very_large_count fails on 32bit systems.
Solution:   Bail out when using 32 bit numbers. (closes #9072)
2021-11-01 22:58:43 +00:00
fd916d654d patch 8.2.3569: error for :let when vimrc is Vim 9 script
Problem:    Error for :let when vimrc is Vim 9 script.
Solution:   Prepend :legacy in the code for converting arguments. (Christian
            Brabandt, closes #9068, closes #9077)
2021-11-01 22:44:33 +00:00
8753c1dd2c patch 8.2.3568: ctrl-hat test fails with Athena and Motif
Problem:    Ctrl-hat test fails with Athena and Motif. (Elimar Riesebieter)
Solution:   Run the test only with GTK. (Dominique Pellé, closes #9069)
2021-10-31 20:19:17 +00:00
9cd063e319 patch 8.2.3567: CTRL-I in Insert mode is not tested
Problem:    CTRL-I in Insert mode is not tested
Solution:   Add a test case. (Dominique Pellé, closes #8866)
2021-10-28 21:06:05 +01:00
44db603f69 patch 8.2.3566: build failure on old systems when using nano timestamp
Problem:    Build failure on old systems when using nano timestamp.
Solution:   Define _BSD_SOURCE, _SVID_SOURCE and _DEFAULT_SOURCE. (Gary
            Johnson, closes #9054)
2021-10-28 20:49:06 +01:00
2446ec9b56 patch 8.2.3565: Makefile dependencies are outdated
Problem:    Makefile dependencies are outdated. (Gary Johnson)
Solution:   Run "make depend" and add missing dependencies.
2021-10-26 12:00:01 +01:00
777e7c21b7 patch 8.2.3564: invalid memory access when scrolling without valid screen
Problem:    Invalid memory access when scrolling without a valid screen.
Solution:   Do not set VALID_BOTLINE in w_valid.
2021-10-25 17:07:04 +01:00
2a52196b78 patch 8.2.3563: build failure with +eval but without GUI or +termguicolors
Problem:    Build failure with +eval but without GUI or +termguicolors
Solution:   Adjust #ifdef. (John Marriott)
2021-10-25 10:30:14 +01:00
e30d10253f patch 8.2.3562: cannot add color names
Problem:    Cannot add color names.
Solution:   Add the v:colornames dictionary. (Drew Vogel, closes #8761)
2021-10-24 20:35:07 +01:00
3c5904d2a5 patch 8.2.3561: cscope has a complicated way of giving an error message
Problem:    Cscope has a complicated way of giving an error message.
Solution:   Use semsg(). (James McCoy, closes #9038)
2021-10-24 14:50:07 +01:00
844fb64a60 patch 8.2.3560: using freed memory with lambda
Problem:    Using freed memory with lambda.
Solution:   Do not free lines early, keep them until the expression is
            finished.
2021-10-23 13:32:30 +01:00
ee56f3f119 patch 8.2.3559: loop variable recreated every time
Problem:    Loop variable recreated every time.
Solution:   Keep the loop variable when looping.
2021-10-23 12:34:27 +01:00
079ba76ae7 Update runtime files 2021-10-23 12:08:41 +01:00
06ca48a40f patch 8.2.3558: Vim9: asserting the wrong variable
Problem:    Vim9: asserting the wrong variable.
Solution:   Don't use Foo, use Goo.
2021-10-23 10:25:21 +01:00
5fe07d2e08 patch 8.2.3557: Vim9: cannot call imported funcref at script level
Problem:    Vim9: cannot call imported funcref at script level.
Solution:   Check for an imported function. (closes #9007)
2021-10-22 22:17:53 +01:00
841c225b9e patch 8.2.3556: filler lines are incorrect for other window in diff mode
Problem:    Filler lines are incorrect for other window in diff mode after
            making a change.
Solution:   Copy filler lines from the current window. (closes #8809)
2021-10-22 20:56:55 +01:00
25def2c8b8 patch 8.2.3555: ModeChanged is not triggered on every mode change
Problem:    ModeChanged is not triggered on every mode change.
Solution:   Also trigger on minor mode changes. (Maguns Gross, closes #8999)
2021-10-22 18:56:39 +01:00
a2ffb43520 patch 8.2.3554: xxd has various way to exit
Problem:    Xxd has various way to exit.
Solution:   Add function to print error and exit. (closes #9035)
2021-10-22 15:55:31 +01:00
5a5c111e79 patch 8.2.3553: xxd test fails on MS-Windows
Problem:    Xxd test fails on MS-Windows.
Solution:   Split shell command in two.
2021-10-22 15:11:37 +01:00
47810464aa patch 8.2.3552: xxd revert does not handle end of line correctly
Problem:    Xxd revert does not handle end of line correctly.
Solution:   Check for newline first. (closes #9034)
2021-10-22 12:55:42 +01:00
94e7d345c1 patch 8.2.3551: checking first character of url twice
Problem:    Checking first character of url twice.
Solution:   Only check once. (closes #9026)
2021-10-21 18:01:13 +01:00
ae38a9db77 patch 8.2.3550: completion() does not work properly
Problem:    completion() does not work properly.
Solution:   Set xp_line and add WILD_HOME_REPLACE. (Shougo Matsushita,
            closes #9016)
2021-10-21 11:39:53 +01:00
b811de5d49 patch 8.2.3549: mistakes in test comments
Problem:    Mistakes in test comments.
Solution:   Fix the comments. (closes #9029)
2021-10-21 10:50:44 +01:00
d68a004485 patch 8.2.3548: GTK GUI crashen when reading from stdin
Problem:    GTK GUI crashen when reading from stdin.
Solution:   Do not overwrite the NUL after the string. (closes #9028)
2021-10-20 23:08:11 +01:00
1d30fde3c9 patch 8.2.3547: opening the quickfix window triggers BufWinEnter twice
Problem:    Opening the quickfix window triggers BufWinEnter twice. (Yorick
            Peterse)
Solution:   Only trigger BufWinEnter with "quickfix". (closes #9022)
2021-10-20 21:58:42 +01:00
09f7723d5a patch 8.2.3546: build failure without the +eval feature
Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef. (closes #9025)
2021-10-20 17:21:24 +01:00
94358a1e6e patch 8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalid
Problem:    setcellwidths() may make 'listchars' or 'fillchars' invalid.
Solution:   Check the value and give an error. (closes #9024)
2021-10-20 11:01:15 +01:00
051a40c8d9 patch 8.2.3544: Unix: may leak file descriptor using non-existing directory
Problem:    Unix: may leak file descriptor when using a non-existing
            directory.
Solution:   Always close the file. (closes #9023)
2021-10-20 10:00:05 +01:00
8b0e62c93b patch 8.2.3543: swapname has double slash when 'directory' ends in it
Problem:    Swapname has double slash when 'directory' ends in double slash.
            (Shane Smith)
Solution:   Remove the superfluous slash. (closes #8876)
2021-10-19 22:12:25 +01:00
c5935a859e patch 8.2.3542: too many comments are old style
Problem:    Too many comments are old style.
Solution:   Change comments to // style. (closes #9021)
2021-10-19 20:48:52 +01:00
731fba1081 patch 8.2.3541: compiler warning for unused variable in tiny version
Problem:    Compiler warning for unused variable in tiny version.
Solution:   Add #ifdef. (John Marriott)
2021-10-19 20:24:34 +01:00
f47ebf1e1a patch 8.2.3540: the mark '] is wrong after put with a count
Problem:    The mark '] is wrong after put with a count. (Naohiro Ono)
Solution:   Use the right line number. (closes #8956)
2021-10-19 20:08:45 +01:00
604e207e27 patch 8.2.3539: GTK3: with 'rightleft' set scrollbar may move unintentionally
Problem:    GTK3: with 'rightleft' set scrollbar may move unintentionally.
Solution:   Ignore events while moving the scrollbar thumb. (closes #8958)
2021-10-19 14:22:03 +01:00
d43d8e28db patch 8.2.3538: else-if indenting is confusing
Problem:    Else-if indenting is confusing.
Solution:   Add curly brackets. (Yegappan Lakshmanan, closes #9017)
2021-10-19 13:44:52 +01:00
75c30e96cf patch 8.2.3537: mode() does not return the right value in 'operatorfunc'
Problem:    mode() does not return the right value in 'operatorfunc'.
Solution:   Reset finish_op while calling 'operatorfunc'.
2021-10-19 11:15:41 +01:00
ad6b90c33c patch 8.2.3536: the do_highlight() function is way too long
Problem:    The do_highlight() function is way too long.
Solution:   Split it into several functions. (Yegappan Lakshmanan,
            closes #9011)
2021-10-18 22:13:57 +01:00
9b0b844d25 patch 8.2.3535: if-else indenting is confusing
Problem:    If-else indenting is confusing.
Solution:   Add curly brackets and indent. (Dominique Pellé, closes #9010)
2021-10-18 20:56:39 +01:00
944eeb44fb patch 8.2.3534: autoread test is a bit flaky
Problem:    Autoread test is a bit flaky.
Solution:   Wait a brief moment before overwriting the file.
2021-10-18 14:37:13 +01:00
375c35a63f patch 8.2.3533: inefficient code in xxd
Problem:    Inefficient code in xxd.
Solution:   Don't use "p" when "hextype" is non-zero. (closes #9013)
2021-10-18 13:16:03 +01:00
e08aee60ab patch 8.2.3532: the previous '' mark is restored after moving the cursor
Problem:    The previous '' mark is restored after moving the cursor to the
            original jump position. (Tony Chen)
Solution:   Forget the previous position after checking. (closes #8985)
2021-10-17 21:53:58 +01:00
39c47c3104 patch 8.2.3531: command line completion test fails on MS-Windows
Problem:    Command line completion test fails on MS-Windows.
Solution:   Do not test with "\{" on MS-Windows.
2021-10-17 18:05:26 +01:00
21c1a0c2f1 patch 8.2.3530: ":buf \{a}" fails while ":edit \{a}" works
Problem:    ":buf \{a}" fails while ":edit \{a}" works.
Solution:   Unescape "\{". (closes #8917)
2021-10-17 17:20:23 +01:00
34a364877f patch 8.2.3529: xxd usage output is incomplete
Problem:    Xxd usage output is incomplete.
Solution:   Add "bytes" to "-g" flag. (Atsushi Sugawara, closes #8944)
2021-10-17 16:09:08 +01:00
f4d8b76d30 patch 8.2.3528: 'thesaurus' and 'thesaurusfunc' do not have the same scope
Problem:    'thesaurus' and 'thesaurusfunc' do not have the same scope.
Solution:   Make 'thesaurusfunc' global-local.
2021-10-17 14:13:09 +01:00
9d4b8caf9e patch 8.2.3527: gcc complains about uninitialized variable
Problem:    Gcc complains about uninitialized variable. (Tony Mechelynck)
Solution:   Initialize it.
2021-10-17 11:33:47 +01:00
40bd5a1540 patch 8.2.3526: tests have clumsy check for X11 based GUI
Problem:    Tests have clumsy check for X11 based GUI.
Solution:   Add CheckX11BasedGui.
2021-10-16 21:58:27 +01:00
d4c4bfa007 patch 8.2.3525: option variable name does not match option name
Problem:    Option variable name does not match option name. (Christ van
            Willigen)
Solution:   Rename the variable.
2021-10-16 21:14:11 +01:00
4eeedc09fe patch 8.2.3524: GUI: ligatures are not used
Problem:    GUI: ligatures are not used.
Solution:   Add the 'guiligatures' option. (Dusan Popovic, closes #8933)
2021-10-16 20:52:05 +01:00
c89c91cafd patch 8.2.3523: duplicated code in xxd
Problem:    Duplicated code in xxd.
Solution:   Remove duplicated lines. (closes #8972)
2021-10-16 19:07:46 +01:00
93ff6720fe patch 8.2.3522: cannot use \x and \u when setting 'listchars'
Problem:    Cannot use \x and \u when setting 'listchars'.
Solution:   Support hex and unicode in hex form. (closes #9006)
2021-10-16 17:51:40 +01:00
abdcfd1c83 patch 8.2.3521: options completion test fails
Problem:    Options completion test fails.
Solution:   Add 'thesaurusfunc' to the results.
2021-10-16 16:48:27 +01:00
160e994d76 patch 8.2.3520: cannot define a function for thesaurus completion
Problem:    Cannot define a function for thesaurus completion.
Solution:   Add 'thesaurusfunc'. (Yegappan Lakshmanan, closes #8987,
            closes 8950)
2021-10-16 15:41:29 +01:00
2286304cdb Update runtime files 2021-10-16 15:23:36 +01:00
28b6a3bef6 patch 8.2.3519: TOML files are not recognized
Problem:    TOML files are not recognized.
Solution:   Add filetype patterns for TOML. (Aman Verma, closes #8984)
2021-10-16 13:44:04 +01:00
f08b0eb869 patch 8.2.3518: Test_xrestore sometimes fails
Problem:    Test_xrestore sometimes fails.
Solution:   Mark the test as flayky.  Move marking test as flaky to the test
            instead of listing them in runtest.
2021-10-16 13:00:14 +01:00
db3b44640d patch 8.2.3517: TextChanged does not trigger after TextChangedI
Problem:    TextChanged does not trigger after TextChangedI.
Solution:   Store the tick separately for TextChangedI. (Christian Brabandt,
            closes #8968, closes #8932)
2021-10-16 11:58:55 +01:00
7b5f45be21 patch 8.2.3516: terminal window does not have transparent background
Problem:    Terminal window does not have transparent background when
            'termguicolors' is used.
Solution:   Fix the background color. (closes #2361, closes #9002)
2021-10-15 22:25:43 +01:00
def69dffb3 patch 8.2.3515: nano time test fails on Mac and FreeBSD
Problem:    Nano time test fails on Mac and FreeBSD.
Solution:   Also check nano time when not on Linux. (Ozaki Kiichi,
            closes #9000)
2021-10-15 17:23:12 +01:00
eaa006dae3 patch 8.2.3514: autoread test with nano second time sometimes fails
Problem:    Autoread test with nano second time sometimes fails.
Solution:   Mark the test as being flaky.
2021-10-15 17:09:50 +01:00
a2cff1dbc9 patch 8.2.3513: using freed memory when using a timer and searching
Problem:    Using freed memory when using a timer and searching. (Dominique
            Pellé)
Solution:   Allocated mr_pattern.
2021-10-15 12:51:29 +01:00
accf4ed352 patch 8.2.3512: timestamp test fails on some systems
Problem:    Timestamp test fails on some systems.
Solution:   Sleep for a short while.
2021-10-15 00:38:02 +01:00
a06758dd38 patch 8.2.3511: Vim9: entry for loop variable is created every round
Problem:    Vim9: entry for loop variable is created every round.
Solution:   Only create the entry once. (closes #8996)
2021-10-15 00:18:37 +01:00
0a7984af56 patch 8.2.3510: changes are only detected with one second accuracy
Problem:    Changes are only detected with one second accuracy.
Solution:   Use the nanosecond time if possible.  (Leah Neukirchen,
            closes #8873, closes #8875)
2021-10-14 21:27:55 +01:00
340dd0fbe4 patch 8.2.3509: undo file is not synced
Problem:    Undo file is not synced. (Sami Farin)
Solution:   Sync the undo file if 'fsync' is set. (Christian Brabandt,
            closes #8879, closes #8920)
2021-10-14 17:52:23 +01:00
051a8a375f patch 8.2.3508: Vim9: bad separators for "g" and "s" insufficiently tested
Problem:    Vim9: bad separators for "g" and "s" insufficiently tested.
Solution:   Add a few more test cases.
2021-10-14 16:53:42 +01:00
75aa92a162 patch 8.2.3507: generating proto files may fail
Problem:    Generating proto files may fail.
Solution:   Define __attribute().
2021-10-14 16:27:19 +01:00
c0abac67d7 patch 8.2.3506: Vim9: special cases for "g" and "s" insufficiently tested
Problem:    Vim9: special cases for "g" and "s" insufficiently tested.
Solution:   Add a few more test cases.
2021-10-13 21:17:05 +01:00
3be69bf539 patch 8.2.3505: Vim9: build failure without the +eval feature
Problem:    Vim9: build failure without the +eval feature.
Solution:   Add #ifdef.
2021-10-13 15:37:15 +01:00
7f32092b91 patch 8.2.3504: Vim9: warning for signed vs unsigned
Problem:    Vim9: warning for signed vs unsigned.
Solution:   Add type cast.
2021-10-13 15:28:28 +01:00
7b82926892 patch 8.2.3503: Vim9: using g:pat:cmd is confusing
Problem:    Vim9: using g:pat:cmd is confusing.
Solution:   Do not recognize g: as the :global command.  Also for s:pat:repl.
            (closes #8982)
2021-10-13 15:04:34 +01:00
fff10d9a76 patch 8.2.3502: cannot enter password in shell command
Problem:    Cannot enter password in shell command.
Solution:   Revert patch 8.2.2919.
2021-10-13 10:05:30 +01:00
e519eb41c1 patch 8.2.3501: tmux filetype dection is incomplete
Problem:    tmux filetype dection is incomplete
Solution:   Also use tmux for files having text after .conf. (Eric Pruitt,
            closes #8971)
2021-10-12 13:58:23 +01:00
3a724290c5 patch 8.2.3500: Github CI fails to install clang
Problem:    Github CI fails to install clang.
Solution:   Install llvm-11 explicitly. (Christian Brabandt, closes #8993)
2021-10-12 12:02:49 +01:00
3d031a0ae7 patch 8.2.3499: GUI geometry startup test fails
Problem:    GUI geometry startup test fails.
Solution:   Check string values instead of numbers
2021-10-11 22:57:34 +01:00
37f341d723 patch 8.2.3498: recover test may fail on some systems
Problem:    Recover test may fail on some systems.
Solution:   Adjust the little endian and 64 bit detection. (James McCoy,
            closes #8941)
2021-10-11 21:04:37 +01:00
a9173d06f7 patch 8.2.3497: put test fails when run by itself
Problem:    Put test fails when run by itself.
Solution:   Source check.vim. (Dominique Pellé, closes #8990)
2021-10-11 20:26:55 +01:00
a5d4f3b09d patch 8.2.3496: crypt test fails if xxd was not installed yet
Problem:    Crypt test fails on MS-Windows if xxd was not installed yet.
Solution:   Use the just built xxd executable if it exists. (James McCoy,
            closes #8929)
2021-10-11 16:27:03 +01:00
b376aa2da4 patch 8.2.3495: GUI geometry startup test fails on some systems
Problem:    GUI geometry startup test fails on some systems. (Drew Vogel)
Solution:   Add tolerance to the size check. (closes #8815)
2021-10-11 16:08:32 +01:00
b07626d4af patch 8.2.3494: illegal memory access in utf_head_off
Problem:    Illegal memory access in utf_head_off.
Solution:   Check cursor position when reselecting the Visual area.
            (closes #8963)
2021-10-11 15:40:43 +01:00
cddd5ac911 patch 8.2.3493: large count test fails on MS-Windows
Problem:    Large count test fails on MS-Windows.
Solution:   Skip the test on MS-Windows.
2021-10-10 13:54:01 +01:00
eeed1c7ae0 patch 8.2.3492: crash when pasting too many times
Problem:    Crash when pasting too many times.
Solution:   Limit the size to what fits in an int. (closes #8962)
2021-10-10 12:35:17 +01:00
6e77b88df6 patch 8.2.3491: xpm2 filetype dection is not so good
Problem:    xpm2 filetype dection is not so good.
Solution:   Adjust the check for xpm2. (closes #8914)
2021-10-09 16:29:43 +01:00
3826c0513b patch 8.2.3490: superfluous return statements
Problem:    Superfluous return statements.
Solution:   Remove superfluous return statements from void functions.
            (closes #8977)
2021-10-09 15:39:25 +01:00
35a319b77f patch 8.2.3489: ml_get error after search with range
Problem:    ml_get error after search with range.
Solution:   Limit the line number to the buffer line count.
2021-10-09 13:58:55 +01:00
26190b2701 patch 8.2.3488: issue template is not easy to use
Problem:    Issue template is not easy to use.
Solution:   Use a yaml template. (closes #8928)
2021-10-09 12:50:20 +01:00
826bfe4bbd patch 8.2.3487: illegal memory access if buffer name is very long
Problem:    Illegal memory access if buffer name is very long.
Solution:   Make sure not to go over the end of the buffer.
2021-10-08 18:39:28 +01:00
cce81e9673 patch 8.2.3486: illegal memory access with invalid sequence of commands
Problem:    Illegal memory access with invalid sequence of commands.
Solution:   Do not call leave_block() when not in a try block. (closes #8966)
            Reset did_emsg so that exception is shown as an error.
2021-10-06 22:08:11 +01:00
edd7a476fb patch 8.2.3485: Python 3 test fails with Python 3.10
Problem:    Python 3 test fails with Python 3.10.
Solution:   Adjust expected error message. (zdohnal Dohnal, closes #8969)
2021-10-06 19:39:16 +01:00
e275ba4fc9 patch 8.2.3484: crash when going through spell suggestions
Problem:    Crash when going through spell suggestions.
Solution:   Limit the text length for finding suggestions to the original
            length.  Do not update buffers when exiting. (closes #8965)
2021-10-06 13:41:07 +01:00
e2982d6911 patch 8.2.3483: #ifdef for using sysinfo() is incomplete
Problem:    #ifdef for using sysinfo() is incomplete.
Solution:   Also check for HAVE_SYSINFO. Make autoconf check use TRY_LINK.
            (closes #8952)
2021-10-06 11:27:21 +01:00
78e0fa4cf4 patch 8.2.3482: reading beyond end of line ending in quote and backslash
Problem:    Reading beyond end of line ending in quote and backslash.
Solution:   Check for non-NUL after backslash. (closes #8964)
2021-10-05 21:58:53 +01:00
2e258bd79f patch 8.2.3481: failures when char is unsigned
Problem:    Failures when char is unsigned.
Solution:   Use int8_T.  Make a CI run with unsigned char. (James McCoy,
            closes #8936)
2021-10-05 19:44:04 +01:00
949de97da3 patch 8.2.3480: test does not fail without the fix for a crash
Problem:    Test does not fail without the fix for a crash.
Solution:   Write the bad code in a file and source it. (Dominique Pellé,
            closes #8961)
2021-10-05 19:28:01 +01:00
7c25a7c0a1 patch 8.2.3479: crash when calling job_start with an invalid argument
Problem:    Crash when calling job_start with an invalid argument. (Virginia
            Senioria)
Solution:   Clear the first item in argv. (closes #8957)
2021-10-05 19:19:35 +01:00
f67d3fb736 patch 8.2.3478: still crash with error in :catch and also in :finally
Problem:    Still crash with error in :catch and also in :finally.
Solution:   Only call finish_exception() once. (closes #8954)
2021-10-05 11:22:27 +01:00
6d19798774 patch 8.2.3477: startup test fails on MS-Windows
Problem:    Startup test fails on MS-Windows.
Solution:   Skip the test if not on Unix.
2021-10-05 01:19:53 +01:00
d3710cf01e patch 8.2.3476: renaming a buffer on startup may cause using freed memory
Problem:    Renaming a buffer on startup may cause using freed memory.
Solution:   Check if the buffer is used in a window. (closes #8955)
2021-10-04 23:13:13 +01:00
08d7b1c828 patch 8.2.3475: expression register set by not executed put command
Problem:    Expression register set by not executed put command.
Solution:   Do not set the register if the command is skipped. (closes #8909)
2021-10-04 22:17:36 +01:00
965d2edbce patch 8.2.3474: some places use "Vimscript" instead of "Vim script"
Problem:    Some places use "Vimscript" instead of "Vim script".
Solution:   Consistently use "Vim script". (Hirohito Higashi, closes #8910)
2021-10-04 21:51:57 +01:00
6e64922492 Update runtime files 2021-10-04 21:32:54 +01:00
78aa5ffe31 patch 8.2.3473: some files with tcl syntax are not recognized
Problem:    Some files with tcl syntax are not recognized.
Solution:   Add a few file patterns. (Doug Kearns
2021-10-04 20:41:45 +01:00
9af9fd6ab6 patch 8.2.3472: other crashes with empty search pattern not tested
Problem:    Other crashes with empty search pattern not tested.
Solution:   Add a few more test lines. (Dominique Pellé)
2021-10-04 20:09:19 +01:00
d8d957de86 patch 8.2.3471: crash when using CTRL-T after an empty search pattern
Problem:    Crash when using CTRL-T after an empty search pattern.
Solution:   Bail out when there is no previous search pattern. (closes #8953)
2021-10-04 19:47:35 +01:00
a684a68409 patch 8.2.3470: crash with error in :catch and also in :finally
Problem:    Crash with error in :catch and also in :finally.
Solution:   Only discard an exception if there is one. (closes #8954)
2021-10-04 18:52:19 +01:00
50c5689342 patch 8.2.3469: some files with json syntax are not recognized
Problem:    Some files with json syntax are not recognized.
Solution:   Add a few file patterns. (Emiliano Ruiz Carletti, closes #8947)
2021-10-03 20:11:20 +01:00
c6376c7984 patch 8.2.3468: problem with :cd when editing file in non-existent directory
Problem:    Problem with :cd when editing file in non-existent directory. (Yee
            Cheng Chin)
Solution:   Prepend the current directory to get the full path. (closes #8903)
2021-10-03 19:29:48 +01:00
5a9357d0bf patch 8.2.3467: CursorHoldI event interferes with "CTRL-G U"
Problem:    CursorHoldI event interferes with "CTRL-G U". (Naohiro Ono)
Solution:   Restore the flag for "CTRL-G U" after triggering CursorHoldI.
            (closes #8937)
2021-10-03 16:22:05 +01:00
cc8cd44533 patch 8.2.3466: completion submode not indicated for virtual replace
Problem:    Completion submode not indicated for virtual replace.
Solution:   Add submode to "Rv". (closes #8945)
2021-10-03 15:19:14 +01:00
27fef59dd1 patch 8.2.3465: cannot detect insert scroll mode
Problem:    Cannot detect insert scroll mode.
Solution:   Add "scroll" to complete_info(). (closes #8943)
2021-10-03 12:01:27 +01:00
8b8c0ed657 patch 8.2.3464: nginx files are not recognized
Problem:    nginx files are not recognized.
Solution:   Add several file patterns. (Chris Aumann, closes #8922)
2021-10-03 11:46:09 +01:00
72d2fa69e5 patch 8.2.3463: pattern matching with ModeChanged not tested
Problem:    Pattern matching with ModeChanged not tested.
Solution:   Add a few more test lines. (issue #8856)
2021-10-02 21:48:15 +01:00
d85931e673 patch 8.2.3462: ModeChanged only uses one character for new_mode and old_mode
Problem:    The ModeChanged event only uses one character for the new_mode and
            old_mode values.
Solution:   Pass one as first argument to mode(). (issue #8856)
2021-10-02 16:55:39 +01:00
72406a4bd2 patch 8.2.3461: cannot distinguish Normal and Terminal-Normal mode
Problem:    Cannot distinguish Normal and Terminal-Normal mode.
Solution:   Make mode() return "nt" for Terminal-Normal mode. (issue #8856)
2021-10-02 16:34:55 +01:00
dfa5e464d4 patch 8.2.3460: some type casts are not needed
Problem:    Some type casts are not needed.
Solution:   Remove unnecessary type casts. (closes #8934)
2021-10-02 11:26:51 +01:00
51491adfa8 patch 8.2.3459: Vim9: need more tests for empty string arguments
Problem:    Vim9: need more tests for empty string arguments.
Solution:   Add more tests.  Also use empty argument with menu_info() to get
            the top-level menu names. (Yegappan Lakshmanan, closes #8925)
2021-09-30 19:00:00 +01:00
be01090efa patch 8.2.3458: not all dictdconf files are recognized
Problem:    Not all dictdconf files are recognized.
Solution:   Adjust the pattern. (Doug Kearns)
2021-09-26 22:11:52 +01:00
b16ff292ad patch 8.2.3457: MS-Windows Vim9: test executed and fails
Problem:    MS-Windows Vim9: test executed and fails.
Solution:   Add extra check for not being on MS-Windows.
2021-09-26 20:14:39 +01:00
f8dbd58666 patch 8.2.3456: Vim9: not all functions are tested with empty string argument
Problem:    Vim9: Not all functions are tested with an empty string argument.
Solution:   Add tests with empty strings. (Yegappan Lakshmanan, closes #8915)
2021-09-26 19:04:05 +01:00
56858e4ed4 patch 8.2.3455: using a count with "gp" leaves '] in wrong position
Problem:    Using a count with "gp" leaves '] in wrong position. (Naohiro Ono)
Solution:   Correct the mark position. (closes #8899)
2021-09-22 16:43:59 +02:00
23003e51e1 patch 8.2.3454: using a count with "gp" leave cursor in wrong position
Problem:    Using a count with "gp" leave cursor in wrong position. (Naohiro
            Ono)
Solution:   Count the inserted lines. (closes #8899)
2021-09-22 16:37:07 +02:00
40fa12aea3 patch 8.2.3453: autocmd not executed when editing a directory
Problem:    Autocmd not executed when editing a directory ending in a path
            separator inside try block.
Solution:   Return NOTDONE instead of FAIL. (closes #8885)
2021-09-22 14:18:13 +02:00
da0b497c6e Correct Spanish translations 2021-09-21 21:04:01 +02:00
34cc7d8c03 Update runtime files 2021-09-21 20:09:51 +02:00
690c524ce6 patch 8.2.3452: MPD files are not recognized
Problem:    MPD files are not recognized.
Solution:   Recognize MPD files as XML. (Steven Penny, closes #8893)
2021-09-21 19:37:01 +02:00
770ddbe159 patch 8.2.3451: not all apache files are recognized
Problem:    Not all apache files are recognized.
Solution:   Adjust the filetype pattern. (Zdenek Dohnal, closes #8882)
2021-09-20 20:57:31 +02:00
18fefddcb0 patch 8.2.3450: coveralls action fails
Problem:    Coveralls action fails.
Solution:   Disable it for now.
2021-09-19 17:55:16 +02:00
c04f62346b patch 8.2.3449: sort fails if the sort compare function returns 999
Problem:    Sort fails if the sort compare function returns 999.
Solution:   Adjust value to -1 / 0 / 1. (Yasuhiro Matsumoto, closes #8884)
2021-09-19 17:01:39 +02:00
1d34189ecb patch 8.2.3448: :endtry after function call that throws not found
Problem:    :endtry after function call that throws not found.
Solution:   Do check for following :endtry if an exception is being thrown.
            (closes #8889)
2021-09-18 15:25:52 +02:00
d2b98ab4ec patch 8.2.3447: a couple of declarations are not ANSI C
Problem:    A couple of declarations are not ANSI C.
Solution:   Put argument type inside (). (Yegappan Lakshmanan, closes #8890)
2021-09-18 12:15:08 +02:00
820d5525ca patch 8.2.3446: not enough tests for empty string arguments
Problem:    Not enough tests for empty string arguments.
Solution:   Add tests, fix type check. (Yegappan Lakshmanan, closes #8881)
2021-09-17 21:07:35 +02:00
542ffe16a1 patch 8.2.3445: on Solaris longVersion may be declared twice
Problem:    On Solaris longVersion may be declared twice. (Vladimir Marek)
Solution:   Always declare longVersion in version.c
2021-09-17 20:45:30 +02:00
644b49fa0f patch 8.2.3444: concealed text not revealed when leaving insert mode
Problem:    concealed text not revealed when leaving insert mode. (Michael
            Soyka)
Solution:   Check if concealing changed when leaving insert mode.
            (closes #8880)
2021-09-16 22:32:15 +02:00
3dfe2e0fb8 patch 8.2.3443: Vim9: memory leak when and/or fails
Problem:    Vim9: memory leak when and/or fails.
Solution:   Also clear the growarray when the length is zero.
2021-09-16 20:14:51 +02:00
1a7ee4dd11 patch 8.2.3442: Vim9: || and && are not handled at compile time
Problem:    Vim9: || and && are not handled at compile time when possible.
Solution:   When using constants generate fewer instructions.
2021-09-16 16:15:07 +02:00
ee2cbcd99c patch 8.2.3441: MS-Windows: vimtutor can't handle path with spaces
Problem:    MS-Windows: vimtutor can't handle path with spaces.
Solution:   Add double quotes. (Christian Brabandt, closes #8871)
2021-09-15 12:53:40 +02:00
f2a8bafa4b patch 8.2.3440: recover test fails if there is an old swap file
Problem:    Recover test fails if there is an old swap file.
Solution:   Delete old swap files.
2021-09-14 22:58:23 +02:00
78eb9cce91 patch 8.2.3439: deleted lines go to wrong yank register
Problem:    Deleted lines go to wrong yank register.
Solution:   Reset y_append when not calling get_yank_register(). (Christian
            Brabandt, closes #8872)
2021-09-14 18:55:51 +02:00
5dfe467432 patch 8.2.3438: cannot manipulate blobs
Problem:    Cannot manipulate blobs.
Solution:   Add blob2list() and list2blob(). (Yegappan Lakshmanan,
            closes #8868)
2021-09-14 17:54:30 +02:00
f5785cf059 patch 8.2.3437: compiler warnings for 32/64 bit usage
Problem:    Compiler warnings for 32/64 bit usage.
Solution:   Add type casts. (Mike Williams, closes #8870)
2021-09-13 22:17:38 +02:00
a29856fcdc patch 8.2.3436: check for optional bool type has confusing return type
Problem:    Check for optional bool type has confusing return type.
Solution:   Explicitly return OK.
2021-09-13 21:36:27 +02:00
b1b6f4de2b patch 8.2.3435: Vim9: dict is not passed to dict function
Problem:    Vim9: dict is not passed to dict function.
Solution:   Keep the dict used until a function call.
2021-09-13 18:25:54 +02:00
28e591dd50 patch 8.2.3434: function prototype for trigger_modechanged() is incomplete
Problem:    Function prototype for trigger_modechanged() is incomplete.
Solution:   Add "void".
2021-09-12 21:00:14 +02:00
bdcba24d85 patch 8.2.3433: :delcommand does not take a -buffer option
Problem:    :delcommand does not take a -buffer option.
Solution:   Add the -buffer option.
2021-09-12 20:58:02 +02:00
ca0627df69 patch 8.2.3432: octave/Matlab filetype detection does not work properly
Problem:    Octave/Matlab filetype detection does not work properly.
Solution:   Update the patterns used for matching. (Doug Kearns)
2021-09-12 17:03:08 +02:00
dfe04dbff5 patch 8.2.3431: completion for :disas sorts local functions first
Problem:    Completion for :disas sorts local functions first.
Solution:   Sort local functions last, like with :delfunc. (Naohiro Ono,
            closes #8860)
2021-09-12 15:45:10 +02:00
f1e8876fa2 patch 8.2.3430: no generic way to trigger an autocommand on mode change
Problem:    No generic way to trigger an autocommand on mode change.
Solution:   Add the ModeChanged autocommand event. (Magnus Gross, closes #8856)
2021-09-12 13:39:55 +02:00
464393a696 patch 8.2.3429: leaking memory when assigning to list or dict
Problem:    Leaking memory when assigning to list or dict.
Solution:   Free the list or dict type before overwriting it.
2021-09-11 23:07:44 +02:00
35a9a00afc patch 8.2.3428: using freed memory when replacing
Problem:    Using freed memory when replacing. (Dhiraj Mishra)
Solution:   Get the line pointer after calling ins_copychar().
2021-09-11 21:14:20 +02:00
b3bf33a7b2 patch 8.2.3427: double free when list is copied
Problem:    Double free when list is copied.
Solution:   Allocate the type when making a copy. (closes #8862)
            Clear the type for flattennew().  Avoid a memory leak when
            flattennew() fails.
2021-09-11 20:20:38 +02:00
4b4b1b84ee patch 8.2.3426: crash when deleting a listener in a listener callback
Problem:    Crash when deleting a listener in a listener callback. (Naohiro
            Ono)
Solution:   Mark the listener and delete it later.
2021-09-11 15:06:44 +02:00
56e14698b4 patch 8.2.3425: warning for using uninitialized variable
Problem:    Warning for using uninitialized variable.
Solution:   Initialize it. (John Marriott)
2021-09-11 12:15:09 +02:00
f14b8ba137 patch 8.2.3424: a sequence of spaces is hard to see in list mode
Problem:    A sequence of spaces is hard to see in list mode.
Solution:   Add the "multispace" option to 'listchars'. (closes #8834)
2021-09-10 16:58:30 +02:00
07802044b9 patch 8.2.3423: Vim9: list += list creates a new list in :def function
Problem:    Vim9: list += list creates a new list in :def function.
Solution:   Append to the existing list.
2021-09-09 23:01:14 +02:00
efc084e335 patch 8.2.3422: Vim9: no failure if return type differs from returned var
Problem:    Vim9: no failure if return type differs from returned variable.
Solution:   Copy type when copying a list. (closes #8847)
2021-09-09 22:30:52 +02:00
6c391a74fe Update runtime files 2021-09-09 21:55:11 +02:00
d176ca3dde patch 8.2.3421: a bit of code is not covered by tests
Problem:    A bit of code is not covered by tests.
Solution:   Add a few more test cases. (Dominique Pellé, closes #8857)
2021-09-09 20:45:34 +02:00
6b9efdde78 patch 8.2.3420: _REENTRANT defined more than once
Problem:    _REENTRANT defined more than once.
Solution:   Fix configure script. (Christian Brabandt, closes #8852)
2021-09-09 17:14:50 +02:00
0325d3967c patch 8.2.3419: a failing debug expression may make Vim unusable
Problem:    A failing debug expression may make Vim unusable.
Solution:   Suppress error messages. (closes #8848)
2021-09-09 12:34:19 +02:00
070ac3433b patch 8.2.3418: garbage collection while evaluating may cause trouble
Problem:    Garbage collection while evaluating may cause trouble.
Solution:   Disable garbage collection while evaluating an expression.
            (Christian Brabandt, issue #8848)
2021-09-09 12:12:03 +02:00
072f1c6888 patch 8.2.3417: Vim9: a failing debug expression aborts script sourcing
Problem:    Vim9: a failing debug expression aborts script sourcing.
Solution:   Do not let expression failure abort script sourcing. (closes #8848)
2021-09-08 20:40:34 +02:00
36f691f5f1 patch 8.2.3416: second error is reported while exception is being thrown
Problem:    Second error is reported while exception is being thrown.
Solution:   Do not check for trailing characters when already aborting.
            (closes #8842)
2021-09-08 15:33:30 +02:00
fc3b775055 patch 8.2.3415: Vim9: not all function argument types are properly checked
Problem:    Vim9: Not all function argument types are properly checked.
Solution:   Add and improve argument type checks. (Yegappan Lakshmanan,
            closes #8839)
2021-09-08 14:57:42 +02:00
80c88eac5a patch 8.2.3414: fullcommand() gives wrong name with buffer-local user command
Problem:    fullcommand() gives the wrong name if there is a buffer-local user
            command. (Naohiro Ono)
Solution:   Use a separate function to get the user command name.
            (closes #8840)
2021-09-08 14:29:46 +02:00
a9e3d56087 patch 8.2.3413: Vim9: too many characters are allowed in import name
Problem:    Vim9: too many characters are allowed in import name.
Solution:   Disallow ':' and '#', check for white space. (closes #8845)
2021-09-08 12:31:35 +02:00
af2d5d2ce2 patch 8.2.3412: Vim9: importing the wrong file
Problem:    Vim9: importing the wrong file.
Solution:   Correct the file name.  Delete the file afterwards.
2021-09-07 22:35:34 +02:00
6853c38b78 patch 8.2.3411: Vim9: crash when using base name of import
Problem:    Vim9: crash when using base name of import. (Naohiro Ono)
Solution:   Check the import flags. (closes #8843)
2021-09-07 22:12:19 +02:00
89a54b413a patch 8.2.3410: crash with linebreak, listchars and large tabstop
Problem:    Crash with linebreak, listchars and large tabstop.
Solution:   Account for different size listchars for a tab. (closes #8841)
2021-09-07 20:45:31 +02:00
65b6056659 patch 8.2.3409: reading beyond end of line with invalid utf-8 character
Problem:    Reading beyond end of line with invalid utf-8 character.
Solution:   Check for NUL when advancing.
2021-09-07 19:26:53 +02:00
ddfc05100a patch 8.2.3408: can delete a numbered function
Problem:    Can delete a numbered function. (Naohiro Ono)
Solution:   Disallow deleting a numbered function. (closes #8760)
2021-09-06 20:56:56 +02:00
3b31851356 patch 8.2.3407: using uninitialized memory with "let g:['bar'] = 2"
Problem:    Using uninitialized memory with "let g:['bar'] = 2".
Solution:   Initialize v_type of a new dict item.
2021-09-06 19:19:45 +02:00
3ae5fc9a6a patch 8.2.3406: on some systems tests fail without _REENTRANT
Problem:    On some systems tests fail without _REENTRANT. (Elimar
            Riesebieter)
Solution:   Add -D_REENTRANT in configure. (closes #7402)
2021-09-06 18:57:30 +02:00
ec1b0968aa patch 8.2.3405: cannot have a comment line in a {} block of a user command
Problem:    Cannot have a comment line in a {} block of a user command.
Solution:   Continue after the line break. (closes #8837)
2021-09-06 17:10:59 +02:00
01dd6c3732 patch 8.2.3404: Vim9: no error for white space before "("
Problem:    Vim9: no error for white space before "(".
Solution:   Give an error, like in a compiled function.
2021-09-05 16:36:23 +02:00
2ddb89f8a9 patch 8.2.3403: memory leak for :retab with invalid argument
Problem:    Memory leak for :retab with invalid argument.
Solution:   Free the memory.  Make error messages consistent.
2021-09-04 21:20:41 +02:00
b7081e135a patch 8.2.3402: invalid memory access when using :retab with large value
Problem:    Invalid memory access when using :retab with large value.
Solution:   Check the number is positive.
2021-09-04 18:47:28 +02:00
10c83dde55 patch 8.2.3401: Vim9: cannot use negative count with finddir() and findfile()
Problem:    Vim9: cannot use a negative count with finddir() and findfile().
Solution:   Adjust the return type. (closes #8776)
2021-09-04 14:49:56 +02:00
7f2dd1e90c patch 8.2.3400: ":z!" is not supported
Problem:    ":z!" is not supported.
Solution:   Make ":z!" work and add tests. (Dominique Pellé, closes #8836)
            Use display height instead of current window height.
2021-09-04 13:44:01 +02:00
deba5eb195 patch 8.2.3399: Octave files are not recognized
Problem:    Octave files are not recognized.
Solution:   Detect Octave files. (Doug Kearns)
2021-09-03 19:21:36 +02:00
af631f61bc patch 8.2.3398: html text objects are not fully tested
Problem:    Html text objects are not fully tested.
Solution:   Add tests for dbcs encoding and different number of backslashes.
            (Dominique Pellé, closes #8831)
2021-09-03 16:50:16 +02:00
03d257998b patch 8.2.3397: no test for what 8.2.3391 fixes
Problem:    No test for what 8.2.3391 fixes.
Solution:   Add a test. (Yegappan Lakshmanan, closes #8828)
2021-09-02 20:05:26 +02:00
87e1587b8a patch 8.2.3396: when libcall() fails invalid pointer may be used
Problem:    When libcall() fails invalid pointer may be used.
Solution:   Initialize the string to NULL. (Yasuhiro Matsumoto, closes #8829)
2021-09-02 19:53:07 +02:00
26a4484da2 patch 8.2.3395: Vim9: expression breakpoint not checked in :def function
Problem:    Vim9: expression breakpoint not checked in :def function.
Solution:   Always compile a function for debugging if there is an expression
            breakpoint. (closes #8803)
2021-09-02 18:49:06 +02:00
04626c243c patch 8.2.3394: filler lines are wrong when changing text in diff mode
Problem:    Filler lines are wrong when changing text in diff mode.
Solution:   Don't change the filler lines on every change.  Check
            scrollbinding when updating the filler lines. (closes #8809)
2021-09-01 16:02:07 +02:00
6631597452 patch 8.2.3393: escaping for fish shell is skipping some characters
Problem:    Escaping for fish shell is skipping some characters.
Solution:   Escape character after backslash if needed. (Jason Cox,
            closes #8827)
2021-09-01 14:31:51 +02:00
b4d82e2a8d patch 8.2.3392: augroup completion escapes regexp pattern characters
Problem:    augroup completion escapes regexp pattern characters.
Solution:   Do not escape the augroup name. (closes #8826)
2021-09-01 13:03:39 +02:00
20e0c3d27b patch 8.2.3391: crash with combination of 'linebreak' and other options
Problem:    Crash with combination of 'linebreak' and other options.
Solution:   Avoid n_extra to become negative. (Christian Brabandt,
            closes #8817)
2021-08-31 20:57:55 +02:00
ba02e4720f patch 8.2.3390: included xdiff code is outdated
Problem:    Included xdiff code is outdated.
Solution:   Sync with xdiff in git 2.33. (Christian Brabandt, closes #8431)
2021-08-31 20:46:39 +02:00
dca29d9cf4 patch 8.2.3389: cannot stop insert mode completion without side effects
Problem:    Cannot stop insert mode completion without side effects.
Solution:   Add CTRL-X CTRL-Z. (closes #8821)
2021-08-31 19:12:51 +02:00
4eaef9979f patch 8.2.3388: fnamemodify('path/..', ':p') differs from using 'path/../'
Problem:    fnamemodify('path/..', ':p') differs from using 'path/../'.
Solution:   Include the "/.." in the directory name. (closes #8808)
2021-08-30 21:26:16 +02:00
de05ae7158 patch 8.2.3387: compiler warning for non-static function
Problem:    Compiler warning for non-static function.
Solution:   Make the function static. (Dominique Pellé, closes #8816)
2021-08-30 19:57:34 +02:00
a918712626 patch 8.2.3386: using uninitialized memory
Problem:    Using uninitialized memory.
Solution:   Initialize the rm_ic field. (Dominique Pellé, closes #8800)
2021-08-29 22:12:56 +02:00
89a9c159f2 Update runtime files 2021-08-29 21:55:35 +02:00
6e82351130 patch 8.2.3385: escaping for fish shell does not work properly
Problem:    Escaping for fish shell does not work properly.
Solution:   Insert a backslash before a backslash. (Jason Cox, closes #8810)
2021-08-29 12:36:49 +02:00
9dcd349ca8 patch 8.2.3384: cannot disable modeline for an individual file
Problem:    Cannot disable modeline for an individual file.
Solution:   Recognize "nomodeline" in a modeline. (Hu Jialun, closes #8798)
2021-08-28 20:42:50 +02:00
9aecf79c45 patch 8.2.3383: Vim9: completion for :disassemble adds parenthesis
Problem:    Vim9: completion for :disassemble adds parenthesis.
Solution:   Don't add parenthesis. (Naohiro Ono, closes #8802)
2021-08-28 15:56:06 +02:00
c8103b4c25 patch 8.2.3382: crash when getting the type of a NULL partial
Problem:    Crash when getting the type of a NULL partial.
Solution:   Check for NULL. (closes #8260)
2021-08-28 14:58:44 +02:00
5c56da4de8 patch 8.2.3381: crash when using NULL list with sign functions
Problem:    Crash when using NULL list with sign functions.
Solution:   Handle a NULL list like an empty list. (issue #8260)
2021-08-28 14:42:25 +02:00
60b6e6f6cc patch 8.2.3380: crash when using NULL string for funcref()
Problem:    Crash when using NULL string for funcref().
Solution:   Check for NULL argument. (issue #8260)
2021-08-28 12:49:27 +02:00
271906bc06 patch 8.2.3379: crash when using NULL job
Problem:    Crash when using NULL job.
Solution:   Copy static string into buffer. (issue #8260)
2021-08-28 12:30:12 +02:00
6024c0427c patch 8.2.3378: MS-Windows: completing environment variables with % is wrong
Problem:    MS-Windows: completing environment variables with % is wrong.
Solution:   Only complete environment variables with $. (Albert Liu,
            closes #8791)
2021-08-27 20:59:35 +02:00
47016f5772 patch 8.2.3377: Vim9: :disass completion does not understand "s:"
Problem:    Vim9: :disass completion does not understand "s:".
Solution:   Expand "s:" to a pattern. (closes #8780)
2021-08-26 16:39:58 +02:00
4799cef85c patch 8.2.3376: Vim9: no warning that "@r" does not do anything
Problem:    Vim9: no warning that "@r" does not do anything.
Solution:   Give a "no effect" error. (closes #8779)
2021-08-25 22:37:36 +02:00
df9070e300 patch 8.2.3375: using uninitialized memory
Problem:    Using uninitialized memory.
Solution:   Initialize textprop_save_len.
2021-08-25 17:31:37 +02:00
eb05d05f8a patch 8.2.3374: Pyret files are not recognized
Problem:    Pyret files are not recognized.
Solution:   Recognize .arr files as Pyret. (Doug Kearns)
2021-08-25 17:10:39 +02:00
49b93049c6 patch 8.2.3373: text property test fails on MS-Windows
Problem:    text property test fails on MS-Windows.
Solution:   Set fileformat to "unix"
2021-08-25 17:02:00 +02:00
cdd8a5e6fe patch 8.2.3372: line2byte() value wrong when adding a text property
Problem:    line2byte() value wrong when adding a text property. (Yuto Kimura)
Solution:   Adjust length for text property. (closes #8772)  Also fix it for
            deleting a line.
2021-08-25 16:40:03 +02:00
5ca5cc6412 patch 8.2.3371: Vim9: :$ENV cannot be followed by ->func() in next line
Problem:    Vim9: :$ENV cannot be followed by ->func() in next line.
Solution:   Use "$ENV" as the start of an expression. (closes #8790)
2021-08-24 21:56:03 +02:00
60faf8656e patch 8.2.3370: Vim9: no check for white space before type in declaration
Problem:    Vim9: no check for white space before type in declaration.
            (Naohiro Ono)
Solution:   Check for white space like in a compiled function. (closes #8785)
2021-08-23 22:22:45 +02:00
6b36d2a16d patch 8.2.3369: auto formatting after "cw" leaves cursor in wrong spot
Problem:    Auto formatting after "cw" leaves cursor in wrong spot.
Solution:   Do not auto-format after the delete. (closes #8789)
2021-08-23 21:19:01 +02:00
9cd91a1e88 patch 8.2.3368: not all Racket files are recognized
Problem:    Not all Racket files are recognized.
Solution:   Also recognize .rktl and .rktd files. (Doug Kearns)
2021-08-23 20:48:43 +02:00
73170917f1 patch 8.2.3367: Vim9: :@r executing a register is inconsistent
Problem:    Vim9: :@r executing a register is inconsistent.
Solution:   Use "@r" as the start of an expression. (issue #8779)
2021-08-22 22:44:11 +02:00
093165c899 patch 8.2.3366: Vim9: debugging elseif does not stop before condition
Problem:    Vim9: debugging elseif does not stop before condition.
Solution:   Move debug statement to after the jump. (closes #8781)
2021-08-22 13:35:31 +02:00
bf5f287833 patch 8.2.3365: Vim9: cannot use option for all operations
Problem:    Vim9: cannot use option for all operations.
Solution:   Recognize more operations. (closes #8779)
2021-08-21 20:50:35 +02:00
bebf06954e patch 8.2.3364: Vim9: crash when :for is skipped
Problem:    Vim9: crash when :for is skipped.
Solution:   Skip more code generation. (Naruhiko Nishino, closes #8777)
2021-08-21 17:26:50 +02:00
b8bd2e6eba patch 8.2.3363: when :edit reuses the current buffer the alternate file is set
Problem:    When :edit reuses the current buffer the alternate file is set to
            the same buffer.
Solution:   Only set the alternate file when not reusing the buffer.
            (closes #8783)
2021-08-21 17:13:14 +02:00
489d60996d patch 8.2.3362: buffer overflow when completing long tag name
Problem:    Buffer overflow when completing long tag name.
Solution:   Allocate the buffer dynamically. (Gregory Anders, closes #8769)
2021-08-21 16:21:19 +02:00
d895b1d918 patch 8.2.3361: Vim9: crash with nested :while
Problem:    Vim9: crash with nested :while.
Solution:   Handle skipping better. (Naruhiko Nishino, closes #8778)
2021-08-20 20:54:25 +02:00
5aec755b67 patch 8.2.3360: user function completion fails with dict function
Problem:    User function completion fails with dict function.
Solution:   Do not stop sequencing through the list if user functions when
            encountering an empty name. (Naohiro Ono, closes #8765,
            closes #8774)
2021-08-19 21:20:41 +02:00
c66f645b80 patch 8.2.3359: Vim9: error for type when variable is not set
Problem:    Vim9: error for type when variable is not set.
Solution:   Give a specific error for a NULL function. (closes #8773)
2021-08-19 21:08:30 +02:00
dea561111a patch 8.2.3358: structurizr files are not recognized
Problem:    Structurizr files are not recognized.
Solution:   Recognize the file by contents. (Bastian Venthur, closes #8764)
2021-08-17 23:44:54 +02:00
02f8694a6b patch 8.2.3357: crash when 'virtualedit' is set and window is narrow
Problem:    Crash when 'virtualedit' is set and window is narrow. ()
Solution:   Check that width is not zero. (closes #8767)
2021-08-17 22:14:29 +02:00
ccfb7c6758 patch 8.2.3356: adding many text properties requires a lot of function calls
Problem:    Adding many text properties requires a lot of function calls.
Solution:   Add the prop_add_list() function. (Yegappan Lakshmanan,
            closes #8751)
2021-08-16 21:39:09 +02:00
434df7a401 patch 8.2.3355: MS-Windows: compiler warning for 64-32 bit conversion
Problem:    MS-Windows: compiler warning for 64-32 bit conversion.
Solution:   Add type casts.
2021-08-16 21:15:32 +02:00
92755bba30 patch 8.2.3354: build failure with +byte_offset but without +textprop
Problem:    Build failure with +byte_offset but without +textprop. (John
            Marriott)
Solution:   Adjust the #ifdef.
2021-08-15 22:18:04 +02:00
cd6b4f3001 patch 8.2.3353: Vim9: type of argument for negate not checked at compile time
Problem:    Vim9: type of argument for negate not checked at compile time.
Solution:   Add a compile time check.
2021-08-15 20:36:28 +02:00
4bba16d252 patch 8.2.3352: Vim9: error for nested :enddef has wrong line number
Problem:    Vim9: error for nested :enddef has wrong line number.
Solution:   Compute the line number.
2021-08-15 19:28:05 +02:00
b033ee2ddf patch 8.2.3351: Vim9: using a function by name may delete it
Problem:    Vim9: using a function by name may delete it. (Naohiro Ono)
Solution:   Increment the reference count when using a function by name.
            (closes #8760)
2021-08-15 16:08:36 +02:00
a401bba080 patch 8.2.3350: text properties test fails on MS-Windows
Problem:    Text properties test fails on MS-Windows.
Solution:   Set fileformat to unix.
2021-08-15 15:04:41 +02:00
5cebca27b8 patch 8.2.3349: eval test for scriptversion fails
Problem:    Eval test for scriptversion fails.
Solution:   Fix off-by-one error.
2021-08-15 14:39:13 +02:00
14c7530c4f patch 8.2.3348: line2byte() returns wrong value after adding textprop
Problem:    line2byte() returns wrong value after adding textprop. (Yuto
            Kimura)
Solution:   Reduce the length by the size of the text property. (closes #8759)
2021-08-15 14:28:40 +02:00
dd9de50f42 patch 8.2.3347: check for legacy script is incomplete
Problem:    Check for legacy script is incomplete. (Naohiro Ono)
Solution:   Also check the :legacy modifier.  Use for string concatenation
            with "." and others (issue #8756)
2021-08-15 13:49:42 +02:00
2596a4e763 patch 8.2.3346: Vim9: no error for using "." for concatenation after ":vim9cmd"
Problem:    Vim9: no error for using "." for concatenation after ":vim9cmd".
            (Naohiro Ono)
Solution:   Check for Vim9 script syntax. (closes #8756)
2021-08-14 21:35:40 +02:00
6aa57295cf Update runtime files 2021-08-14 21:25:52 +02:00
bfb2bb16bc patch 8.2.3345: some code not covered by tests
Problem:    Some code not covered by tests.
Solution:   Add a few more tests. (Dominique Pellé, closes #8757)
2021-08-14 21:11:51 +02:00
d2e9ccee90 patch 8.2.3344: vimscript test fails
Problem:    Vimscript test fails.
Solution:   Have test verify first error instead of second
2021-08-14 15:16:00 +02:00
4830c211a4 patch 8.2.3343: Vim9: autoload test fails
Problem:    Vim9: autoload test fails.
Solution:   Adjust the way the second message is avoided
2021-08-14 14:59:27 +02:00
b521766c56 patch 8.2.3342: test for :let errors fails
Problem:    Test for :let errors fails.
Solution:   Adjust the test and how to avoid a second error message.
2021-08-14 14:27:30 +02:00
88c89c7722 patch 8.2.3341: Vim9: function call aborted despite try/catch
Problem:    Vim9: function call aborted despite try/catch. (Naohiro Ono)
Solution:   Ignore error caught by try/catch. (closes #8755)
2021-08-14 14:01:05 +02:00
78a9c2e670 patch 8.2.3340: accessing uninitialized pointer
Problem:    Accessing uninitialized pointer.
Solution:   Set pointer to NULL.
2021-08-13 20:12:13 +02:00
aacc966c5d patch 8.2.3339: Vim9: cannot lock a member in a local dict
Problem:    Vim9: cannot lock a member in a local dict.
Solution:   Get the local dict from the stack and pass it to get_lval().
2021-08-13 19:40:51 +02:00
89071cb6a1 patch 8.2.3338: Vim9: no type check when assigning a list range
Problem:    Vim9: no type check when assigning a list range. (Naohiro Ono)
Solution:   Check the member type. (closes #8750)
2021-08-13 18:20:09 +02:00
069f90852f patch 8.2.3337: completing "call g:" returns entries with just "g:"
Problem:    Completing "call g:" returns entries with just "g:". (Naohiro Ono)
Solution:   Skip empty strings returned by get_user_func_name(). (closes #8753)
2021-08-13 17:48:25 +02:00
92f05f21af patch 8.2.3336: behavior of negative index in list change changed
Problem:    Behavior of negative index in list change changed. (Naruhiko
            Nishino)
Solution:   Only change it for Vim9 script. (closes #8749)
2021-08-12 21:12:56 +02:00
ef98257593 patch 8.2.3335: Vim9: not enough tests run with Vim9
Problem:    Vim9: not enough tests run with Vim9.
Solution:   Run a few more tests in Vim9 script and :def function.  Fix that
            items(), keys() and values9) return zero for a NULL dict.
            Make join() return an empty string for a NULL list.  Make sort()
            return an empty list for a NULL list.
2021-08-12 19:27:57 +02:00
bd77aa9274 patch 8.2.3334: Vim9: not enough tests run with Vim9
Problem:    Vim9: not enough tests run with Vim9.
Solution:   Run a few more tests in Vim9 script and :def function. Fix
            islocked().  Fix error for locking local variable.
2021-08-12 17:06:05 +02:00
3e9c0b9608 patch 8.2.3333: Vim9: not enough tests run with Vim9
Problem:    Vim9: not enough tests run with Vim9.
Solution:   Run a few more tests in Vim9 script and :def function.
2021-08-12 10:39:10 +02:00
4f0884d6e2 patch 8.2.3332: Vim9: cannot assign to range in list
Problem:    Vim9: cannot assign to range in list.
Solution:   Implement overwriting a list range.
2021-08-11 21:49:23 +02:00
ed7cb2df35 patch 8.2.3331: Coverity warns for using value without boundary check
Problem:    Coverity warns for using value without boundary check.
Solution:   Add a boundary check.
2021-08-11 17:13:54 +02:00
7deb4115ef patch 8.2.3330: Coverity reports using uninitialized field
Problem:    Coverity reports using uninitialized field.
Solution:   Initialize the field early.
2021-08-11 17:01:45 +02:00
16e63e6d35 patch 8.2.3329: v_lock not set when getting value of environment variable
Problem:    v_lock not set when getting value of environment variable.
Solution:   Set v_lock to zero.
2021-08-11 16:47:26 +02:00
b85d3627d9 patch 8.2.3328: Coverity error for not checking return value
Problem:    Coverity error for not checking return value.
Solution:   Check value is not negative.
2021-08-11 15:54:59 +02:00
ba9c23e776 patch 8.2.3327: no check for sysconf() failing
Problem:    No check for sysconf() failing.
Solution:   If sysconf() fails use SIGSTKSZ for the signal stack size.
            (Zdenek Dohnal, closes #8743)
2021-08-11 14:20:05 +02:00
6e48b84c5f patch 8.2.3326: Vim9: no error passing an empty list of the wrong type
Problem:    Vim9: no error passing an empty list of the wrong type.
Solution:   Use ISN_SETTYPE also for "list<any>". (closes #8732)
2021-08-10 22:52:02 +02:00
52eb372a04 patch 8.2.3325: digraph test fails when LC_ALL is set to "C"
Problem:    Digraph test fails when LC_ALL is set to "C".
Solution:   When restoring 'encoding' set it to "utf-8". (closes #8742)
2021-08-10 21:39:20 +02:00
917c46abe5 patch 8.2.3324: Vim9: Cannot use :silent with :endwhile
Problem:    Vim9: Cannot use :silent with :endwhile.
Solution:   Allow for using the :silent modifier. (closes #8737)
2021-08-10 19:53:01 +02:00
b6f55bb5b4 patch 8.2.3323: Vim9: Cannot use :silent with :endwhile
Problem:    Vim9: Cannot use :silent with :endwhile.
Solution:   Allow for using the :silent modifier. (closes #8737)
2021-08-10 10:23:27 +02:00
b56c4419d4 patch 8.2.3322: Vim9: checking type of dict does not check member type
Problem:    Vim9: checking type of dict does not check member type.
Solution:   When getting the type of a typval use dv_type and lv_type.
            (closes #8732)
2021-08-09 22:22:27 +02:00
bd9e796125 patch 8.2.3321: some code is not tested
Problem:    Some code is not tested.
Solution:   Add some more tests. (Dominique Pellé, closes #8735)
2021-08-09 21:04:44 +02:00
8ee52affe7 patch 8.2.3320: some local functions are not static
Problem:    Some local functions are not static.
Solution:   Add "static".  Move snprintf() related code to strings.c.
            (Yegappan Lakshmanan, closes #8734)
2021-08-09 19:59:06 +02:00
eed9616120 patch 8.2.3319: Coverity action on github does not work
Problem:    Coverity action on github does not work.
Solution:   Remove undefined $SRCDIR. (James McCoy, closes #8739)
2021-08-09 13:20:38 +02:00
ed8b099fd2 patch 8.2.3318: Vim9: cannot ignore quotes in number at the command line
Problem:    Vim9: cannot ignore quotes in number at the command line.
Solution:   Use in_vim9script() so that after ":vim9" quotes are ignored.
2021-08-08 19:56:28 +02:00
33ea9fd4d8 patch 8.2.3317: Vim9: No error for missing white space before return type
Problem:    Vim9: No error for missing white space before return type.
Solution:   Check for white space. (closes #8733)
2021-08-08 19:07:37 +02:00
80a070c361 patch 8.2.3316: float test fails
Problem:    Float test fails.
Solution:   Add missing change.
2021-08-08 15:51:10 +02:00
2950065e18 patch 8.2.3315: cannot use single quote in a float number for readability
Problem:    Cannot use single quote in a float number for readability.
Solution:   Support single quotes like in numbers. (closes #8713)
2021-08-08 15:43:34 +02:00
267359902c patch 8.2.3314: behavior of exists() in a :def function is unpredictable
Problem:    Behavior of exists() in a :def function is unpredictable.
Solution:   Add exists_compiled().
2021-08-08 14:43:22 +02:00
9e2fa4bb9e patch 8.2.3313: unused code in win_exchange() and frame_remove()
Problem:    Unused code in win_exchange() and frame_remove().
Solution:   Remove the code. (closes #8728)
2021-08-07 22:35:52 +02:00
e525bdda3a patch 8.2.3312: Vim9: after "if false" line breaks in expression not skipped
Problem:    Vim9: after "if false" line breaks in expression not skipped.
Solution:   Do parse the expression. (closes #8723)
2021-08-07 18:12:40 +02:00
dae453f339 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Problem:    Vim9: check for DO_NOT_FREE_CNT is very slow.
Solution:   Move to a separate function so it can be skipped by setting
            $TEST_SKIP_PAT.
2021-08-07 17:20:16 +02:00
4270d8b762 patch 8.2.3310: Vim9: unpack assignment does not mention source of type error
Problem:    Vim9: unpack assignment does not mention source of type error.
Solution:   Mention the argument number. (closes #8719)
2021-08-07 16:30:42 +02:00
fbeefb1b87 patch 8.2.3309: Vim9: divide by zero causes a crash
Problem:    Vim9: divide by zero causes a crash.
Solution:   Give an error message. (closes #8727)
2021-08-07 15:50:23 +02:00
6ce46b9963 patch 8.2.3308: Vim9: no runtime check for argument type with varargs only
Problem:    Vim9: no runtime check for argument type if a function only has
            varargs.
Solution:   Also check argument types if uf_va_type is set. (closes #8715)
2021-08-07 15:35:36 +02:00
7de6262373 patch 8.2.3307: Vim9: :echoconsole cannot access local variables
Problem:    Vim9: :echoconsole cannot access local variables.
Solution:   Handle like other :echo commands. (closes #8708)
2021-08-07 15:05:47 +02:00
1b154ea121 patch 8.2.3306: unexpected "No matching autocommands"
Problem:    Unexpected "No matching autocommands".
Solution:   Do not give the message when aborting.  Mention the arguments in
            the message. (closes #8690)
2021-08-07 13:59:43 +02:00
8493499880 patch 8.2.3305: Vim9: :finally in skipped block not handled correctly
Problem:    Vim9: :finally in skipped block not handled correctly.
Solution:   Check whether :finally is in a skipped block. (Naruhiko Nishino,
            closes #8724)
2021-08-07 13:26:53 +02:00
c611941c60 patch 8.2.3304: popup window title with wide characters is truncated
Problem:    Popup window title with wide characters is truncated.
Solution:   Use vim_strsize() instead of MB_CHARLEN(). (Naruhiko Nishino,
            closes #8721)
2021-08-07 13:08:45 +02:00
3276f5846f patch 8.2.3303: some structures could be smaller
Problem:    Some structures could be smaller.
Solution:   Rearrange members to reduce size. (Dominique Pellé, closes #8725)
2021-08-07 12:44:41 +02:00
d57a6bd98c patch 8.2.3302: Coverity is not run from github
Problem:    Coverity is not run from github.
Solution:   Add a coverity script. (James McCoy, closes #8714)
2021-08-07 12:32:20 +02:00
cbae580283 patch 8.2.3301: memory allocation functions don't have their own place
Problem:    Memory allocation functions don't have their own place.
Solution:   Move memory allocation functions to alloc.c.  (Yegappan
            Lakshmanan, closes #8717)
2021-08-06 21:51:55 +02:00
11328bc7df patch 8.2.3300: Lua: can only execute on Vim command at a time
Problem:    Lua: can only execute on Vim command at a time.  Not easy to get
            the Vim version.
Solution:   Make vim.command() accept multiple lines.  Add vim.version().
            (Yegappan Lakshmanan, closes #8716)
2021-08-06 21:34:38 +02:00
5671f3f076 patch 8.2.3299: Vim9: exists() does not handle much at compile time
Problem:    Vim9: exists() does not handle much at compile time.
Solution:   Handle variable names. (closes #8688)
2021-08-05 22:48:11 +02:00
6f6d58c380 patch 8.2.3298: build failure with small features
Problem:    Build failure with small features.
Solution:   Add #ifdef.
2021-08-05 21:17:32 +02:00
63b9173693 patch 8.2.3297: cannot use all commands inside a {} block
Problem:    Cannot use all commands inside a {} block after :command and
            :autocmd.
Solution:   Do consider \n to separate commands. (closes #8620)
2021-08-05 20:40:03 +02:00
af647e76ca patch 8.2.3296: Vim9: cannot add a number to a float
Problem:    Vim9: cannot add a number to a float.
Solution:   Accept a number if the destination is a float. (closes #8703)
2021-08-05 19:01:17 +02:00
4f33bc20d7 patch 8.2.3295: 'cursorline' should not apply to 'breakindent'
Problem:    'cursorline' should not apply to 'breakindent'.
Solution:   Make 'cursorline' apply to 'breakindent' and 'showbreak'
            consistently. (closes #8684)
2021-08-05 17:57:02 +02:00
1b6acf02b7 patch 8.2.3294: Lua: memory leak when adding dict item fails
Problem:    Lua: memory leak when adding dict item fails.
Solution:   Free the typval and the dict item.
2021-08-05 16:47:08 +02:00
6a230c6b32 patch 8.2.3293: finding completions may cause an endless loop
Problem:    Finding completions may cause an endless loop.
Solution:   Use a better way to check coming back where the search started.
            (Andy Gozas, closes #8672, closes #8671)
2021-08-05 16:23:27 +02:00
bc67e5a0a4 patch 8.2.3292: underscore in very magic pattern causes a hang
Problem:    Underscore in very magic pattern causes a hang.  Pattern with \V
            are case sensitive. (Yutao Yuan)
Solution:   Adjust condition for magicness and advance pointer. (Christian
            Brabandt, closes #8707, closes #8704, closes #8705)
2021-08-05 15:24:59 +02:00
4a01159da2 patch 8.2.3291: Coverity warns for not checking return value
Problem:    Coverity warns for not checking return value.
Solution:   If dict_add() fails give an error message.
2021-08-05 15:11:08 +02:00
9fe17d473a patch 8.2.3290: Vim9: compiling dict may use pointer after free
Problem:    Vim9: compiling dict may use pointer after free and leak memory on
            failure.
Solution:   Pass a pointer to generate_PUSHS().  (Zdenek Dohnal, closes #8699)
2021-08-04 22:30:52 +02:00
f18e8a969a patch 8.2.3289: compiler warning for unused variable with small features
Problem:    Compiler warning for unused variable with small features.
Solution:   Rearrange #ifdefs.
2021-08-04 21:16:50 +02:00
9dc4bef897 patch 8.2.3288: cannot easily access namespace dictionaries from Lua
Problem:    Cannot easily access namespace dictionaries from Lua.
Solution:   Add vim.g, vim.b, etc. (Yegappan Lakshmanan, closes #8693,
            from NeoVim)
2021-08-04 21:12:52 +02:00
57942237c1 patch 8.2.3287: channel events not handled in BufEnter autocommand
Problem:    Channel events not handled in BufEnter autocommand.
Solution:   Decrement dont_parse_messages earlier. (Tim Pope, closes #8697)
2021-08-04 20:54:55 +02:00
d61f2f772a patch 8.2.3286: win_enter_ext() has too many boolean arguments
Problem:    win_enter_ext() has too many boolean arguments.
Solution:   use one flags argument with defined values.
2021-08-04 20:26:19 +02:00
dd097bdc13 patch 8.2.3285: scdoc filetype is not recognized
Problem:    Scdoc filetype is not recognized.
Solution:   Add filetype detection. (Gregory Anders, closes #8701)
2021-08-04 20:00:27 +02:00
80d7395dcf patch 8.2.3284: no error for insert() or remove() changing a locked blob
Problem:    No error for insert() or remove() changing a locked blob.
Solution:   Check a blob is not locked before changing it. (Sean Dewar,
            closes #8696)
2021-08-04 19:25:54 +02:00
0eec851942 patch 8.2.3283: Julia filetype is not recognized
Problem:    Julia filetype is not recognized
Solution:   Add filetype detection. (Christian Clason, closes #8700)
2021-08-04 17:03:59 +02:00
41a3485dd6 patch 8.2.3282: Vim9: error about using -complete without -nargs is confusing
Problem:    Vim9: error about using -complete without -nargs is confusing.
Solution:   Change the wording.
2021-08-04 16:09:24 +02:00
23e2e11515 patch 8.2.3281: Vim9: TODO items in tests can be taken care of
Problem:    Vim9: TODO items in tests can be taken care of.
Solution:   Update test for now working functionality. (closes #8694)
2021-08-03 21:16:18 +02:00
51ad850f5f patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Problem:    'virtualedit' local to buffer is not the best solution.
Solution:   Make it window-local. (Gary Johnson, closes #8685)
2021-08-03 18:33:08 +02:00
2c70711e3f patch 8.2.3279: Vim9: cannot use block in cmdline window
Problem:    Vim9: cannot use block in cmdline window.
Solution:   Add EX_CMDWIN to the CMD_block flags. (closes #8689)
2021-08-02 22:26:56 +02:00
7bf9a07bd7 patch 8.2.3278: Vim9: error when adding 1 to float
Problem:    Vim9: error when adding 1 to float.
Solution:   Accept t_number_bool. (closes #8687)
2021-08-02 21:55:15 +02:00
652 changed files with 30946 additions and 11938 deletions

37
.github/CODEOWNERS vendored
View File

@ -73,6 +73,8 @@ runtime/ftplugin/awk.vim @dkearns
runtime/ftplugin/basic.vim @dkearns
runtime/ftplugin/bst.vim @tpope
runtime/ftplugin/cfg.vim @chrisbra
runtime/ftplugin/clojure.vim @axvr
runtime/ftplugin/csh.vim @dkearns
runtime/ftplugin/css.vim @dkearns
runtime/ftplugin/cucumber.vim @tpope
runtime/ftplugin/eiffel.vim @dkearns
@ -87,49 +89,77 @@ runtime/ftplugin/gitsendemail.vim @tpope
runtime/ftplugin/gprof.vim @dpelle
runtime/ftplugin/haml.vim @tpope
runtime/ftplugin/hgcommit.vim @k-takata
runtime/ftplugin/indent.vim @dkearns
runtime/ftplugin/javascript.vim @dkearns
runtime/ftplugin/javascriptreact.vim @dkearns
runtime/ftplugin/kconfig.vim @chrisbra
runtime/ftplugin/liquid.vim @tpope
runtime/ftplugin/lua.vim @dkearns
runtime/ftplugin/m3build.vim @dkearns
runtime/ftplugin/m3quake.vim @dkearns
runtime/ftplugin/markdown.vim @tpope
runtime/ftplugin/matlab.vim @cecamp
runtime/ftplugin/meson.vim @Liambeguin
runtime/ftplugin/modula3.vim @dkearns
runtime/ftplugin/nginx.vim @chr4
runtime/ftplugin/nroff.vim @a-vrma
runtime/ftplugin/nsis.vim @k-takata
runtime/ftplugin/octave.vim @dkearns
runtime/ftplugin/pascal.vim @dkearns
runtime/ftplugin/pbtxt.vim @lakshayg
runtime/ftplugin/pdf.vim @tpope
runtime/ftplugin/ps1.vim @heaths
runtime/ftplugin/ps1xml.vim @heaths
runtime/ftplugin/routeros.vim @zainin
runtime/ftplugin/ruby.vim @tpope @dkearns
runtime/ftplugin/sass.vim @tpope
runtime/ftplugin/scss.vim @tpope
runtime/ftplugin/spec.vim @ignatenkobrain
runtime/ftplugin/systemverilog.vim @Kocha
runtime/ftplugin/tcsh.vim @dkearns
runtime/ftplugin/tidy.vim @dkearns
runtime/ftplugin/tmux.vim @ericpruitt
runtime/ftplugin/toml.vim @averms
runtime/ftplugin/typescript.vim @dkearns
runtime/ftplugin/typescriptreact.vim @dkearns
runtime/ftplugin/xml.vim @chrisbra
runtime/ftplugin/zsh.vim @chrisbra
runtime/indent/bst.vim @tpope
runtime/indent/cdl.vim @dkearns
runtime/indent/clojure.vim @axvr
runtime/indent/config.vim @dkearns
runtime/indent/css.vim @dkearns
runtime/indent/cucumber.vim @tpope
runtime/indent/d.vim @dkearns
runtime/indent/dosbatch.vim @k-takata
runtime/indent/dtd.vim @dkearns
runtime/indent/dylan.vim @dkearns
runtime/indent/elm.vim @andys8
runtime/indent/eruby.vim @tpope @dkearns
runtime/indent/eterm.vim @dkearns
runtime/indent/framescript.vim @dkearns
runtime/indent/gitconfig.vim @tpope
runtime/indent/haml.vim @tpope
runtime/indent/idlang.vim @dkearns
runtime/indent/ld.vim @dkearns
runtime/indent/liquid.vim @tpope
runtime/indent/make.vim @dkearns
runtime/indent/meson.vim @Liambeguin
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/prolog.vim @dkearns
runtime/indent/ps1.vim @heaths
runtime/indent/readline.vim @dkearns
runtime/indent/ruby.vim @AndrewRadev @dkearns
runtime/indent/sass.vim @tpope
runtime/indent/scss.vim @tpope
runtime/indent/sh.vim @chrisbra
runtime/indent/systemverilog.vim @Kocha
runtime/indent/tcl.vim @dkearns
runtime/indent/tcsh.vim @dkearns
runtime/indent/teraterm.vim @k-takata
runtime/indent/xml.vim @chrisbra
runtime/indent/zsh.vim @chrisbra
@ -144,6 +174,7 @@ runtime/plugin/vimballPlugin.vim @cecamp
runtime/plugin/zipPlugin.vim @cecamp
runtime/syntax/aidl.vim @dpelle
runtime/syntax/amiga.vim @cecamp
runtime/syntax/arduino.vim @johshoff
runtime/syntax/asm.vim @dkearns
runtime/syntax/asmh8300.vim @dkearns
runtime/syntax/asterisk.vim @jaunis
@ -153,6 +184,7 @@ runtime/syntax/bst.vim @tpope
runtime/syntax/cabal.vim @coot
runtime/syntax/cabalconfig.vim @coot
runtime/syntax/cabalproject.vim @coot
runtime/syntax/clojure.vim @axvr
runtime/syntax/cs.vim @nickspoons
runtime/syntax/csh.vim @cecamp
runtime/syntax/cucumber.vim @tpope
@ -176,6 +208,7 @@ runtime/syntax/groff.vim @jmarshall
runtime/syntax/haml.vim @tpope
runtime/syntax/haskell.vim @coot
runtime/syntax/hgcommit.vim @k-takata
runtime/syntax/indent.vim @dkearns
runtime/syntax/kconfig.vim @chrisbra
runtime/syntax/less.vim @genoma
runtime/syntax/lex.vim @cecamp
@ -191,6 +224,7 @@ runtime/syntax/markdown.vim @tpope
runtime/syntax/meson.vim @Liambeguin
runtime/syntax/modula3.vim @dkearns
runtime/syntax/netrw.vim @cecamp
runtime/syntax/nginx.vim @chr4
runtime/syntax/nroff.vim @jmarshall
runtime/syntax/nsis.vim @k-takata
runtime/syntax/pascal.vim @dkearns
@ -203,6 +237,7 @@ runtime/syntax/ps1.vim @heaths
runtime/syntax/ps1xml.vim @heaths
runtime/syntax/psl.vim @danielkho
runtime/syntax/rc.vim @chrisbra
runtime/syntax/routeros.vim @zainin
runtime/syntax/rpcgen.vim @cecamp
runtime/syntax/ruby.vim @dkearns
runtime/syntax/sass.vim @tpope
@ -216,10 +251,12 @@ runtime/syntax/sshdconfig.vim @Jakuje
runtime/syntax/sudoers.vim @e-kwsm
runtime/syntax/systemverilog.vim @Kocha
runtime/syntax/tags.vim @cecamp
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/vim.vim @cecamp
runtime/syntax/wget.vim @dkearns
runtime/syntax/xbl.vim @dkearns

View File

@ -1,34 +0,0 @@
---
name: Bug report
about: Create a report to help us improve Vim
title: ''
labels: ''
---
_Instructions: Replace the template text and remove irrelevant text (including this line)_
**Describe the bug**
A clear and concise description of what the bug is.
(Issues related to the runtime files should be reported to their maintainer, check the file header.)
**To Reproduce**
Detailed steps to reproduce the behavior:
1. Run `vim --clean` (or `gvim --clean`, etc.)
2. Edit `filename`
3. Type '....'
4. Describe the error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, copy/paste the text or add screenshots to help explain your problem.
**Environment (please complete the following information):**
- Vim version [e.g. 8.1.1234] (Or paste the result of `vim --version`.)
- OS: [e.g. Ubuntu 18.04, Windows 10 1809, macOS 10.14]
- Terminal: [e.g. GNOME Terminal, mintty, iTerm2, tmux, GNU screen] (Use GUI if you use the GUI.)
**Additional context**
Add any other context about the problem here.

47
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@ -0,0 +1,47 @@
---
name: Bug report
description: Create a report to help us improve Vim.
labels: [bug]
body:
- type: markdown
attributes:
value: |
Thanks for reporting issues of Vim!
To make it easier for us to help you please enter detailed information below.
- type: textarea
attributes:
label: Steps to reproduce
placeholder: |
1.
2.
3.
4.
validations:
required: true
- type: textarea
attributes:
label: Expected behaviour
placeholder: A clear and concise description of what you expected to happen.
validations:
required: true
- type: input
attributes:
label: Operating system
description: >
Your operating system name, version and desktop environment.
validations:
required: true
- type: input
attributes:
label: Version of Vim
description: >
The name of your development environment, version. [e.g. GNOME Terminal (v0.0.0000)]
validations:
required: true
- type: textarea
attributes:
label: Logs and stack traces
placeholder: Insert log or other text here (if necessary)
render: shell

View File

@ -40,6 +40,7 @@ jobs:
compiler: gcc
coverage: true
extra: testgui
uchar: true
- features: huge
compiler: clang
extra: asan
@ -80,7 +81,7 @@ jobs:
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
. /etc/lsb-release
sudo add-apt-repository -y "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-11 main"
sudo apt-get install -y clang-11
sudo apt-get install -y clang-11 llvm-11
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-11 100
sudo update-alternatives --set clang /usr/bin/clang-11
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-11 100
@ -111,10 +112,14 @@ jobs:
;;
esac
CFLAGS=""
if ${{ matrix.coverage == true }}; then
echo "CFLAGS=--coverage -DUSE_GCOV_FLUSH"
CFLAGS="$CFLAGS --coverage -DUSE_GCOV_FLUSH"
echo "LDFLAGS=--coverage"
fi
if ${{ matrix.uchar == true }}; then
CFLAGS="$CFLAGS -funsigned-char"
fi
if ${{ contains(matrix.extra, 'testgui') }}; then
echo "TEST=-C src testgui"
fi
@ -130,6 +135,7 @@ jobs:
if ${{ contains(matrix.extra, 'vimtags') }}; then
echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
fi
echo "CFLAGS=$CFLAGS"
) >> $GITHUB_ENV
- name: Set up system
@ -201,18 +207,18 @@ jobs:
do_test() { sg audio "sg $(id -gn) '$*'"; }
do_test make ${SHADOWOPT} ${TEST}
- name: Coveralls
if: matrix.coverage && success() && github.event_name != 'pull_request'
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
COVERALLS_PARALLEL: true
TRAVIS_JOB_ID: ${{ github.run_id }}
run: |
sudo apt-get install -y python3-setuptools python3-wheel
sudo -H pip3 install pip -U
# needed for https support for coveralls building cffi only works with gcc, not with clang
CC=gcc pip3 install --user cpp-coveralls pyopenssl ndg-httpsclient pyasn1
~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
# - name: Coveralls
# if: matrix.coverage && success() && github.event_name != 'pull_request'
# env:
# COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
# COVERALLS_PARALLEL: true
# TRAVIS_JOB_ID: ${{ github.run_id }}
# run: |
# sudo apt-get install -y python3-setuptools python3-wheel
# sudo -H pip3 install pip -U
# # needed for https support for coveralls building cffi only works with gcc, not with clang
# CC=gcc pip3 install --user cpp-coveralls pyopenssl ndg-httpsclient pyasn1
# ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
- name: Codecov
if: matrix.coverage && success()
@ -228,18 +234,18 @@ jobs:
false # in order to fail a job
done
coveralls:
runs-on: ubuntu-18.04
needs: linux
if: always() && github.event_name != 'pull_request'
steps:
- name: Parallel finished
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
run: |
curl -k "https://coveralls.io/webhook?repo_token=${COVERALLS_REPO_TOKEN}" -d "payload[build_num]=${GITHUB_RUN_ID}&payload[status]=done"
# coveralls:
# runs-on: ubuntu-18.04
#
# needs: linux
# if: always() && github.event_name != 'pull_request'
#
# steps:
# - name: Parallel finished
# env:
# COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
# run: |
# curl -k "https://coveralls.io/webhook?repo_token=${COVERALLS_REPO_TOKEN}" -d "payload[build_num]=${GITHUB_RUN_ID}&payload[status]=done"
macos:
runs-on: macos-latest

View File

@ -38,7 +38,7 @@ jobs:
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main

80
.github/workflows/coverity.yml vendored Normal file
View File

@ -0,0 +1,80 @@
name: Coverity
on:
schedule:
- cron: '42 0 * * *' # Run once per day, to avoid Coverity's submission limits
workflow_dispatch:
jobs:
scan:
runs-on: ubuntu-18.04
env:
CC: gcc
DEBIAN_FRONTEND: noninteractive
steps:
- uses: actions/checkout@v2
- name: Download Coverity
run: |
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=vim" -O coverity_tool.tgz
mkdir cov-scan
tar ax -f coverity_tool.tgz --strip-components=1 -C cov-scan
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
- name: Install packages
run: |
sudo apt update && sudo apt install -y \
autoconf \
gettext \
libcanberra-dev \
libperl-dev \
python-dev \
python3-dev \
liblua5.3-dev \
lua5.3 \
ruby-dev \
tcl-dev \
libgtk2.0-dev \
desktop-file-utils \
libtool-bin \
libsodium-dev
- name: Set up environment
run: |
echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH
(
echo "NPROC=$(getconf _NPROCESSORS_ONLN)"
echo "CONFOPT=--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
) >> $GITHUB_ENV
- name: Set up system
run: |
# Setup lua5.3 manually since its package doesn't provide alternative.
# https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
sudo update-alternatives --install /usr/bin/lua lua /usr/bin/lua5.3 10
- name: Configure
run: |
./configure --with-features=huge ${CONFOPT} --enable-fail-if-missing
# Append various warning flags to CFLAGS.
sed -i -f ci/config.mk.sed src/auto/config.mk
sed -i -f ci/config.mk.${CC}.sed src/auto/config.mk
- name: Build/scan vim
run: |
cov-build --dir cov-int make -j${NPROC}
- name: Submit results
run: |
tar zcf cov-scan.tgz cov-int
curl --form token=$TOKEN \
--form email=$EMAIL \
--form file=@cov-scan.tgz \
--form version="$(git rev-parse HEAD)" \
--form description="Automatic GHA scan" \
'https://scan.coverity.com/builds?project=vim'
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}

View File

@ -57,7 +57,7 @@ If you find a problem with one of these files or have a suggestion for
improvement, please first try to contact the maintainer directly.
Look in the header of the file for the name and email address.
The maintainer will take care of issues and send updates to Bram for
The maintainer will take care of issues and send updates to Bram for
distribution with Vim.
If the maintainer does not respond, contact the vim-dev maillist.

View File

@ -7,8 +7,10 @@ SRC_ALL = \
.coveralls.yml \
.gitattributes \
.github/CODEOWNERS \
.github/ISSUE_TEMPLATE/bug_report.yml \
.github/workflows/ci.yml \
.github/workflows/codeql-analysis.yml \
.github/workflows/coverity.yml \
.gitignore \
.hgignore \
.lgtm.yml \
@ -23,6 +25,7 @@ SRC_ALL = \
ci/setup-xvfb.sh \
src/Make_all.mak \
src/README.md \
src/alloc.c \
src/alloc.h \
src/arabic.c \
src/arglist.c \
@ -140,7 +143,7 @@ SRC_ALL = \
src/tag.c \
src/term.c \
src/terminal.c \
src/term.h \
src/termdefs.h \
src/termlib.c \
src/testing.c \
src/textformat.c \
@ -210,6 +213,7 @@ SRC_ALL = \
src/testdir/popupbounce.vim \
src/proto.h \
src/protodef.h \
src/proto/alloc.pro \
src/proto/arabic.pro \
src/proto/arglist.pro \
src/proto/autocmd.pro \
@ -373,6 +377,7 @@ SRC_ALL = \
src/libvterm/t/30state_pen.test \
src/libvterm/t/31state_rep.test \
src/libvterm/t/32state_flow.test \
src/libvterm/t/40state_selection.test \
src/libvterm/t/60screen_ascii.test \
src/libvterm/t/61screen_unicode.test \
src/libvterm/t/62screen_damage.test \
@ -795,6 +800,7 @@ RT_SCRIPTS = \
runtime/autoload/xml/*.vim \
runtime/colors/*.vim \
runtime/colors/README.txt \
runtime/colors/lists/*.vim \
runtime/colors/tools/*.vim \
runtime/compiler/*.vim \
runtime/compiler/README.txt \
@ -847,7 +853,6 @@ RT_AMI_DOS = \
# DOS runtime (also in the extra archive)
RT_DOS = \
README_dos.txt \
runtime/rgb.txt \
vimtutor.bat \
# DOS runtime without CR-LF translation (also in the extra archive)

View File

@ -46,7 +46,7 @@ This `README.md` file comes with the runtime archive. It includes the
documentation, syntax files and other files that are used at runtime. To run
Vim you must get either one of the binary archives or a source archive.
Which one you need depends on the system you want to run it on and whether you
want or must compile it yourself. Check http://www.vim.org/download.php for
want or must compile it yourself. Check https://www.vim.org/download.php for
an overview of currently available distributions.
Some popular places to get the latest Vim:
@ -86,7 +86,7 @@ The Vim tutor is a one hour training course for beginners. Often it can be
started as `vimtutor`. See `:help tutor` for more information.
The best is to use `:help` in Vim. If you don't have an executable yet, read
[`runtime/doc/help.txt`](/runtime/doc/help.txt).
[`runtime/doc/help.txt`](/runtime/doc/help.txt).
It contains pointers to the other documentation files.
The User Manual reads like a book and is recommended to learn to use
Vim. See `:help user-manual`.
@ -117,7 +117,7 @@ in Uganda. See [`runtime/doc/uganda.txt`](runtime/doc/uganda.txt). But
at the same time donations increase Bram's motivation to keep working on Vim!
For the most recent information about sponsoring look on the Vim web site:
http://www.vim.org/sponsor/
https://www.vim.org/sponsor/
## Contributing ##
@ -129,15 +129,15 @@ If you would like to help making Vim better, see the
## Information ##
The latest news about Vim can be found on the Vim home page:
http://www.vim.org/
https://www.vim.org/
If you have problems, have a look at the Vim documentation or tips:
http://www.vim.org/docs.php
http://vim.wikia.com/wiki/Vim_Tips_Wiki
https://www.vim.org/docs.php
https://vim.fandom.com/wiki/Vim_Tips_Wiki
If you still have problems or any other questions, use one of the mailing
lists to discuss them with Vim users and developers:
http://www.vim.org/maillist.php
https://www.vim.org/maillist.php
If nothing else works, report bugs directly:
Bram Moolenaar <Bram@vim.org>

View File

@ -33,7 +33,7 @@ This README.txt file comes with the runtime archive. It includes the
documentation, syntax files and other files that are used at runtime. To run
Vim you must get either one of the binary archives or a source archive.
Which one you need depends on the system you want to run it on and whether you
want or must compile it yourself. Check "http://www.vim.org/download.php" for
want or must compile it yourself. Check "https://www.vim.org/download.php" for
an overview of currently available distributions.
Some popular places to get the latest Vim:
@ -101,7 +101,7 @@ increase Bram's motivation to keep working on Vim!
For the most recent information about sponsoring look on the Vim web site:
http://www.vim.org/sponsor/
https://www.vim.org/sponsor/
CONTRIBUTING
@ -112,15 +112,15 @@ If you would like to help making Vim better, see the CONTRIBUTING.md file.
INFORMATION
The latest news about Vim can be found on the Vim home page:
http://www.vim.org/
https://www.vim.org/
If you have problems, have a look at the Vim documentation or tips:
http://www.vim.org/docs.php
http://vim.wikia.com/wiki/Vim_Tips_Wiki
https://www.vim.org/docs.php
https://vim.fandom.com/wiki/Vim_Tips_Wiki
If you still have problems or any other questions, use one of the mailing
lists to discuss them with Vim users and developers:
http://www.vim.org/maillist.php
https://www.vim.org/maillist.php
If nothing else works, report bugs directly:
Bram Moolenaar <Bram@vim.org>

View File

@ -337,7 +337,7 @@ let start = reltime()
echo Python()
echo 'Python: ' .. reltimestr(reltime(start))
bwipe!
new
call setline(1, range(100000))
let start = reltime()

View File

@ -26,7 +26,6 @@ src/os_win32.* Files for the Win32 port.
src/gui_w32.* Files for the Win32 GUI.
src/gui_w48.* Files for the Win32 and Win16 GUI.
src/Make_mvc.mak MS Visual C++ makefile for the Win32 GUI.
runtime/rgb.txt File with color definitions for the Win32 GUI.
src/if_ole.* OLE automation interface, for MS Windows 95 and NT.

View File

@ -357,7 +357,6 @@ Section "$(str_section_exe)" id_section_exe
File ..\README.txt
File ..\uninstall.txt
File ${VIMRT}\*.vim
File ${VIMRT}\rgb.txt
File ${VIMTOOLS}\diff.exe
File ${VIMTOOLS}\winpty${BIT}.dll
@ -367,6 +366,8 @@ Section "$(str_section_exe)" id_section_exe
File ${VIMRT}\colors\*.*
SetOutPath $0\colors\tools
File ${VIMRT}\colors\tools\*.*
SetOutPath $0\colors\lists
File ${VIMRT}\colors\lists\*.*
SetOutPath $0\compiler
File ${VIMRT}\compiler\*.*

View File

@ -10,7 +10,7 @@ LangString ^SetupCaption ${LANG_TURKISH} \
"$(^Name) Setup"
LangString ^UninstallCaption ${LANG_TURKISH} \
"$(^Name) Uninstall"
LangString str_show_readme ${LANG_TURKISH} \
"Kurulum bittikten sonra README dosyasını"
@ -23,7 +23,7 @@ LangString str_type_minimal ${LANG_TURKISH} \
LangString str_type_full ${LANG_TURKISH} \
"Tam"
##############################################################################
# Section Titles & Description {{{1
##############################################################################
@ -62,12 +62,12 @@ LangString str_section_start_menu ${LANG_TURKISH} \
"Başlat Menüsü - Programlar klasöründe"
LangString str_desc_start_menu ${LANG_TURKISH} \
"Vim kısayolunu Başlat Menüsüne ekler."
LangString str_section_edit_with ${LANG_TURKISH} \
"Vim ile Aç"
LangString str_desc_edit_with ${LANG_TURKISH} \
"Vim'i $\"Birlikte $\" sağ tık menüsüne ekler."
LangString str_section_vim_rc ${LANG_TURKISH} \
"Bir yapılandırma dosyası oluştur"
LangString str_desc_vim_rc ${LANG_TURKISH} \
@ -93,7 +93,7 @@ LangString str_desc_plugin_vim ${LANG_TURKISH} \
LangString str_section_vis_vim ${LANG_TURKISH} \
"VisVim eklentisi"
LangString str_desc_vis_vim ${LANG_TURKISH} \
"Microsoft Visual Studio entegrasyonu için VisVim eklentisi"
"Microsoft Visual Studio entegrasyonu için VisVim eklentisi"
LangString str_section_nls ${LANG_TURKISH} \
"Ek dil desteği"
@ -129,14 +129,14 @@ LangString str_unsection_rootdir ${LANG_TURKISH} \
"Vim kök dizinini kaldır"
LangString str_desc_rm_rootdir ${LANG_TURKISH} \
"Vim kök dizinini kaldırır. Bu dizin Vim yapılandırma dosyalarını içerir!"
LangString str_msg_install_fail ${LANG_TURKISH} \
"Yükleme başarısız oldu. Yeniden deneyin."
LangString str_msg_rm_exe_fail ${LANG_TURKISH} \
"$0 içindeki bazı dosyalar silinemedi!$\r$\n\
Bu dosyaları el ile kaldırmalısınız."
LangString str_msg_uninstalling ${LANG_TURKISH} \
"Eski sürüm kaldırılıyor..."

View File

@ -3,11 +3,9 @@
prefix=stock_
list=
for file in "$@"
do
name=`echo "$file" | sed 's|-|_|g; s|^.*/||; s|\..*$||'`
for file in "$@"; do
name=$(echo "$file" | sed 's|-|_|g; s|^.*/||; s|\..*$||')
list="$list $prefix$name $file"
done
gdk-pixbuf-csource --raw --static --build-list $list

View File

@ -67,13 +67,13 @@ if exists ('g:ada_with_gnat_project_files')
endfor
endif
" Section: add standart exception {{{2
" Section: add standard exception {{{2
"
for Item in ['Constraint_Error', 'Program_Error', 'Storage_Error', 'Tasking_Error', 'Status_Error', 'Mode_Error', 'Name_Error', 'Use_Error', 'Device_Error', 'End_Error', 'Data_Error', 'Layout_Error', 'Length_Error', 'Pattern_Error', 'Index_Error', 'Translation_Error', 'Time_Error', 'Argument_Error', 'Tag_Error', 'Picture_Error', 'Terminator_Error', 'Conversion_Error', 'Pointer_Error', 'Dereference_Error', 'Update_Error']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'exception',
\ 'info': 'Ada standart exception.',
\ 'info': 'Ada standard exception.',
\ 'kind': 'x',
\ 'icase': 1}]
endfor
@ -210,7 +210,7 @@ function ada#Word (...)
let l:Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' )
" Cope with tag searching for items in comments; if we are, don't loop
" backards looking for previous lines
" backwards looking for previous lines
if l:Column_Nr > strlen(l:Line)
" We were in a comment
let l:Line = getline(l:Line_Nr)

View File

@ -14,7 +14,7 @@
" 15.10.2006 MK Bram's suggestion for runtime integration
" 05.11.2006 MK Bram suggested not to use include protection for
" autoload
" 05.11.2006 MK Bram suggested agaist using setlocal omnifunc
" 05.11.2006 MK Bram suggested against using setlocal omnifunc
" 05.11.2006 MK Bram suggested to save on spaces
" Help Page: ft-ada-omni
"------------------------------------------------------------------------------

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
" plus CSS Speech Module <http://www.w3.org/TR/css3-speech/>
" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
" Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2018 Jul 02
" Last Change: 2021 Sep 21
let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom")
@ -38,12 +38,12 @@ function! csscomplete#CompleteCSS(findstart, base)
if exists("b:compl_context")
let line = getline('.')
let compl_begin = col('.') - 2
let after = line[compl_begin:]
let b:after = line[compl_begin:]
let line = b:compl_context
unlet! b:compl_context
else
let line = a:base
let after = ''
let b:after = ''
endif
let res = []
@ -311,7 +311,7 @@ function! csscomplete#CompleteCSS(findstart, base)
let values = ["normal", "italic", "oblique", "small-caps", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller", "sans-serif", "serif", "monospace", "cursive", "fantasy", "caption", "icon", "menu", "message-box", "small-caption", "status-bar"]
elseif prop =~ '^\%(height\|width\)$'
let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
elseif prop =~ '^\%(left\|rigth\)$'
elseif prop =~ '^\%(left\|right\)$'
let values = ["auto"]
elseif prop == 'image-rendering'
let values = ["auto", "crisp-edges", "pixelated"]

View File

@ -23,7 +23,7 @@ endif
function decada#Unit_Name () dict " {{{1
" Convert filename into acs unit:
" 1: remove the file extenstion.
" 1: remove the file extension.
" 2: replace all double '_' or '-' with an dot (which denotes a separate)
" 3: remove a trailing '_' (which denotes a specification)
return substitute (substitute (expand ("%:t:r"), '__\|-', ".", "g"), '_$', "", '')

View File

@ -219,6 +219,23 @@ func dist#ft#FTe()
endif
endfunc
" Distinguish between Forth and F#.
" Provided by Doug Kearns.
func dist#ft#FTfs()
if exists("g:filetype_fs")
exe "setf " . g:filetype_fs
else
let line = getline(nextnonblank(1))
" comments and colon definitions
if line =~ '^\s*\.\=( ' || line =~ '^\s*\\G\= ' || line =~ '^\\$'
\ || line =~ '^\s*: \S'
setf forth
else
setf fsharp
endif
endif
endfunc
" Distinguish between HTML, XHTML and Django
func dist#ft#FThtml()
let n = 1
@ -264,6 +281,16 @@ func dist#ft#ProtoCheck(default)
endfunc
func dist#ft#FTm()
if exists("g:filetype_m")
exe "setf " . g:filetype_m
return
endif
" excluding end(for|function|if|switch|while) common to Murphi
let octave_block_terminators = '\<end\%(_try_catch\|classdef\|enumeration\|events\|methods\|parfor\|properties\)\>'
let objc_preprocessor = '^\s*#\s*\%(import\|include\|define\|if\|ifn\=def\|undef\|line\|error\|pragma\)\>'
let n = 1
let saw_comment = 0 " Whether we've seen a multiline comment leader.
while n < 100
@ -274,10 +301,16 @@ func dist#ft#FTm()
" anything more definitive.
let saw_comment = 1
endif
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|//\)'
if line =~ '^\s*//' || line =~ '^\s*@import\>' || line =~ objc_preprocessor
setf objc
return
endif
if line =~ '^\s*\%(#\|%!\)' || line =~ '^\s*unwind_protect\>' ||
\ line =~ '\%(^\|;\)\s*' .. octave_block_terminators
setf octave
return
endif
" TODO: could be Matlab or Octave
if line =~ '^\s*%'
setf matlab
return
@ -298,11 +331,8 @@ func dist#ft#FTm()
" or Murphi based on the comment leader. Assume the former as it is more
" common.
setf objc
elseif exists("g:filetype_m")
" Use user specified default filetype for .m
exe "setf " . g:filetype_m
else
" Default is matlab
" Default is Matlab
setf matlab
endif
endfunc

View File

@ -129,7 +129,7 @@ fun! getscript#GetLatestVimScripts()
" insure that wget is executable
if executable(g:GetLatestVimScripts_wget) != 1
echoerr "GetLatestVimScripts needs ".g:GetLatestVimScripts_wget." which apparently is not available on your system"
" call Dret("GetLatestVimScripts : wget not executable/availble")
" call Dret("GetLatestVimScripts : wget not executable/available")
return
endif
@ -347,7 +347,7 @@ fun! s:GetOneScript(...)
set t_ti= t_te= nors
" put current line on top-of-screen and interpret it into
" a script identifer : used to obtain webpage
" a script identifier : used to obtain webpage
" source identifier : used to identify current version
" and an associated comment: used to report on what's being considered
if a:0 >= 3

View File

@ -54,7 +54,7 @@ function! haskellcomplete#Complete(findstart, base)
if b:completingLangExtension
if a:base ==? ""
" Return all posible Lang extensions
" Return all possible Lang extensions
return s:langExtensions
else
let l:matches = []
@ -70,7 +70,7 @@ function! haskellcomplete#Complete(findstart, base)
elseif b:completingOptionsGHC
if a:base ==? ""
" Return all posible GHC options
" Return all possible GHC options
return s:optionsGHC
else
let l:matches = []
@ -86,7 +86,7 @@ function! haskellcomplete#Complete(findstart, base)
elseif b:completingModule
if a:base ==? ""
" Return all posible modules
" Return all possible modules
return s:commonModules
else
let l:matches = []

View File

@ -486,7 +486,7 @@ function! htmlcomplete#CompleteTags(findstart, base)
endif
endif
" Value of attribute completion {{{
" If attr contains =\s*[\"'] we catched value of attribute
" If attr contains =\s*[\"'] we match value of attribute
if attr =~ "=\s*[\"']" || attr =~ "=\s*$"
" Let do attribute specific completion
let attrname = matchstr(attr, '.*\ze\s*=')

View File

@ -1,7 +1,7 @@
" netrw.vim: Handles file transfer and remote directory listing across
" AUTOLOAD SECTION
" Date: Sep 18, 2020
" Version: 170
" Date: Aug 16, 2021
" Version: 171
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
@ -43,7 +43,7 @@ if exists("s:needspatches")
endfor
endif
let g:loaded_netrw = "v170"
let g:loaded_netrw = "v171"
if !exists("s:NOTE")
let s:NOTE = 0
let s:WARNING = 1
@ -93,7 +93,7 @@ fun! netrw#ErrorMsg(level,msg,errnum)
else
let msg= level.a:msg
endif
let s:popuperr_id = popup_beval(msg,{})
let s:popuperr_id = popup_atcursor(msg,{})
let s:popuperr_text= ""
elseif g:netrw_use_errorwindow
" (default) netrw creates a one-line window to show error/warning
@ -322,6 +322,7 @@ call s:NetrwInit("g:netrw_banner" , 1)
call s:NetrwInit("g:netrw_browse_split", 0)
call s:NetrwInit("g:netrw_bufsettings" , "noma nomod nonu nobl nowrap ro nornu")
call s:NetrwInit("g:netrw_chgwin" , -1)
call s:NetrwInit("g:netrw_clipboard" , 1)
call s:NetrwInit("g:netrw_compress" , "gzip")
call s:NetrwInit("g:netrw_ctags" , "ctags")
if exists("g:netrw_cursorline") && !exists("g:netrw_cursor")
@ -331,6 +332,7 @@ endif
call s:NetrwInit("g:netrw_cursor" , 2)
let s:netrw_usercul = &cursorline
let s:netrw_usercuc = &cursorcolumn
"call Decho("(netrw) COMBAK: cuc=".&l:cuc." cul=".&l:cul." initialization of s:netrw_cu[cl]")
call s:NetrwInit("g:netrw_cygdrive","/cygdrive")
" Default values - d-g ---------- {{{3
call s:NetrwInit("s:didstarstar",0)
@ -703,7 +705,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
endif
" save registers
if has("clipboard")
if has("clipboard") && g:netrw_clipboard
" call Decho("(netrw#Explore) save @* and @+",'~'.expand("<slnum>"))
sil! let keepregstar = @*
sil! let keepregplus = @+
@ -931,7 +933,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
" call Decho("..case Nexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>"))
if !exists("w:netrw_explore_list") " sanity check
NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40)
if has("clipboard")
if has("clipboard") && g:netrw_clipboard
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
@ -957,7 +959,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
" call Decho("case Pexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>"))
if !exists("w:netrw_explore_list") " sanity check
NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41)
if has("clipboard")
if has("clipboard") && g:netrw_clipboard
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
@ -1013,7 +1015,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
catch /^Vim\%((\a\+)\)\=:E480/
keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45)
if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
if has("clipboard")
if has("clipboard") && g:netrw_clipboard
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
@ -1050,7 +1052,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/')
keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42)
if has("clipboard")
if has("clipboard") && g:netrw_clipboard
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
@ -1099,7 +1101,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
if !exists("g:netrw_quiet")
keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44)
endif
if has("clipboard")
if has("clipboard") && g:netrw_clipboard
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
@ -1173,7 +1175,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
" there's no danger of a late FocusGained event on initialization.
" Consequently, set s:netrw_events to 2.
let s:netrw_events= 2
if has("clipboard")
if has("clipboard") && g:netrw_clipboard
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
@ -1641,7 +1643,8 @@ endfun
fun! s:NetrwOptionsSave(vt)
" call Dfunc("s:NetrwOptionsSave(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%")).">"." winnr($)=".winnr("$")." mod=".&mod." ma=".&ma)
" call Decho(a:vt."netrw_optionsave".(exists("{a:vt}netrw_optionsave")? ("=".{a:vt}netrw_optionsave) : " doesn't exist"),'~'.expand("<slnum>"))
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt." hid=".&hid,'~'.expand("<slnum>"))
" call Decho("(s:NetrwOptionsSave) lines=".&lines)
if !exists("{a:vt}netrw_optionsave")
let {a:vt}netrw_optionsave= 1
@ -1667,6 +1670,9 @@ fun! s:NetrwOptionsSave(vt)
let {a:vt}netrw_cinokeep = &l:cino
let {a:vt}netrw_comkeep = &l:com
let {a:vt}netrw_cpokeep = &l:cpo
let {a:vt}netrw_cuckeep = &l:cuc
let {a:vt}netrw_culkeep = &l:cul
" call Decho("(s:NetrwOptionsSave) COMBAK: cuc=".&l:cuc." cul=".&l:cul)
let {a:vt}netrw_diffkeep = &l:diff
let {a:vt}netrw_fenkeep = &l:fen
if !exists("g:netrw_ffkeep") || g:netrw_ffkeep
@ -1674,9 +1680,11 @@ fun! s:NetrwOptionsSave(vt)
endif
let {a:vt}netrw_fokeep = &l:fo " formatoptions
let {a:vt}netrw_gdkeep = &l:gd " gdefault
let {a:vt}netrw_gokeep = &l:go " guioptions
let {a:vt}netrw_hidkeep = &l:hidden
let {a:vt}netrw_imkeep = &l:im
let {a:vt}netrw_iskkeep = &l:isk
let {a:vt}netrw_lines = &lines
let {a:vt}netrw_lskeep = &l:ls
let {a:vt}netrw_makeep = &l:ma
let {a:vt}netrw_magickeep = &l:magic
@ -1702,12 +1710,13 @@ fun! s:NetrwOptionsSave(vt)
let {a:vt}netrw_dirkeep = getcwd()
" call Decho("saving to ".a:vt."netrw_dirkeep<".{a:vt}netrw_dirkeep.">",'~'.expand("<slnum>"))
endif
if has("clipboard")
if has("clipboard") && g:netrw_clipboard
sil! let {a:vt}netrw_starkeep = @*
sil! let {a:vt}netrw_pluskeep = @+
endif
sil! let {a:vt}netrw_slashkeep= @/
" call Decho("(s:NetrwOptionsSave) lines=".&lines)
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
" call Dret("s:NetrwOptionsSave : tab#".tabpagenr()." win#".winnr())
endfun
@ -1732,12 +1741,18 @@ fun! s:NetrwOptionsSafe(islocal)
endif
call s:NetrwSetSafeSetting("&l:ci",0)
call s:NetrwSetSafeSetting("&l:cin",0)
call s:NetrwSetSafeSetting("&l:bh","hide")
if g:netrw_fastbrowse > a:islocal
call s:NetrwSetSafeSetting("&l:bh","hide")
else
call s:NetrwSetSafeSetting("&l:bh","delete")
endif
call s:NetrwSetSafeSetting("&l:cino","")
call s:NetrwSetSafeSetting("&l:com","")
if &cpo =~ 'a' | call s:NetrwSetSafeSetting("&cpo",substitute(&cpo,'a','','g')) | endif
if &cpo =~ 'A' | call s:NetrwSetSafeSetting("&cpo",substitute(&cpo,'A','','g')) | endif
setl fo=nroql2
" call s:NetrwSetSafeSetting("&go","begmr")
if &go =~ '\ca' | call s:NetrwSetSafeSetting("&go",substitute(&go,'\ca','','g')) | endif
call s:NetrwSetSafeSetting("&l:hid",0)
call s:NetrwSetSafeSetting("&l:im",0)
setl isk+=@ isk+=* isk+=/
@ -1751,7 +1766,10 @@ fun! s:NetrwOptionsSafe(islocal)
call s:NetrwSetSafeSetting("&l:tw",0)
call s:NetrwSetSafeSetting("&l:wig","")
setl cedit&
call s:NetrwCursor()
" set up cuc and cul based on g:netrw_cursor and listing style
" COMBAK -- cuc cul related
call s:NetrwCursor(0)
" allow the user to override safe options
" call Decho("ft<".&ft."> ei=".&ei,'~'.expand("<slnum>"))
@ -1769,11 +1787,14 @@ endfun
" s:NetrwOptionsRestore: restore options (based on prior s:NetrwOptionsSave) {{{2
fun! s:NetrwOptionsRestore(vt)
" call Dfunc("s:NetrwOptionsRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$"))
" call Decho("(s:NetrwOptionsRestore) lines=".&lines)
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
if !exists("{a:vt}netrw_optionsave")
" call Decho("case ".a:vt."netrw_optionsave : doesn't exist",'~'.expand("<slnum>"))
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
" call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
" call Decho("..doing filetype detect anyway")
filetype detect
" call Decho("..settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
" call Decho("..ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
" call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist")
return
endif
@ -1790,41 +1811,53 @@ fun! s:NetrwOptionsRestore(vt)
endif
endif
endif
" call Decho("(s:NetrwOptionsRestore) #1 lines=".&lines)
call s:NetrwRestoreSetting(a:vt."netrw_aikeep","&l:ai")
call s:NetrwRestoreSetting(a:vt."netrw_awkeep","&l:aw")
call s:NetrwRestoreSetting(a:vt."netrw_blkeep","&l:bl")
call s:NetrwRestoreSetting(a:vt."netrw_btkeep","&l:bt")
call s:NetrwRestoreSetting(a:vt."netrw_bombkeep","&l:bomb")
" call Decho("(s:NetrwOptionsRestore) #2 lines=".&lines)
call s:NetrwRestoreSetting(a:vt."netrw_cedit","&cedit")
call s:NetrwRestoreSetting(a:vt."netrw_cikeep","&l:ci")
call s:NetrwRestoreSetting(a:vt."netrw_cinkeep","&l:cin")
call s:NetrwRestoreSetting(a:vt."netrw_cinokeep","&l:cino")
call s:NetrwRestoreSetting(a:vt."netrw_comkeep","&l:com")
" call Decho("(s:NetrwOptionsRestore) #3 lines=".&lines)
call s:NetrwRestoreSetting(a:vt."netrw_cpokeep","&l:cpo")
call s:NetrwRestoreSetting(a:vt."netrw_diffkeep","&l:diff")
call s:NetrwRestoreSetting(a:vt."netrw_fenkeep","&l:fen")
if exists("g:netrw_ffkeep") && g:netrw_ffkeep
call s:NetrwRestoreSetting(a:vt."netrw_ffkeep")","&l:ff")
endif
call s:NetrwRestoreSetting(a:vt."netrw_fokeep","&l:fo")
call s:NetrwRestoreSetting(a:vt."netrw_gdkeep","&l:gd")
call s:NetrwRestoreSetting(a:vt."netrw_hidkeep","&l:hidden")
call s:NetrwRestoreSetting(a:vt."netrw_imkeep","&l:im")
call s:NetrwRestoreSetting(a:vt."netrw_iskkeep","&l:isk")
call s:NetrwRestoreSetting(a:vt."netrw_lskeep","&l:ls")
call s:NetrwRestoreSetting(a:vt."netrw_makeep","&l:ma")
" call Decho("(s:NetrwOptionsRestore) #4 lines=".&lines)
call s:NetrwRestoreSetting(a:vt."netrw_fokeep" ,"&l:fo")
call s:NetrwRestoreSetting(a:vt."netrw_gdkeep" ,"&l:gd")
call s:NetrwRestoreSetting(a:vt."netrw_gokeep" ,"&l:go")
call s:NetrwRestoreSetting(a:vt."netrw_hidkeep" ,"&l:hidden")
" call Decho("(s:NetrwOptionsRestore) #5 lines=".&lines)
call s:NetrwRestoreSetting(a:vt."netrw_imkeep" ,"&l:im")
call s:NetrwRestoreSetting(a:vt."netrw_iskkeep" ,"&l:isk")
" call Decho("(s:NetrwOptionsRestore) #6 lines=".&lines)
call s:NetrwRestoreSetting(a:vt."netrw_lines" ,"&lines")
" call Decho("(s:NetrwOptionsRestore) #7 lines=".&lines)
call s:NetrwRestoreSetting(a:vt."netrw_lskeep" ,"&l:ls")
call s:NetrwRestoreSetting(a:vt."netrw_makeep" ,"&l:ma")
call s:NetrwRestoreSetting(a:vt."netrw_magickeep","&l:magic")
call s:NetrwRestoreSetting(a:vt."netrw_modkeep","&l:mod")
call s:NetrwRestoreSetting(a:vt."netrw_nukeep","&l:nu")
call s:NetrwRestoreSetting(a:vt."netrw_rnukeep","&l:rnu")
call s:NetrwRestoreSetting(a:vt."netrw_repkeep","&l:report")
call s:NetrwRestoreSetting(a:vt."netrw_rokeep","&l:ro")
call s:NetrwRestoreSetting(a:vt."netrw_selkeep","&l:sel")
call s:NetrwRestoreSetting(a:vt."netrw_modkeep" ,"&l:mod")
call s:NetrwRestoreSetting(a:vt."netrw_nukeep" ,"&l:nu")
" call Decho("(s:NetrwOptionsRestore) #8 lines=".&lines)
call s:NetrwRestoreSetting(a:vt."netrw_rnukeep" ,"&l:rnu")
call s:NetrwRestoreSetting(a:vt."netrw_repkeep" ,"&l:report")
call s:NetrwRestoreSetting(a:vt."netrw_rokeep" ,"&l:ro")
call s:NetrwRestoreSetting(a:vt."netrw_selkeep" ,"&l:sel")
" call Decho("(s:NetrwOptionsRestore) #9 lines=".&lines)
call s:NetrwRestoreSetting(a:vt."netrw_spellkeep","&l:spell")
call s:NetrwRestoreSetting(a:vt."netrw_twkeep","&l:tw")
call s:NetrwRestoreSetting(a:vt."netrw_wigkeep","&l:wig")
call s:NetrwRestoreSetting(a:vt."netrw_wrapkeep","&l:wrap")
call s:NetrwRestoreSetting(a:vt."netrw_twkeep" ,"&l:tw")
call s:NetrwRestoreSetting(a:vt."netrw_wigkeep" ,"&l:wig")
call s:NetrwRestoreSetting(a:vt."netrw_wrapkeep" ,"&l:wrap")
call s:NetrwRestoreSetting(a:vt."netrw_writekeep","&l:write")
" call Decho("(s:NetrwOptionsRestore) #10 lines=".&lines)
call s:NetrwRestoreSetting("s:yykeep","@@")
" former problem: start with liststyle=0; press <i> : result, following line resets l:ts.
" Fixed; in s:PerformListing, when w:netrw_liststyle is s:LONGLIST, will use a printf to pad filename with spaces
@ -1855,7 +1888,7 @@ fun! s:NetrwOptionsRestore(vt)
unlet {a:vt}netrw_dirkeep
endif
endif
if has("clipboard")
if has("clipboard") && g:netrw_clipboard
" call Decho("has clipboard",'~'.expand("<slnum>"))
call s:NetrwRestoreSetting(a:vt."netrw_starkeep","@*")
call s:NetrwRestoreSetting(a:vt."netrw_pluskeep","@+")
@ -1871,9 +1904,11 @@ fun! s:NetrwOptionsRestore(vt)
" were having their filetype detect-generated settings overwritten by
" NetrwOptionRestore.
if &ft != "netrw"
" call Decho("filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
" call Decho("before: filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
filetype detect
" call Decho("after : filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
endif
" call Decho("(s:NetrwOptionsRestore) lines=".&lines)
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
" call Dret("s:NetrwOptionsRestore : tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> modified=".&modified." modifiable=".&modifiable." readonly=".&readonly)
endfun
@ -1923,7 +1958,7 @@ fun! s:NetrwRestoreSetting(keepvar,setting)
" typically called from s:NetrwOptionsRestore
" call s:NetrwRestoreSettings(keep-option-variable-name,'associated-option')
" ex. call s:NetrwRestoreSetting(a:vt."netrw_selkeep","&l:sel")
" Restores option (if different) from a keepvar
" Restores option (but only if different) from a:keepvar
if exists(a:keepvar)
exe "let keepvarval= ".a:keepvar
exe "let setting= ".a:setting
@ -2845,14 +2880,16 @@ fun! netrw#SetTreetop(iscmd,...)
" call Decho("inittreetop<".(exists("inittreetop")? inittreetop : "n/a").">")
if (a:iscmd == 0 || a:1 == "") && exists("inittreetop")
let treedir= s:NetrwTreePath(inittreetop)
let treedir = s:NetrwTreePath(inittreetop)
" call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
else
if isdirectory(s:NetrwFile(a:1))
" call Decho("a:1<".a:1."> is a directory",'~'.expand("<slnum>"))
let treedir= a:1
let treedir = a:1
let s:netrw_treetop = treedir
elseif exists("b:netrw_curdir") && (isdirectory(s:NetrwFile(b:netrw_curdir."/".a:1)) || a:1 =~ '^\a\{3,}://')
let treedir= b:netrw_curdir."/".a:1
let treedir = b:netrw_curdir."/".a:1
let s:netrw_treetop = treedir
" call Decho("a:1<".a:1."> is NOT a directory, using treedir<".treedir.">",'~'.expand("<slnum>"))
else
" normally the cursor is left in the message window.
@ -2860,7 +2897,8 @@ fun! netrw#SetTreetop(iscmd,...)
let netrwbuf= bufnr("%")
call netrw#ErrorMsg(s:ERROR,"sorry, ".a:1." doesn't seem to be a directory!",95)
exe bufwinnr(netrwbuf)."wincmd w"
let treedir= "."
let treedir = "."
let s:netrw_treetop = getcwd()
endif
endif
" call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
@ -4115,6 +4153,7 @@ fun! s:NetrwFileInfo(islocal,fname)
elseif g:netrw_sizestyle =~# 'h'
let lsopt= "-lsadh --si"
endif
" call Decho("(s:NetrwFileInfo) lsopt<".lsopt.">")
if (has("unix") || has("macunix")) && executable("/bin/ls")
if getline(".") == "../"
@ -4176,9 +4215,10 @@ endfun
" s:NetrwGetBuffer: [get a new|find an old netrw] buffer for a netrw listing {{{2
" returns 0=cleared buffer
" 1=re-used buffer (buffer not cleared)
" Nov 09, 2020: tst952 shows that when user does :set hidden that NetrwGetBuffer will come up with a [No Name] buffer (hid fix)
fun! s:NetrwGetBuffer(islocal,dirname)
" call Dfunc("s:NetrwGetBuffer(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".g:netrw_liststyle)
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." hid=".&hid,'~'.expand("<slnum>"))
" call Decho("netrwbuf dictionary=".(exists("s:netrwbuf")? string(s:netrwbuf) : 'n/a'),'~'.expand("<slnum>"))
" call Dredir("ls!","s:NetrwGetBuffer")
let dirname= a:dirname
@ -4228,17 +4268,26 @@ fun! s:NetrwGetBuffer(islocal,dirname)
endif
" call Decho(" bufnum#".bufnum,'~'.expand("<slnum>"))
" highjack the current buffer if
" it has the desired name
" it is empty
" call Decho("deciding if I can highjack the current buffer#".bufnr("%"),'~'.expand("<slnum>"))
" call Decho("..dirname<".dirname.">",'~'.expand("<slnum>"))
" call Decho("..bufname<".bufname("%").">",'~'.expand("<slnum>"))
" call Decho("..getline($)<".getline("$").">",'~'.expand("<slnum>"))
if dirname == bufname("%") && line("$") == 1 && getline("%") == ""
" hijack the current buffer
" IF the buffer already has the desired name
" AND it is empty
let curbuf = bufname("%")
if curbuf == '.'
let curbuf = getcwd()
endif
" call Dredir("ls!","NetrwGetFile (renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">)")
" call Decho("deciding if netrw may hijack the current buffer#".bufnr("%")."<".curbuf.">",'~'.expand("<slnum>"))
" call Decho("..dirname<".dirname."> IF dirname == bufname",'~'.expand("<slnum>"))
" call Decho("..curbuf<".curbuf.">",'~'.expand("<slnum>"))
" call Decho("..line($)=".line("$")." AND this is 1",'~'.expand("<slnum>"))
" call Decho("..getline(%)<".getline("%")."> AND this line is empty",'~'.expand("<slnum>"))
if dirname == curbuf && line("$") == 1 && getline("%") == ""
" call Dret("s:NetrwGetBuffer 0<cleared buffer> : highjacking buffer#".bufnr("%"))
return 0
else " DEBUG
" call Decho("..did NOT hijack buffer",'~'.expand("<slnum>"))
endif
" Aug 14, 2021: was thinking about looking for a [No Name] buffer here and using it, but that might cause problems
" get enew buffer and name it -or- re-use buffer {{{3
if bufnum < 0 " get enew buffer and name it
@ -4563,7 +4612,7 @@ fun! s:NetrwListStyle(islocal)
" refresh the listing
" call Decho("refresh the listing",'~'.expand("<slnum>"))
NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
NetrwKeepj call s:NetrwCursor()
NetrwKeepj call s:NetrwCursor(0)
" repoint t:netrw_lexbufnr if appropriate
if exists("repointlexbufnr")
@ -4769,7 +4818,7 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
endif
" call Decho("b:netrw_curdir<".b:netrw_curdir.">")
" NetrwBrowseChgDir: save options and initialize {{{3
" NetrwBrowseChgDir; save options and initialize {{{3
" call Decho("saving options",'~'.expand("<slnum>"))
call s:SavePosn(s:netrw_posn)
NetrwKeepj call s:NetrwOptionsSave("s:")
@ -4837,6 +4886,8 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict") && newdir !~ '^\(/\|\a:\)'
" call Decho("edit-a-file: handle tree listing: w:netrw_treedict<".(exists("w:netrw_treedict")? string(w:netrw_treedict) : 'n/a').">",'~'.expand("<slnum>"))
" call Decho("edit-a-file: newdir<".newdir.">",'~'.expand("<slnum>"))
" let newdir = s:NetrwTreePath(s:netrw_treetop)
" call Decho("edit-a-file: COMBAK why doesn't this recognize file1's directory???")
let dirname= s:NetrwTreeDir(a:islocal)
"COMBAK : not working for a symlink -- but what about a regular file? a directory?
" call Decho("COMBAK : not working for a symlink -- but what about a regular file? a directory?")
@ -4950,7 +5001,8 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
exe "NetrwKeepj e ".fnameescape(dirname)
endif
" call Decho("edit-a-file: after e! ".dirname.": hidden=".&hidden." bufhidden<".&bufhidden."> mod=".&mod,'~'.expand("<slnum>"))
call s:NetrwCursor()
" COMBAK -- cuc cul related
call s:NetrwCursor(1)
if &hidden || &bufhidden == "hide"
" file came from vim's hidden storage. Don't "restore" options with it.
let dorestore= 0
@ -4971,8 +5023,8 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
elseif type(g:Netrw_funcref) == 3
" call Decho("edit-a-file: handling a list of g:Netrw_funcrefs",'~'.expand("<slnum>"))
for Fncref in g:Netrw_funcref
if type(FncRef) == 2
NetrwKeepj call FncRef()
if type(Fncref) == 2
NetrwKeepj call Fncref()
endif
endfor
endif
@ -5264,6 +5316,12 @@ fun! netrw#BrowseX(fname,remote)
endif
" call Decho("not a local file nor a webpage request",'~'.expand("<slnum>"))
if exists("g:netrw_browsex_viewer") && exists("g:netrw_browsex_support_remote") && !g:netrw_browsex_support_remote
let remote = a:remote
else
let remote = 0
endif
let ykeep = @@
let screenposn = winsaveview()
" call Decho("saving posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))
@ -5308,9 +5366,9 @@ fun! netrw#BrowseX(fname,remote)
endif
" call Decho("exten<".exten.">",'~'.expand("<slnum>"))
if a:remote == 1
if remote == 1
" create a local copy
" call Decho("remote: a:remote=".a:remote.": create a local copy of <".a:fname.">",'~'.expand("<slnum>"))
" call Decho("remote: remote=".remote.": create a local copy of <".a:fname.">",'~'.expand("<slnum>"))
setl bh=delete
call netrw#NetRead(3,a:fname)
" attempt to rename tempfile
@ -5332,7 +5390,7 @@ fun! netrw#BrowseX(fname,remote)
let fname= s:netrw_tmpfile
endif
else
" call Decho("local: a:remote=".a:remote.": handling local copy of <".a:fname.">",'~'.expand("<slnum>"))
" call Decho("local: remote=".remote.": handling local copy of <".a:fname.">",'~'.expand("<slnum>"))
let fname= a:fname
" special ~ handler for local
if fname =~ '^\~' && expand("$HOME") != ""
@ -5426,8 +5484,8 @@ fun! netrw#BrowseX(fname,remote)
if a:fname =~ '^https\=://'
" atril does not appear to understand how to handle html -- so use gvim to edit the document
let use_ctrlo= 0
" call Decho("(COMBAK) fname<".fname.">")
" call Decho("(COMBAK) a:fname<".a:fname.">")
" call Decho("fname<".fname.">")
" call Decho("a:fname<".a:fname.">")
call s:NetrwExe("sil! !gvim ".fname.' -c "keepj keepalt file '.fnameescape(a:fname).'"')
else
@ -5475,12 +5533,12 @@ fun! netrw#BrowseX(fname,remote)
" return to prior buffer (directory listing)
" Feb 12, 2008: had to de-activiate removal of
" temporary file because it wasn't getting seen.
" if a:remote == 1 && fname != a:fname
" if remote == 1 && fname != a:fname
"" call Decho("deleting temporary file<".fname.">",'~'.expand("<slnum>"))
" call s:NetrwDelete(fname)
" endif
if a:remote == 1
if remote == 1
setl bh=delete bt=nofile
if g:netrw_use_noswf
setl noswf
@ -5539,7 +5597,7 @@ fun! s:NetrwBufRename(newname)
let b:junk= 1
" call Decho("rename buffer: sil! keepj keepalt file ".fnameescape(a:newname),'~'.expand("<slnum>"))
exe 'sil! keepj keepalt file '.fnameescape(a:newname)
" call Dredir("ls!","s:NetrwBufRename (before bwipe)")
" call Dredir("ls!","s:NetrwBufRename (before bwipe)~".expand("<slnum>"))
let oldbufnr= bufnr(oldbufname)
" call Decho("oldbufname<".oldbufname."> oldbufnr#".oldbufnr,'~'.expand("<slnum>"))
" call Decho("bufnr(%)=".bufnr("%"),'~'.expand("<slnum>"))
@ -5548,6 +5606,9 @@ fun! s:NetrwBufRename(newname)
exe "bwipe! ".oldbufnr
" else " Decho
" call Decho("did *not* bwipe buf#".oldbufnr,'~'.expand("<slnum>"))
" call Decho("..reason: if oldbufname<".oldbufname."> is empty",'~'.expand("<slnum>"))"
" call Decho("..reason: if oldbufnr#".oldbufnr." is -1",'~'.expand("<slnum>"))"
" call Decho("..reason: if oldbufnr#".oldbufnr." != bufnr(%)#".bufnr("%"),'~'.expand("<slnum>"))"
endif
" call Dredir("ls!","s:NetrwBufRename (after rename)")
" else " Decho
@ -6536,7 +6597,7 @@ fun! s:NetrwMaps(islocal)
if !hasmapto('<Plug>NetrwRefresh')
nmap <buffer> <unique> <c-l> <Plug>NetrwRefresh
endif
nnoremap <buffer> <silent> <Plug>NetrwRefresh <c-l>:call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,(w:netrw_liststyle == 3)? w:netrw_treetop : './'))<cr>
nnoremap <buffer> <silent> <Plug>NetrwRefresh <c-l>:call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,(exists("w:netrw_liststyle") && exists("w:netrw_treetop") && w:netrw_liststyle == 3)? w:netrw_treetop : './'))<cr>
if s:didstarstar || !mapcheck("<s-down>","n")
nnoremap <buffer> <silent> <s-down> :Nexplore<cr>
endif
@ -6785,7 +6846,7 @@ fun! s:NetrwMarkFile(islocal,fname)
" sanity check
if empty(a:fname)
" call Dret("s:NetrwMarkFile : emtpy fname")
" call Dret("s:NetrwMarkFile : empty fname")
return
endif
let curdir = s:NetrwGetCurdir(a:islocal)
@ -8164,6 +8225,23 @@ fun! s:NetrwOpenFile(islocal)
call inputsave()
let fname= input("Enter filename: ")
call inputrestore()
" call Decho("(s:NetrwOpenFile) fname<".fname.">",'~'.expand("<slnum>"))
" determine if Lexplore is in use
if exists("t:netrw_lexbufnr")
" check if t:netrw_lexbufnr refers to a netrw window
" call Decho("(s:netrwOpenFile) ..t:netrw_lexbufnr=".t:netrw_lexbufnr,'~'.expand("<slnum>"))
let lexwinnr = bufwinnr(t:netrw_lexbufnr)
if lexwinnr != -1 && exists("g:netrw_chgwin") && g:netrw_chgwin != -1
" call Decho("(s:netrwOpenFile) ..Lexplore in use",'~'.expand("<slnum>"))
exe "NetrwKeepj keepalt ".g:netrw_chgwin."wincmd w"
exe "NetrwKeepj e ".fnameescape(fname)
let @@= ykeep
" call Dret("s:NetrwOpenFile : creating a file with Lexplore mode")
endif
endif
" Does the filename contain a path?
if fname !~ '[/\\]'
if exists("b:netrw_curdir")
if exists("g:netrw_quiet")
@ -8502,6 +8580,7 @@ fun! s:NetrwPrevWinOpen(islocal)
let lastwinnr = winnr("$")
let curword = s:NetrwGetWord()
let choice = 0
let s:prevwinopen= 1 " lets s:NetrwTreeDir() know that NetrwPrevWinOpen called it
let s:treedir = s:NetrwTreeDir(a:islocal)
let curdir = s:treedir
" call Decho("winnr($)#".lastwinnr." curword<".curword.">",'~'.expand("<slnum>"))
@ -8829,7 +8908,7 @@ fun! s:NetrwPreview(path) range
" 0 : 1: top -- preview window is horizontally split off and on the top
" 0 : 0: bot -- preview window is horizontally split off and on the bottom
"
" Note that the file being previewed is already known to not be a directory, hence we can avoid doing a LocalBrowse() check via
" Note that the file being previewed is already known to not be a directory, hence we can avoid doing a LocalBrowseCheck() check via
" the BufEnter event set up in netrwPlugin.vim
" call Decho("exe ".(g:netrw_alto? "top " : "bot ").(g:netrw_preview? "vert " : "")."pedit ".fnameescape(a:path),'~'.expand("<slnum>"))
let eikeep = &ei
@ -9264,14 +9343,20 @@ fun! s:NetrwTreeDir(islocal)
" call Decho("g:netrw_keepdir =".(exists("g:netrw_keepdir")? g:netrw_keepdir : 'n/a'),'~'.expand("<slnum>"))
" call Decho("w:netrw_liststyle=".(exists("w:netrw_liststyle")? w:netrw_liststyle : 'n/a'),'~'.expand("<slnum>"))
" call Decho("w:netrw_treetop =".(exists("w:netrw_treetop")? w:netrw_treetop : 'n/a'),'~'.expand("<slnum>"))
" call Decho("current line<".getline(".").">")
if exists("s:treedir")
if exists("s:treedir") && exists("s:prevwinopen")
" s:NetrwPrevWinOpen opens a "previous" window -- and thus needs to and does call s:NetrwTreeDir early
" call Decho('s:NetrwPrevWinOpen opens a "previous" window -- and thus needs to and does call s:NetrwTreeDir early')
let treedir= s:treedir
unlet s:treedir
" call Dret("s:NetrwTreeDir ".treedir)
unlet s:prevwinopen
" call Dret("s:NetrwTreeDir ".treedir.": early return since s:treedir existed previously")
return treedir
endif
if exists("s:prevwinopen")
unlet s:prevwinopen
endif
if !exists("b:netrw_curdir") || b:netrw_curdir == ""
let b:netrw_curdir= getcwd()
@ -9478,20 +9563,29 @@ endfun
" Called by s:PerformListing()
fun! s:NetrwTreeListing(dirname)
if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
" call Dfunc("NetrwTreeListing() bufname<".expand("%").">")
" call Dfunc("s:NetrwTreeListing() bufname<".expand("%").">")
" call Decho("curdir<".a:dirname.">",'~'.expand("<slnum>"))
" call Decho("win#".winnr().": w:netrw_treetop ".(exists("w:netrw_treetop")? "exists" : "doesn't exist")." w:netrw_treedict ".(exists("w:netrw_treedict")? "exists" : "doesn't exit"),'~'.expand("<slnum>"))
" call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))
" update the treetop
" call Decho("update the treetop",'~'.expand("<slnum>"))
if !exists("w:netrw_treetop")
" call Decho("update the treetop (w:netrw_treetop doesn't exist yet)",'~'.expand("<slnum>"))
let w:netrw_treetop= a:dirname
let s:netrw_treetop= w:netrw_treetop
" call Decho("w:netrw_treetop<".w:netrw_treetop."> (reusing)",'~'.expand("<slnum>"))
elseif (w:netrw_treetop =~ ('^'.a:dirname) && s:Strlen(a:dirname) < s:Strlen(w:netrw_treetop)) || a:dirname !~ ('^'.w:netrw_treetop)
" call Decho("update the treetop (override w:netrw_treetop with a:dirname<".a:dirname.">)",'~'.expand("<slnum>"))
let w:netrw_treetop= a:dirname
let s:netrw_treetop= w:netrw_treetop
" call Decho("w:netrw_treetop<".w:netrw_treetop."> (went up)",'~'.expand("<slnum>"))
endif
if exists("w:netrw_treetop")
let s:netrw_treetop= w:netrw_treetop
else
let w:netrw_treetop= getcwd()
let s:netrw_treetop= w:netrw_treetop
endif
if !exists("w:netrw_treedict")
" insure that we have a treedict, albeit empty
@ -9529,7 +9623,7 @@ fun! s:NetrwTreeListing(dirname)
exe "setl ".g:netrw_bufsettings
" call Dret("NetrwTreeListing : bufname<".expand("%").">")
" call Dret("s:NetrwTreeListing : bufname<".expand("%").">")
return
endif
endfun
@ -9637,7 +9731,7 @@ fun! s:NetrwWideListing()
let newcolstart = w:netrw_bannercnt + fpc
let newcolend = newcolstart + fpc - 1
" call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]",'~'.expand("<slnum>"))
if has("clipboard")
if has("clipboard") && g:netrw_clipboard
" call Decho("(s:NetrwWideListing) save @* and @+",'~'.expand("<slnum>"))
sil! let keepregstar = @*
sil! let keepregplus = @+
@ -10683,7 +10777,7 @@ endfun
" ---------------------------------------------------------------------
" netrw#LocalBrowseCheck: {{{2
fun! netrw#LocalBrowseCheck(dirname)
" This function is called by netrwPlugin.vim's s:LocalBrowse(), s:NetrwRexplore(),
" This function is called by netrwPlugin.vim's s:LocalBrowseCheck(), s:NetrwRexplore(),
" and by <cr> when atop a listed file/directory (via a buffer-local map)
"
" unfortunate interaction -- split window debugging can't be used here, must use
@ -10834,7 +10928,7 @@ endfun
" Hiding a buffer means that it will be re-used when examined, hence "fast".
" (re-using a buffer may not be as accurate)
"
" s:netrw_events : doesn't exist, s:LocalFastBrowser() will install autocmds whena med or fast browsing
" s:netrw_events : doesn't exist, s:LocalFastBrowser() will install autocmds with medium-speed or fast browsing
" =1: autocmds installed, but ignore next FocusGained event to avoid initial double-refresh of listing.
" BufEnter may be first event, then a FocusGained event. Ignore the first FocusGained event.
" If :Explore used: it sets s:netrw_events to 2, so no FocusGained events are ignored.
@ -10996,13 +11090,14 @@ fun! s:LocalListing()
let sz= s:NetrwHumanReadable(sz)
endif
let longfile= printf("%-".(g:netrw_maxfilenamelen+1)."s",pfile)
let pfile = longfile.fsz." ".strftime(g:netrw_timefmt,getftime(filename))
let pfile = longfile.sz." ".strftime(g:netrw_timefmt,getftime(filename))
" call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>"))
endif
if g:netrw_sort_by =~# "^t"
" sort by time (handles time up to 1 quintillion seconds, US)
" Decorate listing by prepending a timestamp/ . Sorting will then be done based on time.
" call Decho("implementing g:netrw_sort_by=".g:netrw_sort_by." (time)")
" call Decho("getftime(".filename.")=".getftime(filename),'~'.expand("<slnum>"))
let t = getftime(filename)
let ft = strpart("000000000000000000",1,18-strlen(t)).t
@ -11012,6 +11107,7 @@ fun! s:LocalListing()
elseif g:netrw_sort_by =~ "^s"
" sort by size (handles file sizes up to 1 quintillion bytes, US)
" call Decho("implementing g:netrw_sort_by=".g:netrw_sort_by." (size)")
" call Decho("getfsize(".filename.")=".getfsize(filename),'~'.expand("<slnum>"))
let sz = getfsize(filename)
if g:netrw_sizestyle =~# "[hH]"
@ -11024,6 +11120,7 @@ fun! s:LocalListing()
else
" sort by name
" call Decho("implementing g:netrw_sort_by=".g:netrw_sort_by." (name)")
" call Decho("exe NetrwKeepj put ='".pfile."'",'~'.expand("<slnum>"))
sil! NetrwKeepj put=pfile
endif
@ -11746,19 +11843,32 @@ endfun
" ---------------------------------------------------------------------
" s:NetrwCursor: responsible for setting cursorline/cursorcolumn based upon g:netrw_cursor {{{2
fun! s:NetrwCursor()
fun! s:NetrwCursor(editfile)
if !exists("w:netrw_liststyle")
let w:netrw_liststyle= g:netrw_liststyle
endif
" call Dfunc("s:NetrwCursor() ft<".&ft."> liststyle=".w:netrw_liststyle." g:netrw_cursor=".g:netrw_cursor." s:netrw_usercuc=".s:netrw_usercuc." s:netrw_usercul=".s:netrw_usercul)
" call Decho("(s:NetrwCursor) COMBAK: cuc=".&l:cuc." cul=".&l:cul)
if &ft != "netrw"
" if the current window isn't a netrw directory listing window, then use user cursorline/column
" settings. Affects when netrw is used to read/write a file using scp/ftp/etc.
" call Decho("case ft!=netrw: use user cul,cuc",'~'.expand("<slnum>"))
let &l:cursorline = s:netrw_usercul
let &l:cursorcolumn = s:netrw_usercuc
elseif g:netrw_cursor == 8
if w:netrw_liststyle == s:WIDELIST
setl cursorline
setl cursorcolumn
else
setl cursorline
endif
elseif g:netrw_cursor == 7
setl cursorline
elseif g:netrw_cursor == 6
if w:netrw_liststyle == s:WIDELIST
setl cursorline
endif
elseif g:netrw_cursor == 4
" all styles: cursorline, cursorcolumn
" call Decho("case g:netrw_cursor==4: setl cul cuc",'~'.expand("<slnum>"))
@ -11775,26 +11885,22 @@ fun! s:NetrwCursor()
else
" call Decho("case g:netrw_cursor==3 and not wide: setl cul (use user's cuc)",'~'.expand("<slnum>"))
setl cursorline
let &l:cursorcolumn = s:netrw_usercuc
endif
elseif g:netrw_cursor == 2
" thin-long-tree: cursorline, user's cursorcolumn
" wide : cursorline, user's cursorcolumn
" call Decho("case g:netrw_cursor==2: setl cuc (use user's cul)",'~'.expand("<slnum>"))
let &l:cursorcolumn = s:netrw_usercuc
setl cursorline
elseif g:netrw_cursor == 1
" thin-long-tree: user's cursorline, user's cursorcolumn
" wide : cursorline, user's cursorcolumn
let &l:cursorcolumn = s:netrw_usercuc
if w:netrw_liststyle == s:WIDELIST
" call Decho("case g:netrw_cursor==2 and wide: setl cul (use user's cuc)",'~'.expand("<slnum>"))
setl cursorline
else
" call Decho("case g:netrw_cursor==2 and not wide: (use user's cul,cuc)",'~'.expand("<slnum>"))
let &l:cursorline = s:netrw_usercul
endif
else
@ -11804,6 +11910,7 @@ fun! s:NetrwCursor()
let &l:cursorcolumn = s:netrw_usercuc
endif
" call Decho("(s:NetrwCursor) COMBAK: cuc=".&l:cuc." cul=".&l:cul)
" call Dret("s:NetrwCursor : l:cursorline=".&l:cursorline." l:cursorcolumn=".&l:cursorcolumn)
endfun
@ -11817,6 +11924,7 @@ fun! s:RestoreCursorline()
if exists("s:netrw_usercuc")
let &l:cursorcolumn = s:netrw_usercuc
endif
" call Decho("(s:RestoreCursorline) COMBAK: cuc=".&l:cuc." cul=".&l:cul)
" call Dret("s:RestoreCursorline : restored cul=".&l:cursorline." cuc=".&l:cursorcolumn)
endfun
@ -11851,12 +11959,38 @@ fun! s:NetrwDelete(path)
return result
endfun
" ---------------------------------------------------------------------
" s:NetrwBufRemover: removes a buffer that: {{{2s
" has buffer-id > 1
" is unlisted
" is unnamed
" does not appear in any window
fun! s:NetrwBufRemover(bufid)
" call Dfunc("s:NetrwBufRemover(".a:bufid.")")
" call Decho("buf#".a:bufid." ".((a:bufid > 1)? ">" : "≯")." must be >1 for removal","~".expand("<slnum>"))
" call Decho("buf#".a:bufid." is ".(buflisted(a:bufid)? "listed" : "unlisted"),"~".expand("<slnum>"))
" call Decho("buf#".a:bufid." has name <".bufname(a:bufid).">","~".expand("<slnum>"))
" call Decho("buf#".a:bufid." has winid#".bufwinid(a:bufid),"~".expand("<slnum>"))
if a:bufid > 1 && !buflisted(a:bufid) && bufname(a:bufid) == "" && bufwinid(a:bufid) == -1
" call Decho("(s:NetrwBufRemover) removing buffer#".a:bufid,"~".expand("<slnum>"))
exe "bd! ".a:bufid
endif
" call Dret("s:NetrwBufRemover")
endfun
" ---------------------------------------------------------------------
" s:NetrwEnew: opens a new buffer, passes netrw buffer variables through {{{2
fun! s:NetrwEnew(...)
" call Dfunc("s:NetrwEnew() a:0=".a:0." win#".winnr()." winnr($)=".winnr("$")." bufnr($)=".bufnr("$")." expand(%)<".expand("%").">")
" call Decho("curdir<".((a:0>0)? a:1 : "")."> buf#".bufnr("%")."<".bufname("%").">",'~'.expand("<slnum>"))
" Clean out the last buffer:
" Check if the last buffer has # > 1, is unlisted, is unnamed, and does not appear in a window
" If so, delete it.
call s:NetrwBufRemover(bufnr("$"))
" grab a function-local-variable copy of buffer variables
" call Decho("make function-local copy of netrw variables",'~'.expand("<slnum>"))
if exists("b:netrw_bannercnt") |let netrw_bannercnt = b:netrw_bannercnt |endif

View File

@ -1,7 +1,7 @@
" netrwSettings.vim: makes netrw settings simpler
" Date: Nov 09, 2016
" Date: Aug 12, 2021
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Version: 16
" Version: 17 ASTRO-ONLY
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
@ -19,7 +19,7 @@
if exists("g:loaded_netrwSettings") || &cp
finish
endif
let g:loaded_netrwSettings = "v16"
let g:loaded_netrwSettings = "v17"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
@ -31,7 +31,7 @@ endif
" NetrwSettings: {{{1
fun! netrwSettings#NetrwSettings()
" this call is here largely just to insure that netrw has been loaded
call netrw#SavePosn()
call netrw#WinPath("")
if !exists("g:loaded_netrw")
echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
return

View File

@ -9,7 +9,7 @@
"
" let g:phpcomplete_relax_static_constraint = 1/0 [default 0]
" Enables completion for non-static methods when completing for static context (::).
" This generates E_STRICT level warning, but php calls these methods nontheless.
" This generates E_STRICT level warning, but php calls these methods nonetheless.
"
" let g:phpcomplete_complete_for_unknown_classes = 1/0 [default 0]
" Enables completion of variables and functions in "everything under the sun" fashion
@ -28,7 +28,7 @@
" This option controls the number of characters the user needs to type before
" the tags will be searched for namespaces and classes in typed out namespaces in
" "use ..." context. Setting this to 0 is not recommended because that means the code
" have to scan every tag, and vim's taglist() function runs extremly slow with a
" have to scan every tag, and vim's taglist() function runs extremely slow with a
" "match everything" pattern.
"
" let g:phpcomplete_parse_docblock_comments = 1/0 [default 0]
@ -263,7 +263,7 @@ function! phpcomplete#CompleteUse(base) " {{{
call add(no_namespace_matches, {'word': namespace_for_class.'\'.tag.name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename })
endif
endfor
" if it seems that the tags file have namespace informations we can safely throw
" if it seems that the tags file have namespace information we can safely throw
" away namespaceless tag matches since we can be sure they are invalid
if patched_ctags_detected
no_namespace_matches = []
@ -805,7 +805,7 @@ function! phpcomplete#CompleteClassName(base, kinds, current_namespace, imports)
endif
endfor
" resolve the typed in part with namespaces (if theres a \ in it)
" resolve the typed in part with namespaces (if there's a \ in it)
let [tag_match_pattern, namespace_for_class] = phpcomplete#ExpandClassName(a:base, a:current_namespace, a:imports)
let tags = []
@ -921,11 +921,11 @@ function! s:getNextCharWithPos(filelines, current_pos) " {{{
endfunction " }}}
function! phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibited_modifiers) " {{{
" if theres no modifier, and no modifier is allowed and no modifier is required
" if there's no modifier, and no modifier is allowed and no modifier is required
if len(a:modifiers) == 0 && len(a:required_modifiers) == 0
return 1
else
" check if every requred modifier is present
" check if every required modifier is present
for required_modifier in a:required_modifiers
if index(a:modifiers, required_modifier) == -1
return 0
@ -1253,7 +1253,7 @@ function! phpcomplete#GetCurrentInstruction(line_number, col_number, phpbegin) "
endif
endif
" save the coma position for later use if theres a "naked" , possibly separating a parameter and it is not in a parented part
" save the coma position for later use if there's a "naked" , possibly separating a parameter and it is not in a parented part
if first_coma_break_pos == -1 && current_char == ','
let first_coma_break_pos = len(instruction)
endif
@ -1299,7 +1299,7 @@ function! phpcomplete#GetCurrentInstruction(line_number, col_number, phpbegin) "
" there were a "naked" coma in the instruction
if first_coma_break_pos != -1
if instruction !~? '^use' && instruction !~? '^class' " use ... statements and class delcarations should not be broken up by comas
if instruction !~? '^use' && instruction !~? '^class' " use ... statements and class declarations should not be broken up by comas
let pos = (-1 * first_coma_break_pos) + 1
let instruction = instruction[pos :]
endif
@ -1311,7 +1311,7 @@ function! phpcomplete#GetCurrentInstruction(line_number, col_number, phpbegin) "
" clear everything up until the first (
let instruction = substitute(instruction, '^\(if\|while\|foreach\|for\)\s*(\s*', '', '')
" lets iterate trough the instruction until we can find the pair for the opening (
" lets iterate through the instruction until we can find the pair for the opening (
let i = 0
let depth = 1
while i < len(instruction)
@ -1419,7 +1419,7 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
let parts = split(substitute(type, '^\\', '', ''), '\')
let class_candidate_namespace = join(parts[0:-2], '\')
let classname_candidate = parts[-1]
" check for renamed namepsace in imports
" check for renamed namespace in imports
if has_key(classstructure.imports, class_candidate_namespace)
let class_candidate_namespace = classstructure.imports[class_candidate_namespace].name
endif
@ -2018,7 +2018,7 @@ function! phpcomplete#GetCachedClassContents(classlocation, class_name) " {{{
if getftime(classstructure.file) != classstructure.mtime
let valid = 0
" we could break here, but the time required for checking probably worth
" the the memory we can free by checking every file in the cached hirearchy
" the the memory we can free by checking every file in the cached hierarchy
call phpcomplete#ClearCachedClassContents(classstructure.file)
endif
endfor
@ -2032,7 +2032,7 @@ function! phpcomplete#GetCachedClassContents(classlocation, class_name) " {{{
call remove(s:cache_classstructures, cache_key)
call phpcomplete#ClearCachedClassContents(full_file_path)
" fall trough for the read from files path
" fall through for the read from files path
endif
else
call phpcomplete#ClearCachedClassContents(full_file_path)
@ -2141,7 +2141,7 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
let l = lnum
let search_line = trait_line
" add lines from the file until theres no ';' in them
" add lines from the file until there's no ';' in them
while search_line !~? ';' && l > 0
" file lines are reversed so we need to go backwards
let l += 1
@ -2573,7 +2573,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let search_line = line
let use_line = line
" add lines from the file until theres no ';' in them
" add lines from the file until there's no ';' in them
while search_line !~? ';' && l > 0
" file lines are reversed so we need to go backwards
let l -= 1
@ -2605,7 +2605,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
" find kind flags from tags or built in methods for the objects we extracted
" they can be either classes, interfaces or namespaces, no other thing is importable in php
for [key, import] in items(imports)
" if theres a \ in the name we have it's definitely not a built in thing, look for tags
" if there's a \ in the name we have it's definitely not a built in thing, look for tags
if import.name =~ '\\'
let patched_ctags_detected = 0
let [classname, namespace_for_classes] = phpcomplete#ExpandClassName(import.name, '\', {})
@ -2662,10 +2662,10 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let import['kind'] = 'i'
let import['builtin'] = 1
else
" or can be a tag with exactly matchign name
" or can be a tag with exactly matching name
let tags = phpcomplete#GetTaglist('^'.import['name'].'$')
for tag in tags
" search for the first matchin namespace, class, interface with no namespace
" search for the first matching namespace, class, interface with no namespace
if !has_key(tag, 'namespace') && (tag.kind == 'n' || tag.kind == 'c' || tag.kind == 'i' || tag.kind == 't')
call extend(import, tag)
let import['builtin'] = 0
@ -2883,7 +2883,7 @@ for [ext, data] in items(php_builtin['functions'])
call extend(g:php_builtin_functions, data)
endfor
" Built in classs
" Built in class
let g:php_builtin_classes = {}
for [ext, data] in items(php_builtin['classes'])
call extend(g:php_builtin_classes, data)
@ -2901,10 +2901,10 @@ for [ext, data] in items(php_builtin['constants'])
call extend(g:php_constants, data)
endfor
" When the classname not found or found but the tags dosen't contain that
" class we will try to complate any method of any builtin class. To speed up
" When the classname not found or found but the tags doesn't contain that
" class we will try to complete any method of any builtin class. To speed up
" that lookup we compile a 'ClassName::MethodName':'info' dictionary from the
" builtin class informations
" builtin class information
let g:php_builtin_object_functions = {}
" When completing for 'everyting imaginable' (no class context, not a

View File

@ -173,7 +173,7 @@ class Completer(object):
pass
if len(arg_text) == 0:
# The doc string sometimes contains the function signature
# this works for alot of C modules that are part of the
# this works for a lot of C modules that are part of the
# standard library
doc = func_obj.__doc__
if doc:

View File

@ -191,7 +191,7 @@ class Completer(object):
pass
if len(arg_text) == 0:
# The doc string sometimes contains the function signature
# this works for alot of C modules that are part of the
# this works for a lot of C modules that are part of the
# standard library
doc = func_obj.__doc__
if doc:

View File

@ -17,7 +17,7 @@
" and complete it.
"
" Version 16.0 (Dec 2015)
" - NF: If reseting the cache and table, procedure or view completion
" - NF: If resetting the cache and table, procedure or view completion
" had been used via dbext, have dbext delete or recreate the
" dictionary so that new objects are picked up for the
" next completion.
@ -554,7 +554,7 @@ function! sqlcomplete#PreCacheSyntax(...)
let syn_group_arr = g:omni_sql_precache_syntax_groups
endif
" For each group specified in the list, precache all
" the sytnax items.
" the syntax items.
if !empty(syn_group_arr)
for group_name in syn_group_arr
let syn_items = extend( syn_items, s:SQLCGetSyntaxList(group_name) )
@ -577,7 +577,7 @@ function! sqlcomplete#ResetCacheSyntax(...)
let syn_group_arr = g:omni_sql_precache_syntax_groups
endif
" For each group specified in the list, precache all
" the sytnax items.
" the syntax items.
if !empty(syn_group_arr)
for group_name in syn_group_arr
let list_idx = index(s:syn_list, group_name, 0, &ignorecase)
@ -617,7 +617,7 @@ function! sqlcomplete#DrillIntoTable()
else
" If the popup is not visible, simple perform the normal
" key behaviour.
" Must use exec since they key must be preceeded by "\"
" Must use exec since the key must be preceded by "\"
" or feedkeys will simply push each character of the string
" rather than the "key press".
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_right.'", "n")'
@ -634,7 +634,7 @@ function! sqlcomplete#DrillOutOfColumns()
else
" If the popup is not visible, simple perform the normal
" key behaviour.
" Must use exec since they key must be preceeded by "\"
" Must use exec since the key must be preceded by "\"
" or feedkeys will simply push each character of the string
" rather than the "key press".
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_left.'", "n")'
@ -843,7 +843,7 @@ function! s:SQLCGetColumns(table_name, list_type)
let curline = line(".")
let curcol = col(".")
" Do not let searchs wrap
" Do not let searches wrap
setlocal nowrapscan
" If . was entered, look at the word just before the .
" We are looking for something like this:
@ -863,7 +863,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" Search forward until one of the following:
" 1. Another select/update/delete statement
" 2. A ; at the end of a line (the delimiter)
" 3. The end of the file (incase no delimiter)
" 3. The end of the file (in case no delimiter)
" Yank the visually selected text into the "y register.
exec 'silent! normal! vl/\c\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'

View File

@ -778,7 +778,7 @@ fun! tar#Vimuntar(...)
elseif executable("gzip")
silent exe "!gzip -d ".shellescape(tartail)
else
echoerr "unable to decompress<".tartail."> on this sytem"
echoerr "unable to decompress<".tartail."> on this system"
if simplify(curdir) != simplify(tarhome)
" remove decompressed tarball, restore directory
" call Decho("delete(".tartail.".tar)")

View File

@ -693,7 +693,7 @@ func! tohtml#GetUserSettings() "{{{
let user_settings = {}
" Define the correct option if the old option name exists and we haven't
" already defined the correct one. Maybe I'll put out a warnig message about
" already defined the correct one. Maybe I'll put out a warning message about
" this sometime and remove the old option entirely at some even later time,
" but for now just silently accept the old option.
if exists('g:use_xhtml') && !exists("g:html_use_xhtml")

View File

@ -199,7 +199,7 @@ function! xmlcomplete#CompleteTags(findstart, base)
" 1. Events attributes
if context =~ '\s'
" If attr contains =\s*[\"'] we catched value of attribute
" If attr contains =\s*[\"'] we catch value of attribute
if attr =~ "=\s*[\"']" || attr =~ "=\s*$"
" Let do attribute specific completion
let attrname = matchstr(attr, '.*\ze\s*=')

View File

@ -1,7 +1,7 @@
" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
" Date: Jan 07, 2020
" Version: 31
" Date: Nov 08, 2021
" Version: 32
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
@ -20,7 +20,7 @@
if &cp || exists("g:loaded_zip")
finish
endif
let g:loaded_zip= "v31"
let g:loaded_zip= "v32"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of zip needs vim 7.2 or later"
@ -81,7 +81,7 @@ fun! zip#Browse(zipfile)
" sanity checks
if !exists("*fnameescape")
if &verbose > 1
echoerr "the zip plugin is not available (your vim doens't support fnameescape())"
echoerr "the zip plugin is not available (your vim doesn't support fnameescape())"
endif
return
endif
@ -115,7 +115,13 @@ fun! zip#Browse(zipfile)
setlocal bufhidden=hide
setlocal nobuflisted
setlocal nowrap
set ft=tar
" Oct 12, 2021: need to re-use Bram's syntax/tar.vim.
" Setting the filetype to zip doesn't do anything (currently),
" but it is perhaps less confusing to curious perusers who do
" a :echo &ft
setf zip
run! syntax/tar.vim
" give header
call append(0, ['" zip.vim version '.g:loaded_zip,
@ -187,8 +193,8 @@ fun! s:ZipBrowseSelect()
wincmd _
endif
let s:zipfile_{winnr()}= curfile
" call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
exe "noswapfile e ".fnameescape("zipfile:".zipfile.'::'.fname)
" call Decho("exe e ".fnameescape("zipfile://".zipfile.'::'.fname))
exe "noswapfile e ".fnameescape("zipfile://".zipfile.'::'.fname)
filetype detect
let &report= repkeep
@ -203,11 +209,11 @@ fun! zip#Read(fname,mode)
set report=10
if has("unix")
let zipfile = substitute(a:fname,'zipfile:\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'zipfile:.\{-}::\([^\\].*\)$','\1','')
let zipfile = substitute(a:fname,'zipfile://\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'zipfile://.\{-}::\([^\\].*\)$','\1','')
else
let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
let zipfile = substitute(a:fname,'^.\{-}zipfile://\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
let fname = substitute(fname, '[', '[[]', 'g')
endif
" call Decho("zipfile<".zipfile.">")
@ -224,7 +230,7 @@ fun! zip#Read(fname,mode)
" the following code does much the same thing as
" exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
" but allows zipfile:... entries in quickfix lists
" but allows zipfile://... entries in quickfix lists
let temp = tempname()
" call Decho("using temp file<".temp.">")
let fn = expand('%:p')
@ -296,11 +302,11 @@ fun! zip#Write(fname)
" call Decho("current directory now: ".getcwd())
if has("unix")
let zipfile = substitute(a:fname,'zipfile:\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'zipfile:.\{-}::\([^\\].*\)$','\1','')
let zipfile = substitute(a:fname,'zipfile://\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'zipfile://.\{-}::\([^\\].*\)$','\1','')
else
let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
let zipfile = substitute(a:fname,'^.\{-}zipfile://\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
endif
" call Decho("zipfile<".zipfile.">")
" call Decho("fname <".fname.">")

View File

@ -87,4 +87,5 @@ please check the following items:
- In the GUI, is it easy to find the cursor, also in a file with lots of
syntax highlighting?
- Do not use hard coded escape sequences, these will not work in other
terminals. Always use color names or #RRGGBB for the GUI.
terminals. Always use color names or #RRGGBB for the GUI. See v:colornames
for details on how to define your own color names.

View File

@ -0,0 +1,166 @@
" Maintainer: Drew Vogel <dvogel@sidejump.org>
" Last Change: 2021 Jul 25
" Similar in spirit to rgb.txt, this plugin establishes a human-friendly name
" for every color listed in the CSS standard:
"
" https://www.w3.org/TR/css-color-3/
let s:keepcpo= &cpo
set cpo&vim
call extend(v:colornames, {
\ 'css_black': '#000000',
\ 'css_silver': '#c0c0c0',
\ 'css_gray': '#808080',
\ 'css_white': '#FFFFFF',
\ 'css_maroon': '#800000',
\ 'css_red': '#FF0000',
\ 'css_purple': '#800080',
\ 'css_fuchsia': '#FF00FF',
\ 'css_green': '#008000',
\ 'css_lime': '#00FF00',
\ 'css_olive': '#808000',
\ 'css_yellow': '#FFFF00',
\ 'css_navy': '#000080',
\ 'css_blue': '#0000FF',
\ 'css_teal': '#008080',
\ 'css_aqua': '#00FFFF',
\
\ 'css_aliceblue': '#f0f8ff',
\ 'css_antiquewhite': '#faebd7',
\ 'css_aquamarine': '#7fffd4',
\ 'css_azure': '#f0ffff',
\ 'css_beige': '#f5f5dc',
\ 'css_bisque': '#ffe4c4',
\ 'css_blanchedalmond': '#ffebcd',
\ 'css_blueviolet': '#8a2be2',
\ 'css_brown': '#a52a2a',
\ 'css_burlywood': '#deb887',
\ 'css_cadetblue': '#5f9ea0',
\ 'css_chartreuse': '#7fff00',
\ 'css_chocolate': '#d2691e',
\ 'css_coral': '#ff7f50',
\ 'css_cornflowerblue': '#6495ed',
\ 'css_cornsilk': '#fff8dc',
\ 'css_crimson': '#dc143c',
\ 'css_cyan': '#00ffff',
\ 'css_darkblue': '#00008b',
\ 'css_darkcyan': '#008b8b',
\ 'css_darkgoldenrod': '#b8860b',
\ 'css_darkgray': '#a9a9a9',
\ 'css_darkgreen': '#006400',
\ 'css_darkgrey': '#a9a9a9',
\ 'css_darkkhaki': '#bdb76b',
\ 'css_darkmagenta': '#8b008b',
\ 'css_darkolivegreen': '#556b2f',
\ 'css_darkorange': '#ff8c00',
\ 'css_darkorchid': '#9932cc',
\ 'css_darkred': '#8b0000',
\ 'css_darksalmon': '#e9967a',
\ 'css_darkseagreen': '#8fbc8f',
\ 'css_darkslateblue': '#483d8b',
\ 'css_darkslategray': '#2f4f4f',
\ 'css_darkslategrey': '#2f4f4f',
\ 'css_darkturquoise': '#00ced1',
\ 'css_darkviolet': '#9400d3',
\ 'css_deeppink': '#ff1493',
\ 'css_deepskyblue': '#00bfff',
\ 'css_dimgray': '#696969',
\ 'css_dimgrey': '#696969',
\ 'css_dodgerblue': '#1e90ff',
\ 'css_firebrick': '#b22222',
\ 'css_floralwhite': '#fffaf0',
\ 'css_forestgreen': '#228b22',
\ 'css_gainsboro': '#dcdcdc',
\ 'css_ghostwhite': '#f8f8ff',
\ 'css_gold': '#ffd700',
\ 'css_goldenrod': '#daa520',
\ 'css_greenyellow': '#adff2f',
\ 'css_grey': '#808080',
\ 'css_honeydew': '#f0fff0',
\ 'css_hotpink': '#ff69b4',
\ 'css_indianred': '#cd5c5c',
\ 'css_indigo': '#4b0082',
\ 'css_ivory': '#fffff0',
\ 'css_khaki': '#f0e68c',
\ 'css_lavender': '#e6e6fa',
\ 'css_lavenderblush': '#fff0f5',
\ 'css_lawngreen': '#7cfc00',
\ 'css_lemonchiffon': '#fffacd',
\ 'css_lightblue': '#add8e6',
\ 'css_lightcoral': '#f08080',
\ 'css_lightcyan': '#e0ffff',
\ 'css_lightgoldenrodyellow': '#fafad2',
\ 'css_lightgray': '#d3d3d3',
\ 'css_lightgreen': '#90ee90',
\ 'css_lightgrey': '#d3d3d3',
\ 'css_lightpink': '#ffb6c1',
\ 'css_lightsalmon': '#ffa07a',
\ 'css_lightseagreen': '#20b2aa',
\ 'css_lightskyblue': '#87cefa',
\ 'css_lightslategray': '#778899',
\ 'css_lightslategrey': '#778899',
\ 'css_lightsteelblue': '#b0c4de',
\ 'css_lightyellow': '#ffffe0',
\ 'css_limegreen': '#32cd32',
\ 'css_linen': '#faf0e6',
\ 'css_magenta': '#ff00ff',
\ 'css_mediumaquamarine': '#66cdaa',
\ 'css_mediumblue': '#0000cd',
\ 'css_mediumorchid': '#ba55d3',
\ 'css_mediumpurple': '#9370db',
\ 'css_mediumseagreen': '#3cb371',
\ 'css_mediumslateblue': '#7b68ee',
\ 'css_mediumspringgreen': '#00fa9a',
\ 'css_mediumturquoise': '#48d1cc',
\ 'css_mediumvioletred': '#c71585',
\ 'css_midnightblue': '#191970',
\ 'css_mintcream': '#f5fffa',
\ 'css_mistyrose': '#ffe4e1',
\ 'css_moccasin': '#ffe4b5',
\ 'css_navajowhite': '#ffdead',
\ 'css_oldlace': '#fdf5e6',
\ 'css_olivedrab': '#6b8e23',
\ 'css_orange': '#ffa500',
\ 'css_orangered': '#ff4500',
\ 'css_orchid': '#da70d6',
\ 'css_palegoldenrod': '#eee8aa',
\ 'css_palegreen': '#98fb98',
\ 'css_paleturquoise': '#afeeee',
\ 'css_palevioletred': '#db7093',
\ 'css_papayawhip': '#ffefd5',
\ 'css_peachpuff': '#ffdab9',
\ 'css_peru': '#cd853f',
\ 'css_pink': '#ffc0cb',
\ 'css_plum': '#dda0dd',
\ 'css_powderblue': '#b0e0e6',
\ 'css_rosybrown': '#bc8f8f',
\ 'css_royalblue': '#4169e1',
\ 'css_saddlebrown': '#8b4513',
\ 'css_salmon': '#fa8072',
\ 'css_sandybrown': '#f4a460',
\ 'css_seagreen': '#2e8b57',
\ 'css_seashell': '#fff5ee',
\ 'css_sienna': '#a0522d',
\ 'css_skyblue': '#87ceeb',
\ 'css_slateblue': '#6a5acd',
\ 'css_slategray': '#708090',
\ 'css_slategrey': '#708090',
\ 'css_snow': '#fffafa',
\ 'css_springgreen': '#00ff7f',
\ 'css_steelblue': '#4682b4',
\ 'css_tan': '#d2b48c',
\ 'css_thistle': '#d8bfd8',
\ 'css_tomato': '#ff6347',
\ 'css_turquoise': '#40e0d0',
\ 'css_violet': '#ee82ee',
\ 'css_wheat': '#f5deb3',
\ 'css_whitesmoke': '#f5f5f5',
\ 'css_yellowgreen': '#9acd32',
\ }, 'keep')
let &cpo= s:keepcpo
unlet s:keepcpo
"vim: sw=4

View File

@ -0,0 +1,801 @@
" Maintainer: Drew Vogel <dvogel@sidejump.org>
" Last Change: 2021 Jul 25
"
" Replaced rgb.txt as the source of de facto standard color names. This is
" sourced each time the colorscheme command is run. It is also sourced each
" time the highlight command fails to recognize a gui color. You can override
" these colors by introducing a new colors/lists/default.vim file earlier in
" the runtimepath.
let s:keepcpo= &cpo
set cpo&vim
call extend(v:colornames, {
\ 'snow': '#fffafa',
\ 'ghost white': '#f8f8ff',
\ 'ghostwhite': '#f8f8ff',
\ 'white smoke': '#f5f5f5',
\ 'whitesmoke': '#f5f5f5',
\ 'gainsboro': '#dcdcdc',
\ 'floral white': '#fffaf0',
\ 'floralwhite': '#fffaf0',
\ 'old lace': '#fdf5e6',
\ 'oldlace': '#fdf5e6',
\ 'linen': '#faf0e6',
\ 'antique white': '#faebd7',
\ 'antiquewhite': '#faebd7',
\ 'papaya whip': '#ffefd5',
\ 'papayawhip': '#ffefd5',
\ 'blanched almond': '#ffebcd',
\ 'blanchedalmond': '#ffebcd',
\ 'bisque': '#ffe4c4',
\ 'peach puff': '#ffdab9',
\ 'peachpuff': '#ffdab9',
\ 'navajo white': '#ffdead',
\ 'navajowhite': '#ffdead',
\ 'moccasin': '#ffe4b5',
\ 'cornsilk': '#fff8dc',
\ 'ivory': '#fffff0',
\ 'lemon chiffon': '#fffacd',
\ 'lemonchiffon': '#fffacd',
\ 'seashell': '#fff5ee',
\ 'honeydew': '#f0fff0',
\ 'mint cream': '#f5fffa',
\ 'mintcream': '#f5fffa',
\ 'azure': '#f0ffff',
\ 'alice blue': '#f0f8ff',
\ 'aliceblue': '#f0f8ff',
\ 'lavender': '#e6e6fa',
\ 'lavender blush': '#fff0f5',
\ 'lavenderblush': '#fff0f5',
\ 'misty rose': '#ffe4e1',
\ 'mistyrose': '#ffe4e1',
\ 'white': '#ffffff',
\ 'black': '#000000',
\ 'dark slate gray': '#2f4f4f',
\ 'darkslategray': '#2f4f4f',
\ 'dark slate grey': '#2f4f4f',
\ 'darkslategrey': '#2f4f4f',
\ 'dim gray': '#696969',
\ 'dimgray': '#696969',
\ 'dim grey': '#696969',
\ 'dimgrey': '#696969',
\ 'slate gray': '#708090',
\ 'slategray': '#708090',
\ 'slate grey': '#708090',
\ 'slategrey': '#708090',
\ 'light slate gray': '#778899',
\ 'lightslategray': '#778899',
\ 'light slate grey': '#778899',
\ 'lightslategrey': '#778899',
\ 'gray': '#bebebe',
\ 'grey': '#bebebe',
\ 'x11 gray': '#bebebe',
\ 'x11gray': '#bebebe',
\ 'x11 grey': '#bebebe',
\ 'x11grey': '#bebebe',
\ 'web gray': '#808080',
\ 'webgray': '#808080',
\ 'web grey': '#808080',
\ 'webgrey': '#808080',
\ 'light grey': '#d3d3d3',
\ 'lightgrey': '#d3d3d3',
\ 'light gray': '#d3d3d3',
\ 'lightgray': '#d3d3d3',
\ 'midnight blue': '#191970',
\ 'midnightblue': '#191970',
\ 'navy': '#000080',
\ 'navy blue': '#000080',
\ 'navyblue': '#000080',
\ 'cornflower blue': '#6495ed',
\ 'cornflowerblue': '#6495ed',
\ 'dark slate blue': '#483d8b',
\ 'darkslateblue': '#483d8b',
\ 'slate blue': '#6a5acd',
\ 'slateblue': '#6a5acd',
\ 'medium slate blue': '#7b68ee',
\ 'mediumslateblue': '#7b68ee',
\ 'light slate blue': '#8470ff',
\ 'lightslateblue': '#8470ff',
\ 'medium blue': '#0000cd',
\ 'mediumblue': '#0000cd',
\ 'royal blue': '#4169e1',
\ 'royalblue': '#4169e1',
\ 'blue': '#0000ff',
\ 'dodger blue': '#1e90ff',
\ 'dodgerblue': '#1e90ff',
\ 'deep sky blue': '#00bfff',
\ 'deepskyblue': '#00bfff',
\ 'sky blue': '#87ceeb',
\ 'skyblue': '#87ceeb',
\ 'light sky blue': '#87cefa',
\ 'lightskyblue': '#87cefa',
\ 'steel blue': '#4682b4',
\ 'steelblue': '#4682b4',
\ 'light steel blue': '#b0c4de',
\ 'lightsteelblue': '#b0c4de',
\ 'light blue': '#add8e6',
\ 'lightblue': '#add8e6',
\ 'powder blue': '#b0e0e6',
\ 'powderblue': '#b0e0e6',
\ 'pale turquoise': '#afeeee',
\ 'paleturquoise': '#afeeee',
\ 'dark turquoise': '#00ced1',
\ 'darkturquoise': '#00ced1',
\ 'medium turquoise': '#48d1cc',
\ 'mediumturquoise': '#48d1cc',
\ 'turquoise': '#40e0d0',
\ 'cyan': '#00ffff',
\ 'aqua': '#00ffff',
\ 'light cyan': '#e0ffff',
\ 'lightcyan': '#e0ffff',
\ 'cadet blue': '#5f9ea0',
\ 'cadetblue': '#5f9ea0',
\ 'medium aquamarine': '#66cdaa',
\ 'mediumaquamarine': '#66cdaa',
\ 'aquamarine': '#7fffd4',
\ 'dark green': '#006400',
\ 'darkgreen': '#006400',
\ 'dark olive green': '#556b2f',
\ 'darkolivegreen': '#556b2f',
\ 'dark sea green': '#8fbc8f',
\ 'darkseagreen': '#8fbc8f',
\ 'sea green': '#2e8b57',
\ 'seagreen': '#2e8b57',
\ 'medium sea green': '#3cb371',
\ 'mediumseagreen': '#3cb371',
\ 'light sea green': '#20b2aa',
\ 'lightseagreen': '#20b2aa',
\ 'pale green': '#98fb98',
\ 'palegreen': '#98fb98',
\ 'spring green': '#00ff7f',
\ 'springgreen': '#00ff7f',
\ 'lawn green': '#7cfc00',
\ 'lawngreen': '#7cfc00',
\ 'green': '#00ff00',
\ 'lime': '#00ff00',
\ 'x11 green': '#00ff00',
\ 'x11green': '#00ff00',
\ 'web green': '#008000',
\ 'webgreen': '#008000',
\ 'chartreuse': '#7fff00',
\ 'medium spring green': '#00fa9a',
\ 'mediumspringgreen': '#00fa9a',
\ 'green yellow': '#adff2f',
\ 'greenyellow': '#adff2f',
\ 'lime green': '#32cd32',
\ 'limegreen': '#32cd32',
\ 'yellow green': '#9acd32',
\ 'yellowgreen': '#9acd32',
\ 'forest green': '#228b22',
\ 'forestgreen': '#228b22',
\ 'olive drab': '#6b8e23',
\ 'olivedrab': '#6b8e23',
\ 'dark khaki': '#bdb76b',
\ 'darkkhaki': '#bdb76b',
\ 'khaki': '#f0e68c',
\ 'pale goldenrod': '#eee8aa',
\ 'palegoldenrod': '#eee8aa',
\ 'light goldenrod yellow': '#fafad2',
\ 'lightgoldenrodyellow': '#fafad2',
\ 'light yellow': '#ffffe0',
\ 'lightyellow': '#ffffe0',
\ 'yellow': '#ffff00',
\ 'gold': '#ffd700',
\ 'light goldenrod': '#eedd82',
\ 'lightgoldenrod': '#eedd82',
\ 'goldenrod': '#daa520',
\ 'dark goldenrod': '#b8860b',
\ 'darkgoldenrod': '#b8860b',
\ 'rosy brown': '#bc8f8f',
\ 'rosybrown': '#bc8f8f',
\ 'indian red': '#cd5c5c',
\ 'indianred': '#cd5c5c',
\ 'saddle brown': '#8b4513',
\ 'saddlebrown': '#8b4513',
\ 'sienna': '#a0522d',
\ 'peru': '#cd853f',
\ 'burlywood': '#deb887',
\ 'beige': '#f5f5dc',
\ 'wheat': '#f5deb3',
\ 'sandy brown': '#f4a460',
\ 'sandybrown': '#f4a460',
\ 'tan': '#d2b48c',
\ 'chocolate': '#d2691e',
\ 'firebrick': '#b22222',
\ 'brown': '#a52a2a',
\ 'dark salmon': '#e9967a',
\ 'darksalmon': '#e9967a',
\ 'salmon': '#fa8072',
\ 'light salmon': '#ffa07a',
\ 'lightsalmon': '#ffa07a',
\ 'orange': '#ffa500',
\ 'dark orange': '#ff8c00',
\ 'darkorange': '#ff8c00',
\ 'coral': '#ff7f50',
\ 'light coral': '#f08080',
\ 'lightcoral': '#f08080',
\ 'tomato': '#ff6347',
\ 'orange red': '#ff4500',
\ 'orangered': '#ff4500',
\ 'red': '#ff0000',
\ 'hot pink': '#ff69b4',
\ 'hotpink': '#ff69b4',
\ 'deep pink': '#ff1493',
\ 'deeppink': '#ff1493',
\ 'pink': '#ffc0cb',
\ 'light pink': '#ffb6c1',
\ 'lightpink': '#ffb6c1',
\ 'pale violet red': '#db7093',
\ 'palevioletred': '#db7093',
\ 'maroon': '#b03060',
\ 'x11 maroon': '#b03060',
\ 'x11maroon': '#b03060',
\ 'web maroon': '#800000',
\ 'webmaroon': '#800000',
\ 'medium violet red': '#c71585',
\ 'mediumvioletred': '#c71585',
\ 'violet red': '#d02090',
\ 'violetred': '#d02090',
\ 'magenta': '#ff00ff',
\ 'fuchsia': '#ff00ff',
\ 'violet': '#ee82ee',
\ 'plum': '#dda0dd',
\ 'orchid': '#da70d6',
\ 'medium orchid': '#ba55d3',
\ 'mediumorchid': '#ba55d3',
\ 'dark orchid': '#9932cc',
\ 'darkorchid': '#9932cc',
\ 'dark violet': '#9400d3',
\ 'darkviolet': '#9400d3',
\ 'blue violet': '#8a2be2',
\ 'blueviolet': '#8a2be2',
\ 'purple': '#a020f0',
\ 'x11 purple': '#a020f0',
\ 'x11purple': '#a020f0',
\ 'web purple': '#800080',
\ 'webpurple': '#800080',
\ 'medium purple': '#9370db',
\ 'mediumpurple': '#9370db',
\ 'thistle': '#d8bfd8',
\ 'snow1': '#fffafa',
\ 'snow2': '#eee9e9',
\ 'snow3': '#cdc9c9',
\ 'snow4': '#8b8989',
\ 'seashell1': '#fff5ee',
\ 'seashell2': '#eee5de',
\ 'seashell3': '#cdc5bf',
\ 'seashell4': '#8b8682',
\ 'antiquewhite1': '#ffefdb',
\ 'antiquewhite2': '#eedfcc',
\ 'antiquewhite3': '#cdc0b0',
\ 'antiquewhite4': '#8b8378',
\ 'bisque1': '#ffe4c4',
\ 'bisque2': '#eed5b7',
\ 'bisque3': '#cdb79e',
\ 'bisque4': '#8b7d6b',
\ 'peachpuff1': '#ffdab9',
\ 'peachpuff2': '#eecbad',
\ 'peachpuff3': '#cdaf95',
\ 'peachpuff4': '#8b7765',
\ 'navajowhite1': '#ffdead',
\ 'navajowhite2': '#eecfa1',
\ 'navajowhite3': '#cdb38b',
\ 'navajowhite4': '#8b795e',
\ 'lemonchiffon1': '#fffacd',
\ 'lemonchiffon2': '#eee9bf',
\ 'lemonchiffon3': '#cdc9a5',
\ 'lemonchiffon4': '#8b8970',
\ 'cornsilk1': '#fff8dc',
\ 'cornsilk2': '#eee8cd',
\ 'cornsilk3': '#cdc8b1',
\ 'cornsilk4': '#8b8878',
\ 'ivory1': '#fffff0',
\ 'ivory2': '#eeeee0',
\ 'ivory3': '#cdcdc1',
\ 'ivory4': '#8b8b83',
\ 'honeydew1': '#f0fff0',
\ 'honeydew2': '#e0eee0',
\ 'honeydew3': '#c1cdc1',
\ 'honeydew4': '#838b83',
\ 'lavenderblush1': '#fff0f5',
\ 'lavenderblush2': '#eee0e5',
\ 'lavenderblush3': '#cdc1c5',
\ 'lavenderblush4': '#8b8386',
\ 'mistyrose1': '#ffe4e1',
\ 'mistyrose2': '#eed5d2',
\ 'mistyrose3': '#cdb7b5',
\ 'mistyrose4': '#8b7d7b',
\ 'azure1': '#f0ffff',
\ 'azure2': '#e0eeee',
\ 'azure3': '#c1cdcd',
\ 'azure4': '#838b8b',
\ 'slateblue1': '#836fff',
\ 'slateblue2': '#7a67ee',
\ 'slateblue3': '#6959cd',
\ 'slateblue4': '#473c8b',
\ 'royalblue1': '#4876ff',
\ 'royalblue2': '#436eee',
\ 'royalblue3': '#3a5fcd',
\ 'royalblue4': '#27408b',
\ 'blue1': '#0000ff',
\ 'blue2': '#0000ee',
\ 'blue3': '#0000cd',
\ 'blue4': '#00008b',
\ 'dodgerblue1': '#1e90ff',
\ 'dodgerblue2': '#1c86ee',
\ 'dodgerblue3': '#1874cd',
\ 'dodgerblue4': '#104e8b',
\ 'steelblue1': '#63b8ff',
\ 'steelblue2': '#5cacee',
\ 'steelblue3': '#4f94cd',
\ 'steelblue4': '#36648b',
\ 'deepskyblue1': '#00bfff',
\ 'deepskyblue2': '#00b2ee',
\ 'deepskyblue3': '#009acd',
\ 'deepskyblue4': '#00688b',
\ 'skyblue1': '#87ceff',
\ 'skyblue2': '#7ec0ee',
\ 'skyblue3': '#6ca6cd',
\ 'skyblue4': '#4a708b',
\ 'lightskyblue1': '#b0e2ff',
\ 'lightskyblue2': '#a4d3ee',
\ 'lightskyblue3': '#8db6cd',
\ 'lightskyblue4': '#607b8b',
\ 'slategray1': '#c6e2ff',
\ 'slategray2': '#b9d3ee',
\ 'slategray3': '#9fb6cd',
\ 'slategray4': '#6c7b8b',
\ 'lightsteelblue1': '#cae1ff',
\ 'lightsteelblue2': '#bcd2ee',
\ 'lightsteelblue3': '#a2b5cd',
\ 'lightsteelblue4': '#6e7b8b',
\ 'lightblue1': '#bfefff',
\ 'lightblue2': '#b2dfee',
\ 'lightblue3': '#9ac0cd',
\ 'lightblue4': '#68838b',
\ 'lightcyan1': '#e0ffff',
\ 'lightcyan2': '#d1eeee',
\ 'lightcyan3': '#b4cdcd',
\ 'lightcyan4': '#7a8b8b',
\ 'paleturquoise1': '#bbffff',
\ 'paleturquoise2': '#aeeeee',
\ 'paleturquoise3': '#96cdcd',
\ 'paleturquoise4': '#668b8b',
\ 'cadetblue1': '#98f5ff',
\ 'cadetblue2': '#8ee5ee',
\ 'cadetblue3': '#7ac5cd',
\ 'cadetblue4': '#53868b',
\ 'turquoise1': '#00f5ff',
\ 'turquoise2': '#00e5ee',
\ 'turquoise3': '#00c5cd',
\ 'turquoise4': '#00868b',
\ 'cyan1': '#00ffff',
\ 'cyan2': '#00eeee',
\ 'cyan3': '#00cdcd',
\ 'cyan4': '#008b8b',
\ 'darkslategray1': '#97ffff',
\ 'darkslategray2': '#8deeee',
\ 'darkslategray3': '#79cdcd',
\ 'darkslategray4': '#528b8b',
\ 'aquamarine1': '#7fffd4',
\ 'aquamarine2': '#76eec6',
\ 'aquamarine3': '#66cdaa',
\ 'aquamarine4': '#458b74',
\ 'darkseagreen1': '#c1ffc1',
\ 'darkseagreen2': '#b4eeb4',
\ 'darkseagreen3': '#9bcd9b',
\ 'darkseagreen4': '#698b69',
\ 'seagreen1': '#54ff9f',
\ 'seagreen2': '#4eee94',
\ 'seagreen3': '#43cd80',
\ 'seagreen4': '#2e8b57',
\ 'palegreen1': '#9aff9a',
\ 'palegreen2': '#90ee90',
\ 'palegreen3': '#7ccd7c',
\ 'palegreen4': '#548b54',
\ 'springgreen1': '#00ff7f',
\ 'springgreen2': '#00ee76',
\ 'springgreen3': '#00cd66',
\ 'springgreen4': '#008b45',
\ 'green1': '#00ff00',
\ 'green2': '#00ee00',
\ 'green3': '#00cd00',
\ 'green4': '#008b00',
\ 'chartreuse1': '#7fff00',
\ 'chartreuse2': '#76ee00',
\ 'chartreuse3': '#66cd00',
\ 'chartreuse4': '#458b00',
\ 'olivedrab1': '#c0ff3e',
\ 'olivedrab2': '#b3ee3a',
\ 'olivedrab3': '#9acd32',
\ 'olivedrab4': '#698b22',
\ 'darkolivegreen1': '#caff70',
\ 'darkolivegreen2': '#bcee68',
\ 'darkolivegreen3': '#a2cd5a',
\ 'darkolivegreen4': '#6e8b3d',
\ 'khaki1': '#fff68f',
\ 'khaki2': '#eee685',
\ 'khaki3': '#cdc673',
\ 'khaki4': '#8b864e',
\ 'lightgoldenrod1': '#ffec8b',
\ 'lightgoldenrod2': '#eedc82',
\ 'lightgoldenrod3': '#cdbe70',
\ 'lightgoldenrod4': '#8b814c',
\ 'lightyellow1': '#ffffe0',
\ 'lightyellow2': '#eeeed1',
\ 'lightyellow3': '#cdcdb4',
\ 'lightyellow4': '#8b8b7a',
\ 'yellow1': '#ffff00',
\ 'yellow2': '#eeee00',
\ 'yellow3': '#cdcd00',
\ 'yellow4': '#8b8b00',
\ 'gold1': '#ffd700',
\ 'gold2': '#eec900',
\ 'gold3': '#cdad00',
\ 'gold4': '#8b7500',
\ 'goldenrod1': '#ffc125',
\ 'goldenrod2': '#eeb422',
\ 'goldenrod3': '#cd9b1d',
\ 'goldenrod4': '#8b6914',
\ 'darkgoldenrod1': '#ffb90f',
\ 'darkgoldenrod2': '#eead0e',
\ 'darkgoldenrod3': '#cd950c',
\ 'darkgoldenrod4': '#8b6508',
\ 'rosybrown1': '#ffc1c1',
\ 'rosybrown2': '#eeb4b4',
\ 'rosybrown3': '#cd9b9b',
\ 'rosybrown4': '#8b6969',
\ 'indianred1': '#ff6a6a',
\ 'indianred2': '#ee6363',
\ 'indianred3': '#cd5555',
\ 'indianred4': '#8b3a3a',
\ 'sienna1': '#ff8247',
\ 'sienna2': '#ee7942',
\ 'sienna3': '#cd6839',
\ 'sienna4': '#8b4726',
\ 'burlywood1': '#ffd39b',
\ 'burlywood2': '#eec591',
\ 'burlywood3': '#cdaa7d',
\ 'burlywood4': '#8b7355',
\ 'wheat1': '#ffe7ba',
\ 'wheat2': '#eed8ae',
\ 'wheat3': '#cdba96',
\ 'wheat4': '#8b7e66',
\ 'tan1': '#ffa54f',
\ 'tan2': '#ee9a49',
\ 'tan3': '#cd853f',
\ 'tan4': '#8b5a2b',
\ 'chocolate1': '#ff7f24',
\ 'chocolate2': '#ee7621',
\ 'chocolate3': '#cd661d',
\ 'chocolate4': '#8b4513',
\ 'firebrick1': '#ff3030',
\ 'firebrick2': '#ee2c2c',
\ 'firebrick3': '#cd2626',
\ 'firebrick4': '#8b1a1a',
\ 'brown1': '#ff4040',
\ 'brown2': '#ee3b3b',
\ 'brown3': '#cd3333',
\ 'brown4': '#8b2323',
\ 'salmon1': '#ff8c69',
\ 'salmon2': '#ee8262',
\ 'salmon3': '#cd7054',
\ 'salmon4': '#8b4c39',
\ 'lightsalmon1': '#ffa07a',
\ 'lightsalmon2': '#ee9572',
\ 'lightsalmon3': '#cd8162',
\ 'lightsalmon4': '#8b5742',
\ 'orange1': '#ffa500',
\ 'orange2': '#ee9a00',
\ 'orange3': '#cd8500',
\ 'orange4': '#8b5a00',
\ 'darkorange1': '#ff7f00',
\ 'darkorange2': '#ee7600',
\ 'darkorange3': '#cd6600',
\ 'darkorange4': '#8b4500',
\ 'coral1': '#ff7256',
\ 'coral2': '#ee6a50',
\ 'coral3': '#cd5b45',
\ 'coral4': '#8b3e2f',
\ 'tomato1': '#ff6347',
\ 'tomato2': '#ee5c42',
\ 'tomato3': '#cd4f39',
\ 'tomato4': '#8b3626',
\ 'orangered1': '#ff4500',
\ 'orangered2': '#ee4000',
\ 'orangered3': '#cd3700',
\ 'orangered4': '#8b2500',
\ 'red1': '#ff0000',
\ 'red2': '#ee0000',
\ 'red3': '#cd0000',
\ 'red4': '#8b0000',
\ 'deeppink1': '#ff1493',
\ 'deeppink2': '#ee1289',
\ 'deeppink3': '#cd1076',
\ 'deeppink4': '#8b0a50',
\ 'hotpink1': '#ff6eb4',
\ 'hotpink2': '#ee6aa7',
\ 'hotpink3': '#cd6090',
\ 'hotpink4': '#8b3a62',
\ 'pink1': '#ffb5c5',
\ 'pink2': '#eea9b8',
\ 'pink3': '#cd919e',
\ 'pink4': '#8b636c',
\ 'lightpink1': '#ffaeb9',
\ 'lightpink2': '#eea2ad',
\ 'lightpink3': '#cd8c95',
\ 'lightpink4': '#8b5f65',
\ 'palevioletred1': '#ff82ab',
\ 'palevioletred2': '#ee799f',
\ 'palevioletred3': '#cd6889',
\ 'palevioletred4': '#8b475d',
\ 'maroon1': '#ff34b3',
\ 'maroon2': '#ee30a7',
\ 'maroon3': '#cd2990',
\ 'maroon4': '#8b1c62',
\ 'violetred1': '#ff3e96',
\ 'violetred2': '#ee3a8c',
\ 'violetred3': '#cd3278',
\ 'violetred4': '#8b2252',
\ 'magenta1': '#ff00ff',
\ 'magenta2': '#ee00ee',
\ 'magenta3': '#cd00cd',
\ 'magenta4': '#8b008b',
\ 'orchid1': '#ff83fa',
\ 'orchid2': '#ee7ae9',
\ 'orchid3': '#cd69c9',
\ 'orchid4': '#8b4789',
\ 'plum1': '#ffbbff',
\ 'plum2': '#eeaeee',
\ 'plum3': '#cd96cd',
\ 'plum4': '#8b668b',
\ 'mediumorchid1': '#e066ff',
\ 'mediumorchid2': '#d15fee',
\ 'mediumorchid3': '#b452cd',
\ 'mediumorchid4': '#7a378b',
\ 'darkorchid1': '#bf3eff',
\ 'darkorchid2': '#b23aee',
\ 'darkorchid3': '#9a32cd',
\ 'darkorchid4': '#68228b',
\ 'purple1': '#9b30ff',
\ 'purple2': '#912cee',
\ 'purple3': '#7d26cd',
\ 'purple4': '#551a8b',
\ 'mediumpurple1': '#ab82ff',
\ 'mediumpurple2': '#9f79ee',
\ 'mediumpurple3': '#8968cd',
\ 'mediumpurple4': '#5d478b',
\ 'thistle1': '#ffe1ff',
\ 'thistle2': '#eed2ee',
\ 'thistle3': '#cdb5cd',
\ 'thistle4': '#8b7b8b',
\ 'gray0': '#000000',
\ 'grey0': '#000000',
\ 'gray1': '#030303',
\ 'grey1': '#030303',
\ 'gray2': '#050505',
\ 'grey2': '#050505',
\ 'gray3': '#080808',
\ 'grey3': '#080808',
\ 'gray4': '#0a0a0a',
\ 'grey4': '#0a0a0a',
\ 'gray5': '#0d0d0d',
\ 'grey5': '#0d0d0d',
\ 'gray6': '#0f0f0f',
\ 'grey6': '#0f0f0f',
\ 'gray7': '#121212',
\ 'grey7': '#121212',
\ 'gray8': '#141414',
\ 'grey8': '#141414',
\ 'gray9': '#171717',
\ 'grey9': '#171717',
\ 'gray10': '#1a1a1a',
\ 'grey10': '#1a1a1a',
\ 'gray11': '#1c1c1c',
\ 'grey11': '#1c1c1c',
\ 'gray12': '#1f1f1f',
\ 'grey12': '#1f1f1f',
\ 'gray13': '#212121',
\ 'grey13': '#212121',
\ 'gray14': '#242424',
\ 'grey14': '#242424',
\ 'gray15': '#262626',
\ 'grey15': '#262626',
\ 'gray16': '#292929',
\ 'grey16': '#292929',
\ 'gray17': '#2b2b2b',
\ 'grey17': '#2b2b2b',
\ 'gray18': '#2e2e2e',
\ 'grey18': '#2e2e2e',
\ 'gray19': '#303030',
\ 'grey19': '#303030',
\ 'gray20': '#333333',
\ 'grey20': '#333333',
\ 'gray21': '#363636',
\ 'grey21': '#363636',
\ 'gray22': '#383838',
\ 'grey22': '#383838',
\ 'gray23': '#3b3b3b',
\ 'grey23': '#3b3b3b',
\ 'gray24': '#3d3d3d',
\ 'grey24': '#3d3d3d',
\ 'gray25': '#404040',
\ 'grey25': '#404040',
\ 'gray26': '#424242',
\ 'grey26': '#424242',
\ 'gray27': '#454545',
\ 'grey27': '#454545',
\ 'gray28': '#474747',
\ 'grey28': '#474747',
\ 'gray29': '#4a4a4a',
\ 'grey29': '#4a4a4a',
\ 'gray30': '#4d4d4d',
\ 'grey30': '#4d4d4d',
\ 'gray31': '#4f4f4f',
\ 'grey31': '#4f4f4f',
\ 'gray32': '#525252',
\ 'grey32': '#525252',
\ 'gray33': '#545454',
\ 'grey33': '#545454',
\ 'gray34': '#575757',
\ 'grey34': '#575757',
\ 'gray35': '#595959',
\ 'grey35': '#595959',
\ 'gray36': '#5c5c5c',
\ 'grey36': '#5c5c5c',
\ 'gray37': '#5e5e5e',
\ 'grey37': '#5e5e5e',
\ 'gray38': '#616161',
\ 'grey38': '#616161',
\ 'gray39': '#636363',
\ 'grey39': '#636363',
\ 'gray40': '#666666',
\ 'grey40': '#666666',
\ 'gray41': '#696969',
\ 'grey41': '#696969',
\ 'gray42': '#6b6b6b',
\ 'grey42': '#6b6b6b',
\ 'gray43': '#6e6e6e',
\ 'grey43': '#6e6e6e',
\ 'gray44': '#707070',
\ 'grey44': '#707070',
\ 'gray45': '#737373',
\ 'grey45': '#737373',
\ 'gray46': '#757575',
\ 'grey46': '#757575',
\ 'gray47': '#787878',
\ 'grey47': '#787878',
\ 'gray48': '#7a7a7a',
\ 'grey48': '#7a7a7a',
\ 'gray49': '#7d7d7d',
\ 'grey49': '#7d7d7d',
\ 'gray50': '#7f7f7f',
\ 'grey50': '#7f7f7f',
\ 'gray51': '#828282',
\ 'grey51': '#828282',
\ 'gray52': '#858585',
\ 'grey52': '#858585',
\ 'gray53': '#878787',
\ 'grey53': '#878787',
\ 'gray54': '#8a8a8a',
\ 'grey54': '#8a8a8a',
\ 'gray55': '#8c8c8c',
\ 'grey55': '#8c8c8c',
\ 'gray56': '#8f8f8f',
\ 'grey56': '#8f8f8f',
\ 'gray57': '#919191',
\ 'grey57': '#919191',
\ 'gray58': '#949494',
\ 'grey58': '#949494',
\ 'gray59': '#969696',
\ 'grey59': '#969696',
\ 'gray60': '#999999',
\ 'grey60': '#999999',
\ 'gray61': '#9c9c9c',
\ 'grey61': '#9c9c9c',
\ 'gray62': '#9e9e9e',
\ 'grey62': '#9e9e9e',
\ 'gray63': '#a1a1a1',
\ 'grey63': '#a1a1a1',
\ 'gray64': '#a3a3a3',
\ 'grey64': '#a3a3a3',
\ 'gray65': '#a6a6a6',
\ 'grey65': '#a6a6a6',
\ 'gray66': '#a8a8a8',
\ 'grey66': '#a8a8a8',
\ 'gray67': '#ababab',
\ 'grey67': '#ababab',
\ 'gray68': '#adadad',
\ 'grey68': '#adadad',
\ 'gray69': '#b0b0b0',
\ 'grey69': '#b0b0b0',
\ 'gray70': '#b3b3b3',
\ 'grey70': '#b3b3b3',
\ 'gray71': '#b5b5b5',
\ 'grey71': '#b5b5b5',
\ 'gray72': '#b8b8b8',
\ 'grey72': '#b8b8b8',
\ 'gray73': '#bababa',
\ 'grey73': '#bababa',
\ 'gray74': '#bdbdbd',
\ 'grey74': '#bdbdbd',
\ 'gray75': '#bfbfbf',
\ 'grey75': '#bfbfbf',
\ 'gray76': '#c2c2c2',
\ 'grey76': '#c2c2c2',
\ 'gray77': '#c4c4c4',
\ 'grey77': '#c4c4c4',
\ 'gray78': '#c7c7c7',
\ 'grey78': '#c7c7c7',
\ 'gray79': '#c9c9c9',
\ 'grey79': '#c9c9c9',
\ 'gray80': '#cccccc',
\ 'grey80': '#cccccc',
\ 'gray81': '#cfcfcf',
\ 'grey81': '#cfcfcf',
\ 'gray82': '#d1d1d1',
\ 'grey82': '#d1d1d1',
\ 'gray83': '#d4d4d4',
\ 'grey83': '#d4d4d4',
\ 'gray84': '#d6d6d6',
\ 'grey84': '#d6d6d6',
\ 'gray85': '#d9d9d9',
\ 'grey85': '#d9d9d9',
\ 'gray86': '#dbdbdb',
\ 'grey86': '#dbdbdb',
\ 'gray87': '#dedede',
\ 'grey87': '#dedede',
\ 'gray88': '#e0e0e0',
\ 'grey88': '#e0e0e0',
\ 'gray89': '#e3e3e3',
\ 'grey89': '#e3e3e3',
\ 'gray90': '#e5e5e5',
\ 'grey90': '#e5e5e5',
\ 'gray91': '#e8e8e8',
\ 'grey91': '#e8e8e8',
\ 'gray92': '#ebebeb',
\ 'grey92': '#ebebeb',
\ 'gray93': '#ededed',
\ 'grey93': '#ededed',
\ 'gray94': '#f0f0f0',
\ 'grey94': '#f0f0f0',
\ 'gray95': '#f2f2f2',
\ 'grey95': '#f2f2f2',
\ 'gray96': '#f5f5f5',
\ 'grey96': '#f5f5f5',
\ 'gray97': '#f7f7f7',
\ 'grey97': '#f7f7f7',
\ 'gray98': '#fafafa',
\ 'grey98': '#fafafa',
\ 'gray99': '#fcfcfc',
\ 'grey99': '#fcfcfc',
\ 'gray100': '#ffffff',
\ 'grey100': '#ffffff',
\ 'dark grey': '#a9a9a9',
\ 'darkgrey': '#a9a9a9',
\ 'dark gray': '#a9a9a9',
\ 'darkgray': '#a9a9a9',
\ 'dark blue': '#00008b',
\ 'darkblue': '#00008b',
\ 'dark cyan': '#008b8b',
\ 'darkcyan': '#008b8b',
\ 'dark magenta': '#8b008b',
\ 'darkmagenta': '#8b008b',
\ 'dark red': '#8b0000',
\ 'darkred': '#8b0000',
\ 'light green': '#90ee90',
\ 'lightgreen': '#90ee90',
\ 'crimson': '#dc143c',
\ 'indigo': '#4b0082',
\ 'olive': '#808000',
\ 'rebecca purple': '#663399',
\ 'rebeccapurple': '#663399',
\ 'silver': '#c0c0c0',
\ 'teal': '#008080'
\ }, 'keep')
let &cpo= s:keepcpo
unlet s:keepcpo
"vim: sw=4

View File

@ -226,7 +226,13 @@ fu! Result(err)
endif
endfu
call Test_check_colors()
let &cpo = s:save_cpo
unlet s:save_cpo
try
call Test_check_colors()
catch
echohl ErrorMsg
echomsg v:exception
echohl NONE
finally
let &cpo = s:save_cpo
unlet s:save_cpo
endtry

View File

@ -12,6 +12,6 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
" NOTE: compiler must be runned with -vb to write whole source path, not only file
" NOTE: compiler must be run with -vb to write whole source path, not only file
" name.
CompilerSet errorformat=%f(%l\\,%c)\ %m

View File

@ -0,0 +1,16 @@
" scdoc compiler for Vim
" Compiler: scdoc
" Maintainer: Greg Anders <greg@gpanders.com>
" Last Updated: 2019-10-24
if exists('current_compiler')
finish
endif
let current_compiler = 'scdoc'
if exists(':CompilerSet') != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=scdoc\ <\ %\ 2>&1
CompilerSet errorformat=Error\ at\ %l:%c:\ %m,%-G%.%#

View File

@ -18,7 +18,7 @@ endif
if exists('b:tex_ignore_makefile') || exists('g:tex_ignore_makefile') ||
\(!filereadable('Makefile') && !filereadable('makefile'))
" If buffer-local variable 'tex_flavor' exists, it defines TeX flavor,
" otherwize the same for global variable with same name, else it will be
" otherwise the same for global variable with same name, else it will be
" LaTeX
if exists("b:tex_flavor")
let current_compiler = b:tex_flavor

View File

@ -1,7 +1,7 @@
" The default vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2020 Sep 30
" Last change: 2021 Nov 17
"
" This is loaded if no vimrc file was found.
" Except when Vim is run with "-u NONE" or "-C".
@ -96,7 +96,7 @@ if 1
filetype plugin indent on
" Put these in an autocmd group, so that you can revert them with:
" ":augroup vimStartup | au! | augroup END"
" ":augroup vimStartup | exe 'au!' | augroup END"
augroup vimStartup
au!
@ -111,6 +111,18 @@ if 1
augroup END
" Quite a few people accidentally type "q:" instead of ":q" and get confused
" by the command line window. Give a hint about how to get out.
" If you don't like this you can put this in your vimrc:
" ":augroup vimHints | exe 'au!' | augroup END"
augroup vimHints
au!
autocmd CmdwinEnter *
\ echohl Todo |
\ echo 'You discovered the command-line window! You can close it with ":q".' |
\ echohl None
augroup END
endif
" Switch syntax highlighting on when the terminal has colors or when using the

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.2. Last change: 2021 Jul 27
*autocmd.txt* For Vim version 8.2. Last change: 2021 Nov 20
VIM REFERENCE MANUAL by Bram Moolenaar
@ -76,14 +76,14 @@ and in a `:def` function) then {cmd} will be executed as in Vim9
script. Thus this depends on where the autocmd is defined, not where it is
triggered.
{cmd} can use a block, like with `:command`, see |:command-repl|. Example: >
{cmd} can be a block, like with `:command`, see |:command-repl|. Example: >
au BufReadPost *.xml {
setlocal matchpairs+=<:>
/<start
}
Note: The ":autocmd" command can only be followed by another command when the
'|' appears before {cmd}. This works: >
'|' appears where the pattern is expected. This works: >
:augroup mine | au! BufRead | augroup END
But this sees "augroup" as part of the defined command: >
:augroup mine | au! BufRead * | augroup END
@ -348,6 +348,7 @@ Name triggered by ~
|WinNew| after creating a new window
|TabNew| after creating a new tab page
|WinClosed| after closing a window
|TabClosed| after closing a tab page
|WinEnter| after entering another window
|WinLeave| before leaving a window
@ -366,6 +367,8 @@ Name triggered by ~
|InsertCharPre| when a character was typed in Insert mode, before
inserting it
|ModeChanged| after changing the mode
|TextChanged| after a change was made to the text in Normal mode
|TextChangedI| after a change was made to the text in Insert mode
when popup menu is not visible
@ -706,7 +709,7 @@ EncodingChanged Fires off after the 'encoding' option has been
*FileAppendCmd*
FileAppendCmd Before appending to a file. Should do the
appending to the file. Use the '[ and ']
marks for the range of lines.|Cmd-event|
marks for the range of lines. |Cmd-event|
*FileAppendPost*
FileAppendPost After appending to a file.
*FileAppendPre*
@ -834,7 +837,7 @@ FilterReadPre Before reading a file from a filter command.
*FilterWritePost*
FilterWritePost After writing a file for a filter command or
making a diff with an external diff (see
DiffUpdated for internal diff).
|DiffUpdated| for internal diff).
Vim checks the pattern against the name of
the current buffer as with FilterWritePre.
Not triggered when 'shelltemp' is off.
@ -925,7 +928,27 @@ MenuPopup Just before showing the popup menu (under the
i Insert
c Command line
tl Terminal
*OptionSet*
*ModeChanged*
ModeChanged After changing the mode. The pattern is
matched against `'old_mode:new_mode'`, for
example match against `*:c*` to simulate
|CmdlineEnter|.
The following values of |v:event| are set:
old_mode The mode before it changed.
new_mode The new mode as also returned
by |mode()| called with a
non-zero argument.
When ModeChanged is triggered, old_mode will
have the value of new_mode when the event was
last triggered.
This will be triggered on every minor mode
change.
Usage example to use relative line numbers
when entering Visual mode: >
:au ModeChanged [vV\x16]*:* let &l:rnu = mode() =~# '^[vV\x16]'
:au ModeChanged *:[vV\x16]* let &l:rnu = mode() =~# '^[vV\x16]'
:au WinEnter,WinLeave * let &l:rnu = mode() =~# '^[vV\x16]'
< *OptionSet*
OptionSet After setting an option. The pattern is
matched against the long option name.
|<amatch>| indicates what option has been set.
@ -1178,9 +1201,9 @@ TextYankPost After text has been yanked or deleted in the
register, as a list of lines,
like with: >
getreg(r, 1, 1)
< regname Name of the |register| or
empty string for the unnamed
register.
< regname Name of the register or empty
string for the unnamed
register, see |registers|.
regtype Type of the register, see
|getregtype()|.
visual True if the operation is
@ -1258,6 +1281,12 @@ VimResume When the Vim instance is resumed after being
VimSuspend When the Vim instance is suspended. Only when
CTRL-Z was typed inside Vim, not when the
SIGSTOP or SIGTSTP signal was sent to Vim.
*WinClosed*
WinClosed After closing a window. The pattern is
matched against the |window-ID|. Both
<amatch> and <afile> are set to the
|window-ID|. Non-recursive (event cannot
trigger itself).
*WinEnter*
WinEnter After entering another window. Not done for
the first window, when Vim has just started.
@ -1485,6 +1514,13 @@ Example: >
This prevents having the autocommands defined twice (e.g., after sourcing the
.vimrc file again).
*FileExplorer*
There is one group that is recognized by Vim: FileExplorer. If this group
exists Vim assumes that editing a directory is possible and will trigger a
plugin that lists the files in that directory. This is used by the |netrw|
plugin. This allows you to do: >
browse edit
==============================================================================
9. Executing autocommands *autocmd-execute*

View File

@ -1184,9 +1184,6 @@ a register, a paste on a visual selected area will paste that single line on
each of the selected lines (thus replacing the blockwise selected region by a
block of the pasted line).
Use |zP|/|zp| to paste a blockwise yanked register without appending trailing
spaces.
*blockwise-register*
If you use a blockwise Visual mode command to get the text into the register,
the block of text will be inserted before ("P") or after ("p") the cursor
@ -1197,6 +1194,9 @@ this happen. However, if the width of the block is not a multiple of a <Tab>
width and the text after the inserted block contains <Tab>s, that text may be
misaligned.
Use |zP|/|zp| to paste a blockwise yanked register without appending trailing
spaces.
Note that after a characterwise yank command, Vim leaves the cursor on the
first yanked character that is closest to the start of the buffer. This means
that "yl" doesn't move the cursor, but "yh" moves the cursor one character

View File

@ -536,7 +536,7 @@ ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
GetChannel()->ch_evalraw(rawstring)
ch_getbufnr({handle}, {what}) *ch_getbufnr()*
Get the buffer number that {handle} is using for {what}.
Get the buffer number that {handle} is using for String {what}.
{handle} can be a Channel or a Job that has a Channel.
{what} can be "err" for stderr, "out" for stdout or empty for
socket output.
@ -586,8 +586,8 @@ ch_info({handle}) *ch_info()*
ch_log({msg} [, {handle}]) *ch_log()*
Write {msg} in the channel log file, if it was opened with
|ch_logfile()|.
Write String {msg} in the channel log file, if it was opened
with |ch_logfile()|.
When {handle} is passed the channel number is used for the
message.
{handle} can be a Channel or a Job that has a Channel. The
@ -625,7 +625,7 @@ ch_open({address} [, {options}]) *ch_open()*
Open a channel to {address}. See |channel|.
Returns a Channel. Use |ch_status()| to check for failure.
{address} has the form "hostname:port", e.g.,
{address} is a String and has the form "hostname:port", e.g.,
"localhost:8765".
When using an IPv6 address, enclose it within square brackets.

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.2. Last change: 2021 May 30
*cmdline.txt* For Vim version 8.2. Last change: 2021 Nov 22
VIM REFERENCE MANUAL by Bram Moolenaar
@ -170,7 +170,12 @@ CTRL-R {register} *c_CTRL-R* *c_<C-R>*
too.
When the result is a Float it's automatically
converted to a String.
See |registers| about registers.
Note that when you only want to move the
cursor and not insert anything, you must make
sure the expression evaluates to an empty
string. E.g.: >
<C-R><C-R>=setcmdpos(2)[-1]<CR>
< See |registers| about registers.
Implementation detail: When using the |expression| register
and invoking setcmdpos(), this sets the position before
inserting the resulting string. Use CTRL-R CTRL-R to set the
@ -798,7 +803,7 @@ three lines: >
3:d<CR> is translated into: .,.+2d<CR>
<
Visual Mode and Range
Visual Mode and Range
*v_:*
{Visual}: Starts a command-line with the Visual selected lines as a
range. The code `:'<,'>` is used for this range, which makes
@ -920,9 +925,11 @@ Note: these are typed literally, they are not special keys!
*:<sfile>* *<sfile>*
<sfile> When executing a ":source" command, is replaced with the
file name of the sourced file. *E498*
When executing a function, is replaced with the call stack,
as with <stack> (this is for backwards compatibility, using
<stack> is preferred).
When executing a legacy function, is replaced with the call
stack, as with <stack> (this is for backwards
compatibility, using <stack> is preferred).
In Vim9 script using <sfile> in a function gives error
*E1245* .
Note that filename-modifiers are useless when <sfile> is
not used inside a script.
*:<stack>* *<stack>*

View File

@ -351,8 +351,8 @@ $ DO 0x24 36 DOLLAR SIGN
þ th 0xfe 254 LATIN SMALL LETTER THORN (Icelandic)
ÿ y: 0xff 255 LATIN SMALL LETTER Y WITH DIAERESIS
If your Vim is compiled with |multibyte| support and you are using a multibyte
'encoding', Vim provides this enhanced set of additional digraphs:
If you are using a |multibyte| 'encoding', Vim provides this enhanced set of
additional digraphs:
*digraph-table-mbyte*
char digraph hex dec official name ~

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.2. Last change: 2021 Jul 25
*editing.txt* For Vim version 8.2. Last change: 2021 Oct 16
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1225,7 +1225,9 @@ If you want to always use ":confirm", set the 'confirm' option.
|:diffsplit|, |:diffpatch|, |:open|, |:pedit|,
|:redir|, |:source|, |:update|, |:visual|, |:vsplit|,
and |:qall| if 'confirm' is set.
{only in Win32, Athena, Motif, GTK and Mac GUI}
{only in Win32, Athena, Motif, GTK and Mac GUI, in
console `browse edit` works if the FileExplorer
autocommand group exists}
When ":browse" is not possible you get an error
message. If the |+browse| feature is missing or the
{command} doesn't support browsing, the {command} is
@ -1327,26 +1329,26 @@ present in 'cpoptions' and "!" is not used in the command.
other tabs and for windows in the current tab that
have their own window-local directory.
*:tch* *:tchdir*
:tch[dir][!] Same as |:tcd|.
*:tcd-*
:tc[d][!] - Change to the previous current directory, before the
last ":tcd {path}" command.
*:tch* *:tchdir*
:tch[dir][!] Same as |:tcd|.
*:lc* *:lcd*
:lc[d][!] {path} Like |:cd|, but only set the current directory when
the cursor is in the current window. The current
directory for other windows is not changed, switching
to another window will stop using {path}.
*:lch* *:lchdir*
:lch[dir][!] Same as |:lcd|.
*:lcd-*
:lcd[!] - Change to the previous current directory, before the
last ":lcd {path}" command.
*:lch* *:lchdir*
:lch[dir][!] Same as |:lcd|.
*:pw* *:pwd* *E187*
:pw[d] Print the current directory name.
Also see |getcwd()|.
@ -1373,14 +1375,14 @@ change anything for the current directory.
When a |:lcd| command has been used for a window, the specified directory
becomes the current directory for that window. Windows where the |:lcd|
command has not been used stick to the global or tab-local current directory.
When jumping to another window the current directory will become the last
When jumping to another window the current directory is changed to the last
specified local current directory. If none was specified, the global or
tab-local current directory is used.
When a |:tcd| command has been used for a tab page, the specified directory
becomes the current directory for the current tab page and the current window.
The current directory of other tab pages is not affected. When jumping to
another tab page, the current directory will become the last specified local
another tab page, the current directory is changed to the last specified local
directory for that tab page. If the current tab has no local current directory
the global current directory is used.
@ -1674,6 +1676,11 @@ It is also possible that you modified the file yourself, from another edit
session or with another command (e.g., a filter command). Then you will know
which version of the file you want to keep.
The accuracy of the time check depends on the filesystem. On Unix it is
usually sub-second. With old file sytems and on MS-Windows it is normally one
second. Use has('nanotime') check if sub-second time stamp checks are
available.
There is one situation where you get the message while there is nothing wrong:
On a Win32 system on the day daylight saving time starts. There is something
in the Win32 libraries that confuses Vim about the hour time difference. The

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
*filetype.txt* For Vim version 8.2. Last change: 2021 Mar 11
*filetype.txt* For Vim version 8.2. Last change: 2021 Sep 22
VIM REFERENCE MANUAL by Bram Moolenaar
@ -139,17 +139,19 @@ can be used to overrule the filetype used for certain extensions:
file name variable ~
*.asa g:filetype_asa |ft-aspvbs-syntax| |ft-aspperl-syntax|
*.asp g:filetype_asp |ft-aspvbs-syntax| |ft-aspperl-syntax|
*.asm g:asmsyntax |ft-asm-syntax|
*.prg g:filetype_prg
*.pl g:filetype_pl
*.inc g:filetype_inc
*.w g:filetype_w |ft-cweb-syntax|
*.asp g:filetype_asp |ft-aspvbs-syntax| |ft-aspperl-syntax|
*.fs g:filetype_fs |ft-forth-syntax|
*.i g:filetype_i |ft-progress-syntax|
*.inc g:filetype_inc
*.m g:filetype_m |ft-mathematica-syntax|
*.p g:filetype_p |ft-pascal-syntax|
*.pl g:filetype_pl
*.pp g:filetype_pp |ft-pascal-syntax|
*.prg g:filetype_prg
*.sh g:bash_is_sh |ft-sh-syntax|
*.tex g:tex_flavor |ft-tex-plugin|
*.w g:filetype_w |ft-cweb-syntax|
*filetype-ignore*
To avoid that certain files are being inspected, the g:ft_ignore_pat variable
@ -537,6 +539,14 @@ Options:
For further discussion of fortran_have_tabs and the method used for the
detection of source format see |ft-fortran-syntax|.
GPROF *ft-gprof-plugin*
The gprof filetype plugin defines a mapping <C-]> to jump from a function
entry in the gprof flat profile or from a function entry in the call graph
to the details of that function in the call graph.
The mapping can be disabled with: >
let g:no_gprof_maps = 1
GIT COMMIT *ft-gitcommit-plugin*
@ -544,6 +554,14 @@ One command, :DiffGitCached, is provided to show a diff of the current commit
in the preview window. It is equivalent to calling "git diff --cached" plus
any arguments given to the command.
GPROF *ft-gprof-plugin*
The gprof filetype plugin defines a mapping <C-]> to jump from a function
entry in the gprof flat profile or from a function entry in the call graph
to the details of that function in the call graph.
The mapping can be disabled with: >
let g:no_gprof_maps = 1
MAIL *ft-mail-plugin*

View File

@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 8.2. Last change: 2021 Apr 05
*gui_w32.txt* For Vim version 8.2. Last change: 2021 Oct 24
VIM REFERENCE MANUAL by Bram Moolenaar
@ -323,20 +323,10 @@ These extra colors are also available:
Gray, Grey, LightYellow, SeaGreen, Orange, Purple, SlateBlue, Violet,
*rgb.txt*
Additionally, colors defined by a "rgb.txt" file can be used. This file is
well known from X11. A few lines from it: >
255 218 185 peach puff
205 133 63 peru
255 181 197 pink
This shows the layout of the file: First the R, G and B value as a decimal
number, followed by the name of the color. The four fields are separated by
spaces.
You can get an rgb.txt file from any X11 distribution. It is located in a
directory like "/usr/X11R6/lib/X11/". For Vim it must be located in the
$VIMRUNTIME directory. Thus the file can be found with "$VIMRUNTIME/rgb.txt".
Additionally, colors defined by a default color list can be used. For more
info see |:colorscheme|. These colors used to be defined in
$VIMRUNTIME/rgb.txt, now they are in |v:colornames| which is initialized from
$VIMRUNTIME/colors/lists/default.vim.
==============================================================================
*gui-w32-dialogs* *dialog*

View File

@ -88,6 +88,7 @@ Tuning Vim ~
|usr_43.txt| Using filetypes
|usr_44.txt| Your own syntax highlighted
|usr_45.txt| Select your language
|usr_46.txt| Write plugins using Vim9 script
Making Vim Run ~
|usr_90.txt| Installing Vim

View File

@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 8.2. Last change: 2020 Dec 29
*helphelp.txt* For Vim version 8.2. Last change: 2021 Nov 18
VIM REFERENCE MANUAL by Bram Moolenaar
@ -323,21 +323,25 @@ Hints for translators:
3. Writing help files *help-writing*
For ease of use, a Vim help file for a plugin should follow the format of the
standard Vim help files. If you are writing a new help file it's best to copy
one of the existing files and use it as a template.
standard Vim help files, except for the first line. If you are writing a new
help file it's best to copy one of the existing files and use it as a
template.
The first line in a help file should have the following format:
*helpfile_name.txt* For Vim version 7.3 Last change: 2010 June 4
*plugin_name.txt* {short description of the plugin}
The first field is a link to the help file name. The second field describes
the applicable Vim version. The last field specifies the last modification
date of the file. Each field is separated by a tab.
The first field is a help tag where ":help plugin_name" will jump to. The
remainder of the line, after a Tab, describes the plugin purpose in a short
way. This will show up in the "LOCAL ADDITIONS" section of the main help
file. Check there that it shows up properly: |local-additions|.
If you want to add a version number or last modification date, put it in the
second line, right aligned.
At the bottom of the help file, place a Vim modeline to set the 'textwidth'
and 'tabstop' options and the 'filetype' to "help". Never set a global option
in such a modeline, that can have consequences undesired by whoever reads that
help.
in such a modeline, that can have undesired consequences.
TAGS

View File

@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 8.2. Last change: 2021 Apr 07
*if_lua.txt* For Vim version 8.2. Last change: 2021 Aug 06
VIM REFERENCE MANUAL by Luis Carvalho
@ -175,10 +175,17 @@ Vim evaluation and command execution, and others.
:lua print(type(l), vim.type(l))
:" list
<
vim.command({cmd}) Executes the vim (ex-mode) command {cmd}.
vim.command({cmds}) Executes one or more lines of Ex-mode commands
in {cmds}.
Examples: >
:lua vim.command"set tw=60"
:lua vim.command"normal ddp"
lua << trim END
vim.command([[
new Myfile.js
call search('start')
]])
END
<
vim.eval({expr}) Evaluates expression {expr} (see |expression|),
converts the result to Lua, and returns it.
@ -211,6 +218,44 @@ Vim evaluation and command execution, and others.
vim.lua_version The Lua version Vim was compiled with, in the
form {major}.{minor}.{patch}, e.g. "5.1.4".
vim.version() Returns a Lua table with the Vim version.
The table will have the following keys:
major - major Vim version.
minor - minor Vim version.
patch - latest patch included.
*lua-vim-variables*
The Vim editor global dictionaries |g:| |w:| |b:| |t:| |v:| can be accessed
from Lua conveniently and idiomatically by referencing the `vim.*` Lua tables
described below. In this way you can easily read and modify global Vim script
variables from Lua.
Example: >
vim.g.foo = 5 -- Set the g:foo Vim script variable.
print(vim.g.foo) -- Get and print the g:foo Vim script variable.
vim.g.foo = nil -- Delete (:unlet) the Vim script variable.
vim.g *vim.g*
Global (|g:|) editor variables.
Key with no value returns `nil`.
vim.b *vim.b*
Buffer-scoped (|b:|) variables for the current buffer.
Invalid or unset key returns `nil`.
vim.w *vim.w*
Window-scoped (|w:|) variables for the current window.
Invalid or unset key returns `nil`.
vim.t *vim.t*
Tabpage-scoped (|t:|) variables for the current tabpage.
Invalid or unset key returns `nil`.
vim.v *vim.v*
|v:| variables.
Invalid or unset key returns `nil`.
==============================================================================
3. List userdata *lua-list*

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 8.2. Last change: 2019 Dec 07
*if_pyth.txt* For Vim version 8.2. Last change: 2021 Nov 12
VIM REFERENCE MANUAL by Paul Moore
@ -63,6 +63,11 @@ To see what version of Python you have: >
There is no need to import sys, it's done by default.
*python-environment*
Environment variables set in Vim are not always available in Python. This
depends on how Vim and Python were build. Also see
https://docs.python.org/3/library/os.html#os.environ
Note: Python is very sensitive to the indenting. Make sure the "class" line
and "EOF" do not have any indent.

View File

@ -608,26 +608,25 @@ CLOJURE *ft-clojure-indent* *clojure-indent*
Clojure indentation differs somewhat from traditional Lisps, due in part to
the use of square and curly brackets, and otherwise by community convention.
These conventions are not universally followed, so the Clojure indent script
offers a few configurable options, listed below.
offers a few configuration options.
(If the current Vim does not include |searchpairpos()|, the indent script falls
back to normal 'lisp' indenting, and the following options are ignored.)
If the current vim does not include searchpairpos(), the indent script falls
back to normal 'lisp' indenting, and the following options are ignored.
*g:clojure_maxlines*
Set maximum scan distance of searchpairpos(). Larger values trade performance
for correctness when dealing with very long forms. A value of 0 will scan
without limits.
>
" Default
let g:clojure_maxlines = 100
<
Sets maximum scan distance of `searchpairpos()`. Larger values trade
performance for correctness when dealing with very long forms. A value of
0 will scan without limits. The default is 300.
*g:clojure_fuzzy_indent*
*g:clojure_fuzzy_indent_patterns*
*g:clojure_fuzzy_indent_blacklist*
The 'lispwords' option is a list of comma-separated words that mark special
forms whose subforms must be indented with two spaces.
forms whose subforms should be indented with two spaces.
For example:
>
@ -645,15 +644,11 @@ the fuzzy indent feature:
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
let g:clojure_fuzzy_indent_blacklist =
\ ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
" Legacy comma-delimited string version; the list format above is
" recommended. Note that patterns are implicitly anchored with ^ and $
let g:clojure_fuzzy_indent_patterns = 'with.*,def.*,let.*'
<
|g:clojure_fuzzy_indent_patterns| and |g:clojure_fuzzy_indent_blacklist| are
|Lists| of patterns that will be matched against the unquoted, unqualified
symbol at the head of a list. This means that a pattern like "^foo" will match
all these candidates: "foobar", "my.ns/foobar", and "#'foobar".
lists of patterns that will be matched against the unqualified symbol at the
head of a list. This means that a pattern like `"^foo"` will match all these
candidates: `foobar`, `my.ns/foobar`, and `#'foobar`.
Each candidate word is tested for special treatment in this order:
@ -664,20 +659,22 @@ Each candidate word is tested for special treatment in this order:
|g:clojure_fuzzy_indent_patterns|
4. Return false and indent normally otherwise
*g:clojure_special_indent_words*
Some forms in Clojure are indented so that every subform is indented only two
spaces, regardless of 'lispwords'. If you have a custom construct that should
be indented in this idiosyncratic fashion, you can add your symbols to the
default list below.
Some forms in Clojure are indented such that every subform is indented by only
two spaces, regardless of 'lispwords'. If you have a custom construct that
should be indented in this idiosyncratic fashion, you can add your symbols to
the default list below.
>
" Default
let g:clojure_special_indent_words =
\ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
<
*g:clojure_align_multiline_strings*
Align subsequent lines in multiline strings to the column after the opening
Align subsequent lines in multi-line strings to the column after the opening
quote, instead of the same column.
For example:
@ -694,11 +691,7 @@ For example:
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.")
<
This option is off by default.
>
" Default
let g:clojure_align_multiline_strings = 0
<
*g:clojure_align_subforms*
By default, parenthesized compound forms that look like function calls and
@ -709,18 +702,14 @@ two spaces relative to the opening paren:
bar
baz)
<
Setting this option changes this behavior so that all subforms are aligned to
the same column, emulating the default behavior of clojure-mode.el:
Setting this option to `1` changes this behaviour so that all subforms are
aligned to the same column, emulating the default behaviour of
clojure-mode.el:
>
(foo
bar
baz)
<
This option is off by default.
>
" Default
let g:clojure_align_subforms = 0
<
FORTRAN *ft-fortran-indent*

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 8.2. Last change: 2021 Jun 19
*index.txt* For Vim version 8.2. Last change: 2021 Aug 31
VIM REFERENCE MANUAL by Bram Moolenaar
@ -168,6 +168,7 @@ commands in CTRL-X submode *i_CTRL-X_index*
|i_CTRL-X_CTRL-Y| CTRL-X CTRL-Y scroll down
|i_CTRL-X_CTRL-U| CTRL-X CTRL-U complete with 'completefunc'
|i_CTRL-X_CTRL-V| CTRL-X CTRL-V complete like in : command line
|i_CTRL-X_CTRL-Z| CTRL-X CTRL-Z stop completion, keeping the text as-is
|i_CTRL-X_CTRL-]| CTRL-X CTRL-] complete tags
|i_CTRL-X_s| CTRL-X s spelling suggestions

View File

@ -1,4 +1,4 @@
*insert.txt* For Vim version 8.2. Last change: 2021 Jul 05
*insert.txt* For Vim version 8.2. Last change: 2021 Oct 24
VIM REFERENCE MANUAL by Bram Moolenaar
@ -640,6 +640,8 @@ Completion can be done for:
12. Spelling suggestions |i_CTRL-X_s|
13. keywords in 'complete' |i_CTRL-N| |i_CTRL-P|
Additionally, |i_CTRL-X_CTRL-Z| stops completion without changing the text.
All these, except CTRL-N and CTRL-P, are done in CTRL-X mode. This is a
sub-mode of Insert and Replace modes. You enter CTRL-X mode by typing CTRL-X
and one of the CTRL-X commands. You exit CTRL-X mode by typing a key that is
@ -822,6 +824,9 @@ CTRL-X CTRL-K Search the files given with the 'dictionary' option
CTRL-P Search backwards for next matching keyword. This
keyword replaces the previous matching keyword.
Completing words in 'thesaurus' *compl-thesaurus*
*i_CTRL-X_CTRL-T*
CTRL-X CTRL-T Works as CTRL-X CTRL-K, but in a special way. It uses
the 'thesaurus' option instead of 'dictionary'. If a
@ -830,16 +835,6 @@ CTRL-X CTRL-T Works as CTRL-X CTRL-K, but in a special way. It uses
matches, even though they don't complete the word.
Thus a word can be completely replaced.
For an example, imagine the 'thesaurus' file has a
line like this: >
angry furious mad enraged
< Placing the cursor after the letters "ang" and typing
CTRL-X CTRL-T would complete the word "angry";
subsequent presses would change the word to "furious",
"mad" etc.
Other uses include translation between two languages,
or grouping API functions by keyword.
CTRL-T or
CTRL-N Search forward for next matching keyword. This
keyword replaces the previous matching keyword.
@ -847,6 +842,57 @@ CTRL-X CTRL-T Works as CTRL-X CTRL-K, but in a special way. It uses
CTRL-P Search backwards for next matching keyword. This
keyword replaces the previous matching keyword.
In the file used by the 'thesaurus' option each line in the file should
contain words with similar meaning, separated by non-keyword characters (white
space is preferred). Maximum line length is 510 bytes.
For an example, imagine the 'thesaurus' file has a line like this: >
angry furious mad enraged
<Placing the cursor after the letters "ang" and typing CTRL-X CTRL-T would
complete the word "angry"; subsequent presses would change the word to
"furious", "mad" etc.
Other uses include translation between two languages, or grouping API
functions by keyword.
An English word list was added to this github issue:
https://github.com/vim/vim/issues/629#issuecomment-443293282
Unpack thesaurus_pkg.zip, put the thesaurus.txt file somewhere, e.g.
~/.vim/thesaurus/english.txt, and the 'thesaurus' option to this file name.
Completing keywords with 'thesaurusfunc' *compl-thesaurusfunc*
If the 'thesaurusfunc' option is set, then the user specified function is
invoked to get the list of completion matches and the 'thesaurus' option is
not used. See |complete-functions| for an explanation of how the function is
invoked and what it should return.
Here is an example that uses the "aiksaurus" command (provided by Magnus
Groß): >
func Thesaur(findstart, base)
if a:findstart
return searchpos('\<', 'bnW', line('.'))[1] - 1
endif
let res = []
let h = ''
for l in systemlist('aiksaurus '.shellescape(a:base))
if l[:3] == '=== '
let h = '('.substitute(l[4:], ' =*$', ')', '')
elseif l ==# 'Alphabetically similar known words are: '
let h = "\U0001f52e"
elseif l[0] =~ '\a' || (h ==# "\U0001f52e" && l[0] ==# "\t")
call extend(res, map(split(substitute(l, '^\t', '', ''), ', '), {_, val -> {'word': val, 'menu': h}}))
endif
endfor
return res
endfunc
if exists('+thesaurusfunc')
set thesaurusfunc=Thesaur
endif
Completing keywords in the current and included files *compl-keyword*
@ -1042,9 +1088,15 @@ CTRL-P Find previous match for words that start with the
other contexts unless a double CTRL-X is used.
Stop completion *compl-stop*
*i_CTRL-X_CTRL-Z*
CTRL-X CTRL-Z Stop completion without changing the text.
FUNCTIONS FOR FINDING COMPLETIONS *complete-functions*
This applies to 'completefunc' and 'omnifunc'.
This applies to 'completefunc', 'thesaurusfunc' and 'omnifunc'.
The function is called in two different ways:
- First the function is called to find the start of the text to be completed.
@ -1194,7 +1246,7 @@ match to the total list. These matches should then not appear in the returned
list! Call |complete_check()| now and then to allow the user to press a key
while still searching for matches. Stop searching when it returns non-zero.
*E839* *E840*
*E840*
The function is allowed to move the cursor, it is restored afterwards.
The function is not allowed to move to another window or delete text.

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 8.2. Last change: 2020 Dec 29
*intro.txt* For Vim version 8.2. Last change: 2021 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -421,7 +421,6 @@ notation meaning equivalent decimal value(s) ~
<Tab> tab CTRL-I 9 *tab* *Tab*
*linefeed*
<NL> linefeed CTRL-J 10 (used for <Nul>)
<FF> formfeed CTRL-L 12 *formfeed*
<CR> carriage return CTRL-M 13 *carriage-return*
<Return> same as <CR> *<Return>*
<Enter> same as <CR> *<Enter>*

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 8.2. Last change: 2021 Aug 01
*map.txt* For Vim version 8.2. Last change: 2021 Nov 20
VIM REFERENCE MANUAL by Bram Moolenaar
@ -61,6 +61,8 @@ modes.
where the map command applies. The result, including
{rhs}, is then further scanned for mappings. This
allows for nested and recursive use of mappings.
Note: Trailing spaces are included in the {rhs},
because space is a valid Normal mode command.
*:nore* *:norem*
:no[remap] {lhs} {rhs} |mapmode-nvo| *:no* *:noremap* *:nor*
@ -94,6 +96,9 @@ modes.
Remove the mapping of {lhs} for the modes where the
map command applies. The mapping may remain defined
for other modes where it applies.
It also works when {lhs} matches the {rhs} of a
mapping. This is for when when an abbreviation
applied.
Note: Trailing spaces are included in the {lhs}. This
unmap does NOT work: >
:map @@ foo
@ -344,6 +349,8 @@ Note:
- For the same reason, |keycodes| like <C-R><C-W> are interpreted as plain,
unmapped keys.
- The command is not echo'ed, no need for <silent>.
- The {rhs} is not subject to abbreviations nor to other mappings, even if the
mapping is recursive.
- In Visual mode you can use `line('v')` and `col('v')` to get one end of the
Visual area, the cursor is at the other end.
- In Select mode, |:map| and |:vmap| command mappings are executed in
@ -1004,6 +1011,20 @@ Also note that the 'clipboard' option is temporarily emptied to avoid
clobbering the `"*` or `"+` registers, if its value contains the item `unnamed`
or `unnamedplus`.
The `mode()` function will return the state as it will be after applying the
operator.
Here is an example for using a lambda function to create a normal-mode
operator to add quotes around text in the current line: >
nnoremap <F4> <Cmd>let &opfunc='{t ->
\ getline(".")
\ ->split("\\zs")
\ ->insert("\"", col("'']"))
\ ->insert("\"", col("''[") - 1)
\ ->join("")
\ ->setline(".")}'<CR>g@
==============================================================================
2. Abbreviations *abbreviations* *Abbreviations*
@ -1368,6 +1389,10 @@ See |:verbose-cmd| for more information.
:delc[ommand] {cmd} *:delc* *:delcommand* *E184*
Delete the user-defined command {cmd}.
:delc[ommand] -buffer {cmd} *E1237*
Delete the user-defined command {cmd} that was defined
for the current buffer.
:comc[lear] *:comc* *:comclear*
Delete all user-defined commands.
@ -1553,6 +1578,7 @@ Possible values are (second column is the short name used in listing):
Special cases ~
*:command-bang* *:command-bar*
*:command-register* *:command-buffer*
*:command-keepscript*
There are some special cases as well:
-bang The command can take a ! modifier (like :q or :w)
@ -1562,6 +1588,9 @@ There are some special cases as well:
-register The first argument to the command can be an optional
register name (like :del, :put, :yank).
-buffer The command will only be available in the current buffer.
-keepscript Do not use the location of where the user command was
defined for verbose messages, use the location of where
the user command was invoked.
In the cases of the -count and -register attributes, if the optional argument
is supplied, it is removed from the argument list and is available to the
@ -1580,8 +1609,11 @@ Example: >
echo 'hello'
g:calledMyCommand = true
}
No nesting is supported, inline functions cannot be used. Using `:normal`
directly does not work, you can use it indirectly with `:execute`.
< *E1231*
There must be white space before the "{". No nesting is supported, inline
functions cannot be used. Commands where a "|" may appear in the argument,
such as commands with an expression argument, cannot be followed by a "|" and
another command.
The replacement text {repl} for a user defined command is scanned for special
escape sequences, using <...> notation. Escape sequences are replaced with

View File

@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 8.2. Last change: 2021 Apr 05
*mbyte.txt* For Vim version 8.2. Last change: 2021 Oct 04
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@ -1132,7 +1132,7 @@ This file explains what characters are available in UTF-8 and CP1255 encodings,
and what the keymaps are to get those characters:
glyph encoding keymap ~
Char utf-8 cp1255 hebrew hebrewp name ~
Char UTF-8 cp1255 hebrew hebrewp name ~
א 0x5d0 0xe0 t a 'alef
ב 0x5d1 0xe1 c b bet
ג 0x5d2 0xe2 d g gimel
@ -1185,11 +1185,11 @@ Vowel marks and special punctuation:
ױ 0x5f1 0xd5 VY VY vav-yod
ײ 0x5f2 0xd6 YY YY yod-yod
The following are only available in utf-8
The following are only available in UTF-8
Cantillation marks:
glyph
Char utf-8 hebrew name
Char UTF-8 hebrew name
ב֑ 0x591 C: etnahta
ב֒ 0x592 Cs segol
ב֓ 0x593 CS shalshelet
@ -1300,7 +1300,7 @@ ASCII. On MS-Windows UTF-16 is also used (previously UCS-2), which uses
internally.
Vim has comprehensive UTF-8 support. It works well in:
- xterm with utf-8 support enabled
- xterm with UTF-8 support enabled
- Athena, Motif and GTK GUI
- MS-Windows GUI
- several other platforms
@ -1313,13 +1313,13 @@ is no longer relevant in the GTK+ 2 GUI.
*bom-bytes*
When reading a file a BOM (Byte Order Mark) can be used to recognize the
Unicode encoding:
EF BB BF utf-8
FE FF utf-16 big endian
FF FE utf-16 little endian
00 00 FE FF utf-32 big endian
FF FE 00 00 utf-32 little endian
EF BB BF UTF-8
FE FF UTF-16 big endian
FF FE UTF-16 little endian
00 00 FE FF UTF-32 big endian
FF FE 00 00 UTF-32 little endian
Utf-8 is the recommended encoding. Note that it's difficult to tell utf-16
UTF-8 is the recommended encoding. Note that it's difficult to tell utf-16
and utf-32 apart. Utf-16 is often used on MS-Windows, utf-32 is not
widespread as file format.
@ -1365,8 +1365,8 @@ Useful commands:
STARTING VIM
If your current locale is in an utf-8 encoding, Vim will automatically start
in utf-8 mode.
If your current locale is in an UTF-8 encoding, Vim will automatically start
in UTF-8 mode.
If you are using another locale: >
@ -1399,10 +1399,10 @@ Motif. Use the ":hi Menu font={fontname}" command for this. |:highlight|
TYPING UTF-8 *utf-8-typing*
If you are using X-Windows, you should find an input method that supports
utf-8.
UTF-8.
If your system does not provide support for typing utf-8, you can use the
'keymap' feature. This allows writing a keymap file, which defines a utf-8
If your system does not provide support for typing UTF-8, you can use the
'keymap' feature. This allows writing a keymap file, which defines a UTF-8
character as a sequence of ASCII characters. See |mbyte-keymap|.
Another method is to set the current locale to the language you want to use

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 8.2. Last change: 2020 Dec 29
*message.txt* For Vim version 8.2. Last change: 2021 Jul 31
VIM REFERENCE MANUAL by Bram Moolenaar
@ -141,6 +141,11 @@ larger. When it's more there probably is an endless loop. Probably a
The color name {name} is unknown. See |gui-colors| for a list of colors that
are available on most systems.
*E1244* >
Bad color string: {str}
The provided color did not conform to the pattern #rrggbb
*E458* >
Cannot allocate colormap entry, some colors may be incorrect
@ -774,6 +779,14 @@ a user-defined command.
This can only happen when changing the source code, when adding a command in
src/ex_cmds.h. The lookup table then needs to be updated, by running: >
make cmdidxs
<
*E928* *E889* *E839* >
E928: String required
E889: Number required
E839: Bool required
These happen when a value or expression is used that does not have the
expected type.
==============================================================================
3. Messages *messages*

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 8.2. Last change: 2021 Jul 22
*options.txt* For Vim version 8.2. Last change: 2021 Nov 24
VIM REFERENCE MANUAL by Bram Moolenaar
@ -195,11 +195,18 @@ include the "|" in the option value, use "\|" instead. This example sets the
This sets the 'titlestring' option to "hi" and 'iconstring' to "there": >
:set titlestring=hi|set iconstring=there
Similarly, the double quote character starts a comment. To include the '"' in
the option value, use '\"' instead. This example sets the 'titlestring'
option to 'hi "there"': >
Similarly, in legacy script the double quote character starts a comment. To
include the '"' in the option value, use '\"' instead. This example sets the
'titlestring' option to 'hi "there"': >
:set titlestring=hi\ \"there\"
In |Vim9| script it's simpler, comments start with a '#' character, and only
when preceded by white space. A backslash is needed less often: >
vim9script
set titlestring=hi\ "there"
set titlestring=hi#there#
set titlestring=hi\ \#there#
For Win32 backslashes in file names are mostly not removed. More precise: For
options that expect a file name (those where environment variables are
expanded) a backslash before a normal file name character is not removed. But
@ -364,6 +371,17 @@ Note: In the future more global options can be made global-local. Using
":setlocal" on a global option might work differently then.
*option-value-function*
Some options ('completefunc', 'imactivatefunc', 'imstatusfunc', 'omnifunc',
'operatorfunc', 'quickfixtextfunc' and 'tagfunc') are set to a function name
or a function reference or a lambda function. Examples:
>
set opfunc=MyOpFunc
set opfunc=function('MyOpFunc')
set opfunc=funcref('MyOpFunc')
let &opfunc = "{t -> MyOpFunc(t)}"
<
Setting the filetype
:setf[iletype] [FALLBACK] {filetype} *:setf* *:setfiletype*
@ -541,6 +559,15 @@ chance that a normal word like "lex:" is caught. There is one exception:
version 3.0). Using "ex:" at the start of the line will be ignored (this
could be short for "example:").
If the modeline is disabled within a modeline, subsequent modelines will be
ignored. This is to allow turning off modeline on a per-file basis. This is
useful when a line looks like a modeline but isn't. For example, it would be
good to start a YAML file containing strings like "vim:" with
# vim: nomodeline ~
so as to avoid modeline misdetection. Following options on the same line
after modeline deactivation, if any, are still evaluated (but you would
normally not have any).
*modeline-local*
The options are set like with ":setlocal": The new value only applies to the
buffer and window that contain the file. Although it's possible to set global
@ -701,7 +728,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"double": Use twice the width of ASCII characters.
*E834* *E835*
The value "double" cannot be used if 'listchars' or 'fillchars'
contains a character that would be double width.
contains a character that would be double width. These errors may
also be given when calling setcellwidths().
The values are overruled for characters specified with
|setcellwidths()|.
@ -1403,6 +1431,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Also see |win_gettype()|, which returns the type of the window.
Be careful with changing this option, it can have many side effects!
One such effect is that Vim will not check the timestamp of the file,
if the file is changed by another program this will not be noticed.
A "quickfix" buffer is only used for the error list and the location
list. This value is set by the |:cwindow| and |:lwindow| commands and
@ -2394,7 +2424,7 @@ A jump table for the options with a short description can be found at |Q_op|.
xchacha20 XChaCha20 Cipher with Poly1305 Message Authentication
Code. Medium strong till strong encryption.
Encryption is provided by the libsodium library, it
requires Vim to be built with |+sodium|
requires Vim to be built with |+sodium|.
It adds a seed and a message authentication code (MAC)
to the file. This needs at least a Vim 8.2.3022 to
read the encrypted file.
@ -3594,8 +3624,8 @@ A jump table for the options with a short description can be found at |Q_op|.
systems without an fsync() implementation, this variable is always
off.
Also see 'swapsync' for controlling fsync() on swap files.
'fsync' also applies to |writefile()|, unless a flag is used to
overrule it.
'fsync' also applies to |writefile()| (unless a flag is used to
overrule it) and when writing undo files (see |undo-persistence|).
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@ -3774,6 +3804,18 @@ A jump table for the options with a short description can be found at |Q_op|.
screen. Set it to a negative value to allow windows taller than the
screen.
*'guiligatures'* *'gli'* *E1243*
'guiligatures' 'gli' string (default "")
global
{only for GTK GUI}
List of ASCII characters that, when combined together, can create more
complex shapes. Each character must be a printable ASCII character
with a value in the 32-127 range.
Example: >
:set guiligatures=!\"#$%&()*+-./:<=>?@[]^_{\|~
< Changing this option updates screen output immediately. Set it to an
empty string to disable ligatures.
*'guioptions'* *'go'*
'guioptions' 'go' string (default "egmrLtT" (MS-Windows,
"t" is removed in |defaults.vim|),
@ -4148,8 +4190,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'icon'* *'noicon'*
'icon' boolean (default off, on when title can be restored)
global
{not available when compiled without the |+title|
feature}
When on, the icon text of the window will be set to the value of
'iconstring' (if it is not empty), or to the name of the file
currently being edited. Only the last part of the name is used.
@ -4166,8 +4206,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'iconstring'*
'iconstring' string (default "")
global
{not available when compiled without the |+title|
feature}
When this option is not empty, it will be used for the icon text of
the window. This happens only when the 'icon' option is on.
Only works if the terminal supports setting window icon text
@ -4877,9 +4915,10 @@ A jump table for the options with a short description can be found at |Q_op|.
*'list'* *'nolist'*
'list' boolean (default off)
local to window
List mode: Show tabs as CTRL-I is displayed, display $ after end of
line. Useful to see the difference between tabs and spaces and for
trailing blanks. Further changed by the 'listchars' option.
List mode: By default show tabs as CTRL-I is displayed, display $
after end of line. Useful to see the difference between tabs and
spaces and for trailing blanks. Further changed by the 'listchars'
option.
The cursor is displayed at the start of the space a Tab character
occupies, not at the end as usual in Normal mode. To get this cursor
@ -4923,16 +4962,25 @@ A jump table for the options with a short description can be found at |Q_op|.
*lcs-space*
space:c Character to show for a space. When omitted, spaces
are left blank.
*lcs-multispace*
multispace:c...
One or more characters to use cyclically to show for
multiple consecutive spaces. Overrides the "space"
setting, except for single spaces. When omitted, the
"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"
setting for leading spaces. You can combine it with
"tab:", for example: >
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*
trail:c Character to show for trailing spaces. When omitted,
trailing spaces are blank. Overrides the "space"
setting for trailing spaces.
trailing spaces are blank. Overrides the "space" and
"multispace" settings for trailing spaces.
*lcs-extends*
extends:c Character to show in the last column, when 'wrap' is
off and the line continues beyond the right of the
@ -4953,12 +5001,20 @@ A jump table for the options with a short description can be found at |Q_op|.
be used when 'encoding' is "utf-8", otherwise only printable
characters are allowed. All characters must be single width.
Each character can be specified as hex: >
set listchars=eol:\\x24
set listchars=eol:\\u21b5
set listchars=eol:\\U000021b5
< Note that a double backslash is used. The number of hex characters
must be exactly 2 for \\x, 4 for \\u and 8 for \\U.
Examples: >
:set lcs=tab:>-,trail:-
:set lcs=tab:>-,eol:<,nbsp:%
:set lcs=extends:>,precedes:<
< The "NonText" highlighting will be used for "eol", "extends" and
"precedes". "SpecialKey" for "nbsp", "space", "tab" and "trail".
"precedes". "SpecialKey" will be used for "tab", "nbsp", "space",
"multispace", "lead" and "trail".
|hl-NonText| |hl-SpecialKey|
*'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'*
@ -5574,7 +5630,9 @@ A jump table for the options with a short description can be found at |Q_op|.
'operatorfunc' 'opfunc' string (default: empty)
global
This option specifies a function to be called by the |g@| operator.
See |:map-operator| for more info and an example.
See |:map-operator| for more info and an example. The value can be
the name of a function, a |lambda| or a |Funcref|. See
|option-value-function| for more information.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@ -5974,8 +6032,9 @@ A jump table for the options with a short description can be found at |Q_op|.
customize the information displayed in the quickfix or location window
for each entry in the corresponding quickfix or location list. See
|quickfix-window-function| for an explanation of how to write the
function and an example. The value can be the name of a function or a
lambda.
function and an example. The value can be the name of a function, a
|lambda| or a |Funcref|. See |option-value-function| for more
information.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@ -7160,6 +7219,8 @@ A jump table for the options with a short description can be found at |Q_op|.
If the name "cjk" is included East Asian characters are excluded from
spell checking. This is useful when editing text that also has Asian
words.
Note that the "medical" dictionary does not exist, it is just an
example of a longer name.
*E757*
As a special case the name of a .spl file can be given as-is. The
first "_xx" in the name is removed and used as the region name
@ -7378,13 +7439,13 @@ A jump table for the options with a short description can be found at |Q_op|.
return value of expr contains % items they will get expanded.
The expression can contain the } character, the end of
expression is denoted by %}.
The For example: >
For example: >
func! Stl_filename() abort
return "%t"
endfunc
< `stl=%{Stl_filename()}` results in `"%t"`
`stl=%{%Stl_filename()%}` results in `"Name of current file"`
} - End of `{%` expression
%} - End of `{%` expression
( - Start of item group. Can be used for setting the width and
alignment of a section. Must be followed by %) somewhere.
) - End of item group. No width fields allowed.
@ -7727,7 +7788,9 @@ A jump table for the options with a short description can be found at |Q_op|.
This option specifies a function to be used to perform tag searches.
The function gets the tag pattern and should return a List of matching
tags. See |tag-function| for an explanation of how to write the
function and an example.
function and an example. The value can be the name of a function, a
|lambda| or a |Funcref|. See |option-value-function| for more
information.
*'taglength'* *'tl'*
'taglength' 'tl' number (default 0)
@ -7890,6 +7953,9 @@ A jump table for the options with a short description can be found at |Q_op|.
Number of scrollback lines to keep. When going over this limit the
first 10% of the scrollback lines are deleted. This is just to reduce
the memory usage. See |Terminal-Normal|.
Also used as a limit for text sent to the terminal in one write,
multiplied by the number of columns times 3 (average number of bytes
per cell).
*'termwinsize'* *'tws'*
'termwinsize' 'tws' string (default "")
@ -7980,25 +8046,30 @@ A jump table for the options with a short description can be found at |Q_op|.
'thesaurus' 'tsr' string (default "")
global or local to buffer |global-local|
List of file names, separated by commas, that are used to lookup words
for thesaurus completion commands |i_CTRL-X_CTRL-T|.
for thesaurus completion commands |i_CTRL-X_CTRL-T|. See
|compl-thesaurus|.
Each line in the file should contain words with similar meaning,
separated by non-keyword characters (white space is preferred).
Maximum line length is 510 bytes.
An English word list was added to this github issue:
https://github.com/vim/vim/issues/629#issuecomment-443293282
Unpack thesaurus_pkg.zip, put the thesaurus.txt file somewhere, e.g.
~/.vim/thesaurus/english.txt, and the 'thesaurus' option to this file
name.
This option is not used if 'thesaurusfunc' is set, either for the
buffer or globally.
To include a comma in a file name precede it with a backslash. Spaces
after a comma are ignored, otherwise spaces are included in the file
name. See |option-backslash| about using backslashes.
The use of |:set+=| and |:set-=| is preferred when adding or removing
directories from the list. This avoids problems when a future version
uses another default.
Backticks cannot be used in this option for security reasons.
name. See |option-backslash| about using backslashes. The use of
|:set+=| and |:set-=| is preferred when adding or removing directories
from the list. This avoids problems when a future version uses
another default. Backticks cannot be used in this option for security
reasons.
*'thesaurusfunc'* *tsrfu'*
'thesaurusfunc' 'tsrfu' string (default: empty)
global or local to buffer |global-local|
{not available when compiled without the |+eval|
feature}
This option specifies a function to be used for thesaurus completion
with CTRL-X CTRL-T. |i_CTRL-X_CTRL-T| See |compl-thesaurusfunc|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'tildeop'* *'top'* *'notildeop'* *'notop'*
'tildeop' 'top' boolean (default off)
@ -8066,8 +8137,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'title'* *'notitle'*
'title' boolean (default off, on when title can be restored)
global
{not available when compiled without the |+title|
feature}
When on, the title of the window will be set to the value of
'titlestring' (if it is not empty), or to:
filename [+=-] (path) - VIM
@ -8101,8 +8170,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'titlelen'*
'titlelen' number (default 85)
global
{not available when compiled without the |+title|
feature}
Gives the percentage of 'columns' to use for the length of the window
title. When the title is longer, only the end of the path name is
shown. A '<' character before the path name is used to indicate this.
@ -8116,8 +8183,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'titleold'*
'titleold' string (default "Thanks for flying Vim")
global
{only available when compiled with the |+title|
feature}
This option will be used for the window title when exiting Vim if the
original title cannot be restored. Only happens if 'title' is on or
'titlestring' is not empty.
@ -8126,8 +8191,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'titlestring'*
'titlestring' string (default "")
global
{not available when compiled without the |+title|
feature}
When this option is not empty, it will be used for the title of the
window. This happens only when the 'title' option is on.
Only works if the terminal supports setting window titles (currently
@ -8643,7 +8706,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'virtualedit'* *'ve'*
'virtualedit' 've' string (default "")
global or local to buffer |global-local|
global or local to window |global-local|
A comma separated list of these words:
block Allow virtual editing in Visual block mode.
insert Allow virtual editing in Insert mode.
@ -8753,8 +8816,9 @@ A jump table for the options with a short description can be found at |Q_op|.
More info here: |cmdline-completion|.
The character is not recognized when used inside a macro. See
'wildcharm' for that.
Some keys will not work, such as CTRL-C, <CR> and Enter.
Although 'wc' is a number option, you can set it to a special key: >
:set wc=<Esc>
:set wc=<Tab>
< NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset.

View File

@ -194,9 +194,8 @@ $VIM/macros/swapmous.vim for an example. |gui-mouse-mapping|
11. Color names *haiku-colors*
Vim has a number of color names built-in. Additional names are read from the
file $VIMRUNTIME/rgb.txt, if present. This file is basically the color
database from X. Names used from this file are cached for efficiency.
Vim has a number of color names built-in. Additional names can be defined in
|v:colornames|. See |:colorscheme| for details.
12. GUI Toolbar Images *haiku-toolbar-images*

View File

@ -932,7 +932,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
\%.l Matches at the cursor line.
\%<.l Matches above the cursor line.
\%>.l Matches below the cursor line.
These three can be used to match specific lines in a buffer. The "23"
These six can be used to match specific lines in a buffer. The "23"
can be any line number. The first line is 1.
WARNING: When inserting or deleting lines Vim does not automatically
update the matches. This means Syntax highlighting quickly becomes
@ -953,16 +953,15 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
\%.c Matches at the cursor column.
\%<.c Matches before the cursor column.
\%>.c Matches after the cursor column.
These three can be used to match specific columns in a buffer or
string. The "23" can be any column number. The first column is 1.
Actually, the column is the byte number (thus it's not exactly right
for multibyte characters).
These six can be used to match specific columns in a buffer or string.
The "23" can be any column number. The first column is 1. Actually,
the column is the byte number (thus it's not exactly right for
multibyte characters).
WARNING: When inserting or deleting text Vim does not automatically
update the matches. This means Syntax highlighting quickly becomes
wrong. Also when referring to the cursor position (".") and
the cursor moves the display isn't updated for this change. An update
is done when using the |CTRL-L| command (the whole screen is updated).
Example, to highlight the column where the cursor currently is: >
:exe '/\%' . col(".") . 'c'
< Alternatively use: >
@ -980,8 +979,8 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
\%.v Matches at the current virtual column.
\%<.v Matches before the current virtual column.
\%>.v Matches after the current virtual column.
These three can be used to match specific virtual columns in a buffer
or string. When not matching with a buffer in a window, the option
These six can be used to match specific virtual columns in a buffer or
string. When not matching with a buffer in a window, the option
values of the current window are used (e.g., 'tabstop').
The "23" can be any column number. The first column is 1.
Note that some virtual column positions will never match, because they
@ -1012,7 +1011,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
/.*\%17v
< Column 17 is highlighted by 'hlsearch' because there is another match
where ".*" matches zero characters.
<
Character classes:
\i identifier character (see 'isident' option) */\i*

View File

@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 8.2. Last change: 2020 Sep 19
*pi_netrw.txt* For Vim version 8.2. Last change: 2021 Aug 16
------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell
@ -54,6 +54,7 @@ Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
Browsing With A Horizontally Split Window...........|netrw-o|
Browsing With A New Tab.............................|netrw-t|
Browsing With A Vertically Split Window.............|netrw-v|
Change File Permission..............................|netrw-gp|
Change Listing Style.(thin wide long tree)..........|netrw-i|
Changing To A Bookmarked Directory..................|netrw-gb|
Changing To A Predecessor Directory.................|netrw-u|
@ -1095,6 +1096,7 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
gf Force treatment as file |netrw-gf|
gh Quick hide/unhide of dot-files |netrw-gh|
gn Make top of tree the directory below the cursor |netrw-gn|
gp Change local-only file permissions |netrw-gp|
i Cycle between thin, long, wide, and tree listings |netrw-i|
I Toggle the displaying of the banner |netrw-I|
mb Bookmark current directory |netrw-mb|
@ -1510,6 +1512,8 @@ Netrw determines which special handler by the following method:
If g:netrw_browsex_viewer == '-', then netrwFileHandlers#Invoke() will be
used instead (see |netrw_filehandler|).
If the viewer you wish to use does not support handling of a remote URL
directory, set |g:netrw_browsex_support_remote| to 0.
* for Windows 32 or 64, the URL and FileProtocolHandler dlls are used.
* for Gnome (with gnome-open): gnome-open is used.
* for KDE (with kfmclient) : kfmclient is used
@ -2104,8 +2108,8 @@ the two directories the same, use the "cd" map (type cd). That map will
set Vim's notion of the current directory to netrw's current browsing
directory.
|netrw-cd|: This map's name was changed from "c" to cd (see |netrw-cd|).
This change was done to allow for |netrw-cb| and |netrw-cB| maps.
|netrw-cd| : This map's name was changed from "c" to cd (see |netrw-cd|).
This change was done to allow for |netrw-cb| and |netrw-cB| maps.
Associated setting variable: |g:netrw_keepdir|
@ -2607,13 +2611,29 @@ your browsing preferences. (see also: |netrw-settings|)
a script/function to handle the given
extension. (see |netrw_filehandler|).
*g:netrw_browsex_support_remote*
specify if the specified viewer supports a
remote URL. (see |netrw-handler|).
*g:netrw_chgperm* Unix/Linux: "chmod PERM FILENAME"
Windows: "cacls FILENAME /e /p PERM"
Used to change access permission for a file.
*g:netrw_clipboard* =1
By default, netrw will attempt to insure that
the clipboard's values will remain unchanged.
However, some users report that they have
speed problems with this; consequently, this
option, when set to zero, lets such users
prevent netrw from saving and restoring the
clipboard (the latter is done only as needed).
That means that if the clipboard is changed
(inadvertently) by normal netrw operation that
it will not be restored to its prior state.
*g:netrw_compress* ="gzip"
Will compress marked files with this
command
Will compress marked files with this
command
*g:Netrw_corehandler* Allows one to specify something additional
to do when handling <core> files via netrw's
@ -2639,12 +2659,23 @@ your browsing preferences. (see also: |netrw-settings|)
=2 cul u-cuc cul u-cuc
=3 cul u-cuc cul cuc
=4 cul cuc cul cuc
=5 U-cul U-cuc U-cul U-cuc
=6 U-cul U-cuc cul U-cuc
=7 cul U-cuc cul U-cuc
=8 cul U-cuc cul cuc
Where
u-cul : user's |'cursorline'| setting used
u-cuc : user's |'cursorcolumn'| setting used
cul : |'cursorline'| locally set
cuc : |'cursorcolumn'| locally set
u-cul : user's |'cursorline'| initial setting used
u-cuc : user's |'cursorcolumn'| initial setting used
U-cul : user's |'cursorline'| current setting used
U-cuc : user's |'cursorcolumn'| current setting used
cul : |'cursorline'| will be locally set
cuc : |'cursorcolumn'| will be locally set
The "initial setting" means the values of
the |'cuc'| and |'cul'| settings in effect when
netrw last saw |g:netrw_cursor| >= 5 or when
netrw was initially run.
*g:netrw_decompress* = { ".gz" : "gunzip" ,
".bz2" : "bunzip2" ,
@ -2654,7 +2685,7 @@ your browsing preferences. (see also: |netrw-settings|)
decompression programs.
*g:netrw_dirhistmax* =10: controls maximum quantity of past
history. May be zero to supppress
history. May be zero to suppress
history.
(related: |netrw-qb| |netrw-u| |netrw-U|)
@ -3142,6 +3173,9 @@ To open a new file in netrw's current directory, press "%". This map
will query the user for a new filename; an empty file by that name will
be placed in the netrw's current directory (ie. b:netrw_curdir).
If Lexplore (|netrw-:Lexplore|) is in use, the new file will be generated
in the |g:netrw_chgwin| window.
Related topics: |netrw-d|
@ -3809,7 +3843,7 @@ netrw:
Decho.vim is provided as a "vimball"; see |vimball-intro|. You
should edit the Decho.vba.gz file and source it in: >
vim Decho.vba.gz
vim Decho.vba.gz
:so %
:q
<
@ -3877,6 +3911,32 @@ netrw:
==============================================================================
12. History *netrw-history* {{{1
v171: Oct 09, 2020 * included code in s:NetrwOptionsSafe()
to allow |'bh'| to be set to delete when
rather than hide when g:netrw_fastbrowse
was zero.
* Installed |g:netrw_clipboard| setting
* Installed option bypass for |'guioptions'|
a/A settings
* Changed popup_beval() to |popup_atcursor|()
in netrw#ErrorMsg (lacygoill). Apparently
popup_beval doesn't reliably close the
popup when the mouse is moved.
* VimEnter() now using win_execute to examine
buffers for an attempt to open a directory.
Avoids issues with popups/terminal from
command line. (lacygoill)
Jun 28, 2021 * (zeertzjq) provided a patch for use of
xmap,xno instead of vmap,vno in
netrwPlugin.vim. Avoids entanglement with
select mode.
Jul 14, 2021 * Fixed problem addressed by tst976; opening
a file using tree mode, going up a
directory, and opening a file there was
opening the file in the wrong directory.
Jul 28, 2021 * (Ingo Karkat) provided a patch fixing an
E488 error with netrwPlugin.vim
(occurred for vim versions < 8.02)
v170: Mar 11, 2020 * (reported by Reiner Herrmann) netrw+tree
would not hide with the ^\..* pattern
correctly.
@ -3893,7 +3953,7 @@ netrw:
Jun 07, 2020 * (reported by Jo Totland) repeatedly invoking
:Lexplore and quitting it left unused
hidden buffers. Netrw will now set netrw
buffers created by :Lexplore to |bh|=wipe.
buffers created by :Lexplore to |'bh'|=wipe.
v169: Dec 20, 2019 * (reported by amkarthik) that netrw's x
(|netrw-x|) would throw an error when
attempting to open a local directory.

View File

@ -1,4 +1,4 @@
*pi_zip.txt* For Vim version 8.2. Last change: 2020 Jan 07
*pi_zip.txt* For Vim version 8.2. Last change: 2021 Nov 08
+====================+
| Zip File Interface |
@ -102,6 +102,9 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
==============================================================================
4. History *zip-history* {{{1
v32 Oct 22, 2021 * to avoid an issue with a vim 8.2 patch, zipfile: has
been changed to zipfile:// . This often shows up
as zipfile:/// with zipped files that are root-based.
v29 Apr 02, 2017 * (Klartext) reported that an encrypted zip file could
opened but the swapfile held unencrypted contents.
The solution is to edit the contents of a zip file

View File

@ -1,4 +1,4 @@
*popup.txt* For Vim version 8.2. Last change: 2021 Feb 21
*popup.txt* For Vim version 8.2. Last change: 2021 Aug 15
VIM REFERENCE MANUAL by Bram Moolenaar
@ -260,6 +260,7 @@ popup_close({id} [, {result}]) *popup_close()*
Can also be used as a |method|: >
GetPopup()->popup_close()
popup_create({what}, {options}) *popup_create()*
Open a popup window showing {what}, which is either:
- a buffer number
@ -284,6 +285,7 @@ popup_create({what}, {options}) *popup_create()*
Can also be used as a |method|: >
GetText()->popup_create({})
popup_dialog({what}, {options}) *popup_dialog()*
Just like |popup_create()| but with these default options: >
call popup_create({what}, #{
@ -307,6 +309,7 @@ popup_dialog({what}, {options}) *popup_dialog()*
Can also be used as a |method|: >
GetText()->popup_dialog({})
popup_filter_menu({id}, {key}) *popup_filter_menu()*
Filter that can be used for a popup. These keys can be used:
j <Down> <C-N> select item below
@ -386,6 +389,7 @@ popup_getoptions({id}) *popup_getoptions()*
Can also be used as a |method|: >
GetPopup()->popup_getoptions()
popup_getpos({id}) *popup_getpos()*
Return the position and size of popup {id}. Returns a Dict
with these entries:
@ -414,6 +418,7 @@ popup_getpos({id}) *popup_getpos()*
Can also be used as a |method|: >
GetPopup()->popup_getpos()
popup_hide({id}) *popup_hide()*
If {id} is a displayed popup, hide it now. If the popup has a
filter it will not be invoked for so long as the popup is
@ -425,6 +430,7 @@ popup_hide({id}) *popup_hide()*
Can also be used as a |method|: >
GetPopup()->popup_hide()
popup_list() *popup_list()*
Return a List with the |window-ID| of all existing popups.
@ -468,6 +474,7 @@ popup_menu({what}, {options}) *popup_menu()*
< Can also be used as a |method|: >
GetChoices()->popup_menu({})
popup_move({id}, {options}) *popup_move()*
Move popup {id} to the position specified with {options}.
{options} may contain the items from |popup_create()| that
@ -486,6 +493,7 @@ popup_move({id}, {options}) *popup_move()*
Can also be used as a |method|: >
GetPopup()->popup_move(options)
popup_notification({what}, {options}) *popup_notification()*
Show the {what} for 3 seconds at the top of the Vim window.
This works like: >
@ -515,12 +523,6 @@ popup_notification({what}, {options}) *popup_notification()*
Can also be used as a |method|: >
GetText()->popup_notification({})
popup_show({id}) *popup_show()*
If {id} is a hidden popup, show it now.
For {id} see `popup_hide()`.
If {id} is the info popup it will be positioned next to the
current popup menu item.
popup_setoptions({id}, {options}) *popup_setoptions()*
Override options in popup {id} with entries in {options}.
@ -557,6 +559,7 @@ popup_setoptions({id}, {options}) *popup_setoptions()*
Can also be used as a |method|: >
GetPopup()->popup_setoptions(options)
popup_settext({id}, {text}) *popup_settext()*
Set the text of the buffer in popup win {id}. {text} is the
same as supplied to |popup_create()|, except that a buffer
@ -567,6 +570,14 @@ popup_settext({id}, {text}) *popup_settext()*
Can also be used as a |method|: >
GetPopup()->popup_settext('hello')
popup_show({id}) *popup_show()*
If {id} is a hidden popup, show it now.
For {id} see `popup_hide()`.
If {id} is the info popup it will be positioned next to the
current popup menu item.
==============================================================================
3. Usage *popup-usage*
@ -670,6 +681,9 @@ The second argument of |popup_create()| is a dictionary with options:
popup does not have a border. As soon as dragging
starts and "pos" is "center" it is changed to
"topleft".
dragall TRUE to allow the popup to be dragged from every
position. Makes it very difficult to select text in
the popup.
resize TRUE to allow the popup to be resized with the mouse
by grabbing at the bottom right corner. Has no effect
if the popup does not have a border.
@ -904,6 +918,8 @@ Some recommended key actions:
cursor keys select another entry
Tab accept current suggestion
When CTRL-C is pressed the popup is closed, the filter will not be invoked.
A mouse click arrives as <LeftMouse>. The coordinates can be obtained with
|getmousepos()|.

View File

@ -1,4 +1,4 @@
*print.txt* For Vim version 8.2. Last change: 2020 Aug 15
*print.txt* For Vim version 8.2. Last change: 2021 Oct 04
VIM REFERENCE MANUAL by Bram Moolenaar
@ -717,7 +717,7 @@ There are a couple of points to bear in mind:
==============================================================================
8. Formfeed Characters *printing-formfeed*
By default Vim does not do any special processing of |formfeed| control
By default Vim does not do any special processing of formfeed control
characters. Setting the 'printoptions' formfeed item will make Vim recognize
formfeed characters and continue printing the current line at the beginning
of the first line on a new page. The use of formfeed characters provides

View File

@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.2. Last change: 2021 Mar 29
*quickref.txt* For Vim version 8.2. Last change: 2021 Oct 17
VIM REFERENCE MANUAL by Bram Moolenaar
@ -732,6 +732,7 @@ Short explanation of each option: *option-list*
'guifontset' 'gfs' GUI: Names of multibyte fonts to be used
'guifontwide' 'gfw' list of font names for double-wide characters
'guiheadroom' 'ghr' GUI: pixels room for window decorations
'guiligatures' 'gli' GTK GUI: ASCII characters that can form shapes
'guioptions' 'go' GUI: Which components and options are used
'guipty' GUI: try to use a pseudo-tty for ":!" commands
'guitablabel' 'gtl' GUI: custom label for a tab page
@ -948,6 +949,7 @@ Short explanation of each option: *option-list*
'textmode' 'tx' obsolete, use 'fileformat'
'textwidth' 'tw' maximum width of text that is being inserted
'thesaurus' 'tsr' list of thesaurus files for keyword completion
'thesaurusfunc' 'tsrfu' function to be used for thesaurus completion
'tildeop' 'top' tilde command "~" behaves like an operator
'timeout' 'to' time out on mappings and key codes
'timeoutlen' 'tm' time out time in milliseconds

View File

@ -1,4 +1,4 @@
*repeat.txt* For Vim version 8.2. Last change: 2021 Jun 27
*repeat.txt* For Vim version 8.2. Last change: 2021 Nov 24
VIM REFERENCE MANUAL by Bram Moolenaar
@ -792,6 +792,10 @@ won't be very helpful.
There is a separate command-line history for debug mode.
NOTE: In Vim9 script, if a command is written at the script level and
continues on the next line, not using the old way with a backslash for line
continuation, only the first line is printed before the debugging prompt.
The line number for a function line is relative to the start of the function.
If you have trouble figuring out where you are, edit the file that defines
the function in another Vim, search for the start of the function and do
@ -893,8 +897,12 @@ DEFINING BREAKPOINTS
Sets a breakpoint, that will break whenever the {expression}
evaluates to a different value. Example: >
:breakadd expr g:lnum
< Will break, whenever the global variable lnum changes.
Errors in evaluation are suppressed, you can use the name of a
variable that does not exist yet. This also means you will
not notice anything if the expression has a mistake.
Note if you watch a |script-variable| this will break
when switching scripts, since the script variable is only
valid in the script where it has been defined and if that

View File

@ -53,6 +53,8 @@ The color of the column is set with the SignColumn highlight group
:highlight SignColumn guibg=darkgrey
<
If 'cursorline' is enabled, then the CursorLineSign highlight group is used
|hl-CursorLineSign|.
*sign-identifier*
Each placed sign is identified by a number called the sign identifier. This
identifier is used to jump to the sign or to remove the sign. The identifier
@ -146,6 +148,10 @@ See |sign_define()| for the equivalent Vim script function.
texthl={group}
Highlighting group used for the text item.
culhl={group}
Highlighting group used for the text item when the cursor is
on the same line as the sign and 'cursorline' is enabled.
Example: >
:sign define MySign text=>> texthl=Search linehl=DiffText
<
@ -393,6 +399,9 @@ sign_define({list})
text text that is displayed when there is no icon
or the GUI is not being used.
texthl highlight group used for the text item
culhl highlight group used for the text item when
the cursor is on the same line as the sign and
'cursorline' is enabled.
If the sign named {name} already exists, then the attributes
of the sign are updated.
@ -437,6 +446,9 @@ sign_getdefined([{name}]) *sign_getdefined()*
text text that is displayed when there is no icon
or the GUI is not being used.
texthl highlight group used for the text item
culhl highlight group used for the text item when
the cursor is on the same line as the sign and
'cursorline' is enabled.
Returns an empty List if there are no signs and when {name} is
not found.
@ -451,13 +463,13 @@ sign_getdefined([{name}]) *sign_getdefined()*
Can also be used as a |method|: >
GetSignList()->sign_getdefined()
sign_getplaced([{expr} [, {dict}]]) *sign_getplaced()*
sign_getplaced([{buf} [, {dict}]]) *sign_getplaced()*
Return a list of signs placed in a buffer or all the buffers.
This is similar to the |:sign-place-list| command.
If the optional buffer name {expr} is specified, then only the
If the optional buffer name {buf} is specified, then only the
list of signs placed in that buffer is returned. For the use
of {expr}, see |bufname()|. The optional {dict} can contain
of {buf}, see |bufname()|. The optional {dict} can contain
the following entries:
group select only signs in this group
id select sign with this identifier
@ -515,12 +527,13 @@ sign_getplaced([{expr} [, {dict}]]) *sign_getplaced()*
GetBufname()->sign_getplaced()
<
*sign_jump()*
sign_jump({id}, {group}, {expr})
Open the buffer {expr} or jump to the window that contains
{expr} and position the cursor at sign {id} in group {group}.
sign_jump({id}, {group}, {buf})
Open the buffer {buf} or jump to the window that contains
{buf} and position the cursor at sign {id} in group {group}.
This is similar to the |:sign-jump| command.
For the use of {expr}, see |bufname()|.
If {group} is an empty string, then the global group is used.
For the use of {buf}, see |bufname()|.
Returns the line number of the sign. Returns -1 if the
arguments are invalid.
@ -533,9 +546,9 @@ sign_jump({id}, {group}, {expr})
GetSignid()->sign_jump()
<
*sign_place()*
sign_place({id}, {group}, {name}, {expr} [, {dict}])
sign_place({id}, {group}, {name}, {buf} [, {dict}])
Place the sign defined as {name} at line {lnum} in file or
buffer {expr} and assign {id} and {group} to sign. This is
buffer {buf} and assign {id} and {group} to sign. This is
similar to the |:sign-place| command.
If the sign identifier {id} is zero, then a new identifier is
@ -546,12 +559,12 @@ sign_place({id}, {group}, {name}, {expr} [, {dict}])
and |sign-group| for more information.
{name} refers to a defined sign.
{expr} refers to a buffer name or number. For the accepted
{buf} refers to a buffer name or number. For the accepted
values, see |bufname()|.
The optional {dict} argument supports the following entries:
lnum line number in the file or buffer
{expr} where the sign is to be placed.
{buf} where the sign is to be placed.
For the accepted values, see |line()|.
priority priority of the sign. See
|sign-priority| for more information.

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.2. Last change: 2021 Jul 02
*syntax.txt* For Vim version 8.2. Last change: 2021 Nov 20
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1081,33 +1081,47 @@ This works immediately.
CLOJURE *ft-clojure-syntax*
The default syntax groups can be augmented through the
*g:clojure_syntax_keywords* and *b:clojure_syntax_keywords* variables. The
value should be a |Dictionary| of syntax group names to a |List| of custom
identifiers:
*g:clojure_syntax_keywords*
Syntax highlighting of public vars in "clojure.core" is provided by default,
but additional symbols can be highlighted by adding them to the
|g:clojure_syntax_keywords| variable. The value should be a |Dictionary| of
syntax group names, each containing a |List| of identifiers.
>
let g:clojure_syntax_keywords = {
\ 'clojureMacro': ["defproject", "defcustom"],
\ 'clojureFunc': ["string/join", "string/replace"]
\ 'clojureMacro': ["defproject", "defcustom"],
\ 'clojureFunc': ["string/join", "string/replace"]
\ }
<
Refer to the Clojure syntax script for valid syntax group names.
If the |buffer-variable| *b:clojure_syntax_without_core_keywords* is set, only
language constants and special forms are matched.
There is also *b:clojure_syntax_keywords* which is a buffer-local variant of
this variable intended for use by plugin authors to highlight symbols
dynamically.
Setting *g:clojure_fold* enables folding Clojure code via the syntax engine.
Any list, vector, or map that extends over more than one line can be folded
using the standard Vim |fold-commands|.
By setting the *b:clojure_syntax_without_core_keywords* variable, vars from
"clojure.core" will not be highlighted by default. This is useful for
namespaces that have set `(:refer-clojure :only [])`
Please note that this option does not work with scripts that redefine the
bracket syntax regions, such as rainbow-parentheses plugins.
This option is off by default.
*g:clojure_fold*
Setting |g:clojure_fold| to `1` will enable the folding of Clojure code. Any
list, vector or map that extends over more than one line can be folded using
the standard Vim |fold-commands|.
*g:clojure_discard_macro*
Set this variable to `1` to enable basic highlighting of Clojure's "discard
reader macro".
>
" Default
let g:clojure_fold = 0
#_(defn foo [x]
(println x))
<
Note that this option will not correctly highlight stacked discard macros
(e.g. `#_#_`).
COBOL *cobol.vim* *ft-cobol-syntax*
@ -1132,11 +1146,13 @@ The ColdFusion syntax file is based on the HTML syntax file.
CPP *cpp.vim* *ft-cpp-syntax*
Most of things are same as |ft-c-syntax|.
Most things are the same as |ft-c-syntax|.
Variable Highlight ~
cpp_no_cpp11 don't highlight C++11 standard items
cpp_no_cpp14 don't highlight C++14 standard items
cpp_no_cpp17 don't highlight C++17 standard items
cpp_no_cpp20 don't highlight C++20 standard items
CSH *csh.vim* *ft-csh-syntax*
@ -1517,6 +1533,14 @@ gvim display. Here, statements are colored LightYellow instead of Yellow, and
conditionals are LightBlue for better distinction.
FORTH *forth.vim* *ft-forth-syntax*
Files matching "*.fs" could be F# or Forth. If the automatic detection
doesn't work for you, or you don't edit F# at all, use this in your
startup vimrc: >
:let filetype_fs = "forth"
FORTRAN *fortran.vim* *ft-fortran-syntax*
Default highlighting and dialect ~
@ -1671,16 +1695,6 @@ as Fvwm2 configuration files, add the following: >
:au! BufNewFile,BufRead /etc/X11/fvwm2/* let b:fvwm_version = 2 |
\ set filetype=fvwm
If you'd like Vim to highlight all valid color names, tell it where to
find the color database (rgb.txt) on your system. Do this by setting
"rgb_file" to its location. Assuming your color database is located
in /usr/X11/lib/X11/, you should add the line >
:let rgb_file = "/usr/X11/lib/X11/rgb.txt"
to your .vimrc file.
GSP *gsp.vim* *ft-gsp-syntax*
The default coloring style for GSP pages is defined by |html.vim|, and
@ -4828,16 +4842,28 @@ in their own color.
Doesn't work recursively, thus you can't use
":colorscheme" in a color scheme script.
To customize a color scheme use another name, e.g.
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
<
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 the
|ColorSchemePre| autocommand event is triggered.
After the color scheme has been loaded the
|ColorScheme| autocommand event is triggered.
< 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
@ -4847,6 +4873,7 @@ in their own color.
:hi[ghlight] {group-name}
List one highlight group.
*highlight-clear*
:hi[ghlight] clear Reset all highlighting to the defaults. Removes all
highlighting for groups added by the user!
Uses the current value of 'background' to decide which
@ -4860,7 +4887,9 @@ in their own color.
:hi[ghlight] [default] {group-name} {key}={arg} ..
Add a highlight group, or change the highlighting for
an existing group.
an existing group. If a given color name is not
recognized, each `colors/lists/default.vim` found on
|'runtimepath'| will be loaded.
See |highlight-args| for the {key}={arg} arguments.
See |:highlight-default| for the optional [default]
argument.
@ -5141,8 +5170,35 @@ guisp={color-name} *highlight-guisp*
"gg" is the Green value
"bb" is the Blue value
All values are hexadecimal, range from "00" to "ff". Examples: >
:highlight Comment guifg=#11f0c3 guibg=#ff00ff
:highlight Comment guifg=#11f0c3 guibg=#ff00ff
<
If you are authoring a color scheme and use the same hexademical value
repeatedly, you can define a name for it in |v:colornames|. For
example: >
# provide a default value for this color but allow the user to
# override it.
:call extend(v:colornames, {'alt_turquoise': '#11f0c3'}, 'keep')
:highlight Comment guifg=alt_turquoise guibg=magenta
<
If you are using a color scheme that relies on named colors and you
would like to adjust the precise appearance of those colors, you can
do so by overriding the values in |v:colornames| prior to loading the
scheme: >
let v:colornames['alt_turquoise'] = '#22f0d3'
colorscheme alt
<
If you want to develop a color list that can be relied on by others,
it is best to prefix your color names. By convention these color lists
are placed in the colors/lists directory. You can see an example in
'$VIMRUNTIME/colors/lists/csscolors.vim'. This list would be sourced
by a color scheme using: >
:runtime colors/lists/csscolors.vim
:highlight Comment guifg=css_turquoise
<
*highlight-groups* *highlight-default*
These are the default highlighting groups. These groups are used by the
'highlight' option default. Note that the highlighting depends on the value
@ -5201,9 +5257,12 @@ LineNrAbove Line number for when the 'relativenumber'
LineNrBelow Line number for when the 'relativenumber'
option is set, below the cursor line.
*hl-CursorLineNr*
CursorLineNr Like LineNr when 'cursorline' is set and 'cursorlineopt' is
set to "number" or "both", or 'relativenumber' is set, for
the cursor line.
CursorLineNr Like LineNr when 'cursorline' is set and 'cursorlineopt'
contains "number" or is "both", for the cursor line.
*hl-CursorLineSign*
CursorLineSign Like SignColumn when 'cursorline' is set for the cursor line.
*hl-CursorLineFold*
CursorLineFold Like FoldColumn when 'cursorline' is set for the cursor line.
*hl-MatchParen*
MatchParen The character under the cursor or just before it, if it
is a paired bracket, and its match. |pi_paren.txt|
@ -5430,7 +5489,7 @@ For Unix you can use the file ~/.vim/after/syntax/syncolor.vim. Example: >
else
highlight comment ctermfg=green guifg=green
endif
<
*E679*
Do make sure this syncolor.vim script does not use a "syntax on", set the
'background' option or uses a "colorscheme" command, because it results in an
@ -5443,11 +5502,11 @@ depends on the color scheme file. See |:colorscheme|.
*syntax_cmd*
The "syntax_cmd" variable is set to one of these values when the
syntax/syncolor.vim files are loaded:
"on" ":syntax on" command. Highlight colors are overruled but
"on" `:syntax on` command. Highlight colors are overruled but
links are kept
"enable" ":syntax enable" command. Only define colors for groups that
don't have highlighting yet. Use ":syntax default".
"reset" ":syntax reset" command or loading a color scheme. Define all
"enable" `:syntax enable` command. Only define colors for groups that
don't have highlighting yet. Use `:highlight default` .
"reset" `:syntax reset` command or loading a color scheme. Define all
the colors.
"skip" Don't define colors. Used to skip the default settings when a
syncolor.vim file earlier in 'runtimepath' has already set

View File

@ -302,6 +302,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'gfs' options.txt /*'gfs'*
'gfw' options.txt /*'gfw'*
'ghr' options.txt /*'ghr'*
'gli' options.txt /*'gli'*
'go' options.txt /*'go'*
'go-!' options.txt /*'go-!'*
'go-A' options.txt /*'go-A'*
@ -339,6 +340,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'guifontset' options.txt /*'guifontset'*
'guifontwide' options.txt /*'guifontwide'*
'guiheadroom' options.txt /*'guiheadroom'*
'guiligatures' options.txt /*'guiligatures'*
'guioptions' options.txt /*'guioptions'*
'guipty' options.txt /*'guipty'*
'guitablabel' options.txt /*'guitablabel'*
@ -1138,6 +1140,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'tgc' options.txt /*'tgc'*
'tgst' options.txt /*'tgst'*
'thesaurus' options.txt /*'thesaurus'*
'thesaurusfunc' options.txt /*'thesaurusfunc'*
'tildeop' options.txt /*'tildeop'*
'timeout' options.txt /*'timeout'*
'timeoutlen' options.txt /*'timeoutlen'*
@ -2077,6 +2080,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:XMLent insert.txt /*:XMLent*
:XMLns insert.txt /*:XMLns*
:[range] motion.txt /*:[range]*
:[vV\x16] autocmd.txt /*:[vV\\x16]*
:\bar cmdline.txt /*:\\bar*
:_! cmdline.txt /*:_!*
:_# cmdline.txt /*:_#*
@ -2303,10 +2307,12 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:command-completion-custom map.txt /*:command-completion-custom*
:command-completion-customlist map.txt /*:command-completion-customlist*
:command-count map.txt /*:command-count*
:command-keepscript map.txt /*:command-keepscript*
:command-modifiers map.txt /*:command-modifiers*
:command-nargs map.txt /*:command-nargs*
:command-range map.txt /*:command-range*
:command-register map.txt /*:command-register*
:command-repl map.txt /*:command-repl*
:command-verbose map.txt /*:command-verbose*
:comment cmdline.txt /*:comment*
:comp quickfix.txt /*:comp*
@ -2320,6 +2326,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:cope quickfix.txt /*:cope*
:copen quickfix.txt /*:copen*
:copy change.txt /*:copy*
:count_quit windows.txt /*:count_quit*
:cp quickfix.txt /*:cp*
:cpf quickfix.txt /*:cpf*
:cpfile quickfix.txt /*:cpfile*
@ -3501,6 +3508,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:y change.txt /*:y*
:yank change.txt /*:yank*
:z various.txt /*:z*
:z! various.txt /*:z!*
:z# various.txt /*:z#*
:~ change.txt /*:~*
; motion.txt /*;*
@ -3983,7 +3991,15 @@ E121 eval.txt /*E121*
E1214 eval.txt /*E1214*
E122 eval.txt /*E122*
E123 eval.txt /*E123*
E1231 map.txt /*E1231*
E1232 eval.txt /*E1232*
E1233 eval.txt /*E1233*
E1237 map.txt /*E1237*
E1239 eval.txt /*E1239*
E124 eval.txt /*E124*
E1243 options.txt /*E1243*
E1244 message.txt /*E1244*
E1245 cmdline.txt /*E1245*
E125 eval.txt /*E125*
E126 eval.txt /*E126*
E127 eval.txt /*E127*
@ -4740,7 +4756,7 @@ E835 options.txt /*E835*
E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837*
E838 netbeans.txt /*E838*
E839 insert.txt /*E839*
E839 message.txt /*E839*
E84 windows.txt /*E84*
E840 insert.txt /*E840*
E841 map.txt /*E841*
@ -4793,6 +4809,7 @@ E885 sign.txt /*E885*
E886 starting.txt /*E886*
E887 if_pyth.txt /*E887*
E888 pattern.txt /*E888*
E889 message.txt /*E889*
E89 message.txt /*E89*
E890 syntax.txt /*E890*
E891 eval.txt /*E891*
@ -4835,7 +4852,7 @@ E924 quickfix.txt /*E924*
E925 quickfix.txt /*E925*
E926 quickfix.txt /*E926*
E927 eval.txt /*E927*
E928 eval.txt /*E928*
E928 message.txt /*E928*
E929 starting.txt /*E929*
E93 windows.txt /*E93*
E930 eval.txt /*E930*
@ -4934,6 +4951,7 @@ FileChangedRO autocmd.txt /*FileChangedRO*
FileChangedShell autocmd.txt /*FileChangedShell*
FileChangedShellPost autocmd.txt /*FileChangedShellPost*
FileEncoding autocmd.txt /*FileEncoding*
FileExplorer autocmd.txt /*FileExplorer*
FileReadCmd autocmd.txt /*FileReadCmd*
FileReadPost autocmd.txt /*FileReadPost*
FileReadPre autocmd.txt /*FileReadPre*
@ -5008,6 +5026,7 @@ Macintosh os_mac.txt /*Macintosh*
Mark motion.txt /*Mark*
MenuPopup autocmd.txt /*MenuPopup*
MiNT os_mint.txt /*MiNT*
ModeChanged autocmd.txt /*ModeChanged*
Moolenaar intro.txt /*Moolenaar*
MorphOS os_amiga.txt /*MorphOS*
Motif gui_x11.txt /*Motif*
@ -5165,6 +5184,10 @@ TabNew autocmd.txt /*TabNew*
Tcl if_tcl.txt /*Tcl*
TermChanged autocmd.txt /*TermChanged*
TermResponse autocmd.txt /*TermResponse*
TermdebugStartPost terminal.txt /*TermdebugStartPost*
TermdebugStartPre terminal.txt /*TermdebugStartPre*
TermdebugStopPost terminal.txt /*TermdebugStopPost*
TermdebugStopPre terminal.txt /*TermdebugStopPre*
Terminal-Job terminal.txt /*Terminal-Job*
Terminal-Normal terminal.txt /*Terminal-Normal*
Terminal-mode terminal.txt /*Terminal-mode*
@ -5221,6 +5244,7 @@ WORD motion.txt /*WORD*
WWW intro.txt /*WWW*
Win32 os_win32.txt /*Win32*
WinBar gui.txt /*WinBar*
WinClosed autocmd.txt /*WinClosed*
WinEnter autocmd.txt /*WinEnter*
WinLeave autocmd.txt /*WinLeave*
WinNew autocmd.txt /*WinNew*
@ -5542,10 +5566,12 @@ beval_winnr-variable eval.txt /*beval_winnr-variable*
binary-number eval.txt /*binary-number*
bitwise-function usr_41.txt /*bitwise-function*
blob eval.txt /*blob*
blob-functions usr_41.txt /*blob-functions*
blob-identity eval.txt /*blob-identity*
blob-index eval.txt /*blob-index*
blob-literal eval.txt /*blob-literal*
blob-modification eval.txt /*blob-modification*
blob2list() eval.txt /*blob2list()*
blockwise-examples visual.txt /*blockwise-examples*
blockwise-operators visual.txt /*blockwise-operators*
blockwise-register change.txt /*blockwise-register*
@ -5911,7 +5937,10 @@ compl-keyword insert.txt /*compl-keyword*
compl-omni insert.txt /*compl-omni*
compl-omni-filetypes insert.txt /*compl-omni-filetypes*
compl-spelling insert.txt /*compl-spelling*
compl-stop insert.txt /*compl-stop*
compl-tag insert.txt /*compl-tag*
compl-thesaurus insert.txt /*compl-thesaurus*
compl-thesaurusfunc insert.txt /*compl-thesaurusfunc*
compl-vim insert.txt /*compl-vim*
compl-whole-line insert.txt /*compl-whole-line*
complete() eval.txt /*complete()*
@ -6312,6 +6341,7 @@ execute-menus gui.txt /*execute-menus*
exepath() eval.txt /*exepath()*
exim starting.txt /*exim*
exists() eval.txt /*exists()*
exists_compiled() eval.txt /*exists_compiled()*
exiting starting.txt /*exiting*
exiting-variable eval.txt /*exiting-variable*
exp() eval.txt /*exp()*
@ -6532,7 +6562,6 @@ format-bullet-list tips.txt /*format-bullet-list*
format-comments change.txt /*format-comments*
format-formatexpr change.txt /*format-formatexpr*
formatting change.txt /*formatting*
formfeed intro.txt /*formfeed*
fortran.vim syntax.txt /*fortran.vim*
friendship intro.txt /*friendship*
frombook usr_01.txt /*frombook*
@ -6591,6 +6620,7 @@ ft-fortran-plugin filetype.txt /*ft-fortran-plugin*
ft-fortran-syntax syntax.txt /*ft-fortran-syntax*
ft-fvwm-syntax syntax.txt /*ft-fvwm-syntax*
ft-gitcommit-plugin filetype.txt /*ft-gitcommit-plugin*
ft-gprof-plugin filetype.txt /*ft-gprof-plugin*
ft-groff-syntax syntax.txt /*ft-groff-syntax*
ft-gsp-syntax syntax.txt /*ft-gsp-syntax*
ft-haskell-syntax syntax.txt /*ft-haskell-syntax*
@ -6765,6 +6795,7 @@ g:ada_with_gnat_project_files ft_ada.txt /*g:ada_with_gnat_project_files*
g:ada_withuse_ordinary ft_ada.txt /*g:ada_withuse_ordinary*
g:clojure_align_multiline_strings indent.txt /*g:clojure_align_multiline_strings*
g:clojure_align_subforms indent.txt /*g:clojure_align_subforms*
g:clojure_discard_macro syntax.txt /*g:clojure_discard_macro*
g:clojure_fold syntax.txt /*g:clojure_fold*
g:clojure_fuzzy_indent indent.txt /*g:clojure_fuzzy_indent*
g:clojure_fuzzy_indent_blacklist indent.txt /*g:clojure_fuzzy_indent_blacklist*
@ -6824,10 +6855,12 @@ g:netrw_altv pi_netrw.txt /*g:netrw_altv*
g:netrw_banner pi_netrw.txt /*g:netrw_banner*
g:netrw_bannerbackslash pi_netrw.txt /*g:netrw_bannerbackslash*
g:netrw_browse_split pi_netrw.txt /*g:netrw_browse_split*
g:netrw_browsex_support_remote pi_netrw.txt /*g:netrw_browsex_support_remote*
g:netrw_browsex_viewer pi_netrw.txt /*g:netrw_browsex_viewer*
g:netrw_bufsettings pi_netrw.txt /*g:netrw_bufsettings*
g:netrw_chgperm pi_netrw.txt /*g:netrw_chgperm*
g:netrw_chgwin pi_netrw.txt /*g:netrw_chgwin*
g:netrw_clipboard pi_netrw.txt /*g:netrw_clipboard*
g:netrw_compress pi_netrw.txt /*g:netrw_compress*
g:netrw_ctags pi_netrw.txt /*g:netrw_ctags*
g:netrw_cursor pi_netrw.txt /*g:netrw_cursor*
@ -6942,6 +6975,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: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*
g:tex_conceal syntax.txt /*g:tex_conceal*
@ -7184,6 +7218,7 @@ gui-x11-printing gui_x11.txt /*gui-x11-printing*
gui-x11-start gui_x11.txt /*gui-x11-start*
gui-x11-various gui_x11.txt /*gui-x11-various*
gui.txt gui.txt /*gui.txt*
gui_running eval.txt /*gui_running*
gui_w32.txt gui_w32.txt /*gui_w32.txt*
gui_x11.txt gui_x11.txt /*gui_x11.txt*
guifontwide_gtk gui.txt /*guifontwide_gtk*
@ -7240,7 +7275,6 @@ help-translated helphelp.txt /*help-translated*
help-writing helphelp.txt /*help-writing*
help-xterm-window helphelp.txt /*help-xterm-window*
help.txt help.txt /*help.txt*
helpfile_name.txt helphelp.txt /*helpfile_name.txt*
helphelp helphelp.txt /*helphelp*
helphelp.txt helphelp.txt /*helphelp.txt*
hex-editing tips.txt /*hex-editing*
@ -7252,6 +7286,7 @@ hidden-options options.txt /*hidden-options*
hidden-quit windows.txt /*hidden-quit*
highlight-args syntax.txt /*highlight-args*
highlight-changed version4.txt /*highlight-changed*
highlight-clear syntax.txt /*highlight-clear*
highlight-cterm syntax.txt /*highlight-cterm*
highlight-ctermbg syntax.txt /*highlight-ctermbg*
highlight-ctermfg syntax.txt /*highlight-ctermfg*
@ -7287,7 +7322,9 @@ hl-Cursor syntax.txt /*hl-Cursor*
hl-CursorColumn syntax.txt /*hl-CursorColumn*
hl-CursorIM syntax.txt /*hl-CursorIM*
hl-CursorLine syntax.txt /*hl-CursorLine*
hl-CursorLineFold syntax.txt /*hl-CursorLineFold*
hl-CursorLineNr syntax.txt /*hl-CursorLineNr*
hl-CursorLineSign syntax.txt /*hl-CursorLineSign*
hl-DiffAdd syntax.txt /*hl-DiffAdd*
hl-DiffChange syntax.txt /*hl-DiffChange*
hl-DiffDelete syntax.txt /*hl-DiffDelete*
@ -7345,7 +7382,9 @@ hl-debugBreakpoint terminal.txt /*hl-debugBreakpoint*
hl-debugPC terminal.txt /*hl-debugPC*
hlID() eval.txt /*hlID()*
hlexists() eval.txt /*hlexists()*
hlget() eval.txt /*hlget()*
hlsearch-variable eval.txt /*hlsearch-variable*
hlset() eval.txt /*hlset()*
holy-grail index.txt /*holy-grail*
home intro.txt /*home*
home-replace editing.txt /*home-replace*
@ -7466,6 +7505,7 @@ i_CTRL-X_CTRL-T insert.txt /*i_CTRL-X_CTRL-T*
i_CTRL-X_CTRL-U insert.txt /*i_CTRL-X_CTRL-U*
i_CTRL-X_CTRL-V insert.txt /*i_CTRL-X_CTRL-V*
i_CTRL-X_CTRL-Y insert.txt /*i_CTRL-X_CTRL-Y*
i_CTRL-X_CTRL-Z insert.txt /*i_CTRL-X_CTRL-Z*
i_CTRL-X_CTRL-] insert.txt /*i_CTRL-X_CTRL-]*
i_CTRL-X_index index.txt /*i_CTRL-X_index*
i_CTRL-X_s insert.txt /*i_CTRL-X_s*
@ -7684,6 +7724,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-multispace options.txt /*lcs-multispace*
lcs-nbsp options.txt /*lcs-nbsp*
lcs-precedes options.txt /*lcs-precedes*
lcs-space options.txt /*lcs-space*
@ -7718,6 +7759,7 @@ list-identity eval.txt /*list-identity*
list-index eval.txt /*list-index*
list-modification eval.txt /*list-modification*
list-repeat windows.txt /*list-repeat*
list2blob() eval.txt /*list2blob()*
list2str() eval.txt /*list2str()*
listener_add() eval.txt /*listener_add()*
listener_flush() eval.txt /*listener_flush()*
@ -7770,6 +7812,7 @@ lua-funcref if_lua.txt /*lua-funcref*
lua-list if_lua.txt /*lua-list*
lua-luaeval if_lua.txt /*lua-luaeval*
lua-vim if_lua.txt /*lua-vim*
lua-vim-variables if_lua.txt /*lua-vim-variables*
lua-window if_lua.txt /*lua-window*
lua.vim syntax.txt /*lua.vim*
luaeval() eval.txt /*luaeval()*
@ -8381,6 +8424,7 @@ operator-variable eval.txt /*operator-variable*
option-backslash options.txt /*option-backslash*
option-list quickref.txt /*option-list*
option-summary options.txt /*option-summary*
option-value-function options.txt /*option-value-function*
option-window options.txt /*option-window*
option_restore() todo.txt /*option_restore()*
option_save() todo.txt /*option_save()*
@ -8503,6 +8547,7 @@ plugin usr_05.txt /*plugin*
plugin-details filetype.txt /*plugin-details*
plugin-filetype usr_41.txt /*plugin-filetype*
plugin-special usr_41.txt /*plugin-special*
plugin_name.txt helphelp.txt /*plugin_name.txt*
pmbcs-option print.txt /*pmbcs-option*
pmbfn-option print.txt /*pmbfn-option*
popt-option print.txt /*popt-option*
@ -8613,6 +8658,7 @@ prompt_setprompt() eval.txt /*prompt_setprompt()*
promptbuffer-functions usr_41.txt /*promptbuffer-functions*
pronounce intro.txt /*pronounce*
prop_add() textprop.txt /*prop_add()*
prop_add_list() textprop.txt /*prop_add_list()*
prop_clear() textprop.txt /*prop_clear()*
prop_find() textprop.txt /*prop_find()*
prop_list() textprop.txt /*prop_list()*
@ -8654,6 +8700,7 @@ python-command if_pyth.txt /*python-command*
python-commands if_pyth.txt /*python-commands*
python-current if_pyth.txt /*python-current*
python-dynamic if_pyth.txt /*python-dynamic*
python-environment if_pyth.txt /*python-environment*
python-error if_pyth.txt /*python-error*
python-eval if_pyth.txt /*python-eval*
python-examples if_pyth.txt /*python-examples*
@ -8900,6 +8947,7 @@ save-file editing.txt /*save-file*
save-settings starting.txt /*save-settings*
scheme.vim syntax.txt /*scheme.vim*
scp pi_netrw.txt /*scp*
scratch-buffer windows.txt /*scratch-buffer*
screenattr() eval.txt /*screenattr()*
screenchar() eval.txt /*screenchar()*
screenchars() eval.txt /*screenchars()*
@ -9027,6 +9075,9 @@ simulated-command vi_diff.txt /*simulated-command*
sin() eval.txt /*sin()*
single-repeat repeat.txt /*single-repeat*
sinh() eval.txt /*sinh()*
sizeofint-variable eval.txt /*sizeofint-variable*
sizeoflong-variable eval.txt /*sizeoflong-variable*
sizeofpointer-variable eval.txt /*sizeofpointer-variable*
skeleton autocmd.txt /*skeleton*
skip_defaults_vim starting.txt /*skip_defaults_vim*
slice eval.txt /*slice*
@ -9646,6 +9697,7 @@ termcap-title term.txt /*termcap-title*
termdebug-commands terminal.txt /*termdebug-commands*
termdebug-communication terminal.txt /*termdebug-communication*
termdebug-customizing terminal.txt /*termdebug-customizing*
termdebug-events terminal.txt /*termdebug-events*
termdebug-example terminal.txt /*termdebug-example*
termdebug-prompt terminal.txt /*termdebug-prompt*
termdebug-starting terminal.txt /*termdebug-starting*
@ -9775,6 +9827,7 @@ timestamps editing.txt /*timestamps*
tips tips.txt /*tips*
tips.txt tips.txt /*tips.txt*
tmux syntax.txt /*tmux*
tmux-integration term.txt /*tmux-integration*
todo todo.txt /*todo*
todo.txt todo.txt /*todo.txt*
toggle options.txt /*toggle*
@ -9796,6 +9849,7 @@ try-echoerr eval.txt /*try-echoerr*
try-finally eval.txt /*try-finally*
try-nested eval.txt /*try-nested*
try-nesting eval.txt /*try-nesting*
tsrfu' options.txt /*tsrfu'*
tutor usr_01.txt /*tutor*
twice if_cscop.txt /*twice*
two-engines pattern.txt /*two-engines*
@ -9900,6 +9954,7 @@ v:charconvert_to eval.txt /*v:charconvert_to*
v:cmdarg eval.txt /*v:cmdarg*
v:cmdbang eval.txt /*v:cmdbang*
v:collate eval.txt /*v:collate*
v:colornames eval.txt /*v:colornames*
v:completed_item eval.txt /*v:completed_item*
v:count eval.txt /*v:count*
v:count1 eval.txt /*v:count1*
@ -9955,6 +10010,9 @@ v:scrollstart eval.txt /*v:scrollstart*
v:searchforward eval.txt /*v:searchforward*
v:servername eval.txt /*v:servername*
v:shell_error eval.txt /*v:shell_error*
v:sizeofint eval.txt /*v:sizeofint*
v:sizeoflong eval.txt /*v:sizeoflong*
v:sizeofpointer eval.txt /*v:sizeofpointer*
v:statusmsg eval.txt /*v:statusmsg*
v:swapchoice eval.txt /*v:swapchoice*
v:swapcommand eval.txt /*v:swapcommand*
@ -10176,7 +10234,12 @@ vim-raku ft_raku.txt /*vim-raku*
vim-script-intro usr_41.txt /*vim-script-intro*
vim-use intro.txt /*vim-use*
vim-variable eval.txt /*vim-variable*
vim.b if_lua.txt /*vim.b*
vim.g if_lua.txt /*vim.g*
vim.t if_lua.txt /*vim.t*
vim.v if_lua.txt /*vim.v*
vim.vim syntax.txt /*vim.vim*
vim.w if_lua.txt /*vim.w*
vim7 version7.txt /*vim7*
vim8 version8.txt /*vim8*
vim9 vim9.txt /*vim9*
@ -10189,6 +10252,7 @@ vim9-declarations usr_46.txt /*vim9-declarations*
vim9-differences vim9.txt /*vim9-differences*
vim9-export vim9.txt /*vim9-export*
vim9-final vim9.txt /*vim9-final*
vim9-function-defined-later vim9.txt /*vim9-function-defined-later*
vim9-gotchas vim9.txt /*vim9-gotchas*
vim9-ignored-argument vim9.txt /*vim9-ignored-argument*
vim9-import vim9.txt /*vim9-import*
@ -10196,6 +10260,7 @@ vim9-lambda vim9.txt /*vim9-lambda*
vim9-lambda-arguments vim9.txt /*vim9-lambda-arguments*
vim9-mix vim9.txt /*vim9-mix*
vim9-namespace vim9.txt /*vim9-namespace*
vim9-no-dict-function vim9.txt /*vim9-no-dict-function*
vim9-rationale vim9.txt /*vim9-rationale*
vim9-reload vim9.txt /*vim9-reload*
vim9-scopes vim9.txt /*vim9-scopes*

View File

@ -1,4 +1,4 @@
*term.txt* For Vim version 8.2. Last change: 2021 Jan 14
*term.txt* For Vim version 8.2. Last change: 2021 Aug 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -126,6 +126,37 @@ automatically, you can try using something like this: >
exec "set t_PS=\e[200~"
exec "set t_PE=\e[201~"
endif
<
*tmux-integration*
If you experience issues when running Vim inside tmux, here are a few hints.
You can comment-out parts if something doesn't work (it may depend on the
terminal that tmux is running in): >
if !has('gui_running') && &term =~ '^\%(screen\|tmux\)'
" Better mouse support, see :help 'ttymouse'
set ttymouse=sgr
" Enable true colors, see :help xterm-true-color
let &termguicolors = v:true
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
" Enable bracketed paste mode, see :help xterm-bracketed-paste
let &t_BE = "\<Esc>[?2004h"
let &t_BD = "\<Esc>[?2004l"
let &t_PS = "\<Esc>[200~"
let &t_PE = "\<Esc>[201~"
" Enable focus event tracking, see :help xterm-focus-event
let &t_fe = "\<Esc>[?1004h"
let &t_fd = "\<Esc>[?1004l"
" Enable modified arrow keys, see :help xterm-modifier-keys
execute "silent! set <xUp>=\<Esc>[@;*A"
execute "silent! set <xDown>=\<Esc>[@;*B"
execute "silent! set <xRight>=\<Esc>[@;*C"
execute "silent! set <xLeft>=\<Esc>[@;*D"
endif
<
*cs7-problem*
Note: If the terminal settings are changed after running Vim, you might have
@ -559,6 +590,11 @@ Focus event tracking is disabled by a 't_fd' sequence when exiting "raw" mode.
If you would like to disable this feature, add the following to your .vimrc:
`set t_fd=`
`set t_fe=`
If your terminal does support this but Vim does not recognize the terminal,
you may have to set the options yourself: >
let &t_fe = "\<Esc>[?1004h"
let &t_fd = "\<Esc>[?1004l"
If this causes garbage to show when Vim starts up then it doesn't work.
*termcap-colors*
Note about colors: The 't_Co' option tells Vim the number of colors available.

View File

@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.2. Last change: 2021 Feb 13
*terminal.txt* For Vim version 8.2. Last change: 2021 Nov 13
VIM REFERENCE MANUAL by Bram Moolenaar
@ -168,9 +168,6 @@ terminal window will start with a white or black background.
To use a different color the Terminal highlight group can be used, for
example: >
hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
The highlight needs to be defined before the terminal is created. Doing it
later, or setting 'wincolor', will only have effect when the program running
in the terminal displays text or clears the terminal.
Instead of Terminal another group can be specified with the "term_highlight"
option for `term_start()`.
@ -243,7 +240,7 @@ Command syntax ~
++shell Instead of executing {command}
directly, use a shell, like with
`:!command` *E279*
{only works on Unix currently}
{only works on Unix and MS-Windows}
++kill={how} When trying to close the terminal
window kill the job with {how}. See
|term_setkill()| for the values.
@ -752,18 +749,6 @@ term_sendkeys({buf}, {keys}) *term_sendkeys()*
GetBufnr()->term_sendkeys(keys)
term_setapi({buf}, {expr}) *term_setapi()*
Set the function name prefix to be used for the |terminal-api|
function in terminal {buf}. For example: >
:call term_setapi(buf, "Myapi_")
:call term_setapi(buf, "")
<
The default is "Tapi_". When {expr} is an empty string then
no |terminal-api| function can be used for {buf}.
When used as a method the base is used for {buf}: >
GetBufnr()->term_setapi({expr})
term_setansicolors({buf}, {colors}) *term_setansicolors()*
Set the ANSI color palette used by terminal {buf}.
{colors} must be a List of 16 valid color names or hexadecimal
@ -799,6 +784,20 @@ term_setansicolors({buf}, {colors}) *term_setansicolors()*
< {only available with GUI enabled and/or the |+termguicolors|
feature}
term_setapi({buf}, {expr}) *term_setapi()*
Set the function name prefix to be used for the |terminal-api|
function in terminal {buf}. For example: >
:call term_setapi(buf, "Myapi_")
:call term_setapi(buf, "")
<
The default is "Tapi_". When {expr} is an empty string then
no |terminal-api| function can be used for {buf}.
When used as a method the base is used for {buf}: >
GetBufnr()->term_setapi({expr})
term_setkill({buf}, {how}) *term_setkill()*
When exiting Vim or trying to close the terminal window in
another way, {how} defines whether the job in the terminal can
@ -872,7 +871,8 @@ term_start({cmd} [, {options}]) *term_start()*
"term_name" name to use for the buffer name, instead
of the command name.
"term_rows" vertical size to use for the terminal,
instead of using 'termwinsize'
instead of using 'termwinsize'; valid
range is from zero to 1000
"term_cols" horizontal size to use for the terminal,
instead of using 'termwinsize'
"vertical" split the window vertically; note that
@ -1352,6 +1352,33 @@ Other commands ~
*:Asm* jump to the window with the disassembly, create it if there
isn't one
Events ~
*termdebug-events*
Four autocommands can be used: >
au User TermdebugStartPre echomsg 'debugging starting'
au User TermdebugStartPost echomsg 'debugging started'
au User TermdebugStopPre echomsg 'debugging stopping'
au User TermdebugStopPost echomsg 'debugging stopped'
<
*TermdebugStartPre*
TermdebugStartPre Before starting debugging.
Not triggered if the debugger is already
running or |g:termdebugger| cannot be
executed.
*TermdebugStartPost*
TermdebugStartPost After debugging has initialized.
If a "!" bang is passed to `:Termdebug` or
`:TermdebugCommand` the event is triggered
before running the provided command in gdb.
*TermdebugStopPre*
TermdebugStopPre Before debugging ends, when gdb is terminated,
most likely after issuing a "quit" command in
the gdb window.
*TermdebugStopPost*
TermdebugStopPost After debugging has ended, gdb-related windows
are closed, debug buffers wiped out and
the state before the debugging was restored.
Prompt mode ~
*termdebug-prompt*
@ -1396,11 +1423,11 @@ communication channel.
Customizing ~
GDB command *termdebug-customizing*
To change the name of the gdb command, set the "termdebugger" variable before
GDB command *termdebug-customizing*
*g:termdebugger*
To change the name of the gdb command, set the "g:termdebugger" variable before
invoking `:Termdebug`: >
let termdebugger = "mygdb"
let g:termdebugger = "mygdb"
< *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

View File

@ -1,4 +1,4 @@
*testing.txt* For Vim version 8.2. Last change: 2021 Jul 07
*testing.txt* For Vim version 8.2. Last change: 2021 Aug 15
VIM REFERENCE MANUAL by Bram Moolenaar
@ -46,6 +46,7 @@ test_alloc_fail({id}, {countdown}, {repeat}) *test_alloc_fail()*
Can also be used as a |method|: >
GetAllocId()->test_alloc_fail()
test_autochdir() *test_autochdir()*
Set a flag to enable the effect of 'autochdir' before Vim
startup has finished.
@ -59,6 +60,7 @@ test_feedinput({string}) *test_feedinput()*
Can also be used as a |method|: >
GetText()->test_feedinput()
test_garbagecollect_now() *test_garbagecollect_now()*
Like garbagecollect(), but executed right away. This must
only be called directly to avoid any structure to exist
@ -83,14 +85,14 @@ test_getvalue({name}) *test_getvalue()*
test_gui_drop_files({list}, {row}, {col}, {mods})
Drop one or more files in {list} in the window at {row}, {col}.
This function only works when the GUI is running and the
|drag-n-drop| feature is present.
|drop_file| feature is present.
The supported values for {mods} are:
0x4 Shift
0x8 Alt
0x10 Ctrl
The files are added to the argument list and the first file in
{list} is edited in the window. See |drag-n-drop| for more
The files are added to the |argument-list| and the first file
in {list} is edited in the window. See |drag-n-drop| for more
information.
*test_gui_mouse_event()*
@ -132,6 +134,7 @@ test_ignore_error({expr}) *test_ignore_error()*
Can also be used as a |method|: >
GetErrorText()->test_ignore_error()
test_null_blob() *test_null_blob()*
Return a |Blob| that is null. Only useful for testing.
@ -166,13 +169,6 @@ test_null_string() *test_null_string()*
Return a |String| that is null. Only useful for testing.
test_unknown() *test_unknown()*
Return a value with unknown type. Only useful for testing.
test_void() *test_void()*
Return a value with void type. Only useful for testing.
test_option_not_set({name}) *test_option_not_set()*
Reset the flag that indicates option {name} was set. Thus it
looks like it still has the default value. Use like this: >
@ -224,6 +220,7 @@ test_override({name}, {val}) *test_override()*
< Can also be used as a |method|: >
GetOverrideVal()-> test_override('starting')
test_refcount({expr}) *test_refcount()*
Return the reference count of {expr}. When {expr} is of a
type that does not have a reference count, returns -1. Only
@ -253,6 +250,7 @@ test_scrollbar({which}, {value}, {dragging}) *test_scrollbar()*
Can also be used as a |method|: >
GetValue()->test_scrollbar('right', 0)
test_setmouse({row}, {col}) *test_setmouse()*
Set the mouse position to be used for the next mouse action.
{row} and {col} are one based.
@ -260,6 +258,7 @@ test_setmouse({row}, {col}) *test_setmouse()*
call test_setmouse(4, 20)
call feedkeys("\<LeftMouse>", "xt")
test_settime({expr}) *test_settime()*
Set the time Vim uses internally. Currently only used for
timestamps in the history, as they are used in viminfo, and
@ -272,10 +271,19 @@ test_settime({expr}) *test_settime()*
Can also be used as a |method|: >
GetTime()->test_settime()
test_srand_seed([seed]) *test_srand_seed()*
When [seed] is given this sets the seed value used by
`srand()`. When omitted the test seed is removed.
test_unknown() *test_unknown()*
Return a value with unknown type. Only useful for testing.
test_void() *test_void()*
Return a value with void type. Only useful for testing.
==============================================================================
3. Assert functions *assert-functions-details*
@ -446,7 +454,7 @@ assert_notmatch({pattern}, {actual} [, {msg}])
assert_report({msg}) *assert_report()*
Report a test failure directly, using {msg}.
Report a test failure directly, using String {msg}.
Always returns one.
Can also be used as a |method|: >

View File

@ -1,4 +1,4 @@
*textprop.txt* For Vim version 8.2. Last change: 2021 May 26
*textprop.txt* For Vim version 8.2. Last change: 2021 Nov 23
VIM REFERENCE MANUAL by Bram Moolenaar
@ -108,6 +108,9 @@ prop_type_list([{props}]) get list of property types
Manipulating text properties:
prop_add({lnum}, {col}, {props}) add a text property
prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...])
add a text property at multiple
positions.
prop_clear({lnum} [, {lnum-end} [, {bufnr}]])
remove all text properties
prop_find({props} [, {direction}]) search for a text property
@ -157,6 +160,35 @@ prop_add({lnum}, {col}, {props})
Can also be used as a |method|: >
GetLnum()->prop_add(col, props)
<
*prop_add_list()*
prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...])
Similar to prop_add(), but attaches a text property at
multiple positions in a buffer.
{props} is a dictionary with these fields:
bufnr buffer to add the property to; when omitted
the current buffer is used
id user defined ID for the property; must be a
number; when omitted zero is used
type name of the text property type
All fields except "type" are optional.
The second argument is a List of Lists where each list
specifies the starting and ending position of the text. The
first two items {lnum} and {col} specify the starting position
of the text where the property will be attached and the last
two items {end-lnum} and {end-col} specify the position just
after the text.
Example:
call prop_add_list(#{type: 'MyProp', id: 2},
\ [[1, 4, 1, 7],
\ [1, 15, 1, 20],
\ [2, 30, 3, 30]]
Can also be used as a |method|: >
GetProp()->prop_add_list([[1, 1, 1, 2], [1, 4, 1, 8]])
prop_clear({lnum} [, {lnum-end} [, {props}]]) *prop_clear()*
@ -198,13 +230,25 @@ prop_find({props} [, {direction}])
prop_list({lnum} [, {props}]) *prop_list()*
Return a List with all text properties in line {lnum}.
Returns a List with all the text properties in line {lnum}.
When {props} contains a "bufnr" item, use this buffer instead
of the current buffer.
The following optional items are supported in {props}:
bufnr use this buffer instead of the current buffer
end_lnum return text properties in all the lines
between {lnum} and {end_lnum} (inclusive).
A negative value is used as an offset from the
last buffer line; -1 refers to the last buffer
line.
types List of property type names. Return only text
properties that match one of the type names.
ids List of property identifiers. Return only text
properties with one of these identifiers.
The properties are ordered by starting column and priority.
Each property is a Dict with these entries:
lnum starting line number. Present only when
returning text properties between {lnum} and
{end_lnum}.
col starting column
length length in bytes, one more if line break is
included
@ -221,6 +265,30 @@ prop_list({lnum} [, {props}]) *prop_list()*
When "end" is zero the property continues in the next line.
The line break after this line is included.
Returns an empty list on error.
Examples:
" get text properties placed in line 5
echo prop_list(5)
" get text properties placed in line 20 in buffer 4
echo prop_list(20, {'bufnr': 4})
" get all the text properties between line 1 and 20
echo prop_list(1, {'end_lnum': 20})
" get all the text properties of type 'myprop'
echo prop_list(1, {'types': ['myprop'],
\ 'end_lnum': -1})
" get all the text properties of type 'prop1' or 'prop2'
echo prop_list(1, {'types': ['prop1', 'prop2'],
\ 'end_lnum': -1})
" get all the text properties with ID 8
echo prop_list(1, {'ids': [8], 'end_lnum': line('$')})
" get all the text properties with ID 10 and 20
echo prop_list(1, {'ids': [10, 20], 'end_lnum': -1})
" get text properties with type 'myprop' and ID 100
" in buffer 4.
echo prop_list(1, {'bufnr': 4, 'types': ['myprop'],
\ 'ids': [100], 'end_lnum': -1})
Can also be used as a |method|: >
GetLnum()->prop_list()
<

View File

@ -1,4 +1,4 @@
*tips.txt* For Vim version 8.2. Last change: 2020 Dec 29
*tips.txt* For Vim version 8.2. Last change: 2021 Nov 06
VIM REFERENCE MANUAL by Bram Moolenaar
@ -549,6 +549,7 @@ the current window, try this custom `:HelpCurwin` command:
endif
if !getcompletion(a:subject, 'help')->empty()
execute mods .. ' edit ' .. &helpfile
set buftype=help
endif
return 'help ' .. a:subject
endfunction

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.2. Last change: 2021 Jul 26
*todo.txt* For Vim version 8.2. Last change: 2021 Nov 26
VIM REFERENCE MANUAL by Bram Moolenaar
@ -38,14 +38,15 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs*
-------------------- Known bugs and current work -----------------------
Try out callgrind with kcachegrind.
refactor ex_let_one() to subfunctions.
Vim9 - Make everything work:
- "filter #pat# ls" should work, #pat# is not a comment
vim9script
edit foobar
filter #foobar# ls
- Check TODO items in vim9compile.c and vim9execute.c
- use CheckLegacyAndVim9Success(lines) in many more places
This doesn't work - Test_list_assign():
var l = [0]
l[:] = [1, 2]
- For builtin functions using tv_get_string*() use check_for_string() to be
more strict about the argument type (not a bool).
done: balloon_()
@ -60,6 +61,7 @@ Vim9 - Make everything work:
defined.
- Unexpected error message when using "var x: any | x.key = 9", because "x" is
given the type number. Can we use VAR_ANY?
- Check performance with callgrind and kcachegrind.
Once Vim9 is stable:
- Add the "vim9script" feature, can use has('vim9script')
@ -75,8 +77,11 @@ Further Vim9 improvements, possibly after launch:
'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'.
Give an error if compilation fails. (#7625)
Alternatively: Detect a compiled function call and skip the expression
evaluation.
Use the location where the option was set for deciding whether it's to be
evaluated in Vim9 script context.
- Handle command that is only a range more efficient than calling ISN_EXEC
- implement :type, "import type"
- implement enum, "import enum".
- implement class and interface: See |vim9-classes|
@ -215,14 +220,17 @@ Terminal emulator window:
- When 'encoding' is not utf-8, or the job is using another encoding, setup
conversions.
Include patch #6290: recognize shell directory change.
When using 'cryptmethod' xchaha20 the undo file is not encrypted.
Need to handle extra bytes.
Test_communicate_ipv6(): is flaky on many systems
Fails in line 64 of Ch_communicate, no exception is thrown.
Patch for Template string: #4634
Have another look at the implementation.
Add expanding <script> which works like <sfile> everywhere. #9189
Rename getdigraphlist -> digraph_getlist() etc.
Valgrind reports memory leaks in test_options.
@ -235,7 +243,6 @@ Valgrind reports overlapping memcpy in
test_normal
test_popupwin.35 et al.
test_search_stat
Using uninitialized value in test_crypt (can't explain why).
Memory leak in test_debugger
Memory leak in test_paste, using XtOpenDisplay several times
OLD:
@ -244,6 +251,8 @@ Memory leak in test_alot with pyeval() (allocating partial)
Memory leak in test_alot with expand()
Memory leaks in test_channel? (or is it because of fork())
Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red.
":set &shellpipe" and ":set &shellredir" should use the logic from
initialization to figure out the default value from 'shell'. Add a test for
this.
@ -258,21 +267,22 @@ Problem that a previous silent ":throw" causes a following try/catch not to
work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)
Also see #8487 for an example.
Patch for Template string: #4634
Have another look at the implementation.
Patch to implement the vimtutor with a plugin: #6414
Was originally written by Felipe Morales.
Request to use "." for the cursor column in search pattern \%<.c and \%<.v.
(#8179)
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
for the builtin xterm termcap.
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
(#4087) Did patch 8.2.2379 help?
Also, z= in German on a long word can take a very long time, but CTRL-C to
interrupt does not work. Where to add ui_breakcheck()?
Remove SPACE_IN_FILENAME ? It is only used for completion.
New English spell files also have very slow suggestions.
Searching for \%'> does not find anything when using line Visual selection.
Probably because it's using MAXCOL. #8238
@ -291,8 +301,6 @@ Scroll doesn't work correctly, why?
glob() and globfile() do not always honor 'wildignorecase'. #8350
globpath() does not use 'wildignorecase' at all?
":find" incorrectly searches parent directory of path (#8533)
Add 'termguiattr' option, use "gui=" attributes in the terminal? Would work
with 'termguicolors'. #1740
@ -305,9 +313,6 @@ Missing filetype test for bashrc, PKGBUILD, etc.
Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co
changes.
MS-Windows: instead of "edit with multiple Vims" use "Edit with Vim in
multiple tabs". #8404
When using ":bwipe!" also get rid of references to be buffer, e.g. in the
jumplist and alternate file.
@ -368,10 +373,6 @@ autocommands for the buffer lifecycle:
BufIsRenamed (after buffer ID gets another name)
The buffer list and windows are locked, no changes possible
Add a ModeChanged autocommand that has an argument indicating the old and new
mode, as what's returned from mode(). Also used for switching Terminal mode.
#8360, #7863, #7363
Matchparen doesn't remove highlight after undo. (#7054)
Is OK when syntax HL is active.
@ -433,6 +434,9 @@ undo result wrong: Masato Nishihata, #4798
After recovering from a swap file the undofile should not be used, it causes
corruption. (#6631)
When the computer crashes while writing the undofile, the contents may be
lost. Write to a temp file, fsync and rename. (#8879)
When 'lazyredraw' is set sometimes the title is not updated.
(Jason Franklin, 2020 Feb 3) Looks like a race condition.
@ -630,36 +634,31 @@ Window size changes after closing a tab. (#4741)
Problem with colors in terminal window. (Jason Franklin, 2019 May 12)
Lifepillar: Updated/cleaned up color schemes:
https://github.com/lifepillar/vim8-colorschemes.
Include a few color schemes, based on popularity:
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
Color schemes:
NOTE: modernizing the default colorschemes _AND_ introducing new ones is now
a project in its own right: https://github.com/vim/colorschemes. Feel free to
reach out if you want to lend a hand.
- Lifepillar: Updated/cleaned up color schemes:
https://github.com/lifepillar/vim8-colorschemes.
- Include a few color schemes, based on popularity:
- http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
http://vimawesome.com/?q=tag:color-scheme
Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
- monokai - Xia Crusoe (2017 Aug 4)
- seoul256 - Christian Brabandt (2017 Aug 3)
- gruvbox - Christian Brabandt (2017 Aug 3) (simplified version from
Lifepillar, 2018 Jan 22, #2573)
- janah - Marco Hinz (2017 Aug 4)
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
Suggested by Hiroki Kokubun:
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
- [hybrid](https://github.com/w0ng/vim-hybrid)
Include solarized color scheme?, it does not support termguicolors.
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
- Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
- monokai - Xia Crusoe (2017 Aug 4)
- seoul256 - Christian Brabandt (2017 Aug 3)
- gruvbox - Christian Brabandt (2017 Aug 3) (simplified version from
Lifepillar, 2018 Jan 22, #2573)
- janah - Marco Hinz (2017 Aug 4)
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
- Suggested by Hiroki Kokubun:
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
- [hybrid](https://github.com/w0ng/vim-hybrid)
- Include solarized color scheme?, it does not support termguicolors.
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019
Mar 5)
Many users don't like 'thesaurus' to match so many words. (#4667, #1611)
- when the match with the first word is partial, don't add other words on that
line.
- support other file formats, such as comma separated. Indicate by a prefix
to the file in the 'thesaurus' option.
- 'threglookexp' option: only match with first word in thesaurus file.
(Jakson A. Aquino, 2006 Jun 14)
Some composing characters actually add a cell width to the character they are
on top off, making the whole thing two characters wide. (#4526)
@ -724,9 +723,6 @@ tab page. (Ingo Karkat, #4324)
This modeline throws unexpected errors: (#4165)
vim: syn=nosyntax
":doau SomeEvent" gives "No matching autocommands". This message doesn't give
a hint about how to fix it. (#4300)
Make balloon_show() work outside of 'balloonexpr'? Users expect it to work:
#2948. (related to #1512?)
Also see #2352, want better control over balloon, perhaps set the position.
@ -1046,6 +1042,9 @@ matchit hasn't been maintained for a long time. #955.
Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)
'delcombine' does not work for the command line. (Tony Mechelynck, 2009 Jul
20)
MS-Windows: buffer completion doesn't work when using backslash (or slash)
for a path separator. (xtal8, #2201)
@ -2307,9 +2306,6 @@ for GTK clipboard. Avoid requirement for iconv.
Now that colnr_T is int instead of unsigned, more type casts can be removed.
'delcombine' does not work for the command line. (Tony Mechelynck, 2009 Jul
20)
Don't load macmap.vim on startup, turn it into a plugin. (Ron Aaron,
2009 Apr 7) Reminder Apr 14.
@ -4163,6 +4159,9 @@ Printing:
Syntax highlighting:
Long term goal: faster, better, etc. Options:
- use treesitter, NeoVim uses it
- use TextMate, vscode uses it. #9087
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
@ -4850,7 +4849,6 @@ Autocommands:
command used dos fileformat. Same for 'fileencoding'.
- Add events to autocommands:
Error - When an error happens
ModeChange - after changing mode (before waiting for a char)
VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
when exiting isn't a good idea.
CursorHoldC - CursorHold while command-line editing

View File

@ -1,4 +1,4 @@
*usr_06.txt* For Vim version 8.2. Last change: 2019 Jun 01
*usr_06.txt* For Vim version 8.2. Last change: 2021 Nov 07
VIM USER MANUAL - by Bram Moolenaar
@ -184,7 +184,30 @@ this command: >
:runtime syntax/colortest.vim
You will see text in various color combinations. You can check which ones are
readable and look nice.
readable and look nice. These aren't the only colors available to you though.
You can specify #rrggbb hex colors and you can define new names for hex
colors in |v:colornames| like so: >
let v:colornames['mine_red'] = '#aa0000'
<
If you are authoring a color scheme for others to use, it is important
to define these colors only when they do not exist: >
call extend(v:colornames, {'mine_red': '#aa0000'}, 'keep')
This allows users of the color scheme to override the precise definition of
that color prior to loading your color scheme. For example, in a |.vimrc|
file:
runtime colors/lists/css_colors.vim
let v:colornames['your_red'] = v:colornames['css_red']
colorscheme yourscheme
As a color scheme author, you should be able to rely on some color names for
GUI colors. These are defined in `colors/lists/default.vim`. All such files
found on the |'runtimepath'| are loaded each time the colorscheme command is
run. A canonical list is provided by the vim distribution, which should
include all X11 colors (previously defined in rgb.txt).
==============================================================================
*06.4* With colors or without colors

View File

@ -1,4 +1,4 @@
*usr_20.txt* For Vim version 8.2. Last change: 2006 Apr 24
*usr_20.txt* For Vim version 8.2. Last change: 2021 Nov 18
VIM USER MANUAL - by Bram Moolenaar
@ -289,11 +289,11 @@ In chapter 3 we briefly mentioned the history. The basics are that you can
use the <Up> key to recall an older command line. <Down> then takes you back
to newer commands.
There are actually four histories. The ones we will mention here are for ":"
There are actually five histories. The ones we will mention here are for ":"
commands and for "/" and "?" search commands. The "/" and "?" commands share
the same history, because they are both search commands. The two other
histories are for expressions and input lines for the input() function.
|cmdline-history|
the same history, because they are both search commands. The three other
histories are for expressions, debug mode commands and input lines for the
input() function. |cmdline-history|
Suppose you have done a ":set" command, typed ten more colon commands and then
want to repeat that ":set" command again. You could press ":" and then ten

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.2. Last change: 2021 Jul 19
*usr_41.txt* For Vim version 8.2. Last change: 2021 Sep 10
VIM USER MANUAL - by Bram Moolenaar
@ -723,6 +723,10 @@ Floating point computation: *float-functions*
isinf() check for infinity
isnan() check for not a number
Blob manipulation: *blob-functions*
blob2list() get a list of numbers from a blob
list2blob() get a blob from a list of numbers
Other computation: *bitwise-function*
and() bitwise AND
invert() bitwise invert
@ -921,6 +925,8 @@ Syntax and highlighting: *syntax-functions* *highlighting-functions*
getmatches() get all matches defined by |matchadd()| and
the |:match| commands
hlexists() check if a highlight group exists
hlget() get highlight group attributes
hlset() set highlight group attributes
hlID() get ID of a highlight group
synID() get syntax ID at a specific position
synIDattr() get a specific attribute of a syntax ID
@ -1161,6 +1167,7 @@ Prompt Buffer: *promptbuffer-functions*
Text Properties: *text-property-functions*
prop_add() attach a property at a position
prop_add_list() attach a property at multiple positions
prop_clear() remove all properties from a line or lines
prop_find() search for a property
prop_list() return a list of all properties in a line
@ -1182,6 +1189,7 @@ Various: *various-functions*
state() get current busy state
visualmode() last visual mode used
exists() check if a variable, function, etc. exists
exists_compiled() like exists() but check at compile time
has() check if a feature is supported in Vim
changenr() return number of most recent change
cscope_connection() check if a cscope connection exists
@ -1447,6 +1455,8 @@ is a List with arguments.
Function references are most useful in combination with a Dictionary, as is
explained in the next section.
More information about defining your own functions here: |user-functions|.
==============================================================================
*41.8* Lists and Dictionaries

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 8.2. Last change: 2021 Mar 23
*various.txt* For Vim version 8.2. Last change: 2021 Sep 06
VIM REFERENCE MANUAL by Bram Moolenaar
@ -170,8 +170,13 @@ g8 Print the hex values of the bytes used in the
If the mark is "=", a line of dashes is printed
around the current line.
:[range]z#[+-^.=][count] *:z#*
Like ":z", but number the lines.
*:z!*
:[range]z![+-^.=][count]
Like ":z", but when [count] is not specified, it
defaults to the Vim window height minus one.
:[range]z[!]#[+-^.=][count] *:z#*
Like ":z" or ":z!", but number the lines.
*:=*
:= [flags] Print the last line number.
@ -418,7 +423,7 @@ N *+multi_lang* non-English language support |multi-lang|
m *+mzscheme* Mzscheme interface |mzscheme|
m *+mzscheme/dyn* Mzscheme interface |mzscheme-dynamic| |/dyn|
m *+netbeans_intg* |netbeans|
*+num64* 64-bit Number support |Number|
*+num64* 64-bit Number support |Number|
Always enabled since 8.2.0271, use v:numbersize to
check the actual size of a Number.
m *+ole* Win32 GUI only: |ole-interface|
@ -466,7 +471,7 @@ N *+textobjects* |text-objects| selection
N *+textprop* |text-properties|
*+tgetent* non-Unix only: able to use external termcap
N *+timers* the |timer_start()| function
N *+title* Setting the window 'title' and 'icon'
N *+title* Setting the window 'title' and 'icon'; Always enabled
N *+toolbar* |gui-toolbar|
T *+user_commands* User-defined commands. |user-commands|
Always enabled since 8.1.1210.

View File

@ -12232,7 +12232,7 @@ Files: Makefile, src/gvim.exe.mnf, src/vim.rc
Patch 6.2.348
Problem: Win32: "vim c:\dir\(test)" doesn't work, because the 'isfname'
default value doesn't contain parenthesis.
default value doesn't contain parentheses.
Solution: Temporarily add '(' and ')' to 'isfname' when expanding file name
arguments.
Files: src/main.c

View File

@ -1,4 +1,4 @@
*vim9.txt* For Vim version 8.2. Last change: 2021 Jul 28
*vim9.txt* For Vim version 8.2. Last change: 2021 Nov 22
VIM REFERENCE MANUAL by Bram Moolenaar
@ -103,9 +103,12 @@ script and `:def` functions; details are below:
writefile(['done'], 'file.txt')
- You cannot use `:xit`, `:t`, `:k`, `:append`, `:change`, `:insert`, `:open`,
and `:s` or `:d` with only flags.
or curly-braces names.
- You cannot use curly-braces names.
- A range before a command must be prefixed with a colon: >
:%s/this/that
- Executing a register with "@r" does not work, you can prepend a colon or use
`:exe`: >
:exe @a
- Unless mentioned specifically, the highest |scriptversion| is used.
@ -154,7 +157,7 @@ Compilation is done when any of these is encountered:
function was defined
- `:disassemble` is used for the function.
- a function that is compiled calls the function or uses it as a function
reference
reference (so that the argument and return types can be checked)
*E1091*
If compilation fails it is not tried again on the next call, instead this
error is given: "E1091: Function is not compiled: {name}".
@ -168,7 +171,7 @@ created yet. In this case you can call `execute()` to invoke it at runtime. >
"closure". A `:def` function always aborts on an error (unless `:silent!` was
used for the command or inside a `:try` block), does not get a 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)
@ -177,6 +180,15 @@ For now you will need to pass the dictionary explicitly: >
var d = {item: 'value', func: DictFunc}
d.func(d, 'item')
You can call a legacy dict function though: >
func Legacy() dict
echo self.value
endfunc
def CallLegacy()
var d = {func: Legacy, value: 'text'}
d.func()
enddef
The argument types and return type need to be specified. The "any" type can
be used, type checking will then be done at runtime, like with legacy
functions.
@ -194,7 +206,7 @@ When a function argument is optional (it has a default value) passing `v:none`
as the argument results in using the default value. This is useful when you
want to specify a value for an argument that comes after an argument that
should use its default value. Example: >
def MyFunc(one = 'one', last = 'last)
def MyFunc(one = 'one', last = 'last')
...
enddef
MyFunc(v:none, 'LAST') # first argument uses default value 'one'
@ -324,19 +336,19 @@ used: >
This is especially useful in a user command: >
command -range Rename {
| var save = @a
| @a = 'some expression'
| echo 'do something with ' .. @a
| @a = save
|}
var save = @a
@a = 'some expression'
echo 'do something with ' .. @a
@a = save
}
And with autocommands: >
au BufWritePre *.go {
| var save = winsaveview()
| silent! exe ':%! some formatting command'
| winrestview(save)
|}
var save = winsaveview()
silent! exe ':%! some formatting command'
winrestview(save)
}
Although using a :def function probably works better.
@ -351,8 +363,8 @@ with `:unlet`.
`:lockvar` does not work on local variables. Use `:const` and `:final`
instead.
The `exists()` function does not work on local variables or arguments. These
are visible at compile time only, not at runtime.
The `exists()` and `exists_compiled()` functions do not work on local variables
or arguments.
Variables, functions and function arguments cannot shadow previously defined
or imported variables and functions in the same script file.
@ -373,6 +385,32 @@ called without "g:". >
echo GlobalFunc()
The "g:" prefix is not needed for auto-load functions.
*vim9-function-defined-later*
Although global functions can be called without the "g:" prefix, they must
exist when compiled. By adding the "g:" prefix the function can be defined
later. Example: >
def CallPluginFunc()
if exists('g:loaded_plugin')
g:PluginFunc()
endif
enddef
If you would do it like this you get an error at compile time that
"PluginFunc" does not exist, even when "g:loaded_plugin" does not exist: >
def CallPluginFunc()
if exists('g:loaded_plugin')
PluginFunc() # Error - function not found
endif
enddef
You can use exists_compiled() to avoid the error, but then the function would
not be called, even when "g:loaded_plugin" is defined later: >
def CallPluginFunc()
if exists_compiled('g:loaded_plugin')
PluginFunc() # Function may never be called
endif
enddef
Since `&opt = value` is now assigning a value to option "opt", ":&" cannot be
used to repeat a `:substitute` command.
*vim9-unpack-ignore*
@ -382,12 +420,11 @@ similar to how a function argument can be ignored: >
To ignore any remaining items: >
[a, b; _] = longList
< *E1092*
Declaring more than one variable at a time, using the unpack notation, is
currently not supported: >
var [v1, v2] = GetValues() # Error!
That is because the type needs to be inferred from the list item type, which
isn't that easy.
possible. Each variable can have a type or infer it from the value: >
var [v1: number, v2] = GetValues()
Use this only when there is a list with values, declaring one variable per
line is much easier to read and change later.
Constants ~
@ -451,7 +488,7 @@ use the command instead: >
If the expression starts with "!" this is interpreted as a shell command, not
negation of a condition. Thus this is a shell command: >
!shellCommand->something
Put the expression in parenthesis to use the "!" for negation: >
Put the expression in parentheses to use the "!" for negation: >
(!expression)->Method()
Note that while variables need to be defined before they can be used,
@ -593,7 +630,7 @@ at the start of the line indicates line continuation: >
| echo 'match'
| endif
Note that this means that in heredoc the first line cannot be a bar: >
Note that this means that in heredoc the first line cannot start with a bar: >
var lines =<< trim END
| this doesn't work
END
@ -601,7 +638,7 @@ Either use an empty line at the start or do not use heredoc. Or temporarily
add the "C" flag to 'cpoptions': >
set cpo+=C
var lines =<< trim END
| this doesn't work
| this works
END
set cpo-=C
If the heredoc is inside a function 'cpoptions' must be set before :def and
@ -715,8 +752,8 @@ White space is not allowed:
arg # OK
)
White space space is not allowed in a `:set` command between the option name
and a following "&", "!", "<", "=", "+=", "-=" or "^=".
White space is not allowed in a `:set` command between the option name and a
following "&", "!", "<", "=", "+=", "-=" or "^=".
No curly braces expansion ~
@ -783,6 +820,10 @@ error. Example: >
For loop ~
The loop variable must not exist yet: >
var i = 1
for i in [1, 2, 3] # Error!
Legacy Vim script has some tricks to make a for loop over a list handle
deleting items at the current or previous item. In Vim9 script it just uses
the index, if items are deleted then items in the list will be skipped.
@ -904,9 +945,22 @@ Ex command ranges need to be prefixed with a colon. >
Some Ex commands can be confused with assignments in Vim9 script: >
g:name = value # assignment
g:pattern:cmd # invalid command - ERROR
:g:pattern:cmd # :global command
To avoid confusion between a `:global` or `:substitute` command and an
expression or assignment, a few separators cannot be used when these commands
are abbreviated to a single character: ':', '-' and '.'. >
g:pattern:cmd # invalid command - ERROR
s:pattern:repl # invalid command - ERROR
g-pattern-cmd # invalid command - ERROR
s-pattern-repl # invalid command - ERROR
g.pattern.cmd # invalid command - ERROR
s.pattern.repl # invalid command - ERROR
Also, there cannot be a space between the command and the separator: >
g /pattern/cmd # invalid command - ERROR
s /pattern/repl # invalid command - ERROR
Functions defined with `:def` compile the whole function. Legacy functions
can bail out, and the following lines are not parsed: >
func Maybe()
@ -940,7 +994,8 @@ evaluates to false: >
use-feature
endif
enddef
< *vim9-user-command*
The `exists_compiled()` function can also be used for this.
*vim9-user-command*
Another side effect of compiling a function is that the presence of a user
command is checked at compile time. If the user command is defined later an
error will result. This works: >
@ -1066,20 +1121,14 @@ The map argument is a string expression, which is evaluated without the
function scope. Instead, use a lambda: >
def MapList(): list<string>
var list = ['aa', 'bb', 'cc', 'dd']
return range(1, 2)->map(( _, v) => list[v])
return range(1, 2)->map((_, v) => list[v])
enddef
The same is true for commands that are not compiled, such as `:global`.
For these the backtick expansion can be used. Example: >
For commands that are not compiled, such as `:edit`, backtick expansion can be
used and it can use the local scope. Example: >
def Replace()
var newText = 'blah'
g/pattern/s/^/`=newText`/
enddef
Or a script variable can be used: >
var newText = 'blah'
def Replace()
g/pattern/s/^/\=newText/
var fname = 'blah.txt'
edit `=fname`
enddef
Closures defined in a loop will share the same context. For example: >
@ -1270,16 +1319,16 @@ an error, thus breaking backwards compatibility. For example:
- Using a string value when setting a number option.
- Using a number where a string is expected. *E1024*
One consequence is that the item type of a list or dict given to map() must
One consequence is that the item type of a list or dict given to |map()| must
not change. This will give an error in Vim9 script: >
vim9 echo map([1, 2, 3], (i, v) => 'item ' .. i)
echo map([1, 2, 3], (i, v) => 'item ' .. i)
E1012: Type mismatch; expected number but got string
Instead use |mapnew(): >
vim9 echo mapnew([1, 2, 3], (i, v) => 'item ' .. i)
Instead use |mapnew()|: >
echo mapnew([1, 2, 3], (i, v) => 'item ' .. i)
['item 0', 'item 1', 'item 2']
If the item type was determined to be "any" it can change to a more specific
type. E.g. when a list of mixed types gets changed to a list of numbers: >
type. E.g. when a list of mixed types gets changed to a list of strings: >
var mylist = [1, 2.0, '3']
# typename(mylist) == "list<any>"
map(mylist, (i, v) => 'item ' .. i)
@ -1386,11 +1435,10 @@ In case the name is ambiguous, another name can be specified: >
To import all exported items under a specific identifier: >
import * as That from 'thatscript.vim'
{not implemented yet: using "This as That"}
Then you can use "That.EXPORTED_CONST", "That.someValue", etc. You are free
to choose the name "That", but it is highly recommended to use the name of the
script file to avoid confusion.
script file to avoid confusion. Also avoid command names, because the name
will shadow them.
`:import` can also be used in legacy Vim script. The imported items still
become script-local, even when the "s:" prefix is not given.
@ -1407,8 +1455,7 @@ The script name after `import` can be:
- A path not being relative or absolute. This will be found in the
"import" subdirectories of 'runtimepath' entries. The name will usually be
longer and unique, to avoid loading the wrong file.
Note that "after/import" is not used, unless it is explicitly added in
'runtimepath'.
Note that "after/import" is not used.
Once a vim9 script file has been imported, the result is cached and used the
next time the same script is imported. It will not be read again.

View File

@ -1,4 +1,4 @@
*visual.txt* For Vim version 8.2. Last change: 2021 May 30
*visual.txt* For Vim version 8.2. Last change: 2021 Nov 21
VIM REFERENCE MANUAL by Bram Moolenaar
@ -370,7 +370,8 @@ same amount of text as the last time:
last line the same number of characters as in the last line the last time.
The start of the text is the Cursor position. If the "$" command was used as
one of the last commands to extend the highlighted text, the repeating will
be applied up to the rightmost column of the longest line.
be applied up to the rightmost column of the longest line. Any count passed
to the `.` command is not used.
==============================================================================

View File

@ -1,4 +1,4 @@
*windows.txt* For Vim version 8.2. Last change: 2021 Apr 10
*windows.txt* For Vim version 8.2. Last change: 2021 Sep 09
VIM REFERENCE MANUAL by Bram Moolenaar
@ -296,7 +296,7 @@ Closing a window
----------------
:q[uit]
:{count}q[uit]
:{count}q[uit] *:count_quit*
CTRL-W q *CTRL-W_q*
CTRL-W CTRL-Q *CTRL-W_CTRL-Q*
Without {count}: Quit the current window. If {count} is
@ -390,7 +390,8 @@ CTRL-W CTRL-C *CTRL-W_CTRL-C*
CTRL-W o *CTRL-W_o* *E445*
CTRL-W CTRL-O *CTRL-W_CTRL-O* *:on* *:only*
Make the current window the only one on the screen. All other
windows are closed. For {count} see |:quit| command.
windows are closed. For {count} see the `:quit` command
above |:count_quit|.
When the 'hidden' option is set, all buffers in closed windows
become hidden.
@ -1357,6 +1358,7 @@ directory Displays directory contents. Can be used by a file explorer
< The buffer name is the name of the directory and is adjusted
when using the |:cd| command.
*scratch-buffer*
scratch Contains text that can be discarded at any time. It is kept
when closing the window, it must be deleted explicitly.
Settings: >

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2021 Jul 03
" Last Change: 2021 Nov 16
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@ -488,7 +488,7 @@ au BufNewFile,BufRead *.desktop,*.directory setf desktop
au BufNewFile,BufRead dict.conf,.dictrc setf dictconf
" Dictd config
au BufNewFile,BufRead dictd.conf setf dictdconf
au BufNewFile,BufRead dictd*.conf setf dictdconf
" Diff files
au BufNewFile,BufRead *.diff,*.rej setf diff
@ -537,8 +537,13 @@ au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe setf dracula
" Datascript
au BufNewFile,BufRead *.ds setf datascript
" dsl
au BufNewFile,BufRead *.dsl setf dsl
" dsl: DSSSL or Structurizr
au BufNewFile,BufRead *.dsl
\ if getline(1) =~ '^\s*<\!' |
\ setf dsl |
\ else |
\ setf structurizr |
\ endif
" DTD (Document Type Definition for XML)
au BufNewFile,BufRead *.dtd setf dtd
@ -612,6 +617,9 @@ autocmd BufRead,BufNewFile *.fnl setf fennel
" Fetchmail RC file
au BufNewFile,BufRead .fetchmailrc setf fetchmail
" Fish shell
au BufNewFile,BufRead *.fish setf fish
" FlexWiki - disabled, because it has side effects when a .wiki file
" is not actually FlexWiki
"au BufNewFile,BufRead *.wiki setf flexwiki
@ -624,7 +632,7 @@ au BufNewFile,BufRead auto.master setf conf
au BufNewFile,BufRead *.mas,*.master setf master
" Forth
au BufNewFile,BufRead *.fs,*.ft,*.fth setf forth
au BufNewFile,BufRead *.ft,*.fth setf forth
" Reva Forth
au BufNewFile,BufRead *.frt setf reva
@ -641,8 +649,14 @@ au BufNewFile,BufRead *.fsl setf framescript
" FStab
au BufNewFile,BufRead fstab,mtab setf fstab
" F# or Forth
au BufNewFile,BufRead *.fs call dist#ft#FTfs()
" F#
au BufNewFile,BufRead *.fsi,*.fsx setf fsharp
" GDB command files
au BufNewFile,BufRead .gdbinit setf gdb
au BufNewFile,BufRead .gdbinit,gdbinit setf gdb
" GDMO
au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
@ -702,6 +716,7 @@ au BufNewFile,BufRead *.gpi setf gnuplot
" Go (Google)
au BufNewFile,BufRead *.go setf go
au BufNewFile,BufRead Gopkg.lock setf toml
" GrADS scripts
au BufNewFile,BufRead *.gs setf grads
@ -871,9 +886,15 @@ au BufNewFile,BufRead *.json-patch setf json
" Jupyter Notebook is also json
au BufNewFile,BufRead *.ipynb setf json
" Other files that look like json
au BufNewFile,BufRead .babelrc,.eslintrc,.prettierrc,.firebaserc setf json
" JSONC
au BufNewFile,BufRead *.jsonc setf jsonc
" Julia
au BufNewFile,BufRead *.jl setf julia
" Kixtart
au BufNewFile,BufRead *.kix setf kix
@ -1021,7 +1042,7 @@ au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown
" Mason
au BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason
" Mathematica, Matlab, Murphi or Objective C
" Mathematica, Matlab, Murphi, Objective C or Octave
au BufNewFile,BufRead *.m call dist#ft#FTm()
" Mathematica notebook
@ -1084,6 +1105,9 @@ au BufNewFile,BufRead *.moo setf moo
" Modconf
au BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf modconf
" MPD is based on XML
au BufNewFile,BufRead *.mpd setf xml
" Mplayer config
au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf
@ -1102,6 +1126,9 @@ au BufNewFile,BufRead *.mysql setf mysql
" Mutt setup files (must be before catch *.rc)
au BufNewFile,BufRead */etc/Muttrc.d/* call s:StarSetf('muttrc')
" Tcl Shell RC file
au BufNewFile,BufRead tclsh.rc setf tcl
" M$ Resource files
au BufNewFile,BufRead *.rc,*.rch setf rc
@ -1132,6 +1159,9 @@ au BufNewFile,BufRead Neomuttrc setf neomuttrc
" Netrc
au BufNewFile,BufRead .netrc setf netrc
" Nginx
au BufNewFile,BufRead *.nginx,nginx*.conf,*nginx.conf,*/etc/nginx/*,*/usr/local/nginx/conf/*,*/nginx/*.conf setf nginx
" Ninja file
au BufNewFile,BufRead *.ninja setf ninja
@ -1167,6 +1197,9 @@ au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli
" Occam
au BufNewFile,BufRead *.occ setf occam
" Octave
au BufNewFile,BufRead octave.conf,.octaverc,octaverc setf octave
" Omnimark
au BufNewFile,BufRead *.xom,*.xin setf omnimark
@ -1267,7 +1300,7 @@ au BufNewFile,BufRead *.rcp setf pilrc
au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine
" Pipenv Pipfiles
au BufNewFile,BufRead Pipfile setf config
au BufNewFile,BufRead Pipfile setf toml
au BufNewFile,BufRead Pipfile.lock setf json
" PL/1, PL/I
@ -1375,6 +1408,9 @@ au BufNewFile,BufRead *.pk setf poke
" Protocols
au BufNewFile,BufRead */etc/protocols setf protocols
" Pyret
au BufNewFile,BufRead *.arr setf pyret
" Pyrex
au BufNewFile,BufRead *.pyx,*.pxd setf pyrex
@ -1386,7 +1422,7 @@ au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python
" Radiance
au BufNewFile,BufRead *.rad,*.mat setf radiance
" Raku (formelly Perl6)
" Raku (formerly Perl6)
au BufNewFile,BufRead *.pm6,*.p6,*.t6,*.pod6,*.raku,*.rakumod,*.rakudoc,*.rakutest setf raku
" Ratpoison config/command files
@ -1466,6 +1502,9 @@ au BufNewFile,BufRead robots.txt setf robots
" Rpcgen
au BufNewFile,BufRead *.x setf rpcgen
" MikroTik RouterOS script
au BufRead,BufNewFile *.rsc setf routeros
" reStructuredText Documentation Format
au BufNewFile,BufRead *.rst setf rst
@ -1498,6 +1537,7 @@ au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby
" Rust
au BufNewFile,BufRead *.rs setf rust
au BufNewFile,BufRead Cargo.lock,*/.cargo/config,*/.cargo/credentials setf toml
" S-lang (or shader language, or SmallLisp)
au BufNewFile,BufRead *.sl setf slang
@ -1523,6 +1563,9 @@ au BufNewFile,BufRead *.sbt setf sbt
" Scilab
au BufNewFile,BufRead *.sci,*.sce setf scilab
" scdoc
au BufNewFile,BufRead *.scd setf scdoc
" SCSS
au BufNewFile,BufRead *.scss setf scss
@ -1612,7 +1655,7 @@ au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh
au BufNewFile,BufRead *.zsh setf zsh
" Scheme
au BufNewFile,BufRead *.scm,*.ss,*.rkt setf scheme
au BufNewFile,BufRead *.scm,*.ss,*.rkt,*.rktd,*.rktl setf scheme
" Screen RC
au BufNewFile,BufRead .screenrc,screenrc setf screen
@ -1785,7 +1828,7 @@ au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata
au BufRead,BufNewFile *.task setf taskedit
" Tcl (JACL too)
au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl
au BufNewFile,BufRead *.tcl,*.tm,*.tk,*.itcl,*.itk,*.jacl,.tclshrc,.wishrc setf tcl
" TealInfo
au BufNewFile,BufRead *.tli setf tli
@ -1979,14 +2022,15 @@ au BufNewFile,BufRead *.ws[fc] setf wsh
" XHTML
au BufNewFile,BufRead *.xhtml,*.xht setf xhtml
" X Pixmap (dynamically sets colors, use BufEnter to make it work better)
au BufEnter *.xpm
" X Pixmap (dynamically sets colors, this used to trigger on BufEnter to make
" it work better, but that breaks setting 'filetype' manually)
au BufNewFile,BufRead *.xpm
\ if getline(1) =~ "XPM2" |
\ setf xpm2 |
\ else |
\ setf xpm |
\ endif
au BufEnter *.xpm2 setf xpm2
au BufNewFile,BufRead *.xpm2 setf xpm2
" XFree86 config
au BufNewFile,BufRead XF86Config
@ -2021,9 +2065,15 @@ au BufNewFile,BufRead *.xml call dist#ft#FTxml()
" XMI (holding UML models) is also XML
au BufNewFile,BufRead *.xmi setf xml
" CSPROJ files are Visual Studio.NET's XML-based project config files
" CSPROJ files are Visual Studio.NET's XML-based C# project config files
au BufNewFile,BufRead *.csproj,*.csproj.user setf xml
" FSPROJ files are Visual Studio.NET's XML-based F# project config files
au BufNewFile,BufRead *.fsproj,*.fsproj.user setf xml
" VBPROJ files are Visual Studio.NET's XML-based Visual Basic project config files
au BufNewFile,BufRead *.vbproj,*.vbproj.user setf xml
" Qt Linguist translation source and Qt User Interface Files are XML
" However, for .ts Typescript is more common.
au BufNewFile,BufRead *.ui setf xml
@ -2121,7 +2171,7 @@ au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
" More Apache config files
au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache')
au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache')
au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.*/*,*/etc/httpd/mods-*/*,*/etc/httpd/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache')
" Asterisk config file
au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk')
@ -2269,12 +2319,18 @@ au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]alias
au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh")
au BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1))
" Sudoers
au BufNewFile,BufRead */etc/sudoers.d/* call s:StarSetf('sudoers')
" tcsh scripts ending in a star
au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh")
" csh scripts ending in a star
au BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH()
" tmux configuration with arbitrary extension
au BufNewFile,BufRead {.,}tmux*.conf* setf tmux
" VHDL
au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')

View File

@ -1,9 +1,10 @@
" Vim ftplugin file
" Language: 8th
" Version: any
" Last Change: 2015/11/08
" Last Change: 2021 Sep 20
" Last Change: 2021/09/20
" Maintainer: Ron Aaron <ron@aaron-tech.com>
" URL: https://8th-dev.com/
" URL: https://8th-dev.com/
" Filetypes: *.8th
" NOTE: 8th allows any non-whitespace in a name, so you need to do:
" setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
@ -14,12 +15,13 @@ if exists("b:did_8thplugin")
finish
endif
" Don't load another plugin for this buffer
" Don't load another 8th plugin for this buffer
let b:did_8thplugin = 1
setlocal ts=2 sts=2 sw=2 et
setlocal com=s1:/*,mb:*,ex:*/,:\|,:\\
setlocal com=s1:/*,mb:*,ex:*/,b:--,be:\\
setlocal fo=tcrqol
setlocal matchpairs+=\::;
setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
setlocal suffixesadd=.8th
let b:undo_ftplugin = "setlocal ts< sts< sw< et< com< fo< mps< isk< sua<"

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Aap recipe
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2013 Apr 05
" Last Change: 2021 Nov 14
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@ -11,8 +11,9 @@ endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
" Reset 'formatoptions', 'comments' and 'expandtab' to undo this plugin.
let b:undo_ftplugin = "setl fo< com< et<"
" Reset 'formatoptions', 'comments', 'commentstring' and 'expandtab' to undo
" this plugin.
let b:undo_ftplugin = "setl fo< com< cms< et<"
" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
@ -20,6 +21,12 @@ setlocal fo-=t fo+=croql
" Set 'comments' to format dashed lists in comments.
setlocal comments=s:#\ -,m:#\ \ ,e:#,n:#,fb:-
setlocal commentstring=#\ %s
" Expand tabs to spaces to avoid trouble.
setlocal expandtab
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Aap Recipe Files (*.aap)\t*.aap\nAll Files (*.*)\t*.*\n"
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2020 Feb 01
" Last Change: 2021 Sep 21
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@ -40,8 +40,11 @@ endif
" When the matchit plugin is loaded, this makes the % command skip parens and
" braces in comments properly.
let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
let b:match_skip = 's:comment\|string\|character\|special'
if !exists("b:match_words")
let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
let b:match_skip = 's:comment\|string\|character\|special'
let b:undo_ftplugin ..= " | unlet! b:match_skip b:match_words"
endif
" Win32 can filter files in the browse dialog
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
@ -62,6 +65,7 @@ if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
\ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" .
\ "All Files (*.*)\t*.*\n"
endif
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif
let &cpo = s:cpo_save

View File

@ -2,7 +2,7 @@
" Language: generic Changelog file
" Maintainer: Martin Florian <marfl@posteo.de>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-10-25
" Latest Revision: 2021-10-17
" Variables:
" g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
" description: the timeformat used in ChangeLog entries.
@ -55,7 +55,7 @@ if &filetype == 'changelog'
elseif $EMAIL_ADDRESS != ""
return $EMAIL_ADDRESS
endif
let login = s:login()
return printf('%s <%s@%s>', s:name(login), login, s:hostname())
endfunction
@ -223,12 +223,6 @@ if &filetype == 'changelog'
let &paste = save_paste
endfunction
if exists(":NewChangelogEntry") != 2
nnoremap <buffer> <silent> <Leader>o :<C-u>call <SID>new_changelog_entry('')<CR>
xnoremap <buffer> <silent> <Leader>o :<C-u>call <SID>new_changelog_entry('')<CR>
command! -nargs=0 NewChangelogEntry call s:new_changelog_entry('')
endif
let b:undo_ftplugin = "setl com< fo< et< ai<"
setlocal comments=
@ -241,14 +235,26 @@ if &filetype == 'changelog'
let b:undo_ftplugin .= " tw<"
endif
if !exists("no_plugin_maps") && !exists("no_changelog_maps") && exists(":NewChangelogEntry") != 2
nnoremap <buffer> <silent> <Leader>o :<C-u>call <SID>new_changelog_entry('')<CR>
xnoremap <buffer> <silent> <Leader>o :<C-u>call <SID>new_changelog_entry('')<CR>
command! -buffer -nargs=0 NewChangelogEntry call s:new_changelog_entry('')
let b:undo_ftplugin .= " | sil! exe 'nunmap <buffer> <Leader>o'" .
\ " | sil! exe 'vunmap <buffer> <Leader>o'" .
\ " | sil! delc NewChangelogEntry"
endif
let &cpo = s:cpo_save
unlet s:cpo_save
else
let s:cpo_save = &cpo
set cpo&vim
" Add the Changelog opening mapping
nnoremap <silent> <Leader>o :call <SID>open_changelog()<CR>
if !exists("no_plugin_maps") && !exists("no_changelog_maps")
" Add the Changelog opening mapping
nnoremap <silent> <Leader>o :call <SID>open_changelog()<CR>
let b:undo_ftplugin .= " | silent! exe 'nunmap <buffer> <Leader>o"
endif
function! s:open_changelog()
let path = expand('%:p:h')

View File

@ -2,6 +2,7 @@
" Last Change: 2018-03-05
" Author: Evan Hanson <evhan@foldling.org>
" Maintainer: Evan Hanson <evhan@foldling.org>
" Repository: https://git.foldling.org/vim-scheme.git
" URL: https://foldling.org/vim/ftplugin/chicken.vim
" Notes: These are supplemental settings, to be loaded after the core
" Scheme ftplugin file (ftplugin/scheme.vim). Enable it by setting

View File

@ -1,11 +1,11 @@
" Vim filetype plugin file
" Language: Clojure
" Maintainer: Alex Vear <av@axvr.io>
" Maintainer: Alex Vear <alex@vear.uk>
" Former Maintainers: Sung Pae <self@sungpae.com>
" Meikel Brandmeyer <mb@kotka.de>
" URL: https://github.com/clojure-vim/clojure.vim
" License: Vim (see :h license)
" Last Change: 2021-02-13
" Last Change: 2021-10-26
if exists("b:did_ftplugin")
finish
@ -17,7 +17,7 @@ set cpo&vim
let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring< lispwords<'
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$,%,&,\|
" There will be false positives, but this is better than missing the whole set
" of user-defined def* definitions.
@ -43,7 +43,7 @@ setlocal commentstring=;\ %s
" specially and hence are not indented specially.
"
" -*- LISPWORDS -*-
" Generated from https://github.com/clojure-vim/clojure.vim/blob/f8594e7030cdfb0b7990ac92953c77a08a7220f0/clj/src/vim_clojure_static/generate.clj
" Generated from https://github.com/clojure-vim/clojure.vim/blob/62b215f079ce0f3834fd295c7a7f6bd8cc54bcc3/clj/src/vim_clojure_static/generate.clj
setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test
" Provide insert mode completions for special forms and clojure.core. As
@ -64,8 +64,8 @@ if exists('loaded_matchit')
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
endif
" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
" Filter files in the browse dialog
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
\ "Java Source Files (*.java)\t*.java\n" .

View File

@ -2,7 +2,7 @@
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 30
" Latest Revision: 2021 Oct 15
if exists("b:did_ftplugin")
finish
@ -17,7 +17,6 @@ if !exists('current_compiler')
endif
let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tjcroql2
if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
@ -35,11 +34,12 @@ let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)'
setlocal suffixesadd=.tex
if exists("loaded_matchit")
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_ignorecase = 0
let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],' .
\ '\\start\(\a\+\):\\stop\1'
let b:undo_ftplugin .= " | unlet! b:match_ignorecase b:match_words b:match_skip"
endif
let s:context_regex = {
@ -57,19 +57,28 @@ function! s:move_around(count, what, flags, visual)
call map(range(2, a:count), 'search(s:context_regex[a:what], a:flags)')
endfunction
" Move around macros.
nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
if !exists("no_plugin_maps") && !exists("no_context_maps")
" Move around macros.
nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
let b:undo_ftplugin .= " | sil! exe 'nunmap <buffer> [[' | sil! exe 'vunmap <buffer> [['" .
\ " | sil! exe 'nunmap <buffer> ]]' | sil! exe 'vunmap <buffer> ]]'" .
\ " | sil! exe 'nunmap <buffer> []' | sil! exe 'vunmap <buffer> []'" .
\ " | sil! exe 'nunmap <buffer> ][' | sil! exe 'vunmap <buffer> ]['" .
\ " | sil! exe 'nunmap <buffer> [{' | sil! exe 'vunmap <buffer> [{'" .
\ " | sil! exe 'nunmap <buffer> ]}' | sil! exe 'vunmap <buffer> ]}'"
end
" Other useful mappings
if get(g:, 'context_mappings', 1)
@ -81,16 +90,22 @@ if get(g:, 'context_mappings', 1)
call cursor(search(s:tp_regex, 'W') - 1, 1)
endf
" Reflow paragraphs with commands like gqtp ("gq TeX paragraph")
onoremap <silent><buffer> tp :<c-u>call <sid>tp()<cr>
" Select TeX paragraph
vnoremap <silent><buffer> tp <esc>:<c-u>call <sid>tp()<cr>
if !exists("no_plugin_maps") && !exists("no_context_maps")
" Reflow paragraphs with commands like gqtp ("gq TeX paragraph")
onoremap <silent><buffer> tp :<c-u>call <sid>tp()<cr>
" Select TeX paragraph
vnoremap <silent><buffer> tp <esc>:<c-u>call <sid>tp()<cr>
" $...$ text object
onoremap <silent><buffer> i$ :<c-u>normal! T$vt$<cr>
onoremap <silent><buffer> a$ :<c-u>normal! F$vf$<cr>
vnoremap <buffer> i$ T$ot$
vnoremap <buffer> a$ F$of$
" $...$ text object
onoremap <silent><buffer> i$ :<c-u>normal! T$vt$<cr>
onoremap <silent><buffer> a$ :<c-u>normal! F$vf$<cr>
vnoremap <buffer> i$ T$ot$
vnoremap <buffer> a$ F$of$
let b:undo_ftplugin .= " | sil! exe 'ounmap <buffer> tp' | sil! exe 'vunmap <buffer> tp'" .
\ " | sil! exe 'ounmap <buffer> i$' | sil! exe 'vunmap <buffer> i$'" .
\ " | sil! exe 'ounmap <buffer> a$' | sil! exe 'vunmap <buffer> a$'"
endif
endif
" Commands for asynchronous typesetting

View File

@ -1,21 +1,23 @@
" Vim filetype plugin file
" Language: csh
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
" Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
" Language: csh
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
" Contributor: Johannes Zellner <johannes@zellner.org>
" Last Change: 2021 Oct 15
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C
setlocal comments=:#
setlocal commentstring=#%s
setlocal formatoptions-=t
setlocal formatoptions+=crql
let b:undo_ftplugin = "setlocal com< cms< fo<"
" Csh: thanks to Johannes Zellner
" - Both foreach and end must appear alone on separate lines.
" - The words else and endif must appear at the beginning of input lines;
@ -23,26 +25,27 @@ setlocal formatoptions+=crql
" - Each case label and the default label must appear at the start of a
" line.
" - while and end must appear alone on their input lines.
if exists("loaded_matchit")
let b:match_words =
\ '^\s*\<if\>.*(.*).*\<then\>:'.
\ '^\s*\<else\>\s\+\<if\>.*(.*).*\<then\>:^\s*\<else\>:'.
\ '^\s*\<endif\>,'.
\ '\%(^\s*\<foreach\>\s\+\S\+\|^s*\<while\>\).*(.*):'.
\ '\<break\>:\<continue\>:^\s*\<end\>,'.
\ '^\s*\<switch\>.*(.*):^\s*\<case\>\s\+:^\s*\<default\>:^\s*\<endsw\>'
if exists("loaded_matchit") && !exists("b:match_words")
let s:line_start = '\%(^\s*\)\@<='
let b:match_words =
\ s:line_start .. 'if\s*(.*)\s*then\>:' ..
\ s:line_start .. 'else\s\+if\s*(.*)\s*then\>:' .. s:line_start .. 'else\>:' ..
\ s:line_start .. 'endif\>,' ..
\ s:line_start .. '\%(\<foreach\s\+\h\w*\|while\)\s*(:' ..
\ '\<break\>:\<continue\>:' ..
\ s:line_start .. 'end\>,' ..
\ s:line_start .. 'switch\s*(:' ..
\ s:line_start .. 'case\s\+:' .. s:line_start .. 'default\>:\<breaksw\>:' ..
\ s:line_start .. 'endsw\>'
unlet s:line_start
let b:undo_ftplugin ..= " | unlet b:match_words"
endif
" Change the :browse e filter to primarily show csh-related files.
if has("gui_win32")
let b:browsefilter="csh Scripts (*.csh)\t*.csh\n" .
\ "All Files (*.*)\t*.*\n"
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter="csh Scripts (*.csh)\t*.csh\n" ..
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin ..= " | unlet b:browsefilter"
endif
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal commentstring< formatoptions<" .
\ " | unlet! b:match_words b:browsefilter"
" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Diff
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2020 Jul 18
" Last Change: 2021 Nov 14
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@ -9,10 +9,15 @@ if exists("b:did_ftplugin")
endif
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl modeline<"
let b:undo_ftplugin = "setl modeline< commentstring<"
" Don't use modelines in a diff, they apply to the diffed file
setlocal nomodeline
" If there are comments they start with #
let &commentstring = "# %s"
let &l:commentstring = "# %s"
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Diff Files (*.diff)\t*.diff\nPatch Files (*.patch)\t*.h\nAll Files (*.*)\t*.*\n"
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif

View File

@ -1,5 +1,5 @@
" Vim filetype plugin file
" Language: Configuration File (ini file) for MSDOS/MS Windows
" Language: Configuration File (ini file) for MS-DOS/MS Windows
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09

View File

@ -1,6 +1,7 @@
" Language: gprof
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
" Last Change: 2021 Apr 08
" Language: gprof
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
" Contributors: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2021 Sep 19
" When cursor is on one line of the gprof call graph,
" calling this function jumps to this function in the call graph.
@ -9,7 +10,7 @@ if exists("b:did_ftplugin")
endif
let b:did_ftplugin=1
fun! <SID>GprofJumpToFunctionIndex()
func! <SID>GprofJumpToFunctionIndex()
let l:line = getline('.')
if l:line =~ '[\d\+\]$'
" We're in a line in the call graph.
@ -22,11 +23,14 @@ fun! <SID>GprofJumpToFunctionIndex()
call search('^\[\d\+\].*\d\s\+' . escape(@", '[]*.') . '\>', 'sW')
norm! zz
endif
endfun
endfunc
" Pressing <C-]> on a line in the gprof flat profile or in
" the call graph, jumps to the corresponding function inside
" the flat profile.
map <buffer> <silent> <C-]> :call <SID>GprofJumpToFunctionIndex()<CR>
if !exists("no_plugin_maps") && !exists("no_gprof_maps")
" Pressing <C-]> on a line in the gprof flat profile or in
" the call graph, jumps to the corresponding function inside
" the flat profile.
map <buffer> <silent> <C-]> :call <SID>GprofJumpToFunctionIndex()<CR>
let b:undo_ftplugin = "silent! unmap <buffer> <C-]>"
endif
" vim:sw=2 fdm=indent

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