Chciałbym zmodyfikować mój, .vimrc
aby odczytał wartość zmiennej z zewnętrznego pliku. W jaki sposób mogę to zrobić?
W szczególności mój przyjaciel i ja dzielimy się repozytorium git z naszymi .vim
plikami, ale istnieje kilka małych różnic w tym, czego chcemy w naszych konfiguracjach. Więc większość pliku jest wspólna, ale używamy instrukcji if, aby ustalić, czy załadować sekcje specyficzne dla użytkownika, takie jak to:
let whoami = "user2"
if whoami == "user1"
...
Po sprawdzeniu naszego wspólnego .vimrc
braku kontroli źródła, każdy z nas musi zmienić let whoami
przypisanie, aby załadować własną sekcję. Zamiast tego chciałbym zachować osobny plik, który może być inny dla każdego z nas i z którego vim załaduje tę wartość zmiennej.
Być może pod innym kątem jest to: czy vim automatycznie odczyta wszystkie pliki w moim .vim
katalogu? Jeśli tak, moglibyśmy umieścić tam dowiązanie symboliczne o nazwie username.vim i połączyć je z plikiem zewnętrznym, który byłby inny dla każdego z nas.
let whoami = ""
tuż przedsource
linią, aby jeśli nie załadował zewnętrznego pliku, zmienna istnieje i pojawia się komunikat o błędzie, który ustawiliśmy wcześniej dla zmiennej, która nie jest ustawiana.silent! source
częśćUżywanie try / catch
Od czasu zadania tego pytania wymyśliłem inny przypadek użycia do ładowania zewnętrznego pliku: poprawki specyficzne dla maszyny.
Ponieważ mogę lub nie muszę wprowadzać poprawek na danym komputerze, używam
try/catch
do załadowania zewnętrznego pliku; jeśli nie ma takiego pliku, pozwalam mu po cichu zawieść.źródło
Aby odpowiedzieć na ostatnie pytanie, pliki w
~/.vim
nie są automatycznie ładowane, ale wszystkie pliki~/.vim/plugin
są.źródło
after
,autoload
)Możesz sprawić, aby ~ / .vimrc załadował inny plik za pomocą
:source
polecenia. Na przykład, możesz umieścić swoje unikalne polecenia w ~ / .myvimrc i załadować jeLub, tak jak myślałeś, możesz umieścić swoje imię w tym pliku w następujący sposób:
a następnie umieść to w swoim ~ / .vimrc:
Zamiast wstawiać swoje imiona w plikach, możesz użyć $ USER zgodnie z sugestią akiry lub ustawić
user
za pomocąwhoami
:Funkcja substitute () jest potrzebna, ponieważ na wyjściu system () zwykle znajduje się końcówka „\ n”.
źródło
whoami
nie działa wwhoami
spawnuje nowy proces, kiedy otworzysz swój edytor, powinien on być szybki i nie (bezużyteczny) wykonywać pracę kilka razy.nazwa zalogowanego użytkownika jest dostępna w zmiennej środowiskowej $ USER. możesz łatwo uzyskać dostęp do tej zmiennej:
więc po prostu użyj
w vimrc i wprowadź ustawienia specyficzne dla użytkownika
lub jakąkolwiek nazwę użytkownika
źródło
Nie jestem pewien, jak wygląda twój vimrc, więc może nie być to wykonalne, ale jeśli są duże części, które ty i twój przyjaciel udostępniacie, możesz podzielić je na osobne wtyczki. Możesz dodać pliki do
~/.vim/plugin
katalogu, aby były ładowane podczas uruchamiania. (Są ładowane w kolejności alfabetycznej - użyj,:scriptnames
aby sprawdzić).W ten sposób każdy może mieć vimrc, który jest całkowicie unikalny, ale wszystkie wspólne konfiguracje znajdują się we wtyczkach. Jeśli podzielisz je logicznie, ułatwi to dzielenie się nimi także z innymi.
źródło