跳至主要内容

博文

I wish to have an async XEmacs

Bringing Modern Concurrency to XEmacs: Async/Await and Actor Models What if Elisp could handle concurrency as gracefully as Node.js or Python? I am working on an experimental XEmacs branch designed to bring modern paradigms to the editor, including: Native async/await syntax for non-blocking Elisp execution. An Erlang-inspired Actor model for robust, parallel programming. You can track the development and explore the code here: [Link to WIP Async XEmacs Repo]

Tempermonkey script: translate in a new tab by ctrl-right-click

It's been a long time, I created search keywords `camb` in firefox bookmark for Cambridge dictionary English-Chinese translation search. To use this keyword, the procedure look likes this: I get a fresh new English word in a page. I select and copy the word by Ctrl-C or right click and select "copy" I open a Firefox tab/window In the newly opened address bar, I type in the keyword "camb" and a space I paste or manually type in the copied word I press enter and wait for the Cambridge Dictionary translate    The procedure is too boring, but I can not live without it as Cambridge  Dictionary is one of the best translation system that provides the best quality pronunciation.   Now  there's tampermonkey, And with the right-click-to-open script, the procedure becomes:   I get a new English word in a page I select the word and right click the page while holding Ctrl key New tab is opened with Cambridge Dictionary translation    Much more convenient righ...

一个阶段的开始和结束

裁员成了现实    突如其来,但又早有预料   很好的机会把青春变现,但又深陷下一个工作的无法着落    回顾过往,感叹为什么每天自以为很牛的工作放在简历上的却如此难以拿得出手    

Use MobaDiff with git difftool

Recently there's an activity in IT that forces the deletion of all unauthorized softwares from all work machines. Unfortunately, kdiff3 is one in the list. As it is generally okay to use vimdiff as an alternative for kdiff3, A gui tool is better suited for desktop workflows. Known that MobaXterm is shipping a gui diff tool named MobaDiff. But it only appears in the windows right click context menu. Find the real application name takes me some time to search in the windows registry. "MobaRTE.exe", which is the one invoked by HKCR\*\shell\MobaDiff. And it was invoked with "-contextdiff" switch to show MobaDiff UI, while when the switch is "-contextedit" it shows MobaTextEditor. Too bad that the "-contextdiff" switch do not support pre-image post-image as other diff tool did, which effectively made it unable to be used as a command line diff utility. Also MobaTech did not mention anything in their document of this Mob...

Eglot and before/after-save-hook and use-package

