Jak mogę stworzyć własny schemat kolorów?

16

Jakie pliki muszę utworzyć? Co powinno być w tych plikach? Czy jest gdzieś domyślny plik colorscheme, którego mogę używać i odpowiednio zmieniać wartości kolorów?

dkns
źródło

Odpowiedzi:

15

Lokalizacje Colorscheme

Po pierwsze, Vim szuka w swoich folderach wykonawczych colorskatalogu. Oto miejsce, w którym powinny być przechowywane wszystkie schematy kolorów ( :help 'runtimepath')

Oznacza to, że będziesz potrzebować jednego pliku, który znajduje się w ~/.vim/colorsfolderze. Domyślne schematy kolorów znajdują się w $VIMRUNTIME/colors, gdzie $VIMRUNTIMEjest zwykle /usr/share/vim/vim74lub w /usr/local/share/vim/vim74katalogach, w zależności od sposobu instalacji Vima (zamień vim74 na vim73 dla Vima w wersji 7.3)

Teraz przejdź do części zabawy.

Tworzenie schematu kolorów

Aby rozpocząć tworzenie własnego schematu kolorów, zdecydowanie zalecamy przyjrzenie się domyślnym schematom kolorów i eksperymentowanie z ich modyfikacją.

Więc skopiuj domyślny schemat kolorów z $VIMRUNTIME/colorsfolderu do ~/.vim/colorsfolderu. Nazwij to coś, co odróżnia się od domyślnej nazwy schematu kolorów. Więc jeśli skopiowałeś desertschemat kolorów dostarczany domyślnie z Vimem, nazwij plik jako default_mod.vimlub coś w tym celu. Otwórz plik colorscheme i zmień, let g:colors_nameaby wyróżniał się również od domyślnego pliku colorscheme. Zgodnie z konwencją powinna być taka sama jak nazwa pliku colorscheme.

W colorscheme, wszystko co musisz zrobić, to dać kolory ctermbg, ctermfg, guibg, guifg(dla terminala tle, na pierwszym planie, GUI terminala tle, GUI kolory pierwszego planu) odpowiednio dla różnych zbudowany w grupach świateł. Aby sprawdzić listę grup wyróżnień, które możesz zmodyfikować, sprawdź :help highlight-default. Opcjonalnie możesz także użyć atrybutów ctermi, guiaby określić, że chcesz wyróżnić grupę wyróżnień pogrubioną lub kursywą.

Na przykład ustawi to zielony kolor dla ciągu:

highlight String ctermbg=NONE ctermfg=107 guibg=NONE guifg=#95B47B

Możesz także użyć linków wyróżnienia, aby połączyć grupę wyróżnień z inną grupą. Jest to przydatne, jeśli chcesz, aby dwie grupy wyróżnień miały takie same kolory.

Na przykład możesz połączyć diffAddedgrupę wyróżnień z grupą wyróżnień Ciąg zdefiniowaną powyżej:

highlight link diffAdded String

Akshay
źródło
Jeśli po prostu skopiuję jeden z plików colorscheme.vim, a następnie umieszczę go w osobnym folderze, czy będę mógł go ponownie użyć na innych komputerach? Np. Jeśli umieszczę go w repo na githubie, czy będę mógł go po prostu sklonować lub włączyć w jednym z menedżerów wtyczek?
dnns
@dkns, Tak, dokładnie. Na przykład możesz nazwać swój schemat kolorów jako „dkns_colorscheme.vim”, umieścić go w katalogu kolory /, a następnie przekazać go do Github. Jeśli masz zainstalowanego menedżera wtyczek, klonowanie tego repozytorium sprawi, że Vchem będzie mógł używać colorcheme.
akshay
Inne pytanie. Nie jestem pewien, czy powinienem opublikować go tutaj jako komentarz lub zadać inne ogólne pytanie. Jak znaleźć wartości kolorów dla Cterm? Chciałbym, aby ten motyw wyglądał tak samo na GUI i terminalu, ale nie wiem, jak przekonwertować wartości szesnastkowe na wartości cterm.
dn
1
@dkns Ponieważ kolory terminali są w dużej mierze zależne od palety kolorów używanej w emulatorze terminali, jest to dość trudne. Kiedy tworzyłem swój schemat kolorów, pomocne okazało się wyświetlenie każdego z 256 kolorów. Używam tego małego skryptu w folderze bin. Możesz po prostu użyć próbnika kolorów, aby następnie wybrać kolory, aby zapewnić te same kolory GUI i Cterm. Chciałbym przejść od cterm-> gui, a nie na odwrót, ponieważ jest więcej kolorów w gui vim. Mam nadzieję, że to pomaga.
akshay,
7

Sprawdź strony takie jak Vivify i Villustrator . Zasadniczo umożliwiają graficzne tworzenie lub modyfikowanie schematu, a następnie pobieranie niezbędnych plików.

Collin Peters
źródło
0

Istnieje kilka narzędzi, dzięki którym można to zrobić automatycznie:

  • vivify : dość złożony, musisz ręcznie wybrać każdy kolor dla każdej pojedynczej grupy wyróżnień.
  • vimcolors.org : bardzo prosty i łatwy. Wystarczy wybrać kilka kolorów, a automatycznie wygeneruje schemat.
pablopunk
źródło
0

Innym doskonałym narzędziem jest RNB firmy romainl, który korzysta z ERB . ERB (Embedded RuBy) to funkcja Ruby, która umożliwia generowanie tekstu z szablonów.

Korzystanie z tego narzędzia jest więc bardzo proste: najpierw musisz zdefiniować różne zmienne odpowiadające nomenklaturze twojego schematu kolorów i oczywiście jego rzeczywistej zawartości (jak powinny wyglądać kolory, które grupy chcesz użyć itp.) całkiem prosto, ponieważ autor napisał wiele komentarzy, aby ci pomóc. Następnie wystarczy podać niestandardowy szablon do erb, a narzędzie wygeneruje odpowiednie pliki.

statox
źródło