Vim

01 Dec 2017

Intro

I still remember the first time I used Vim: "wait, what's going on" followed by "how the heck do I get out of here?". Few years have passed since then and I've never really changed my text editor. I really enjoy learning how to use tools, so this it was instant chemistry. Additionally, I worked with people who were really good at using Vim and I was really fascinated by seeing how power users move in Vim.

This past week, I've spent some time consolidating my Vim configuration in a hopefully readable bundle and uploaded a snapshot of it. I'm hoping this is useful to someone. It'll also help me reference it in conversation.

Some history

In the early days, my configuration was minimal. I gradually explored a lot of other people's dotfiles raking in the stuff I found interesting. I finally went through a revolution on a random night and started using YADR . Few days in, I forked it and made a lot of modifications so it suited my preferences better. I eventually did a small rewrite of my Vim settings based on the ideas from YADR. Last week, a coworker asked if they can see my dotfiles so I was encouraged to clean it up and share it. Here we are now.

Vim forever \o/

Favourite parts

  • The hack in keymap.vim that finally consolidated my linux and macOS ALT bindings
  • Activating bindings with autocmds (golang.vim)
  • The legendary vim-go plugin

Structure

├── .vim
│   ├── bundle
│   ├── settings
│   │   ├── appearance.vim
│   │   ├── before-vundles.vim
│   │   ├── diff-colors.vim
│   │   ├── erb.vim
│   │   ├── fzf.vim
│   │   ├── golang.vim
│   │   ├── goyo.vim
│   │   ├── keymap.vim             <= shit ton of bindings
│   │   ├── latex.vim
│   │   ├── lightline.vim
│   │   ├── markdown.vim
│   │   ├── neocomplete.vim
│   │   ├── nerdtree.vim
│   │   ├── python.vim
│   │   ├── rust.vim
│   │   ├── solarized.vim
│   │   ├── spaces.vim
│   │   ├── statusline.vim
│   │   ├── sudo-write.vim
│   │   ├── syntastic.vim
│   │   ├── tags-ripper.vim        <= tags for ruby (requires gem `tag-ripper`)
│   │   ├── tcomment.vim
│   │   ├── ultisnips.vim          <= great for learning new languages
│   │   ├── vim-fugitive.vim
│   │   ├── vim-indent-guides.vim
│   │   ├── vim-test.vim
│   │   ├── vim-tmux-navigator.vim
│   │   ├── vimwiki.vim
│   │   ├── whitespace-killer.vim  <= trailing \w killer
│   │   └── window-killer.vim      <= close buffers/windows with Q
│   ├── settings.vim               <= loads settings/*
│   └── vundles.vim                <= plugins
└── .vimrc                         <= entry point

Source



vimdotfilesproductivityworkfloweditorlinuxTweet