In Emacs, when you try to automate some actions during every save action, you will surely get to the before-save-hook and the after-save-hook. Simply adding something like gofmt-before-save to before-save-hook will save you tons of time to do the go-fmt. And then, I meet eglot, and gopls will also save me tons of time doing googling and api documentation navigation. But eglot-ensure is not very friendly to the good old ways of how after-save-hooks were designed to work. It makes the before/after-save-hook a buffer local variable and it does not inherit the variable's global value. So, to make before/after-save-hook work again, experts start to adding hooks to major mode specific hooks like this: emacs.md - Go (opensource.google) """ ;; Optional: install eglot-format-buffer as a save hook. ;; The depth of -10 places this before eglot's willSave notification, ;; so that that notification reports the actual contents that will be saved. (defu...

Winget: From Quirky Underdog to Stable Champion

Remember winget, the Windows Package Manager that started as a playful experiment? Well, prepare to be surprised – it's grown into a powerful and highly stable tool for managing your software, including in environments with network restrictions . Gone are the days of unreliable installs and limited functionality. The developers have diligently transformed winget into a reliable contender in the package manager arena. Updates arrive regularly, bringing stability, enhanced features, and wider app support . Here's why you should give winget another look: Unified experience: Manage all your apps from a single command line , ditching the scattered hunt for individual installers and downloads. Security focus: Winget verifies package integrity and signatures, ensuring you get authentic and secure software . Efficiency: Say goodbye to manual downloads and updates. Winget automates the process, saving you time and effort. Customization: Configure installation options and choose s...

HTML and YAML parser not working for nvim treesetting on windows.

Got this issue: Impossible to load parser for html: Failed to load parser: uv_dlopen: error: 127 · Issue #3587 · nvim-treesitter/nvim-treesitter · GitHub There's an issue with HTML and YAML parsers due to their dependence on C++ and the libstdc++-6.dll library. Specifically, the NeoVim Windows version includes this library for nvim-qt.exe . However, this can cause conflicts when compiling with the user installed GCC, which links to its own libstdc++-6.dll (which in most case will be a different verson). Potential Problems: DLL Conflict: If you're not using nvim-qt , the html.so and yaml.so files might mistakenly point to the library bundled with NeoVim, leading to unexpected behavior. Path Reliance: Depending on your path variables, the parsers might prioritize NeoVim's library, even if you intend to use GCC's version. Fake Solutions: Remove NeoVim's Library (if not using nvim-qt): If you don't use nvim-qt , simply delete the libstdc++-6.dll file includ...

Windows 10 下键盘设置技巧

CJK Emacs 用户 Windows 10键盘设置  其实并不是特别多Emacs用户有这么奇怪的要求: 要有CJK输入法 要有Emacs来满足输入快感 要CJK输入法的激活方式与Emacs热键不互相冲突  要右边的 Alt 按键和左侧的 Alt 一样可以在Emacs中用作 Meta 键  下面是我正在 Windows 10 系统使用的配置:  要求1,不需要特殊配置,windows 10 自带了各种地区的输入法,并且对于中文用户还很贴心的默认激活……  要求2,只要安装了 Emacs 就好。  要求3,为 Windows 10 添加一个“美式键盘”。如此一来,只要切换到这个英语键盘,Ctrl-Space 热键就可以直接被 Emacs 接收到,而不是被系统截获用作输入法开关了。同时,Win-Space 组合会成为键盘级别的切换。  要求4,为 Windows 10 添加 “美式键盘”的时候,一定选择不带任何修饰的 “美式键盘”。切记不要选择 “国际”版本,那是一个把右侧 Alt 键转换成 AltGr 的特殊设置(只有输入特殊的欧洲字符时才用的到,至少我是用不到的)。  还有一个曾经从 WinXP 时代流传下来的注册表设置: right alt -> left alt ------------------------------------ Windows Registry Editor Version 5.00   [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,38,00,38,e0,\ 00,00,00,00   ------------------------------------

XEmacs 21.5 beta 35 "kohlrabi" has been released.

If you are an old XEmacs user, you may feel happy to see this from https://www.xemacs.org/.    After ten years, XEmacs released a new version 21.5. So there's still many people cares about XEmacs. The XEmacs' source repo have been moved from altassian Bitbucket to https://heptapod.net/. As Bitbucket have been dropped Mercurial support many years ago.

Fido-mode

Today, I've just discovered the Fido mode, a modified `icomplete` minor mode. `icomplete` used to be one of my favorite mode days back to my XEmacs days. Pros: It is way fast. It is much more smart in terms of find the complete candidate that you want mostly.  Cons: It does not integrate well enough with tramp yet.    `fido-mode` is a core package of Emacs 27+, and there's a vertical version available after Emacs 28+ named `fido-vertical-mode`. UPDATE: I am back with ido now

Read the function description of dired-omit-mode

If you don't know how to enable `dired-omit-mode` for every dired buffer, like me. Read the `dired-omit-mode` function description with `C-h f dired-omit-mode`, where it said: To enable omitting in every Dired buffer, you can put this in your init file:   (add-hook 'dired-mode-hook (lambda () (dired-omit-mode)))

Where to find newly added openJDK features for each openJDK release

With help of a branch of Google search, I finally find a good place to learn OpenJDK features by release.   Put the following URL into web browser:  https://openjdk.org/projects/jdk/<THE JDK VERSION>/   The lowest JDK version supported is 10. This page is quite clear, one may just follow the JEP link for a detailed explanation.

Use HTML

 Okay, I've finally found the HTML mode in the blog editor today. Alas. I'd paste all my HTML blog backups in if I've found it before the re-construction of my blog. Anyway, at least I am able to make use of Emacs org-mode's HTML exports for blog publishing. It's much better than writing by hand with the web based blog editor, already. A good beginning. Good night everyone.

My simplified Emacs setup

‎ Table of Contents 1. I have Emacs 28 installed on Windows. 1.1. With following list from GNU and MELPA archive: 1.2. and a list of customized key maps: 1.3. And default modes: 1.4. And Usage Package Settings: 1. I have Emacs 28 installed on Windows. 1.1. With following list from GNU and MELPA archive: (custom-set-variables '(package-selected-packages '(nano-agenda nano-modeline nano-theme use-package languagetool eglot cnfonts company-box company-tabnine multiple-cursors beacon))) 1.2. and a list of customized key maps: (global-set-key (kbd "C-x C-b") 'ibuffer) (global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines) (global-set-key (kbd "C->") 'mc/mark-next-like-this) (global-set-key (kbd "C-<") 'mc/mark-previous-like-this) (global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this) 1.3. And default modes: (beacon-mode 1) (cnfonts-mode 1) (nan...

Open current file's directory

I've nuked my working Emacs environment for some known reason. To get back some editing power, I set up a simple Vim environment. As a result, I've always missed the capability to open the current file's directory for exploring. To do it in Vim: use netrw's Explore command series. :Exp :Lex :Sex etc. Note, there's a fascinating abbreviation -- Sex-plore ;)

一件关于 Native Compile 的小事

一直以来,Java程序的云原生部署都给人落后时代的感觉。 别人都是小型的Container, Java 需要个巨无霸的 JDK 捆绑。 别人都是死掉马上拉起服务,Java需要JVM前思后想左思又想的慢吞吞预热。 别人都是一个小小的配置,Java需要各种安全和系统级别的密钥仓库捆绑。 如此种种,直到有一天…… https://www.infoq.com/articles/native-compilations-boosts-java/

For Some Reason to Move

My blog was previously on GitHub. It was a really comfortable setup with Emacs Org mode to export everything as static Jekyll web pages.   It was forced to delete after some open source related bad thing happened.