[HN Gopher] Surprisingly, Emacs on Android is pretty good
___________________________________________________________________
Surprisingly, Emacs on Android is pretty good
Author : harryday
Score : 229 points
Date : 2025-11-23 07:40 UTC (3 days ago)
(HTM) web link (kristofferbalintona.me)
(TXT) w3m dump (kristofferbalintona.me)
| rmunn wrote:
| What's the experience like pressing Ctrl+Shift+Meta+key shortcuts
| with those virtual keyboard apps? I assume they turn Ctrl, Shift,
| etc. into toggles so that you tap Ctrl, tap Shift, tap Meta, tap
| the shortcut key. But that's still four taps. (I know many of
| Emacs's commands have fewer modifiers than that, but I don't know
| which ones since even on a full keyboard I prefer the Vim control
| scheme so I never learned Emacs in much depth at all). Is that
| annoying, or is it easy enough to do that the annoyance fades
| into the background?
|
| Also, is there a preconfigured config for Android that can be
| downloaded so that you don't have to spend too much time in the
| Customize mode to get started? (I'm assuming, though the article
| didn't go into detail, that much of the reason for spending time
| in Customize would be to remap some of those shortcuts to be
| easier to type on a virtual keyboard, e.g. fewer modifiers).
| PaulHoule wrote:
| You can connect a bluetooth keyboard and mouse to an Android
| device -- somehow everybody thinks you have to buy some special
| $300 keyboard to attach one to a tablet but the basic keyboard
| from Amazon Basics does just ifne.
| rmunn wrote:
| Good point, though I don't always have my Bluetooth keyboard
| available so I'm still interested in hearing people's
| experiences with those virtual keyboard apps.
| brendyn wrote:
| I used to have a flexible silicon keyboard I could roll up
| and carry but some of the keys died
| chamomeal wrote:
| Yeah when I think of "emacs on android" I kinda imagine a
| touchscreen. If you're using a real keyboard, why not just
| use a real computer?
| medstrom wrote:
| Big difference in portability between a foldable keyboard
| and a full laptop.
| PaulHoule wrote:
| A tablet, keyboard and mouse together with a cheap
| plastic clip can substitute for a laptop whenever you can
| sit at a table. If you have a fast internet connection
| (hotel WiFi, phone tethering in a good location) you can
| connect to a home or work computer or rent whatever size
| cloud instance you want --- connect with RDP or an ssh
| client.
|
| It turns heads when you go to a hackathon and everyone
| else has a samey laptop or a gaudy gaming laptop. Sleeker
| and lighter and you've got 4x the RAM and cores.
|
| Granted the laptop hinges is good if you are in the
| passenger seat of a car but you can use a tablet like
| that _as a tablet_ in those cases so you lose some
| utility but can still do a lot. This weekend I was
| traveling and usually used my tablet the ordinary way but
| I RDPes into my home computer whenever I wanted.
| lugu wrote:
| Yes. USB also works just fine too.
| abyssin wrote:
| How much current does it draw?
| getpokedagain wrote:
| Its slow there are some keyboard like unexpected keyboard that
| make it easier. There's also modifier-bar-mode which displays a
| little bar you can click to get modifier keys.
| getpokedagain wrote:
| (menu-bar-mode 1)
|
| (tool-bar-mode 1)
|
| (scroll-bar-mode 1)
|
| (modifier-bar-mode 1)
|
| (menu-bar-set-tool-bar-position `bottom)
| getpokedagain wrote:
| Honestly these things are not the biggest worry.
|
| You can use a pretty standard config. You are likely not going
| to be writing pages of code and for prose there are better
| things on a phone than the keyboard. You can get pretty far
| though github searching Emacs lisp files with android in the
| text.
|
| More interesting is dealing with androids permissions. The
| original article mentions this and I have some notes here.
| https://gsilvers.github.io/me/posts/20250921-emacs-on-androi...
| procaryote wrote:
| Termux allows me to remap the volume buttons to control and
| meta which makes it much easier
| spit2wind wrote:
| Emacs lets you remap the volume keys:
| (global-set-key (kbd "<volume-down>") 'fill-paragraph)
|
| You can use the usual C-h k <key> to see what Emacs calls the
| key.
| rrix2 wrote:
| hardware or software keyboard I don't think I've ever used a
| binding like that and if I did I would almost immediately bind
| them to something more reasonable.
| HackingWizard wrote:
| I primarily use Hacker's keyboard to use Emacs in Termux.
| Bluetooth keyboard is also an option. But, for some text
| editing sessions software keyboard is sufficient.
| khqc wrote:
| Another (easier imo) way is to just install Emacs in the standard
| termux installation and run an X11 server, see
| https://hadi.timachi.com/posts/emacs_GUI_on_android/emacs_GU...
| greggh wrote:
| (Travels back to the 90s)
|
| Pretty good for Emacs*
|
| Long live VI.
| SanjayMehta wrote:
| Well duh, I first used emacs on a lowly 386 running a variant of
| unix.
|
| Today's SOCs are much more powerful.
| zingar wrote:
| With I assume full size display, keyboard, and full access to
| permissions. These are the real bottlenecks.
| s20n wrote:
| I've been using Emacs 30 on my android tablet for a few months
| now with a bluetooth keyboard. Needless to say, you can't really
| leverage eglot so it's basically a no-go for any meaningful
| software development. I've been using it for org-mode and it is
| fantastic for that.
| forgotaboutit wrote:
| Is there an Android app that does Waypipe or wprs to forward a
| remote Emacs (with eglot/LSP) to your Android tablet?
| hazebooth wrote:
| what is preventing you from using eglot on android?
| rrix2 wrote:
| the fdroid build of android doesn't have a real linux
| environment that you can install arbitrary binaries on to.
| you can switch to a termux-ish proot environment and do
| x-forwarding or TUI emacs but those are shenanigans
| mbork_pl wrote:
| Not to criticize you - I also use eglot and it's great - but
| let me mention that people have been doing pretty meaningful
| software development for several decades now, and LSPs are, I
| don't know, 5 years old?
|
| There's a saying in my language, "the appetite grows while you
| eat"...
| Karrot_Kream wrote:
| I think it's a fair complaint. You're on a setup with bad
| ergonomics as it is (tablet + Bluetooth keyboard.) Dealing
| with that and no LSP is rough. I'd be happy writing code on a
| desktop without an LSP, though I'd be happiest with both.
| mbork_pl wrote:
| I did my share of coding on a Commodore 64 (have you seen
| that keyboard?) with a cassette tape as the only external
| storage, no debugger (just a very poor BASIC variant) and
| (of course) a mono CRT tv set as a monitor. No internet, of
| course, just a few books/magazines.
|
| Kids these days... ;-)
| Karrot_Kream wrote:
| I think the C64 had a fine keyboard? It's mostly a
| standard layout and a lot chunkier than the small
| Bluetooth keyboards that tend to cause wrist issues. I
| also began coding in the CRT days so idk why that would
| be a barrier, I guess you mean for resolution? My issues
| are ergonomic not functionality oriented.
| NoGravitas wrote:
| If you've got it installed as suggested in the article, with
| its own termux installation, can't you compile the LSPs there
| and use them with eglot?
| sroerick wrote:
| I'm a little embarrassed by my current workflow, which is:
|
| A. Emacs and org mode on my laptop
|
| B. Neovim to do development via SSH on my dedicated Hetzner box,
| because my laptop is too potato for dev
|
| C. A bash script to push up any random notes I have up to the
| server
|
| I have used sshfs, syncthing and unison in the past, but never
| quite got the workflow for either to click.
|
| After about 13 years of trying I still am not as functional as
| most Dropbox users. I just can't stand Dropbox.
| yjftsjthsd-h wrote:
| Don't be embarrassed by a setup that works.
|
| In the spirit of hopefully constrictive feedback:
|
| A/B: Any reason not to do emacs or neovim everywhere? You can
| copy your dotfiles to the server if needed?
|
| C: I wouldn't/don't use Dropbox either. If bash+scp works then
| great, but have you considered keeping your files in git? Still
| easy to sync over ssh from one machine to another, but natively
| handles things like sync conflicts.
| sroerick wrote:
| I just haven't found Emacs to be particularly productive over
| SSH. IMO it works best on a local machine, there's just too
| much in the GUI which isn't as workable over terminal. Font
| rendering, images, clickable text links all take a hit. None
| are really deal breakers, but Emacs TUI just kind of feels
| like an afterthought. X11 over SSH doesn't feel responsive to
| me.
|
| Its almost more of an aesthetic choice really, its just that
| Emacs feels comfier to me on a local machine. You otherwise
| lose too much of that feeling of customizing everything to
| your own taste, which is to me the nicest part of Emacs. It's
| kind of what I imagine a well tuned Forth to feel like.
|
| Neovim is great over SSH, and I kind of prefer it as an
| editor - but Org support is too compelling. I've tried Neovim
| Org configs but they just can't compete with the legacy of
| Emacs Org. Org roam is unbeatable even with the preponderance
| of wiki style knowledge base apps. Org publish is just too
| good, as well. I've played with Neorg, and I really like it
| as a project, but it does feel like it is about 20 years
| behind.
|
| I use git a lot but it runs into the large binary problem. I
| know git-annex is supposed to be good, but I haven't used it
| much. Syncthing is good but a lot of UI. I like unison but it
| isn't super well suited to the 'background sync' workflow.
|
| My laptop is also a modified chromebook with a 50 GB HDD. I
| could get a real computer and solve a lot of my sync issues
| tomorrow, but then what would I have to complain about?
|
| I see people with surface pros running VB studio, drinking
| Folger's with no discernable side effects and they are
| probably happier and more productive than I am.
|
| Point being I might try Emacs on android
| kreetx wrote:
| I've used git-annex and I'll tell you, it's
| overcomplicated. Git LFS is probably better.
| entrox wrote:
| > I just haven't found Emacs to be particularly productive
| over SSH. IMO it works best on a local machine, there's
| just too much in the GUI which isn't as workable over
| terminal. Font rendering, images, clickable text links all
| take a hit. None are really deal breakers, but Emacs TUI
| just kind of feels like an afterthought. X11 over SSH
| doesn't feel responsive to me.
|
| But that's what tramp is for, it works nicely and is
| surprisingly well integrated into the rest of Emacs. The
| only obvious downside is initial performance, but that can
| be worked around by tweaking SSH settings to keep
| connections open.
|
| Another hack I use is to initiate a connection from remote
| to my local Emacs instance. The use case is ssh'ing into a
| remote shell, typing "remote-emacs <file-xyz>" and having
| that open the file on my local machine.
|
| I did that by creating a script that gets my local IP from
| $SSH_CONNECTION, uses that to ssh into my local machine and
| executes "emacsclient -n /ssh:$HOSTNAME:$FILEPATH" which
| then in turn opens the remote file using tramp. Pretty
| useful.
| sroerick wrote:
| How does it handle things like project heirarchy? Does
| folder browsing work? Can I use an org-roam database?
| I've used TRAMP to open single files over SSH, but it
| seems less functional than mounting with FUSE. But I
| haven't looked into it extensively.
|
| I am definitely going to build out that bash script for
| the second use case, that sounds excellent. Thanks, I had
| no idea you could do that
| entrox wrote:
| Yes, it works basically everywhere you'd interact with a
| local file or directory.
|
| For example, you open a remote dired buffer with C-x C-f
| /ssh:host:/dir/. Afterwards, opening a file or navigating
| to a directory will open it remotely as well. You can
| also use project functions or magit seamlessly. I have
| plenty of bookmarks remotely etc.
|
| Fundamentally, you just prepend "/ssh:[user@]host:" to
| any path or file operation and things will magically Just
| Work (tm).
| spit2wind wrote:
| > but Emacs TUI just kind of feels like an afterthought
|
| This reads as a testament to how far the Emacs GUI has
| progressed!
| nurettin wrote:
| Your setup is pretty awesome. But if you miss dropbox so much,
| why not set up owncloud on the hetzner machine?
| Karrot_Kream wrote:
| You're looking for tramp-mode. I used tramp-mode for years when
| working in a lab in grad school where is write code in emacs,
| have it save via SSH, then build and run the code on the
| remote. It allows you to use emacs just to author text and to
| use the remote for everything else.
| sroerick wrote:
| Ok, so I'm playing with OCAML a lot right now, and it seems
| like in this workflow I would lose access to all the IDE
| tooling that is provided. That's not the end of the world,
| but still a big workflow hit which is solved by just remote
| ssh into NVIM. I'm definitely curious about your workflow,
| though.
| Karrot_Kream wrote:
| Curious how would you lose it? Do you mean the tooling
| you're using won't work across Tramp? You should ask in an
| emacs community for more detailed feedback on this if
| you're interested.
| Hetzner_OL wrote:
| Hi OP, just chiming in here because you mentioned us at Hetzner
| and I saw your post. I also wasn't sure if the comment from
| nurettin below was meant to be "NextCloud" instead of
| "owncloud"...? NextCloud and Dropbox have some very similar use
| cases. We have a line of NextCloud-based products (Storage
| Shares). Maybe it would be worth trying out. --Katie
| rrix2 wrote:
| Specifically for org, and specifically for org-roam, it's pretty
| good, but not good enough. It's not as good as desktop emacs, and
| it's also somehow not as good as a 1st class android app.
|
| the fdroid build of emacs doesn't really work very well with my
| org-roam, so i use a termux build,,, well nix-on-droid+emacs-
| overlay... and it's fine, for capture and recall. but i'm not
| authoring a lot of text with it. a custom extra-keys in the
| termux config so that your common emacs keybindings are on screen
| in a tool bar can get you close to a point-and-click interface...
| but you don't really have a good "swipe" input or voice input to
| input _text_ efficiently, it 's a character interface, a TUI,
| which is actually not what you want on a phone, you want a word-
| based interface. so when i want to do org-mode right now, i pull
| a unihertz titan 2 out of my pocket. without a sim card, the
| titan battery lasts for about three days unless i fire up an nix
| devShell & lsp server on it.
|
| calc-mode is my default android calculator tho.
|
| tbh don't listen to me, though: i've been teaching myself 8vim[1]
| and building a markdown document graph database in my free time.
| don't listen to ~any emacs user's opinion with any authority, we
| all have found our own local minima, our opinions and advice
| usually aren't so useful to each other
|
| I didn't know about modified-bar-mode, though, that's neat.
|
| [1] https://f-droid.org/packages/inc.flide.vi8/
| phatskat wrote:
| > don't listen to ~any emacs user's opinion with any authority
|
| As a vim user, I suppose it's proper to say "I don't" :p
|
| Also as a vim user, no one should listen to mine with any
| authority
|
| --
|
| Jokes aside, 8vim looks pretty slick! I don't have an android
| to play around with at the moment but if I remember this I'll
| check it out when I do.
|
| Text input on phones for anything beyond prose seems to be a
| space ripe for innovation - although, as an iPhone user, the
| amount of anything technical I want to do from my phone
| approaches zero quickly.
| procaryote wrote:
| If you swipe left on the shortcut bar ("esc" "/" etc) in the
| termux keyboard, it switches to a word oriented text input area
| where you can use predictive text and swipe text. Swipe that
| area right when done to get back to the modifiers
| rrix2 wrote:
| i find that unless i swipe perfectly, the input is considered
| in the textbox not the bar, so i can't easily swipe out of
| it. :( have never really got the hang of it. i wish there was
| a button to swap in/out, i guess i could do some simple
| android dev but i'd rather not
| yehoshuapw wrote:
| have you also used thumbkey (or messagease) by any chance?
|
| if so - can you compare them?
|
| (I use thumbkey, but when I ran across 8vim considered
| switching
|
| however I use thumbkey fluently and am not sure if worth
| switching)
| rrix2 wrote:
| i was pretty quick with thumbkey, it's nice on even a tiny
| device like a Jelly Star. nowhere near as quick with 8vim on
| any device yet.
| IceDane wrote:
| > don't listen to ~any emacs user's opinion
|
| I sort of came here to say the same thing.
|
| The intersection between (the set of people who care about good
| UX) and (the set of people who would try to use emacs on
| android) is the empty set. Emacs users' self-flagellation is
| pretty legendary, and I say this as an emacs user (though I've
| mostly given up on how janky and slow it is compared to modern
| editors and only use it for magit these days)
| rrix2 wrote:
| i didn't mean it in such a disdainful or self-flagellating
| way, though. emacs is a bag of tricks, and each of us pull a
| different set of them out.
| xenodium wrote:
| I'm an Emacs enthusiast and also build iOS apps powered by
| org markup.
|
| The more I used my apps, the more I wanted their UX optimised
| for mobile. This often means completely rethinking the Emacs
| experience when bringing to mobile.
|
| This is most obvious in my latest app [1]. Org markup fully
| fades as implementation details. Of all my apps, this is the
| one I personally use the most. Proudly, I also started
| getting non-Emacs users interested in org [2].
|
| Anyway, that's all to say that as an Emacs fan, I want the
| full Emacs experience on desktop, but when on iPhone, I want
| fully optimised mobile UX. No meta anything there ;)
|
| [1] https://xenodium.com/journelly-like-tweeting-but-for-
| your-ey...
|
| [2] https://ellanew.com/ptpl/157-2025-05-19-journelly-is-org-
| for...
| skydhash wrote:
| Emacs is ultimately an REPL environment, but ones where you
| can bind commands to bindings. And there's a lot of
| bindings possible in a keyboard.
|
| A mobile experience can be fine if you want a restricted
| subset of commands. You can then map them to buttons. But
| the core emacs experience is the ability to create your own
| commands and have different bindings.
|
| The closest implementation, IMO, would be a streamdeck like
| UI, but with a transient or hydra like UX.
| rrix2 wrote:
| I love your apps and wish I had android equivalents. cheers
| Karrot_Kream wrote:
| I agree with you on UX but disagree with everything else. If
| you use native elisp compilation, I find its speed to rival
| an average editor. Completions can be slow in lsp-mode but
| still faster than VSCode (and emacs itself ships with eglot,
| a less full featured alternative to lsp-mode, but may be
| faster. I haven't used it enough to judge.) This is due to
| shelling out to LSPs and the fact that not all LSPs are
| particularly well built.
|
| If you find your emacs to feel jank I highly recommend
| declaring "emacs bankruptcy" and starting anew with a fresh
| config. Defaults emacs ships with today are really good.
|
| That said I haven't used emacs on Android yet so I don't know
| how well, if it all, it works. I also think the UX of emacs
| tends to bend toward the user's own preferences rather than
| good UX, and the default UX of emacs is a bit bad.
| IceDane wrote:
| I've been using emacs for 15 years as my daily editor. One
| thing that never fails is that when I share the fact that
| I've switched away, emacs users fall over themselves to
| tell me I'm wrong.
|
| I assure you that my emacs setup is as optimized as it can
| be. Native compilation, all that jazz. I've compiled my
| own. But emacs is ultimately a lost cause unless something
| drastic changes. The single threaded nature of it means
| that you need to just live with your editor regularly
| freezing for a whole second while working in bigger
| projects using modern tooling. The only way to remedy this
| is to turn off as many features as possible and accept a
| worse tooling experience. Shifting the blame for emacs poor
| internal architecture over on the poor LSPs is silly. Every
| other editor handles this better than emacs.
|
| For now, I'm using zed and it was really an eye-opener to
| how fast an editor can be and feel. I replicated a large
| part of my workflow, basically all the keybindings, and
| while there are things I miss (projectile and some other
| things), I can live without them in exchange for not having
| my editor choke constantly when working on big projects
| while emacs chugs through json from lsp or something like
| that.
| skydhash wrote:
| You may have a very justified reason to switch, including
| nnot liking one aspect of emacs. But you are presenting
| it as a general flaw. Which people cannot obviously
| accept as it's fine for them and they are not
| experiencing your issue (and as you know, everyone's
| setup and workflow are different)
|
| As for the single threaded nature of it, it doesn't
| bother me. Because what should be async already is. The
| only thing left that is synchronous follows closely the
| repl model of the terminal. I issue a command and I wait
| for the result. If the result doesn't matter or I want
| part of it as soon as possible, then it can be async and
| there's plenty of way you can make it so.
| actionfromafar wrote:
| How do you make LSPs fast?
| skydhash wrote:
| What do you mean? The language servers are independent
| projects from emacs. Some are slow and some are fast. And
| your project size is a factor.
| IceDane wrote:
| > it doesn't bother me
|
| Right, so what you're _really_ saying is that _you_ are
| totally fine with your editor being unresponsive and
| janky during regular editing workflow, working with
| modern tooling, and that everyone else is just wrong for
| not feeling the same way.
|
| You do you. I lived with the same copium excuse for
| years, obviously, but I've moved past that now and into
| the year 20xx.
|
| I love emacs and truly wish that I felt like I could
| seriously use it, and in many ways, I feel like it's the
| ultimate expression of what an editor could be. But it's
| just suffering from being 40 year old software that
| hasn't seen significant modernization to meet the demands
| of today's development workflows.
| skydhash wrote:
| Your assumption is that Emacs is unresponsive and janky
| during my editing experience and it's not that.
|
| Everyone's setup is different. Your configuration may be
| janky and unresponsive, but it's not a generality.
| PaulDavisThe1st wrote:
| Modern tooling part one: tried using an LSP with emacs
| (35+ year user) ... gave up after 3 days, it provided
| absolutely nothing to my workflow.
|
| Modern tooling part two: via M-x grep (bound to F1) use
| ag(1) or rg(1) instead of grep to explore my codebase,
| runs async and finishes more or less before my "emacs
| pinkie" is ready to touch another key.
| taeric wrote:
| You get the same behavior from any editor, though? Hell,
| you'd probably get similar behavior if you switched
| brands of power tools. People are attached to their
| tools.
|
| That said, it would help if you didn't have hyperbole
| there. Many of us do not, in fact, have to live with the
| editor freezing on a regular basis.
| Karrot_Kream wrote:
| Look nobody is forcing you to stay on emacs. But most of
| us aren't experiencing editor freezing even on big
| projects. I'm working in a monolith of multiple languages
| and can get LSP for all the ones we use just fine.
|
| To use your own argument, every other person has a better
| experience than you. Shifting the blame to the editor is
| silly ;)
| chuckadams wrote:
| > Defaults emacs ships with today are really good.
|
| They're really not. It still defaults to opening a split
| window, still litters #foo# and foo~ files in the directory
| of whatever you're editing, and still comes with few
| language modes supported out of the box, let alone set up
| to automatically spawn and use LSP servers. Running a macro
| over a 10,000 line file is still incredibly slow on a
| 1-year old mac. Many common functions are still bound to
| chains of two or sometimes three keystrokes with multiple
| combinations of ctrl-keys and sometimes the mysterious
| ctrl-u prefix. Rebinding all the defaults is pretty much a
| given for any emacs power user. It's no wonder RMS ended up
| with RSI problems, because "emacs pinkie" is still very
| much a thing.
|
| I miss emacs in a lot of ways, I used it for a good two
| dozen years starting in the 90's, but there's a reason I
| use IDEA Ultimate to write code now.
| lycopodiopsida wrote:
| > but there's a reason I use IDEA Ultimate to write code
| now.
|
| IDEA is so painfully slow that while I have it paid by my
| company I cannot force myself to work in it for extended
| periods of time. And I say it being fully aware of
| Emacs's speed problems. Also, the limitation on "1 Window
| - 1 Project" is laughable in IDEA, as well as in VSCode.
| chuckadams wrote:
| IDEA can certainly get slow, but `esc 10000 c-x e` still
| means I'm hitting abort before it gets even close to
| done. I use multiple panes/windows in IDEA all the time,
| and it also supports opening tabs in new windows/frames.
| lycopodiopsida wrote:
| I have just opened a 7k loc JS file in idea and I can
| observe for at least 2 seconds how syntax fontification
| and all the hints are applied and rendered. All of it on
| a macbook M4. It is not acceptable and also the slowest
| of any editor I've used.
| homebrewer wrote:
| It uses that time to parse the source into an AST and
| build a search index to provide type-aware symbol search,
| information for autocomplete and refactoring if you
| request it, etc. Sure it will be slower than simply
| highlighting the code and then doing nothing with it...
|
| If you use IDEA as a glorified text editor, you're using
| less than 1% of what it's capable of. It's a complete
| waste of computing resources then.
| Karrot_Kream wrote:
| I think the contention is that emacs stalls and stutters
| running a macro on a medium sized file while IDEA sings.
| I find IDEA to be slower than emacs as a whole but
| overall more full-featured and much better out of the
| box. I'm an emacs fan myself, but think IDEA is a great
| IDE.
| homebrewer wrote:
| > the limitation on "1 Window - 1 Project" is laughable
| in IDEA
|
| There's no such limitation in IDEA. If your project
| consists of separate subprojects stored in subdirectories
| inside a single large directory, just open that directory
| in IDEA. Your subdirectories will work/look/feel like
| different projects, all within the same window, with
| global symbol search, support for attaching SQL
| resolution scopes (i.e. attaching different databases to
| different projects and/or paths within them and having
| correct autocomplete), etc.
|
| One of the things I work on is such a project built from
| a dozen separate subprojects, some of them written in
| Java, one in PHP, one in JS/node, one in TS/React, two in
| Go, one in Python. Plus the usual stuff like Markdown,
| HTML, CSS, SQL, etc. It all integrates very nicely within
| the same window.
|
| If they're stored in completely separate directories,
| _and_ you want to combine them into a single window for
| some reason, it 's still perfectly possible by attaching
| them as "modules" inside your project settings. It looks
| and feels exactly like the first case, even when projects
| are spread across the system.
| skydhash wrote:
| You may have two dozens years of emacs, but I fear you've
| not grasped the philosophy of emacs, if that is the list
| of complaints.
|
| > split windows.
|
| Why would I want a new window to replace the one I'm in.
| If I want to look at an info manual, I want it to start
| in a new window instead of the one that I'm looking it.
| My understanding is that there are main tasks and
| secondary tasks. Switching main tasks replace the current
| windows, starting secondary tasks pop up a new one. And
| those pops up are usually dismissed by typing q.
|
| > still litters #foo# and foo~ files in the directory of
| whatever you're editing
|
| Backup files and autosaved files are good. Especially if
| the edited file is not versioned. It's the correct choice
| as some users are not programmers.
|
| > few language modes
|
| How many toolchain are installed on a newly installed OS?
| And major modes are not only for syntax.
|
| > LSP servers
|
| Eglot is built in and has a good set of default for
| current servers. But why should Emacs install stuff for
| me. It does not know how I want to install them.
|
| > macro over a 10,000 lines
|
| macros do run the full set of the commands as it would
| run in a normal invocation time the amount of repetition.
| And there are other approaches like an awk script that
| may be faster for your usecase.
|
| > common functions...bound to chains of two...three
| keystrokes
|
| Emacs have a lot of commands. And if you used something a
| lot, you can bind it to a more accessible bindings.
|
| > mysterious ctrl-u prefix
|
| If it's mysterious after two dozen years, then I wonder
| if you ever give the manual a glance. It is for providing
| an argument to the command and it's commonly used for
| providing an alternate behavior to the default one. Like
| 'g' is recompile in a compilation buffer and 'ctrl-u g'
| asks for the command to use for the new iteration instead
| of reusing the old one.
| chuckadams wrote:
| Nothing says "prompt interactively" like Ctrl-U. I mean,
| it literally stands for "universal argument", which is
| basically "do this command, but different". Defaulting to
| "insert four times" because why not? Mysterious :^)
|
| Like I said I used emacs for a quarter century, wrote
| quite a bit of elisp for doing my job, and I still miss
| some of those things, but I've made do with perl scripts.
| I still pop up emacs for quick edits now and again, but I
| long ago gave up trying to force it into the shape of a
| full-blown IDE.
| jhbadger wrote:
| Are Emacs users really known for "self-flagellation"? I would
| have thought that was more vi users. Even if modern vis like
| vim try to make it slightly less painful, the fact is modal
| editing is really nonintutive. Certainly the reason why I
| became an Emacs user nearly 40 years ago when I was using
| UNIX for the first time, was that the only two real options
| were vi and Emacs and after playing with vi for a bit I was
| pretty much "nope, not doing that". Emacs may have a
| reputation as being arcane, but ultimately it is a modeless
| editor (yes, you can make it emulate vi and its modes if you
| really want it to) which means it basically works like any
| other editor or word processor you'd find on mainstream OSes.
| jwrallie wrote:
| Plain Emacs certainly felt more intuitive at first contact,
| but Vim felt more intuitive to me once I approached it as a
| language. What can I say, I'm the target audience of evil
| mode.
| rrix2 wrote:
| whenever i ssh in to some box and fire up vi[m] to edit
| some text i realize how reliant i am on both input
| methods & how cool emacs&evil are for letting my do that
| to myself...
|
| vim text object motions for edits, my emacs keybindings
| and libs for movement&buffer management... my normal-mod
| binding for avy-goto-char and my other evil-leader stuff
| is muscle memory now...
| wiseowise wrote:
| Modal editing is unintuitive for the same reason why new
| language you're learning unintuitive. Once you understand
| the rules, it is much more intuitive than any other editor.
| This is the reason why I use IdeaVim/VSCodeVim instead of
| learning "native" shortcuts.
|
| Obligatory: https://i.imgur.com/WLzeQMj.png
| zipy124 wrote:
| I mean this kind of makes sense right, they chose it because
| they can customise it to fit them, it's basically a bespoke
| editor.
| Jeff_Brown wrote:
| Very occasionally I run into a speed glitch in Emacs but not
| nearly enough to drive me away, given that nothing else can
| do all the stuff it does.
| krupan wrote:
| I've been using emacs in terminal mode inside termux for a few
| years and it's not bad. Full GUI emacs would be nice, I'll have
| to give this a try
| canistel wrote:
| It is already there and it works.
|
| https://sourceforge.net/projects/android-ports-for-gnu-emacs...
|
| There is a catch though, you need to download and install
| Termux & Emacs from this project as per the instructions. It
| took me a while to get it working, but after that it worked
| like a charm.
| spit2wind wrote:
| Termux isn't required, unless you want other applications
| (e.g. git, python, or GCC).
|
| If you do want Termux, a signed and compatible version is
| provided by the Emacs devs. It should all be in the README
| (at least it always has been, through various updates, since
| I started using the Emacs on Android before it was merged
| into the main branch).
| iib wrote:
| For small edits, has anybody configured a leader-key scheme?
| Something like Doom Emacs has with space as a leader.
|
| It seems to me to be the best possible configuration for Emacs on
| Android (on a phone) and I was wondering if I should invest time
| in such a solution.
|
| strokes-mode.el would also be very nice, but apparently it
| doesn't have touchscreen support.
| zeeeeeebo wrote:
| Now I want to see how it performs in android 16 desktop mode
| devinprater wrote:
| > Moments like these are truly a testament to Emacs' dedication
| to an accessible editor.
|
| Ah, accessible. Word with a different meanings, and for me, in
| this sense, it's not helpful at all. Fortunately I managed to get
| Emacs talking with Speechd-el in Termux. Speechd-el is a poor
| man's Emacspeak. But it does seem to work. Well besides pressing
| SPC doesn't read the new text that scrolled onscreen, but if I
| have to, I can hook it.
| procaryote wrote:
| I do termux and emacs on android because a bunch of small use
| cases are easier to do that way than navigate the app store
| zingar wrote:
| Caveat: all this is on iOS:
|
| The only reason I want emacs on my phone is the one thing I don't
| have: I want my org notes to be on both desktop and mobile. But
| syncing files across both has been dreadful, even in paid apps:
| duplicates everywhere and I constantly have to rechoose the files
| in a file finder UI. So my reminders are not just ever present
| for the time when they're relevant, they're just "not there"
| unless I take a lot of manual steps (if I'm lucky only) once a
| day.
| Jakob wrote:
| iCloud surprisingly works without issues for me. You can switch
| on "keep downloaded" for the folder in question.
| sharperguy wrote:
| I don't use emacs or org mode, so I'm probably way off the
| mark, but I imagine I'd use git if I were to do something like
| that?
| kreetx wrote:
| Yup: emacs for editing org-mode files but git for sync.
| xz18r wrote:
| I use git (with Working Copy) for sync for this exact use-
| case.
| internet_points wrote:
| For Android,
| https://f-droid.org/en/packages/com.github.catfriend1.syncth...
| works really well.
|
| I've heard good things about
| https://apps.apple.com/gb/app/synctrain/id6553985316?platfor...
| for iOS, but I'm guessing it can't work constantly in the
| background like on Android?
| PaulRobinson wrote:
| I've been thinking about this a lot recently, although I'm a
| vim user (please don't hate me), visiting this thread to see if
| the emacs community has solved this.
|
| My use case is I want the vim analog to some emacs tooling like
| org-mode, everywhere. I want open formats, I want vimwiki-style
| linking, I want taskwarrior integration, and I also want it to
| synch on all my devices.
|
| There are some proprietary tools like NotePlan that use iCloud
| as backhaul (very well, actually), and it's open format, but it
| has an opinionated UX that isn't _quite_ me, and I think I just
| want to stay in vim as much as possible that I can do what I
| want with. I suspect most people here interested in emacs would
| have a similar take on it.
|
| If you're on iOS, and your laptop/desktop is macOS, you have a
| cloud drive that is (IMHO), better than Dropbox right there,
| baked in, so what would it look like to use that file system?
| Not awful actually. I've found device synch across that file
| system to be transparent and high quality, as long as I
| remember to save things regularly.
|
| The problem for me when it comes to the mobile experience is
| that I think - no matter whether you're an emacs or vim user -
| you probably _don 't_ want that mode-based editing on your
| phone.
|
| The best notes app on iOS is Apple Notes because it does a lot
| of things incredibly well for the context of writing notes one-
| handed while stood on a bus, or while sat in a coffee shop with
| a small touch-screen keyboard.
|
| Where I'm at right now is I want to build something that can
| read and interact with my files on my phone, but is not mode-
| based - it just uses Apple text editing like Apple Notes, and
| saves everything in iCloud files (or Dropbox as a backup to get
| out of the apple ecosystem), and on my local machine I just get
| that live synched experience with the editor that makes sense.
|
| So the format I'm mostly interested in (vimwiki), has
| formatting that would be understandable as styles in Apple
| Notes, so I'm trying to work out whether to a) write something
| to import/export to notes from vimwiki, or b) provide a
| vimwiki-aware editing tool with the ergonomics of Apple Notes
| for my phone. I suspect doing the same but for emacs and org-
| mode would do the job well for those who want that experience
| too.
| medstrom wrote:
| Also thinking about this. Requirements I've identified -- and
| this is why people give up and just run Emacs on Android:
|
| 1. Able to natively edit and view same file type on both
| devices, be it .md or .org or whatever you choose (there are
| more apps supporting .md, if you can stomach that)
|
| 2. Links must work on both devices! That alone means it's not
| trivial, even if you have a lightbulb moment and use .md
| files for access to more apps, together with one of Emacs'
| filetype-independent links like Hyperbole or Denote, because
| no .md app will support _those_ links. Conversely in .org,
| not all apps even support Org-ID links... especially not
| making it easy to insert such a link.
|
| 3. App must have satisfactory editing facilities. I know at
| least one app that doesn't even let you indent/dedent list
| bullets...
|
| 4. If you use TODO tasks, the app needs to make it convenient
| to see them at a glance across all files. Many Org apps fail
| here and either basically assume you have like one "todo.org"
| file and need no hand-holding, or even if they list all
| TODOs, there's no way to sort or filter, or it only lets you
| see them but not toggle them to DONE!
|
| 5. If you use a wiki-style workflow such as org-roam, so that
| you have far too many small files to keep track of, the app
| needs to make it easy to browse. Many apps fail here, just
| showing you a file list on the assumption that you even know
| what your files are named or what's in them. Count your
| blessings if there's at least a good search facility.
|
| 6. Instant & reliable sync. Logseq Sync is too buggy (at
| least it was in 2023). Things like Syncthing just aren't good
| enough if you don't also host a server that is always on. If
| sync conflicts are frequent, I'll be so wary of editing that
| I stop altogether.
| jwrallie wrote:
| How about a VPS running Emacs + Mosh and Blink? The only
| downside is that you need good internet coverage.
| zie wrote:
| Have you tried beorg? https://www.beorgapp.com
|
| I've just started playing with it, but so far it seems quite
| good.
|
| I use iCloud sync and then on a macOS machine, I have code that
| commits it to VCS, so that it's durable.
| anthk wrote:
| GNUs under Emacs it's the only FOSS Usenet client out there for
| Android.
| jamesfisher wrote:
| F-Droid website is awful for a curious visitor. Serves me a .apk
| with no further instructions. What am I supposed to do with that?
| a96 wrote:
| https://f-droid.org/en/docs/Get_F-Droid/
|
| I think you're kind of right. I was surprised that that's two
| clicks away from the front page, under docs. That's where I'd
| look but it probably should have a nice visible link that's the
| first thing you see. There is a picture of the program running
| on an android device and a QR code.
|
| Perfectly adequate for people who know how it all works or
| people who look for software install instructions on the
| regular, but not the best first contact for people who don't.
|
| Edit: Actually, even the instructions page doesn't tell you to
| download and run the package on the device's browser. A user
| visiting on a laptop or something will just have a weird
| useless file in the downloads dir (unless they go the adb route
| or otherwise figure out it needs to go on the device first).
| deng wrote:
| The nice thing is that Emacs 30.1 now has much better support for
| touchscreen events. It will take some time for packages to make
| use of that, but at least it is now possible. For instance, you
| should now be able to increase/decrease text size by pinching.
| zelphirkalt wrote:
| I tried installing Emacs on Android and then realized: How on
| earth am I even gonna input all the special key combos that I use
| for things in Emacs?
|
| I figure it is impossible, without a special keyboard installed
| and even then it gets cumbersome to quickly input something like
| C-x C-s for saving a file. I am not motivated enough, to come up
| with a whole different shortcut system, just for rare if ever
| Emacs on phone use.
| spit2wind wrote:
| The menus have all you need. It's not ideal, of course, but
| it's enough to get you going. Otherwise you can remap the menu
| and toolbar to your needs.
|
| There are several developer oriented keyboards. I found the
| Unexpected Keyboard quite good.
|
| This is my Unexpected layout: <?xml
| version="1.0" encoding="utf-8"?> <keyboard
| bottom_row="false" name="Emacs-rev1" script="latin">
| <row> <key c="q" sw="1" nw="loc esc"/> <key
| c="w" sw="2" nw="~" ne="\@"/> <key c="e" sw="3"
| nw="!" ne="\#" se="loc EUR"/> <key c="r" sw="4"
| ne="$"/> <key c="t" sw="5" ne="%"/> <key
| c="y" sw="6" ne="^"/> <key c="u" sw="7" ne="&"/>
| <key c="i" sw="8" ne="\*"/> <key c="o" sw="9"
| ne="("/> <key c="p" sw="0" ne=")"/> </row>
| <row> <key shift="0.4" c="a" nw="loc tab" ne="`"/>
| <key c="s" ne="loc SS" sw="loc ss"/> <key c="d"/>
| <key c="f"/> <key c="g" ne="-" sw="_"/>
| <key c="h" ne="=" sw="+"/> <key c="j" ne="}" nw="{"/>
| <key c="k" nw="[" ne="]"/> <key c="l" nw="|"
| ne="\\"/> </row> <row> <key
| width="1.5" c="shift" ne="loc capslock"/> <key
| c="z"/> <key c="x" ne="loc +"/> <key c="c"
| sw="<" ne="."/> <key c="v" sw=">" ne=","/>
| <key c="b" sw="\?" ne="/"/> <key c="n" sw=":"
| ne=";"/> <key c="m" ne=""" nw="'"/>
| <key width="1.5" c="backspace" ne="delete"/> </row>
| <row height="0.95"> <key width="1.7" key0="ctrl"
| key1="loc switch_greekmath" key2="loc meta" key3="loc
| switch_clipboard" key4="switch_numeric"/> <key
| width="1.7" key0="alt" key1="loc change_method" key2="fn"
| key3="switch_emoji" key4="config"/> <key width="3.5"
| key0="space" key7="loc home" key8="loc end"/> <key
| width="1.6" key0="loc compose" key7="up" key6="right"
| key5="left" key8="down" key1="loc page_up" key3="loc
| page_down"/> <key width="1.5" key0="enter" key1="loc
| voice_typing" key2="action"/> </row> </keyboard>
| NoGravitas wrote:
| I've played with `meow`, a Kakoune-like modal editing system
| for Emacs, but on desktop, I've never really had enough
| motivation to stick with it. It might actually make more sense
| for mobile.
| spit2wind wrote:
| My computer died a few months ago and Emacs on Android has
| carried me through well. Still able to do development on the go.
| Amazing, amazing work by the Emacs dev!
|
| The Unexpected Keyboard is a great addition, but even with the
| stock Android keyboard, it's totally usable. Of course, it helps
| to add things to menus and remap the volume keys.
|
| You can add buttons to the toolbar with something like:
| (tool-bar-add-item "spell" 'eval-last-sexp
| 'eval-last-sexp :help "Eval last sexp")
| (tool-bar-add-item "back-arrow" 'xref-pop-
| marker-stack 'xref-pop-marker-stack
| :help "Previous Definition") (tool-bar-add-item "fwd-
| arrow" 'xref-find-definitions
| 'xref-find-definitions :help "Find
| Definitions")
|
| There are many icons bundled with Emacs that you can reuse:
| https://cgit.git.savannah.gnu.org/cgit/emacs.git/tree/etc/im...
|
| You can remove toolbar buttons: (tool-bar-add-
| item-from-menu 'find-file "")
|
| Otherwise, you can add to menus: (define-key
| global-map [menu-bar edit expand]
| '("Expand word" . dabbrev-expand))
|
| Remapping the volume keys is super handy, especially when you
| change the behavior by mode or buffer: (global-
| set-key (kbd "<volume-down>") 'fill-paragraph)
| (global-set-key (kbd "<volume-up>") 'my-runner) (defun
| my-runner () (interactive) (cond ((equal major-mode
| 'org-mode) (call-interactively (local-key-binding
| (kbd "C-c C-c")))) ((equal major-mode 'emacs-lisp-
| mode) (save-buffer) (call-interactively
| 'eval-defun)) ((string= (my-get-file-name)
| "/data/data/org.gnu.emacs/files/.emacs.d/my_python_file.py")
| (save-buffer) (with-current-buffer (shell "*shell*")
| (my-send-string "python
| /data/data/org.gnu.emacs/files/.emacs.d/my_python_file.py"
| t "*shell*") )) (t
| (message "Undefined action")) ))
|
| Redefining the fill column is handy to set appropriate text
| wrapping:
|
| C-x f runs the command set-fill-column
|
| Otherwise, the menu for Lime Wrapping in this buffer is super
| helpful.
|
| I set my init to load up Dired so that I'm met with my project
| directory and am ready to go.
|
| It's hard for me to think of another editor having my back like
| Emacs has. Again, amazing work by the community!
| timonoko wrote:
| @grok solved the termux being too dark problem:
|
| In .bashrc: # Full brightness on entry
| termux-brightness 255 # Auto-brightness based on
| light sensor on exit LIGHT_VALUE=$(termux-sensor -s
| stk3a5x_als -n 1 | jq '.. | .values? | select(. != null) | .[0]')
| if [ -n "$LIGHT_VALUE" ]; then if (( $(echo
| "$LIGHT_VALUE > 1000" | bc -l) )); then trap 'termux-
| brightness auto' exit else trap 'termux-
| brightness 50' exit fi fi
| PopePompus wrote:
| There is a third option (in addition to the native app and
| Termux) to get emacs running. The recently added (to at least
| Pixel phones) "Terminal" app runs a standard Debian distribution
| inside a VM. emacs can be installed there in exactly the same way
| it would be on any other Debian machine.
| caleb-allen wrote:
| I started reddit.com/r/androidterminal for discussing this
| feature
| PopePompus wrote:
| I'm sure grateful that you did that. I've been surprised by
| how little online discussion of this app I've seen. It's just
| extremely cool to be walking around with a real gnu/linux
| computer in my pocket, which cost nothing to add to the
| phone, and has no ads or in app purchases.
| akshatjiwan wrote:
| I was quite surprised too to learn how well terminal apps work on
| Android. Termux is amazing.
| timonoko wrote:
| Ultimate .emacs on termux, note python-hook
| (menu-bar-mode -1) (setq inhibit-splash-screen t)
| (setq inhibit-startup-echo-area-message t) (global-set-key
| "a" 'hippie-expand) (global-set-key "[?]" 'toggle-truncate-
| lines) (global-set-key (kbd "<f12>") 'toggle-truncate-
| lines) (xterm-mouse-mode 1) (global-set-key (kbd
| "<mouse-5>") 'scroll-up-command) (global-set-key (kbd
| "<mouse-4>") 'scroll-down-command) ; (global-set-key (kbd
| "<wheel-up>") 'scroll-up-command) (global-set-key (kbd
| "<wheel-down>") 'scroll-down-command) ; (setq case-fold-
| search t) (setq-default truncate-lines t) (setq sort-
| fold-case t) (autoload 'scad-mode "scad-mode" "A major mode
| for editing OpenSCAD code." t) (add-to-list 'auto-mode-
| alist '("\\.scad$" . scad-mode)) (require 'scad-preview)
| (global-set-key (kbd "A") 'dabbrev-expand) (add-hook
| 'python-mode-hook 'whitespace-mode) (setq whitespace-line-
| column 128) (custom-set-faces '(default ((t
| (:background "#000000" :foreground "#ffffff"))))
| '(whitespace-space ((t (:background "black" :foreground
| "blue")))) '(whitespace-tab ((t (:background "black"
| :foreground "blue")))) '(whitespace-newline ((t
| (:background "black" :foreground "blue")))) '(whitespace-
| empty ((t (:background "black" :foreground "grey50")))))
| wwfn wrote:
| What keyboard are you using? one where a A [?] F12 are easily
| accessible?
|
| Is there a good interface to (GUI?) openscad from termux?
| timonoko wrote:
| A is in Finnish Keyboards, but totally useless. F12 is easily
| accessible in Hacker's Keyboard. [?] is in Gboard.
|
| There no gui, you use openscad to generate STL and view that
| in Android STL-viewer. You can automatize it so that it is
| almost like the real thing. file_to_watch=$1
| last_modified=$(stat -c %Y "$file_to_watch") while
| true; do current_modified=$(stat -c %Y
| "$file_to_watch") if [ "$last_modified" !=
| "$current_modified" ]; then openscad $1 -o
| $1.stl last_modified="$current_modified"
| fi sleep 1 # Check every second done
| a-dub wrote:
| termux is actually a pretty good little linux distro. i still
| keep wondering if the vm/container thing they shipped in recent
| versions of android for pixel will subsume it.
|
| i was really hoping that with the display port over usb-c out
| that appeared in pixel 9 that there would be a useful desktop
| that could potentially support laptop replacement, but it seems
| all the desktop mode, termux and termux with x over vnc (or
| whatever it is) seem not quite mature. could be cool though,
| although, maybe better if there were a wireless link for the
| display and a way to have it not interfere with the phone being a
| phone.
| j0e1 wrote:
| I have been using Obtainium [1] to install apps on my Pixel
| including Emacs.
|
| [1] https://github.com/ImranR98/Obtainium
___________________________________________________________________
(page generated 2025-11-26 23:00 UTC)