1
" Python logger-print and vice-versa

function! SetPrintLogMaps()
    echom "called"
    nnoremap <buffer> <Leader>lp "lyy"lp"l5cawprint^[
    nnoremap <buffer> <Leader>ll "lyy"lp"lcawself.logger.info(^O$)^[
endfunction

autocmd BufWrite,BufRead *.py :call SetPrintLogMaps()

我有这个 autocmd 以便仅在读取或写入 python 脚本时设置映射。但是当我打开任何 python 脚本时,不会调用该函数。

我刚刚发现,如果我从命令行打开脚本,就像 vim test.py它不起作用一样。但是如果我只是打开vim然后执行:e test.py该函数正在被调用。

4

1 回答 1

3

您应该使用该FileType事件:

augroup myPythonStuff
    autocmd!
    autocmd FileType python call SetPrintLogMaps()
augroup END

更好的是,把它放在~/.vim/after/ftplugin/python.vim

nnoremap <buffer> <leader>lp "lyy"lp"l5cawprint^[
nnoremap <buffer> <leader>ll "lyy"lp"lcawself.logger.info(^O$)^[

并收工。

于 2016-11-07T09:29:02.600 回答