Learning Vim

Something for me to do along with Learning emacsLearning emacs
Q: Why learn emacs when I know a bit of Vim and heavily use VS Code already?
A: Here are a few reasons:


To develop [[book - Range|Range]].
A new technical challenge.
To use as fully customi...
. I'm comfortable with Vim, but I can dive deeper as a technical challenge for myself.

Whenever I say vim, I actually mean neo-vim, because:

  • Neo-vim is more extensible
  • Neo-vim supports LSP

How I set up vim depends on what I want it to do for me. Here's what I need from a good editor/IDE while programming (in no particular order):

  • Syntax highlighting
  • Auto-complete
  • View multiple files at once
  • Search for function/text in entire codebase
  • View locations where method is used (where-used list)
  • Go to definition of method/class
  • VCS integration (view lines added, changed, deleted in context)
  • View documentation of some code (i.e. docstrings in Python)
  • Type hints while typing code
  • Refactor (rename variables, move/rename files and auto-update imports)
  • Show linting and compiler errors inline
  • Open terminal/runtime for quick evaluations (e.g. Python terminal, NodeJS terminal, etc.)

The Plan

  • Go through vimtutor and add important commands to vim cheatsheetvim cheatsheet
    Get Help

    :help - open the help docs. Ctrl+w - o to open help docs in full screen.

    :helpgrep <term> - find help for a specific term. Use :cnext and :cprevious to cycle through matches.

    Ctrl...
  • Create complete setup for Angular development (git, linting, autocomplete, etc.)
    • https://pragmaticpineapple.com/ultimate-vim-typescript-setup/
    • Configure ESLint and Prettier
  • Try creating different configs for different languages (TS, Python), using modular configurations instead of a giant .vimrc file
    • https://vimways.org/2018/from-vimrc-to-vim/
  • Learn VimScript and tinker with existing plugins/create new ones
  • Find a Git client that works like VS Code’s client

Notes

Installation

Installation instructions are available in the GitHub repository.

  • vim cheatsheetvim cheatsheet
    Get Help

    :help - open the help docs. Ctrl+w - o to open help docs in full screen.

    :helpgrep <term> - find help for a specific term. Use :cnext and :cprevious to cycle through matches.

    Ctrl...

Resources

Books

  • Modern Vim, Pragmatic Bookshelf (2018)
  • Practical Vim, Pragmatic Bookshelf (2015)
  • Mastering Vim, Packt Publishing (2018)