2

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

Команда в Vim есть

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

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

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

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

1 ответ1

3

эта функция запрашивает команду и запускает ее в текущем файле буфера. если файл не связан с текущим буфером, выдает ошибку

(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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .