Vim is not TextMate

When I first discovered Vim I wasted a lot of time trying to bend it backwards into a traditional editor. The below quote sums it up perfectly:

Vim is not TextMate or whatever other editor you have used before. There is no way to transfer all your old habits seamlessly, point blank.

Instead of wasting your time trying to make Vim and your terminal into something that it’s not and can’t be you should learn how to use and customize Vim wisely. All your Cmd+Shift+Ctrl+Alt combos won’t lead you anywhere. Especially in a terminal where Alt is often problematic and Cmd unusable.

Consider using leader(:help leader):

  • it’s portable on every platform
  • it’s less prone to conflicts with your OS or terminal emulator
  • it opens a lot of easy to remember possibilities

— romainl

Adding gobs of plugins instead of learning Vim’s native functionality is another common trap, so I maintain a secondary lightweight Vim config called Ninjarc with minimal plugins to keep me sharp.

Finally, Tim Pope’s philosophy of favouring commands over leader key combos yields a more cohesive configuration. I’m experimenting with Spacemacs-style command mnemonics in my Aetherwolf Vim config. For example, instead of binding Leader+T to open NerdTree, :tn is used (Toggle NerdTree). This allows :tt for Toggle Tagbar and so on – a nice memorable taxonomy rather than a flat multitude of somewhat arbitrary leader combos.

I might eventually move this into Denite menus à la SpaceVim, but for now I’m digging the simplicity of using :ex commands.

colori(s|z)ed ls output on macos

As is often the case, the nix defaults for ls are spartan. I finally got around to wrestling my ls color settings into submission. On macos/zsh, gdircolors gave inconsistent results, so I set the LS_COLORS environment var directly.


install gls

brew install coreutils


if [[ "$(uname)" = "Darwin" ]]; then # macos uses a different 'ls'
  export CLICOLOR=1
  source "$XDG_CONFIG_HOME/zsh/.dir_colors"
  alias l="gls -ahF --group-directories-first --color=always"
  alias l="ls -ah --color --group-directories-first"


# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
export LS_COLORS='rs=0:di=00;34:ln=00;37:mh=00:pi=40;33:so=00;35:do=00;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=00;33:*.tar=01;31:*.tgz=01;31:'

The full goodies: