Aby upewnić się, że moja osobista konfiguracja nie ma wpływu na zachowanie, chcę uruchomić Vima w sposób, który ignoruje wszystkie moje pliki konfiguracyjne instalowane przez użytkownika, tak jakby Vim został świeżo zainstalowany po raz pierwszy i użytkownik go uruchomił natychmiast.
Jest to rozwiązane w FAQ, które sugerują, że odpowiedzią jest uruchomienie Vima za pomocą następującego polecenia:
vim -u NONE -U NONE -N -i NONE
To dostaje większość drogi tam, ale runtimepath
opcja zawiera jeszcze ~/.vim
, a mianowicie, ~/.vim/after
(tak na przykład, jeśli następnie włączyć wykrywanie typu pliku i zmienić typ pliku w kodzie ~/.vim/after/syntax/the_relevant_filetype.vim
zostanie wykonana).
Mogę obejść ten konkretny problem, wywołując następujące polecenia podczas uruchamiania *:
:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after
... ale nie jestem pewien, czy:
- To niezawodne rozwiązanie: czy są to jedyne ścieżki, które mogą spowodować, że konfiguracja użytkownika zadziała? Czy jest coś jeszcze, o czym nie myślałem?
- Istnieje lepszy sposób na osiągnięcie pożądanego rezultatu.
* Używając argumentów --cmd
lub -u vimrc
powłoki, lub po prostu wpisując je ręcznie.
EDYCJA : Oto jeden konkretny przykład problemu, który próbuję rozwiązać. (Chociaż chciałbym, aby rozwiązanie rozwiązało wszelkie możliwe problemy, których jeszcze nie spotkałem.):
Utwórz plik ~ / .vim / after / ftplugin / c.vim, zawierający zawartość:
noremap i :echom "This is not default behaviour"<CR>
Teraz mamy konfigurację zainstalowaną przez użytkownika, którą chcemy zignorować. Przetestujmy rozwiązanie sugerowane w FAQ.
Uruchom Vima za pomocą polecenia:
vim -u NONE -U NONE -N -i NONE
Wpisz polecenia:
:filetype plugin on :set ft=c i
Pożądane zachowanie : Vim powinien wejść w tryb wstawiania. Tak by się stało, gdyby nie istniała żadna konfiguracja użytkownika.
Obserwowane zachowanie : Vim wypisuje „To nie jest domyślne zachowanie”
:cd ~
, Ale także domyślną lokalizacją viminfo
pliku jest $ HOME, co może powodować E138. Wydaje mi się, że utworzenie nowego, pustego katalogu i użycie go dla $ HOME może być najlepszym rozwiązaniem.
-u NONE
?
/tmp
może być lepiej, to była moja pierwsza myśl, ale potem wybrałem / dev / null jako czarną dziurę. ... lub coś w tym rodzaju HOME=$(mktemp -d) vim ...
.
-u NONE
? Zależy, jakie zachowanie potrzebujesz.
HOME=/dev/null vim -u NONE
?