1

我在学习 Vim 进行开发方面已经 5 周左右了,虽然事情开始深入人心,但我有一个令人沮丧的个人问题仍然困扰着我。

我一直在使用“i”来“向上”移动。'k' 是向下的,'j' 和 'l' 分别是左和右。

我知道这一切都来自于玩了太多年的 PC 游戏,而这些都是方向运动。老实说,我不想再与之抗争了,我宁愿做对我来说非常自然的事情。我怎样才能重新映射这些,所以上面是方向运动并且“h”是插入的?

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

4

2 回答 2

10

不要做那个映射!比使用方向键还要糟糕

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

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

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

NORMALmode 下你可以做很多 vim 魔法(这就是它被称为 的原因NORMAL)。使用您的映射,当您想要应用这些映射时,您真的会很头疼。让我们举个例子。假设您已经根据需要设置了映射。i,j,k and h. 我们有一行:

function foo (String arg)

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

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

您可以通过上面的简单示例看到这一点。因此,在重新映射这些基本键之前,请三思而后行。

于 2013-03-04T00:12:43.480 回答
7

把它放在一个名为的文件中~/.vimrc

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

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

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

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

当你使用别人的电脑时。

于 2013-03-03T23:48:50.007 回答