FEB
22
2005

Yzis Milestone 3 Released

The Yzis team is glad to announce the Milestone 3 release of Yzis, the fast moving
vi-compatible editor from the authors of KVim. A lot has happened since the M2 release in August 2004:
many new features have been added and bugs fixed, getting us closer to the full Vim feature set. Check for yourself on the screenshots.

Yzis is developed using modern
technologies to move at a rapid pace: object oriented programming, Lua
scripting, syntax highlighting files in XML and unit testing.

The core of Yzis is a reusable vi engine, which can be
embedded as an editor. Frontends are
provided for ncurses, a standalone KDE application and the KDE component system KParts.

Yzis can be embedded directly into KDevelop and Quanta. Patches are available
to embed it as the KMail composer
and KHTML form editor

Yzis is already usable as a day to day editor. If your favourite Vim feature
or command is not supported yet, please drop us a note. We will be happy to add it.

The next milestone release is planned for summer
2005 and should be the last release before the stable 1.0. The first stable version
should be released at some point after KDE 4.

Comments

Nice to see that Yzis makes some good progress, some months ago I tested a yzis version, but was not really useable for a vim user, since too many advanced feature were missing (like text-objects e.g.), but I really hope this will change soon (although very unlikely, since vim advances as well).

Just imagine, you could have a good vim-like editor in all/most multiline edits in KDE. :) (The vim kpart didn't really work for me - and kvim was/is just too slow for normal editing).


By Martin Stubenschrott at Tue, 2005/02/22 - 6:00am

Never knew this existed, looks cool!


By Al at Tue, 2005/02/22 - 6:00am

I'd never known this existed. I'm glad they got this publicity. Now I hope they keep up the good work, because vim is my favorite and I've really missed having vim integration in KDE. KVim is just too buggy to use, so I always have several konsole tabs & windows open, primarily for vim. Keep up the good work!!


By Michael Dean at Tue, 2005/02/22 - 6:00am

Hi! I'm the Spanish translator of Yzis... it's very usable already but i can't wait for it to be embedded into kile!!!!!!!!!


By Rafael Rodríguez at Tue, 2005/02/22 - 6:00am

Yeah, me to!


By ac at Tue, 2005/02/22 - 6:00am

The patch to open a KHTML form in a proper editor (Kate, Yzis, etc.) should be really pushed into post 3.4 Konqueror. When you work with all kind of web based CMS system (Zope, Wiki, Spip, blogs) it is really painful to edit large texts in an HTML form. What would be nice is a simple generic wysiwig editor for all these wiki-like syntax programs.


By Charles de Miramon at Tue, 2005/02/22 - 6:00am

Not to mention the KMail patch.

It really baffles me that KDE has had this nice, clean KTextEditor interface ofr so long, yet the two of the largest, most visible apps in KDE (KMail, Konqueror), do not take advantage of it.


By Jason Keirstead at Tue, 2005/02/22 - 6:00am

Please vote for bug #37146 ( http://bugs.kde.org/show_bug.cgi?id=37146 ). It is precisely about this.


By Jan Jitse at Tue, 2005/02/22 - 6:00am

How exactly are you supposed to pronounce that name? I don't have even the slightest clue how to.


By Corbin at Tue, 2005/02/22 - 6:00am

why- zeeeee-----iiiii---sssss


By anon at Tue, 2005/02/22 - 6:00am

uhm, "the editor formerly known as vim?" :)


By manyoso at Tue, 2005/02/22 - 6:00am

Actually, "why this".


By anish at Tue, 2005/02/22 - 6:00am

I don't know if thats the official way, but thats now what I'm calling it!


By Corbin at Tue, 2005/02/22 - 6:00am

It's really nice to see this. Actually i am very used to the vi keystrokes and not having kmail and others using ktextpart is really annoying. Is there anything known when this will be regular in kde (or better debian sid?)
Thanks
Tim


By Tim at Tue, 2005/02/22 - 6:00am

Maybe a global option to set the default embeded text editor? Maybe options such as Yzis, Standard (the current one), and possibly more in the future.

