Hello! A few days ago I wrote the following to [EMAIL PROTECTED]:
> I'd like to switch to vim but there is an annoying issue with > it that I couldn't solve. > > When the cursor is at a tab character most editors display > the cursor at the beginning of the interval the tab character > occupies as follows (_ is the cursor): > > _ if (a > c) ... > > Vim does the same in insert or replace mode. But in normal > mode the cursor is displayed at the end of the tab character: > > _if (a > c) ... > > Is there a way to make vim show the cursor at the beginning > of a tab character in normal mode as it does in insert mode? > > I tried searching in Google but found nothing unfortunatelly :( Then I got a reply that said it's impossible without vim code modification so I decided to find out how to fix that. I seem to find the solution (the patch is at the end of this email) but it is so simple that I can't understand why it hasn't been done yet (since I know several people that are irritated by this "feature" of vim). I guess this mailing list is the best place to ask whether I miss anything. Here are my questions: 1. Are there any obvious problems/bugs with the patch itself? In other words, does it breaks anything very "basic" so that it definitely breaks some basic functionality or some plugins? 2. If there are no problems with it, do you have any wishes to apply it to the trunk? (And what the reasons for not doing so?) If so, I would add an option called, say, cursorattabstart that will trigger the new behaviour and resend the patch here for anyone of you to commit. -- Vladimir The patch follows (should be applied to just unpacked vim-7.2.tar.bz2): diff -Naur vim72.orig/src/charset.c vim72/src/charset.c --- vim72.orig/src/charset.c 2008-07-24 18:59:44.000000000 +0400 +++ vim72/src/charset.c 2008-10-02 21:44:18.000000000 +0400 @@ -1333,7 +1333,7 @@ if (start != NULL) *start = vcol + head; if (end != NULL) - *end = vcol + incr - 1; + *end = vcol; if (cursor != NULL) { if (*ptr == TAB @@ -1345,7 +1345,7 @@ && (*p_sel == 'e' || ltoreq(*pos, VIsual))) #endif ) - *cursor = vcol + incr - 1; /* cursor at end */ + *cursor = vcol; /* cursor at end */ else *cursor = vcol + head; /* cursor at start */ } --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---