On Tue, Sep 23, 2014 at 08:03:45PM +0200, ale rimoldi wrote: > - o does not go into insert mode (how easy it is to switch my habits to oi?) > - a does not append > - end of line is not the last char in the line but the end of line character > - P does not paste before > > and here the only real bug i noticed: > > - <count>> indents count+1 lines > > [...] > > zt zz zb redraw the current line at the top, center or bottom of the screen > > o O should go into insert mode after adding the line > a appends at the current cursor place > . should also repeat insert actions > $ should jump to the last char in the line not on the hidden return char > in normal mode, when the cursor is at the end of the line it should be on the > last char. > x should not delete the end of line character (but this might be solved with > the placement issue above) > implement the difference between word and WORD
Nice observations with which I agree. I too think that both macros and the visual block mode belong to the essential functionality of Vim. Hopefully I will find the time to work on these for vis. Additionally I found the following differences to Vim (a.k.a. my TODO list...): - 'J' in visual mode is not implemented - 'r' does move the cursor - Visual line mode - dd is not .-able - dd does not work when used at the end of the file - Pasting a yy'd line with 'p' moves the cursor one additional line down - M behaviour when used on file contents smaller than window (bottom vs middle of the shown buffer) - ZZ should be implemented - ZQ should be implemented - 't' stops one character short - Implement ';' and ',' - 'p' does not allow for a count A patch to put the user in insert mode after o/O can be found below. --- diff --git a/vis.c b/vis.c index 3a6a3a3..fa0f379 100644 --- a/vis.c +++ b/vis.c @@ -759,6 +759,7 @@ static void openline(const Arg *arg) { movement(&(const Arg){ .i = arg->i == MOVE_LINE_NEXT ? MOVE_LINE_END : MOVE_LINE_PREV }); insert_newline(NULL); + switchmode(&(const Arg){ .i =VIS_MODE_INSERT }); } static void joinline(const Arg *arg) {