git status --porcelain | sed -ne 's/^ M //p' | tr '\n' '\0' | tr -d '"' | xargs -0 vim
Команда git status --porcelain позволяет получить список измененных файлов в репозитории Git с использованием формата --porcelain, который выводит результат в компактном и машиночитаемом виде.
Команда sed -ne 's/^ M //p' фильтрует только измененные файлы из вывода git status, удаляя строку » M » в начале каждого пути к файлу.
Команда tr '\n' '\0' заменяет символы новой строки на символы нуля. Это необходимо для передачи списка файлов с использованием символа нуля в качестве разделителя, чтобы избежать проблем с пробелами и другими специальными символами в именах файлов.
Команда tr -d '"' удаляет все двойные кавычки из строк путей к файлам.
Наконец, команда xargs -0 vim вызывает редактор Vim и передает список файлӑ в качестве аргументов, открывая все измененные файлы в Vim для редактирования.
Альтернативным способом может быть использование команды git diff --name-only вместо git status --porcelain, чтобы получить список измененных файлов без форматирования --porcelain.
