Запретить Vim записывать события для определенных типов файлов

12

Чтобы добавить к этому вопросу стекопотока , что нужно добавить в него, .vimrcчтобы обеспечить «частное редактирование» определенных расширений файлов (например, .gpgфайлов).

Без ущерба для эффективности сеанса, никакая информация о проделанной работе не должна сохраняться, включая регистры, историю поиска, историю команд, представления, перестановки и т. Д. Для gpgфайлов можно использовать этот плагин vim , но помимо редактирования плагина, как бы один распространить эти обсуждаемые идеи на произвольные типы файлов?

Мы, вероятно, будем использовать следующие команды,

if <ft in privacy_ext_list>
  set noswapfile
  set noundofile
  set viminfo=
endif 

но кроме соответствующего условного утверждения чего не хватает?

Кроме того, есть ли способ с Vimscript создать массив расширений файлов и затем оценить, находится ли текущий тип файла в массиве?

HAL 9001
источник
6
@Carpetsmoker Я думаю, что этот вопрос шире. Автор не просто спрашивает, как установить параметры в буфере определенного типа файла, но в определенной степени, какие параметры необходимо установить для обеспечения конфиденциальности. Это, конечно, неочевидно или собрано в одном месте, поэтому я думаю, что это хороший вопрос.
Эндрю Ферье

Ответы:

6

Вот полный список настроек, которые следует добавить к вашим, .vimrcесли вы хотите предотвратить утечку конфиденциальных файлов.

set nobackup
set nowritebackup
set noundofile
set noswapfile
set viminfo=""
set noshelltemp
set history=0
set nomodeline
set secure

Я рекомендую вам создать новый файл конфигурации с именем .vimrc_secureи запустить Vim с vim -u ~/.vimrc_secure(или создать сценарий / псевдоним), если вы хотите редактировать свой конфиденциальный файл. Это минимизирует риск вредоносного плагина или глючной функции.

Бен
источник
Мне это нравится в том смысле, что .vimrc_secureоно не зависит от .vimrc(поскольку выполнение, как вы говорите, позволяет пользователю :e private file[таким образом не допускать файла в историю оболочки)], но использование vim -u ~/.vimrc-incognitoвообще не будет источником ~/.vimrc, правильно? Удовольствия от приватности не должны идти за счет снижения комфорта (если этот комфорт не нарушен с помощью вредоносного плагина или глючной функции). Хотя следует обратить внимание на риск неизвестных, конечно, должен быть какой-то способ условно обернуть ваше решение ...
HAL 9001
1
Я бы не рекомендовал использовать отдельный файл vimrc по той простой причине, что его так легко забыть. Что-то вроде этого autocmd: au BufRead * if &key != "" | setlocal nobackup noundofile ... | endifдолжно сделать магию за вас, и это невозможно забыть.
Мартин Турной
@Carpetsmoker, что это такое &l:cm != ""?
Wildcard
1
@Wildcard Эмм .... Похоже, я хотел &cryptmethod, что относится к этому параметру. Эта l:часть была ошибкой (я использовал свои специальные возможности для редактирования моего комментария). Спасибо что подметил это!
Мартин Турной
@Carpetsmoker, не могли бы вы пояснить свой комментарий? Я создал ветку
Матеуш Пиотровски,