6

在 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>$

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

4

1 回答 1

24

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

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

但是,我个人不会重新映射 9,因为您可能有一天会随机需要它(例如9ggor 9j)。相反,我会选择Q, K,US因为它们几乎不被使用。

事实上,我可能会建议保持原样。$当您学习正则表达式时,实际上是非常直观的。它有点难打,但一般来说你不会那么需要它,因为你有很多命令,比如Dmap to d$. 当你不得不使用香草 vim 时,它也会更容易。

于 2013-04-22T19:01:46.037 回答