LWN:Android平台的Emacs!

emacs-android-mode emacs config file for android development 立即下载

关注了就能看到更多这么棒的文章哦~

Emacs for Android

By Jonathan Corbet
June 29, 2023
ChatGPT assisted translation
https://lwn.net/Articles/936576/

Emacs 编辑器并不依赖于 Linux 内核;实际上,它在 Linux 出现几年前就已经存在了。Emacs 的代码重视可移植性,在各种系统上都可以不同程度地运行起来。最近,一位积极的开发者致力于将其能支持的系统再增加一个 Android,已经得到了一个可以工作的移植版本,但能否被合并到 Emacs 的主线,仍在持续讨论中。

在 2022 年的最后一天,Po Lu 宣布将初步的 Emacs 移植推送到 Emacs Git 仓库的一个功能分支中。这个移植版本大约有"14,000 行代码",基本功能可以正常工作;Lu 请求大家帮助解决剩下的一些问题。 Lu 在 1 月份回来时提出了其他人可以承担的更详细的一些建议。2月份,移植版本被宣布为"基本上具备完整功能",在 3 月初,Lu 要求将这项工作在"接下来的几天"内合并到 Emacs 主线版本。当时,Emacs 维护者 Eli Zaretskii 表示不情愿,直到现在为止,仍未合并。

F-Droid 存储库中有一个 Android Emacs 移植版本,但那个版本已经过时,Lu 不推荐使用。在 SourceForge 上还有一组经常更新的二进制版本供不想自己构建的用户选择,这似乎是最好的选择。

323176bb86db6abc92a1458a3feb55f6.jpeg

尽管使用这个移植版本在编者的 Android 系统上可以运行,但使用起来仍然有些麻烦。图标太小,无法清晰显示,对于手指较粗的人来说,触摸准确性也有问题。肯定有一种方法可以使用 Android 键盘进行像 M-$ 组合键(运行 ispell-word)这样的需要扭曲手指的三键组合键,但我还不知道怎么做,也不方便进行常规使用。任何希望在该平台上认真使用 Emacs 的人都最好配备一个外部键盘。即便如此,Android 的权限系统(被 Lu 称为"法西斯主义")使得无法访问系统中的全部文件。

尽管如此,人们似乎对这个移植版本有一些兴趣,而且 Lu 并不是唯一希望将其合并的人。然而,Zaretskii 仍然不信服;在 6 月中旬,他开启了一场讨论,称虽然合并 Android 代码将带来一些好处,但也会带来一些不利因素。它将显著增加 Emacs 的分发内容,将 Java 代码引入 Emacs,使一些现有的内部 API 变得复杂,并且最重要的是,将导致依赖一个单一维护者能了解移植版本并能够使其保持正常工作。鉴于这些问题,再加上 Android 是一个专有平台,他问道,保持 Emacs 不支持 Android 岂不是更好?

Lu 回应称,这个移植版本也可以在 Replicant 等自由 Android 版本上运行,不过也承认"这些系统使用得很少,不应被考虑在内"。NeXTSTEP/macOS 移植版本使用 Objective-C,因此为平台引入新语言已经有了先例,并且为了最小化所需的 Java 代码量,已经对 Android 移植版本进行了精心设计。关于维护,Lu 表示所需的更改并不是很大,有很多具有 Android 经验的自由软件开发者,而且他打算继续留在这个项目并确保一切正常运行。

讨论继续进行,其中还有一些讨论是专门关于 Emacs 开发的一些整体挑战的内容,这里不涵盖了。许多参与者表示希望有 Android 移植版本;例如,Arne Babenhauserheide 博士评论说,这将是在 Android 设备上提供 Org Mode 的最佳途径。然而,Zaretskii 仍然坚持认为,讨论优势并不是问题的核心:

我毫不怀疑,在 Android 上拥有 Emacs 将使 Android 用户受益;我的疑虑是,作为项目,我们是否应该并且能够承担起这个额外的维护负担,并承诺将来几年内维护、甚至开发这个移植版本。

