characters. The
value of 'maxcombine' doesn't matter.
Example of a character with two composing characters:
e0 b8 81 + e0 b8 b9 + e0 b9 89 ~
*8g8*
8g8 Find an illegal UTF-8 byte sequence at or after the
cursor.
Can be used when editing a file that was supposed to
be UTF-8 but was read as if it is an 8-bit encoding
because it contains illegal bytes.
Does not wrap around the end of the file.
Note that when the cursor is on an illegal byte or the
cursor is halfway through a multibyte character the
command won't move the cursor.
*gx*
gx Opens the current filepath or URL (decided by
|<cfile>|, 'isfname') at cursor using the system
default handler. Mapped to |vim.ui.open()|.
*v_gx*
{Visual}gx Opens the selected text using the system default
handler. Mapped to |vim.ui.open()|.
*:p* *:pr* *:print* *E749*
:[range]p[rint] [flags]
Print [range] lines (default current line). Can also
be spelled `:[range]|` due to Vi compatibility (see
|:bar|). Gives an error in an empty buffer.
In the GUI you can use the File.Print menu entry.
See |ex-flags| for [flags].
The |:filter| command can be used to only show lines
matching a pattern.
:[range]p[rint] {count} [flags]
Print {count} lines, starting with [range] (default
current line |cmdline-ranges|).
See |ex-flags| for [flags].
*:l* *:list*
:[range]l[ist] [count] [flags]
Same as :print, but show tabs as ">", trailing spaces
as "-", and non-breakable space characters as "+" by
default. Further changed by the 'listchars' option.
See |ex-flags| for [flags].
*:nu* *:number*
:[range]nu[mber] [count] [flags]
Same as :print, but precede each line with its line
number. (See also |hl-LineNr| and 'numberwidth').
See |ex-flags| for [flags].
*:#*
:[range]# [count] [flags]
synonym for :number.
*:#!* *vim-shebang*
:#!{anything} Ignored, so that you can start a Vim script with: >
#!vim -S
let mylogbook='$HOME/logbook.md'
exe $':e {mylogbook}'
$
put ='## ' .. strftime('%d. %b %Y')
norm! o
<
Make that script executable and run it to create a
new diary entry.
*:z* *E144*
:[range]z[+-^.=][count] Display several lines of text surrounding the line
specified with [range], or around the current line
if there is no [range].
If there is a [count], that's how many lines you'll
see; if there is no [count] and only one window then
twice the value of the 'scroll' option is used,
otherwise the current window height minus 3 is used.
This is the value of "scr" in the table below.
If there is a [count] the 'window' option is set to
its value.
:z can be used either alone or followed by any of
several marks. These have the following effect:
mark first line last line new cursor line ~
---- ---------- --------- ------------
+ current line 1 scr forward 1 scr forward
- 1 scr back current line current line
^ 2 scr back 1 scr back 1 scr back
. 1/2 scr back 1/2 scr fwd 1/2 scr fwd
= 1/2 scr back 1/2 scr fwd current line
Specifying no mark at all is the same as "+".
If the mark is "=", a line of dashes is printed
around the current line.
*:z!*
:[range]z![+-^.=][count]
Like ":z", but when [count] is not specified, it
defaults to the Vim window height minus one.
:[range]z[!]#[+-^.=][count] *:z#*
Like ":z" or ":z!", but number the lines.
*:=*
:= [args] Without [args]: prints the last line number.
With [args]: equivalent to `:lua ={expr}`. see |:lua|
:{range}= Prints the last line number in {range}. For example,
this prints the current line number: >
:.=
:norm[al][!] {commands} *:norm* *:normal*
Execute Normal mode commands {commands}. This makes
it possible to execute Normal mode commands typed on
the command-line. {commands} are executed like they