如何在VIM中跳入括号

如何在VIM中跳入括号,vim,Vim,目前,我正在尝试学习VIM并禁用所有模式的箭头键。在输入新函数时,我总是同时打开和关闭括号,以免忘记它们。因为,我不能返回(没有箭头键),我想知道它是如何在VIM中完成的,因为一旦关闭,您就在括号之外了 退出插入模式,移到括号中,然后再次进入插入模式,这是标准做法吗?还是干脆把括号留着直到你说完 我确实知道自动关闭脚本。这个问题更有助于理解VIM的工作方式,因此我想知道其他开发人员是如何克服这个问题的。忘记右括号将导致以后突出显示问题,使您不太可能进一步忽略这些问题 我建议你在插入句子的时候习惯

目前,我正在尝试学习VIM并禁用所有模式的箭头键。在输入新函数时,我总是同时打开和关闭括号,以免忘记它们。因为,我不能返回(没有箭头键),我想知道它是如何在VIM中完成的,因为一旦关闭,您就在括号之外了

退出插入模式,移到括号中,然后再次进入插入模式,这是标准做法吗?还是干脆把括号留着直到你说完


我确实知道自动关闭脚本。这个问题更有助于理解VIM的工作方式,因此我想知道其他开发人员是如何克服这个问题的。

忘记右括号将导致以后突出显示问题,使您不太可能进一步忽略这些问题


我建议你在插入句子的时候习惯于在括号中间键入参数,一旦你完成了参数,就把父母关起来。(如果你试图学习vim,无论如何,这个变化似乎并没有太大,你需要适应的其他事情已经相当惊人。)

vim模式本质背后的想法是,你大部分时间都在正常模式下,而不是在插入模式下。只有当您想插入文本时,才进入插入模式,当您想做一些不插入原始文本的事情时,就回到正常模式


无论如何,如果出于某种原因不想离开插入模式,可以按
CTRL+o
运行单个正常模式命令。但我建议习惯在模式之间跳跃——切换模式应该是Vim用户的第二天性。

问题:退出插入模式,移到括号中,然后再次进入插入模式是标准做法吗?还是干脆把括号留着直到你说完

答:通常只需键入函数参数,然后键入右括号。但是,是的,如果您已经键入了
,然后决定要返回一个字符,则可能只需按Escape键,然后按
i
在当前位置之前插入。这仅仅是两次击键,有经验的vi用户非常习惯于按Escape键

如果您确实键入了
然后你需要按退出键,然后按
h
i
。如果你经常这样做,你会习惯的


一些组合键成为第二天性。例如,您可以通过点击
x
,在vi中转置两个字符,以删除光标下的字符,并使光标位于下一个字符上;然后
p
,将该字符粘贴到光标位置之后。在我的一生中,我已经输入了足够多的
xp
,我甚至都没有想过它。。。我的手指只知道那些钥匙在哪里。我只是想“哦,我需要交换那些字符”,然后我的手指砰地一声敲出
xp

首先,在命令模式下
%
将您移动到相应的括号、大括号或方括号中

回答你的问题:是的,立即关闭括号、大括号、括号等的人。。。很可能退出命令模式,然后重新进入插入模式以返回编辑

对我来说,我甚至没有注意到这一点。你很快也会一样的

每当我开始一个新的if语句时,我都会立即打开和关闭大括号。在我添加结束括号后,我点击ESCO打开结束括号(或ESCki)上方的行。然后我又开始打字

这不会给我带来不便或问题。所有这些很快就会成为你的第二天性


你甚至不会再去想那些箭头键了。。。您只需使用h返回(或更好的方式)。

您根本不需要停止使用箭头键。那是个愚蠢的想法

hjkl
仅当您触摸type时才比箭头键“更好”,因为它位于起始行。如果你不触摸打字,你的手已经自然地做了很多动作,其他的动作也会随之进行。如果你不触摸键盘,就没有主排

不过,您的问题实际上不是hjkl的问题。您可以通过养成只键入开始括号、参数、结束括号或使用“自动关闭”机制的习惯来解决这个问题

通过将这一行添加到您的
~/.vimrc
,您可以以一种简单的方式完成此操作:

inoremap ( ()<C-o>h
inoremap(()h)

或者使用其中一个。

一个选项是使用键映射跳转到开始的括号/括号。我倾向于立即关闭括号/括号以确保它们平衡(即使vim会生气地告诉我,如果发生这种情况,我错过了它们。你是在说
%
还是
f)
?不,我实际上指的是在括号关闭后如何回到括号中();//光标现在在这里。在其他编辑器中,你只需使用箭头键,但我禁用了我的箭头键以适应VIM模式。在使用VIM的几天之后,你甚至不会注意到进入和退出模式。VIM的目的是让你所做的一切都变成第二天性。这不会花太长时间,年轻的绝地武士。同意……操作甚至不会在使用vim几天后再想想这些事情。vim的全部意义在于,你所做的一切操作文本都变成了第二天性。哈哈,我试着放弃箭头键,因为这是vim用户的一般建议,
hjkl
应该更快,诸如此类。有一半的时间,我发现自己被击中了当我真的想要
h
的时候,用
j
,反之亦然。毕竟箭头键并没有那么糟糕,哈哈。那些坚持放弃hjkl的箭头的人要么是新手,要么是按顺序重复他们不懂的东西