HackerTrans
TopNewTrendsCommentsPastAskShowJobs

karthink

no profile record

comments

karthink
·15 วันที่ผ่านมา·discuss
How do you sync your google calendar with org-agenda?
karthink
·4 เดือนที่ผ่านมา·discuss
> Once you hook up elisp evaluating MCP to your Emacs

gptel-agent ships with an elisp-eval tool out of the box, BTW.
karthink
·4 เดือนที่ผ่านมา·discuss
As a clarification, you don't need elfeed-tube to subscribe to YouTube feeds (channels or playlists) with elfeed, or to watch the videos with mpv. elfeed-tube only adds text to the feed entries, in the form of more video metadata, transcripts and synced playback with mpv.

Also, mpv supports lua scripts for a variety of actions on YouTube (or other streaming) videos, such as showing you YouTube's recommended videos in the video player, clipping and downloading videos, sponsorblock and submitting sponsorblock segments, and so on.

I've been doing this for almost a decade, and I do recommend it. In my experience, just importing my YouTube subscriptions into a feed reader was a positive experience. I've had a daily digest of mostly interesting videos and rarely (if ever) the urge to browse YouTube.

But with YouTube's recommendation algorithm out of the picture, it does mean that you'll have to find some other way of discovering new channels.
karthink
·4 เดือนที่ผ่านมา·discuss
> It needs a far better UX out of the box and by "better" I mean "more aligned with what literally every other program you are likely to use does for UX". (Just enabling cua-mode by default, and making the user toggle on "vanilla Emacs", would go far.)

> ...

> One of the truths preached in the Gospel of Mac is that ALL programs need to be consistent with one another, and use the same visual look, menu hierarchy, and keybindings for corresponding commands.

I started using Emacs on a Mac recently and was pleased to discover that it is, in fact, consistent with other programs.

- Cmd-C/X/V work as expected (copy/cut/paste from system clipboard)

- Cmd-Z undoes,

- Cmd-O brings up the open-file dialog, Cmd-T opens a new tab,

- Cmd-F invokes search and Cmd-L goes to line, and so on.

It uses the same global menu bar as other programs, and setting the font from the menu works. The only thing that didn't work is using Cmd-Shift-? to search through menu bar options. This is GNU's official MacOS build, not the custom-built emacs-mac or emacs-plus packages.

Last year I helped a non-programmer get started with Emacs (for the first time) on a Mac. After a couple of weeks their only remarks were that the customize interface looks a little dated and the config/custom file has a weird format. They never brought up the keybindings or other UI as an issue. Now I understand why -- Emacs is a reasonably good citizen on MacOS.
karthink
·4 เดือนที่ผ่านมา·discuss
> In the meantime we're all stuck waiting for package downloads.

I use Elpaca instead of the built-in package manager, which is better designed (declarative package specification) and fully asynchronous. The UI is also more thoughtful, with more granular search-as-you-type capability and easy git commit reviews of pending package updates.

package.el is catching up to Elpaca in features, but async installs/updates is not one of them.

https://github.com/progfolio/elpaca
karthink
·4 เดือนที่ผ่านมา·discuss
There's some miscommunication here.

> How does eat detect a visual command in eshell?

eat-eshell-mode doesn't detect visual commands and launch a separate eat buffer, like eshell-visual-commands do. It filters all process output in eshell and handles term codes. It turns the eshell buffer itself into a terminal, so that vim or whatever runs in eshell.

> It sounds from your description like vterm is faster than eat.

vterm is faster than eat, but a dedicated eat buffer is fast enough for most common TUIs. An eshell buffer with eat-eshell-mode is slower.
karthink
·4 เดือนที่ผ่านมา·discuss
You have to turn on eat-eshell-mode to enable Eat's terminal emulation in eshell.

It runs full-fledged TUIs like vim and ncmpcpp in Eshell slowly, but is good enough for quick fzf uses. It's perfectly fine for "small" dynamic elements like the spinners and progress bars used by package managers.

Just remember to use system pipes (with "*|") instead of Elisp pipes (with "|") if you're piping data into an interactive TUI application like fzf in Eshell.
karthink
·7 เดือนที่ผ่านมา·discuss
> agentic capabilities are very much on a roll-your-own-in-elisp basis

