与语言无关的正确选择Linux的代码编辑器?

时间:2008-10-21 03:06:08

标签: linux editor

我需要一个Linux文本编辑器来取代Textpad 4.7.3(一个Windows nagware应用程序),但我尝试过的所有替代品都是膨胀或不完整的。以下是我发现最重要的功能,按降序排列:

  • 正则表达式搜索,标记和替换(所有打开的文件,甚至),目录树中的正则表达式搜索
  • 带有正确键盘快捷键的选项卡式编辑器([ctrl] + [tab]应该与[alt] + [tab]完全相同的模型)
  • 自动缩进,缩进保留和缩进操作(制表符,shift-tab)
  • 智能导航键:[home]在行开始和非空白开始之间切换,[F2]寻找下一个书签,点击向上和向下箭头键将您带到上次导航的列,不是你上次输入的地方(我认为Textpad是我见过的唯一一个地方)
  • 语法高亮显示(红利:混合语言突出显示,TextPad缺少)
  • 阻止选择模式
  • 从程序(例如编译器)运行用户定义的命令,具有交互式命令结果(Textpad将允许您定义正则表达式以匹配文件名和行号,因此您可以双击错误并将其转到该行文件)。
  • 工作区(同时打开的文件集合)

以下是我在编辑中发现的令人反感的事情:

  • Vim和emacs 没有充分利用我的屏幕,鼠标和键盘。此外,还有有一个学习曲线 - 您必须学习全新的与键盘交互的方式。 (当然,如果他们拥有我想要的一切,我会学习它们。)
  • Gedit几乎是完美的,但它(就像大多数人一样)有蹩脚的标签,无法忍受
  • Eclipse是一个怪物,除非我在做Java,否则我不会触摸它
  • 正则表达式功能非常罕见
  • 几乎没有最后看到的标签遍历
  • 我没有看到任何有关last-navigation-column光标遍历的内容。 (一旦我开始使用它,我发现我不能没有。)

我没有足够的时间或特定的知识来建立我的“理想编辑”,所以我希望那些在编辑中有同样品味的人可能偶然发现了一个宝石。

ETA:不建议您没有亲自使用的编辑器。我听说过SciTE,Eclipse,gedit,medit,nedit,GVim,Gemacs,Kate,Geany,Gnotepad,ozeditor等等。我敢肯定他们中的大多数都有我提到的一些功能。如果您不确定它是否具有基本功能(例如ctrl-tab的工作方式与alt-tab相同),那么您实际上并没有帮助,是吗?

13 个答案:

答案 0 :(得分:9)

这是jEdit的投票,我已经使用了大约5年:

* Regex search mark, and replace (across all open files, even), regex
     

在目录树中搜索

是的,并且返回引用,包括整场比赛的$ 0

* Tabbed editor with proper keyboard shortcuts ([ctrl]+[tab]
     

应该在同一个模型上工作   [ALT] + [标签])

多种显示缓冲区的方式,以及完全可自定义的键盘导航。我最常用的功能之一是“返回到最后一个缓冲区”,我已映射到F12

* Auto-indent, indent preservation, and indent manipulation
     

(tab,shift-tab)

烨。您还可以将它们设置为制表符或空格,并在两个

之间进行转换
* Smart navigation keys: [home] toggles between start of line and
     

开始非空白,[F2]寻求   下一个书签,上下打击   箭头键带你到列   你最后导航的地方,而不是在哪里   你最后输入的(我认为是Textpad的   只有我见过的地方)

一般预期导航。将这些映射到您选择的键。如果将光标放在特定列上并向上翻页或向上箭头,则光标将保留在该列中

  
      
  • 语法高亮(奖励:   混合语言突出显示,其中   TextPad缺乏)
  •   

许多不同语言的xml文件可以自定义令牌匹配。一些混合例如php + javascript

* Block select mode

不,不是我所知道的......等等!对!在编辑 - >下更多选择 - >矩形选择。感谢dwhall指出

* Run user-defined commands from program (such as compilers), have
     

交互式命令结果(Textpad   会让你定义匹配的正则表达式   文件名和行号,所以你   可以双击错误然后   在该文件中占据该行。)

许多插件可以从完整的命令行控制台(在linux和windows中工作)到可以进行系统调用的BeanShell宏。许多常见插件的插件,如ant,cc,make,svn等

* Workspaces (collections of files to be open at the same time)

是的插件,jEdit也跟踪打开的文件,未保存的更改和会话之间的光标位置

  

这是我发现的令人反感的东西   我试过的编辑:

* Vim and emacs do not take full advantage of my screen, mouse, and
     

键盘。还有一个   学习曲线。 (当然,如果他们   拥有我想要的一切,我会学习   它们。)

jEdit是一个java程序,但仍然可以很好地利用跨平台的剪辑板并拖放

* Regex capability is frighteningly rare

jEdit具有我见过的最好的正则表达式处理,正则表达式搜索可以返回多个结果grep样式,并且在搜索后添加或删除文本行时结果位置不会混淆

* Almost nothing has last-seen tab traversal

就像我说的我最喜欢的功能之一是“转到最后一个缓冲区”

* I've not seen anything with last-navigation-column cursor
     

遍历

就像我说的那样,在向上和向下翻页时,你的光标会留在列中

我喜欢的其他功能:

  • 基于缩进的折叠:无需语法识别,只需折叠缩进
  • 即可
  • 并排差异:漂亮的图形差异视图
  • 多视图和拆分窗格
  • 使用beanshell进行宏录制
  • 缩写:当我点击空格时,我有2-3个字母的简短关键字扩展为代码段

答案 1 :(得分:6)

Vim和emacs没有充分利用我的屏幕,鼠标和键盘。

