Full Stack Python logo Full Stack Python

全部主题 | Blog | 时讯 | @fullstackpython | Facebook | 源码

Vim

Vim, 即 Vi IMproved 的缩写,是一个可配置的文本编辑器,通常用作 Python 的开发环境。Vim 用户通常使用大量的插件、Vim 脚本和逻辑命令语言来扩展 Vim 功能。

为什么 Vim 适合用作 Python 开发环境

Vim 的哲学是:当开发人员的手不离开键盘时,工作效率会更高。代码应该从开发人员的头脑自然地流经键盘,再到达屏幕。使用鼠标等外设会降低开发者的思想与代码的转换速率。

Vim 内含一种逻辑结构化的命令语言。当开始学习时,我们会觉得理解全部的命令是不可能的。但是,这些命令是按一定逻辑组织起来的,因此,随着时间推移,这个编辑器会变得得心应手。

如果你喜欢 Vim,你应该也想了解 写代码的开发环境什么使 Python 变得如些强大

利用 Vimrc 配置 Vim

Vimrc 是 Vim 编辑器的配置文件。一个 Vimrc 文件可以是一个空文件,也可以包含成百上千行配置命令。

下面是我用于 Python 开发的一个简短的 .vimrc 示例文件,并附带注释。从中你可以感受一下它的配置语句:

  1. " 开启语法高亮
  2. syntax enable
  3.  
  4. " 显示行号
  5. set number
  6.  
  7. " 设置 tab 符为 4 个空格
  8. set ts=4
  9.  
  10. " 写代码时,移到下一行时自动缩进
  11. set autoindent
  12.  
  13. " 将 tab 符自动扩展成空格
  14. set expandtab
  15.  
  16. " 使用 >> << 命令时, 移动 4 个空格
  17. set shiftwidth=4
  18.  
  19. " 在光标所在的当前行下显示一条行指示线
  20. set cursorline
  21.  
  22. " 显示 [] {} () 匹配的另一半符号
  23. set showmatch
  24.  
  25. " 开启全部 Python 语法高亮特性
  26. let python_highlight_all = 1

下面的图片是我在 Mac OS X 上编辑本页 markdown 文件的截图,你可以这到这些配置选项在暗色背景后的显示效果是什么样的。

在暗色背景上设置了基本配置选项的 Vim 。

看一下另一个例子,同样的配置选项,这次使用的是浅色背景,图片是我在写 制作交互的演示文稿 项目的 Python 代码时的截图。

在浅色背景上设置了基本配置选项的 Vim 。

Vimrc 文件位于运行 Vim 的用户帐号的 home 目录下。例如,我的用户账号是 'matt', 在 Mac OS X 上,我的 Vimrc 文件可以在 /home/matt/ 目录下找到。

如果 Vimrc 文件还没有创建,你只需在用户的 home 目录下创建一个即可,这样,当你下次打开 Vim 时,它就能被加载了。

Vim 教程

Vim 有难学的坏名声,但是通过这些教程,入门会变得更加容易。

  • Learn Vim Progressively 是一本很精彩的教程,里面提到的学习方式和我学习 Vim 时用的是一样的:先学会编辑器的基本知识就会日常使用,然后再学习更加高级的命令。

  • A vim Tutorial and Primer 深入研究了如何从初学者进阶到 Vim 专家。

  • Why Atom Can't Replace Vim 探讨了 Vim 的一个核心理念: 命令的可组合性。Vim 的内置语言能将简单的命令组合成一个更加高级的组合操作命令。例如在命令模式下, $ 的功能是移动到行尾,但当 $ 前加 d 后,就能删除从当前位置到行尾的所有内容。随着时间的推移,这些简单的命令会变成你的直觉,而组合命令会比在下拉菜单中设置一个特定选项来删除到行尾的全部内容这样的方式更加强大。

  • Vim as a Language 解译了其语言语法及如何通过日积月累掌握这个编辑器。

  • How to install and use Vim on a cloud serverHow to use Vim for advanced editing of code on a VPS 这两份详细教程都来自 Digital Ocean,内容是如何设置和运行 Vim,无论你是在本地还是在云服务器上使用 Vim, 都值得一看。

  • Vim 冒险 是一款小巧好玩的浏览器游戏,通过玩这个冒险游戏能帮你学习 Vim 命令。

  • Vim: revisited 中, 作者解释了他时断时续使用 Vim 的经历。然后阐述他如何配置和使用该编辑器,并坚持以它作为主要的代码编辑工具。

  • 关于 Vim 中我希望老早就知道的知识 讲述了一位专门使用 Vim 多年的开发人员的经验教训。他使用相对而非绝对行号,设置了大量的配置选项及通过模糊查询来快速打开其它目录下的文件而无需展开完整的路径。

