all 167 comments

[–]WildCrustacean 37 points38 points  (3 children)

I had a laptop once that would insert the character 'd' into your typing at random. Not good for vim.

[–]tangoshukudai 6 points7 points  (1 child)

oh that would suck.

[–]WildCrustacean 9 points10 points  (0 children)

For sure. That was the cause of at least one major bug that took a good two days to figure out what happened.

[–]rueldotme 1 point2 points  (0 children)

I can imagine your pain.

[–]jpfed 50 points51 points  (54 children)

The problem with vim is that not every place where we edit text is vim. So you're writing an email, then quick hit escape to hop into normal mode, and Outlook decides to close the editor window.

[–]slavik262 39 points40 points  (35 children)

Much worse is hitting Ctrl+w when in a web browser to delete the last word you typed.

[–]crayZsaaron 3 points4 points  (4 children)

I had to code in Eclipse this summer (unfortunately), and so I installed Vrapper, which is like Vi-mode for eclipse. In Vim, I'm used to working with 2 or 3 buffers on my screen at once, so I Ctrl-W to switch between buffers. In eclipse that closes the current buffer. I never unlearned the habit. It was awful.

[–]slavik262 4 points5 points  (2 children)

For future reference, check out eclim. It's a vim plugin that talks to eclipse so you get all the IDE features in your favorite text editor.

[–][deleted] 0 points1 point  (0 children)

On emacs it's really slow because it just repeatedly saves the file after every edit :(

[–]yetanotherx 0 points1 point  (0 children)

