Nano vs Emacs vs Vim 让你了解他们的不同

Stella981
• 阅读 994

Nano vs Emacs vs Vim,是的你没看错这是三款在Linux系统中常见到的编辑器。关于编辑器之争历来已久,尤其以Emacs 和 Vim之间较为激烈,每个编辑器都有自己忠实的粉丝用户,所以争论也从未停止过,只要你开启了一个编辑器对比的话题,看吧,必然就会引起一场谁优谁劣的争论。

本文简述这三款在Linux下不同的编辑器,目的为带小白们了解一下他们的不同,不做过多的争论。它们都是非常不错的编辑器,在你使用Linux系统的过程中难免都要对他们了解一下。

Nano 编辑器

Nano在这三款编辑器中是最简单的一种,它功能简单,操作也很简单,恰好的满足文本编辑。通常,默认Linux发行版都默认自带Nano编辑器。

Nano学习起来很容易,没有像Emacs和Vim那样陡峭的学习曲线。无论何时你打开Nano编辑器,你会在屏幕底部看到一个你需要的命令操作列表。

你不需要去记住很多操作命令,只要根据下面命令按需操作即可。

在列出的命令列表中,符号“^”代表Ctrl键,组合键 Ctrl+G 代表获取帮助,Ctrl+X 代表退出Nano编辑器。

image-20200408112310894

你执行不同操作,屏幕底部就会自动显示为当前可用的命令。Nano编辑器的底部区域就是一个提示区域,任何需要处理的提示都会显示在这里。

例如,当你准备退出Nano,而编辑的文件未保存时,Nano编辑器底部会提示输入Y或者N来决定是否保存修改内容,^CCtrl+C 则是取消。

image-20200408113025450

至此,你应该对Nano编辑器有了一个初步的认识。如果你想了解更多关于Nano编辑器的使用,不妨在你的Linux系统命令行终端中输入nano命令,开始尝试吧。当然你也可以访问The GNU nano homepage了解更多关于Nano编辑器信息。

对Nano编辑器总结

Nano编辑器的优点

  • 没有学习曲线。
  • 易于使用,操作简单。
  • 适合简单文本编辑。

Nano编辑器的缺点

  • 对复杂的文本编辑比较耗时。
  • 无强大的命令功能进行复杂操作。
  • 不支持如宏、一次编辑多个文件、窗口分割、垂直块/矩形选择/编辑、自动完成等高级功能。

Nano编辑器适合的用户

Nano适合对命令行不熟悉或只需要进行简单文本编辑的Linux用户和Linux新人。如果在Linux上编辑文本时,你对Vim和Emacs都不熟悉,那么Nano将非常适合你。

Emacs 编辑器

Emacs不仅仅是一个文本编辑器,它更像是一个操作系统,它带有内置的网络浏览器、IRC客户端、计算器,甚至俄罗斯方块。如果你仅仅以文本编辑器的视角看它,了解了它的功能后,你甚至会觉得很惊讶,不敢相信这真的仅仅是文本编辑器。

image-20200408150131218

Emacs中的操作基本上都有快捷键,这样可以让你手不用离开键盘就可以完成所有操作,非常有效率。不过你也要记住好多的不同快捷键操作组合,这对于新手来说不是一件简单的事情。

例如,退出Emacs的快捷键操作命令是C-x C-c,你需要按住Ctrl键,然后依次再按x键和c

Emacs之所以是一款很强大的编辑器,是因为其完全定制的能力。你完全可以使用Emacs Lisp自己实现想要的功能,当然这前提是你得学习了解Lisp语言才具备这样的条件。

对Emacs编辑器总结

Emacs编辑器优点

  • 可定制和可扩展。
  • 强大的编辑功能。
  • 可以与许多自由软件编程工具的成熟集成。
  • 它真的是功能强大,因为你可以在他上面编辑文件,浏览网页,玩游戏等等。

Emacs编辑器缺点

  • 入门难度高,对普通用户不够友好,学习曲线陡峭。
  • 快捷键操作离不开的Ctrl键,小拇指频繁操作。
  • 如果需要定制Emacs,你需要学习Emacs Lisp。

Emacs编辑器适合的用户

Emacs是为那些不仅仅想要一个文本编辑器的人准备的,因为Emacs可以是一个“环境”。它也适用于有强烈渴求或需要定制的人。大概率被开发人员,技术人员,运维人员等这些人使用。

Vim 编辑器

Vim一直以来也都是一款强大的文本编辑器,经常有人拿它和Emacs来对比。Vim和Emacs有很多相似点,如编辑功能强大,学习曲线都一样陡峭。

image-20200408160647471

如果你的工作长期需要你在Linux下操作,学会Vim将会对你非常有帮助。Vim非常擅长编辑文本,这也是它的特色,一旦你掌握了Vim,你的文本编辑将会非常有效率。

如果你经常在命令行工作,选择Vim确实是没错的!

image-20200408163913418

Vim可以同时打开和编辑多个文件,能创建宏,能进行全局替换,能快速查找定位内容等等。Vim还可以进行定制,它有很多插件可以安装,配置的好你可以把它做不逊色大部分IDE的编程工具平台。当然你也可以自己编写定制功能,前提是你要会vimscript,这和Emacs的Emacs lisp很相似。

image-20200408164025799

熟悉Vim可以让你高效的在Linux上完成各各样的文本编辑工作,任何文本的处理它能能胜任。

对Vim编辑器总结

vim编辑器优点

  • 高效的文本编辑,高效率移动,高效移动。
  • 能进行复杂的文本编辑,既快又好。
  • 提供强大的功能支持,如:多文件/窗口支持、所有内容的键盘快捷键、宏、寄存器、快速命令重复、自动完成、文本对象、过滤器和全局替换等。

vim编辑器缺点

入门难度高,学习曲线陡峭。

如果需要定制vim,你需要熟悉vimscript。

vim编辑器适合的用户

对于Linux系统管理员来说,Vim是必不可少的。对于程序员也很适合,也非常适合写代码进行文本编辑操作。同样,它也非常适合经常在命令行工作或者必须登录到Linux服务器的任何人。

事实上,Vim是为那些使用任何类型文本数据的人设计的。

写在最后

每个软件都有适合自己的场景,这也是它们存在的理由。孰优孰劣我们不做过多讨论,选择适合自己的就是最好的。

本文通过介绍Nano,Emacs,Vim三款不同的编辑器,希望能让你对他们有所初步了解。

如果想了解更多Linux中命令使用,可以下载Linux命令中文手册,关注我后,公号里面回复“命令”即可下载。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这