Plans for Vim 7.4
groups.google.com
groups.google.com
A few things I can think of:
* Better support for background tasks .. :mak, :grep, system(), :! without interrupting editing.
* Fancier errorlist and locationlists. cexpr()/lexpr() really make you fit round pegs into square holes.
* Better omni-completion performance (any completion dialogs other than <C-N>, buffer keyword completion, are unusably slow for my purposes).
* Built-in support for some filesystem operations. NERD_tree/:! can be clunky, and dropping into the shell isn't always ideal.
* Real shell buffer .. I know I'll get my head cut off for this because it is quite emacs-y, but it would be nice to be able to run my shell in a buffer. At the very least, it would be nice to have :sh be a somewhat capable terminal that could handle colors and generally feel like a normal terminal.
I'm excited to see 7.4 because it looks like some real new direction for the project, for better or worse. I'm sad to see VimScript de-emphasized, having invested a good bit of time in getting good with it, but VimScript is pretty slow, so this is good news.
This would allow plugins to all sorts of crazy stuff, with less magic, less regex, and more robustness.
This would make code completion better, too.
I'm a Vim enthusiast who hasn't tried Emacs, but one thing I've heard that makes me jealous is that they can script their editor using a flavor of Lisp. This is extra awesome for devs whose primary language is already Lisp.
Sometimes I wish for a Vim-like editor with a nicer scripting language, but "Vim-like" is such a huge target at this point that any effort is bound to displease most users by omitting the one tiny feature they personally love.
If Python becomes useful for scripting Vim, that would be awesome in my book.
* It's designed to be embedded
* It's easy to expose functionality and API's
* It's fast
* IME if other languages are also embedded, and a thoughtful API/plugin arch is created, functionality from other language plugins can be easily accessed in lua. (I know, bunch of caveats there, but if I'm dreaming...)
>>> a = "string"
>>> a[1] = 'g'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> b = a.replace('t', 'g')
>>> b
'sgring'
>>> a
'string'
>>> id(b)
3065252256L
>>> id(a)
3075481632L
Also from here[1]: Strings and tuples are immutable sequence types: such
objects cannot be modified once created.
[1] http://docs.python.org/2/library/stdtypes.html#mutable-seque...I think this happens for a few reasons:
- First, as you pointed out, not every user is guaranteed
to have your favorite language installed. But they will
have VimScript whenever they use vim.
- Second, even if a user has your favorite language
installed, the version of vim they have might not be
compiled with bindings for that language. Only VimScript
is guarateed to be compiled in.
- Third, VimScript is the only language in vim that's not
crippled in some way in respect to functionality. All
the other languages it supports have to rely on
VimScript itself in order to perform some vim-related
functions. In some languages, this makes it so that you
might as well be using VimScript to begin with.Is there a reason why there is no portable binary compiled with bindings for perl, python, lua, et cetera?
| although more recently some distributions
Even CentOS 4 had a Vim with python in it. The issue that I always came up against was Ruby support. Ruby wasn't compiled in, and some Vim plugins (e.g. LustyExplorer, FuzzyFinder) relied on it. I worry less about that now that Ctrl-P (written in Vimscript) has replaced those for me.This made my migration from vim to emacs possible.
Making the switch is slow and painful for this veteran vim user who has perfected his vim environment, but I can already see that the emacs environment that I build will be superior... eventually.
Plus, I get the joy of scripting my editor in elisp and eventually guile (I hope). No more vimscript for me!
That said, vim is a wonderful editor. Even if vim ultimately isn't as flexible as emacs, it's still incredibly powerful; and there's a lot of cross-fertilization going on between the two editors, with vim users getting inspired by emacs features and packages and writing vim equivalents and vice-versa.
evil-surround: Port of Vim’s surround script.
evil-numbers: Vim-like increment and decrement.
evil-leader: Port of Vim’s mapleader.
evil-rails: Port of rails.vim.
evil-nerd-commenter: Port of Vim’s Nerd-Commenter
Also, there are many emacs packages that provide functionality that's more or less equivalent to various vim plugins (sometimes even unenhanced emacs will already be capable of doing what you need).Just a couple of tips for vim fans giving emacs+evil a go:
* Don't expect to quickly master emacs or quickly be able
to replicate the vim environment you spent years
perfecting. Getting emacs set up nicely will take a lot
of learning, tweaking and hacking (especially if you
want to make it more vim-like). Be prepared for that.
* Come to #emacs and #evil-mode on freenode for help.
* You might want to go through the emacs tutorial (C-h t)
before you install evil or do any other customizations.
That'll teach you some basics of emacs that you'll run
in to elsewhere, and help minimize confusion.
* Search the emacswiki[2] on any topics you're interested
in. There's a lot of good stuff there.
[1] - http://www.emacswiki.org/emacs/Evil[2] - http://www.emacswiki.org
I agree with your tips but the one thing I would add is that if you're worried about porting your vim plugins, don't. I use evil and the evil-plugins you listed happily, but beyond those awaits a vast world of emacs plugins from hordes of emacs.d hoarders, ready to eval your kinkiest, textiest dreams.
Basically, don't get hung up on plugins. They exist because they don't make up the core of your editor, and if you find yourself liking emacs even a little bit then it is very likely you'll find a suitable replacement for each of those functions.
Happy hacking =)
Thanks for clearing it up!
https://github.com/nosami/Omnisharp
Real intellisense, find usage, refactor, etc.
I still use Vim, but it is a bit annoying to see well done solutions I've been using for years fall behind new projects (Hello Firebug) that accomplish more in a year than others in 20 years.
If Sublime Text was Open Source and the vi mode better I'd switch in an instant. And probably a lot of people too.
I don't want to sound snobbish and arguing without helping isn't the way to go in the open source community, but man, all that stuff that has been in development for so long, thought of in dusty university rooms, presented in worn 70's summer dresses...
It reminds me of the old tailor couple around the corner. They wont go away and probably have a lot of years to life left. A handful of people still value their skill and love to pay more. But it's an old house that hasn't been painted for a long time. You will only find it in the yellow pages and even then you're having trouble to actually find the shop because it's tiny and the house looks like it's soon to be demolished. The machines they use are old and they are the only ones who actually know how to fix them. If they die the shop is gone for good.
The same goes trough my head when I look at Vim's homepage, or Molenaars. They look like someone died or moved on to a life without the internet.
They don't make the impression that anything of value can be found. But in some places there is, scrambled across different pages by different people of different generations. Modern technology hammered into old shells. A reminder here that scripts can also be found on git. A wiki hosted on wikia there. GUI builds for Mac here, Windows there, none using any new features of the OS. It still runs, but there isn't really any love put into it.
If people talk about Vim plugins I only hear how bad VimScript is. If I install one I get it on github, not the script repository because that's where the skeletons lie. The installer I use (and the only one up-to-date) is made by the cream developers. No clue what I'd even do if they stopped producing them.
Vim became the double-edge razor a long time ago. It's cheap, it just works and I can pass it down to my kids. All it needs is some learning. But it's only noteworthy because every other kind of razor produced today sucks in one way or another.
My own very brief discussion about encryption in Vim makes me conclude that Bram doesn't want to learn from others (not from me, from current best practices in crypto) and doesn't keep in touch with others.
You might but the thing is, Vim has been around for over 20 years and hasn't really lost any steam (and vi for another 20 years on top of that). Sublime has only been around for 5 years and it's closed-source meaning if the development dried up or something, it's a dead project. Vim has a high bus factor since it's only developer is Bram, but at least it's open-source so it can be taken over by someone.
It is somewhat following the linux model (with Linus as the primary developer in the early days).
Just like linux, I believe this has added to the widespread popularity of Vim (ie. it is available by default on most distributions).
Vim doesn't need to "modernize". I would say its availability and ability to still stay relevant is more modern than most other open-source software.
I'm guessing the "IDE" features could be enabled/disabled as will, just as you have the option of using vim as just "vi".
Kudos to Bram Moolenaar.
13.01-24
http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Pac...(i can never quite distinguish between revisions and releases... when is each used?)
In this context a revision is just a bug fix release, the same as a "point release" or "minor release" or "patch version." I'm sure there are terms I'm forgetting. A micro-version increment, where the system is ${major}.${minor}.${micro} (in what the kids call "semantic versioning," but what used to just be called "not versioning like an idiot.")
Works great!
* add IDE features (debugger integration, shell window)
* add integration with Python instead of inventing more Vim script
* add encryption for the swapfile
And something that could be included in that list:
* Built-in support for multiple cursors
E M A C S
s e l o h
c t t n i
a a t f
p r t
e o
lWhat I mean is that it's hard to know which editor is the most popular, it really depends on the communities you visit
Also, I'm not sure in what sense mouse integration is "the obvious flaw", given that (A) it already exists if you use the GUI version, or in the terminal if your terminal supports mouse reporting (see :help mouse-using) and (B) most Vim users tend to actively avoid the mouse anyway.
2. jokes aside, the most important need is probably better repl: eval result should pop up on screen.
A JavaScript debugger integration would be awesome too.
(Not to be confused with http://packages.debian.org/sid/vim-addon-manager -- and yes, the author of the former got permission from the author of the latter to re-use the name.)
Sure feels like 2013.