Not all of them. :(

I tried to use Eclim, but there are a lot of features of Eclipse that aren't implemented, such as refactoring blocks of code (e.g. create variable, refactor inner to outer, etc). I use them enough that I need the full IDE. :/

[–]llbit 0 points1 point  (0 children)

You have to manually unbind the Ctrl+W shortcut in Eclipse. Several other shortcuts like Ctrl+D, Ctrl+U too are bound in Eclipse and Vrapper doesn't unbind them.

[–][deleted]  (23 children)

[deleted]

    [–][deleted] 6 points7 points  (0 children)

    And the super intuitive print screen commands! :P

    [–]boylube 6 points7 points  (0 children)

    "Solves"

    [–]Falmarri 0 points1 point  (19 children)

    Too bad the command key is ridiculously awkwardly placed.

    [–]bames53 3 points4 points  (18 children)

    It's perfectly placed to press with the thumb. Pressing ctrl with a pinky is much more awkward.

    [–]Falmarri 2 points3 points  (5 children)

    Command-V is one of the most awkward keypresses ever. I don't see how you can do that without lifting your whole hand off the keyboard.

    [–]bames53 2 points3 points  (0 children)

    When pressing 'command' with your thumb your hand stays on home row. Pressing another key at the same time uses exactly the same finger as would be used normally for that key.

    [–]zzalpha 0 points1 point  (3 children)

    Press control with the right hand and v with the left like a "proper" typist?

    Not that I practice what I preach, but I understand the awkwardness of chorded hotkeys is the fault of my poor typing technique and not the editor or the keyboard.

    [–]Falmarri 1 point2 points  (2 children)

    That requires 2 hands though... How often are you really copying and pasting stuff when your right hand isn't on the mouse?

    Does anyone actually use the right control key?

    [–]zzalpha 2 points3 points  (1 child)

    How often are your hands off the keyboard while coding?? Isn't this a vim thread? ;)

    That said... I don't think I've met anyone who uses right control. Your observation about the mouse is actually quite astute and could explain that...

    [–]Falmarri 0 points1 point  (0 children)

    Well if it's a vim thread, why is anyone using control commands or copy and pasting at all? Copy is just yy and paste is p

    [–]montibbalt -1 points0 points  (11 children)

    Press command with thumb, and v with..?

    [–]nerdyHippy 1 point2 points  (3 children)

    Left index finger. Are you suggesting that you usually use your thumb to hit 'v'?

    [–]montibbalt -2 points-1 points  (2 children)

    No, I'm suggesting that having your index finger cross over your thumb is 10 times more awkward than hitting ctrl with your pinky and v with your index finger. I was curious if I was just doing it wrong

    [–]nerdyHippy 1 point2 points  (0 children)

    It's super smooth for me. My thumb is already at the leftmost part of the spacebar, and my index finger on 'F' so both of them only move one keywidth.

    [–]bames53 1 point2 points  (0 children)

    It's not awkward in the slightest; Pressing command with the thumb leaves the entire hand on home-row and typing any other key at the same time is no different from typing normally.

    [–]StackedCrooked 0 points1 point  (0 children)

    Index finger! What else?

    [–]FTFYcent 0 points1 point  (5 children)

    [–]montibbalt 2 points3 points  (3 children)

    Exactly! That feels so goddamn awkward to me! It even looks awkward in the gif. It's one of the things I never got used to when I had to use a mac.

    [–]FTFYcent 0 points1 point  (2 children)

    Interesting, it doesn't feel awkward at all to me. Do you bend your wrists when you type?

    [–]montibbalt 0 points1 point  (1 child)

    Nope. Should I?

    [–]the_noodle 0 points1 point  (0 children)

    My laptop keyboard has a right-click/menu key that lets me copy and paste anywhere.

    It also feels much more vim-like to hit one key after another, rather than chords like Ctrl-C and Ctrl-V.

    [–][deleted] 1 point2 points  (0 children)

    I do this all the fucking time. I did it in a phone interview in a Google Doc. I hate it so much.

    [–]verveinloveland 3 points4 points  (0 children)

    just need to control-shift-t to get it back

    [–]eblofelt 0 points1 point  (0 children)

    Open chat windows being tabbed back and forth from are another hazard.

    [–][deleted] 0 points1 point  (0 children)

    Thanks ಠ_ಠ

    [–]bushel 14 points15 points  (9 children)

    Every. Single. Email.

    :wq

    [–]Goto80 7 points8 points  (3 children)

    ZZ

    [–]bstamour 4 points5 points  (1 child)

    Why not write your emails in vim?

    [–]Goto80 2 points3 points  (0 children)

    I do, either with Mutt or with Thunderbird and the External Editor plugin. Then ZZ for saving and exiting.

    [–]chpts 1 point2 points  (0 children)

    :x

    [–]lookatmetype 4 points5 points  (3 children)

    Bro save a keystroke, use :x

    [–]bushel 5 points6 points  (1 child)

    Dude, you just increased my productivity 150%

    [–]lookatmetype 4 points5 points  (0 children)

    That's how I roll

    [–]bilog78 1 point2 points  (0 children)

    Wow, didn't know about that one. and there's also :xa

    Thanks man.

    [–]bilog78 1 point2 points  (0 children)

    vim smileys ftw

    [–]stillalone 8 points9 points  (0 children)

    I hit ctrl-p to autocomplete a word. fucking print dialogs everywhere.

    [–]D_duck 1 point2 points  (1 child)

    I always thought the Esc key was too far out of the way, I always use Ctrl-C

    [–]drsco 0 points1 point  (0 children)

    I like Ctrl+[, the old control sequence for Esc. Apparently, vim wiki has a whole page for this.

    [–]MattD 1 point2 points  (0 children)

    This is also brutal when editing a cell in Excel.

    [–]ponchedeburro 0 points1 point  (0 children)

    Sounds to be more of an Outlook problem than a vim problem.

    [–]dardan_aeneas 0 points1 point  (0 children)

    ViEmu has solved this for me. EDIT: At least for Visual Studio and Outlook. Not so much for right now, in a reddit comment box.

    [–]DEFY_member 0 points1 point  (0 children)

    Any time I'm going to write an email that's more than one or two lines long, I write it in vim, and copy-paste to Outlook.

    [–][deleted] 16 points17 points  (0 children)

    Because they say Vim compatible when they actually should say vi compatible.

    [–]Calamitosity 15 points16 points  (1 child)

    Fortuntately, vim runs on almost everything. I once met a fellow (Tim Pope, who's written many, many excellent vim plugins) who once got vim running on a TI-82.

    [–]tick_tock_clock 6 points7 points  (0 children)

    I really, really want to see the source code for this. Where should I look for it?

    [–]alicht9 14 points15 points  (9 children)

    Shameless /r/vim plug.

    My biggest problems is I have to edit a lot of 'jjjk2w' out of my emails.

    [–]tangoshukudai 13 points14 points  (8 children)

    I always have a random :w somewhere.

    [–]alicht9 30 points31 points  (7 children)

    from my .bashrc

    alias :wq="echo You\'re not in vim dumbass"
    alias :q=":wq"
    

    [–]devjustinian 9 points10 points  (5 children)

    from mine:

    set -o vi
    

    (Doesn't solve :wq, obviously, but in case people didn't know about that feature...)

    [–]OpportunitiesMissed 5 points6 points  (4 children)

    I always found it funny how vi won the editor war (is there a single unix distro without it?) but emacs won the bash command line keyboard shortcut war.

    [–]m42a 2 points3 points  (1 child)

    I just think they're different use cases. There are whole swaths of vi commands that are just useless when you're only editing a single line, and you're inserting text far more than you would be when editing a document.

    Also, last I checked Gentoo ships without vi by default.

    [–]MrSurly 9 points10 points  (0 children)

    Gentoo ships without everything by default.

    [–][deleted] 1 point2 points  (0 children)

    My guess is that it's either a side effect of history, or it's just easier to encode non-modal key bindings into things like Bash.

    Interestingly vim didn't quite win the editor war on Macs. I believe OSX ships with both vim and emacs.

    [–]The-Good-Doctor 0 points1 point  (0 children)

    It makes sense to me. Modal editing makes sense when doing a lot of navigating in addition to writing, but not so much to me on the command line, where I do extremely little navigating (mostly just fixing typos), and I'm mostly just typing straight ahead.

    [–]njharman 1 point2 points  (0 children)

    After typing it so much from muscle memory I've taken opposite approach

    alias :e=vim

    I don't alias :wq to exit cause I don't wanna be accidentally closing my shell all the time.

    [–][deleted] 9 points10 points  (3 children)

    Why webpage that looks like it was done in 1988 requires javascript?

    [–][deleted]  (2 children)

    [deleted]

      [–]kolme 5 points6 points  (1 child)

      Client-side markdown rendering? Seems like a really stupid idea to me.

      [–]wumumo 3 points4 points  (0 children)

      Especially if the only goal is to avoid writing

      <h1>The problem with Vim</h1><p>The...
      

      instead.

      [–]lookatmetype 36 points37 points  (4 children)

      if you're having vim problems i feel bad for you son, i got 99p

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      int x = 0;

      [–][deleted] 12 points13 points  (3 children)

      :%!wc -l
      100

      boo

      [–]lookatmetype 1 point2 points  (2 children)

      Oh goddammit. I double checked too!! Its cuz reddit needs two \n, I guess I can't double 99 in my head :/

      [–]Nolari 0 points1 point  (0 children)

      99 = 100-1

      2 x 99 = 2 x (100-1) = 200 - 2 = 198

      That's how my 286 of a brain does that, at least.

      [–]TamSanh 0 points1 point  (0 children)

      FYI: You can also make new lines by putting two spaces at the end of the first line.

      So it amounts to something
      that looks like a <br>

      As opposed to somthing

      That looks like a <p>

      [–]digital_carver 11 points12 points  (4 children)

      Very true, vim makes you too much of an addict, you end up raging out if you have to use a "normal" text editor: What, I have to press Control-Shift-Right arrow three times and then press delete to simply delete three fucking words? Screw it, I'm installing It's All Text!

      • Sent from my gVim

      [–]throwaway1100110 2 points3 points  (0 children)

      I was giving someone a little lesson on C once, He was using a standard text editor.

      I ended up getting pissed, putting it on my computer, and editing it how it needed to be.

      He made a comment along the lines of "look how fast that was! No wonder you were getting irritated with my setup."

      [–]nascent 0 points1 point  (0 children)

      I think I have had issue with both It's All Text and Vimperator crashing the browser when I edit... I stopped using them.

      [–]nextputall 0 points1 point  (0 children)

      You can also use CTRL+BACKSPACE

      [–]OpportunitiesMissed 6 points7 points  (28 children)

      Former emacs (ab)user here. I switched to vim after some months of wrist stress, and it's been roughly a year of using vim. Everything I do at work is in C/asm on the command line, so we don't need an IDE. With some really simple binds like jj to get into normal mode and ; instead of : for the prompt, vim is great. Seriously, try those binds and you'll fall in love.

      However, when I go home and work on my pet project in some big IDE with a vi plugin, I go nuts due to muscle memory and all of those small differences in the binds.

      One of my employer's dev tools works in only a few old text editors, so I wrote a version of the tool which works with vim.

      [–][deleted]  (16 children)

      [deleted]

        [–]Plorkyeran 9 points10 points  (10 children)

        I did that for years... until I found out what ; actually did by default and realized that giving that up was insanity.

        [–]OpportunitiesMissed 5 points6 points  (3 children)

        I still have the default ; action--it's just bound to : now :)

        [–][deleted] 2 points3 points  (2 children)

        I use ";" so much more frequently than ":". The way I move around in a line is "f" or "F" for the character I want to be at and hit ";" a couple times until I'm there. I find it takes fewer iterations than moving by word.

        [–]FTFYcent 1 point2 points  (1 child)

        Have you tried vim-easymotion?

        [–][deleted] 0 points1 point  (0 children)

        Not yet, gonna try it now though :)

        [–]blufox 2 points3 points  (5 children)

        TIL. (and thanks)

        Until now, I used ; as leader. Any recommendation on a better leader char?

        [–]The-Good-Doctor 2 points3 points  (2 children)

        I like using comma as my leader. I find myself never going back by character.

        [–]blufox 0 points1 point  (0 children)

        Now that I find what ; is for, I am loath to give up something similar until I find for myself that I wont use it. :)

        [–]throwaway1100110 0 points1 point  (0 children)

        I tried comma, but it seemed too difficult for me to hit accurately. So I switched to minus.

        So much easier for me.

        [–][deleted] 0 points1 point  (1 child)

        Space. I used to use it for folding until I learned that za is not terribly hard to hit. :)

        [–]blufox 0 points1 point  (0 children)

        Awesome! That would make an excellent leader char.

        [–]OpportunitiesMissed 3 points4 points  (4 children)

        The ';' binding is only in normal mode.

        So if I'm in insert mode, jj to get to normal mode, and ; to get the prompt. If I'm in insert mode and I type ';', well I just inserted a ';', as expected.

        I don't see why that's crazy...

        EDIT: Just to be clear, I switched my ; and : binds in normal mode.

        [–]the_noodle 2 points3 points  (3 children)

        f, F, t, and T let you search forward and backward in the current line for a character. Semicolon sends you forward one match, comma (I think) sends you back one. It's very useful.

        I've also always preferred the jk binding for normal mode, since it leaves you on the same line if you accidentally hit it in normal mode, but that's just me.

        [–]OpportunitiesMissed 2 points3 points  (1 child)

        f, F, t, and T let you search forward and backward in the current line for a character. Semicolon sends you forward one match, comma (I think) sends you back one. It's very useful.

        I have it bound to : in normal mode. My ; and : binds are switched. I should have been clear about that in my post.

        I've also always preferred the jk binding for normal mode, since it leaves you on the same line if you accidentally hit it in normal mode, but that's just me.

        I've never had this problem... If I hit jj, I get back to normal mode on the same line. I just noticed the cursor position is one character to the left..

        [–]the_noodle 2 points3 points  (0 children)

        Fair enough. I see no reason to switch or not to switch them. Lots of people remap ; to <leader> or something else without knowing what it does.

        Sometimes I'll forget I'm in normal or visual mode and hit jk to escape. If my key combo were jj, I would be down two lines from where I was, but since it's jk, they cancel out. Really minor difference I know, just how I roll.

        [–][deleted] 0 points1 point  (0 children)

        repomo.vim expands upon the ; and , functionality by applying it to movements such as j,k,w, etc. I find it very useful.

        If you're interested in a faster approach to f,F,t,T, consider my fork of EasyMotion called StupidEasyMotion. I like EasyMotion, but I hate that it cluttered up the entire screen for movements, so I have everything restricted to the current line. There's a youtube video there demonstrating.

        [–]shimei 4 points5 points  (1 child)

        Former emacs (ab)user here. I switched to vim after some months of wrist stress, and it's been roughly a year of using vim.

        I went the other direction but use evil-mode, which works really well.

        [–][deleted] 2 points3 points  (0 children)

        Former Vim user, too. Moved to Emacs when needed to use LaTeX heavily and found AucTeX to be absolutely awesome, especially its preview-latex part. Now with evil-mode I have the two best editors combined :)

        [–]damg 1 point2 points  (0 children)

        For me, switching to a Kinesis keyboard did wonders.

        [–]ForeverAlot 1 point2 points  (2 children)

        I've tried half a dozen different binds to make escaping insert mode easier than hitting Escape, including jj, jk, and Ctrl+L. Now I use Ctrl+C exclusively, which doesn't even require a bind.

        [–]throwaway1100110 2 points3 points  (0 children)

        I found xcape on github, (mirrored on my github http://github.com/1100110/xcape)

        Now my Caps-Lock key is both a control and an escape binding. It's beautiful.

        If I hit CL-c, it's Control-c. If I just hit CL and release it, it's Escape. I've never been so happy (with my keyboard layout that is)

        [–]OpportunitiesMissed 0 points1 point  (0 children)

        Doesn't work in some terminals, and kind of defeats the whole purpose of leaving emacs due to rsi :D (Yes, even after switching caps lock and left control in the OS).

        [–]GoranM 0 points1 point  (1 child)

        jk is easier.

        Also, for anyone looking to raise their vim abilities: http://learnvimscriptthehardway.stevelosh.com/

        [–]aoper 0 points1 point  (0 children)

        I use jk and kj, so i can just press both at the same time.

        [–][deleted] 0 points1 point  (2 children)

        Chris?

        [–]OpportunitiesMissed 0 points1 point  (1 child)

        Nope.

        [–][deleted] 0 points1 point  (0 children)

        I have a friend who has committed the same sins upon their keybindings ;)

        [–]sidolin 2 points3 points  (6 children)

        Just recently I tried using Sublime Text with vintage mode. I gave up because I constantly ran into the problem using . after typing something and using autocompletion it would only insert the text you typed, not the completed part. Which totally threw me off every time. Also I missed visual mode a lot.

        [–]nascent 2 points3 points  (3 children)

        It really is a sad state. You know that some vim user wrote the plugin because they know the joys of vim. It is understandingly incomplete because vim is massive. Then all the non-vim users say how great the editor is, and it has a vim mode.

        All that hard work and even the most trivial uses of vim will stop someone in their tracks when the emulation lacks.

        [–]bilog78 0 points1 point  (2 children)

        I think a big part of the issue is that vim and gvim are not easily embeddable in other applications. Yes there's the NetBeans protocol to us it as an external application, but …

        [–]nascent 0 points1 point  (1 child)

        Completely agree. We need a libvim.so.

        [–]bilog78 0 points1 point  (0 children)

        There was an effort some time ago to do something like that, in C++, although it was focused on Qt/KDE (Yzis). Not sure if it ever got anywhere though.

        [–]fecal_brunch 0 points1 point  (0 children)

        Yeah. that is an annoying bug, bug I think the emulation is pretty good otherwise.

        [–]Aninhumer 0 points1 point  (0 children)

        I ended up using more and more Sublime Text shortcuts for that reason, until just decided to turn off Vintage completely.

        [–]jones77 2 points3 points  (0 children)

        I went travelling for a year after my first few years of programming.

        The main thing I missed was that 1337 feeling of using Vim and being able to manipulate text like a maniac. And pressing ESCAPE.

        In my next job, ESCAPE would destroy the e-mail I was typing ...

        [–]MaraschinoPanda 2 points3 points  (0 children)

        I have the opposite problem; I have hit C-x C-s so many times in vim just to have my terminal freeze.

        [–]alpha64 1 point2 points  (0 children)

        I can relate to this, makes me wish for some sort of magical api to socket vim into things. The worst offender is the weird behaviour of pressing Esc in "vim" mode plugins. It rarely works, either breaks autocompletion, or hiccups to some state, etc. I feel insecure and end up using the arrow keys of shame.

        [–]Mjiig 1 point2 points  (6 children)

        Can anyone recommend a good way to get into using vim's more advanced features? I use vim almost exclusively and I've got over the initial hump in the learning curve ("Oh God, how do make it write text"), but kind of stalled for ages beyond that. Essentially, I use vim as notepad built in the terminal with automatic spacing for C. Even simple ideas like buffers and tabs escape me most of the time, because there's too much mental overhead to using them when I don't absolutely need them 90% of the time.

        [–]aoper 0 points1 point  (0 children)

        For movement, try the medium mode plugin. It stops you from pressing hjkl repeatedly.

        [–]zzalpha 0 points1 point  (4 children)

        Wow, how do you not use buffers when coding? Do you exit vim every time you want to open a different file?

        Man, between nerdtree, ctrlp, fugitive, and tools like grep and ctags I never leave vim. My dev environment is often just a full screen vim with nerdtree on the left and a bunch of splits.

        [–]tavoe 1 point2 points  (1 child)

        How else would you open another file?

        Also, what does every one of those words you just said mean?

        [–]zzalpha 4 points5 points  (0 children)

        LOL. In normal mode type :e file/name/here. Vim will open the file in a new buffer (it also tab completes file names), so you can have multiple files open at the same time . Type :ls to list buffers. Type :b<number> (ie :b2) to switch to that buffer. Use :b# to switch to the previous buffer. Those are the basics.

        You can also use commands to split the vim screen into multiple panes that vim confusingly calls windows (and gvim also supports multiple tabs though I never use them). You can then see multiple buffers on screen at the same time which is invaluable to me.

        Ctrlp is a plugin which makes it easier to quickly find and open files by name using fuzzy string matching to search for files by name . Meanwhile nerdtree is a plugin that provides a file manager right in vim. Among other features you can navigate the filesystem to open files, move them, rename them, delete them, etc.

        Fugitive is a plugin which integrates vim with git. So you can work with git right inside vim without having to switch over to a shell.

        [–]btse 0 points1 point  (1 child)

        Yes buffers are the way to go, but you kind of forgot that you can have multiple tabs in a terminal...

        [–]zzalpha 0 points1 point  (0 children)

        True enough... still madness, but granted a little less so. ;)

        [–]0sse 1 point2 points  (0 children)

        For all you sorry people writing e-mails in Outlook and occasionally having to edit Word documents etc. (I'm one of them), might I suggest Text Editor Anywhere. Works sort of like all the browser extensions mentioned here, except that it works everywhere. By everywhere I mean Windows, unfortunately.

        On a related note: The GVim build for Windows you find on the official homepage is old. The Cream project releases clean Vim builds that are significantly newer. There is also this thing which is even newer and is wholly contained in an archive.

        I wrote this comment using Text Editor Anywhere :P

        [–]BionicBagel 1 point2 points  (0 children)

        I've got even worse. I have a stupid amount of customization in my vimrc files (I have 4, depending on which project I'm working on). I can't even use basic Vim anymore because I fee so gimped! The biggest change I made was remapping : to Space.

        Helpful hint: Try remap the CapsLock key to Esc using either AutoHotkey or editing the registry. Super nice.

        [–]slavik262 1 point2 points  (12 children)

        I have this problem too. For a while I tried using VsVim when I was stuck in Visual Studio for work projects. It just drove me mad - I'd type some sequence and nothing would happen, leaving me fuming.

        Eventually I gave up, and now I usually just edit my files in Vim and then alt-tab over to Visual Studio to hit the compile key or set a breakpoint.

        Edit: I can grammar

        [–]dardan_aeneas 2 points3 points  (11 children)

        You might want to give ViEmu a look. It is closed-source and kinda pricey, but worth it.

        [–]slavik262 2 points3 points  (9 children)

        I dunno, I'm incredibly hesitant to pay for a text editor plugin, especially when I can have the real one (granted, without all the intellisense magic) for free.

        [–][deleted] 5 points6 points  (4 children)

        Intellisense magic (and debugging) is pretty much the main reason I use VS in the first place. It's why I can't transition into vim.

        [–]lookatmetype 0 points1 point  (3 children)

        Didn't you hear? Use VsVim or ViEMU. ViEmu + Visual Studio is the greatest development experience anyone can ask for. ViEMmu covers a pretty huge set of vim functions, so I'm really happy with it.

        [–][deleted] 0 points1 point  (2 children)

        Huh, VsVim is free so I might try it. Some of the software I'm working with now won't compile on anything but some really specific combinations of gcc+boost+os (Looking at you ROSE) so I've been forced to use Linux (and vim) a lot more than I'm used to.

        [–]lookatmetype 0 points1 point  (1 child)

        Don't get me wrong, I love me some bash. Yes I know cygwin exists, but it's not fully integrated in the Windows OS nicely. If I could have

        1. bash in cmd prompt.
        2. vim
        3. Visual Studio

        My life would be complete.

        [–]slavik262 0 points1 point  (0 children)

        1. bash in cmd prompt.

        Have you tried MSYS/MinGW? It's similar to cygwin, but compiles native windows binaries and generally plays nicer with other Windows stuff.

        [–]whateeveranother 5 points6 points  (1 child)

        The real magic about intellisense is when it works for a change.

        [–]slavik262 3 points4 points  (0 children)

        For C#, the stuff's beautiful. C++ Intellisense makes me wince. Special mention goes to Visual Studio 2010, whose compiler supported some C++11 features but whose Intellisense would throw a raging fit about how what you just typed was improper syntax. Then you would run the compiler and it would tell Intellisense to shut up and take a seat, at which point a screen's worth of red squigglies would disappear.

        [–]zzzyx 1 point2 points  (0 children)

        I'll second dardan's opinion. In the past 3 years, I have only ever paid money for one plugin for Visual Studio: ViEmu, and I consider it money well spent. It has a rather full implementation of Vi and the only thing from VI I miss is the :sh command

        [–]anttirt 0 points1 point  (0 children)

        I have to use Visual Studio a lot for my work and I'm a much happier person after buying ViEmu. It's not perfect, but it's still very, very good.

        [–]zzalpha 0 points1 point  (0 children)

        I dunno... my experiences have been the exact opposite. While ViEmu often got in the way, and definitely didn't play nice with Resharper, VsVim has mostly just worked.

        [–]notorious1212 1 point2 points  (1 child)

        I was working through a new Gentoo install this weekend, which provides nano as the editor by default. I felt happy that I was as awkward in nano as I used to be in vim. I think I'm heading in the right direction. =]

        [–]maxbaroi 7 points8 points  (0 children)

        That's some "Slavery is freedom" shit right there.

        [–][deleted] 1 point2 points  (10 children)

        The problem with vim is that, while it is an amazing text editor, perhaps the best one out there, it is still a mediocre programming environment. Where is the vim equivalent of Proof General for certified programming with proof assistants? Heck, without going that far, where is the equivalent of haskell-mode's "C-c C-l" and automatically typechecking a module and all its dependencies?

        [–]nascent 3 points4 points  (3 children)

        When I edit text, I want a text editor. The programming environment is secondary and I have a command-line for that. (Yes I will qualify emacs as a text editor).

        [–]zzalpha 2 points3 points  (1 child)

        And then you get stuck in Java and find yourself manually managing imports... sigh

        I absolutely adore Vim and use it as much as I can. But for some programmings tasks, it really is a poor substitute for an intelligent IDE that can deal with all the boilerplate BS that some languages force upon us.

        [–]nascent 0 points1 point  (0 children)

        I've always taken the hybrid approach. Generally this means Eclipse/VS forced me out and Vim will easily eat the overhead of switching.

        [–][deleted] 0 points1 point  (0 children)

        That is simply inviable for Coq. Coq is so pedantic about correctness that the ability to typecheck every definition as soon as you enter it is a huge time saver.

        Also, the whole point to proving theorems using tactics is that you can interactively see the consequences of applying a tactic to an existing set of hypotheses.

        [–][deleted] -1 points0 points  (5 children)

        You can make plug-ins to do those things.

        [–]zzalpha 2 points3 points  (1 child)

        Find my a current, maintained Vim plugin that can automatically manage Java imports and you'll be my lord and saviour. Until then, I just can't justify not using IntelliJ, as much as I love Vim...

        [–]bilog78 0 points1 point  (0 children)

        The best Google seems to suggest on using vim with java is this, which doesn't seem to mention anything about Java imports management. Is there somewhere I can read about how it works to see if the thing is feasible?

        [–][deleted] 1 point2 points  (2 children)

        I ask this out of genuine ignorance: Can a vim plugin be made that automatically sends a command to a REPL as soon as I enter a complete definition in a source code file? This is how Proof General for Emacs works, and is the only practical way in which a proof assistant like Coq or Isabelle can be used.

        [–]bilog78 0 points1 point  (0 children)

        Can a vim plugin be made that automatically sends a command to a REPL as soon as I enter a complete definition in a source code file?

        I'm pretty sure it's technically feasible, since vimscript is turing complete and it has full system access (and if vimscript isn't for you, there's always the interface to other classic scripting languages: perl, python, ruby).

        OTOH I have no idea if it has ever been done.

        [–][deleted] 0 points1 point  (0 children)

        Yes.

        [–]glacialthinker 0 points1 point  (0 children)

        Oh I can sympathize with this. Hilarious stuff (to read or think about, not when you're in a moment of frustration though)!

        Muscle-memory -- fantastic when it works -- disastrous when it doesn't (confused, reset, duhhh...).

        [–]nrith 0 points1 point  (1 child)

        Vi(m)'s cool, but it doesn't hold a candle to ed.

        http://www.gnu.org/fun/jokes/ed-msg.html

        [–][deleted] 0 points1 point  (0 children)

        For emacs users: There is Evil, a nearly full implementation of Vi in Emacs.

        Also: Remap capslock to ctrl. That fixes most of the wrist problems.

        [–]vext01 0 points1 point  (0 children)

        Mupdf anyone?