Я использую -xопцию в vim для шифрования файла. Я читаю эти файлы гораздо чаще, чем пишу, поэтому я всегда использую cat, а затем вспоминаю, что он зашифрован из-за того, что он показывает .. Итак, я должен использовать vim, ввести пароль и затем выйти, используя :q..
Есть ли способ использовать cat (или другую команду, конечно, где-то передавая мой пароль) и просто распечатать / получить содержимое? Или, может быть, есть только опция vim, которая только печатает содержимое без входа в редактор?
Есть сценарий оболочки, связанный с Vim, который настраивает его на поведение, аналогичное меньшему количеству пейджеров. Он находится в "$ VIMRUNTIME / macros / less.sh" и использует скрипт "$ VIMRUNTIME / macros / less.vim". Смотрите ": помогите меньше". К сожалению, для выхода по-прежнему требуется нажать клавишу `q` (без`: `).
8bittree 8 лет назад
0
Попробуйте открыть [vimdecrypt] с открытым исходным кодом (https://github.com/gertjanvanzwieten/vimdecrypt).
harrymc 8 лет назад
2
2 ответа на вопрос
5
Achilleas
Это не элегантное решение - оно быстрое и грязное - но оно работает с отдельными файлами, и вы можете использовать его как сценарий оболочки.
Это последовательность из трех команд, которые выполняют следующее:
Откройте файл в vim (режим только для чтения): vim -R
Сохраните файл в виде открытого текста и выйдите: -c ":set key= | sav $.plain | q
Инструмент командной строки для расшифровки файлов, зашифрованных vim-blowfish.
Начиная с версии 7.3, vim предлагает мощное встроенное шифрование / дешифрование blowfish, что для определенных целей более удобно, чем фильтрация через gnupg. К сожалению, полученные файлы могут быть прочитаны только vim, что затрудняет их использование в пакетной обработке или написании сценариев. Также долговечность зашифрованных данных является проблемой, если для разблокировки требуется программа с зависимостями и размером vim.
Vimdecrypt извлекает два соответствующих файла из исходного кода vim, blowfish.c и sha256.c, и объединяет их в простой инструмент командной строки. Данные читаются из файла, расшифрованные данные записываются на стандартный вывод.
vimdecrypt path_to_data
Пароль получен через GNU getpass, который не мешает перенаправлению stdin / stdout.
Система настройки Vim полностью удалена, что могло нарушить поддержку других платформ, кроме 32-разрядной версии i386, на которой она была разработана. Поскольку два соответствующих файла взяты из проекта vim без изменений, восстановление поддержки на других платформах должно быть тривиальным путем исправления заголовка vim.h.
Я пробовал это, но это бросает меня "ввод должен быть зашифрованным VIM-файлом". Я думаю, что, возможно, не поддерживает более новые версии или vim, или, возможно, это проблема метода шифрования, используемого в моем файле?
Pablo Matias Gomez 8 лет назад
0
Я вижу, что волшебство, объявленное в этом сценарии, является `magics = None, b'VimCrypt ~ 02! ', B'VimCrypt ~ 03!'`, И я проверил мой файл, и он начинается с `VimCrypt ~ 01!` :(
Pablo Matias Gomez 8 лет назад
0
VimCrypt 01 - это крипта PZKIP, а не Blowfish / Blowfish2. Можно было создать нечто подобное, взяв crypt_zip.c из дистрибутива vim и добавив поддержку в vimdecrypt.c для вызова crypt_zip_init и crypt_zip_encode вместо вариантов blowfish. Я почти соблазн сделать это сам.
ssnobody 8 лет назад
0
Вы используете старое шифрование на основе pkzip (которое не работает, но по-прежнему используется по умолчанию в целях совместимости), а не новую (начиная с Vim 7.3) систему на основе blowfish. Я знаю, что blowfish - это VimCrypt ~ 02, и я полагаю, что blowfish2 - это VimCrypt ~ 03. Вы можете преобразовать свое шифрование в более сильный blowfish или blowfish2, как описано выше (http://vim.wikia.com/wiki/Encryption), и тогда vimdecrypt, вероятно, подойдет вам.
harrymc 8 лет назад
2
@harrymc Спасибо! это сработало отлично. Вот ваша награда.
Pablo Matias Gomez 8 лет назад
0