所以我想知道是否它的posibble輸出命令到HTML窗口就像TextMate?
你可以讓vim在命令行發出一個命令,告訴瀏覽器打開你正在編輯的文件。
在Mac上,無論使用VIM在命令行或的MacVim,如果你正在編輯一個名爲緩衝區「的test.html」的文件,它是在你的桌面文件夾:
:!open ~/Desktop/test.html
會打開或重新打開瀏覽器中的文件。所以,當你做出改變的時候,你就會發出這樣的聲音,瀏覽器會以最新版本的文件來到前臺。您可以使用其他選項來「打開」來指定要使用的瀏覽器。而且,您可以輕鬆添加按鍵以打開當前文件,該文件在命令行中爲「%」。
如果你想在vim中捕獲一個命令的輸出,有幾種方法可以做到這一點。如果你執行一個命令,vim將把它的輸出捕獲到一個臨時緩衝區中進行查看。
:!ls
顯示:
:!ls
Desktop Downloads Library Music Photo Tools Public VirtualBox VMs bin
Documents Editors Movies Music Tools Pictures Sites Web Tools
您還可以看到什麼在Command - R like functionality in MacVim和Vim - Displaying Code Output in a New Window á la Textmate?。
我不確定你的意思是「工具提示」。通常是指鼠標頂端的彈出文本提供上下文相關幫助。你不能通過它發送文本,所以你對這個詞的使用很混亂。
MacVim和vim具有類似於片段的功能,並且可以編寫腳本,可以在當前選擇的文本上工作,還可以使用更多功能。瞭解MacVim是常規vim編輯器之上的GUI層是很重要的,所以有些東西是不能做的,因爲vim的引擎並不容易。這並沒有讓我困擾,因爲如果我需要一個特定的TextMate功能,我會將它啓動,使用特定的東西,然後如果我喜歡它,就跳回去。但是,這對我來說不是太常見。
您可能希望在一些相關的線程來看看這裏的SO,在頁面的右側,加上看一些vim的插件,如:
我一直在使用上面的那些。如果我沒有他們,我會想念下面的那些人。
編輯:
捕捉臨時緩衝區在Vim中一個新的緩衝區是很容易的:
:redir @a
:sil !ls -al
:redir end
:vnew
"agp
第二行:sil !ls -al
可以是命令的任何執行。 :sil
告訴Vim不要將輸出回顯到臨時緩衝區,而是靜靜地捕獲它,從而擺脫「按任意鍵」暫停。
:vnew
創建一個垂直分割與新的緩衝區。如果你想要一個新標籤,你可以使用:tabnew
。
"agp
告訴它使用緩衝區@a
並將輸出粘貼到當前緩衝區並將光標保留在粘貼文本下方。
謝謝,這是一個相當徹底的解釋。有一件事情,在texmate中我並不需要保存一個文件,我可以將當前選擇的內容或整個文檔作爲html輸出輸出,所以這對於測試和非常快速的事情來說非常酷。也許vim會把每個新的緩衝區保存在某個地方,這樣我就可以在瀏覽器中打開該文件,即使我之前沒有保存過它。是否有可能獲得未保存的文件/ tmp位置並將其發送到'open'命令? – zanona 2011-04-09 22:58:51
vim保存一個.swp文件,但你不想搞砸這個。保存臨時文件並不是什麼大問題。使用':w somefile'保存它很簡單,然後使用':!rm%'將其刪除,或者將它保存在'/ tmp'中,稍後讓機器清理它。 – 2011-04-09 23:01:20
再次感謝@ tin-man,我猜想將數據傳遞給程序執行某些操作並輸出爲html會更困難,因爲這需要一個物理文件,否則這將需要創建一個虛擬文件文件並從那裏開始工作,然後輸出一個靜態文件,其中包含適當的數據。我認爲最簡單的事情就是創建一個能夠顯示基於stdin的web視圖的程序。但是隨着你的指導,我可以更好地理解它的工作原理。再次歡呼 – zanona 2011-04-10 15:05:58