Chcę móc łatwo uruchomić Vima w trybie prywatnym. Zdefiniujmy tryb prywatny jako taki, który wykorzystuje ten zestaw poleceń:
set history=0
set nobackup
set nomodeline
set noshelltemp
set noswapfile
set noundofile
set nowritebackup
set secure
set viminfo=""
Daj mi znać, jeśli możesz wymyślić jakieś dodatkowe polecenia odpowiednie dla trybu prywatnego.
Chodzi o to, że nie mogę wymyślić żadnego krótkiego i łatwego sposobu na rozpoczęcie Vima z tą konfiguracją.
Oto kilka pomysłów, które wpadłem na pomysł:
Załaduj .vimrcprivate zamiast .vimrc
Możesz po prostu umieścić wszystkie niezbędne polecenia w .vimrcprivate i uruchomić Vima w następujący sposób:
vim -u .vimrcprivate
Zdefiniuj i wywołaj
Private()
funkcjęKolejny pomysł dodaj taki kod do swojego .vimrc:
function Private() " set of commands here endfunction
i wtedy możesz uruchomić Vima w trybie prywatnym, takim jak ten:
vim -c 'call Private()'
Użyj zmiennej, aby uruchomić konfigurację swoich poleceń
Jest dość podobny do drugiego rozwiązania. Poprostu dodaj
if exists('privatemode') " set of commands here endif
do twojego .vimrc, a następnie uruchom Vima używając
vim -c 'let privatemode=1'
który nie jest ani mądry, ani krótki.
Dodaj alias do pliku .bashrc (lub dowolnego innego pliku. * Rc używanego przez powłokę)
Na przykład:
alias vimprivate="vim +\"set history=0\" +\"set nobackup\" +\"set nomodeline\"\ +\"set noshelltemp\" +\"set noswapfile\" +\"set noundofile\"\ +\"set nowritebackup\" +\"set secure\" +\"set viminfo=\"\"\""
co jest okropne. Nie podoba mi się
Użyj zmiennej środowiskowej
Po prostu uruchom
VIM_PRIVATE=1 vim
i dodajif $VIM_PRIVATE " set of commands here endif
do twojego .vimrc.
Trochę magii (z komentarza Carpetsmoker w tym wątku )
Carpetsmoker mówi w tym komentarzu, że
Nie polecałbym używania osobnego pliku vimrc, z prostego powodu, że tak łatwo go zapomnieć. Coś takiego jak ten autocmd:
au BufRead * if &cryptmethod != "" | setlocal nobackup noundofile ... | endif
powinien zrobić dla ciebie magię i nie można tego zapomnieć.Jednak nie mam pojęcia jak to działa magia jeszcze .
Masz jakiś pomysł?
Rozwiązaniem idealnym byłoby vim -private
albo vim +Private
jednakże:
- Jestem pewien, że nie możesz dodać własnych niestandardowych opcji wiersza poleceń, takich jak
-private
. - jeśli chodzi o
+Private
to, nie mogłem go znaleźć w Internecie.
command! Private set history=0 nobackup secure ...
a następnie wywołać je z powłoki za pomocąvim +'Private'
. Jeśli chodzi o ostatnią komendę, o której wspomniałeś, podczas odczytywania bufora sprawdza się, czy wartość'cryptmethod'
opcji, czy'cm'
w przypadku krótkiej wersji, nie jest pusta. Ta opcja kontroluje metodę szyfrowania używaną do szyfrowania bufora, gdy jest on zapisywany do pliku za pomocą polecenia Ex:X
. Jeśli opcja nie jest pusta, wówczas automatyczne polecenie konfiguruje różne opcje.vim -Nu .vimrcprivate
.alias vimprivate='vim -u .vimrcprivate'
itd.v:progname == "vimp"
i, jeśli to prawda, wykonanie ustawień trybu prywatnego. Zobaczyć:help v:progname
.Odpowiedzi:
Cóż, trochę spóźniony, ale w odpowiedzi na:
Moją ogólną ideą było to, że zawsze chcesz uruchomić „tryb prywatny”, jeśli używasz zaszyfrowanego pliku, więc ta komenda automatyczna zrobi to za Ciebie:
Zasadniczo za każdym razem, gdy plik jest odczytywany z dysku, sprawdza, czy
key
ustawienie jest ustawione (w tym miejscu jest przechowywane hasło), a jeśli tak, to ustawia ustawienia. Zobacz:help autocommand
ogólny przegląd działania automatycznych poleceń.Zaletą tego jest to, że nie można zapomnieć o użyciu.
Oczywiście wymaga to zaszyfrowania pliku. Jeśli tak nie jest, nic się nie dzieje. Ale nie wszystko zostało utracone, możemy użyć nazwy pliku, aby wskazać, że plik jest prywatny, na przykład:
Oznaczałoby wszystkie pliki kończące się
.private
jako takie.Jeśli chcesz losowo otwierać pliki w trybie „prywatnym”, polecam użycie prostego aliasu powłoki, np .:
I
~/.vim/private
zawierałby:Dlaczego nie
-u
? W ten sposób masz własne ustawienia i ustawienia „prywatne”. Możesz także połączyć te dwa z:źródło
Zgodnie z dokumentacją Vima (
:help -c
) może być maksymalnie 10+{command}
,-c {command}
a-S {file}
argumenty opcji łączone przy uruchamianiu Vima, a wykonują one _ po_ odczytaniu pierwszego pliku.Ta
--cmd {command}
opcja umożliwia wykonanie dodatkowych 10 poleceń przed przetworzeniem dowolnego pliku vimrc, ale należy pamiętać, że vimrc może zastąpić wszelkie ustawienia.Dlatego wolę ustawić opcje Vima wcześniej i unikać jakiejkolwiek potrzeby zmiennych środowiskowych lub logiki skryptowej. Ponadto wtyczki mogą robić podejrzane rzeczy, więc lepiej nie ładować żadnych.
Najbezpieczniejszą metodą wywoływania, jaką mogę wymyślić, jest użycie aliasów
~/.bashrc
z prostym i konkretnym plikiem vimrcprivate:źródło