| 软件开发 |
| --- |
| 
核心行动 |
| * 过程
* 需求
* 设计
* 工程
* 构造（英语：）
* 测试
* 偵錯
* 部署
* 維護
 |
| 
范式与模式 |
| * 原型设计（英语：）
* 净室（英语：）
* 增量建模（英语：）
* 瀑布模型
* 敏捷软件开发
* 螺旋模型
 |
| 方法论与框架 |
| * 快速應用程式開發
* DevOps
* 极限编程
* 团队软件流程（英语：）
* 個人軟體程序
* 动态系统开发方法（英语：）
* MSF（英语：）
* Scrum
* 看板
* V模型
* FDD（英语：）
* MDD
* 迭代式开发
* 精實开发
* 统一流程（英语：）
 |
| 
支持行为 |
| * 配置管理
* 文档
* 质量保证
* 项目管理
* 用户体验
 |
| 
实践 |
| * ATDD（英语：）
* 行为驱动开发
* 持續整合
* 持續交付
* 領域驅動設計
* 结对编程
* 站会
* 测试驱动开发
 |
| 工具 |
| * 編譯器
* 偵錯器
* 性能分析
* GUI设计器（英语：）
* 建模（英语：）
* 集成开发环境
* 組建自動化
* 发布自动化（英语：）
* 测试
 |
| 
标准与知识体系 |
| * 能力成熟度模型集成
* IEEE标准
* ISO 9001
* ISO/IEC标准（英语：）
* SWEBOK（英语：）
* 项目管理知识体系
* BABOK（英语：）
 |
| * 
* 论
* 编
 |

文本编辑器Vim
**文本编辑器**是种计算机软件，主要用来编写和查看文本文件。特殊的文本编辑器支持增加自有的格式来丰富文档的表现形式。操作系统或者集成开发环境通常会带有可以查看和编辑纯文本的编辑器，可增加格式的文本编辑器通常是个人用户或者公司在制作需要格式的文件中使用。

程序和其配置檔常以纯文本格式储存，程序员也須用纯文本编辑器来编辑程序和配置文件。

纯文本文件与文字处理文件
------------

由文本编辑器创建的纯文本文件与由Microsoft Word、iWork与OpenOffice.org之类的文字处理器建立的文档文件之间，有明显不同：

* 当展现或者编辑纯文本文件时，需要显示文件所含的所有字符。起标记作用的只有那些文本文件所使用的字符集裡的控制字符，即换行符、制表位和换页符，比如简单常用的字符集ASCII。纯文本文件常用于编写程序和记录配置信息；或者自定义标签的格式如，XML、HTML。
* 文字处理器创建的文档除了包括字符集所定义的字符外，通常还包含由文件格式指定的控制字符。这些控制字符实现了诸如粗体、斜体、字体、列、表等功能。
* 文字处理器通常能够编辑并导出或保存为纯文本文件。但是，这样做必须很小心。用文字处理器处理源程序、HTML代码、配置文件和控制文件时要格外注意。否则，这些文件里就会包含那些文字处理器对应格式裡的特殊字符，文件就会出现问题。

历史
--

一盒穿孔卡片，內有几份程序
文本编辑器出现前，人们用打孔机把计算机文字打到穿孔卡片上。文字存放于装着这些薄卡片的盒裡，可用读卡器来阅读。

第一種文本编辑器是一种行编辑器，它在打字机型的终端运行，这种编辑器并無在視窗和屏幕中显示的功能。它包含一些非常短的命令（以减少打字量）。其中一條命令能够把文件的指定部分通过打字机打印出来。编辑光标是想象中的插入点，通过特殊命令，可以把它移动到特定内容字符串所在的行。随后，内容字符串又被扩展成正则表达式。如果想看到文件的变化，須把它打印出来。相对穿孔机来说，人们认为这种基于行的文本编辑器有革命进步。如果没有它，用户就需要把那些处理文本的命令打成专用的卡片，并在编辑文件时使用这些卡片。

