所需即所获:像 IDE 一样使用 vim

jopen 10年前

开始前,我假设你:0)具备基本的 vim 操作能力,清楚如何打开/编辑/保存文档、命令与插入模式间切换;1)希望将 vim 打造成 C/C++ 语言的 IDE,而非其他语言。

关于 vim 的优点,你在网上能查到 128+ 项,对我而言,只有两项:0)所想即所得,让手输入的速度跟上大脑思考的速度,1)所需即所获,只有你想不到的功能、没有实现不了的插件。希望获得前者的能力,你需要两本教程深入学习,《Practical Vim: Edit Text at the Speed of Thought》和《vim user manual》;要想拥有后者的能力,通读本文 -。-#。对于 vim 的喜爱,献上湿哥哥以表景仰之情:

vi 之大道如我心之禅,
vi 之漫路即为禅修,
vi 之命令禅印于心,
未得此道者视之怪诞,
与之为伴者洞其真谛,
长修此道者巨变人生。
作:reddy@lion.austin.com
译:yangyangwithgnu@yeah.net

言归正传,说说 vim 用于代码编写提供了哪些直接和间接功能支撑。vim 用户手册中,50% 的例子都是在讲 vim 如何高效编写代码,由此可见,vim 是一款面向于程序员的编辑器,即使某些功能 vim 无法直接完成,借助其丰富的插件资源,必定可以达成目标,这就是所需即所获。我是个目标驱动的信奉者,本文内容,我会先给出优秀 C/C++ IDE 应具备哪些功能,再去探索如何通过 vim 的操作或插件来达到目标。最终至少要像这个样子:

(图形环境下 IDE 总揽)


【目录】


0 vim 必知会
........0.1 .vimrc 文件
........0.2 .vim/ 目录
1 源码安装编辑器 vim
2 插件管理
3 界面美化
........3.1 主题风格
........3.2 营造专注氛围
........3.3 添加辅助信息
........3.4 其他
4 代码分析
........4.1 语法高亮
........4.2 代码缩进
........4.3 代码折叠
........4.4 接口与实现快速切换
........4.5 代码收藏
........4.6 代码导航
................基于标签的导航
................基于语义的导航
........4.7 标签列表
5 代码开发
........5.1 快速开关注释
........5.2 模板补全
........5.3 快速输入结对符
........5.4 智能补全
................基于标签的智能补全
................基于语义的智能补全
........5.5 由接口快速生成实现框架
........5.6 库信息参考
6 工程管理
........6.1 工程文件浏览
........6.2 多文档编辑
........6.3 环境恢复
7 工具链集成
........7.1 编译器/构建工具集成
................代码编译
................系统构建
................一键编译
........7.2 静态分析器集成
8 其他辅助
........8.1 内容查找
........8.2 内容替换
........8.3 快速移动
........8.4 markdown 即时预览
9 尾声

https://github.com/yangyangwithgnu/use_vim_as_ide