diff options
Diffstat (limited to 'runtime/doc')
-rw-r--r-- | runtime/doc/eval.txt | 31 | ||||
-rw-r--r-- | runtime/doc/options.txt | 48 | ||||
-rw-r--r-- | runtime/doc/tags | 3 | ||||
-rw-r--r-- | runtime/doc/todo.txt | 22 | ||||
-rw-r--r-- | runtime/doc/version7.txt | 28 |
5 files changed, 104 insertions, 28 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index dfab7c907..837ba3cb1 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.0aa. Last change: 2006 Jan 13 +*eval.txt* For Vim version 7.0aa. Last change: 2006 Jan 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -28,6 +28,7 @@ done, the features in this document are not available. See |+eval| and 9. Examples |eval-examples| 10. No +eval feature |no-eval-feature| 11. The sandbox |eval-sandbox| +12. Textlock |textlock| {Vi does not have any of these commands} @@ -6830,5 +6831,33 @@ This is not guaranteed 100% secure, but it should block most attacks. option that may have been set from a modeline, e.g. 'foldexpr'. + *sandbox-option* +A few options contain an expression. When this expression is evaluated it may +have to be done in the sandbox to avoid trouble. But the sandbox is +restrictive, thus this only happens when the option was set from an insecure +location. Insecure in this context are: +- sourcing a .vimrc or .exrc in the current directlry +- while executing in the sandbox +- value coming from a modeline + +Note that when in the sandbox and saving an option value and restoring it, the +option will still be marked as it was set in the sandbox. + +============================================================================== +12. Textlock *textlock* + +In a few situations it is not allowed to change the text in the buffer, jump +to another window and some other things that might confuse or break what Vim +is currently doing. This mostly applies to things that happen when Vim is +actually doing something else. For example, evaluating the 'balloonexpr' may +happen any moment the mouse cursor is resting at some position. + +This is not allowed when the textlock is active: + - changing the buffer text + - jumping to another buffer or window + - editing another file + - closing a window or quitting Vim + - etc. + vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 16c36db2c..2a812fe40 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 7.0aa. Last change: 2006 Jan 19 +*options.txt* For Vim version 7.0aa. Last change: 2006 Jan 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1037,6 +1037,12 @@ A jump table for the options with a short description can be found at |Q_op|. Vim does not try to send a message to an external debugger (Netbeans or Sun Workshop). + The expression may be evaluated in the |sandbox|, see + |sandbox-option|. + + It is not allowed to change text or jump to another window while + evaluating 'balloonexpr' |textlock|. + To check whether line breaks in the balloon text work use this check: > if has("balloon_multiline") < @@ -2771,8 +2777,13 @@ A jump table for the options with a short description can be found at |Q_op|. {not available when compiled without the |+folding| or |+eval| feature} The expression used for when 'foldmethod' is "expr". It is evaluated - for each line to obtain its fold level. See |fold-expr|. Also see - |eval-sandbox|. + for each line to obtain its fold level. See |fold-expr|. + + The expression may be evaluated in the |sandbox|, see + |sandbox-option|. + + It is not allowed to change text or jump to another window while + evaluating 'foldexpr' |textlock|. *'foldignore'* *'fdi'* 'foldignore' 'fdi' string (default: "#") @@ -2904,6 +2915,12 @@ A jump table for the options with a short description can be found at |Q_op|. An expression which is used to specify the text displayed for a closed fold. See |fold-foldtext|. + The expression may be evaluated in the |sandbox|, see + |sandbox-option|. + + It is not allowed to change text or jump to another window while + evaluating 'foldtext' |textlock|. + *'formatoptions'* *'fo'* 'formatoptions' 'fo' string (Vim default: "tcq", Vi default: "vt") local to buffer @@ -3696,11 +3713,17 @@ A jump table for the options with a short description can be found at |Q_op|. option to a file name. Mostly useful to change "." to "/" for Java: > :set includeexpr=substitute(v:fname,'\\.','/','g') < The "v:fname" variable will be set to the file name that was detected. - Evaluated in the |sandbox|. + Also used for the |gf| command if an unmodified file name can't be found. Allows doing "gf" on the name after an 'include' statement. Also used for |<cfile>|. + The expression may be evaluated in the |sandbox|, see + |sandbox-option|. + + It is not allowed to change text or jump to another window while + evaluating 'includeexpr' |textlock|. + *'incsearch'* *'is'* *'noincsearch'* *'nois'* 'incsearch' 'is' boolean (default off) global @@ -3746,9 +3769,16 @@ A jump table for the options with a short description can be found at |Q_op|. :set indentexpr=GetMyIndent() < Error messages will be suppressed, unless the 'debug' option contains "msg". - See |indent-expression|. Also see |eval-sandbox|. + See |indent-expression|. NOTE: This option is made empty when 'compatible' is set. + The expression may be evaluated in the |sandbox|, see + |sandbox-option|. + + It is not allowed to change text or jump to another window while + evaluating 'indentexpr' |textlock|. + + *'indentkeys'* *'indk'* 'indentkeys' 'indk' string (default "0{,0},:,0#,!^F,o,O,e") local to buffer @@ -6084,7 +6114,13 @@ A jump table for the options with a short description can be found at |Q_op|. temporarily to that of the window (and buffer) whose statusline is currently being drawn. The expression will evaluate in this context. The variable "actual_curbuf" is set to the 'bufnr()' number of the - real current buffer. The expression is evaluated in the |sandbox|. + real current buffer. + + The 'statusline' option may be evaluated in the |sandbox|, see + |sandbox-option|. + + It is not allowed to change text or jump to another window while + evaluating 'statusline' |textlock|. If the statusline is not updated when you want it (e.g., after setting a variable that's used in an expression), you can force an update by diff --git a/runtime/doc/tags b/runtime/doc/tags index 2174f20c6..302907b1f 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -5349,6 +5349,7 @@ hebrew hebrew.txt /*hebrew* hebrew.txt hebrew.txt /*hebrew.txt* help various.txt /*help* help-context help.txt /*help-context* +help-tags tags 1 help-translated various.txt /*help-translated* help-xterm-window various.txt /*help-xterm-window* help.txt help.txt /*help.txt* @@ -6404,6 +6405,7 @@ s:netrw_line pi_netrw.txt /*s:netrw_line* s:var eval.txt /*s:var* s<CR> change.txt /*s<CR>* sandbox eval.txt /*sandbox* +sandbox-option eval.txt /*sandbox-option* save-file editing.txt /*save-file* save-settings starting.txt /*save-settings* scheme.vim syntax.txt /*scheme.vim* @@ -6929,6 +6931,7 @@ tex-style syntax.txt /*tex-style* tex.vim syntax.txt /*tex.vim* text-objects motion.txt /*text-objects* text-objects-changed version5.txt /*text-objects-changed* +textlock eval.txt /*textlock* tf.vim syntax.txt /*tf.vim* this_session-variable eval.txt /*this_session-variable* throw-catch eval.txt /*throw-catch* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index da95e6072..6785f7621 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.0aa. Last change: 2006 Jan 19 +*todo.txt* For Vim version 7.0aa. Last change: 2006 Jan 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -30,20 +30,6 @@ be worked on, but only if you sponsor Vim development. See |sponsor|. *known-bugs* -------------------- Known bugs and current work ----------------------- -Evaluate 'balloonexpr' in the sandbox only when it was set from an unsafe -place (e.g., modeline)? Patch from Sumner Hayes, Jan 12. Also use for other -options? - -":saveas asdf.c" should set 'filetype' to c when it's empty. Also for ":w -asdf.c" when it sets the buffer filename. - -When ":cclose" is used the buffer is not wiped out and is no longer recognized -as a quickfix buffer, thus it's not reused either. - -Patch to support lists and dicts for the Python interface. (G. Sumner Hayes, -Jan 12). Docs in a previous patch. -Use free_tv() instead of clear_tv() and vim_free(). - ccomplete: - When using page-up/page-down in menu it sometimes jumps more than a page. - When an option is set: In completion mode and the user types (identifier) @@ -71,9 +57,9 @@ ccomplete: Can't reproduce it right now... spelling: -- Include script to cleanup a .add file. (Antonio Colombo, Jan 9) -- suggestions for "macARONI" doesn't include "macaroni", they are all allcap. - suggestion for "KG" to "kg" when it's keepcase. +- Use runtime/cleanadd script to cleanup .add files. When to invoke it? + After deleting a word and some timestamp difference perhaps? +- suggestion for "KG" to "kg" when it's keepcase. - Autocommand event for when a spell file is missing. Allows making a plugin that fetches the file over internet. Pattern == language. - Using KEEPCASE flag still allows all-upper word, docs say it doesn't. diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt index 5743a7971..604447bda 100644 --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -1,4 +1,4 @@ -*version7.txt* For Vim version 7.0aa. Last change: 2006 Jan 19 +*version7.txt* For Vim version 7.0aa. Last change: 2006 Jan 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -154,6 +154,9 @@ expr". "-=" and ".=" works in a similar way. With the |:profile| command you can find out where your function or script wastes its time. +In the Python interface vim.eval() also handles Dictionaries and Lists. +|python-eval| (G. Sumner Hayes) + Spell checking *new-spell* -------------- @@ -667,6 +670,15 @@ iterative mechanism. This avoids out-of-stack errors. State is stored in allocated memory, running out of memory can always be detected. Allows matching more complex things, but Vim may seem to hang while doing that. +Previously some options were always evaluated in the |sandbox|. Now that only +happens when the option was set from a modeline or in secure mode. Applies to +'balloonexpr', 'foldexpr', 'foldtext' and 'includeexpr'. (Sumner Hayes) + +Some commands and expressions could have nasty side effects, such as using +CTRL-R = while editing a search pattern and the expression invokes a function +that jumps to another window. The |textlock| has been added to prevent this +from happening. + ":breakadd here" and ":breakdel here" can be used to set or delete a breakpoint at the cursor. @@ -925,6 +937,10 @@ and for supported autocommand events. (Yegappan Lakshmanan) Allow using ":global" in the sandbox, it doesn't do anything harmful by itself. +":saveas asdf.c" will set 'filetype' to c when it's empty. Also for ":w +asdf.c" when it sets the filename for the buffer. + + ============================================================================== COMPILE TIME CHANGES *compile-changes-7* @@ -1528,8 +1544,8 @@ string, because it may cause trouble in Insert mode. When evaluating an expression for CTRL-R = on the command line it was possible to call a function that opens a new window, resulting in errors for -incremental search, and many other nasty things were possible. Now set -"cmdline_busy" and disallow changing the buffer or jumpting to another window +incremental search, and many other nasty things were possible. Now use the +|textlock| to disallow changing the buffer or jumping to another window to protect from unexpected behavior. Same for CTRL-\ e. "d(" deleted the character under the cursor, while the documentation specified @@ -1574,4 +1590,10 @@ When expanding a file name for a shell command, as in "!cmd foo<Tab>" or ":r !cmd foo<Tab>" also escape characters that are special for the shell: "!;&()<>". +When the name of the buffer was set by a ":r fname" command |cpo-f| no +autocommands were triggered to notify about the change in the buffer list. + +In the quickfix buffer 'bufhidden' was set to "delete", which caused closing +the quickfix window to leave an unlisted "No Name" buffer behind every time. + vim:tw=78:ts=8:ft=help:norl: |