Vi

vi
執行圖
開發者比尔·乔伊
当前版本
  • 050325 (2005年3月25日)[1]
編輯維基數據鏈接
源代码库
  • ex-vi.cvs.sourceforge.net/ex-vi/ex-vi/
編輯維基數據鏈接
编程语言C
操作系统类Unix
类型文本编辑器
许可协议BSD许可证
网站ex-vi.sourceforge.net/ 编辑维基数据

vi是一种计算机文本编辑器,由美國計算機科學家比爾·喬伊(Bill Joy)完成编写,并於1976年以BSD协议授權发布。

关于vi

vi是“Visual”的不正规的缩写,来源于另外一个文本编辑器ex的命令visual。

vi是一种模式编辑器。不同的按钮和键击可以更改不同的“模式”。在“插入模式”下,输入的文本会直接被插入到文档;当按下“退出键”,“插入模式”就会更改为“命令模式”,并且光标的移动和功能的编辑都由字母来响应,例如:“j”用来移动光标到下一行;“k”用来移动光标到上一行,“x”可以删除当前光标处的字符,“i”可以返回到“插入模式”(也可以使用方向键)。在“命令模式”下,敲入的键(字母)并不会插入到文档,这给新接触vi的用户带来混乱。

在“命令模式”下,多重文本编辑操作是由一组键(字母)来执行,而不是同时按下<Alt>、<Ctrl>和其他特殊键来完成。更多复杂的编辑操作可以使用多重功能基元的组合,比如说“dw”用来删除一个单词,“c2fa”可以更改当前的光标处中“a”之前的文本。这就是说:对于熟练的vi用户可以更快的操作,因为双手就可以不必离开键盘。

早期的版本中,vi并没有指示出当前的模式,用户必须按下“退出键”来确认编辑器返回“命令模式”(会有声音提示)。当前的vi版本可以在“状态条”中(或用图形显示)。最新的版本中,用户可以在“终端”中设置并使用除主键盘以外的其他键,例如:PgUp,PgDn,Home,End和Del键。图形化界面的vi(如gvim)可以很好的支持鼠标和菜单。

在Emacs出现(1984年)之前,vi几乎是所有“黑客”所使用的标准UNIX编辑器。从2006年开始,作为“单一UNIX规范”的一部分,vi或vi的一种变形版本一定会在UNIX中找到。

直到现在,vi仍然被广泛的使用,并且赢得1991年在USENET的票选;vi比Emacs的Bulkier版本启动的更快,并且占内存更少。因此,甚至Emacs的追随者又重新使用vi,并且作为邮件编辑器和其他小型编辑工作的首选。1999年時,著名的歐萊禮出版社卖出了比Emacs更多的vi参考书。

当救急软盘作为恢复硬盘崩溃的媒介以来,vi通常被用户选择,因为一张软盘正好存储下vi,并且几乎所有人都可以很轻松的使用vi。

编辑器之战中,vi和Emacs是作战的双方。

vi琐事

ADM3A鍵盤排法,注意該鍵盤沒有獨立的方向鍵,而是與HJKL鍵共用。
  • vi是在加州大学伯克利分校Evans Hall英语Evans Hall中,使用"Lear-Siegler ADM3A英语ADM-3A终端”编写完成,在这台机器上的“退出键”(Esc),也就是今天鍵盤“表格键”(Tab)的位置,目前vi用户仍使用“退出键”(Esc)来转换状态。
  • Emacs的支持者一直说vi拥有极其恶毒的界面。
  • 使用vi的巨集,David Hitz英语David Hitz开发出了“图灵机模拟器”。
  • Snap.com使用vi的界面和命令开发了visearch.com搜索引擎。

vi的衍生物

  • BSD vi 3.7是现代UNIX系统的移植之一,它使用ed作为字库。
  • 作为ex/vi编辑器,nvi被预安装在第四代BSD上(4BSD英语History_of_the_Berkeley_Software_Distribution#4BSD)。
  • VimVi IMproved)是一种升级版,类似nvi。在大多数Linux系统中都安装了Vim。
  • Elvis英语Elvis (text editor)是一个免费软件,可以安装在UNIX和其他系统中。
  • Vigor英语Vigor是流行的vi UNIX编辑器版本,含有Vigor助手,被作为对抗Microsoft OfficeClippy

参考

外部链接

文件系統
程序
  • at
  • bg
  • chroot
  • cron
  • fg
  • kill
  • killall英语killall
  • nice
  • pgrep
  • pkill英语pkill
  • ps
  • pstree英语pstree
  • time
  • top
用户环境
  • clear
  • env
  • exit
  • history英语history (Unix)
  • id
  • logname
  • mesg英语mesg
  • passwd
  • su
  • sudo
  • uptime
  • talk英语talk (software)
  • tput英语tput
  • uname
  • w
  • wall英语wall (Unix)
  • who
  • whoami
  • write英语write (Unix)
文本编辑
  • awk
  • banner英语banner (Unix)
  • basename
  • comm英语comm
  • csplit英语csplit
  • cut
  • diff
  • dirname
  • ed
  • ex
  • fmt英语fmt
  • fold英语fold (Unix)
  • head英语head (Unix)
  • iconv
  • join英语join (Unix)
  • less
  • more
  • nl英语nl (Unix)
  • paste英语paste (Unix)
  • sed
  • sort英语sort (Unix)
  • spell英语spell (Unix)
  • strings英语strings (Unix)
  • tail
  • tr
  • uniq英语uniq
  • vi
  • wc
  • xargs
壳层内建
网络
查找
文档
  • apropos英语apropos (Unix)
  • help英语help (command)
  • man
软件开发
杂项
  • bc
  • cal
  • dc
  • expr
  • lp英语lp (Unix)
  • lpr
  • sleep
  • true和false
  • yes
  1. ^ The Traditional Vi. [2018年2月19日].