前言
这几天开始自学 Python 语言,采取的是 vim + bpython 的方式。至于为什么,原因有两点:
- macOS 自带的 IDLE 不方便进行 .py 文件读写+执行的并行操作,而这样的操作在学习 Python 过程中是十分频繁的。
- 将 Xcode 配置为 Python 的 IDE 也是个常见的方案,但是在交互上有致命的缺陷,说白了就是只能输出无法输入。比如说我用 Python 编了一个小程序,第一个部分就是需要用户输入一个字符串,Xcode 表示一脸懵逼。
综上,小巧精致的 Vim + Terminal 无疑是在 macOS 甚至其他 Linux 系统上进行 Python 学习的最优方案。
然后直接抛出我的学习资料。其实就是这么一个帖子。按照里面的步骤一步步操作,可以完成几乎所有的配置,让你有个舒适 Python 学习环境。只在下文分享两个我在配置过程中遇到的问题和解决方案,如果你也遇到了同样的问题,可作为参考。
利用 Vundle 安装 YouCompleteMe
我卡在安装可以自动补全 Python 语法的 Vim 插件 YouCompleteMe(以下简称YCM)。我利用 Vundle 安装 YCM 的时候 Processing 了好久。
其实这里不要急躁,虽说只是个插件,但 YCM 却有很大的体积,所以要下载很久。这里只有耐心等待,或者换一个好一点的网络环境。
什么?你不知道 Vundle 是啥?那么请看这里。
YCM 安装终于结束,但其实只是将 YCM 下载到了.vim/bundle/
的目录下了而已,我们还需要进行编译。编译过程也很简单,只需两条命令:
cd ~/.vim/bundle/YouCompleteMe #进入YCM的目录
./install.sh #执行安装脚本,这里使用 ./install.py 也行
如果你还经常接触到 C 语言环境,那么你可能还需要 clang 的补全,那么上面的第二条语句应该改成
./install.sh --clang-completer
然而这里我报了错,提示说
You have not specified which libclang to use. You have several options:\n
1. Set PATH_TO_LLVM_ROOT to a path to the root of a LLVM+Clang binary
distribution. You can download such a binary distro from llvm.org. This
is the recommended approach.\n
2. Set USE_SYSTEM_LIBCLANG to ON; this makes YCM search for the system
version of libclang.\n
3. Set EXTERNAL_LIBCLANG_PATH to a path to whatever
libclang.[so|dylib|dll] you wish to use.\n
You HAVE to pick one option. See the docs for more information.
对,还需要 C 语言库,需要到到clang官网下载,得到的是 .tar.xz 格式的双层压缩文件 clang+llvm-3.9.0-x86_64-apple-darwin.tar.xz(目前最新版本是 3.9.0,你下载的时候就不一定了),.xz 无法直接解压,需要到终端去利用unxz
命令解压,然而unxz
命令我的电脑里神TM的没有。我尝试了一下 brew install xz
,没想到 brew 安装器的源里竟然有 xz,省了我不少事情(相比于macOS 下利用brew管理器安装套件,其他 linux 系统下应该是 apt-get 吧)。之后利用unxz
成功解压,后缀名变成 tar,这时候直接用 macOS 自带的「归档实用工具」解压即可得到文件夹 clang+llvm-3.9.0-x86_64-apple-darwin。
这样我们可以重新回到 YCM 的编译上了。
再次从终端进入 YCM 目录cd ~/.vim/bundle/YouCompleteMe
然后在执行安装命令前加上 clang 库的路径,命令为PATH_TO_LLVM_ROOT=~/Downloads/clang+llvm-3.9.0-x86_64-apple-darwin ./install.sh --clang-completer
最后提示编译成功
注意:这里我将源包文件夹放到了~/Downloads
目录下
bpython
其实 macOS 自带的 IDLE 可以进行 python 的学习,并且有语法高亮的功能,但是我没搞清楚它能否像终端一样方便地读写文件,于是我就放弃了。在终端中执行python
命令也可以进入 python shell,跟 IDLE 一毛一样,但是就是没有了语法高亮,真是蓝瘦。所以这里要介绍 bpython,它可以说是终端上的「IDEL shell」,哈哈哈,不仅支持语法高亮还支持自动补全(这里打住一下,之前 YCM 说的也是自动补全,但人家是 Vim 编辑器上的,与终端内执行命令的自动补全是两码事)。与 python 命令不同的是,它前头多了个 B(废话
贴两张图看效果
- 普通python shell:
- 装 Bpython shell:
结语
至此,我们完成了 Vim + Terminal 的 Python 学习环境设置