在Vim中,我如何切换'i','j','k'和'h'的功能

时间:2013-03-03 23:38:44

标签: vim

我花了5周左右的时间学习Vim进行开发,当事情开始陷入困境时,我有一个令人沮丧的个人问题仍在绊倒我。

我一直在用'我'来'向上'。 'k'是向下,'j'和'l'分别是左右。

我知道这一切都来自玩多年的PC游戏,这些都是方向运动。老实说,我不想再打它了,我宁愿做一些对我来说非常自然的事情。我怎样才能重新映射这些以便上面是方向移动而'h'是插入?

2个问题:如何将这些永久存储在我自己的机器上进行开发的本地设置中,当我在其他人的机器上工作时,如何快速切换它们。我的意思是,是否有一组命令可以调用,然后当我关闭Vim时它们会被删除?

2 个答案:

答案 0 :(得分:10)

不要做映射!它比使用箭头键更糟糕

首先,我建议你学习移动光标的vim方法。

回到你的问题,重新映射h,j,k,l很容易。但是,进行这些映射没有任何意义(并且你不应该这样做),它不会让你工作得更快,它只会让你在使用你的vim时发疯。你知道,用vim编辑并不意味着

  • 在NORMAL模式下,只需移动光标
  • 进入INSERT模式,进行实际文本编辑
  • 返回NORMAL模式以保存文件

你可以在NORMAL模式下做很多vim魔术(这就是为什么它被称为NORMAL)。你的映射,当你想要应用它们时,你会真的很头疼。我们来举个例子吧。假设您已经为您的需求设置了映射。 i,j,k and h。我们有一条线:

function foo (String arg)

当光标位于()之间时,您可以输入ci(来更改括号中的内容。但是,i表示k。会发生什么?当前行和它上面的行将被删除!!那么你可以说,你会记得键入chw, dhw,ch(,dhw...所以你必须在你脑海中重新映射这些键。 :)

此外,当您想“借用”别人的.vimrc或使用某些插件时,您也会遇到问题。

您可以通过上面的简单示例看到这一点。因此,在重新映射这些基本密钥之前,请先考虑两次。

答案 1 :(得分:5)

将其放在名为~/.vimrc的文件中:

noremap i k
noremap k j
noremap j h
noremap h i

如果您在其他人的计算机上使用vim,则可以在提示符处键入相同的四个命令(在每个命令前键入:,然后在每个命令后输入),这些设置仅适用于1个会话。

此外,nonoremap的缩写,因此您可以将整个序列缩短为

:no i k<enter>:no k j<enter>:no j h<enter>:no h i<enter>

当你使用别人的电脑时。