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”
HOME=/dev/null vim -u NONE
?: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 rodzajuHOME=$(mktemp -d) vim ...
.-u NONE
? Zależy, jakie zachowanie potrzebujesz.Odpowiedzi:
Od wersji Vim 8.0.1554 (niestety jeszcze nie Neovim) możesz używać
vim --clean
. Ta metoda jest zalecana przez:help bugs
.:help --clean
dokumenty:źródło
$HOME
zmienną. Programiści Goodjob Vim. I dziękuję za odpowiedź!--clean
współpracujeneovim
teraz również z programem master ( github.com/neovim/neovim/commit/… , który ma zostać uwzględniony w wersji 0.4.0), ale nie wyklucza katalogu domowego.Jednym ze sposobów wyeliminowania plików specyficznych dla użytkownika byłoby użycie innej wartości
$HOME
. Aby nic nie można było odczytać ani zapisać na (np. Viminfo), możesz użyć/dev/null
:Spowoduje to błędy dotyczące
viminfo
, więc zamiast tego możesz utworzyć folder tymczasowy lub użyć istniejącego (jak/tmp
):Z takim
$HOME
,-u NONE
nie mogą być potrzebne, w zależności od tego, co administrator dodaje się do całego systemuvimrc
. Na przykład, na wszystkich systemach laboratoryjnych I zarządzają dodałem/etc/vim/vimrc.local
(pozyskiwane domyślnie zapakowanej Vima/etc/vim/vimrc
), które posiadanocompatible
,syntax
itp, zestaw, afiletype on
także.źródło
Nie potrafię odpowiedzieć na wiele z tego, ale nie wspomniałem o jednym punkcie i odpowiadam na interpretację tego, co jest w tytule
niektórzy sugerowali
vim -u NONE
lubvim -u NORC
to jest pod pewnymi względami trochę więcej boso niż po prostu brak pliku vimrc. Kiedy piszę „i”, nie mówi „wstaw”. Możesz chcieć, aby nadal mówił „wstaw”. Jeśli zacząłeś vim z pustym plikiem vimrc, wyświetli się wstawka
to dlatego, że vim najpierw ładuje domyślną konfigurację.
Możesz wskazać vimowi ten domyślny plik, aby uzyskać efekt pustego pliku vimrc. Sprawdź, czy masz
/etc/vim/vimrc
i możesz to zrobićvim -u /etc/vim/vimrc
na OSX, domyślnym plikiem jest/usr/share/vim/vicmrc
źródło
vim --clean
się @quemeraiscdefaults.vim
. Ta odpowiedź odnosi się do vimrc systemu (patrz:help system-vimrc
.), Który moim zdaniem nie jest załadowanyvim --clean
.:help defaults.vim
), może być lepsza zmiana sformułowaniadefault config
nasystem vimrc
w tej odpowiedzi. Lub jeszcze lepiej, omów oba w odpowiedzi!Z Vim-FAQ 2.5 :
źródło
ensure that none of the behaviour I'm seeing is caused by user config
- wygląda na to, że próbujesz zrobić dokładnie to , co wyjaśniono w tym FAQ. Przeczytałem ponownie twoje pytanie i nadal nie rozumiem, z jakich powodów wspomniałeś.runtimepath
ustawienia.runtimepath
? Wygląda na domyślną dla tej opcji, jak wyjaśniono w:help rtp
. Jak ta wartość wpływa na twój test?