Mercurial > vim
diff runtime/doc/channel.txt @ 12043:2796a2c9fc17 v8.0.0902
patch 8.0.0902: cannot specify directory or environment for a job
commit https://github.com/vim/vim/commit/05aafed54b50b602315ae55d83a7d089804cecb0
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Aug 11 19:12:11 2017 +0200
patch 8.0.0902: cannot specify directory or environment for a job
Problem: Cannot specify directory or environment for a job.
Solution: Add the "cwd" and "env" arguments to job options. (Yasuhiro
Matsumoto, closes #1160)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 11 Aug 2017 19:15:04 +0200 |
parents | 21f3930dfe6e |
children | 444ad56c0cac |
line wrap: on
line diff
--- a/runtime/doc/channel.txt +++ b/runtime/doc/channel.txt @@ -427,8 +427,8 @@ When no message was available then the r channels, an empty string for a RAW or NL channel. You can use |ch_canread()| to check if there is something to read. -Note that when there is no callback message are dropped. To avoid that add a -close callback to the channel. +Note that when there is no callback, messages are dropped. To avoid that add +a close callback to the channel. To read all output from a RAW channel that is available: > let output = ch_readraw(channel) @@ -475,11 +475,6 @@ it like this: > Without the handler you need to read the output with |ch_read()| or |ch_readraw()|. You can do this in the close callback, see |read-in-close-cb|. -Note that if the job exits before you read the output, the output may be lost. -This depends on the system (on Unix this happens because closing the write end -of a pipe causes the read end to get EOF). To avoid this make the job sleep -for a short while before it exits. - The handler defined for "out_cb" will not receive stderr. If you want to handle that separately, add an "err_cb" handler: > let job = job_start(command, {"out_cb": "MyHandler", @@ -494,6 +489,11 @@ started job gets the focus. To avoid th This might not always work when called early, put in the callback handler or use a timer to call it after the job has started. +Depending on the system, starting a job can put Vim in the background, the +started job gets the focus. To avoid that, use the `foreground()` function. +This might not always work when called early, put in the callback handler or +use a timer to call it after the job has started. + You can send a message to the command with ch_evalraw(). If the channel is in JSON or JS mode you can use ch_evalexpr(). @@ -696,6 +696,10 @@ See |job_setoptions()| and |ch_setoption "block_write": number only for testing: pretend every other write to stdin will block +"env": dict environment variables for the new process +"cwd": "/path/to/dir" current working directory for the new process; + if the directory does not exist an error is given + Writing to a buffer ~ *out_io-buffer* @@ -731,10 +735,6 @@ The "out_msg" option can be used to spec first line set to "Reading from channel output...". The default is to add the message. "err_msg" does the same for channel error. -'modifiable' option off, or write to a buffer that has 'modifiable' off. That -means that lines will be appended to the buffer, but the user can't easily -change the buffer. - When an existing buffer is to be written where 'modifiable' is off and the "out_modifiable" or "err_modifiable" options is not zero, an error is given and the buffer will not be written to.