vim如何根据文件的后缀名来进行按键的映射?

发布于 2022-09-03 00:37:31 字数 225 浏览 10 评论 0

比如在编辑.cpp文件时,想把<F5>映射为 :call CompileCpp()<CR>.
在编译.html文件时,想把<F5>映射为:call RunHtml()<CR><Spcae>.
请问可以做到吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不必在意 2022-09-10 00:37:31

大概使用这种

autocmd FileType vim  call RunHtml()

但是建议 autocmd FileType 时设置makeprg,然后F5的时候直接make就行了。这样可以显示错误消息到quickfix
这是我设置的其它语言的


augroup make_autocmd
    autocmd Filetype javascript setlocal makeprg=jsl\ -nologo\ -nofilelisting\ -nosummary\ -nocontext\ -conf\ /etc/jsl.conf\ -process\ %
    autocmd FileType json setlocal makeprg=
    autocmd FileType php
                \ setlocal makeprg=php\ -l\ -n\ -d\ html_errors=off\ % |
                \ setlocal errorformat=%m\ in\ %f\ on\ line\ %l
    autocmd BufWritePost * call Make()
    " auto close quickfix if it is the last window
    autocmd WinEnter * if winnr('
) == 1 && getbufvar(winbufnr(winnr()), "&buftype") == "quickfix" | quit | endif
augroup END

function! Make()
    if &modified | silent write | endif
    if &makeprg == 'make' | return | endif
    let regname = '"~'
    let old_pos = getpos('.')
    silent make
    execute 'cw'
    if !has('gui_running') | redraw! | end
    call setpos('.', old_pos)
endfunction
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文