就像标题所说的那样,我正在寻求用于POSIX shell脚本的高质量文本编辑器。



我很欣赏Sublime Text的快速启动,但是无法识别字符串中的变量:

[ -f "${backup_file}" ] && echo "File ${backup_file} exists, exiting." && exit 1


就像在这个测试用例中一样,它至少无法突出显示开箱即用的变量。 (在Cygwin中运行脚本),也可以在Linux Mint 19上运行。
尽管首选,但它不必是开源的。是免费的。
必须具有图形用户界面,因此CLI编辑器是不可行的。
不必太快,只要让我了解变量和其他与Shell脚本相关的内容的语法高亮


参考脚本已张贴在我对代码审阅的答案中。


底部line

gVim Easy是公认的解决方案,因为对我的HiDPI显示器进行了微小的调整后,它成为了我见过的最快,可能也是功能最强大的编辑器。我打算在“简易”模式下使用它,以便体验正常的编辑,但是以后,我可能会使用它的真正功能。 >
虽然,我对gVim Easy的启动速度感到惊讶,但花了两天的时间花了_vimrc并按我的期望进行了设置,但我对此感到有些厌倦,并且不确定是否值得我这么做我不是一个繁琐的编辑器,我只是编写shell脚本,在花了几个小时学习Visual Studio Code之后,感觉就像在家里一样,我准备说我的决定很仓促,我真的在考虑从Sublime Text切换到Visual Studio Code而不是gVim,因为它开箱即用几乎完美。到目前为止,我什至没有对设置进行任何更改,每当重新安装和/或移动到另一台计算机时,我都必须使用gVim Easy。我不是100%肯定不会使用vim系列,但是对于这个问题,对于将来的读者,应该推荐Visual Studio Code,因此,我接受该解决方案。

评论

您是否尝试过Sublime Text的“ dotfiles语法”包?您发布的行将生成-> i.imgur.com/C2Gu01u.png

#1 楼

Visual Studio代码

优点:


跨平台(Windows,Linux,Mac)
开源,请参见其GitHub页面,尽管那里有点困惑
免费,获得MIT许可
比Atom快
IntelliSense自动完成
在Dell 7577-92774上的启动时间:3秒
Shell脚本语法高亮显示变量:
可以使用ShellCheck插件,这使得它确实是Shell脚本的强大竞争对手。 >


缺点:


比gVim慢
比Sublime Text慢-认为它来自Microsoft


评论


@hvd在此处,此处和此处进行进一步(略有矛盾)的讨论。

–鲍勃
18年7月3日在7:33

VS Code的入门和快速学习也非常简单

–布莱恩·利什曼(Brian Leishman)
18年7月3日在14:52

#2 楼

gVim



跨平台(Windows,Linux,Mac,Amiga,OS / 2,其他,甚至Android和iOS)
打开-source,请参见其GitHub页面

免费(尽管它鼓励慈善捐款),带有Charityware的GPL许可证
快速且高效存储
同时支持GUI和CLI
> Mac和Linux用户可能已经安装了该软件,但OP的Linux Mint 19除外,该计算机根本没有安装,并且可以作为软件包vim-gtk3安装。 0.1秒

语法高亮显示变量颜色(雾化的配色方案):




缺点:


仍然没有弄清楚如何退出它

gVim Easy

由于vim设计基于vi,因此与大多数其他产品完全不同文本编辑器,因此它因难以使用而臭名昭著。但是,有Easy模式,这使vim像标准文本编辑器一样工作。在这种情况下,它称为gVim Easy,在这种模式下,只需添加-y参数即可启动它。

评论


@ el.pescado:q应该退出它。 :q!如果您进行了更改,则不想保存;而:x,如果进行了更改,则想保存。在GVim中,我希望在“文件”菜单中有一个相应的条目(我从未使用过GUI变体)。

– Izzy♦
18年7月2日在11:06

当然,您可以在gvimrc中放置set guioptions =''以隐藏那些讨厌的任务和滚动条。

–立方
18年7月2日在11:49

学习vi / vim / gvim还有附加价值。首先,vi编辑器是已知的Universe中几乎所有unix和unix(例如os)上标准安装的一部分-因此学习vi意味着您可以在GUI或非GUI环境中的任何unix框上编辑文件。其次,vi中的搜索和替换非常接近sed中使用的内容。因此,通过在vi中学习: s / this / that / g,您还将获得一些技巧来使用sed。

–石油
18年7月2日在15:31

@Petro有一天,我不得不使用ed([标准文本编辑器] gnu.org/fun/jokes/ed-msg.html),我很高兴以前使用过vim。 (由于控制台损坏,不得不使用ed)

–烟斗
18年7月3日在12:03

Mac默认情况下绝对不安装Gvim。它具有“ Vim”-终端版本。您可以通过以下几种方式之一安装Gvim,例如通过Homebrew或下载MacVim

– JDS
18年7月3日在14:16

#3 楼

Atom



跨平台(Windows,Linux,Mac)
开源,请参见其GitHub页面
免费费用,已获得MIT许可

突出显示变量的外壳脚本语法,并带有强烈的颜色:

Dell 7577-92774的启动时间:5秒
远,比gVim慢
比Sublime Text慢得多,比Visual Studio Code慢一些>(对我而言,这似乎很无聊,但这当然是基于意见的)


