1

我经常使用 PHP 和 Javascript,我发现我经常(在某处的某处(调用函数或其他东西)的中间添加一个左括号,然后我需要移动到行尾来关闭它。 .

示例(编辑前):

array(
  'key' => 'value sometimes long and with \',() in string',

示例(在初始编辑后 - 在关闭括号上退出插入模式)):

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

4

3 回答 3

4

我会iClass::method<Esc>lva'S)使用 Tim Pope 出色的Surround.vim插件。

于 2012-08-15T06:05:15.363 回答
2

我能想到的唯一标准键序列是Ctrl-o用于执行一次性正常命令。例如Ctrl-o$Left,会让你进入正确的位置。如果你有imap <C-b> <Left>,你可以在不离开主行的情况下做到这一点。

于 2012-08-15T03:02:43.647 回答
2

在我的 TextMate 时代,我已经习惯了自动字符配对。Vim 中有很多插件提供该功能。我使用定界伴侣。

()[]{}''""这个想法是在您键入第一个字符时自动关闭对。这样一来,你就不必做你所说的体操了。

于 2012-08-15T05:53:34.997 回答