Slashdot Mirror


Neovim: Rebuilding Vim For the 21st Century

An anonymous reader writes "Neovim is a major overhaul of the vim editor to provide better scripting, cleaner support for plugins and integration with modern graphical interfaces. Modernising the large and complex codebase of Vim is a formidable task, but the developer has a clear plan, and has already begun work. There's a Bountysource fundraiser running to support the effort. If Vim is your editor of choice, check it out." (The crowd-funding effort has only one more day to go, but has well exceeded already the initial goal of $10,000.)

248 comments

  1. Obligatory xkcd, and rirst post by Anonymous Coward · · Score: 5, Funny

    http://xkcd.com/378/

    1. Re:Obligatory xkcd, and rirst post by fisted · · Score: 0

      Its one of the most retarded and least funny xkcds in existance.

    2. Re:Obligatory xkcd, and rirst post by webmistressrachel · · Score: 1

      Hey, it's not that bad, it's strapline does include "sarcasm", after all. This is an ancient debate and deserves a smile or two on this auspicious occasion - modernising vi / vim is a laudable goal.

      Think about the comfort and ease of use, if one could use Alt-Gr for the shortcuts in Vim, and ALT-TAB etc. to switch instantly for other GUI apps (SSH, Seamonkey, etc.). A long-awaited blend of the old and the new.

      --
      This tagline was transcoded to result in at least one smirk. If you experience failure to smirk, please consult your Gen
    3. Re:Obligatory xkcd, and rirst post by K.+S.+Kyosuke · · Score: 1

      Even better, this XKCD reference is also a suitable response to the immediately preceding "Creationists Demand Equal Airtime With 'Cosmos'" submission, making this a double first post! (So far, I've only seen one other like that before...)

      --
      Ezekiel 23:20
    4. Re:Obligatory xkcd, and rirst post by Anonymous Coward · · Score: 0

      There's no shame in admitting you don't get the joke.

    5. Re:Obligatory xkcd, and rirst post by funwithBSD · · Score: 1

      Perhaps this one is more appropriate:

      http://xkcd.com/1343/

      --
      Never answer an anonymous letter. - Yogi Berra
    6. Re:Obligatory xkcd, and rirst post by Anonymous Coward · · Score: 0

      XKCD is never appropriate.

    7. Re:Obligatory xkcd, and rirst post by flyneye · · Score: 1

      Hardcore guys ride V-twins and run Emacs on their android https://play.google.com/store/... .

      --
      *Repent!Quit Your Job!Slack Off!The World Ends Tomorrow and You May Die!
    8. Re:Obligatory xkcd, and rirst post by Iconoc · · Score: 1

      If it isn't funny, you just haven't been there ...

    9. Re:Obligatory xkcd, and rirst post by Jane+Q.+Public · · Score: 1

      Here's the main reason I don't use Vim (or Emacs, for that matter): it's a "stateful" editor.

      Insert mode? Command mode? Etc. etc.

      I can do without.

      Now, arguably, if all you have to work with is command line, that's one way to make it work, and work well. But most of the time I'd rather make use of modern interfaces.

    10. Re:Obligatory xkcd, and rirst post by DarwinSurvivor · · Score: 1

      etc? vim only has 2 modes.

    11. Re: Obligatory xkcd, and rirst post by Anonymous Coward · · Score: 0

      Three. Command, insert, and visual.

    12. Re: Obligatory xkcd, and rirst post by DarwinSurvivor · · Score: 1

      I always considered "visual mode" to be part of command mode.

    13. Re:Obligatory xkcd, and rirst post by Jeremi · · Score: 1

      Here's the main reason I don't use Vim (or Emacs, for that matter): it's a "stateful" editor. Insert mode? Command mode? Etc. etc. I can do without.

      Stateful editing is a bit tricky to get used to, but once you've wrapped your mind around it there's a payoff: In command mode you have (at least) 26 commonly used commands available to you via a single keystroke.

      In an editor without states, you either have to hold down the command key (or some other meta-key) to indicate that what you're about to type is a command and not a literal letter, or you have to (horrors!) use the mouse. Either way, it's slower than just being able to press a single key to activate each command.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    14. Re:Obligatory xkcd, and rirst post by Jane+Q.+Public · · Score: 0

      "etc? vim only has 2 modes."

      Vim has loads of states. They just aren't official "modes".

      You are in insert mode, nothing pressed. That's a state. You press shift-y. "Y" appears in the text.

      You are in command mode. That's a state. You press "y". It does something completely different.

      But wait... you're also now in a different "state"! If you press "y" again, it will do yet a third thing: copy a line of text. But if you hadn't pressed the first "y", it wouldn't do that. So pressing "y" the first time puts it in a special "state".

      Vim has a boatload of special states. And they are anything but obvious or visible. That's bad.

    15. Re:Obligatory xkcd, and rirst post by Jane+Q.+Public · · Score: 1

      I'm aware that lots of people love it. Some of them are friends and co-workers. I'm just not one of those people. I consider it a command-line necessary evil.

      I'm really not trying to say it's overall bad. I just prefer to do things differently.

    16. Re:Obligatory xkcd, and rirst post by Dahan · · Score: 1

      Here's the main reason I don't use Vim (or Emacs, for that matter): it's a "stateful" editor.

      Insert mode? Command mode? Etc. etc.

      If you think Emacs is stateful, aren't all editors stateful by your definition? Most people do not consider Emacs to be stateful. Sure, you can press Meta or Ctrl to start some multi-key command, but you can press Alt or Ctrl in Windows Notepad too. What makes vi stateful is that after you've typed a command, you're still in command mode and must type another command. In Emacs and Notepad, after you've typed a command, you're ready to insert text again.

    17. Re:Obligatory xkcd, and rirst post by tlhIngan · · Score: 2

      Vim has loads of states. They just aren't official "modes".

      You are in insert mode, nothing pressed. That's a state. You press shift-y. "Y" appears in the text.

      You are in command mode. That's a state. You press "y". It does something completely different.

      But wait... you're also now in a different "state"! If you press "y" again, it will do yet a third thing: copy a line of text. But if you hadn't pressed the first "y", it wouldn't do that. So pressing "y" the first time puts it in a special "state".

      Vim has a boatload of special states. And they are anything but obvious or visible. That's bad.

      The alternative is to have a bunch of modifier keys to do stuff. Like say, Control, Alt, Meta, Command, Option, AltGr keys that have to be held in various ways to do stuff.

      If you think Emacs goes nuts with it - well, that's what happens - because you need to be in an edit mode all the time, to do anything else requires pressing a whole combination of modifier keys to tell the computer you want to do something different and not just input text.

      Like to delete a line, you have to tell the computer to start highlighting text, to end highlighting text then what you want to do, i.e. delete it.

      These days, we use a device called a "mouse" to do it, and for a lot of Emacs usage, a mouse and menu seem to be the best way to use it.

      But that's an annoyance (Emacs was designed for the Space Cadet keyboard, which has, I believe, 7 modifier keys) once you start having to do stuff like Ctrl-Alt-Shift or Command-Option-Shift to do things. Which is why stateful editors like vim are popular. In fact, vim isn't fully stateful - it allows a lot of things to happen in insert mode - like backspacing, moving the cursor around to delete older text, etc.

      In fact, some Vims are such that commands like copy and paste are also able to do be done in insert mode - Windows for example (which is why Visual Block mode is not Ctrl-V, but Ctrl-Q) because you can hit Ctrl-V and paste (in command OR insert mode) what's in the Windows clipboard.

      Vim is stateful, and the reason why people do like stateful editors is well, they can navigate their document without having to go through special commands that require multiple modifiers - like using % to find matching braces/brackets/parens, etc. But Vim also highlights the match if it's visible. Or my personal favorite of navigating up and down with my fingers on home row - no moving my hand to the cursor keys, or to the mouse.

    18. Re:Obligatory xkcd, and rirst post by fisted · · Score: 2

      Vim has a boatload of special states. And they are anything but obvious or visible. That's bad in the first weeks, then suddenly it becomes very good.

      FTFY

    19. Re:Obligatory xkcd, and rirst post by Jane+Q.+Public · · Score: 1

      "The alternative is to have a bunch of modifier keys to do stuff. Like say, Control, Alt, Meta, Command, Option, AltGr keys that have to be held in various ways to do stuff."

      False dichotomy. Another perfectly viable alternative is to have a menu. Even drop-down menus. They were being done in character-mode way back in the 80s.

    20. Re:Obligatory xkcd, and rirst post by Jane+Q.+Public · · Score: 0

      "FTFY"

      Yeah, right.

      I know a guy who tried to tell his girlfriend the same thing about anal sex.

    21. Re:Obligatory xkcd, and rirst post by Anonymous Coward · · Score: 0

      False dichotomy. Another perfectly viable alternative is to have a menu. Even drop-down menus. They were being done in character-mode way back in the 80s.

      Activating a menu means nothing more than changing the state.
      Open a text document with notepad. Press ALT. Try to move the text cursor with the arrow keys. Laugh. Go back to vi.

  2. Trivially accomplished by smittyoneeach · · Score: 4, Funny
    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    1. Re:Trivially accomplished by iggymanz · · Score: 4, Funny

      for those who wonder how Stallman could flounder around for 35+ years and not produce a viable OS, look no further than his "editor"

    2. Re:Trivially accomplished by ButchDeLoria · · Score: 1

      Emacs is a great OS, just needs a good editor, etc.

    3. Re:Trivially accomplished by Anonymous Coward · · Score: 0

      Thankfully Emacs has a terminal emulator built-in, so you can you combine its news reader and mail client with a *real* editor like nano.

      I'll see myself out, thank you.

    4. Re:Trivially accomplished by jd2112 · · Score: 1

      for those who wonder how Stallman could flounder around for 35+ years and not produce a viable OS, look no further than his "editor"

      It's a fairly complete OS but needs a good editor.

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    5. Re:Trivially accomplished by morcego · · Score: 1

      Right... because emacs is a dropin replacement for vim...
      Might as well suggest MSWord, Libreoffice or LaTeX.

      --
      morcego
    6. Re:Trivially accomplished by DarwinSurvivor · · Score: 1

      There are graphical LaTeX editors out there, maybe that's what he meant. Personally I program LaTeX in vim!

    7. Re:Trivially accomplished by Anonymous Coward · · Score: 0

      I still use vi on a daily basis. What's this fancy new 'vim' thing all about ?

  3. There's a reason people argue about vim and emacs by beelsebob · · Score: 0, Flamebait

    There's a reason people argue about vim and emacs...

    It's because they're BOTH shit.

  4. Re:There's a reason people argue about vim and ema by Jeremi · · Score: 1

    Do people in fact still argue about vim vs emacs?

    It seems to me the the vim-vs-emacs wars ended in a stalemate decades ago, and everybody who participated is resigned to the fact that nobody will ever switch from one to the other. Meanwhile, all the young'ns are using IDEs anyway, and have only a vague idea what vim or emacs is, so they don't really care enough to argue about which is better.

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  5. formidable task != $10k budget by Anonymous Coward · · Score: 5, Interesting

    if someone came to me to evaluate their budget reasonableness for something they described as a formidable task taking more than a week or two, and asked for $10k, I'd know they were egregiously underestimating or something is missing.
    (and as TFA says: "Over its more than 20 years of life, vim has accumulated about 300k lines of scary C89 code that very few people understand or have the guts to mess with."... that's pretty formidable)

    I suppose some ambitious person living in a low cost of living locale could survive for 6 months on 10k, and that would be a fair amount of work time; toiling in their barren garret or tower.

    TFA says "$10,000 will allow me to dedicate two months of full time work to this project, which will be enough to implement the following:"

    Is $5000/mo a reasonable sum in Recife, Brazil? Probably.

    Is 2 months sufficient time to do all he wants to do? I'm not so sure. That's a pretty long list of things he wants to do.

    1. Re: formidable task != $10k budget by loufoque · · Score: 2

      A consulting company would ask 1,000 to 2,000 per day, so 40,000 to 80,000.

    2. Re:formidable task != $10k budget by Anonymous Coward · · Score: 2, Interesting

      I'm a Brazilian, though I don't live in Recife.

      > Is $5000/mo a reasonable sum in Recife, Brazil? Probably.

      Agreed.

      USD $5,000 is a hefty sum in Brazil to be earned for a month's work, though it's not obscene. Some things are way expensive here (like cars and houses), some are somewhat more expensive (like computers) and some are cheap (like food). We're more or less like an inverted Japan, in economic terms.

      From his previous initiatives, the guy seems to belong to a category with few people who could deserve to be that well paid.

      He says he has a son; from experience, considering what is involved when one is not single, I'd say he made a good estimate about what he needs for survival while tackling with this project.

      > Is 2 months sufficient time to do all he wants to do? I'm not so sure.

      Again, agreed.

      But then that's the "stone soup" idea: you call people's help to do something which seems impossible and -- whether it's feasible or not -- something wonderful happens as people join in and make the miracle happen. It's one of the most powerful visions if one has ever witnessed such thing and makes one hope we will one day vanquish things like wars.

      By the way, others do that but not always with good intentions. At least, he has clear and valid objectives IMHO.

      My point here though is that he wants vim to be made more easy to develop, probably because he likes vim a lot. Even if things turn up up harder to do and it takes him one year to finish, maybe we get a richer development ecosystem and a more modular application.

      That would be indeed nice.

      We are lucky that he wants to do such things, but I'd advise him to pay greater attention to the incoming baby and get a stable position (e.g. in public service) and dedicate less time to free software.

      That said, I had to introduce vim at work because notepad is a piece of garbage and now the problem is lay people want to use it. I'm feeling a bit like Prometheus and scared of having to push big stones over mountains.

    3. Re:formidable task != $10k budget by evil_aaronm · · Score: 1

      It depends on the circumstances. As you said, without doing anything different, I could survive for about half a year or more on $10k. Think "slow burn." I don't have kids in the house, most of my assets are paid off, including my house, and it's in an economically depressed area, so most stuff, including taxes, is cheap. I can see where $10k wouldn't get you two months, and I've lived like that, but that's not everyone.

    4. Re:formidable task != $10k budget by Anonymous Coward · · Score: 0

      Are you really that out of touch with the rest of the world? In many parts of Canada and the USA it is possible to live on $10,000 if one is careful. With a $10k budget I could easily dedicate eight months to a project where I live. Come down out of your gold tower some time and realize much of the world can accomplish a lot on 10k.

    5. Re:formidable task != $10k budget by funwithBSD · · Score: 1

      Depends, are you paying me in BitCoins so I don't pay taxes?

      I live on just about $5.3K per month, which is what the government lets me keep of my 6 figure income, and I save out of that amount too.

      --
      Never answer an anonymous letter. - Yogi Berra
    6. Re:formidable task != $10k budget by funwithBSD · · Score: 1

      (that is for a family of 4, btw, not just myself. Much lower burn rate if it was just me, but I like my family =) )

      --
      Never answer an anonymous letter. - Yogi Berra
    7. Re:formidable task != $10k budget by Anonymous Coward · · Score: 0

      Sure, and then when the job's done I report you for tax evasion. It's a win-win!

    8. Re:formidable task != $10k budget by Anonymous Coward · · Score: 0

      At this point, instead of trying to grok and then refactor the source code, they should just create a "Vim" specification (perhaps taking out some of the rarely used features) and building a new implementation to the spec. Or maybe that's what they are doing; I didn't read the article, of course.

      Or just keep using Vim. The code may be crufty, but I can't think of anything wrong with the program itself that would warrant so much effort to rewrite it; at least not at this point.

    9. Re:formidable task != $10k budget by vux984 · · Score: 1

      Is $5000/mo a reasonable sum in Recife, Brazil? Probably.

      5k/mo is 60k year. That's more then the median household income in the united states. MOST people could live on it, and for most people it would even be a raise.

  6. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    "There's a reason people argue about vim and emacs... It's because they're BOTH shit."

    If you SSH to a remote host and want to use a powerful editor, what do you use?

  7. Certainly as a fork... good luck by inflex · · Score: 4, Interesting

    I admit to being curious to see how this one goes as a fork off the existing vim codebase, but I'm not sure I'd be putting any bets on its long term viability. I suspect an overdose of optimism and insufficient compelling reasons for users to shift from vim will starve this project out.

    Good luck to the developer - it's going to be one hell of a learning experience.

    1. Re:Certainly as a fork... good luck by Anonymous Coward · · Score: 0

      300K of scary C89 code? Obviously the developer has never worked on a large operating system codebase then. That is a small codebase.

    2. Re:Certainly as a fork... good luck by jones_supa · · Score: 1

      You can still fit a full operating system kernel and a lot more in 300k lines.

    3. Re:Certainly as a fork... good luck by Anonymous Coward · · Score: 0

      "large operating system codebase"

    4. Re:Certainly as a fork... good luck by jones_supa · · Score: 1

      Large operating system codebases are among the biggest codebases on the planet, so of course they are huge. But then again, that includes all kinds of various specialized APIs and a stock of drivers.

    5. Re:Certainly as a fork... good luck by rdnetto · · Score: 1

      The shift to Lua and coprocess model will be pretty significant improvements. You can easily max out a Core 2 Duo with certain ctags or git plugins, and having an easier way to identify the guilty party will be rather helpful.

      --
      Most human behaviour can be explained in terms of identity.
  8. Vim's Bram Moolenaar on 'Neovim' by RDW · · Score: 5, Informative

    https://groups.google.com/foru...

    "It's going to be an awful lot of work, with the result that not all systems will be supported, new bugs introduced and what's the gain for the end user exactly?

    Total refactoring is not a solution. It's much better to improve what we have. Perhaps with some small refactorings specifically aimed at making Vim work better for users."

    1. Re:Vim's Bram Moolenaar on 'Neovim' by wisnoskij · · Score: 1

      It sounds more like a task that the maintainers of VIM should actually be undertaking on the main branch. One step at a time.

      --
      Troll is not a replacement for I disagree.
    2. Re:Vim's Bram Moolenaar on 'Neovim' by jjohnson · · Score: 4, Informative

      what's the gain for the end user exactly?

      The origin of the fork is that tarunna submitted two large patches to vim that would have fixed a lot of process management in vim, and was rejected because the current vim codebase is so large and crufty that it's impossible to make major architectural changes to it, like allowing for async process management, just because the risk is too high (especially when there's literally one person, Moolenaar, with a commit bit and thus accepting responsility for every change). And the risk really is very high, I'm not faulting Moolenaar for this.

      The gain is that (neo)vim will be able to keep up with current technologies in its plugins (like non-blocking operations), it'll allow plugin authors to write faster plugins by speeding up the plugin architecture, existing plugins will see a speed increase, and other programs will be able to embed vim as an editor rather than hacky "vim keybindings" plugins. Given time and asm.js, it'll run natively within a web browser. None of these were in reach with Moolenaar squatting on the code rejecting risky patches. Sounds like a lot of gains to me.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    3. Re:Vim's Bram Moolenaar on 'Neovim' by Anonymous Coward · · Score: 0

      A Total Refactoring if done correctly (Use a god damn flowchart) is actually quite useful as not only are they fixing some older bugs but they're solving many of the design flaws to make it far more modular. Hell this was written in C89 and though I see nothing wrong with a 25-30 yr old standard, they could easily move it to a newer version (C11) and take advantage of it's capabilities.

      The alternative is to stick with C89 and do what they're doing - refactoring things to fix the many bugs and improve GUI support

    4. Re:Vim's Bram Moolenaar on 'Neovim' by kthreadd · · Score: 1

      The problem with requiring C11 is that a lot of compilers don't support it. C99 support is getting better, but a lot of compilers are still lacking behind.

    5. Re:Vim's Bram Moolenaar on 'Neovim' by Alomex · · Score: 1

      As a data point, a while back I peaked into the Vim source code and was amazed at how complicated the code base was. On the other hand I was very impressed with the sophisticated data structures it was using to support large files efficiently.

    6. Re:Vim's Bram Moolenaar on 'Neovim' by jjohnson · · Score: 4, Insightful

      The root problem here that tarruda is addressing (and he's very explicit about this in the neovim newsgroup) is that the code needs to be refactored for maintainability and to open up the development process. There's one guy in the world who really understands the codebase, so we're all one sleepy bus driver or bursting blood vessel away from vim becoming a frozen pile of code. Tarruda's starting point is refactoring out huge swathes of platform specific code, to be replaced with a single dependency on libuv for cross-platform support, to get to full test coverage, to modernize the C, and to craft a multi-developer process that allows for modern ongoing development by a large number of people, like other OSS projects have.

      All the user focussed gains that will flow from that are real gains, but really what Tarruda is doing is freeing Moolenaar from the corner into which he's painted himself. I like to think that Moolenaar (like Stallman with JWZ's fork of emacs) will come around, see the real improvement in the fork, and arrange to cut over to it.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    7. Re:Vim's Bram Moolenaar on 'Neovim' by MikeBabcock · · Score: 1

      This kind of thing works from time to time when the original developers really aren't in sync with what's wanted or needed by the public. It worked with gcc -> egcs for instance, but most of the time its a waste of code and effort.

      --
      - Michael T. Babcock (Yes, I blog)
    8. Re:Vim's Bram Moolenaar on 'Neovim' by Anonymous Coward · · Score: 0

      Maybe Neovim is for tea partiers...the new young guys

    9. Re:Vim's Bram Moolenaar on 'Neovim' by Zero__Kelvin · · Score: 1

      Who the hell is Bram Moolenaar?

      I kid. I kid. For those who don't know, it is the author of the original vim, which is itself a re-implementation of vi with improvements and additions galore.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    10. Re:Vim's Bram Moolenaar on 'Neovim' by waitamin · · Score: 1

      Contributing to an open-source project takes more than just being a good programmer. Especially in projects like VIM, with one person clearly "owner" of the project. So if you want to work towards something, you really need to have a good explanation why _and_, more importnantly, a roadmap that clearly shows how you can get there from the current state by *small, incremental changes that obviously don't break anything*.

      So that's that. This is a lesson everyone learns, eventually, but it seems that tarruda has not lived long enough to appreciate how difficult it is to refactor, how important it is that you don't break anything working, and how long everything takes.

    11. Re:Vim's Bram Moolenaar on 'Neovim' by jbolden · · Score: 1

      The goal isn't small incremental change and I'm not sure he cares if some stuff does break. Assume some stuff does break. 98% of people's vim configs work perfectly but 2% don't. 90% of VIM scripts work fine in NeoVIM but 10% can't. If it is important NeoVim might introduce a compatibility mode which allows legacy stuff to work. Heck how do you think VIM took over from VI and replaced the codebase? I've been using Vim for over 20 years. I love the fact that I can depend on VIM being anywhere. But there's a lot I'd like to see changed.

      I'm happy about VIM being "VIM likes its always been" and NeoVIM being "ideas from VIM reimplemented in an entirely new editor".

    12. Re:Vim's Bram Moolenaar on 'Neovim' by jjohnson · · Score: 1

      I think the point Tarruda's making very effectively is that refactoring can be unnecessarily difficult if your codebase has too much technical debt, too little mechanism for contributing, that this is a barrier to entry, and that at a certain point breaking things and then fixing the important bits while improving the underlying organization, is necessary to maintain forward progress.

      Time will tell. The original vi was written by Bill Joy, and is still available as traditional vi. Bram's reimplementation took over because it was more freely available and more feature rich. If Tarruda proves to be a good BDFL, this might be the moment we look back on as the third big fork of vi.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
  9. Re:There's a reason people argue about vim and ema by SuperTechnoNerd · · Score: 0

    You know you can forward X11 over SSH right?
    So the answer is: anything you want, be it GUI or not.

  10. Have they talked to Bram first? by kthreadd · · Score: 1

    It's a pretty big step to just fork a major project like that. Have they actually talked to Bram and the other vim hackers first? I can only assume that if their ideas are sound that he would have no problem integrating them upstream.

    1. Re:Have they talked to Bram first? by aardvarkjoe · · Score: 1

      Apparently Bram has already said that he thinks it's a bad idea.

      A lot of the proposed changes are apparently to remove support for "obsolete" systems and configurations. It's really doubtful that it would ever be merged into the main vim codebase.

      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    2. Re:Have they talked to Bram first? by kthreadd · · Score: 1

      I see. Well, it's going to be interesting to see what comes out of it.

    3. Re:Have they talked to Bram first? by jjohnson · · Score: 1

      It's worth observing that Bram's vim started as an early 90s reimplementation of vi, which at the time was stuck in legal limbo due to its BSD origins. Vim eventually became the vi of choice for linux distributions, and was lifted by that rising tide to become what everyone now thinks of as vi. The vi that is considered a direct dependent of the original version written by Bill Joy is called "traditional vi".

      If in five years, vi is typically a symlink to nvim instead of vim, I will be totally unsurprised.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
  11. DON'T DO IT! by ToasterTester · · Score: 0

    vi and vim have been around for decades becasue they fullfil a need of a text editor that can be found on every Unix box you might have to work on. They have a command set most know enough to use even if they prefer other editors. It has enough features to use as an development editor and most important there are tons of other editors to choose from.

    Don't screw with vim you want to make you idea of a better vim fine just leave the original alone!!!!

    1. Re:DON'T DO IT! by jjohnson · · Score: 1

      Leaving the original alone is what tarruda is doing. Do you not understand how forks work?

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    2. Re:DON'T DO IT! by Anonymous Coward · · Score: 0

      vi and vim have been around for decades becasue they fullfil a need of a text editor that can be found on every Unix box you might have to work on.

      Vi can very often be found, but Vim does not usually come preinstalled.

    3. Re:DON'T DO IT! by Anonymous Coward · · Score: 0

      vi and vim are dead

  12. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 1

    The other day I was tasked with uploading a shell script displayed on a web page to an embedded device running Linux. For reasons unknown the only editor installed was on the device Vim. Instead of learning how to copy/paste in Vim, it was faster to use Nano on my local computer to copy the script into, and then SCP the saved file to the embedded device.

    I think there's something to be said for simple editors.

  13. Re:There's a reason people argue about vim and ema by wjcofkc · · Score: 1

    I care for neither Vim nor Emacs. But only because they are overly powerful for my meager scripting needs. Basically, Vim's complexity actually slows me down. However, having taken the time to actually learn Vim, I fully appreciate why it is loved by more hardcore programmers and why it increases their productivity. The complexity of coding in Vala or Objective C, etc... is a match for the complexity of VIM - so to speak. I have yet to grow a beard long enough to try out EMACS.

    --
    Brought to you by Carl's Junior.
  14. Re:There's a reason people argue about vim and ema by beelsebob · · Score: 1

    You know you can just mount the file system of the remote host by sshfs, right?

  15. Re: There's a reason people argue about vim and em by Anonymous Coward · · Score: 0

    I'll have you know that vi was written in 1976, mister.

  16. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 1

    The other day I was tasked with uploading a shell script displayed on a web page to an embedded device running Linux. For reasons unknown the only editor installed was on the device Vim.

    Because, at the end of the day, you can compile Vim with only core vi commands and features so the resulting executable is tiny and usable on an embedded device with limited resources.

    I'd fire anyone that installed Nano (or, heaven forbid, Emacs) on an embedded device.

  17. Re:There's a reason people argue about vim and ema by Antique+Geekmeister · · Score: 2

    It doesn't work as well as you might wish. X11 has, historically, not compressed well for remote graphical interactions. The problem is compounded when running X sessions over a VPN to a remote environment, and using the graphical environment hosted inside the GUI to the virtual machine manager.

    I've found vim very useful when memory or resource squeezed. Emacs's tendency to leave temporary scattered copies of large edited files is particularly dangerous when trying to salvage database backups on a cramped partition. But the tendency of vi users to confuse their personal display settings for indentation with the actual text in the files they edit has caused enormous problems. This especially happens they submit code following indentations standards that exist only in the .vimrc somebody has been mailing around for the last six years, and which no other group in the world uses, and then they complain when the authors of the original software regularize the whitespace on submitted patches.

  18. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    pico

  19. Re:There's a reason people argue about vim and ema by smittyoneeach · · Score: 1

    Sure, but, if you're really packin' the gear, you know that:
    -- Real men leave their Xs in Texas, and
    -- X11 is a waste of admin bandwidth; command line or bust.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  20. Broken link by gentryx · · Score: 1, Funny

    You can download the successor to vim here. FTFY.

    --
    Computer simulation made easy -- LibGeoDecomp
    1. Re:Broken link by koinu · · Score: 2

      Well, there is no successor to vim without saying that it sucks.

    2. Re:Broken link by Anonymous Coward · · Score: 0

      I think you got that one wrong. EMACS is in far greater need of a modern, relevant successor than VIM is.

      VIM has its niche and is firmly entrenched as the goto-tool of sysadmins and developers of integrated systems.

      EMACS OTOH is increasingly getting replaced by all kinds of IDE's and what not. The number of new users are dwindling, it has no future.

    3. Re:Broken link by gentryx · · Score: 1

      EMACS OTOH is increasingly getting replaced by all kinds of IDE's and what not. The number of new users are dwindling, it has no future.

      *citation needed

      --
      Computer simulation made easy -- LibGeoDecomp
    4. Re:Broken link by Anonymous Coward · · Score: 0

      Sorry, no can do: pressing Escape-Meta-Alt-Control-Shift simultaneously gives me carpel tunnel syndrome.

    5. Re:Broken link by gentryx · · Score: 1

      I hope you refer to the carpal tunnel syndrome, b/c a carpel tunnel is definitely something I'd rather not have in my body.

      --
      Computer simulation made easy -- LibGeoDecomp
  21. Re:There's a reason people argue about vim and ema by EvolutionInAction · · Score: 3, Informative

    It's pretty obvious that you've never had to debug deployed embedded systems. This isn't ancient history buddy, it's something I have to do regularly. Certain fields have requirements that just aren't going to go away.

  22. Never understood the modes by jones_supa · · Score: 0

    Vim is nice and I actually use it for programming, but jumping between the command mode, insert mode and visual mode still slows me down a lot. Why can't we just be in insert mode constantly and use Ctrl+something for all the commands? Also use Shift+arrows to select text?

    1. Re:Never understood the modes by chispito · · Score: 3, Insightful
      If you don't care for the modes, why do you still use VIM? I'm sure there are better suited editors to your preferences.

      Vim is nice and I actually use it for programming, but jumping between the command mode, insert mode and visual mode still slows me down a lot. Why can't we just be in insert mode constantly and use Ctrl+something for all the commands? Also use Shift+arrows to select text?

      --
      The Daddy casts sleep on the Baby. The Baby resists!
    2. Re:Never understood the modes by zippthorne · · Score: 5, Interesting

      Vim isn't about typing. It's about manipulating text. Some of which involves typing and that's why it has insert mode, but a lot of it is about finding your place in a document or moving one block of text from one area to another area, or changing all of something into something else according to a pattern, and you can do all of this without taking your hands off of the keyboard.

      Why, oh WHY, do those #?@! nutheads use vi? makes a pretty reasonable argument.

      --
      Can you be Even More Awesome?!
    3. Re:Never understood the modes by jones_supa · · Score: 1

      Not necessarily.

    4. Re:Never understood the modes by fisted · · Score: 1

      because then we arrive at emacs with its retarded hard-to-type and strain-inducing keychords, like Escape Meta Alt Control Shift

    5. Re:Never understood the modes by RabidReindeer · · Score: 2

      Vim is nice and I actually use it for programming, but jumping between the command mode, insert mode and visual mode still slows me down a lot. Why can't we just be in insert mode constantly and use Ctrl+something for all the commands? Also use Shift+arrows to select text?

      Vi was originally designed to run over a very slow modem - say 300 baud over a device with minimal keyboard (no arrow/cursor keys).

      Once an editor gains a certain degree of power, you run out of Ctrl+ keys.

      My gripe with the vi approach is that it assumes that commands are the rule and text entry is the exception. Most other editors - including the ones I grew up with - are of the opposite point of view.

    6. Re:Never understood the modes by Anonymous Coward · · Score: 0

      If you think that vim would be faster by using the control or arrow keys, you're doing it wrong. I know that sounds like a glib throwaway line, but it's true: you're doing it wrong. The idea with vim is that you keep your hands on the keyboard in the natural typing position as much as possible - not reaching for the control or arrow keys.

    7. Re:Never understood the modes by jones_supa · · Score: 1

      Interesting article, have to read that one.

    8. Re:Never understood the modes by fisted · · Score: 1

      Oh and for the record, you shouldn't frequently "jump between modes".

      The general idea is that you stay in Normal Mode (what you called 'command mode'). Insert mode is only ever entered temporarily, for short bursts of input; the (or Ctrl+[, as you seem to like keychords) to go back to Normal Mode should become second nature. You should never have to ask yourself "What mode am I in, right now?".

      Visual mode, OTOH, is rarely a mode to switch to (one exception would be the rectangle-select (Ctrl+Shift+V)). If you frequently need it, chances are you are simply missing some canonical way of doing whatever you attempt to do in visual mode.

    9. Re:Never understood the modes by fisted · · Score: 1

      the (or Ctrl+[, as you seem to like keychords) to [...]

      the <Esc> (or Ctrl+[, as you seem to like keychords) to [...]

      FTFM

    10. Re:Never understood the modes by jjohnson · · Score: 1

      You're doing it wrong... as I was, until someone pointed out that command mode is normal mode. You don't sit in insert mode and jump to command mode, you sit in command mode, manipulating text and moving around, switch into insert mode to add text, and then immediately switch back to command.

      Once you get used to doing that, vim suddenly makes a ton more sense, and you start using the keystroke combos to do things much more quickly than before. And the secret to jumping easily from insert to command mode is to add

      inoremap jj <ESC>

      to your .vimrc. Hit jj quickly when you're done typing, and you're back to normal mode

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    11. Re:Never understood the modes by Waffle+Iron · · Score: 1

      Why can't we just be in insert mode constantly and use Ctrl+something for all the commands? Also use Shift+arrows to select text?

      If you have any issues with RSI, then vim is by far the best editor (especially the GUI mode version).

      The command mode allows you to formulate in your mind what you want to do, and accomplish it in the minimum possible key strokes. This is important because your brain won't wear out like your joints and tendons can. The command mode usually allows you to specify repeat counts to avoid repeatedly mashing keys. It lets you make common text selections such as words, nested brackets, statements, etc with a couple of key strokes. It also allows you to create macros on the fly and repeat previous commands further cut down on repetition.

      I find that reaching for the arrow keys puts my wrists at an awkward angle which induces more stress. Having to pound on them repeatedly while holding down various combinations of control keys makes things worse. (To address a common complaint with vim, I've added a mapping of Alt+F to ESC, so I don't have to reach up for that key if I don't want to.)

      I probably spend more time in command mode than insert mode when I'm using vim to write code. That says to me that keeping an editor always stuck in insert mode may not be the best idea.

    12. Re:Never understood the modes by jones_supa · · Score: 1

      I probably spend more time in command mode than insert mode when I'm using vim to write code. That says to me that keeping an editor always stuck in insert mode may not be the best idea.

      It's not that bad idea. After all, insert mode is where most of the actual code writing happens.

    13. Re:Never understood the modes by Waffle+Iron · · Score: 1

      Not really. Most code is highly repetitive, and I typically copy far more words than I type out. I use various shortcuts to create most of the common syntax constructs of the languages that I use.

      Moreover, developing software is usually an iterative process, where more effort is spent on revising the code than on entering it.

      My whole point was that normal mode is far more powerful than insert mode, and it allows you to accomplish many tasks with a small fraction of the typing you would need with only insert mode.

    14. Re:Never understood the modes by dubbayu_d_40 · · Score: 1

      Yes, this.

    15. Re:Never understood the modes by fph+il+quozientatore · · Score: 1

      The "natural typing position" should be JKL;, not HJKL. That's why all keyboards have a tactile hint on the F and J keys. This is even more relevant for a programmer, who uses lots of symbol keys from the right part of the keyboard.

      --
      My first program:

      Hell Segmentation fault

    16. Re:Never understood the modes by oldhack · · Score: 1

      You don't know how to use vi(m) then.

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    17. Re:Never understood the modes by DarkOx · · Score: 1

      You can switch to Joe's Own Editor: Joe 3.7

      --
      Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
    18. Re:Never understood the modes by innocent_white_lamb · · Score: 1

      After many years of playing with computers, I have recently started learning to use vim, but one thing always drives me crazy.

      I have never figured out how to insert one single character at the current cursor position. Replacing one character is easy (r) but how do I insert one? Example: somthing. What's the easiest way to get the missing e into that word?

      --
      If you're a zombie and you know it, bite your friend!
    19. Re:Never understood the modes by MikeBabcock · · Score: 1

      That's called emacs. Go try it.

      The rest of us like knowing that when we're in insert mode, nothing we type will be interpreted as anything but data -- unless we hit ESC.

      --
      - Michael T. Babcock (Yes, I blog)
    20. Re:Never understood the modes by MikeBabcock · · Score: 1

      Personally speaking, hitting 'i', 'e', 'esc' isn't that hard. I'm much more likely in those cases to have run the text through spell check and fold with 'v' and '!'.

      --
      - Michael T. Babcock (Yes, I blog)
    21. Re:Never understood the modes by Anonymous Coward · · Score: 0

      Point cursor over 't' and press 'i' to enter insert mode, then type the letter 'e'.

    22. Re:Never understood the modes by jones_supa · · Score: 1

      That's called emacs. Go try it.

      I have tried Emacs but the multi-level commands made me nauseous.

      The rest of us like knowing that when we're in insert mode, nothing we type will be interpreted as anything but data

      What value is there knowing that? You're just typing text and letters appear on the screen.

    23. Re:Never understood the modes by BitZtream · · Score: 1

      That only makes sense in some bizarro world where your primary use of a text editor isn't adding text.

      I'm not sure what development you do, but I'm not really that good at cutting and pasting blocks of text to create entirely new works.

      I find it odd that you think its perfectly acceptable to spend most of your time in your editor not adding text, but rather fiddling with it and moving it around.

      I'm fairly certain that you're doing it wrong. The guy you're replying to may be as well, but if you spend more time in command mode than insert mode I just can't see that you're really getting that much done. Do you copy and paste individual letters or something?

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    24. Re:Never understood the modes by BitZtream · · Score: 1

      Not really. Most code is highly repetitive, and I typically copy far more words than I type out.

      You're doing it wrong, thats the problem.

      If you're continually copy and pasting code to reuse it, you are most certainly doing it epically wrong.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    25. Re:Never understood the modes by Anonymous Coward · · Score: 1

      Start using alt+... to escape insert mode instead of going all the way over to the escape key. This allows you to make small insert operations repeatedly with very little delay between them.

    26. Re:Never understood the modes by Anonymous Coward · · Score: 0

      To clarify, the alt prefix is pressed at basically the same time as your next movement operation, so it effectively doesn't take any added time to leave insert mode, negating the penalty of small insert operations.

    27. Re:Never understood the modes by jjohnson · · Score: 1

      If I'm entering a lot of text, then I'll stay in insert mode, typing away, backspacing to delete and tabbing to indent if auto-indent doesn't do it right. What you're missing is that most software development isn't about entering text. It's about reading existing code to understand the landscape, it's about refactoring code by moving chunks around or renaming things or adding comments here and there, it's about searching and finding, it's about structuring the code or grasping that structure. Unless you're the kind of prodigy who just starts typing and then stops when it's done perfectly the first time, then you're likely doing it too, you're just using the mouse a lot or hitting the cursor keys way more than you have to.

      I'm fairly certain that you're doing it wrong.

      If the quality of your code matches the quality of your insights here, I feel bad for your employer.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    28. Re:Never understood the modes by Waffle+Iron · · Score: 1

      I'm not copying and pasting. I'm using things like Ctrl-P to do code completion without having to type out the full name. Maybe I shouldn't have used the term "copy".

    29. Re:Never understood the modes by spongman · · Score: 1

      Why can't we just be in insert mode constantly and use Ctrl+something for all the commands

      CTRL-O is your friend.

    30. Re:Never understood the modes by gnu-sucks · · Score: 1

      This "natural typing position" thing has always bothered me.

      I tend to shift over to HJKL while editing code, and then shift back to JKL; when writing an email... I think I'd be faster if I could stick with just one.

      thoughts?

    31. Re:Never understood the modes by smallfries · · Score: 1

      Because most of the commands accept modifiers, e.g. 10dd to remove 10 lines of text, or }d to delete the rest of the paragraph. Because more complex commands are multiple keystrokes what you suggest would involve typing while holding down the ctrl key - it is easier to hit a key once to enter/exit the mode. For selecting text in vim you can do shift-v and then then select a text range with the cursor keys (or any other movement command).

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    32. Re:Never understood the modes by jones_supa · · Score: 1

      Because most of the commands accept modifiers, e.g. 10dd to remove 10 lines of text, or }d to delete the rest of the paragraph.

      All right, I think I've seen enough at this point. I'm leaving Vim-land right now and moving all my programming projects to Visual Studio 2013.

    33. Re:Never understood the modes by smallfries · · Score: 1

      Fear not, there is probably a wizard to do that for you.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    34. Re:Never understood the modes by fph+il+quozientatore · · Score: 1

      In my view, the fact that VI uses the wrong home keys (or at least, different home keys than all keyboard manufacturers and the rest of the world) is *bad*. It is a relic of ancient 1970s terminals that would better be changed.

      --
      My first program:

      Hell Segmentation fault

    35. Re:Never understood the modes by danxx · · Score: 1

      You can. It's call "easy" mode. Just add a "-y" option.

    36. Re:Never understood the modes by Anonymous Coward · · Score: 0

      I think it's mostly due to historical reasons. I am still used to mac/windows key bindings, and I use the ":behave mswin" command in my vim so I can shift selct text (though sometimes I am happy ":behave xterm" is there to manipulate text in more complex manners).

    37. Re:Never understood the modes by KozmoStevnNaut · · Score: 1

      A lot of non-US keyboards have the semicolon key in a different location. For instance, on my (Danish) keyboard, semicolon is typed using shift-comma.

      Bram chose HJKL because they're always on the same place on every standard keyboard, apart from Dvorak (but Dvorak sucks anyway).

      --
      Eat the rich.
    38. Re:Never understood the modes by digitect · · Score: 1

      You're looking for Cream for Vim.

      --
      There is no need to use a SlashDot sig for SEO...
  23. You know it's time to modernize a program by JoeyRox · · Score: 1

    When the primary forum for discussion of said program is still on usenet.

    1. Re:You know it's time to modernize a program by fisted · · Score: 1

      Please, discontinue your AOL.

    2. Re:You know it's time to modernize a program by Anonymous Coward · · Score: 0

      When the primary forum for discussion of said program is still on usenet.

      What about all those open source programs that still use those stupid mailing lists that have the primitive web interfaces that are difficult if not impossible to search?

  24. Full blown vim in a good IDE:one of my dreams by rabbin · · Score: 5, Interesting
    Vim has to be one of my favorite programs but I rarely use it for any "ambitious" coding project because it lacks critical features that an IDE provides (the plugins don't cover these gaps either). Right now I'm using Netbeans with the jVi plugin (provides a subset of common vim behavior) for c++ programming and it works well, but if an IDE plugin could simply embed instances of vim into the program itself and have it work seamlessly with the existing IDE features (e.g. advanced code understanding of inheritance hierarchies and type deduction) that would be the ideal. With this in mind, the following from the website sounds really promising:

    First class support for embedding

    Since Neovim will be provide the interface to interacting with text, any program will be able to tap into this potential and be able to include Neovim commands right in the application.

    1. Re: Full blown vim in a good IDE:one of my dreams by Radres · · Score: 1

      When I have some repetitive text I need to manipulate, I just copy-paste to vim, edit, and paste back into the IDE. Otherwise, I'm coding in the IDE. It's great.

    2. Re:Full blown vim in a good IDE:one of my dreams by BlackPignouf · · Score: 1

      Yes, but it would also have to be fast.
      When I use Eclipse, Netbeans or Rubymine, I'm both impressed by the IDE features and angry at how sluggish simple operations are in comparison to vim.
      I always fall back to vim.

    3. Re:Full blown vim in a good IDE:one of my dreams by caseih · · Score: 1

      While Sublime isn't quite a full-blown IDE, this integration with Vim might be closer to what you are talking about:

      https://github.com/lunixbochs/...

    4. Re:Full blown vim in a good IDE:one of my dreams by Anonymous Coward · · Score: 0

      Yes, this right here. I write code for both Windows and *Nixes, and I have yet to find something that gives me what I want; It's all comprimising in one way or another.

      On the other hand, I've never really spent the time to figure out WHAT a vim IDE would look like. What, specifically, would make it so? Some things can be done - strangely - but done none-the-less (for example, project's list of files - use tabs in GUI for projects, and keep open buffers in each tab that is project specific - ugh, but possible).

      I also think the poster above is right on about the vim scripting language. It reminds me of what people bitch about when learning C, coming from basic or pascal or the like. So many strange operators and rules, and remembering them all is very hard at first. I don't write vim scripts very often, and its hard to get it right when there is 18 months between doing it. Fixing this would be incredible, but, alas, again I don't know what it would be like, specifically (i.e. how to fix vimscript, or replace it ... and don't suggest the python version - it's only calling functions in vim to execute vim/ex commands, which is basically useless for me).

    5. Re:Full blown vim in a good IDE:one of my dreams by rnstech · · Score: 1

      (the above was my comment ... login cookie was lost evidently.)

  25. Great. Why? by Anonymous Coward · · Score: 0

    Vi and it's many variants over the years have been my primary editor of choice for over 20 years (let's not talk about Unix editors before then; let's simply call that time "the dark ages"...). I like it because it's simple and it works. I appreciate more recent features like syntax highlighting to let me know where I missed something in my code. But I think vi has been extended about as far as it can, without becoming Emacs.

    If someone wants to clean up Bram's codebase because the cobwebs make it difficult to maintain - great, fine, I can appreciate that. But "modernizing" vi to bring it to the "next generation" of users is a fool's folly because the environment vi thrives in is not even on the radar screen of current CS/CE/IT students - the "next generation" of potential users.

    Like the lovely idiom says: If it ain't broke, don't fix it!

  26. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    I got bit on this. I use Emacs for various source code, because my hands know it, and it does indentation correctly, and I prefer its indentation standards for well known text types such as C and bash and perl. It also has hooks into certain source control systems, like CVS and RCS, to handle locking and unlocking.

    Enter the new job, and a new manager, who would review work I was doing before I did commits to critical environments. He would open the files with "vim -R". I would do the work, we'd agree on it, I would save my work, then *he would quit vim and it would overwrite my saved work*. Worse, he would quit vim and it would overwrite the local copy of my *source control committed file*. Vim is not a pager! It is an editor, and this is broken behavior!!!! You *NEVER NEVER, NEVER* allow something in "read-only" mode to overwrite the original file unannounced!!! NO! BAD TOOL! DO NOT USE!!!!

    Fortunately, I was able to show the source control history and that I'd saved the correct work. But *man*, that screwed things up repeatedly. Editors should *never* overwrite the original source file without being told explicitly to do so. NEVER, NEVER, NEVER!!!!!!

  27. sdsdsdfsdfasdf by Anonymous Coward · · Score: 0

    I don't want vim to have a GUI, I don't care about plugins, and as far as I'm concerned -- there's absolutely ZERO reason to change its code base one iota.

    Some things, are simple 'done'. Completed. They do not need to be worked on, or enhanced. They merely need updates to keep up with code changes in support libraries/etc, and bug fixes.

    No new features!

    Hell, context highlighting alone is the most annoying thing recently...

    1. Re:sdsdsdfsdfasdf by kthreadd · · Score: 1

      Vim has had a GUI for quite some time now, since 4.0 or so. It's called gVim and it's actually good.

  28. improve the scripting language by stenvar · · Score: 1

    I think instead of rewriting the C part, they should improve Vim's scripting language to the point where it can be used for moving larger portions of the editor into it. Vim script is a decent effort, but it feels a bit cumbersome and non-standard. I think they'd be better off with something that more widely used and possibly JIT compiled.

    1. Re:improve the scripting language by Anonymous Coward · · Score: 0

      Actually, the plan is to compiler VimScript to Lua so that backwards compatibility is maintained, and that new plugins will be written in any language that we can make a plugin container for. Lua is guaranteed to be present though.

      Neovim will embed the LuaJIT interpreter/jit, which is widely known to be the crown jewel of script interpreters when it comes to raw speed. Lua is a beautifully simple language as well (eye of the beholder, but still...).

      The efforts for a VimScript to Lua translator are already well underway: https://github.com/ZyX-I/neovim/tree/luaviml

      The Neovim codebase is already much cleaner than legacy vim in many respects. It also uses continuous integration, many warnings and the LLVM sanitizers to detect memory leaks and undefined behaviour earlier. I have high hopes for this project, it's got great momentum.

    2. Re:improve the scripting language by Anonymous Coward · · Score: 0

      I think the neovim developer is doing just that - Vim script will be replaced by Lua (run through LuaJIT), and the user interfaces will be implemented in Lua, using bindings to curses and QT. Existing Vim script plugins will continue to work because there will be a method to transpile Vim script into Lua code before they run in neovim.

  29. Re: There's a reason people argue about vim and em by loufoque · · Score: 1

    You should automatically check for tabs and refuse any commit that uses them.

  30. Re:There's a reason people argue about vim and ema by Marginal+Coward · · Score: 1

    There's a reason people argue about vim and emacs...

    Vim: Oh look, this isn't an argument.
    Emacs: Yes it is.
    Vim: No it isn't. It's just contradiction.
    Emacs: No it isn't.
    Vim: An argument is a connected series of statements intended to establish a proposition.
    Emacs: No it isn't. Not if it's written in Lisp.

  31. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    Use an IDE locally and ship the product to the remote host. It isn't 1972 anymore.

    But I'm a sysadmin and need to adjust config on the host because the developers keep making the same mistakes that were made back in 1972, and the QA department has questionable judgement on a Friday.

  32. Re:There's a reason people argue about vim and ema by Marginal+Coward · · Score: 1

    This is precisely the reason I learned Vim: it's installed on every Linux system and it works well over SSH. It's great for the small amount of remote administration I do on my shared web hosting account.

  33. Re:There's a reason people argue about vim and ema by Waffle+Iron · · Score: 5, Informative

    I tried your scenario.

    If play your boss and I exit with ':q', no problem. Your version is still there.
    If I exit with ':wq', vim says: "E45: 'readonly' option is set (add ! to override)"
    If I exit with ':wq!', vim says: "WARNING: The file has been changed since reading it!!!
    Do you really want to write to it (y/n)?"

    So I conclude that one of the following is likely the case:
    a) your boss is was an idiot who would ignore a message ending with three exclamation points
    b) you boss installed a bizarre custom vim config file that somehow allowed silent overwrites of modified files from readonly mode
    c) your story is a fabricated troll

  34. Just saying by Anonymous Coward · · Score: 0

    In my days kids did this for free.

  35. Get off my lawn by Anonymous Coward · · Score: 0

    I chose not to support you cause you mentioned what the fox said on your web page. Get off my lawn you whippersnappers!

  36. The plan by Anonymous Coward · · Score: 0

    The plan is to compile VimScript to Lua so that backwards compatibility is maintained, and that new plugins will be written in any language that we can make a plugin container for. Lua is guaranteed to be present though.

    Neovim will embed the LuaJIT interpreter/jit, which is widely known to be the crown jewel of script interpreters when it comes to raw speed. It helps that Lua is a beautifully simple language as well (eye of the beholder, but still...).

    The efforts for a VimScript to Lua translator are already well underway: https://github.com/ZyX-I/neovim/tree/luaviml

    The Neovim codebase is already much cleaner than legacy vim in many respects. It also uses continuous integration, many warnings and the LLVM sanitizers to detect memory leaks and undefined behaviour as early as possible. I have high hopes for this project, it's got great momentum. If you have a smidgeon of free time, please contribute, the project is very open. In this respect I can liken it to mpv, which has taken mplayer and accelerated its development 100x (exaggeration, but still).

  37. Re: There's a reason people argue about vim and em by Anonymous Coward · · Score: 0

    That's a quite simple question, I'll use KWrite or Kate. Locally of course, opening the remote file with the fish: kio slave. Same way as ever for the last decade, it's not even new tech. So why insist on stone age workflow:-)

  38. Viper-mode by tepples · · Score: 2

    The editor that comes with Emacs is called Viper. Have you tried it?

  39. A fork of vim? by peppepz · · Score: 1

    Does this classify as heresy or as a schism?

  40. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    I bet his boss used ZZ to exit all the time. It's the vi lazy way to save and exit, no questions asked.

  41. Re:There's a reason people argue about vim and ema by Culture20 · · Score: 1

    It's not on gentoo. Annoyed the hell out of me when I did a gentoo install from the ground up; had to edit everything with nano.

  42. Pico by tepples · · Score: 1

    I'd fire anyone that installed Nano (or, heaven forbid, Emacs) on an embedded device.

    That's unfortunate for me because I prefer Nano. But I understand that the GNU project has made a design choice to optimize for functionality and maintainability on PCs, not necessarily the smallest devices. How small is such an "embedded device"? And is Pico (Alpine Composer), the editor on whose user interface Nano was based, likewise too big?

    1. Re:Pico by gnu-sucks · · Score: 1

      There is another aspect to this that many here are forgetting.

      pico/nano have more stringent terminal support required for their fancy controls. Specifically, arrow keys. If you have ever had to jump down to the world of serial terminals, you know that such keys are not always mapped out properly the first time. I have been in this situation (recovering an SGI box on a serial line using an IBM dumb terminal), and it is indeed what prompted me to learn vi in the first place. All I need is an escape key. Navigation is handled with the standard alpha keys. So for an embedded device where there is likely not a traditional screen, and perhaps not always network support, having a good simple editor that doesn't require arrow keys has an advantage.

      Yes, I know termcap files can be fixed to correct these things, but that's not always the quickest option.

  43. Because it's smaller on embedded by tepples · · Score: 1

    If you don't care for the modes, why do you still use VIM?

    This anonymous poster claims that his employer mandates a stripped-down version of Vim because it's smaller than GNU Nano. This means it more comfortably fits into the memory of a small embedded system to which someone connects through an RS232 terminal.

  44. Re:There's a reason people argue about vim and ema by Waffle+Iron · · Score: 2

    I bet his boss used ZZ to exit all the time. It's the vi lazy way to save and exit, no questions asked.

    I tried that, too. It still won't let you write in readonly mode without warning you.

  45. Integration with modern graphical interfaces? by Anonymous Coward · · Score: 0

    That sounds like the Vatican considering how to best employ porn for spreading, uh, their message.

    We are still talking about a clone of vi, the editor turning into a clone of ed upon pressing Q or even : ?

  46. As a VIM lover ... by Anonymous Coward · · Score: 0

    This makes me sad. "Rebuilding VIM for the 21st century" is like rebuilding the hammer for the 21st century. It's a very basic tool and it does what it does extremely well. I'm not saying it's impossible to improve it; I'm saying I'll be skeptical until they demonstrate that something has fundamentally improved.

  47. Corners of the keyboard by tepples · · Score: 1

    How is Escape at the top left corner to enter single-key command mode any better than Control at the lower left corner or arrow keys at the lower right corner?

    1. Re:Corners of the keyboard by MikeBabcock · · Score: 1

      You don't hit ESC plus another character all the time, you just tap it and return to the home row.
      With Ctrl keys, you have to hold it and another character at the same time; that's completely different.

      --
      - Michael T. Babcock (Yes, I blog)
    2. Re:Corners of the keyboard by tepples · · Score: 1

      If you can't chord, then how do you make capital letters? What's so better about the pinky reach for Shift than for Ctrl?

  48. Re:Great. Why? by fph+il+quozientatore · · Score: 1

    I like it because it's simple and it works

    You keep using that word. Notepad is "simple". This is not. Powerful, yes. Simple, no.

    --
    My first program:

    Hell Segmentation fault

  49. Re: There's a reason people argue about vim and em by unrtst · · Score: 1

    You should/could also slap some mod lines at the start of your files. Ex:
    # ex: set tabstop=4 expandtab smarttab softtabstop=4 shiftwidth=4:
    # -*- Mode: tab-width: 4; indent-tabs-mode: nil; basic-offset: 4 -*- #

    You could also just run it through a tidy program and a site-specific config if you really want to be a formatting nazi.

  50. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    Meanwhile, all the young'ns are using IDEs anyway, and have only a vague idea what vim or emacs is, so they don't really care enough to argue about which is better.

    The IDE users have been on their way out for quite some time now. The young'ns are using TextMate, BBEdit, Sublime Text, Espresso, ...

  51. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    If you SSH to a remote host and want to use a powerful editor, what do you use?

    If I have an ssh port open, I type on my running copy of Emacs on my local system

    C-x C-f /username@hostname.net:filename.ext RET

    and Emacs will open an ssh session into the remote system and use it for transferring filename.ext between my local copy of Emacs and the remote file system. If I use M-x shell RET or M-x compiler RET in that buffer, Emacs will again employ ssh for executing the respective command on the embedded system.

    I don't even need to install an editor there in order to do my editing there with Emacs. And a perfectly customized version of Emacs, to boot.

  52. While I like the idea of a modernized vim by Kremmy · · Score: 1

    'Rebuilding Vim for the 21st Century' says it all. The problem with the 21st century from what I've seen, is this insistence that we must re-invent the ENTIRE wheel.
    I'm going to suggest that if you feel it's time to re-invent vim, that it target a universal platform. There's really only one - the web. You can use it on every platform. Using the project node-webkit, there's really no reason not to use HTML5 and Javascript to develop an honestly modern application. (The sarcasm is dwindling, I'm half serious.)
    I use vim myself, and generally stick to the basics of it because they allow me to edit very quickly. I don't really see the benefit of rewriting it, especially if you're going through so much trouble to retain compatibility with old plugins by compiling them to lua. Basically, you're setting yourselves up to run into the situation of having to re-implement vast portions of the PROBLEM you perceive with vim for that singular point.
    Point: Just use vim.
    The three things: Plugins, GUI, embedding
    New plugin architecture retaining compatibility - already covered.
    GUI - gvim's GUI has taught me just one thing over the years, that vim is not a GUI program. The GUI has the potential to make advanced functions more accessible, but re-implementing vim means you're starting without those functions in mind...
    Embedding - this is one area where my interest is piqued. Embedding vim into other applications could be more elegant, but then embedding applications into other applications has always been a little odd, and this is one of those cases where you can run into some serious platform issues. This might actually be a case where that web technologies idea could bring incredible flexibility to the table.

    Then there's always the option of using vim as an editor for the way it edits, and not getting caught up in the advanced functionality such as the GUI, and plugins, and embedding it as a plugin. Then we find a case where the entire effort is wasted, especially if it gets any of the details wrong in the basic functionality.

    1. Re:While I like the idea of a modernized vim by BitZtream · · Score: 1

      The problem is simply that vi/vim aren't meant for the 21st century and trying to shoehorn it in is a stupid idea.

      You're really inexperienced in the wide range of places vi ends up.

      vi as you know it, works the same on pretty much EVERY unix at this stage, including tiny tiny embedded ones. I heard a rumor of which I'm entirely sure was false that its even been on one of nasa's creations floating around off in the cosmos.

      You are not putting webkit on my raspberry pi, I want to see the text updated sometime today when I type, not next thursday when it spends the billion or so clock cycles required to render an update from my text input. Webkit, dynamically linked and compiled for optimized space ... is an order of magnitude larger than total storage space one of my favorite little linux boxes, my CNC controller.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    2. Re:While I like the idea of a modernized vim by Kremmy · · Score: 1

      I love the wide range of places that vi has ended up... I feel like we really need to go retrograde to have honest software innovation at this point, I like the idea of using a modern web browser to re-implement something like MobaXterm (it's a slick cyg/mingw terminal emulator package for Windows) and then using classical foundation technologies as the classical foundation on all these devices. The old unix philosophy of having the utilities do what they do well combined with the technology to put a shiny and solid interface on it.

      But, even on my triple GHz quad-core workstation with 8 gigs of RAM, I can feel the drag of so many layers of abstraction when I'm playing with these web technologies that I suggested. Native application performance is truly unmatched and it doesn't have anything to do with how well put together these web applications are, the sandboxes just have too much baggage even with all the JIT tricks they're trying to pull these days.

    3. Re:While I like the idea of a modernized vim by Wootery · · Score: 1

      Just so long as no-one ports KDE to JavaScript. That really would be going too far.

  53. I already completely refactored vim by Anonymous Coward · · Score: 0

    alias vim emacs

  54. i will gladly use neovim by FudRucker · · Score: 1

    i quit using vim because the god damn Ugandan orphan spam in my face every time i opened it, if i see that in neovim i will not use it either,

    --
    Politics is Treachery, Religion is Brainwashing
    1. Re:i will gladly use neovim by Anonymous Coward · · Score: 0

      Try https://sites.google.com/a/bostic.com/keithbostic/vi -

      Personally, if I wanted a big,graphical unixy editor, I'd just use emacs, and if I wanted vi bindings, I'd use vile.. which is why 'vim' makes no sense to me -
      I prefer the original (or as close as we can git these days)

    2. Re:i will gladly use neovim by stasike · · Score: 1

      put the line :set shortmess+=I at the beginning or your vimrc file. Problem solved.

  55. As long as it passes VSC5, I don't care. by tlambert · · Score: 1

    As long as it passes VSC5, I don't care.

    They could put antlers on the thing, as long as it continues to pass the POSIX conformance test suite Validation Suite for Commands version 5, it doesn't matter, my medulla will be able to still type the commands to operate it while I'm up in my cerebral cortex thinking about higher level problems than "will typing this command too many times give me carpal tunnel syndrome like RMS has from emacs use?" or "how an I get a graduate student to take dictation into an editor for me, rather than aggravating my carpal tunnel syndrome acquired from emacs use?".

  56. To fix vi by BitZtream · · Score: 1

    You would have to break all the things that cause people to use it ... and then its not going to work the same on EVERY unix machine on the planet. vi's strength lies in the fact that as crappy as it is, its consistently crappy, the same way (vi feature set) across all machines, even the crappiest tiny embedded linux distro, to full server and desktops. I don't have to wonder what editor I'm going to have to find and use nor how it works.

    Stop fucking with vi.

    If you want a non-shitty editor, stop using a shitty editor thats meant to be tiny and 'get the job done', its like you guys think notepad (I know vim is not anywhere near the same class as notepad) is actually a GREAT DEVELOPMENT TOOL.

    I'm sorry, and I know half of slashdot is about to asplode at my comment, but if you think vi/vim is a good editor choice, your choice in editors is fucking retarded and you need it beaten out of you. And yes, I know some of your biggest celebraties use vim with pride and brag about it ... and the other half eats their own toe jam in public. Think about it. Not everything these developers do is a good idea, even if they are remarkable and prolific developers.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  57. Re:There's a reason people argue about vim and ema by MikeBabcock · · Score: 1

    As much as I love forwarded X11 apps, its rarely efficient over moderate to slow links. I can't justify using over 1Mbit of uplink traffic just to use my editor over the wire when even a VNC session is more efficient.

    FYI, I've often run vncserver on a remote machine, forwarded 5900 over my SSH session and then viewed it locally to launch X11 apps. This has the advantage of not killing the apps if the link goes down. It saddens me a lot that X11 isn't as powerful or useful in these scenarios as VNC.

    --
    - Michael T. Babcock (Yes, I blog)
  58. Re:There's a reason people argue about vim and ema by MikeBabcock · · Score: 1

    I love VIM because I can guide a user remotely through exactly what to type and know exactly what response they'll get without depending on them to click on the right button or highlight the correct piece of text.

    Ever edited /etc/ppp/chat-secrets with an accountant over the phone blind?

    --
    - Michael T. Babcock (Yes, I blog)
  59. The main problem with vi/vim/etc by Anonymous Coward · · Score: 0

    The editors vi/vim are brilliant - regardless of whether my keyboard has a CTRL key or whether I have a high bandwidth connection, it permits me to do a halfway efficient editing job.

    However it has a problem. It's not that there's a command mode and an edit mode. The main problem with vi/vim is that it gives you NO VISUAL CLUES.
    You cannot use it without memorizing half the manual, and even then, years after I've started using it, I still see people use shortcuts and features that I wasn't familiar with.

    Point being: https://xkcd.com/1343/

  60. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    Java on a embedded device
    http://www.drdobbs.com/jvm/its-a-java-embedded-world/240005983

  61. Re:Great. Why? by Anonymous Coward · · Score: 0

    Evolution:
    Vi -> Vim -> NeoVim

    Analogy:
    Asm -> C -> C++

  62. Re:There's a reason people argue about vim and ema by BitZtream · · Score: 5, Funny

    My previous employer did work in CICS for years, he's well out of the development game now and a 'serial startup guy' as he likes to call himself.

    He KNOWS how to code, or at least, once did, I've heard from enough people that knew what he did at some large companies and validate his skills.

    He will straight up ignore every fucking popup window that gets in front of him and just next -> next -> next -> finish through (windows user now) everything, or click whatever button seems most obvious on the popup ... never reads anything.

    We had a 'bug' in the installer I wrote. He and another 'old dude' who used to be on the xml standards committees (again, this guy has clout in technical circles of yester year). The bug was that it would reboot your machine, without asking you, during install if you had Outlook open and it would close ALL of your apps without prompting for saving or anything else ... (it was an outlook plugin, easier to not install with Outlook open than to tell people they need to restart outlook for reasons that will become clear shortly).

    So after explaining that I never could get that to happen to me in my environment (was working out of the country at the time, getting to stand next to them and watch them wasn't happening and for some reason I can't recall, vmc wasn't really an option either) I finally got back to the office where I could watch the process, where I was waiting to see how my NSIS installer was magically making things like Excel and Word close without saving files ...

    BOTH of them, got to the point where a popup came up and said 'Outlook is open, close outlook to continue ' and they'd just click next ... at which point the installer says, Outlook is still running ... a reboot is required to complete this installation, do you want to reboot now?' and they click next so fast I couldn't even stop them.

    Better still ... when Excel started asking them if they wanted to save ... ON THOSE DIALOGS they fucking clicked NO, so fast I couldn't even say 'whoa, wait a second' their machine was already rebooting ... after they clicked AT LEAST 4 boxes from different applications trying to slow them down and prevent the mistake.

    The bug, was a PEBKAC bug with a bit of ID10-T thrown on top. I had to physically remove the mouse from one of their hands and run the installer myself to get them to actually read the message that they claimed they weren't seeing.

    Another related story. I'm an IT guy, I have all those same IT shitty users stories most of slashdot has :) My pet peeve (like many of us) is people who don't read the message, and my wife, who has known how much that pisses me off since at least 2001 when it became a bigger issue for stupid reasons at one job calls me up the other day from her new job.

    They sent her an email that she needed to change her password, they rotate on 90 days intervals. Its a university with some sort of identity management system in place that syncs all their systems and password changes are done via a website, fairly common setup for a university it seems though I don't know the specifics of the software involved yet.

    So she clicks the link, changes her password and then tries to go visit some research paper website they have internally for internal releases of research papers for internal review and discussion before submitting to more formal publications, so she gets there and it says something wrong with her login/password. It never asks for a login password, just says no. So my eyes, recognizing that kerberos and/or ntlm is in play here said to her 'look sweetie, I don't know your setup, but since its not prompting you for a password, I bet if you just logout and log back in, it'll work. (Windows 'auto-corrects' a lot of silly issues for kerberos stuff on login and of course reinitializes your authentication ticket at login so your

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  63. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    I'll just note that nobody I know of who runs servers enables X11 on them.

  64. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    This largely depends on things like coding standards in the shop, the language in use, etc. Tabs vs. spaces for indenting is largely a stalemate as well - those who use tabs point out that this allows each programmer to set tab width as desired, without messing with anyone else's visual preference. It also means that there is one character per indent. Of course mixing is bad, but the only language I can think of offhand where the use of tabs vs. spaces can be a real problem is Python.

  65. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    And some people type too much.....

  66. Press 'i' then e by Anonymous Coward · · Score: 0

    done

  67. Re:There's a reason people argue about vim and ema by Zero__Kelvin · · Score: 1

    You know lots of Linux/Unix/*BSD systems don't have an X server, right? (Actually the majority of them don't)

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  68. Re:There's a reason people argue about vim and ema by Zero__Kelvin · · Score: 1

    You know that most Linux systems don't support sshfs, because they don't have and SFTP server, right?

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  69. Re:There's a reason people argue about vim and ema by Zero__Kelvin · · Score: 1

    I'm vimemacsidextrous you insensitive clod!

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  70. Re:There's a reason people argue about vim and ema by rvw · · Score: 2

    Your scenarios are way too complicated. It's simple as this: the boss didn't open the files in readonly mode.

  71. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    The other day I was tasked with uploading a shell script displayed on a web page to an embedded device running Linux. For reasons unknown the only editor installed was on the device Vim. Instead of learning how to copy/paste in Vim, it was faster to use Nano on my local computer to copy the script into, and then SCP the saved file to the embedded device.

    I think there's something to be said for simple editors.

    At this point, I drag up the story of the Sun workstation where the prat given root access couldn't handle vi, so to add a user account he ftp'ed the password file to his PC, edited in Word, saved it, ftp'ed it back up, moved it into position, and voila! locked everyone out of the machine.
    Yes, boys and girls, Solaris might have been clever, but reading Word document formatted password files wasn't one of its tricks... still, that incident kept me amused for a couple of weeks (and gave me the ammo to keep idiots like this away from root/admin passwords).

    people wonder why I got out of IT....simple answer, google The Marching Morons...

  72. Re:There's a reason people argue about vim and ema by gnupun · · Score: 2

    You're right, they both kinda suck UI wise and they carry over their 70s design decisions 40 years later. But in vim's defense, if you have a lot of commands to execute in command mode, there's very little finger effort (i.e. typing) required to execute a series of editing commands (dd, yy, p, etc). Doing the same in your typical IDE would require you to constantly hold down the ctrl, command, alt and/or shift keys while executing a command modelessly. This causes finger strain over time, not to mention it is slow. I don't think any other editor gives you cruise control like vim in command mode.

  73. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    ..Ever edited /etc/ppp/chat-secrets with an accountant over the phone blind?

    Umm, no, sounds like fun, ever tried dictating to someone how to make specific changes to a graphics file using xv over the phone(from another country, into the bargain)?
    It rather begs the question WTF was an accountant (of all the minions of satan) doing with admin rights on a unix/linux box, and, more importantly, how much did he charge you for doing the work?

  74. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    joe!
    (GDR...)

  75. There already is a better editor by Anonymous Coward · · Score: 0

    and it's called Notepad++ with support for something magical called a computer mouse.

  76. Will neovim address the elephants? by Anonymous Coward · · Score: 1

    There are two elephants in the room when it comes to vim that really need to be addressed:

    1. Its pattern or "regular expression" support. I'm talking about things like :%s/// for matching/replacing but it can be used in other places. I'll refer folks to the docs, which they should read (or if you just want to skim, go to the vim wiki link):

    http://vimdoc.sourceforge.net/htmldoc/pattern.html
    http://vimdoc.sourceforge.net/htmldoc/usr_27.html
    http://vim.wikia.com/wiki/Search_patterns

    Take a very, very close look at how parenthesis work under the section called Magic. It's completely inverted compared to every other expression/RE, even base system regex.

    Any vim user who has been using this functionality knows how painful it is; it can literally take you 20 full minutes to come up with a vim :%s line that does what you need, and most of the time the user ends up just shelling out to the CLI and using sed or perl or whatever else to do the replacement because of vim's awful pattern syntax.

    "21st century" (I hate this term) vim should just use PCRE and be done with it. I'm a KISS principle minimalist and don't like the idea of tying vim to another 3rd-party library, but I think this would be acceptable given PCRE's prevalence.

    2. Bram's absolutely horrible laziness when it comes to making actual releases. For those who don't follow vim regularly, you probably don't know of this problem, but its existed for years. Basically someone submits a patch to Bram, he approves it, and the patch gets made and dumped as a single patch/diff file in the patches directory:

    ftp://ftp.vim.org/pub/vim/patches/

    Take 2-3 minutes of your time and go to that directory and look around. For starters, look at the 7.3 directory and how many patches there were between 7.3 and 7.4. The answer? 1314 patches. Yes, over THIRTEEN HUNDRED patches before 7.4 was made. Now look at the 7.4 directory (7.4 is the current release of vim); there are already 211 patches.

    The problem is that Bram lets things sit in this condition for ages -- often YEARS -- before making a release. He needs to make releases more often. And in case you think I'm whining, I'm not: even Bram himself has admitted that "there's too many patches between releases":

    http://www.vim.org/news/news.php

    Quote:

    Work on Vim 7.4 has started

    [2013-05-17] 7.3 has more than 950 patches, that's too many!

    There's hilarity in the fact that he admitted this in May 2013, but didn't do anything about it for another 3 months (vim 7.4 came out August 2013), during which time nearly 400 patches were submit/accepted.

    Yet this problem continues on and on (cue Journey's Don't Stop Believing). The only person to blame for it is Bram. He should make an effort to actually roll a new release when he reaches an arbitrary number of patches -- say, 100 or 150. 1300+ is literally insane, because by the time someone upgrades from 7.3 to 7.4, and finds something broken, there are _1300+ patches_ to go through to figure out the regression. It's not manageable, and I'm sure he knows it. So he should step up to the plate and stop playing with drills.

    1. Re:Will neovim address the elephants? by stasike · · Score: 1

      I think that going to PCRE would be a step back. RE implementation of RE is superior to that. It even has much better documentation of RE functionality

  77. Re:There's a reason people argue about vim and ema by DarwinSurvivor · · Score: 1

    OpenSSH comes with an sftp server and enables it by default (only through the SSH tunnel of course). Very few admins actually turn it off.

  78. Re:There's a reason people argue about vim and ema by Zero__Kelvin · · Score: 1

    I stand corrected. Thank you for pointing that out, as I was completely unaware of this, but it does indeed turn out to be true!

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  79. those who don't... by gfaraway-2 · · Score: 1

    those who don't understand vim are condemned to re code it

  80. yet 100% incorrect by raymorris · · Score: 1

    That may be the most incorrect xkcd.
    Self-explanatory tools (knowledge in the world) is great for a newbie doing a one-time task. Four minutes hunting through menus is better than 10 minutes hunting through the manual.

    For routine tasks or experts, two seconds typing "find . -atime -1" is much, much better. For tasks you do regularly, you want knowledge in the head. For rarely performed tasks, you want knowledge in the world.

  81. Re: There's a reason people argue about vim and em by Antique+Geekmeister · · Score: 1

    What you've described is, I'm afraid, the technical approach to what is a workflow problem, not a technical problem.

    Yes. I can clean up after the fact, with every single source file my team uses, re-indent all of them, and institute my particular site's arbitrary white space coding standard on every open source project or shared development project I work with, and mandate that they all use "vim" even in their Macintosh and Windows development environments. I can also completely break the revision history when I reset the history by general whitespace changes across every single file that uses a non-standard indentation format. I can also break, and manually resolve the problems with configuration tools that edited those files for deployment based on particular text, including the whitespace.

    Now please pay my contracting rates or salary rates to resolve the disputes in every project I work with about whose coding standard we should follow, and which editor settings we'll enforce in every development environment, and the time getting such wholesale document changes through code review. I'm afraid it adds up very, very quickly to a lot of wasted resources.

  82. Re: There's a reason people argue about vim and em by johnsnails · · Score: 1

    I'm trying to read this in church. Stop making me laugh.

  83. Re:There's a reason people argue about vim and ema by MrKaos · · Score: 1

    Good, so you agree with me then, that pouring money into trying to update vim is pointless, and just polishing a turd.

    No. What it will mean is that of a whole lot of people who don't use IDEs because it doesn't allow them to use vim properly (yes I have tried the vim plugins to IDEs), will be able to access the benefits of an IDE without feeling like they have been suddenly lobotomized by it.

    --
    My ism, it's full of beliefs.
  84. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    Use an IDE locally and ship the product to the remote host. It isn't 1972 anymore.

    ....aahhhh, so little knowledge for such a big mouth...

  85. Re:There's a reason people argue about vim and ema by MrKaos · · Score: 1

    As much as I love forwarded X11 apps, its rarely efficient over moderate to slow links. I can't justify using over 1Mbit of uplink traffic just to use my editor over the wire when even a VNC session is more efficient.

    FYI, I've often run vncserver on a remote machine, forwarded 5900 over my SSH session and then viewed it locally to launch X11 apps. This has the advantage of not killing the apps if the link goes down. It saddens me a lot that X11 isn't as powerful or useful in these scenarios as VNC.

    I've noted on these links that when I use vim over the wire (so to speak) that the noise is so bad that it actually inserts characters into the session, which I thought that TCP/IP would make impossible however, sometimes, it still happens. When it happens I scp the files I need, edit locally and then scp them back.

    Having said that do you compress the ssh session that you -X? or is it the latency of the gui response that you are talking about?

    --
    My ism, it's full of beliefs.
  86. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    I'll just note that nobody I know of who runs servers enables X11 on them.

    You must be new here.

  87. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    The worst is the gpg plugin for editing encrypted files in vim. You hit ":wq" and fudge up the password so you get an error "warning the file may be empty" then it quits. Now you have a 0 byte file which wiped out everything. What a stupid design, I have actually lost money due to that shit. This isn't vim's fault per se but it's still fucking broken.

    vim is still the best editor though

  88. Re:There's a reason people argue about vim and ema by thegarbz · · Score: 1

    False his scenarios are as simple as they can get given vim's behaviour.

    Regardless of what option you set at command line when you open a file, if that file changes before you exit you get the warning. It doesn't matter if the file was already open and you told vim you want to write to it, it doesn't matter if you were the first person to open the file in write mode.

    By the way the warning is white text on a bright red background, has three exclamation marks, has green text underneath it, and you need to answer yes or no. It's not an easy warning to miss.

  89. wtf? Clueless genius. by raymorris · · Score: 1

    You CAN run a GUI app over the internet and slowly, painfully peck out letters with latency reminiscent of a cheap 4800 baud modem because typing each letter requires generating and downloading an image of the application.

    Or you can work literally a thousand times faster by editing text in text mode.

    I'm shocked that anyone knowledgeable enough to know what X forwarding is could also be clueless enough to suggest it's a good way to edit text.

  90. grace and dignity on Slashdot by raymorris · · Score: 1

    I wish there were more posts like this on Slashdot ^H^H^H^H^H^H^H^H the internet.

  91. nah that's Emacs by raymorris · · Score: 1

    > you can compile Vim with only core vi commands

    You can compile Vim TO HAVE only core vi commands.
    You can compile Emacs WITH only core Emacs commands.

  92. vim = vi, improved. Same commands by raymorris · · Score: 1

    Vim means "vi, improved". Vim is great. Part of why it's great is because vim is a drop-in replacement (upgrade) for vi.

    This guy proposes to do the same thing again, another round of improvements. I believe he intends it will still be a drop-in replacement. Nothing will be lost by symlinking "vi" to nvim instead of vim. Everything will still work the same, only faster and more reliably. I see no reason to think it won't be just as smooth as the transition from vi to vim.

  93. Re: There's a reason people argue about vim and em by Kremmy · · Score: 1

    I think he should automatically check for four spaces and replace them with a tab. That's a 75% reduction in whitespace size with the same meaning!

  94. Re:There's a reason people argue about vim and ema by Kremmy · · Score: 1

    The points you mention are the reason why I advocate the use of tabs rather than spaces. I kinda feel like the guys who use spaces don't actually understand what they're doing when they indent, especially if they can't decide how many spaces an indent should be. Tab. One character. Indent.

  95. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    There's plenty of editors that support opening/saving from/to an SFTP account.

  96. Re:There's a reason people argue about vim and ema by Dahan · · Score: 1

    You know lots of Linux/Unix/*BSD systems don't have an X server, right? (Actually the majority of them don't)

    And they don't need one--the post you're replying to is suggesting to run the X server on the local machine and run X clients on the remote machine, forwarding the connections over SSH.

  97. Re:There's a reason people argue about vim and ema by gnu-sucks · · Score: 1

    I appreciate vim for the same reasons. It's easy to delete entire lines, and I can assign quick keys to short-cut common text (ie, typing class names over and over again).

    However, don't forget that many other more-GUI-like editors support drag and drop text and simple clipboard action. You can work pretty fast if you take full advantage of those tools. One of my favorite editors (besides vim/gvim) is part of qt creator. In addition to processing my .vimrc and having a vim mode, it almost always auto-completes code as I am typing it. It has a nice class/member navigation tool, intelligent find and replace, and code refactoring. Yes, vim can do all this too, but this is about as good as it gets for a GUI tool, and it is often faster. Also works different muscles, so it's good for variety on your hands.

  98. Re:There's a reason people argue about vim and ema by Dahan · · Score: 1

    As much as I love forwarded X11 apps, its rarely efficient over moderate to slow links. I can't justify using over 1Mbit of uplink traffic just to use my editor over the wire when even a VNC session is more efficient.

    1Mbit? Back in the day, we ran X11 over dialup modems, and we liked it. Or at least thought it was semi-OK.

  99. :wq then by rewindustry · · Score: 1

    what brad says is good enough for me.

  100. Re: There's a reason people argue about vim and e by loufoque · · Score: 1

    Disallowing tabs is simple to enforce, works with all editors, supports all coding standards and it allows the code to look the same in all text editors and environments.

  101. Re: There's a reason people argue about vim and e by loufoque · · Score: 1

    Tabs have variable sizes depending on editors and environment, so mixed tabs and spaces leads to disasters when people use slightly different setiings, and it's difficult tobenforce that people all use the same settings. It's better to just use spaces as this guarantees the code will look the same everywhere.

  102. Re: There's a reason people argue about vim and e by Kremmy · · Score: 1

    It's gonna have the same problems either way. That's why it's so ridiculous and nobody can agree.

  103. Re: There's a reason people argue about vim and em by eneville · · Score: 1

    Because vim allows you to edit at the speed of thought, that's why. ISBN: 1934356980

  104. Re:There's a reason people argue about vim and ema by grcumb · · Score: 1

    Do people in fact still argue about vim vs emacs?

    I stopped on the day I found myself writing:

    vim ~/.emacs

    ... Though I never have quite forgiven myself.

    --
    Crumb's Corollary: Never bring a knife to a bun fight.
  105. Re:There's a reason people argue about vim and ema by Courageous · · Score: 1

    A long while back, after getting into Python development, I learned to always use the expand tab option (which always puts in the correct number of spaces to reach the tab stop when you hit tab) and never looked back.

  106. Re: There's a reason people argue about vim and e by Antique+Geekmeister · · Score: 1

    Yes, what you've mentioned is true. But it does not address a single one of the problems _I_ had mentioned, which have to do with workflow and different coding standards from different groups, "Disallowing tabs" can be a reasonable internal coding policy, but the migration to it is likely to be filled with pitfalls, especially if any of your group's code involves older projects or third party code that has to be kept in sync and patch compatible with outside code.

  107. Re:There's a reason people argue about vim and ema by richlv · · Score: 1

    i'm giving courses on an it topic every now and then. at some point, i place basic instructions on screen, with one of them being "change variable n in config file f".

    ~ 50% of the participants change it in the wrong file (there are only two of them). the exchange goes something like this..

    "so what did you modify ?"
    - "param n"
    "and where did you change it ?"
    - "in file x"
    "oh, but what do the instructions say ?"
    - "to change param n"
    "and where ?"
    - "in file x" (slight annoyance can be heard here)
    "and if we read that sentence till the end?"
    - "OH"

    --
    Rich
  108. Re:There's a reason people argue about vim and ema by Zero__Kelvin · · Score: 1

    Great point! That's MUCH easier than just using vim on the target ... NOT.

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  109. Re:wtf? Clueless genius. by SuperTechnoNerd · · Score: 1

    I never said over the internet.. Local LAN only. I would never run X over the internet.

  110. I contributed to the NeoVim fundraiser by Anonymous Coward · · Score: 0

    I use VIM daily and find it a very powerful tool. Every couple years I try to write or modify a vimscript plugin and am rediscover the horror that is the vimscript syntax and API. I would really appreciate a more readable script system.

    The VIM plugins for browsers no longer work for me. I was using ItsAllText until is stopped working during a distribution or firefox upgrade, I forget which event it was. I would really like an embeddable version of VIM that works more reliably with my browser and any random IDE that I happen to be using.

    For these reasons I contributed to the project and I hope it succeeds in forking VIM.

  111. yeah, okay. Where remote == local by raymorris · · Score: 1

    >> If you SSH to a remote host
    > xforwarding
    !?!?
    > local lan only

    Yeah, if by "remote" you mean "local", then yes that makes sense.

    I have used X forwarding over the internet and for brief periods it IS usable with compression turned on. (Usable in an emergency, or a single brief task etc.) It seems we agree it's not a reasonable workflow for day-to-day text editing.

    The only criticism I can think of for vim, and a very significant one, is that there's a very significant learning curve in the beginning. You can learn enough in a couple hours to use it to accomplish whatever you need to do, but then you can spend years learning to tricks to make your work time more productive and more interesting by disposing of the drudgery. Whatever transformation you want done to some text, vim can do it in under a second, but only if you've learned the magic keystrokes.

  112. Where's cloud-based vim? by StripedCow · · Score: 1

    We need a cloud-based version of vim. Where multiple users can edit simultaneously.

    --
    If Pandora's box is destined to be opened, *I* want to be the one to open it.
  113. Re: There's a reason people argue about vim and em by Anonymous Coward · · Score: 0

    Young un here. I wouldn't touch an ide with a 10 foot pole. I use both emacs and vim combined with command line.

  114. Re: There's a reason people argue about vim and em by Anonymous Coward · · Score: 0

    Emacs TRAMP or VI.

  115. Re: There's a reason people argue about vim and e by EvolutionInAction · · Score: 1

    I could be wrong, but I think he's saying that you should set up your repository to reject submitted files that contain tabs. I've never done such a thing, but I know you can get SVN to run a script on the file pre-commit. Implement that, and as each file gets checked out the person using it has to convert it before committing again. Easy, they can still check out old files, revision history remains intact, everything is good in the world.

  116. Re: There's a reason people argue about vim and e by Antique+Geekmeister · · Score: 1

    Again, that's applying technology, after the fact, to fix the _workflow_ problem that introduced mixed coding standards. Cleaning up the existing code base, especially for collaborative projects and groups that have distinct standards and refuse to follow each other's layout practices, makes this a very expensive proposition to enforce.

    > Easy, they can still check out old files, revision history remains intact, everything is good in the world.

    As soon as you do "svn blame" or "git blame" or extract "diff" outputs from revisions before and after the white space synchronization, you've a change tracking difficulty. I'm not saying this is impossible to do, I'm pointing out that it's expensive. It also _breaks_ many revision analysis tools.

  117. Re: There's a reason people argue about vim and e by EvolutionInAction · · Score: 1

    You're right, but in the end you can't fix that kind of thing at all. All you can do is try and make your code base cleaner as time goes on. You call it a workflow problem, but the fact is people update coding standards all the time. If you can't use technical means to fix these problems (and you're right, there's very little one can do about how it breaks diffs and such) how are you supposed to fix them? The only 'workflow' answer I can see is "don't do it in the first place" which is like the trivial solution to a calculus problem - true, but not at all useful.

  118. Re:There's a reason people argue about vim and ema by Anonymous Coward · · Score: 0

    Sucks to be you. The rest of us should be held back because of "deployed embedded systems" because...why, exactly?

  119. Re: There's a reason people argue about vim and e by unrtst · · Score: 1

    It's really not that hard. I've been through it on big projects with extensive history and multiple sync'd outside projects with internal patches and the whole 9 yards.

    Start with what you own. If you don't own it, leave it be. Do all files in one big patchset. That'll be the point in time where stuff before and after won't diff very nicely, It sucks, but a year from now, it won't really matter.

    Include a per-commit check. That way, no new problems get introduced.
    Include the header. One does HAVE to use vim or emacs, but the mode lines I supplied work with those two. If your group has another common editor, add its mode lines if it supports it. It's just a helpful extra, and is safely ignored by other editors. And if none of you use vim or emacs, disregard those lines.

    If someone has a branch that was cut prior to the big reformatting patch, they'll have to deal with it at merge, or rebranch or rebase. Sucks, but it's a one time thing.

    The alternative sucks more - having code with mixed standards. How do multiple groups deal with that? Your patches are going to be even worse! Someone uses their editor to indent a block or copy/paste it, and all those mixed tables and spaces go to whatever they're using, causing all lines to diff poorly, instead of just the little pieces they touched. It's awful, as you noted.

    Your specific problem you referenced was users that were using an outdated 6 year old .vimrc that had been mailed around, and it caused problems with your code because of the difference in coding standards. ADDING THE MODE LINE FIXES THAT!

    The rest of it sounds like you just don't want to be bothered to clean up the problem, and just want to complain and blame others. It's trivial to fix. It comes with a small cost (one time giant ugly patchset), but it's easy. And you don't need that one time giant patch.. you could let them be fixed as changes are made, but I wouldn't recommend that as every future patchset will be more complicated than it needs to be. Just get it all out of the way in one go and move on.

    For integration with external code/repositories, work within the standard of the governing body. If they have a well defined standard, you can even add the pre-commit checks to your personal repository if you want. In general, this doesn't matter as much as the above, cause either your guys are behaving well and working with the external group, or they're not - manage accordingly.

  120. ed by karstdiver · · Score: 1

    Wasn't the original editor "ed"? Then someone put a visual interface onto ed.

  121. Same license problem... by Anonymous Coward · · Score: 0

    Vim hasn't been bundled in non-Linux OS'es because of its wacky license. A license is a legal threat that people outside the Linux world take seriously. It isn't a good place to ask for donations for charity. As the result, many people are stuck using nvi. 8~(

    --libman

  122. Re:There's a reason people argue about vim and ema by MikeBabcock · · Score: 1

    Back in the day you weren't cursed with GUIs made in Gtk+

    Yes, there's a pun in there. ;-)

    --
    - Michael T. Babcock (Yes, I blog)