I understand that when in insert mode the cursor is described as between characters, and when in normal mode the cursor is supposed to be on a valid character. I have been having a lot of trouble with this behavior recently. If I enter insert mode I will use _ to represent the cursorand append some text to the end of a line_When I exit insert mode the cursor is dropped to the beginning of the line below it so I would end up here:and append some text to the end of a line_This really breaks up my flow when I am typing and I would like to modify the behavior so that the cursor is instead left at the end of the line. Since there is no character there ...I know it wont just stay here_But I would prefer it if the cursor just moved to the character before when I exit insert mode So I would end up her_Pretending there is an e at the end of that line and I have the cursor on it. Does anyone know a way to achieve this? All of the documentation I have read suggests that this is the normal behavior anyway. I have remapped <esc> to jk but if I remove that from my .vimrc I still en up at the beginning of the next line 
cursor behavior when exiting  mode
insert mode;cursor
Thanks to the comment by @muru I was able to figure this out. I turns out in my .vimrc I had this line to remap jk to <esc> inoremap jk <esc>but there was a space inserted at the end of the line. If I remove the space the problem is fixed. I did not realize that white space characters were important when making these customization. This blog pointed out that any characters used (even white-space) when remapping commands were interpreted.  