0

通过几个指南来设置一些简单的 Vim 缩写。我快到了,我似乎无法找到如何结束 IN 插入模式。

我有的:

iab cl console.log()<Esc>F%s<c-o>:call getchar()<CR><Left><Left>

怎么了:

cl expands to console.log() and the cursor is placed over )

我想要发生的事情:

Same thing except I want to enter insert mode.

我试过的:

After <Left> I've tried:  <Insert>, i, and <Ins> with no luck.
4

2 回答 2

1

问题是缩写遇到错误并停止执行。

这部分<Esc>F%s<c-o>:call getchar()<CR>对我来说没有意义,看起来它会导致错误。它的多个部分可能是问题所在。但很可能是F%因为它找不到倒退的百分号。

我认为固定映射应该是这样的(但是我认为这不是你想要的)它确实以插入模式结束,因为缩写成功完成并且缩写不做任何事情来退出插入模式。

iab cl console.log()<Left>

看看这个https://stackoverflow.com/a/11865489/1890567删除尾随空格。从缩写。

于 2014-06-01T03:49:21.687 回答
0

最终解决方案(使用来自提供的线程 FDinoff 的信息)是:

func Eatchar(pat)
  let c = nr2char(getchar(0))
  return (c =~ a:pat) ? '' : c
endfunc

iabbr cl console.log();<Left><Left><C-R>=Eatchar('\s')<CR>
于 2014-06-01T04:35:03.027 回答