aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/editing.txt59
-rw-r--r--runtime/doc/eval.txt38
2 files changed, 75 insertions, 22 deletions
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index d2b9374143..ebf524fdbb 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1216,12 +1216,20 @@ use has("browsefilter"): >
==============================================================================
7. The current directory *current-directory*
-You may use the |:cd| and |:lcd| commands to change to another directory, so
-you will not have to type that directory name in front of the file names. It
-also makes a difference for executing external commands, e.g. ":!ls".
+You may use the |:cd|, |:tcd| and |:lcd| commands to change to another
+directory, so you will not have to type that directory name in front of the
+file names. It also makes a difference for executing external commands, e.g.
+":!ls".
-Changing directory fails when the current buffer is modified, the '.' flag is
-present in 'cpoptions' and "!" is not used in the command.
+There are three levels of working directories: global, tab and window. The
+local working directory of the current window takes precedence over the local
+working directory of the tab, which in turn takes precedence over the global
+working directory. If a local working directory, tab or window, does not
+exist, the next one in the hierarchy applies.
+
+All commands for changing the working directory can be suffixed with an
+exclamation mark (e.g. |:cd!|). This is for compatibility with Vim and will be
+ignored by Neovim.
*:cd* *E747* *E472*
:cd[!] On non-Unix systems: Print the current directory
@@ -1246,29 +1254,50 @@ present in 'cpoptions' and "!" is not used in the command.
*: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. The current directory for other tabs
+ or the local directory of windows in this tab is not
+ changed, except for the current window.
+
+ *:tcd-*
+:tcd[!] - Change to the previous current directory (before the
+ previous ":tcd {path}" command).
+
+ *:tch* *:tchdir*
+:tch[dir][!] Same as |:tcd|.
+
*:lc* *:lcd*
:lc[d][!] {path} Like |:cd|, but only set the current directory for the
current window. The current directory for other
- windows is not changed.
+ windows or any tabs is not changed.
*:lch* *:lchdir*
:lch[dir][!] Same as |:lcd|.
+ *:lcd-*
+:lcd[!] - Change to the previous current directory (before the
+ previous ":tcd {path}" command).
+
*:pw* *:pwd* *E187*
:pw[d] Print the current directory name.
Also see |getcwd()|.
-So long as no |:lcd| 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.
+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
+change anything for the current directory.
When a |:lcd| command 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 current directory. When jumping
-to another window the current directory will become the last specified local
-current directory. If none was specified, the global current directory is
-used.
-When a |:cd| command is used, the current window will lose his local current
-directory and will use the global current directory from now on.
+command has not been used stick to the tab- or global current directory. When
+jumping to another window the current directory will become the last specified
+local current directory. If none was specified, the tab- or global current
+directory is used.
+When changing tabs the same behaviour applies. If the current tab has no
+local working directory the global working directory is used. When a |:cd|
+command is used, the current window and tab will lose their local current
+directories and will use the global current directory from now on. When a
+|:tcd| command is used, only the current window will lose its local working
+directory.
After using |:cd| the full path name will be used for reading and writing
files. On some networked file systems this may cause problems. The result of
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 476ab71461..3e1281a021 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1886,7 +1886,7 @@ getcmdpos() Number return cursor position in command-line
getcmdtype() String return current command-line type
getcmdwintype() String return current command-line window type
getcurpos() List position of the cursor
-getcwd() String the current working directory
+getcwd( [{scope}]) String the current working directory
getfontname( [{name}]) String name of font being used
getfperm( {fname}) String file permissions of file {fname}
getfsize( {fname}) Number size in bytes of file {fname}
@@ -3559,9 +3559,22 @@ getcurpos() Get the position of the cursor. This is like getpos('.'), but
MoveTheCursorAround
call setpos('.', save_cursor)
<
- *getcwd()*
-getcwd() The result is a String, which is the name of the current
- working directory.
+getcwd([{window}[, {tab}]]) *getcwd()*
+ With no argument the result is a String, which is the name of the
+ current effective working directory. If an arguments are provided for a
+ window or a tabpage the working directory of that scope is returned.
+
+ Tabs and windows are identified using their respective number. If a
+ number is 0 the current tab or window is implied. If one is not given
+ it defaults to 0. Thus
+
+ getcwd()
+ getcwd(0)
+ getcwd(0, 0)
+
+ are all equal. If {window} is -1 it will be ignored and only the tab
+ will be looked at.
+
getfsize({fname}) *getfsize()*
The result is a Number, which is the size in bytes of the
@@ -3896,9 +3909,20 @@ has_key({dict}, {key}) *has_key()*
The result is a Number, which is 1 if |Dictionary| {dict} has
an entry with key {key}. Zero otherwise.
-haslocaldir() *haslocaldir()*
- The result is a Number, which is 1 when the current
- window has set a local path via |:lcd|, and 0 otherwise.
+haslocaldir([{window}[, {tab}]]) *haslocaldir()*
+ The result is a Number, which is 1 when the specified tabpage or window
+ has a local path set via |:lcd| or |:tcd|, and 0 otherwise.
+
+ Tabs and windows are identified using their respective number. If a
+ number is 0 the current tab or window is implied. If one is not given
+ it defaults to 0. Thus
+
+ haslocaldir()
+ haslocaldir(0)
+ haslocaldir(0, 0)
+
+ are all equal. If {window} is -1 it will be ignored and only the tab
+ will be looked at.
hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
The result is a Number, which is 1 if there is a mapping that