nnoremap j n
nnoremap k e
nnoremap l u
nnoremap h i
inoremap jj <esc>
nnoremap e j
nnoremap u k
nnoremap i l
nnoremap n h
我已经配置了这些自定义映射。当我使用它们时,它可以完美地工作,对于像
2e
这样的运动,它也会像2j
一样工作,并向下移动两行。但问题是,当我想执行 d2j
删除两行时,我的绑定不起作用,当用 d2
击键或作为动作时,键会按原样呈现,即
当我输入 d2e
时,它应该执行 d2j
但它确实执行 d2e
我该如何配置?
Vim 本质上是模态的,意味着它有不同的模式,并且根据模式,
你可以做不同的事情。 Vim 以“正常模式”启动,提供强大的功能
用于导航和文本编辑的命令。毫无疑问,您也会知道插入模式,因为
那就是你写文字的地方。为了回到正常模式,你想出了
映射
:inoremap jj <esc>
仅在插入模式下有效(注意前导
i
)。
顺便说一句,它与您的其他映射无关,所以让我们保持这样。所有其他映射都是使用 :nnoremap
命令创建的,这意味着它们 仅在正常模式下工作。 这是一件好事,您几乎不希望它们处于插入模式。想象击中
J并看到
n
出现在您的文本中。一个鲜为人知的模式是 operator-pending 模式,这就是 Vim 所处的模式
当您输入例如d
并且 Vim 等待动作(或:操作员)。使
你的映射在那里工作,使用
:onoremap
。不久之后,您会想要在视觉模式中选择文本,并想知道为什么
映射在那里也不起作用。使用 :vnoremap
命令。
nnoremap j n
onoremap j n
vnoremap j n
nnoremap k e
onoremap k e
vnoremap k e
nnoremap l u
onoremap l u
vnoremap l u
nnoremap h i
onoremap h i
vnoremap h i
nnoremap e j
onoremap e j
vnoremap e j
nnoremap u k
onoremap u k
vnoremap u k
nnoremap i l
onoremap i l
vnoremap i l
nnoremap n h
onoremap n h
vnoremap n h
你在评论中写道,你是新人,这没有什么可耻的。如果 你是 Vim 新手,你应该知道如何阅读内置的
:help
,你只需要 需要在正常模式下输入
:help
,可以选择后跟您要执行的命令
对...好奇。 Ctrl-D会给你建议。
:help
应该
成为您获取 Vim 信息的第一站。不是谷歌,不是这样。事实证明,:help map-modes
拥有您需要的所有信息。你可以 还跳到
:help :nnoremap
并阅读上面、下面和参考文献
主题。一般来说,在学习 Vim 时,我确信最好从简单的开始
编辑器本身并在疯狂使用映射之前了解其核心功能,
插件和其他附加内容。使用你的切换键,你将很难
遵循 Vim 上的任何教程,无需在心里撤消您的映射。在将我上面写的内容复制到您的vimrc
中之前,请认真考虑一下。
掌握 Vim 并不在于你如何弯曲和破坏它,而是在于你能把它玩得多好。学钢琴,你不会把所有的黑键都撕下来放在白键的右边,因为这样看起来更整齐。虽然选择
hjkl
是因为半个世纪前有人在这些键上画了箭头,但其他一些命令你 地图遵循助记符,如
u
ndo、e
nd-of-word 等,但现已丢失。我不能说我理解创建这些映射的动机。它看起来是一个
有点像您使用德沃夏克键盘,只是 n
不适合 图片。作为我制定的“新用户不应使用插件”规则的例外 如上所述,如果您使用的是深奥的键盘布局,请考虑寻找现有的 使键盘工作的插件。