题图:「Nyaovim + neovim + Spacevim 下撸 Javascript」
之前几天看到了 @地球的外星人君 写的一个 vim 配置 python 开发的 把vim配置成顺手的python轻量级IDE(一);我写 python3 很少(让我用 py2 我是拒绝的,你不能...),不过 vim 部分觉得很多部分不太现代
## REPL
现代和前现代的 vim 的REPL 一般是 attach 上一个 开启了 解释器 (比如 ipython/python) 的 terminal;然后直接把选中部分以字符串的形式丢给 terminal。前现代的话,我们可以在 tmux 或者 screen 中开一个 ipython;然后使用 vim-slime 插件丢到 tmux 中;这样可以选中部分执行以及看到保留错误信息在视野中比纯粹的 python % 舒服
然后就是怎么撸 tmux 了;一种选择是 tiling window manager 让 termianl(urxvt for example) 和 vim 并齐;而且通过快捷键把 urxvt 丢到别的 workspace 或者 从别的 workspace 拉回来。urxvt 里面放一个确定 session name 的 tmux;另一个选择是用 quake-like 比如 iterm 或者 tilda 用快捷键在 vim 的workspace 下展开或者收起
比较现代的 neovim 和 vim8 内置的 terminal;这时候不需要一些蛋疼的 tiling window manager 的 hack 了,也不必要撸 quake-like terminal 了。这时候可以通过 neoterm 往内置 terminal 传选中区了
最后是一个 ipython 独有的;因为 ipython 默认丢掉除去第一行外的内容,所以需要 %cpaste -q 来 hack;不过现代 vim 的REOL 插件都 hack 过这个了
##Linter
不支持 linter 写起来会很烦的;在其他语言中有自动 indentation 不过 python 的话(无力的笑);不过语法检查和自动断行还是也许必要的
一般 linter 插件主要是现代的 neomake 和前现代的 synaptic;如果对自己的技巧比较不自信的话,建议选择 synaptic
另外你自己选择是否自动 styling 吧;python 这种以 indentation 做 control flow 如果自动 styling 可能会出一些问题
## Vundle
Vundle 曾经不错,但是停止开发了
不支持 {‘on_filetype’: } 按需使用
所以现在流行的是 vim-plug;对自己技巧比较自信的可以考虑 dein