Эквивалент Emacs этой команды Vim для выполнения моих тестов?

Я использую Emacs в данный момент и экспериментирую с ним для разработки Rails, и есть одна вещь, которую я делаю довольно регулярно в Vim, и я хотел бы знать, существует ли эквивалент в Emacs или альтернативный рабочий процесс для достижения поведения, которое мне нужно.

команда в Vim

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

по существу, это сопоставляет комбинацию клавиш для запуска команды bash / shell в файле, представленном текущим буфером (% раскрывается в имя файла во время выполнения, <cr> - это просто возврат каретки в конце выполнения команды).

я отображаю все виды случайных маленьких команд, как и когда они мне нужны, и я действительно скучаю по оперативности этого подхода.

как я могу достичь чего-то подобного?

10
задан eightbitraptor
30.04.2023 8:26 Количество просмотров материала 2422
Распечатать страницу

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 сохраняет историю команд, которые вы дали до сих пор,к ним можно получить доступ с помощью M-p, M-n

3
отвечен kindahero 2023-05-01 16:14

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх