2011-12-27 30 views
1

我是新來mvim,我不知道如何使用已保存在類似下面的我的vimrc文件的命令使用縮寫:如何的MacVim

"Load the current buffer in Chrome - Mac specific. 
abbrev chrome :! open -a Google\ Chrome %:p<cr> 

(注:這裏原是:

"Load the current buffer in Chrome - Mac specific. 
abbrev ff :! open -a FireFox.app %:p<cr> 

我只是困惑,這個縮寫是如何工作都在一起,找不到對谷歌的答案:\也許有人在這裏可以幫助?

回答

2

這些行爲常用命令創建縮寫。在這種情況下,它正在創建一個在特定應用程序中打開當前緩衝區的縮寫。例如,如果您正在處理名爲index.html的文件,並且您在vim中輸入了命令:chrome,則會在Chrome中打開index.html。

對於三大Mac瀏覽器,使用您.vimrc文件中以下行:

" Open the current buffer in a web browser 
abbrev ff :!open -a Firefox.app %:p 
abbrev chrome :!open -a Google\ Chrome.app %:p 
abbrev sf :!open -a Safari.app %:p 

這工作,因爲:!在每個縮寫定義的開始告訴Vim執行shell命令。在這些情況下,使用當前緩衝區%:p的shell命令是open -a [WHICHEVER_BROSWER].app

下面是一些進一步閱讀:

+0

謝謝,所以當我運行命令(通常通過鍵入':')使用縮寫 - 這有助於這麼多! – 2011-12-29 16:47:06

+0

是否可以在瀏覽器中將MacVim行作爲url打開?而不是緩衝區作爲文檔。 – jnthnclrk 2012-11-01 13:59:11

0

當使用在這種情況下abbrev作品它通常用於保存打字或解決常見的拼寫錯誤:

iabbrev mmm [email protected] 
iabbrev teh the 

如果你w螞蟻執行命令,我認爲正常的映射在概念上更適合。這裏是我在我的~/.vimrc

let os=substitute(system('uname'), "\n", "", "") 
if os == "Darwin" || os == "Mac" 
    nnoremap <F12>f :exe ':silent !open -a firefox %'<CR> 
    nnoremap <F12>c :exe ':silent !open -a "google chrome" %'<CR> 
    nnoremap <F12>o :exe ':silent !open -a opera %'<CR> 
    nnoremap <F12>s :exe ':silent !open -a safari %'<CR> 
elseif os == "Linux" 
    nnoremap <F12>f :exe ':silent !firefox %'<CR> 
    nnoremap <F12>c :exe ':silent !chromium-browser %'<CR> 
    nnoremap <F12>o :exe ':silent !opera %'<CR> 
endif 
+0

當然可以採用另一種方式 - 我只關注'abbrev'方法,因爲這個問題很困惑,並且特別針對它提出了問題。我喜歡你的方法 - 尤其是'os =='部分。 – 2011-12-29 08:56:41

+0

糟糕,我忘了'os'定義的最重要的部分。 – romainl 2011-12-29 11:50:44

+0

因此,如果我理解這個右鍵abbrev =命令(按':'),iabbrev是用於拼寫或快捷文本的內聯縮寫。我也非常喜歡你的映射關鍵的東西,當然非常優雅(特別是操作系統部分) – 2011-12-29 16:48:38