有没有办法选项到文件中的位置来更改文本?

时间:2014-07-24 22:23:51

标签: vim snipmate

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

那么,让我们说我有以下几行:

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

我希望将括号替换为文本。我知道我可以搜索括号,接下来我会通过它们,但我希望有更方便的东西。

2 个答案:

答案 0 :(得分:1)

我认为Zach的建议是使用Snipmate来处理这个问题。

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

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

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

:nnoremap <key> *``gn<C-g>
:inoremap <key> <Esc>gn<C-g>
  • 在正常模式下按<key>会在选择模式下突出显示当前单词,准备输入。
  • 在插入模式下按<key> - 在此上下文中,当您完成该占位符时 - 跳转到下一个占位符并在选择模式中突出显示它,准备输入。

答案 1 :(得分:1)

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

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

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

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