I guess the question is do people modify vim cause they can or cause they have to?
I guess the question is do people modify vim cause they can or cause they have to?
It's kind of like the difference between being able to cook and walking into a strange kitchen and immediately knowing where everything is. In my home I'm comfortable, I know that the vegetable peeler is in a different drawer than the steak knives. In a friend's home, I'm just going to have to ask where something is every few minutes if I want to get work done.
Actually, one of the main goals of Neovim[1] is to provide better defaults[2], such has syntax highlighting.
Be aware that some plugins might have some bugs. I also got segfaults when using multiple terminals (although that's quite rare).
It's indeed harder to use vim without my customizations. I guess it's more like a "build-your-own-editor from parts" kind of thing.
So when I use a non-configured vim, it's the thing that I miss the most. The rest is trivial.
However, using someone else vim is completely different!
You must keep in mind that vim is much similar to a programming language. You can remap keys all over the place. You can create exotic combinations that do wonderful and/or terrible things with few key strokes. You can install plugins that argument and alter vim behaviours.
Jumping into a well tuned vim setup is not unsimilar to starting to use a new programming framework. It's hard to be productive right away.
In that case usually, I just rename .vimrc, remap <esc>, do my things and get out of the way.
If you're building a new vimrc or want a common ground for pairing, I would recommend checking out [vim-sensible](https://github.com/tpope/vim-sensible) by tpope. It's a vim plugin that provides a set of sensible default options.
This kind of overcustomization is fine if you live in a basement and work on a project alone. As soon as you become a part of a team, please stop. You're making cooperation unnecessarily hard and spending company time on an optimization that isn't.
*I sometimes joke that coders who refuse to conform to the industry standards should wear a tiara as an indication they are, indeed, unique snowflakes free from the usual social expectations. It seems to work.
I will definitely be making that "overcustomization" on my Mac. :-D
Yes, shame on those evil coders for wanting to use their own computers in a manner which they find most enjoyable and productive! They must be assimilated! Give me a break.
"Things like rebinding basic shortcuts,"
Again, give me a break. Developers should be allowed to configure their individual machines in any way they wish. Different people work differently.
"reversing the scroll direction (Mac users will get this),"
When you've worked on platforms for decades where the scroll direction works one way, then end up on a platform where it is reversed, what is wrong with changing the new system to work the way you are used to? Yeah, I might decide to get used to the differences, or I might change it because I prefer it the old way, but who cares?
"swapping Cmd/Ctrl,"
again, who cares -- it's their machine.
"using some obscure shell"
I also see no problem with this -- if they prefer it, just let them.
"or even infecting other people's machines with some haphazardly scp'd dotfiles."
This is a legitimate complaint, if the person is leaving stuff behind that screws up the other person's computer. But if the person is expected to work on other peoples machines, then I think a reasonable solution could be worked out. You should try to defer as much as reasonably possible to the person who the machine belongs to. On the other hand, if you are asking someone else to do work on your machine, it seems reasonable to let them copy some dotfiles in order to help them do the work -- as long as they don't affect your stuff.
"This kind of overcustomization is fine if you live in a basement and work on a project alone."
I don't buy the "overcustomization" label. Yes, it is possible to spend too much time customizing things (if, for example, it prevents you from getting your actual work done). However, programmers can make themselves much more efficient by many of these customizations. Different people have different ways of working, and they have different jobs. Vanilla configurations of things like editors are fine, but the ability to customize exists for a reason -- you can make your job easier and yourself more efficient by customizing your tools.
"As soon as you become a part of a team, please stop. You're making cooperation unnecessarily hard and spending company time on an optimization that isn't."
I've worked on many different development teams over the years. At all of those jobs, it was an extremely rare thing to even do development on someone elses computer. Everyone uses their own.
"I sometimes joke that coders who refuse to conform to the industry standards should wear a tiara as an indication they are, indeed, unique snowflakes free from the usual social expectations. It seems to work."
What "industry standards" are you referring to? Is there an ISO standard for vim keybindings? Please. Also, I don't think the whole "Princess" analogy is fair. Just because someone has their own way of working doesn't make them self-absorbed and shallow.
(edited for better formatting)
Do you mean a desire to be more efficient?
Am I some kind of princess because I decided to use a different keyboard layout than the default? That I decided to learn a different language than the one I was told to learn in school? That I wanted to install a different operating system than the one that came with my computer?
Your comment is not just hostile, it is unbelievably pretentious. You quite clearly don't understand why people customize things. If you want to live in your undecorated, perfectly square single-room house you're welcome to do so without telling others they're not "part of the team" for having different preferences than you do.
Damn...
We can agree that it matters a lot less what your own personal setup is as long as it saving stuff in the same format but I wouldn't say it doesn't matter at all.
As soon as someone asks you for a bit of help you're going to be slowed down by understanding each other system. If we conformed, teaching a junior how to profile code will be easier than showing him how to do it with your vim setup, for example.
Finally I'm never going to buy the efficiency of keyboard shortcuts when coding is generally worth the time sink in learning them over clicking a mouse in an IDE. Sure, they will make you faster, but I'd rather most people took longer and delivered solutions that weren't actually worse than the problem. All too often the quick people land me with stuff that pisses me off.
Or it's just based on subjective feelings and cargo cult?
With that said, this is in the realm of common sense for anyone who's ever used vim bindings at least semi-seriously. We're not just talking millisecond improvements, we're talking about doing some tasks that can take several minutes in mere seconds.
Few would argue that moving from keyboard to mouse and back between every keypress would be more efficient than just typing one key after the other, as is more usual. The same applies, when activating a shortcut: for example, starting with my hands on the home row, I can do 10 activations of copy (Cmd+C), returning my hands to the home row between each activation, in about 8 seconds. Using the mouse in a similar manner to select the corresponding menu item takes about 22 seconds. Just moving my hand from the home row to the mouse and back again ten times takes around 9 seconds.
(These times are all slightly approximate, because I'm going by eye, because with 2 hands on the home row I don't have a hand left to operate the stopwatch.)
The longer the shortcut, the more time it takes to activate, of course; here, I picked a nice easy one, in the form of Cmd+C. Maybe that's cheating. Some of the fiddlier emacs shortcuts can be quite time-consuming to enter - the rect ones are particularly bad - C-x r C-w, that sort of thing. I wonder how much quicker those are? But I'd imagine they'll still win out over moving from keyboard to mouse to menu bar and back, since for shortcuts you invoke often, muscle memory takes over and you can rattle them off without even thinking.
Maybe all those piano lessons helped after all.
The reader is invited to use their preconceived opinions about microoptimization to decide which conclusion to draw.
(I have no particular opinion about what to do if your hand is on the mouse to start with. Generally I move it back to the keyboard if I don't know how to do something with the mouse, or leave it there if I do. For things such as moving the cursor, or scrolling, the mouse is very effective anyway; usually effective enough that in many cases it's worth using in preference to the keyboard, if you don't have some non-interactive higher-level motion that you could conceivable invoke, such as M-x forward-sexp, or whatever.)
The thing is, I'm not arguing that you're not quicker anyways. Just that the speed difference between someone good with a mouse and someone good with keyboard shortcuts generally don't matter in a world where IDEs exist and where understanding code properly takes longer than just navigating through it.
Anyways, I'm not actually bothered what you use as long as you can take care of yourself, which a user with a weird vim configuration generally can. However, as I said in a post above, if you're struggling to use git, I'm only gonna be able to help if you use the cli. That won't be the vim guy, but it will be the windows guy who asked me for ftp access.
Point is though, I think the counter argument that using the same tools is super valid. I don't think it's the most important thing in the world, but I do think it has merit.
> Or it's based on subjective feelings and cargo cult?
What if it is? What if I am _factually_ not "more efficient", what if I am just "happier" with _my_ setup on _my computer_? how does that in reality could have a negative effect on a team? I am of course assuming that the "we mess around with other's machines or profiles" is an obvious-enough bad practice that it doesn't happen. Right? Right!?
The first post of this thread is about vim setups all being different causing problems.
The next post is about vim, configs and developers not conforming being a pain in the ass.
The next post is about you taking offense to his colourful comment ( he was poking fun btw, you shouldn't be offended )
The next post is me backing his point as having merit without the negative connotations. Specifically mentioning IDEs.
The next post is saying it's not just about writing code quicker but navigating and understanding quicker.
Then there's me again saying is how is a tricked out vim really any faster than an IDE to the point it matters.
Then there's you saying I don't understand the thread.
Are you trolling or just totally missing the point because I don't agree with you? Either way, my comment was totally on point for this thread but I'd rather be arguing the point than responding to silly off-topic comments.
As it stands I'm not trying to take your toys from you. If you can take care of yourself, do what you like. If you are likely to need some assistance you'll likely annoy anyone who needs to touch your computer.
Wait, what? How does this follow? In my whole professional career I don't think I've ever sat down at another persons machine, so I don't see how Bob using vim/querty and me using emacs/dvorak could possibly impact our aggregate performance as a team.
Do teams really spend a chunk of time fiddling around on each other's computers?
Honestly though, I often work with developers (I'm a contractor so I work with tons of people ) who use GUIs for git or vagrant and the like. If you sit down next to me with your windows system using a gui for some development tool asking me questions about why it doesn't work, I'm going to struggle to help you.
So here's your problem, right. I'm not selling this to you. If I were stating it, I'd be stating it as a fact. Most of HN would agree with it because they themselves experienced it. Indeed the only ones who would disagree with it are the ones "not buying it".
Try it if you want, I don't really care if you don't, but you're making assumptions and reacting to this with fear instead of curiosity. And that, above anything else, is something that will make you less efficient not just in your work but in your entire life - so you're in a pretty bad spot to lecture others on efficiency...
That said, I typically wouldn't mandate uniformity either as, as you said, I'd rather work with the curios. I think this ones a crapshoot, but the same folks are much more likely to know a bunch of useful stuff too.
I can understand what you mean though. I've certainly had to take over a couple of times with fresh juniors and interns, but their setup was usually very under-customized, and those times were pretty rare. People who had complex setups were usually smart enough to figure out directions on their own, and really just wanted some documentation or an example to guide their way.
I'm all for standards when it comes to collaborating on code. But when it comes to text editors, vim configs, even using emacs (get out your crosses, holy water and sliver bullets), it shouldn't really matter from my perspective.
Tried to tell them to use dev env on some local shared machine, where it's easier to setup and manage, but they refuse and want to do these things in a local VM.
I just try to say that there might be semi-legit cases when you must go and use other person's laptop.
Maybe you just bought into some myth:
But sure, I bought into some typing speed myth, whatever floats your boat. XKCD774.
https://github.com/jleclanche/dotfiles/blob/master/X11/xkb/s...
In your case those are valid reasons and apply to several "national" layouts -- but there are many people who go for the cargo cult version too.
Hahahahaha! You trolling?
I wonder, you work like 5 people on the same computer or something? And if 'yes', the OS doesn't support multiple users?! I don't wanna ruin a happy relationship or anything, but it's 2015... ;-)
I had a look at this guy's other articles and it looks like the trashiest of linkbaits. "Reddit's Terrorists Have Won". "How MRAs Killed the World". "The Big Business of Internet Bigotry".
Author might be overcompensating for something...
Edit: Took a closer look at his articles. I generally appreciate opinion pieces, but this guy is either writing about women/feminists (neither of which he is), or about gamers (which he quite clearly isn't either), in a way that lets him just talk without the "threat" of opinions opposite to his own, which he heavily bashes. Wow. I need a shower after this.
Regardless, I genuinely don't understand the appeal of outrage-writing over subjects that simply do not concern you. For example, I'm straight but I'm also a proponent of gay rights - does that give me any right to speak "on behalf" of gays? Isn't the entire "I'm not [gay/black/a woman] but..." ideology of people stealing other people's voices exactly the reason some countries or communities have societal problems with various minorities?
No intelligent being should ever have the right to speak "on behalf of" any other intelligent being without their direct approval, any other standard is massively insulting.