Im on mac and I have my terminal cursor set to the vertical bar option. However in vim command mode the cursor is the vertical bar but it wont let me use hjkl to go to the end of the line, it always stops right before the end. This is especially annoying because you have to use the arrow keys in insert mode to make the cursor go the end of the line. Any fix would be appreciated
eg: hello worl | d , what I want is hello world |
I think you're looking for
set virtualedit=onemore
.From
:help 'virtualedit'
:I've never noticed any problems myself, so it seems reasonably safe in spite of the warning.
In case you're using iTerm2, there's a little trick: You can automatically switch your cursor depending on your mode. This works better if your default cursor is the block cursor, and you only want a vertical bar in insert mode, but I'll show it nevertheless:
This instructs vim to print those strings when entering (
&t_SI
) and exiting (&t_EI
) insert mode. iTerm2 has a bunch of proprietary escape codes that interpret the strings as instructions to change the cursor shape.All you then would need to do is somehow print
"\<Esc>]50;CursorShape=0\x7"
when starting vim and"\<Esc>]50;CursorShape=1\x7"
when exiting it. For that, you can use autocmds:This automatically changes your cursor shape to a box when entering vim, and then restores it to a vertical bar when exiting.