重新映射vim行结束键

时间:2013-04-22 18:23:13

标签: vim text-editor

在mac键盘中使用vim时的一大烦恼是缺少Home和End键。虽然在vim中有一个解决方法,即

$ for  End of line 
0 for Beginning of line (both in <Esc> mode)

我发现它不直观,因为$位于键盘的左侧,并带您到最右边的文本行,而0位于右侧,则会将您带到行的开头。 有没有办法重新映射键为9开头的行,0为行尾?

我在〜/ .vimrc

中尝试了以下内容
inoremap <Esc>9 <Esc>0
inoremap <Esc>0 <Esc>$

但它似乎没有生效,旧的组合键仍然存在。帮帮我!还让我知道这样做的缺点(如果有的话)?谢谢!

1 个答案:

答案 0 :(得分:19)

inoremap用于插入模式映射。您要找的是nnoremap。例如,你可以试试这个:

nnoremap 0 $
nnoremap 9 0
inoremap <C-A> <Home>
inoremap <C-E> <End>

但是,我个人不会重新映射9,因为有一天你可能会随机需要它(例如9gg9j)。相反,我会选择QKUS,因为它们很难使用。

事实上,我可能会建议让它保持原样。当您了解正则表达式时,$实际上非常直观。它有点难以击中,但总的来说你不需要那么多,因为你有许多命令,例如D映射到d$。当你必须使用香草vim时,它也会更容易。