Vim jokes are as old as the editor itself. However I have been using Vim daily for years now, mostly for quick edits and writing commit messages. I figured I would share my setup and maybe someone else could find it helpful.
The hardest thing for people to grasp when they first use Vim is the command system. This system can be extremely powerful, but for most use cases it just confuses new users on how to save the buffer they just wrote. Our first goal will be to abstract some of the more common commands to a hotkey combination.
First we need to create a
.vimrc in our home directory
touch .vimrc, since you may not be a vim user yet make the following changes with whatever editor you prefer.
We are going to be setting a "leader" which will be the start of all our hotkeys.
let mapleader = "`"
I prefer to use the
key since it is a bit out of the way and I am less likely to accidentally hit it, however you can set it to whatever you want.
Now we are going to create a command to write the current buffer:
noremap <leader>w :w<cr>
noremap is a mapping command that is not recursive, meaning we will not be chaining our new commands together. This can get a bit unwieldy for beginners and make it hard to debug. If you are comfortable with vim then feel free to use the recursive method
Once we tell vim that we are mapping something we use the
<leader> tag to use that variable followed by
w. So the keystrokes
will write the current buffer via the command
:w, executed by the
<cr> carriage return. This one line is the equivalent of pressing
:w, and then hitting
Now we can write some more common commands via
nnoremap <leader>a :wqall<cr> nnoremap <leader>q :qall!<cr>
These two mappings will add
to write quit all buffers that are open, and
to quit all open buffers.
Now we can easily get out of vim!
Now that we have some commands mapped out to easily write and quit vim we can start to make it feel more like home. Here is an excerpt from my own
" Turn on syntax highlightin syntax on " Turn on line numbers set number " Set the colorscheme to elflord " See more colorschemes by entering command mode via esc then typing " :colorscheme then pressing space and changing it via tab colorscheme elflord " Turn tabs into spaces and set them to be two spaces long set expandtab set tabstop=2 set softtabstop=2 set shiftwidth=2 set splitright " highlight the current line of the buffer set cursorline " allow the mouse to be used to change cursor position set mouse=a " This block here executes the Vim Explorer on startup, opening the " current directory tree in a small pane to the left let g:netrw_banner = 0 let g:netrw_liststyle = 3 let g:netrw_browse_split = 4 let g:netrw_altv = 1 let g:netrw_winsize = 10 augroup ProjectDrawer autocmd! autocmd VimEnter * :Vexplore augroup END " `` should rotate split focus noremap <leader><leader> <C-W><C-w>
I hope this has possibly helped you better work around vim, or piqued your interest to start customizing your own vim to your liking!
If you have any cool vim tips feel free to drop them in the comments, I'd love to up my vim game!