17 ms·
I really don't think he understands vim. He writes that the plugin system is its best feature, whereas I (as someone who as almost exclusively used vim for a de
by svennek 6y ago
I really don't think he understands vim. He writes that the plugin system is its best feature, whereas I (as someone who as almost exclusively used vim for a decade and a half) have never installed a plugin.
For many, many, many vim'ers, I know, the modal system (and hence the musclememory macro/scripting) IS the defining best feature...
Also, see all the "browser with vim binding" and "x with vim bindings" that is the modality, not the plugin system, that is emulated...
- skolind 6y agoI am also a vim user, but I have 15 plugins installed including themes etc.. I am a big fan of coc and use it a lot for Typescript development. I am curious how you do programming without any plugins at all? Don't you miss linters and autocompletion?
- svennek 6y agoI made a decision 20 years ago to avoid auto complete and other "in programming flow breakers". Instead, I have multiple phases, writing, linting and such. I am sure that it made me a better programmer as I know a lot of stuff by heart, where a lot of "auto" programmers are merely constantly picking of a list, which I think breaks their thinking flow... Which is basically the same as not using the vim muscle memory for me.. Consider a piano player that needs to look up the right keys before every stoke.. The never get a feel for the music..
- IshKebab 6y agoI use autocomplete heavily and I can assure you that it breaks up flow much much less than having to go to the documentation all the time to look up minor naming variations (is it "start" or "begin"?). Programming is not remotely the same as playing the piano. This and the sibling "I don't make mistakes" comment just seem like excuses to me.
- _-___________-_ 6y agoFWIW, I didn’t say that I don’t make mistakes. Perhaps you misread my comment. And why would one need an excuse for setting their development environment up the way that works best for them?
- chriszhang 6y ago> Perhaps you misread my comment. Which comment are you referring to you? IshKebab (the user you are replying to) was replying to svennek (not you).
- _-___________-_ 6y agoIshKebab said: > This and the sibling "I don't make mistakes" comment just seem like excuses to me. At the time of IshKebab’s comment I was the only sibling comment.
- IshKebab 6y agoYou literally said > I’ve learned not to make the mistakes
- _-___________-_ 6y agoYes. Perhaps you're just skipping over the word "the" when reading that sentence? In the context it has a pretty important meaning, so it pays to read all the words, not just the ones that support your preconception. I have learned not to make the specific mistakes that the linter used to tell me off for making, so it doesn't tell me off any more. That's a very different thing from "I don't make mistakes", which is what you incorrectly claimed that I said (even with quote marks around it, implying a direct quote!)
- thomasahle 6y ago> it breaks up flow much much less than having to go to the documentation all the time to look up minor naming variations (is it "start" or "begin"?). I read OP's position as: If you don't use aurocomplete you'll remember the naming variations better, and won't have to look them up all the time. I still think aurocomplete might be faster for libraries you haven't used much before, but it doesn't sound at all unbelievable to me that the brain works as stated.
- j-krieger 6y agoIf I were a boss of a company and saw one of my employees do this, I would seriously reconsider their employment. Purposely limiting yourself has no place in development. It‘s like an electrician refusing to wear protective clothing.
- KKPMW 6y agoI completely understand the position of the person you replied to. One video outlining it is here: https://www.youtube.com/watch?v=Q3XuFr7rw84 https://www.youtube.com/watch?v=Q3XuFr7rw84 . Many people disagree with it but I think thats because they don't imagine being productive without auto-completion. > If I were a boss of a company and saw one of my employees do this, I would seriously reconsider their employment. Purposely limiting yourself has no place in development. If I was a boss of a company I would try to judge people based on some objective measure, rather than subjective opinions about how one should be doing things.
- svennek 6y ago> https://www.youtube.com/watch?v=Q3XuFr7rw84 https://www.youtube.com/watch?v=Q3XuFr7rw84 Cool video, thanks. That is going straight to my treasure chest..
- drran 6y agoI write in languages with and without IDE. With autocompletion, I'm more productive than without. Even in shell I prefer to use autocompletion or two panel file commander, because it lowers burden on my brain. I don't need to spend brain cycles on correctness of typed code. I know names, I type fast, but with Tab it even faster to type, and less error prone. For example, when I started to use Rust, IDE was not available, so I used plain text editor for about 2 years. When I switched to halfbaked IDE, my productivity is raised because of autocompletion and error checking on the fly.
- sriram_malhar 6y agoI think an employee would prefer to be rated on the quality and quantity of their output, not on whether they used autocomplete or not.
- stinos 6y agoIt's a fair point, certainly interesting, however most or all of it is an assumption (you didn't try the other thing in an elaborate way, let alone double-blind-tested it), plus it might not work like that for everyone. In the past decades I have written (and still do) like 50/50 in IDEs and plain to somewhat less plain text editors, and if there's something which is a flow breaker for me, then it's coming up with the exact name and method in such plain editor when I just know there's one which does what I need but cannot remember the exact name. Fuzzy matching it against a list doesn't break any flow for me on the other hand. Which matches how my memory works: I cannot remember hard facts and data well (function DoSomethingVeryHardCore). However I'm good at remembering abstract things (function which does something hardcore). I am pretty sure learning many things by heart from the many very different codebases I work on would be a complete waste of time. Instead learning some abstract mental model of the codebases architecture, and how to navigate through it in text, is what makes me fast and efficient.
- svennek 6y agoI coded in IDEs for almost a decade up to that decision. I could feel my "clarity" fall year for year.. I have never looked back. I stand by my original statement, that for me, IDEs hinder my thought. Also, I have seen other coders I really consider high-end having the same considerations (it might just be a bias, where I just notice those, who agree with me).. Have you ever seen the "competitions" where they give a really really good photographer (or videographer) a 50$ toy and lets them compete against an amateur with a really high end setup.. Only amateurs blame their tools (above a certain minimum threshold)..
- joelellis 6y agoI'm gonna go out on a limb here and say that the amateur does worse than the pro is because said amateur doesn't know how to use the (often very complex) tool that they've been given, whereas the pro knows all of the theory and at least mostly how to use this toy.
- tamrix 6y agoYou've really never used CTRL+X F to look up a file name in vim?
- chriszhang 6y agoCan you elaborate how 'Ctrl-x f' looks up a file name? I tried 'Ctrl-x' but it decrements the integer under the cursor by 1. I tried 'f' but it starts a new motion command to search the next occurrence of the character following it to the right. Example: 'fx' will place the cursor on the next occurrence of 'x' to the right. How can I use 'Ctrl-x f' to look up a file name?
- jshholland 6y agoIt's an insert-mode binding, built in by default.
- deleted 6y ago[deleted]
- tzs 6y agoIn addition to being an insert mode command as jshholland already noted, it is Ctrl-x Ctrl-f, not Ctrl-x f. Here is a description of it and a few other insert mode commands: https://georgebrock.github.io/talks/vim-completion/ https://georgebrock.github.io/talks/vim-completion/
- e12e 6y agoFascinating. These ctrl-anything is like a dangerous, crippled emacs lurking in a dark corner of my beautiful vim, ready to terrorize with keyboard coords over modes and commands ;) I've bound some complete-plug-in to tab, but that's pretty much all I do in insert-mode command-wise.
- mst 6y agoMy use of vi-like editors is sufficiently minimalist that I use a locally built http://ex-vi.sf.net/ http://ex-vi.sf.net/ and still don't really need more than about half the features of that. I -personally- find it way more comfortable than even a minimal vim install because when I typo a command it beeps at me, whereas in vim I generally accidentally activate a command I don't understand and get broken out of flow while I figure out wtf just happened. I don't at all judge people who're IDE wizards, I've not seen any correspondence between maximalist versus minimalist taste in tooling and competence, but this approach works way better for me.
- boogies 6y ago> in vim I generally accidentally activate a command I don't understand and get broken out of flow while I figure out wtf just happened This doesn't happen to me very often anymore but when it does I’m grateful for multiple undo, I’d be scared to use an editor without it.
- jcelerier 6y agoSo interesting. > where a lot of "auto" programmers are merely constantly picking of a list, which I think breaks their thinking flow... For me, typing when the computer can type faster than me breaks the flow. Though your auto complete is very bad if it needs you to pick things from a list - 99% of the time it's just "type a couple of first letters, <ctrl-space>, repeat for the next token." > Consider a piano player that needs to look up the right keys before every stoke.. Most professional classical musicians play with sheet music, no ?
- deleted 6y ago[deleted]
- svennek 6y ago> Most professional classical musicians play with sheet music, no ? That is WHAT to play, not how to play... also I actually thought more of improv players, but that wasn't stated :)
- svennek 6y agoI don't consciously type... I think, my fingers type... I spend 0% brain cycles on typing (it is pure muscle memory), which why picking from a list (or checking that autocomplete choose the correct) is more brain work...
- jcelerier 6y ago> I spend 0% brain cycles on typing (it is pure muscle memory), which why picking from a list (or checking that autocomplete choose the correct) is more brain work... but, it's definitely not "more brain work", just like stenography does not take "more brain work" to write - when you're used to it you don't need to look at the autocomplete output either, it's just a very shorthand way to get things from your brain to your computer.
- svennek 6y agoI just need to trust my fingers, you need to trust an algorithm choosing something for you. For me, checking whether auto-complete choose the correct is more work that typing the correct thing, as my fingers type on their own - almost without supervision... I have written code for 30ish years (professionally for 25 years) and I have honed (and still hone) my environment for maximally "transparency" so that my though is not hampered by tools.. If that is not true for you, then use your IDE and be happy about it... Nothing wrong with that, at all... EDIT: also fun, that you highligt stenography that is the definition of learning-curve/musclememory ... :)
- z3t4 6y agoIn my experience simple tools leads to simple designs. With the aid of an IDE the architecture/design of an app can become insanely complicated.
- RMPR 6y agoVim has built-in auto completion, for some languages (Python, C, ...) it can even be kind of smart. There are many videos showcasing the power of vanilla Vim https://youtube.com/watch?v=XA2WjJbmmoM https://youtube.com/watch?v=XA2WjJbmmoM https://youtube.com/watch?v=Gs1VDYnS-Ac https://youtube.com/watch?v=Gs1VDYnS-Ac
- _-___________-_ 6y agoNot GP, but I have a linter that runs on commit, and generally it doesn’t catch anything because I’ve learned not to make the mistakes. I have never liked autocomplete. If I know the type or method I’m looking for (which is most of the time) then typing its name is not a hardship, and takes really no more time than finding it in a list. If I don’t know the type/method, most of the time I have the documentation up in another window or monitor, and I’m going to want to read that in depth anyway, since I’m not familiar with the type/method, so autocomplete wouldn’t save me any meaningful time.
- tomsmeding 6y agoI agree with you, but this depends on the language. Some languages and libraries take more liberties with the length of identifiers, the amount of abstraction layers, and maybe more. Java is the classic example where using a plain text editor is really a liability; I can use C++ without any editor support and be fast. But I'm not sure what this really depends on. (Disclaimer: my argument is flawed because I know C++ well and not Java.)
- _-___________-_ 6y agoThere may definitely be something in that. I’m writing Rust or C most of the time.
- chriszhang 6y agoDespite your disclaimer I think you are onto something. I am experienced in both Java and C++ and while I can read/write/refactor code in C++ just fine with Vim, doing so in Java without a sophisticated IDE is a painful experience.
- slightwinder 6y agoPlugins are a bonus for vim, but one doesn't really use vim just because of the plugins. There are far better editors for this. Decidated vimmer usually make heavy usage of external tools, instead of integration which plugins bring. There is the term "Unix IDE" for this, you can read a bit online about this (for example: https://mkaz.blog/code/unix-is-my-ide/ https://mkaz.blog/code/unix-is-my-ide/ )
- ezekiel68 6y agoI also use no plugins (because I often have to ssh to many network servers). I have found a surprising benefit in my coding to "coming to know" things about library APIs and projects through mental "muscle memory". For instance, by not relying on a file browser or even a fuzzy finder, I eventually come to learn where certain files probably are... and the probability goes up the longer I am in the code base. Similar for lib APIs; although my vim session may be on a remote machine via xterm, that doesn't prevent me from having a local browser window open and reading API docs to find what I need often helps me understand the library better.
- ufmace 6y agoAlso vim user. I use fairly minimal plugins. Mostly Nerdtree and the tabs plugin for that, formatting plugins for various languages, and CtrlP. I've tried autocomplete a few times, but never found it worth the trouble. Might be because I mostly work in dynamic languages where autocomplete is mostly awful, and it's easier to just remember, yank from elsewhere, or lookup function names and signatures than to get anything useful from autocomplete. I don't really like realtime linting, autoformatting, or error highlighting either. I find it highly distracting, and usually it's complaining about something I was already going to fix anyways. I'd rather have such things done only when I intentionally trigger them. I'd say please stop whining about syntax errors and test failures in code that I haven't finished writing yet. I've tried some Git plugins, but never got into those either. I still prefer the gitsh cli application for most of my Git work.
- thayne 6y agoAnd does ox even have a plugin system? I don't see anything for that.
- csomar 6y agoYeah. > Ox is easier to use than Vim because it doesn’t have modes where the keyboard is repurposed, however it takes the idea of being a keyboard-only editor and being able to act just like an IDE after some configuration. Modes in Vim re-purpose the keyboard. What does Ox do to re-purpose the keyboard? You can't have all functionalities on CTRL+? bindings. > in Vim re-purpose the keyboard. What does Ox do to re-purpose the keyboard? Y
- pessimizer 6y agoI don't use plugins just because I don't know what or whose system I'm going to be using vim on. The reason I use vim is because it's everywhere. When I started programming, I used emacs, and actually dropped it years later for that reason.
- oblio 6y agoAre you a consultant?
- dingaling 6y agovi is everywhere, vim less so. The *BSDs come with vi for example
- svennek 6y agoThat is also the case for me.. I log into 50+ different boxes with different security policies (due to different orgs) every week..
- sneak 6y agoI used to be this way for a decade+, then I learned that vim can open and save scp: urls. (Note: it has a weird scp url syntax you have to look up.) Coupled with a fancy ~/.ssh/config that sets per-host ProxyCommands and such, now I always edit locally. Correspondingly, I have a lot of cool plugins in my .vimrc now, and my editor works better. Bonus: no remote echo typing lag! (Yes, I know about mosh.)
- cultofmetatron 6y agoYea I mean if you wanna talk PLUGIN CENTRIC, emacs is definitely the 800 lbs gorilla here. Thats said I'm a vimer who now uses vscode for 90% of my work because I like pretty colors and I can setup everything I need to work in a few clicks.
- OJFord 6y agoHa, I actually tried to use VSCode, but went back to vim because it needed 'a few clicks' to set up everything. I hate things not being configured explicitly in files that I can version control.
- girvo 6y agoVSCode let’s you do that, with the .vscode folder either globally or locally per-folder/project, for what it’s worth. Unless I misunderstood what you meant!
- OJFord 6y agoAt least at the time, the format was really not conducive to it, especially re plugins that should be installed, and on macOS since it used Electron's config mechanism it all got stuffed in ~/Library/Application\ Support/VSCode.app/Resources/macOS/Content/package/config/vscode.config or something horrific. I primarily use Linux, but I don't want something as crucial as my editor to unavailable or differently configured (so I can't just clone dotfiles) on macOS which I might sometimes use. Which, again, last I checked, means no Electron for anything that 'crucial'. (I think it's fair enough for maintainers of these things to defer to Electron on config locatio, but it's unfortunate that Electron decided what 'platform standard locations' are irrespective of what the tool is, whether $XDG_CONFIG_HOME is explicitly set, and what other tools do or user preference is.)
- girvo 6y ago> especially re plugins that should be installed Again for what it's worth, that's also been added, and I certainly haven't had that issue on macOS myself? It loads it from the project I have open, or my home directory base settings.json
- shortlived 6y agoIt’s modal plus the text objects/motion system - http://vimdoc.sourceforge.net/htmldoc/motion.html http://vimdoc.sourceforge.net/htmldoc/motion.html