Vimrc 资源

这些是学习如何组织 .vimrc 文件的资源。我建议一项项增加配置选项,每次添加一条,然后再单独测试一下,而不是一股脑儿地把你不熟悉的 Vimrc 都拷贝进来。

Vim 安装指南

这些安装指南将指导你在 Mac OS X、Linux 和 Windows 上安装和运行 Vim 。

  • Upgrading Vim on OS X 阐述了为什么要从 Vim 7.2 升级到 7.3+,以及如何通过 Homebrew 升级。

  • 在 Windows 7+ 上安装 Vim 的最简单方法是下载并运行 gvim74.exe 文件。

  • 在 Linux 上应该使用 sudo apt-get install vim 来安装 vim 软件包

  • 如果你将 PyCharm 作为你的 IDE 的话,你不需要再单独安装 Vim 文本编辑器。你可以用 PyCharm 的 IdeaVim 插件,并利用 ~/.ideavimrc 及其它的 Vim 模拟功能来实现 Vim 按键绑定、视觉/插入模式等。

将 Vim 作为 Python IDE

一旦你已熟悉 Vim 编译器,就可以用一些配置选项和插件来提高你的 Python 工作效率。到了这一步,你可以看下这些资料:

Vim 插件管理

  • Vundle 是一个被大量推荐的 Vim 插件管理器。

  • Pathogen 是一个广泛使用的插件管理器。

  • Vim-plug 宣称自己是一个最小的 Vim 插件管理器。

Vim 插件资源

既然已经学了 Vim,你想用它来开发什么呢?

我想知道在 Python 中如何处理数据。

我想学习如何用框架创建 Python Web 应用。

我已经创建了一个 Python Web 应用,那我如何部署呢?

#### 在这里注册以便每月能收到一份邮件资料,内容包含本站的主要更新、教程和 Python 书籍的打折码等。

The Full Stack Python Guide to Deployments 想找到一个完整的,一步一步的部署方案吗?请看《The Full Stack Python Guide to Deployments》.

邮件获取更新

##### 注册以便每月能收到一份邮件资料,内容包含本站的主要更新和 Python 教程。

目录

1. 简介学习编程为什么用 Python?Python 2 还是 3?企业 PythonPython CommunityBest Python Podcasts最佳 Python 资源最佳 Python 视频2. 开发环境VimEmacs3. 核心语言生成器推导式4. Web 开发Web 框架DjangoFlaskBottlePyramidMorepath其它 Web 框架Web 设计级联样式表 (CSS)JavaScriptWebSockets模板引擎Web 应用安全静态网站生成器Jinja25. 数据关系型数据库NoSQL 数据存储对象关系映射器PostgreSQLMySQLSQLite6. Web APIsAPI 集成API 的创建Twilio7. 部署服务器平台即服务(PaaS)操作系统Web 服务器WSGI 服务器源码控制应用程序依赖静态内容任务队列配置管理持续集成日志监控Web 分析Docker缓存微服务DevOpsNginxApache HTTP 服务器CaddyGreen Unicorn (Gunicorn)UbuntuPelicanLektorMkDocs8. 测试单元测试集成测试代码度量调试9. MetaBotsChange LogFuture DirectionsAbout the AuthorSQLAlchemyPeewee …或者显示全部目录内容.

Vim

重要的更新内容会通过 Twitter 账号@fullstackpython发布。


需要更加详细的教程吗?请看 《The Full Stack Python Guide to Deployments》。

Chapters

1. 简介2. 开发环境 » Vim 3. 核心语言4. Web 开发5. 数据6. Web APIs7. 部署8. 测试9. Meta …or view the full table of contents.


This site is based on Matt Makai's project Full Stack Python, thanks for his excellent work!

此网站由 @haiiiiiyun开源爱好者们 共同维护。 若发现错误或想贡献,请访问: Github fullstackpython.cn 项目