6 ms·
Vim 7.3 released
- skullsplitter 16y agoPersistent undo/redo FTMFW
- snprbob86 16y agoIn case you didn't know, Vim already had undo "trees". My mind was BLOWN when I discovered this: http://vimdoc.sourceforge.net/htmldoc/usr_32.html http://vimdoc.sourceforge.net/htmldoc/usr_32.html -- Never again accidentally lose work by accidentally breaking your redo change! The online docs are still 7.2, so I had to dig into the source for a link to the new persistent undo/redo docs (search for "undo-persistence"): http://code.google.com/p/vim/source/browse/runtime/doc/undo.txt?r=ee53a39d58960b8726c53c76bef8d16159ed2b10 http://code.google.com/p/vim/source/browse/runtime/doc/undo....
- aerique 16y agoThis is not a dis against Vim (I use both), but if any Emacs users are reading this and think "cool!": http://www.dr-qubit.org/undo-tree/undo-tree.el http://www.dr-qubit.org/undo-tree/undo-tree.el
- drblast 16y agoI'm writing a new text editor and I spent an inordinate amount of time on the undo system. I never realized how many things the choice of undo implementation would affect. But I did come to the conclusion that Emacs' default undo system is where it's at. Every modification should be undoable, including undos. Once you understand how it works, there's no longer a need for trees and the complexity that brings.
- snprbob86 16y agoFor those of us who are Vim users, could you explain the Emacs system? EDIT: It seems that undo-tree.el file has a good explaination in the comments: http://www.dr-qubit.org/undo-tree/undo-tree.el http://www.dr-qubit.org/undo-tree/undo-tree.el
- lolipop1 16y agoIt's something in the line of every change is a transaction. A redo is a replay of a transaction. An undo is not exactly a rollback but a reverse of the change and also a new transaction. You can undo a transaction in the past by reaplying later transactions. Makes me think a bit about Operational Transforms but I couldn't synthesizes my precise thoughts on that.
- drblast 16y agoI can tell you a bit about how I implemented the same system in my editor. It's quite simple if you think of every operation as a function that modifies the document. As you do something, a function that reverses those changes is pushed onto an undo stack. This incudes when you hit the "undo" button. So if my document state looks like this: start->A->B->C where an arrow is a state change, my Undo stack will look like: U0<-U1<-U2 Where function U2 will get me from C to B, U1 from B to A, and U0 from A to the original document. If I hit undo, that's a modification, so the state history looks like: start->A->B->C->B And my undo stack gets the "un-undo" pushed on the top, and looks like: U0<-U1<-U2<-U3 So U3, when executed, brings me from the second state B back to state C. I'll never lose anything because every state I've ever seen in the document is implicitly stored in the undo stack. If you're wondering how pushing an un-undo function on top of the undo stack doesn't prevent you from going beyond one level of undo, it's a simple trick; there is an undo stack pointer that decrements every time you hit "undo" and resets on any non-undo action. This is why in emacs you used to have to "do something else" like type a character to break the undo chain and re-visit more recent states.
- thomie 16y agoIs this your editor? http://vian.sourceforge.net/ http://vian.sourceforge.net/ I saw you have experience with Haskell, have you seen Yi? http://yi-editor.blogspot.com/ http://yi-editor.blogspot.com/ It has an Emacs and Vim frontend, but is far from being finished.
- briancarper 16y agoThank you thank you thank you for linking to this. I also use both editors (daily), and Emacs' undo system is easily among its worst and most annoying features, while Vim's undo system is among its best. The documentation at the top of undo-tree.el spells out exactly why this is the case. This library makes it all better.
- compay 16y agoLooking forward to playing around with the new Lua interface.
- jmaygarden 16y agoMe too, but I'm getting a "E319: Sorry, the command is not available in this version" message when trying the new :lua* commands with the Windows version from the self-installing executable. EDIT: Ah, the binary distribution is compiled with -lua (see :version). Cloning the Hg repository now...
- knodi 16y agoCan't wait for the MacVim to move to 7.3
- travisjeffery 16y agohttp://github.com/b4winckler/macvim/downloads http://github.com/b4winckler/macvim/downloads More specifically, http://github.com/downloads/b4winckler/macvim/MacVim-7_3-53.tbz http://github.com/downloads/b4winckler/macvim/MacVim-7_3-53.... It's solid.
- knodi 16y agoSweet JEBUS!!
- sigzero 16y agoMy MacVim auto-updated to 7.3 when I launched it. :-) I like the incremental improvements to things in this release. Kudos to Bram (and Bjorn for the Mac build).
- bajsejohannes 16y agoHow did you achieve that? Mine didn't, and doing "Check for updates" in the MacVim says I'm already at the latest version. I'm at "7.2 stable 1.2/33.3".
- SAHChandler 16y agoTry ending the actual process and then relaunching with your browser of choice open as well (I was having the same problem too)
- bajsejohannes 16y agoI did, but to no avail.
- CrLf 16y ago
- knodi 16y agoLua interface! (like World of Warcraft addons)
- starnix17 16y agoIt's pretty cool that vim has had the same lead developer running the project for nearly 20 years. It's also pretty cool how he asks for donations to be sent to nonprofits instead of himself. I know this is irrelevant to the new release, but I think it's great that he still keeps it going after 20 years without any monetary gain (at least directly from the project).
- graywh 16y agos/lead// Bram is the one and only developer of Vim.
- Calamitous 16y agoAgreed. It shouldn't surprise me, but it still does every time Vim has a new release. What's more, it's awesome that new releases still bring new functionality to the table.
- bajsejohannes 16y agoWhere the money goes depends on whether he has a job or not. Currently he works at Google, so it goes to a non-profit, but it has gone to him in the past. http://www.vim.org/sponsor/index.php http://www.vim.org/sponsor/index.php
- l0nwlf 16y agoPython 3 interface FTW :)
- deleted 16y ago[deleted]
- shrikant 16y agoDamn Bram, thank you, man!
- rodh257 16y agoAnyone got any links to good guides for getting into Vim if you are a Visual Studio user at present? I keep hearing people talking about Vim and how it will change your life, mannn. Is there a good beginners guide?
- planckscnst 16y agoStart by running vimtutor on just about any system that has Vim installed.
- billybob 16y agoTHIS. Get comfortable with moving from command to insert mode and back, moving around using the keyboard, and basic commands like delete, change and search (/). See how to combine these. From there, you're doing everything from the keyboard and learning new little shortcuts all the time.
- Sukotto 16y agoI liked the visual guide: http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial... You can also get a vi plugin for Visual Studio http://www.viemu.com/ http://www.viemu.com/ which is pretty cool.
- peregrine 16y agoTheir is also a free vim tool for Visual Studio that is semi complete but very usable. VsVim is what its called and I use it everyday.
- DougWebb 16y agoAs a long-time vim users and short-time Visual Studio user, I've found viemu to be a nice addition but frustrating to use. It conflicts with VS2010's keyboard shortcuts, and I've found myself doing the "random typing OMG what did I just do" thing fairly often. I hadn't done that in vim for over a decade. Maybe it's just that viemu for VS2010 has only just come out recently, and may still need some tweaking. Long term, it's probably a great tool.
- prog 16y agoI am happy to see the'relativenumber' option patch make it. Quote from :h relativenumber Show the line number relative to the line with the cursor in front of each line. Relative line numbers help you use the |count| you can precede some vertical motion commands (e.g. j k + -) with, without having to calculate it yourself. Especially useful in combination with other commands (e.g. y d c < > gq gw =).
- neorayn 16y agoEven as a new Vim user I'm constantly wishing all my text editing had it's features. Vimtutor is great, but for a general outlook for someone learning vim this post is spot on: http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convince-me-to-use-vim-was-wrong/ http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convi...
- kgroll 16y agoPersistent undo is my favorite new feature. The ability to close vim, reopen a file later, and then have all of the undo history still available is awesome. (Alternatively, I used to suspend vim instead of actually quit.) To turn on persistent undo, I created a new directory called ~/.undo to store all of the undo history so that my working directories wouldn't get cluttered. Then in .vimrc, I add: set undofile set undodir=~/.undo
- trylks 16y agoSorry for the noob question, but what does "python 3 interface" mean?
- Gonsalu 16y agoIt means that you can now write plugins for Vim using Python 3. It's worth noting that you could already write Vim plugins with Python 2.x.