TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: I built an interactive course that helps you learn Vim faster

344 pointsby Silica6149almost 3 years ago
Hey show HN!<p>This course came about as a result of wanting a more targeted way of practicing using new vim commands I wanted to pick up, rather than just trying to use them in my regular code editing sessions. When I would try to use new commands during code editing, my productivity took a hit because I was trying to do two different things at once: thinking about code vs practicing my muscle memory.<p>So, I made a separate environment for practicing, one that had an interactive editor, progress tracking, and achievement goals to let me see which areas I should work on, like speed and efficiency (# of keystrokes). When I realized it would be useful for beginners too, I added lessons to go along with it and this course is the result!<p>Let me know what you guys think about it :)

35 comments

xavdidalmost 3 years ago
This looks very cool, kudos on the launch!<p>I feel like vim tutorials mostly focus on navigating and editing a single file, which is great! But I mostly struggle with how to replicate opening a whole directory in VSCode, which makes it easy to browse the directory, switch between files, open multiple panels, etc.<p>I&#x27;m almost certain vim does all these things out of the box, but tutorials always end at &quot;this is how you edit some text quickly&quot; and never cover &quot;this is how you do software engineering&quot;.
评论 #32041486 未加载
评论 #32041528 未加载
评论 #32053128 未加载
seanp2k2almost 3 years ago
<p><pre><code> :set nu &#x2F; whatever you want to find [return] i *edit stuff and use arrow keys for nav* :wq Or :q to quit without saving </code></pre> That’s all the vim most people need.<p>The fact that less is installed on many more systems than nano is a testament to the bad assumptions too many devs make about who will be using these systems in the future. And yes, it’s not hard to &quot;apt -y install nano&quot; except at work where we have proxies and internal repos, so now I need to use vim to reconfigure apt sources just so I can use a more normal editor that doesn’t require arcane incantations to perform basic config file editing.
评论 #32041910 未加载
评论 #32040234 未加载
评论 #32039852 未加载
评论 #32039100 未加载
评论 #32039092 未加载
dash2almost 3 years ago
I really want to like vim and I love some things about it, like the ability to move chunks about with only the keyboard. But so many things about it kill me. Like, why can&#x27;t I hit right at the end of a line, and move to the next line? Who thinks that is a good idea? Also, why do I have to have a special mode to insert things? Having to change modes just seems so complex and unintuitive. And why does the help system never tell me what I want?<p>The frustration is that probably there are fixes for all these things, which if I were an expert I would know. But meanwhile I can use an ordinary visual text editor and <i>I don&#x27;t have to learn anything new</i>.
评论 #32037668 未加载
评论 #32035368 未加载
评论 #32041489 未加载
评论 #32040328 未加载
评论 #32035565 未加载
评论 #32035495 未加载
评论 #32035341 未加载
评论 #32035449 未加载
评论 #32035167 未加载
评论 #32035581 未加载
评论 #32040334 未加载
评论 #32035204 未加载
评论 #32035243 未加载
评论 #32041543 未加载
评论 #32038459 未加载
评论 #32035287 未加载
CoffeePythonalmost 3 years ago
Congrats on launching :) I built a pretty similar tool last year [1]. This looks like it has some nice improvements over the stuff I did with mine.<p>Wish I had the time to improve on the course I launched but I ended up starting a company shortly after launching my course and getting into YC.<p>[1] <a href="https:&#x2F;&#x2F;www.vim.so" rel="nofollow">https:&#x2F;&#x2F;www.vim.so</a>
评论 #32040243 未加载
drodilalmost 3 years ago
When I was learning vim, I decided to extend the existing vimtutor with some more programming specific tasks. You can find it at <a href="https:&#x2F;&#x2F;github.com&#x2F;drodil&#x2F;codetutor.vim" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;drodil&#x2F;codetutor.vim</a> if you are interested :)
phkahleralmost 3 years ago
Just type &quot;vimtutor&quot;. If you have vim you should also have vimtutor.
评论 #32040512 未加载
MatthiasPortzelalmost 3 years ago
My pet peeve is Vim tutorials that start with &quot;use hjkl to move around&quot; instead of &quot;use `set mouse=a` to turn on the mouse.&quot; In my opinion you need to make sure that you are very clearly disclaiming that you are teaching a harder way of doing things in exchange for incredibly small productivity gains that will be realized years in the future, if ever.<p>(This is basically a copy-paste of previous comments I’ve made, I haven’t tried your tutorial beyond the first lesson.)
评论 #32035004 未加载
评论 #32035276 未加载
评论 #32035116 未加载
评论 #32037498 未加载
评论 #32035148 未加载
评论 #32034930 未加载
评论 #32035044 未加载
评论 #32037873 未加载
评论 #32038895 未加载
评论 #32038911 未加载
Arisaka1almost 3 years ago
I once tried to migrate from VS Code to Neovim. I use TypeScript at work, and use many languages for my side projects.<p>But the worst part was making Vim provide with things that you&#x27;d expect programming editors to have. So many options, what&#x27;s best is up to opinion, integrating language servers, getting intellisense to work as you would expect, searching the project folder for file names.<p>Then I realized that all I&#x27;m trying to do is make Neovim behave like VS Code with the extra addition of keyboard navigation, which I can get behind. But at my current career level I&#x27;d rather spent those 5-10 hours configuring an editor in learning more about &lt;insert whatever language&#x2F;framework I&#x27;m learning&gt;.<p>I mean, just another Vim introduction when you already have the free options (vimtutor etc.) and FEM&#x27;s &quot;Vim Fundamentals&quot; won&#x27;t fix my pains with getting it to work as I&#x27;m expecting it to work.
评论 #32037466 未加载
评论 #32037487 未加载
评论 #32037092 未加载
评论 #32037670 未加载
评论 #32037068 未加载
评论 #32037591 未加载
评论 #32037906 未加载
评论 #32037220 未加载
评论 #32040979 未加载
评论 #32038204 未加载
评论 #32038101 未加载
评论 #32037169 未加载
评论 #32038299 未加载
chadcmulliganalmost 3 years ago
Nicely done. Though I have to say - I gave courses on vi in the 80&#x27;s but then IDE&#x27;s and GUI&#x27;s came along and I moved on. I will never understand why anyone still uses vi in the 21st century, except for occasionally editing a config file on a *nix box.
评论 #32039983 未加载
评论 #32041011 未加载
评论 #32041353 未加载
评论 #32040107 未加载
cassepipealmost 3 years ago
Learning to remap escape to Caps Lock or to jk or what the Ctrl combination are to switch to normal mode should be the first lesson of all vim courses. This was the biggest cognitive discrepancy for me as a vim beginner : What did you use your smarts to create a modal editor while choosing the worst key ever to switch modes!?
评论 #32040760 未加载
sneakalmost 3 years ago
*interactive paid course. That should be disclosed above the fold, methinks.
评论 #32036837 未加载
stayuxalmost 3 years ago
I am a designer that got fed up with &quot;mouse&quot; control everywhere.<p>One day I asked myself: Is there a way to scroll in the browser without using a mouse or arrow keys?. Enter Vimium.:)<p>I have tried in the past Emacs, but I have an operating system, and I don&#x27;t need a new one (for now). So now you can take MacVim only from my cold hands. P.S. &gt; You can paste the buffer in insert mode with ctrl+r+0.
stevebmarkalmost 3 years ago
Please just read Practical Vim if you’re going to double down on using Vim. All of these tutorials are the minimal basics. Vim forces you to glue together lots of inefficient commands to manipulate text. I feel frustrated seeing Vim users tout how efficient their editor is when they haven’t learned all of Vim’s nasty bells and whistles you need to actually be efficient at manipulating text. (When you press colon, do you know how to edit the command in Vim mode? No? Read Practical Vim).
评论 #32037350 未加载
评论 #32038294 未加载
QuiiBzalmost 3 years ago
I wonder why the headline and other gradient title are images. Why not a text with linear-gradient and background-clip?
评论 #32036715 未加载
immigrantheartalmost 3 years ago
I&#x27;m a vim user. Over the time I dwindle down my plugins and stick to the basic ones because I often do SSH and don&#x27;t want my environment to change rapidly.<p>One thing that I still need though, is proper syntax highlighting. I wish there is an easy way for vim to do it rather than just too many plugins here and there.
评论 #32035435 未加载
giansegatoalmost 3 years ago
I see that there&#x27;s a pretty big miss in the syllabus: surround! yes, true, it&#x27;s not &quot;official&quot; but rather a plugin, but you can&#x27;t really do without it, can you?
评论 #32042972 未加载
mastermedoalmost 3 years ago
I love projects that popularize vim. But I think this one might be in a way too early stage to justify the pricing (assuming those 8 lessons are all there is).
评论 #32036720 未加载
vogtalmost 3 years ago
Amazing. I came into programming from a bit of an unorthodox professional background. When I started learning web app development in a serious way, I got blindsided by some of the encounters with vim. In fact it took a long time before I even realized that it was vim I was interfacing with at first. wish I had this back then.
评论 #32039066 未加载
johncoltranealmost 3 years ago
&gt; Let me know what you guys think about it :)<p>Same as the last time you posted it: learning Vim has nothing to do with muscle memory and doing it outside of Vim is pointless. Plus, the &quot;master Vim&quot; claim is dubious given how basic the lessons seem to be.<p>:help user-manual is easy, built-in, and it goes way beyond this. And it&#x27;s free.
评论 #32036986 未加载
评论 #32038575 未加载
评论 #32034906 未加载
timwaaghalmost 3 years ago
I often use vim for editing files but not code. The need to adhere to corporate style pretty much kills it for that.
评论 #32037359 未加载
quest88almost 3 years ago
How does yours compare to shortcutfoo.com?
评论 #32035556 未加载
Andrew_nenakhovalmost 3 years ago
So, did it help you finally learn Vim?!
评论 #32040749 未加载
LoveMortuusalmost 3 years ago
vimtutor is pretty good!<p>Besides that once you learn that you enter edit mode by pressing i - ESC to exit it. :w to save, :q to quit and :q! to force quit &#x2F; quit without saving. Then you can get by just fine.<p>You can of course do magic with vim, but that&#x27;s more in the tinkerer territory~
sy7aralmost 3 years ago
IMO one of the best ways to learn vim after the basic movement is to copy others vimrc and build your own using vim. Use :help or :h along the way. vimrc is fairly simple to edit compare to actual programming languages.
ezfealmost 3 years ago
Tried to register using my `.dev` email address: &quot;Invalid email&quot;
评论 #32035795 未加载
sashevuchkovalmost 3 years ago
It&#x27;s visually appealing. I really like the web design.<p>Congrats!
smitty1ealmost 3 years ago
This looks interesting.<p>I also paid for <a href="https:&#x2F;&#x2F;vimvalley.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;vimvalley.com&#x2F;</a> and am a satisfied customer.
Vlados099almost 3 years ago
Hey, I have started using the course yesterday, opened just now and my statistics are gone... Is there a way to report a bug?
imperistanalmost 3 years ago
I write C# three days a week. Is learning vim worth it?
评论 #32035587 未加载
评论 #32035589 未加载
评论 #32039015 未加载
nailloalmost 3 years ago
Love it!
评论 #32035198 未加载
loginNSRalmost 3 years ago
Anything like this for editing in Emacs?
nmzalmost 3 years ago
This is the wrong way to go, if the UI is so bad it requires a course, then the problem is clearly the tool.
评论 #32035415 未加载
评论 #32036256 未加载
评论 #32035348 未加载
评论 #32036724 未加载
评论 #32035479 未加载
评论 #32035330 未加载
评论 #32037124 未加载
评论 #32039127 未加载
firechickenbirdalmost 3 years ago
Invalid email
评论 #32035151 未加载
kazinatoralmost 3 years ago
I&#x27;ve been using Vim since 1994, but only this past year have I started getting better at juggling large numbers of buffers. There are three main improvements in how I use Vim compared to before and they are simple.<p>1. I switched to :autochdir, so that in any buffer, the current working directory is that of the file. Then I dumped :autochdir due to certain annoyances and found a nice way of emulating its good behaviors.<p>2. I started using sessions to save and recover the states of the buffers. I associate sessions with certain tasks and can return to those tasks quickly.<p>3. I started using a buffer navigator.<p>Regarding (1) here is the setup:<p><pre><code> :let $top=getcwd() :au BufWinEnter * exec &quot;lcd &quot; . expand(&#x27;%:h&#x27;) :au BufWinEnter * if expand(&quot;%&quot;) == &quot;&quot; | exec &quot;lcd $top&quot; | endif :au BufWinEnter *.git&#x2F;* exec &quot;lcd $top&quot; </code></pre> I know you don&#x27;t need the colon in your vimrc, but I have it anyway.<p>The $top variable captures the top level directory on startup; I refer to it in command lines when I need it using $top. Why the dollar sign? Ah, this makes it an environment variable. Vim is much better about interpolating environment variables than other variables; there are more places you can use them thanks to the dollar sigil.<p>The other three commands above set up a local chdir (lcd) to the directory of the file containing the buffer. The third rule is smart: if we are editing something under .git&#x2F; then we go back to the top. This is what autochdir gets wrong. What do we edit under .git? Oh, COMMIT_EDITMSG, for one thing! I want to be in the repository root when editing a commit message.<p>Regarding 2, here is my setup for working with sessions:<p><pre><code> :nmap + :wa&lt;Bar&gt;exe &quot;mksession! &quot; . v:this_session&lt;CR&gt; :command -nargs=1 S exec &quot;mksession! &quot; . expand(&#x27;$top&#x2F;&#x27;) . expand(&#x27;&lt;args&gt;&#x27;) </code></pre> + becomes a command for saving the current session. Then I have a :S &lt;whatever&gt; command to save a session under a new name, relative to the top directory: the $top variable rears its head.<p>Regarding 3, there are many buffer navigators. I&#x27;m using bufexplorer (version 7.4.32). I make the following tweak to the plugin&#x2F;bufexplorer.vim file:<p><pre><code> &quot; added before the other maps if !hasmapto(&#x27;BufExplorer&#x27;) &amp;&amp; g:bufExplorerDisableDefaultKeyMapping == 0 nnoremap &lt;script&gt; &lt;silent&gt; &lt;unique&gt; &lt;Leader&gt;\ :BufExplorer&lt;CR&gt; endif </code></pre> In Vim the &quot;leader key&quot; for hot key commands is backslash by default. Instead of using the default key binding for launching the bufexplorer view, which is like \be or something, I map the backslash key to do that. So just by hitting \\ (backslash twice) I get the buffer explorer.<p>Mostly I use the LRU view in buffer explorer (most recently used buffer goes to top, pushing others down). Should be called MRU, but everyone who knows memory cache hierarchies understands LRU.<p>The above three things are very simple, and have a big payoff. I have many more tricks in my vimrc. For instance I use a C program called autotab to analyze a sample of lines from the loaded file and adjust the indentation settings.
mknsrialmost 3 years ago
I tried out vim for a month or so. I did enjoy using it, although I&#x27;m not sure if using vim just feels more productive because you press more keys to do the same thing. However multi-cursor editing and cutting whole lines in modern editors is way more conducive to my workflow and eventually stopped using vim.<p>Do vim users know if there was anything like Select next occurrence in vim? Feature discovery is not one of vims strong suites<p>EDIT: More specifically by multi-cursor editing I mean selecting multiple occurrences of a word, and then editing in place. For example selecting all occurrences of the word user -&gt; (getUser, setUserId, variable declarations with user) and then replacing them with account. This can be done with vim but is nowhere near as fast, since every change needs to be done one-by-one. Or selecting all the above occurrences, and pasting them somewhere for an interface declaration.
评论 #32035584 未加载
评论 #32036698 未加载
评论 #32035542 未加载
评论 #32035653 未加载
评论 #32036984 未加载
评论 #32035572 未加载
评论 #32036754 未加载
评论 #32035847 未加载
评论 #32035546 未加载
评论 #32036725 未加载
评论 #32035480 未加载
评论 #32036766 未加载