From 7d56dde690975cda4c5704a13472a010bd5ae315 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Wed, 25 Jan 2012 21:09:38 -0500 Subject: [PATCH] Fix cursor position when using colemak. The langmap parameter breaks Gentoo's vimrc code to restore previous cursor positions from viminfo. Write a function that does not depend on the current keyboard bindings. --- plugin/keymap.vim | 22 ++++++++++++++++++++++ vimrc | 5 ----- 2 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 plugin/keymap.vim diff --git a/plugin/keymap.vim b/plugin/keymap.vim new file mode 100644 index 0000000..f53735f --- /dev/null +++ b/plugin/keymap.vim @@ -0,0 +1,22 @@ +" Copyright © 2012 Nick Bowler +" +" Set langmap based on the KEYMAP environment variable. This allows key +" bindings to work properly regardless of the keyboard layout. +" +" License WTFPL2: Do What The Fuck You Want To Public License, version 2. +" This is free software: you are free to do what the fuck you want to. +" There is NO WARRANTY, to the extent permitted by law. + +if $KEYMAP == "colemak" + set langmap=sd,fe,tf,dg,ui,nj,ek,il,kn,yo,\\;p,pr,rs,gt,lu,jy,SD,FE,TF,DG,UI,NJ,EK,IL,KN,YO,:P,PR,RS,GT,LU,JY,o\\;,O: +endif + +" Disable Gentoo's default cursor position handling, because it is broken wrt. +" langmap. +let g:leave_my_cursor_position_alone=1 + +" Jump to last cursor position when editing a file. +autocmd BufReadPost * + \ if line("'\"") > 0 && line("'\"") <= line("$") | + \ execute "goto" line2byte(line("'\"")) | + \ endif diff --git a/vimrc b/vimrc index 472aa4e..a76c222 100644 --- a/vimrc +++ b/vimrc @@ -6,11 +6,6 @@ syntax on " Try to prevent vim from seeing terminal escape sequences with user input set timeoutlen=100 -" langmaps for non-standard layouts -if $KEYMAP == "colemak" - set langmap=sd,fe,tf,dg,ui,nj,ek,il,kn,yo,\\;p,pr,rs,gt,lu,jy,SD,FE,TF,DG,UI,NJ,EK,IL,KN,YO,:P,PR,RS,GT,LU,JY,o\\;,O: -endif - " Mouse Stuff set mouse=a :map 5 -- 2.43.2