
Vim 7.3 released - ab9
http://groups.google.com/group/vim_announce/browse_thread/thread/66c02efd1523554b/e2251dcd7ecfb2c2?show_docid=e2251dcd7ecfb2c2&pli=1
======
starnix17
It'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).

~~~
bajsejohannes
Where 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>

------
kgroll
Persistent 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

------
prog
I 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 =).

------
knodi
Lua interface! (like World of Warcraft addons)

------
shrikant
Damn Bram, thank you, man!

------
l0nwlf
Python 3 interface FTW :)

~~~
morphir
what does that mean? So we can make plugins in Lua and Python?

~~~
omaranto
Yes. And you already could in Python 2.x, what's new Pythonwise is the support
for 3.

------
knodi
Can't wait for the MacVim to move to 7.3

~~~
travisjeffery
<http://github.com/b4winckler/macvim/downloads>

More specifically,
[http://github.com/downloads/b4winckler/macvim/MacVim-7_3-53....](http://github.com/downloads/b4winckler/macvim/MacVim-7_3-53.tbz)

It's solid.

~~~
knodi
Sweet JEBUS!!

------
skullsplitter
Persistent undo/redo FTMFW

~~~
snprbob86
In 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> \--
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....](http://code.google.com/p/vim/source/browse/runtime/doc/undo.txt?r=ee53a39d58960b8726c53c76bef8d16159ed2b10)

~~~
aerique
This 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>

~~~
drblast
I'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
For 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>

~~~
drblast
I 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.

------
compay
Looking forward to playing around with the new Lua interface.

~~~
jmaygarden
Me 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...

------
neorayn
Even 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-
convi...](http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convince-me-
to-use-vim-was-wrong/)

------
rodh257
Anyone 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?

~~~
Sukotto
I liked the visual guide:
[http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial...](http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html)

You can also get a vi plugin for Visual Studio <http://www.viemu.com/> which
is pretty cool.

~~~
DougWebb
As 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.

------
trylks
Sorry for the noob question, but what does "python 3 interface" mean?

~~~
Gonsalu
It 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.

