1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
|
.Dd January 28, 2016
.Dt NVIM 1
.Os
.Sh NAME
.Nm nvim
.Nd edit text
.Sh SYNOPSIS
.Nm
.Op Ar options
.Op Ar file ...
.Nm
.Op Ar options
.Fl
.Nm
.Op Ar options
.Fl t Ar tag
.Nm
.Op Ar options
.Fl q Op Ar errorfile
.Sh DESCRIPTION
.Nm
is a text editor based on Vim.
To enter commands in
.Nm ,
type a colon
.Pq Sq \&:
which is also used in this manual to denote commands.
For more information, consult the on-line help system with the
.Ic :help
command.
.Bl -tag -width Fl
.It Ar file ...
File(s) to edit.
If none are specified, open an empty buffer.
If multiple files are specified, open one buffer for each file.
To switch between buffers, use the
.Ic :next
and
.Ic :previous
commands.
.It Fl
Read text from standard input until
.Dv EOF ,
then open a buffer with that text.
Commands are read from standard error, which should be a terminal.
.It Fl t Ar tag
The file to edit and the initial cursor position depends on a
tag, a sort of goto label.
.Ar tag
is looked up in the tags file, the associated file becomes the current
file and the associated command is executed.
If
.Ar tag
is a function name, the file containing that function is opened
with the cursor positioned at the start of the function.
See
.Ic :help tag-commands .
.It Fl q Op Ar errorfile
QuickFix mode.
Display the first error in
.Ar errorfile .
If
.Ar errorfile
is omitted, the value of the 'errorfile' option is used (defaults to
.Cm errors.err ) .
Further errors can be jumped to with the
.Ic :cnext
command.
See
.Ic :help quickfix .
.It There are a number of other options:
.It Fl -
Interpret all further arguments as files.
Can be used to edit files starting with a hyphen
.Pq Sq - .
.It Fl -literal
Interpret filenames literally, that is, do not expand wildcards.
Has no effect on Unix-like systems, where the shell expands wildcards.
.It Fl e
Ex mode.
See
.Ic :help Ex-mode .
.It Fl E
Improved Ex mode.
See
.Ic :help gQ .
.It Fl s
Silent mode.
Only takes effect if
.Fl e
or
.Fl E
is specified before it.
.It Fl d
Diff mode.
Show the difference between two to four files, similar to
.Xr sdiff 1 .
See
.Ic :help diff .
.It Fl R
Read-only mode.
Sets the option 'readonly'.
Implies
.Fl n .
Buffers can still be edited, but cannot be written to disk if already
associated with a file.
To overwrite a file, add an exclamation mark to the needed Ex command, such as
.Ic :w! .
See
.Ic :help 'readonly' .
.It Fl Z
Restricted mode.
Disable commands that make use of an external shell.
.It Fl m
Disable file modifications.
Unsets the option 'write'.
Writing to a file is disabled, but buffers can still be modified.
.It Fl M
Disable file and buffer modifications.
Unsets the options 'write' and 'modifiable'.
Note that these options can be set to re-enable making modifications.
.It Fl b
Binary mode.
See
.Ic :help edit-binary .
.It Fl l
Lisp mode.
Sets the options 'lisp' and 'showmatch'.
.It Fl A
Arabic mode.
Sets the option 'arabic'.
.It Fl F
Farsi mode.
Sets the options 'fkmap' and 'rightleft'.
.It Fl H
Hebrew mode.
Sets the options 'hkmap' and 'rightleft'.
.It Fl V Ns Oo Ar N Oc Ns Op Ar file
Verbose mode.
Print messages about which files are being sourced and for reading and
writing a ShaDa file.
.Ar N
is the value for the 'verbose' option; defaults to
.Cm 10
if omitted.
If
.Ar file
is specified, append messages to
.Ar file
instead of printing them.
.It Fl D
Debugging mode.
Started when executing the first command from a script.
.It Fl n
Disable the use of swap files.
Sets the option 'updatecount' to
.Cm 0 .
Can be useful for editing file(s) on a slow medium.
.It Fl r Op Ar file
Recovery mode.
If
.Ar file
is omitted
then list swap files with recovery information.
Otherwise the swap file
.Ar file
is used to recover a crashed session.
The swap file has the same name as the file it's associated with, but with
.Sq .swp
appended.
See
.Ic :help recovery .
.It Fl L Op Ar file
Alias for
.Fl r .
.It Fl u Ar vimrc
Use
.Ar vimrc
instead of the default of
.Pa ~/.config/nvim/init.vim .
If
.Ar vimrc
is
.Cm NORC ,
do not load any initialization files (excluding plugins),
and do not attempt to parse environment variables.
If
.Ar vimrc
is
.Cm NONE ,
loading plugins is also skipped.
See
.Ic :help initialization .
.It Fl i Ar shada
Use
.Ar shada
instead of the default of
.Pa ~/.local/share/nvim/shada/main.shada .
If
.Ar shada
is
.Cm NONE ,
do not read or write a ShaDa file.
See
.Ic :help shada .
.It Fl -noplugin
Skip loading plugins.
Implied by
.Cm -u NONE .
.It Fl o Ns Op Ar N
Open
.Ar N
windows stacked horizontally.
If
.Ar N
is omitted, open one window for each file.
If
.Ar N
is less than the number of file arguments, allocate windows for the first
.Ar N
files and hide the rest.
.It Fl O Ns Op Ar N
Like
.Fl o ,
but tile windows vertically.
.It Fl p Ns Op Ar N
Like
.Fl o ,
but for tab pages.
.It Cm + Ns Op Ar linenum
For the first file, position the cursor on line
.Ar linenum .
If
.Ar linenum
is omitted, position the cursor on the last line of the file.
Note that
.Cm +5
and
.Cm -c 5
on the command-line are equivalent to
.Ic :5
inside
.Nm .
.It Cm +/ Ns Op Ar pattern
For the first file, position the cursor on the first occurrence of
.Ar pattern .
If
.Ar pattern
is omitted, the most recently used search pattern is used (if there is one).
Note that
.Cm +/foo
and
.Cm -c /foo
on the command-line are equivalent to
.Ic /foo
and
.Ic :/foo
inside
.Nm .
See
.Ic :help search-pattern .
.It Fl c Ar command
Execute
.Ar command
after reading the first file.
Up to 10 instances of
.Fl c
or
.Cm +
can be used.
Note that
.Qq Cm +set si
and
.Cm -c \(dqset si\(dq
are equivalent.
.It Fl -cmd Ar command
Like
.Fl c ,
but execute
.Ar command
before processing any vimrc.
Up to 10 instances of these can be used independently from instances of
.Fl c .
.It Fl S Op Ar session
Source
.Ar session
after the first file argument has been read.
Equivalent to
.Cm -c \(dqsource session\(dq .
.Ar session
cannot start with a hyphen
.Pq Sq - .
If
.Ar session
is omitted, then
.Pa Session.vim ,
if found, is used.
See
.Ic :help session-file .
.It Fl s Ar scriptin
Read normal mode commands from
.Ar scriptin .
The same can be done with the command
.Ic :source! scriptin .
If the end of the file is reached before
.Nm
exits, further characters are read from the keyboard.
.It Fl w Ar scriptout
Append all typed characters to
.Ar scriptout .
Can be used for creating a script to be used with
.Fl s
or
.Ic :source! .
.It Fl W Ar scriptout
Like
.Fl w ,
but truncate
.Ar scriptout .
.It Fl -startuptime Ar file
During startup, append timing messages to
.Ar file .
Can be used to diagnose slow startup times.
.It Fl -api-info
Dump API metadata serialized to msgpack and exit.
.It Fl -embed
Use standard input and standard output as a msgpack-rpc channel.
Implies
.Fl -headless .
.It Fl -headless
Do not start a user interface.
.It Fl h , -help
Print usage information and exit.
.It Fl v , -version
Print version information and exit.
.El
.Sh ENVIRONMENT
.Bl -tag -width Fl
.It Ev VIM
Used to locate various user files, such as the user's init.vim.
.It Ev VIMRUNTIME
Used to locate run time files, such as on-line documentation and
syntax highlighting definitions.
.It Ev XDG_CONFIG_HOME
Path to use for the user-local configuration directory, see
.Sx FILES .
Defaults to
.Pa ~/.config
if not set.
.It Ev XDG_DATA_HOME
Like
.Ev XDG_CONFIG_HOME ,
but used to store data not generally edited by the user,
namely swap, backup, and ShaDa files.
Defaults to
.Pa ~/.local/share
if not set.
.It Ev VIMINIT
A string of Ex commands to be executed at startup.
For example, the command to quit is
.Ic :q ,
so to have
.Nm
quit immediately after starting, set
.Ev VIMINIT
to
.Cm q .
See
.Ic :help VIMINIT .
.It Ev SHELL
Used to set the 'shell' option, which determines the shell used by the
.Ic :terminal
command.
.It Ev NVIM_TUI_ENABLE_CURSOR_SHAPE
If defined, change the cursor shape to a vertical bar while in insert mode.
Requires that the host terminal supports the DECSCUSR CSI escape sequence.
Has no effect in GUIs.
.Pp
Depending on the terminal emulator, using this option with
.Nm
under
.Xr tmux 1
might require adding the following to
.Pa ~/.tmux.conf :
.Bd -literal -offset indent
set -ga terminal-overrides ',*:Ss=\eE[%p1%d q:Se=\eE[2 q'
.Ed
.Pp
See
.Ic terminal-overrides
in the
.Xr tmux 1
manual page for more information.
.El
.Sh FILES
.Bl -tag -width "~/.config/nvim/init.vim"
.It Pa ~/.config/nvim/init.vim
The user-local
.Nm
configuration file.
See
.Ev XDG_CONFIG_HOME
above.
.It Pa ~/.config/nvim
The user-local
.Nm
configuration directory.
See
.Ev XDG_CONFIG_HOME
above.
.It Pa $VIM/sysinit.vim
The system-global
.Nm
configuration file.
.It Pa /usr/local/share/nvim
The system-global
.Nm
runtime directory.
.El
.Sh AUTHORS
.Nm
was started by
.An Thiago de Arruda ,
with a lot of help from others.
.Pp
Most of Vim was written by
.An -nosplit
.An Bram Moolenaar ,
with a lot of help from others.
See
.Ic :help credits .
.Pp
Vim is based on Stevie, worked on by
.An Tim Thompson ,
.An Tony Andrews ,
and
.An G.R. (Fred) Walter .
|