I use gptel-agent[1] when I want agentic capabilities. It includes tools and supports sub-agents, but I haven't added support for Claude skills folders yet. Rolling back the chat is trivial (just move up or modify the chat buffer), rolling back changes to files needs some work.

[1] https://github.com/karthink/gptel-agent
karthink
·8 เดือนที่ผ่านมา·discuss
> It's definitely slower when doing any intensive background activities that Emacs would normally offload.

Emacs is single threaded and can't offload any elisp code. Even the stuff it can offload as background OS processes report in to the main loop and share time with editing, so a chatty background process can and does frequently lock up Emacs. So I'm surprised that VSCode, whose runtime is better suited to async jobs, ever feels slower than Emacs.
karthink
·8 เดือนที่ผ่านมา·discuss
I think Neovim is more flexible -- a plugin you write for neovim can run in the terminal, in any Neovim GUI or in another application (like VSCode) that can embed Neovim.
karthink
·9 เดือนที่ผ่านมา·discuss
> pdf-tools in Emacs is much faster

pdf-tools is quite slow and a memory hog. emacs-reader is a replacement for it (still in development) that already blows every PDF reader I've ever used out of the water in performance:

https://tv.dyne.org/w/wcedffVATJGwLSCqta6pk1
karthink
·10 เดือนที่ผ่านมา·discuss
> Live preview works for me but only if I first do M-x org-latex-preview, it doesn’t do it automatically.

Not an error on your end. Live previews for _new_ fragments are only supported when entering \[..\] and \(..\) delimiters, and not $..$ and $$..$$. With the latter you'll have to preview it manually once, and live previews will update from then on.

Fixed the typo, thank you for reporting it.
karthink
·10 เดือนที่ผ่านมา·discuss
> emacs org-mode: There is no live, inline LaTeX preview.

There is, but we haven't managed to merge it into Org mode yet because we (the feature authors) and the Org maintainer have been busy with other things.

Here are some screencasts:

- https://share.karthinks.com/olp-auto-mode-env-1.mp4

- https://share.karthinks.com/olp-auto-mode-inline-1.mp4

Here's a longer explainer (this is part 2/2): https://www.youtube.com/watch?v=u44X_th6_oY

Here are instructions if you want to try the fork of Org mode that provides this feature: https://abode.karthinks.com/org-latex-preview/
karthink
·ปีที่แล้ว·discuss
> I read some arguments against moving emacs to a multithreaded model, but I don't really remember them.

Everyone including the maintainers would like this to happen. The arguments against it are technical hurdles. Emacs is a large ball of global state and the lisp evaluator hooks into everything, including the display engine, so it's not clear to anyone how to disentangle things to the point where the interpreter lock can be released.
karthink
·5 ปีที่แล้ว·discuss
The buffer was not being edited when the replacement was shown to be happening. The plugin anzu uses overlays[1] to show the text being replaced and the replacements.

[1]: https://www.gnu.org/software/emacs/manual/html_node/elisp/Ov...
karthink
·5 ปีที่แล้ว·discuss
C-x C-SPC (pop-global-mark) will work across buffers.
karthink
·5 ปีที่แล้ว·discuss
Jumping "forward" is sort of built into Emacs with C-x C-SPC, pop-global-mark.

The objective and this command are fairly but not completely aligned, so it may require multiple presses of C-x C-SPC. To be clear, you only need to press C-SPC after the first invocation to repeat the command.
karthink
·5 ปีที่แล้ว·discuss
I'm not sure there's a surefire way of jumping back with your C-x commands that's built into Emacs, but here are two options:

C-x C-SPC will pop the global mark which, depending on what you've done in the buffer you're visiting, can pop you right back to where you started, functioning as the equivalent of M-,.

C-x b RET (C-x b with no input) should take you back to the most recently used buffer, which will usually be the buffer you started from.

Not built in: It's also fairly trivial to write some defadvice that stores your point (pre-jump) to a register, so you can jump back to the register with one key.
karthink
·5 ปีที่แล้ว·discuss
'df.' is simulated with M-z (zap-to-char). There's also a zap-up-to-char command that corresponds to 'dt.', but it's not bound to anything by default.

There's no doubt that it's all ad hoc though. 'd/something' is doable with C-s something RET C-w, but it's already getting tedious in comparison.