From b0b8969e84704bc5526ad444845a91188ef0f9c7 Mon Sep 17 00:00:00 2001 From: Phillip Weitlauf Date: Mon, 15 Sep 2025 15:38:21 -0700 Subject: [PATCH 1/2] Update deploy workflow and add VSCode/Neovim docs Expanded deploy workflow to support both 'main' and 'Main' branches and improved secret/environment variable syntax. Added VSCode workspace color settings and a Neovim quick reference markdown doc. Minor updates to README and package.json, and fixed script path in sync-secrets.sh. --- .github/workflows/deploy.yml | 18 +- .vscode/settings.json | 29 +++ Notion Docs/#Neovimdocsquickreference#.md | 253 ++++++++++++++++++++++ README.md | 82 ++++++- package.json | 1 + scripts/sync-secrets.sh | 40 +++- 6 files changed, 400 insertions(+), 23 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 Notion Docs/#Neovimdocsquickreference#.md diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 43cadce..8be19f4 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -2,7 +2,7 @@ name: Deploy on: push: - branches: [ "main" ] + branches: [ "main", "Main" ] workflow_dispatch: inputs: dry_run: @@ -35,21 +35,21 @@ jobs: - name: Sync secrets from 1Password (SA preferred, Connect fallback) env: # Option 2: Service Account (preferred) - OP_SERVICE_ACCOUNT_TOKEN: $ secrets.OP_SERVICE_ACCOUNT_TOKEN + OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} # Option 1: Connect server (fallback) - OP_CONNECT_HOST: $ secrets.OP_CONNECT_HOST - OP_CONNECT_TOKEN: $ secrets.OP_CONNECT_TOKEN + OP_CONNECT_HOST: ${{ secrets.OP_CONNECT_HOST }} + OP_CONNECT_TOKEN: ${{ secrets.OP_CONNECT_TOKEN }} # Map selection (auto: staging branch -> staging map) - SECRETS_MAP: $ github.ref_name == 'staging' && '[secrets.map](http://secrets.map).staging.json' || '[secrets.map](http://secrets.map).json' + SECRETS_MAP: ${{ github.ref_name == 'staging' && 'secrets.map.staging.json' || 'secrets.map.json' }} # DRY_RUN from workflow input - DRY_RUN: $ github.event.inputs.dry_run + DRY_RUN: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run || 'false' }} run: | sudo apt-get update && sudo apt-get install -y jq - bash scripts/[sync-secrets.sh](http://sync-secrets.sh) + bash scripts/sync-secrets.sh - name: Deploy (Cloudflare Workers) - if: $ github.event.inputs.dry_run != 'true' && github.event.inputs.dry_run != '1' + if: ${{ !(github.event_name == 'workflow_dispatch' && (github.event.inputs.dry_run == 'true' || github.event.inputs.dry_run == '1')) }} env: - CLOUDFLARE_API_TOKEN: $ secrets.CLOUDFLARE_API_TOKEN + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} run: | npx wrangler deploy diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1ec6229 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,29 @@ +{ + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#2f7c47", + "activityBar.background": "#2f7c47", + "activityBar.foreground": "#e7e7e7", + "activityBar.inactiveForeground": "#e7e7e799", + "commandCenter.border": "#e7e7e799", + "editorGroup.border": "#2f7c47", + "panel.border": "#2f7c47", + "sash.hoverBorder": "#2f7c47", + "sideBar.border": "#2f7c47", + "statusBar.background": "#215732", + "statusBar.border": "#215732", + "statusBar.debuggingBackground": "#572146", + "statusBar.debuggingBorder": "#572146", + "statusBar.debuggingForeground": "#e7e7e7", + "statusBar.foreground": "#e7e7e7", + "statusBarItem.hoverBackground": "#2f7c47", + "statusBarItem.remoteBackground": "#215732", + "statusBarItem.remoteForeground": "#e7e7e7", + "tab.activeBorder": "#2f7c47", + "titleBar.activeBackground": "#215732", + "titleBar.activeForeground": "#e7e7e7", + "titleBar.border": "#215732", + "titleBar.inactiveBackground": "#21573299", + "titleBar.inactiveForeground": "#e7e7e799" + }, + "peacock.color": "#215732" +} \ No newline at end of file diff --git a/Notion Docs/#Neovimdocsquickreference#.md b/Notion Docs/#Neovimdocsquickreference#.md new file mode 100644 index 0000000..b3571d2 --- /dev/null +++ b/Notion Docs/#Neovimdocsquickreference#.md @@ -0,0 +1,253 @@ +# #Neovim/docs/quickreference# + [Neovim](https://neovim.io/) Search⌘K + + [Quickref](https://neovim.io/doc/user/quickref.html#quickref) + +* Nvim `:help` pages, [generated](https://github.com/neovim/neovim/blob/master/src/gen/gen_help_html.lua) from [source](https://github.com/neovim/neovim/blob/master/runtime/doc/quickref.txt) using the [tree-sitter-vimdoc](https://github.com/neovim/tree-sitter-vimdoc)parser.* + +--- + +## Quick reference guide + +[Contents](https://neovim.io/doc/user/quickref.html#Contents) tag subject tag subject +[Q_ct](https://neovim.io/doc/user/index.html#Q_ct) list of help files [Q_re](https://neovim.io/doc/user/quickref.html#Q_re) Repeating commands [Q_lr](https://neovim.io/doc/user/quickref.html#Q_lr) motion: Left-right [Q_km](https://neovim.io/doc/user/quickref.html#Q_km) Key mapping [Q_ud](https://neovim.io/doc/user/quickref.html#Q_ud) motion: Up-down [Q_ab](https://neovim.io/doc/user/quickref.html#Q_ab) Abbreviations [Q_tm](https://neovim.io/doc/user/quickref.html#Q_tm) motion: Text object [Q_op](https://neovim.io/doc/user/quickref.html#Q_op) Options [Q_pa](https://neovim.io/doc/user/quickref.html#Q_pa) motion: Pattern searches [Q_ur](https://neovim.io/doc/user/quickref.html#Q_ur) Undo/Redo commands [Q_ma](https://neovim.io/doc/user/quickref.html#Q_ma) motion: Marks [Q_et](https://neovim.io/doc/user/quickref.html#Q_et) External commands [Q_vm](https://neovim.io/doc/user/quickref.html#Q_vm) motion: Various [Q_qf](https://neovim.io/doc/user/quickref.html#Q_qf) Quickfix commands [Q_ta](https://neovim.io/doc/user/quickref.html#Q_ta) motion: Using tags [Q_vc](https://neovim.io/doc/user/quickref.html#Q_vc) Various commands [Q_sc](https://neovim.io/doc/user/quickref.html#Q_sc) Scrolling [Q_ce](https://neovim.io/doc/user/quickref.html#Q_ce) Ex: Command-line editing [Q_in](https://neovim.io/doc/user/quickref.html#Q_in) insert: Inserting text [Q_ra](https://neovim.io/doc/user/quickref.html#Q_ra) Ex: Ranges [Q_ai](https://neovim.io/doc/user/quickref.html#Q_ai) insert: Keys [Q_ex](https://neovim.io/doc/user/quickref.html#Q_ex) Ex: Special characters [Q_ss](https://neovim.io/doc/user/quickref.html#Q_ss) insert: Special keys [Q_st](https://neovim.io/doc/user/quickref.html#Q_st) Starting Vim [Q_di](https://neovim.io/doc/user/quickref.html#Q_di) insert: Digraphs [Q_ed](https://neovim.io/doc/user/quickref.html#Q_ed) Editing a file [Q_si](https://neovim.io/doc/user/quickref.html#Q_si) insert: Special inserts [Q_fl](https://neovim.io/doc/user/quickref.html#Q_fl) Using the argument list [Q_de](https://neovim.io/doc/user/quickref.html#Q_de) change: Deleting text [Q_wq](https://neovim.io/doc/user/quickref.html#Q_wq) Writing and quitting [Q_cm](https://neovim.io/doc/user/quickref.html#Q_cm) change: Copying and moving [Q_ac](https://neovim.io/doc/user/quickref.html#Q_ac) Automatic commands [Q_ch](https://neovim.io/doc/user/quickref.html#Q_ch) change: Changing text [Q_wi](https://neovim.io/doc/user/quickref.html#Q_wi) Multi-window commands [Q_co](https://neovim.io/doc/user/quickref.html#Q_co) change: Complex [Q_bu](https://neovim.io/doc/user/quickref.html#Q_bu) Buffer list commands [Q_vi](https://neovim.io/doc/user/quickref.html#Q_vi) Visual mode [Q_sy](https://neovim.io/doc/user/quickref.html#Q_sy) Syntax highlighting [Q_to](https://neovim.io/doc/user/quickref.html#Q_to) Text objects [Q_gu](https://neovim.io/doc/user/quickref.html#Q_gu) GUI commands [Q_fo](https://neovim.io/doc/user/quickref.html#Q_fo) Folding +### [Q_lr](https://neovim.io/doc/user/quickref.html#Q_lr) Left-right motions + +N is used to indicate an optional count that can be given before the command. +[h](https://neovim.io/doc/user/motion.html#h) N h left (also: `CTRL-H`, ``, or `` key) [l](https://neovim.io/doc/user/motion.html#l) N l right (also: `` or `` key) [0](https://neovim.io/doc/user/motion.html#0) 0 to first character in the line (also: `` key) [\^](https://neovim.io/doc/user/motion.html#%5E) ^ to first non-blank character in the line [$](https://neovim.io/doc/user/motion.html#%24) N $ to the next EOL (end of line) position (also: `` key) [g0](https://neovim.io/doc/user/motion.html#g0) g0 to first character in screen line (differs from "0" when lines wrap) [g\^](https://neovim.io/doc/user/motion.html#g%5E) g^ to first non-blank character in screen line (differs from "^" when lines wrap) [g$](https://neovim.io/doc/user/motion.html#g%24) N g$ to last character in screen line (differs from "$" when lines wrap) [gm](https://neovim.io/doc/user/motion.html#gm) gm to middle of the screen line [gM](https://neovim.io/doc/user/motion.html#gM) gM to middle of the line [bar](https://neovim.io/doc/user/motion.html#bar) N | to column N (default: 1) [f](https://neovim.io/doc/user/motion.html#f) N f{char} to the Nth occurrence of `{char}` to the right [F](https://neovim.io/doc/user/motion.html#F) N F{char} to the Nth occurrence of `{char}` to the left [t](https://neovim.io/doc/user/motion.html#t) N t{char} till before the Nth occurrence of `{char}` to the right [T](https://neovim.io/doc/user/motion.html#T) N T{char} till before the Nth occurrence of `{char}` to the left [;](https://neovim.io/doc/user/motion.html#%3B) N ; repeat the last "f", "F", "t", or "T" N times [,](https://neovim.io/doc/user/motion.html#%2C) N , repeat the last "f", "F", "t", or "T" N times in opposite direction +### [Q_ud](https://neovim.io/doc/user/quickref.html#Q_ud) Up-down motions + +[k](https://neovim.io/doc/user/motion.html#k) N k up N lines (also: `CTRL-P` and ``) [j](https://neovim.io/doc/user/motion.html#j) N j down N lines (also: `CTRL-J`, `CTRL-N`, ``, and ``) [-](https://neovim.io/doc/user/motion.html#-) N - up N lines, on the first non-blank character [+](https://neovim.io/doc/user/motion.html#%2B) N + down N lines, on the first non-blank character (also: `CTRL-M` and ``) [_](https://neovim.io/doc/user/motion.html#_) N _ down N-1 lines, on the first non-blank character [G](https://neovim.io/doc/user/motion.html#G) N G goto line N (default: last line), on the first non-blank character [gg](https://neovim.io/doc/user/motion.html#gg) N gg goto line N (default: first line), on the first non-blank character [N%](https://neovim.io/doc/user/motion.html#N%25) N % goto line N percentage down in the file; N must be given, otherwise it is the [%](https://neovim.io/doc/user/motion.html#%25) command [gk](https://neovim.io/doc/user/motion.html#gk) N gk up N screen lines (differs from "k" when line wraps) [gj](https://neovim.io/doc/user/motion.html#gj) N gj down N screen lines (differs from "j" when line wraps) +### [Q_tm](https://neovim.io/doc/user/quickref.html#Q_tm) Text object motions + +[w](https://neovim.io/doc/user/motion.html#w) N w N words forward [W](https://neovim.io/doc/user/motion.html#W) N W N blank-separated [WORD](https://neovim.io/doc/user/motion.html#WORD)s forward [e](https://neovim.io/doc/user/motion.html#e) N e forward to the end of the Nth word [E](https://neovim.io/doc/user/motion.html#E) N E forward to the end of the Nth blank-separated [WORD](https://neovim.io/doc/user/motion.html#WORD) [b](https://neovim.io/doc/user/motion.html#b) N b N words backward [B](https://neovim.io/doc/user/motion.html#B) N B N blank-separated [WORD](https://neovim.io/doc/user/motion.html#WORD)s backward [ge](https://neovim.io/doc/user/motion.html#ge) N ge backward to the end of the Nth word [gE](https://neovim.io/doc/user/motion.html#gE) N gE backward to the end of the Nth blank-separated [WORD](https://neovim.io/doc/user/motion.html#WORD) +[)](https://neovim.io/doc/user/motion.html#)) N ) N sentences forward [(](https://neovim.io/doc/user/motion.html#() N ( N sentences backward [}](https://neovim.io/doc/user/motion.html#%7D) N } N paragraphs forward [{](https://neovim.io/doc/user/motion.html#%7B) N { N paragraphs backward [\]\]](https://neovim.io/doc/user/motion.html#%5D%5D) N ]] N sections forward, at start of section [\[\[](https://neovim.io/doc/user/motion.html#%5B%5B) N [[ N sections backward, at start of section [\]\[](https://neovim.io/doc/user/motion.html#%5D%5B) N ][ N sections forward, at end of section [\[\]](https://neovim.io/doc/user/motion.html#%5B%5D) N [] N sections backward, at end of section [\[(](https://neovim.io/doc/user/motion.html#%5B() N [( N times back to unclosed '(' [\[{](https://neovim.io/doc/user/motion.html#%5B%7B) N [{ N times back to unclosed '{' [\[m](https://neovim.io/doc/user/motion.html#%5Bm) N [m N times back to start of method (for Java) [\[M](https://neovim.io/doc/user/motion.html#%5BM) N [M N times back to end of method (for Java) [\])](https://neovim.io/doc/user/motion.html#%5D)) N ]) N times forward to unclosed ')' [\]}](https://neovim.io/doc/user/motion.html#%5D%7D) N ]} N times forward to unclosed '}' [\]m](https://neovim.io/doc/user/motion.html#%5Dm) N ]m N times forward to start of method (for Java) [\]M](https://neovim.io/doc/user/motion.html#%5DM) N ]M N times forward to end of method (for Java) [\[#](https://neovim.io/doc/user/motion.html#%5B%23) N [# N times back to unclosed "\#if" or "\#else" [\]#](https://neovim.io/doc/user/motion.html#%5D%23) N ]# N times forward to unclosed "\#else" or "\#endif" [\[star](https://neovim.io/doc/user/motion.html#%5Bstar) N [* N times back to start of comment "/*" [\]star](https://neovim.io/doc/user/motion.html#%5Dstar) N ]* N times forward to end of comment "*/" +### [Q_pa](https://neovim.io/doc/user/quickref.html#Q_pa) Pattern searches + +[/](https://neovim.io/doc/user/pattern.html#%2F) N /{pattern}[/[offset]] search forward for the Nth occurrence of `{pattern}` [?](https://neovim.io/doc/user/pattern.html#%3F) N ?{pattern}[?[offset]] search backward for the Nth occurrence of `{pattern}` [/](https://neovim.io/doc/user/pattern.html#%2F%3CCR%3E) N / repeat last search, in the forward direction [?](https://neovim.io/doc/user/pattern.html#%3F%3CCR%3E) N ? repeat last search, in the backward direction [n](https://neovim.io/doc/user/pattern.html#n) N n repeat last search [N](https://neovim.io/doc/user/pattern.html#N) N N repeat last search, in opposite direction [star](https://neovim.io/doc/user/pattern.html#star) N * search forward for the identifier under the cursor [#](https://neovim.io/doc/user/pattern.html#%23) N # search backward for the identifier under the cursor [gstar](https://neovim.io/doc/user/pattern.html#gstar) N g* like "*", but also find partial matches [g#](https://neovim.io/doc/user/pattern.html#g%23) N g# like "#", but also find partial matches [gd](https://neovim.io/doc/user/pattern.html#gd) gd goto local declaration of identifier under the cursor [gD](https://neovim.io/doc/user/pattern.html#gD) gD goto global declaration of identifier under the cursor +[pattern](https://neovim.io/doc/user/pattern.html#pattern) Special characters in search patterns +meaning magic nomagic +matches any single character . \. matches start of line ^ ^ matches `` $ $ matches start of word \< \< matches end of word \> \> matches a single char from the range [a-z] \[a-z] matches a single char not in the range [^a-z] \[^a-z] matches an identifier char \i \i idem but excluding digits \I \I matches a keyword character \k \k idem but excluding digits \K \K matches a file name character \f \f idem but excluding digits \F \F matches a printable character \p \p idem but excluding digits \P \P matches a white space character \s \s matches a non-white space character \S \S +matches `` \e \e matches `` \t \t matches `` \r \r matches `` \b \b +matches 0 or more of the preceding atom * \* matches 1 or more of the preceding atom \+ \+ matches 0 or 1 of the preceding atom \= \= matches 2 to 5 of the preceding atom \{2,5} \{2,5} separates two alternatives \| \| group a pattern into an atom \(\) \(\) +[search-offset](https://neovim.io/doc/user/pattern.html#search-offset) Offsets allowed after search command +[num] [num] lines downwards, in column 1 +[num] [num] lines downwards, in column 1 -[num] [num] lines upwards, in column 1 e[+num] [num] characters to the right of the end of the match e[-num] [num] characters to the left of the end of the match s[+num] [num] characters to the right of the start of the match s[-num] [num] characters to the left of the start of the match b[+num] [num] identical to s[+num] above (mnemonic: begin) b[-num] [num] identical to s[-num] above (mnemonic: begin) ;{search-command} execute `{search-command}` next +### [Q_ma](https://neovim.io/doc/user/quickref.html#Q_ma) Marks and motions + +[m](https://neovim.io/doc/user/motion.html#m) m{a-zA-Z} mark current position with mark `{a-zA-Z}` [\`a](https://neovim.io/doc/user/motion.html#%60a){a-z} go to mark {a-z} within current file [\`A](https://neovim.io/doc/user/motion.html#%60A){A-Z} go to mark {A-Z} in any file [\`0](https://neovim.io/doc/user/motion.html#%600){0-9} go to the position where Vim was previously exited [\`\`](https://neovim.io/doc/user/motion.html#%60%60) \`\` go to the position before the last jump [\`quote](https://neovim.io/doc/user/motion.html#%60quote)" go to the position when last editing this file [\`\[](https://neovim.io/doc/user/motion.html#%60%5B)[ go to the start of the previously operated or put text [\`\]](https://neovim.io/doc/user/motion.html#%60%5D)] go to the end of the previously operated or put text [\`<](https://neovim.io/doc/user/motion.html#%60%3C)< go to the start of the (previous) Visual area [\`>](https://neovim.io/doc/user/motion.html#%60%3E)> go to the end of the (previous) Visual area [\`.](https://neovim.io/doc/user/motion.html#%60.). go to the position of the last change in this file ['](https://neovim.io/doc/user/motion.html#') '{a-zA-Z0-9[]'"<>.} same as, but on the first non-blank in the line [:marks](https://neovim.io/doc/user/motion.html#%3Amarks) :marks print the active marks [CTRL-O](https://neovim.io/doc/user/motion.html#CTRL-O) N `CTRL-O` go to Nth older position in jump list [CTRL-I](https://neovim.io/doc/user/motion.html#CTRL-I) N `CTRL-I` go to Nth newer position in jump list [:ju](https://neovim.io/doc/user/motion.html#%3Aju) :ju[mps] print the jump list +### [Q_vm](https://neovim.io/doc/user/quickref.html#Q_vm) Various motions + +[%](https://neovim.io/doc/user/motion.html#%25) % find the next brace, bracket, comment, or "\#if"/ "\#else"/"\#endif" in this line and go to its match [H](https://neovim.io/doc/user/motion.html#H) N H go to the Nth line in the window, on the first non-blank [M](https://neovim.io/doc/user/motion.html#M) M go to the middle line in the window, on the first non-blank [L](https://neovim.io/doc/user/motion.html#L) N L go to the Nth line from the bottom, on the first non-blank +[go](https://neovim.io/doc/user/motion.html#go) N go go to Nth byte in the buffer [:go](https://neovim.io/doc/user/motion.html#%3Ago) :[range]go[to] [off] go to [off] byte in the buffer +### [Q_ta](https://neovim.io/doc/user/quickref.html#Q_ta) Using tags + +[:ta](https://neovim.io/doc/user/tagsrch.html#%3Ata) :ta[g][!] `{tag}` jump to tag `{tag}` [:ta](https://neovim.io/doc/user/tagsrch.html#%3Ata) :[count]ta[g][!] jump to [count]'th newer tag in tag list [CTRL-\]](https://neovim.io/doc/user/tagsrch.html#CTRL-%5D) `CTRL-]` jump to the tag under cursor, unless changes have been made [:ts](https://neovim.io/doc/user/tagsrch.html#%3Ats) :ts[elect][!] [tag] list matching tags and select one to jump to [:tjump](https://neovim.io/doc/user/tagsrch.html#%3Atjump) :tj[ump][!] [tag] jump to tag [tag] or select from list when there are multiple matches [:ltag](https://neovim.io/doc/user/tagsrch.html#%3Altag) :lt[ag][!] [tag] jump to tag [tag] and add matching tags to the location list +[:tags](https://neovim.io/doc/user/tagsrch.html#%3Atags) :tags print tag list [CTRL-T](https://neovim.io/doc/user/tagsrch.html#CTRL-T) N `CTRL-T` jump back from Nth older tag in tag list [:po](https://neovim.io/doc/user/tagsrch.html#%3Apo) :[count]po[p][!] jump back from [count]'th older tag in tag list [:tnext](https://neovim.io/doc/user/tagsrch.html#%3Atnext) :[count]tn[ext][!] jump to [count]'th next matching tag [:tp](https://neovim.io/doc/user/tagsrch.html#%3Atp) :[count]tp[revious][!] jump to [count]'th previous matching tag [:tr](https://neovim.io/doc/user/tagsrch.html#%3Atr) :[count]tr[ewind][!] jump to [count]'th matching tag [:tl](https://neovim.io/doc/user/tagsrch.html#%3Atl) :tl[ast][!] jump to last matching tag +[:ptag](https://neovim.io/doc/user/windows.html#%3Aptag) :pt[ag] `{tag}` open a preview window to show tag `{tag}` [CTRL-W_}](https://neovim.io/doc/user/windows.html#CTRL-W_%7D) `CTRL-W` } like `CTRL-]` but show tag in preview window [:pts](https://neovim.io/doc/user/tagsrch.html#%3Apts) :pts[elect] like ":tselect" but show tag in preview window [:ptjump](https://neovim.io/doc/user/tagsrch.html#%3Aptjump) :ptj[ump] like ":tjump" but show tag in preview window [:pclose](https://neovim.io/doc/user/windows.html#%3Apclose) :pc[lose] close tag preview window [CTRL-W_z](https://neovim.io/doc/user/windows.html#CTRL-W_z) `CTRL-W` z close tag preview window +### [Q_sc](https://neovim.io/doc/user/quickref.html#Q_sc) Scrolling + +[CTRL-E](https://neovim.io/doc/user/scroll.html#CTRL-E) N `CTRL-E` window N lines downwards (default: 1) [CTRL-D](https://neovim.io/doc/user/scroll.html#CTRL-D) N `CTRL-D` window N lines Downwards (default: 1/2 window) [CTRL-F](https://neovim.io/doc/user/scroll.html#CTRL-F) N `CTRL-F` window N pages Forwards (downwards) [CTRL-Y](https://neovim.io/doc/user/scroll.html#CTRL-Y) N `CTRL-Y` window N lines upwards (default: 1) [CTRL-U](https://neovim.io/doc/user/scroll.html#CTRL-U) N `CTRL-U` window N lines Upwards (default: 1/2 window) [CTRL-B](https://neovim.io/doc/user/scroll.html#CTRL-B) N `CTRL-B` window N pages Backwards (upwards) [z](https://neovim.io/doc/user/scroll.html#z%3CCR%3E) z or zt redraw, current line at top of window [z.](https://neovim.io/doc/user/scroll.html#z.) z. or zz redraw, current line at center of window [z-](https://neovim.io/doc/user/scroll.html#z-) z- or zb redraw, current line at bottom of window +These only work when ['wrap'](https://neovim.io/doc/user/options.html#'wrap') is off: [zh](https://neovim.io/doc/user/scroll.html#zh) N zh scroll screen N characters to the right [zl](https://neovim.io/doc/user/scroll.html#zl) N zl scroll screen N characters to the left [zH](https://neovim.io/doc/user/scroll.html#zH) N zH scroll screen half a screenwidth to the right [zL](https://neovim.io/doc/user/scroll.html#zL) N zL scroll screen half a screenwidth to the left +### [Q_in](https://neovim.io/doc/user/quickref.html#Q_in) Inserting text + +[a](https://neovim.io/doc/user/insert.html#a) N a append text after the cursor (N times) [A](https://neovim.io/doc/user/insert.html#A) N A append text at the end of the line (N times) [i](https://neovim.io/doc/user/insert.html#i) N i insert text before the cursor (N times) (also: ``) [I](https://neovim.io/doc/user/insert.html#I) N I insert text before the first non-blank in the line (N times) [gI](https://neovim.io/doc/user/insert.html#gI) N gI insert text in column 1 (N times) [o](https://neovim.io/doc/user/insert.html#o) N o open a new line below the current line, append text (N times) [O](https://neovim.io/doc/user/insert.html#O) N O open a new line above the current line, append text (N times) [:startinsert](https://neovim.io/doc/user/insert.html#%3Astartinsert) :star[tinsert][!] start Insert mode, append when [!] used [:startreplace](https://neovim.io/doc/user/insert.html#%3Astartreplace) :startr[eplace][!] start Replace mode, at EOL when [!] used +in Visual block mode: [v_b_I](https://neovim.io/doc/user/visual.html#v_b_I) I insert the same text in front of all the selected lines [v_b_A](https://neovim.io/doc/user/visual.html#v_b_A) A append the same text after all the selected lines +### [Q_ai](https://neovim.io/doc/user/quickref.html#Q_ai) Insert mode keys + +[insert-index](https://neovim.io/doc/user/vimindex.html#insert-index) alphabetical index of Insert mode commands +leaving Insert mode: [i_](https://neovim.io/doc/user/insert.html#i_%3CEsc%3E) `` end Insert mode, back to Normal mode [i_CTRL-C](https://neovim.io/doc/user/insert.html#i_CTRL-C) `CTRL-C` like ``, but do not use an abbreviation [i_CTRL-O](https://neovim.io/doc/user/insert.html#i_CTRL-O) `CTRL-O` `{command}` execute `{command}` and return to Insert mode +moving around: [i_](https://neovim.io/doc/user/insert.html#i_%3CUp%3E) cursor keys move cursor left/right/up/down [i_](https://neovim.io/doc/user/insert.html#i_%3CS-Left%3E) shift-left/right one word left/right [i_](https://neovim.io/doc/user/insert.html#i_%3CS-Up%3E) shift-up/down one screenful backward/forward [i_](https://neovim.io/doc/user/insert.html#i_%3CEnd%3E) `` cursor after last character in the line [i_](https://neovim.io/doc/user/insert.html#i_%3CHome%3E) `` cursor to first character in the line +### [Q_ss](https://neovim.io/doc/user/quickref.html#Q_ss) Special keys in Insert mode + +[i_CTRL-V](https://neovim.io/doc/user/insert.html#i_CTRL-V) `CTRL-V` `{char}`.. insert character literally, or enter decimal byte value [i_](https://neovim.io/doc/user/insert.html#i_%3CNL%3E) `` or `` or `CTRL-M` or `CTRL-J` begin new line [i_CTRL-E](https://neovim.io/doc/user/insert.html#i_CTRL-E) `CTRL-E` insert the character from below the cursor [i_CTRL-Y](https://neovim.io/doc/user/insert.html#i_CTRL-Y) `CTRL-Y` insert the character from above the cursor +[i_CTRL-A](https://neovim.io/doc/user/insert.html#i_CTRL-A) `CTRL-A` insert previously inserted text [i_CTRL-@](https://neovim.io/doc/user/insert.html#i_CTRL-%40) `CTRL-@` insert previously inserted text and stop Insert mode [i_CTRL-R](https://neovim.io/doc/user/insert.html#i_CTRL-R) `CTRL-R` `{register}` insert the contents of a register +[i_CTRL-N](https://neovim.io/doc/user/insert.html#i_CTRL-N) `CTRL-N` insert next match of identifier before the cursor [i_CTRL-P](https://neovim.io/doc/user/insert.html#i_CTRL-P) `CTRL-P` insert previous match of identifier before the cursor [i_CTRL-X](https://neovim.io/doc/user/insert.html#i_CTRL-X) `CTRL-X` ... complete the word before the cursor in various ways +[i_](https://neovim.io/doc/user/insert.html#i_%3CBS%3E) `` or `CTRL-H` delete the character before the cursor [i_](https://neovim.io/doc/user/insert.html#i_%3CDel%3E) `` delete the character under the cursor [i_CTRL-W](https://neovim.io/doc/user/insert.html#i_CTRL-W) `CTRL-W` delete word before the cursor [i_CTRL-U](https://neovim.io/doc/user/insert.html#i_CTRL-U) `CTRL-U` delete all entered characters in the current line [i_CTRL-T](https://neovim.io/doc/user/insert.html#i_CTRL-T) `CTRL-T` insert one shiftwidth of indent in front of the current line [i_CTRL-D](https://neovim.io/doc/user/insert.html#i_CTRL-D) `CTRL-D` delete one shiftwidth of indent in front of the current line [i_0_CTRL-D](https://neovim.io/doc/user/insert.html#i_0_CTRL-D) 0 `CTRL-D` delete all indent in the current line [i_\^_CTRL-D](https://neovim.io/doc/user/insert.html#i_%5E_CTRL-D) ^ `CTRL-D` delete all indent in the current line, restore indent in next line +### [Q_di](https://neovim.io/doc/user/quickref.html#Q_di) Digraphs + +[:dig](https://neovim.io/doc/user/digraph.html#%3Adig) :dig[raphs] show current list of digraphs [:dig](https://neovim.io/doc/user/digraph.html#%3Adig) :dig[raphs] `{char1}``{char2}` `{number}` ... add digraph(s) to the list +In Insert or Command-line mode: [i_CTRL-K](https://neovim.io/doc/user/insert.html#i_CTRL-K) `CTRL-K` `{char1}` `{char2}` enter digraph [i_digraph](https://neovim.io/doc/user/digraph.html#i_digraph) `{char1}` `` `{char2}` enter digraph if ['digraph'](https://neovim.io/doc/user/options.html#'digraph') option set +### [Q_si](https://neovim.io/doc/user/quickref.html#Q_si) Special inserts + +[:r](https://neovim.io/doc/user/insert.html#%3Ar) :r [file] insert the contents of [file] below the cursor [:r!](https://neovim.io/doc/user/insert.html#%3Ar%21) :r! `{command}` insert the standard output of `{command}` below the cursor +### [Q_de](https://neovim.io/doc/user/quickref.html#Q_de) Deleting text + +[x](https://neovim.io/doc/user/change.html#x) N x delete N characters under and after the cursor [](https://neovim.io/doc/user/change.html#%3CDel%3E) N `` delete N characters under and after the cursor [X](https://neovim.io/doc/user/change.html#X) N X delete N characters before the cursor [d](https://neovim.io/doc/user/change.html#d) N d{motion} delete the text that is moved over with `{motion}` [v_d](https://neovim.io/doc/user/change.html#v_d) `{visual}`d delete the highlighted text [dd](https://neovim.io/doc/user/change.html#dd) N dd delete N lines [D](https://neovim.io/doc/user/change.html#D) N D delete to the end of the line (and N-1 more lines) [J](https://neovim.io/doc/user/change.html#J) N J join N-1 lines (delete ``s) [v_J](https://neovim.io/doc/user/change.html#v_J) `{visual}`J join the highlighted lines [gJ](https://neovim.io/doc/user/change.html#gJ) N gJ like "J", but without inserting spaces [v_gJ](https://neovim.io/doc/user/change.html#v_gJ) `{visual}`gJ like "{visual}J", but without inserting spaces [:d](https://neovim.io/doc/user/change.html#%3Ad) :[range]d [x] delete [range] lines [into register x] +### [Q_cm](https://neovim.io/doc/user/quickref.html#Q_cm) Copying and moving text + +[quote](https://neovim.io/doc/user/change.html#quote) "{char} use register `{char}` for the next delete, yank, or put [:reg](https://neovim.io/doc/user/change.html#%3Areg) :reg show the contents of all registers [:reg](https://neovim.io/doc/user/change.html#%3Areg) :reg `{arg}` show the contents of registers mentioned in `{arg}` [y](https://neovim.io/doc/user/change.html#y) N y{motion} yank the text moved over with `{motion}` into a register [v_y](https://neovim.io/doc/user/change.html#v_y) `{visual}`y yank the highlighted text into a register [yy](https://neovim.io/doc/user/change.html#yy) N yy yank N lines into a register [Y](https://neovim.io/doc/user/change.html#Y) N Y yank N lines into a register **Note:** Mapped to "y$" by default. [default-mappings](https://neovim.io/doc/user/vim_diff.html#default-mappings) [p](https://neovim.io/doc/user/change.html#p) N p put a register after the cursor position (N times) [P](https://neovim.io/doc/user/change.html#P) N P put a register before the cursor position (N times) [\]p](https://neovim.io/doc/user/change.html#%5Dp) N ]p like p, but adjust indent to current line [\[p](https://neovim.io/doc/user/change.html#%5Bp) N [p like P, but adjust indent to current line [gp](https://neovim.io/doc/user/change.html#gp) N gp like p, but leave cursor after the new text [gP](https://neovim.io/doc/user/change.html#gP) N gP like P, but leave cursor after the new text +### [Q_ch](https://neovim.io/doc/user/quickref.html#Q_ch) Changing text + +[r](https://neovim.io/doc/user/change.html#r) N r{char} replace N characters with `{char}` [gr](https://neovim.io/doc/user/change.html#gr) N gr{char} replace N characters without affecting layout [R](https://neovim.io/doc/user/change.html#R) N R enter Replace mode (repeat the entered text N times) [gR](https://neovim.io/doc/user/change.html#gR) N gR enter virtual Replace mode: Like Replace mode but without affecting layout [v_b_r](https://neovim.io/doc/user/visual.html#v_b_r) `{visual}`r{char} in Visual block mode: Replace each char of the selected text with `{char}` +(change = delete text and enter Insert mode) [c](https://neovim.io/doc/user/change.html#c) N c{motion} change the text that is moved over with `{motion}` [v_c](https://neovim.io/doc/user/change.html#v_c) `{visual}`c change the highlighted text [cc](https://neovim.io/doc/user/change.html#cc) N cc change N lines [S](https://neovim.io/doc/user/change.html#S) N S change N lines [C](https://neovim.io/doc/user/change.html#C) N C change to the end of the line (and N-1 more lines) [s](https://neovim.io/doc/user/change.html#s) N s change N characters [v_b_c](https://neovim.io/doc/user/visual.html#v_b_c) `{visual}`c in Visual block mode: Change each of the selected lines with the entered text [v_b_C](https://neovim.io/doc/user/visual.html#v_b_C) `{visual}`C in Visual block mode: Change each of the selected lines until end-of-line with the entered text +[~](https://neovim.io/doc/user/change.html#~) N ~ switch case for N characters and advance cursor [v_~](https://neovim.io/doc/user/change.html#v_~) `{visual}`~ switch case for highlighted text [v_u](https://neovim.io/doc/user/change.html#v_u) `{visual}`u make highlighted text lowercase [v_U](https://neovim.io/doc/user/change.html#v_U) `{visual}`U make highlighted text uppercase [g~](https://neovim.io/doc/user/change.html#g~) g~{motion} switch case for the text that is moved over with `{motion}` [gu](https://neovim.io/doc/user/change.html#gu) gu{motion} make the text that is moved over with `{motion}` lowercase [gU](https://neovim.io/doc/user/change.html#gU) gU{motion} make the text that is moved over with `{motion}` uppercase [v_g?](https://neovim.io/doc/user/change.html#v_g%3F) `{visual}`g? perform rot13 encoding on highlighted text [g?](https://neovim.io/doc/user/change.html#g%3F) g?{motion} perform rot13 encoding on the text that is moved over with `{motion}` +[CTRL-A](https://neovim.io/doc/user/change.html#CTRL-A) N `CTRL-A` add N to the number at or after the cursor [CTRL-X](https://neovim.io/doc/user/change.html#CTRL-X) N `CTRL-X` subtract N from the number at or after the cursor +[<](https://neovim.io/doc/user/change.html#%3C) N <{motion} move the lines that are moved over with `{motion}` one shiftwidth left [<<](https://neovim.io/doc/user/change.html#%3C%3C) N << move N lines one shiftwidth left [>](https://neovim.io/doc/user/change.html#%3E) N >`{motion}` move the lines that are moved over with `{motion}` one shiftwidth right [>>](https://neovim.io/doc/user/change.html#%3E%3E) N >> move N lines one shiftwidth right [gq](https://neovim.io/doc/user/change.html#gq) N gq{motion} format the lines that are moved over with `{motion}` to ['textwidth'](https://neovim.io/doc/user/options.html#'textwidth') length [:ce](https://neovim.io/doc/user/change.html#%3Ace) :[range]ce[nter] [width] center the lines in [range] [:le](https://neovim.io/doc/user/change.html#%3Ale) :[range]le[ft] [indent] left-align the lines in [range] (with [indent]) [:ri](https://neovim.io/doc/user/change.html#%3Ari) :[range]ri[ght] [width] right-align the lines in [range] +### [Q_co](https://neovim.io/doc/user/quickref.html#Q_co) Complex changes + +[!](https://neovim.io/doc/user/change.html#%21) N !{motion}{command} filter the lines that are moved over through `{command}` [!!](https://neovim.io/doc/user/change.html#%21%21) N !!{command} filter N lines through `{command}` [v_!](https://neovim.io/doc/user/change.html#v_%21) `{visual}`!{command} filter the highlighted lines through `{command}` [:range!](https://neovim.io/doc/user/change.html#%3Arange%21) :[range]! `{command}``` filter [range] lines through `{command}` [=](https://neovim.io/doc/user/change.html#%3D) N ={motion} filter the lines that are moved over through ['equalprg'](https://neovim.io/doc/user/options.html#'equalprg') [==](https://neovim.io/doc/user/change.html#%3D%3D) N == filter N lines through ['equalprg'](https://neovim.io/doc/user/options.html#'equalprg') [v_=](https://neovim.io/doc/user/change.html#v_%3D) `{visual}`= filter the highlighted lines through ['equalprg'](https://neovim.io/doc/user/options.html#'equalprg') [:s](https://neovim.io/doc/user/change.html#%3As) :[range]s[ubstitute]/{pattern}/{string}/[g][c] substitute `{pattern}` by `{string}` in [range] lines; with [g], replace all occurrences of `{pattern}`; with [c], confirm each replacement [:s](https://neovim.io/doc/user/change.html#%3As) :[range]s[ubstitute] [g][c] repeat previous ":s" with new range and options [&](https://neovim.io/doc/user/change.html#%26) & Repeat previous ":s" on current line without options [:ret](https://neovim.io/doc/user/change.html#%3Aret) :[range]ret[ab][!] [tabstop] set ['tabstop'](https://neovim.io/doc/user/options.html#'tabstop') to new value and adjust white space accordingly +### [Q_vi](https://neovim.io/doc/user/quickref.html#Q_vi) Visual mode + +[visual-index](https://neovim.io/doc/user/vimindex.html#visual-index) list of Visual mode commands. +[v](https://neovim.io/doc/user/visual.html#v) v start highlighting characters } move cursor and use [V](https://neovim.io/doc/user/visual.html#V) V start highlighting linewise } operator to affect [CTRL-V](https://neovim.io/doc/user/visual.html#CTRL-V) `CTRL-V` start highlighting blockwise } highlighted text [v_o](https://neovim.io/doc/user/visual.html#v_o) o exchange cursor position with start of highlighting [gv](https://neovim.io/doc/user/visual.html#gv) gv start highlighting on previous visual area [v_v](https://neovim.io/doc/user/visual.html#v_v) v highlight characters or stop highlighting [v_V](https://neovim.io/doc/user/visual.html#v_V) V highlight linewise or stop highlighting [v_CTRL-V](https://neovim.io/doc/user/visual.html#v_CTRL-V) `CTRL-V` highlight blockwise or stop highlighting +### [Q_to](https://neovim.io/doc/user/quickref.html#Q_to) Text objects (only in Visual mode or after an operator) + +[v_aw](https://neovim.io/doc/user/motion.html#v_aw) N aw Select "a word" [v_iw](https://neovim.io/doc/user/motion.html#v_iw) N iw Select "inner word" [v_aW](https://neovim.io/doc/user/motion.html#v_aW) N aW Select "a [WORD](https://neovim.io/doc/user/motion.html#WORD)" [v_iW](https://neovim.io/doc/user/motion.html#v_iW) N iW Select "inner [WORD](https://neovim.io/doc/user/motion.html#WORD)" [v_as](https://neovim.io/doc/user/motion.html#v_as) N as Select "a sentence" [v_is](https://neovim.io/doc/user/motion.html#v_is) N is Select "inner sentence" [v_ap](https://neovim.io/doc/user/motion.html#v_ap) N ap Select "a paragraph" [v_ip](https://neovim.io/doc/user/motion.html#v_ip) N ip Select "inner paragraph" [v_ab](https://neovim.io/doc/user/motion.html#v_ab) N ab Select "a block" (from "[(" to "])") [v_ib](https://neovim.io/doc/user/motion.html#v_ib) N ib Select "inner block" (from "[(" to "])") [v_aB](https://neovim.io/doc/user/motion.html#v_aB) N aB Select "a Block" (from `[{` to `]}`) [v_iB](https://neovim.io/doc/user/motion.html#v_iB) N iB Select "inner Block" (from `[{` to `]}`) [v_a>](https://neovim.io/doc/user/motion.html#v_a%3E) N a> Select "a <> block" [v_i>](https://neovim.io/doc/user/motion.html#v_i%3E) N i> Select "inner <> block" [v_at](https://neovim.io/doc/user/motion.html#v_at) N at Select "a tag block" (from `` to ) [v_it](https://neovim.io/doc/user/motion.html#v_it) N it Select "inner tag block" (from `` to ) [v_a'](https://neovim.io/doc/user/motion.html#v_a') N a' Select "a single quoted string" [v_i'](https://neovim.io/doc/user/motion.html#v_i') N i' Select "inner single quoted string" [v_aquote](https://neovim.io/doc/user/motion.html#v_aquote) N a" Select "a double quoted string" [v_iquote](https://neovim.io/doc/user/motion.html#v_iquote) N i" Select "inner double quoted string" [v_a\`](https://neovim.io/doc/user/motion.html#v_a%60) N a\` Select "a backward quoted string" [v_i\`](https://neovim.io/doc/user/motion.html#v_i%60) N i\` Select "inner backward quoted string" +### [Q_re](https://neovim.io/doc/user/quickref.html#Q_re) Repeating commands + +[.](https://neovim.io/doc/user/repeat.html#.) N . repeat last change (with count replaced with N) [q](https://neovim.io/doc/user/repeat.html#q) q{a-z} record typed characters into register `{a-z}` [q](https://neovim.io/doc/user/repeat.html#q) q{A-Z} record typed characters, appended to register `{a-z}` [q](https://neovim.io/doc/user/repeat.html#q) q stop recording [Q](https://neovim.io/doc/user/repeat.html#Q) Q replay last recorded macro [@](https://neovim.io/doc/user/repeat.html#%40) N @{a-z} execute the contents of register `{a-z}` (N times) [@@](https://neovim.io/doc/user/repeat.html#%40%40) N @@ repeat previous @{a-z} (N times) [:@](https://neovim.io/doc/user/repeat.html#%3A%40) :@{a-z} execute the contents of register `{a-z}` as an Ex command [:@@](https://neovim.io/doc/user/repeat.html#%3A%40%40) :@@ repeat previous :@{a-z} [:g](https://neovim.io/doc/user/repeat.html#%3Ag) :[range]g[lobal]/{pattern}/[cmd] execute Ex command [cmd] (default: ":p") on the lines within [range] where `{pattern}` matches [:g](https://neovim.io/doc/user/repeat.html#%3Ag) :[range]g[lobal]!/{pattern}/[cmd] execute Ex command [cmd] (default: ":p") on the lines within [range] where `{pattern}` does NOT match [:so](https://neovim.io/doc/user/repeat.html#%3Aso) :so[urce] `{file}` read Ex commands from `{file}` [:so](https://neovim.io/doc/user/repeat.html#%3Aso) :so[urce]! `{file}` read Vim commands from `{file}` [:sl](https://neovim.io/doc/user/various.html#%3Asl) :sl[eep] [sec] don't do anything for [sec] seconds [gs](https://neovim.io/doc/user/various.html#gs) N gs goto Sleep for N seconds +### [Q_km](https://neovim.io/doc/user/quickref.html#Q_km) Key mapping + +[:map](https://neovim.io/doc/user/map.html#%3Amap) :ma[p] `{lhs}` `{rhs}` map `{lhs}` to `{rhs}` in Normal and Visual mode [:map!](https://neovim.io/doc/user/map.html#%3Amap%21) :ma[p]! `{lhs}` `{rhs}` map `{lhs}` to `{rhs}` in Insert and Command-line mode [:noremap](https://neovim.io/doc/user/map.html#%3Anoremap) :no[remap][!] `{lhs}` `{rhs}` same as ":map", no remapping for this `{rhs}` [:unmap](https://neovim.io/doc/user/map.html#%3Aunmap) :unm[ap] `{lhs}` remove the mapping of `{lhs}` for Normal and Visual mode [:unmap!](https://neovim.io/doc/user/map.html#%3Aunmap%21) :unm[ap]! `{lhs}` remove the mapping of `{lhs}` for Insert and Command-line mode [:map_l](https://neovim.io/doc/user/map.html#%3Amap_l) :ma[p] [lhs] list mappings (starting with [lhs]) for Normal and Visual mode [:map_l!](https://neovim.io/doc/user/map.html#%3Amap_l%21) :ma[p]! [lhs] list mappings (starting with [lhs]) for Insert and Command-line mode [:cmap](https://neovim.io/doc/user/map.html#%3Acmap) :cmap/:cunmap/:cnoremap like ":map!"/":unmap!"/":noremap!" but for Command-line mode only [:imap](https://neovim.io/doc/user/map.html#%3Aimap) :imap/:iunmap/:inoremap like ":map!"/":unmap!"/":noremap!" but for Insert mode only [:nmap](https://neovim.io/doc/user/map.html#%3Anmap) :nmap/:nunmap/:nnoremap like ":map"/":unmap"/":noremap" but for Normal mode only [:vmap](https://neovim.io/doc/user/map.html#%3Avmap) :vmap/:vunmap/:vnoremap like ":map"/":unmap"/":noremap" but for Visual mode only [:omap](https://neovim.io/doc/user/map.html#%3Aomap) :omap/:ounmap/:onoremap like ":map"/":unmap"/":noremap" but only for when an operator is pending [:mapc](https://neovim.io/doc/user/map.html#%3Amapc) :mapc[lear] remove mappings for Normal and Visual mode [:mapc](https://neovim.io/doc/user/map.html#%3Amapc) :mapc[lear]! remove mappings for Insert and Cmdline mode [:imapc](https://neovim.io/doc/user/map.html#%3Aimapc) :imapc[lear] remove mappings for Insert mode [:vmapc](https://neovim.io/doc/user/map.html#%3Avmapc) :vmapc[lear] remove mappings for Visual mode [:omapc](https://neovim.io/doc/user/map.html#%3Aomapc) :omapc[lear] remove mappings for Operator-pending mode [:nmapc](https://neovim.io/doc/user/map.html#%3Anmapc) :nmapc[lear] remove mappings for Normal mode [:cmapc](https://neovim.io/doc/user/map.html#%3Acmapc) :cmapc[lear] remove mappings for Cmdline mode [:mkexrc](https://neovim.io/doc/user/starting.html#%3Amkexrc) :mk[exrc][!] [file] write current mappings, abbreviations, and settings to [file] (default: ".exrc"; use ! to overwrite) [:mkvimrc](https://neovim.io/doc/user/starting.html#%3Amkvimrc) :mkv[imrc][!] [file] same as :mkexrc, but with default ".nvimrc" [:mksession](https://neovim.io/doc/user/starting.html#%3Amksession) :mks[ession][!] [file] like ":mkvimrc", but store current files, windows, etc. too, to be able to continue this session later +### [Q_ab](https://neovim.io/doc/user/quickref.html#Q_ab) Abbreviations + +[:abbreviate](https://neovim.io/doc/user/map.html#%3Aabbreviate) :ab[breviate] `{lhs}` `{rhs}` add abbreviation for `{lhs}` to `{rhs}` [:abbreviate](https://neovim.io/doc/user/map.html#%3Aabbreviate) :ab[breviate] `{lhs}` show abbr's that start with `{lhs}` [:abbreviate](https://neovim.io/doc/user/map.html#%3Aabbreviate) :ab[breviate] show all abbreviations [:unabbreviate](https://neovim.io/doc/user/map.html#%3Aunabbreviate) :una[bbreviate] `{lhs}` remove abbreviation for `{lhs}` [:noreabbrev](https://neovim.io/doc/user/map.html#%3Anoreabbrev) :norea[bbrev] [lhs] [rhs] like ":ab", but don't remap [rhs] [:iabbrev](https://neovim.io/doc/user/map.html#%3Aiabbrev) :iab/:iunab/:inoreab like ":ab", but only for Insert mode [:cabbrev](https://neovim.io/doc/user/map.html#%3Acabbrev) :cab/:cunab/:cnoreab like ":ab", but only for Command-line mode [:abclear](https://neovim.io/doc/user/map.html#%3Aabclear) :abc[lear] remove all abbreviations [:cabclear](https://neovim.io/doc/user/map.html#%3Acabclear) :cabc[lear] remove all abbr's for Cmdline mode [:iabclear](https://neovim.io/doc/user/map.html#%3Aiabclear) :iabc[lear] remove all abbr's for Insert mode +### [Q_op](https://neovim.io/doc/user/quickref.html#Q_op) Options + +[:set](https://neovim.io/doc/user/options.html#%3Aset) :se[t] show all modified options [:set](https://neovim.io/doc/user/options.html#%3Aset) :se[t] all show all options [:set](https://neovim.io/doc/user/options.html#%3Aset) :se[t] `{option}` set boolean option (switch it on), show string or number option [:set](https://neovim.io/doc/user/options.html#%3Aset) :se[t] no{option} reset boolean option (switch it off) [:set](https://neovim.io/doc/user/options.html#%3Aset) :se[t] inv{option} invert boolean option [:set](https://neovim.io/doc/user/options.html#%3Aset) :se[t] `{option}`={value} set string/number option to `{value}` [:set](https://neovim.io/doc/user/options.html#%3Aset) :se[t] `{option}`+={value} append `{value}` to string option, add `{value}` to number option [:set](https://neovim.io/doc/user/options.html#%3Aset) :se[t] `{option}`-={value} remove `{value}` to string option, subtract `{value}` from number option [:set](https://neovim.io/doc/user/options.html#%3Aset) :se[t] `{option}` show value of `{option}` [:set](https://neovim.io/doc/user/options.html#%3Aset) :se[t] `{option}`& reset `{option}` to its default value +[:setlocal](https://neovim.io/doc/user/options.html#%3Asetlocal) :setl[ocal] like ":set" but set the local value for options that have one [:setglobal](https://neovim.io/doc/user/options.html#%3Asetglobal) :setg[lobal] like ":set" but set the global value of a local option +[:options](https://neovim.io/doc/user/options.html#%3Aoptions) :opt[ions] open a new window to view and set options, grouped by functionality, a one line explanation and links to the help +Short explanation of each option: [option-list](https://neovim.io/doc/user/quickref.html#option-list) +['allowrevins'](https://neovim.io/doc/user/options.html#'allowrevins') ['ari'](https://neovim.io/doc/user/options.html#'ari') allow `CTRL-_` in Insert mode ['ambiwidth'](https://neovim.io/doc/user/options.html#'ambiwidth') ['ambw'](https://neovim.io/doc/user/options.html#'ambw') what to do with Unicode chars of ambiguous width ['arabic'](https://neovim.io/doc/user/options.html#'arabic') ['arab'](https://neovim.io/doc/user/options.html#'arab') for Arabic as a default second language ['arabicshape'](https://neovim.io/doc/user/options.html#'arabicshape') ['arshape'](https://neovim.io/doc/user/options.html#'arshape') do shaping for Arabic characters ['autochdir'](https://neovim.io/doc/user/options.html#'autochdir') ['acd'](https://neovim.io/doc/user/options.html#'acd') change directory to the file in the current window ['autocomplete'](https://neovim.io/doc/user/options.html#'autocomplete') ['ac'](https://neovim.io/doc/user/options.html#'ac') enable automatic completion in insert mode ['autocompletedelay'](https://neovim.io/doc/user/options.html#'autocompletedelay') ['acl'](https://neovim.io/doc/user/options.html#'acl') delay in msec before menu appears after typing ['autocompletetimeout'](https://neovim.io/doc/user/options.html#'autocompletetimeout') ['act'](https://neovim.io/doc/user/options.html#'act') initial decay timeout for autocompletion algorithm ['autoindent'](https://neovim.io/doc/user/options.html#'autoindent') ['ai'](https://neovim.io/doc/user/options.html#'ai') take indent for new line from previous line ['autoread'](https://neovim.io/doc/user/options.html#'autoread') ['ar'](https://neovim.io/doc/user/options.html#'ar') autom. read file when changed outside of Vim ['autowrite'](https://neovim.io/doc/user/options.html#'autowrite') ['aw'](https://neovim.io/doc/user/options.html#'aw') automatically write file if changed ['autowriteall'](https://neovim.io/doc/user/options.html#'autowriteall') ['awa'](https://neovim.io/doc/user/options.html#'awa') as ['autowrite'](https://neovim.io/doc/user/options.html#'autowrite'), but works with more commands ['background'](https://neovim.io/doc/user/options.html#'background') ['bg'](https://neovim.io/doc/user/options.html#'bg') "dark" or "light", used for highlight colors ['backspace'](https://neovim.io/doc/user/options.html#'backspace') ['bs'](https://neovim.io/doc/user/options.html#'bs') how backspace works at start of line ['backup'](https://neovim.io/doc/user/options.html#'backup') ['bk'](https://neovim.io/doc/user/options.html#'bk') keep backup file after overwriting a file ['backupcopy'](https://neovim.io/doc/user/options.html#'backupcopy') ['bkc'](https://neovim.io/doc/user/options.html#'bkc') make backup as a copy, don't rename the file ['backupdir'](https://neovim.io/doc/user/options.html#'backupdir') ['bdir'](https://neovim.io/doc/user/options.html#'bdir') list of directories for the backup file ['backupext'](https://neovim.io/doc/user/options.html#'backupext') ['bex'](https://neovim.io/doc/user/options.html#'bex') extension used for the backup file ['backupskip'](https://neovim.io/doc/user/options.html#'backupskip') ['bsk'](https://neovim.io/doc/user/options.html#'bsk') no backup for files that match these patterns ['belloff'](https://neovim.io/doc/user/options.html#'belloff') ['bo'](https://neovim.io/doc/user/options.html#'bo') do not ring the bell for these reasons ['binary'](https://neovim.io/doc/user/options.html#'binary') ['bin'](https://neovim.io/doc/user/options.html#'bin') read/write/edit file in binary mode ['bomb'](https://neovim.io/doc/user/options.html#'bomb') prepend a Byte Order Mark to the file ['breakat'](https://neovim.io/doc/user/options.html#'breakat') ['brk'](https://neovim.io/doc/user/options.html#'brk') characters that may cause a line break ['breakindent'](https://neovim.io/doc/user/options.html#'breakindent') ['bri'](https://neovim.io/doc/user/options.html#'bri') wrapped line repeats indent ['breakindentopt'](https://neovim.io/doc/user/options.html#'breakindentopt') ['briopt'](https://neovim.io/doc/user/options.html#'briopt') settings for ['breakindent'](https://neovim.io/doc/user/options.html#'breakindent') ['browsedir'](https://neovim.io/doc/user/vim_diff.html#'browsedir') ['bsdir'](https://neovim.io/doc/user/vim_diff.html#'bsdir') which directory to start browsing in ['bufhidden'](https://neovim.io/doc/user/options.html#'bufhidden') ['bh'](https://neovim.io/doc/user/options.html#'bh') what to do when buffer is no longer in window ['buflisted'](https://neovim.io/doc/user/options.html#'buflisted') ['bl'](https://neovim.io/doc/user/options.html#'bl') whether the buffer shows up in the buffer list ['buftype'](https://neovim.io/doc/user/options.html#'buftype') ['bt'](https://neovim.io/doc/user/options.html#'bt') special type of buffer ['casemap'](https://neovim.io/doc/user/options.html#'casemap') ['cmp'](https://neovim.io/doc/user/options.html#'cmp') specifies how case of letters is changed ['cdhome'](https://neovim.io/doc/user/options.html#'cdhome') ['cdh'](https://neovim.io/doc/user/options.html#'cdh') change directory to the home directory by ":cd" ['cdpath'](https://neovim.io/doc/user/options.html#'cdpath') ['cd'](https://neovim.io/doc/user/options.html#'cd') list of directories searched with ":cd" ['cedit'](https://neovim.io/doc/user/options.html#'cedit') key used to open the command-line window ['charconvert'](https://neovim.io/doc/user/options.html#'charconvert') ['ccv'](https://neovim.io/doc/user/options.html#'ccv') expression for character encoding conversion ['chistory'](https://neovim.io/doc/user/options.html#'chistory') ['chi'](https://neovim.io/doc/user/options.html#'chi') maximum number of quickfix lists in history ['cindent'](https://neovim.io/doc/user/options.html#'cindent') ['cin'](https://neovim.io/doc/user/options.html#'cin') do C program indenting ['cinkeys'](https://neovim.io/doc/user/options.html#'cinkeys') ['cink'](https://neovim.io/doc/user/options.html#'cink') keys that trigger indent when ['cindent'](https://neovim.io/doc/user/options.html#'cindent') is set ['cinoptions'](https://neovim.io/doc/user/options.html#'cinoptions') ['cino'](https://neovim.io/doc/user/options.html#'cino') how to do indenting when ['cindent'](https://neovim.io/doc/user/options.html#'cindent') is set ['cinscopedecls'](https://neovim.io/doc/user/options.html#'cinscopedecls') ['cinsd'](https://neovim.io/doc/user/options.html#'cinsd') words that are recognized by 'cino-g' ['cinwords'](https://neovim.io/doc/user/options.html#'cinwords') ['cinw'](https://neovim.io/doc/user/options.html#'cinw') words where ['si'](https://neovim.io/doc/user/options.html#'si') and ['cin'](https://neovim.io/doc/user/options.html#'cin') add an indent ['clipboard'](https://neovim.io/doc/user/options.html#'clipboard') ['cb'](https://neovim.io/doc/user/options.html#'cb') use the clipboard as the unnamed register ['cmdheight'](https://neovim.io/doc/user/options.html#'cmdheight') ['ch'](https://neovim.io/doc/user/options.html#'ch') number of lines to use for the command-line ['cmdwinheight'](https://neovim.io/doc/user/options.html#'cmdwinheight') ['cwh'](https://neovim.io/doc/user/options.html#'cwh') height of the command-line window ['colorcolumn'](https://neovim.io/doc/user/options.html#'colorcolumn') ['cc'](https://neovim.io/doc/user/options.html#'cc') columns to highlight ['columns'](https://neovim.io/doc/user/options.html#'columns') ['co'](https://neovim.io/doc/user/options.html#'co') number of columns in the display ['comments'](https://neovim.io/doc/user/options.html#'comments') ['com'](https://neovim.io/doc/user/options.html#'com') patterns that can start a comment line ['commentstring'](https://neovim.io/doc/user/options.html#'commentstring') ['cms'](https://neovim.io/doc/user/options.html#'cms') template for comments; used for fold marker ['complete'](https://neovim.io/doc/user/options.html#'complete') ['cpt'](https://neovim.io/doc/user/options.html#'cpt') specify how Insert mode completion works ['completefunc'](https://neovim.io/doc/user/options.html#'completefunc') ['cfu'](https://neovim.io/doc/user/options.html#'cfu') function to be used for Insert mode completion ['completeopt'](https://neovim.io/doc/user/options.html#'completeopt') ['cot'](https://neovim.io/doc/user/options.html#'cot') options for Insert mode completion ['completeslash'](https://neovim.io/doc/user/options.html#'completeslash') ['csl'](https://neovim.io/doc/user/options.html#'csl') like ['shellslash'](https://neovim.io/doc/user/options.html#'shellslash') for completion ['completetimeout'](https://neovim.io/doc/user/options.html#'completetimeout') ['cto'](https://neovim.io/doc/user/options.html#'cto') initial decay timeout for `CTRL-N` and `CTRL-P` ['concealcursor'](https://neovim.io/doc/user/options.html#'concealcursor') ['cocu'](https://neovim.io/doc/user/options.html#'cocu') whether concealable text is hidden in cursor line ['conceallevel'](https://neovim.io/doc/user/options.html#'conceallevel') ['cole'](https://neovim.io/doc/user/options.html#'cole') whether concealable text is shown or hidden ['confirm'](https://neovim.io/doc/user/options.html#'confirm') ['cf'](https://neovim.io/doc/user/options.html#'cf') ask what to do about unsaved/read-only files ['copyindent'](https://neovim.io/doc/user/options.html#'copyindent') ['ci'](https://neovim.io/doc/user/options.html#'ci') make ['autoindent'](https://neovim.io/doc/user/options.html#'autoindent') use existing indent structure ['cpoptions'](https://neovim.io/doc/user/options.html#'cpoptions') ['cpo'](https://neovim.io/doc/user/options.html#'cpo') flags for Vi-compatible behavior ['cursorbind'](https://neovim.io/doc/user/options.html#'cursorbind') ['crb'](https://neovim.io/doc/user/options.html#'crb') move cursor in window as it moves in other windows ['cursorcolumn'](https://neovim.io/doc/user/options.html#'cursorcolumn') ['cuc'](https://neovim.io/doc/user/options.html#'cuc') highlight the screen column of the cursor ['cursorline'](https://neovim.io/doc/user/options.html#'cursorline') ['cul'](https://neovim.io/doc/user/options.html#'cul') highlight the screen line of the cursor ['cursorlineopt'](https://neovim.io/doc/user/options.html#'cursorlineopt') ['culopt'](https://neovim.io/doc/user/options.html#'culopt') settings for ['cursorline'](https://neovim.io/doc/user/options.html#'cursorline') ['debug'](https://neovim.io/doc/user/options.html#'debug') set to "msg" to see all error messages ['define'](https://neovim.io/doc/user/options.html#'define') ['def'](https://neovim.io/doc/user/options.html#'def') pattern to be used to find a macro definition ['delcombine'](https://neovim.io/doc/user/options.html#'delcombine') ['deco'](https://neovim.io/doc/user/options.html#'deco') delete combining characters on their own ['dictionary'](https://neovim.io/doc/user/options.html#'dictionary') ['dict'](https://neovim.io/doc/user/options.html#'dict') list of file names used for keyword completion ['diff'](https://neovim.io/doc/user/options.html#'diff') use diff mode for the current window ['diffanchors'](https://neovim.io/doc/user/options.html#'diffanchors') ['dia'](https://neovim.io/doc/user/options.html#'dia') list of `{address}` to force anchoring of a diff ['diffexpr'](https://neovim.io/doc/user/options.html#'diffexpr') ['dex'](https://neovim.io/doc/user/options.html#'dex') expression used to obtain a diff file ['diffopt'](https://neovim.io/doc/user/options.html#'diffopt') ['dip'](https://neovim.io/doc/user/options.html#'dip') options for using diff mode ['digraph'](https://neovim.io/doc/user/options.html#'digraph') ['dg'](https://neovim.io/doc/user/options.html#'dg') enable the entering of digraphs in Insert mode ['directory'](https://neovim.io/doc/user/options.html#'directory') ['dir'](https://neovim.io/doc/user/options.html#'dir') list of directory names for the swap file ['display'](https://neovim.io/doc/user/options.html#'display') ['dy'](https://neovim.io/doc/user/options.html#'dy') list of flags for how to display text ['eadirection'](https://neovim.io/doc/user/options.html#'eadirection') ['ead'](https://neovim.io/doc/user/options.html#'ead') in which direction ['equalalways'](https://neovim.io/doc/user/options.html#'equalalways') works ['encoding'](https://neovim.io/doc/user/options.html#'encoding') ['enc'](https://neovim.io/doc/user/options.html#'enc') encoding used internally ['endoffile'](https://neovim.io/doc/user/options.html#'endoffile') ['eof'](https://neovim.io/doc/user/options.html#'eof') write `CTRL-Z` at end of the file ['endofline'](https://neovim.io/doc/user/options.html#'endofline') ['eol'](https://neovim.io/doc/user/options.html#'eol') write `` for last line in file ['equalalways'](https://neovim.io/doc/user/options.html#'equalalways') ['ea'](https://neovim.io/doc/user/options.html#'ea') windows are automatically made the same size ['equalprg'](https://neovim.io/doc/user/options.html#'equalprg') ['ep'](https://neovim.io/doc/user/options.html#'ep') external program to use for "=" command ['errorbells'](https://neovim.io/doc/user/options.html#'errorbells') ['eb'](https://neovim.io/doc/user/options.html#'eb') ring the bell for error messages ['errorfile'](https://neovim.io/doc/user/options.html#'errorfile') ['ef'](https://neovim.io/doc/user/options.html#'ef') name of the errorfile for the QuickFix mode ['errorformat'](https://neovim.io/doc/user/options.html#'errorformat') ['efm'](https://neovim.io/doc/user/options.html#'efm') description of the lines in the error file ['eventignore'](https://neovim.io/doc/user/options.html#'eventignore') ['ei'](https://neovim.io/doc/user/options.html#'ei') autocommand events that are ignored ['eventignorewin'](https://neovim.io/doc/user/options.html#'eventignorewin') ['eiw'](https://neovim.io/doc/user/options.html#'eiw') autocommand events that are ignored in a window ['expandtab'](https://neovim.io/doc/user/options.html#'expandtab') ['et'](https://neovim.io/doc/user/options.html#'et') use spaces when `` is inserted ['exrc'](https://neovim.io/doc/user/options.html#'exrc') ['ex'](https://neovim.io/doc/user/options.html#'ex') read init files in the current directory ['fileencoding'](https://neovim.io/doc/user/options.html#'fileencoding') ['fenc'](https://neovim.io/doc/user/options.html#'fenc') file encoding for multibyte text ['fileencodings'](https://neovim.io/doc/user/options.html#'fileencodings') ['fencs'](https://neovim.io/doc/user/options.html#'fencs') automatically detected character encodings ['fileformat'](https://neovim.io/doc/user/options.html#'fileformat') ['ff'](https://neovim.io/doc/user/options.html#'ff') file format used for file I/O ['fileformats'](https://neovim.io/doc/user/options.html#'fileformats') ['ffs'](https://neovim.io/doc/user/options.html#'ffs') automatically detected values for ['fileformat'](https://neovim.io/doc/user/options.html#'fileformat') ['fileignorecase'](https://neovim.io/doc/user/options.html#'fileignorecase') ['fic'](https://neovim.io/doc/user/options.html#'fic') ignore case when using file names ['filetype'](https://neovim.io/doc/user/options.html#'filetype') ['ft'](https://neovim.io/doc/user/options.html#'ft') type of file, used for autocommands ['fillchars'](https://neovim.io/doc/user/options.html#'fillchars') ['fcs'](https://neovim.io/doc/user/options.html#'fcs') characters to use for displaying special items ['findfunc'](https://neovim.io/doc/user/options.html#'findfunc') ['ffu'](https://neovim.io/doc/user/options.html#'ffu') function to be called for the [:find](https://neovim.io/doc/user/editing.html#%3Afind) command ['fixendofline'](https://neovim.io/doc/user/options.html#'fixendofline') ['fixeol'](https://neovim.io/doc/user/options.html#'fixeol') make sure last line in file has `` ['foldclose'](https://neovim.io/doc/user/options.html#'foldclose') ['fcl'](https://neovim.io/doc/user/options.html#'fcl') close a fold when the cursor leaves it ['foldcolumn'](https://neovim.io/doc/user/options.html#'foldcolumn') ['fdc'](https://neovim.io/doc/user/options.html#'fdc') width of the column used to indicate folds ['foldenable'](https://neovim.io/doc/user/options.html#'foldenable') ['fen'](https://neovim.io/doc/user/options.html#'fen') set to display all folds open ['foldexpr'](https://neovim.io/doc/user/options.html#'foldexpr') ['fde'](https://neovim.io/doc/user/options.html#'fde') expression used when ['foldmethod'](https://neovim.io/doc/user/options.html#'foldmethod') is "expr" ['foldignore'](https://neovim.io/doc/user/options.html#'foldignore') ['fdi'](https://neovim.io/doc/user/options.html#'fdi') ignore lines when ['foldmethod'](https://neovim.io/doc/user/options.html#'foldmethod') is "indent" ['foldlevel'](https://neovim.io/doc/user/options.html#'foldlevel') ['fdl'](https://neovim.io/doc/user/options.html#'fdl') close folds with a level higher than this ['foldlevelstart'](https://neovim.io/doc/user/options.html#'foldlevelstart') ['fdls'](https://neovim.io/doc/user/options.html#'fdls') ['foldlevel'](https://neovim.io/doc/user/options.html#'foldlevel') when starting to edit a file ['foldmarker'](https://neovim.io/doc/user/options.html#'foldmarker') ['fmr'](https://neovim.io/doc/user/options.html#'fmr') markers used when ['foldmethod'](https://neovim.io/doc/user/options.html#'foldmethod') is "marker" ['foldmethod'](https://neovim.io/doc/user/options.html#'foldmethod') ['fdm'](https://neovim.io/doc/user/options.html#'fdm') folding type ['foldminlines'](https://neovim.io/doc/user/options.html#'foldminlines') ['fml'](https://neovim.io/doc/user/options.html#'fml') minimum number of lines for a fold to be closed ['foldnestmax'](https://neovim.io/doc/user/options.html#'foldnestmax') ['fdn'](https://neovim.io/doc/user/options.html#'fdn') maximum fold depth ['foldopen'](https://neovim.io/doc/user/options.html#'foldopen') ['fdo'](https://neovim.io/doc/user/options.html#'fdo') for which commands a fold will be opened ['foldtext'](https://neovim.io/doc/user/options.html#'foldtext') ['fdt'](https://neovim.io/doc/user/options.html#'fdt') expression used to display for a closed fold ['formatexpr'](https://neovim.io/doc/user/options.html#'formatexpr') ['fex'](https://neovim.io/doc/user/options.html#'fex') expression used with "gq" command ['formatlistpat'](https://neovim.io/doc/user/options.html#'formatlistpat') ['flp'](https://neovim.io/doc/user/options.html#'flp') pattern used to recognize a list header ['formatoptions'](https://neovim.io/doc/user/options.html#'formatoptions') ['fo'](https://neovim.io/doc/user/options.html#'fo') how automatic formatting is to be done ['formatprg'](https://neovim.io/doc/user/options.html#'formatprg') ['fp'](https://neovim.io/doc/user/options.html#'fp') name of external program used with "gq" command ['fsync'](https://neovim.io/doc/user/options.html#'fsync') ['fs'](https://neovim.io/doc/user/options.html#'fs') whether to invoke fsync() after file write ['gdefault'](https://neovim.io/doc/user/options.html#'gdefault') ['gd'](https://neovim.io/doc/user/options.html#'gd') the ":substitute" flag 'g' is default on ['grepformat'](https://neovim.io/doc/user/options.html#'grepformat') ['gfm'](https://neovim.io/doc/user/options.html#'gfm') format of ['grepprg'](https://neovim.io/doc/user/options.html#'grepprg') output ['grepprg'](https://neovim.io/doc/user/options.html#'grepprg') ['gp'](https://neovim.io/doc/user/options.html#'gp') program to use for ":grep" ['guicursor'](https://neovim.io/doc/user/options.html#'guicursor') ['gcr'](https://neovim.io/doc/user/options.html#'gcr') GUI: settings for cursor shape and blinking ['guifont'](https://neovim.io/doc/user/options.html#'guifont') ['gfn'](https://neovim.io/doc/user/options.html#'gfn') GUI: Name(s) of font(s) to be used ['guifontwide'](https://neovim.io/doc/user/options.html#'guifontwide') ['gfw'](https://neovim.io/doc/user/options.html#'gfw') list of font names for double-wide characters ['guioptions'](https://neovim.io/doc/user/vim_diff.html#'guioptions') ['go'](https://neovim.io/doc/user/vim_diff.html#'go') GUI: Which components and options are used ['guitablabel'](https://neovim.io/doc/user/vim_diff.html#'guitablabel') ['gtl'](https://neovim.io/doc/user/vim_diff.html#'gtl') GUI: custom label for a tab page ['guitabtooltip'](https://neovim.io/doc/user/vim_diff.html#'guitabtooltip') ['gtt'](https://neovim.io/doc/user/vim_diff.html#'gtt') GUI: custom tooltip for a tab page ['helpfile'](https://neovim.io/doc/user/options.html#'helpfile') ['hf'](https://neovim.io/doc/user/options.html#'hf') full path name of the main help file ['helpheight'](https://neovim.io/doc/user/options.html#'helpheight') ['hh'](https://neovim.io/doc/user/options.html#'hh') minimum height of a new help window ['helplang'](https://neovim.io/doc/user/options.html#'helplang') ['hlg'](https://neovim.io/doc/user/options.html#'hlg') preferred help languages ['hidden'](https://neovim.io/doc/user/options.html#'hidden') ['hid'](https://neovim.io/doc/user/options.html#'hid') don't unload buffer when it is [abandon](https://neovim.io/doc/user/editing.html#abandon)ed ['history'](https://neovim.io/doc/user/options.html#'history') ['hi'](https://neovim.io/doc/user/options.html#'hi') number of command-lines that are remembered ['hlsearch'](https://neovim.io/doc/user/options.html#'hlsearch') ['hls'](https://neovim.io/doc/user/options.html#'hls') highlight matches with last search pattern ['icon'](https://neovim.io/doc/user/options.html#'icon') let Vim set the text of the window icon ['iconstring'](https://neovim.io/doc/user/options.html#'iconstring') string to use for the Vim icon text ['ignorecase'](https://neovim.io/doc/user/options.html#'ignorecase') ['ic'](https://neovim.io/doc/user/options.html#'ic') ignore case in search patterns ['imcmdline'](https://neovim.io/doc/user/vim_diff.html#'imcmdline') ['imc'](https://neovim.io/doc/user/vim_diff.html#'imc') use IM when starting to edit a command line ['imdisable'](https://neovim.io/doc/user/vim_diff.html#'imdisable') ['imd'](https://neovim.io/doc/user/vim_diff.html#'imd') do not use the IM in any mode ['iminsert'](https://neovim.io/doc/user/options.html#'iminsert') ['imi'](https://neovim.io/doc/user/options.html#'imi') use :lmap or IM in Insert mode ['imsearch'](https://neovim.io/doc/user/options.html#'imsearch') ['ims'](https://neovim.io/doc/user/options.html#'ims') use :lmap or IM when typing a search pattern ['include'](https://neovim.io/doc/user/options.html#'include') ['inc'](https://neovim.io/doc/user/options.html#'inc') pattern to be used to find an include file ['includeexpr'](https://neovim.io/doc/user/options.html#'includeexpr') ['inex'](https://neovim.io/doc/user/options.html#'inex') expression used to process an include line ['incsearch'](https://neovim.io/doc/user/options.html#'incsearch') ['is'](https://neovim.io/doc/user/options.html#'is') highlight match while typing search pattern ['indentexpr'](https://neovim.io/doc/user/options.html#'indentexpr') ['inde'](https://neovim.io/doc/user/options.html#'inde') expression used to obtain the indent of a line ['indentkeys'](https://neovim.io/doc/user/options.html#'indentkeys') ['indk'](https://neovim.io/doc/user/options.html#'indk') keys that trigger indenting with ['indentexpr'](https://neovim.io/doc/user/options.html#'indentexpr') ['infercase'](https://neovim.io/doc/user/options.html#'infercase') ['inf'](https://neovim.io/doc/user/options.html#'inf') adjust case of match for keyword completion ['isfname'](https://neovim.io/doc/user/options.html#'isfname') ['isf'](https://neovim.io/doc/user/options.html#'isf') characters included in file names and pathnames ['isident'](https://neovim.io/doc/user/options.html#'isident') ['isi'](https://neovim.io/doc/user/options.html#'isi') characters included in identifiers ['iskeyword'](https://neovim.io/doc/user/options.html#'iskeyword') ['isk'](https://neovim.io/doc/user/options.html#'isk') characters included in keywords ['isprint'](https://neovim.io/doc/user/options.html#'isprint') ['isp'](https://neovim.io/doc/user/options.html#'isp') printable characters ['joinspaces'](https://neovim.io/doc/user/options.html#'joinspaces') ['js'](https://neovim.io/doc/user/options.html#'js') two spaces after a period with a join command ['jumpoptions'](https://neovim.io/doc/user/options.html#'jumpoptions') ['jop'](https://neovim.io/doc/user/options.html#'jop') specifies how jumping is done ['keymap'](https://neovim.io/doc/user/options.html#'keymap') ['kmp'](https://neovim.io/doc/user/options.html#'kmp') name of a keyboard mapping ['keymodel'](https://neovim.io/doc/user/options.html#'keymodel') ['km'](https://neovim.io/doc/user/options.html#'km') enable starting/stopping selection with keys ['keywordprg'](https://neovim.io/doc/user/options.html#'keywordprg') ['kp'](https://neovim.io/doc/user/options.html#'kp') program to use for the "K" command ['langmap'](https://neovim.io/doc/user/options.html#'langmap') ['lmap'](https://neovim.io/doc/user/options.html#'lmap') alphabetic characters for other language mode ['langmenu'](https://neovim.io/doc/user/options.html#'langmenu') ['lm'](https://neovim.io/doc/user/options.html#'lm') language to be used for the menus ['langremap'](https://neovim.io/doc/user/options.html#'langremap') ['lrm'](https://neovim.io/doc/user/options.html#'lrm') do apply ['langmap'](https://neovim.io/doc/user/options.html#'langmap') to mapped characters ['laststatus'](https://neovim.io/doc/user/options.html#'laststatus') ['ls'](https://neovim.io/doc/user/options.html#'ls') tells when last window has status lines ['lazyredraw'](https://neovim.io/doc/user/options.html#'lazyredraw') ['lz'](https://neovim.io/doc/user/options.html#'lz') don't redraw while executing macros ['lhistory'](https://neovim.io/doc/user/options.html#'lhistory') ['lhi'](https://neovim.io/doc/user/options.html#'lhi') maximum number of location lists in history ['linebreak'](https://neovim.io/doc/user/options.html#'linebreak') ['lbr'](https://neovim.io/doc/user/options.html#'lbr') wrap long lines at a blank ['lines'](https://neovim.io/doc/user/options.html#'lines') number of lines in the display ['linespace'](https://neovim.io/doc/user/options.html#'linespace') ['lsp'](https://neovim.io/doc/user/options.html#'lsp') number of pixel lines to use between characters ['lisp'](https://neovim.io/doc/user/options.html#'lisp') automatic indenting for Lisp ['lispoptions'](https://neovim.io/doc/user/options.html#'lispoptions') ['lop'](https://neovim.io/doc/user/options.html#'lop') changes how Lisp indenting is done ['lispwords'](https://neovim.io/doc/user/options.html#'lispwords') ['lw'](https://neovim.io/doc/user/options.html#'lw') words that change how lisp indenting works ['list'](https://neovim.io/doc/user/options.html#'list') show `` and `` ['listchars'](https://neovim.io/doc/user/options.html#'listchars') ['lcs'](https://neovim.io/doc/user/options.html#'lcs') characters for displaying in list mode ['loadplugins'](https://neovim.io/doc/user/options.html#'loadplugins') ['lpl'](https://neovim.io/doc/user/options.html#'lpl') load plugin scripts when starting up ['magic'](https://neovim.io/doc/user/options.html#'magic') changes special characters in search patterns ['makeef'](https://neovim.io/doc/user/options.html#'makeef') ['mef'](https://neovim.io/doc/user/options.html#'mef') name of the errorfile for ":make" ['makeencoding'](https://neovim.io/doc/user/options.html#'makeencoding') ['menc'](https://neovim.io/doc/user/options.html#'menc') encoding of external make/grep commands ['makeprg'](https://neovim.io/doc/user/options.html#'makeprg') ['mp'](https://neovim.io/doc/user/options.html#'mp') program to use for the ":make" command ['matchpairs'](https://neovim.io/doc/user/options.html#'matchpairs') ['mps'](https://neovim.io/doc/user/options.html#'mps') pairs of characters that "%" can match ['matchtime'](https://neovim.io/doc/user/options.html#'matchtime') ['mat'](https://neovim.io/doc/user/options.html#'mat') tenths of a second to show matching paren ['maxcombine'](https://neovim.io/doc/user/vim_diff.html#'maxcombine') ['mco'](https://neovim.io/doc/user/vim_diff.html#'mco') maximum nr of combining characters displayed ['maxfuncdepth'](https://neovim.io/doc/user/options.html#'maxfuncdepth') ['mfd'](https://neovim.io/doc/user/options.html#'mfd') maximum recursive depth for user functions ['maxmapdepth'](https://neovim.io/doc/user/options.html#'maxmapdepth') ['mmd'](https://neovim.io/doc/user/options.html#'mmd') maximum recursive depth for mapping ['maxmempattern'](https://neovim.io/doc/user/options.html#'maxmempattern') ['mmp'](https://neovim.io/doc/user/options.html#'mmp') maximum memory (in Kbyte) used for pattern search ['menuitems'](https://neovim.io/doc/user/options.html#'menuitems') ['mis'](https://neovim.io/doc/user/options.html#'mis') maximum number of items in a menu ['mkspellmem'](https://neovim.io/doc/user/options.html#'mkspellmem') ['msm'](https://neovim.io/doc/user/options.html#'msm') memory used before [:mkspell](https://neovim.io/doc/user/spell.html#%3Amkspell) compresses the tree ['modeline'](https://neovim.io/doc/user/options.html#'modeline') ['ml'](https://neovim.io/doc/user/options.html#'ml') recognize modelines at start or end of file ['modelineexpr'](https://neovim.io/doc/user/options.html#'modelineexpr') ['mle'](https://neovim.io/doc/user/options.html#'mle') allow setting expression options from a modeline ['modelines'](https://neovim.io/doc/user/options.html#'modelines') ['mls'](https://neovim.io/doc/user/options.html#'mls') number of lines checked for modelines ['modifiable'](https://neovim.io/doc/user/options.html#'modifiable') ['ma'](https://neovim.io/doc/user/options.html#'ma') changes to the text are not possible ['modified'](https://neovim.io/doc/user/options.html#'modified') ['mod'](https://neovim.io/doc/user/options.html#'mod') buffer has been modified ['more'](https://neovim.io/doc/user/options.html#'more') pause listings when the whole screen is filled ['mouse'](https://neovim.io/doc/user/options.html#'mouse') enable the use of mouse clicks ['mousefocus'](https://neovim.io/doc/user/options.html#'mousefocus') ['mousef'](https://neovim.io/doc/user/options.html#'mousef') keyboard focus follows the mouse ['mousehide'](https://neovim.io/doc/user/options.html#'mousehide') ['mh'](https://neovim.io/doc/user/options.html#'mh') hide mouse pointer while typing ['mousemodel'](https://neovim.io/doc/user/options.html#'mousemodel') ['mousem'](https://neovim.io/doc/user/options.html#'mousem') changes meaning of mouse buttons ['mousemoveevent'](https://neovim.io/doc/user/options.html#'mousemoveevent') ['mousemev'](https://neovim.io/doc/user/options.html#'mousemev') report mouse moves with `` ['mousescroll'](https://neovim.io/doc/user/options.html#'mousescroll') amount to scroll by when scrolling with a mouse ['mouseshape'](https://neovim.io/doc/user/vim_diff.html#'mouseshape') ['mouses'](https://neovim.io/doc/user/vim_diff.html#'mouses') shape of the mouse pointer in different modes ['mousetime'](https://neovim.io/doc/user/options.html#'mousetime') ['mouset'](https://neovim.io/doc/user/options.html#'mouset') max time between mouse double-click ['nrformats'](https://neovim.io/doc/user/options.html#'nrformats') ['nf'](https://neovim.io/doc/user/options.html#'nf') number formats recognized for `CTRL-A` command ['number'](https://neovim.io/doc/user/options.html#'number') ['nu'](https://neovim.io/doc/user/options.html#'nu') print the line number in front of each line ['numberwidth'](https://neovim.io/doc/user/options.html#'numberwidth') ['nuw'](https://neovim.io/doc/user/options.html#'nuw') number of columns used for the line number ['omnifunc'](https://neovim.io/doc/user/options.html#'omnifunc') ['ofu'](https://neovim.io/doc/user/options.html#'ofu') function for filetype-specific completion ['opendevice'](https://neovim.io/doc/user/vim_diff.html#'opendevice') ['odev'](https://neovim.io/doc/user/vim_diff.html#'odev') allow reading/writing devices on MS-Windows ['operatorfunc'](https://neovim.io/doc/user/options.html#'operatorfunc') ['opfunc'](https://neovim.io/doc/user/options.html#'opfunc') function to be called for [g@](https://neovim.io/doc/user/map.html#g%40) operator ['packpath'](https://neovim.io/doc/user/options.html#'packpath') ['pp'](https://neovim.io/doc/user/options.html#'pp') list of directories used for packages ['paragraphs'](https://neovim.io/doc/user/options.html#'paragraphs') ['para'](https://neovim.io/doc/user/options.html#'para') nroff macros that separate paragraphs ['patchexpr'](https://neovim.io/doc/user/options.html#'patchexpr') ['pex'](https://neovim.io/doc/user/options.html#'pex') expression used to patch a file ['patchmode'](https://neovim.io/doc/user/options.html#'patchmode') ['pm'](https://neovim.io/doc/user/options.html#'pm') keep the oldest version of a file ['path'](https://neovim.io/doc/user/options.html#'path') ['pa'](https://neovim.io/doc/user/options.html#'pa') list of directories searched with "gf" et.al. ['preserveindent'](https://neovim.io/doc/user/options.html#'preserveindent') ['pi'](https://neovim.io/doc/user/options.html#'pi') preserve the indent structure when reindenting ['previewheight'](https://neovim.io/doc/user/options.html#'previewheight') ['pvh'](https://neovim.io/doc/user/options.html#'pvh') height of the preview window ['previewwindow'](https://neovim.io/doc/user/options.html#'previewwindow') ['pvw'](https://neovim.io/doc/user/options.html#'pvw') identifies the preview window ['pumheight'](https://neovim.io/doc/user/options.html#'pumheight') ['ph'](https://neovim.io/doc/user/options.html#'ph') maximum number of items to show in the popup menu ['pumwidth'](https://neovim.io/doc/user/options.html#'pumwidth') ['pw'](https://neovim.io/doc/user/options.html#'pw') minimum width of the popup menu ['pyxversion'](https://neovim.io/doc/user/options.html#'pyxversion') ['pyx'](https://neovim.io/doc/user/options.html#'pyx') Python version used for pyx* commands ['quoteescape'](https://neovim.io/doc/user/options.html#'quoteescape') ['qe'](https://neovim.io/doc/user/options.html#'qe') escape characters used in a string ['readonly'](https://neovim.io/doc/user/options.html#'readonly') ['ro'](https://neovim.io/doc/user/options.html#'ro') disallow writing the buffer ['redrawtime'](https://neovim.io/doc/user/options.html#'redrawtime') ['rdt'](https://neovim.io/doc/user/options.html#'rdt') timeout for ['hlsearch'](https://neovim.io/doc/user/options.html#'hlsearch') and [:match](https://neovim.io/doc/user/pattern.html#%3Amatch) highlighting ['regexpengine'](https://neovim.io/doc/user/options.html#'regexpengine') ['re'](https://neovim.io/doc/user/options.html#'re') default regexp engine to use ['relativenumber'](https://neovim.io/doc/user/options.html#'relativenumber') ['rnu'](https://neovim.io/doc/user/options.html#'rnu') show relative line number in front of each line ['report'](https://neovim.io/doc/user/options.html#'report') threshold for reporting nr. of lines changed ['revins'](https://neovim.io/doc/user/options.html#'revins') ['ri'](https://neovim.io/doc/user/options.html#'ri') inserting characters will work backwards ['rightleft'](https://neovim.io/doc/user/options.html#'rightleft') ['rl'](https://neovim.io/doc/user/options.html#'rl') window is right-to-left oriented ['rightleftcmd'](https://neovim.io/doc/user/options.html#'rightleftcmd') ['rlc'](https://neovim.io/doc/user/options.html#'rlc') commands for which editing works right-to-left ['ruler'](https://neovim.io/doc/user/options.html#'ruler') ['ru'](https://neovim.io/doc/user/options.html#'ru') show cursor line and column in the status line ['rulerformat'](https://neovim.io/doc/user/options.html#'rulerformat') ['ruf'](https://neovim.io/doc/user/options.html#'ruf') custom format for the ruler ['runtimepath'](https://neovim.io/doc/user/options.html#'runtimepath') ['rtp'](https://neovim.io/doc/user/options.html#'rtp') list of directories used for runtime files ['scroll'](https://neovim.io/doc/user/options.html#'scroll') ['scr'](https://neovim.io/doc/user/options.html#'scr') lines to scroll with `CTRL-U` and `CTRL-D` ['scrollbind'](https://neovim.io/doc/user/options.html#'scrollbind') ['scb'](https://neovim.io/doc/user/options.html#'scb') scroll in window as other windows scroll ['scrolljump'](https://neovim.io/doc/user/options.html#'scrolljump') ['sj'](https://neovim.io/doc/user/options.html#'sj') minimum number of lines to scroll ['scrolloff'](https://neovim.io/doc/user/options.html#'scrolloff') ['so'](https://neovim.io/doc/user/options.html#'so') minimum nr. of lines above and below cursor ['scrollopt'](https://neovim.io/doc/user/options.html#'scrollopt') ['sbo'](https://neovim.io/doc/user/options.html#'sbo') how ['scrollbind'](https://neovim.io/doc/user/options.html#'scrollbind') should behave ['sections'](https://neovim.io/doc/user/options.html#'sections') ['sect'](https://neovim.io/doc/user/options.html#'sect') nroff macros that separate sections ['secure'](https://neovim.io/doc/user/vim_diff.html#'secure') secure mode for reading .vimrc in current dir ['selection'](https://neovim.io/doc/user/options.html#'selection') ['sel'](https://neovim.io/doc/user/options.html#'sel') what type of selection to use ['selectmode'](https://neovim.io/doc/user/options.html#'selectmode') ['slm'](https://neovim.io/doc/user/options.html#'slm') when to use Select mode instead of Visual mode ['sessionoptions'](https://neovim.io/doc/user/options.html#'sessionoptions') ['ssop'](https://neovim.io/doc/user/options.html#'ssop') options for [:mksession](https://neovim.io/doc/user/starting.html#%3Amksession) ['shada'](https://neovim.io/doc/user/options.html#'shada') ['sd'](https://neovim.io/doc/user/options.html#'sd') use [shada](https://neovim.io/doc/user/starting.html#shada) file upon startup and exiting ['shell'](https://neovim.io/doc/user/options.html#'shell') ['sh'](https://neovim.io/doc/user/options.html#'sh') name of shell to use for external commands ['shellcmdflag'](https://neovim.io/doc/user/options.html#'shellcmdflag') ['shcf'](https://neovim.io/doc/user/options.html#'shcf') flag to shell to execute one command ['shellpipe'](https://neovim.io/doc/user/options.html#'shellpipe') ['sp'](https://neovim.io/doc/user/options.html#'sp') string to put output of ":make" in error file ['shellquote'](https://neovim.io/doc/user/options.html#'shellquote') ['shq'](https://neovim.io/doc/user/options.html#'shq') quote character(s) for around shell command ['shellredir'](https://neovim.io/doc/user/options.html#'shellredir') ['srr'](https://neovim.io/doc/user/options.html#'srr') string to put output of filter in a temp file ['shellslash'](https://neovim.io/doc/user/options.html#'shellslash') ['ssl'](https://neovim.io/doc/user/options.html#'ssl') use forward slash for shell file names ['shelltemp'](https://neovim.io/doc/user/options.html#'shelltemp') ['stmp'](https://neovim.io/doc/user/options.html#'stmp') whether to use a temp file for shell commands ['shellxescape'](https://neovim.io/doc/user/options.html#'shellxescape') ['sxe'](https://neovim.io/doc/user/options.html#'sxe') characters to escape when ['shellxquote'](https://neovim.io/doc/user/options.html#'shellxquote') is ( ['shellxquote'](https://neovim.io/doc/user/options.html#'shellxquote') ['sxq'](https://neovim.io/doc/user/options.html#'sxq') like ['shellquote'](https://neovim.io/doc/user/options.html#'shellquote'), but include redirection ['shiftround'](https://neovim.io/doc/user/options.html#'shiftround') ['sr'](https://neovim.io/doc/user/options.html#'sr') round indent to multiple of shiftwidth ['shiftwidth'](https://neovim.io/doc/user/options.html#'shiftwidth') ['sw'](https://neovim.io/doc/user/options.html#'sw') number of spaces to use for (auto)indent step ['shortmess'](https://neovim.io/doc/user/options.html#'shortmess') ['shm'](https://neovim.io/doc/user/options.html#'shm') list of flags, reduce length of messages ['showbreak'](https://neovim.io/doc/user/options.html#'showbreak') ['sbr'](https://neovim.io/doc/user/options.html#'sbr') string to use at the start of wrapped lines ['showcmd'](https://neovim.io/doc/user/options.html#'showcmd') ['sc'](https://neovim.io/doc/user/options.html#'sc') show (partial) command somewhere ['showcmdloc'](https://neovim.io/doc/user/options.html#'showcmdloc') ['sloc'](https://neovim.io/doc/user/options.html#'sloc') where to show (partial) command ['showfulltag'](https://neovim.io/doc/user/options.html#'showfulltag') ['sft'](https://neovim.io/doc/user/options.html#'sft') show full tag pattern when completing tag ['showmatch'](https://neovim.io/doc/user/options.html#'showmatch') ['sm'](https://neovim.io/doc/user/options.html#'sm') briefly jump to matching bracket if insert one ['showmode'](https://neovim.io/doc/user/options.html#'showmode') ['smd'](https://neovim.io/doc/user/options.html#'smd') message on status line to show current mode ['showtabline'](https://neovim.io/doc/user/options.html#'showtabline') ['stal'](https://neovim.io/doc/user/options.html#'stal') tells when the tab pages line is displayed ['sidescroll'](https://neovim.io/doc/user/options.html#'sidescroll') ['ss'](https://neovim.io/doc/user/options.html#'ss') minimum number of columns to scroll horizontal ['sidescrolloff'](https://neovim.io/doc/user/options.html#'sidescrolloff') ['siso'](https://neovim.io/doc/user/options.html#'siso') min. nr. of columns to left and right of cursor ['signcolumn'](https://neovim.io/doc/user/options.html#'signcolumn') ['scl'](https://neovim.io/doc/user/options.html#'scl') when and how to display the sign column ['smartcase'](https://neovim.io/doc/user/options.html#'smartcase') ['scs'](https://neovim.io/doc/user/options.html#'scs') no ignore case when pattern has uppercase ['smartindent'](https://neovim.io/doc/user/options.html#'smartindent') ['si'](https://neovim.io/doc/user/options.html#'si') smart autoindenting for C programs ['smarttab'](https://neovim.io/doc/user/options.html#'smarttab') ['sta'](https://neovim.io/doc/user/options.html#'sta') `` in leading whitespace indents by ['shiftwidth'](https://neovim.io/doc/user/options.html#'shiftwidth') ['smoothscroll'](https://neovim.io/doc/user/options.html#'smoothscroll') ['sms'](https://neovim.io/doc/user/options.html#'sms') scroll by screen lines when ['wrap'](https://neovim.io/doc/user/options.html#'wrap') is set ['softtabstop'](https://neovim.io/doc/user/options.html#'softtabstop') ['sts'](https://neovim.io/doc/user/options.html#'sts') number of columns between two soft tab stops ['spell'](https://neovim.io/doc/user/options.html#'spell') enable spell checking ['spellcapcheck'](https://neovim.io/doc/user/options.html#'spellcapcheck') ['spc'](https://neovim.io/doc/user/options.html#'spc') pattern to locate end of a sentence ['spellfile'](https://neovim.io/doc/user/options.html#'spellfile') ['spf'](https://neovim.io/doc/user/options.html#'spf') files where [zg](https://neovim.io/doc/user/spell.html#zg) and [zw](https://neovim.io/doc/user/spell.html#zw) store words ['spelllang'](https://neovim.io/doc/user/options.html#'spelllang') ['spl'](https://neovim.io/doc/user/options.html#'spl') language(s) to do spell checking for ['spelloptions'](https://neovim.io/doc/user/options.html#'spelloptions') ['spo'](https://neovim.io/doc/user/options.html#'spo') options for spell checking ['spellsuggest'](https://neovim.io/doc/user/options.html#'spellsuggest') ['sps'](https://neovim.io/doc/user/options.html#'sps') method(s) used to suggest spelling corrections ['splitbelow'](https://neovim.io/doc/user/options.html#'splitbelow') ['sb'](https://neovim.io/doc/user/options.html#'sb') new window from split is below the current one ['splitkeep'](https://neovim.io/doc/user/options.html#'splitkeep') ['spk'](https://neovim.io/doc/user/options.html#'spk') determines scroll behavior for split windows ['splitright'](https://neovim.io/doc/user/options.html#'splitright') ['spr'](https://neovim.io/doc/user/options.html#'spr') new window is put right of the current one ['startofline'](https://neovim.io/doc/user/options.html#'startofline') ['sol'](https://neovim.io/doc/user/options.html#'sol') commands move cursor to first non-blank in line ['statuscolumn'](https://neovim.io/doc/user/options.html#'statuscolumn') ['stc'](https://neovim.io/doc/user/options.html#'stc') custom format for the status column ['statusline'](https://neovim.io/doc/user/options.html#'statusline') ['stl'](https://neovim.io/doc/user/options.html#'stl') custom format for the status line ['suffixes'](https://neovim.io/doc/user/options.html#'suffixes') ['su'](https://neovim.io/doc/user/options.html#'su') suffixes that are ignored with multiple match ['suffixesadd'](https://neovim.io/doc/user/options.html#'suffixesadd') ['sua'](https://neovim.io/doc/user/options.html#'sua') suffixes added when searching for a file ['swapfile'](https://neovim.io/doc/user/options.html#'swapfile') ['swf'](https://neovim.io/doc/user/options.html#'swf') whether to use a swapfile for a buffer ['switchbuf'](https://neovim.io/doc/user/options.html#'switchbuf') ['swb'](https://neovim.io/doc/user/options.html#'swb') sets behavior when switching to another buffer ['synmaxcol'](https://neovim.io/doc/user/options.html#'synmaxcol') ['smc'](https://neovim.io/doc/user/options.html#'smc') maximum column to find syntax items ['syntax'](https://neovim.io/doc/user/options.html#'syntax') ['syn'](https://neovim.io/doc/user/options.html#'syn') syntax to be loaded for current buffer ['tabclose'](https://neovim.io/doc/user/options.html#'tabclose') ['tcl'](https://neovim.io/doc/user/options.html#'tcl') which tab page to focus when closing a tab ['tabline'](https://neovim.io/doc/user/options.html#'tabline') ['tal'](https://neovim.io/doc/user/options.html#'tal') custom format for the console tab pages line ['tabpagemax'](https://neovim.io/doc/user/options.html#'tabpagemax') ['tpm'](https://neovim.io/doc/user/options.html#'tpm') maximum number of tab pages for [-p](https://neovim.io/doc/user/starting.html#-p) and "tab all" ['tabstop'](https://neovim.io/doc/user/options.html#'tabstop') ['ts'](https://neovim.io/doc/user/options.html#'ts') number of columns between two tab stops ['tagbsearch'](https://neovim.io/doc/user/options.html#'tagbsearch') ['tbs'](https://neovim.io/doc/user/options.html#'tbs') use binary searching in tags files ['tagcase'](https://neovim.io/doc/user/options.html#'tagcase') ['tc'](https://neovim.io/doc/user/options.html#'tc') how to handle case when searching in tags files ['tagfunc'](https://neovim.io/doc/user/options.html#'tagfunc') ['tfu'](https://neovim.io/doc/user/options.html#'tfu') function to get list of tag matches ['taglength'](https://neovim.io/doc/user/options.html#'taglength') ['tl'](https://neovim.io/doc/user/options.html#'tl') number of significant characters for a tag ['tagrelative'](https://neovim.io/doc/user/options.html#'tagrelative') ['tr'](https://neovim.io/doc/user/options.html#'tr') file names in tag file are relative ['tags'](https://neovim.io/doc/user/options.html#'tags') ['tag'](https://neovim.io/doc/user/options.html#'tag') list of file names used by the tag command ['tagstack'](https://neovim.io/doc/user/options.html#'tagstack') ['tgst'](https://neovim.io/doc/user/options.html#'tgst') push tags onto the tag stack ['term'](https://neovim.io/doc/user/vim_diff.html#'term') name of the terminal ['termbidi'](https://neovim.io/doc/user/options.html#'termbidi') ['tbidi'](https://neovim.io/doc/user/options.html#'tbidi') terminal takes care of bi-directionality ['termguicolors'](https://neovim.io/doc/user/options.html#'termguicolors') ['tgc'](https://neovim.io/doc/user/options.html#'tgc') enable 24-bit RGB color in the TUI ['textwidth'](https://neovim.io/doc/user/options.html#'textwidth') ['tw'](https://neovim.io/doc/user/options.html#'tw') maximum width of text that is being inserted ['thesaurus'](https://neovim.io/doc/user/options.html#'thesaurus') ['tsr'](https://neovim.io/doc/user/options.html#'tsr') list of thesaurus files for keyword completion ['thesaurusfunc'](https://neovim.io/doc/user/options.html#'thesaurusfunc') ['tsrfu'](https://neovim.io/doc/user/options.html#'tsrfu') function to be used for thesaurus completion ['tildeop'](https://neovim.io/doc/user/options.html#'tildeop') ['top'](https://neovim.io/doc/user/options.html#'top') tilde command "~" behaves like an operator ['timeout'](https://neovim.io/doc/user/options.html#'timeout') ['to'](https://neovim.io/doc/user/options.html#'to') time out on mappings and key codes ['timeoutlen'](https://neovim.io/doc/user/options.html#'timeoutlen') ['tm'](https://neovim.io/doc/user/options.html#'tm') time out time in milliseconds ['title'](https://neovim.io/doc/user/options.html#'title') let Vim set the title of the window ['titlelen'](https://neovim.io/doc/user/options.html#'titlelen') percentage of ['columns'](https://neovim.io/doc/user/options.html#'columns') used for window title ['titleold'](https://neovim.io/doc/user/options.html#'titleold') old title, restored when exiting ['titlestring'](https://neovim.io/doc/user/options.html#'titlestring') string to use for the Vim window title ['ttimeout'](https://neovim.io/doc/user/options.html#'ttimeout') time out on mappings ['ttimeoutlen'](https://neovim.io/doc/user/options.html#'ttimeoutlen') ['ttm'](https://neovim.io/doc/user/options.html#'ttm') time out time for key codes in milliseconds ['ttytype'](https://neovim.io/doc/user/vim_diff.html#'ttytype') ['tty'](https://neovim.io/doc/user/vim_diff.html#'tty') alias for ['term'](https://neovim.io/doc/user/vim_diff.html#'term') ['undodir'](https://neovim.io/doc/user/options.html#'undodir') ['udir'](https://neovim.io/doc/user/options.html#'udir') where to store undo files ['undofile'](https://neovim.io/doc/user/options.html#'undofile') ['udf'](https://neovim.io/doc/user/options.html#'udf') save undo information in a file ['undolevels'](https://neovim.io/doc/user/options.html#'undolevels') ['ul'](https://neovim.io/doc/user/options.html#'ul') maximum number of changes that can be undone ['undoreload'](https://neovim.io/doc/user/options.html#'undoreload') ['ur'](https://neovim.io/doc/user/options.html#'ur') max nr of lines to save for undo on a buffer reload ['updatecount'](https://neovim.io/doc/user/options.html#'updatecount') ['uc'](https://neovim.io/doc/user/options.html#'uc') after this many characters flush swap file ['updatetime'](https://neovim.io/doc/user/options.html#'updatetime') ['ut'](https://neovim.io/doc/user/options.html#'ut') after this many milliseconds flush swap file ['varsofttabstop'](https://neovim.io/doc/user/options.html#'varsofttabstop') ['vsts'](https://neovim.io/doc/user/options.html#'vsts') a list of number of columns between soft tab stops ['vartabstop'](https://neovim.io/doc/user/options.html#'vartabstop') ['vts'](https://neovim.io/doc/user/options.html#'vts') a list of number of columns between tab stops ['verbose'](https://neovim.io/doc/user/options.html#'verbose') ['vbs'](https://neovim.io/doc/user/options.html#'vbs') give informative messages ['verbosefile'](https://neovim.io/doc/user/options.html#'verbosefile') ['vfile'](https://neovim.io/doc/user/options.html#'vfile') file to write messages in ['viewdir'](https://neovim.io/doc/user/options.html#'viewdir') ['vdir'](https://neovim.io/doc/user/options.html#'vdir') directory where to store files with :mkview ['viewoptions'](https://neovim.io/doc/user/options.html#'viewoptions') ['vop'](https://neovim.io/doc/user/options.html#'vop') specifies what to save for :mkview ['virtualedit'](https://neovim.io/doc/user/options.html#'virtualedit') ['ve'](https://neovim.io/doc/user/options.html#'ve') when to use virtual editing ['visualbell'](https://neovim.io/doc/user/options.html#'visualbell') ['vb'](https://neovim.io/doc/user/options.html#'vb') use visual bell instead of beeping ['warn'](https://neovim.io/doc/user/options.html#'warn') warn for shell command when buffer was changed ['whichwrap'](https://neovim.io/doc/user/options.html#'whichwrap') ['ww'](https://neovim.io/doc/user/options.html#'ww') allow specified keys to cross line boundaries ['wildchar'](https://neovim.io/doc/user/options.html#'wildchar') ['wc'](https://neovim.io/doc/user/options.html#'wc') command-line character for wildcard expansion ['wildcharm'](https://neovim.io/doc/user/options.html#'wildcharm') ['wcm'](https://neovim.io/doc/user/options.html#'wcm') like ['wildchar'](https://neovim.io/doc/user/options.html#'wildchar') but also works when mapped ['wildignore'](https://neovim.io/doc/user/options.html#'wildignore') ['wig'](https://neovim.io/doc/user/options.html#'wig') files matching these patterns are not completed ['wildignorecase'](https://neovim.io/doc/user/options.html#'wildignorecase') ['wic'](https://neovim.io/doc/user/options.html#'wic') ignore case when completing file names ['wildmenu'](https://neovim.io/doc/user/options.html#'wildmenu') ['wmnu'](https://neovim.io/doc/user/options.html#'wmnu') use menu for command line completion ['wildmode'](https://neovim.io/doc/user/options.html#'wildmode') ['wim'](https://neovim.io/doc/user/options.html#'wim') mode for ['wildchar'](https://neovim.io/doc/user/options.html#'wildchar') command-line expansion ['wildoptions'](https://neovim.io/doc/user/options.html#'wildoptions') ['wop'](https://neovim.io/doc/user/options.html#'wop') specifies how command line completion is done ['winaltkeys'](https://neovim.io/doc/user/options.html#'winaltkeys') ['wak'](https://neovim.io/doc/user/options.html#'wak') when the windows system handles ALT keys ['window'](https://neovim.io/doc/user/options.html#'window') ['wi'](https://neovim.io/doc/user/options.html#'wi') nr of lines to scroll for `CTRL-F` and `CTRL-B` ['winfixbuf'](https://neovim.io/doc/user/options.html#'winfixbuf') ['wfb'](https://neovim.io/doc/user/options.html#'wfb') keep window focused on a single buffer ['winfixheight'](https://neovim.io/doc/user/options.html#'winfixheight') ['wfh'](https://neovim.io/doc/user/options.html#'wfh') keep window height when opening/closing windows ['winfixwidth'](https://neovim.io/doc/user/options.html#'winfixwidth') ['wfw'](https://neovim.io/doc/user/options.html#'wfw') keep window width when opening/closing windows ['winheight'](https://neovim.io/doc/user/options.html#'winheight') ['wh'](https://neovim.io/doc/user/options.html#'wh') minimum number of lines for the current window ['winhighlight'](https://neovim.io/doc/user/options.html#'winhighlight') ['winhl'](https://neovim.io/doc/user/options.html#'winhl') window-local highlighting ['winminheight'](https://neovim.io/doc/user/options.html#'winminheight') ['wmh'](https://neovim.io/doc/user/options.html#'wmh') minimum number of lines for any window ['winminwidth'](https://neovim.io/doc/user/options.html#'winminwidth') ['wmw'](https://neovim.io/doc/user/options.html#'wmw') minimal number of columns for any window ['winwidth'](https://neovim.io/doc/user/options.html#'winwidth') ['wiw'](https://neovim.io/doc/user/options.html#'wiw') minimal number of columns for current window ['wrap'](https://neovim.io/doc/user/options.html#'wrap') long lines wrap and continue on the next line ['wrapmargin'](https://neovim.io/doc/user/options.html#'wrapmargin') ['wm'](https://neovim.io/doc/user/options.html#'wm') chars from the right where wrapping starts ['wrapscan'](https://neovim.io/doc/user/options.html#'wrapscan') ['ws'](https://neovim.io/doc/user/options.html#'ws') searches wrap around the end of the file ['write'](https://neovim.io/doc/user/options.html#'write') writing to a file is allowed ['writeany'](https://neovim.io/doc/user/options.html#'writeany') ['wa'](https://neovim.io/doc/user/options.html#'wa') write to file with no need for "!" override ['writebackup'](https://neovim.io/doc/user/options.html#'writebackup') ['wb'](https://neovim.io/doc/user/options.html#'wb') make a backup before overwriting a file ['writedelay'](https://neovim.io/doc/user/options.html#'writedelay') ['wd'](https://neovim.io/doc/user/options.html#'wd') delay this many msec for each char (for debug) +### [Q_ur](https://neovim.io/doc/user/quickref.html#Q_ur) Undo/Redo commands + +[u](https://neovim.io/doc/user/undo.html#u) N u undo last N changes [CTRL-R](https://neovim.io/doc/user/undo.html#CTRL-R) N `CTRL-R` redo last N undone changes [U](https://neovim.io/doc/user/undo.html#U) U restore last changed line +### [Q_et](https://neovim.io/doc/user/quickref.html#Q_et) External commands + +[:!](https://neovim.io/doc/user/various.html#%3A%21) :!{command} execute `{command}` with a shell [K](https://neovim.io/doc/user/various.html#K) K lookup keyword under the cursor with ['keywordprg'](https://neovim.io/doc/user/options.html#'keywordprg') program (default: "man") +### [Q_qf](https://neovim.io/doc/user/quickref.html#Q_qf) Quickfix commands + +[:cc](https://neovim.io/doc/user/quickfix.html#%3Acc) :cc [nr] display error [nr] (default is the same again) [:cnext](https://neovim.io/doc/user/quickfix.html#%3Acnext) :cn display the next error [:cprevious](https://neovim.io/doc/user/quickfix.html#%3Acprevious) :cp display the previous error [:clist](https://neovim.io/doc/user/quickfix.html#%3Aclist) :cl list all errors [:cfile](https://neovim.io/doc/user/quickfix.html#%3Acfile) :cf read errors from the file ['errorfile'](https://neovim.io/doc/user/options.html#'errorfile') [:cgetbuffer](https://neovim.io/doc/user/quickfix.html#%3Acgetbuffer) :cgetb like :cbuffer but don't jump to the first error [:cgetfile](https://neovim.io/doc/user/quickfix.html#%3Acgetfile) :cg like :cfile but don't jump to the first error [:cgetexpr](https://neovim.io/doc/user/quickfix.html#%3Acgetexpr) :cgete like :cexpr but don't jump to the first error [:caddfile](https://neovim.io/doc/user/quickfix.html#%3Acaddfile) :caddf add errors from the error file to the current quickfix list [:caddexpr](https://neovim.io/doc/user/quickfix.html#%3Acaddexpr) :cad add errors from an expression to the current quickfix list [:cbuffer](https://neovim.io/doc/user/quickfix.html#%3Acbuffer) :cb read errors from text in a buffer [:cexpr](https://neovim.io/doc/user/quickfix.html#%3Acexpr) :cex read errors from an expression [:cquit](https://neovim.io/doc/user/quickfix.html#%3Acquit) :cq quit without writing and return error code (to the compiler) [:make](https://neovim.io/doc/user/quickfix.html#%3Amake) :make [args] start make, read errors, and jump to first error [:grep](https://neovim.io/doc/user/quickfix.html#%3Agrep) :gr[ep] [args] execute ['grepprg'](https://neovim.io/doc/user/options.html#'grepprg') to find matches and jump to the first one +### [Q_vc](https://neovim.io/doc/user/quickref.html#Q_vc) Various commands + +[CTRL-L](https://neovim.io/doc/user/various.html#CTRL-L) `CTRL-L` clear and redraw the screen [CTRL-G](https://neovim.io/doc/user/editing.html#CTRL-G) `CTRL-G` show current file name (with path) and cursor position [ga](https://neovim.io/doc/user/various.html#ga) ga show ascii value of character under cursor in decimal, hex, and octal [g8](https://neovim.io/doc/user/various.html#g8) g8 for utf-8 encoding: show byte sequence for character under cursor in hex [g_CTRL-G](https://neovim.io/doc/user/editing.html#g_CTRL-G) g `CTRL-G` show cursor column, line, and character position [CTRL-C](https://neovim.io/doc/user/pattern.html#CTRL-C) `CTRL-C` during searches: Interrupt the search [](https://neovim.io/doc/user/change.html#%3CDel%3E) `` while entering a count: delete last character [:version](https://neovim.io/doc/user/various.html#%3Aversion) :ve[rsion] show version information [:normal](https://neovim.io/doc/user/various.html#%3Anormal) :norm[al][!] `{commands}` execute Normal mode commands [gQ](https://neovim.io/doc/user/intro.html#gQ) gQ switch to "Ex" mode +[:redir](https://neovim.io/doc/user/various.html#%3Aredir) :redir >`{file}` redirect messages to `{file}` [:silent](https://neovim.io/doc/user/various.html#%3Asilent) :silent[!] `{command}` execute `{command}` silently [:confirm](https://neovim.io/doc/user/editing.html#%3Aconfirm) :confirm `{command}` quit, write, etc., asking about unsaved changes or read-only files [:browse](https://neovim.io/doc/user/editing.html#%3Abrowse) :browse `{command}` open/read/write file, using a file selection dialog +### [Q_ce](https://neovim.io/doc/user/quickref.html#Q_ce) Command-line editing + +[c_](https://neovim.io/doc/user/cmdline.html#c_%3CEsc%3E) `` abandon command-line (if ['wildchar'](https://neovim.io/doc/user/options.html#'wildchar') is ``, type it twice) +[c_CTRL-V](https://neovim.io/doc/user/cmdline.html#c_CTRL-V) `CTRL-V` `{char}` insert `{char}` literally [c_CTRL-V](https://neovim.io/doc/user/cmdline.html#c_CTRL-V) `CTRL-V` `{number}` enter decimal value of character (up to three digits) [c_CTRL-K](https://neovim.io/doc/user/cmdline.html#c_CTRL-K) `CTRL-K` `{char1}` `{char2}` enter digraph (See [Q_di](https://neovim.io/doc/user/quickref.html#Q_di)) [c_CTRL-R](https://neovim.io/doc/user/cmdline.html#c_CTRL-R) `CTRL-R` `{register}` insert the contents of a register +[c_](https://neovim.io/doc/user/cmdline.html#c_%3CLeft%3E) ``/ cursor left/right [c_](https://neovim.io/doc/user/cmdline.html#c_%3CS-Left%3E) ``/ cursor one word left/right [c_CTRL-B](https://neovim.io/doc/user/cmdline.html#c_CTRL-B) `CTRL-B`/CTRL-E cursor to beginning/end of command-line +[c_](https://neovim.io/doc/user/cmdline.html#c_%3CBS%3E) `` delete the character in front of the cursor [c_](https://neovim.io/doc/user/cmdline.html#c_%3CDel%3E) `` delete the character under the cursor [c_CTRL-W](https://neovim.io/doc/user/cmdline.html#c_CTRL-W) `CTRL-W` delete the word in front of the cursor [c_CTRL-U](https://neovim.io/doc/user/cmdline.html#c_CTRL-U) `CTRL-U` remove all characters +[c_](https://neovim.io/doc/user/cmdline.html#c_%3CUp%3E) ``/ recall older/newer command-line that starts with current command [c_](https://neovim.io/doc/user/cmdline.html#c_%3CS-Up%3E) ``/ recall older/newer command-line from history [c_CTRL-G](https://neovim.io/doc/user/cmdline.html#c_CTRL-G) `CTRL-G` next match when ['incsearch'](https://neovim.io/doc/user/options.html#'incsearch') is active [c_CTRL-T](https://neovim.io/doc/user/cmdline.html#c_CTRL-T) `CTRL-T` previous match when ['incsearch'](https://neovim.io/doc/user/options.html#'incsearch') is active [:history](https://neovim.io/doc/user/cmdline.html#%3Ahistory) :his[tory] show older command-lines +Context-sensitive completion on the command-line: +[c_wildchar](https://neovim.io/doc/user/cmdline.html#c_wildchar) ['wildchar'](https://neovim.io/doc/user/options.html#'wildchar') (default: ``) do completion on the pattern in front of the cursor; if there are multiple matches, beep and show the first one; further ['wildchar'](https://neovim.io/doc/user/options.html#'wildchar') will show the next ones [c_CTRL-D](https://neovim.io/doc/user/cmdline.html#c_CTRL-D) `CTRL-D` list all names that match the pattern in front of the cursor [c_CTRL-A](https://neovim.io/doc/user/cmdline.html#c_CTRL-A) `CTRL-A` insert all names that match pattern in front of cursor [c_CTRL-L](https://neovim.io/doc/user/cmdline.html#c_CTRL-L) `CTRL-L` insert longest common part of names that match pattern [c_CTRL-N](https://neovim.io/doc/user/cmdline.html#c_CTRL-N) `CTRL-N` after ['wildchar'](https://neovim.io/doc/user/options.html#'wildchar') with multiple matches: go to next match [c_CTRL-P](https://neovim.io/doc/user/cmdline.html#c_CTRL-P) `CTRL-P` after ['wildchar'](https://neovim.io/doc/user/options.html#'wildchar') with multiple matches: go to previous match +### [Q_ra](https://neovim.io/doc/user/quickref.html#Q_ra) Ex ranges + +[:range](https://neovim.io/doc/user/cmdline.html#%3Arange) , separates two line numbers [:range](https://neovim.io/doc/user/cmdline.html#%3Arange) ; idem, set cursor to the first line number before interpreting the second one +[:range](https://neovim.io/doc/user/cmdline.html#%3Arange) `{number}` an absolute line number [:range](https://neovim.io/doc/user/cmdline.html#%3Arange) . the current line [:range](https://neovim.io/doc/user/cmdline.html#%3Arange) $ the last line in the file [:range](https://neovim.io/doc/user/cmdline.html#%3Arange) % equal to 1,$ (the entire file) [:range](https://neovim.io/doc/user/cmdline.html#%3Arange) * equal to '<,'> (visual area) [:range](https://neovim.io/doc/user/cmdline.html#%3Arange) 't position of mark t [:range](https://neovim.io/doc/user/cmdline.html#%3Arange) /{pattern}[/] the next line where `{pattern}` matches [:range](https://neovim.io/doc/user/cmdline.html#%3Arange) ?{pattern}[?] the previous line where `{pattern}` matches +[:range](https://neovim.io/doc/user/cmdline.html#%3Arange) +[num] add [num] to the preceding line number (default: 1) [:range](https://neovim.io/doc/user/cmdline.html#%3Arange) -[num] subtract [num] from the preceding line number (default: 1) +### [Q_ex](https://neovim.io/doc/user/quickref.html#Q_ex) Special Ex characters + +[:bar](https://neovim.io/doc/user/cmdline.html#%3Abar) | separates two commands (not for ":global" and ":!") [:quote](https://neovim.io/doc/user/cmdline.html#%3Aquote) " begins comment +[:_%](https://neovim.io/doc/user/cmdline.html#%3A_%25) % current file name (only where a file name is expected) [:_#](https://neovim.io/doc/user/cmdline.html#%3A_%23) #[num] alternate file name [num] (only where a file name is expected) **Note:** The next seven are typed literally; these are not special keys! [:](https://neovim.io/doc/user/cmdline.html#%3A%3Cabuf%3E) `` buffer number, for use in an autocommand (only where a file name is expected) [:](https://neovim.io/doc/user/cmdline.html#%3A%3Cafile%3E) `` file name, for use in an autocommand (only where a file name is expected) [:](https://neovim.io/doc/user/cmdline.html#%3A%3Camatch%3E) `` what matched with the pattern, for use in an autocommand (only where a file name is expected) [:](https://neovim.io/doc/user/cmdline.html#%3A%3Ccword%3E) `` word under the cursor (only where a file name is expected) [:](https://neovim.io/doc/user/cmdline.html#%3A%3CcWORD%3E) `` WORD under the cursor (only where a file name is expected) (see [WORD](https://neovim.io/doc/user/motion.html#WORD)) [:](https://neovim.io/doc/user/cmdline.html#%3A%3Ccfile%3E) `` file name under the cursor (only where a file name is expected) [: