mirror of
https://github.com/vim/vim.git
synced 2025-09-30 04:44:14 -04:00
Update runtime files.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
*channel.txt* For Vim version 7.4. Last change: 2016 Feb 27
|
*channel.txt* For Vim version 7.4. Last change: 2016 Mar 03
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -103,6 +103,11 @@ when opening the channel: >
|
|||||||
let channel = ch_open('localhost:8765', {'callback': "MyHandler"})
|
let channel = ch_open('localhost:8765', {'callback': "MyHandler"})
|
||||||
call ch_sendexpr(channel, 'hello!')
|
call ch_sendexpr(channel, 'hello!')
|
||||||
|
|
||||||
|
When trying out channels it's useful to see what is going on. You can tell
|
||||||
|
Vim to write lines in log file: >
|
||||||
|
call ch_logfile('channellog', 'w')
|
||||||
|
See |ch_logfile()|.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
3. Opening a channel *channel-open*
|
3. Opening a channel *channel-open*
|
||||||
|
|
||||||
@@ -130,7 +135,8 @@ Use |ch_status()| to see if the channel could be opened.
|
|||||||
overwritten. Therefore set "mode" first and the part specific
|
overwritten. Therefore set "mode" first and the part specific
|
||||||
mode later.
|
mode later.
|
||||||
|
|
||||||
Note: when writing to a file or buffer NL mode is always used.
|
Note: when writing to a file or buffer and when reading from a
|
||||||
|
buffer NL mode is used by default.
|
||||||
|
|
||||||
*channel-callback*
|
*channel-callback*
|
||||||
"callback" A function that is called when a message is received that is
|
"callback" A function that is called when a message is received that is
|
||||||
@@ -191,6 +197,10 @@ For example, the handler can be added or changed: >
|
|||||||
call ch_setoptions(channel, {'callback': callback})
|
call ch_setoptions(channel, {'callback': callback})
|
||||||
When "callback" is empty (zero or an empty string) the handler is removed.
|
When "callback" is empty (zero or an empty string) the handler is removed.
|
||||||
|
|
||||||
|
After a callback has been invoked Vim will update the screen and put the
|
||||||
|
cursor back where it belongs. Thus the callback should not need to do
|
||||||
|
`:redraw`.
|
||||||
|
|
||||||
The timeout can be changed: >
|
The timeout can be changed: >
|
||||||
call ch_setoptions(channel, {'timeout': msec})
|
call ch_setoptions(channel, {'timeout': msec})
|
||||||
<
|
<
|
||||||
@@ -259,9 +269,9 @@ message, it must use the number zero:
|
|||||||
Then channel handler will then get {response} converted to Vim types. If the
|
Then channel handler will then get {response} converted to Vim types. If the
|
||||||
channel does not have a handler the message is dropped.
|
channel does not have a handler the message is dropped.
|
||||||
|
|
||||||
On read error or ch_close(), when using a socket, the string "DETACH" is sent,
|
On read error or ch_close(), when using a socket with RAW or NL mode, the
|
||||||
if still possible. The channel will then be inactive. For a JSON and JS mode
|
string "DETACH\n" is sent, if still possible. The channel will then be
|
||||||
channel quotes are used around DETACH, otherwise there are no quotes.
|
inactive.
|
||||||
|
|
||||||
It is also possible to use ch_sendraw() and ch_evalraw() on a JSON or JS
|
It is also possible to use ch_sendraw() and ch_evalraw() on a JSON or JS
|
||||||
channel. The caller is then completely responsible for correct encoding and
|
channel. The caller is then completely responsible for correct encoding and
|
||||||
@@ -457,6 +467,22 @@ For example, to start a job and write its output in buffer "dummy": >
|
|||||||
\ {'out-io': 'buffer', 'out-name': 'dummy'})
|
\ {'out-io': 'buffer', 'out-name': 'dummy'})
|
||||||
sbuf dummy
|
sbuf dummy
|
||||||
|
|
||||||
|
To run a job that reads from a buffer: >
|
||||||
|
let job = job_start({command},
|
||||||
|
\ {'in-io': 'buffer', 'in-name': 'mybuffer'})
|
||||||
|
<
|
||||||
|
*E915* *E918*
|
||||||
|
The buffer is found by name, similar to |bufnr()|. The buffer must exist and
|
||||||
|
be loaded when job_start() is called.
|
||||||
|
|
||||||
|
By default this reads the whole buffer. This can be changed with the "in-top"
|
||||||
|
and "in-bot" options.
|
||||||
|
|
||||||
|
TODO
|
||||||
|
A special mode is when "in-top" is set to zero and "in-bot" is not set: The
|
||||||
|
last-but-one line will be send to the job stdin. This allows for editing the
|
||||||
|
last line and sending it when pressing Enter.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
To run a job and read its output once it is done: >
|
To run a job and read its output once it is done: >
|
||||||
let job = job_start({command}, {'exit-cb': 'MyHandler'})
|
let job = job_start({command}, {'exit-cb': 'MyHandler'})
|
||||||
@@ -470,7 +496,8 @@ To run a job and read its output once it is done: >
|
|||||||
9. Starting a job without a channel *job-start-nochannel*
|
9. Starting a job without a channel *job-start-nochannel*
|
||||||
|
|
||||||
To start another process without creating a channel: >
|
To start another process without creating a channel: >
|
||||||
let job = job_start(command, {"in-io": "null", "out-io": "null"})
|
let job = job_start(command,
|
||||||
|
\ {"in-io": "null", "out-io": "null", "err-io": "null"})
|
||||||
|
|
||||||
This starts {command} in the background, Vim does not wait for it to finish.
|
This starts {command} in the background, Vim does not wait for it to finish.
|
||||||
|
|
||||||
@@ -538,7 +565,9 @@ TODO: *job-term*
|
|||||||
"in-io": "null" disconnect stdin TODO
|
"in-io": "null" disconnect stdin TODO
|
||||||
"in-io": "pipe" stdin is connected to the channel (default)
|
"in-io": "pipe" stdin is connected to the channel (default)
|
||||||
"in-io": "file" stdin reads from a file TODO
|
"in-io": "file" stdin reads from a file TODO
|
||||||
"in-io": "buffer" stdin reads from a buffer TODO
|
"in-io": "buffer" stdin reads from a buffer
|
||||||
|
"in-top": number when using "buffer": first line to send (default: 1)
|
||||||
|
"in-bot": number when using "buffer": last line to send (default: last)
|
||||||
"in-name": "/path/file" the name of he file or buffer to read from
|
"in-name": "/path/file" the name of he file or buffer to read from
|
||||||
"in-buf": number the number of the buffer to read from TODO
|
"in-buf": number the number of the buffer to read from TODO
|
||||||
|
|
||||||
@@ -551,7 +580,7 @@ TODO: *job-term*
|
|||||||
"out-buf": number the number of the buffer to write to TODO
|
"out-buf": number the number of the buffer to write to TODO
|
||||||
|
|
||||||
*job-err-io*
|
*job-err-io*
|
||||||
"err-io": "out" same as stdout TODO
|
"err-io": "out" stderr messages to go to stdout
|
||||||
"err-io": "null" disconnect stderr TODO
|
"err-io": "null" disconnect stderr TODO
|
||||||
"err-io": "pipe" stderr is connected to the channel (default)
|
"err-io": "pipe" stderr is connected to the channel (default)
|
||||||
"err-io": "file" stderr writes to a file TODO
|
"err-io": "file" stderr writes to a file TODO
|
||||||
@@ -562,6 +591,10 @@ TODO: *job-term*
|
|||||||
When the IO mode is "buffer" and there is a callback, the text is appended to
|
When the IO mode is "buffer" and there is a callback, the text is appended to
|
||||||
the buffer before invoking the callback.
|
the buffer before invoking the callback.
|
||||||
|
|
||||||
|
When using JS or JSON mode with "buffer", only messages with zero or negative
|
||||||
|
ID will be added to the buffer, after decoding + encoding. Messages with a
|
||||||
|
positive number will be handled by a callback, commands are handled as usual.
|
||||||
|
|
||||||
The name of the buffer is compared the full name of existing buffers. If
|
The name of the buffer is compared the full name of existing buffers. If
|
||||||
there is a match that buffer is used. Otherwise a new buffer is created.
|
there is a match that buffer is used. Otherwise a new buffer is created.
|
||||||
Use an empty name to always create a new buffer. |ch_getbufnr()| can then be
|
Use an empty name to always create a new buffer. |ch_getbufnr()| can then be
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*eval.txt* For Vim version 7.4. Last change: 2016 Feb 27
|
*eval.txt* For Vim version 7.4. Last change: 2016 Mar 03
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -2695,6 +2695,14 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
|
|||||||
|
|
||||||
ch_close({channel}) *ch_close()*
|
ch_close({channel}) *ch_close()*
|
||||||
Close {channel}. See |channel-close|.
|
Close {channel}. See |channel-close|.
|
||||||
|
|
||||||
|
Note that a channel is closed in three stages:
|
||||||
|
- The I/O ends, log message: "Closing channel". There can
|
||||||
|
still be queued messages to read or callbacks to invoke.
|
||||||
|
- The readahead is cleared, log message: "Clearing channel".
|
||||||
|
Some variables may still reference the channel.
|
||||||
|
- The channel is freed, log message: "Freeing channel".
|
||||||
|
|
||||||
{only available when compiled with the |+channel| feature}
|
{only available when compiled with the |+channel| feature}
|
||||||
|
|
||||||
ch_evalexpr({channel}, {expr} [, {options}]) *ch_evalexpr()*
|
ch_evalexpr({channel}, {expr} [, {options}]) *ch_evalexpr()*
|
||||||
@@ -2703,7 +2711,7 @@ ch_evalexpr({channel}, {expr} [, {options}]) *ch_evalexpr()*
|
|||||||
with a raw channel. See |channel-use|.
|
with a raw channel. See |channel-use|.
|
||||||
*E917*
|
*E917*
|
||||||
{options} must be a Dictionary. It must not have a "callback"
|
{options} must be a Dictionary. It must not have a "callback"
|
||||||
entry.
|
entry. It can have a "timeout" entry.
|
||||||
|
|
||||||
ch_evalexpr() waits for a response and returns the decoded
|
ch_evalexpr() waits for a response and returns the decoded
|
||||||
expression. When there is an error or timeout it returns an
|
expression. When there is an error or timeout it returns an
|
||||||
@@ -2753,6 +2761,7 @@ ch_logfile({fname} [, {mode}]) *ch_logfile()*
|
|||||||
The file is flushed after every message, on Unix you can use
|
The file is flushed after every message, on Unix you can use
|
||||||
"tail -f" to see what is going on in real time.
|
"tail -f" to see what is going on in real time.
|
||||||
|
|
||||||
|
|
||||||
ch_open({address} [, {options}]) *ch_open()*
|
ch_open({address} [, {options}]) *ch_open()*
|
||||||
Open a channel to {address}. See |channel|.
|
Open a channel to {address}. See |channel|.
|
||||||
Returns a Channel. Use |ch_status()| to check for
|
Returns a Channel. Use |ch_status()| to check for
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*index.txt* For Vim version 7.4. Last change: 2016 Feb 27
|
*index.txt* For Vim version 7.4. Last change: 2016 Mar 04
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1324,7 +1324,6 @@ tag command action ~
|
|||||||
|:lnfile| :lnf[ile] go to first location in next file
|
|:lnfile| :lnf[ile] go to first location in next file
|
||||||
|:lnoremap| :ln[oremap] like ":noremap!" but includes Lang-Arg mode
|
|:lnoremap| :ln[oremap] like ":noremap!" but includes Lang-Arg mode
|
||||||
|:loadkeymap| :loadk[eymap] load the following keymaps until EOF
|
|:loadkeymap| :loadk[eymap] load the following keymaps until EOF
|
||||||
|:loadplugin| :loadp[lugin] load a plugin from 'packpath'
|
|
||||||
|:loadview| :lo[adview] load view for current window from a file
|
|:loadview| :lo[adview] load view for current window from a file
|
||||||
|:lockmarks| :loc[kmarks] following command keeps marks where they are
|
|:lockmarks| :loc[kmarks] following command keeps marks where they are
|
||||||
|:lockvar| :lockv[ar] lock variables
|
|:lockvar| :lockv[ar] lock variables
|
||||||
@@ -1395,6 +1394,7 @@ tag command action ~
|
|||||||
|:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode
|
|:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode
|
||||||
|:ounmenu| :ounme[nu] remove menu for Operator-pending mode
|
|:ounmenu| :ounme[nu] remove menu for Operator-pending mode
|
||||||
|:ownsyntax| :ow[nsyntax] set new local syntax highlight for this window
|
|:ownsyntax| :ow[nsyntax] set new local syntax highlight for this window
|
||||||
|
|:packadd| :pa[ckadd] add a plugin from 'packpath'
|
||||||
|:pclose| :pc[lose] close preview window
|
|:pclose| :pc[lose] close preview window
|
||||||
|:pedit| :ped[it] edit file in the preview window
|
|:pedit| :ped[it] edit file in the preview window
|
||||||
|:perl| :pe[rl] execute Perl command
|
|:perl| :pe[rl] execute Perl command
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*repeat.txt* For Vim version 7.4. Last change: 2016 Feb 26
|
*repeat.txt* For Vim version 7.4. Last change: 2016 Mar 04
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -213,23 +213,31 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
|||||||
about each searched file.
|
about each searched file.
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
|
|
||||||
*:loadp* *:loadplugin*
|
*:pa* *:packadd*
|
||||||
:loadp[lugin] {name} Search for an optional plugin directory and source the
|
:pa[ckadd][!] {name} Search for an optional plugin directory in 'packpath'
|
||||||
plugin files found. It is similar to: >
|
and source any plugin files found. The directory must
|
||||||
:runtime pack/*/opt/{name}/plugin/*.vim
|
match:
|
||||||
< However, `:loadplugin` uses 'packpath' instead of
|
pack/*/opt/{name} ~
|
||||||
'runtimepath'. And the directory found is added to
|
The directory is added to 'runtimepath' if it wasn't
|
||||||
'runtimepath'.
|
there yet.
|
||||||
|
|
||||||
If you have a directory under 'packpath' that doesn't
|
|
||||||
actually have a plugin file, just create an empty one.
|
|
||||||
This will still add the directory to 'runtimepath'.
|
|
||||||
|
|
||||||
Note that {name} is the directory name, not the name
|
Note that {name} is the directory name, not the name
|
||||||
of the .vim file. If the "{name}/plugin" directory
|
of the .vim file. If the "{name}/plugin" directory
|
||||||
contains more than one file they are all sourced.
|
contains more than one file they are all sourced.
|
||||||
|
|
||||||
Also see |load-plugin|.
|
If the filetype detection was not enabled yet (this
|
||||||
|
is usually done with a "syntax enable" or "filetype
|
||||||
|
on" command in your .vimrc file), this will also look
|
||||||
|
for "{name}/ftdetect/*.vim" files.
|
||||||
|
|
||||||
|
When the optional ! is added no plugin files or
|
||||||
|
ftdetect scripts are loaded, only the matching
|
||||||
|
directories are added to 'runtimepath'. This is
|
||||||
|
useful in your .vimrc. The plugins will then be
|
||||||
|
loaded during initialization, see |load-plugins|.
|
||||||
|
|
||||||
|
Also see |pack-add|.
|
||||||
|
|
||||||
|
|
||||||
:scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167*
|
:scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167*
|
||||||
Specify the character encoding used in the script.
|
Specify the character encoding used in the script.
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*starting.txt* For Vim version 7.4. Last change: 2016 Feb 27
|
*starting.txt* For Vim version 7.4. Last change: 2016 Mar 03
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -832,6 +832,8 @@ accordingly. Vim proceeds in this order:
|
|||||||
- The user exrc file(s). Same as for the user vimrc file, but with
|
- The user exrc file(s). Same as for the user vimrc file, but with
|
||||||
"vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is
|
"vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is
|
||||||
used, depending on the system. And without the (*)!
|
used, depending on the system. And without the (*)!
|
||||||
|
- You would usually have "syntax on" and/or "filetype on" commands,
|
||||||
|
which trigger initializing filetype detection, see |syntax-loading|.
|
||||||
|
|
||||||
d. If the 'exrc' option is on (which is not the default), the current
|
d. If the 'exrc' option is on (which is not the default), the current
|
||||||
directory is searched for three files. The first that exists is used,
|
directory is searched for three files. The first that exists is used,
|
||||||
|
@@ -2446,8 +2446,6 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
:lo starting.txt /*:lo*
|
:lo starting.txt /*:lo*
|
||||||
:loadk mbyte.txt /*:loadk*
|
:loadk mbyte.txt /*:loadk*
|
||||||
:loadkeymap mbyte.txt /*:loadkeymap*
|
:loadkeymap mbyte.txt /*:loadkeymap*
|
||||||
:loadp repeat.txt /*:loadp*
|
|
||||||
:loadplugin repeat.txt /*:loadplugin*
|
|
||||||
:loadview starting.txt /*:loadview*
|
:loadview starting.txt /*:loadview*
|
||||||
:loc motion.txt /*:loc*
|
:loc motion.txt /*:loc*
|
||||||
:lockmarks motion.txt /*:lockmarks*
|
:lockmarks motion.txt /*:lockmarks*
|
||||||
@@ -2620,6 +2618,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
:ounmenu gui.txt /*:ounmenu*
|
:ounmenu gui.txt /*:ounmenu*
|
||||||
:ownsyntax syntax.txt /*:ownsyntax*
|
:ownsyntax syntax.txt /*:ownsyntax*
|
||||||
:p various.txt /*:p*
|
:p various.txt /*:p*
|
||||||
|
:pa repeat.txt /*:pa*
|
||||||
|
:packadd repeat.txt /*:packadd*
|
||||||
:pc windows.txt /*:pc*
|
:pc windows.txt /*:pc*
|
||||||
:pclose windows.txt /*:pclose*
|
:pclose windows.txt /*:pclose*
|
||||||
:pe if_perl.txt /*:pe*
|
:pe if_perl.txt /*:pe*
|
||||||
@@ -4438,8 +4438,10 @@ E911 eval.txt /*E911*
|
|||||||
E912 eval.txt /*E912*
|
E912 eval.txt /*E912*
|
||||||
E913 eval.txt /*E913*
|
E913 eval.txt /*E913*
|
||||||
E914 eval.txt /*E914*
|
E914 eval.txt /*E914*
|
||||||
|
E915 channel.txt /*E915*
|
||||||
E916 eval.txt /*E916*
|
E916 eval.txt /*E916*
|
||||||
E917 eval.txt /*E917*
|
E917 eval.txt /*E917*
|
||||||
|
E918 channel.txt /*E918*
|
||||||
E92 message.txt /*E92*
|
E92 message.txt /*E92*
|
||||||
E93 windows.txt /*E93*
|
E93 windows.txt /*E93*
|
||||||
E94 windows.txt /*E94*
|
E94 windows.txt /*E94*
|
||||||
@@ -6942,7 +6944,6 @@ list-repeat windows.txt /*list-repeat*
|
|||||||
lite.vim syntax.txt /*lite.vim*
|
lite.vim syntax.txt /*lite.vim*
|
||||||
literal-string eval.txt /*literal-string*
|
literal-string eval.txt /*literal-string*
|
||||||
lnum-variable eval.txt /*lnum-variable*
|
lnum-variable eval.txt /*lnum-variable*
|
||||||
load-plugin repeat.txt /*load-plugin*
|
|
||||||
load-plugins starting.txt /*load-plugins*
|
load-plugins starting.txt /*load-plugins*
|
||||||
load-vim-script repeat.txt /*load-vim-script*
|
load-vim-script repeat.txt /*load-vim-script*
|
||||||
local-additions help.txt /*local-additions*
|
local-additions help.txt /*local-additions*
|
||||||
@@ -7573,6 +7574,7 @@ other-features vi_diff.txt /*other-features*
|
|||||||
out-cb channel.txt /*out-cb*
|
out-cb channel.txt /*out-cb*
|
||||||
out-timeout channel.txt /*out-timeout*
|
out-timeout channel.txt /*out-timeout*
|
||||||
p change.txt /*p*
|
p change.txt /*p*
|
||||||
|
pack-add repeat.txt /*pack-add*
|
||||||
packages repeat.txt /*packages*
|
packages repeat.txt /*packages*
|
||||||
page-down intro.txt /*page-down*
|
page-down intro.txt /*page-down*
|
||||||
page-up intro.txt /*page-up*
|
page-up intro.txt /*page-up*
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 7.4. Last change: 2016 Feb 27
|
*todo.txt* For Vim version 7.4. Last change: 2016 Mar 04
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -35,26 +35,22 @@ not be repeated below, unless there is extra information.
|
|||||||
-------------------- Known bugs and current work -----------------------
|
-------------------- Known bugs and current work -----------------------
|
||||||
|
|
||||||
+channel:
|
+channel:
|
||||||
- A callback on ch_sendraw() should be put at the end of the list of callback
|
|
||||||
handlers. When a message arrives invoke the first one and remove it.
|
|
||||||
- implement TODO items in ":help channel":
|
- implement TODO items in ":help channel":
|
||||||
|
- Send last line of buffer when it's added.
|
||||||
- job_start() options:
|
- job_start() options:
|
||||||
term
|
in-io: null, file (in-name), in-buf
|
||||||
in-io
|
out-io: null, file, out-buf
|
||||||
in-file
|
err-io: null, file (err-name), buffer (err-buf)
|
||||||
out-io
|
|
||||||
out-file
|
|
||||||
out-buffer
|
|
||||||
err-io
|
|
||||||
err-file
|
|
||||||
err-buffer
|
|
||||||
existing channel to use
|
existing channel to use
|
||||||
- job_maystart()
|
- job_maystart()
|
||||||
- add job_info(): process ID, run/dead, etc.
|
- add job_info(): process ID, run/dead, etc.
|
||||||
- add ch_info(): in/out/err mode, timeout, callbacks, etc.
|
- add ch_info(): in/out/err mode, timeout, callbacks, etc.
|
||||||
- Move more details from eval.txt to channel.txt. Add tags in eval.txt.
|
- Move more details from eval.txt to channel.txt. Add tags in eval.txt.
|
||||||
- When receiving malformed json starting with a quote it doesn't get
|
- When receiving malformed json starting with a quote it doesn't get
|
||||||
discarded.
|
discarded. Any invalid JSON or JSON that isn't a list will block further
|
||||||
|
parsing?
|
||||||
|
- When decoding json, don't read all the typeahead at once, use the reader
|
||||||
|
properly.
|
||||||
- When a message in the queue but there is no callback, drop it after a while?
|
- When a message in the queue but there is no callback, drop it after a while?
|
||||||
Add timestamp to queued messages and callbacks with ID, remove after a
|
Add timestamp to queued messages and callbacks with ID, remove after a
|
||||||
minute.
|
minute.
|
||||||
@@ -70,12 +66,11 @@ not be repeated below, unless there is extra information.
|
|||||||
- make sure errors lead to a useful error msg. ["ex","foobar"]
|
- make sure errors lead to a useful error msg. ["ex","foobar"]
|
||||||
- For connection to server, a "keep open" flag would be useful. Retry
|
- For connection to server, a "keep open" flag would be useful. Retry
|
||||||
connecting in the main loop with zero timeout.
|
connecting in the main loop with zero timeout.
|
||||||
|
Later
|
||||||
|
- job_start(): run job in a newly opened terminal.
|
||||||
|
With xterm could use -S{pty}.
|
||||||
|
|
||||||
For Win32 isinf() should be inline. (ZyX)
|
emoji patch from Yasuhiro Matsumoto. Asked Thomas Dickey.
|
||||||
|
|
||||||
Add ":packadd"? Like :loadplugin but only adds the dir to 'runtimepath'.
|
|
||||||
|
|
||||||
emoji patch from Yasuhiro Matsumoto.
|
|
||||||
|
|
||||||
More plugin support:
|
More plugin support:
|
||||||
- Have a way to install a callback from the main loop. Called every second or
|
- Have a way to install a callback from the main loop. Called every second or
|
||||||
@@ -107,15 +102,17 @@ When running "make install" don't overwrite the doc/tags file, generate it
|
|||||||
elsewhere, so that the distributed file doesn't change.
|
elsewhere, so that the distributed file doesn't change.
|
||||||
|
|
||||||
Fix to support --nofork for Windows batch files. (Kevin Cantú, 2016 Feb 23,
|
Fix to support --nofork for Windows batch files. (Kevin Cantú, 2016 Feb 23,
|
||||||
#658)
|
#658, #659) Also add "setlocal" at top of batch file?
|
||||||
|
|
||||||
Patch to add GTK 3 support. (Kazunobu Kuriyama, 2016 Feb 13)
|
Patch to add matchstrpos(). (Ozaki Kiichi, 2016 Feb 28)
|
||||||
|
|
||||||
Why does this: echo "a" . 1.1
|
Why does this: echo "a" . 1.1
|
||||||
result in: a11
|
result in: a11
|
||||||
Should recognize float (so long as it's not ".1.1").
|
Should recognize float (so long as it's not ".1.1").
|
||||||
|
|
||||||
Allow for an empty dictionary key.
|
Allow for an empty dictionary key?
|
||||||
|
|
||||||
|
Patch to improve I/O for Perl. (Damien, 2016 Jan 9, update Jan 22 2nd one)
|
||||||
|
|
||||||
Regexp problems:
|
Regexp problems:
|
||||||
- The regexp engines are not reentrant, causing havoc when interrupted by a
|
- The regexp engines are not reentrant, causing havoc when interrupted by a
|
||||||
@@ -170,6 +167,7 @@ Patch to put undo options together in undo window.
|
|||||||
|
|
||||||
Patch to have better check for {action} argument of setqflist().
|
Patch to have better check for {action} argument of setqflist().
|
||||||
Nikolai Pavlov, Feb 25, #661. Can be even more strict.
|
Nikolai Pavlov, Feb 25, #661. Can be even more strict.
|
||||||
|
Also see patch from Hirohito Higash, Feb 25.
|
||||||
|
|
||||||
Patch for clearing history. (Yegappan Lakshmanan, 2016 Jan 31, second message
|
Patch for clearing history. (Yegappan Lakshmanan, 2016 Jan 31, second message
|
||||||
has tests)
|
has tests)
|
||||||
@@ -190,6 +188,10 @@ Two patches now? New update Feb 24.
|
|||||||
Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
|
Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
|
||||||
Also in update of Feb 24?
|
Also in update of Feb 24?
|
||||||
|
|
||||||
|
Patch to add setbufline(). (email from Yasuhiro Matsumoto, patch by Ozaki
|
||||||
|
Kiichi, 2016 Feb 28)
|
||||||
|
https://gist.github.com/ichizok/64bdc92aed19ec9001dd
|
||||||
|
|
||||||
Need to try out instructions in INSSTALLpc.txt about how to install all
|
Need to try out instructions in INSSTALLpc.txt about how to install all
|
||||||
interfaces and how to build Vim with them.
|
interfaces and how to build Vim with them.
|
||||||
Appveyor build with self-installing executable, includes getting most
|
Appveyor build with self-installing executable, includes getting most
|
||||||
@@ -382,8 +384,6 @@ Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
|
|||||||
Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015
|
Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015
|
||||||
Sep 10)
|
Sep 10)
|
||||||
|
|
||||||
Patch to improve I/O for Perl. (Damien, 2015 Jan 9, update Jan 22 2nd one)
|
|
||||||
|
|
||||||
Patch to set antialiasing style on Windows. (Ondrej Balaz, 2013 Mar 14)
|
Patch to set antialiasing style on Windows. (Ondrej Balaz, 2013 Mar 14)
|
||||||
Needs a different check for CLEARTYPE_QUALITY.
|
Needs a different check for CLEARTYPE_QUALITY.
|
||||||
Problem mentioned by Christian Brabandt, 2016 Jan 4.
|
Problem mentioned by Christian Brabandt, 2016 Jan 4.
|
||||||
|
@@ -2,10 +2,9 @@
|
|||||||
" Language: LaTeX
|
" Language: LaTeX
|
||||||
" Maintainer: YiChao Zhou <broken.zhou AT gmail.com>
|
" Maintainer: YiChao Zhou <broken.zhou AT gmail.com>
|
||||||
" Created: Sat, 16 Feb 2002 16:50:19 +0100
|
" Created: Sat, 16 Feb 2002 16:50:19 +0100
|
||||||
" Last Change: 2012 Mar 18 19:19:50
|
" Version: 0.9.2
|
||||||
" Version: 0.7
|
" Please email me if you found something I can do. Comments, bug report and
|
||||||
" Please email me if you found something we can do. Bug report and
|
" feature request are welcome.
|
||||||
" feature request is welcome.
|
|
||||||
|
|
||||||
" Last Update: {{{
|
" Last Update: {{{
|
||||||
" 25th Sep 2002, by LH :
|
" 25th Sep 2002, by LH :
|
||||||
@@ -41,7 +40,7 @@
|
|||||||
" (*) Trust user when in "verbatim" and "lstlisting"
|
" (*) Trust user when in "verbatim" and "lstlisting"
|
||||||
" 2012/03/11 by Zhou Yichao <broken.zhou AT gmail.com>
|
" 2012/03/11 by Zhou Yichao <broken.zhou AT gmail.com>
|
||||||
" (*) Modify "&" so that only indent when current line start with
|
" (*) Modify "&" so that only indent when current line start with
|
||||||
" "&".
|
" "&".
|
||||||
" 2012/03/12 by Zhou Yichao <broken.zhou AT gmail.com>
|
" 2012/03/12 by Zhou Yichao <broken.zhou AT gmail.com>
|
||||||
" (*) Modify indentkeys.
|
" (*) Modify indentkeys.
|
||||||
" 2012/03/18 by Zhou Yichao <broken.zhou AT gmail.com>
|
" 2012/03/18 by Zhou Yichao <broken.zhou AT gmail.com>
|
||||||
@@ -49,6 +48,17 @@
|
|||||||
" 2013/05/02 by Zhou Yichao <broken.zhou AT gmail.com>
|
" 2013/05/02 by Zhou Yichao <broken.zhou AT gmail.com>
|
||||||
" (*) Fix problem about GetTeXIndent checker. Thank Albert Netymk
|
" (*) Fix problem about GetTeXIndent checker. Thank Albert Netymk
|
||||||
" for reporting this.
|
" for reporting this.
|
||||||
|
" 2014/06/23 by Zhou Yichao <broken.zhou AT gmail.com>
|
||||||
|
" (*) Remove the feature g:tex_indent_and because it is buggy.
|
||||||
|
" (*) If there is not any obvious indentation hints, we do not
|
||||||
|
" alert our user's current indentation.
|
||||||
|
" (*) g:tex_indent_brace now only works if the open brace is the
|
||||||
|
" last character of that line.
|
||||||
|
" 2014/08/03 by Zhou Yichao <broken.zhou AT gmail.com>
|
||||||
|
" (*) Indent current line if last line has larger indentation
|
||||||
|
" 2014/08/09 by Zhou Yichao <broken.zhou AT gmail.com>
|
||||||
|
" (*) Add missing return value for s:GetEndIndentation(...)
|
||||||
|
"
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" Document: {{{
|
" Document: {{{
|
||||||
@@ -60,7 +70,17 @@
|
|||||||
" * g:tex_indent_brace
|
" * g:tex_indent_brace
|
||||||
"
|
"
|
||||||
" If this variable is unset or non-zero, it will use smartindent-like style
|
" If this variable is unset or non-zero, it will use smartindent-like style
|
||||||
" for "{}" and "[]"
|
" for "{}" and "[]". Now this only works if the open brace is the last
|
||||||
|
" character of that line.
|
||||||
|
"
|
||||||
|
" % Example 1
|
||||||
|
" \usetikzlibrary{
|
||||||
|
" external
|
||||||
|
" }
|
||||||
|
"
|
||||||
|
" % Example 2
|
||||||
|
" \tikzexternalize[
|
||||||
|
" prefix=tikz]
|
||||||
"
|
"
|
||||||
" * g:tex_indent_items
|
" * g:tex_indent_items
|
||||||
"
|
"
|
||||||
@@ -98,14 +118,6 @@
|
|||||||
"
|
"
|
||||||
" A list of environment names. separated with '\|', where no indentation is
|
" A list of environment names. separated with '\|', where no indentation is
|
||||||
" required. The default is 'document\|verbatim'.
|
" required. The default is 'document\|verbatim'.
|
||||||
"
|
|
||||||
" * g:tex_indent_and
|
|
||||||
"
|
|
||||||
" If this variable is unset or zero, vim will try to align the line with first
|
|
||||||
" "&". This is pretty useful when you use environment like table or align.
|
|
||||||
" Note that this feature need to search back some line, so vim may become
|
|
||||||
" a little slow.
|
|
||||||
"
|
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" Only define the function once
|
" Only define the function once
|
||||||
@@ -126,8 +138,8 @@ endif
|
|||||||
if !exists("g:tex_indent_brace")
|
if !exists("g:tex_indent_brace")
|
||||||
let g:tex_indent_brace = 1
|
let g:tex_indent_brace = 1
|
||||||
endif
|
endif
|
||||||
if !exists("g:tex_indent_and")
|
if !exists("g:tex_max_scan_line")
|
||||||
let g:tex_indent_and = 1
|
let g:tex_max_scan_line = 60
|
||||||
endif
|
endif
|
||||||
if g:tex_indent_items
|
if g:tex_indent_items
|
||||||
if !exists("g:tex_itemize_env")
|
if !exists("g:tex_itemize_env")
|
||||||
@@ -140,10 +152,6 @@ else
|
|||||||
let g:tex_items = ''
|
let g:tex_items = ''
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists("g:tex_indent_paretheses")
|
|
||||||
let g:tex_indent_paretheses = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !exists("g:tex_noindent_env")
|
if !exists("g:tex_noindent_env")
|
||||||
let g:tex_noindent_env = 'document\|verbatim\|lstlisting'
|
let g:tex_noindent_env = 'document\|verbatim\|lstlisting'
|
||||||
endif "}}}
|
endif "}}}
|
||||||
@@ -160,6 +168,7 @@ let g:tex_items = '^\s*' . substitute(g:tex_items, '^\(\^\\s\*\)*', '', '')
|
|||||||
function! GetTeXIndent() " {{{
|
function! GetTeXIndent() " {{{
|
||||||
" Find a non-blank line above the current line.
|
" Find a non-blank line above the current line.
|
||||||
let lnum = prevnonblank(v:lnum - 1)
|
let lnum = prevnonblank(v:lnum - 1)
|
||||||
|
let cnum = v:lnum
|
||||||
|
|
||||||
" Comment line is not what we need.
|
" Comment line is not what we need.
|
||||||
while lnum != 0 && getline(lnum) =~ '^\s*%'
|
while lnum != 0 && getline(lnum) =~ '^\s*%'
|
||||||
@@ -171,8 +180,8 @@ function! GetTeXIndent() " {{{
|
|||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let line = substitute(getline(lnum), '%.*', ' ','g') " last line
|
let line = substitute(getline(lnum), '\s*%.*', '','g') " last line
|
||||||
let cline = substitute(getline(v:lnum), '%.*', ' ', 'g') " current line
|
let cline = substitute(getline(v:lnum), '\s*%.*', '', 'g') " current line
|
||||||
|
|
||||||
" We are in verbatim, so do what our user what.
|
" We are in verbatim, so do what our user what.
|
||||||
if synIDattr(synID(v:lnum, indent(v:lnum), 1), "name") == "texZone"
|
if synIDattr(synID(v:lnum, indent(v:lnum), 1), "name") == "texZone"
|
||||||
@@ -183,26 +192,12 @@ function! GetTeXIndent() " {{{
|
|||||||
end
|
end
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" You want to align with "&"
|
|
||||||
if g:tex_indent_and
|
|
||||||
" Align only when current line start with "&"
|
|
||||||
if line =~ '&.*\\\\' && cline =~ '^\s*&'
|
|
||||||
return indent(v:lnum) + stridx(line, "&") - stridx(cline, "&")
|
|
||||||
endif
|
|
||||||
|
|
||||||
" set line & lnum to the line which doesn't contain "&"
|
|
||||||
while lnum != 0 && (stridx(line, "&") != -1 || line =~ '^\s*%')
|
|
||||||
let lnum = prevnonblank(lnum - 1)
|
|
||||||
let line = getline(lnum)
|
|
||||||
endwhile
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
if lnum == 0
|
if lnum == 0
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let ind = indent(lnum)
|
let ind = indent(lnum)
|
||||||
|
let stay = 1
|
||||||
|
|
||||||
" New code for comment: retain the indent of current line
|
" New code for comment: retain the indent of current line
|
||||||
if cline =~ '^\s*%'
|
if cline =~ '^\s*%'
|
||||||
@@ -216,77 +211,197 @@ function! GetTeXIndent() " {{{
|
|||||||
" ZYC modification : \end after \begin won't cause wrong indent anymore
|
" ZYC modification : \end after \begin won't cause wrong indent anymore
|
||||||
if line =~ '\\begin{.*}' && line !~ g:tex_noindent_env
|
if line =~ '\\begin{.*}' && line !~ g:tex_noindent_env
|
||||||
let ind = ind + &sw
|
let ind = ind + &sw
|
||||||
|
let stay = 0
|
||||||
|
|
||||||
if g:tex_indent_items
|
if g:tex_indent_items
|
||||||
" Add another sw for item-environments
|
" Add another sw for item-environments
|
||||||
if line =~ g:tex_itemize_env
|
if line =~ g:tex_itemize_env
|
||||||
let ind = ind + &sw
|
let ind = ind + &sw
|
||||||
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if cline =~ '\\end{.*}'
|
||||||
|
let retn = s:GetEndIndentation(v:lnum)
|
||||||
|
if retn != -1
|
||||||
|
return retn
|
||||||
|
endif
|
||||||
|
end
|
||||||
" Subtract a 'shiftwidth' when an environment ends
|
" Subtract a 'shiftwidth' when an environment ends
|
||||||
if cline =~ '\\end{.*}' && cline !~ g:tex_noindent_env
|
if cline =~ '\\end{.*}'
|
||||||
|
\ && cline !~ g:tex_noindent_env
|
||||||
|
\ && cline !~ '\\begin{.*}.*\\end{.*}'
|
||||||
if g:tex_indent_items
|
if g:tex_indent_items
|
||||||
" Remove another sw for item-environments
|
" Remove another sw for item-environments
|
||||||
if cline =~ g:tex_itemize_env
|
if cline =~ g:tex_itemize_env
|
||||||
let ind = ind - &sw
|
let ind = ind - &sw
|
||||||
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let ind = ind - &sw
|
let ind = ind - &sw
|
||||||
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if g:tex_indent_brace
|
if g:tex_indent_brace
|
||||||
let sum1 = 0
|
let char = line[strlen(line)-1]
|
||||||
for i in range(0, strlen(line)-1)
|
if char == '[' || char == '{'
|
||||||
if line[i] == "}" || line[i] == "]" ||
|
let ind += &sw
|
||||||
\ strpart(line, i, 7) == '\right)'
|
let stay = 0
|
||||||
let sum1 = max([0, sum1-1])
|
endif
|
||||||
endif
|
|
||||||
if line[i] == "{" || line[i] == "[" ||
|
let cind = indent(v:lnum)
|
||||||
\ strpart(line, i, 6) == '\left('
|
let char = cline[cind]
|
||||||
let sum1 += 1
|
if (char == ']' || char == '}') &&
|
||||||
|
\ s:CheckPairedIsLastCharacter(v:lnum, cind)
|
||||||
|
let ind -= &sw
|
||||||
|
let stay = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
for i in range(indent(lnum)+1, strlen(line)-1)
|
||||||
|
let char = line[i]
|
||||||
|
if char == ']' || char == '}'
|
||||||
|
if s:CheckPairedIsLastCharacter(lnum, i)
|
||||||
|
let ind -= &sw
|
||||||
|
let stay = 0
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
let sum2 = 0
|
|
||||||
for i in reverse(range(0, strlen(cline)-1))
|
|
||||||
if cline[i] == "{" || cline[i] == "[" ||
|
|
||||||
\ strpart(cline, i, 6) == '\left('
|
|
||||||
let sum2 = max([0, sum2-1])
|
|
||||||
endif
|
|
||||||
if cline[i] == "}" || cline[i] == "]" ||
|
|
||||||
\ strpart(cline, i, 7) == '\right)'
|
|
||||||
let sum2 += 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
let ind += (sum1 - sum2) * &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
if g:tex_indent_paretheses
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Special treatment for 'item'
|
" Special treatment for 'item'
|
||||||
" ----------------------------
|
" ----------------------------
|
||||||
|
|
||||||
if g:tex_indent_items
|
if g:tex_indent_items
|
||||||
|
|
||||||
" '\item' or '\bibitem' itself:
|
" '\item' or '\bibitem' itself:
|
||||||
if cline =~ g:tex_items
|
if cline =~ g:tex_items
|
||||||
let ind = ind - &sw
|
let ind = ind - &sw
|
||||||
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" lines following to '\item' are intented once again:
|
" lines following to '\item' are intented once again:
|
||||||
if line =~ g:tex_items
|
if line =~ g:tex_items
|
||||||
let ind = ind + &sw
|
let ind = ind + &sw
|
||||||
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
if stay
|
||||||
|
" If there is no obvious indentation hint, we trust our user.
|
||||||
|
if empty(cline)
|
||||||
|
return ind
|
||||||
|
else
|
||||||
|
return max([indent(v:lnum), s:GetLastBeginIndentation(v:lnum)])
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
return ind
|
||||||
|
endif
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:GetLastBeginIndentation(lnum) " {{{
|
||||||
|
let matchend = 1
|
||||||
|
for lnum in range(a:lnum-1, max([a:lnum - g:tex_max_scan_line, 1]), -1)
|
||||||
|
let line = getline(lnum)
|
||||||
|
if line =~ '\\end{.*}'
|
||||||
|
let matchend += 1
|
||||||
|
endif
|
||||||
|
if line =~ '\\begin{.*}'
|
||||||
|
let matchend -= 1
|
||||||
|
endif
|
||||||
|
if matchend == 0
|
||||||
|
if line =~ g:tex_itemize_env
|
||||||
|
return indent(lnum) + 2 * &sw
|
||||||
|
endif
|
||||||
|
if line =~ g:tex_noindent_env
|
||||||
|
return indent(lnum)
|
||||||
|
endif
|
||||||
|
return indent(lnum) + &sw
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return -1
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:GetEndIndentation(lnum) " {{{
|
||||||
|
if getline(a:lnum) =~ '\\begin{.*}.*\\end{.*}'
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
|
||||||
|
let min_indent = 100
|
||||||
|
let matchend = 1
|
||||||
|
for lnum in range(a:lnum-1, max([a:lnum-g:tex_max_scan_line, 1]), -1)
|
||||||
|
let line = getline(lnum)
|
||||||
|
if line =~ '\\end{.*}'
|
||||||
|
let matchend += 1
|
||||||
|
endif
|
||||||
|
if line =~ '\\begin{.*}'
|
||||||
|
let matchend -= 1
|
||||||
|
endif
|
||||||
|
if matchend == 0
|
||||||
|
return indent(lnum)
|
||||||
|
endif
|
||||||
|
if !empty(line)
|
||||||
|
let min_indent = min([min_indent, indent(lnum)])
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return min_indent - &sw
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Most of the code is from matchparen.vim
|
||||||
|
function! s:CheckPairedIsLastCharacter(lnum, col) "{{{
|
||||||
|
" Get the character under the cursor and check if it's in 'matchpairs'.
|
||||||
|
let c_lnum = a:lnum
|
||||||
|
let c_col = a:col+1
|
||||||
|
|
||||||
|
|
||||||
|
let c = getline(c_lnum)[c_col-1]
|
||||||
|
let plist = split(&matchpairs, '.\zs[:,]')
|
||||||
|
let i = index(plist, c)
|
||||||
|
if i < 0
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Figure out the arguments for searchpairpos().
|
||||||
|
if i % 2 == 0
|
||||||
|
let s_flags = 'nW'
|
||||||
|
let c2 = plist[i + 1]
|
||||||
|
else
|
||||||
|
let s_flags = 'nbW'
|
||||||
|
let c2 = c
|
||||||
|
let c = plist[i - 1]
|
||||||
|
endif
|
||||||
|
if c == '['
|
||||||
|
let c = '\['
|
||||||
|
let c2 = '\]'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Find the match. When it was just before the cursor move it there for a
|
||||||
|
" moment.
|
||||||
|
let save_cursor = winsaveview()
|
||||||
|
call cursor(c_lnum, c_col)
|
||||||
|
|
||||||
|
" When not in a string or comment ignore matches inside them.
|
||||||
|
" We match "escape" for special items, such as lispEscapeSpecial.
|
||||||
|
let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
|
||||||
|
\ '=~? "string\\|character\\|singlequote\\|escape\\|comment"'
|
||||||
|
execute 'if' s_skip '| let s_skip = 0 | endif'
|
||||||
|
|
||||||
|
let stopline = max([0, c_lnum - g:tex_max_scan_line])
|
||||||
|
|
||||||
|
" Limit the search time to 300 msec to avoid a hang on very long lines.
|
||||||
|
" This fails when a timeout is not supported.
|
||||||
|
try
|
||||||
|
let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, 100)
|
||||||
|
catch /E118/
|
||||||
|
endtry
|
||||||
|
|
||||||
|
call winrestview(save_cursor)
|
||||||
|
|
||||||
|
if m_lnum > 0
|
||||||
|
let line = getline(m_lnum)
|
||||||
|
return strlen(line) == m_col
|
||||||
|
endif
|
||||||
|
|
||||||
|
return 0
|
||||||
endfunction "}}}
|
endfunction "}}}
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
|
@@ -4,8 +4,8 @@
|
|||||||
" Maintainer: Dominik Fischer <d dot f dot fischer at web dot de>
|
" Maintainer: Dominik Fischer <d dot f dot fischer at web dot de>
|
||||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||||
" Contributor: Karsten Hopp <karsten@redhat.com>
|
" Contributor: Karsten Hopp <karsten@redhat.com>
|
||||||
" Last Change: 2016 Jan 15
|
" Last Change: 2016 Mar 1
|
||||||
" SSH Version: 7.1
|
" SSH Version: 7.2
|
||||||
"
|
"
|
||||||
|
|
||||||
" Setup
|
" Setup
|
||||||
@@ -40,26 +40,57 @@ syn keyword sshconfigYesNo yes no ask
|
|||||||
syn keyword sshconfigYesNo any auto
|
syn keyword sshconfigYesNo any auto
|
||||||
syn keyword sshconfigYesNo force autoask none
|
syn keyword sshconfigYesNo force autoask none
|
||||||
|
|
||||||
syn keyword sshconfigCipher 3des blowfish
|
syn keyword sshconfigCipher 3des blowfish
|
||||||
syn keyword sshconfigCiphers aes128-cbc 3des-cbc blowfish blowfish-cbc cast128-cbc
|
|
||||||
syn keyword sshconfigCiphers aes192-cbc aes256-cbc aes128-ctr aes192-ctr aes256-ctr
|
|
||||||
syn keyword sshconfigCiphers arcfour arcfour128 arcfour256 cast128-cbc
|
|
||||||
|
|
||||||
syn keyword sshconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
|
syn keyword sshconfigCiphers 3des-cbc
|
||||||
syn keyword sshconfigMAC hmac-md5-96
|
syn keyword sshconfigCiphers blowfish-cbc
|
||||||
syn keyword sshconfigMAC hmac-sha2-256 hmac-sha2-256-96 hmac-sha2-512
|
syn keyword sshconfigCiphers cast128-cbc
|
||||||
syn keyword sshconfigMAC hmac-sha2-512-96
|
syn keyword sshconfigCiphers arcfour
|
||||||
|
syn keyword sshconfigCiphers arcfour128
|
||||||
|
syn keyword sshconfigCiphers arcfour256
|
||||||
|
syn keyword sshconfigCiphers aes128-cbc
|
||||||
|
syn keyword sshconfigCiphers aes192-cbc
|
||||||
|
syn keyword sshconfigCiphers aes256-cbc
|
||||||
|
syn match sshconfigCiphers "\<rijndael-cbc@lysator\.liu.se\>"
|
||||||
|
syn keyword sshconfigCiphers aes128-ctr
|
||||||
|
syn keyword sshconfigCiphers aes192-ctr
|
||||||
|
syn keyword sshconfigCiphers aes256-ctr
|
||||||
|
syn match sshconfigCiphers "\<aes128-gcm@openssh\.com\>"
|
||||||
|
syn match sshconfigCiphers "\<aes256-gcm@openssh\.com\>"
|
||||||
|
syn match sshconfigCiphers "\<chacha20-poly1305@openssh\.com\>"
|
||||||
|
|
||||||
|
syn keyword sshconfigMAC hmac-sha1
|
||||||
|
syn keyword sshconfigMAC mac-sha1-96
|
||||||
|
syn keyword sshconfigMAC mac-sha2-256
|
||||||
|
syn keyword sshconfigMAC mac-sha2-512
|
||||||
|
syn keyword sshconfigMAC mac-md5
|
||||||
|
syn keyword sshconfigMAC mac-md5-96
|
||||||
|
syn keyword sshconfigMAC mac-ripemd160
|
||||||
|
syn match sshconfigMAC "\<hmac-ripemd160@openssh\.com\>"
|
||||||
syn match sshconfigMAC "\<umac-64@openssh\.com\>"
|
syn match sshconfigMAC "\<umac-64@openssh\.com\>"
|
||||||
|
syn match sshconfigMAC "\<umac-128@openssh\.com\>"
|
||||||
|
syn match sshconfigMAC "\<hmac-sha1-etm@openssh\.com\>"
|
||||||
|
syn match sshconfigMAC "\<hmac-sha1-96-etm@openssh\.com\>"
|
||||||
|
syn match sshconfigMAC "\<hmac-sha2-256-etm@openssh\.com\>"
|
||||||
|
syn match sshconfigMAC "\<hmac-sha2-512-etm@openssh\.com\>"
|
||||||
|
syn match sshconfigMAC "\<hmac-md5-etm@openssh\.com\>"
|
||||||
|
syn match sshconfigMAC "\<hmac-md5-96-etm@openssh\.com\>"
|
||||||
|
syn match sshconfigMAC "\<hmac-ripemd160-etm@openssh\.com\>"
|
||||||
|
syn match sshconfigMAC "\<umac-64-etm@openssh\.com\>"
|
||||||
|
syn match sshconfigMAC "\<umac-128-etm@openssh\.com\>"
|
||||||
|
|
||||||
syn keyword sshconfigHostKeyAlg ssh-rsa ssh-dss
|
syn keyword sshconfigHostKeyAlgo ssh-ed25519
|
||||||
syn match sshconfigHostKeyAlg "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
|
syn match sshconfigHostKeyAlgo "\<ssh-ed25519-cert-v01@openssh\.com\>"
|
||||||
syn match sshconfigHostKeyAlg "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
|
syn keyword sshconfigHostKeyAlgo ssh-rsa
|
||||||
syn match sshconfigHostKeyAlg "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"
|
syn keyword sshconfigHostKeyAlgo ssh-dss
|
||||||
syn match sshconfigHostKeyAlg "\<ssh-rsa-cert-v01@openssh\.com\>"
|
syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp256
|
||||||
syn match sshconfigHostKeyAlg "\<ssh-dss-cert-v01@openssh\.com\>"
|
syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp384
|
||||||
syn match sshconfigHostKeyAlg "\<ssh-rsa-cert-v00@openssh\.com\>"
|
syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp521
|
||||||
syn match sshconfigHostKeyAlg "\<ssh-dss-cert-v00@openssh\.com\>"
|
syn match sshconfigHostKeyAlgo "\<ssh-rsa-cert-v01@openssh\.com\>"
|
||||||
syn keyword sshconfigHostKeyAlg ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 ecdsa-sha2-nistp521
|
syn match sshconfigHostKeyAlgo "\<ssh-dss-cert-v01@openssh\.com\>"
|
||||||
|
syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
|
||||||
|
syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
|
||||||
|
syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"
|
||||||
|
|
||||||
syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic
|
syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic
|
||||||
syn keyword sshconfigPreferredAuth keyboard-interactive
|
syn keyword sshconfigPreferredAuth keyboard-interactive
|
||||||
@@ -78,11 +109,14 @@ syn match sshconfigIPQoS "cs[0-7]"
|
|||||||
syn keyword sshconfigIPQoS ef lowdelay throughput reliability
|
syn keyword sshconfigIPQoS ef lowdelay throughput reliability
|
||||||
syn keyword sshconfigKbdInteractive bsdauth pam skey
|
syn keyword sshconfigKbdInteractive bsdauth pam skey
|
||||||
|
|
||||||
syn keyword sshconfigKexAlgo ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521
|
syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1
|
||||||
syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha256
|
syn keyword sshconfigKexAlgo diffie-hellman-group14-sha1
|
||||||
syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha1
|
syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha1
|
||||||
syn keyword sshconfigKexAlgo diffie-hellman-group14-sha1
|
syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha256
|
||||||
syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1
|
syn keyword sshconfigKexAlgo ecdh-sha2-nistp256
|
||||||
|
syn keyword sshconfigKexAlgo ecdh-sha2-nistp384
|
||||||
|
syn keyword sshconfigKexAlgo ecdh-sha2-nistp521
|
||||||
|
syn match sshconfigKexAlgo "\<curve25519-sha256@libssh\.org\>"
|
||||||
|
|
||||||
syn keyword sshconfigTunnel point-to-point ethernet
|
syn keyword sshconfigTunnel point-to-point ethernet
|
||||||
|
|
||||||
@@ -111,6 +145,7 @@ syn keyword sshconfigKeyword CanonicalDomains
|
|||||||
syn keyword sshconfigKeyword CanonicalizeFallbackLocal
|
syn keyword sshconfigKeyword CanonicalizeFallbackLocal
|
||||||
syn keyword sshconfigKeyword CanonicalizeHostname
|
syn keyword sshconfigKeyword CanonicalizeHostname
|
||||||
syn keyword sshconfigKeyword CanonicalizeMaxDots
|
syn keyword sshconfigKeyword CanonicalizeMaxDots
|
||||||
|
syn keyword sshconfigKeyword CertificateFile
|
||||||
syn keyword sshconfigKeyword ChallengeResponseAuthentication
|
syn keyword sshconfigKeyword ChallengeResponseAuthentication
|
||||||
syn keyword sshconfigKeyword CheckHostIP
|
syn keyword sshconfigKeyword CheckHostIP
|
||||||
syn keyword sshconfigKeyword Cipher
|
syn keyword sshconfigKeyword Cipher
|
||||||
@@ -212,7 +247,7 @@ if version >= 508 || !exists("did_sshconfig_syntax_inits")
|
|||||||
HiLink sshconfigCipher sshconfigEnum
|
HiLink sshconfigCipher sshconfigEnum
|
||||||
HiLink sshconfigCiphers sshconfigEnum
|
HiLink sshconfigCiphers sshconfigEnum
|
||||||
HiLink sshconfigMAC sshconfigEnum
|
HiLink sshconfigMAC sshconfigEnum
|
||||||
HiLink sshconfigHostKeyAlg sshconfigEnum
|
HiLink sshconfigHostKeyAlgo sshconfigEnum
|
||||||
HiLink sshconfigLogLevel sshconfigEnum
|
HiLink sshconfigLogLevel sshconfigEnum
|
||||||
HiLink sshconfigSysLogFacility sshconfigEnum
|
HiLink sshconfigSysLogFacility sshconfigEnum
|
||||||
HiLink sshconfigAddressFamily sshconfigEnum
|
HiLink sshconfigAddressFamily sshconfigEnum
|
||||||
|
@@ -6,8 +6,8 @@
|
|||||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||||
" Contributor: Karsten Hopp <karsten@redhat.com>
|
" Contributor: Karsten Hopp <karsten@redhat.com>
|
||||||
" Originally: 2009-07-09
|
" Originally: 2009-07-09
|
||||||
" Last Change: 2016 Jan 12
|
" Last Change: 2016 Mar 1
|
||||||
" SSH Version: 7.1
|
" SSH Version: 7.2
|
||||||
"
|
"
|
||||||
|
|
||||||
" Setup
|
" Setup
|
||||||
@@ -47,15 +47,55 @@ syn keyword sshdconfigTcpForwarding local remote
|
|||||||
|
|
||||||
syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only
|
syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only
|
||||||
|
|
||||||
syn keyword sshdconfigCipher aes128-cbc 3des-cbc blowfish-cbc cast128-cbc
|
syn keyword sshdconfigCiphers 3des-cbc
|
||||||
syn keyword sshdconfigCipher aes192-cbc aes256-cbc aes128-ctr aes192-ctr aes256-ctr
|
syn keyword sshdconfigCiphers blowfish-cbc
|
||||||
syn keyword sshdconfigCipher arcfour arcfour128 arcfour256 cast128-cbc
|
syn keyword sshdconfigCiphers cast128-cbc
|
||||||
|
syn keyword sshdconfigCiphers arcfour
|
||||||
|
syn keyword sshdconfigCiphers arcfour128
|
||||||
|
syn keyword sshdconfigCiphers arcfour256
|
||||||
|
syn keyword sshdconfigCiphers aes128-cbc
|
||||||
|
syn keyword sshdconfigCiphers aes192-cbc
|
||||||
|
syn keyword sshdconfigCiphers aes256-cbc
|
||||||
|
syn match sshdconfigCiphers "\<rijndael-cbc@lysator\.liu.se\>"
|
||||||
|
syn keyword sshdconfigCiphers aes128-ctr
|
||||||
|
syn keyword sshdconfigCiphers aes192-ctr
|
||||||
|
syn keyword sshdconfigCiphers aes256-ctr
|
||||||
|
syn match sshdconfigCiphers "\<aes128-gcm@openssh\.com\>"
|
||||||
|
syn match sshdconfigCiphers "\<aes256-gcm@openssh\.com\>"
|
||||||
|
syn match sshdconfigCiphers "\<chacha20-poly1305@openssh\.com\>"
|
||||||
|
|
||||||
syn keyword sshdconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
|
syn keyword sshdconfigMAC hmac-sha1
|
||||||
syn keyword sshdconfigMAC hmac-md5-96
|
syn keyword sshdconfigMAC mac-sha1-96
|
||||||
syn keyword sshdconfigMAC hmac-sha2-256 hmac-sha256-96 hmac-sha2-512
|
syn keyword sshdconfigMAC mac-sha2-256
|
||||||
syn keyword sshdconfigMAC hmac-sha2-512-96
|
syn keyword sshdconfigMAC mac-sha2-512
|
||||||
|
syn keyword sshdconfigMAC mac-md5
|
||||||
|
syn keyword sshdconfigMAC mac-md5-96
|
||||||
|
syn keyword sshdconfigMAC mac-ripemd160
|
||||||
|
syn match sshdconfigMAC "\<hmac-ripemd160@openssh\.com\>"
|
||||||
syn match sshdconfigMAC "\<umac-64@openssh\.com\>"
|
syn match sshdconfigMAC "\<umac-64@openssh\.com\>"
|
||||||
|
syn match sshdconfigMAC "\<umac-128@openssh\.com\>"
|
||||||
|
syn match sshdconfigMAC "\<hmac-sha1-etm@openssh\.com\>"
|
||||||
|
syn match sshdconfigMAC "\<hmac-sha1-96-etm@openssh\.com\>"
|
||||||
|
syn match sshdconfigMAC "\<hmac-sha2-256-etm@openssh\.com\>"
|
||||||
|
syn match sshdconfigMAC "\<hmac-sha2-512-etm@openssh\.com\>"
|
||||||
|
syn match sshdconfigMAC "\<hmac-md5-etm@openssh\.com\>"
|
||||||
|
syn match sshdconfigMAC "\<hmac-md5-96-etm@openssh\.com\>"
|
||||||
|
syn match sshdconfigMAC "\<hmac-ripemd160-etm@openssh\.com\>"
|
||||||
|
syn match sshdconfigMAC "\<umac-64-etm@openssh\.com\>"
|
||||||
|
syn match sshdconfigMAC "\<umac-128-etm@openssh\.com\>"
|
||||||
|
|
||||||
|
syn keyword sshdconfigHostKeyAlgo ssh-ed25519
|
||||||
|
syn match sshdconfigHostKeyAlgo "\<ssh-ed25519-cert-v01@openssh\.com\>"
|
||||||
|
syn keyword sshdconfigHostKeyAlgo ssh-rsa
|
||||||
|
syn keyword sshdconfigHostKeyAlgo ssh-dss
|
||||||
|
syn keyword sshdconfigHostKeyAlgo ecdsa-sha2-nistp256
|
||||||
|
syn keyword sshdconfigHostKeyAlgo ecdsa-sha2-nistp384
|
||||||
|
syn keyword sshdconfigHostKeyAlgo ecdsa-sha2-nistp521
|
||||||
|
syn match sshdconfigHostKeyAlgo "\<ssh-rsa-cert-v01@openssh\.com\>"
|
||||||
|
syn match sshdconfigHostKeyAlgo "\<ssh-dss-cert-v01@openssh\.com\>"
|
||||||
|
syn match sshdconfigHostKeyAlgo "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
|
||||||
|
syn match sshdconfigHostKeyAlgo "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
|
||||||
|
syn match sshdconfigHostKeyAlgo "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"
|
||||||
|
|
||||||
syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only
|
syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only
|
||||||
|
|
||||||
@@ -73,11 +113,14 @@ syn match sshdconfigIPQoS "af4[123]"
|
|||||||
syn match sshdconfigIPQoS "cs[0-7]"
|
syn match sshdconfigIPQoS "cs[0-7]"
|
||||||
syn keyword sshdconfigIPQoS ef lowdelay throughput reliability
|
syn keyword sshdconfigIPQoS ef lowdelay throughput reliability
|
||||||
|
|
||||||
syn keyword sshdconfigKexAlgo ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521
|
syn keyword sshdconfigKexAlgo diffie-hellman-group1-sha1
|
||||||
syn keyword sshdconfigKexAlgo diffie-hellman-group-exchange-sha256
|
syn keyword sshdconfigKexAlgo diffie-hellman-group14-sha1
|
||||||
syn keyword sshdconfigKexAlgo diffie-hellman-group-exchange-sha1
|
syn keyword sshdconfigKexAlgo diffie-hellman-group-exchange-sha1
|
||||||
syn keyword sshdconfigKexAlgo diffie-hellman-group14-sha1
|
syn keyword sshdconfigKexAlgo diffie-hellman-group-exchange-sha256
|
||||||
syn keyword sshdconfigKexAlgo diffie-hellman-group1-sha1
|
syn keyword sshdconfigKexAlgo ecdh-sha2-nistp256
|
||||||
|
syn keyword sshdconfigKexAlgo ecdh-sha2-nistp384
|
||||||
|
syn keyword sshdconfigKexAlgo ecdh-sha2-nistp521
|
||||||
|
syn match sshdconfigKexAlgo "\<curve25519-sha256@libssh\.org\>"
|
||||||
|
|
||||||
syn keyword sshdconfigTunnel point-to-point ethernet
|
syn keyword sshdconfigTunnel point-to-point ethernet
|
||||||
|
|
||||||
@@ -215,8 +258,9 @@ if version >= 508 || !exists("did_sshdconfig_syntax_inits")
|
|||||||
HiLink sshdconfigPrivilegeSeparation sshdconfigEnum
|
HiLink sshdconfigPrivilegeSeparation sshdconfigEnum
|
||||||
HiLink sshdconfigTcpForwarding sshdconfigEnum
|
HiLink sshdconfigTcpForwarding sshdconfigEnum
|
||||||
HiLink sshdconfigRootLogin sshdconfigEnum
|
HiLink sshdconfigRootLogin sshdconfigEnum
|
||||||
HiLink sshdconfigCipher sshdconfigEnum
|
HiLink sshdconfigCiphers sshdconfigEnum
|
||||||
HiLink sshdconfigMAC sshdconfigEnum
|
HiLink sshdconfigMAC sshdconfigEnum
|
||||||
|
HiLink sshdconfigHostKeyAlgo sshdconfigEnum
|
||||||
HiLink sshdconfigRootLogin sshdconfigEnum
|
HiLink sshdconfigRootLogin sshdconfigEnum
|
||||||
HiLink sshdconfigLogLevel sshdconfigEnum
|
HiLink sshdconfigLogLevel sshdconfigEnum
|
||||||
HiLink sshdconfigSysLogFacility sshdconfigEnum
|
HiLink sshdconfigSysLogFacility sshdconfigEnum
|
||||||
|
Reference in New Issue
Block a user