适用于 Linux 的与语言无关的正确制表符代码编辑器?

2024-03-17

我需要一个 Linux 文本编辑器来替换 Textpad 4.7.3(一个 Windows nagware 应用程序),但我尝试过的所有替代方案要么臃肿要么不完整。以下是我认为最重要的功能(按降序排列):

  • 正则表达式搜索、标记和替换(甚至跨所有打开的文件),目录树中的正则表达式搜索
  • 选项卡式编辑器proper键盘快捷键([ctrl]+[tab] 应该适用于完全相同的型号如 [alt]+[tab])
  • 自动缩进、缩进保留和缩进操作(制表符、Shift-制表符)
  • 智能导航键:[home] 在行开头和非空白开头之间切换,[F2] 寻找下一个书签,按向上和向下箭头键会将您带到上次导航的列,而不是上次键入的位置(我认为 Textpad 是我见过这个的唯一地方)
  • 语法突出显示(奖励:混合语言突出显示,TextPad 缺乏)
  • 块选择模式
  • 从程序(例如编译器)运行用户定义的命令,获得交互式命令结果(文本板可以让您定义正则表达式来匹配文件名和行号,这样您就可以双击错误并转到该文件中的该行。)
  • 工作区(同时打开的文件集合)

以下是我在尝试过的编辑器中发现的令人反感的内容:

  • Vim and emacs do not take full advantage of my screen, mouse, and keyboard. Also, there's have quite a learning curve -- you have to learn an entirely new way of interacting with the keyboard. (Of course, if they had everything I wanted, I would learn them.)
  • Gedit 几乎是完美的,但它(像大多数一样)有蹩脚的选项卡,这是无法忍受的
  • Eclipse 是一个怪物,除非我在做 Java,否则我不会碰它
  • 正则表达式功能是极其罕见的
  • 几乎什么都没有最后一次露面标签遍历
  • 我没有看到任何有关最后导航列光标遍历的内容。 (一旦我开始使用它,我发现我离不开它。)

我没有时间或没有构建我的“理想编辑器”所需的具体知识,所以我希望有相同编辑品味的人可能会偶然发现一个宝石。

预计到达时间:请不推荐你没有的编辑器个人使用的。我听说过 SciTE、Eclipse、gedit、medit、nedit、GVim、Gemacs、Kate、Geany、Gnotepad、ozeditor 等。我确信它们中的大多数都具有我提到的一些功能。如果您不确定它是否具有基本功能(例如 ctrl-tab 与 alt-tab 的作用一样),那么您并没有真正提供帮助,不是吗?


这是对 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

(制表符、Shift-制表符)

是的。您还可以将它们设置为制表符或空格并在两者之间进行转换

* Smart navigation keys: [home] toggles between start of line and

非空白的开始,[F2] 寻求 下一个书签,上下打 箭头键将您带到该列 您上次导航的位置,而不是位置 你上次输入的内容(我认为 Textpad 是 我唯一见过这个的地方)

一般预期导航。将它们映射到您选择的键。如果将光标置于特定列并使用向上翻页或向上箭头,光标将保持在该列中

  • 语法突出显示(奖励: 混合语言突出显示, 缺少文本板)

许多不同的语言都可以使用 xml 文件来自定义标记匹配。一些混合,例如 php + javascript

* Block select mode

不,据我所知还没有……等等!是的!在编辑 -> 更多选择 -> 矩形选择下。感谢 dwhall 指出这一点

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

交互式命令结果(文本板 可以让你定义正则表达式来匹配 文件名和行号,以便您 可以双击错误并 转到该文件中的该行。)

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

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

yup 插件也适用于此,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 个字母的简短关键字,当我点击空格时,这些关键字会扩展为代码片段
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适用于 Linux 的与语言无关的正确制表符代码编辑器? 的相关文章

  • 强制卸载 NFS 安装目录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 如何根据 HTTP 请求使用 Python 和 Flask 执行 shell 命令并流输出?

    下列的这个帖子 https stackoverflow com questions 15092961 how to continuously display python output in a webpage 我能够tail f网页的日志
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • 将 PDF 转换为 600dpi 的 TIFF 和 jpg 96 dpi

    我想使用 ImageMagick 从 Python 脚本将 pdf 转换为 600 dpi 的 tiff 和 96 dpi 的 jpg 我使用 imagemagick 命令行完成了这项任务 但我想使用python中的Imagemagick将
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是

随机推荐