0x00 事情是这样子的

折腾的时光总是快乐的,目前空闲下来了,就开始想象有啥活可以整的,老早就想着写一篇软件分享的文章,可是也没啥好推荐的,昨天在看到一篇介绍文本编辑器的文章后突然脑洞大开,那我就来点不一样的呗~命令行下的文本编辑器,硬核吧,(大佬请自行绕过,没错,就是来吓唬小白的

{% note info modern %}一下介绍性的文字均来自咕噜咕噜和菜鸟教程,感兴趣的可以自行搜索。{% endnote %}

0x01 正式分享

1、vi/vim vi/vim

1.1 介绍

vim

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。

但是目前我们使用比较多的是 vim 编辑器。

vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

1.2 安装

由于所有的linux/unix系统都自带了vi,那我这里就讲讲vim的安装吧,(windows就算了,有notepad)很简单,用包管理器直接安装即可,这里重点讲一下我的vim美化/优化方法:D

介绍一个vim的第三方主题扩展包:spacevim,首先我们来看看它的样子:

怎么样,是不是很好看呢,我们在终端里输入这条命令即可直接安装到你的vim配置文件中,下次启动直接就变成sapcevim的界面了。

curl -sLf https://spacevim.org/install.sh | bash

Tips:初次启动会要你选择模式,选择后退出,第二次进入会自动安装初始扩展,等待一下就好。当然后续的插件扩展我们都可以自行DIY,官网里介绍的非常详细我就不多赘述了。

1.3 使用方式

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)。 这三种模式的作用分别是:

{% tabs 三种模式 %}

<!-- tab Command mode -->

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

<!-- endtab -->

<!-- tab Insert mode -->

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

<!-- endtab -->

<!-- table Last line node -->

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

  • q 退出程序
  • w 保存文件

<!-- endtab -->

{% endtabs %}

来张题把这三种模式串一下大家就会很明白了:

vim-vi-workmodel

1.4 小结

总体来说,vi/vim我还是非常推荐的,方便简单是他的代名词,而且命令也不难记,上手几次就熟悉了,而且可扩展性也强,可玩性高,也好看(重点),谁不想有个用起来趁手又好看的工具呢,对处理单个文件的时候就很很方便,不用开IDE那种重型软件。

2、Emacs gnu

2.1 介绍(看看就行)

emacs

Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个vim

EMACS,即Editor MACroS(编辑器宏)的缩写,最初由Richard Stallman于1975年在MIT协同Guy Steele共同完成。这一创意的灵感来源于TECMAC和TMACS,它们是由Guy Steele、Dave Moon、Richard Greenblatt、Charles Frankston等人编写的宏文本编辑器

自诞生以来,Emacs演化出了众多分支,其中使用最广泛的两种是:1984年由Richard Stallman发起并由他维护至今的GNU Emacs,以及1991年发起的XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着相当的兼容性。

Emacs使用Emacs Lisp,这种有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。

2.2 安装

windows用户可以直接去官网下载二进制安装包文件,打开即用,linux/unix系用户、MacOS用户就用包管理器吧,当然也可以下载二进制文件。

2.3 使用方式

tieba_emotion_82我我我,这个真不会,但也许你会喜欢下面几个详细介绍:tieba_emotion_16

{% link Emacs保姆级入门讲解, https://www.bilibili.com/video/BV19p4y1X7W3, https://cdn.jsdelivr.net/gh/Iori-yimaga/PicBed@main/MyBlog/5H8ktr.png %}

2.4 小结

Emacs主要依赖各种快捷键的组合来实现功能,确实挺“方便”的,丢掉了鼠标,但是太多了,对新人不是很友好,但是你耐心的学习一段时间后,又会发现好像打开了新的大门,特别是配合Lisp脚本来拓展插件之后,又会觉得哇塞,这玩意真棒?说是小型的vscode也不为过,可以聊天、收发邮件、听歌等等,等待大家探索。

玩会了来教我

3、helix editor (Logo)

3.1 介绍

这个就是我昨天看的文章里介绍的一款比较新的文本编辑器,相对于前面的两位老前辈,这个就年轻了。

Helix 是用 Rust 编写的,使用 Tree-sitter 进行语法高亮。开发者声称,它比正则表达式高亮更快,因为 Tree-sitter 像编译器一样将代码解析成语法树,从而给出更多的代码结构信息。

你可以跟踪局部变量,计算缩进和操作选择来选择语法节点。它足够强大,即使有语法错误也能产生结果。

Helix 的主要亮点是“多重选择”,这是基于 Kakoune 的。

内置的语言服务器支持提供上下文感知补全、诊断和代码操作。

3.2 安装

各大平台均可使用包管理器安装,windows除外(微软:那我走?),但是本着折腾和geek精神,咱们来自编译?。

前提是装好rust环境和cargo包,然后按照如下顺序输入命令进行编译:

git clone --recurse-submodules --shallow-submodules -j8 https://github.com/helix-editor/helix
cd helix
cargo install --path helix-term

其实完成这一步后,咱们在终端就可以使用hx来呼出hexlix editor了,但是你想要全局呼出的话,需要安装它的运行时,也就是runtime:

cargo install --path helix-term --features "embed_runtime"
3.3 使用

其实操作上很像vi/vim,但是多了一些提示框和动态的效果,看起来更具现代感

vQCuaE

cUAMb0

3.5 小结

用习惯vi/vim的用户来说,可以平滑过渡到这个工具上来,确实挺不错的,我决定要用一段时间了,自编译的还是香~

0x02 我想要说的话

emmmm怎么感觉完全就是vim/vim的专场???其实不是,只是个人习惯使用而已,emacs作为编辑器界的鼻祖,更有emacs就是个操作系统的说法,只是我太菜了d_erha大家完全可以凭借自己的喜好去选择自己想要的,当然,适合自己的才是最好的嘛。

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan