Uniemożliwiaj Vimowi rejestrowanie zdarzeń dla niektórych rodzajów plików

12

Aby dodać do tego pytania.vimrc dotyczącego przepływu stosów , co należy włożyć, aby zapewnić „prywatną edycję” niektórych rozszerzeń plików (np. .gpgPlików).

Bez uszczerbku dla skuteczności sesji nie należy zapisywać żadnych informacji o wykonanej pracy, w tym rejestrów, historii wyszukiwania, historii poleceń, widoków, zamian itp. W przypadku gpgplików można użyć tej wtyczki vim , ale oprócz edytowania wtyczki, w jaki sposób czy rozszerzyć omawiane pomysły na dowolne typy plików?

Prawdopodobnie skorzystamy z następujących poleceń,

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

ale oprócz odpowiedniego stwierdzenia warunkowego, czego brakuje?

Ponadto, czy istnieje sposób, aby Vimscript tworzył tablicę rozszerzeń plików, a następnie oceniał, czy bieżący typ pliku znajduje się w tablicy?

HAL 9001
źródło
6
@Carpetsmoker Myślę, że to pytanie jest szersze. Autor nie tylko pyta, jak ustawić parametry w buforze określonego rodzaju pliku, ale do pewnego stopnia, jakie parametry ustawić, aby zapewnić prywatność. To z pewnością nie jest oczywiste lub zebrane razem w centralnym miejscu, więc myślę, że to dobre pytanie.
Andrew Ferrier

Odpowiedzi:

6

Oto pełna lista ustawień, które należy dodać, .vimrcjeśli chcesz zapobiec wyciekom poufnych plików.

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

Zalecam utworzenie nowego pliku konfiguracyjnego o nazwie .vimrc_securei uruchomienie Vima z vim -u ~/.vimrc_secure(lub utworzenie skryptu / aliasu), aby edytować swój poufny plik. To zminimalizuje ryzyko złośliwej wtyczki lub funkcji buggy.

Ben
źródło
Podoba mi się to w tym sensie, że .vimrc_securejest ono niezależne od .vimrc(ponieważ robienie tego, co mówisz, pozwala użytkownikowi :e private file[w ten sposób również trzymać plik poza historią powłoki]), ale używanie w vim -u ~/.vimrc-incognitoogóle nie będzie źródła ~/.vimrc, prawda? Radość z prywatności nie powinna odbywać się kosztem zmniejszonego komfortu (chyba że komfort ten jest zasadniczo wadliwy poprzez złośliwą wtyczkę lub funkcję buggy). Podczas gdy należy kłaść nacisk na ryzyko niewiadomych, z pewnością musi istnieć jakiś sposób warunkowego zawinięcia rozwiązania ...
HAL 9001
1
Nie poleciłbym używania osobnego pliku vimrc z tego prostego powodu, że tak łatwo go zapomnieć. Coś takiego jak ten autocmd: au BufRead * if &key != "" | setlocal nobackup noundofile ... | endifpowinien zrobić dla ciebie magię i nie można tego zapomnieć.
Martin Tournoij,
@Carpetsmoker, o co w tym &l:cm != ""wszystkim chodzi?
Wildcard,
1
@Wildcard Ehm .... Wygląda tak, jak zamierzałem &cryptmethod, co odnosi się do tego ustawienia. Ta l:część była pomyłką (wykorzystałem moje specjalne modyfikacje do edycji komentarza). Dzięki za zwrócenie na to uwagi!
Martin Tournoij,
@Carpetsmoker, czy mógłbyś rozwinąć swój komentarz? Utworzyłem tutaj wątek: vi.stackexchange.com/questions/6195/…
Mateusz Piotrowski