这种关于维护方面的担忧并非毫无根据。查看 feature/android 分支可以看到 620 个 commit,其中 619 个是由 Lu 编写的(另一个 commit 是修正了一个拼写错误)。换句话说,Lu 今年早些时候寻求帮助,但没有其他贡献者参与到这个移植版本的开发中。Emacs 还有其他一些移植版本,人们认为状态并不是很好,其中包括 macOS 移植版本,其维护者已离开社区。增加另一个支持较差的移植版本对 Emacs 整体的状态不是很好。

然而,Lu 坚信 Android 移植版本会得到很好的支持。对于 Richard Stallman 来说,这已经足够了:"但是如果 Po Lu 说他想继续努力工作,并会继续完善使得可以大受欢迎,我建议值得在这方面投入精力。" 然而,Zaretskii 重申了他的担忧,称 Emacs 项目过去曾因此而受伤,并可能重蹈覆辙。但他对合并 Android 支持并不是完全拒绝:

"但也许我是唯一一个困扰于这个事实的人,即我们作为一个项目,从来没有将头抬出水面,超越明天或后天,展望未来?如果是这样,我将停止谈论这个问题,并接受事实也就是其他人并不感到困扰。毕竟,我不是这个项目的负责人,我只是一个管理者;如果社区决定这样做,社区将承担后果,无论是好是坏。"

读完这些对话,看起来除 Zaretskii 之外,很少有人担心合并一个今后可能失去唯一维护者的移植版。也许这个结果可能是因为回应者主要是 Emacs 用户,而其他开发者大多保持沉默。当维护负担由他人肩负时,维护任务就不那么令人畏惧。接受大量新代码存在风险,但不支持一个受欢迎的平台并让一个多产的贡献者失望也是存在风险的。Emacs 社区将选择哪种风险,还有待观察。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

format,png

android-mode emacs android mode for android development 立即下载

相关推荐

模拟量传输4-20ma电流

大家可能会非常熟悉RS232,RS485,CAN等工业上常用的总线,他们都是传输数字信号的方式。那么,我们用什么方式来传输模拟信号呢?工业上普遍需要测量各类非电物理量,例如温度、压力、速度、角度等,这些都需要转换成模拟量电信号才能传输到几百米外的控制室或显示设备上。工业上最广泛采用的是用4~20mA电流来传输模拟量。 采用电流信号的原因是不容易受干扰,因为工业现场的噪声电压的幅度可能达到数V,但是噪声的功率很弱,所以噪声电流通常小于nA级别,因此给4-20mA传输带来的误差非常小;电流源内阻趋于无穷.

tangdongming的博客 1万+

【亲测免费】 emacs-android: 在Android设备上运行Emacs

emacs-android: 在Android设备上运行Emacs 项目简介 emacs-android是一个用于在Android设备上运行Emacs的项目。它通过将Emacs移植到Android平台,让你可以在手机或平板电脑上享受Emacs的强大功能。 主要功能 在Android设备上直接运行Emacs 支持触屏操作,如滑动、点击等 可以安装和使用各种Emacs插件 支持多种编程语言的语法高亮...

gitblog_00061的博客 900

Telegram AI Bot自动化实战:5步用Make搭建业务工作台

Telegram Bot 是一种轻量级、高抵达率的消息自动化载体,其核心价值在于将结构化消息(如text、photo、callback_query)转化为可编程的事件流。基于 Bot API 的简洁设计与 Webhook 机制,开发者无需复杂鉴权即可实现毫秒级响应。结合低代码平台 Make,可快速构建具备上下文识别、条件路由、多系统分发与错误熔断能力的自动化流程。该方案特别适用于客服分发、数据同步、IoT告警等高频、规则明确、需即时反馈的业务场景,显著降低对 Python/Node.js 编程与 DevOp

weixin_33158887的博客 301

【快速参考】用Emacs做Android开发环境

