*导读:普通用户只要花1分钟看第二部分即可。高级用户请忽略本文*
1.编辑器之战
2.vi的使用
2.1 vi的3个模式
2.2 vi的3个模式切换
2.3 vi最基本的命令
2.4 vi的基本使用流程
2.5 转有编辑命令(看看即可)
3.进阶,普通用户有兴趣可以google查看
1.编辑器之战
Emacs 是神的编辑器,而Vim 是编辑器之神。
https://zh.wikipedia.org/wiki/编辑器之战
编辑器之战是指计算机编程领域内,两类文本编辑器vi(以及派生版本)和Emacs用户之间的对抗冲突。这已经成为黑客文化和自由软件社区文化的一部分。
这个需要深度使用过各种编辑器才能才能体会到。通常是开发人员需要用到,或者运维人员需要在Linux的命令界面编辑大量脚本及配置文件。
对于普通用户,并不需要深度学习及使用,但也要简单了解,并掌握基本使用。使用Linux系统,是会用到命令行界面的。即使流行的开箱即用的MintLinux,manjaro,也免不了会遇到一些特殊情况需要打开终端,或者开机进入命令行界面维护等需要使用vi编辑配置文件。
注:通常要vi编辑之前先cp复制一个备份先,方便后续恢复。这是普通用户必要养成的习惯,资深用户的一大特点是有良好的备份习惯。
下面只介绍普通用户需要掌握的vi最基本的操作(分分种就能看完),Emacs就不介绍了。Emace实在是太大了(128Mb),所以很多发行版默认并没有安装。
See, vi只有293Kb,
2.vi的使用
对于普通用户,只是在必要的时候,偶尔需要使用vi编辑,比如打开某个配置文件将某行前面的注释符号“#”删除,然后保存退出;或者某行配置后方的yes改为no;或者增减一些项目。
基本上分分种就能搞定的事情,但若不了解vi的话,就会很麻烦了。了解下面最基本的内容也只需要分分种即可。
2.1vi的3个模式
- 普通模式,使用方向键上下滚动,翻页键翻页。
- 插入模式,字符编辑模式,
- 命令模式,输入命令,保存,退出,不保存退出等。
2.2vi的3个模式切换:
$ vi git.txt //vi文件名
- 打开默认进入普通模式
- (i)打开插入模式(普通模式按i键进入插入模式;命令模式先Esc返回到普通模式,再i进入插入模式)
- (:)进入命令模式(普通模式按:键进入命令模式;插入模式先Esc返回到普通模式,再:进入命令模式)
- (Esc)返回普通模式(插入或命令模式都使用Esc返回普通模式)
注意:
- 在插入模式,命令模式时,输入键盘内容都会按照字符被接收,比如i,:都会被输入到光标位置。要切换模式,需要Esc返回普通模式,再按i或者:才能被理解为切换模式的命令。
- 普通模式,并不只是查看模式,输入“dd”删除当前行,“dw”删除当前单词,“d$”删除光标到行尾,等等等,有非常多的快捷键。普通模式也是可以修改到文本内容的,所以这个模式建议只使用方向键及翻页键查看。当然,普通用户不必要记忆这些快捷键,可以不使用他们。这也是插入模式不叫做编辑模式的原因之一,进入插入模式的i也是英文插入的首字母。
- 若不小心按到了什么,也不确定有没有修改到文本,可以Esc返回普通模式,再:q!不保存退出,然后重新打开。
2.3vi最基本的命令
说明:
1.插入模式下所有字母和数字都会当作文本被插入到光标处。要使用命令需要Esc退回普通模式。
2.以:开头的表示命令模式下的命令,其他则为普通模式下会直接被理解为某种操作的命令。
比如”:q”表示先按:进入命令模式,再按q,然后回车,执行退出命令,操作就是“:q回车”。
常用命令:
- :q!不保存退出;
- :q退出(如果有更改未保存,则不能直接退出。需要保存后再退出,或者使用不保存退出);
- :w保存;
- :wq保存并退出(2个命令一起使用);
- /向前搜索(/config,向前搜索config这个单词)
- ?向后搜索
- :100转到100行,后面的数字按需要修改;比如0,跳到第一行;
- :$跳到最后一行;
- :set nu显示行号
- :set nu!取消行号显示
就这些吧,这些足够普通用户应付通常修改配置的需要了。
注:所有命令都是英文字符,比如在普通模式下按?是搜索,但你反复按?都没反映,可能是由于当前输入法为中文状态,按一下shift,切换为英文状态,再按?即可。
2.4vi的基本使用流程
- 找到配置文件;
- 使用cp命令复制备份先;
- 然后vi打开,上下翻,或和/,?关键字搜索到需要修改的地方;
- 按i进入插入模式,进行编辑修改;
- 编辑完成后:wq,保存退出;若不想保存使用:q!,不保存退出;
2.5 专有编辑命令(看看即可)
//到此为止,vi的基本使用已经讲完了,下面内容看看即可。
vi (Executable link, 233kB)
view (Screen oriented (visual) display editor based on ex)
vim (Vi IMproved, a programmer's text editor)
vimdiff (Edit two, three or four versions of a file with Vim and show ...)
vimdot (Combined text editor and dot viewer)
vimtutor (The Vim tutor)
编辑用户及组文件的专用编辑命令,不要使用,要使用操作命令。visudo在必要时可以使用。
vipw (Edit the password or group file)
vigr (Edit the password or group file)
visudo (Edit the sudoers file)
3.进阶,普通用户有兴趣可以google查看
进阶内容实在是太多,太广了,我也只是普通用户,还是google上查看吧。
https://linuxtoy.org/archives/why-emacs-vim-good.html
https://www.jianshu.com/p/732157b02ecc
《黑客与画家》这部经典著作(硅谷创业教父 Paul Graham 保罗•格雷厄姆所写,其实也就是他的一些日志汇编而成),里面讲述了Lisp语言的强大和优美,而Emacs就是用Lisp语言编写的
Lisp(1958年被发明),在2015年6月的TIOBE编程语言排行榜也只有第31位
流行的编程语言,以这样的顺序排列:Java、Perl、Python、Ruby。你会发现,排在越后面的语言,越像Lisp。
有句夸张的话说:Emacs是伪装成编辑器的操作系统。
Emacs其实是个Lisp的解释器,因此可以用Lisp灵活地扩展。Lisp是什么东西,这同样是种很有生命力的编程语言。在C语言还没有发明的年代,MIT的人工智能实验室写ITS操作系统时,一部分用的是汇编语言,还有一部分就是用的Lisp。现在,Lisp仍在人工智能研究领域广泛使用着。
http://qref.sourceforge.net/Debian/reference/ch-edit.zh-cn.html
11.3.4 编辑器命令总汇(Emacs,Vim)
log20190425:添加2.5专有编辑命令(看看即可),修改标题原标题:普通Linux用户需要了解的编辑器 为新标题: 普通Linux用户1分钟上手vi编辑器