Najlepszym miejscem do przechowywania rzeczy konfiguracyjnych jest
plik .vimrc . Jednak jest pozyskiwany zbyt wcześnie, sprawdź :h startup
:
At startup, Vim checks environment variables and files and sets values
accordingly. Vim proceeds in this order:
1. Set the 'shell' and 'term' option *SHELL* *COMSPEC* *TERM*
2. Process the arguments
3. Execute Ex commands, from environment variables and/or files *vimrc* *exrc*
4. Load the plugin scripts. *load-plugins*
5. Set 'shellpipe' and 'shellredir'
6. Set 'updatecount' to zero, if "-n" command argument used
7. Set binary options
8. Perform GUI initializations
9. Read the viminfo file
10. Read the quickfix file
11. Open all windows
12. Execute startup commands
Jak widać, plik .vimrc zostanie załadowany przed wtyczkami. Jeśli go wstawisz :FindFileCache .
, wystąpi błąd, ponieważ to polecenie jeszcze nie istnieje. (Będzie istnieć po załadowaniu wtyczki w kroku 4).
Aby rozwiązać ten problem, zamiast wykonywać polecenie bezpośrednio, utwórz polecenie automatyczne. Polecenia automatyczne wykonują jakieś polecenie, gdy wystąpi zdarzenie. W tym przypadku zdarzenie VimEnter wygląda odpowiednio (z :h VimEnter
):
*VimEnter*
VimEnter After doing all the startup stuff, including
loading .vimrc files, executing the "-c cmd"
arguments, creating all windows and loading
the buffers in them.
Następnie umieść tę linię w swoim .vimrc :
autocmd VimEnter * FindFileCache .
Istnieje również opcja -c programu vim. Robię to w mojej konfiguracji tmuxp, aby Vim zaczął się od podziału pionowego:
Przynajmniej z neovimem możesz także otworzyć plik w tym samym czasie:
źródło
vim -c ':colo default' test.txt
xolox/vim-notes
i chcę mieć funkcję ryby, która otwiera Vima z nową notatką gotową do pracy.Utwórz plik o nazwie
~/.vim/after/plugin/whatever_name_you_like.vim
i wypełnij goKolejność, w jakiej skrypty są odczytywane i wykonywane w katalogach vim, jest opisana w
:help 'runtimepath'
źródło
Aby uzyskać jeszcze później niż inne odpowiedzi, ale nadal tuż po uruchomieniu, użyj licznika czasu w .vimrc. Na przykład ten kod w .vimrc czeka pół sekundy po uruchomieniu przed ustawieniem zmiennej.
(Zmienna w przykładzie to czarna lista z wtyczki YouCompleteMe. Zakładam, że wtyczka uruchamia inny proces asynchronicznie, który następnie tworzy zmienne, ale nie jest jeszcze gotowa do czasu uruchomienia vima. Zmienna nie istnieje, gdy próbuję ustaw go w .vimrc, pliku after lub w zdarzeniu VimEnter. Jest to w jakiś sposób specyficzne dla mojego systemu Windows, dokumentacja YCM mówi, że .vimrc powinno działać przy ustawianiu opcji.)
źródło
Włóż
FindFileCache
swój.vimrc
.Polecenia automatycznego ładowania są różne i nie będą działać w Twoim scenariuszu.
źródło
plugin
nie byłautoload
.