Cegah Vim dari merekam peristiwa untuk tipe file tertentu

12

Untuk menambah pertanyaan stackoverflow ini , apa yang harus dimasukkan .vimrcuntuk memastikan 'pengeditan pribadi' ekstensi file tertentu (misalnya .gpgfile).

Tanpa mengurangi keefektifan sesi, tidak ada info tentang pekerjaan yang dilakukan yang harus disimpan, termasuk register, riwayat pencarian, riwayat perintah, tampilan, swap, dll. Untuk gpgfile, seseorang dapat menggunakan plugin vim ini , tetapi selain mengedit plugin, bagaimana caranya satu memperluas ide-ide yang dibahas ini ke jenis file yang sewenang-wenang?

Kami mungkin akan menggunakan perintah berikut,

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

tetapi selain pernyataan kondisional yang sesuai, apa yang hilang?

Lebih lanjut, apakah ada cara dengan Vimscript untuk membuat array ekstensi file dan kemudian mengevaluasi apakah tipe file saat ini dalam array?

HAL 9001
sumber
6
@Carpetsmoker Saya pikir pertanyaan ini lebih luas. Penulis tidak hanya bertanya bagaimana mengatur parameter dalam buffer dari tipe file tertentu, tetapi sampai batas tertentu parameter apa yang harus diatur untuk memastikan privasi. Itu tentu tidak jelas atau dikumpulkan bersama di tempat sentral, jadi saya pikir itu membuat pertanyaan yang bagus.
Andrew Ferrier

Jawaban:

6

Berikut adalah daftar lengkap pengaturan yang harus ditambahkan ke Anda .vimrcjika Anda ingin mencegah kebocoran file sensitif.

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

Saya sarankan Anda membuat file konfigurasi baru yang disebut .vimrc_securedan menjalankan Vim dengan vim -u ~/.vimrc_secure(atau membuat skrip / alias) ketika Anda ingin mengedit file sensitif Anda. Ini akan meminimalkan risiko plugin jahat atau fitur buggy.

Ben
sumber
Saya suka ini dalam arti yang .vimrc_secureindependen dari .vimrc(melakukan seperti yang Anda katakan kemudian memungkinkan pengguna untuk :e private file[sehingga menjaga file dari sejarah shell juga]), tetapi menggunakan vim -u ~/.vimrc-incognitotidak akan sumber ~/.vimrcsama sekali, benar? Kegembiraan privasi tidak harus datang dengan mengorbankan kenyamanan berkurang (kecuali kenyamanan secara mendasar cacat melalui plugin jahat atau fitur kereta). Meskipun harus ada penekanan pada risiko yang tidak diketahui, pasti, harus ada beberapa cara untuk membungkus solusi Anda secara kondisional ...
HAL 9001
1
Saya tidak akan merekomendasikan menggunakan file vimrc terpisah, karena alasan sederhana sehingga sangat mudah untuk dilupakan. Sesuatu seperti autocmd ini: au BufRead * if &key != "" | setlocal nobackup noundofile ... | endifharus melakukan keajaiban untuk Anda, dan tidak mungkin untuk dilupakan.
Martin Tournoij
@Carpetsmoker, ada apa dengan ini &l:cm != ""?
Wildcard
1
@ Kartu Memori Ehm .... Sepertinya saya maksudkan &cryptmethod, yang merujuk ke pengaturan itu. Bagian l:itu kesalahan (saya menggunakan kekuatan mod khusus saya untuk mengedit komentar saya). Terima kasih telah menunjukkan itu!
Martin Tournoij
@Carpetsmoker, bisakah Anda menguraikan komentar Anda? Saya telah membuat utas di sini: vi.stackexchange.com/questions/6195/…
Mateusz Piotrowski