3 ms·
First, your question. I was on the market for a TextMate replacement that worked both on Mac OS X (at work) and Linux (at home) so I searched far and wide and
by johncoltrane 5y ago
First, your question.
I was on the market for a TextMate replacement that worked both on Mac OS X (at work) and Linux (at home) so I searched far and wide and came up with a list of editors and IDEs, GUI and TUI. I approached all of them with the same strategy:
1. follow the introductory tutorials, if any,
2. if the first contact was promising, use it for a while, learning and configuring as I go,
3. move to the next editor/IDE in the list.
For some, I gave up after half an hour, for others it went on for a few weeks, but I wanted to give all of them a fair chance so I eventually ended up at the bottom of the list, with Vim and its weirdo reputation.
So I did `$ vimtutor` and I was instantly hooked. As instructed, I graduated to the user manual which I stupidly rushed only to fall into the blogosphere trap and its many "here is my setup" posts. The winner was clear at that point and, after wasting a couple months trying to shoehorn my TextMate workflow, I finally decided to throw my `.vim` through the window and learn Vim properly this time, with the user manual.
Two months after that I was finally able to replace TextMate with Vim and I have never looked back.
Second, thoughts on learning Vim.
- Random online snippets, quick tips and tricks, tweets, etc. are useless because they lack context. They are also wrong very often.
- Using it right away for work is a bad idea because it forces you to copy other people's config and install lots of plugins that hide Vim and ultimately prevent you from learning it properly.
- Learning/using Vim has nothing to do with muscle memory. This is a common misconception that leads to rote learning and, since Vim has hundreds of commands, the use of flawed ready-made cheatsheets _and_ the looking for ways to bypass that horrifying learning curve.
- A flight simulator is not a plane and a tool-for-learning-vim-that-is-not-vim is not Vim. There are very good reasons for doing part of one's learning on a flight simulator but learning Vim in Vim is as free and safe as it gets so there is no point learning it via a third party tool.
Third, thoughts on your project.
There is no _need_ for anything else than `$ vimtutor` and `:help user-manual`.
- vgel 5y ago> Learning/using Vim has nothing to do with muscle memory. This is a common misconception that leads to rote learning and, since Vim has hundreds of commands, the use of flawed ready-made cheatsheets _and_ the looking for ways to bypass that horrifying learning curve. Completely agree on rote learning vs learning the actual language of Vim and being able to compose commands fluently. I guess my feeling on muscle memory is similar to muscle memory in a natural language. If someone was learning English, you wouldn't encourage them to simply memorize phrases from a phrasebook, but it still is important to practice -- it's not possible to hold a long conversation where you need to think about verb conjugations every sentence, to become fluent it needs to become automatic. In the same way, I'm familiar enough with Vim to know "Oh I want to delete the contents of this string, OK that's delete=d + inner=i + string=' -> di', oh crap it was a double quoted string, ok u+di", uh what was I doing again?" I've struggled with finding a good way to practice Vim to the point where I don't make those kinds of mistakes and don't need to think about the operations, in the same way that when I speak English I don't (usually) think about the verb conjugations. My thought on this tool would be basically a set of drills of the form "Change this file to look like this", which each force you to compose Vim commands in a certain way. In the same way a Spanish textbook might ask you to translate "I went to the store", "She went to the library", "They went to the soccer game", this would have you drill using these manipulation operators in different combinations and contexts until it became automatic. I know Vimtutor has a little of this, but from what I remember doing it a few months ago, it focuses mostly on the simple commands that are pretty easy to pick up via analogy from other editors (ok dd is delete line, like ctrl+k in sublime), and doesn't have the repetition aspect (you can just do vimtutor multiple times, but then you don't get variety).
- johncoltrane 5y agoI would put more emphasis on the grammar (operator+motion, use of case for mirroring, etc.) than on the vocabulary… and also avoid both repetition and fixed idioms at all cost. As for "muscle memory", it is only involved in di" at a very low level: pressing the right key on the keyboard. Deciding to do di" is _not_ "muscle memory".
- vgel 5y agoAgreed. Perhaps intuition is a better term for what I'm thinking of than muscle memory, but I think we're on a similar page :) Thanks for your suggestions!
- andresgaitan 5y agoGreat.