你看过gvim了吗?我自己就是一个控制台人员,但我很确定它是GUIlicious。

答案 2 :(得分:4)

我推荐Geany(现在版本0.15)。它具有您需要的所有(或几乎所有)功能。 查看手册以查找密钥(我在发现它有块选择之前使用了一年)。

答案 3 :(得分:3)

我认为你在如何运作方面非常挑剔时犯了一个严重的错误。在每个方面,您可能都找不到像TextPad一样完全的东西。您错过了一些建议的文本编辑器中的一些强大功能。

我在使用Emacs的过程中学到的一件事就是“你能在Emacs中做X”这个问题的答案总是是的! (当然,有一些角落不是这样,但它基本上是对现实的一种很好的近似。)所以,我意识到有人可能已经实现了一个模块,使Emacs更加Windowsy(CUA-shortcuts,Ctrl -Tab等)点击“emacs 中的 Windows键”后,我找到了EmacsW32。它似乎有许多你要求的功能:

  • Regexp支持:是
  • Ctrl-Tab缓冲区切换:是
  • 自动缩进:是
  • 语法突出显示:是
  • “智能导航键”:不是直接的,但这可以通过简单的重新绑定正确的命令来实现。
  • 阻止选择:是
  • 用户定义的命令:是
  • 直接跳转到编译器错误位置:是的,但如果您使用的是非标准错误格式的编译器,则可能需要调整用于提取错误消息的正则表达式
  • 工作区:是(我认为现在包含在标准包中)

请记住,Emacs拥有一个庞大而活跃的社区,其中包含大量的在线资源,以及许多愿意帮助您自定义Emacs的人。如果你错过了Emacs中的一个功能,那么其​​他人可能已经实现了它!

答案 4 :(得分:2)

我也建议jEdit。它有许多功能和许多插件。

维基百科对文本编辑器进行了很好的比较,这些编辑器也可能有用: http://en.wikipedia.org/wiki/Comparison_of_text_editors

答案 5 :(得分:1)

你试过scite吗?

http://www.scintilla.org/SciTE.html

你的发行版可能已经有了它的包。

我相信有一个插件可以添加项目,但我不记得它在我的头顶。我不确定是否可以双击错误跳转到该行。

答案 6 :(得分:1)

您是否尝试使用Wine在Linux中运行Textpad?

答案 7 :(得分:1)

jEdit可能就是你要找的东西。开箱即用它有很多你想要的东西,所有其他的东西都可以在大量的插件中找到。

答案 8 :(得分:1)

如果没有其他原因,我当然会推荐PowerPad

以下是您在Linux版本中可以找到的一些很棒的功能:

  • 多标签界面
  • 基于Python的强大脚本语言
  • 无限撤消
  • 自动缩进
  • 支持通过FTP打开和编辑文件
  • 能够打开UTF-8和UTF-16编码文件

答案 9 :(得分:0)

你试过Kate吗?我不确定它是否符合您的所有要求,但它可能。此外,对于更面向开发的工具,您可以尝试KDevelop,其默认编辑器是Kate(但您可以更改实现KTextEditor接口的任何其他编辑器)

答案 10 :(得分:0)

notepad ++是全功能的,我一直用于所有语言!

它在Windows上,但显然它可以使用WINE在linux上运行 http://notepad-plus.sourceforge.net/uk/nppLinux.php

答案 11 :(得分:0)

ActiveState的Komodo Edit有一个linux版本,它完成了你描述的大部分内容。我一直在使用它已经超过一年了一年,虽然我不喜欢它,但我在Linux上找不到更好的东西。这是他们的商业产品的免费版功能减少,如果它更好用,我很想购买功能更强大的Komodo IDE。

这不是真正的稳定,至少在我的系统上。它经常崩溃或冻结,所以如果你尝试的话,请经常保存。

我最近从4.2升级到版本5,这不是一个改进。他们打破了很多东西,所以我要回到4.2。他们破坏的主要内容让我感到难过的是编辑多个文件的标签。在4.2中,他们让x在标签行的右边缘关闭,其位置从未改变。在5中,它移动到活动选项卡的末尾。现在,如果不针对每个文件瞄准鼠标,则无法关闭多个文件。

我在Komodo之前使用过Eclipse,并且Komodo 4.2比一年前的Eclipse差。

真的,这个回应并不是对Komodo Edit的认可。我真的不满意,我希望你能找到一个好问题的编辑,这样我也可以转换。

答案 12 :(得分:0)

我刚刚根据Kknd的帖子安装了Geany,它是SWEET。

我最近从Mac跳到Linux(Ubuntu),并且一直缺少BBEdit。经过几个月在gvim和gedit之间来回弹跳并发现jedit有点笨重,我相信Geany是我的答案。当您开始挖掘时,完全直观的开箱即用,很多好东西。

不确定它是否在phyzome测试中得到A,但肯定是A-minus:

完全可配置的语法/颜色主题 - 我刚安装了由Barry Van创建的黑暗主题,但您可以根据需要创建自己的主题。不得不承认我从来没有想过混合语言突出显示是一种真正的可能性,所以不确定那个。

多文件搜索,正则表达式。

定向和历史标签导航。

很棒的自动缩进选项(不同的大括号模式,制表符与空格,您甚至可以使用制表符进行编辑,并在保存时将其自动转换为空格!)

老实说,我不太考虑“智能导航键”(超出基础),所以不能真正说出来,但它似乎有很多键盘快捷键的配置选项..?< / p>

尚未调查块选择模式,但Kknd说它在那里。

运行/编译控件,虚拟终端仿真器,用于运行命令。

工作区......哇!也许不吧。它确实有一个文件边栏..也许在某个地方有一个工作区插件? “添加一些东西”仍然比“从头开始构建”更好;)