Как использовать аббревиатуру в MacVim - PullRequest
1 голос
/ 28 декабря 2011

Я новичок в 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>

)

Я просто смущен тем, как этот аббревиатура работает все вместе, и не смог найти ответ в Google: \ Может быть, кто-то здесь может помочь?

Ответы [ 2 ]

2 голосов
/ 28 декабря 2011

Эти строки создают аббревиатуру для часто используемой команды. В этом случае создается аббревиатура для открытия текущего буфера в конкретном приложении. Например, если вы работали над файлом с именем index.html и ввели команду :chrome в vim, он откроет index.html в Chrome.

Для трех основных браузеров 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 выполнить команду оболочки. В этих случаях команда оболочки open -a [WHICHEVER_BROSWER].app использует текущий буфер %:p.

Вот дальнейшее чтение:

0 голосов
/ 28 декабря 2011

Хотя использование 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
...