0%

使用 Vim + Terminal 学习基础 Python 语言

前言

这几天开始自学 Python 语言,采取的是 vim + bpython 的方式。至于为什么,原因有两点:

  1. macOS 自带的 IDLE 不方便进行 .py 文件读写+执行的并行操作,而这样的操作在学习 Python 过程中是十分频繁的。
  2. 将 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 学习环境设置

![](http://ww3.sinaimg.cn/large/006tNc79jw1f9brc50sfaj304w04wdfu.jpg)