之前在学校的课上一直在用Eclipse学习Android开发。虽说Eclipse对Android开发工具链的集成是极好的,无奈JVM太耗内存了,再加上Android emulator本身又是一个吃内存的大户,对于我这种常年Chrome开着几十个标签的人来说实在是伤不起,于是最近就回到了Emacs+命令行刀耕火种的时代…… 1. 安装Android SDK Arch用户从AUR安装 an

preyzl的专栏 1395

RT-Thread代码启动过程——以及 $Sub$ $main 与 $Super$ $main

我们找到系统复位的地方,可以往下单步跟踪。 ①从系统初始化开始执行,将函数地址赋给R0寄存器,跳转到R0地址执行并返回此处(BLX是带链接的跳转,即带返回的跳转)。 ②将main函数地址给R0,将函数地址赋给R0,跳转到R0地址执行,不返回(BX是跳转,不返回)。 ③跳转到了$Sub$$main。 【注:在 __CC_ARM 编译器环境下,使用了$Sub$$ 与$Super$ $ 的...

yang1111111112的博客 1万+

【学长笔记】关于车牌识别的CCPD数据集按比例划分

本文介绍了一个用于CCPD车牌数据集划分的Python脚本,主要功能包括:1) 将数据集按比例划分为训练集、验证集和测试集;2) 支持图像与标签文件校验;3) 可自定义划分比例和样本数量限制;4) 自动生成标准目录结构。脚本使用随机种子确保可重复性,并通过tqdm显示进度条。处理后数据可直接用于YOLO等目标检测模型的训练与评估,建议在预处理完成后立即执行划分以避免数据泄露。文章还提供了相关技术博客的参考链接。

apple_53308981的博客 1478

emacs android编程,Emacs 使用android模式

首先用package system安装android-mode,然后编辑~/.emacs.d/init.el文件,添加下面几行:(require ‘android-mode)(setq android-mode-sdk-dir "/opt/android-sdk-linux/")现在重新启动emacs,然后M-x 中运行命令android-start-emulator此时会提示输入Android ...

weixin_31448343的博客 409

Palabos 并行计算与多物理场模拟实战指南

本文详细介绍了Palabos在并行计算与多物理场模拟中的实战应用。作为基于C++和LBM的开源CFD工具,Palabos通过MPI实现高效并行计算,特别适合处理复杂流体模拟问题。文章涵盖从基础安装、多物理场耦合技巧到性能优化策略,并分享工业级应用案例与调试经验,帮助开发者快速掌握这一强大工具。

4k5l6j7h8的博客 245

Emacs 使用android模式

