q!

Stuck in Vim

stuckinvim

Looks like there hasn't been much going on here since the beginning of the bootcamp.. Woops ! It's ending in 10 days, time for an update I guess. Surely the fault of all the projects I've been doing, and technologies I've been discovering.

To name a few, and not in any particular order, I did/learned about/improved my knowledge :

  • OOP. Lots of it
  • Made a Laravel/Materialize note taking app
  • Laravel, a wonderful PHP framework that's a joy to use. Its router, blade templating engine, and SQL Query builder - among other features - are real time savers.
  • MySQL
  • Angular 1. VueJS was nice to get started with the notions of MV*, two-way databinding etc.. but Angular is way more mature, backed by Google and an incredible community. The learning curve is a bit more stiff, but well worth it. I've been using it on all my latest projects.
  • Materialize and Angular Material. Material is a minimalist yet powerful design. To quote Google themselves :

    The material is grounded in tactile reality, inspired by the study of paper and ink, yet technologically advanced and open to imagination and magic.

  • Meteor and MongoDB. I've been building an image sharing website thanks to the University of London's course. Hope I will be able to use it on some other real word projects, noSQL are wonderful and more scalable than MySQL.
  • A top secret full-stack project that we're doing as an agile team. Git ftw !
  • Oh, and most importantly: I'm learning vim. Given I spend most of my time in my shell (Which is of course well customized thanks to my .zshrc file), the obvious decision for me was to finally start learning vim. Nano is cool for small edits, but what if I could use the possibilities that are made available by modal editing. Since a week and a half, and thanks to an article on Revelry's website, I'm using vim-mode-plus in Atom, as vi(m) might well be the best editor out there, but is far from being the best IDE and I don't feel like switching editor for now. I've gone from switching modes and barely being able to w rite(save) and q uit, to knowing it way more. Now a lot comes naturally for me :

    • Want to delete the content of a tag and save it to vim's clipboard ? dit (Delete inside tag)
    • Want to change the content of said tag ? cit (Change inside tag)
    • Deleting the current line ? Sure : dd
    • Copying up to line 21 ? Sure : y21G (yield, Go to line 21)
    • Repeat the previous action 3 times ? 3. (repeat previous command 3 times)
    • Change the word at current position? ciw (change inside word)

As counterintuitive as it might seem at first, it makes you go a long way as far as efficiency is concerned. As lots of developers, I was afraid of learning vim, and thought it was for the most bearded of us all, the kind that loves Regex(ok, I'll admit, I'm one of them) and assembly language. Granted, I wanted to throw my computer by the window the first few days, but it turns out that it soon became a second nature to think about my editing in a modal way, and when confronted to something that might have a vim way of doing it (hint: there is always a vim way of doing things), I do a quick search on stackoverflow.

tl;dr : Vim is awesome