# .vimrc gems

These are some cool things that I discovered over time. They either save some time or add some nice functionality. You can just put them into your .vimrc file.

## ASCII boxes

To get some nice ASCII boxes from within the visual mode in Vim, I use this:

vnoremap ,bs !boxes -a c -s 79 -d shell<CR>
vnoremap ,bc !boxes -a c -s 79 -d c<CR>
vnoremap ,bl !boxes -a c -s 79 -d latex<CR>


This needs the boxes command.

## jk

Instead of going to the escape key to leave the insert mode, I sometimes just type jk. I also mapped the other way around, so that I just need to hit both keys at the same time. This does the trick:

inoremap jk <Esc>
inoremap kj <Esc>


Often I need license texts, like the MIT license or the GPL. So I just type ,lm and get the MIT license into the text.

nnoremap ,lb :read ~/Vorlagen/BSD.rst<CR>


You will have to adjusts the paths, of course.

## generate HTML with Markdown

Writing HTML can be quite a lot of work. So I usually write the text I have in Markdown, select it in visual mode and type ,m and get it converted into HTML. This needs the markdown program.

vnoremap ,m !markdown<CR>


## sort

I like to have my imports or keyword lists or other things like that sorted. So I can either select them in visual mode and press ,s instead of typing :sort i. And if the lines I want to sort are in a paragraph, separated by blank lines, I can just hit ,p and have the whole paragraph sorted.

vnoremap ,s :sort i<CR>
nnoremap ,p Vip :sort i<CR>


## trailing whitespace

Having whitespace at the end of lines is usually a mistake, so I have it marked as error in Vim. With a quick ,t I can remove all excess whitespace in the whole file. Be careful with languages like Markdown, where trailing whitespace can be important.

match Error /\s\+$/ nnoremap ,t :%s/\v\s+$//<CR>