vim脚本:使用视觉选择以及光标下的单词

时间:2011-07-27 10:24:02

标签: ruby vim markdown

我有small vim script查询Google以标记格式的文字插入链接。目前它只能使用光标下的单词,它使用expand("<cword>")检索并通过执行正常模式命令(norm ciw<new_text>)进行修改。

我如何修改此脚本,以便它可以使用视觉选择(如果存在)?

我基本上需要三件事:

  • 知道是否正在选择文本(否则使用光标下的单词)
  • 检索所选文字
  • 修改所选文字

理想情况下,我想要一个干净的方法来做到这一点。

任何提示?

干杯

2 个答案:

答案 0 :(得分:3)

您可以使用调用相同底层函数的单独可视模式映射(vnoremap而不是nnoremap)来干净地处理此情况。

要提取文本,标记`&lt;和`&gt; (对于上一个视觉选择的开始和结束)可能很有用。

要修改文字,您可以使用脚本中的gv(重新选择以前的视觉选择),然后根据需要删除或替换它。

希望现在有所帮助;我以后可以花更多的时间。

答案 1 :(得分:1)

您的视觉选择提取功能过于复杂。通常的方法如下:lh#visual#selection()

顺便说一句,您可以使用以下命令构建正常模式映射:

vnoremap µ :call <sid>DoStuff()<cr>
nmap µ viwµ