sudoedit (06-01)
看到了告诫用户不要用 sudo
带上特定的编辑器去编辑系统文件,而是用 sudoedit
的博文。因为前者的体验并不好,根用户是独立的用户,不可能跟当前用户直接共享编辑器配置、主题、插件等;用光杆编辑器吧,挑剔的用户真的愿意么?
更符合直觉的解决方法是把配置和主题、插件(如果有的话)在根用户的用户目录下拉个符号链接。但这样是很脏的做法,污染了根用户的目录。根用户理应是无悲喜无偏好的系统管理员……虽然单用户系统上并不会造成任何问题。
sudoedit
呢,就是用临时文件之类的做法了。
还看到了 renameutils。跟之前的 moreutils 一样,是很实用但接触之前从没听说过的东西。自己摸索着入门就是这样的,不知道前人的最佳实践轮子,于是自己用脚本试着重新发明一下。
xargs (06-01)
原来 POSIX Shell 是这么处理间接使用 stdin 的情况的……Nushell 用户有更自然更稳健的 pipe 呢(笑)还是更现代的设计好。
xargs 的用法说明满天飞,我就不提了。
RnR (06-01)
rnr
是用 Rust 写的批量重命名工具,用的是正则表达式。
不过我用不着。。。我用Nushell写的批量重命名脚本只有24行。现在还知道了 renameutils,用自己喜欢的文本编辑器显然更舒服些。
エモタナ (06-01)
エモタナ: エモくてオルタナ
尝试 LTeX (06-01)
I tried ltex-ls
, but its spell checker is annoying. And I hate JDK; it is bloated and bulky. (GPT taught me these adjectives)
Certainly! Depending on the context and what you want to convey, there may be different ways to express your sentiment. Here are a few examples:
- “I dislike the bulky JDK” - This rephrases the original sentence using “bulky” instead of “bloated,” which could imply that the JDK takes up too much space or has unnecessary elements.
- “The JDK feels overly complicated to me” - This conveys a similar sentiment about the JDK being difficult to work with or understand, but without using the word “hate” and focusing more on complexity.
- “I find the JDK’s size and features excessive” - This is another way to rephrase the original sentence to suggest that the speaker feels the JDK has too many unnecessary components or functionalities.
Of course, these are just a few possible options and the best way to improve the expression depends on the specific context and what you want to communicate.
没错,这玩意是用 Kotlin 开发的,自带一个 JDK 11。这导致构建好的文件大小高达 280 MB。毕竟用的是 Java 写的 LanguageTool。
但我写的东西经常是混合语言的,用不到啊。试了下反而会有点烦。姑且把配置注释掉了,需要的时候再用。至少有个并非GUI软件的本地语法检查工具还是不错;Language Server 是好文明。
Zola 诡异的 Markdown bug (06-02)
我想不需要重复:我现在已经不用Zola了。我想你多半是从比较新的文章开始读的,之后一些迁移过程中我发现了或者没发现的地方我都不会再重复这个提醒了。
意思就是说,所有我涉及到的Zola的东西完全可能已经过时,或者相关的内容对你来说很难懂。
不知道为什么,我现在的 Zola 版本的 Markdown 有个奇怪的问题:强调标记没法以中文标点符号为内容的开头或结尾,否则不会 render。以下是源码和对应效果:
博客。**系统。**博客。
博客**。系统**。博客。
博客。**系统**。博客。
博客**。系统。**博客。
博客。系统。博客。
博客。系统。博客。
博客。系统。博客。
博客。系统。博客。
你看,连源码的高亮都能分析正确。
我当前的 Zola 版本是 0.16.1。不知道新版有没有修复。
但不知道为什么不想去开issue报告这个bug。。。Markdown 的东西太恶心我了。现在也只是强忍着绝望写着 Markdown。
我的审美现在倾向于 LaTeX 一方:与其把标准键盘可敲出的每一个字符利用干净,不如多打几个字而表达清晰一点。是这样的:有特殊含义的字符越多,就越可能跟这些字符的正常用途撞个满怀。比如 *
,历史语言学用前置于词汇的星号表示这是个构拟的形式,句法学、语义学用来放在句子前表示更不可接受的句子。如果作者要用纯文本而非可视化编辑器写 Markdown,必须要用 \*
来转义。如果这个词汇/句子还要用斜体(意大利体)呢?那就是 \**metipsimus*
*metipsimus,或者 *\*metipsimus*
*metipsimus。这样的写法多了实在很别扭。
当然,LaTeX 也有设计思路上很古老的地方,它毕竟是个面向打印媒介的排版系统。比如在文中输入反斜杠要使用 \textbackslash
,而不是转义;\\
代表硬换行。
My Helix keymap (06-03)
在 Insert Mode 下,我设置了一些 Emacs 风格的键位。其实 Helix 本身就带了一些(比如 C-f
C-b
C-k
,但并不全面。我的键位设置目前如下:
# For keymap reference, see <https://docs.helix-editor.com/keymap.html>
[keys.normal]
"C-S-c" = "no_op" # Avoid mingling with shell or terminal emulator
"A-w" = ":w"
"ret" = ["open_below", "collapse_selection", "normal_mode"]
"S-ret" = ["open_above", "collapse_selection", "normal_mode"] # Nonfunctional
[keys.select]
"A-q" = "normal_mode"
# Let's Emacs this.
[keys.insert]
"A-q" = "normal_mode"
# "A-w" = ["normal_mode", ":w", "insert_mode"] # Nonfunctional, seems like a bug
"A-;" = "collapse_selection"
"C-p" = "move_line_up"
"C-n" = "move_line_down"
"C-f" = "move_char_right"
"C-b" = "move_char_left"
"A-f" = ["move_next_word_start", "move_char_right", "collapse_selection"]
"A-b" = ["move_prev_word_start", "collapse_selection"]
"C-a" = "goto_line_start"
"C-e" = ["goto_line_end", "move_char_right"]
# By default, it equals to newline which preserves indentation, unlike in Emacs
# Therefore we make it somehow more useful
"C-j" = "open_below"
# j = { k = "normal_mode" } # Some people map `jk` to exit insert mode. I don't.
也不全面。大范围的移动我就退到 Normal Mode 了,这只是为了小范围移动方便。
会不会混淆进而造成混乱呢?其实有这个可能。但是,这两种键位(Vi系、Emacs系)都可称通用,都会的好处大于只会一种,至少要会基础的。这其实像会若干种语言、临时语码转换一样。
如果 Helix 的插件系统能成熟,或许有人会做类似于 Emacs in Helix 的东西呢。
Emacs 的 ESC (06-04)
原来 Emacs 键位有对应 ESC 的快捷键 C-[
!Helix 的 Insert Mode 也支持,这比我用的 A-q
好啊。要不再把 :write
绑到 C-]
上吧。
以及 C-h
好像类似 backspace。不用类似,它就是。嗯……既然有这样成熟的一套东西的话,要不我把 C-j
还原吧。然后用 C-m
做类似的东西。不错的点子!
……但怎么似乎这两处更改都有bug呢,总之先保持现状吧。
Hyphen-minus; dash (06-04)
-
(U+002D) 对应的全角区形式是 -
(U+FF0D)。虽然看起来跟 —
(U+2014, EM DASH) 很像,但实际不一样。
比如说,一些终端模拟器认得第二个是全角区的符号,但不认为第三个是;但它们在等宽字形里多数是占据两个字母宽度的位置的,这就导致显示上的问题。