You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写ELisp函数实现man手册在新窗口打开并解决参数错误

解决Emacs自定义man-other-window函数及绑定快捷键问题

自定义man-other-window函数

直接编写交互式函数,临时切换手册页的打开方式,调用原生man命令后恢复原有设置,避免影响默认操作:

(defun man-other-window ()
  "调用man命令并在新窗口打开手册页"
  (interactive)
  (let ((original-method Man-notify-method))
    (setq Man-notify-method 'other-window)
    (call-interactively #'man)
    (setq Man-notify-method original-method)))

核心逻辑说明:

  • (interactive) 标记函数为交互式,支持直接调用或绑定快捷键
  • let 块临时保存原有的Man-notify-method值,避免全局修改影响其他操作
  • call-interactively #'man 以交互方式触发man命令,会弹出输入框提示输入手册名
  • 函数末尾恢复原有打开方式,保证H-m s快捷键仍维持当前窗口打开的默认行为

绑定快捷键

将自定义函数绑定到H-m o(若Hyper键未配置,可替换为C-m o、M-m o等习惯前缀):

(global-set-key (kbd "H-m o") #'man-other-window)

验证步骤

  1. 将上述代码添加到你的Emacs配置文件(如~/.emacs或~/.emacs.d/init.el)
  2. 重启Emacs或执行M-x eval-buffer加载配置
  3. 按下H-m o,输入手册名后回车,手册页会在新窗口打开
  4. 按下H-m s,仍会在当前窗口打开手册,原有快捷键功能不受影响

内容的提问来源于stack exchange,提问作者user129393192

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 03:07:03