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

如何在Emacs中配置Ruff的两个命令绑定以检查和修复当前缓冲区?

如何在Emacs中配置Ruff的两个命令绑定以检查和修复当前缓冲区?

没问题,我来教你怎么在Emacs里配置这两个Ruff命令,直接把下面的代码加到你的Emacs配置文件(比如~/.emacs或者~/.emacs.d/init.el)里就行:

首先定义检查命令ruff-check:

(defun ruff-check ()
  "Run ruff check --select ALL on the current buffer's file."
  (interactive)
  (let ((file-name (buffer-file-name)))
    (if file-name
        (shell-command (format "ruff check --select ALL %s" (shell-quote-argument file-name)))
      (message "Current buffer is not visiting a file!"))))

接着定义修复命令ruff-fix:

(defun ruff-fix ()
  "Run ruff check --select ALL --fix on the current buffer's file."
  (interactive)
  (let ((file-name (buffer-file-name)))
    (if file-name
        (progn
          (shell-command (format "ruff check --select ALL --fix %s" (shell-quote-argument file-name)))
          (revert-buffer t t t)) ; 修复后自动刷新缓冲区,直接看到修改效果
      (message "Current buffer is not visiting a file!"))))

简单解释下这两个函数:

  • 它们都会先判断当前缓冲区是否关联了本地文件,如果是新建未保存的空缓冲区,会弹出提示告诉你没法执行命令
  • ruff-fix里额外加了revert-buffer,因为Ruff修复是直接修改磁盘上的文件,这步能自动刷新缓冲区,让你立刻看到修复后的内容

配置加好之后,要么重启Emacs,要么在配置文件里执行M-x eval-buffer加载修改,之后你就可以通过M-x ruff-check执行全量检查,用M-x ruff-fix执行全量修复啦。

如果想更方便,还可以给这两个命令绑定快捷键,比如把下面的代码也加到配置里:

;; 可选:绑定快捷键,示例为C-c r c 触发检查,C-c r f 触发修复
(global-set-key (kbd "C-c r c") 'ruff-check)
(global-set-key (kbd "C-c r f") 'ruff-fix)

备注:内容来源于stack exchange,提问作者Timur Shtatland

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 15:58:01