Update runtime files.

This commit is contained in:
Bram Moolenaar
2016-02-15 22:07:32 +01:00
parent d807036d10
commit 38a55639d6
15 changed files with 712 additions and 245 deletions

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 7.4. Last change: 2016 Jan 31 *change.txt* For Vim version 7.4. Last change: 2016 Feb 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -98,10 +98,10 @@ These commands delete text. You can repeat them with the `.` command
An exception for the d{motion} command: If the motion is not linewise, the An exception for the d{motion} command: If the motion is not linewise, the
start and end of the motion are not in the same line, and there are only start and end of the motion are not in the same line, and there are only
blanks before the start and after the end of the motion, the delete becomes blanks before the start and there are no non-blanks after the end of the
linewise. This means that the delete also removes the line of blanks that you motion, the delete becomes linewise. This means that the delete also removes
might expect to remain. Use the |o_v| operator to force the motion to be the line of blanks that you might expect to remain. Use the |o_v| operator to
characterwise. force the motion to be characterwise.
Trying to delete an empty region of text (e.g., "d0" in the first column) Trying to delete an empty region of text (e.g., "d0" in the first column)
is an error when 'cpoptions' includes the 'E' flag. is an error when 'cpoptions' includes the 'E' flag.

View File

@ -1,4 +1,4 @@
*channel.txt* For Vim version 7.4. Last change: 2016 Feb 07 *channel.txt* For Vim version 7.4. Last change: 2016 Feb 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -9,36 +9,72 @@
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Vim uses channels to communicate with other processes. Vim uses channels to communicate with other processes.
A channel uses a socket. *socket-interface* A channel uses a socket or pipes *socket-interface*
Jobs can be used to start processes and communicate with them.
Vim current supports up to 10 simultaneous channels. Vim current supports up to 10 simultaneous channels.
The Netbeans interface also uses a channel. |netbeans| The Netbeans interface also uses a channel. |netbeans|
1. Demo |channel-demo| 1. Overview |job-channel-overview|
2. Opening a channel |channel-open| 2. Channel demo |channel-demo|
3. Using a JSON or JS channel |channel-use| 3. Opening a channel |channel-open|
4. Vim commands |channel-commands| 4. Using a JSON or JS channel |channel-use|
5. Using a raw channel |channel-use| 5. Channel commands |channel-commands|
6. Job control |job-control| 6. Using a RAW or NL channel |channel-raw|
7. More channel functions |channel-more|
8. Starting a job with a channel |job-start|
9. Starting a job without a channel |job-start-nochannel|
10. Job options |job-options|
11. Controlling a job |job-control|
{Vi does not have any of these features} {Vi does not have any of these features}
{only available when compiled with the |+channel| feature} {only when compiled with the |+channel| feature for channel stuff}
{only when compiled with the |+job| feature for job stuff}
============================================================================== ==============================================================================
1. Demo *channel-demo* 1. Overview *job-channel-overview*
There are four main types of jobs:
1. A deamon, serving several Vim instances.
Vim connects to it with a socket.
2. One job working with one Vim instance, asynchronously.
Uses a socket or pipes.
3. A job performing some work for a short time, asynchronously.
Uses a socket or pipes.
4. Running a filter, synchronously.
Uses pipes.
For when using sockets See |job-start|, |job-may-start| and |channel-open|.
For 2 and 3, one or more jobs using pipes, see |job-start|.
For 4 use the ":{range}!cmd" command, see |filter|.
Over the socket and pipes these protocols are available:
RAW nothing known, Vim cannot tell where a message ends
NL every message ends in a NL (newline) character
JSON JSON encoding |json_encode()|
JS JavaScript style JSON-like encoding |js_encode()|
Common combination are:
- Using a job connected through pipes in NL mode. E.g., to run a style
checker and receive errors and warnings.
- Using a deamon, connecting over a socket in JSON mode. E.g. to lookup
crosss-refrences in a database.
==============================================================================
2. Channel demo *channel-demo*
This requires Python. The demo program can be found in This requires Python. The demo program can be found in
$VIMRUNTIME/tools/demoserver.py $VIMRUNTIME/tools/demoserver.py
Run it in one terminal. We will call this T1. Run it in one terminal. We will call this T1.
Run Vim in another terminal. Connect to the demo server with: > Run Vim in another terminal. Connect to the demo server with: >
let handle = ch_open('localhost:8765') let channel = ch_open('localhost:8765')
In T1 you should see: In T1 you should see:
=== socket opened === ~ === socket opened === ~
You can now send a message to the server: > You can now send a message to the server: >
echo ch_sendexpr(handle, 'hello!') echo ch_sendexpr(channel, 'hello!')
The message is received in T1 and a response is sent back to Vim. The message is received in T1 and a response is sent back to Vim.
You can see the raw messages in T1. What Vim sends is: You can see the raw messages in T1. What Vim sends is:
@ -54,47 +90,63 @@ And you should see the message in Vim. You can move the cursor a word forward:
["normal","w"] ~ ["normal","w"] ~
To handle asynchronous communication a callback needs to be used: > To handle asynchronous communication a callback needs to be used: >
func MyHandler(handle, msg) func MyHandler(channel, msg)
echo "from the handler: " . a:msg echo "from the handler: " . a:msg
endfunc endfunc
call ch_sendexpr(handle, 'hello!', "MyHandler") call ch_sendexpr(channel, 'hello!', "MyHandler")
Vim will not wait for a response. Now the server can send the response later
and MyHandler will be invoked.
Instead of giving a callback with every send call, it can also be specified Instead of giving a callback with every send call, it can also be specified
when opening the channel: > when opening the channel: >
call ch_close(handle) call ch_close(channel)
let handle = ch_open('localhost:8765', {'callback': "MyHandler"}) let channel = ch_open('localhost:8765', {'callback': "MyHandler"})
call ch_sendexpr(handle, 'hello!', 0) call ch_sendexpr(channel, 'hello!', 0)
============================================================================== ==============================================================================
2. Opening a channel *channel-open* 3. Opening a channel *channel-open*
To open a channel: > To open a channel: >
let handle = ch_open({address} [, {argdict}]) let channel = ch_open({address} [, {options}])
Use |ch_status()| to see if the channel could be opened.
{address} has the form "hostname:port". E.g., "localhost:8765". {address} has the form "hostname:port". E.g., "localhost:8765".
{argdict} is a dictionary with optional entries: {options} is a dictionary with optional entries:
"mode" can be: *channel-mode* "mode" can be: *channel-mode*
"json" - Use JSON, see below; most convenient way. Default. "json" - Use JSON, see below; most convenient way. Default.
"js" - Use JavaScript encoding, more efficient than JSON. "js" - Use JavaScript encoding, more efficient than JSON.
"nl" - Use messages that end in a NL character
"raw" - Use raw messages "raw" - Use raw messages
*channel-callback* *channel-callback*
"callback" is a function that is called when a message is received that is not "callback" A function that is called when a message is received that is
handled otherwise. It gets two arguments: the channel handle and the received not handled otherwise. It gets two arguments: the channel
message. Example: > handle and the received message. Example: >
func Handle(handle, msg) func Handle(channel, msg)
echo 'Received: ' . a:msg echo 'Received: ' . a:msg
endfunc endfunc
let handle = ch_open("localhost:8765", {"callback": "Handle"}) let channel = ch_open("localhost:8765", {"callback": "Handle"})
<
TODO:
"err-cb" A function like "callback" but used for stderr. Only for when
the channel uses pipes.
"waittime" is the time to wait for the connection to be made in milliseconds. TODO:
The default is zero, don't wait, which is useful if the server is supposed to "close-cb" A function that is called when the channel gets closed, other
be running already. A negative number waits forever. than by calling ch_close(). It should be defined like this: >
func MyCloseHandler(channel)
"timeout" is the time to wait for a request when blocking, using "waittime" The time to wait for the connection to be made in
ch_sendexpr(). Again in milliseconds. The default is 2000 (2 seconds). milliseconds. The default is zero, don't wait, which is
useful if the server is supposed to be running already. A
negative number waits forever.
"timeout" The time to wait for a request when blocking, using
ch_sendexpr(). Again in milliseconds. The default is 2000 (2
seconds).
When "mode" is "json" or "js" the "msg" argument is the body of the received When "mode" is "json" or "js" the "msg" argument is the body of the received
message, converted to Vim types. message, converted to Vim types.
@ -103,18 +155,26 @@ When "mode" is "raw" the "msg" argument is the whole message as a string.
When "mode" is "json" or "js" the "callback" is optional. When omitted it is When "mode" is "json" or "js" the "callback" is optional. When omitted it is
only possible to receive a message after sending one. only possible to receive a message after sending one.
The handler can be added or changed later: > TODO:
call ch_setcallback(handle, {callback}) To change the channel options after opening it use ch_setoptions(). The
When "callback" is empty (zero or an empty string) the handler is removed. arguments are similar to what is passed to ch_open(), but "waittime" cannot be
NOT IMPLEMENTED YET given, since that only applies to opening the channel.
The timeout can be changed later: > The handler can be added or changed: >
call ch_settimeout(handle, {msec}) call ch_setoptions(channel, {'callback': callback})
NOT IMPLEMENTED YET When "callback" is empty (zero or an empty string) the handler is removed.
The timeout can be changed: >
call ch_setoptions(channel, {'timeout': msec})
<
*E906* *E906*
Once done with the channel, disconnect it like this: > Once done with the channel, disconnect it like this: >
call ch_close(handle) call ch_close(channel)
When a socket is used this will close the socket for both directions. When
pipes are used (stdin/stdout/stderr) they are all closed. This might not be
what you want! Stopping the job with job_stop() might be better.
TODO:
Currently up to 10 channels can be in use at the same time. *E897* Currently up to 10 channels can be in use at the same time. *E897*
When the channel can't be opened you will get an error message. There is a When the channel can't be opened you will get an error message. There is a
@ -126,21 +186,26 @@ If there is an error reading or writing a channel it will be closed.
*E896* *E630* *E631* *E896* *E630* *E631*
============================================================================== ==============================================================================
3. Using a JSON or JS channel *channel-use* 4. Using a JSON or JS channel *channel-use*
If {mode} is "json" then a message can be sent synchronously like this: > If {mode} is "json" then a message can be sent synchronously like this: >
let response = ch_sendexpr(handle, {expr}) let response = ch_sendexpr(channel, {expr})
This awaits a response from the other side. This awaits a response from the other side.
When {mode} is "js" this works the same, except that the messages use When {mode} is "js" this works the same, except that the messages use
JavaScript encoding. See |jsencode()| for the difference. JavaScript encoding. See |js_encode()| for the difference.
To send a message, without handling a response: > To send a message, without handling a response: >
call ch_sendexpr(handle, {expr}, 0) call ch_sendexpr(channel, {expr}, 0)
To send a message and letting the response handled by a specific function, To send a message and letting the response handled by a specific function,
asynchronously: > asynchronously: >
call ch_sendexpr(handle, {expr}, {callback}) call ch_sendexpr(channel, {expr}, {callback})
Vim will match the response with the request using the message ID. Once the
response is received the callback will be invoked. Further responses with the
same ID will be ignored. If your server sends back multiple responses you
need to send them with ID zero, they will be passed to the channel callback.
The {expr} is converted to JSON and wrapped in an array. An example of the The {expr} is converted to JSON and wrapped in an array. An example of the
message that the receiver will get when {expr} is the string "hello": message that the receiver will get when {expr} is the string "hello":
@ -175,9 +240,7 @@ It is also possible to use ch_sendraw() on a JSON or JS channel. The caller
is then completely responsible for correct encoding and decoding. is then completely responsible for correct encoding and decoding.
============================================================================== ==============================================================================
4. Vim commands *channel-commands* 5. Channel commands *channel-commands*
PARTLY IMPLEMENTED: only "ex" and "normal" work
With a "json" channel the process can send commands to Vim that will be With a "json" channel the process can send commands to Vim that will be
handled by Vim internally, it does not require a handler for the channel. handled by Vim internally, it does not require a handler for the channel.
@ -251,43 +314,202 @@ Example:
["expr","setline('$', ['one', 'two', 'three'])"] ~ ["expr","setline('$', ['one', 'two', 'three'])"] ~
============================================================================== ==============================================================================
5. Using a raw channel *channel-raw* 6. Using a RAW or NL channel *channel-raw*
If {mode} is "raw" then a message can be send like this: > If {mode} is "raw" then a message can be send like this: >
let response = ch_sendraw(handle, {string}) let response = ch_sendraw(channel, {string})
The {string} is sent as-is. The response will be what can be read from the The {string} is sent as-is. The response will be what can be read from the
channel right away. Since Vim doesn't know how to recognize the end of the channel right away. Since Vim doesn't know how to recognize the end of the
message you need to take care of it yourself. message you need to take care of it yourself. The timeout applies for reading
the first byte, after that it will not wait for anything more.
If {mode} is "nl" you can send a message in a similar way. You are expected
to put in the NL after each message. Thus you can also send several messages
ending in a NL at once. The response will be the text up to and including the
first NL. This can also be just the NL for an empty response.
If no NL was read before the channel timeout an empty string is returned.
To send a message, without expecting a response: > To send a message, without expecting a response: >
call ch_sendraw(handle, {string}, 0) call ch_sendraw(channel, {string}, 0)
The process can send back a response, the channel handler will be called with The process can send back a response, the channel handler will be called with
it. it.
To send a message and letting the response handled by a specific function, To send a message and letting the response handled by a specific function,
asynchronously: > asynchronously: >
call ch_sendraw(handle, {string}, {callback}) call ch_sendraw(channel, {string}, {callback})
This {string} can also be JSON, use |jsonencode()| to create it and This {string} can also be JSON, use |json_encode()| to create it and
|jsondecode()| to handle a received JSON message. |json_decode()| to handle a received JSON message.
It is not possible to use |ch_sendexpr()| on a raw channel. It is not possible to use |ch_sendexpr()| on a raw channel.
============================================================================== ==============================================================================
6. Job control *job-control* 7. More channel functions *channel-more*
NOT IMPLEMENTED YET To obtain the status of a channel: ch_status(channel). The possible results
are:
To start another process: > "fail" Failed to open the channel.
call startjob({command}) "open" The channel can be used.
"closed" The channel was closed.
This does not wait for {command} to exit.
TODO: TODO:
To objain the job associated with a channel: ch_getjob(channel)
let handle = startjob({command}, 's') # uses stdin/stdout TODO:
let handle = startjob({command}, '', {address}) # uses socket To read one message from a channel: >
let handle = startjob({command}, 'd', {address}) # start if connect fails let output = ch_read(channel)
This uses the channel timeout. To read without a timeout, just get any
message that is available: >
let output = ch_read(channel, 0)
When no message was available then the result is v:none for a JSON or JS mode
channels, an empty string for a RAW or NL channel.
To read all output from a RAW or NL channel that is available: >
let output = ch_readall(channel)
To read the error output: >
let output = ch_readall(channel, "err")
TODO: use channel timeout, no timeout or specify timeout?
==============================================================================
8. Starting a job with a channel *job-start* *job*
To start a job and open a channel for stdin/stdout/stderr: >
let job = job_start(command, {options})
You can get the channel with: >
let channel = job_getchannel(job)
The channel will use NL mode. If you want another mode it's best to specify
this in {options}. When changing the mode later some text may have already
been received and not parsed correctly.
If the command produces a line of output that you want to deal with, specify
a handler for stdout: >
let job = job_start(command, {"out-cb": "MyHandler"})
The function will be called with the channel and a message. You would define
it like this: >
func MyHandler(channel, msg)
Without the handler you need to read the output with ch_read().
The handler defined for "out-cb" will also receive stderr. If you want to
handle that separately, add an "err-cb" handler: >
let job = job_start(command, {"out-cb": "MyHandler",
\ "err-cb": "ErrHandler"})
You can send a message to the command with ch_sendraw(). If the channel is in
JSON or JS mode you can use ch_sendexpr().
There are several options you can use, see |job-options|.
TODO:
To run a job and read its output once it is done: >
let job = job_start({command}, {'exit-cb': 'MyHandler'})
func MyHandler(job, status)
let channel = job_getchannel()
let output = ch_readall(channel)
" parse output
endfunc
==============================================================================
9. Starting a job without a channel *job-start-nochannel*
To start another process without creating a channel: >
let job = job_start(command, {"in-io": "null", "out-io": "null"})
This starts {command} in the background, Vim does not wait for it to finish.
TODO:
When Vim sees that neither stdin, stdout or stderr are connected, no channel
will be created. Often you will want to include redirection in the command to
avoid it getting stuck.
There are several options you can use, see |job-options|.
TODO: *job-may-start*
To start a job only when connecting to an address does not work use
job_maystart('command', {address}, {options}), For Example: >
let job = job_maystart(command, address, {"waittime": 1000})
let channel = job_gethandle(job)
This comes down to: >
let channel = ch_open(address, {"waittime": 0})
if ch_status(channel) == "fail"
let job = job_start(command)
let channel = ch_open(address, {"waittime": 1000})
call job_sethandle(channel)
endif
Note that the specified waittime applies to when the job has been started.
This gives the job some time to make the port available.
==============================================================================
10. Job options *job-options*
The {options} argument in job_start() is a dictionary. All entries are
optional. The same options can be used with job_setoptions(job, {options}).
TODO: *job-out-cb*
"out-cb": handler Callback for when there is something to read on
stdout.
TODO: *job-err-cb*
"err-cb": handler Callback for when there is something to read on
stderr. Defaults to the same callback as "out-cb".
TODO: *job-close-cb*
"close-cb": handler Callback for when the channel is closed. Same as
"close-cb" on ch_open().
TODO: *job-exit-cb*
"exit-cb": handler Callback for when the job ends. The arguments are the
job and the exit status.
TODO: *job-killonexit*
"killonexit": 1 Stop the job when Vim exits.
"killonexit": 0 Do not stop the job when Vim exits.
The default is 1.
TODO: *job-term*
"term": "open" Start a terminal and connect the job
stdin/stdout/stderr to it.
TODO: *job-in-io*
"in-io": "null" disconnect stdin
"in-io": "pipe" stdin is connected to the channel (default)
"in-io": "file" stdin reads from a file
"in-file": "/path/file" the file to read from
TODO: *job-out-io*
"out-io": "null" disconnect stdout
"out-io": "pipe" stdout is connected to the channel (default)
"out-io": "file" stdout writes to a file
"out-file": "/path/file" the file to write to
"out-io": "buffer" stdout appends to a buffer
"out-buffer": "name" buffer to append to
TODO: *job-err-io*
"err-io": "out" same as stdout (default)
"err-io": "null" disconnect stderr
"err-io": "pipe" stderr is connected to the channel
"err-io": "file" stderr writes to a file
"err-file": "/path/file" the file to write to
"err-io": "buffer" stderr appends to a buffer
"err-buffer": "name" buffer to append to
TODO: more options
==============================================================================
11. Controlling a job *job-control*
To get the status of a job: >
echo job_status(job)
To make a job stop running: >
job_stop(job)
This is the normal way to end a job. On Unix it sends a SIGTERM to the job.
It is possible to use other ways to stop the job, or even send arbitrary
signals. E.g. to force a job to stop, "kill it": >
job_stop(job, "kill")
For more options see |job_stop()|.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.4. Last change: 2016 Feb 01 *editing.txt* For Vim version 7.4. Last change: 2016 Feb 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -403,16 +403,21 @@ Note there are some commands where this works slightly differently, see
Example: > Example: >
:n **/*.txt :n **/*.txt
Finds files: Finds files:
ttt.txt aaa.txt ~
subdir/ttt.txt subdir/bbb.txt ~
a/b/c/d/ttt.txt a/b/c/d/ccc.txt ~
When non-wildcard characters are used these are only matched in the first When non-wildcard characters are used right before or after "**" these are
directory. Example: > only matched in the top directory. They are not used for directories further
:n /usr/inc**/*.h down in the tree. For example: >
:n /usr/inc**/types.h
Finds files: Finds files:
/usr/include/types.h /usr/include/types.h ~
/usr/include/sys/types.h /usr/include/sys/types.h ~
/usr/inc_old/types.h /usr/inc/old/types.h ~
Note that the path with "/sys" is included because it does not need to match
"/inc". Thus it's like matching "/usr/inc*/*/*...", not
"/usr/inc*/inc*/inc*".
*backtick-expansion* *`-expansion* *backtick-expansion* *`-expansion*
On Unix and a few other systems you can also use backticks for the file name On Unix and a few other systems you can also use backticks for the file name
argument, for example: > argument, for example: >