I probably wouldn't ever use Yzis because I don't know VIM's key layout (I prefer nano on the console since its much simpler). Though if you knokw VIM's key layout you probably would love Yzis (since now that knowledge wouldn't be confined to the console)


By Corbin at Tue, 2005/02/22 - 6:00am

That's already there! In the control center, go to "KDE Components", then "Component Chooser" (I hope this translation from German is accurate.).

I don't know which KDE apps honour that setting, though.


By cm at Wed, 2005/02/23 - 6:00am

Jep this setting is there, but it is not honoured by kmail. Instead kmail got a imho useless html editor :(. But hey i could have fixed it for myself...
anyway i'm just getting used to the qt toolkit and i have written my first applet which monitors the md raid on linux. So yes i think i will stay with kde :).
Thanks for your ansewers. There are a lot interesting comments on the dot.


By Tim at Wed, 2005/02/23 - 6:00am

Hi,
i get this on slackware 10.1

main.cpp: In function `int main(int, char**)':
main.cpp:67: error: `LC_ALL' undeclared (first use this function)
main.cpp:67: error: (Each undeclared identifier is reported only once for each
function it appears in.)
main.cpp:67: error: `setlocale' undeclared (first use this function)

What to do? thanks


By Markus at Tue, 2005/02/22 - 6:00am

It looks like you are missing some header from gettext-devel or glibc-devel or something like that. Check that you have those two installed. I'm not at all sure about this though.

~Macavity
--
"And remember kids.. If it aint broke.. Hit it again!"


By Macavity at Tue, 2005/02/22 - 6:00am

add #include to main.cpp

This bug is fixed in CVS head.


By arael at Tue, 2005/02/22 - 6:00am

"vi-compatible editor from the authors of KVim"

Why didn't finish the authors kvim? Vim, gvim and vim for Windows are great editor, kvim is pretty unusable. What is the reason for this, is vim hard to port?


By koos at Tue, 2005/02/22 - 6:00am

From http://www.yzis.org/viewcvs/trunk/README?rev=1494&view=auto

History:
========
Before working on Yzis, the authors (Mickael Marchand, Thomas Capricalli and
Philippe Fremy) had been working on GVim. GVim is clearly the best vi
compatible editor today. It contains tons of features, which are very clear
improvements upon the original vi: visual selection, unlimited undo, powerful
syntax highlighting, script language, splitted windows, ...

We did two things with GVim. First, we ported it on KDE and created KVim. The
second step was to make KVim embeddable as an editor component into any KDE
application. The idea was to be able to use a vi editor anywhere: in KDevelop,
in Kate, in KMail, ... We managed to complete both tasks but the second one
was very difficult to achieve and a number of problems could not be overcome.
For example, kvim can not have multiple windows on the same buffer, and thus
won't integrate in Kate.

While working with the gvim code base, we have been comfronted with a growing
amount of difficulites:
- there is a huge pile of C files without much documentation.
- it is difficult to find one's way through the code.
- the code was written in C and has very little abstraction, which make it
difficult to follow.
- the vi engine is tied to the concept of console editor. We have to add hacks
after hacks to make it work as a graphical component (for example, we need
to fork a process, embed a graphical window, and run an event loop at full
speed while still not taking the whole CPU to just make the component work).
- the main author of GVim is very reluctant to add any small change, even
those that won't affect the current behaviour
- the codebase is very big and the author does not want to introduce any new
feature, in fear of breaking something.

So, on one side we had implementation limitations and problems, on the other
side it was not possible to do any new developments on the editor. We
discussed that with the GVim team and came to the conclusion that it was not
possible to work with GVim to have a vi-like editor in KDE as a good
component.

At this point, the decision was simple. Either spend lot of time in working
around limitations of GVim, or dropping the idea of a good vi editor component
for KDE or start a new vi editor. Kudos to Thomas Capricelli and Mickael
Marchand who took over the third decision. This decision was taken shortly
before Fosdem 2003. The design documents and the name were hacked during the
Fosdem.

They put up a website, a subversion server, mailing lists and started
coding. To avoid the many problems of gvim, we took the following decisions:
1. clearly separate the vi engine from the gui
2. use C++ to provide a clean design
3. abstract the views, the buffer and the gui in the engine
4. have a KDE gui
5. have a text gui
6. provide a C interface in case a hard-core C coder wants to contribute
7. use some Qt classes for the engine. Qt would bring a string class that
handles unicode correctly (multibyte support is knightmare in gvim), efficient
lists implementations, and other goodies. Moreover, we were very familiar and
efficient with Qt.
8. Use tinyQ as a backup solution for the people not willing to link with Qt
just for a few template classes.

Over the time, maintaining a C binding to C++ turn out to be quite tedious and
time consuming. It would also make the code quite complicated. So the C
binding was dropped and yzis started to develop slowly but steadily.

We also chose lua as a scripting language. Lua is easy to embed, easy to learn and quite powerful.


By Philippe Fremy at Tue, 2005/02/22 - 6:00am

"2. use C++ to provide a clean design"

Was any thought ever given to writing Yzis in a language like Python or Ruby?


By ac at Wed, 2005/02/23 - 6:00am

I love python but there are at least two reason not to use it for this project:
- speed: redrawing and handling of complex requirements (syntax highlighting, ...) does not make it suitable for python
- reusabilite: C++ is easier to re-use for various usage.

However, writing a python binding would be trivial. With tools like boost, it is a matter of a few days. I am using that for binding some C++ code to python it is just so easy.


By Philippe Fremy at Wed, 2005/02/23 - 6:00am

> knightmare

Now this is taking the K naming convention a little too far, isn't it? :)


By cm at Wed, 2005/02/23 - 6:00am

...the answers to all the following wars/questions:

KDE vs GNOME
VI vs EMACS
LINUX vs WINDOWS
KMAIL vs THUNDERBIRD
KONQUEROR vs FIREFOX

etc. etc.

But seriously, those screenshots look extremely class. Keep up the good work guys!


By standsolid at Tue, 2005/02/22 - 6:00am

Actually one of those recently got a answer, but to keep things interresting it was with a new war/question:

VI vs KATE

:-)


By Morty at Wed, 2005/02/23 - 6:00am

The title says it all really. Many of the other projects in KDE use python or javascript as the scripting language. It would be nice to see lua being optional with python as an alternative.


By Scott Newton at Tue, 2005/02/22 - 6:00am

python is too big to be embedded. It is usually quite complicated to embed the interpreter too.

lua has been designed for easy embedding and has proven to be easy to use. Javascript would have been another good choice. I just happen to know that lua is good for embedding project, and there is a lot of literature on this, and the code was added in less than two days. I don't know if any javascript engine can do the same.


By Philippe Fremy at Wed, 2005/02/23 - 6:00am

Ho man... Yet another languaje. I love python, I have to use perl and PHP and now I need lua...

Are there any plans to enable vim scripts to be used in Yzis ?


By Marioy at Wed, 2005/02/23 - 6:00am

Looks very, very promising. Can't wait for a stable release.


By Kjetil Olsen at Tue, 2005/02/22 - 6:00am

Where are the gentoo ebuilds? :)
I'm too lazy to do *anything* by hand :)


By unknown at Wed, 2005/02/23 - 6:00am