У меня FCEDIT установлен vim. Если я назову команду fc, она откроет vim с временным файлом, и содержимое этого файла будет последней выполненной командой из истории.
Проблема в том, что даже если я выйду без сохранения, команда все равно будет выполнена. Например:
$ printf "\nHelloAskubuntu\n\n"
HelloAskubuntu
$ fc # opens vim, I do :q!
printf "\nHelloAskubuntu\n\n"
HelloAskubuntu
Как этого избежать?
Это происходит потому, что содержимое уже сохранено во временном файле /tmp/bash-fc-*.
Рабочий подход, который я мог бы проверить в Ubuntu 16.04.
Создать прокси-команду (новый редактор)sudo vim /usr/local/bin/vim2
Сделайте его открытым в файле vim, затем выпустите его на диск. Таким образом, содержимое находится только в vim, если вы его не сохранили, fc ничего не выполнит #!/bin/sh
sh -c "sleep 1; echo -n ''>$1" &
vim $1
Fix permission sudo chmod +x /usr/local/bin/vim2
Установите FCEDIT на vim2 или временно проверите export FCEDIT=vim2 Единственная надежда состоит в том, что вы не быстрее меня, чтобы закрыть vim до 1 секунды.