评论


Atom实际上在突出显示长行和其他语言(如SQL,PHP和其他内容)时遇到很多麻烦。除此之外,可靠的答案!

–伊斯梅尔·米格尔(Ismael Miguel)
18年7月2日在21:50

我尝试了Atom,但无法在同一实例(在新选项卡中)中打开文件:当我双击文件时,他们总是打开一个新的Atom窗口,这不是我喜欢的工作方式。这是我们Web设计人员工作流程的一部分(例如,用于从scss创建串联的css文件),所以我想回到它那里。我想我还需要再尝试破解选项卡和Windows之类的东西。

–马克斯·威廉姆斯(Max Williams)
18年7月3日在8:02

#4 楼

Kate



跨平台(Linux,Mac OS,Windows)
开源
免费软件(GPL)
快速
具有语法突出显示功能,支持许多不同的文件(标记,脚本,源代码,配置等)。
带有终端或文件浏览器之类的插件,还支持自定义插件
高度可定制化
具有vi模式
它不是电子应用程序(体积小(AppImage为〜50MB),内存使用率低)


< br缺点:


KDE应用程序,因此,如果您不使用任何KDE和Qt的东西,则需要使用它们。


评论


曾经使用过Kate / Kwrite,但是即使在安装了所有KDE库的情况下,在非KDE桌面环境中运行时,图标也开始消失。

– ivanivan
18年7月2日在15:27

@ivanivan图标在凯特或不相关的应用中消失了吗?

–俄罗斯
18年7月3日在11:38

@Ruslan-凯特(Kate)。重要事项,例如“保存”按钮...。

– ivanivan
18年7月3日在12:33

@ivanivan,您可能想尝试安装Oxygen或KFaenza图标(或现代KDE中默认的任何官方图标):KDE在某些图标的命名或位置上似乎有所不同。我记得oxygen-gtk样式具有相当的逻辑,可以将KDE图标映射到GTK图标以获得一致的外观。

–俄罗斯
18年7月3日在12:44



@Ruslan-我做了完整的KDE安装-缺少图标,除非实际运行KDE桌面(我更喜欢MATE)。不再是问题-不再想为单个应用程序使用数百兆的libs存储空间。与Geany接替感到非常高兴,甚至比Kate让我更快乐

– ivanivan
18年7月3日在13:43

#5 楼

Emacs



跨平台
免费和开源软件
免费
同时支持GUI和CLI用法,甚至同时针对单个实例。您可以将emacs窗口放置在桌面上。通过ssh远程登录并通过CLI查看相同的文件和更改。
同一实例可能有多个窗口(例如X11窗口)。如果您使用的是平铺窗口管理器,那就太好了。
具有语法突出显示功能
易于通过Emacs Lisp进行动态扩展。它正在运行(不仅是lisp,而且还在浏览器中运行javascript等),或者是您的电子邮件客户端。 >
vim具有更好的键绑定方式。 evil软件包在emacs中具有vim键盘绑定,但会干扰其他emacs的使用。 vim宏可以随时击败emacs宏
emacs具有“主要模式”的思想,这些模式与文件类型相关联,并定义键绑定和变量来控制emacs行为。这个想法是每个文件类型在使用它时可能会有不同的理想。不幸的是,这意味着跨文件类型对emacs的使用不太一致。我下载的一些主要模式很棒,对于他们的语言,我使用emacs。但是,对于其他语言,vim是我的选择。


评论


仍然无法从裸机启动:)

– ivanivan
18年7月3日在1:09

如果我没看错,那么在图像上是可见的,根据我的要求,它无法识别字符串中的变量!

– LinuxSecurityFreak
18年7月3日在2:04

您是什么意思“更好的键绑定”,Escape Meta Alt Control Shift出了点问题?

–烟斗
18年7月3日在12:29

哇,您在emacs和vim之间交替使用不同的文件吗?尊重。我已经广泛使用了每个按键,但是一次只能处理一组编辑按键。

–alexis
18年7月3日,12:56



#6 楼

Geany

跨平台。 GPL许可。语法高亮度。实际上是一个重量很轻的IDE-具有用于“编译”,“构建”的按钮,并且可以为适当的文件类型/扩展名设置特定的操作。 br />无法识别字符串中的变量。



#7 楼

jEdit

用Java编写,几乎可以在任何支持Java的平台上运行。可从http://www.jedit.org/index.php?page=download免费下载。突出显示shell脚本的语法效果很好-我每天在工作中使用它。有很多插件可让您根据情况进行自定义。



我不是这个项目的参与者,只是一个快乐的用户。

#8 楼

带有插件“ Hilite Vars”的CudaText。



跨平台(Linux,Mac,Windows)
开源
免费的费用
速度几乎就像Sublime具有的
Bash的语法突出显示一样,带有插件“ Hilite Vars”(在Addon Manager中),它突出显示了字符串中的变量



#9 楼

NetBeans
VScode的设置和使用对我来说有点大而笨拙,尽管我的开发工作很轻巧,所以我不值得花时间真正了解多个IDE。
我也喜欢Kwrite。
对我来说,NetBeans用于多文件和已编译项目(C ++),而Kwrite用于快速单页脚本。 (我也使用控制台VIM,主要是因为我做了很多ssh类型的管理工作,gVIM对我来说似乎很尴尬。)