Ich möchte Vim ganz einfach in einem privaten Modus starten können. Definieren wir einen privaten Modus als einen, der diesen Befehlssatz verwendet:
set history=0
set nobackup
set nomodeline
set noshelltemp
set noswapfile
set noundofile
set nowritebackup
set secure
set viminfo=""
Lassen Sie mich wissen, ob Sie zusätzliche Befehle finden, die für den privaten Modus geeignet sind.
Der Punkt ist, dass ich mir keine kurze und einfache Möglichkeit vorstellen kann, Vim mit diesem Setup zu starten.
Hier sind einige Ideen, die ich mir ausgedacht habe:
Laden Sie .vimrcprivate anstelle von .vimrc
Sie können einfach alle erforderlichen Befehle in .vimrcprivate einfügen und Vim folgendermaßen starten:
vim -u .vimrcprivate
Eine
Private()
Funktion definieren und aufrufenEine andere Idee ist, Ihrem .vimrc einen Code wie diesen hinzuzufügen:
function Private() " set of commands here endfunction
und dann können Sie Vim in einem privaten Modus wie folgt starten:
vim -c 'call Private()'
Verwenden Sie eine Variable, um die Einrichtung Ihrer Befehle auszulösen
Es ist der zweiten Lösung ziemlich ähnlich. Einfach hinzufügen
if exists('privatemode') " set of commands here endif
auf deine .vimrc und starte dann Vim mit
vim -c 'let privatemode=1'
Das ist weder schlau noch kurz.
Fügen Sie Ihrer .bashrc-Datei (oder jeder anderen. * Rc-Datei, die Ihre Shell verwendet) einen Alias hinzu.
Beispielsweise:
alias vimprivate="vim +\"set history=0\" +\"set nobackup\" +\"set nomodeline\"\ +\"set noshelltemp\" +\"set noswapfile\" +\"set noundofile\"\ +\"set nowritebackup\" +\"set secure\" +\"set viminfo=\"\"\""
Das ist schrecklich. Es gefällt mir nicht
Verwenden Sie eine Umgebungsvariable
Einfach ausführen
VIM_PRIVATE=1 vim
und hinzufügenif $VIM_PRIVATE " set of commands here endif
zu Ihrer .vimrc.
Etwas Magie (aus einem Kommentar von Carpetsmoker in diesem Thread )
Carpetsmoker sagt in diesem Kommentar, dass
Ich würde nicht empfehlen, eine separate vimrc-Datei zu verwenden, da dies so leicht zu vergessen ist. So etwas wie dieses AutoCMD: Sollte
au BufRead * if &cryptmethod != "" | setlocal nobackup noundofile ... | endif
die Magie für Sie tun, und es ist unmöglich zu vergessen.Allerdings habe ich keine Ahnung, wie diese Magie funktioniert noch .
Hast du eine Idee?
Die perfekte Lösung wäre vim -private
oder vim +Private
aber:
- Ich bin mir ziemlich sicher, dass Sie keine benutzerdefinierten Befehlszeilenoptionen wie hinzufügen können
-private
. - Wenn es darum geht, konnte
+Private
ich es nicht online finden.
command! Private set history=0 nobackup secure ...
und ihn dann über die Shell mit aufrufenvim +'Private'
. In Bezug auf den letzten von Ihnen erwähnten Autobefehl wird beim Lesen eines Puffers geprüft, ob der Wert der'cryptmethod'
Option oder'cm'
für die Kurzversion nicht leer ist. Diese Option steuert die Verschlüsselungsmethode, mit der der Puffer verschlüsselt wird, wenn er mit dem Befehl Ex in eine Datei geschrieben wird:X
. Wenn die Option nicht leer ist, richtet der Autobefehl verschiedene Optionen ein.vim -Nu .vimrcprivate
.alias vimprivate='vim -u .vimrcprivate'
etc.v:progname == "vimp"
Ihre Einstellungen für den privaten Modus zu testen und, wenn dies wahr ist, auszuführen. Sehen:help v:progname
.Antworten:
Nun, ein bisschen verspätet, aber um zu antworten:
Meine allgemeine Idee war, dass Sie immer den "privaten Modus" starten möchten, wenn Sie eine verschlüsselte Datei verwenden. Dieser automatische Befehl erledigt dies für Sie:
Grundsätzlich wird jedes Mal, wenn eine Datei von der Festplatte gelesen wird, überprüft, ob die
key
Einstellung festgelegt ist (hier wird Ihre Passphrase gespeichert), und wenn dies der Fall ist, werden Ihre Einstellungen festgelegt. Siehe:help autocommand
für einen allgemeinen Überblick darüber , wie automatische Befehle funktionieren.Der Vorteil dabei ist, dass man nicht vergessen kann, es zu benutzen.
Natürlich muss die Datei verschlüsselt sein. Ist dies nicht der Fall, wird nichts unternommen. Aber nicht alles ist verloren, wir können einen Dateinamen verwenden, um anzuzeigen, dass eine Datei privat ist, zum Beispiel:
Würde alle Dateien, die mit "" enden,
.private
als solche markieren .Wenn Sie Dateien zufällig im "privaten" Modus öffnen möchten, würde ich die Verwendung eines einfachen Shell-Alias empfehlen, z.
Und
~/.vim/private
würde enthalten:Warum nicht
-u
? Nun, auf diese Weise haben Sie Ihre eigenen Einstellungen und die "privaten" Einstellungen. Sie können die beiden auch kombinieren mit:quelle
Nach Vim - Dokumentation (
:help -c
) kann es nur maximal 10 sein+{command}
,-c {command}
und-S {file}
Option Argumente kombiniert werden, wenn Vim starten, und sie ausführen _after_ die erste Datei gelesen wird.Mit dieser
--cmd {command}
Option können weitere 10 Befehle ausgeführt werden, bevor eine vimrc-Datei verarbeitet wird. Beachten Sie jedoch, dass alle Einstellungen von vimrc überschrieben werden können.Daher ziehe ich es vor, die Vim-Optionen frühzeitig festzulegen und Umgebungsvariablen oder Skriptlogik zu vermeiden. Plugins können auch verdorbene Dinge tun, daher ist es besser, keine zu laden.
Die sicherste Aufrufmethode, die ich mir
~/.bashrc
vorstellen kann, ist die Verwendung von Aliasen in einer einfachen und genauen vimrcprivate-Datei:quelle