在日常使用电脑处理文档、写代码或者配置网络的时候,很多人会用到文本编辑器。Emacs 不只是个编辑器,它更像一个操作系统内的操作系统。特别是在调试 WiFi 配置脚本时,频繁在终端和编辑器之间切换特别麻烦。这时候,Emacs 和 Shell 的无缝交互就能派上大用场。
直接在 Emacs 中运行 Shell 命令
比如你正在修改路由器的网络配置脚本 wifi-setup.sh,改完想立刻测试。不用退出 Emacs,按下 M-!(也就是 Alt + !),会弹出一个输入框,输入 bash wifi-setup.sh 回车,命令就在后台跑起来了。执行结果还会显示在一个临时缓冲区里,方便查看输出有没有报错。
启动内置 Shell 会话
如果需要连续执行多个命令,可以打开一个真正的 Shell 会话。按下 M-x shell,Emacs 会新开一个缓冲区,名字通常是 *shell*,这里你可以像在终端里一样输入命令。最方便的是,你可以把当前编辑的配置文件拖进去执行,比如:
chmod +x wifi-setup.sh
\./wifi-setup.sh --interface wlan0 --ssid MyHomeWiFi
复制路径快速操作
当你在 Emacs 里打开一个配置文件时,想看看这个文件在系统里的位置,可以用 C-u C-c C-f 复制当前文件的完整路径。然后切换到 shell 缓冲区,粘贴后直接用于命令行操作,比如用 diff 对比两个不同版本的配置。
从 Shell 输出跳转回源码
有时候运行脚本报错了,提示某个文件第 42 行有问题。你可以在 shell 缓冲区里直接点击包含文件名和行号的文本(比如 config.wifi:42),Emacs 会自动打开那个文件并跳到对应行。这对快速修复 WiFi 认证脚本中的拼写错误特别有用。
结合 grep 搜索配置项
如果你在管理多个网络环境的配置,想找所有包含 dhcp 的文件,可以直接在 Emacs 里调用 shell 命令:
M-! grep -r dhcp /etc/network/
搜索结果里的每一行都可以点击,直接跳转到对应文件位置,省得再手动查找。
用 shell 命令处理选中文本
选中一段不规范的 IP 列表,想按数字排序?用 C-u M-|,然后输入 sort -n,选中的内容就会被替换成排序后的结果。这在整理 DHCP 地址池时很实用。
这些小功能看着不起眼,但用熟了之后,写脚本、调网络就像在同一个工作台上来回拿工具,手都不用抬。