0

${1}使用 snipmate,我可以使用、等创建制表位${2}。但是,假设我有一个文件,其中包含我经常使用的几行文本。当我拉出这些并将它们放入我的活动文件时,该行的某些部分需要更改。有没有办法复制 snipmate 的制表位功能?如果没有办法突出显示需要更改的位置?

所以让我们说我有以下几行:

The results show: [] 
Item [] returned true.

我想用文本替换括号。我知道我可以搜索括号,然后通过它们,但我希望能找到更方便的东西。

4

2 回答 2

1

我会赞同 Zach 的建议,即使用 Snipmate 本身来解决这个问题。

如果您希望将占位符替换为相同的文本,则搜索和替换是最方便的方法:

:'{,'}s/\[\]/foo/g

如果你想用不同的文本替换每个占位符,你可以复制 Snipmate 的行为:

:nnoremap <key> *``gn<C-g>
:inoremap <key> <Esc>gn<C-g>
  • 在正常模式下按下<key>会突出显示选择模式下的当前单词,准备输入。
  • 在插入模式下按下<key>- 在这种情况下,当您完成该占位符时 - 跳转到下一个占位符并在选择模式下突出显示它,准备输入。
于 2014-07-25T06:29:55.760 回答
1

您所描述的与片段用例非常相似;最好将这些文本片段定义为片段并使用 snipMate 插入它们;届时您将免费获得所有功能!

当然,您可以重新创建部分 snipMate,例如:

:nnoremap <silent> <F3> :call search('\[\]')<CR>

这样,您可以通过 跳转到下一个占位符F3,并且可以将当前占位符替换为 eg 2s

于 2014-07-25T06:30:57.003 回答