mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
Interface cleanup: Symlink handling & docs
This removes the ability to start nvim via the following aliases in favor of just using their command line arguments: ex vim -e exim vim -E view vim -R gvim vim -g gex vim -eg gview vim -Rg rvim vim -Z rview vim -RZ rgvim vim -gZ rgview vim -RgZ This also removes Vi mode (-v) for consistency. From ':help -v': -v Start Ex in Vi mode. Only makes a difference when the executable is called "ex" or "gvim". For gvim the GUI is not started if possible.
This commit is contained in:
parent
5fcd12f8b5
commit
481ebc0bb1
@ -1551,9 +1551,9 @@ v:profiling Normally zero. Set to one after using ":profile start".
|
||||
See |profiling|.
|
||||
|
||||
*v:progname* *progname-variable*
|
||||
v:progname Contains the name (with path removed) with which Vim was
|
||||
invoked. Allows you to do special initialisations for |view|,
|
||||
|rview|, or any other name you might symlink to Vim.
|
||||
v:progname Contains the name (with path removed) with which Nvim was
|
||||
invoked. Allows you to do special initialisations for any
|
||||
other name you might symlink to Nvim.
|
||||
Read-only.
|
||||
|
||||
*v:progpath* *progpath-variable*
|
||||
|
@ -1128,7 +1128,6 @@ Context-sensitive completion on the command-line:
|
||||
|-+| +[num] put the cursor at line [num] (default: last line)
|
||||
|-+c| +{command} execute {command} after loading the file
|
||||
|-+/| +/{pat} {file} .. put the cursor at the first occurrence of {pat}
|
||||
|-v| -v Vi mode, start ex in Normal mode
|
||||
|-e| -e Ex mode, start vim in Ex mode
|
||||
|-R| -R Read-only mode, implies -n
|
||||
|-m| -m modifications not allowed (resets 'write' option)
|
||||
|
@ -19,11 +19,11 @@ Starting Vim *starting*
|
||||
|
||||
Most often, Vim is started to edit a single file with the command
|
||||
|
||||
vim filename *-vim*
|
||||
nvim filename *-vim*
|
||||
|
||||
More generally, Vim is started with:
|
||||
|
||||
vim [option | filename] ..
|
||||
nvim [option | filename] ..
|
||||
|
||||
Option arguments and file name arguments can be mixed, and any number of them
|
||||
can be given. However, watch out for options that take an argument.
|
||||
@ -39,7 +39,7 @@ filename One or more file names. The first one will be the current
|
||||
on the first line of the buffer.
|
||||
To avoid a file name starting with a '-' being interpreted as
|
||||
an option, precede the arglist with "--", e.g.: >
|
||||
vim -- -filename
|
||||
nvim -- -filename
|
||||
< All arguments after the "--" will be interpreted as file names,
|
||||
no other options or "+command" argument can follow.
|
||||
|
||||
@ -48,22 +48,18 @@ filename One or more file names. The first one will be the current
|
||||
mode is to be used.
|
||||
|
||||
Starting in Normal mode: >
|
||||
vim -
|
||||
ex -v -
|
||||
nvim -
|
||||
< Start editing a new buffer, which is filled with text
|
||||
that is read from stdin. The commands that would normally be
|
||||
read from stdin will now be read from stderr. Example: >
|
||||
find . -name "*.c" -print | vim -
|
||||
find . -name "*.c" -print | nvim -
|
||||
< The buffer will be marked modified, because it contains text
|
||||
that needs to be saved. Except when in readonly mode, then
|
||||
the buffer is not marked modified. Example: >
|
||||
ls | view -
|
||||
<
|
||||
ls | nvim -R -
|
||||
Starting in Ex mode: >
|
||||
ex -
|
||||
vim -e -
|
||||
exim -
|
||||
vim -E
|
||||
nvim -e -
|
||||
nvim -E
|
||||
< Start editing in silent mode. See |-s-ex|.
|
||||
|
||||
*-t* *-tag*
|
||||
@ -85,32 +81,6 @@ filename One or more file names. The first one will be the current
|
||||
(nothing) Without one of the four items above, Vim will start editing a
|
||||
new buffer. It's empty and doesn't have a file name.
|
||||
|
||||
|
||||
The startup mode can be changed by using another name instead of "vim", which
|
||||
is equal to giving options:
|
||||
ex vim -e Start in Ex mode (see |Ex-mode|). *ex*
|
||||
exim vim -E Start in improved Ex mode (see |Ex-mode|). *exim*
|
||||
(normally not installed)
|
||||
view vim -R Start in read-only mode (see |-R|). *view*
|
||||
gvim vim -g Start the GUI (see |gui|). *gvim*
|
||||
gex vim -eg Start the GUI in Ex mode. *gex*
|
||||
gview vim -Rg Start the GUI in read-only mode. *gview*
|
||||
rvim vim -Z Like "vim", but in restricted mode (see |-Z|) *rvim*
|
||||
rview vim -RZ Like "view", but in restricted mode. *rview*
|
||||
rgvim vim -gZ Like "gvim", but in restricted mode. *rgvim*
|
||||
rgview vim -RgZ Like "gview", but in restricted mode. *rgview*
|
||||
|
||||
Additional characters may follow, they are ignored. For example, you can have
|
||||
"gvim-5" to start the GUI. You must have an executable by that name then, of
|
||||
course.
|
||||
|
||||
On Unix, you would normally have one executable called Vim, and links from the
|
||||
different startup-names to that executable. If your system does not support
|
||||
links and you do not want to have several copies of the executable, you could
|
||||
use an alias instead. For example: >
|
||||
alias view vim -R
|
||||
alias gvim vim -g
|
||||
<
|
||||
*startup-options*
|
||||
The option arguments may be given in any order. Single-letter options can be
|
||||
combined after one dash. There can be no option arguments after the "--"
|
||||
@ -245,28 +215,20 @@ argument.
|
||||
-g Start Vim in GUI mode. See |gui|. For the opposite see |-v|.
|
||||
{not in Vi}
|
||||
|
||||
*-v*
|
||||
-v Start Ex in Vi mode. Only makes a difference when the
|
||||
executable is called "ex" or "gvim". For gvim the GUI is not
|
||||
started if possible.
|
||||
|
||||
*-e*
|
||||
-e Start Vim in Ex mode |Q|. Only makes a difference when the
|
||||
executable is not called "ex".
|
||||
-e Start Vim in Ex mode |Q|.
|
||||
|
||||
*-E*
|
||||
-E Start Vim in improved Ex mode |gQ|. Only makes a difference
|
||||
when the executable is not called "exim".
|
||||
{not in Vi}
|
||||
-E Start Vim in improved Ex mode |gQ|.
|
||||
|
||||
*-s-ex*
|
||||
-s Silent or batch mode. Only when Vim was started as "ex" or
|
||||
when preceded with the "-e" argument. Otherwise see |-s|,
|
||||
which does take an argument while this use of "-s" doesn't.
|
||||
To be used when Vim is used to execute Ex commands from a file
|
||||
instead of a terminal. Switches off most prompts and
|
||||
informative messages. Also warnings and error messages.
|
||||
The output of these commands is displayed (to stdout):
|
||||
-s Silent or batch mode. Only when "-s" is preceded by the "-e"
|
||||
argument. Otherwise see |-s|, which does take an argument
|
||||
while this use of "-s" doesn't. To be used when Vim is used
|
||||
to execute Ex commands from a file instead of a terminal.
|
||||
Switches off most prompts and informative messages. Also
|
||||
warnings and error messages. The output of these commands is
|
||||
displayed (to stdout):
|
||||
:print
|
||||
:list
|
||||
:number
|
||||
@ -561,14 +523,6 @@ argument.
|
||||
Note that the implementation is still primitive. It won't
|
||||
work with all applications and the menu doesn't work.
|
||||
|
||||
If the executable is called "view", Vim will start in Readonly mode. This is
|
||||
useful if you can make a hard or symbolic link from "view" to "vim".
|
||||
Starting in Readonly mode can also be done with "vim -R".
|
||||
|
||||
If the executable is called "ex", Vim will start in "Ex" mode. This means it
|
||||
will accept only ":" commands. But when the "-v" argument is given, Vim will
|
||||
start in Normal mode anyway.
|
||||
|
||||
Additional arguments are available on unix like systems when compiled with
|
||||
X11 GUI support. See |gui-resources|.
|
||||
|
||||
|
@ -434,27 +434,9 @@ someone supplied, you can't do this. Do delete the files manually, here is an
|
||||
example for when "/usr/local" was used as the root: >
|
||||
|
||||
rm -rf /usr/local/share/vim/vim61
|
||||
rm /usr/local/bin/ex
|
||||
rm /usr/local/bin/gview
|
||||
rm /usr/local/bin/gvim
|
||||
rm /usr/local/bin/gvim
|
||||
rm /usr/local/bin/rgview
|
||||
rm /usr/local/bin/rgvim
|
||||
rm /usr/local/bin/rview
|
||||
rm /usr/local/bin/rvim
|
||||
rm /usr/local/bin/rvim
|
||||
rm /usr/local/bin/view
|
||||
rm /usr/local/bin/vim
|
||||
rm /usr/local/bin/vimtutor
|
||||
rm /usr/local/bin/xxd
|
||||
rm /usr/local/man/man1/ex.1
|
||||
rm /usr/local/man/man1/gview.1
|
||||
rm /usr/local/man/man1/gvim.1
|
||||
rm /usr/local/man/man1/rgview.1
|
||||
rm /usr/local/man/man1/rgvim.1
|
||||
rm /usr/local/man/man1/rview.1
|
||||
rm /usr/local/man/man1/rvim.1
|
||||
rm /usr/local/man/man1/view.1
|
||||
rm /usr/local/man/man1/vim.1
|
||||
rm /usr/local/man/man1/vimtutor.1
|
||||
rm /usr/local/man/man1/xxd.1
|
||||
|
@ -830,10 +830,9 @@ Only Vim is able to accept options in between and after the file names.
|
||||
|
||||
-D Vim: debug mode.
|
||||
|
||||
-e Elvis, Nvi, Vim: Start in Ex mode, as if the executable is
|
||||
called "ex".
|
||||
-e Elvis, Nvi, Vim: Start in Ex mode.
|
||||
|
||||
-E Vim: Start in improved Ex mode |gQ|, like "exim".
|
||||
-E Vim: Start in improved Ex mode |gQ|.
|
||||
|
||||
-f Vim: Run GUI in foreground.
|
||||
-f {session} Elvis: Use {session} as the session file.
|
||||
|
@ -14,7 +14,7 @@
|
||||
" License: VIM License
|
||||
" Vim is Charityware, see ":help Uganda"
|
||||
"
|
||||
" Usage: $ ls -la | view -c "set ft=dirpager" -
|
||||
" Usage: $ ls -la | nvim -R -c "set ft=dirpager" -
|
||||
"
|
||||
"
|
||||
",----[ ls(1posix) ]--------------------------------------------------
|
||||
|
@ -213,7 +213,7 @@ open_buffer (
|
||||
* So the modelines have priority over auto commands.
|
||||
*/
|
||||
/* When reading stdin, the buffer contents always needs writing, so set
|
||||
* the changed flag. Unless in readonly mode: "ls | gview -".
|
||||
* the changed flag. Unless in readonly mode: "ls | nvim -R -".
|
||||
* When interrupted and 'cpoptions' contains 'i' set changed flag. */
|
||||
if ((got_int && vim_strchr(p_cpo, CPO_INTMOD) != NULL)
|
||||
|| modified_was_set /* ":set modified" used in autocmd */
|
||||
|
@ -853,7 +853,7 @@ void do_bang(int addr_count, exarg_T *eap, int forceit, int do_in, int do_out)
|
||||
int scroll_save = msg_scroll;
|
||||
|
||||
/*
|
||||
* Disallow shell commands for "rvim".
|
||||
* Disallow shell commands in restricted mode (-Z)
|
||||
* Disallow shell commands from .exrc and .vimrc in current directory for
|
||||
* security reasons.
|
||||
*/
|
||||
@ -1217,7 +1217,7 @@ do_shell (
|
||||
int save_nwr;
|
||||
|
||||
/*
|
||||
* Disallow shell commands for "rvim".
|
||||
* Disallow shell commands in restricted mode (-Z)
|
||||
* Disallow shell commands from .exrc and .vimrc in current directory for
|
||||
* security reasons.
|
||||
*/
|
||||
@ -3378,7 +3378,7 @@ void ex_z(exarg_T *eap)
|
||||
int check_restricted(void)
|
||||
{
|
||||
if (restricted) {
|
||||
EMSG(_("E145: Shell commands not allowed in rvim"));
|
||||
EMSG(_("E145: Shell commands not allowed in restricted mode"));
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
|
@ -5375,9 +5375,7 @@ static void ex_hide(exarg_T *eap)
|
||||
*/
|
||||
static void ex_stop(exarg_T *eap)
|
||||
{
|
||||
/*
|
||||
* Disallow suspending for "rvim".
|
||||
*/
|
||||
// Disallow suspending in restricted mode (-Z)
|
||||
if (!check_restricted()) {
|
||||
if (!eap->forceit) {
|
||||
autowrite_all();
|
||||
|
@ -601,7 +601,7 @@ EXTERN volatile int full_screen INIT(= FALSE);
|
||||
* otherwise only writing some messages */
|
||||
|
||||
EXTERN int restricted INIT(= FALSE);
|
||||
/* TRUE when started as "rvim" */
|
||||
// TRUE when started in restricted mode (-Z)
|
||||
EXTERN int secure INIT(= FALSE);
|
||||
/* non-zero when only "safe" commands are
|
||||
* allowed, e.g. when sourcing .exrc or .vimrc
|
||||
|
@ -204,11 +204,9 @@ int main(int argc, char **argv)
|
||||
// Check if we have an interactive window.
|
||||
check_and_set_isatty(¶ms);
|
||||
|
||||
/*
|
||||
* Figure out the way to work from the command name argv[0].
|
||||
* "view" sets "readonlymode", "rvim" sets "restricted", etc.
|
||||
*/
|
||||
parse_command_name(¶ms);
|
||||
// Get the name with which Nvim was invoked, with and without path.
|
||||
set_vim_var_string(VV_PROGPATH, (char_u *)argv[0], -1);
|
||||
set_vim_var_string(VV_PROGNAME, path_tail((char_u *)argv[0]), -1);
|
||||
|
||||
/*
|
||||
* Process the command line arguments. File names are put in the global
|
||||
@ -820,69 +818,8 @@ static void init_locale(void)
|
||||
}
|
||||
TIME_MSG("locale set");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Check for: [r][g][vi|vim|view][ex[im]]
|
||||
* If the executable name starts with "r" we disable shell commands.
|
||||
* If the next character is "g" we run the GUI version.
|
||||
* If the next characters are "view" we start in readonly mode.
|
||||
* If the next characters are "ex" we start in Ex mode. If it's followed
|
||||
* by "im" use improved Ex mode.
|
||||
*/
|
||||
static void parse_command_name(mparm_T *parmp)
|
||||
{
|
||||
char_u *initstr;
|
||||
|
||||
initstr = path_tail((char_u *)parmp->argv[0]);
|
||||
|
||||
set_vim_var_string(VV_PROGNAME, initstr, -1);
|
||||
set_vim_var_string(VV_PROGPATH, (char_u *)parmp->argv[0], -1);
|
||||
|
||||
if (parse_string(&initstr, "editor", 6))
|
||||
return;
|
||||
|
||||
if (parse_char_i(&initstr, 'r'))
|
||||
restricted = TRUE;
|
||||
|
||||
/* "gvim" starts the GUI. Also accept "Gvim" for MS-Windows. */
|
||||
if (parse_char_i(&initstr, 'g'))
|
||||
main_start_gui();
|
||||
|
||||
if (parse_string(&initstr, "view", 4)) {
|
||||
readonlymode = TRUE;
|
||||
curbuf->b_p_ro = TRUE;
|
||||
p_uc = 10000; /* don't update very often */
|
||||
} else {
|
||||
parse_string(&initstr, "vim", 3); /* consume "vim" if it's there */
|
||||
}
|
||||
|
||||
if (parse_string(&initstr, "ex", 2)) {
|
||||
if (parse_string(&initstr, "im", 2))
|
||||
exmode_active = EXMODE_VIM;
|
||||
else
|
||||
exmode_active = EXMODE_NORMAL;
|
||||
}
|
||||
}
|
||||
|
||||
static bool parse_char_i(char_u **input, char val)
|
||||
{
|
||||
if (TOLOWER_ASC(**input) == val) {
|
||||
*input += 1; /* or (*input)++ WITH parens */
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool parse_string(char_u **input, char *val, int len)
|
||||
{
|
||||
if (STRNICMP(*input, val, len) == 0) {
|
||||
*input += len;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scan the command line arguments.
|
||||
@ -1134,10 +1071,6 @@ static void command_line_scan(mparm_T *parmp)
|
||||
}
|
||||
break;
|
||||
|
||||
case 'v': /* "-v" Vi-mode (as if called "vi") */
|
||||
exmode_active = 0;
|
||||
break;
|
||||
|
||||
case 'w': /* "-w{number}" set window height */
|
||||
/* "-w {scriptout}" write to script */
|
||||
if (vim_isdigit(((char_u *)argv[0])[argv_idx])) {
|
||||
@ -2034,13 +1967,12 @@ static void usage(void)
|
||||
#if !defined(UNIX)
|
||||
mch_msg(_(" --literal Don't expand wildcards\n"));
|
||||
#endif
|
||||
mch_msg(_(" -v Vi mode (like \"vi\")\n"));
|
||||
mch_msg(_(" -e Ex mode (like \"ex\")\n"));
|
||||
mch_msg(_(" -e Ex mode\n"));
|
||||
mch_msg(_(" -E Improved Ex mode\n"));
|
||||
mch_msg(_(" -s Silent (batch) mode (only for \"ex\")\n"));
|
||||
mch_msg(_(" -s Silent (batch) mode (only for ex mode)\n"));
|
||||
mch_msg(_(" -d Diff mode\n"));
|
||||
mch_msg(_(" -R Readonly mode (like \"view\")\n"));
|
||||
mch_msg(_(" -Z Restricted mode (like \"rvim\")\n"));
|
||||
mch_msg(_(" -R Readonly mode\n"));
|
||||
mch_msg(_(" -Z Restricted mode\n"));
|
||||
mch_msg(_(" -m Modifications (writing files) not allowed\n"));
|
||||
mch_msg(_(" -M Modifications in text not allowed\n"));
|
||||
mch_msg(_(" -b Binary mode\n"));
|
||||
|
Loading…
Reference in New Issue
Block a user