如何在MacVim中使用abbrev

时间:2011-12-27 21:20:05

标签: macos vim macvim

我是mvim的新手,我不知道如何使用保存在我的vimrc文件中的命令,如下所示:

"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 个答案:

答案 0 :(得分: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命令。在这些情况下,shell命令为open -a [WHICHEVER_BROSWER].app,使用当前缓冲区%:p

以下是一些进一步阅读:

答案 1 :(得分:0)

虽然在这种情况下使用abbrev,但它通常用于保存输入或修复常见的拼写错误:

iabbrev mmm myultRalonganDrandomlycapiTAlizedemailadDress@example.com
iabbrev teh the

如果你想执行命令,我认为正常的映射在概念上更适合。以下是我在~/.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