SF
死循环
死循环
注册登录
关注博客
注册登录
主页
关于
RSS
YAML -> C 对象
garfileo
6 月 17 日
阅读 13 分钟
382
用 libyaml 将 C 对象序列化为 YAML 文档的方法,我们已基本掌握了。此事并不容易,幸好有宏的帮助。事实上,如果你知道 C 编译器的一些扩展或者最新的 C 标准,那些宏还可以写得更为简约一些。
C 对象 -> YAML
garfileo
6 月 16 日
阅读 22 分钟
412
不过,如果你还对过去的田园和疆场有所怀恋,无聊的时候,还是可以写写 C 程序。这时,你不是老板,不是员工,甚至也不是学生,而是假期里的一个少年,骑着单车四处游荡。这种心态,很适合写 C 程序。早期的程序员,就是这样写 C 程序的,于是就有了最早的 Unix,后来又有了最早的 Linux。
YAML 小传
garfileo
6 月 14 日
阅读 7 分钟
317
谈及 YAML,免不了要说 XML。很多年前,我用过 XML,因为我曾经用过 DocBook,它是 XML 的一种格式,那时是 2007 年。当时的自由软件项目的文档,基本是以 DocBook 的方式撰写的。那时,是 XML 所向披靡的年代,四处流淌着斜杠和尖括号。
Emacs 知行录
garfileo
6 月 13 日
阅读 1 分钟
366
我将最近所写的关于 Emacs 用法的一些文章的链接汇集于此,并取名为 Emacs 知行录,用意是,学习和使用 Emacs 的过程中,应当贯彻王阳明的知行合一的理念。何谓知行合一?知即行,行即知。你所知道的,就是你能做到的;你能做到的,就是你所知道的。
Emacs 第三方包,不祥之器……
garfileo
6 月 12 日
阅读 7 分钟
373
Emacs 有大量的第三方软件包,这些包大多数是用 Elisp 语言编写,也有少量用 C 语言编写。Emacs 可以通过 init.el 载入它们,以增强自身功能。这些软件包犹如一支强大的军队,你可以调动它们去征服一切文档。不过,在试图学习如何调动军队之前,先接受老子泼的一盆冷水:兵者,不祥之器,非君子之器,不得已而用之,恬淡...
Emacs 是他们的,也是我的
garfileo
6 月 11 日
阅读 2 分钟
466
你亲力亲为所作的那部分配置,与一堆陌生的配置混在一起,一旦出现某些冲突,通常很难快速确定问题出在何处。我们有必要对 init.el 中的配置尽力予以隔离。至少,我们真正清楚的那部分配置,可隔离出来,单独存放于一份 .el 文件中,然后在 init.el 文件里将其载入。一方面可以控制 init.el 的复杂度,另一方面也便于问...
让 Emacs 略带感性
garfileo
6 月 9 日
阅读 7 分钟
444
现在,我们尝试用 Elisp 编程来解一道应用题。这道应用题对我而言,颇为重要,对你而言,可作学习 Elisp 编程一例。假设 Emacs 的当前缓冲区内存在一些形如以下内容的片段:
在 Emacs 缓冲区里行走的姿势
garfileo
6 月 7 日
阅读 9 分钟
650
现在,Emacs 的缓冲区,你应该已经能够招之即来,挥之即去了,应该也能在众多缓冲区之间随意穿越,也应该随时能让某个缓冲区呈现在某个窗口里纤毫毕露。不过,若要充分运用缓冲区蕴含的力量,你还需要学会一些简单的 Elisp 表达式,通过它们可以触摸缓冲区内的一切。
缓冲区——Emacs 无形之象
garfileo
6 月 6 日
阅读 5 分钟
622
我们总是习惯于说,用 Emacs 编辑某文件。对于其他文本编辑器,我们也是习惯如是说。实际上用文本编辑器编辑文件,只是一种假象。我们总是在内存里编辑着文件的虚相,并在某个时机将虚相写入文件,从而变为实相。这个事实,倘若你从未用 C/C++ 之类的语言写过程序或者对计算机运作原理近乎一无所知,通常难以体会。一些...
Emacs:我曾为你留下退路……
garfileo
6 月 6 日
阅读 5 分钟
614
也许你早已注意到,当你用 Emacs 编辑文件时,例如编辑 foo.txt 文件,在完成编辑后,你会使用已颇为熟悉的组合键 C-x C-s 将 Emacs 的 foo.txt 缓冲区里的内容保存至 foo.txt 文件。此时,你会发现,在 foo.txt 文件所在的目录里,会出现名为 foo.txt~ 的文件。
你会写 Emacs 命令吗?
garfileo
6 月 5 日
阅读 5 分钟
556
计算机上古时代,大概是上个世纪 70 年代中期,有一种计算机,名曰 Lisp 机,其 CPU 可作为 Lisp 语言的解释器,亦即在这种计算机里,Lisp 程序可以直接运行。譬如,你所写的每个 Lisp 表达式,CPU 可对其求值,于是单个表达式即可为程序,就像地球上最早的生命体——单细胞生物以及后来的多细胞生物。
Emacs 的一些本能
garfileo
6 月 4 日
阅读 4 分钟
579
=> 上一篇:Emacs 素颜淡妆前言配置了字体,修改了颜面,你的 Emacs 此时已颇为体面。也许你早已迫不及待,像很多学习 Emacs 的人那样,希望尽快为自己的 Emacs 安装一些强大的插件,使之从编辑器之神跃迁为神之编辑器。我希望你能安静下来,守着你的 init.el,如无必要,勿增配置。制动键要学会开车,需要先学会如何...
Emacs 素颜淡妆
garfileo
6 月 3 日
阅读 4 分钟
594
此刻,我在 Linux mint 桌面环境使用 Emacs 的图形界面模式。我感觉它有些丑陋。美观固然不必追求,但丑陋也不必容忍。其丑陋之处在于,文字行距过于紧密,且两侧边界的颜色过浅,背景色较深,不伦不类。
为 Emacs 配置字体,你可曾认真过?
garfileo
6 月 3 日
阅读 7 分钟
889
在古代……计算机文明的古代——大致从上个世纪 80 年代算起,无论是操作系统,还是文字处理软件,对汉字的支持,都是极为困难的。无数前辈,不论中西,前仆后继,在大多数软件里,汉字的问题已得以妥善解决,以致今日的你我,在软件里输入汉字,几乎像呼吸与喝水一样自然。
为什么你学不会 Emacs?
garfileo
6 月 2 日
阅读 5 分钟
685
作为 Emacs 的资深新手,我见过很多人立下宏愿,要学会 Emacs,甚至希望成为个中高手。我也曾有此奢求。现在我已明白,凡持此心者,注定极有可能学不会 Emacs。
他可能疯了吧,要用 awk 语言写网络程序……
garfileo
2 月 24 日
阅读 6 分钟
948
本文是 gawk 网络编程的学习笔记。用 Awk 语言编写网络程序,这样的想法有些癫狂,像是企图用一柄小刀砍伐一棵巨树,何况是对于我这样的人,对网络编程近乎一无所知。
orez + lmd = ?
garfileo
1 月 13 日
阅读 9 分钟
927
现在,我有了新的 orez,还有我写的用于制作静态网站的 Bash 脚本 lmd,这两个工具组合起来,会产生怎样的化学反应呢?我也不清楚,可以试试看,但我知道,在 Linux 环境里,反应的结果肯定是一个能够用于发布文学程序文档的静态网站。
Orez v1.0 指南
garfileo
1 月 9 日
阅读 8 分钟
866
2016 年夏天,我用 C 语言写了一个文学编程工具,起名叫 zero,因为它貌似做了一些事,但实质上它什么也没有做。秀才造反,三年不成,文人行事,大抵如此。之后很快实现了 zero 的自举,即采用 zero 所支持的文学编程的方式重新实现了它自身。这个自举版本,我取名为 orez,并为它写了一份用法指南「orez 的故事」——现在...
ConTeXt 蹊径
garfileo
2023-03-29
阅读 1 分钟
1.7k
大概是 2009 年,初学 ConTeXt 时,曾经写了一份笔记,内容颇为粗陋,当时 CTeX 论坛的朋友协助打包上传到了 CTAN。2011 年我对该笔记作了一些修改,并在文中许诺在当年年底作一番大修,然而我食言了。很多年后,我果然胖了起来。
《Lua-in-ConTeXt》12:zhfonts 备忘录
garfileo
2023-03-02
阅读 10 分钟
1.7k
zhfonts 模块实现了 ConTeXt (>= MkIV) 对汉字字体的加载、简体汉字标点符号(全角)间距的压缩以及边界对齐。该模块成型于 2011 年,2023 年初对代码进行了一番梳理,希望它能工作到 2033 年……安装和使用方法可参考 [链接],本文仅对其一些技术细节予以说明,一则备忘,二则或许能帮助一些同好对该模块予以改进。
《Lua-in-ConTeXt》11:源码凸显
garfileo
2023-02-09
阅读 9 分钟
1.4k
这段 C 程序源码在我的 Emacs 编辑器里,变量类型、宏、关键字、函数名等元素,颜色不一,可读性显然优于 ConTeXt 默认的排版结果,证据是,反对者的家里早已没有黑白电视了。
《Lua-in-ConTeXt》10:缓冲区魔法
garfileo
2023-02-05
阅读 3 分钟
1.8k
基于 ConTeXt 的缓冲区(Buffe)及其对 Lua 语言的支持,可以实现大段排版内容的预处理。所谓预处理,是指在 TeX 编译器对排版内容进行断行分页之前的处理,通常由排版者负责。
《Lua-in-ConTeXt》09:学一点 Lua
garfileo
2023-02-03
阅读 5 分钟
1.6k
这份文档的题目是 ConTeXt 里的 Lua。主角应该是 Lua,ConTeXt 只是定语。但是,这个定语很长。这份文档迄今引入的 ConTeXt 知识尚不及 ConTeXt 全部知识的 1%。Lua 语言比 TeX 语言容易得多。倘若觉得学习 ConTeXt 毫无用处,学点 Lua 总是有益的,至少在这个信息化时代的某些时候跟别人说,我也懂点计算机编程。
《Lua-in-ConTeXt》08:参数列表解析
garfileo
2023-02-01
阅读 3 分钟
1.4k
\foo 接到的参数,并非真正的 Lua 表,而是一段文本 "Hello", "world", "!"。
《Lua-in-ConTeXt》07:时间管理
garfileo
2023-02-01
阅读 8 分钟
1.4k
对每个人最公平的莫过于时间。绝大多数人的时间,被极少数的人以花样繁多的管理学手段悄悄偷去了一部分。窃钱者蹲监狱,窃时间者为老板。若每个人都能管好自己的时间,天下必将大同。
《Lua-in-ConTeXt》06:伪竖排
garfileo
2023-01-27
阅读 10 分钟
1.8k
在我的浅薄的审美范畴里,card.pdf 的页码没有在页脚(footer)的留白(Margin)区域居中,甚为不美。然而,card-env.tex 里的
《Lua-in-ConTeXt》05:时间戳
garfileo
2023-01-26
阅读 3 分钟
2.1k
上一篇:卡片 我要在卡片的页脚区域增加时间戳,例如 {代码...} 然而,迄今为止,尚未介绍如何让 ConTeXt 支持汉字。汉字,一直是 TeX 世界之痛。与仅需要几十个字母的拼音文字不同,汉字要成千上万个字符。为汉字设计字体,全部字符需要使用字体设计软件逐一绘制而成。字体大多是有版权的,需要付费获得字体设计公司的...
《Lua-in-ConTeXt》04:卡片
garfileo
2023-01-25
阅读 5 分钟
2.2k
ConTeXt 输出的 PDF 文件,其页面尺寸默认与 A4 纸的尺寸相同。在今后,我可能要给出很多的排版示例。若给出排版结果的全貌,则 A4 尺寸太大了,会导致示例截图里的文字不够清晰。倘若能将页面尺寸设置为卡片大小,并对版面略作设计,也许能岁月安好。
《Lua-in-ConTeXt》03:两个世界
garfileo
2023-01-25
阅读 5 分钟
1.8k
ConTeXt 世界里的大部分设施是用 TeX 语言构建的。在 ConTeXt 源文件里, \ 后面跟随一个或多个英文字母的文本称为控制序列。 \ 后面跟随单个非字母的文本,也称为控制序列。
《Lua-in-ConTeXt》02:ConTeXt 计算机
garfileo
2023-01-24
阅读 5 分钟
2k
用于编写 TeX 源文件(例如 hello.tex)的任何一种文本编辑器,都可视为「ConTeXt 计算机」的终端。context 命令可将 TeX 源文件里的内容输出到 PDF 文件,于是可将 PDF 文件视为 ConTeXt 计算机的显示器。
1
(current)
2
3
4
5
…
More
下一页
1
(current)
下一页