|
|
- # Vim Configuration
-
- Stock Vim is pretty boring.
- The good news is that Vim has a very comprehensive configuration file which
- allows you to tweak it to your heart's content.
- To make changes to Vim you simply modify the ~/.vimrc file in your home
- directory.
- By adding simple commands this file you can easily change the way your
- text editor looks.
- Neat.
-
- I attempted to create the smallest Vim configuration file which makes
- Vim usable enough for me to use as my daily text editor.
- I believe that it is important for everyone to know what their
- Vim configuration does.
- This knowledge will help ensure that you are only adding the things
- you want and that you can later customize it for your workflow.
- Although it may be tempting to download somebody else's massive Vim
- configuration, I argue that this can lead to problems down the road.
-
- I want to mention that I don't use Vim as my primary
- IDE; I only use Vim as a text editor.
- I tend to use JetBrains tools on larger projects since they have amazing
- auto complete functionality, build tools, and comprehensive error detection.
- There are great Vim configurations out there on the internet; however, most
- tend to be a bit overkill for what most people want to do.
-
- Alright, lets dive into my vim configuration!
-
-
- # Spell Check
-
- ```vim
- autocmd BufRead,BufNewFile *.md setlocal spell spelllang=en_us
- autocmd BufRead,BufNewFile *.txt setlocal spell spelllang=en_us
- ```
-
- Since I am often an atrocious speller, having basic spell check abilities in
- Vim is a lifesaver.
- It does not make sense to have spell check enabled for most files since it
- would light up most programming files like a Christmas tree.
- I have my Vim configuration set to automatically enable spell check for markdown files
- and basic text files.
- If you need spell check in other files, you can enter the command
- ":set spell" to enable spell check for that file.
- To see the spelling recommendations, type "z=" when you are over a
- highlighted word.
-
-
- # Appearance
-
- Adding colors to Vim is fun.
- The "syntax enable" command tells vim to highlight keywords in programming
- files and other structured files.
-
- ```vim
- syntax enable
- ```
-
- I would encourage everyone to look at the different color schemes available for
- Vim.
- I threw the color scheme command in a try-catch block to ensure that it does not crash
- Vim if you don't have the color scheme installed.
- By default the desert color scheme is installed; however, that is not always the
- case for [community created](http://vimcolors.com/) Vim color schemes.
-
- ```vim
- try
- colorscheme desert
- catch
- endtry
-
- set background=dark
- ```
-
- # Indentation and Tabs
-
- Having your indentation settings squared away will save you a ton of time
- if you are doing any programming in Vim.
-
- ```vim
- "copy indentation from current line when making a new line
- set autoindent
- " Smart indentation when programming: indent after {
- set smartindent
-
- set tabstop=4 " number of spaces per tab
- set expandtab " convert tabs to spaces
- set shiftwidth=4 " set a tab press equal to 4 spaces
- ```
-
- # Useful UI Tweaks
-
- These are three UI tweaks that I find really useful to have, some people may
- have different opinions on these.
- Seeing line numbers is useful since programming errors typically just
- tells you what line your program went up in flames.
- The cursor line is useful since it allows you to easily to find your place
- in the file -- this may be a bit too much for some people.
-
- I like to keep every line under 80 characters long for technical files,
- having a visual queue for this is helpful.
- Some people prefer to just use the auto word wrap and keep their lines as long
- as they like.
- I like to keep to the 80 character limit and explicitly choose where
- I cut each line.
- Some of my university classes mandate the 80 character limit and take
- points off if you don't follow it.
-
- ```vim
- " Set Line Numbers to show "
- set number
-
- " Highlights the entire current line with a underscor "
- set cursorline
-
- " Displays a red bar at 80 characters "
- set colorcolumn=80
- ```
-
-
- # Searching and Auto Complete
-
- This these configurations make searching in Vim less painful.
-
- ```vim
- " search as characters are entered "
- set incsearch
- " highlight matched characters "
- set hlsearch
-
- " Ignore case when searching "
- set ignorecase
- ```
-
- These configurations will make command completion easier by
- showing an auto-complete menu when you press tab.
-
- ```vim
- " Shows a auto complete menu when you are typing a command "
- set wildmenu
- set wildignorecase " ignore case for auto complete
- ```
-
- ![Vim auto complete](media/vim/commandCompletion.png)
-
-
- # Useful Things to Have
-
- There is nothing too earth shattering in this section, just things that
- might save you some time.
- Enabling mouse support is a really interesting configuration.
- When enabled, this allows you to select text and jump between different
- locations with your mouse.
-
- ```vim
- " Enables mouse support "
- set mouse=a
-
- "Disable ding sound on error, flashes cursor instead "
- set visualbell
-
- " Display ruler on bottom right -- should be there by default "
- set ruler
-
- " Auto updates file if an external source edits the file "
- set autoread
-
- " Improves performance by only redrawing screen when needed "
- set lazyredraw
- ```
-
- Setting your file format is always a good idea for compatibility.
-
- ```vim
- " Set utf8 as standard encoding and en_US as the standard language "
- set encoding=utf8
-
- " Use Unix as the standard file type "
- set ffs=unix,dos,mac
- ```
-
- # Wrapping it up
-
- I hope that this quick blog post inspired you to maintain your own Vim
- configuration file.
- You can find my current configuration files in my
- [random scripts repository](https://github.com/jrtechs/RandomScripts/tree/master/config).
|