首先用package system安装android-mode, 然后编辑~/.emacs.d/init.el文件,添加下面几行:(require 'android-mode) (setq android-mode-sdk-dir "/opt/android-sdk-linux/")现在重新启动emacs,然后M-x 中运行命令android-start-emulator此时会提示输入Androi

Dean Chen的专栏 5140

红外图像处理实战:用MATLAB实现时域高通滤波(THPF)去噪(附完整代码)

本文详细介绍了如何利用MATLAB实现时域高通滤波(THPF)算法进行红外图像去噪,包括核心原理、工程实现要点和完整代码示例。通过分析时间窗口选择、空域预处理优化和自适应参数调整等关键点,帮助开发者有效抑制固定图案噪声,适用于无人机载红外监测和安防监控等场景。

weixin_42783709的博客 183

MATLAB基础应用精讲-【数模应用】PPO算法(附python代码实现)(二)

表示为状态转移概率和动作选择概率的乘积,因为状态和动作决定轨迹。

qq_36130719的博客 413

android 进退分屏代码策略,Emacs 闲谈 (二) 自如的分屏

简单编程今天很巧,是双 11 节,你有剁手吗?对于这个节日,我从来就不感冒,因为:"断舍离、简单生活" 是我越来越喜欢的生活方式。在编程世界中,Emacs 也带给我类似这般:"断舍离、简单编程" 的感觉。你是否曾有过如此的经历:本想干干静静地写写代码,但为了参考,不得不打开好多相关的文件,拖来拖去的查看,枯燥无味的点击......屏幕一会儿就杂乱了、心情也跟着浮躁起来。而 Emacs 的分屏,就是...

weixin_32012539的博客 407

大模型实战—通义千问大模型微调

这个参数仅针对 llama 类型的模型结构,默认勾选的是 q_proj 和 v_proj,具体的名词不容易理解,我就不多说了,可以简单的认为是对模型的理解能力进行优化,一般这两个就够了。当这个值较高时,适应新任务的能力会增强,但是对基础模型的影响会比较大,有过拟合的风险,尤其是在数据量有限的情况下。为了方便测试,我在云环境也创建了一个镜像,相关的环境都配置好了,可以直接使用几个国内开源的大语言模型,比如清华智谱的ChatGLM3-6B、零一万物的Yi-34B,还有最近阿里云开源的Qwen1.5-32B。

7万+

LWN:期待Emacs 30!

关注了就能看到更多这么棒的文章哦~Looking ahead to Emacs 30By Jake EdgeJanuary 30, 2024Gemini translationhttps://lwn.net/Articles/959931/2023 年的EmacsConf与之前的一样,是一场网络会议,讨论了Emacs 编辑器的各个方面—当然,它不仅仅是一个编辑器。去年的会议是在 12 月初举行。其...

Linux News搬运工 1036

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Linux操作系统发展历程与核心技术解析

Linux作为开源操作系统的代表,采用模块化内核设计,支持多任务处理和虚拟内存管理等核心功能。其技术架构包含进程管理、内存管理和文件系统等关键子系统,通过GPL许可证保障了开源自由。Linux在服务器、嵌入式系统和云计算领域广泛应用,特别是在容器化和云原生技术中发挥重要作用。随着物联网和人工智能的发展,Linux持续优化实时性和资源管理能力,成为现代IT基础设施的基石。

dianzongfan5428的博客 339

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C语言为何仍是操作系统内核开发的首选?内存管理与硬件交互的绝对优势

在计算机系统编程领域,内存管理和硬件交互是两大核心基础概念。内存管理涉及程序如何分配、使用和释放内存资源,直接关系到程序的性能和稳定性;硬件交互则决定了软件能否直接、高效地控制底层硬件设备。这些底层技术原理构成了操作系统、驱动程序和嵌入式系统等关键基础设施的基石,其技术价值在于实现对计算资源的极致控制和高效利用。在操作系统内核、嵌入式固件、高性能中间件等对性能、资源消耗和确定性要求极高的应用场景中,开发者需要一种能够提供直接内存访问、最小运行时开销和高效硬件抽象的语言。C语言凭借其指针操作、内存布局控制和贴

android_mylove的专栏 444

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Emacs用JDEE编写Android程序

前文介绍了如何用Maven构建Android工程,现在进一步介绍如何使用JDEE编写程序。Ubuntu 14.04 Android 使用Maven二 创建自己的Maven工程如何安装JDEE可以参考之前的文章:Emacs 24.3 配置JDEE首先要安装一个m2jdee的插件,能够根据maven的pom.xml中的配置生成jdee所需的prj.el文件。获取该项目:git clone git@gi

Dean Chen的专栏 4739

一年成为Emacs高手(像神一样使用编辑器)

作者:陈斌(redguardtoo) 版本号:20140329 更新时间: 2014-03-29 Sat 原创时间: 2012-01-31 Tue 版权:本文采用以下协议进行授权,自由转载 - 非商用 - 非衍生 - 保持署名 | Creative Commons BY-NC-ND 3.0,转载请注明作者及出处. 1 注意 1.1 我的某些观点可能有争议 首先请考虑到

redguardtoo的专栏 62万+

安卓系统安装linux,安卓手机上安装Linux发行版

图片发自简书AppAtilo 是一个帮助你在Termux上安装多种发行版的脚本。你可以安装Alpine,Arch,CentOS(仅EN版本),Debian,Fedora,Kali,Ubunt,一切尽在一个脚本中新版本几乎重写了所有的代码,现在的使用方法与apt相当,建议国内用户使用CN版本。本版本把所有发行版更新到了最新版(Fedora 29不提供arm版本rootfs,可以用28升级上去),并且...

weixin_31083901的博客 781

我的Emacs折腾经验谈(二) Emacs上手难的原因

既然之前说过要写我怎么继续折腾Emacs的,过了一个星期这里就是第二篇了,突然觉得我把blog这样分节不是很好,每次可能要凑一些东西才有该有的篇幅,而且说的东西可能东一点西一点,这样一篇看下来不利于检索,所以这一篇过后会按主题来写,不再用原来的形式,有一点写一点,每次围绕一个主题来,这样比较好阅读一些. 今天写一些Emacs我刚入门遇到的困难,这里我拿目前很流行的sublime来与emacs做一...

weixin_30673611的博客 311

程序员小助手 | Emacs,最强编辑器,没有之一

Emacs的Logo -- 简书作者 谢恩铭 转载请注明出处 【程序员小助手】系列 在这个系列文章(不定期更新)中,小编会把这些年的编程学习和工作中使用到的个人感觉非常好的软件推荐给大家,希望能够共享美好资源,使大家提高编程和办事效率。 Emacs,最强编辑器,没有之一 小编知道,此标题一出,肯定会遭受广大群众“诟病”,说不好还会被其他编辑器的粉丝暗地里“干掉”。 比如,Vim,Subli

程序员联盟 4138

Android Visualizer 实战:把声音画出来

是系统提供的音频效果(AudioEffect)之一。它挂在音频链路上,,把数据回吐给你——画波形、画频谱、做响度表。

Android的专栏 273

Android 开发入门实践(十三):用 Intent、UiState 和 Reducer 理解 MVI 的状态更新

本文记录第141—145课对MVI架构的入门实践,通过“返回列表”功能逐步构建意图(NewsIntent)、状态(NewsUiState)与状态转换(reduce)机制。基于单向数据流,用户操作生成意图,ViewModel通过Reducer根据旧状态计算新状态,并通过StateFlow更新Compose界面。代码实现清晰分离关注点,强化了对状态管理、事件驱动与数据流的理解。

Easyhood的博客 328

Android Message源码阅读

本文梳理了Android Handler机制中Message的核心设计:链表结构、消息复用池(sPool)及回收机制,重点解析了异步消息与同步屏障(SyncBarrier)的协同机制。当主线程需优先处理UI绘制等高优先级任务时,系统通过postSyncBarrier插入屏障,使Looper跳过普通同步消息,优先执行标记为异步的UI渲染任务,确保帧率流畅。该机制是保障Android界面响应性的关键技术之一。

u012116089的博客 201

安卓部署Linux性能实测:一颗移动处理器,能否胜任日常 Linux 开发?

本文通过在一加Ace5上部署NimoteCode的ARM64 Linux环境,测试了其在CoreMark、SQLite编译及并行构建中的表现。结果显示,尽管单核性能约2.34GHz,多核扩展比达6.15×,但优化编译耗时仍高达35秒,反映移动处理器虽具备一定开发能力,却受限于文件系统开销与运行环境(如PRoot)。实际开发中,非优化构建效率较高,而并行编译可显著提速。结论:安卓手机可作为轻量级开发辅助工具,但无法替代桌面环境,真正价值在于便携性与即时响应,而非全功能替代。

一个不知名码农的专栏 325

Android Laya 与 Native Bridge:页面识别、双向通信、协议设计和崩溃定位

Laya 与 Native 通信的难点不在于某个或的写法,而在于边界:页面来源是否可信、协议是否明确、线程是否正确、请求是否幂等、页面是否仍然存在、日志是否能关联一次完整请求。建立这些边界后,才能把“页面白屏”“按钮无响应”“重复消息”和“Native 崩溃”拆成可验证的层次,并沿着真实调用链找到根因。

路在脚下,幸福在手中,莫贪!!!!! 143
上一篇: LWN:OSPM 2023 报告,第三部分!
下一篇: LWN:修正per-VMA locking的问题!
LinuxNews搬运工
博客等级 码龄7年 439粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值