当带有显示屏的计算机终端出现后，基于显示屏的文本编辑器开始流行起来。早期有种全屏编辑器叫O26（英语：），它是于1967年为CDC 6000系列（英语：）机器的操作控制台而作。另一款早期的全屏编辑器是vi，诞生于20世纪70年代，至今仍内建于Unix和Linux系统；不过vi的改善版本Vim也廣为人知。全屏编辑器提升视频终端销售量。

不同的文本编辑器
--------

有些文本编辑器简洁易用，只能编辑纯文本文件，也有些文本编辑器功能丰富复杂，支持大量格式的文本文件。Unix和类Unix操作系统都提供了vi编辑器（或其变种），但是也有部分操作系统提供了Emacs编辑器。这两款文本编辑器以其独特的快捷键操作和可定制的工作环境而在程序员世界中广泛应用；普通用户则喜欢使用Microsoft Office来为文本添加格式。Windows系统同样提供了可编辑纯文本文件的记事本和类似Word的写字板提供了基本的写作功能。也有很多人，尤其程序员更喜欢Windows下功能更丰富，更专业的其它编辑器。OS X提供的TextEdit可以编辑纯文本也可以编辑多信息文本，类似DOS的Wordstar.

专业的文本编辑器需要在处理巨大的文字檔时保持速度的能力。例如，系统管理员須读取很长的日志檔；程序员須修改很大的源码檔，或者检查那种异乎寻常的大檔案，比如用于存储整本词典的文件。这需要文本编辑器优化大檔案，而非简单把文本载入内存。

有些文本编辑器专门为提高效率和自定制环境提供了可编程的语言。这些语言大部分都是通用的脚本语言，也有一些是专门为文本编辑器设计的语言，例如Vim的Vimscript。在Emacs中，可以用Lisp程序编写宏来控制Emacs或者自定义快捷键。利用这种手段，用户可以按照自己的习惯方便的使用这些文本编辑器，但是这些方式也通常难学，不利于初学者定制自己的习惯。

还有一些可编程编辑器采用REXX作为它们的脚本语言。这些编辑器支持在屏幕的底部直接输入命令或者REXX语句。在这类编辑器中，最典型的是Xedit的后续产品，而Xedit是IBM在VM／CMS（英语：）中的编辑器。一些vi的后续产品，如Vim，还支持折叠以及宏，而且底部还有命令行。人们认为它们是另一类正统编辑器。

许多用于开发软件的文本编辑器支持语法高亮和自动完成源代码，使程序更易读写。程序编辑器通常还允许你选取子程序或者变量，然后跳转到它的定义部分，再跳回原来的位置。ctags等附加工具就是专门用来定位定义部分。

随着计算机网络发展，又诞生了可以多人协同编辑的文本编辑器，如Windows操作系统的Netpad可让多人同时编辑或阅读同一份文件。

典型功能
----

### 剪下、複製、貼上

文件内或文件间复制或移动。

### 搜尋和取代

文字編輯器提供豐富的功能來搜尋和取代文字，可以是單一檔案，也可以是打開的分頁或指定資料夾中的檔案組。多功能編輯器可用規律表達式搜尋和編輯文本或代碼。其他功能有區分大小寫、用於快速調用和自動完成的搜尋紀錄，以及在專用工具框列出結果。

### 文字排版

文本编辑器通常有基本排版功能，如卷行、自动缩排、行号排版、注释排版等。

### 撤销和恢复

同文字处理器一样，文本编辑器也可撤销和恢复。老的文本编辑器通常只支持一级的编辑历史，只能撤销或恢复至上一次变化；现代复杂的文本编辑器支持多级编辑历史，能撤销或恢复至任何历史状态。能够记录变化的次数随编辑器而異，通常也可自定。

### 导入

读取或者合并另一份文本文件的内容至当前在编辑的文件。有些文本编辑器支持插入操作系统命令的输出。

### 过滤

一些先进的文本编辑器可把正在编辑的文件发送至另一工具，并把过滤后的结果回读至这文件，如排序或计数。

參見
--

* 文本编辑器比较
* 文本文件
* 编辑器之战
* 十六进制编辑器

參考文獻
----

1. ↑ . iThome.  [2019-04-04]. （原始内容存档于2020-11-27）.