5 ms·
Every vim/tmux user has created an ad hoc, informally-specified, bug-ridden, admittedly probably quite fast implementation of half of Emacs.
by thom 1y ago
Every vim/tmux user has created an ad hoc, informally-specified, bug-ridden, admittedly probably quite fast implementation of half of Emacs.
- b0a04gl 1y agovim+tmux setups usually lean on system primitives = pipes, files, signals, scrollback so the tooling tends to stay transparent across environments. that gives them an edge in portability and debugging, especially over ssh or in constrained shells. it's just lets your workflows shaped around different guarantees so natively, it naturally makes building your own vim config an obvious choice
- iLemming 1y ago> especially over ssh Emacs has TRAMP mode - stands for “Transparent Remote (file) Access, Multiple Protocol", it lets you: - Edit files as if they were local: /ssh:user@host:/path/to/file - Chain connections: /ssh:jumphost|ssh:target:/file for bastion hosts - Access Docker containers: /docker:container:/etc/config - Edit Kubernetes pods: /kubectl:pod:/app/settings - Sudo seamlessly: /sudo::/etc/hosts or /ssh:host|sudo::/etc/config - And even combine them: /ssh:server|docker:container|sudo::/etc/nginx/nginx.conf What you get? Transparent integration - Dired, Magit, etc, they just work. There's no context switching - you stay in your configured Emacs environment. Your keybindings, packages, customizations remain the same. It's multiprotocol: Supports SSH, FTP, SMB, ADB (Android), and more.
- onetom 1y agoyeah, magit via TRAMP kinda works, just slow af: https://news.ycombinator.com/item?id=44356346 https://news.ycombinator.com/item?id=44356346 not really TRAMP's fault, of course... it also doesn't quite work with macOS remotes usually. again, not purely TRAMP's fault, but a default config and habits issue with ~/.zshrc vs ~/.zprofile and maybe /etc/sshd/config settings, i think. i hasn't fully figured it out yet. using this kind of "full-screen terminal screen sharing" approach has a more predictable experience, because of the amount of data transferred is usually 1 screen worth of characters (and colors) max, on most keystrokes. that's both a pro and a con. it imposes a fixed, network connection dependent input lag and the output is also often redrawn by retransmitting the same data over and over again...
- onetom 1y agoi would have explicitly mentioned shell & eshell too. ansi-term however doesn't work thru TRAMP, out of the box, though there are workarounds, like https://github.com/cuspymd/tramp-term.el https://github.com/cuspymd/tramp-term.el (hasn't tried it yet)
- grep_name 1y agoAs someone who uses both vim/tmux and emacs for certain things (and spent years configuring and working only in emacs), my emacs setup is WAY more ad hoc, informally specified, and bug ridden than my vim+tmux setup ;)
- iLemming 1y agoThe key point you're missing from the parent comment is "half of". Maybe you have no idea how much Elisp code is out there in the wild. There is a LOT of things written in Emacs Lisp. Elisp is probably the most widely used Lisp, with the global total codebase amount exceeding both Clojure and Common Lisp combined. There are things built into Emacs that some specialized apps don't even have. Did you know that Emacs has built-in lunar and solar calendars, for example? Just by comparing the sheer amount of code, of course vim+tmux may feel less complicated - they give you fewer opportunities to encounter complexity because they offer significantly less functionality out of the box.
- skydhash 1y agoThe only thing missing from emacs is some (opengl) 2d surface api like the browser’s canvas, to rival the rest of the OS.
- iLemming 1y agoAlthough I like the idea of having a full-blown graphics engine built into Emacs, I personally don't suffer (at least not so badly) from not having a real web browser inside of Emacs. I can navigate my browsing history¹; I can even (to a certain degree) control my actual browser from Emacs - going through the list of tabs, jumping to a selected tab, extracting content from a tab, inserting the current URL at point, etc. Some of it can be done with AppleScript (on Mac), some of it can be done using Linux tools like xdotool. I browse HN and Reddit in Org-mode; I've recently built a package to search through HN². I don't really need to jump back and forth between my editor and my browser (or many other apps) all the time. ___ ¹ https://github.com/agzam/browser-hist.el https://github.com/agzam/browser-hist.el ² https://news.ycombinator.com/item?id=44264368 https://news.ycombinator.com/item?id=44264368
- ivanjermakov 1y agoI felt that. In my current workflow I run :Term inside of nvim.
- bloppe 1y agoI even wrote a little terminal emulator turn my 2-key tmux prefix into the single-key ctrl modified for every command, including the ones that are normally impossible on other terminal emulators https://github.com/ouillie/terminalle https://github.com/ouillie/terminalle