2010-11-24 242 views
25

當我編寫文檔時,我發現自己決定適合該文檔的組織慣例,並且我希望vim能夠突出顯示該約定。但是製作一個ftplugin太「全球化」了,我想讓文檔附帶語法着色,所以如果我把它發送到沒有插件的地方,他們仍然可以得到着色。我發現你不能通過模式行,因爲它只接受選項。Vim:如何將選定的文本作爲vim命令執行

現在我試圖找出是否有一種方法來選擇一些文本在視覺模式(或任何,但我使用視覺線模式的一切,所以它會很好),並將它作爲一系列的vim命令。

例如,在一個文檔的底部我:

vim highlighting: 
    syn match Comment "^>.*$" 

如何選擇文本,並說「熱潮,執行它」,而不是重新鍵入它?

+0

偉大的問題 - 我一直希望你可以爲各種事情啓用擴展模式,如自定義匹配或類似的東西。用於爲此寫入臨時ftplugins。 – progo 2011-04-14 12:25:14

回答

37

您可以選擇行,猛拉選擇與

:@" 
+1

另請參閱[http://stackoverflow.com/questions/3997078/how-do-you-paste-text-into-a-vim-colon-command/3997110#3997110](此答案)以獲得更多關於如何使用寄存器 – Benoit 2010-11-24 16:00:37

1

我基於lh-vim-lib不涉及任何寄存器定義a few mappings執行它。 這實際上是一個矯枉過正的解決方案,但它是一個整潔的映射 - 因爲它永遠不會修改默認寄存器。

2

我喜歡做這種映射,這將需要你做一個視覺選擇第一和不會覆蓋無名寄存器:

vmap <space> :w! /tmp/x.vim<CR>:so /tmp/x.vim<CR> 

vmap <space> "xy:@x<CR> 

如果你喜歡寫VIM與行延續命令