From 1ffa4e50477eb8a95c7097973c4d13d97551d784 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 19 Nov 2017 23:33:02 +0300 Subject: doc: Update documentation --- runtime/doc/eval.txt | 121 ++++++++++++++++++++++++++++++++++++++++++++++- runtime/doc/vim_diff.txt | 13 ++--- 2 files changed, 127 insertions(+), 7 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index b752667d9a..090eb022e2 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -10506,7 +10506,7 @@ option will still be marked as it was set in the sandbox. In a few situations it is not allowed to change the text in the buffer, jump to another window and some other things that might confuse or break what Vim is currently doing. This mostly applies to things that happen when Vim is -actually doing something else. For example, evaluating the 'balloonexpr' may +actually doing something else. For example, evaluating the 'balloonexpr' may happen any moment the mouse cursor is resting at some position. This is not allowed when the textlock is active: @@ -10516,5 +10516,124 @@ This is not allowed when the textlock is active: - closing a window or quitting Vim - etc. +============================================================================== +13. Command-line expressions coloring *expr-coloring* + +Expressions entered by user in |i_CTRL-R_=|, |c_CTRL-\_e|, |quote=| are +colored by built-in expressions parser. It uses highlight groups described in +the below table, which may be overriden by user colorschemes, all linked to +some other highlighting group. + *hl-NVimInvalid* +In addition to highlighting groups prefixed with NVim described below there +are highlighting groups prefixed with NVimInvalid which have just the same +meaning, but used to indicate that relevant token contains an error or that +error had occurred just before it. They have mostly the same hierarchy, +except that by default in place of any non-NVim-prefixed group NVimInvalid +linking to `Error` is used and some other intermediate groups are present. + +Group Default link Colored expression ~ +*hl-NVimInternalError* None, red/red Parser bug + +*hl-NVimAssignment* Operator Generic assignment +*hl-NVimPlainAssignment* NVimAssignment `=` in |:let| +*hl-NVimAugmentedAssignment* NVimAssignment Generic, `+=`/`-=`/`.=` +*hl-NVimAssignmentWithAddition* NVimAugmentedAssignment `+=` in |:let+=| +*hl-NVimAssignmentWithSubtraction* NVimAugmentedAssignment `-=` in |:let-=| +*hl-NVimAssignmentWithConcatenation* NVimAugmentedAssignment `.=` in |:let.=| + +*hl-NVimOperator* Operator Generic operator + +*hl-NVimUnaryOperator* NVimOperator Generic unary op +*hl-NVimUnaryPlus* NVimUnaryOperator |expr-unary-+| +*hl-NVimUnaryMinus* NVimUnaryOperator |expr-unary--| +*hl-NVimNot* NVimUnaryOperator |expr-!| + +*hl-NVimBinaryOperator* NVimOperator Generic binary op +*hl-NVimComparison* NVimBinaryOperator Any |expr4| operator +*hl-NVimComparisonModifier* NVimComparison `#`/`?` near |expr4| op +*hl-NVimBinaryPlus* NVimBinaryOperator |expr-+| +*hl-NVimBinaryMinus* NVimBinaryOperator |expr--| +*hl-NVimConcat* NVimBinaryOperator |expr-.| +*hl-NVimConcatOrSubscript* NVimConcat |expr-.| or |expr-entry| +*hl-NVimOr* NVimBinaryOperator |expr-barbar| +*hl-NVimAnd* NVimBinaryOperator |expr-&&| +*hl-NVimMultiplication* NVimBinaryOperator |expr-star| +*hl-NVimDivision* NVimBinaryOperator |expr-/| +*hl-NVimMod* NVimBinaryOperator |expr-%| + +*hl-NVimTernary* NVimOperator `?` in |expr1| +*hl-NVimTernaryColon* NVimTernary `:` in |expr1| + +*hl-NVimParenthesis* Delimiter Generic bracket +*hl-NVimLambda* NVimParenthesis `{`/`}` in |lambda| +*hl-NVimNestingParenthesis* NVimParenthesis `(`/`)` in |expr-nesting| +*hl-NVimCallingParenthesis* NVimParenthesis `(`/`)` in |expr-function| + +*hl-NVimSubscript* NVimParenthesis Generic subscript +*hl-NVimSubscriptBracket* NVimSubscript `[`/`]` in |expr-[]| +*hl-NVimSubscriptColon* NVimSubscript `:` in |expr-[:]| +*hl-NVimCurly* NVimSubscript `{`/`}` in + |curly-braces-names| + +*hl-NVimContainer* NVimParenthesis Generic container +*hl-NVimDict* NVimContainer `{`/`}` in |dict| literal +*hl-NVimList* NVimContainer `[`/`]` in |list| literal + +*hl-NVimIdentifier* Identifier Generic identifier +*hl-NVimIdentifierScope* NVimIdentifier Namespace: letter + before `:` in + |internal-variables| +*hl-NVimIdentifierScopeDelimiter* NVimIdentifier `:` after namespace + letter +*hl-NVimIdentifierName* NVimIdentifier Rest of the ident +*hl-NVimIdentifierKey* NVimIdentifier Identifier after + |expr-entry| + +*hl-NVimColon* Delimiter `:` in |dict| literal +*hl-NVimComma* Delimiter `,` in |dict|/|list| + literal or + |expr-function| +*hl-NVimArrow* Delimiter `->` in |lambda| + +*hl-NVimRegister* SpecialChar |expr-register| +*hl-NVimNumber* Number Non-prefix digits + in integer + |expr-number| +*hl-NVimNumberPrefix* Type `0` for |octal-number| + `0x` for |hex-number| + `0b` for |binary-number| +*hl-NVimFloat* NVimNumber Floating-point + number + +*hl-NVimOptionSigil* Type `&` in |expr-option| +*hl-NVimOptionScope* NVimIdentifierScope Option scope if any +*hl-NVimOptionScopeDelimiter* NVimIdentifierScopeDelimiter + `:` after option scope +*hl-NVimOptionName* NVimIdentifier Option name + +*hl-NVimEnvironmentSigil* NVimOptionSigil `$` in |expr-env| +*hl-NVimEnvironmentName* NVimIdentifier Env variable name + +*hl-NVimString* String Generic string +*hl-NVimStringBody* NVimString Generic string + literal body +*hl-NVimStringQuote* NVimString Generic string quote +*hl-NVimStringSpecial* SpecialChar Generic string + non-literal body + +*hl-NVimSingleQuote* NVimStringQuote `'` in |expr-'| +*hl-NVimSingleQuotedBody* NVimStringBody Literal part of + |expr-'| string body +*hl-NVimSingleQuotedQuote* NVimStringSpecial `''` inside |expr-'| + string body + +*hl-NVimDoubleQuote* NVimStringQuote `"` in |expr-quote| +*hl-NVimDoubleQuotedBody* NVimStringBody Literal part of + |expr-quote| body +*hl-NVimDoubleQuotedEscape* NVimStringSpecial Valid |expr-quote| + escape sequence +*hl-NVimDoubleQuotedUnknownEscape* NVimInvalidValue Unrecognized + |expr-quote| escape + sequence vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 026ff6a0fb..22e6f11bb5 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -167,12 +167,13 @@ Highlight groups: |hl-Whitespace| highlights 'listchars' whitespace UI: - *E5408* *E5409* *g:Nvim_color_expr* *g:Nvim_color_cmdline* - Command-line coloring is supported. Only |input()| and |inputdialog()| may - be colored. For testing purposes expressions (e.g. |i_CTRL-R_=|) and regular - command-line (|:|) are colored by callbacks defined in `g:Nvim_color_expr` - and `g:Nvim_color_cmdline` respectively (these callbacks are for testing - only, and will be removed in a future version). + *E5408* *E5409* *g:Nvim_color_cmdline* + Command-line coloring is supported. Only |input()| and |inputdialog()| may + be colored by user. For testing purposes regular command-line (|:|) is + colored by callback defined in `g:Nvim_color_cmdline` (this callback is for + testing only, and will be removed in a future version). Additionally + expression command-line is colored using built-in expressions parser (it is + not yet used for actually parsing expressions though), see |expr-coloring|. ============================================================================== 4. Changed features *nvim-features-changed* -- cgit From 11a05e778fd5f33f791ca8047f9839caa15b8da5 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 26 Nov 2017 15:56:27 +0300 Subject: doc: Some small fixes --- runtime/doc/eval.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 2e04c1d96e..46a7d92730 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -10578,13 +10578,13 @@ This is not allowed when the textlock is active: Expressions entered by user in |i_CTRL-R_=|, |c_CTRL-\_e|, |quote=| are colored by built-in expressions parser. It uses highlight groups described in -the below table, which may be overriden by user colorschemes, all linked to +the table below, which may be overriden by user colorschemes, all linked to some other highlighting group. *hl-NVimInvalid* In addition to highlighting groups prefixed with NVim described below there are highlighting groups prefixed with NVimInvalid which have just the same -meaning, but used to indicate that relevant token contains an error or that -error had occurred just before it. They have mostly the same hierarchy, +meaning, but used to indicate that the relevant token contains an error or +that error had occurred just before it. They have mostly the same hierarchy, except that by default in place of any non-NVim-prefixed group NVimInvalid linking to `Error` is used and some other intermediate groups are present. -- cgit From 5ab0f988caffad5e8c87a075cbd3f91f0f7e002c Mon Sep 17 00:00:00 2001 From: ZyX Date: Thu, 30 Nov 2017 11:53:25 +0300 Subject: *: Replace all occurrences of NVim with Nvim --- runtime/doc/eval.txt | 154 +++++++++++++++++++++++++-------------------------- 1 file changed, 77 insertions(+), 77 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 46a7d92730..2b2fda25e9 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -10580,116 +10580,116 @@ Expressions entered by user in |i_CTRL-R_=|, |c_CTRL-\_e|, |quote=| are colored by built-in expressions parser. It uses highlight groups described in the table below, which may be overriden by user colorschemes, all linked to some other highlighting group. - *hl-NVimInvalid* -In addition to highlighting groups prefixed with NVim described below there -are highlighting groups prefixed with NVimInvalid which have just the same + *hl-NvimInvalid* +In addition to highlighting groups prefixed with Nvim described below there +are highlighting groups prefixed with NvimInvalid which have just the same meaning, but used to indicate that the relevant token contains an error or that error had occurred just before it. They have mostly the same hierarchy, -except that by default in place of any non-NVim-prefixed group NVimInvalid +except that by default in place of any non-Nvim-prefixed group NvimInvalid linking to `Error` is used and some other intermediate groups are present. Group Default link Colored expression ~ -*hl-NVimInternalError* None, red/red Parser bug - -*hl-NVimAssignment* Operator Generic assignment -*hl-NVimPlainAssignment* NVimAssignment `=` in |:let| -*hl-NVimAugmentedAssignment* NVimAssignment Generic, `+=`/`-=`/`.=` -*hl-NVimAssignmentWithAddition* NVimAugmentedAssignment `+=` in |:let+=| -*hl-NVimAssignmentWithSubtraction* NVimAugmentedAssignment `-=` in |:let-=| -*hl-NVimAssignmentWithConcatenation* NVimAugmentedAssignment `.=` in |:let.=| - -*hl-NVimOperator* Operator Generic operator - -*hl-NVimUnaryOperator* NVimOperator Generic unary op -*hl-NVimUnaryPlus* NVimUnaryOperator |expr-unary-+| -*hl-NVimUnaryMinus* NVimUnaryOperator |expr-unary--| -*hl-NVimNot* NVimUnaryOperator |expr-!| - -*hl-NVimBinaryOperator* NVimOperator Generic binary op -*hl-NVimComparison* NVimBinaryOperator Any |expr4| operator -*hl-NVimComparisonModifier* NVimComparison `#`/`?` near |expr4| op -*hl-NVimBinaryPlus* NVimBinaryOperator |expr-+| -*hl-NVimBinaryMinus* NVimBinaryOperator |expr--| -*hl-NVimConcat* NVimBinaryOperator |expr-.| -*hl-NVimConcatOrSubscript* NVimConcat |expr-.| or |expr-entry| -*hl-NVimOr* NVimBinaryOperator |expr-barbar| -*hl-NVimAnd* NVimBinaryOperator |expr-&&| -*hl-NVimMultiplication* NVimBinaryOperator |expr-star| -*hl-NVimDivision* NVimBinaryOperator |expr-/| -*hl-NVimMod* NVimBinaryOperator |expr-%| - -*hl-NVimTernary* NVimOperator `?` in |expr1| -*hl-NVimTernaryColon* NVimTernary `:` in |expr1| - -*hl-NVimParenthesis* Delimiter Generic bracket -*hl-NVimLambda* NVimParenthesis `{`/`}` in |lambda| -*hl-NVimNestingParenthesis* NVimParenthesis `(`/`)` in |expr-nesting| -*hl-NVimCallingParenthesis* NVimParenthesis `(`/`)` in |expr-function| - -*hl-NVimSubscript* NVimParenthesis Generic subscript -*hl-NVimSubscriptBracket* NVimSubscript `[`/`]` in |expr-[]| -*hl-NVimSubscriptColon* NVimSubscript `:` in |expr-[:]| -*hl-NVimCurly* NVimSubscript `{`/`}` in +*hl-NvimInternalError* None, red/red Parser bug + +*hl-NvimAssignment* Operator Generic assignment +*hl-NvimPlainAssignment* NvimAssignment `=` in |:let| +*hl-NvimAugmentedAssignment* NvimAssignment Generic, `+=`/`-=`/`.=` +*hl-NvimAssignmentWithAddition* NvimAugmentedAssignment `+=` in |:let+=| +*hl-NvimAssignmentWithSubtraction* NvimAugmentedAssignment `-=` in |:let-=| +*hl-NvimAssignmentWithConcatenation* NvimAugmentedAssignment `.=` in |:let.=| + +*hl-NvimOperator* Operator Generic operator + +*hl-NvimUnaryOperator* NvimOperator Generic unary op +*hl-NvimUnaryPlus* NvimUnaryOperator |expr-unary-+| +*hl-NvimUnaryMinus* NvimUnaryOperator |expr-unary--| +*hl-NvimNot* NvimUnaryOperator |expr-!| + +*hl-NvimBinaryOperator* NvimOperator Generic binary op +*hl-NvimComparison* NvimBinaryOperator Any |expr4| operator +*hl-NvimComparisonModifier* NvimComparison `#`/`?` near |expr4| op +*hl-NvimBinaryPlus* NvimBinaryOperator |expr-+| +*hl-NvimBinaryMinus* NvimBinaryOperator |expr--| +*hl-NvimConcat* NvimBinaryOperator |expr-.| +*hl-NvimConcatOrSubscript* NvimConcat |expr-.| or |expr-entry| +*hl-NvimOr* NvimBinaryOperator |expr-barbar| +*hl-NvimAnd* NvimBinaryOperator |expr-&&| +*hl-NvimMultiplication* NvimBinaryOperator |expr-star| +*hl-NvimDivision* NvimBinaryOperator |expr-/| +*hl-NvimMod* NvimBinaryOperator |expr-%| + +*hl-NvimTernary* NvimOperator `?` in |expr1| +*hl-NvimTernaryColon* NvimTernary `:` in |expr1| + +*hl-NvimParenthesis* Delimiter Generic bracket +*hl-NvimLambda* NvimParenthesis `{`/`}` in |lambda| +*hl-NvimNestingParenthesis* NvimParenthesis `(`/`)` in |expr-nesting| +*hl-NvimCallingParenthesis* NvimParenthesis `(`/`)` in |expr-function| + +*hl-NvimSubscript* NvimParenthesis Generic subscript +*hl-NvimSubscriptBracket* NvimSubscript `[`/`]` in |expr-[]| +*hl-NvimSubscriptColon* NvimSubscript `:` in |expr-[:]| +*hl-NvimCurly* NvimSubscript `{`/`}` in |curly-braces-names| -*hl-NVimContainer* NVimParenthesis Generic container -*hl-NVimDict* NVimContainer `{`/`}` in |dict| literal -*hl-NVimList* NVimContainer `[`/`]` in |list| literal +*hl-NvimContainer* NvimParenthesis Generic container +*hl-NvimDict* NvimContainer `{`/`}` in |dict| literal +*hl-NvimList* NvimContainer `[`/`]` in |list| literal -*hl-NVimIdentifier* Identifier Generic identifier -*hl-NVimIdentifierScope* NVimIdentifier Namespace: letter +*hl-NvimIdentifier* Identifier Generic identifier +*hl-NvimIdentifierScope* NvimIdentifier Namespace: letter before `:` in |internal-variables| -*hl-NVimIdentifierScopeDelimiter* NVimIdentifier `:` after namespace +*hl-NvimIdentifierScopeDelimiter* NvimIdentifier `:` after namespace letter -*hl-NVimIdentifierName* NVimIdentifier Rest of the ident -*hl-NVimIdentifierKey* NVimIdentifier Identifier after +*hl-NvimIdentifierName* NvimIdentifier Rest of the ident +*hl-NvimIdentifierKey* NvimIdentifier Identifier after |expr-entry| -*hl-NVimColon* Delimiter `:` in |dict| literal -*hl-NVimComma* Delimiter `,` in |dict|/|list| +*hl-NvimColon* Delimiter `:` in |dict| literal +*hl-NvimComma* Delimiter `,` in |dict|/|list| literal or |expr-function| -*hl-NVimArrow* Delimiter `->` in |lambda| +*hl-NvimArrow* Delimiter `->` in |lambda| -*hl-NVimRegister* SpecialChar |expr-register| -*hl-NVimNumber* Number Non-prefix digits +*hl-NvimRegister* SpecialChar |expr-register| +*hl-NvimNumber* Number Non-prefix digits in integer |expr-number| -*hl-NVimNumberPrefix* Type `0` for |octal-number| +*hl-NvimNumberPrefix* Type `0` for |octal-number| `0x` for |hex-number| `0b` for |binary-number| -*hl-NVimFloat* NVimNumber Floating-point +*hl-NvimFloat* NvimNumber Floating-point number -*hl-NVimOptionSigil* Type `&` in |expr-option| -*hl-NVimOptionScope* NVimIdentifierScope Option scope if any -*hl-NVimOptionScopeDelimiter* NVimIdentifierScopeDelimiter +*hl-NvimOptionSigil* Type `&` in |expr-option| +*hl-NvimOptionScope* NvimIdentifierScope Option scope if any +*hl-NvimOptionScopeDelimiter* NvimIdentifierScopeDelimiter `:` after option scope -*hl-NVimOptionName* NVimIdentifier Option name +*hl-NvimOptionName* NvimIdentifier Option name -*hl-NVimEnvironmentSigil* NVimOptionSigil `$` in |expr-env| -*hl-NVimEnvironmentName* NVimIdentifier Env variable name +*hl-NvimEnvironmentSigil* NvimOptionSigil `$` in |expr-env| +*hl-NvimEnvironmentName* NvimIdentifier Env variable name -*hl-NVimString* String Generic string -*hl-NVimStringBody* NVimString Generic string +*hl-NvimString* String Generic string +*hl-NvimStringBody* NvimString Generic string literal body -*hl-NVimStringQuote* NVimString Generic string quote -*hl-NVimStringSpecial* SpecialChar Generic string +*hl-NvimStringQuote* NvimString Generic string quote +*hl-NvimStringSpecial* SpecialChar Generic string non-literal body -*hl-NVimSingleQuote* NVimStringQuote `'` in |expr-'| -*hl-NVimSingleQuotedBody* NVimStringBody Literal part of +*hl-NvimSingleQuote* NvimStringQuote `'` in |expr-'| +*hl-NvimSingleQuotedBody* NvimStringBody Literal part of |expr-'| string body -*hl-NVimSingleQuotedQuote* NVimStringSpecial `''` inside |expr-'| +*hl-NvimSingleQuotedQuote* NvimStringSpecial `''` inside |expr-'| string body -*hl-NVimDoubleQuote* NVimStringQuote `"` in |expr-quote| -*hl-NVimDoubleQuotedBody* NVimStringBody Literal part of +*hl-NvimDoubleQuote* NvimStringQuote `"` in |expr-quote| +*hl-NvimDoubleQuotedBody* NvimStringBody Literal part of |expr-quote| body -*hl-NVimDoubleQuotedEscape* NVimStringSpecial Valid |expr-quote| +*hl-NvimDoubleQuotedEscape* NvimStringSpecial Valid |expr-quote| escape sequence -*hl-NVimDoubleQuotedUnknownEscape* NVimInvalidValue Unrecognized +*hl-NvimDoubleQuotedUnknownEscape* NvimInvalidValue Unrecognized |expr-quote| escape sequence -- cgit From e9990b43c23ef5f9cb10c75d6f0db00aa862db0e Mon Sep 17 00:00:00 2001 From: Filip Szymański Date: Sun, 3 Dec 2017 20:49:01 +0100 Subject: Fix job_control doc --- runtime/doc/job_control.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/job_control.txt b/runtime/doc/job_control.txt index e57015db22..ed5f16902a 100644 --- a/runtime/doc/job_control.txt +++ b/runtime/doc/job_control.txt @@ -58,7 +58,7 @@ Description of what happens: - The first shell is idle, waiting to read commands from its stdin. - The second shell is started with -c which executes the command (a for-loop printing 0 through 9) and then exits. - - `JobHandler()` callback is passed to |jobstart()| to handle various job + - `OnEvent()` callback is passed to |jobstart()| to handle various job events. It displays stdout/stderr data received from the shells. For |on_stdout| and |on_stderr| see |channel-callback|. -- cgit From 3aa24042a8f7d591b8091b437fc9cdb03497bc7a Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 27 Nov 2017 00:35:09 +0100 Subject: tui: dump termcap info if -V3 ('verbose' >= 3) Get terminal debugging info by starting Nvim with 'verbose' level 3: nvim -V3log This is like Vim's `:set termcap`, which was removed in Nvim (and would be very awkward to restore because of the decoupled UI). --- runtime/doc/eval.txt | 5 ----- runtime/doc/options.txt | 1 + runtime/doc/starting.txt | 10 +++++----- runtime/doc/vim_diff.txt | 12 ++++++++---- 4 files changed, 14 insertions(+), 14 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index d2a3a962e6..71551e38e9 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -8889,11 +8889,6 @@ This does NOT work: > value and the global value are changed. Example: > :let &path = &path . ',/usr/local/include' -< This also works for terminal codes in the form t_xx. - But only for alphanumerical names. Example: > - :let &t_k1 = "\[234;" -< When the code does not exist yet it will be created as - a terminal key code, there is no error. :let &{option-name} .= {expr1} For a string option: Append {expr1} to the value. diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 4fe2e07909..4180ca21f2 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -6424,6 +6424,7 @@ A jump table for the options with a short description can be found at |Q_op|. Currently, these messages are given: >= 1 When the shada file is read or written. >= 2 When a file is ":source"'ed. + >= 3 UI info, terminal capabilities >= 5 Every searched tags file and include file. >= 8 Files for which a group of autocommands is executed. >= 9 Every executed autocommand. diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt index 9b33926d04..30c0641ef7 100644 --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -249,14 +249,14 @@ argument. for reading or writing a ShaDa file. Can be used to find out what is happening upon startup and exit. Example: > - vim -V8 foobar + nvim -V8 -V[N]{filename} - Like -V and set 'verbosefile' to {filename}. The result is - that messages are not displayed but written to the file - {filename}. {filename} must not start with a digit. + Like -V and set 'verbosefile' to {filename}. Messages are not + displayed; instead they are written to the file {filename}. + {filename} must not start with a digit. Example: > - vim -V20vimlog foobar + nvim -V20vimlog < *-D* -D Debugging. Go to debugging mode when executing the first diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index c8155f7a68..45c88f6fe9 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -327,22 +327,26 @@ Ed-compatible mode: ":set noedcompatible" is ignored ":set edcompatible" is an error - *t_xx* *:set-termcap* *termcap-options* *t_AB* *t_Sb* *t_vb* *t_SI* + *t_xx* *termcap-options* *t_AB* *t_Sb* *t_vb* *t_SI* Nvim does not have special `t_XX` options nor keycodes to configure terminal capabilities. Instead Nvim treats the terminal as any other UI. For example, 'guicursor' sets the terminal cursor style if possible. - *'term'* *E529* *E530* *E531* + *:set-termcap* +Start Nvim with 'verbose' level 3 to see the terminal capabilities. > + nvim -V3 +< + *'term'* *E529* *E530* *E531* 'term' reflects the terminal type derived from |$TERM| and other environment checks. For debugging only; not reliable during startup. > :echo &term "builtin_x" means one of the |builtin-terms| was chosen, because the expected terminfo file was not found on the system. - *termcap* + *termcap* Nvim never uses the termcap database, only |terminfo| and |builtin-terms|. - *xterm-8bit* *xterm-8-bit* + *xterm-8bit* *xterm-8-bit* Xterm can be run in a mode where it uses true 8-bit CSI. Supporting this requires autodetection of whether the terminal is in UTF-8 mode or non-UTF-8 mode, as the 8-bit CSI character has to be written differently in each case. -- cgit From dc232b74fb1a7927d6c13bd8c80bb42fc18a859f Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sun, 10 Dec 2017 01:24:54 +0100 Subject: doc: hack to avoid doxygen bug Use `@cond ` to obscure a section from doxygen. doxygen thinks kvec_withinit_t() is a function. That adds noise to the generated API documentation, and also prevents the following function from being noticed. --- runtime/doc/api.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt index ef8b9c7d47..ecf829d356 100644 --- a/runtime/doc/api.txt +++ b/runtime/doc/api.txt @@ -446,7 +446,11 @@ nvim_get_keymap({mode}) *nvim_get_keymap()* Array of maparg()-like dictionaries describing mappings nvim_get_api_info() *nvim_get_api_info()* - TODO: Documentation + Returns a 2-tuple (Array), where item 0 is the current channel + id and item 1 is the |api-metadata| map (Dictionary). + + Return:~ + 2-tuple [{channel-id}, {api-metadata}] Attributes:~ {async} -- cgit From ad9c2d3cb97bbc4ba83ce7d23c9df23f9d3d11db Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 14 Nov 2017 10:47:49 +0100 Subject: doc closes #7622 --- runtime/doc/api.txt | 91 +++++++++++++++++++++++++++++++++++++++++++----- runtime/doc/autocmd.txt | 27 ++++++-------- runtime/doc/syntax.txt | 12 +------ runtime/doc/ui.txt | 2 +- runtime/doc/various.txt | 19 +++++----- runtime/doc/vim_diff.txt | 3 +- 6 files changed, 105 insertions(+), 49 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt index ecf829d356..6c2a3a8632 100644 --- a/runtime/doc/api.txt +++ b/runtime/doc/api.txt @@ -60,8 +60,7 @@ External programs ("clients") can use the metadata to discover the |rpc-api|. API contract *api-contract* The API is made of functions and events. Clients call functions like those -described at |api-global|, and may "attach" in order to receive rich events, -described at |rpc-remote-ui|. +described at |api-global|, and may "attach" to receive rich |ui-events|. As Nvim develops, its API may change only according the following "contract": @@ -481,6 +480,84 @@ nvim_call_atomic({calls}) *nvim_call_atomic()* error ocurred, the values from all preceding calls will still be returned. + *nvim_parse_expression()* +nvim_parse_expression({expr}, {flags}, {highlight}) + Parse a VimL expression + + Attributes:~ + {async} + + Parameters:~ + {expr} Expression to parse. Is always treated as a + single line. + {flags} Flags: - "m" if multiple expressions in a + row are allowed (only the first one will be + parsed), - "E" if EOC tokens are not allowed + (determines whether they will stop parsing + process or be recognized as an + operator/space, though also yielding an + error). - "l" when needing to start parsing + with lvalues for ":let" or ":for". Common + flag sets: - "m" to parse like for ":echo". - + "E" to parse like for "=". - empty + string for ":call". - "lm" to parse for + ":let". + {highlight} If true, return value will also include + "highlight" key containing array of 4-tuples + (arrays) (Integer, Integer, Integer, String), + where first three numbers define the + highlighted region and represent line, + starting column and ending column (latter + exclusive: one should highlight region + [start_col, end_col)). + + Return:~ + AST: top-level dictionary holds keys "error": Dictionary + with error, present only if parser saw some error. + Contains the following keys: "message": String, error + message in printf format, translated. Must contain exactly + one "%.*s". "arg": String, error message argument. "len": + Amount of bytes successfully parsed. With flags equal to + "" that should be equal to the length of expr string. + @note: “Sucessfully parsed” here means “participated in + AST creation”, not “till the first error”. "ast": AST, + either nil or a dictionary with these keys: "type": node + type, one of the value names from ExprASTNodeType + stringified without "kExprNode" prefix. "start": a pair + [line, column] describing where node is “started” where + "line" is always 0 (will not be 0 if you will be using + nvim_parse_viml() on e.g. ":let", but that is not present + yet). Both elements are Integers. "len": “length” of the + node. This and "start" are there for debugging purposes + primary (debugging parser and providing debug + information). "children": a list of nodes described in + top/"ast". There always is zero, one or two children, key + will not be present if node has no children. Maximum + number of children may be found in node_maxchildren array. + Local values (present only for certain nodes): "scope": a + single Integer, specifies scope for "Option" and + "PlainIdentifier" nodes. For "Option" it is one of + ExprOptScope values, for "PlainIdentifier" it is one of + ExprVarScope values. "ident": identifier (without scope, + if any), present for "Option", "PlainIdentifier", + "PlainKey" and "Environment" nodes. "name": Integer, + register name (one character) or -1. Only present for + "Register" nodes. "cmp_type": String, comparison type, one + of the value names from ExprComparisonType, stringified + without "kExprCmp" prefix. Only present for "Comparison" + nodes. "ccs_strategy": String, case comparison strategy, + one of the value names from ExprCaseCompareStrategy, + stringified without "kCCStrategy" prefix. Only present for + "Comparison" nodes. "augmentation": String, augmentation + type for "Assignment" nodes. Is either an empty string, + "Add", "Subtract" or "Concat" for "=", "+=", "-=" or ".=" + respectively. "invert": Boolean, true if result of + comparison needs to be inverted. Only present for + "Comparison" nodes. "ivalue": Integer, integer value for + "Integer" nodes. "fvalue": Float, floating-point value for + "Float" nodes. "svalue": String, value for + "SingleQuotedString" and "DoubleQuotedString" nodes. + nvim__id({obj}) *nvim__id()* Returns object given as argument @@ -721,9 +798,10 @@ nvim_buf_add_highlight({buffer}, {src_id}, {hl_group}, {line}, or -1 for ungrouped highlight {hl_group} Name of the highlight group to use {line} Line to highlight (zero-indexed) - {col_start} Start of range of columns to highlight - {col_end} End of range of columns to highlight, or -1 - to highlight to end of line + {col_start} Start of (byte-indexed) column range to + highlight + {col_end} End of (byte-indexed) column range to + highlight, or -1 to highlight to end of line Return:~ The src_id that was used @@ -957,9 +1035,6 @@ nvim_tabpage_is_valid({tabpage}) *nvim_tabpage_is_valid()* ============================================================================== UI Functions *api-ui* -remote_ui_disconnect() *remote_ui_disconnect()* - TODO: Documentation - nvim_ui_attach({width}, {height}, {options}) *nvim_ui_attach()* TODO: Documentation diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index 740f44414a..9a04bf2824 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -259,13 +259,12 @@ Name triggered by ~ |BufNew| just after creating a new buffer |SwapExists| detected an existing swap file -|TermOpen| when a terminal buffer is starting -|TermClose| when a terminal buffer ends +|TermOpen| when a terminal job starts +|TermClose| when a terminal job ends Options |FileType| when the 'filetype' option has been set |Syntax| when the 'syntax' option has been set -|TermChanged| after the value of 'term' has changed |OptionSet| after setting any option Startup and exit @@ -933,26 +932,20 @@ TabEnter Just after entering a tab page. |tab-page| TabLeave Just before leaving a tab page. |tab-page| A WinLeave event will have been triggered first. - {Nvim} *TabNew* + *TabNew* TabNew When creating a new tab page. |tab-page| After WinEnter and before TabEnter. - {Nvim} *TabNewEntered* + *TabNewEntered* TabNewEntered After entering a new tab page. |tab-page| After BufEnter. - {Nvim} *TabClosed* + *TabClosed* TabClosed After closing a tab page. can be used for the tab page number. - *TermChanged* -TermChanged After the value of 'term' has changed. Useful - for re-loading the syntax file to update the - colors, fonts and other terminal-dependent - settings. Executed for all loaded buffers. - {Nvim} *TermClose* -TermClose When a terminal buffer ends. - {Nvim} *TermOpen* -TermOpen When a terminal buffer is starting. This can - be used to configure the terminal emulator by - setting buffer variables. |terminal| + *TermClose* +TermClose When a |terminal| job ends. + *TermOpen* +TermOpen When a |terminal| job is starting. Can be + used to configure the terminal buffer. *TermResponse* TermResponse After the response to |t_RV| is received from the terminal. The value of |v:termresponse| diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 85330f3dec..ff9773b136 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -4709,17 +4709,7 @@ ctermbg={color-nr} *highlight-ctermbg* "cterm". For example, on some systems "cterm=bold ctermfg=3" gives another color, on others you just get color 3. - For an xterm this depends on your resources, and is a bit - unpredictable. See your xterm documentation for the defaults. The - colors for a color-xterm can be changed from the .Xdefaults file. - Unfortunately this means that it's not possible to get the same colors - for each user. - - The MSDOS standard colors are fixed (in a console window), so these - have been used for the names. But the meaning of color names in X11 - are fixed, so these color settings have been used, to make the - highlighting settings portable (complicated, isn't it?). The - following names are recognized, with the color number used: + The following names are recognized, with the color number used: *cterm-colors* NR-16 NR-8 COLOR NAME ~ diff --git a/runtime/doc/ui.txt b/runtime/doc/ui.txt index 685019aed7..abbd063483 100644 --- a/runtime/doc/ui.txt +++ b/runtime/doc/ui.txt @@ -9,7 +9,7 @@ Nvim UI protocol *ui* Type |gO| to see the table of contents. ============================================================================== -Introduction *ui-intro* +UI Events *ui-events* GUIs can be implemented as external processes communicating with Nvim over the RPC API. The UI model consists of a terminal-like grid with a single, diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index baac72c106..9232cd70c5 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -207,21 +207,18 @@ g8 Print the hex values of the bytes used in the :sh[ell] Removed. |vim-differences| {Nvim} *:terminal* *:te* -:te[rminal][!] [{cmd}] Execute {cmd} with 'shell' in a new |terminal| buffer. - Equivalent to: > - :enew - :call termopen('{cmd}') -< - See |termopen()|. +:te[rminal][!] [{cmd}] Execute {cmd} with 'shell' in a new |terminal-emulator| + buffer. Without {cmd}, start an interactive 'shell'. - Without {cmd}, start an interactive shell. + Type |i| to enter |Terminal-mode|, then keys are sent to + the job running in the terminal. Type to + leave Terminal-mode. |CTRL-\_CTRL-N| - Creating the terminal buffer fails when changes have been - made to the current buffer, unless 'hidden' is set. + Fails if changes have been made to the current buffer, + unless 'hidden' is set. To enter |Terminal-mode| automatically: > - autocmd BufEnter term://* startinsert - autocmd BufLeave term://* stopinsert + autocmd TermOpen * startinsert < *:!cmd* *:!* *E34* :!{cmd} Execute {cmd} with 'shell'. See also |:terminal|. diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 1a4a66ed89..7061f01316 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -302,7 +302,8 @@ Highlight groups: |hl-ColorColumn|, |hl-CursorColumn| are lower priority than most other groups -The variable name "count" is no fallback for |v:count| anymore. +VimL (Vim script) compatibility: + `count` does not alias to |v:count| ============================================================================== 5. Missing legacy features *nvim-features-missing* -- cgit From 34057045beca40406673ff421a4ef1e8e8c08853 Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Tue, 12 Dec 2017 18:23:19 +0100 Subject: ui: forward relevant option updates to UIs (#7520) also make termguicolors mutable after startup --- runtime/doc/options.txt | 1 - runtime/doc/ui.txt | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 4180ca21f2..d3072d83e2 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -6192,7 +6192,6 @@ A jump table for the options with a short description can be found at |Q_op|. When on, uses |highlight-guifg| and |highlight-guibg| attributes in the terminal (thus using 24-bit color). Requires a ISO-8613-3 compatible terminal. - Must be set at startup (in your |init.vim| or |--cmd|). *'terse'* *'noterse'* 'terse' boolean (default off) diff --git a/runtime/doc/ui.txt b/runtime/doc/ui.txt index abbd063483..e1c5523202 100644 --- a/runtime/doc/ui.txt +++ b/runtime/doc/ui.txt @@ -80,6 +80,27 @@ Global Events *ui-global* Some keys are missing in some modes. +["option_set", name, value] + The value of ui related option `name` changed. The sent options are + listed below: + + 'arabicshape' + 'ambiwith' + 'emoji' + 'guifont' + 'guifontset' + 'guifontwide' + 'showtabline' + 'termguicolors' + + Options are not added to the list if their effects are already taken + care of. For instance, instead of forwarding the raw 'mouse' option + value, `mouse_on` and `mouse_off` directly indicate if mouse support + is active right now. Some options like 'ambiwith' have already taken + effect on the grid, where appropriate empty cells are added, however + an ui might still use these options when rendering raw text sent from + Nvim, like the text of the cmdline when |ui-ext-cmdline| is set. + ["mode_change", mode, mode_idx] The mode changed. The first parameter `mode` is a string representing the current mode. `mode_idx` is an index into the array received in -- cgit From fb07391ce46b8bff90ef7ef073b75919a307e64c Mon Sep 17 00:00:00 2001 From: ZyX Date: Fri, 15 Dec 2017 11:38:34 +0300 Subject: window: Fix matchaddpos() and enhance error reporting --- runtime/doc/eval.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index e337c5d6d5..6c3fd43db0 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -5493,7 +5493,7 @@ matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]]) sets buffer line boundaries to redraw screen. It is supposed to be used when fast match additions and deletions are required, for example to highlight matching parentheses. - + *E5030* *E5031* The list {pos} can contain one of these items: - A number. This whole line will be highlighted. The first line has number 1. @@ -5507,6 +5507,10 @@ matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]]) - A list with three numbers, e.g., [23, 11, 3]. As above, but the third number gives the length of the highlight in bytes. + Entries with zero and negative line numbers are silently + ignored, as well as entries with negative column numbers and + lengths. + The maximum number of positions is 8. Example: > -- cgit From c162bc629440afaf8910f1a29f1dfdb03f898101 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Sat, 16 Dec 2017 21:50:20 -0500 Subject: vim-patch:8.0.0420: text garbled when the system encoding differs from 'encoding' Problem: When running :make the output may be in the system encoding, different from 'encoding'. Solution: Add the 'makeencoding' option. (Ken Takata) https://github.com/vim/vim/commit/2c7292dc5bbf155fe2192d417363b8c085759cad --- runtime/doc/options.txt | 17 +++++++++++++++++ runtime/doc/quickfix.txt | 21 +++++++++++++++++++++ runtime/doc/quickref.txt | 1 + 3 files changed, 39 insertions(+) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index d3072d83e2..f70ec32bd8 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -3809,6 +3809,23 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. + *'makeencoding'* *'menc'* +'makeencoding' 'menc' string (default "") + global or local to buffer |global-local| + {only available when compiled with the |+multi_byte| + feature} + {not in Vi} + Encoding used for reading the output of external commands. When empty, + encoding is not converted. + This is used for `:make`, `:lmake`, `:grep`, `:lgrep`, `:grepadd`, + `:lgrepadd`, `:cfile`, `:cgetfile`, `:caddfile`, `:lfile`, `:lgetfile`, + and `:laddfile`. + + This would be mostly useful when you use MS-Windows. If |+iconv| is + enabled and GNU libiconv is used, setting 'makeencoding' to "char" has + the same effect as setting to the system locale encoding. Example: > + :set makeencoding=char " system locale is used +< *'makeprg'* *'mp'* 'makeprg' 'mp' string (default "make") global or local to buffer |global-local| diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index da167c0f5b..74f82b2c65 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -165,6 +165,9 @@ processing a quickfix or location list command, it will be aborted. keep Vim running while compiling. If you give the name of the errorfile, the 'errorfile' option will be set to [errorfile]. See |:cc| for [!]. + If the encoding of the error file differs from the + 'encoding' option, you can use the 'makeencoding' + option to specify the encoding. *:lf* *:lfile* :lf[ile][!] [errorfile] Same as ":cfile", except the location list for the @@ -176,6 +179,9 @@ processing a quickfix or location list command, it will be aborted. :cg[etfile] [errorfile] *:cg* *:cgetfile* Read the error file. Just like ":cfile" but don't jump to the first error. + If the encoding of the error file differs from the + 'encoding' option, you can use the 'makeencoding' + option to specify the encoding. :lg[etfile] [errorfile] *:lg* *:lgetfile* @@ -186,6 +192,9 @@ processing a quickfix or location list command, it will be aborted. :caddf[ile] [errorfile] Read the error file and add the errors from the errorfile to the current quickfix list. If a quickfix list is not present, then a new list is created. + If the encoding of the error file differs from the + 'encoding' option, you can use the 'makeencoding' + option to specify the encoding. *:laddf* *:laddfile* :laddf[ile] [errorfile] Same as ":caddfile", except the location list for the @@ -322,6 +331,7 @@ use this code: > endfunction au QuickfixCmdPost make call QfMakeConv() +Another option is using 'makeencoding'. EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST: *:cdo* @@ -586,6 +596,9 @@ lists, use ":cnewer 99" first. like |:cnext| and |:cprevious|, see above. This command does not accept a comment, any " characters are considered part of the arguments. + If the encoding of the program output differs from the + 'encoding' option, you can use the 'makeencoding' + option to specify the encoding. *:lmak* *:lmake* :lmak[e][!] [arguments] @@ -645,6 +658,7 @@ read the error messages: > au QuickfixCmdPost make call QfMakeConv() (Example by Faque Cheng) +Another option is using 'makeencoding'. ============================================================================== 5. Using :vimgrep and :grep *grep* *lid* @@ -759,6 +773,9 @@ id-utils) in a similar way to its compiler integration (see |:make| above). When 'grepprg' is "internal" this works like |:vimgrep|. Note that the pattern needs to be enclosed in separator characters then. + If the encoding of the program output differs from the + 'encoding' option, you can use the 'makeencoding' + option to specify the encoding. *:lgr* *:lgrep* :lgr[ep][!] [arguments] Same as ":grep", except the location list for the @@ -783,6 +800,10 @@ id-utils) in a similar way to its compiler integration (see |:make| above). \ | catch /E480:/ \ | endtry" < + If the encoding of the program output differs from the + 'encoding' option, you can use the 'makeencoding' + option to specify the encoding. + *:lgrepa* *:lgrepadd* :lgrepa[dd][!] [arguments] Same as ":grepadd", except the location list for the diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt index b22d2afa7e..902b0175a2 100644 --- a/runtime/doc/quickref.txt +++ b/runtime/doc/quickref.txt @@ -762,6 +762,7 @@ Short explanation of each option: *option-list* 'loadplugins' 'lpl' load plugin scripts when starting up 'magic' changes special characters in search patterns 'makeef' 'mef' name of the errorfile for ":make" +'makeencoding' 'menc' encoding of external make/grep commands 'makeprg' 'mp' program to use for the ":make" command 'matchpairs' 'mps' pairs of characters that "%" can match 'matchtime' 'mat' tenths of a second to show matching paren -- cgit From fb8592b7ba673f230f144dc8c29e5dffc33fc50a Mon Sep 17 00:00:00 2001 From: James McCoy Date: Mon, 18 Dec 2017 14:26:49 -0500 Subject: vim-patch:8.0.0517: there is no way to remove quickfix lists Problem: There is no way to remove quickfix lists (for testing). Solution: Add the 'f' action to setqflist(). Add tests. (Yegappan Lakshmanan) https://github.com/vim/vim/commit/b6fa30ccc39cdb7f1d07b99fe2f4c6b61671dac2 --- runtime/doc/eval.txt | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index e337c5d6d5..efc8775d0a 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -6855,16 +6855,19 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()* Note that the list is not exactly the same as what |getqflist()| returns. - *E927* - If {action} is set to 'a', then the items from {list} are - added to the existing quickfix list. If there is no existing - list, then a new list is created. + {action} values: *E927* + 'a' The items from {list} are added to the existing + quickfix list. If there is no existing list, then a + new list is created. - If {action} is set to 'r', then the items from the current - quickfix list are replaced with the items from {list}. This - can also be used to clear the list: > - :call setqflist([], 'r') + 'r' The items from the current quickfix list are replaced + with the items from {list}. This can also be used to + clear the list: > + :call setqflist([], 'r') < + 'f' All the quickfix lists in the quickfix stack are + freed. + If {action} is not present or is set to ' ', then a new list is created. -- cgit From 4d2d844c12e1a94a5d3cbe93794bb04ef6fb8377 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Mon, 18 Dec 2017 21:40:34 -0500 Subject: vim-patch:8.0.0580: cannot set the valid flag with setqflist() Problem: Cannot set the valid flag with setqflist(). Solution: Add the "valid" argument. (Yegappan Lakshmanan, closes vim/vim#1642) https://github.com/vim/vim/commit/f1d21c8cc83f40c815b6bf13cd2043152db533ee --- runtime/doc/eval.txt | 3 +++ 1 file changed, 3 insertions(+) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index efc8775d0a..0b50340dee 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -6841,6 +6841,7 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()* nr error number text description of the error type single-character error type, 'E', 'W', etc. + valid recognized error message The "col", "vcol", "nr", "type" and "text" entries are optional. Either "lnum" or "pattern" entry can be used to @@ -6850,6 +6851,8 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()* item will not be handled as an error line. If both "pattern" and "lnum" are present then "pattern" will be used. + If the "valid" entry is not supplied, then the valid flag is + set when "bufnr" is a valid buffer or "filename" exists. If you supply an empty {list}, the quickfix list will be cleared. Note that the list is not exactly the same as what -- cgit From 308dd53783314103710a37c9809eddb78279eab4 Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Mon, 27 Nov 2017 13:01:49 +0100 Subject: channel: check for existance before trying to set key This avoids an error message in async context, where it is not safe. --- runtime/doc/channel.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt index c94c64eb84..c4f7eb1ff1 100644 --- a/runtime/doc/channel.txt +++ b/runtime/doc/channel.txt @@ -43,7 +43,7 @@ bytes. Additionally, for a job channel using rpc, bytes can still be read over its stderr. Similarily, only bytes can be written to nvim's own stderr. *channel-callback* *buffered* - *on_stdout* *on_stderr* *on_stdin* *on_data* + *E5210* *on_stdout* *on_stderr* *on_stdin* *on_data* A callback function `on_{stream}` will be invoked with data read from the channel. By default, the callback will be invoked immediately when data is available, to facilitate interactive communication. The same callback will @@ -52,7 +52,11 @@ Alternatively the `{stream}_buffered` option can be set to invoke the callback only when the underlying stream reaches EOF, and will then be passed in complete output. This is helpful when only the complete output is useful, and not partial data. Futhermore if `{stream}_buffered` is set but not a callback, -the data is saved in the options dict, with the stream name as key. +the data is saved in the options dict, with the stream name as key. For this +to work a new options dict must be used for each opened channel. If a script +uses a global `s:job_opts` dict, it can be copied with |copy()| before supplying +it to |jobstart()|. If a dict is reused, so that the dict key already is +occupied, error `E5210` will be raised. - The arguments passed to the callback function are: -- cgit From fe60fa9faafd90cfe756c80119abae6f8906fc4b Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sat, 16 Dec 2017 21:33:59 +0100 Subject: doc vim-patch:8.0.1206: no autocmd for entering or leaving the command line (commit a4f6cec7a31ff8dbfa089b9e22227afbeb951e9b) NA patches: vim-patch:8.0.0320: warning for unused variable with small build --- runtime/doc/api.txt | 44 ++++++++++++++++++++++---------------------- runtime/doc/channel.txt | 4 ++-- runtime/doc/develop.txt | 6 +++--- runtime/doc/vim_diff.txt | 1 + 4 files changed, 28 insertions(+), 27 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt index 6c2a3a8632..fd6918de43 100644 --- a/runtime/doc/api.txt +++ b/runtime/doc/api.txt @@ -512,27 +512,27 @@ nvim_parse_expression({expr}, {flags}, {highlight}) [start_col, end_col)). Return:~ - AST: top-level dictionary holds keys "error": Dictionary - with error, present only if parser saw some error. - Contains the following keys: "message": String, error - message in printf format, translated. Must contain exactly - one "%.*s". "arg": String, error message argument. "len": - Amount of bytes successfully parsed. With flags equal to - "" that should be equal to the length of expr string. - @note: “Sucessfully parsed” here means “participated in - AST creation”, not “till the first error”. "ast": AST, - either nil or a dictionary with these keys: "type": node - type, one of the value names from ExprASTNodeType - stringified without "kExprNode" prefix. "start": a pair - [line, column] describing where node is “started” where - "line" is always 0 (will not be 0 if you will be using - nvim_parse_viml() on e.g. ":let", but that is not present - yet). Both elements are Integers. "len": “length” of the - node. This and "start" are there for debugging purposes - primary (debugging parser and providing debug - information). "children": a list of nodes described in - top/"ast". There always is zero, one or two children, key - will not be present if node has no children. Maximum + AST: top-level dictionary with these keys: "error": + Dictionary with error, present only if parser saw some + error. Contains the following keys: "message": String, + error message in printf format, translated. Must contain + exactly one "%.*s". "arg": String, error message argument. + "len": Amount of bytes successfully parsed. With flags + equal to "" that should be equal to the length of expr + string. @note: “Sucessfully parsed” here means + “participated in AST creation”, not “till the first + error”. "ast": AST, either nil or a dictionary with these + keys: "type": node type, one of the value names from + ExprASTNodeType stringified without "kExprNode" prefix. + "start": a pair [line, column] describing where node is + “started” where "line" is always 0 (will not be 0 if you + will be using nvim_parse_viml() on e.g. ":let", but that + is not present yet). Both elements are Integers. "len": + “length” of the node. This and "start" are there for + debugging purposes primary (debugging parser and providing + debug information). "children": a list of nodes described + in top/"ast". There always is zero, one or two children, + key will not be present if node has no children. Maximum number of children may be found in node_maxchildren array. Local values (present only for certain nodes): "scope": a single Integer, specifies scope for "Option" and @@ -1047,4 +1047,4 @@ nvim_ui_try_resize({width}, {height}) *nvim_ui_try_resize()* nvim_ui_set_option({name}, {value}) *nvim_ui_set_option()* TODO: Documentation - vim:tw=78:ts=8:ft=help:norl: \ No newline at end of file + vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt index c4f7eb1ff1..eb2bac6fce 100644 --- a/runtime/doc/channel.txt +++ b/runtime/doc/channel.txt @@ -4,9 +4,9 @@ NVIM REFERENCE MANUAL by Thiago de Arruda -Nvim's facilities for async io *channel* +Nvim asynchronous IO *channel* - Type to see the table of contents. + Type |gO| to see the table of contents. ============================================================================== 1. Introduction *channel-intro* diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt index 36826e2479..4e77f40035 100644 --- a/runtime/doc/develop.txt +++ b/runtime/doc/develop.txt @@ -270,9 +270,9 @@ External UIs are expected to implement these common features: - Send the "super" key (Windows key, Apple key) as a | - autocmd OptionSet guifont call rpcnotify(42, 'option-changed', 'guifont', &guifont) +- UI-related options ('guifont', 'ambiwidth', …) are published in the + "option_set" |ui-global| event. The event is triggered when the UI first + connects to Nvim and whenever an option is changed by the user or a plugin. vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 7061f01316..9643777975 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -70,6 +70,7 @@ Providers Ruby plugins |provider-ruby| Shared data |shada| Embedded terminal |terminal| +VimL parser |nvim_parse_expression()| XDG base directories |xdg| USER EXPERIENCE ~ -- cgit From 89d1b36084f50acffdc7680212c37383e08787b5 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Sat, 30 Dec 2017 23:30:40 -0500 Subject: vim-patch:8.0.0591: changes to eval functionality not documented Problem: Changes to eval functionality not documented. Solution: Include all the changes. https://github.com/vim/vim/commit/45d2cca1ea3f90fc70ad99d0c6812a9d8536303c --- runtime/doc/eval.txt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index a9474b58a3..2c3d38ced7 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -4327,6 +4327,7 @@ getqflist([{what}]) *getqflist()* If the optional {what} dictionary argument is supplied, then returns only the items listed in {what} as a dictionary. The following string items are supported in {what}: + context get the context stored with |setqflist()| nr get information for this quickfix list; zero means the current quickfix list title get the list title @@ -4338,6 +4339,7 @@ getqflist([{what}]) *getqflist()* returned. The returned dictionary contains the following entries: + context context information stored with |setqflist()| nr quickfix list number title quickfix list title text winid quickfix |window-ID| (if opened) @@ -6885,6 +6887,7 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()* only the items listed in {what} are set. The first {list} argument is ignored. The following items can be specified in {what}: + context any Vim type can be stored as a context nr list number in the quickfix stack title quickfix list title text Unsupported keys in {what} are ignored. @@ -10508,18 +10511,19 @@ missing: > To execute a command only when the |+eval| feature is disabled requires a trick, as this example shows: > - if 1 - nnoremap : :" - endif - normal :set history=111 - if 1 - nunmap : - endif + + silent! while 0 + set history=111 + silent! endwhile + +When the |+eval| feature is available the command is skipped because of the +"while 0". Without the |+eval| feature the "while 0" is an error, which is +silently ignored, and the command is executed. The "" here is a real CR character, type CTRL-V Enter to get it. When the |+eval| feature is available the ":" is remapped to add a double -quote, which has the effect of commenting-out the command. without the +quote, which has the effect of commenting-out the command. Without the |+eval| feature the nnoremap command is skipped and the command is executed. ============================================================================== -- cgit From 6742fd8aead06e45f19b59222f96ccdcb1748e4c Mon Sep 17 00:00:00 2001 From: James McCoy Date: Sat, 30 Dec 2017 23:39:51 -0500 Subject: vim-patch:8.0.0634: cannot easily get to the last quickfix list Problem: Cannot easily get to the last quickfix list. Solution: Add "$" as a value for the "nr" argument of getqflist() and setqflist(). (Yegappan Lakshmanan) https://github.com/vim/vim/commit/875feea6ce223462d55543735143d747dcaf4287 --- runtime/doc/eval.txt | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 2c3d38ced7..7c1e524b66 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -4329,12 +4329,16 @@ getqflist([{what}]) *getqflist()* following string items are supported in {what}: context get the context stored with |setqflist()| nr get information for this quickfix list; zero - means the current quickfix list + means the current quickfix list and '$' means + the last quickfix list title get the list title winid get the |window-ID| (if opened) all all of the above quickfix properties Non-string items in {what} are ignored. If "nr" is not present then the current quickfix list is used. + To get the number of lists in the quickfix stack, set 'nr' to + '$' in {what}. The 'nr' value in the returned dictionary + contains the quickfix stack size. In case of error processing {what}, an empty dictionary is returned. @@ -6888,7 +6892,9 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()* argument is ignored. The following items can be specified in {what}: context any Vim type can be stored as a context - nr list number in the quickfix stack + nr list number in the quickfix stack; zero + means the current quickfix list and '$' means + the last quickfix list title quickfix list title text Unsupported keys in {what} are ignored. If the "nr" item is not present, then the current quickfix list @@ -6993,18 +6999,22 @@ shellescape({string} [, {special}]) *shellescape()* quotes within {string}. Otherwise, it will enclose {string} in single quotes and replace all "'" with "'\''". + When the {special} argument is present and it's a non-zero Number or a non-empty String (|non-zero-arg|), then special items such as "!", "%", "#" and "" will be preceded by a backslash. This backslash will be removed again by the |:!| command. + The "!" character will be escaped (again with a |non-zero-arg| {special}) when 'shell' contains "csh" in the tail. That is because for csh and tcsh "!" is used for history replacement even when inside single quotes. - The character is also escaped. With a |non-zero-arg| - {special} and 'shell' containing "csh" in the tail it's + + With a |non-zero-arg| {special} the character is also + escaped. When 'shell' containing "csh" in the tail it's escaped a second time. + Example of use with a |:!| command: > :exe '!dir ' . shellescape(expand(''), 1) < This results in a directory listing for the file under the -- cgit From 3efc50d1d4e97c3d7bc3734ac77e6ed7b43a391d Mon Sep 17 00:00:00 2001 From: James McCoy Date: Sun, 31 Dec 2017 00:27:08 -0500 Subject: vim-patch:8.0.0641: cannot set a separate highlighting for the quickfix line Problem: Cannot set a separate highlighting for the current line in the quickfix window. Solution: Add QuickFixLine. (anishsane, closes vim/vim#1755) https://github.com/vim/vim/commit/2102035488e80ef6fd5038ed15d21672712ba0f6 --- runtime/doc/options.txt | 4 ++++ runtime/doc/quickfix.txt | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index f70ec32bd8..067aad1f93 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -2712,6 +2712,10 @@ A jump table for the options with a short description can be found at |Q_op|. :s///g subst. one subst. all :s///gg subst. all subst. one + DEPRECATED: Setting this option may break plugins that are not aware + of this option. Also, many users get confused that adding the /g flag + has the opposite effect of that it normally does. + *'grepformat'* *'gfm'* 'grepformat' 'gfm' string (default "%f:%l:%m,%f:%l%m,%f %l%m") global diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index 74f82b2c65..f280286290 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -470,7 +470,11 @@ keep its height, ignoring 'winheight' and 'equalalways'. You can change the height manually (e.g., by dragging the status line above it with the mouse). In the quickfix window, each line is one error. The line number is equal to -the error number. You can use ":.cc" to jump to the error under the cursor. +the error number. The current entry is highlighted with the QuickFixLine +highlighting. You can change it to your liking, e.g.: > + :hi QuickFixLine ctermbg=Yellow guibg=Yellow + +You can use ":.cc" to jump to the error under the cursor. Hitting the key or double-clicking the mouse on a line has the same effect. The file containing the error is opened in the window above the quickfix window. If there already is a window for that file, it is used -- cgit From d0c4bd23f78ee00943725ea77a63f2a223dba66b Mon Sep 17 00:00:00 2001 From: James McCoy Date: Sun, 31 Dec 2017 00:36:35 -0500 Subject: vim-patch:8.0.0657: cannot get and set quickfix list items Problem: Cannot get and set quickfix list items. Solution: Add the "items" argument to getqflist() and setqflist(). (Yegappan Lakshmanan) https://github.com/vim/vim/commit/6a8958db259d4444da6e6956e54a6513c1af8860 --- runtime/doc/eval.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 7c1e524b66..ae62498d35 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -4328,6 +4328,7 @@ getqflist([{what}]) *getqflist()* returns only the items listed in {what} as a dictionary. The following string items are supported in {what}: context get the context stored with |setqflist()| + items quickfix list entries nr get information for this quickfix list; zero means the current quickfix list and '$' means the last quickfix list @@ -4344,6 +4345,7 @@ getqflist([{what}]) *getqflist()* The returned dictionary contains the following entries: context context information stored with |setqflist()| + items quickfix list entries nr quickfix list number title quickfix list title text winid quickfix |window-ID| (if opened) @@ -6892,6 +6894,8 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()* argument is ignored. The following items can be specified in {what}: context any Vim type can be stored as a context + items list of quickfix entries. Same as the {list} + argument. nr list number in the quickfix stack; zero means the current quickfix list and '$' means the last quickfix list -- cgit From 9fe6c12e8159b656e53b6d79226aa5a1c39fdc27 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Sun, 31 Dec 2017 09:50:05 -0500 Subject: doc: deprecate 'gdefault' [ci skip] --- runtime/doc/deprecated.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt index 72dfe1230e..b3073ffe58 100644 --- a/runtime/doc/deprecated.txt +++ b/runtime/doc/deprecated.txt @@ -37,8 +37,8 @@ Functions ~ *file_readable()* Obsolete name for |filereadable()|. *highlight_exists()* Obsolete name for |hlexists()|. *highlightID()* Obsolete name for |hlID()|. -*jobclose()* Obsolete name for |chanclose()| -*jobsend()* Obsolete name for |chansend()| +*jobclose()* Obsolete name for |chanclose()| +*jobsend()* Obsolete name for |chansend()| *last_buffer_nr()* Obsolete name for bufnr("$"). Modifiers ~ @@ -48,8 +48,10 @@ Modifiers ~ *:map-special* <> notation is always enabled. |cpo-<| Options ~ +'gd' +'gdefault' Enables the |:substitute| flag 'g' by default. *'fe'* 'fenc'+'enc' before Vim 6.0; no longer used. -*'highlight'* *'hl'* Names of builtin |highlight-groups| cannot be changed. +*'highlight'* *'hl'* Names of builtin |highlight-groups| cannot be changed. *'langnoremap'* Deprecated alias to 'nolangremap'. *'vi'* *'viminfo'* Deprecated alias to 'shada' option. -- cgit From 60716371e97dae916c6525e9ba840aae562069bb Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 1 Jan 2018 19:38:18 +0100 Subject: tui: support TERM=konsole-256color TERM=konsole-256color is recognized by ncurses. TERM=konsole-xterm might be more clever, but should not be necessary (for Nvim at least), we already special-case Konsole in various places. We may need to clean up some areas that currently assume Konsole always "pretends xterm" (`TERM=xterm-256color`), though I didn't find any such cases. ref #6403 ref https://github.com/neovim/neovim/issues/6403#issuecomment-348713346 --- runtime/doc/term.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt index a694185fc9..6cf62f9bb5 100644 --- a/runtime/doc/term.txt +++ b/runtime/doc/term.txt @@ -38,13 +38,13 @@ Otherwise Nvim cannot know what sequences your terminal expects, and weird or sub-optimal behavior will result (scrolling quirks, wrong colors, etc.). $TERM is also important because it is mirrored by SSH to the remote session, -unlike other common client-end environment variables ($COLORTERM, -$XTERM_VERSION, $VTE_VERSION, $KONSOLE_PROFILE_NAME, $TERM_PROGRAM, ...). +unlike most other environment variables. For this terminal Set $TERM to |builtin-terms| ------------------------------------------------------------------------- iTerm (original) iterm, iTerm.app N iTerm2 (new capabilities) iterm2, iTerm2.app Y + Konsole konsole-256color N anything libvte-based vte, vte-256color Y (e.g. GNOME Terminal) (aliases: gnome, gnome-256color) tmux tmux, tmux-256color Y -- cgit From 7c4bb23ff38a459911a742657572bc273e528ddf Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 3 Jan 2018 19:57:22 +0100 Subject: defaults: do :filetype stuff unless explicitly "off" Until now, the default `:filetype ...` setup was skipped if the user config touched `:filetype` in any way (including implicitly via `:syntax on`). No one needs that, and it's very confusing. Instead, proceed with `:filetype ... on` unless the user explicitly called `:filetype ... off`. closes #7765 --- runtime/doc/filetype.txt | 6 ++---- runtime/doc/starting.txt | 9 ++++----- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index 78402b47fe..74c453f79a 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -24,10 +24,8 @@ Each time a new or existing file is edited, Vim will try to recognize the type of the file and set the 'filetype' option. This will trigger the FileType event, which can be used to set the syntax highlighting, set options, etc. -Detail: The ":filetype on" command will load one of these files: - Mac $VIMRUNTIME/filetype.vim - MS-DOS $VIMRUNTIME\filetype.vim - Unix $VIMRUNTIME/filetype.vim +Detail: The ":filetype on" command will load this file: + $VIMRUNTIME/filetype.vim This file is a Vim script that defines autocommands for the BufNewFile and BufRead events. If the file type is not found by the name, the file $VIMRUNTIME/scripts.vim is used to detect it from the diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt index 30c0641ef7..e9188ba641 100644 --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -439,15 +439,14 @@ accordingly. Vim proceeds in this order: :runtime! filetype.vim :runtime! ftplugin.vim :runtime! indent.vim -< This step is skipped if ":filetype ..." was called before now or if - the "-u NONE" command line argument was given. +< Skipped if ":filetype … off" was called or if the "-u NONE" command + line argument was given. 5. Enable syntax highlighting. This does the same as the command: > :runtime! syntax/syntax.vim -< Note: This enables filetype detection even if ":filetype off" was - called before now. - This step is skipped if the "-u NONE" command line argument was given. +< Skipped if ":syntax off" was called or if the "-u NONE" command + line argument was given. 6. Load the plugin scripts. *load-plugins* This does the same as the command: > -- cgit From f8f7f9d5f5aead86541ffcd12e291b6dfb6811e5 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 15 Jan 2018 23:14:20 +0100 Subject: vim-patch:8.0.0151,3,4 #7389 vim-patch:8.0.0151 Problem: To pass buffer content to system() and systemlist() one has to first create a string or list. Solution: Allow passing a buffer number. (LemonBoy, closes vim/vim#1240) https://github.com/vim/vim/commit/12c4492dd35e0cd83c8816be2ec849b836109882 vim-patch:8.0.0153 Problem: system() test fails on MS-Windows. Solution: Deal when extra space and CR. https://github.com/vim/vim/commit/9d9c35651712b88c81f1ae11091de1fd0bbbd35c vim-patch:8.0.0154 Problem: system() test fails on OS/X. Solution: Deal with leading spaces. https://github.com/vim/vim/commit/31f19ce0a052f7c76d44a9a190e468c79cf5d56d --- runtime/doc/eval.txt | 3 +++ 1 file changed, 3 insertions(+) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index ae62498d35..7820b85bf4 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -7645,6 +7645,9 @@ system({cmd} [, {input}]) *system()* *E677* |writefile()| does with {binary} set to "b" (i.e. with a newline between each list item, and newlines inside list items converted to NULs). + When {input} is given and is a valid buffer id, the content of + the buffer is written to the file line by line, each line + terminated by a NL (and NUL where the text has NL). *E5677* Note: system() cannot write to or read from backgrounded ("&") shell commands, e.g.: > -- cgit From eb4aab7173fa1733f77bb6d7117351b47ada6134 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sun, 21 Jan 2018 07:31:57 +0100 Subject: ui: forward 'linespace' option #7883 ref #7520 --- runtime/doc/options.txt | 2 +- runtime/doc/ui.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 067aad1f93..b3139f3298 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -3676,7 +3676,7 @@ A jump table for the options with a short description can be found at |Q_op|. < Minimum value is 2, maximum value is 1000. *'linespace'* *'lsp'* -'linespace' 'lsp' number (default 0, 1 for Win32 GUI) +'linespace' 'lsp' number (default 0) global {only in the GUI} Number of pixel lines inserted between characters. Useful if the font diff --git a/runtime/doc/ui.txt b/runtime/doc/ui.txt index e1c5523202..1b3c10b71e 100644 --- a/runtime/doc/ui.txt +++ b/runtime/doc/ui.txt @@ -90,6 +90,7 @@ Global Events *ui-global* 'guifont' 'guifontset' 'guifontwide' + 'linespace' 'showtabline' 'termguicolors' -- cgit From e2eff5269f3d33f7ae60db1a082300844403fe99 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 15 Jan 2018 22:26:11 +0100 Subject: doc: if_cscop: cleanup --- runtime/doc/if_cscop.txt | 195 +++++++++++------------------------------------ 1 file changed, 43 insertions(+), 152 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt index ac3d7a9ed8..90f60652f3 100644 --- a/runtime/doc/if_cscop.txt +++ b/runtime/doc/if_cscop.txt @@ -4,42 +4,19 @@ VIM REFERENCE MANUAL by Andy Kahn *cscope* *Cscope* -This document explains how to use Vim's cscope interface. +Cscope is a "code intelligence" tool that helps you navigate C programs. It +can also perform some refactoring tasks, such as renaming a global variable in +all source files. Think of it as "ctags on steroids". -Cscope is a tool like ctags, but think of it as ctags on steroids since it -does a lot more than what ctags provides. In Vim, jumping to a result from -a cscope query is just like jumping to any tag; it is saved on the tag stack -so that with the right keyboard mappings, you can jump back and forth between -functions as you normally would with |tags|. +See |cscope-usage| for a quickstart. Type |gO| to see the table of contents. ============================================================================== -1. Cscope introduction *cscope-intro* +Cscope introduction *cscope-intro* -The following text is taken from a version of the cscope man page: - ----- - - Cscope is an interactive screen-oriented tool that helps you: - - Learn how a C program works without endless flipping through a thick - listing. - - Locate the section of code to change to fix a bug without having to - learn the entire program. - - Examine the effect of a proposed change such as adding a value to an - enum variable. - - Verify that a change has been made in all source files such as adding - an argument to an existing function. - - Rename a global variable in all source files. - - Change a constant to a preprocessor symbol in selected lines of files. - - It is designed to answer questions like: +Cscope is designed to answer questions like: Where is this symbol used? Where is it defined? Where did this variable get its value? @@ -51,35 +28,17 @@ The following text is taken from a version of the cscope man page: Where is this source file in the directory structure? What files include this header file? - Cscope answers these questions from a symbol database that it builds the - first time it is used on the source files. On a subsequent call, cscope - rebuilds the database only if a source file has changed or the list of - source files is different. When the database is rebuilt the data for the - unchanged files is copied from the old database, which makes rebuilding - much faster than the initial build. - - ----- - -When cscope is normally invoked, you will get a full-screen selection -screen allowing you to make a query for one of the above questions. -However, once a match is found to your query and you have entered your -text editor to edit the source file containing match, you cannot simply -jump from tag to tag as you normally would with vi's Ctrl-] or :tag -command. - -Vim's cscope interface is done by invoking cscope with its line-oriented -interface, and then parsing the output returned from a query. The end -result is that cscope query results become just like regular tags, so -you can jump to them just like you do with normal tags (Ctrl-] or :tag) -and then go back by popping off the tagstack with Ctrl-T. (Please note -however, that you don't actually jump to a cscope tag simply by doing -Ctrl-] or :tag without remapping these commands or setting an option. -See the remaining sections on how the cscope interface works and for -suggested use.) +Cscope answers these questions from a symbol database that it builds the first +time it is used on the source files. On a subsequent call, cscope rebuilds +the database only if a source file has changed or the list of source files is +different. When the database is rebuilt the data for the unchanged files is +copied from the old database, which makes rebuilding much faster than the +initial build. +See |cscope-usage| to get started. ============================================================================== -2. Cscope related commands *cscope-commands* +Cscope commands *cscope-commands* *:cscope* *:cs* *:scs* *:scscope* *E259* *E262* *E561* *E560* All cscope commands are accessed through suboptions to the cscope commands. @@ -232,7 +191,7 @@ through your tags file(s). ============================================================================== -3. Cscope options *cscope-options* +Cscope options *cscope-options* Use the |:set| command to set all cscope options. Ideally, you would do this in one of your startup files (e.g., vimrc). Some cscope related @@ -245,7 +204,6 @@ started will have no effect! :set csprg=/usr/local/bin/cscope < *cscopequickfix* *csqf* *E469* -{not available when compiled without the |+quickfix| feature} 'cscopequickfix' specifies whether to use quickfix window to show cscope results. This is a list of comma-separated values. Each item consists of |cscope-find| command (s, g, d, c, t, e, f, i or a) and flag (+, - or 0). @@ -260,81 +218,64 @@ seems to be useful: > If 'cscopetag' is set, the commands ":tag" and CTRL-] as well as "vim -t" will always use |:cstag| instead of the default :tag behavior. Effectively, by setting 'cst', you will always search your cscope databases as well as -your tag files. The default is off. Examples: > - :set cst - :set nocst -< +your tag files. The default is off. + *cscoperelative* *csre* If 'cscoperelative' is set, then in absence of a prefix given to cscope (prefix is the argument of -P option of cscope), basename of cscope.out location (usually the project root directory) will be used as the prefix to construct an absolute path. The default is off. Note: This option is only effective when cscope (cscopeprg) is initialized without a prefix -path (-P). Examples: > - :set csre - :set nocsre -< +path (-P). + *cscopetagorder* *csto* The value of 'csto' determines the order in which |:cstag| performs a search. If 'csto' is set to zero, cscope database(s) are searched first, followed by tag file(s) if cscope did not return any matches. If 'csto' is set to one, tag file(s) are searched before cscope database(s). The default is zero. -Examples: > - :set csto=0 - :set csto=1 -< + *cscopeverbose* *csverb* If 'cscopeverbose' is not set (the default), messages will not be printed indicating success or failure when adding a cscope database. Ideally, you should reset this option in your |init.vim| before adding any cscope databases, and after adding them, set it. From then on, when you add more databases within Vim, you will get a (hopefully) useful message should the -database fail to be added. Examples: > - :set csverb - :set nocsverb -< +database fail to be added. + *cscopepathcomp* *cspc* -The value of 'cspc' determines how many components of a file's path to -display. With the default value of zero the entire path will be displayed. +'cscopepathcomp' determines how many components of a file's path to display. +With the default value of zero the entire path will be displayed. The value one will display only the filename with no path. Other values display that many components. For example: > - :set cspc=3 + :set cscopepathcomp=3 will display the last 3 components of the file's path, including the file name itself. ============================================================================== -4. How to use cscope in Vim *cscope-howtouse* +Using cscope in Nvim *cscope-usage* *cscope-howtouse* -The first thing you need to do is to build a cscope database for your -source files. For the most basic case, simply do "cscope -b". Please -refer to the cscope man page for more details. +To get started, build the cscope database in your project root directory: > + cscope -bcqR -Assuming you have a cscope database, you need to "add" the database to Vim. -This establishes a cscope "connection" and makes it available for Vim to use. -You can do this in your vimrc file, or you can do it manually after starting -vim. For example, to add the cscope database "cscope.out", you would do: +See the cscope manpage for details: > + :Man cscope - :cs add cscope.out +By default the cscope database file is named "cscope.out". After building the +database, connect to it from Nvim: > + :cscope add cscope.out -You can double-check the result of this by executing ":cs show". This will -produce output which looks like this: +That establishes a cscope connection for Nvim to use. You can check the +result with ":cs show". It will show something like: # pid database name prepend path 0 28806 cscope.out -Note: -Because of the Microsoft RTL limitations, Win32 version shows 0 instead -of the real pid. - Once a cscope connection is established, you can make queries to cscope and -the results will be printed to you. Queries are made using the command -":cs find". For example: - +the results will be printed. Queries are made using the command ":cs find". +For example: > :cs find g ALIGN_SIZE -This can get a little cumbersome since one ends up doing a significant -amount of typing. Fortunately, there are ways around this by mapping -shortcut keys. See |cscope-suggestions| for suggested usage. +To make this easier you can configure mappings, see |cscope-suggestions|. If the results return only one match, you will automatically be taken to it. If there is more than one match, you will be given a selection screen to pick @@ -343,25 +284,16 @@ simply hit Ctrl-T to get back to the previous one. ============================================================================== -5. Limitations *cscope-limitations* - -Cscope support for Vim is only available on systems that support these four -system calls: fork(), pipe(), execl(), waitpid(). This means it is mostly -limited to Unix systems. - -Additionally Cscope support works for Win32. For more information and a -cscope version for Win32 see: - - http://iamphet.nm.ru/cscope/index.html +Limitations *cscope-limitations* Hard-coded limitation: doing a |:tjump| when |:cstag| searches the tag files is not configurable (e.g., you can't do a tselect instead). + ============================================================================== -6. Suggested usage *cscope-suggestions* +Sample config *cscope-suggestions* -Put these entries in your vimrc (adjust the pathname accordingly to your -setup): > +Copy this into your init.vim (adjust paths for your system): > if has("cscope") set csprg=/usr/local/bin/cscope @@ -447,47 +379,6 @@ Cscope Home Page (http://cscope.sourceforge.net/): > \:vert scs find d =expand("") nmap a \:vert scs find a =expand("") - -============================================================================== -7. Cscope availability and information *cscope-info* - -If you do not already have cscope (it did not come with your compiler -license or OS distribution), then you can download it for free from: - http://cscope.sourceforge.net/ -This is released by SCO under the BSD license. - -If you want a newer version of cscope, you will probably have to buy it. -According to the (old) nvi documentation: - - You can buy version 13.3 source with an unrestricted license - for $400 from AT&T Software Solutions by calling +1-800-462-8146. - -Also you can download cscope 13.x and mlcscope 14.x (multi-lingual cscope -which supports C, C++, Java, lex, yacc, breakpoint listing, Ingres, and SDL) -from World-Wide Exptools Open Source packages page: - http://www.bell-labs.com/project/wwexptools/packages.html - -In Solaris 2.x, if you have the C compiler license, you will also have -cscope. Both are usually located under /opt/SUNWspro/bin - -SGI developers can also get it. Search for Cscope on this page: - http://freeware.sgi.com/index-by-alpha.html - https://toolbox.sgi.com/toolbox/utilities/cscope/ -The second one is for those who have a password for the SGI toolbox. - -There is source to an older version of a cscope clone (called "cs") available -on the net. Due to various reasons, this is not supported with Vim. - -The cscope interface/support for Vim was originally written by -Andy Kahn . The original structure (as well as a tiny -bit of code) was adapted from the cscope interface in nvi. Please report -any problems, suggestions, patches, et al., you have for the usage of -cscope within Vim to him. - *cscope-win32* -For a cscope version for Win32 see: - http://code.google.com/p/cscope-win32/ - -Win32 support was added by Sergey Khorev . Contact -him if you have Win32-specific issues. +< vim:tw=78:ts=8:ft=help:norl: -- cgit From 53749e174995b812a3985d089460a9d7b2670c71 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 15 Jan 2018 22:26:48 +0100 Subject: defaults: enable 'cscopeverbose', and deprecate it --- runtime/doc/deprecated.txt | 1 + runtime/doc/if_cscop.txt | 14 ++------------ runtime/doc/options.txt | 6 ------ runtime/doc/quickref.txt | 1 - runtime/doc/vim_diff.txt | 1 + 5 files changed, 4 insertions(+), 19 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt index b3073ffe58..ea61e847c7 100644 --- a/runtime/doc/deprecated.txt +++ b/runtime/doc/deprecated.txt @@ -48,6 +48,7 @@ Modifiers ~ *:map-special* <> notation is always enabled. |cpo-<| Options ~ +*'cscopeverbose'* Enabled by default. Use |:silent| instead. 'gd' 'gdefault' Enables the |:substitute| flag 'g' by default. *'fe'* 'fenc'+'enc' before Vim 6.0; no longer used. diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt index 90f60652f3..451d525ea8 100644 --- a/runtime/doc/if_cscop.txt +++ b/runtime/doc/if_cscop.txt @@ -234,14 +234,6 @@ If 'csto' is set to zero, cscope database(s) are searched first, followed by tag file(s) if cscope did not return any matches. If 'csto' is set to one, tag file(s) are searched before cscope database(s). The default is zero. - *cscopeverbose* *csverb* -If 'cscopeverbose' is not set (the default), messages will not be printed -indicating success or failure when adding a cscope database. Ideally, you -should reset this option in your |init.vim| before adding any cscope -databases, and after adding them, set it. From then on, when you add more -databases within Vim, you will get a (hopefully) useful message should the -database fail to be added. - *cscopepathcomp* *cspc* 'cscopepathcomp' determines how many components of a file's path to display. With the default value of zero the entire path will be displayed. @@ -299,15 +291,13 @@ Copy this into your init.vim (adjust paths for your system): > set csprg=/usr/local/bin/cscope set csto=0 set cst - set nocsverb " add any database in current directory if filereadable("cscope.out") - cs add cscope.out + silent cs add cscope.out " else add database pointed to by environment elseif $CSCOPE_DB != "" - cs add $CSCOPE_DB + silent cs add $CSCOPE_DB endif - set csverb endif By setting 'cscopetag', we have effectively replaced all instances of the :tag diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index b3139f3298..ded9f7667a 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1807,12 +1807,6 @@ A jump table for the options with a short description can be found at |Q_op|. Determines the order in which ":cstag" performs a search. See |cscopetagorder|. - *'cscopeverbose'* *'csverb'* - *'nocscopeverbose'* *'nocsverb'* -'cscopeverbose' 'csverb' boolean (default off) - global - Give messages when adding a cscope database. See |cscopeverbose|. - *'cursorbind'* *'crb'* *'nocursorbind'* *'nocrb'* 'cursorbind' 'crb' boolean (default off) local to window diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt index 902b0175a2..a0ca17cc4a 100644 --- a/runtime/doc/quickref.txt +++ b/runtime/doc/quickref.txt @@ -655,7 +655,6 @@ Short explanation of each option: *option-list* 'cscoperelative' 'csre' Use cscope.out path basename as prefix 'cscopetag' 'cst' use cscope for tag commands 'cscopetagorder' 'csto' determines ":cstag" search order -'cscopeverbose' 'csverb' give messages when adding a cscope database 'cursorbind' 'crb' move cursor in window as it moves in other windows 'cursorcolumn' 'cuc' highlight the screen column of the cursor 'cursorline' 'cul' highlight the screen line of the cursor diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 9643777975..c5c558279e 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -32,6 +32,7 @@ a complete and centralized reference of those differences. - 'backupdir' defaults to .,~/.local/share/nvim/backup (|xdg|) - 'belloff' defaults to "all" - 'complete' doesn't include "i" +- 'cscopeverbose' is enabled - 'directory' defaults to ~/.local/share/nvim/swap// (|xdg|), auto-created - 'display' defaults to "lastline" - 'formatoptions' defaults to "tcqj" -- cgit From 154822933ee29f7b27157ff6e5138d8126cfc27f Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sun, 21 Jan 2018 11:27:17 +0100 Subject: vim-patch:8.0.0659: no test for conceal mode Problem: No test for conceal mode. Solution: Add a conceal mode test. (Dominique Pelle, closes vim/vim#1783) https://github.com/vim/vim/commit/4d785895d1f8b54cdd3fabd87446ca692f49e94e --- runtime/doc/eval.txt | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 7820b85bf4..8771604c89 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -7602,17 +7602,20 @@ synIDtrans({synID}) *synIDtrans()* ":highlight link" are followed. synconcealed({lnum}, {col}) *synconcealed()* - The result is a List. The first item in the list is 0 if the - character at the position {lnum} and {col} is not part of a - concealable region, 1 if it is. The second item in the list is - a string. If the first item is 1, the second item contains the - text which will be displayed in place of the concealed text, - depending on the current setting of 'conceallevel'. The third - and final item in the list is a unique number representing the - specific syntax region matched. This allows detection of the - beginning of a new concealable region if there are two - consecutive regions with the same replacement character. - For an example use see $VIMRUNTIME/syntax/2html.vim . + The result is a List with currently three items: + 1. The first item in the list is 0 if the character at the + position {lnum} and {col} is not part of a concealable + region, 1 if it is. + 2. The second item in the list is a string. If the first item + is 1, the second item contains the text which will be + displayed in place of the concealed text, depending on the + current setting of 'conceallevel' and 'listchars'. + 3. The third and final item in the list is a unique number + representing the specific syntax region matched. This + allows detection of the beginning of a new concealable + region if there are two consecutive regions with the same + replacement character. For an example use see + $VIMRUNTIME/syntax/2html.vim . synstack({lnum}, {col}) *synstack()* -- cgit From 8b1f7d8774b235ae4f0dc0fa64d58e3cad9f8283 Mon Sep 17 00:00:00 2001 From: KunMing Xie Date: Thu, 25 Jan 2018 18:26:47 +0800 Subject: vim-patch:8.0.0431 (#7908) vim-patch:8.0.0431: 'cinoptions' cannot set indent for extern block Problem: 'cinoptions' cannot set indent for extern block. Solution: Add the "E" flag in 'cinoptions'. (Hirohito Higashi) https://github.com/vim/vim/commit/7720ba8599162fbbb8f7fc034f674a2ccd3ca7f1 --- runtime/doc/indent.txt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt index cf45ec4f38..7ba5a373dc 100644 --- a/runtime/doc/indent.txt +++ b/runtime/doc/indent.txt @@ -320,6 +320,21 @@ The examples below assume a 'shiftwidth' of 4. { { void function(); void function(); } } +< + *cino-E* + EN Indent inside C++ linkage specifications (extern "C" or + extern "C++") N characters extra compared to a normal block. + (default 0). + + cino= cino=E-s > + extern "C" { extern "C" { + void function(); void function(); + } } + + extern "C" extern "C" + { { + void function(); void function(); + } } < *cino-p* pN Parameter declarations for K&R-style function declarations will @@ -550,7 +565,7 @@ The examples below assume a 'shiftwidth' of 4. The defaults, spelled out in full, are: - cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s, + cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,E0,ps,ts,is,+s, c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0 Vim puts a line in column 1 if: -- cgit From 41394d82365b504c89bb4da9ed5adc11c6f619f0 Mon Sep 17 00:00:00 2001 From: Ömer Sinan Ağacan Date: Mon, 30 Oct 2017 11:07:35 +0300 Subject: vim-patch:8.0.1238 Problem: Incremental search only shows one match. Solution: When 'incsearch' and and 'hlsearch' are both set highlight all matches. (haya14busa, closes vim/vim#2198) https://github.com/vim/vim/commit/2e51d9a0972080b087d566608472928d5b7b35d7 --- runtime/doc/options.txt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index ded9f7667a..2e584ea9bb 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -3299,7 +3299,17 @@ A jump table for the options with a short description can be found at |Q_op|. pattern and/or a lot of text the match may not be found. This is to avoid that Vim hangs while you are typing the pattern. The |hl-IncSearch| highlight group determines the highlighting. - See also: 'hlsearch'. + When 'hlsearch' is on, all matched strings are highlighted too while typing + a search command. See also: 'hlsearch'. + If you don't want turn 'hlsearch' on, but want to highlight all matches + while searching, you can turn on and off 'hlsearch' with autocmd. + Example: > + augroup vimrc-incsearch-highlight + autocmd! + autocmd CmdlineEnter [/\?] :set hlsearch + autocmd CmdlineLeave [/\?] :set nohlsearch + augroup END +< CTRL-L can be used to add one character from after the current match to the command line. If 'ignorecase' and 'smartcase' are set and the command line has no uppercase characters, the added character is -- cgit From cd973be11bfcdee286017f83e04c3d6c3be2f19a Mon Sep 17 00:00:00 2001 From: Ömer Sinan Ağacan Date: Fri, 3 Nov 2017 08:28:36 +0300 Subject: vim-patch:8.0.1250 Problem: 'hlsearch' highlighting not removed after incsearch (lacygoill) Solution: Redraw all windows. Start search at the end of the match. Improve how CTRL-G works with incremental search. Add tests. (Christian Brabandt, Hirohito Higashi, haya14busa, closes vim/vim#2267) https://github.com/vim/vim/commit/f8f8b2eadbaf3090fcfccbab560de5dbd501833d --- runtime/doc/options.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 2e584ea9bb..6a36202177 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -3306,8 +3306,8 @@ A jump table for the options with a short description can be found at |Q_op|. Example: > augroup vimrc-incsearch-highlight autocmd! - autocmd CmdlineEnter [/\?] :set hlsearch - autocmd CmdlineLeave [/\?] :set nohlsearch + autocmd CmdlineEnter /,\? :set hlsearch + autocmd CmdlineLeave /,\? :set nohlsearch augroup END < CTRL-L can be used to add one character from after the current match -- cgit From 5d2dd2ebe28c31f223d77355a8f9d40adfb41c82 Mon Sep 17 00:00:00 2001 From: Mahmoud Al-Qudsi Date: Wed, 27 Sep 2017 13:38:24 -0500 Subject: win: has("wsl") on Windows Subsystem for Linux #7330 Per CMAKE docs, CMAKE_HOST_SYSTEM_VERSION is the result of `uname -r`: https://cmake.org/cmake/help/v3.4/variable/CMAKE_HOST_SYSTEM_VERSION.html?highlight=uname A numeric version string for the system. On systems that support uname, this variable is set to the output of uname -r. On other systems this is set to major-minor version numbers. On Windows it is something like "6.1", so it won't match ".*-Microsoft". Closes #7329 --- runtime/doc/eval.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 8771604c89..37a4962732 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -8445,6 +8445,7 @@ win32 Windows version of Vim (32 or 64 bit). winaltkeys Compiled with 'winaltkeys' option. windows Compiled with support for more than one window. writebackup Compiled with 'writebackup' default on. +wsl WSL (Windows Subsystem for Linux) version of Vim. *string-match* Matching a pattern in a String -- cgit From dfcd09dc225d7500a3df316193151cafe8bbb644 Mon Sep 17 00:00:00 2001 From: nate Date: Mon, 4 Dec 2017 07:36:03 -0800 Subject: vim-patch:8.0.0672: synconcealed() changes too often #7887 Problem: Third item of synconcealed() changes too often. (Dominique Pelle) Solution: Reset the sequence number at the start of each line. https://github.com/vim/vim/commit/cc0750dc6e878394ab0fd922b7ea4280918ae406 closes #7589 --- runtime/doc/eval.txt | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 37a4962732..767fc133d8 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -7610,12 +7610,21 @@ synconcealed({lnum}, {col}) *synconcealed()* is 1, the second item contains the text which will be displayed in place of the concealed text, depending on the current setting of 'conceallevel' and 'listchars'. - 3. The third and final item in the list is a unique number - representing the specific syntax region matched. This - allows detection of the beginning of a new concealable - region if there are two consecutive regions with the same - replacement character. For an example use see - $VIMRUNTIME/syntax/2html.vim . + 3. The third and final item in the list is a number + representing the specific syntax region matched in the + line. When the character is not concealed the value is + zero. This allows detection of the beginning of a new + concealable region if there are two consecutive regions + with the same replacement character. For an example, if + the text is "123456" and both "23" and "45" are concealed + and replace by the character "X", then: + call returns ~ + synconcealed(lnum, 1) [0, '', 0] + synconcealed(lnum, 2) [1, 'X', 1] + synconcealed(lnum, 3) [1, 'X', 1] + synconcealed(lnum, 4) [1, 'X', 2] + synconcealed(lnum, 5) [1, 'X', 2] + synconcealed(lnum, 6) [0, '', 0] synstack({lnum}, {col}) *synstack()* -- cgit From a265334406ca9ec84732acd1fde93300ce00310b Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Thu, 8 Feb 2018 01:11:54 +0100 Subject: defaults: sidescroll=1 ref #6289 --- runtime/doc/options.txt | 7 +++---- runtime/doc/term.txt | 5 ----- runtime/doc/vim_diff.txt | 1 + 3 files changed, 4 insertions(+), 9 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 6a36202177..a1a361fc85 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -5445,14 +5445,13 @@ A jump table for the options with a short description can be found at |Q_op|. See |tab-page| for more information about tab pages. *'sidescroll'* *'ss'* -'sidescroll' 'ss' number (default 0) +'sidescroll' 'ss' number (default 1) global The minimal number of columns to scroll horizontally. Used only when the 'wrap' option is off and the cursor is moved off of the screen. When it is zero the cursor will be put in the middle of the screen. - When using a slow terminal set it to a large number or 0. When using - a fast terminal use a small number or 1. Not used for "zh" and "zl" - commands. + When using a slow terminal set it to a large number or 0. Not used + for "zh" and "zl" commands. *'sidescrolloff'* *'siso'* 'sidescrolloff' 'siso' number (default 0) diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt index 6cf62f9bb5..075ffdac52 100644 --- a/runtime/doc/term.txt +++ b/runtime/doc/term.txt @@ -232,11 +232,6 @@ correct values. See |:mode|. Slow and fast terminals *slow-fast-terminal* *slow-terminal* -If you have a fast terminal you may like to set the 'ruler' option. The -cursor position is shown in the status line. If you are using horizontal -scrolling ('wrap' option off) consider setting 'sidescroll' to a small -number. - If you have a slow terminal you may want to reset the 'showcmd' and 'ruler' options. The command characters and cursor positions will not be shown in the status line (which involves a lot of cursor motions and attribute changes for diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index c5c558279e..d61c4d0c06 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -48,6 +48,7 @@ a complete and centralized reference of those differences. - 'ruler' is set by default - 'sessionoptions' doesn't include "options" - 'showcmd' is set by default +- 'sidescroll' defaults to 1 - 'smarttab' is set by default - 'tabpagemax' defaults to 50 - 'tags' defaults to "./tags;,tags" -- cgit From c8356e1151cf6db8cad93f74973a7452e62d6be0 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Thu, 1 Feb 2018 23:32:43 +0100 Subject: vim-patch:8.0.0440: not enough test coverage in Insert mode [Nvim note: test_override() omitted] Problem: Not enough test coverage in Insert mode. Solution: Add lots of tests. Add test_override(). (Christian Brabandt, closes vim/vim#1521) https://github.com/vim/vim/commit/eb992cb90fd79c77ad2743459ac898e6ac3de939 --- runtime/doc/vim_diff.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index d61c4d0c06..7426cd0940 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -376,7 +376,6 @@ MS-DOS support: Test functions: test_alloc_fail() test_autochdir() - test_disable_char_avail() test_garbagecollect_now() test_null_channel() test_null_dict() @@ -384,6 +383,7 @@ Test functions: test_null_list() test_null_partial() test_null_string() + test_override() test_settime() Other options: -- cgit From bbdb074aec4f5ae1f61c451fb059e83d790e173e Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 2 Feb 2018 22:27:43 +0100 Subject: vim-patch:8.0.0721: :argedit can only have one argument Problem: :argedit can only have one argument. Solution: Allow for multiple arguments. (Christian Brabandt) https://github.com/vim/vim/commit/90305c66a8637ea43a6509c7ab597734dd218365 --- runtime/doc/editing.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt index 1b9a1b38fb..5939cb8a8b 100644 --- a/runtime/doc/editing.txt +++ b/runtime/doc/editing.txt @@ -562,16 +562,16 @@ list of the current window. buffer. Also see |++opt| and |+cmd|. -:[count]arge[dit][!] [++opt] [+cmd] {name} *:arge* *:argedit* - Add {name} to the argument list and edit it. +:[count]arge[dit][!] [++opt] [+cmd] {name} .. *:arge* *:argedit* + Add {name}s to the argument list and edit it. When {name} already exists in the argument list, this entry is edited. This is like using |:argadd| and then |:edit|. - Note that only one file name is allowed, and spaces - inside the file name are allowed, like with |:edit|. + Spaces in filenames have to be escaped with "\". [count] is used like with |:argadd|. - [!] is required if the current file cannot be - |abandon|ed. + If the current file cannot be |abandon|ed {name}s will + still be added to the argument list, but won't be + edited. No check for duplicates is done. Also see |++opt| and |+cmd|. :[count]arga[dd] {name} .. *:arga* *:argadd* *E479* -- cgit From 6e5cb0debd23693175bd05409d3f1af4015567df Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Tue, 13 Feb 2018 13:45:49 +0100 Subject: ui: refactor ui options --- runtime/doc/api.txt | 1 + runtime/doc/ui.txt | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt index fd6918de43..f828f2cdc1 100644 --- a/runtime/doc/api.txt +++ b/runtime/doc/api.txt @@ -49,6 +49,7 @@ version.api_prerelease Declares the current API level as unstable > (version.api_prerelease && fn.since == version.api_level) functions API function signatures ui_events UI event signatures |ui| +ui_options Supported |ui-options| {fn}.since API level where function {fn} was introduced {fn}.deprecated_since API level where function {fn} was deprecated types Custom handle types defined by Nvim diff --git a/runtime/doc/ui.txt b/runtime/doc/ui.txt index 1b3c10b71e..6f6df2d7ae 100644 --- a/runtime/doc/ui.txt +++ b/runtime/doc/ui.txt @@ -30,10 +30,22 @@ a dictionary with these (optional) keys: `ext_cmdline` Externalize the cmdline. |ui-cmdline| `ext_wildmenu` Externalize the wildmenu. |ui-ext-wildmenu| -Nvim will then send msgpack-rpc notifications, with the method name "redraw" -and a single argument, an array of screen update events. -Update events are tuples whose first element is the event name and remaining -elements the event parameters. +Specifying a non-existent option is an error. To facilitate an ui that +supports different versions of Nvim, the |api-metadata| key `ui_options` +contains the list of supported options. Additionally Nvim currently requires +that all connected UIs use the same set of widgets. Therefore the active +widgets will be the intersection of the requested widget sets of all connected +UIs. The "option_set" event will be used to specify which widgets actually are +active. + +After attaching, Nvim will send msgpack-rpc notifications, with the method +name "redraw" and a single argument, an array of screen update events. Update +events are arrays whose first element is the event name and remaining elements +are each tuples of event parameters. This allows multiple events of the same +kind to be sent in a row without the event name being repeated. This batching +is mostly used for "put", as each "put" event just puts contents in one screen +cell, but clients must be prepared for multiple argument sets being batched +for all event kinds. Events must be handled in order. The user should only see the updated screen state after all events in the same "redraw" batch are processed (not any @@ -93,6 +105,7 @@ Global Events *ui-global* 'linespace' 'showtabline' 'termguicolors' + `ext_*` (all |ui-ext-options|) Options are not added to the list if their effects are already taken care of. For instance, instead of forwarding the raw 'mouse' option -- cgit From eccd60aaf4ebc445d45e51a73d0807242e496a6a Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sun, 18 Feb 2018 19:43:10 +0100 Subject: runtime/doc: modeline is mandatory in help docs see Vim 8.0.0650 e9134421ab8f --- runtime/doc/msgpack_rpc.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/msgpack_rpc.txt b/runtime/doc/msgpack_rpc.txt index 2d8f5af6d2..11fad105b5 100644 --- a/runtime/doc/msgpack_rpc.txt +++ b/runtime/doc/msgpack_rpc.txt @@ -242,4 +242,4 @@ Even for statically compiled clients it is good practice to avoid hardcoding the type codes, because a client may be built against one Nvim version but connect to another with different type codes. - + vim:tw=78:ts=8:ft=help:norl: -- cgit From 00665d3c701ef1b6b276f750a772a6aa8a42c8c1 Mon Sep 17 00:00:00 2001 From: Shougo Date: Mon, 19 Feb 2018 07:56:59 +0900 Subject: vim-patch:8.0.1493: completion items cannot be annotated (#8003) Problem: Completion items cannot be annotated. Solution: Add a "user_data" entry to the completion item. (Ben Jackson, coses vim/vim#2608, closes vim/vim#2508) https://github.com/vim/vim/commit/9b56a57cdae31f7a2c85d440392bf63d3253a158 --- runtime/doc/insert.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'runtime/doc') diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt index b6cc18ab1b..9ae35bea52 100644 --- a/runtime/doc/insert.txt +++ b/runtime/doc/insert.txt @@ -1077,6 +1077,8 @@ items: item with the same word is already present. empty when non-zero this match will be added even when it is an empty string + user_data custom data which is associated with the item and + available in |v:completed_item| All of these except "icase", "dup" and "empty" must be a string. If an item does not meet these requirements then an error message is given and further @@ -1170,6 +1172,8 @@ The menu is used when: The 'pumheight' option can be used to set a maximum height. The default is to use all space available. +The 'pumwidth' option can be used to set a minimum width. The default is 15 +characters. There are three states: 1. A complete match has been inserted, e.g., after using CTRL-N or CTRL-P. -- cgit From 0c930c2969a8c7cce49382d0acb83e165644af41 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 17 Oct 2017 00:31:43 +0200 Subject: defaults: 'fillchars' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Most fonts should have these by now. Both are a significant visual improvement. - Vertical connecting bar `│` is used by tmux, pstree, Windows 7 cmd.exe and nvim-qt.exe. - Middle dot `·` works on Windows 7 cmd.exe, nvim-qt.exe. For reference: tmux uses these chars to draw lines: │ ├ ─ --- runtime/doc/options.txt | 8 ++++---- runtime/doc/vim_diff.txt | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index a1a361fc85..0345960b0d 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -2377,7 +2377,7 @@ A jump table for the options with a short description can be found at |Q_op|. Only normal file name characters can be used, "/\*?[|<>" are illegal. *'fillchars'* *'fcs'* -'fillchars' 'fcs' string (default "vert:|,fold:-") +'fillchars' 'fcs' string (default "vert:│,fold:·") global {not available when compiled without the |+windows| and |+folding| features} @@ -2387,8 +2387,8 @@ A jump table for the options with a short description can be found at |Q_op|. item default Used for ~ stl:c ' ' or '^' statusline of the current window stlnc:c ' ' or '=' statusline of the non-current windows - vert:c '|' vertical separators |:vsplit| - fold:c '-' filling 'foldtext' + vert:c '│' vertical separators |:vsplit| + fold:c '·' filling 'foldtext' diff:c '-' deleted lines of the 'diff' option Any one that is omitted will fall back to the default. For "stl" and @@ -2396,7 +2396,7 @@ A jump table for the options with a short description can be found at |Q_op|. otherwise. Example: > - :set fillchars=stl:^,stlnc:=,vert:\|,fold:-,diff:- + :set fillchars=stl:^,stlnc:=,vert:│,fold:·,diff:- < This is similar to the default, except that these characters will also be used when there is highlighting. diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 7426cd0940..3924dd4ebe 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -35,6 +35,7 @@ a complete and centralized reference of those differences. - 'cscopeverbose' is enabled - 'directory' defaults to ~/.local/share/nvim/swap// (|xdg|), auto-created - 'display' defaults to "lastline" +- 'fillchars' defaults (in effect) to "vert:│,fold:·" - 'formatoptions' defaults to "tcqj" - 'history' defaults to 10000 (the maximum) - 'hlsearch' is set by default -- cgit From 384a39479a0b70abf9cd6ced0b5f1d53cd817c11 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Fri, 9 Feb 2018 08:44:24 +0900 Subject: 'fillchars': fix defaults logic; handle ambiwidth=double #7986 Update tests. --- runtime/doc/options.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 0345960b0d..fbc055ddd5 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -2377,7 +2377,7 @@ A jump table for the options with a short description can be found at |Q_op|. Only normal file name characters can be used, "/\*?[|<>" are illegal. *'fillchars'* *'fcs'* -'fillchars' 'fcs' string (default "vert:│,fold:·") +'fillchars' 'fcs' string (default "") global {not available when compiled without the |+windows| and |+folding| features} @@ -2387,14 +2387,17 @@ A jump table for the options with a short description can be found at |Q_op|. item default Used for ~ stl:c ' ' or '^' statusline of the current window stlnc:c ' ' or '=' statusline of the non-current windows - vert:c '│' vertical separators |:vsplit| - fold:c '·' filling 'foldtext' + vert:c '│' or '|' vertical separators |:vsplit| + fold:c '·' or '-' filling 'foldtext' diff:c '-' deleted lines of the 'diff' option Any one that is omitted will fall back to the default. For "stl" and "stlnc" the space will be used when there is highlighting, '^' or '=' otherwise. + If 'ambiwidth' is "double" then "vert" and "fold" default to + single-byte alternatives. + Example: > :set fillchars=stl:^,stlnc:=,vert:│,fold:·,diff:- < This is similar to the default, except that these characters will also -- cgit From e18177692ab48e5ffc0c11184c723a52eed1248e Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Fri, 23 Feb 2018 13:08:13 +0100 Subject: screen.c: make negative 'writedelay' show all redraws Currently writedelay shows the sequence of characters that are sent to the UI/TUI module. Here nvim has already applied an optimization: when attempting to put a char in a screen cell, if the same char already was there with the same attributes, UI output is disabled. When debugging redrawing it it sometimes more useful to inspect the redraw stream one step earlier, what region of the screen nvim actually is recomputing from buffer contents (win_line) and from evaluating statusline expressions. Take the popupmenu as an example. When closing the popupmenu (in the TUI), currently 'writedelay' looks like vim only is redrawing the region which the pum covered. This is not what happens internally: vim redraws the entire screen, even if only outputs the changed region. This commit allows negative values of 'writedelay', which causes a delay for all redrawn characters, even if the character already was displayed by the UI before. --- runtime/doc/options.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index fbc055ddd5..9ef5ccb5c5 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -6922,7 +6922,8 @@ A jump table for the options with a short description can be found at |Q_op|. 'writedelay' 'wd' number (default 0) global The number of milliseconds to wait for each character sent to the - screen. When non-zero, characters are sent to the terminal one by - one. For debugging purposes. + screen. When positive, characters are sent to the UI one by one. + When negative, all redrawn characters cause a delay, even if the + character already was displayed by the UI. For debugging purposes. vim:tw=78:ts=8:ft=help:noet:norl: -- cgit From 338664e96c9b0fd00cfe2c1312fa40219301379d Mon Sep 17 00:00:00 2001 From: chemzqm Date: Wed, 14 Mar 2018 16:32:19 +0800 Subject: node/provider: support g:node_host_prog #8135 --- runtime/doc/provider.txt | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/provider.txt b/runtime/doc/provider.txt index b806b08f95..d44cc2558e 100644 --- a/runtime/doc/provider.txt +++ b/runtime/doc/provider.txt @@ -33,20 +33,20 @@ To use Vim Python 2/3 plugins with Nvim: - For Python 2 plugins, make sure an interpreter for Python 2.6 or 2.7 is available in your `$PATH`, then install the `neovim` Python package systemwide: > - $ sudo pip2 install --upgrade neovim + sudo pip2 install --upgrade neovim < or for the current user: > - $ pip2 install --user --upgrade neovim + pip2 install --user --upgrade neovim < - For Python 3 plugins, make sure an interpreter for Python 3.3 or above is available in your `$PATH`, then install the `neovim` Python package systemwide: > - $ sudo pip3 install --upgrade neovim + sudo pip3 install --upgrade neovim < or for the current user: > - $ pip3 install --user --upgrade neovim + pip3 install --user --upgrade neovim < Note: The `--upgrade` flag ensures you have the latest version even if - a previous version was already installed. +a previous version was already installed. PYTHON PROVIDER CONFIGURATION ~ *g:python_host_prog* @@ -93,7 +93,7 @@ Run |:checkhealth| to see if your system is up-to-date. RUBY QUICKSTART ~ To use Vim Ruby plugins with Nvim, just install the latest `neovim` RubyGem: > - $ gem install neovim + gem install neovim RUBY PROVIDER CONFIGURATION ~ *g:loaded_ruby_provider* @@ -112,6 +112,28 @@ To use an absolute path (e.g. to an rbenv installation): > To use the RVM "system" Ruby installation: > let g:ruby_host_prog = 'rvm system do neovim-ruby-host' < +============================================================================== +Node.js integration *provider-nodejs* + +Nvim supports Node.js |remote-plugin|s. +https://github.com/neovim/node-client/ +https://nodejs.org/ + +NODEJS QUICKSTART~ + +To use javascript remote-plugins with Nvim, install the `neovim` npm package: > + npm install -g neovim +< +NODEJS PROVIDER CONFIGURATION~ + *g:loaded_node_provider* +To disable Node support: > + :let g:loaded_node_provider = 1 +< + *g:node_host_prog* +Command to start the Node host. Setting this makes startup faster. + +By default, Nvim searches for `neovim-node-host` using "npm root -g". This is +rather slow, you can set g:node_host_prog to avoid it. ============================================================================== Clipboard integration *provider-clipboard* *clipboard* -- cgit From 0093c25dd3795972b953f9914cc33fc38c5d9dbc Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Thu, 15 Mar 2018 04:59:18 +0100 Subject: doc: nodejs --- runtime/doc/provider.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/provider.txt b/runtime/doc/provider.txt index d44cc2558e..4a76f1399e 100644 --- a/runtime/doc/provider.txt +++ b/runtime/doc/provider.txt @@ -132,9 +132,10 @@ To disable Node support: > *g:node_host_prog* Command to start the Node host. Setting this makes startup faster. -By default, Nvim searches for `neovim-node-host` using "npm root -g". This is -rather slow, you can set g:node_host_prog to avoid it. - +By default, Nvim searches for `neovim-node-host` using "npm root -g", which +can be slow. To avoid this, set g:node_host_prog to an absolute path: > + let g:node_host_prog = '/usr/local/bin/neovim-node-host' +< ============================================================================== Clipboard integration *provider-clipboard* *clipboard* -- cgit From d407a48665d8f8e1e42eb1060ea245d979419605 Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Mon, 14 Mar 2016 23:58:47 +0100 Subject: getchar: implement key to invoke command in any mode --- runtime/doc/map.txt | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt index 9b61fa6527..038e90fab0 100644 --- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -232,8 +232,10 @@ For this reason the following is blocked: - Editing another buffer. - The |:normal| command. - Moving the cursor is allowed, but it is restored afterwards. +- If the cmdline is changed, the old text and cursor position are restored. If you want the mapping to do any of these let the returned characters do -that. +that. Alternatively use a || mapping which doesn't have these +restrictions. You can use getchar(), it consumes typeahead if there is any. E.g., if you have these mappings: > @@ -272,6 +274,29 @@ again for using . This does work: > Using 0x80 as a single byte before other text does not work, it will be seen as a special key. + ** *:map-command* +A command mapping is a mapping that directly executes a command. Command +mappings are written by placing a command in between and in the +rhs of a mapping (in any mode): > + noremap echo mode(1) +< + *E5520* +The command must be complete and ended with a . If the command is +incomplete, an error is raised. |Command-line| mode is never entered. + +This is more flexible than using `:` in visual and operator pending +mode, or `:` in insert mode, as the commands are exectued directly in the +mode, and not normal mode. Also visual mode is not aborted. Commands can be +invoked directly in cmdline mode, which is not simple otherwise (a timer has +to be used). Unlike mappings, there are not any specific restrictions +what the command can do, except for what is normally possible to do in every +specific mode. The command should be executed the same way as if an +(unrestricted) |autocmd| was invoked or an async event event was processed. + +Note: In select mode, |:map| or |:vmap| command mappings will be executed in +visual mode. If a mapping is intended to work in select mode, it is +recomendend to map it using |:smap|, possibly in addition to the same mapping +with |:map| or |:xmap|. 1.3 MAPPING AND MODES *:map-modes* *mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o* *mapmode-t* -- cgit From 131aad953c007d382cbff1d2560471b29975da87 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sat, 30 Sep 2017 21:31:31 -0400 Subject: win: defaults: 'shellcmdflag', 'shellxquote' #7343 closes #7698 Wrapping a command in double-quotes allows cmd.exe to safely dequote the entire command as if the user entered the entire command in an interactive prompt. This reduces the need to escape nested and uneven double quotes. The `/s` flag of cmd.exe makes the behaviour more reliable: :set shellcmdflag=/s\ /c Before this patch, cmd.exe cannot use cygwin echo.exe (as opposed to cmd.exe `echo` builtin) even if it is wrapped in double quotes. Example: :: internal echo > cmd /s /c " echo foo\:bar" " foo\:bar" :: cygwin echo.exe > cmd /s /c " "echo" foo\:bar" " foo:bar --- runtime/doc/options.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 9ef5ccb5c5..f4bf49c7c5 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -5160,10 +5160,10 @@ A jump table for the options with a short description can be found at |Q_op|. security reasons. *'shellcmdflag'* *'shcf'* -'shellcmdflag' 'shcf' string (default: "-c"; Windows: "/c") +'shellcmdflag' 'shcf' string (default: "-c"; Windows: "/s /c") global Flag passed to the shell to execute "!" and ":!" commands; e.g., - "bash.exe -c ls" or "cmd.exe /c dir". For Windows + `bash.exe -c ls` or `cmd.exe /s /c "dir"`. For Windows systems, the default is set according to the value of 'shell', to reduce the need to set this option by the user. On Unix it can have more than one flag. Each white space separated @@ -5284,7 +5284,7 @@ A jump table for the options with a short description can be found at |Q_op|. to execute most external commands with cmd.exe. *'shellxquote'* *'sxq'* -'shellxquote' 'sxq' string (default: "") +'shellxquote' 'sxq' string (default: "", Windows: "\"") global Quoting character(s), put around the command passed to the shell, for the "!" and ":!" commands. Includes the redirection. See -- cgit From 98e71123900fbdf26a16a43297a1f58118cde41b Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Sat, 31 Mar 2018 11:12:27 +0200 Subject: msg: do not scroll entire screen (#8088) --- runtime/doc/options.txt | 6 ++++++ runtime/doc/syntax.txt | 2 ++ runtime/doc/vim_diff.txt | 5 ++++- 3 files changed, 12 insertions(+), 1 deletion(-) (limited to 'runtime/doc') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index f4bf49c7c5..d9ce668962 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -2036,6 +2036,11 @@ A jump table for the options with a short description can be found at |Q_op|. column of the last screen line. Overrules "lastline". uhex Show unprintable characters hexadecimal as instead of using ^C and ~C. + msgsep When showing messages longer than 'cmdheight' lines, + only scroll the message lines and not the entire + screen. This also shows a separator line filled with + chars determined by 'fillchars' option, and + highlighted with the |MsgSeparator| group. When neither "lastline" nor "truncate" is included, a last line that doesn't fit is replaced with "@" lines. @@ -2390,6 +2395,7 @@ A jump table for the options with a short description can be found at |Q_op|. vert:c '│' or '|' vertical separators |:vsplit| fold:c '·' or '-' filling 'foldtext' diff:c '-' deleted lines of the 'diff' option + msgsep:c ' ' message separator 'display' Any one that is omitted will fall back to the default. For "stl" and "stlnc" the space will be used when there is highlighting, '^' or '=' diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index ff9773b136..fa66d9d071 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -4909,6 +4909,8 @@ MatchParen The character under the cursor or just before it, if it *hl-ModeMsg* ModeMsg 'showmode' message (e.g., "-- INSERT --") + *hl-MsgSeparator* +MsgSeparator Separator for scrolled messages, `msgsep` flag of 'display' *hl-MoreMsg* MoreMsg |more-prompt| *hl-NonText* diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 3924dd4ebe..3575a420b7 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -34,7 +34,7 @@ a complete and centralized reference of those differences. - 'complete' doesn't include "i" - 'cscopeverbose' is enabled - 'directory' defaults to ~/.local/share/nvim/swap// (|xdg|), auto-created -- 'display' defaults to "lastline" +- 'display' defaults to "lastline,msgsep" - 'fillchars' defaults (in effect) to "vert:│,fold:·" - 'formatoptions' defaults to "tcqj" - 'history' defaults to 10000 (the maximum) @@ -130,7 +130,9 @@ Some `CTRL-SHIFT-...` key chords are distinguished from `CTRL-...` variants Options: 'cpoptions' flags: |cpo-_| + 'display' flag `msgsep` to minimize scrolling when showing messages 'guicursor' works in the terminal + 'fillchars' flag `msgsep` (see 'display' above) 'inccommand' shows interactive results for |:substitute|-like commands 'scrollback' 'statusline' supports unlimited alignment sections @@ -164,6 +166,7 @@ Events: Highlight groups: |hl-NormalNC| highlights non-current windows + |hl-MsgSeparator| highlights separator for scrolled messages |hl-QuickFixLine| |hl-Substitute| |hl-TermCursor| -- cgit From 224ebc0078f29ac3189d7fbd9a59b386ae2ee303 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 4 Apr 2018 01:08:07 +0200 Subject: insert-mode: interpret unmapped META as ESC closes #2454 closes #8213 ref #7972 --- runtime/doc/insert.txt | 9 +++++---- runtime/doc/options.txt | 9 ++++----- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt index 9ae35bea52..1feff0723b 100644 --- a/runtime/doc/insert.txt +++ b/runtime/doc/insert.txt @@ -40,10 +40,11 @@ char action ~ *i_CTRL-[* *i_* or CTRL-[ End insert or Replace mode, go back to Normal mode. Finish abbreviation. - Note: If your key is hard to hit on your keyboard, train - yourself to use CTRL-[. - If Esc doesn't work and you are using a Mac, try CTRL-Esc. - Or disable Listening under Accessibility preferences. + Note: If your key is hard to hit, try CTRL-[ instead. + *i_META* *i_ALT* + |ALT| (|META|) acts like if the chord is not mapped. + For example acts like x if does not have an + insert-mode mapping. *i_CTRL-C* CTRL-C Quit insert mode, go back to Normal mode. Do not check for abbreviations. Does not trigger the |InsertLeave| autocommand diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index d9ce668962..0b7c61ea18 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -6290,15 +6290,14 @@ A jump table for the options with a short description can be found at |Q_op|. *'timeoutlen'* *'tm'* 'timeoutlen' 'tm' number (default 1000) global - The time in milliseconds that is waited for a mapped sequence to - complete. + Time in milliseconds to wait for a mapped sequence to complete. *'ttimeoutlen'* *'ttm'* 'ttimeoutlen' 'ttm' number (default 50) global - The time in milliseconds that is waited for a key code - sequence to complete. Also used for CTRL-\ CTRL-N and CTRL-\ CTRL-G - when part of a command has been typed. + Time in milliseconds to wait for a key code sequence to complete. Also + used for CTRL-\ CTRL-N and CTRL-\ CTRL-G when part of a command has + been typed. *'title'* *'notitle'* 'title' boolean (default off) -- cgit From 9f598e57656fe072114b9f1e73d3051423e13234 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sun, 8 Apr 2018 13:06:26 +0200 Subject: serverstop(): return FALSE for invalid address --- runtime/doc/eval.txt | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 767fc133d8..084936e9d2 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1789,8 +1789,10 @@ v:scrollstart String describing the script or function that caused the *v:servername* *servername-variable* *$NVIM_LISTEN_ADDRESS* -v:servername Default Nvim server address. Equivalent to - |$NVIM_LISTEN_ADDRESS| on startup. |serverstop()| +v:servername Primary listen address of the current Nvim instance, the first + item returned by |serverlist()|. Can be set by + |--listen| or |$NVIM_LISTEN_ADDRESS| on startup. + See also |serverstart()| and |serverstop()|. Read-only. @@ -6638,15 +6640,11 @@ server2client({clientid}, {string}) *server2client()* :echo server2client(expand(""), "HELLO") < serverlist() *serverlist()* - Returns a list of available server names in a list. - When there are no servers an empty string is returned. + Returns a list of server addresses, or empty if all servers + were stopped. |serverstart()| |serverstop()| Example: > :echo serverlist() -< {Nvim} *--serverlist* - The Vim command-line option `--serverlist` was removed from - Nvim, but it can be imitated: > - nvim --cmd "echo serverlist()" --cmd "q" -< + serverstart([{address}]) *serverstart()* Opens a socket or named pipe at {address} and listens for |RPC| messages. Clients can send |API| commands to the address @@ -6674,13 +6672,9 @@ serverstart([{address}]) *serverstart()* < |$NVIM_LISTEN_ADDRESS| is set to {address} if not already set. - *--servername* - The Vim command-line option `--servername` can be imitated: > - nvim --cmd "let g:server_addr = serverstart('foo')" -< serverstop({address}) *serverstop()* - Closes the pipe or socket at {address}. Does nothing if - {address} is empty or invalid. + Closes the pipe or socket at {address}. + Returns TRUE if {address} is valid, else FALSE. If |$NVIM_LISTEN_ADDRESS| is stopped it is unset. If |v:servername| is stopped it is set to the next available address returned by |serverlist()|. -- cgit From 507bda1c95cdac2886f64e59aa6bbf85c3fac389 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sun, 8 Apr 2018 17:20:25 +0200 Subject: server: introduce --listen, deprecate $NVIM_LISTEN_ADDRESS --- runtime/doc/deprecated.txt | 4 ++++ runtime/doc/eval.txt | 8 +++----- runtime/doc/msgpack_rpc.txt | 5 ++--- runtime/doc/starting.txt | 4 ++++ 4 files changed, 13 insertions(+), 8 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt index ea61e847c7..03699b3dfb 100644 --- a/runtime/doc/deprecated.txt +++ b/runtime/doc/deprecated.txt @@ -22,6 +22,10 @@ Commands ~ *:wv* *:wviminfo* Deprecated alias to |:wshada| command. +Environment Variables ~ +*$NVIM_LISTEN_ADDRESS* Deprecated in favor of |--listen|. If both are given, + $NVIM_LISTEN_ADDRESS is ignored. + Events ~ *EncodingChanged* Never fired; 'encoding' is always "utf-8". *FileEncoding* Never fired; equivalent to |EncodingChanged|. diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 084936e9d2..11c4b62403 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1788,11 +1788,9 @@ v:scrollstart String describing the script or function that caused the hit-enter prompt. *v:servername* *servername-variable* - *$NVIM_LISTEN_ADDRESS* -v:servername Primary listen address of the current Nvim instance, the first - item returned by |serverlist()|. Can be set by - |--listen| or |$NVIM_LISTEN_ADDRESS| on startup. - See also |serverstart()| and |serverstop()|. +v:servername Primary listen-address of the current Nvim instance, the first + item returned by |serverlist()|. Can be set by |--listen| or + |$NVIM_LISTEN_ADDRESS| at startup. |serverstart()| |serverstop()| Read-only. diff --git a/runtime/doc/msgpack_rpc.txt b/runtime/doc/msgpack_rpc.txt index 11fad105b5..01d4e10cea 100644 --- a/runtime/doc/msgpack_rpc.txt +++ b/runtime/doc/msgpack_rpc.txt @@ -70,9 +70,8 @@ An rpc socket is automatically created with each instance. The socket location is stored in |v:servername|. By default this is a named pipe with an automatically generated address. See |XXX|. -To make Nvim listen on a TCP/IP socket instead, set the - |$NVIM_LISTEN_ADDRESS| environment variable before starting Nvim: > - NVIM_LISTEN_ADDRESS=127.0.0.1:6666 nvim +To make Nvim listen on a TCP/IP socket instead, specify |--listen|: > + nvim --listen 127.0.0.1:6666 Date: Wed, 11 Apr 2018 22:07:00 +0200 Subject: test/util: expect_err() (#8257) other cleanup, ref #8245 --- runtime/doc/starting.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt index 991f88f7b6..21c47edc24 100644 --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -356,8 +356,8 @@ argument. See also |silent-mode|, which does start a (limited) UI. --listen {addr} *--listen* - Start |RPC| server on socket or TCP address {addr}. Sets the - primary listen address |v:servername| to {addr}. |serverstart()| + Start |RPC| server on pipe or TCP address {addr}. Sets the + primary listen address |v:servername| to {addr}. |serverstart()| ============================================================================== 2. Initialization *initialization* *startup* @@ -1395,4 +1395,4 @@ RPC clients for debugging. $NVIM_LOG_FILE contains the log file path: > Usually the file is ~/.local/share/nvim/log unless that path is inaccessible or if $NVIM_LOG_FILE was set before |startup|. - vim:tw=78:ts=8:ft=help:norl: + vim:noet:tw=78:ts=8:ft=help:norl: -- cgit