Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
Programming Software IT Technology

Vim 6.4 Released 419

file cabinet writes to tell us that for the first time in more than a year Vim has released a new version. Version 6.4 stable was released yesterday and while there are no new features added they are touting dozens of bug fixes.
This discussion has been archived. No new comments can be posted.

Vim 6.4 Released

Comments Filter:
  • "Because we use vi [io.com], son; they use emacs."

    In good sadness, though, I'm looking forward to the spell-checking [vim.org] in Vim 7.

    • The vimspell script works well.
      Regards,
      Steve
    • by falzer ( 224563 ) on Monday October 17, 2005 @01:41AM (#13807407)
      VIM is *not* user friendly, and until it is VIM will stay with <= 1% marketshare.

      Take editing text. Vim zealots are now saying "oh editing text is so easy, just use the hjkl keys to move around and use ":%s/apple/apricot/gi" to do a search and replace. Yes, because typing in "5kck}" is so much more intuitive than simply moving the cursor, selecting two lines of text with the mouse, then hitting the } key.

      VIM zealots are far too forgiving when judging the difficultly of VIM interface issues and far too harsh when judging the difficulty of Notepad issues. Example comments:

      User: "How do I fucking edit this goddamn text file!? Why does Linux only come with vi installed?"
      Zealot: "Oh that's easy! Just go vim <the file you want to edit>. No no, wait, don't type anything yet. It won't work the sa-- ok hit escape, ok, hit u a few times, ok you're back to where you started. Now vi works a little differently than most text editors: there is command mode and edit mode. Vim starts in command mode where you issue commands (such as hjkl) to move the cursor around, d followed by a movement command to delete lines of text, or i (for example) to insert text. Pretty much almost every letter of the alphabet (upper and lower case) is a command. When you go into a text editing mode by issuing the appropriate command, you type your text like normal then hit escape to back out. You type :q to quit, or ZZ / :wq to save and quit. Sometimes you need to put in a ! after a : command to force it. Quite elegant, don't you think?"

      User: "How do I edit text files using notepad?"
      Zealot: "Oh God, you have to use the graphical luser interface to open a text file. Then use the arrow keys (or optionally mouse) to position the cursor where you want to type. Now you've gotta actually enter in the text using the keyboard! Careful though, it might break, it just blithely assumes that what you're typing is text and not commands!"

      So, I guess the point I'm trying to make is that what seems easy and natural to VIM geeks is definitely not what regular people consider easy and natural. Hence, the preference towards notepad.
      • by Demerol ( 306753 ) on Monday October 17, 2005 @01:48AM (#13807428) Homepage
        No one says vim is user friendly. It's not supposed to be. It's supposed to be powerful, and it is. It's hard to learn and it probably always will stay with 1% of the market share but I don't think the developers really care for increasing market share. Remember...it's free in every sense.

        And in reply to the troll before you:

        vim does have mouse support (:set mouse=a) in both terminal and, obviously, gui modes.

        Also, :set wrap will solve your other qualm.
        • by p2sam ( 139950 ) on Monday October 17, 2005 @04:45AM (#13807867)
          I'd disagree with you about the user friendlyness of vim. I think Vim is one of the most user friendly editors out there. It's highly ergonomic, and easy to use. BUT!! It is not easy to learn.

          That's right. Easy to use, and Easy to learn are two different things. Easy to use means that one can accomplish a task with minimal effort. Easy to learn means just that, easy to learn. The two are not necessary mutually exclusive, but I have yet to see a text editor that has both.

          Modern UI designers have fallen into the tar pit of designing ONLY for new users, so that tasks can be performed easily by new users, but becomes difficult to use for the power user. In that sense, most modern IDE's are easy to learn, but hard to use.

          In my opinion, I'd rather spend a few days learning to use a tool that will increase my long term productivity.
        • No one says vim is user friendly. It's not supposed to be.

          Actually, when vi was first released, it was very user-friendly, at least compared to the default editor ed, which is a line editor, and which was generally the only other text editor available on most UNIX systems.
          (If you want to compare the two, type "ed <some file>" at the command prompt on most *IX systems (including cygwin under MS-Windows), and try to edit the file.
          Vi(m) is so much better.)
          Even when editing on a DECWriter (a hard-copy t

      • Hm, for some reason notepad doesn't work from ssh. With commands like cl, cw and so on. VIM makes the perfect editor for quick edits on a remote computer.
      • by hereticmessiah ( 416132 ) on Monday October 17, 2005 @02:25AM (#13807522) Homepage
        Have you read Neal Stevenson's "In the Beginning Was the Command Line"? If you had, you wouldn't be spouting this nonsense.

        Seriously, go read this section: http://tinyurl.com/9qukb [tinyurl.com]

        In it, he compares two devices: a heavy duty industrial drill called the Hole Hawg, and your basic power drill. Both do the same thing--drill holes--but their intent is different. The Hole Hawg is designed to drill through anything, whereas the regular power drill is designed for household use. The power drill lacks the power of the Hole Hawg, but has safety features that the Hole Hawg can't afford to have because of this. Whereas the Hole Hawg will keep spinning if it hits something hard (and therefore requires a large amount of strength to keep steady), whereas the power drill will slow down if it encounters too much resistance.

        Similarly, Vim is the Hole Hawg of text editors, whereas notepad is a regular powerdrill. Both have different intentions, with the former being designed for heavy-duty text editing as a programmer or highly technical user would need, and the latter designed for occasional light editing, the kind most non-technical users do. The intent is different and so the interfaces differ.

        It's very, very difficult to create a deep, powerful interface that is easily discoverable. At best, you can make it as learnable as possible. This is what Vim attempts to do. Notepad goes for a shallow, easily discoverable interface at the expense of power.
        • > ...Vim is the Hole Hawg of text editors, whereas notepad is a
          > regular powerdrill. Both have different intentions, with the
          > former being designed for heavy-duty text editing as a programmer
          > or highly technical user would need, and the latter designed for
          > occasional light editing, the kind most non-technical users do.
          > The intent is different and so the interfaces differ.

          Exactly correct. That's why a lot of people preferred WordStar to Word or WordPerfect. and we still remember the hot
        • The conclusion most will draw from your argument rests on a faulty implication: that vi was intended to be more featureful than Notepad.

          If Bill Joy had had access to the screen capabilities of a graphics engine, instead of a glass-TTY, there might never have been a Notepad, because vi would have had a mouse and a cursor and still would have had need to put all of vi's "power" into the editor he chose to write.

          Vi isn't as "easy to use" as Notepad because Bill Joy lacked the technology. Notepad isn't as "po
      • I've been using vi editors fo ages for the simple reason that nothing else was available. Well, I wouldn't have used Notepad (I don't think I've ever used notepad) but something with a more modern interface would certainly have been welcome. And if you don't like vi, go play with the system editor on VMS, it's not much better.

        The purpose of vim isn't to make a user friendly editor, it's to make a better vi. vi isn't a user friendly editor, it's a horrible relic from another age which however happens to be :
      • Vim's not easy to use?

        I beg to differ: Cream for Vim [sf.net].

  • by CyricZ ( 887944 ) on Monday October 17, 2005 @12:00AM (#13807024)
    I want to say thanks to all of the VIM developers who have helped create such an amazing piece of software. Indeed, I don't think we can even begin to consider how much other software has been written by developers using VIM.

  • by poind3xt3r ( 890661 ) on Monday October 17, 2005 @12:02AM (#13807035)
    Dozens of bugs have been fixed, runtime files were added and updated. There are no new features They are focusing more on fixing problems rather than add new features and in essence adding new bugs. Its rare to see updates which are meant for donzens of fixes. A smart approach.
    • by CyricZ ( 887944 )
      I mean, it is the 6.4 release. Many projects typically do not add features after a major release. It's the minor point releases that focus on fixing bugs. So in this case it's the fourth round of bugfixes.

    • by keesh ( 202812 ) on Monday October 17, 2005 @12:27AM (#13807156) Homepage
      No no no. The features are being added in the 7.x branch, which you can get from CVS. 6.x is purely for maintenance (ie bugfixes). This is a mixed blessing... It means 6.x is extremely stable, but if you want new goodies like spellchecking and intelligent autocompletion, you have to switch to the CVS only branch.

      It's a tricky decision. Some projects are way over on the side of "keep throwing out new versions with new features and new bugs". Vim is way over on the other extreme: "release 'new feature' releases every few years and keep the stable branch working". For end users it's a mixed blessing.

      Fortunately, the 7.x branch is pretty much stable (as in every day usable) at the moment. I've been using the Gentoo ebuilds (package.masked), which means I get a CVS snapshot which has been at least reasonably well checked and had any icky bugs fixed. I'd hate to miss out on the new toys. The 'numberwidth feature alone makes it worth the upgrade, even if 'spell didn't exist.
      • by m50d ( 797211 )
        No no no. The features are being added in the 7.x branch, which you can get from CVS. 6.x is purely for maintenance (ie bugfixes). This is a mixed blessing... It means 6.x is extremely stable, but if you want new goodies like spellchecking and intelligent autocompletion, you have to switch to the CVS only branch.

        For a piece of basic system software, it's more important that there's a stable branch that's actually stable. Now if only Linus would see things this way.

  • More than a year? At least that's quicker than Microsoft....
  • by Morganth ( 137341 ) on Monday October 17, 2005 @12:07AM (#13807066) Journal
    I just wanted to point out that Intellisense (context-sensitive completion based on parsing or "understanding" code) is the #1 most voted VIM feature. You should add your own votes (with your hard-earned cash, if you will) if you want to see this feature come to VIM.

    I personally do want this feature. It would make VIM the perfect text editor, IMO. Right now, VIM's completion is already pretty good, and a couple people have implemented completion as a plugin, but it usually ends up being a hack. I think Bram can figure out a nice way to do it for Vim 7.

    People who know how to use VIM well find themselves really productive in it. But, that said, I end up being slightly more productive writing Java code in Eclipse, ONLY because of completion, even though all my other editing features from VIM aren't there (or are buried).

    What I usually end up doing is keeping a console handy and switching between Eclipse and VIM when I have to do Java, but that's not that nice. I think Vim can pull this off.

    http://www.vim.org/sponsor/vote_results.php [vim.org]
    • Indeed, finding out a "nice" way of doing it is essential. Nothing is more of a hassle than having Eclipse or the Visual Studio IDE autocomplete a keyword, identifier, and so on, incorrectly. Going back and correcting its error can take three or four times the amount of time it would've taken to type in the text manually.

      At least it's possible that it would not be enabled by default.

    • by kaisyain ( 15013 ) on Monday October 17, 2005 @12:54AM (#13807247)
      He's already added it in the Vim 7 sources. It was initially called occult completion but is now called omni completion. (Intellisense is a trademarked term.) Read the vim dev list for more details.
    • I'd actually like to see a Java port of vim. I looked at the source code and it doesn't seem too hard. The vast majority of code is ifdef's for various architectures; this could all be replaced with one straight implementation in Java. The rest of the code seems fairly well encapsulated in object-like structures, so it should be somewhat easy.

      This would make integrating jvim into eclipse and adding intellisense into it much easier. Of course it would be slower and hunkier, but it would still be cool to
    • by Anthony Liguori ( 820979 ) on Monday October 17, 2005 @02:17AM (#13807497) Homepage
      People who know how to use VIM well find themselves really productive in it. But, that said, I end up being slightly more productive writing Java code in Eclipse, ONLY because of completion, even though all my other editing features from VIM aren't there (or are buried).

      Sorry, I don't mean to be a bastard here, but this is my biggest pet peeve. I *hate* Intellisense or whatever the hell it's called. I think syntax autocompletion is ruining a new generation of programmers.

      Here's my reasoning. Writing code that always works is hard. Writing code that works some of the time is easy. To write code that works all of the time you have to understand the exact behavior of every function you call and handle all possible scenarios properly. It's the difference between writing:
      read(fd, &myInt, 4);
      And then writing a wrapper around read that checks for EAGAIN, EINTR, performs endianness conversion, handles partial reads, and potentially implements this all asynchronously. Back to my original point though, it takes time to learn all of the sublities of an API. The best way to learn them is by studying the interfaces (reading manuals, man pages, whatever).

      If you cannot remember the name of a function, go back to the manual and study it. You're going to not handle the edge cases of it. If it's Java, you'll ignore a potential exception. If it's C, you'll miss a potential error code.

      I'm not against all the features in things like Eclipse. Some of the refactoring stuff is useful. It's just intellisense that drives me nuts.
      • Guess what. You don't have to use intellisense if you don't want to. That was easy wasn't it.
      • by plastik55 ( 218435 ) on Monday October 17, 2005 @03:01AM (#13807616) Homepage
        Eh? When Eclipse offers completions of a function for me it shows me the javadoc! So when I 'm getting ready to call a function I can see all the edge cases and caveats documented for me on the screen. That's much better than being a macho/masochistic programmer and thinking I remember everything about a function from the last time I used in in a different context.


        No one remembers all the edge cases, especially people who think they've got it all so memorized that they don't bother to double-check the documented behavior while they're calling functions.

      • If you cannot remember the name of a function, go back to the manual and study it.

        Don't think it's just for when you forget something - most of the time, I remember how to type gtk_menu_get_attach_widget(), and what arguments it needs; I just can never be bothered to type it over and over again.
      • Autocompletion is not meant (at least as I perceive it) to help you remember the names of functions (although it's a big help there). It's meant to make you type the names faster, which can be a GODSEND if you use names like "intDocumentClassFontState" (overkill, but you get the meaning, and I know using prefixes in dynamically typed languages is wrong, but I like it). I want to be able to read my code when I look at it after having forgotten what it's about. Comments help, but they can only get you so far
  • by yagu ( 721525 ) * <yayagu@[ ]il.com ['gma' in gap]> on Monday October 17, 2005 @12:08AM (#13807071) Journal

    Sometimes I think Bram Moolenaar doesn't get enough credit for what he's done almost single-handedly. vim is an amazing piece of software. I've been using it almost since the day it arrived, and I was a vi user who thought vi was everything. But Bram brought vim and immediately began carefully, but boldly, extending vi, without the constraints of waiting for POSIX standards anointing any changes to vi.

    Credit to Bill Joy also (and to AT&T, for "sc") for the pre-cursors and inspirations for vim.

    vi in and of itself is a workhorse with its philosophy of "no gui or mouse necessary", and while vim now has its gui rendition (I never use it), the underlying philosophy and principles remain intact. Color syntax alone is worth it. If you haven't tried vim, you should. For raw and pure editing, there's nothing better (don't flame me, emacs people... please). I've often challenged people to editing faceoffs... where I'd dialup at 1200 baud (yes, I've been around for a while), and they could use ANY editor, at any connection speed, and I'd beat them at making a set of edits against a file.)

    (Aside: how many vi users out there have spuriously put "www, jjj, bbb, G " in their comments when they used the browser text widgets.)

    • by CyricZ ( 887944 ) on Monday October 17, 2005 @12:22AM (#13807134)
      ... but it is also a fantastic pager. Using it instead of less or more to quickly scan over source code is a blessing! Indeed, you get the syntax highlighting of a GUI editor, but without the overhead. You can view files instantly from the command line, and they're very nicely formatted.

    • Editor faceoffs. I've won several of those with vi on my belt. When we get to use the whole toolkit, I'll often whip out some temp files and use awk a bit (for column processing). I've got two questions for someone out there with better vi skills than I.

      How would a vi pro do CSV test processing? How would you take the text between the second and third commas and replace it with arbitrary text?

      Ignoring CSV for a minute, if you'd like to replace all text from the 20th through 23rd characters of arbitrar

      • How would a vi pro do CSV test processing?

        with a perl script. written on vim of course!!
      • Ignoring CSV for a minute, if you'd like to replace all text from the 20th through 23rd characters of arbitrary text with the string "abcd", how would you do it?

        You mean something like this ? :%s@^\(.\{19\}\).\{4\}@\1abcd@g

        Although I would usually do that using sed, not vim.

        In text processing, the workload determines the ability of a "ve" user (internal IBM tool) to surpass my vi efficiency. Typically, it's when the ve user mouse selects a column and then does replaces on it. I'd like to mimic this behavior
    • by trb ( 8509 ) on Monday October 17, 2005 @01:12AM (#13807305)
      Credit to Bill Joy also (and to AT&T, for "sc") for the pre-cursors and inspirations for vim.

      Joy wrote vi, with help from Mark Horton, both then at UC Berkeley. This back around 1980, on PDP-11s, and eventually Vaxen. If by se, you mean the Bell Labs PWB screen editor, that was quite a clumsy piece of software meant to compete with vi, and with the ports of emacs to UNIX (separate versions by Gosling and Zimmerman, predating the GNU effort). I am shocked that anyone remembers PWB se, it was short-lived and pretty obscure. How obscure? Is there one ref to it on the web? That's obscure!

      While you're thanking, you might want to thank the UNIX folks who brought us "ed," Ken Thompson (and Kernighan wrote the docs, as always). The ed command set survives as the basis for vi/vim :command mode - including the regexes. ed was based on editors that came before it of course, especially QED.

  • Bug fixes (Score:5, Funny)

    by patrickclay ( 898576 ) on Monday October 17, 2005 @12:11AM (#13807084) Homepage
    I hope they fixed the bug that made you type all those weird key combinations to write to a file and save.
    • :w

      Wow, ain't that hard?

      Type "ZZ" to save and quit. Those are indeed capitalised, and Shift is right next to Z.
    • Re:Bug fixes (Score:2, Interesting)

      by Waffle Iron ( 339739 )
      You can fix it yourself. Add to your .vimrc file:
      nmap <C-S> :w<CR>
      imap <C-S> <Esc>:w<CR>
      Now Ctl+S works just like it does in notepad.exe.
      • Re:Bug fixes (Score:3, Informative)

        by dedazo ( 737510 )
        Or you could just source mswin.vim (typically found under $VIMRUNTIME) and essentially have a MS-style keymap emulation. Put it in your ~/.vimrc, and make sure you include the 'behave mswin' line before you source it.
  • by _Hellfire_ ( 170113 ) on Monday October 17, 2005 @12:18AM (#13807109)
    ...welcome our new 18 fingered overlords!

    (yes I'm a daily vim user)

    Keep up the fantastic work guys - vim is one of those apps which is actually a pleasure to use.
  • by earthbound kid ( 859282 ) on Monday October 17, 2005 @12:18AM (#13807116) Homepage
    The last version of Emacs came complete with Vim v. 10.03c! ;)
  • by Rhinobird ( 151521 ) on Monday October 17, 2005 @12:38AM (#13807198) Homepage
    Because, I thought that I distinctly heard the words "Flame On".

    Like priming an enclosed area with flammable fumes. Someone is going to mention Emacs and this place is going to explode.
  • by MrBoring ( 256282 ) on Monday October 17, 2005 @12:47AM (#13807224)
    First, I use VIM not so much because I think it's the best text editor, but because it's corrupted my thought process so much that I keep using those cryptic Vi commands in other programs when typing more than a few words. That said, I do feel most productive in Vim or Vi on systems which don't have Vim (such as z/OS). People don't understand why one would use Vi, until they've mastered it so well that they can nearly look at a point in the screen or think of where they want to be, and the cursor arrives there without remembering which keystrokes got them there. One of my biggest reasons for using it is that there is *no* project, workspace, solution or whatever, that I have to set up before being able to do real work. I like that.


    As for wishes:
    1. Better language completion, if any, language completion.
    2. Better editing of binary files.
    3. Support for multiple code pages. This may be possible already, but I haven't deciphered the manual enough to figure out how.
    4. Support for working with change control systems. I'd like to be able to edit a file in a CCS and have the title bar reflect the release, level, etc that I'm editing, rather than a cryptic temporary file.
    5. A better head on my own shoulders to remember all the set commands needed to operate it.

    I really can't complain though, because if the above never got implemented, I'd still use it. I've used the editor for years, and still keep learning it.

  • by wk633 ( 442820 ) on Monday October 17, 2005 @12:47AM (#13807226)
    Ok, some vim guru on here must know, what's the windows vim equivelent of vi's ^V? In vim, it does a frickin' paste! So how do I search for, say ^M? Or enter a macro which includes inserts I need to esc from? Not being able to find that anywhere in the help is the one thing I hate about vim.
  • I have been a ardent fan of this editor and have been using it consistently for over 3 years now. And I really feel that vim has reached a maturity level where no more development is necessary.
    And if it lacks a feature, just write a plugin for the same. If you ask me this is how softwares must be developed - in a fully modular manner.

    Kudos to vim developers :)
  • VIM? (Score:2, Funny)

    by thomble ( 642879 )
    ...puh-lease. I write everything in machine code.
  • Yipee! (Score:4, Interesting)

    by callipygian-showsyst ( 631222 ) on Monday October 17, 2005 @01:07AM (#13807289) Homepage
    I am a VIM (and vi) fanatic! Which people find strange, because I'm also a Windows Zealot! I have the GUI version of VIM installed on every Windows machine I use, and I even have a version of Visual Studio that substitutes VIM as the editor.

    The problem is I learned vi so long ago (back in the late 70s when Bill Joy released it), that I simply can't learn anything else. Of course, growing up on TICO and other editors before vi made moving to vi natural.

    I have tried many, many times to switch to emacs and always fail. I'm just too old and too stuck in my ways to switch.

    • Re:Yipee! (Score:3, Funny)

      by p2sam ( 139950 )
      I started using Emacs in 2nd year university, but switched to Vim after realizing that I don't want to learn elisp. :) I also think I'm too old to change now, I'm 25. ;-)
      • Re:Yipee! (Score:3, Interesting)

        by chthon ( 580889 )

        You should be modded funny. I am 39, I have used vi(m) for almost 6 years, and now I am learning emacs. I like them both.

        I find the opening of files and switching between buffers easier on emacs.

        Also, when I do a compile on Emacs with 'perl -c' I can automatically go to the errors in the Perl code. In vim, I had to enter manually the regular expressions for matching those.

        I do not know with what I am going to end up in the long run. vim is faster for editing config files, emacs makes it easier on long ru

    • Re:Yipee! (Score:4, Funny)

      by commodoresloat ( 172735 ) on Monday October 17, 2005 @03:07AM (#13807628)
      I am a VIM (and vi) fanatic! Which people find strange, because I'm also a Windows Zealot!

      I bet you're loads of fun at parties!

  • by 2Bits ( 167227 ) on Monday October 17, 2005 @01:15AM (#13807320)
    Look, as good as vim could be, at this rate, you are not going to catch up with emacs, which is already at version 21.x or something. Which just proved that emacs is much better. If you don't believe, here is some proofs:

    1- Emacs has a much higher version number, which proves to be a more mature software, which proves to be better (more mature is better)

    2- Even an icon such as RMS whom has been proved to be more intelligent than the average USians, uses Emacs. This shows that smart people always make the right choice, and in reverse, proves that Emacs is better than Vim.

    3- Everyone in Cryptonomicon, which is the bibile of all geeks, uses Emacs. We even have a module for encryption. It would take a long time for Vim to catch up to that kind of functionalities.

    4- Only in Emacs can you do Ctrl-A to move the beginning of a line. In one shot. How could you do that in
    Vim? You have to Esc, then press 0, which is lame. Which just shows how advanced Emacs is in terms of maturity and functionality.

    5- As the theorem goes, computer science is a science for minimizing keystrokes. Emacs, in contrast to Vim, can prove this theorem right. Emacs users press less keys than Vim users.

    6- Humans have 10 fingers (some may have more, but I don't know how to grow them), and Emacs allows you to use all your fingers at one. Which shows you that Emacs has a better human user interface. In contrast, Vim users can only type one key at a time, which has no concept of fingers. That is like an interface for dogs, which can only press one key at a time with their paws.

    7- Emacs allows users to stretch their fingers more, and finger exercise has been proved, again and again, scientifically, to help increase human intelligence. The more you use Emacs, the more you become intelligent. Unlike Vim users, who become dumber and dumber, and end up with paws.

    8- Everyone knows that geeks do no exercise. But we Emacs users have our daily dose of finger exercise. As a result, Emacs users have better shape. Take a look at the comparison: RMS (Emacs user) vs ESR (Vi user). RMS definitely looks better, with a nicer beard too. ESR can only have a lousy Asterix moustache. And look at what these two persons said in public, which just proved points 2, 6, and 7.

    9- Look at this deductive proof I'm giving right now. Only an Emacs user can attain this level of intellect.

    10- As a result of the last 9 points, this proves that Emacs is better. And from an evolutionary point of view, Emacs is like modern humans, and Vim like chimpanzee.

    * putting on flame suite *

  • by fm6 ( 162816 ) on Monday October 17, 2005 @01:17AM (#13807329) Homepage Journal
    ... don't forget that it's charityware [vim.org].
  • by Pecisk ( 688001 ) on Monday October 17, 2005 @01:23AM (#13807353)
    When I first saw vi, I thought - WTF. It is suitable for text editing!? Vi, for my point of view, is one of underdogs of software world. And yes, it really truely shines when we talk about remotently editing 40K file over 2800 baud modem or even on system with space about...emm...four megabytes? :)

    Yes, there are Word, OO.o Writer, Gedit, Kedit, Pico, Nano, whatever...and there is vi. Freedom of choice does strange things, doesn't it?
  • change log (Score:3, Informative)

    by m()p3s ( 888808 ) on Monday October 17, 2005 @01:32AM (#13807385)
    The change log;
    ----------------
    This section is about improvements made between version 6.3 and 6.4.

    This is a bug-fix release.  There are also a few new features.  The major number of new items is in the runtime files and translations.

    The big MS-Windows version now uses:
        Ruby version 1.8.3
        Perl version 5.8.7
        Python version 2.4.2

    Changed                            *changed-6.4*
    -------

    Removed runtime/tools/tcltags, Exuberant ctags does it better.

    Added                            *added-6.4*
    -----
    Alsaconf syntax file (Nikolai Weibull)
    Eruby syntax, indent, compiler and ftplugin file (Doug Kearns)
    Esterel syntax file (Maurizio Tranchero)
    Mathematica indent file (Steve Layland)
    Netrc syntax file (Nikolai Weibull)
    PHP compiler file (Doug Kearns)
    Pascal indent file (Neil Carter)
    Prescribe syntax file (Klaus Muth)
    Rubyunit conpiler file (Doug Kearns)
    SMTPrc syntax file (Kornel Kielczewski)
    Sudoers syntax file (Nikolai Weibull)
    TPP syntax file (Gerfried Fuchs)
    VHDL ftplugin file (R. Shankar)
    Verilog-AMS syntax file (S. Myles Prather)

    Bulgarian keymap (Alberto Mardegan)
    Canadian keymap (Eric Joanis)

    Hungarian menu translations in UTF-8 (Kantra Gergely)
    Ukrainian menu translations (Bohdan Vlasyuk)

    Irish message translations (Kevin Patrick Scannell)

    Configure also checks for tclsh8.4.

    Fixed                            *fixed-6.4*
    -----
    "dFxd;" deleted the character under the cursor, "d;" didn't remember the exclusiveness of the motion.

    When using "set laststatus=2 cmdheight=2" in the .gvimrc you may only get one line for the cmdline. (Christian Robinson)  Invoke command_height() after the GUI has started up.

    Gcc would warn "dereferencing type-punned pointer will break strict -aliasing rules".  Avoid using typecasts for variable pointers.

    Gcc 3.x interprets the -MM argument differently.  Change "-I /path" to "-isystem /path" for "make depend".

    Patch 6.3.001
    Problem:    ":browse split" gives the file selection dialog twice. (Gordon Bazeley)  Same problem for ":browse diffpatch".
    Solution:   Reset cmdmod.browse before calling do_ecmd().
    Files:        src/diff.c, src/ex_docmd.c

    Patch 6.3.002
    Problem:    When using translated help files with non-ASCII latin1 characters in the first line the utf-8 detection is wrong.
    Solution:   Properly detect utf-8 characters.  When a mix of encodings is detected continue with the next language and avoid a "no matches" error because of "got_int" being set.  Add the directory name to the error message for a duplicate tag. Files:        src/ex_cmds.c

    Patch 6.3.003
    Problem:    Crash when using a console dialog and the first choice does not have a default button. (Darin Ohashi)
    Solution:   Allocate two more characters for the [] around the character for the default choice.
    Files:        src/message.c

    Patch 6.3.004
    Problem:    When searching for a long string (140 chars in a 80 column terminal) get three hit-enter prompts. (Robert Webb)
    Solution:   Avoid the hit-enter prompt when giving the message for wrapping around the end of the buffer.  Don't give that message again when the string was not found.
    Files:        src/message.c, src/search.c

    Patch 6.3.005
    Problem:    Crash when searching for a pattern with a character offset and starting in a closed fold. (Frank Butler)
    Solution:   Check for the column to be past the end of the line.  Also fix that a pattern with a character offset relative to the end isn't read back from the viminfo properly.
    Files:        src/search.c

    Patch 6.3.006
    Problem:    ":breakadd file *foo" prepends the current directory to the file pattern. (Hari Krishna Dara)
    Solution:   Keep the pattern as-is.
    Files:        src/ex_cmds2.c

    Patch 6.3.007
    Problem:    When there is a buffer with 'buftype' set to "nofile" and using a ":cd" command, the swap file is not deleted when exiting.
    Solution:   Use the full path of the swap file also for "nofile" buffers.
    Files:        src/fileio.c

    Patch 6.3.008
    Problem:    Compiling fails under OS/2.
    Solution:   Include "e_screenmode" also for OS/2. (David Sanders)
    Files:        src/globals.h

    Patch 6.3.009 (after 6.3.006)
    Problem:    ":breakadd file /path/foo.vim" does not match when a symbolic link is involved.  (Servatius Brandt)
    Solution:   Do expand the pattern when it does not start with "*".
    Files:        runtime/doc/repeat.txt, src/ex_cmds2.c

    Patch 6.3.010
    Problem:    When writing to a named pipe there is an error for fsync() failing.
    Solution:   Ignore the fsync() error for devices.
    Files:        src/fileio.c

    Patch 6.3.011
    Problem:    Crash when the completion function of a user-command uses a "normal :cmd" command.  (Hari Krishna Dara)
    Solution:   Save the command line when invoking the completion function.
    Files:        src/ex_getln.c

    Patch 6.3.012
    Problem:    Internal lalloc(0) error when using a complicated multi-line pattern in a substitute command. (Luc Hermitte)
    Solution:   Avoid going past the end of a line.
    Files:        src/ex_cmds.c

    Patch 6.3.013
    Problem:    Crash when editing a command line and typing CTRL-R = to evaluate a function that uses "normal :cmd". (Hari Krishna Dara)
    Solution:   Save and restore the command line when evaluating an expression for CTRL-R =.
    Files:        src/ex_getln.c, src/ops.c, src/proto/ex_getln.pro,
            src/proto/ops.pro

    Patch 6.3.014
    Problem:    When using Chinese or Taiwanese the default for 'helplang' is wrong. (Simon Liang)
    Solution:   Use the part of the locale name after "zh_".
    Files:        src/option.c

    Patch 6.3.015
    Problem:    The string that winrestcmd() returns may end in garbage.
    Solution:   NUL-terminate the string. (Walter Briscoe)
    Files:        src/eval.c

    Patch 6.3.016
    Problem:    The default value for 'define' has "\s" before '#'.
    Solution:   Add a star after "\s". (Herculano de Lima Einloft Neto)
    Files:        src/option.c

    Patch 6.3.017
    Problem:    "8zz" may leave the cursor beyond the end of the line. (Niko Maatjes)
    Solution:   Correct the cursor column after moving to another line.
    Files:        src/normal.c

    Patch 6.3.018
    Problem:    ":0argadd zero" added the argument after the first one, instead of before it. (Adri Verhoef)
    Solution:   Accept a zero range for ":argadd".
    Files:        src/ex_cmds.h

    Patch 6.3.019
    Problem:    Crash in startup for debug version. (David Rennals)
    Solution:   Move the call to nbdebug_wait() to after allocating NameBuff.
    Files:        src/main.c

    Patch 6.3.020
    Problem:    When 'encoding' is "utf-8" and 'delcombine' is set, "dw" does not delete a word but only a combining character of the first character, if there is one. (Raphael Finkel)
    Solution:   Correctly check that one character is being deleted.
    Files:        src/misc1.c

    Patch 6.3.021
    Problem:    When the last character of a file name is a multi-byte character and the last byte is a path separator, the file cannot be edited.
    Solution:   Check for the last byte to be part of a multi-byte character. (Taro Muraoka)
    Files:        src/fileio.c

    Patch 6.3.022 (extra)
    Problem:    Win32: When the last character of a file name is a multi-byte character and the last byte is a path separator, the file cannot be written.  A trail byte that is a space makes that a file cannot be opened from the command line.
    Solution:   Recognize double-byte characters when parsing the command line. In mch_stat() check for the last byte to be part of a multi-byte character. (Taro Muraoka)
    Files:        src/gui_w48.c, src/os_mswin.c

    Patch 6.3.023
    Problem:    When the "to" part of a mapping starts with its "from" part,  abbreviations for the same characters is not possible.  For example, when <Space> is mapped to something that starts with a space, typing <Space> does not expand abbreviations.
    Solution:   Only disable expanding abbreviations when a mapping is not remapped, don't disable it when the RHS of a mapping starts with the LHS.
    Files:        src/getchar.c, src/vim.h

    Patch 6.3.024
    Problem:    In a few places a string in allocated memory is not terminated with a NUL.
    Solution:   Add ga_append(NUL) in script_get(), gui_do_findrepl() and serverGetVimNames().
    Files:        src/ex_getln.c, src/gui.c, src/if_xcmdsrv.c, src/os_mswin.c

    Patch 6.3.025 (extra)
    Problem:    Missing NUL for list of server names.
    Solution:   Add ga_append(NUL) in serverGetVimNames().
    Files:        src/os_mswin.c

    Patch 6.3.026
    Problem:    When ~/.vim/after/syntax/syncolor.vim contains a command that reloads the colors an endless loop and/or a crash may occur.
    solution:   Only free the old value of an option when it was originally allocated.  Limit recursiveness of init_highlight() to 5 levels.
    Files:        src/option.c, src/syntax.c

    Patch 6.3.027
    Problem:    VMS: Writing a file may insert extra CR characters.  Not all terminals are recognized correctly.  Vt320 doesn't support colors. Environment variables are not expanded correctly.
    Solution:   Use another method to write files.  Add vt320 termcap codes for colors.  (Zoltan Arpadffy)
    Files:        src/fileio.c, src/misc1.c, src/os_unix.c, src/structs.h, src/term.c

    Patch 6.3.028
    Problem:    When appending to a file the BOM marker may be written.  (Alex Jakushev)
    Solution:   Do not write the BOM marker when appending.
    Files:        src/fileio.c

    Patch 6.3.029
    Problem:    Crash when inserting a line break. (Walter Briscoe)
    Solution:   In the syntax highlighting code, don't use an old state after a change was made, current_col may be past the end of the line.
    Files:        src/syntax.c

    Patch 6.3.030
    Problem:    GTK 2: Crash when sourcing a script that deletes the menus, sets 'encoding' to "utf-8" and loads the menus again.  GTK error message when tooltip text is in a wrong encoding.
    Solution:   Don't copy characters from the old screen to the new screen when switching 'encoding' to utf-8, they may be invalid.  Only set the tooltip when it is valid utf-8.
    Files:        src/gui_gtk.c, src/mbyte.c, src/proto/mbyte.pro, src/screen.c

    Patch 6.3.031
    Problem:    When entering a mapping and pressing Tab halfway the command line isn't redrawn properly. (Adri Verhoef)
    Solution:   Reposition the cursor after drawing over the "..." of the completion attempt.
    Files:        src/ex_getln.c

    Patch 6.3.032
    Problem:    Using Python 2.3 with threads doesn't work properly.
    Solution:   Release the lock after initialization.
    Files:        src/if_python.c

    Patch 6.3.033
    Problem:    When a mapping ends in a Normal mode command of more than one character Vim doesn't return to Insert mode.
    Solution:   Check that the mapping has ended after obtaining all characters of the Normal mode command.
    Files:        src/normal.c

    Patch 6.3.034
    Problem:    VMS: crash when using ":help".
    Solution:   Avoid using "tags-??", some Open VMS systems can't handle the "?" wildcard.  (Zoltan Arpadffy)
    Files:        src/tag.c

    Patch 6.3.035 (extra)
    Problem:    RISC OS: Compile errors.
    Solution:   Change e_screnmode to e_screenmode.  Change the way
            __riscosify_control is set.  Improve the makefile.  (Andy Wingate)
    Files:        src/os_riscos.c, src/search.c, src/Make_ro.mak

    Patch 6.3.036
    Problem:    ml_get errors when the whole file is a fold, switching 'foldmethod' and doing "zj". (Christian J. Robinson) Was not  deleting the fold but creating a fold with zero lines.
    Solution:   Delete the fold properly.
    Files:        src/fold.c

    Patch 6.3.037 (after 6.3.032)
    Problem:    Warning for unused variable.
    Solution:   Change the #ifdefs for the saved thread stuff.
    Files:        src/if_python.c

    Patch 6.3.038 (extra)
    Problem:    Win32: When the "file changed" dialog pops up after a click that gives gvim focus and not moving the mouse after that, the effect of the click may occur when moving the mouse later. (Ken Clark) Happened because the release event was missed.
    Solution:   Clear the s_button_pending variable when any input is received.
    Files:        src/gui_w48.c

    Patch 6.3.039
    Problem:    When 'number' is set and inserting lines just above the first displayed line (in another window on the same buffer), the line numbers are not updated.  (Hitier Sylvain)
    Solution:   When 'number' is set and lines are inserted/deleted redraw all lines below the change.
    Files:        src/screen.c

    Patch 6.3.040
    Problem:    Error handling does not always work properly and may cause a buffer to be marked as if it's viewed in a window while it isn't. Also when selecting "Abort" at the attention prompt.
    Solution:   Add enter_cleanup() and leave_cleanup() functions to move saving/restoring things for error handling to one place.
            Clear a buffer read error when it's unloaded.
    Files:        src/buffer.c, src/ex_docmd.c, src/ex_eval.c,
            src/proto/ex_eval.pro, src/structs.h, src/vim.h

    Patch 6.3.041 (extra)
    Problem:    Win32: When the path to a file has Russian characters, ":cd %:p:h" doesn't work. (Valery Kondakoff)
    Solution:   Use a wide function to change directory.
    Files:        src/os_mswin.c

    Patch 6.3.042
    Problem:    When there is a closed fold at the top of the window, CTRL-X CTRL-E in Insert mode reduces the size of the fold instead of scrolling the text up. (Gautam)
    Solution:   Scroll over the closed fold.
    Files:        src/move.c

    Patch 6.3.043
    Problem:    'hlsearch' highlighting sometimes disappears when inserting text in PHP code with syntax highlighting. (Marcel Svitalsky)
    Solution:   Don't use pointers to remember where a match was found, use an index.  The pointers may become invalid when searching in other lines.
    Files:        src/screen.c

    Patch 6.3.044 (extra)
    Problem:    Mac: When 'linespace' is non-zero the Insert mode cursor leaves pixels behind. (Richard Sandilands)
    Solution:   Erase the character cell before drawing the text when needed.
    Files:        src/gui_mac.c

    Patch 6.3.045
    Problem:    Unusual characters in an option value may cause unexpected behavior, especially for a modeline. (Ciaran McCreesh)
    Solution:   Don't allow setting termcap options or 'printdevice' in a modeline.  Don't list options for "termcap" and "all" in a
    modeline.  Don't allow unusual characters in 'filetype', 'syntax', 'backupext', 'keymap', 'patchmode' and 'langmenu'.
    Files:        src/option.c, runtime/doc/options.txt

    Patch 6.3.046
    Problem:    ":registers" doesn't show multi-byte characters properly. (Valery Kondakoff)
    Solution:   Get the length of each character before displaying it.
    Files:        src/ops.c

    Patch 6.3.047 (extra)
    Problem:    Win32 with Borland C 5.5 on Windows XP: A new file is created with read-only attributes. (Tony Mechelynck)
    Solution:   Don't use the _wopen() function for Borland.
    Files:        src/os_win32.c

    Patch 6.3.048 (extra)
    Problem:    Build problems with VMS on IA64.
    Solution:   Add dependencies to the build file. (Zoltan Arpadffy)
    Files:        src/Make_vms.mms

    Patch 6.3.049 (after 6.3.045)
    Problem:    Compiler warning for "char" vs "char_u" mixup. (Zoltan Arpadffy)
    Solution:   Add a typecast.
    Files:        src/option.c

    Patch 6.3.050
    Problem:    When SIGHUP is received while busy exiting, non-reentrant functions such as free() may cause a crash.
    Solution:   Ignore SIGHUP when exiting because of an error. (Scott Anderson)
    Files:        src/misc1.c, src/main.c

    Patch 6.3.051
    Problem:    When 'wildmenu' is set and completed file names contain multi-byte characters Vim may crash.
    Solution:   Reserve room for multi-byte characters. (Yasuhiro Matsumoto)
    Files:        src/screen.c

    Patch 6.3.052 (extra)
    Problem:    Windows 98: typed keys that are not ASCII may not work properly. For example with a Russian input method. (Jiri Jezdinsky)
    Solution:   Assume that the characters arrive in the current codepage instead of UCS-2.  Perform conversion based on that.
    Files:        src/gui_w48.c

    Patch 6.3.053
    Problem:    Win32: ":loadview" cannot find a file with non-ASCII characters. (Valerie Kondakoff)
    Solution:   Use mch_open() instead of open() to open the file.
    Files:        src/ex_cmds2.c

    Patch 6.3.054
    Problem:    When 'insertmode' is set <C-L>4ixxx<C-L> hangs Vim. (Jens Paulus) Vim is actually still working but redraw is disabled.
    Solution:   When stopping Insert mode with CTRL-L don't put an Esc in the redo buffer but a CTRL-L.
    Files:        src/edit.c

    Patch 6.3.055 (after 6.3.013)
    Problem:    Can't use getcmdline(), getcmdpos() or setcmdpos() with <C-R>= when editing a command line.  Using <C-\>e may crash Vim. (Peter Winters)
    Solution:   When moving ccline out of the way for recursive use, make it available to the functions that need it.  Also save and restore ccline when calling get_expr_line().  Make ccline.cmdbuf NULL at the end of getcmdline().
    Files:        src/ex_getln.c

    Patch 6.3.056
    Problem:    The last characters of a multi-byte file name may not be displayed in the window title.
    Solution:   Avoid to remove a multi-byte character where the last byte looks like a path separator character. (Yasuhiro Matsumoto)
    Files:        src/buffer.c, src/ex_getln.c

    Patch 6.3.057
    Problem:    When filtering lines folds are not updated. (Carl Osterwisch)
    Solution:   Update folds for filtered lines.
    Files:        src/ex_cmds.c

    Patch 6.3.058
    Problem:    When 'foldcolumn' is equal to the window width and 'wrap' is on Vim may crash.  Disabling the vertical split feature breaks compiling.  (Peter Winters)
    Solution:   Check for zero room for wrapped text.  Make compiling without vertical splits possible.
    Files:        src/move.c, src/quickfix.c, src/screen.c, src/netbeans.c

    Patch 6.3.059
    Problem:    Crash when expanding an ":edit" command containing several spaces with the shell. (Brian Hirt)
    Solution:   Allocate enough space for the quotes.
    Files:        src/os_unix.c

    Patch 6.3.060
    Problem:    Using CTRL-R CTRL-O in Insert mode with an invalid register name still causes something to be inserted.
    Solution:   Check the register name for being valid.
    Files:        src/edit.c

    Patch 6.3.061
    Problem:    When editing a utf-8 file in an utf-8 xterm and there is a multi-byte character in the last column, displaying is messed up. (Jo&#235;l Rio)
    Solution:   Check for a multi-byte character, not a multi-column character.
    Files:        src/screen.c

    Patch 6.3.062
    Problem:    ":normal! gQ" hangs.
    Solution:   Quit getcmdline() and do_exmode() when out of typeahead.
    Files:        src/ex_getln.c, src/ex_docmd.c

    Patch 6.3.063
    Problem:    When a CursorHold autocommand changes to another window (temporarily) 'mousefocus' stops working.
    Solution:   Call gui_mouse_correct() after triggering CursorHold.
    Files:        src/gui.c

    Patch 6.3.064
    Problem:    line2byte(line("$") + 1) sometimes returns the wrong number.
            (Charles Campbell)
    Solution:   Flush the cached line before counting the bytes.
    Files:        src/memline.c

    Patch 6.3.065
    Problem:    The euro digraph doesn't always work.
    Solution:   Add an "e=" digraph for Unicode euro character and adjust the
            help files.
    Files:        src/digraph.c, runtime/doc/digraph.txt

    Patch 6.3.066
    Problem:    Backup file may get wrong permissions.
    Solution:   Use permissions of original file for backup file in more places.
    Files:        src/fileio.c

    Patch 6.3.067 (after 6.3.066)
    Problem:    Newly created file gets execute permission.
    Solution:   Check for "perm" to be negative before using it.
    Files:        src/fileio.c

    Patch 6.3.068
    Problem:    When editing a compressed file xxx.gz which is a symbolic link to
            the actual file a ":write" renames the link.
    Solution:   Resolve the link, so that the actual file is renamed and
            compressed.
    Files:        runtime/plugin/gzip.vim

    Patch 6.3.069
    Problem:    When converting text with illegal characters Vim may crash.
    Solution:   Avoid that too much is subtracted from the length. (Da Woon Jung)
    Files:        src/mbyte.c

    Patch 6.3.070
    Problem:    After ":set number linebreak wrap" and a vertical split, moving
            the vertical separator far left will crash Vim. (Georg Dahn)
    Solution:   Avoid dividing by zero.
    Files:        src/charset.c

    Patch 6.3.071
    Problem:    The message for CTRL-X mode is still displayed after an error for
            'thesaurus' or 'dictionary' being empty.
    Solution:   Clear "edit_submode".
    Files:        src/edit.c

    Patch 6.3.072
    Problem:    Crash in giving substitute message when language is Chinese and
            encoding is utf-8. (Yongwei)
    Solution:   Make the msg_buf size larger when using multi-byte.
    Files:        src/vim.h

    Patch 6.3.073
    Problem:    Win32 GUI: When the Vim window is partly above or below the
            screen, scrolling causes display errors when the taskbar is not on
            that side.
    Solution:   Use the SW_INVALIDATE flag when the Vim window is partly below or
            above the screen.
    Files:        src/gui_w48.c

    Patch 6.3.074
    Problem:    When mswin.vim is used and 'insertmode' is set, typing text in
            Select mode and then using CTRL-V results in <SNR>99_Pastegi.
            (Georg Dahn)
    Solution:   When restart_edit is set use "d" instead of "c" to remove the
            selected text to avoid calling edit() twice.
    Files:        src/normal.c

    Patch 6.3.075
    Problem:    After unloading another buffer, syntax highlighting in the current
            buffer may be wrong when it uses "containedin". (Eric Arnold)
    Solution:   Use "buf" intead of "curbuf" in syntax_clear().
    Files:        src/syntax.c

    Patch 6.3.076
    Problem:    Crash when using cscope and there is a parse error (e.g., line too
            long). (Alexey I. Froloff)
    Solution:   Pass the actual number of matches to cs_manage_matches() and
            correctly handle the error situation.
    Files:        src/if_cscope.c

    Patch 6.3.077 (extra)
    Problem:    VMS: First character input after ESC was not recognized.
    Solution:   Added TRM$M_TM_TIMED in vms_read().  (Zoltan Arpadffy)
    Files:        src/os_vms.c

    Patch 6.3.078 (extra, after 6.3.077)
    Problem:    VMS: Performance issue after patch 6.3.077
    Solution:   Add a timeout in the itemlist.  (Zoltan Arpadffy)
    Files:        src/os_vms.c

    Patch 6.3.079
    Problem:    Crash when executing a command in the command line window while
            syntax highlighting is enabled. (Pero Brbora)
    Solution:   Don't use a pointer to a buffer that has been deleted.
    Files:        src/syntax.c

    Patch 6.3.080 (extra)
    Problem:    Win32: With 'encoding' set to utf-8 while the current codepage is
            Chinese editing a file with some specific characters in the name
            fails.
    Solution:   Use _wfullpath() instead of _fullpath() when necessary.
    Files:        src/os_mswin.c

    Patch 6.3.081
    Problem:    Unix: glob() may execute a shell command when it's not wanted.
            (Georgi Guninski)
    Solution:   Verify the sandbox flag is not set.
    Files:        src/os_unix.c

    Patch 6.3.082 (after 6.3.081)
    Problem:    Unix: expand() may execute a shell command when it's not wanted.
            (Georgi Guninski)
    Solution:   A more generic solution than 6.3.081.
    Files:        src/os_unix.c

    Patch 6.3.083
    Problem:    VMS: The vt320 termcap entry is incomplete.
    Solution:   Add missing function keys.  (Zoltan Arpadffy)
    Files:        src/term.c

    Patch 6.3.084 (extra)
    Problem:    Cygwin: compiling with DEBUG doesn't work.  Perl path was ignored.
            Failure when $(OUTDIR) already exists.  "po" makefile is missing.
    Solution:   Use changes tested in Vim 7. (Tony Mechelynck)
    Files:        src/Make_cyg.mak, src/po/Make_cyg.mak

    Patch 6.3.085
    Problem:    Crash in syntax highlighting code. (Marc Espie)
    Solution:   Prevent current_col going past the end of the line.
    Files:        src/syntax.c

    Patch 6.3.086 (extra)
    Problem:    Can't produce message translation file with msgfmt that checks
            printf strings.
    Solution:   Fix the Russian translation.
    Files:        src/po/ru.po, src/po/ru.cp1251.po

    Patch 6.3.087
    Problem:    MS-DOS: Crash. (Jason Hood)
    Solution:   Don't call fname_case() with a NULL pointer.
    Files:        src/ex_cmds.c

    Patch 6.3.088
    Problem:    Editing ".in" causes error E218. (Stefan Karlsson)
    Solution:   Require some characters before ".in".  Same for ".orig" and others.
    Files:        runtime/filetype.vim

    Patch 6.3.089
    Problem:    A session file doesn't work when created while the current
            directory contains a space or the directory of the session files
            contains a space. (Paolo Giarrusso)
    Solution:   Escape spaces with a backslash.
    Files:        src/ex_docmd.c

    Patch 6.3.090
    Problem:    A very big value for 'columns' or 'lines' may cause a crash.
    Solution:   Limit the values to 10000 and 1000.
    Files:        src/option.c

    Patch 6.4a.001
    Problem:    The Unix Makefile contained too many dependencies and a few
            uncommented lines.
    Solution:   Run "make depend" with manual changes to avoid a gcc
            incompatibility.  Comment a few lines.
    Files:        src/Makefile

    Patch 6.4b.001
    Problem:    Vim reports "Vim 6.4a" in the ":version" output.
    Solution:   Change "a" to "b". (Tony Mechelynck)
    Files:        src/version.h

    Patch 6.4b.002
    Problem:    In Insert mode, pasting a multi-byte character after the end of
            the line leaves the cursor just before that character.
    Solution:   Make sure "gP" leaves the cursor in the right place when
            'virtualedit' is set.
    Files:        src/ops.c

    Patch 6.4b.003 (after 6.4b.002)
    Problem:    The problem still exists when 'encoding' is set to "cp936".
    Solution:   Fix the problem in getvvcol(), compute the coladd field correctly.
    Files:        src/charset.c, src/ops.c

    Patch 6.4b.004
    Problem:    Selecting a {} block with "viB" includes the '}' when there is an
            empty line before it.
    Solution:   Don't advance the cursor to include a line break when it's already
            at the line break.
    Files:        src/search.c
    ----------------------
  • by MichaelSmith ( 789609 ) on Monday October 17, 2005 @02:07AM (#13807468) Homepage Journal

    Neither of these two editors works like the sort of editor which people are exposed to these days. Why do you have to have an insert mode? This "feature" came from vi but for me it is exactly like bolting primitive editing behaviors on to more or less

    In my day job as a senior programmer I introduce new staff to nedit [nedit.org]. I also tell them to make their own choices about the tools they use. Most continue to use nedit because it has a few simple features which enhance usability. For example each function has a menu item, and each menu item tells you which key to use as an alternate way to reach the function. You don't have to worry about which mode it is in. Simple standard actions like opening and closing a file work in exactly the same way as other editors like gedit.

    So for me people use vi(m) and emacs out of habit. Unless these tools improve they have no serious future in competition with eclipse, etc. Neither does nedit, for that matter but it will at least provide a better option for people new to *nix.

    • by oneandoneis2 ( 777721 ) * on Monday October 17, 2005 @06:19AM (#13808056) Homepage

      Why do you have to have an insert mode? This "feature" came from vi but for me it is exactly like bolting primitive editing behaviors on to more or less

      Try this: Go into Microsoft Windows, press the "Alt" button once, and then try to type Hello, world.

      Funnily enough, instead of the key presses resulting in text going into the document, it'll navigate the menus. Why? Because it's just gone from Insert mode to a Command mode. It's exactly the same principle as Vi - sometimes you want key presses to result in text on the screen, and sometimes you want it to do something. It's not "primitive editing behaviour", it's exactly the same behaviour as is used in the most advanced word processors available. (And MS Word as well ;o) It's just not a visible, GUI-based Command mode in vi, is all.

      So for me people use vi(m) and emacs out of habit.

      I don't - I came to Linux a few years ago, needed a text editor, tried a few and settled on vi. Well, vim actually. It's a really good text editor once you learn it.

  • by chrysalis ( 50680 ) on Monday October 17, 2005 @04:04AM (#13807754) Homepage
    int main(void)
    {
    for(;;) {
    get_keystroke();
    bell();
    flash_screen();
    }
    return 0; /* NOTREACHED */
    }
  • by vigilology ( 664683 ) on Monday October 17, 2005 @08:38AM (#13808398)
    Sorry if this rant is misplaced, but I see this as not an insignificant problem amongst newer GUI editors today.

    There seems to be a growing (or at least more and more visible) practise of editors (especially GUI editors) not including EOL at the end of every line. They treat it as a line separator, not a line terminator, resulting in no EOL at the end of the last line.

    Because of this, they also display lines incorrectly. I have noticed it with the editors in ZDE, Eclipse, and Scite. It only serves to create confusion when they interpret an EOL as 'start a new line', and actually start to display another line as if it already existed. This is very visible if you create a 'proper' text file you'll have to use a well-behaved text editor like vim for this) and open it in one of the above editors. It will display an extra line below the real last line of the file. You see something like this:

    1 first line
    2 middle line
    3 last line
    4

    There are actually three lines in the text file and you can confirm this with 'wc -l '.

    There is a lot of confusion with people who don't understand the concept of EOL and what these editors are doing. For example, I have people at work who use ZDE and when they open a text file created by me (vim), they go bonkers because they think I've put an extra blank line at the bottom of my scripts. There have been problems in the past with people really putting unnecessary blank lines at the bottom of scripts, and of course this lead to premature headers errors. Naturally, they think I'm doing the same, because they don't realise that their editor is displaying the file incorrectly.

    I have one colleague who even wrote into our 'coding guidelines' recommending people not use vim because "it puts in extra characters that you don't ask for".

    I have noticed that Redhat's default emacs configuration (FC3 at least) also opens text files in binary mode by default, resulting in a missing EOL on the last line of a newly created text file.

    I'd like to know if I have the wrong idea about anything, but the question remains: what is the reason for these editors behaving this way?

    • If I had the points, I'd mod you up. I'm not familiar with ZDE or Scite, but I work with data transferred between different companies with a variety of systems. We end up writing custom adapter scripts to correct this kind of data format. End of line and end of file characters and character sequences are not universally standard. But sometimes they are completely and uniquely querky.

      I don't mind that so much. What winds me up is when they ask us to write export adaptor scripts to screw the data up a

Wasn't there something about a PASCAL programmer knowing the value of everything and the Wirth of nothing?

Working...