目前,我正在尝试学习VIM并禁用所有模式的箭头键。在键入新函数时,我总是习惯于同时打开和关闭括号,以免忘记它们。因为,我不能回去(没有箭头键)我想知道它是如何在VIM中完成的,因为一旦关闭,你就在括号之外。
退出INSERT模式,进入括号并再次进入INSERT模式是标准做法吗?或者你只是让括号打开直到你完成?
我知道AutoClose脚本。这个问题更有助于理解VIM的做事方式,所以我想知道其他开发人员如何克服这个问题。
答案 0 :(得分:7)
忘记一个右括号会导致以后突出显示问题,使你不太可能进一步忽视它们。
我建议习惯在你输入时在括号中间输入参数,并在完成参数后关闭parens。 (如果你正在努力学习vim
,无论如何,这种变化看起来似乎不太大,无法适应 - 你必须适应的其他事物的数量已经非常惊人了。)
答案 1 :(得分:3)
Vim模态性质背后的想法是你将大部分时间花在普通模式上,而不是插入模式。只有当你想要插入文本时才进入插入模式,并且只要你想做一些没有插入原始文本的东西 - 你就会回到普通模式。
无论如何,如果由于某种原因您不想退出插入模式,可以按CTRL+o
运行单个正常模式命令。但我建议习惯在模式之间跳转 - 切换模式应该是Vim用户的第二种性质。
答案 2 :(得分:2)
问题:退出INSERT模式,进入括号并再次进入INSERT模式是标准做法吗?或者你只是让括号打开直到你完成?
答案:更常见的方法是输入函数参数,然后输入右括号。但是,是的,如果你已经键入了)
,然后你决定要回到一个角色,你可能只需点击Escape键,然后点击i
插入当前位置。这只是两次击键,经验丰富的vi用户非常习惯于击中Escape键。
如果您实际输入了);
,则需要点击退出键,然后点击h
和i
。如果你这么做,你就会习惯它。
某些键组合成为第二天性。例如,你可以通过点击x
来转换vi中的两个字符,删除光标下的字符并使光标位于下一个字符上;然后p
,粘贴光标位置后的那个字符。我在生活中输入了xp
足够的次数,我甚至都没想过......我的手指只知道那些钥匙在哪里。我只是想“噢,我需要换掉那些角色”,然后我的手指砰地一声xp
。
答案 3 :(得分:2)
首先,在命令模式%
中,您将移动到相应的括号,括号或括号。
回答你的问题:是的,立即关闭他们的parens,大括号,括号等的人...很可能退出命令模式然后重新进入插入模式以返回编辑。
对我来说,这甚至都不是我注意到的。很快就会对你有所帮助。
每当我开始一个新的if语句时,我立即打开并关闭大括号。添加结束括号后,我按 ESC O 打开我的右大括号上方的行(或 ESC k 我)。然后我又开始打字了。
这绝不会给我带来不便或问题。所有这些对你很快就会成为第二天性......
你甚至不会再考虑那些箭头键......你只需要使用 h 返回(或更好的东西)。
答案 4 :(得分:1)
一种选择是使用键映射跳转到左括号/括号。我倾向于立即关闭括号/括号以确保它们是平衡的(即使vim会愤怒地让我知道如果发生这种情况我会错过它们 - 习惯的力量)。将此映射放在vimrc中:
getActionBar
这是命令细分:
.empty().append()
映射到.html()
(恢复正常模式),imap <C-S-h> <esc> :call search("[{[(]", "bes")<CR> i
向后搜索一个开括号/括号并跳转到它,最后<CTRL-SHIFT-h>
返回插入模式所以我可以输入<ESC>
,然后:call search("[({[]", "bes")<CR>
来跳回括号以提供参数。
有点相关:看一下vim-surround plugin,一旦掌握了它就会成为一种生产力助推器!
答案 5 :(得分:0)
你不根本不需要停止使用箭头键。这是一个愚蠢的想法。
如果你触摸类型, hjkl
比箭头键 “更好”,因为它在主行上。如果你没有触摸类型,你的手已经自然地做了很多的动作,并且伸手去拿箭头键。如果你没有触摸类型,则没有主页。
但是,您的问题实际上不是hjkl
vs箭头问题。您可以通过养成只输入左括号,然后是参数,然后是右括号或使用“自动闭合”机制的习惯来解决它。
您可以通过将此行添加到~/.vimrc
:
inoremap ( ()<C-o>h