电脑指南
第二套高阶模板 · 更大气的阅读体验

Emacs写代码怎么样?老司机实测路由脚本开发体验

发布时间:2026-04-20 09:30:58 阅读:4 次

在路由器刷OpenWrt、写自定义iptables规则、调试dnsmasq配置时,你用什么编辑器?有人用nano凑合,有人开VS Code连SSH,还有人——就爱在终端里敲emacs

不是IDE,胜似IDE的终端原生感

Emacs跑在SSH里不卡,哪怕你在树莓派4上改/etc/config/firewall,它响应比图形界面编辑器还快。不用等加载、不占桌面资源,Ctrl+x Ctrl+f一按,直接打开远程文件;Ctrl+x Ctrl+s回车,保存即生效。配个tramp,连root@192.168.1.1:/etc/config/dhcp都能当本地文件操作。

写Shell和Lua,补全和跳转真顺手

OpenWrt脚本多是Shell或Lua,Emacs默认就带sh-mode和lua-mode。写for循环时Tab自动补全变量名,把光标停在uci set dhcp.@dnsmasq[0].noresolv='1'里的dhcp上,Alt+. 一键跳到uci命令定义处(装了elisp包后)。再比如改防火墙规则,写到iptables -t nat -A PREROUTING,company-mode会弹出常用链名和参数提示。

一个真实场景:批量改DNS转发

某天发现所有设备DNS被劫持,要快速把/etc/config/dhcp里所有list server改成国内干净DNS。Emacs里Ctrl+H P调出正则替换:

\(list server\) \([^\n]+\)

替换成:

\1 '223.5.5.5 119.29.29.29'

一次选中全部匹配项,回车确认——三秒搞定二十台设备的配置模板。

插件不多,但每个多半能救命

不用装几十个插件。就三个实用的:
- magit:同步你写的openwrt-config仓库,commit前看diff清清楚楚;
- flycheck:写shell脚本时实时标红fi漏写或引号不闭合;
- which-key:按下Ctrl+c后悬停两秒,自动显示下面能接哪些组合键,再也不用翻cheatsheet。

Emacs写代码怎么样?它不炫酷,但像一把磨钝了刃却越用越称手的螺丝刀——修路由、调QoS、撸内核模块,你不需要它多聪明,只要它不掉链子、不抢焦点、不弹更新提醒。深夜改完iptables-save,Ctrl+x Ctrl+c退出,终端干干净净,连句废话都没有。