-2

I have done vimtutor and read some good guides on Vim grammar. For beginners, some people recommend doing vimtutor or going to the manual. I think they are all good recommendations, but what do you suggest? What is a good path to take?

How to make sure I won't get stuck at some point and never progress from there?

5
  • 1
    Welcome to Vi and Vim. Stack Exchange works best with questions that have one objectively right answer. People learn differently. How is "Vim mastery" even defined? And finally, preventing to get stuck at intermediate level is not even specific to Vim. It's the same as for any skill. I voted to close as opinion based.
    – Friedrich
    Commented Feb 1 at 6:59
  • 1
    Unfortunately I agree with Friedrich here—as framed, the question is opinion-based. (See How to Ask and help center for more.) If you can edit to reframe your question around objective criteria, it could be reopened.
    – D. Ben Knoble
    Commented Feb 1 at 14:27
  • 1
    PS I recommend Vimcasts for mostly intermediate stuff: vimcasts.org
    – D. Ben Knoble
    Commented Feb 1 at 14:31
  • I voted to keep the question closed. It's still asking for recommendations and suggestions and these will be subjective. Even as it is, this question has attracted more answers than usual. My advice would be to consider it a success and move on. Ask another question once you run into a concrete problem.
    – Friedrich
    Commented Feb 2 at 8:35
  • Thank you, just wanted to get some advice on the subject, since other people can know things I don't. Commented Feb 3 at 1:04

6 Answers 6

2

I must have forgotten today's answer with your opinion day here on Vim SE. I wouldn't want to miss the party...

So here's my ordered, somewhat overlapping list of steps totally not-guaranteed to turn anybody into a Vimperator:

  1. Learn to touch type, or rather: learn to touch type! - it's a skill you'll need to make full use of Vim and any other thingy with a keyboard wired to it. I found Tipp 10 helpful.
  2. Learn vanilla Vim - obvious, right? I mean to learn the basics: navigation, text editing, copy and pasting, searching, etc. Everything you'd expect from a text editor. Learn to translate common editing tasks into Vimese (e.g. search and replace is :substitute) Customize and make it your own Vim.
  3. Only now even think about installing plugins - they add functionality, sure, but also complexity. Install plugins one by one and make sure you learn to use them before moving on. Don't clobber your Vim with two dozen plugins from random GitHub repos. It's just wrong (and a reliable source of questions on this site). Which leads us to ...
  4. Choose plugins for their functionality, not their looks - Vim has this distinctive 1970's look to it and there's plugins to make it look like a slot machine on steroids. Always question if a plugin helps you getting things done or only provides eye candy. (I'm not against making Vim look nice, btw)
  5. Stick around - you can learn a lot by reading and writing questions and answers on this very site. Anybody here will confirm they learnt a thing or two. I certainly did.
  6. Integrate Vim into your ecosystem - you can run external commands from Vim (e.g. using :!) as well as launch (g)Vim from other programs. Vim itself provides integrations for numerous programs from the *NIX bench like universal-ctags, cscope, make etc. As a side effect, you'll learn about lots of other useful programs.
  7. Read the source - maybe not of Vim itself but there's more Vimscript on GitHub than you can read. You can read all the nifty tricks thousands of plugin developers put in their code to improve their editor. You can do that for inspiration or when you find yourself thinking "I wonder how they did that?"

As to improvement beyond intermediate level - first of all: I wouldn't know - it works the same with any skill: question your habits, don't put up with what you have and know, broaden your horizon, stay hungry, leave the comfort zone. It reads like the kind of stuff they print in management calendars - and it is - but in spite of this, there's a grain of truth to it.

The fact that you asked about it shows that you do care. The willingness to improve is the most important prerequisite. Now you only need to allocate some time for learning. Keep that attitude and you won't get stuck.
Take your first steps. Once you're there, you will find ways to move on.

0
4

Old wisdom from #vim by @romainl:

  1. If you haven't already, do $ vimtutor as many times as needed to get the basics right.
  2. As instructed at the end of vimtutor, level up to the user manual :help user-manual. It's a hands-on tutorial that will guide you progressively through every feature, from basic to advanced. This is not a novel, go at your own pace and, most importantly, experiment along the way.
  3. Keep an eye on anti-patterns and inefficient actions, find improvements, practice. Rinse. Repeat.
2
  • 1
    (winking face emoji)
    – romainl
    Commented Feb 1 at 10:10
  • Updated with a credit :)
    – Maxim Kim
    Commented Feb 1 at 10:43
