折腾的时光总是快乐的,目前空闲下来了,就开始想象有啥活可以整的,老早就想着写一篇软件分享的文章,可是也没啥好推荐的,昨天在看到一篇介绍文本编辑器的文章后突然脑洞大开,那我就来点不一样的呗~命令行下的文本编辑器,硬核吧,(大佬请自行绕过,没错,就是来吓唬小白的)
{% note info modern %}一下介绍性的文字均来自咕噜咕噜和菜鸟教程,感兴趣的可以自行搜索。{% endnote %}
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
但是目前我们使用比较多的是 vim 编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
由于所有的linux/unix系统都自带了vi,那我这里就讲讲vim的安装吧,(windows就算了,有notepad)很简单,用包管理器直接安装即可,这里重点讲一下我的vim美化/优化方法:D
介绍一个vim的第三方主题扩展包:spacevim,首先我们来看看它的样子:
怎么样,是不是很好看呢,我们在终端里输入这条命令即可直接安装到你的vim配置文件中,下次启动直接就变成sapcevim的界面了。
curl -sLf https://spacevim.org/install.sh | bash
Tips:初次启动会要你选择模式,选择后退出,第二次进入会自动安装初始扩展,等待一下就好。当然后续的插件扩展我们都可以自行DIY,官网里介绍的非常详细我就不多赘述了。
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
{% tabs 三种模式 %}
<!-- tab Command mode -->
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
<!-- endtab -->
<!-- tab Insert mode -->
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
<!-- endtab -->
<!-- table Last line node -->
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
<!-- endtab -->
{% endtabs %}
来张题把这三种模式串一下大家就会很明白了:
总体来说,vi/vim我还是非常推荐的,方便简单是他的代名词,而且命令也不难记,上手几次就熟悉了,而且可扩展性也强,可玩性高,也好看(重点),谁不想有个用起来趁手又好看的工具呢,对处理单个文件的时候就很很方便,不用开IDE那种重型软件。
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,这种有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。
windows用户可以直接去官网下载二进制安装包文件,打开即用,linux/unix系用户、MacOS用户就用包管理器吧,当然也可以下载二进制文件。
我我我,这个真不会,但也许你会喜欢下面几个详细介绍:
{% link Emacs保姆级入门讲解, https://www.bilibili.com/video/BV19p4y1X7W3, https://cdn.jsdelivr.net/gh/Iori-yimaga/PicBed@main/MyBlog/5H8ktr.png %}
Emacs主要依赖各种快捷键的组合来实现功能,确实挺“方便”的,丢掉了鼠标,但是太多了,对新人不是很友好,但是你耐心的学习一段时间后,又会发现好像打开了新的大门,特别是配合Lisp脚本来拓展插件之后,又会觉得哇塞,这玩意真棒?说是小型的vscode也不为过,可以聊天、收发邮件、听歌等等,等待大家探索。
玩会了来教我
这个就是我昨天看的文章里介绍的一款比较新的文本编辑器,相对于前面的两位老前辈,这个就年轻了。
Helix 是用 Rust 编写的,使用 Tree-sitter 进行语法高亮。开发者声称,它比正则表达式高亮更快,因为 Tree-sitter 像编译器一样将代码解析成语法树,从而给出更多的代码结构信息。
你可以跟踪局部变量,计算缩进和操作选择来选择语法节点。它足够强大,即使有语法错误也能产生结果。
Helix 的主要亮点是“多重选择”,这是基于 Kakoune 的。
内置的语言服务器支持提供上下文感知补全、诊断和代码操作。
各大平台均可使用包管理器安装,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"
其实操作上很像vi/vim,但是多了一些提示框和动态的效果,看起来更具现代感
用习惯vi/vim的用户来说,可以平滑过渡到这个工具上来,确实挺不错的,我决定要用一段时间了,自编译的还是香~
emmmm怎么感觉完全就是vim/vim的专场???其实不是,只是个人习惯使用而已,emacs作为编辑器界的鼻祖,更有emacs就是个操作系统的说法,只是我太菜了
大家完全可以凭借自己的喜好去选择自己想要的,当然,适合自己的才是最好的嘛。