Emacs 中与这个 Vim 命令等效的命令是运行我的测试吗?

Emacs 中与这个 Vim 命令等效的命令是运行我的测试吗?

我目前正在使用 Emacs 并尝试使用它进行 Rails 开发,有一件事我经常在 Vim 中做,我想知道 Emacs 中是否存在等效的东西,或者是否存在替代的工作流程来实现我需要的行为。

Vim 中的命令是

:map ;t :!rspec --no-color %<cr>

本质上,这映射了一个组合键以在当前缓冲区所代表的文件上运行 bash/shell 命令(%在运行时扩展为文件名,<cr>末尾只是一个回车符来执行命令)。

当我需要时,我会映射各种随机的小命令,我真的很怀念这种方法的即时性。

我怎样才能实现类似的事情?

答案1

此函数提示输入命令并在当前缓冲区文件上运行该命令。如果没有文件与当前缓冲区关联,则会出错

(defun shell-command-on-buffer-file ()
 "prompts for a command and executes that command on to the associated 
 file of current buffer. if no buffer is associated gives an error"
  (interactive)
  (or (buffer-file-name) (error "no file is associated file to this buffer"))
  (let* ((my-cmd (read-shell-command "Command to run: "))
         (cmd-to-run (concat my-cmd " " (buffer-file-name))))
   (shell-command cmd-to-run)))

和往常一样,emacs 会保存你迄今为止输入的命令的历史记录,可以使用 Mp,Mn 访问这些命令

相关内容