View File

@ -37,7 +37,7 @@ done, the features in this document are not available. See |+eval| and
1.1 Variable types ~ 1.1 Variable types ~
*E712* *E712*
There are eight types of variables: There are nine types of variables:
Number A 32 or 64 bit signed number. |expr-number| *Number* Number A 32 or 64 bit signed number. |expr-number| *Number*
Examples: -123 0x10 0177 Examples: -123 0x10 0177
@ -61,7 +61,9 @@ Funcref A reference to a function |Funcref|.
Special v:false, v:true, v:none and v:null Special v:false, v:true, v:none and v:null
Job Used for job control, see |job_start()|. Job Used for a job, see |job_start()|.
Channel Used for a channel, see |ch_open()|.
The Number and String types are converted automatically, depending on how they The Number and String types are converted automatically, depending on how they
are used. are used.
@ -100,7 +102,7 @@ Note that in the command >
use empty(): > use empty(): >
:if !empty("foo") :if !empty("foo")
< <
*E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913*
List, Dictionary, Funcref and Job types are not automatically converted. List, Dictionary, Funcref and Job types are not automatically converted.
*E805* *E806* *E808* *E805* *E806* *E808*
@ -108,7 +110,7 @@ When mixing Number and Float the Number is converted to Float. Otherwise
there is no automatic conversion of Float. You can use str2float() for String there is no automatic conversion of Float. You can use str2float() for String
to Float, printf() for Float to String and float2nr() for Float to Number. to Float, printf() for Float to String and float2nr() for Float to Number.
*E891* *E892* *E893* *E894* *E907* *E911* *E891* *E892* *E893* *E894* *E907* *E911* *E914*
When expecting a Float a Number can also be used, but nothing else. When expecting a Float a Number can also be used, but nothing else.
*E706* *sticky-type-checking* *E706* *sticky-type-checking*
@ -1823,6 +1825,7 @@ ch_sendexpr( {handle}, {expr} [, {callback}])
any send {expr} over JSON channel {handle} any send {expr} over JSON channel {handle}
ch_sendraw( {handle}, {string} [, {callback}]) ch_sendraw( {handle}, {string} [, {callback}])
any send {string} over raw channel {handle} any send {string} over raw channel {handle}
ch_status( {handle}) String status of channel {handle}
changenr() Number current change number changenr() Number current change number
char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr} char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
cindent( {lnum}) Number C indent for line {lnum} cindent( {lnum}) Number C indent for line {lnum}
@ -1955,6 +1958,7 @@ invert( {expr}) Number bitwise invert
isdirectory( {directory}) Number TRUE if {directory} is a directory isdirectory( {directory}) Number TRUE if {directory} is a directory
islocked( {expr}) Number TRUE if {expr} is locked islocked( {expr}) Number TRUE if {expr} is locked
items( {dict}) List key-value pairs in {dict} items( {dict}) List key-value pairs in {dict}
job_getchannel( {job}) Number get the channel handle for {job}
job_start( {command} [, {options}]) Job start a job job_start( {command} [, {options}]) Job start a job
job_status( {job}) String get the status of a job job_status( {job}) String get the status of a job
job_stop( {job} [, {how}]) Number stop a job job_stop( {job} [, {how}]) Number stop a job
@ -2684,9 +2688,13 @@ ch_close({handle}) *ch_close()*
ch_logfile( {fname} [, {mode}]) *ch_logfile()* ch_logfile( {fname} [, {mode}]) *ch_logfile()*
Start logging channel activity to {fname}. Start logging channel activity to {fname}.
When {fname} is an empty string: stop logging.
When {mode} is omitted or "a" append to the file. When {mode} is omitted or "a" append to the file.
When {mode} is "w" start with an empty file. When {mode} is "w" start with an empty file.
When {fname} is an empty string: stop logging.
The file is flushed after every message, on Unix you can use
"tail -f" to see what is going on in real time.
ch_open({address} [, {argdict}]) *ch_open()* ch_open({address} [, {argdict}]) *ch_open()*
Open a channel to {address}. See |channel|. Open a channel to {address}. See |channel|.
@ -2742,6 +2750,12 @@ ch_sendraw({handle}, {string} [, {callback}]) *ch_sendraw()*
{only available when compiled with the |+channel| feature} {only available when compiled with the |+channel| feature}
ch_status({handle}) *ch_status()*
Return the status of channel {handle}:
"fail" failed to open the channel
"open" channel can be used
"closed" channel can not be used
*copy()* *copy()*
copy({expr}) Make a copy of {expr}. For Numbers and Strings this isn't copy({expr}) Make a copy of {expr}. For Numbers and Strings this isn't
different from using {expr} directly. different from using {expr} directly.
@ -2938,6 +2952,7 @@ empty({expr}) *empty()*
- A Number and Float is empty when its value is zero. - A Number and Float is empty when its value is zero.
- |v:false|, |v:none| and |v:null| are empty, |v:true| is not. - |v:false|, |v:none| and |v:null| are empty, |v:true| is not.
- A Job is empty when it failed to start. - A Job is empty when it failed to start.
- A Channel is empty when it is closed.
For a long |List| this is much faster than comparing the For a long |List| this is much faster than comparing the
length with zero. length with zero.
@ -4334,6 +4349,10 @@ items({dict}) *items()*
order. order.
job_getchannel({job}) *job_getchannel()*
Get the channel handle that {job} is using.
{only available when compiled with the |+job| feature}
job_start({command} [, {options}]) *job_start()* job_start({command} [, {options}]) *job_start()*
Start a job and return a Job object. Unlike |system()| and Start a job and return a Job object. Unlike |system()| and
|:!cmd| this does not wait for the job to finish. |:!cmd| this does not wait for the job to finish.
@ -6838,6 +6857,7 @@ type({expr}) The result is a Number, depending on the type of {expr}:
Boolean: 6 (v:false and v:true) Boolean: 6 (v:false and v:true)
None 7 (v:null and v:none) None 7 (v:null and v:none)
Job 8 Job 8
Channel 9
To avoid the magic numbers it should be used this way: > To avoid the magic numbers it should be used this way: >
:if type(myvar) == type(0) :if type(myvar) == type(0)
:if type(myvar) == type("") :if type(myvar) == type("")

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2016 Feb 01 *options.txt* For Vim version 7.4. Last change: 2016 Feb 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -3096,17 +3096,17 @@ A jump table for the options with a short description can be found at |Q_op|.
item default Used for ~ item default Used for ~
stl:c ' ' or '^' statusline of the current window stl:c ' ' or '^' statusline of the current window
stlnc:c ' ' or '-' statusline of the non-current windows stlnc:c ' ' or '=' statusline of the non-current windows
vert:c '|' vertical separators |:vsplit| vert:c '|' vertical separators |:vsplit|
fold:c '-' filling 'foldtext' fold:c '-' filling 'foldtext'
diff:c '-' deleted lines of the 'diff' option diff:c '-' deleted lines of the 'diff' option
Any one that is omitted will fall back to the default. For "stl" and 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 '-' "stlnc" the space will be used when there is highlighting, '^' or '='
otherwise. otherwise.
Example: > 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 < This is similar to the default, except that these characters will also
be used when there is highlighting. be used when there is highlighting.
@ -7571,6 +7571,7 @@ A jump table for the options with a short description can be found at |Q_op|.
non-keyword characters (white space is preferred). Maximum line non-keyword characters (white space is preferred). Maximum line
length is 510 bytes. length is 510 bytes.
To obtain a file to be used here, check out this ftp site: To obtain a file to be used here, check out this ftp site:
[Sorry this link doesn't work anymore, do you know the right one?]
ftp://ftp.ox.ac.uk/pub/wordlists/ First get the README file. ftp://ftp.ox.ac.uk/pub/wordlists/ First get the README file.
To include a comma in a file name precede it with a backslash. Spaces To include a comma in a file name precede it with a backslash. Spaces
after a comma are ignored, otherwise spaces are included in the file after a comma are ignored, otherwise spaces are included in the file

View File

@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.4. Last change: 2016 Jan 16 *repeat.txt* For Vim version 7.4. Last change: 2016 Feb 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -490,7 +490,7 @@ Additionally, these commands can be used:
bt bt
where where
*>frame* *>frame*
frame N Goes to N bactrace level. + and - signs make movement frame N Goes to N backtrace level. + and - signs make movement
relative. E.g., ":frame +3" goes three frames up. relative. E.g., ":frame +3" goes three frames up.
*>up* *>up*
up Goes one level up from call stacktrace. up Goes one level up from call stacktrace.

View File

@ -9,6 +9,7 @@ $MYVIMRC starting.txt /*$MYVIMRC*
$VIM starting.txt /*$VIM* $VIM starting.txt /*$VIM*
$VIM-use version5.txt /*$VIM-use* $VIM-use version5.txt /*$VIM-use*
$VIMRUNTIME starting.txt /*$VIMRUNTIME* $VIMRUNTIME starting.txt /*$VIMRUNTIME*
$VIM_POSIX vi_diff.txt /*$VIM_POSIX*
% motion.txt /*%* % motion.txt /*%*
%:. cmdline.txt /*%:.* %:. cmdline.txt /*%:.*
%:8 cmdline.txt /*%:8* %:8 cmdline.txt /*%:8*
@ -1218,6 +1219,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
+iconv various.txt /*+iconv* +iconv various.txt /*+iconv*
+iconv/dyn various.txt /*+iconv\/dyn* +iconv/dyn various.txt /*+iconv\/dyn*
+insert_expand various.txt /*+insert_expand* +insert_expand various.txt /*+insert_expand*
+job various.txt /*+job*
+jumplist various.txt /*+jumplist* +jumplist various.txt /*+jumplist*
+keymap various.txt /*+keymap* +keymap various.txt /*+keymap*
+langmap various.txt /*+langmap* +langmap various.txt /*+langmap*
@ -4443,6 +4445,8 @@ E91 options.txt /*E91*
E910 eval.txt /*E910* E910 eval.txt /*E910*
E911 eval.txt /*E911* E911 eval.txt /*E911*
E912 eval.txt /*E912* E912 eval.txt /*E912*
E913 eval.txt /*E913*
E914 eval.txt /*E914*
E92 message.txt /*E92* E92 message.txt /*E92*
E93 windows.txt /*E93* E93 windows.txt /*E93*
E94 windows.txt /*E94* E94 windows.txt /*E94*
@ -5164,9 +5168,12 @@ cc change.txt /*cc*
ceil() eval.txt /*ceil()* ceil() eval.txt /*ceil()*
ch.vim syntax.txt /*ch.vim* ch.vim syntax.txt /*ch.vim*
ch_close() eval.txt /*ch_close()* ch_close() eval.txt /*ch_close()*
ch_logfile() eval.txt /*ch_logfile()*
ch_open() eval.txt /*ch_open()* ch_open() eval.txt /*ch_open()*
ch_readraw() eval.txt /*ch_readraw()*
ch_sendexpr() eval.txt /*ch_sendexpr()* ch_sendexpr() eval.txt /*ch_sendexpr()*
ch_sendraw() eval.txt /*ch_sendraw()* ch_sendraw() eval.txt /*ch_sendraw()*
ch_status() eval.txt /*ch_status()*
change-list-jumps motion.txt /*change-list-jumps* change-list-jumps motion.txt /*change-list-jumps*
change-name tips.txt /*change-name* change-name tips.txt /*change-name*
change-tabs change.txt /*change-tabs* change-tabs change.txt /*change-tabs*
@ -5197,6 +5204,7 @@ channel-callback channel.txt /*channel-callback*
channel-commands channel.txt /*channel-commands* channel-commands channel.txt /*channel-commands*
channel-demo channel.txt /*channel-demo* channel-demo channel.txt /*channel-demo*
channel-mode channel.txt /*channel-mode* channel-mode channel.txt /*channel-mode*
channel-more channel.txt /*channel-more*
channel-open channel.txt /*channel-open* channel-open channel.txt /*channel-open*
channel-raw channel.txt /*channel-raw* channel-raw channel.txt /*channel-raw*
channel-use channel.txt /*channel-use* channel-use channel.txt /*channel-use*
@ -5564,6 +5572,7 @@ dip motion.txt /*dip*
dircolors.vim syntax.txt /*dircolors.vim* dircolors.vim syntax.txt /*dircolors.vim*
dis motion.txt /*dis* dis motion.txt /*dis*
disable-menus gui.txt /*disable-menus* disable-menus gui.txt /*disable-menus*
disable_char_avail_for_testing() eval.txt /*disable_char_avail_for_testing()*
discard editing.txt /*discard* discard editing.txt /*discard*
distribute-script usr_41.txt /*distribute-script* distribute-script usr_41.txt /*distribute-script*
distribution intro.txt /*distribution* distribution intro.txt /*distribution*
@ -6817,16 +6826,32 @@ java-indenting indent.txt /*java-indenting*
java.vim syntax.txt /*java.vim* java.vim syntax.txt /*java.vim*
javascript-cinoptions indent.txt /*javascript-cinoptions* javascript-cinoptions indent.txt /*javascript-cinoptions*
javascript-indenting indent.txt /*javascript-indenting* javascript-indenting indent.txt /*javascript-indenting*
job channel.txt /*job*
job-channel-overview channel.txt /*job-channel-overview*
job-close-cb channel.txt /*job-close-cb*
job-control channel.txt /*job-control* job-control channel.txt /*job-control*
job-err-cb channel.txt /*job-err-cb*
job-err-io channel.txt /*job-err-io*
job-exit-cb channel.txt /*job-exit-cb*
job-in-io channel.txt /*job-in-io*
job-killonexit channel.txt /*job-killonexit*
job-may-start channel.txt /*job-may-start*
job-options channel.txt /*job-options*
job-out-cb channel.txt /*job-out-cb*
job-out-io channel.txt /*job-out-io*
job-start channel.txt /*job-start*
job-start-nochannel channel.txt /*job-start-nochannel*
job-term channel.txt /*job-term*
job_getchannel() eval.txt /*job_getchannel()*
job_start() eval.txt /*job_start()* job_start() eval.txt /*job_start()*
job_status() eval.txt /*job_status()* job_status() eval.txt /*job_status()*
job_stop() eval.txt /*job_stop()* job_stop() eval.txt /*job_stop()*
join() eval.txt /*join()* join() eval.txt /*join()*
js_decode() eval.txt /*js_decode()*
js_encode() eval.txt /*js_encode()*
jsbterm-mouse options.txt /*jsbterm-mouse* jsbterm-mouse options.txt /*jsbterm-mouse*
jsdecode() eval.txt /*jsdecode()* json_decode() eval.txt /*json_decode()*
jsencode() eval.txt /*jsencode()* json_encode() eval.txt /*json_encode()*
jsondecode() eval.txt /*jsondecode()*
jsonencode() eval.txt /*jsonencode()*
jtags tagsrch.txt /*jtags* jtags tagsrch.txt /*jtags*
jump-motions motion.txt /*jump-motions* jump-motions motion.txt /*jump-motions*
jumplist motion.txt /*jumplist* jumplist motion.txt /*jumplist*
@ -8582,6 +8607,7 @@ undo-tree undo.txt /*undo-tree*
undo-two-ways undo.txt /*undo-two-ways* undo-two-ways undo.txt /*undo-two-ways*
undo.txt undo.txt /*undo.txt* undo.txt undo.txt /*undo.txt*
undo_ftplugin usr_41.txt /*undo_ftplugin* undo_ftplugin usr_41.txt /*undo_ftplugin*
undo_indent usr_41.txt /*undo_indent*
undofile() eval.txt /*undofile()* undofile() eval.txt /*undofile()*
undotree() eval.txt /*undotree()* undotree() eval.txt /*undotree()*
unicode mbyte.txt /*unicode* unicode mbyte.txt /*unicode*

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2016 Feb 07 *todo.txt* For Vim version 7.4. Last change: 2016 Feb 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -34,6 +34,100 @@ not be repeated below, unless there is extra information.
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
+channel:
- Move netbeans NL handling to channel.c, use it for NL mode channel
- ch_open fails when socket isn't present yet. (Marcin Szamotulski)
Retry when error is "connection refused".
- channel test waittime is disabled for MS-Windows, causes a crash.
- channel needs both stdout and stderr (GUI implementation)
- implement TODO items in ":help channel":
- implement ch_setoptions(handle, {options})
- job_setoptions(job, {options})
- ch_close() closes stdin/stdout/stderr
- out-cb
- err-cb
- exit-cb move code from mch_clear_job()
- job argument: killonexit
- ch_read() for stderr
- ch_getjob(handle)
- ch_read(handle [, timeout])
- ch_readall(handle [, timeout])
- job_info() should remove usable info: process ID, run/dead, etc.
- job_maystart()
- job_gethandle(), job_sethandle()
- add ch_status(): Whether channel is open. Perhaps also mode, timeout.
- When channel closes invoke "close-cb".
- 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
discarded.
- When message in queue but there is no callback, drop it after a while?
- Crash when closing channel after ch_sendexpr() with callback and outstanding
request (Christian Robinson).
- cleanup on exit? in mch_getout() and getout().
- On Mac a 1 msec waittime is needed in ch_open(), why?
- Add more log calls, basically at every branch, before every callback, etc.
- Add timestamp to queued messages and callbacks with ID, remove after a
minute.
- add remark about undo sync, is there a way to force it?
- When starting a job, have an option to open the server socket, so we know
the port, and pass it to the command with --socket-fd {nr}. (Olaf Dabrunz,
Feb 9) How to do this on MS-Windows?
- Add more unit-testing in json_test.c
- Add a test where ["eval","getline(123)"] gets a line with special
characters (NUL, 0x80, etc.). Check that it isn't garbled.
- make sure errors lead to a useful error msg. ["ex","foobar"]
- json: implement UTF-16 surrogate pair.
- For connection to server, a "keep open" flag would be useful. Retry
connecting in the main loop with zero timeout.
More plugin support:
- Have a way to install a callback from the main loop. Called every second or
so.
- Need way to uniquely identify a window, no matter how windows are
rearranged. Same for tab pages.
getwinid() ID of current winow
getwinid({nr}) ID of window {nr}
getwinid({nr}, {tab}) ID of window {nr} in tab page {tab}
getwinnr({id}) window nr of {id} or -1 if not open
gettabnr({id}) tab page nr of {id} or -1 if not open
gotowin({id})
Make it so that the window ID can be used where currently a window nr is used
Patch on #608: (Ken Takata)
https://bitbucket.org/k_takata/vim-ktakata-mq/src/479934b94fd56b064c9e4bd8737585c5df69d56a/fix-gvimext-loadlibrary.patch?fileviewer=file-view-default
This difference is unexpected:
echo v:true == 1
1
echo [v:true] == [1]
0
It's because tv_equal() works different.
Add "runtime/bundles" ?
runtime/bundles/netrw/spec.vim
runtime/bundles/netrw/autoload/netrw.vim
runtime/bundles/netrw/syntax/netrw.vim
etc.
Need an alternative for 'runtimepath' that tells where bundles are to be
found. 'bundlepath' ?
The plugins under 'bundlepath' would always be loaded. Also have a path for
optional plugins? 'optbundlepath'? Or have directories "bundlesdef" and
"bundlesopt"?
Then use a command "loadplugin" to find a plugin in "optional".
"bundles" is used by some plugin managers, need another name. "packages"?
Add a "requires" / "provides" mechanism?
if my_feature_enabled
require +python
endif
require my_other_plugin
~/vim/packages/netrw/def/netrw/plugin/netrw.vim
~/vim/packages/netrw/opt/nwdebug/plugin/nwdebug.vim
Why does this: echo "a" . 1.1
result in: a11
Should recognize float (so long as it's not ".1.1").
Allow for an empty dictionary key.
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
remote expression or something else. Move global variables onto the stack remote expression or something else. Move global variables onto the stack
@ -76,53 +170,8 @@ Regexp problems:
matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24) matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
- Search for \\~ causes error E874. - Search for \\~ causes error E874.
- "\%1l^#.*" does not match on a line starting with "#". The zero-width match Also include update_curswant() fix for getcurpos(). (Christian Brabandt, 2016
clears the start-of-line flag. Feb 9)
Patch by Christian, 2016 Jan 29.
+channel:
- implement job control:
job argument: redirect stdin/stdout
job argument: killonexit
let job = job_maystart('command', {address}, {options})
- When receiving malformed json starting with a quote it doesn't get
discarded.
- add ch_status(): Whether channel is open. Perhaps also mode, timeout.
When channel closes invoke channel callback.
- add ch_setcallback()
- add ch_settimeout()
- cleanup on exit? in mch_getout() and getout().
- Add a test for the channel callback.
- implement debug log
- Add timestamp to queued messages and callbacks with ID, remove after a
minute.
- add remark about undo sync, is there a way to force it?
- Add more testing in json_test.c
- make sure errors lead to a useful error msg. ["ex","foobar"]
- json: implement UTF-16 surrogate pair.
- Need way to uniquely identify a window, no matter how windows are
rearranged. Same for tab pages.
getwinid() ID of current winow
getwinid({nr}) ID of window {nr}
getwinid({nr}, {tab}) ID of window {nr} in tab page {tab}
getwinnr({id}) window nr of {id} or -1 if not open
gettabnr({id}) tab page nr of {id} or -1 if not open
gotowin({id})
Make it so that the window ID can be used where currently a window nr is used
- For connection to server, a "keep open" flag would be useful. Retry
connecting in the main loop with zero timeout.
Patch on #608: (Ken Takata)
https://bitbucket.org/k_takata/vim-ktakata-mq/src/479934b94fd56b064c9e4bd8737585c5df69d56a/fix-gvimext-loadlibrary.patch?fileviewer=file-view-default
This difference is unexpected:
echo v:true == 1
1
echo [v:true] == [1]
0
It's because tv_equal() works different.
Allow for an empty dictionary key.
Patch to put undo options together in undo window. Patch to put undo options together in undo window.
(Gary Johnson, 2016 Jan 28) (Gary Johnson, 2016 Jan 28)
@ -221,8 +270,14 @@ Patch to fix display of listchars on the cursorline. (Nayuri Aohime, 2013)
Update suggested by Yasuhiro Matsumoto, 2014 Nov 25: Update suggested by Yasuhiro Matsumoto, 2014 Nov 25:
https://gist.github.com/presuku/d3d6b230b9b6dcfc0477 https://gist.github.com/presuku/d3d6b230b9b6dcfc0477
Patch to make the behavior of "w" more straightforward, but not Vi compatible.
With a 'cpo' flag. (Christian Brabandt, 2016 Feb 8)
Patch to add TagNotFound autocommand. (Anton Lindqvist, 2016 Feb 3) Patch to add TagNotFound autocommand. (Anton Lindqvist, 2016 Feb 3)
Patch to add Error autocommand. (Anton Lindqvist, 2016 Feb 14)
Only remembers one error.
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28) Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab. Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
@ -271,7 +326,7 @@ Can we cache the syntax attributes, so that updates for 'relativenumber' and
Build with Python on Mac does not always use the right library. Build with Python on Mac does not always use the right library.
(Kazunobu Kuriyama, 2015 Mar 28) (Kazunobu Kuriyama, 2015 Mar 28)
Patch to add GTK 3 support. (Kazunobu Kuriyama, 2016 Feb 6) Patch to add GTK 3 support. (Kazunobu Kuriyama, 2016 Feb 13)
Does not fully work yet. Does not fully work yet.
Need a Vim equivalent of Python's None and a way to test for it. Need a Vim equivalent of Python's None and a way to test for it.
@ -497,7 +552,7 @@ Bug: Autocompleting ":tag/pat" replaces "/pat" with a match but does not
insert a space. (Micha Mos, 2014 Nov 7) insert a space. (Micha Mos, 2014 Nov 7)
Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12) Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)
Update Dec 6. Updated 2016 Feb 10
Patch to add argument to :cquit. (Thinca, 2014 Oct 12) Patch to add argument to :cquit. (Thinca, 2014 Oct 12)

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 7.4. Last change: 2016 Feb 02 *usr_41.txt* For Vim version 7.4. Last change: 2016 Feb 14
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -2235,7 +2235,7 @@ This construct makes sure the function is only defined once: >
:endif :endif
< <
UNDO *undo_ftplugin* UNDO *undo_indent* *undo_ftplugin*
When the user does ":setfiletype xyz" the effect of the previous filetype When the user does ":setfiletype xyz" the effect of the previous filetype
should be undone. Set the b:undo_ftplugin variable to the commands that will should be undone. Set the b:undo_ftplugin variable to the commands that will
@ -2250,6 +2250,9 @@ global value. That is mostly the best way to reset the option value.
This does require removing the "C" flag from 'cpoptions' to allow line This does require removing the "C" flag from 'cpoptions' to allow line
continuation, as mentioned above |use-cpo-save|. continuation, as mentioned above |use-cpo-save|.
For undoing the effect of an indent script, the b:undo_indent variable should
be set accordingly.
FILE NAME FILE NAME

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 7.4. Last change: 2016 Jan 31 *various.txt* For Vim version 7.4. Last change: 2016 Feb 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -358,6 +358,7 @@ m *+hangul_input* Hangul input support |hangul|
*+iconv* Compiled with the |iconv()| function *+iconv* Compiled with the |iconv()| function
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn| *+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
N *+insert_expand* |insert_expand| Insert mode completion N *+insert_expand* |insert_expand| Insert mode completion
m *+job* starting and stopping jobs |job|
N *+jumplist* |jumplist| N *+jumplist* |jumplist|
B *+keymap* |'keymap'| B *+keymap* |'keymap'|
B *+langmap* |'langmap'| B *+langmap* |'langmap'|

View File

@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 7.4. Last change: 2015 Nov 01 *vi_diff.txt* For Vim version 7.4. Last change: 2016 Feb 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -960,7 +960,7 @@ Only Vim is able to accept options in between and after the file names.
In 2005 the POSIX test suite was run to check the compatibility of Vim. Most In 2005 the POSIX test suite was run to check the compatibility of Vim. Most
of the test was executed properly. There are the few things where Vim of the test was executed properly. There are the few things where Vim
is not POSIX compliant, even when run in Vi compatibility mode. is not POSIX compliant, even when run in Vi compatibility mode.
*$VIM_POSIX*
Set the $VIM_POSIX environment variable to have 'cpoptions' include the POSIX Set the $VIM_POSIX environment variable to have 'cpoptions' include the POSIX
flags when Vim starts up. This makes Vim run as POSIX as it can. That's flags when Vim starts up. This makes Vim run as POSIX as it can. That's
a bit different from being Vi compatible. a bit different from being Vi compatible.

View File

@ -1,6 +1,6 @@
" Vim plugin for showing matching parens " Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2015 Dec 31 " Last Change: 2016 Feb 09
" Exit quickly when: " Exit quickly when:
" - this plugin was already loaded (or disabled) " - this plugin was already loaded (or disabled)
@ -97,6 +97,7 @@ function! s:Highlight_Matching_Pair()
if has_getcurpos if has_getcurpos
" getcurpos() is more efficient but doesn't exist before 7.4.313. " getcurpos() is more efficient but doesn't exist before 7.4.313.
let save_cursor = getcurpos() let save_cursor = getcurpos()
let g:saved_cursor = save_cursor
else else
let save_cursor = winsaveview() let save_cursor = winsaveview()
endif endif

View File

@ -1,7 +1,7 @@
" Vim syntax file " Vim syntax file
" Language: C " Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2015 Mar 05 " Last Change: 2016 Feb 08
" Quit when a (custom) syntax file was already loaded " Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")
@ -264,7 +264,7 @@ syn keyword cStorageClass static register auto volatile extern const
if exists("c_gnu") if exists("c_gnu")
syn keyword cStorageClass inline __attribute__ syn keyword cStorageClass inline __attribute__
endif endif
if !exists("c_no_c99") if !exists("c_no_c99") && s:ft !=# 'cpp'
syn keyword cStorageClass inline restrict syn keyword cStorageClass inline restrict
endif endif
if !exists("c_no_c11") if !exists("c_no_c11")

View File

@ -23,8 +23,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Vim(Esperanto)\n" "Project-Id-Version: Vim(Esperanto)\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-07-30 17:54+0200\n" "POT-Creation-Date: 2016-02-13 23:42+0100\n"
"PO-Revision-Date: 2015-07-30 18:00+0200\n" "PO-Revision-Date: 2016-02-13 23:45+0100\n"
"Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>\n" "Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: eo\n" "Language: eo\n"
@ -215,6 +215,18 @@ msgstr "Emfazaj simbolaĵoj de %s:"
msgid " line=%ld id=%d name=%s" msgid " line=%ld id=%d name=%s"
msgstr " linio=%ld id=%d nomo=%s" msgstr " linio=%ld id=%d nomo=%s"
msgid "E897: All channels are in use"
msgstr "E897: Ĉiuj kanaloj estas uzataj"
msgid "E902: Cannot connect to port"
msgstr "E902: Ne eblas konekti al pordo"
msgid "E899: Cannot connect to port after retry2"
msgstr "E899: Ne eblas konekti al pordo post 2 reprovoj"
msgid "E896: read from channel"
msgstr "E896: lego el kanalo"
msgid "E821: File is encrypted with unknown method" msgid "E821: File is encrypted with unknown method"
msgstr "E821: Dosiero estas ĉifrata per nekonata metodo" msgstr "E821: Dosiero estas ĉifrata per nekonata metodo"
@ -412,9 +424,6 @@ msgstr "E686: Argumento de %s devas esti Listo"
msgid "E712: Argument of %s must be a List or Dictionary" msgid "E712: Argument of %s must be a List or Dictionary"
msgstr "E712: Argumento de %s devas esti Listo aŭ Vortaro" msgstr "E712: Argumento de %s devas esti Listo aŭ Vortaro"
msgid "E713: Cannot use empty key for Dictionary"
msgstr "E713: Ne eblas uzi malplenan ŝlosilon de Vortaro"
msgid "E714: List required" msgid "E714: List required"
msgstr "E714: Listo bezonata" msgstr "E714: Listo bezonata"
@ -529,6 +538,9 @@ msgstr "E110: Mankas ')'"
msgid "E695: Cannot index a Funcref" msgid "E695: Cannot index a Funcref"
msgstr "E695: Ne eblas indeksi Funcref" msgstr "E695: Ne eblas indeksi Funcref"
msgid "E909: Cannot index a special variable"
msgstr "E909: Ne eblas indeksi specialan variablon"
#, c-format #, c-format
msgid "E112: Option name missing: %s" msgid "E112: Option name missing: %s"
msgstr "E112: Mankas nomo de opcio: %s" msgstr "E112: Mankas nomo de opcio: %s"
@ -554,7 +566,7 @@ msgid "E697: Missing end of List ']': %s"
msgstr "E697: Mankas fino de Listo ']': %s" msgstr "E697: Mankas fino de Listo ']': %s"
msgid "Not enough memory to set references, garbage collection aborted!" msgid "Not enough memory to set references, garbage collection aborted!"
msgstr "Ne sufiĉa memory por valorigi referencojn, senrubigado ĉesigita!" msgstr "Ne sufiĉa memoro por valorigi referencojn, senrubigado ĉesigita!"
#, c-format #, c-format
msgid "E720: Missing colon in Dictionary: %s" msgid "E720: Missing colon in Dictionary: %s"
@ -608,6 +620,15 @@ msgstr "argumento de add()"
msgid "E699: Too many arguments" msgid "E699: Too many arguments"
msgstr "E699: Tro da argumentoj" msgstr "E699: Tro da argumentoj"
msgid "E906: not an open channel"
msgstr "E906: ne estas malfermita kanalo"
msgid "E999: Invalid callback argument"
msgstr "E999: Nevalida argumento de reagfunctio"
msgid "E912: cannot use ch_sendexpr() with a raw channel"
msgstr "E912: ne eblas uzi ch_sendexpr() kun kruda kanalo"
msgid "E785: complete() can only be used in Insert mode" msgid "E785: complete() can only be used in Insert mode"
msgstr "E785: complete() uzeblas nur en Enmeta reĝimo" msgstr "E785: complete() uzeblas nur en Enmeta reĝimo"
@ -720,6 +741,33 @@ msgstr "E745: Uzo de Listo kiel Nombro"
msgid "E728: Using a Dictionary as a Number" msgid "E728: Using a Dictionary as a Number"
msgstr "E728: Uzo de Vortaro kiel Nombro" msgstr "E728: Uzo de Vortaro kiel Nombro"
msgid "E910: Using a Job as a Number"
msgstr "E910: Uzo de Tasko kiel Nombro"
msgid "E913: Using a Channel as a Number"
msgstr "E913: Uzo de Kanalo kiel Nombro"
msgid "E891: Using a Funcref as a Float"
msgstr "E891: Uzo de Funcref kiel Glitpunktnombro"
msgid "E892: Using a String as a Float"
msgstr "E892: Uzo de Ĉeno kiel Glitpunktnombro"
msgid "E893: Using a List as a Float"
msgstr "E893: Uzo de Listo kiel Glitpunktnombro"
msgid "E894: Using a Dictionary as a Float"
msgstr "E894: Uzo de Vortaro kiel Glitpunktnombro"
msgid "E907: Using a special value as a Float"
msgstr "E907: Uzo de speciala valoro kiel Glitpunktnombro"
msgid "E911: Using a Job as a Float"
msgstr "E911: Uzo de Tasko kiel Glitpunktnombro"
msgid "E914: Using a Channel as a Float"
msgstr "E914: Uzo de Kanalo kiel Glitpunktnombro"
msgid "E729: using Funcref as a String" msgid "E729: using Funcref as a String"
msgstr "E729: uzo de Funcref kiel Ĉeno" msgstr "E729: uzo de Funcref kiel Ĉeno"
@ -729,6 +777,9 @@ msgstr "E730: uzo de Listo kiel Ĉeno"
msgid "E731: using Dictionary as a String" msgid "E731: using Dictionary as a String"
msgstr "E731: uzo de Vortaro kiel Ĉeno" msgstr "E731: uzo de Vortaro kiel Ĉeno"
msgid "E908: using an invalid value as a String"
msgstr "E908: uzo de nevalida valoro kiel Ĉeno"
#, c-format #, c-format
msgid "E706: Variable type mismatch for: %s" msgid "E706: Variable type mismatch for: %s"
msgstr "E706: Nekongrua datumtipo de variablo: %s" msgstr "E706: Nekongrua datumtipo de variablo: %s"
@ -941,6 +992,13 @@ msgstr "# Valoro de 'encoding' kiam tiu dosiero estis kreita\n"
msgid "Illegal starting char" msgid "Illegal starting char"
msgstr "Nevalida eka signo" msgstr "Nevalida eka signo"
msgid ""
"\n"
"# Bar lines, copied verbatim:\n"
msgstr ""
"\n"
"# Linioj komencantaj per |, kopiitaj sen ŝanĝo:\n"
msgid "Save As" msgid "Save As"
msgstr "Konservi kiel" msgstr "Konservi kiel"
@ -1148,6 +1206,13 @@ msgstr "linio %ld: %s"
msgid "cmd: %s" msgid "cmd: %s"
msgstr "kmd: %s" msgstr "kmd: %s"
msgid "frame is zero"
msgstr "kadro estas nul"
#, c-format
msgid "frame at highest level: %d"
msgstr "kadro je la plej alta nivelo: %d"
#, c-format #, c-format
msgid "Breakpoint in \"%s%s\" line %ld" msgid "Breakpoint in \"%s%s\" line %ld"
msgstr "Kontrolpunkto en \"%s%s\" linio %ld" msgstr "Kontrolpunkto en \"%s%s\" linio %ld"
@ -2624,6 +2689,13 @@ msgstr ""
"E815: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la " "E815: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la "
"bibliotekojn." "bibliotekojn."
msgid ""
"E895: Sorry, this command is disabled, the MzScheme's racket/base module "
"could not be loaded."
msgstr ""
"E895: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la modulon de "
"MzScheme racket/base."
msgid "invalid expression" msgid "invalid expression"
msgstr "nevalida esprimo" msgstr "nevalida esprimo"
@ -3801,15 +3873,12 @@ msgid ""
"\n" "\n"
"(1) Another program may be editing the same file. If this is the case,\n" "(1) Another program may be editing the same file. If this is the case,\n"
" be careful not to end up with two different instances of the same\n" " be careful not to end up with two different instances of the same\n"
" file when making changes." " file when making changes. Quit, or continue with caution.\n"
msgstr "" msgstr ""
"\n" "\n"
"(1) Alia programo eble redaktas la saman dosieron.\n" "(1) Alia programo eble redaktas la saman dosieron. Se jes, estu singarda\n"
" Se jes, estu singarda por ne havi du malsamajn\n" " por ne havi du malsamajn aperojn de la sama dosiero, kiam vi faros\n"
" aperojn de la sama dosiero, kiam vi faros ŝanĝojn." " ŝanĝojn. Eliru aŭ daŭrigu singarde.\n"
msgid " Quit, or continue with caution.\n"
msgstr " Eliru, aŭ daŭrigu singarde.\n"
msgid "(2) An edit session for this file crashed.\n" msgid "(2) An edit session for this file crashed.\n"
msgstr "(2) Redakta seanco de tiu dosiero kolapsis.\n" msgstr "(2) Redakta seanco de tiu dosiero kolapsis.\n"
@ -4116,20 +4185,11 @@ msgstr "E346: Ne plu trovis dosierujon \"%s\" en cdpath"
msgid "E347: No more file \"%s\" found in path" msgid "E347: No more file \"%s\" found in path"
msgstr "E347: Ne plu trovis dosieron \"%s\" en serĉvojo" msgstr "E347: Ne plu trovis dosieron \"%s\" en serĉvojo"
msgid "Cannot connect to Netbeans #2"
msgstr "Ne eblas konekti al Netbeans n-ro 2"
msgid "Cannot connect to Netbeans"
msgstr "Ne eblas konekti al Netbeans"
#, c-format #, c-format
msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
msgstr "" msgstr ""
"E668: Nevalida permeso de dosiero de informo de konekto NetBeans: \"%s\"" "E668: Nevalida permeso de dosiero de informo de konekto NetBeans: \"%s\""
msgid "read from Netbeans socket"
msgstr "lego el kontaktoskatolo de Netbeans"
#, c-format #, c-format
msgid "E658: NetBeans connection lost for buffer %ld" msgid "E658: NetBeans connection lost for buffer %ld"
msgstr "E658: Konekto de NetBeans perdita por bufro %ld" msgstr "E658: Konekto de NetBeans perdita por bufro %ld"
@ -4584,18 +4644,14 @@ msgstr ""
"\n" "\n"
"Ne povis ŝalti kuntekston de sekureco por " "Ne povis ŝalti kuntekston de sekureco por "
msgid "Could not set security context " #, c-format
msgstr "Ne povis akiri kuntekston de sekureco " msgid "Could not set security context %s for %s"
msgstr "Ne povis ŝalti kuntekston de sekureco %s por %s"
msgid " for " #, c-format
msgstr " por " msgid "Could not get security context %s for %s. Removing it!"
msgstr ""
#. no enough size OR unexpected error "Ne povis akiri kuntekston de sekureco %s por %s. Gi nun estas forigata!"
msgid "Could not get security context "
msgstr "Ne povis akiri kuntekston de sekureco "
msgid ". Removing it!\n"
msgstr ". Ĝi estas foriganta!\n"
msgid "" msgid ""
"\n" "\n"
@ -5458,6 +5514,9 @@ msgstr "Neniu sintaksa elemento difinita por tiu bufro"
msgid "E390: Illegal argument: %s" msgid "E390: Illegal argument: %s"
msgstr "E390: Nevalida argumento: %s" msgstr "E390: Nevalida argumento: %s"
msgid "syntax iskeyword "
msgstr "sintakso iskeyword "
#, c-format #, c-format
msgid "E391: No such syntax cluster: %s" msgid "E391: No such syntax cluster: %s"
msgstr "E391: Nenia sintaksa fasko: %s" msgstr "E391: Nenia sintaksa fasko: %s"
@ -5534,6 +5593,10 @@ msgstr "E847: Tro da sintaksaj inkluzivoj"
msgid "E789: Missing ']': %s" msgid "E789: Missing ']': %s"
msgstr "E789: Mankas ']': %s" msgstr "E789: Mankas ']': %s"
#, c-format
msgid "E890: trailing char after ']': %s]%s"
msgstr "E890: vosta signo post ']': %s]%s"
#, c-format #, c-format
msgid "E398: Missing '=': %s" msgid "E398: Missing '=': %s"
msgstr "E398: Mankas '=': %s" msgstr "E398: Mankas '=': %s"
@ -6575,6 +6638,9 @@ msgstr "E46: Ne eblas ŝanĝi nurlegeblan variablon \"%s\""
msgid "E794: Cannot set variable in the sandbox: \"%s\"" msgid "E794: Cannot set variable in the sandbox: \"%s\""
msgstr "E794: Ne eblas agordi variablon en la sabloludejo: \"%s\"" msgstr "E794: Ne eblas agordi variablon en la sabloludejo: \"%s\""
msgid "E713: Cannot use empty key for Dictionary"
msgstr "E713: Ne eblas uzi malplenan ŝlosilon de Vortaro"
msgid "E47: Error while reading errorfile" msgid "E47: Error while reading errorfile"
msgstr "E47: Eraro dum legado de erardosiero" msgstr "E47: Eraro dum legado de erardosiero"

View File

@ -13,13 +13,13 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vim 7.4\n" "Project-Id-Version: vim 7.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-11 20:58+0200\n" "POT-Creation-Date: 2016-02-11 12:10+0100\n"
"PO-Revision-Date: 2015-08-11 22:02+0200\n" "PO-Revision-Date: 2016-02-11 14:42+0200\n"
"Last-Translator: Vlad Sandrini <vlad.gently@gmail.com>\n" "Last-Translator: Antonio Colombo <azc100@gmail.com>\n"
"Language-Team: Italian Antonio Colombo <azc100@gmail." "Language-Team: Antonio Colombo <azc100@gmail.com>"
"com> Vlad Sandrini <vlad.gently@gmail." " Vlad Sandrini <vlad.gently@gmail.com"
"com> Luciano Montanaro <mikelima@cirulla.net>\n" " Luciano Montanaro <mikelima@cirulla.net>\n"
"Language: \n" "Language: Italian\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO_8859-1\n" "Content-Type: text/plain; charset=ISO_8859-1\n"
"Content-Transfer-Encoding: 8-bit\n" "Content-Transfer-Encoding: 8-bit\n"
@ -204,6 +204,18 @@ msgstr "Segni per %s:"
msgid " line=%ld id=%d name=%s" msgid " line=%ld id=%d name=%s"
msgstr " riga=%ld id=%d, nome=%s" msgstr " riga=%ld id=%d, nome=%s"
msgid "E897: All channels are in use"
msgstr "E897: Tutti i canali sono in uso"
msgid "E902: Cannot connect to port"
msgstr "E902: Non posso commettermi alla porta"
msgid "E899: Cannot connect to port after retry2"
msgstr "E899: Non posso commettermi alla porta dopo retry2"
msgid "E896: read from channel"
msgstr "E896: lettura dal canale"
msgid "E821: File is encrypted with unknown method" msgid "E821: File is encrypted with unknown method"
msgstr "E821: File cifrato con metodo sconosciuto" msgstr "E821: File cifrato con metodo sconosciuto"
@ -400,9 +412,6 @@ msgstr "E686: L'argomento di %s deve essere una Lista"
msgid "E712: Argument of %s must be a List or Dictionary" msgid "E712: Argument of %s must be a List or Dictionary"
msgstr "E712: L'argomento di %s deve essere una Lista o un Dizionario" msgstr "E712: L'argomento di %s deve essere una Lista o un Dizionario"
msgid "E713: Cannot use empty key for Dictionary"
msgstr "E713: Non posso usare una chiave nulla per il Dizionario"
msgid "E714: List required" msgid "E714: List required"
msgstr "E714: <20> necessaria una Lista" msgstr "E714: <20> necessaria una Lista"
@ -444,7 +453,7 @@ msgstr "E461: Nome di variabile non ammesso: %s"
# nuovo # nuovo
msgid "E806: using Float as a String" msgid "E806: using Float as a String"
msgstr "E806: uso di un numero con virgola come stringa" msgstr "E806: uso di un Numero-a-virgola-mobile come Stringa"
msgid "E687: Less targets than List items" msgid "E687: Less targets than List items"
msgstr "E687: Destinazioni pi<70> numerose degli elementi di Lista" msgstr "E687: Destinazioni pi<70> numerose degli elementi di Lista"
@ -510,7 +519,7 @@ msgid "E694: Invalid operation for Funcrefs"
msgstr "E694: Operazione non valida per Funcref" msgstr "E694: Operazione non valida per Funcref"
msgid "E804: Cannot use '%' with Float" msgid "E804: Cannot use '%' with Float"
msgstr "E804: Non si pu<70> usare '%' con un numero con virgola" msgstr "E804: Non si pu<70> usare '%' con un Numero-a-virgola-mobile"
msgid "E110: Missing ')'" msgid "E110: Missing ')'"
msgstr "E110: Manca ')'" msgstr "E110: Manca ')'"
@ -518,6 +527,9 @@ msgstr "E110: Manca ')'"
msgid "E695: Cannot index a Funcref" msgid "E695: Cannot index a Funcref"
msgstr "E695: Non posso indicizzare un Funcref" msgstr "E695: Non posso indicizzare un Funcref"
msgid "E909: Cannot index a special variable"
msgstr "E909: Non posso indicizzare una variabile speciale"
#, c-format #, c-format
msgid "E112: Option name missing: %s" msgid "E112: Option name missing: %s"
msgstr "E112: Nome Opzione mancante: %s" msgstr "E112: Nome Opzione mancante: %s"
@ -589,7 +601,7 @@ msgid "E725: Calling dict function without Dictionary: %s"
msgstr "E725: Chiamata di funzione dict in assenza di Dizionario: %s" msgstr "E725: Chiamata di funzione dict in assenza di Dizionario: %s"
msgid "E808: Number or Float required" msgid "E808: Number or Float required"
msgstr "E808: Ci vuole un numero intero o con virgola" msgstr "E808: Ci vuole un Numero o un Numero-a-virgola-mobile"
msgid "add() argument" msgid "add() argument"
msgstr "argomento di add()" msgstr "argomento di add()"
@ -597,6 +609,15 @@ msgstr "argomento di add()"
msgid "E699: Too many arguments" msgid "E699: Too many arguments"
msgstr "E699: Troppi argomenti" msgstr "E699: Troppi argomenti"
msgid "E906: not an open channel"
msgstr "E906: canale non aperto"
msgid "E999: Invalid callback argument"
msgstr "E999: Argomento callback non valido"
msgid "E912: cannot use ch_sendexpr() with a raw channel"
msgstr "E912: non posso usare ch_sendexpr() con un canale grezzo"
msgid "E785: complete() can only be used in Insert mode" msgid "E785: complete() can only be used in Insert mode"
msgstr "E785: complete() pu<70> essere usata solo in modalit<69> inserimento" msgstr "E785: complete() pu<70> essere usata solo in modalit<69> inserimento"
@ -698,7 +719,7 @@ msgid "E677: Error writing temp file"
msgstr "E677: Errore in scrittura su file temporaneo" msgstr "E677: Errore in scrittura su file temporaneo"
msgid "E805: Using a Float as a Number" msgid "E805: Using a Float as a Number"
msgstr "E805: Uso di un numero con virgola come intero" msgstr "E805: Uso di un Numero-a-virgola-mobile come Numero"
msgid "E703: Using a Funcref as a Number" msgid "E703: Using a Funcref as a Number"
msgstr "E703: Uso di Funcref come Numero" msgstr "E703: Uso di Funcref come Numero"
@ -709,6 +730,27 @@ msgstr "E745: Uso di Lista come Numero"
msgid "E728: Using a Dictionary as a Number" msgid "E728: Using a Dictionary as a Number"
msgstr "E728: Uso di Dizionario come Numero" msgstr "E728: Uso di Dizionario come Numero"
msgid "E910: Using a Job as a Number"
msgstr "E910: Uso di Job come Numero"
msgid "E891: Using a Funcref as a Float"
msgstr "E891: Uso di Funcref come Numero-a-virgola-mobile"
msgid "E892: Using a String as a Float"
msgstr "E892: Uso di Stringa come Numero-a-virgola-mobile"
msgid "E893: Using a List as a Float"
msgstr "E893: Uso di Lista come Numero-a-virgola-mobile"
msgid "E894: Using a Dictionary as a Float"
msgstr "E894: Uso di Dizionario come Numero-a-virgola-mobile"
msgid "E907: Using a special value as a Float"
msgstr "E907: Uso di valore speciale come Numero-a-virgola-mobile"
msgid "E911: Using a Job as a Float"
msgstr "E911: Uso di Job come Numero-a-virgola-mobile"
msgid "E729: using Funcref as a String" msgid "E729: using Funcref as a String"
msgstr "E729: uso di Funcref come Stringa" msgstr "E729: uso di Funcref come Stringa"
@ -718,6 +760,10 @@ msgstr "E730: uso di Lista come Stringa"
msgid "E731: using Dictionary as a String" msgid "E731: using Dictionary as a String"
msgstr "E731: uso di Dizionario come Stringa" msgstr "E731: uso di Dizionario come Stringa"
# nuovo
msgid "E908: using an invalid value as a String"
msgstr "E908: uso di un valore non valido come Stringa"
#, c-format #, c-format
msgid "E706: Variable type mismatch for: %s" msgid "E706: Variable type mismatch for: %s"
msgstr "E706: Tipo di variabile non corrispondente per: %s" msgstr "E706: Tipo di variabile non corrispondente per: %s"
@ -786,9 +832,11 @@ msgstr "E746: Il nome funzione non corrisponde al nome file dello script: %s"
msgid "E129: Function name required" msgid "E129: Function name required"
msgstr "E129: Nome funzione necessario" msgstr "E129: Nome funzione necessario"
#, c-format
msgid "E128: Function name must start with a capital or \"s:\": %s" msgid "E128: Function name must start with a capital or \"s:\": %s"
msgstr "E128: Il nome funzione deve iniziare con maiuscola o \"s:\": %s" msgstr "E128: Il nome funzione deve iniziare con maiuscola o \"s:\": %s"
#, c-format
msgid "E884: Function name cannot contain a colon: %s" msgid "E884: Function name cannot contain a colon: %s"
msgstr "E884: Il nome della funzione non pu<70> contenere un due punti: %s" msgstr "E884: Il nome della funzione non pu<70> contenere un due punti: %s"
@ -908,6 +956,7 @@ msgstr "E138: Non riesco a scrivere il file viminfo %s!"
msgid "Writing viminfo file \"%s\"" msgid "Writing viminfo file \"%s\""
msgstr "Scrivo file viminfo \"%s\"" msgstr "Scrivo file viminfo \"%s\""
#, c-format
msgid "E886: Can't rename viminfo file to %s!" msgid "E886: Can't rename viminfo file to %s!"
msgstr "E886: Non riesco a rinominare il file viminfo a %s!" msgstr "E886: Non riesco a rinominare il file viminfo a %s!"
@ -929,6 +978,13 @@ msgstr "# Valore di 'encoding' al momento della scrittura di questo file\n"
msgid "Illegal starting char" msgid "Illegal starting char"
msgstr "Carattere iniziale non ammesso" msgstr "Carattere iniziale non ammesso"
msgid ""
"\n"
"# Bar lines, copied verbatim:\n"
msgstr ""
"\n"
"# Righe che iniziano con '|', semplicemente copiate:\n"
msgid "Save As" msgid "Save As"
msgstr "Salva con Nome" msgstr "Salva con Nome"
@ -1135,6 +1191,13 @@ msgstr "riga %ld: %s"
msgid "cmd: %s" msgid "cmd: %s"
msgstr "com: %s" msgstr "com: %s"
msgid "frame is zero"
msgstr "al livello zero"
#, c-format
msgid "frame at highest level: %d"
msgstr "al livello pi<70> alto: %d"
#, c-format #, c-format
msgid "Breakpoint in \"%s%s\" line %ld" msgid "Breakpoint in \"%s%s\" line %ld"
msgstr "Pausa in \"%s%s\" riga %ld" msgstr "Pausa in \"%s%s\" riga %ld"
@ -1166,8 +1229,7 @@ msgstr "E162: Buffer \"%s\" non salvato dopo modifica"
msgid "Warning: Entered other buffer unexpectedly (check autocommands)" msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
msgstr "" msgstr ""
"Avviso: Entrato in altro buffer inaspettatamente (controllare " "Avviso: Entrato in altro buffer inaspettatamente (controllare autocomandi)"
"autocomandi)"
msgid "E163: There is only one file to edit" msgid "E163: There is only one file to edit"
msgstr "E163: C'<27> un solo file da elaborare" msgstr "E163: C'<27> un solo file da elaborare"
@ -1356,6 +1418,7 @@ msgstr "E841: Nome riservato, non usabile in un comando definito dall'utente"
msgid "E184: No such user-defined command: %s" msgid "E184: No such user-defined command: %s"
msgstr "E184: Comando definito dall'utente %s inesistente" msgstr "E184: Comando definito dall'utente %s inesistente"
#, c-format
msgid "E180: Invalid address type value: %s" msgid "E180: Invalid address type value: %s"
msgstr "E180: Tipo di indirizzo non valido: %s" msgstr "E180: Tipo di indirizzo non valido: %s"
@ -1811,8 +1874,8 @@ msgid ""
"E513: write error, conversion failed in line %ld (make 'fenc' empty to " "E513: write error, conversion failed in line %ld (make 'fenc' empty to "
"override)" "override)"
msgstr "" msgstr ""
"E513: errore in scrittura, conversione fallita alla riga %ld (rendere " "E513: errore in scrittura, conversione fallita alla riga %ld (rendere 'fenc' "
"'fenc' nullo per eseguire comunque)" "nullo per eseguire comunque)"
msgid "E514: write error (file system full?)" msgid "E514: write error (file system full?)"
msgstr "E514: errore in scrittura ('File System' pieno?)" msgstr "E514: errore in scrittura ('File System' pieno?)"
@ -1868,16 +1931,16 @@ msgid "[dos format]"
msgstr "[in formato DOS]" msgstr "[in formato DOS]"
msgid "[mac]" msgid "[mac]"
msgstr "[MAC]" msgstr "[Mac]"
msgid "[mac format]" msgid "[mac format]"
msgstr "[in formato MAC]" msgstr "[in formato Mac]"
msgid "[unix]" msgid "[unix]"
msgstr "[UNIX]" msgstr "[Unix]"
msgid "[unix format]" msgid "[unix format]"
msgstr "[in formato UNIX]" msgstr "[in formato Unix]"
msgid "1 line, " msgid "1 line, "
msgstr "1 riga, " msgstr "1 riga, "
@ -2621,6 +2684,13 @@ msgstr ""
"E815: Spiacente, comando non disponibile, non riesco a caricare librerie " "E815: Spiacente, comando non disponibile, non riesco a caricare librerie "
"programmi MzScheme." "programmi MzScheme."
msgid ""
"E895: Sorry, this command is disabled, the MzScheme's racket/base module "
"could not be loaded."
msgstr ""
"E815: Spiacente, comando non disponibile, non riesco a caricare modulo "
"racket/base di MzScheme."
msgid "invalid expression" msgid "invalid expression"
msgstr "espressione non valida" msgstr "espressione non valida"
@ -3788,15 +3858,12 @@ msgid ""
"\n" "\n"
"(1) Another program may be editing the same file. If this is the case,\n" "(1) Another program may be editing the same file. If this is the case,\n"
" be careful not to end up with two different instances of the same\n" " be careful not to end up with two different instances of the same\n"
" file when making changes." " file when making changes. Quit, or continue with caution.\n"
msgstr "" msgstr ""
"\n" "\n"
"(1) Un altro programma pu<70> essere in edit sullo stesso file.\n" "(1) Un altro programma pu<70> essere in edit sullo stesso file. Se <20> cos<6F>,\n"
" Se <20> cos<6F>, attenzione a non trovarti con due versioni\n" " attenzione a non finire con due sessioni differenti che modificano lo\n"
" differenti dello stesso file a cui vengono apportate modifiche." " stesso file. Uscire da Vim, o continuare con cautela.\n"
msgid " Quit, or continue with caution.\n"
msgstr " Esci, o continua con prudenza.\n"
msgid "(2) An edit session for this file crashed.\n" msgid "(2) An edit session for this file crashed.\n"
msgstr "(2) Una sessione di edit per questo file <20> finita male.\n" msgstr "(2) Una sessione di edit per questo file <20> finita male.\n"
@ -3989,7 +4056,7 @@ msgid "E766: Insufficient arguments for printf()"
msgstr "E766: Argomenti non sufficienti per printf()" msgstr "E766: Argomenti non sufficienti per printf()"
msgid "E807: Expected Float argument for printf()" msgid "E807: Expected Float argument for printf()"
msgstr "E807: Numero con virgola atteso come argomento per printf()" msgstr "E807: Numero-a-virgola-mobile atteso come argomento per printf()"
msgid "E767: Too many arguments to printf()" msgid "E767: Too many arguments to printf()"
msgstr "E767: Troppi argomenti per printf()" msgstr "E767: Troppi argomenti per printf()"
@ -4100,20 +4167,11 @@ msgstr "E346: Nessun altra directory \"%s\" trovata nel 'cdpath'"
msgid "E347: No more file \"%s\" found in path" msgid "E347: No more file \"%s\" found in path"
msgstr "E347: Nessun altro file \"%s\" trovato nel percorso" msgstr "E347: Nessun altro file \"%s\" trovato nel percorso"
msgid "Cannot connect to Netbeans #2"
msgstr "Non posso connettermi a Netbeans #2"
msgid "Cannot connect to Netbeans"
msgstr "Non posso connettermi a Netbeans"
#, c-format #, c-format
msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
msgstr "" msgstr ""
"E668: Modalit<69> errata di accesso a file info connessione NetBeans: \"%s\"" "E668: Modalit<69> errata di accesso a file info connessione NetBeans: \"%s\""
msgid "read from Netbeans socket"
msgstr "lettura da socket Netbeans"
#, c-format #, c-format
msgid "E658: NetBeans connection lost for buffer %ld" msgid "E658: NetBeans connection lost for buffer %ld"
msgstr "E658: Connessione NetBeans persa per il buffer %ld" msgstr "E658: Connessione NetBeans persa per il buffer %ld"
@ -4246,7 +4304,8 @@ msgstr "E574: Tipo di registro sconosciuto: %d"
msgid "" msgid ""
"E883: search pattern and expression register may not contain two or more " "E883: search pattern and expression register may not contain two or more "
"lines" "lines"
msgstr "E883: espressione di ricerca e registro dell'espressione non possono " msgstr ""
"E883: espressione di ricerca e registro dell'espressione non possono "
"contenere due o pi<70> righe" "contenere due o pi<70> righe"
#, c-format #, c-format
@ -4567,18 +4626,11 @@ msgstr ""
"\n" "\n"
"Non posso impostare il contesto di sicurezza per " "Non posso impostare il contesto di sicurezza per "
msgid "Could not set security context " msgid "Could not set security context %s for %s"
msgstr "Non riesco a impostare il contesto di sicurezza " msgstr "Non posso impostare il contesto di sicurezza %s per %s"
msgid " for " msgid "Could not get security context %s for %s. Removing it!"
msgstr " per " msgstr "Non posso ottenere il contesto di sicurezza %s per %s. Lo rimuovo!"
#. no enough size OR unexpected error
msgid "Could not get security context "
msgstr "Non riesco a ottenere il contesto di sicurezza "
msgid ". Removing it!\n"
msgstr ". Lo rimuovo!\n"
msgid "" msgid ""
"\n" "\n"
@ -4757,6 +4809,7 @@ msgstr "E681: Buffer non caricato"
msgid "E777: String or List expected" msgid "E777: String or List expected"
msgstr "E777: aspettavo Stringa o Lista" msgstr "E777: aspettavo Stringa o Lista"
#, c-format
msgid "E369: invalid item in %s%%[]" msgid "E369: invalid item in %s%%[]"
msgstr "E369: elemento non valido in %s%%[]" msgstr "E369: elemento non valido in %s%%[]"
@ -4847,6 +4900,7 @@ msgstr "E554: Errore sintattico in %s{...}"
msgid "External submatches:\n" msgid "External submatches:\n"
msgstr "Sotto-corrispondenze esterne:\n" msgstr "Sotto-corrispondenze esterne:\n"
#, c-format
msgid "E888: (NFA regexp) cannot repeat %s" msgid "E888: (NFA regexp) cannot repeat %s"
msgstr "E888: (NFA regexp) non riesco a ripetere %s" msgstr "E888: (NFA regexp) non riesco a ripetere %s"
@ -4867,6 +4921,7 @@ msgstr "E865: (NFA) Fine prematura dell'espressione regolare"
msgid "E866: (NFA regexp) Misplaced %c" msgid "E866: (NFA regexp) Misplaced %c"
msgstr "E866: (NFA regexp) %c fuori posto" msgstr "E866: (NFA regexp) %c fuori posto"
#, c-format
msgid "E877: (NFA regexp) Invalid character class: %ld" msgid "E877: (NFA regexp) Invalid character class: %ld"
msgstr "E877: (NFA regexp) Classe di caratteri non valida: %ld" msgstr "E877: (NFA regexp) Classe di caratteri non valida: %ld"
@ -5171,8 +5226,7 @@ msgstr "Valore errato per CHECKCOMPOUNDPATTERN in %s riga %d: %s"
#, c-format #, c-format
msgid "Different combining flag in continued affix block in %s line %d: %s" msgid "Different combining flag in continued affix block in %s line %d: %s"
msgstr "" msgstr "Flag combinazione diverso in blocco affissi continuo in %s riga %d: %s"
"Flag combinazione diverso in blocco affissi continuo in %s riga %d: %s"
#, c-format #, c-format
msgid "Duplicate affix in %s line %d: %s" msgid "Duplicate affix in %s line %d: %s"
@ -5367,9 +5421,11 @@ msgstr "Fatto!"
msgid "E765: 'spellfile' does not have %ld entries" msgid "E765: 'spellfile' does not have %ld entries"
msgstr "E765: 'spellfile' non ha %ld elementi" msgstr "E765: 'spellfile' non ha %ld elementi"
#, c-format
msgid "Word '%.*s' removed from %s" msgid "Word '%.*s' removed from %s"
msgstr "Parola '%.*s' rimossa da %s" msgstr "Parola '%.*s' rimossa da %s"
#, c-format
msgid "Word '%.*s' added to %s" msgid "Word '%.*s' added to %s"
msgstr "Parola '%.*s' aggiunta a %s" msgstr "Parola '%.*s' aggiunta a %s"
@ -5432,6 +5488,9 @@ msgstr "Nessun elemento sintattico definito per questo buffer"
msgid "E390: Illegal argument: %s" msgid "E390: Illegal argument: %s"
msgstr "E390: Argomento non ammesso: %s" msgstr "E390: Argomento non ammesso: %s"
msgid "syntax iskeyword "
msgstr "syntax iskeyword "
#, c-format #, c-format
msgid "E391: No such syntax cluster: %s" msgid "E391: No such syntax cluster: %s"
msgstr "E391: 'cluster' sintattico inesistente: %s" msgstr "E391: 'cluster' sintattico inesistente: %s"
@ -5508,6 +5567,9 @@ msgstr "E847: Troppe inclusioni di sintassi"
msgid "E789: Missing ']': %s" msgid "E789: Missing ']': %s"
msgstr "E789: Manca ']': %s" msgstr "E789: Manca ']': %s"
msgid "E890: trailing char after ']': %s]%s"
msgstr "E890: Caratteri in pi<70> dopo ']': %s]%s"
#, c-format #, c-format
msgid "E398: Missing '=': %s" msgid "E398: Missing '=': %s"
msgstr "E398: Manca '=': %s" msgstr "E398: Manca '=': %s"
@ -5965,7 +6027,7 @@ msgid ""
"MacOS X (unix) version" "MacOS X (unix) version"
msgstr "" msgstr ""
"\n" "\n"
"Versione MacOS X (unix)" "Versione MacOS X (Unix)"
msgid "" msgid ""
"\n" "\n"
@ -6537,6 +6599,9 @@ msgid "E794: Cannot set variable in the sandbox: \"%s\""
msgstr "" msgstr ""
"E794: Non posso impostare la variabile read-only in ambiente protetto: \"%s\"" "E794: Non posso impostare la variabile read-only in ambiente protetto: \"%s\""
msgid "E713: Cannot use empty key for Dictionary"
msgstr "E713: Non posso usare una chiave nulla per il Dizionario"
msgid "E47: Error while reading errorfile" msgid "E47: Error while reading errorfile"
msgstr "E47: Errore leggendo il file errori" msgstr "E47: Errore leggendo il file errori"
@ -6655,6 +6720,7 @@ msgstr "il dizionario
msgid "list is locked" msgid "list is locked"
msgstr "la lista <20> bloccata" msgstr "la lista <20> bloccata"
#, c-format
msgid "failed to add key '%s' to dictionary" msgid "failed to add key '%s' to dictionary"
msgstr "non non riusciato ad aggiungere la chiave '%s' al dizionario" msgstr "non non riusciato ad aggiungere la chiave '%s' al dizionario"
@ -6754,8 +6820,8 @@ msgstr "il passo scorrendo un intervallo non pu
#, c-format #, c-format
msgid "attempt to assign sequence of size greater than %d to extended slice" msgid "attempt to assign sequence of size greater than %d to extended slice"
msgstr "tentativo di assegnare una sequenza maggiore di %d a un intervallo " msgstr ""
"esteso" "tentativo di assegnare una sequenza maggiore di %d a un intervallo esteso"
#, c-format #, c-format
msgid "internal error: no vim list item %d" msgid "internal error: no vim list item %d"
@ -6767,9 +6833,11 @@ msgstr "errore interno: non ci sono abbastanza elementi per la lista"
msgid "internal error: failed to add item to list" msgid "internal error: failed to add item to list"
msgstr "errore interno: non ho potuto aggiungere un elemento alla lista" msgstr "errore interno: non ho potuto aggiungere un elemento alla lista"
#, c-format
msgid "attempt to assign sequence of size %d to extended slice of size %d" msgid "attempt to assign sequence of size %d to extended slice of size %d"
msgstr "tentativo di assegnare sequenza di dimensione %d a un intervallo " msgstr ""
" esteso di dimensione %d" "tentativo di assegnare sequenza di dimensione %d a un intervallo esteso di "
"dimensione %d"
msgid "failed to add item to list" msgid "failed to add item to list"
msgstr "non ho potuto aggiungere un elemento alla lista" msgstr "non ho potuto aggiungere un elemento alla lista"
@ -6907,4 +6975,3 @@ msgid ""
msgstr "" msgstr ""
"Impostazione di percorso non riuscita: sys.path non <20> una lista\n" "Impostazione di percorso non riuscita: sys.path non <20> una lista\n"
"Dovresti aggiungere vim.VIM_SPECIAL_PATH a sys.path" "Dovresti aggiungere vim.VIM_SPECIAL_PATH a sys.path"