I've found that if I completely break the expectation that I'll get anything even remotely "Vim-like" outside of Vim, I'm better able to deal.
...though I still wish I could make every editor I have to interact with a Vim window. :)
I've found that if I completely break the expectation that I'll get anything even remotely "Vim-like" outside of Vim, I'm better able to deal.
...though I still wish I could make every editor I have to interact with a Vim window. :)
Tough project, but needs to be done.
Also, it is written in Haskell.
For the record, the first commit to the Yi project was 8 years ago. This isn't some flash in the pan project.
If you cannot think of at least one language which is older and a better common denominator than Haskell (both at the binary level and at the interface presented to programmers)... I don't know what to say.
What actual reason do I have for switching from vim to yi? Just because it's written in Haskell and that obviously makes it better, or what?
Vim has support for scripting against Python and Ruby in addition to VimScript.
Better graphics? For what purpose? For displaying text?
Spoken like somebody who's never tried to parse C++.
vim has a fully configurable syntax highlighting system; its behavior is not hard-coded. So if you have a problem with how C++ is highlighted then you don't need to petition for the developers to patch or rewrite vim for you.
You can tweak the related configuration. And it's true that it's really not that hard to make your own new configuration to do this. Because you aren't compiling the code, you are only highlighting it according to your own tastes.
Given that vim is open source, I'm not sure why you think hard-coded syntax highlighting would be impossible for me to modify.
It appears that you are preoccupied with hard-coded construction of ASTs for some dialect of C++ inside your editor. I never suggested it could not be done. But, this is a different issue.
However, I really don't think many people need that when the facilities for configuring syntax highlighting are so good. The existing system has allowed vim to support a crazy number of languages and have fresh support for languages quite quickly after they start to be used.
If you like vim, and you want something SPECIFIC to be fixed about its C++ highlighting (not just a general complaint that you feel it is 'woefully limited' because it isn't based on hardcoded static analysis for C++) ... then don't waste time on doubt. Just try it. Make your own highlighting script and see if it works to a usable level. If it does not, then you know, and not just because of some a priori principle that syntax highlighting is useless unless it is based on an AST generated by your compiler toolchain or something.
If you really did have any practical reason to believe that the existing syntax highlighting facility was totally unsuitable for more than a handful of people... maybe it would be interesting to have some way of plugging in external modules of some kind to provide ASTs for specific languages. (Because I think the idea of making my text editor totally coupled to a specific hard-coded implementation of a parser for a particular language sucks really bad; but if you don't think that, then maybe you just want to buy a C++ IDE and be done with it)
There are multiple markdown syntax highlighting plugins, but none of them work most non-trivial markdown features (a paragraph indented by four spaces after a list item is a regular paragraph not a code block; extend the same analogy to multiple nested lists...).
and Lua, Perl Tcl and Racket.
... but, what about microformats (not the w3c-flavor) in other files. say: any in-place templating language (php), code blocks in markdown, etc.
that would be really great. it does not stop at syntax highlighting though. i'd really like my erlang mode in markdown code blocks :D.
I don't know how the syntax highlighting could be better since it is already fully scriptable and allows 256 colors, etc.
So what is it that needs to be done? All I get from this is that you think vim should have "better graphics like what Sublime 2 has". So I ask sincerely: what is the actual essential functionality required and why would it demand a 'new VI' rather than a patch or plugin?
If you can formulate what is needed more specifically then it's more likely that you can fix it yourself or at least have a chance of enlisting someone else to do it.
For instance?
* select all: ctrl-a
* copy: ctrl-c
* spawn vim: ctrl-f ! vim enter (varies by desktop environment)
* paste contents into vim: :.!xsel -o
* edit text in vim
* copy contents from vim: :%!xsel -ib
* close vim: :q!
* paste contents into original window: ctrl-a ctrl-vYou can also easily configure vim so that simple 'y' and 'p' will operate using the system clipboard, which I do.
You don't have to spawn and close vim around each task either.
Of course vim has no way at all to reduce the amount of ctrl-a, ctrl-c, ctrl-f, ctrl-a, ctrl-v boilerplate you are doing in this example because that all occurs in some other program.
I definitely agree that having a faster way to use the system clipboard is great, but I don't like cloberring the clipboard when I do deletions and whatnot in vim, so I have <Leader><Leader> (I use ; for leader, seems like most people use ,) mapped to "* which I find much easier(;;y is so much faster than "+y for me).
Very nice. I like xsel because it gives me more flexibility and uniformity (I can pipe it to/from whatever, and use it the same in the shell as in vim), but I'll probably wind up using the above for simple cases (especially if the xsel command I want isn't in my history for some reason).
Also having <C-p> and <C-n> as up and down means that moving between search suggestions on sites is really easy, which is nice.
f 24 ^M - choose reply
f 6 ^M - enter text buffer
^i - open vim
*** write this message ***
:wq - message gets transplanted into text buffer
esc, esc - exit text buffer, exit insert mode
f 7 ^M - choose reply again
???
profit - vimperatorI'd replace your second step with 'gi'. Saves a char, and avoids scanning for numbers..