diff options
Diffstat (limited to 'runtime/doc')
-rw-r--r-- | runtime/doc/autocmd.txt | 42 | ||||
-rw-r--r-- | runtime/doc/change.txt | 6 | ||||
-rw-r--r-- | runtime/doc/diagnostic.txt | 24 | ||||
-rw-r--r-- | runtime/doc/editing.txt | 36 | ||||
-rw-r--r-- | runtime/doc/eval.txt | 25 | ||||
-rw-r--r-- | runtime/doc/options.txt | 4 | ||||
-rw-r--r-- | runtime/doc/pattern.txt | 2 | ||||
-rw-r--r-- | runtime/doc/usr_22.txt | 24 | ||||
-rw-r--r-- | runtime/doc/usr_41.txt | 3 | ||||
-rw-r--r-- | runtime/doc/various.txt | 2 | ||||
-rw-r--r-- | runtime/doc/vim_diff.txt | 5 |
11 files changed, 133 insertions, 40 deletions
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index de74ee891e..6c41dd3b10 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -519,11 +519,17 @@ DiffUpdated After diffs have been updated. Depending on change or when doing |:diffupdate|. *DirChanged* DirChanged After the |current-directory| was changed. + The pattern can be: + "window" to trigger on `:lcd` + "tabpage" to trigger on `:tcd` + "global" to trigger on `:cd` + "auto" to trigger on 'autochdir'. Sets these |v:event| keys: cwd: current working directory scope: "global", "tab", "window" changed_window: v:true if we fired the event switching window (or tab) + <afile> is set to the new directory name. Non-recursive (event cannot trigger itself). *FileAppendCmd* FileAppendCmd Before appending to a file. Should do the @@ -630,7 +636,7 @@ FilterReadPre Before reading a file from a filter command. *FilterWritePost* FilterWritePost After writing a file for a filter command or making a diff with an external diff (see - DiffUpdated for internal diff). + |DiffUpdated| for internal diff). Vim checks the pattern against the name of the current buffer as with FilterWritePre. Not triggered when 'shelltemp' is off. @@ -683,23 +689,6 @@ InsertCharPre When a character is typed in Insert mode, Cannot change the text. |textlock| Not triggered when 'paste' is set. - *TextYankPost* -TextYankPost Just after a |yank| or |deleting| command, but not - if the black hole register |quote_| is used nor - for |setreg()|. Pattern must be *. - Sets these |v:event| keys: - inclusive - operator - regcontents - regname - regtype - visual - The `inclusive` flag combined with the |'[| - and |']| marks can be used to calculate the - precise region of the operation. - - Non-recursive (event cannot trigger itself). - Cannot change the text. |textlock| *InsertEnter* InsertEnter Just before starting Insert mode. Also for Replace mode and Virtual Replace mode. The @@ -948,6 +937,23 @@ TextChangedP After a change was made to the text in the current buffer in Insert mode, only when the popup menu is visible. Otherwise the same as TextChanged. + *TextYankPost* +TextYankPost Just after a |yank| or |deleting| command, but not + if the black hole register |quote_| is used nor + for |setreg()|. Pattern must be *. + Sets these |v:event| keys: + inclusive + operator + regcontents + regname + regtype + visual + The `inclusive` flag combined with the |'[| + and |']| marks can be used to calculate the + precise region of the operation. + + Non-recursive (event cannot trigger itself). + Cannot change the text. |textlock| *User* User Not executed automatically. Use |:doautocmd| to trigger this, typically for "custom events" diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 2b799e3e27..ffdd8427f9 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1129,9 +1129,6 @@ a register, a paste on a visual selected area will paste that single line on each of the selected lines (thus replacing the blockwise selected region by a block of the pasted line). -Use |zP|/|zp| to paste a blockwise yanked register without appending trailing -spaces. - *blockwise-register* If you use a blockwise Visual mode command to get the text into the register, the block of text will be inserted before ("P") or after ("p") the cursor @@ -1142,6 +1139,9 @@ this happen. However, if the width of the block is not a multiple of a <Tab> width and the text after the inserted block contains <Tab>s, that text may be misaligned. +Use |zP|/|zp| to paste a blockwise yanked register without appending trailing +spaces. + Note that after a charwise yank command, Vim leaves the cursor on the first yanked character that is closest to the start of the buffer. This means that "yl" doesn't move the cursor, but "yh" moves the cursor one character left. diff --git a/runtime/doc/diagnostic.txt b/runtime/doc/diagnostic.txt index 75c8a2ad6f..17d317522b 100644 --- a/runtime/doc/diagnostic.txt +++ b/runtime/doc/diagnostic.txt @@ -254,12 +254,31 @@ config({opts}, {namespace}) *vim.diagnostic.config()* Configure diagnostic options globally or for a specific diagnostic namespace. + Configuration can be specified globally, per-namespace, or + ephemerally (i.e. only for a single call to + |vim.diagnostic.set()| or |vim.diagnostic.show()|). Ephemeral + configuration has highest priority, followed by namespace + configuration, and finally global configuration. + + For example, if a user enables virtual text globally with > + + vim.diagnostic.config({virt_text = true}) +< + + and a diagnostic producer sets diagnostics with > + + vim.diagnostic.set(ns, 0, diagnostics, {virt_text = false}) +< + + then virtual text will not be enabled for those diagnostics. + Note: Each of the configuration options below accepts one of the following: • `false` : Disable this feature • `true` : Enable this feature, use default settings. - • `table` : Enable this feature with overrides. + • `table` : Enable this feature with overrides. Use an + empty table to use default values. • `function` : Function with signature (namespace, bufnr) that returns any of the above. @@ -460,8 +479,9 @@ match({str}, {pat}, {groups}, {severity_map}, {defaults}) For example, consider a line of output from a linter: > WARNING filename:27:3: Variable 'foo' does not exist +< - < This can be parsed into a diagnostic |diagnostic-structure| + This can be parsed into a diagnostic |diagnostic-structure| with: > local s = "WARNING filename:27:3: Variable 'foo' does not exist" diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt index 0e7e461a61..efba9020f9 100644 --- a/runtime/doc/editing.txt +++ b/runtime/doc/editing.txt @@ -1275,10 +1275,12 @@ exist, the next-higher scope in the hierarchy applies. *:chd* *:chdir* :chd[ir][!] [path] Same as |:cd|. - *:tc* *:tcd* *E5000* *E5001* *E5002* -:tc[d][!] {path} Like |:cd|, but set the current directory for the - current tab and window. The current directory for - other tabs and windows is not changed. + *:tc* *:tcd* +:tc[d][!] {path} Like |:cd|, but only set the directory for the current + tab. The current window will also use this directory. + The current directory is not changed for windows in + other tabs and for windows in the current tab that + have their own window-local directory. *:tcd-* :tc[d][!] - Change to the previous current directory (before the @@ -1302,15 +1304,30 @@ exist, the next-higher scope in the hierarchy applies. *:pw* *:pwd* *E187* :pw[d] Print the current directory name. Also see |getcwd()|. + *:pwd-verbose* + When 'verbose' is non-zero, |:pwd| will also display + what scope the current directory was set. Example: > -So long as no |:tcd| or |:lcd| command has been used, all windows share the -same "current directory". Using a command to jump to another window doesn't + " Set by :cd + :verbose pwd + [global] /path/to/current + + " Set by :lcd + :verbose pwd + [window] /path/to/current + + " Set by :tcd + :verbose pwd + [tabpage] /path/to/current + +So long as no |:lcd| or |:tcd| command has been used, all windows share the +same current directory. Using a command to jump to another window doesn't change anything for the current directory. When |:lcd| has been used for a window, the specified directory becomes the current directory for that window. Windows where the |:lcd| command has not been used stick to the global or tab-local directory. When jumping to another -window the current directory will become the last specified local current +window the current directory is changed to the last specified local current directory. If none was specified, the global or tab-local directory is used. When changing tabs the same behaviour applies. If the current tab has no @@ -1467,6 +1484,11 @@ It is also possible that you modified the file yourself, from another edit session or with another command (e.g., a filter command). Then you will know which version of the file you want to keep. +The accuracy of the time check depends on the filesystem. On Unix it is +usually sub-second. With old file sytems and on MS-Windows it is normally one +second. Use has('nanotime') check if sub-second time stamp checks are +available. + There is one situation where you get the message while there is nothing wrong: On a Win32 system on the day daylight saving time starts. There is something in the Win32 libraries that confuses Vim about the hour time difference. The diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index e956ccaa77..4467afaa16 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -2316,6 +2316,7 @@ chansend({id}, {data}) Number Writes {data} to channel char2nr({expr}[, {utf8}]) Number ASCII/UTF-8 value of first char in {expr} charidx({string}, {idx} [, {countcc}]) Number char index of byte {idx} in {string} +chdir({dir}) String change current working directory cindent({lnum}) Number C indent for line {lnum} clearmatches([{win}]) none clear all matches col({expr}) Number column nr of cursor or mark @@ -2461,6 +2462,7 @@ has({feature}) Number |TRUE| if feature {feature} supported has_key({dict}, {key}) Number |TRUE| if {dict} has entry {key} haslocaldir([{winnr} [, {tabnr}]]) Number |TRUE| if current window executed |:lcd| + or |:tcd| hasmapto({what} [, {mode} [, {abbr}]]) Number |TRUE| if mapping to {what} exists histadd({history}, {item}) String add an item to a history @@ -3280,6 +3282,27 @@ charidx({string}, {idx} [, {countcc}]) echo charidx('áb́ć', 6, 1) returns 4 echo charidx('áb́ć', 16) returns -1 +chdir({dir}) *chdir()* + Change the current working directory to {dir}. The scope of + the directory change depends on the directory of the current + window: + - If the current window has a window-local directory + (|:lcd|), then changes the window local directory. + - Otherwise, if the current tabpage has a local + directory (|:tcd|) then changes the tabpage local + directory. + - Otherwise, changes the global directory. + If successful, returns the previous working directory. Pass + this to another chdir() to restore the directory. + On failure, returns an empty string. + + Example: > + let save_dir = chdir(newdir) + if save_dir + " ... do some work + call chdir(save_dir) + endif +< cindent({lnum}) *cindent()* Get the amount of indent for line {lnum} according the C indenting rules, as with 'cindent'. @@ -4987,6 +5010,8 @@ getcwd([{winnr}[, {tabnr}]]) *getcwd()* getcwd(0, 0) < If {winnr} is -1 it is ignored, only the tab is resolved. {winnr} can be the window number or the |window-ID|. + If both {winnr} and {tabnr} are -1 the global working + directory is returned. Can also be used as a |method|: > GetWinnr()->getcwd() diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 981bdd09fc..3520d40591 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -5981,13 +5981,13 @@ A jump table for the options with a short description can be found at |Q_op|. return value of expr contains % items they will get expanded. The expression can contain the } character, the end of expression is denoted by %}. - The For example: > + For example: > func! Stl_filename() abort return "%t" endfunc < `stl=%{Stl_filename()}` results in `"%t"` `stl=%{%Stl_filename()%}` results in `"Name of current file"` - } - End of `{%` expression + %} - End of `{%` expression ( - Start of item group. Can be used for setting the width and alignment of a section. Must be followed by %) somewhere. ) - End of item group. No width fields allowed. diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt index c49cc6d540..dfed39dba6 100644 --- a/runtime/doc/pattern.txt +++ b/runtime/doc/pattern.txt @@ -977,7 +977,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on): /.*\%17v < Column 17 is highlighted by 'hlsearch' because there is another match where ".*" matches zero characters. -< + Character classes: \i identifier character (see 'isident' option) */\i* diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt index 56fe5ada2b..f53d578456 100644 --- a/runtime/doc/usr_22.txt +++ b/runtime/doc/usr_22.txt @@ -202,14 +202,28 @@ the other window. This is called a local directory. > :pwd /home/Bram/VeryLongFileName -So long as no ":lcd" command has been used, all windows share the same current -directory. Doing a ":cd" command in one window will also change the current +So long as no `:lcd` command has been used, all windows share the same current +directory. Doing a `:cd` command in one window will also change the current directory of the other window. - For a window where ":lcd" has been used a different current directory is -remembered. Using ":cd" or ":lcd" in other windows will not change it. - When using a ":cd" command in a window that uses a different current + For a window where `:lcd` has been used a different current directory is +remembered. Using `:cd` or `:lcd` in other windows will not change it. + When using a `:cd` command in a window that uses a different current directory, it will go back to using the shared directory. + +TAB LOCAL DIRECTORY + +When you open a new tab page, it uses the directory of the window in the +previous tab page from which the new tab page was opened. You can change the +directory of the current tab page using the `:tcd` command. All the windows in +a tab page share this directory except for windows with a window-local +directory. Any new windows opened in this tab page will use this directory as +the current working directory. Using a `:cd` command in a tab page will not +change the working directory of tab pages which have a tab local directory. +When the global working directory is changed using the ":cd" command in a tab +page, it will also change the current tab page working directory. + + ============================================================================== *22.3* Finding a file diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt index c575dd9fd8..6a9284dac9 100644 --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -785,9 +785,10 @@ System functions and manipulation of files: isdirectory() check if a directory exists getfsize() get the size of a file getcwd() get the current working directory - haslocaldir() check if current window used |:lcd| + haslocaldir() check if current window used |:lcd| or |:tcd| tempname() get the name of a temporary file mkdir() create a new directory + chdir() change current working directory delete() delete a file rename() rename a file system() get the result of a shell command as a string diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index b06fa7518c..5484e27797 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -168,7 +168,7 @@ g8 Print the hex values of the bytes used in the *:z!* :[range]z![+-^.=][count] - Like ":z:", but when [count] is not specified, it + Like ":z", but when [count] is not specified, it defaults to the Vim window height minus one. :[range]z[!]#[+-^.=][count] *:z#* diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 64824b2e3f..7e7bb7d62f 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -180,6 +180,7 @@ Commands: |:match| can be invoked before highlight group is defined Events: + |DirChanged| can be triggered when switching to another window |Signal| |TabNewEntered| |TermClose| @@ -196,6 +197,10 @@ Functions: |stdpath()| |system()|, |systemlist()| can run {cmd} directly (without 'shell') |matchadd()| can be called before highlight group is defined + |getcwd()| and |haslocaldir()| may throw errors. *E5000* *E5001* *E5002* + |haslocaldir()|'s only possible return values are 0 and 1, it never returns 2. + `getcwd(-1)` is equivalent to `getcwd(-1, 0)` instead of returning the global + working directory. Use `getcwd(-1, -1)` to get the global working directory. Highlight groups: |highlight-blend| controls blend level for a highlight group |