3

Some people recommend doing vimtutor or going to the manual. I think they are all good recommendations, but what I am looking for is a roadmap from beginner to master.

That is your "roadmap". The user manual has all you will ever need on the way.

How to make sure I won't get stuck at intermediate level and never progress from there?

Assuming speaking in terms of "beginner"/"intermediate"/"advanced"/"master" makes sense, here is where I would put them in :help user-manual:

  1. You are "beginner" if anything you read from :help usr_01.txt through :help usr_12.txt (and linked sections) is new to you.
  2. You have reached the "intermediate" stage if anything you read from :help usr_20.txt through :help usr_40.txt (and linked sections) is new to you.
  3. You have reached the "advanced" stage if you find yourself spending a lot of time between :help usr_41.txt and :help usr_52.txt and actually understand what you read.
  4. There is no "master" stage.

Most users don't even reach an eventual "intermediate" level because they don't bother following the user manual.

Wrong mental model (non-exhaustive list):

  • Vim is a black box only a handful of online personalities master because they are so superior to me.
  • Things are "magic": "magic mappings", "magic command-line flags", etc. and there is no way I can find out about them on my own.
  • Everything in Vim is a "tip" or a "trick" that I can only learn from a tweet/thread/whatever.
  • I'm smart enough to get it without reading pages and pages of documentation.
  • Reading documentation, studying stuff, etc. Fuck all that! I am not at school anymore.
  • The learning curve is incredibly steep so, if I use Vim, then people will think I am cool.
  • The learning curve is incredibly steep so I will take every shortcut I can to look cool, because in the end that is all that counts, right?

Good mental model (non-exhaustive list):

  • Vim is one editor among many. I already have one. It seems weird but what if there is really something to it? Let's find out by learning from first principle!
  • Woah, I have never seen a better documentation in all my life.
  • I wonder if X or Y? Let's find out in the documentation.
1
  • Thanks, this is very comprehensive. Commented Feb 2 at 1:59
3

Bram Molenaar's advice was to pay attention to what your are doing while editing text and, when you identify something that repeats, search for a way to automate it.

Here is his famous video about 7 Habits For Effective Text Editing 2.0 he gave at Google.

And if you prefer to read than watch you can read Seven habits for effective text editing from the same author (thanks @Friedrich to point me that).

Vim is widely used for code editing and most of the tasks that you will repeat are covered within the builtin Vim or using of one the Vim plugins.

3
  • 1
    Possibly related: 7 Habits as text. I found them helpful when I read them ... a long time ago.
    – Friedrich
    Commented Feb 1 at 11:35
  • Thanks, I had read the article, but didn't know a video existed. Commented Feb 2 at 1:57
  • Thanks for the feedback. It is a Joy for me to see Bram and his sense of humor :-) Commented Feb 2 at 5:51
0

In addition to the resources you and others have mentioned, I found the following videos useful:

1
  • Thanks for the resources. Commented Feb 3 at 1:15
0

One of the most interesting sources is to read the free book Learn Vimscript the Hard Way by Steve Losh

3
  • The question is about using vim. The second paragraph on the page you refer to says "It is not a guide to using Vim. Before reading this book you should be comfortable editing text in Vim and know what terms like "buffer", "window" and "insert mode" mean."
    – MDeBusk
    Commented Feb 1 at 8:33
  • 1
    @MDeBusk but the question also asks how to progress from intermediate to master level. This might be answered with the linked book. Bottom line: when subjective questions are asked and answered on this site, we all lose.
    – Friedrich
    Commented Feb 1 at 8:44
  • 2
    @Friedrich I'm not sure anyone lost here. Opinion is useful if it comes from someone whose opinion is earned. My personal opinion (oops) is that a "what worked for you?" question is a good question for a n00b to ask, and I wish I'd asked more of those in the beginning.
    – MDeBusk
    Commented Feb 1 at 19:23

Not the answer you're looking for? Browse other questions tagged or ask your own question.