19 ms·
Vim 8.0 is coming
- lando2319 11y agoFor Xcode users out there, XVim has been a game changer for me https://github.com/XVimProject/XVim https://github.com/XVimProject/XVim
- lando2319 11y agoFor Xcode users XVim out there, This has been a game changer for me https://github.com/XVimProject/XVim https://github.com/XVimProject/XVim
- nickysielicki 11y agoAnd... there goes a lot of energy to neovim. The only other feature request I have is expanded features for window drawing for plugin makers. I want to be able to draw over a buffer without editing the text. If you've ever used jedi-vim, you'll see the function's signature appear above the line you're editing. What a lot of people don't realize is that is actually modifying the file and saving the prior contents of that line in another process. If you kill vim and recover from the swapfile, that line is gone... It's a dirty hack for a feature that people want-- scratch buffers suck for this purpose. I'd be happy with either having function signatures formally tacked onto omnicompletion, letting omnicompletion providers do function signatures cleanly, or having arbitrary text-display over a buffer as a standalone feature, phasing out omnicompletion pumenu.c for this generic interface-- and omnicomplete would have to be rewritten to use this interface.
- jbmorgado 11y agoFrom what this initial view of Vim 8.0 looks, it actually went in the direction of Neovim, the asynchronous inner works were what made me try Neovim in the 1st place. Now, from what I can understand, Neovim only has two advantages, a cleaner code trough re-writing (it's debatable if that's really an advantage) and the ability of using other languages for plugins (which seems clearly and advantage due to the lacking features of VimScript). All in all, it's a nice step forward for Vim.
- majewsky 11y agoNeovim also has the terminal buffers, which Vim has explicitly stated to never add. (Source: Somewhere in :help, but unfortunately I can't find it right now.)
- jbmorgado 11y agoWell, from my previous not great experience with terminal inside Emacs I don't really need that. I would be much happier if Emacs and Vim just had correct color support in the console so that I could use both from the console in a Tmux terminal and have a real terminal open side-by-side with the editor. I can do that in Vim nicely after hacking the console colors, and Neovim without having to care about the colors and in Emacs it remains impossible.
- saturn_vk 11y agoI don't personally use the terminal support. Except it turns out that I actually did, implicitly. I use fzf for opening files, and I noticed recently that it's not actually 'integrated' into neovim, it just spawns within its terminal emulator. I tried fzf in vim, and the result was less than satisfactory, to say the least.
- nickysielicki 11y ago<rant> I tried fzf after thinking it was just a vim plugin and the install-process immediately drove me away. Don't edit my dotfiles and change my $PATH with your installer. That shouldn't ever have to be said. </rant>
- kroeber 11y agoThere's an option: ./install --no-update-rc
- justinmk 11y ago> from my previous not great experience with terminal inside Emacs :terminal in Neovim works very well. > if Emacs and Vim just had correct color support in the console Neovim supports true color in terminals that support it.
- ecthiender 11y agoTo list few of the new features: Asynchronous I/O support, channels (Vim can now exchange messages with another process in the background asynchronously), Background jobs, timers, packages for plugins! Wow! This is huge. So many interesting features landing on Vim 8.0.
- andrewstuart2 11y agoAsync I/O, plus JSON is seriously enormous. I'm very excited for how much faster things will be, and I can imagine JSON support will definitely make integration just that much easier. My one minor gripe was plugin speed, as syntax highlighting, linting, etc. can take long enough to be jarring.
- ecthiender 11y agoExactly!
- userbinator 11y agoAsync I/O? In a text editor, where the bulk of the time is spent waiting for the user to do something? I've used (an older version of) Vim on huge 100MB+ files and never thought it to be slow at all. In fact I don't think I've ever experienced any lag with Vim. I suspect you won't find this new version any faster.
- BonsaiDen 11y agoThis is mostly about linters, makeprg's and things like Ctrl+P / Command+T, git-gutter etc. I recently switched to NeoVim and it really _does_ make a world of difference, saving is a whole lot faster when git-diff can be performed asynchronously and the ability to scan directories in the background makes fuzzy searching of files a lot faster.
- chronial 11y agoThis is in fact fixing a massive pain point in vim, and one of the main reasons why NeoVIM has so much support. Saving a file in vim takes 1-2 seconds for me. Not because my disk is slow, but because I run some linters on my files, that take that long to all complete. Async I/O is not about disk I/O, but communication with other programs.
- pvinis 11y agoI have vim, neovim and emacs (and spacemacs) installed. Right now I'm trying to get into emacs a bit more. What's interesting to me, and the reason I try to keep up to date with the latest changes for all four editors, is that it's been now, what, 25 years (?) since emacs and vim started "competing" and they still are. I guess we could be saying the same in 10 years about firefox and chrome, but it still is amazing in my opinion. It's amazing that so much work has been done to vim and emacs, and so many changes, so many users using them for different things. And there is still no clear winner. I'm not trying to start a discussion about the strenghts and weaknesses of each. Just expressing my appreciation. Thank you for your great work, to everyone involved with vim and emacs, and more recently neovim and spacemacs. You are awesome.
- tinco 11y agoYou'd think based on how fast software 'evolves' one of them has grown highly venomous, and the other extremely poison resistant :P
- pjmlp 11y agoI became an heavy Emacs user as I could not find the comfort of Borland IDEs in UNIX, as I started to use it. Since I moved away from C++ into Java and .NET land, never felt the need to use them any longer. And nowadays, with Qt Creator, Clion, xCode, AppCode and VS, I also don't feel the need of them when I need to go back to C++. It is very good to know the basics from plain Vi, because there are still commercial UNIX systems without GNU tools installed, just bare bones installations. So for me the question is why there are still people that enjoy working as if their computers are using a 25 year old developer experience.
- d33 11y agoBy the way, I have a question: what is the best learning material for intermediate/advanced Vim users? I know quite a lot of Vim features but apart from vimtutorial, I never learned them in any organized way - it was more of a bunch of tricks I found via googling. It would be nice if there was a book (preferably free) on this editor.
- pvinis 11y agoI think if you are at a level where you can comfortably use vim, the best way to learn is to just keep using vim. Whenever something feels slow, or repetitive, look online for a solution or suggestion. Then you just use it until it's learned. I don't think any advanced tutorial would be useful, since it will be a collection of very specific things done by the author of the tutorial. I wouldn't be able to remember things like that if I'm not actively using them and finding them useful for me.
- nims11 11y agohttp://learnvimscriptthehardway.stevelosh.com/ http://learnvimscriptthehardway.stevelosh.com/
- frabbit 11y agoGreat book. This in combination with: a) the Drew Neil vimcasts and; b) Tim Pope's pathogen system and; c)NERDTree helped me to get to a point where Vim does most of what I want.
- zwarag 11y agoI make a list for things I know would be faster if I knew them and go on. example of my vimimprove.md: - 5 deleting word while curser is in the middle of that word - 2 insert parantesis around the word im on .... when something reaches 10, I google it and write it on a note. Then the first thing I do in the morning is doing that thing 10 times. Before I leave work, I do it again. And of coarse if you use it while working you might just have it in your muscles or you look at your little note. Then after a while your finger get that ninja stile of doing stuff you brain just things about. Like ying and yang
- stewbrew 11y agoCan somebody tell whether the API for those features also in neovim is compatible to vim8? Anyway, it's great to see that neovim provoced new developments in vim.
- oblio 11y agoNot really.
- teamhappy 11y agoDoes vim have a roadmap/milestones or anything like that (i.e., anything that allows me to track the development process)?
- oblio 11y agoA document? Nope. You'd have to lurk on the mailing list.
- nachtigall 11y agoWhy is there just 1 contributor listed at https://github.com/vim/vim https://github.com/vim/vim?
- LukeB_UK 11y agoIt looks like the author takes patch submissions and applies them, rather than pull requests being merged. Detailed in: https://github.com/vim/vim/blob/master/CONTRIBUTING.md https://github.com/vim/vim/blob/master/CONTRIBUTING.md
- Sir_Cmpwn 11y agoWow, that's pretty lame. No one gets attribution for their work.
- ed_blackburn 11y agoWith the age of their respective codebases, I'd love to know what lurks beneath? Immaculate, well factored code? A hornets nest of hacks - what do you expect from such old codebases - or have they been re-written so many times you'd never guess their ages from the codebase.
- mixedCase 11y agoVim's codebase is known to be one of the most unclean collections of C code out there. It's one of the reasons why Neovim came into existence.
- ageofwant 11y agoPfft on immaculate, well factored code. All glory to battle hardened code that does the business everyday. Of course it would be better to have both. But don't dismiss code that survived the withering infernos of real world use. All those edge hacks are there because they probably need to be.
- oblio 11y agoVim code predates a lot of modern best practices. It's not all cruft a la Spolsky's blog post. Some of it is just goo.
- ed_blackburn 11y agoI completely appreciate that. 'Tis always a case of striking a balance. Even battle hardened code with countless edge-cases can be well factored. A system programmer whose opinion I trust greatly recently advised me to look at the postgress code for well factored, battle hardened code. I've heard others suggest that libgit2 is similar. I don't feel confident / qualified enough to comment.
- dockerlocker 11y agoIs there a way how I can copy blocks of code outside the vim window to another application without also copying the line numbers? Also is there one simple key combination to [un]comment a line or a selected block? I found out how to do many simple operations with this ancient tool, what can be really fun if you have nothing else funny in life (too many people have no other sources of fun, really) - but I am still not convinced. Many operations that are a no-brainer in e.g. geany take serious planning and studying in vim - this is absurd. I fear that we are wasting many potentially good programmers because they accept the primitivism and stupid limitations of vim as something "cool" and will never again in their lives be able to program a user-friendly GUI because their brain is "vimed out". Maybe that is one of the reasons why we still have so much really bad software. Once I was totally impressed by programmers, they were the wizards of today, superbrains, uber-humans. Then I learned programming and understood how many uncreative and cognitively limited people are just repeating stuff that somebody else has told them, without ever asking. Basically the typical obey-guy, the perfect follower who never questions any order will be that kind of a good programmer, reading manuals and getting happy that he is able to reproduce - there is no creative moment here. Only very few of them are part of a creative elite that actually brings new ideas to life - most of them are totally dumb rat soldiers just following the orders. This is the reason why such ultra-primitive tools like vim still exist.
- apers 11y ago:set nonumber removes the line numbers so you can copy without them
- dockerlocker 11y agono, i do not want to disable line numbering. I want to avoid to copy them. I do not want to switch line numbering on off for every copy process. Absurd idea.
- mgreenly 11y agoA better option would be to use a plugin that yanks text to the system clipboard.
- deleted 11y ago[deleted]
- octref 11y agoI have a mixed feeling as a NeoVim user and long-time Vim user. On the one hand, great to see such a huge release for Vim that brings so many features people have been begging for. Especially Async IO and JSON. On the other hand, I hope Vim just become more stable and performant while not introducing new features. At the same time, I hope more development could go into NeoVim, and more people could start using it and writing plugins (not in Vimscript) for it. I want Vim to be my backup editor -- always there and reliable, and Neovim my working gear -- great features, joy to use, could have a few bugs that don't affect my workflow too much and are a natural result of fast-paced development. I know this sounds really unfair to Vim devs. I'm sorry! I really appreciate the works you've done to make Vim amazing. But I feel for me, I just want to spend 95% of my time on one editor. Now I'm on the NeoVim boat, I feel like having completely switched my workflow to Atom from ST3, and just learned ST3 is going open source.
- ergo14 11y agoCan you point me to the source of ST3 going open source?
- pvinis 11y agoIt's not. He means that using one editor he loves (vim/st3), then switching to a replacement (neovim/atom), and then learning that the format editor gets better (vim gets async, st3 goes open source), brings "confusion" on the choices made. It's hypothetical.
- nerdponx 11y agoI'm not a NeoVim user, but I've been on the edge of becoming one for a while. What I'm still holding out for is an _embeddable_ NeoVim. The thing I really don't like about IDEs is that I love my Vim configuration but I never get to actually use the damn thing since I do most of my work in an IDE. Now imagine if the IDE could actually just embed NeoVim, and I could use my Vimrc as-is with all the plugins (now managed natively). I know they already have Electron-based UIs for NeoVim, and Electron-based IDEs, so hopefully it's just a matter of time. That said, does this actually put NeoVim _behind_ in terms of feature parity?
- userbinator 11y agoDropped the support for MS-DOS. It was too big to fit in memory. This is a little surprising since the latest version of Emacs still supports MS-DOS[1]. If anything, you'd expect Vim to be the smaller and faster choice but it seems this isn't the case anymore... Then again, I don't really understand the culture of all the customisation/plugins/etc. around text editors; part of the reason why I originally chose Vi(m) over Emacs on Unix-like platforms is that it's small and simple, and perhaps I don't expect or need much from a text editor in the first place since I used MS-DOS Edit[2] as my main text editor for many years and on Windows I'm perfectly content to use Notepad. I use the CLI for more advanced text manipulation. [1] https://www.emacswiki.org/emacs/EmacsForDOS https://www.emacswiki.org/emacs/EmacsForDOS [2] https://en.wikipedia.org/wiki/MS-DOS_Editor https://en.wikipedia.org/wiki/MS-DOS_Editor
- Aissen 11y agoNote that this is compile-time. It might still cross-compile.
- hollander 11y agoMy head turned around. I read it like Vim loads MS-DOS, and I thought, why would it do that? But then it occured to me dat this means Vim can run under MS-DOS. It's been so long since I've used MS-DOS as OS, I can't imagine it anymore. To me it's just a program that is run by another something.
- justinmk 11y agoVim _cannot_ run under MS-DOS. It hasn't worked for years, that's why Neovim removed DOS support 2 years ago. The cries of "losing compatibility" were uninformed fear/uncertainty/doubt. Vim also doesn't run on OS/2 and other platforms, though the Makefiles have not yet been removed.
- majewsky 11y agoLast time I used MS-DOS productively was in 2008, for a lab course while studying physics. The specialized equipment they used came with a software that ran under MS-DOS, and from that point, they "never changed a running system". I've been told that this particular PC has still been in operation at least one year ago. I also remember that we had a problem with transferring the resulting data for analysis, because the physics department had just been equipped with new PCs that did not have floppy drives anymore.
- maxaf 11y agoI alternate between Emacs and Vim every 5 years or so. Emacs gave me superior customizability using a "real" programming language: elisp. Vim, on the other hand, offers a faster, more efficient editing UX. The older I get, the wider the spread becomes between the speed of my thought and the rate at which I can input editing commands into the terminal. Vim allows me achieve higher efficiency and to almost "think ahead" by quantifying my movements and jumping to specific tokens in known locations. That to me has become more important lately than scripting in a nicer language than viml. All of the new features of Vim are super nice, but I'll still primarily use it for the terseness of its editing UX.
- jen20 11y agoYou may want to consider looking at Evil mode, which gives you a very close approximation to the vim editing bindings in emacs. I've been using it as part of the spacemacs distribution for a while now and find it to be the best of both worlds.
- Gonzih 11y agoEvil mode is slower than vim. And also you are in evil mode only during the editing phase. All other menus drop you back to default emacs keybindings and that is very painful experience. I used evil mode for a couple of years and still just went back to vim.
- mightybyte 11y agoI have not found this to be the case with Spacemacs. Almost everything you need is bound to keystrokes using space as the leader key in the spirit of vim. As a long-time and fairly advanced vim user I recommend Spacemacs highly.
- maxaf 11y agoDon't you feel like you're pushing a square peg into a round hole? Or do you actually find yourself taking advantage of elisp in harmonious combination with Vim's editing UX?
- michaelmior 11y agoThere doesn't seem to be documentation for the new packages feature yet. I'm curious if this is actually intended to obsolete the current ecosystem of vim plugin managers.
- _pmf_ 11y agoThis release is a poster boy example why competition is good. Before neovim: Asyncronous operations? "Absolutely impossible" After neovim: Asynchronous operations? "Why, of course, here, with a cherry on top"
- melling 11y agoI've been trying to evaluate the different editors. https://github.com/melling/EditorNotes/blob/master/vim.org https://github.com/melling/EditorNotes/blob/master/vim.org To me it feels like the vim key bindings are more efficient for programmers. No one has ever done a scientific comparison, and it always seems to end in a religious war, but we should do a better job of evaluating our tools. Then hopefully, we can improve them.
- majewsky 11y agoThe problem with evaluating editor efficiency is that you are more likely to measure the user's proficiency. The vim editing style is only as efficient as the number of motions that you know. (I use about half of them actively, but I have a lot of vim users sitting around me that barely know "w".) So to really compare efficiency of, say, Emacs vs. vim, you will first need to find two users. One who is as proficient in Emacs as the other is in vim. Good luck with that. :)
- todd8 11y agoYes, but there are a number of people that have gone though periods of using one and then the other. I have, at least anecdotal, experience with both. I worked on the first release of AIX for IBM. Their lawyers took a couple of years to get comfortable with the Emacs license so I switched to using vi for two or three years. (At one point I had to demo a Lisp system running on AIX at at AAAI conference and I could barely work the built in emacs-based editor.) Eventually, I was able to switch back to Emacs on AIX. My own preference is Emacs for it's breadth of features and its customizations, but I still miss the feeling of speed that I had while navigating source code with Vi or Vim. I still toy with Vim every so often, but I've forgotten so much that I just plod along. Spacemacs is currently on my system, but I usually prefer my own set of customizations and just stick with Emacs and its ordinary bindings. Nevertheless, Spacemacs is an work of genius. I'd encourage everyone to learn basic vi (say what's taught in the tutorial), it's everywhere. After that, IMHO, either of these ancient editors is wonderful and worth adopting. Someday I'm hoping that a new Emacs will be developed built along the lines of Neovim. Digging into the internals of a big Emacs package is pretty painful for me when all I am doing is trying to fix some aspect of my editing experience (see https://xkcd.com/1205/ https://xkcd.com/1205/). I'd like a more modern extension language than elisp. While I'm dreaming, someone please rewrite LaTeX to use a real programming language instead of its Turing complete macro language.
- Syssiphus 11y agoSoo, are these changes already in the git repository? Because the readme is still pointing out that the repository is for 7.4 and the tags/branches are not very helpful. Did I miss something?
- cm3 11y agoThe new breakindent options sounds very useful. I've run into the same issue from time to time. This hasn't been possible to fix before, has it?
- cm3 11y agoHave the various plugins started to make use of the new async/jobs/messages functionality already?
- donkeyd 11y agoI'm quite a noob at 'nix, so I tend to use nano whenever I need to edit something. Not sure if this is the right place, but could somebody explain the added benefit of spending the time to learn to use vim/emacs? I've tried vim, but it seems very complicated.
- bcook 11y agoAs a non-professional hobbiest, the biggest impact I can recall is that "vi" is universally included in every distro, while nano is not. vim is complicated, but if you spend just an hour learning it's capabilities, your productivity will improve. vim is crazy(/overly?) complex though, so do not think you are alone.
- nZac 11y agoThe added benefit for me are, staying in the terminal where I do more than just edit, normal mode makes file navigation and text manipulation an extension of thinking, fast file switching, cross platform consistency, and a low maintenance burden (though the initial learning curve/setup is steep). I work on Python apps all day and am constantly running she'll commands, interacting with git, starting / stopping services. Along with tmux, I can switch projects incredibly fast without having to wait for an IDE to load. If you don't interact with text most of the day, I am not sure Vim is worth the curve.
- patrickdavey 11y agoLike other comments have said, learning one tool which is available basically everywhere means you only have to put in the up front learning once. Sure, it is a learning curve, but once you get the basic idea that it's a sort of language for manipulating text, then the rest is just adding to that. For example, once you know that "d" is the verb to "delete" and that verbs can take nouns (like "w" for "word") then "dw" deletes a word. Now you can learn new nouns and apply to all the verbs you already know. Same for motions G is the motion to move to the bottom of the file, "dG" will delete from the cursor to the bottom of the file. Anyway, far smarter people than me have made some great introductions. I would recommend the following: 1. go through "vimtutor" 2. Look at vimcasts 3. In a while, "Practical Vim" is a very nice little book. Good luck :)
- Walkman 11y agoWhat does it mean to NeoVim? Does it affect it's development, split developers or anything? Is it good?
- llimllib 11y agoI have to think it's a direct response to neovim, and that competition between them is likely to be very good
- icholy 11y agoThe reason neovim was started was to add these exact features. Now that vim has them, I think neovim's work is done. Mission accomplished.
- akkartik 11y agoReplace Neovim with Chrome, Vim with Firefox. Does your argument still stand? Starting up a competing project has a huge cost. Once started, it's overwhelmingly better for the world for the competitors to continue[1], so that they can continue to make each other accountable. [1] Unless one of the competitors is able to subsume the other. Like EGCS subsumed GCC back in the early 2000s. Total victory is a valid emergent outcome of competition, not somebody deciding what 'should' happen.
- duskwuff 11y agoEhh... I think neovim was also started to create a decrufted version of the vim codebase. That goal is still perfectly valid.
- codemonkeymike 11y agoBeen using Neovim for about 6 months now, The only real difference I have felt so far is that I was able to remove a few lines from my .vimrc, like history=10000 as Neovim does this by default. As for Vim, I am done with it forever, not because of vim more because of package managers compiling vim without paste mode or lua/ruby support and making me compile vim from source with my own flags, which was a harrowing experience for me, when I was just trying to set up my development environment.
- aorth 11y agoDo you ever have to vim somewhere where there is no nvim? Like on a server, etc? I worry about getting used to nvim features or behaviors that might not be compatible with vim (are there any?) and being super bummed on a server some day!
- dave2000 11y agoInstalling neovim is easy, so just install it there too. Not using a superior product because you might have to install it is an odd decision. Besides, I understand many distros are prepared to include neovim.
- learc83 11y agoServers often have vi installed by default, but that hasn't made me want to give up vim features.
- dominotw 11y agoI use nvim to compile code in non-ui thread.
- codemonkeymike 11y agoOthers have provided good answers but I'll add my 2 cents. Neovim was made to be fully(Mostly?) backwards compatible with all Vim specific features, and most Vi features. You may be wondering what is missing, some ed features and support for some more obscure Operating Systems. You shouldn't have to worry about the missing features as they are mostly legacy features that mostly all new/newish users of vim never will use. As for additional features they are mostly all under the hood, better embedablility, extensibility, and sensible defaults things you don't need when editing your Appache routes on the server.
- wellsjohnston 11y agoBest thing to come out of this is async support. https://github.com/vim/vim/blob/master/runtime/doc/version8.txt#L53-61 https://github.com/vim/vim/blob/master/runtime/doc/version8....
- ikawe 11y ago> Plugins keep growing and more of them are available then ever before. To keep the collection of plugins manageable package support has been added. This is a convenient way to get one or more plugins, drop them in a directory and possibly keep them updated. Vim will load them automatically, or only when desired. See |packages|. Is this going to replace pathogen?
- majewsky 11y agoPathogen: Most likely. Vundle: Probably not.
- cm3 11y agoDoes anybody know what native feature is missing in Vim that makes Ctrl-P (with all optimizations) slower than Emacs ido-mode?
- mr_november 11y agoNot a real answer to your question, but for the last number of years I've been using Command-t (https://github.com/wincent/command-t https://github.com/wincent/command-t) and after the initial index operation, it's super quick.
- cm3 11y agoCommand-t requires Ruby support in Vim. It's interesting that ido-mode doesn't first create a cache, and the built-in functionality available via elisp seems to be sufficient for speedy performance.
- masukomi 11y agoThe asychronous IO, Channels, JSON, and Jobs are HUGE. This will be a game changer in so many ways.
- sargas 11y agoI really like those improvements and features. Specially the Async/IO stuff, jobs, timers, and a stab at plugin packages. This will be quite a long journey I think - an exciting one. The other thing is that I think Vim and NeoVim will diverge at a faster rate now. They'll soon be way too different to be related. So NeoVim won't be a "nicer"/asynchronous/opinionated Vim anymore. But it's own alternative.
- zxcvcxz 11y agoHas anyone ever run :help iccf? Remember to donate to uganda guys it's the only thing Bram asks for in return for this software.
- nanis 11y agoSo, if I had waited nine more hours, I would have gotten a lot of upvotes, I guess. See https://news.ycombinator.com/item?id=11484697 https://news.ycombinator.com/item?id=11484697
- greenspot 11y agoAsync is massive. I have been using this feature heavily in NeoVim for the last 6 months. I am surprised that nobody mentioned this: Bram (Vim's author) was in the beginning very much against async in Vim and this was one of the main reasons that the NeoVim fork started. 6 Months later Bram comes up with tons of features and one which he heavily opposed. Anyone know why this change of mind? The fear of Neovim or did I miss anything?