2011-07-27 20 views
0

我有一個small vim script,它詢問Google以markdown格式文本插入鏈接。目前它只能使用光標下的單詞,它使用expand("<cword>")檢索並通過執行正常模式命令(norm ciw<new_text>)進行修改。vim腳本:使用視覺選擇以及光標下的單詞

我該如何修改此腳本,以便它可以使用視覺選擇(如果存在)工作?

我需要基本的三件事:

  • 知道是否被選中的文本(以其他方式使用下光標字)
  • 檢索選定的文本
  • 修改所選文本

理想情況下,我想要一個乾淨的方式來做到這一點。

任何提示?

乾杯

回答

3

可以乾淨地使用單獨的視覺模式映射(vnoremap而非nnoremap)調用相同的底層功能處理這種情況。

爲了提取文本,標記'<和`>(用於先前視覺選擇的開始和結束)可能是有用的。

要修改文本,您可以使用腳本中的gv(重新選擇以前的視覺選擇),然後根據需要刪除或替換它。

希望這有助於現在;稍後我可以多花一點時間。

+0

感謝您的信息:

順便說一句,你可以建立正常模式的映射!我最終只通過使用正常命令來編碼視覺選擇模式。這是我的第一個vim插件,所以任何建議/提示/評論是讚賞。 – Rom1

1

您的視覺選擇提取功能太複雜。通常的處理方式如下:lh#visual#selection()

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

感謝您的提示! 'lh#visual#selection()'中的哈希是什麼?命名空間計劃? – Rom1

+0

不知何故是的。這與autoload插件相關,它有以下幾個用途: - 定義庫插件; - 定義即時加載的插件。 –