1

Я хотел бы настроить Bash для запуска определенной команды перед запуском каждой командной строки, которую я ввожу в командной строке. В частности, я бы хотел сказать Vim (который работает в другом терминале) записать все открытые буферы, потому что в моем рабочем процессе, если что-то не сохранено, когда я покидаю Vim, это ошибка.

Есть ли вариант для этого в Bash? Если нет, есть ли опция в Zsh?

(Существует решение на основе readline, которое в некоторой степени соответствует этой проблеме в другом вопросе, но выглядит немного странно. Это будет в крайнем случае.)

2 ответа2

2

Для этого вы можете использовать «precmd» в zsh.

Возможно, вы захотите настроить резервное копирование в Vim, потому что делать подобные вещи в precmd мне не подходит.

0

Я сделал аналогичные вещи, используя псевдо-суб-оболочку с использованием встроенного чтения следующим образом:

#!/bin/sh
#public domain fake shell template
while read -p "$PS1" CMD; do
   case "$CMD" in
      *bad_case*|*another_bad_case*)echo bad command: user info logged etc..;;
      *)<your_command_here>
         eval "$CMD";;
   esac
done

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