The Neovintageous vimrc file
In NeoVintageous, the equivalent of a vimrc file is called a "neovintageousrc" file. This file contains initialization commands and is loaded every time Sublime Text starts.
To edit the neovintageousrc file, follow these steps:
Open the Command Palette:
Command Palette → NeoVintageous: Open neovintageousrc file
.Make the necessary changes to the file.
To apply the changes, reload the neovintageousrc from the Command Palette:
Command Palette → NeoVintageous: Reload neovintageousrc file
.
Options
Here are some of the options supported in the NeoVintageous: autoindent
, belloff
, expandtab
, hlsearch
, ignorecase
, incsearch
, list
, magic
, menu
, minimap
, modeline
, modelines
, number
, relativenumber
, shell
, sidebar
, smartcase
, spell
, statusbar
, tabstop
, textwidth
, winaltkeys
, wrap
, wrapscan
.
For a full list of supported options, please refer to our roadmap.
You can set these options using the :set {option}
command. Here are two examples that you might find useful:
set ignorecase
set smartcase
If you need help with individual options, you can run :help '{option}'
and read more about each individual option.
Leader Key
To define a mapping which uses the "mapleader" variable, the special string "<Leader>
" can be used. It is replaced with the string value of "mapleader". If "mapleader" is not set or empty, a backslash is used instead. Example:
noremap <Leader>A oanother line<Esc>
Works like:
noremap \A oanother line<Esc>
But after:
let mapleader=,
It works like:
noremap ,A oanother line<Esc>
Note that the value of "mapleader" is used at the moment the mapping is defined. Changing "mapleader" after that has no effect for already defined mappings.
Key Mapping
NeoVintageous supports various key mapping commands, including :noremap
, :nnoremap
, :onoremap
, :snoremap
, and :vnoremap
.
For instance, if you want to map <C-l>
to the ex command :nohlsearch
, you can do it like this:
noremap <C-l> :nohlsearch<CR>
You can also map directly to Sublime Text commands by converting the command name to mixed case. For example, to map <D-i>
to the goto_symbol_in_project
command:
noremap <D-i> :GotoSymbolInProject<CR>
Note that you might need to enable super keys for the <D-i>
super key to work in this example.
Where do these commands come from?
When you run a command in Sublime Text, you can inspect the console log to discover the command and arguments needed to map it.
Console Logging: View console logging by navigating to
Menu → View → Show Console
.Command and Input Logging: Enable command and input logging by running the following commands in the console:
sublime.log_commands(True) sublime.log_input(True)
For example, let's say you want to map "Goto Symbol" command above. Run the command, e.g., "Menu → Goto → Goto Symbol" command and Sublime Text will print the following in the console:
command: show_overlay {"overlay": "goto", "text": "@"}
Key Mapping Command Arguments
NeoVintageous allows you to pass arguments to commands as space-separated parameters in the format arg=value
. For instance, to map <C-f>
to the show_overlay
command with the arguments overlay=goto
and text=@
:
nnoremap <C-f> :ShowOverlay overlay=goto text=@<CR>
Key Mapping Shell Commands
You can also map to shell commands using the ex command :!
. For example, to map <leader>gs
to execute git status
:
nnoremap <leader>gs :!git status<CR>
If you want to ignore any output from the command, you can prefix the right-hand side (rhs) with :silent
. For example, to map <leader>ga
to git add {current-file}
and ignore any output:
nnoremap <leader>ga :silent !git add %<CR>
It's quite versatile and can be very powerful.