wsdjeg / reading-vimrc

vimrc 读书会,帮你提升你的 vimrc
MIT License
109 stars 5 forks source link

vim配置, 主要写c, python, go 用的 #10

Closed fcying closed 5 years ago

fcying commented 6 years ago

https://github.com/fcying/dotvim/blob/master/vimrc https://github.com/fcying/dotvim/blob/master/plug.vim

装了好多插件, 很多都是试用一下...就扔那了...

wsdjeg commented 6 years ago
" remove  the warning in py3.7: the imp module is deprecated in favour of importlib
if has('python3')
  silent! python3 1
endif

这段不是太明白,为什么这个可以避免错误呢?

wsdjeg commented 6 years ago
set noerrorbells
autocmd fcying_au VimEnter * set shellredir=>
set ttyfast     " when will this cause problems?

这段建议丢到 augroup 里

" jump to the last position
augroup vimStartup
  au!
  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid, when inside an event handler
  " (happens when dropping a file on gvim) and for a commit message (it's
  " likely a different one than last time).
  autocmd BufReadPost *
        \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
        \ |   exe "normal! g`\""
        \ | endif

augroup END

这段代码,我记得在最新版的 vim 里面已经定义了,可以检测一下,不然等于执行两次 autocmd

weirongxu commented 6 years ago

" remove the warning in py3.7: the imp module is deprecated in favour of importlib if has('python3') silent! python3 1 endif 这段不是太明白,为什么这个可以避免错误呢?

最新版的 vim 好像已经修复了

https://github.com/vim/vim/issues/3117#issuecomment-402622616

python3.7 在 import imp 时会输出一个废弃警告,
我猜测是因为 vim 在第一次执行 python3 时调用了 import imp 了吧

https://github.com/vim/vim/blob/master/src/if_py_both.h#L6910

fcying commented 6 years ago

@wsdjeg

这段不是太明白,为什么这个可以避免错误呢?

不是避免错误, 只是把那个警告给无视了而已, 让他不弹出来, 只在第一次调用python3的时候会弹出.

这段建议丢到 augroup 里

没看明白, 是放到augroup vimStartup 里面去?

这段代码,我记得在最新版的 vim 里面已经定义了,可以检测一下,不然等于执行两次 autocmd

defaults.vim有定义. 我这边用startuptime 测试, 调用不到这个文件, 也没这个功能, 就把这个加进来了(不知道是不是自己编译的问题), 要怎么可以检测当前开没开这个功能?

wsdjeg commented 6 years ago

@fcying 奇怪,说明你的 defaults.vim 这个脚本没有被载入?我不太记得 Vim 载入这个脚本的机制了,有可能是在未读取到用户配置时自动载入这个配置。

wsdjeg commented 5 years ago

augroup 可以避免自动命令重复定义。