Skip to content

Instantly share code, notes, and snippets.

@adamki
Last active February 6, 2016 05:52
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adamki/cb0e52a096ad53be70db to your computer and use it in GitHub Desktop.
Save adamki/cb0e52a096ad53be70db to your computer and use it in GitHub Desktop.
# What is VIM? ( 15 minutes)
* What have you heard and what questions do you have?
* Is there any benefit to using VIM?
Endless customization, Terminal integration, Been around forever and not going anywhere. You'll never have to learn another IDE.
* How does it compare to Atom/Sublime?
Hard to say. Atom now has Vim mode, which is actually a pretty good IDE emulator. I prefer Atom/Subl for strict HTMLCSS writing occassionally.
* Pros: highly customizeable, Large community of users, become a hipster or something.
* Cons: Hard learning Curve. can take additional attention to maintain your VIMRC.
* What is a Modal Editor?
Vim has various modes. Normal (Traversal), Insert(Type freely), Visual(Grabbing text)
# How do I use VIM? and First Steps (20 minutes)
* Show a `doc/` to the pplz
* work through select bits of `vimtutor`
* How to disable Arrow Keys --optional.
* How to set up essential Key Bindings (DL karabiner and Seil. Make Caps lock functional)
* How to switch VIM modes
# What is .vimrc?(30 minutes)
* Discuss the configuration aspect of VIM/.vimrc
* there are 3 basic starting points to a VIMRC.
1. Use someone else's .vimrc wholesale
[Bens](https://github.com/r00k/dotfiles/blob/master/vimrc),[Chris Hunt](https://github.com/chrishunt/dot-files/blob/master/.vimrc), [Cheeks](https://github.com/JoshCheek/dotfiles/blob/master/vimrc)
2. Use my starter .vimrc
here is [mine](https://gist.github.com/adamki/d0a59e0aaf94f536a829/edit)
3. start from scratch and mix and match from sources you like
Make sure your config file eventually has the full path ~/.vimrc, meaning it lives in your home folder, and has a leading . (making it a hidden file). Notice in the example above the file is originally named without a dot, and we changed the filename to include one when we copied it.
* Share a basic VIMRC to get started.
* Explain how to find answers and further customize VIM as an editor. Discuss...
# Plugins.(10 minutes)
* discuss how to use a plugin manager like [Vundle](https://github.com/VundleVim), or [pathogen](https://github.com/tpope/vim-pathogen)
* What plugins are helpful?
* How to find and maintain plugins.
There are a LOT of plugins for vim, sometimes overwhelmingly so. In reality they are simply programs written in [VimScript](http://learnvimscriptthehardway.stevelosh.com/) that give Vim some kind of extra functionality that doesn't exist out of the box. They can be small in scope, like rainbow_parentheses, which is a syntax highlighting plugin for the lisp enthusiasts of the world. They can also be larger in scope, like fugitive, a powerful and useful tool to move your git workflow into Vim.
NERDtree - Vim has a built-in file tree explorer, but NERDtree has some great features like modifying, deleting, and adding files directly from the tree.
Syntastic - On the fly syntax checking, this can catch syntax errors in-editor, saving you from wasting time with syntax issues at runtime.
Ctrl-p - Fuzzy finder (files, buffers, etc). If you like ctrl-p in sublime text, or cmd-t in textmate, this will be a must-have.
vim-ruby - Extra features for editing Ruby in Vim. Select entire methods from def to end, go to the next method definition, etc.
vim-rails - Extra features for Rails, one of the best being :A to switch between test and implementation files.
vim-javascript - Enhanced indentation and syntax-highlighting for JavaScript.
Fugitive - Move your git workflow into Vim.
vim-airline - Status bar with things like your current git branch and obvious visual cues to know which mode you're in.
vim-multiple-cursors - Select multiple instances of a word or phrase and change them in one go.
vim-ragtag - Make editing html/xml not terrible.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment