我经常使用PHP和Javascript,我发现我经常在一个地方的中间添加一个开括号(
(调用函数或其他东西)然后我需要移到最后关闭它的线...
示例(编辑前):
array(
'key' => 'value sometimes long and with \',() in string',
示例(在初始编辑之后 - 关闭paren )
上的退出插入模式):
array(
'key' => Class::method('value sometimes long and with \',() in string',
^ cursor here after exiting insert mode
插入模式下所需的光标位置:
array(
'key' => Class::method('value sometimes long and with \',() in string',
cursor before comma in insert mode ^
显然,我可以$hi
移动到行尾,向后移动一个字符并进入插入模式......或者我可以执行A<
在EOL进入插入模式左箭头一个地方。
我想知道是否有人知道更容易/更好的方法吗?
更好的是,我想象一个简单的函数来“知道”最后一个字符是逗号还是分号,并移动到最后一个字符,只有当最后一个字符是逗号或分号时才向左移动。
伪代码构思:$("am I on a comma or semicolon" ? h : )i
答案 0 :(得分:4)
我会使用Tim Pope提供的优秀Surround.vim插件来iClass::method<Esc>lva'S)
。
答案 1 :(得分:2)
我能想到的唯一标准键序列是使用 Ctrl-o 来执行一次性正常命令。例如。 Ctrl-o $ 左会让你进入正确的位置。如果您有imap <C-b> <Left>
,则可以在不离开主页的情况下执行此操作。
答案 2 :(得分:2)
我已经习惯了TextMate时代的自动角色配对。在Vim中有一堆插件提供这种功能;我使用DelimitMate。
当您键入第一个字符时,想法是自动关闭()[]{}''""
对。这样,你就不必去做你正在谈论的体操。