Uwaga: zawsze włączanie składni może być złym pomysłem, jeśli często edytujesz duże pliki. W dużych plikach (dziesiątki lub setki MB) wyróżnianie składni może spowodować, że vim przestanie odpowiadać przez kilka sekund, ponieważ zjada dużo procesora. Po prostu spróbuj edytować ogromny plik XML ... Oczywiście zawsze możesz to zrobić: zsynchronizuj (po odzyskaniu vima ...).
Właśnie grałem z kilkoma z nich i jest o wiele więcej do zbadania z wymienioną konfiguracją vima, ale odpowiada to moim oczekiwaniom dotyczącym rozsądnych ustawień domyślnych i przydatnych funkcji. Nie jestem pewien, w jaki sposób wiki społeczności pozwala mi głosować jako „odpowiedz”, ale cokolwiek. Dzięki!
Gareth,
17
Po pierwsze, jeśli masz więcej niż kilka maszyn, z którymi pracujesz, należy rozważyć oddanie ~/.vim/, ~/.vimrci inne przydatne pliki konfiguracyjne ( screen, swoją powłokę, itp) w systemie kontroli wersji. Wolę używać darcs- jest tani w systemach Debian (nie trzeba instalować kompilatora Haskell, wystarczy zainstalować pakiet bezpośrednio), rozproszony i ma świetne tryby interaktywne. Jeśli wiesz / lubisz git, możesz się z tym trzymać.
Moje aktualne pliki konfiguracyjne są dostępne w moim darcs repozytorium http://repo.harnir.net/. Kilka konkretnych przykładów z mojej ~/.vimrcobserwacji. Niestety, nie ma linków do skryptów itp., Ponieważ jestem nowym użytkownikiem, ale wszystkie te można znaleźć na http://vim.org/.
Niezbędne skrypty ViM dla sysadmins
podczas edytowania plików zdalnych konieczny jest skrypt kopii zapasowej. Używam cbackup.vim skrypt, który przechowuje ostatnie 10 kopii każdego pliku edytowane w centralnym katalogu i automatycznie usuwa stare - wystarczy umieścić w swoim ~/.vim/plugins/katalogu i zapomnij o tym :-)
Lista zgłoszeń pozwala szybko wyszukać FIXME, XXXa TODOtagi w bieżącym pliku, wyświetlać je i przejść do znacznika za pomocą jednego naciśnięcia klawisza. Jeśli używasz tych tagów, rozważ zainstalowanie tego
dbext jest niezbędny dla wszystkich DBA, również bardzo przydatny dla programistów pracujących z bazami danych. Pozwól nam uruchamiać zapytania, sprawdzać strukturę baz danych i tak dalej. Zasadniczo jest to front-end do narzędzi takich jak mysql, sqlite3, sqlplusi innych. Jeśli pracujesz z bazami danych, jest to koniecznością!
Pliki składniowe
Nie widziałem wielu użytecznych składni na wolności, większość plików, z którymi współpracują sysadmini, to konfiguracje /etci zwykle są dość dobrze podświetlone. W mojej ~/.vim/syntax/obecnie mam składnię kolorów CSS , co jest niesamowite (dobre również dla programistów stron internetowych), ale reszta nie jest zbyt dobrze napisana, być może zaktualizuję je w wolnym czasie. Dodatkowe pliki składniowe, które warto mieć, to: dhcpd.conf , / etc / network / interfaces , pliki konfiguracyjne nginx oraz local.cf SpamAssassin .
Przydatna wskazówka ze składnią: jeśli plik konfiguracyjny nie zostanie rozpoznany (ma dziwną nazwę, na przykład /etc/apache2/sites-enabled/some.domain.commożesz dodać poprawne rozszerzenie do jego nazwy (w tym przypadku .conf) lub dodać modeline ViM na końcu:
# vim: filetype = apache
Opcje konfiguracji ViM
Większość opcji konfiguracji jest bardzo popularna, jak set nocompatible ruleritp. Bardzo dobre opcje to:
set gdefault: odwraca gtryb w s///g- z tą opcją /gbędzie domyślnie używany, więc nie trzeba go dodawać za każdym razem - wystarczy go dodać, aby go wyłączyć
set incsearch ignorecase smartcase hlsearch: niezbędny do przeszukiwania plików - przyrostowy, pokazuje dopasowania w czasie rzeczywistym, wyszukiwanie ignoruje wielkość liter, chyba że używasz wielkich liter
set pastetoggle=<F6>: lub inny preferowany klawisz, przełącza pomiędzy trybami pastei nopaste, koniecznością, jeśli skopiujesz i wkleisz coś ze stron internetowych takich jak ServerFault :-)
set noerrorbells visualbell t_vb=: pozbywaj się irytującego dzwonka lub dzwonka wizualnego za każdym razem, gdy coś robisz;)
Funkcje, mapowania klawiatury
wklej swoją nazwę użytkownika i aktualną datę do pliku, przydatne, jeśli pracujesz w zespole, i dodawaj komentarze w plikach dotyczące tego, kto coś zmienił. Po prostu napisz xxsigi naciśnij spację, zostanie zmieniona na coś podobnego harnir 20090531. Aby działało to poprawnie z rootem (np. Wpisz swoją nazwę użytkownika zamiast root), musisz się zalogować używając sudo.
iabbrev xxsig <Esc>: r! [-n "$ SUDO_USER"] && echo "$ SUDO_USER` date '+ \% Y \% m \% d'` "\ | \ | echo "$ USER` data '+ \% Y \% m \% d'` "<CR> I <BS> <Esc> A
Wstaw komentarz „wiersze”, na przykład # -- Some title -------------------{{{1, o długości 78 znaków - naciśnij \com#w trybie normalnym i gotowe. Nastąpi automatyczne przejście do trybu Zastąp, dzięki czemu możesz dodać tytuł:
nmap \ com # O # <Esc>72A-<Esc>3A{<Esc>A1<Esc> <Home> 4 <Right> R <Space>
Można łatwo zmodyfikować go do innych systemów (komentarz ", //etc.), lub po prostu sprawdzić swój plik konfiguracyjny.
Końcowy dotyk
Jeśli masz pliki konfiguracyjne w systemie RCS, możesz czasami chcieć dołączyć opcje konfiguracji specyficzne dla określonego komputera. W tym celu dobrze jest mieć ~/.vimrc.localplik dołączany automatycznie na końcu konfiguracji (jeśli jest obecny, oczywiście).
Ostatnia wskazówka - choć może być dobra - nie działa, gdy masz katalogi domowe zamontowane w systemie plików NFS: bez względu na to, na jakim komputerze jesteś, katalog domowy będzie taki sam. Zauważ też, że ta wskazówka zależy od definicji „~” - niektóre powłoki nie obsługują tego skrótu.
Mei
Jako sysadmin prawdopodobnie pracujesz na serwerach z kontem „root”, który powinien być lokalny, a nie montowany przez NFS. W takim przypadku /root/.vimrc.local powinien działać poprawnie.
drybjed
6
Nie bardzo wiem, która część tego jest konkretnie związana z sysadminem, ale najważniejsze są:
syntax on
set background=dark
set shiftwidth=2
set tabstop=2
if has("autocmd")
filetype plugin indent on
endif
set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
set smartcase " Do smart case matching
set incsearch " Incremental search
Tak to sformułowałem, aby oddzielić to, co może być konkretnie związane z „programowaniem” .vimrc. Czy powinienem zmienić pytanie?
Gareth,
Nie, zostaw to tak, jak jest, jestem pewien, że niektórzy ludzie mają rzeczy związane z sysadminem, ale nie ja.
Adam Gibbins
Generalnie zgadzam się z tym ... Ale tabulator ma 8 spacji. Wszystko inne i zachowuje się inaczej w vimie niż w less / tail / cat. Może to być jedna z tych religijnych rzeczy.
Alexandre Carmel-Veilleux
4
Jeśli zazwyczaj pracujesz u użytkownika, umożliwia to „potokowanie” pliku do sudo, aby można go było zapisać.
Bezwstydna wtyczka. To nie jest tak naprawdę zmiana .vimrc, ale wtyczka VIM. Używam RCSVers na każdej zainstalowanej wersji VIM. Zasadniczo używa polecenia RCS, aby zapisać wersję dowolnego edytowanego pliku. Nie wiesz, ile razy spieprzyłem plik konfiguracyjny tylko po to, aby RCSVers uratowali mnie, pokazując mi wprowadzone zmiany.
Ponieważ wiem, że wielu początkujących użytkowników VIM to przeczyta, najlepszą sugestią, jaką mam, jest: „Nie leniwy i nie umieszczaj wpisów na mapach w swoim .vimrc” Nauka niestandardowych sposobów robienia rzeczy w VIM sprawi, że poczujesz się jak totalny gimp, gdy jesteś bez swojego vimrc. Krzywa uczenia się dla vi jest stroma, ale nie robisz sobie przysług, nie decydując się na naukę.
Vim ma ładne funkcje. Dlaczego tego nie użyć? Kiedy musisz przełączyć się na vi, jest to tymczasowe. Jeśli uważasz, że będziesz musiał ciężko pracować tam, gdzie nie jest zainstalowany vim, warto go zainstalować.
Luc M
0
Przynajmniej część mojej odpowiedzi jest taka sama jak moje programowanie .vimrc:
Często używam strace do śledzenia dziwnych problemów. W rezultacie próba podświetlenia składni niektórych wierszy może stać się śmieszna przy użyciu dużego ciągu znaków. W tym przypadku używam set synmaxcol = 2048, aby ograniczyć podświetlanie składni do 2048 kolumn.
Jestem również fanem wtyczki taglist, która wykorzystuje żywiołowe tagi. Do tej pory byłem w stanie przepchnąć skompilowane pliki binarne ctags i nie napotkałem żadnych problemów z biblioteką. To pozwala mi szybko przechodzić między kodami, z którymi pracuję. Są to na ogół Perl, Python lub C.
Odpowiedzi:
Nasz CTO ma dość wypełnioną funkcjami konfigurację Vima na GitHub .
Najważniejsze:
Uważam, że świetnie nadaje się do kodowania Ruby, ponieważ nasze narzędzia do administrowania systemem są napisane w języku Ruby.
źródło
Po pierwsze, jeśli masz więcej niż kilka maszyn, z którymi pracujesz, należy rozważyć oddanie
~/.vim/
,~/.vimrc
i inne przydatne pliki konfiguracyjne (screen
, swoją powłokę, itp) w systemie kontroli wersji. Wolę używaćdarcs
- jest tani w systemach Debian (nie trzeba instalować kompilatora Haskell, wystarczy zainstalować pakiet bezpośrednio), rozproszony i ma świetne tryby interaktywne. Jeśli wiesz / lubiszgit
, możesz się z tym trzymać.Moje aktualne pliki konfiguracyjne są dostępne w moim darcs repozytorium
http://repo.harnir.net/
. Kilka konkretnych przykładów z mojej~/.vimrc
obserwacji. Niestety, nie ma linków do skryptów itp., Ponieważ jestem nowym użytkownikiem, ale wszystkie te można znaleźć nahttp://vim.org/
.Niezbędne skrypty ViM dla sysadmins
podczas edytowania plików zdalnych konieczny jest skrypt kopii zapasowej. Używam cbackup.vim skrypt, który przechowuje ostatnie 10 kopii każdego pliku edytowane w centralnym katalogu i automatycznie usuwa stare - wystarczy umieścić w swoim
~/.vim/plugins/
katalogu i zapomnij o tym :-)Lista zgłoszeń pozwala szybko wyszukać
FIXME
,XXX
aTODO
tagi w bieżącym pliku, wyświetlać je i przejść do znacznika za pomocą jednego naciśnięcia klawisza. Jeśli używasz tych tagów, rozważ zainstalowanie tegodbext jest niezbędny dla wszystkich DBA, również bardzo przydatny dla programistów pracujących z bazami danych. Pozwól nam uruchamiać zapytania, sprawdzać strukturę baz danych i tak dalej. Zasadniczo jest to front-end do narzędzi takich jak
mysql
,sqlite3
,sqlplus
i innych. Jeśli pracujesz z bazami danych, jest to koniecznością!Pliki składniowe
Nie widziałem wielu użytecznych składni na wolności, większość plików, z którymi współpracują sysadmini, to konfiguracje
/etc
i zwykle są dość dobrze podświetlone. W mojej~/.vim/syntax/
obecnie mam składnię kolorów CSS , co jest niesamowite (dobre również dla programistów stron internetowych), ale reszta nie jest zbyt dobrze napisana, być może zaktualizuję je w wolnym czasie. Dodatkowe pliki składniowe, które warto mieć, to: dhcpd.conf , / etc / network / interfaces , pliki konfiguracyjne nginx oraz local.cf SpamAssassin .Przydatna wskazówka ze składnią: jeśli plik konfiguracyjny nie zostanie rozpoznany (ma dziwną nazwę, na przykład
/etc/apache2/sites-enabled/some.domain.com
możesz dodać poprawne rozszerzenie do jego nazwy (w tym przypadku.conf
) lub dodać modeline ViM na końcu:Opcje konfiguracji ViM
Większość opcji konfiguracji jest bardzo popularna, jak
set nocompatible ruler
itp. Bardzo dobre opcje to:set gdefault
: odwracag
tryb ws///g
- z tą opcją/g
będzie domyślnie używany, więc nie trzeba go dodawać za każdym razem - wystarczy go dodać, aby go wyłączyćset incsearch ignorecase smartcase hlsearch
: niezbędny do przeszukiwania plików - przyrostowy, pokazuje dopasowania w czasie rzeczywistym, wyszukiwanie ignoruje wielkość liter, chyba że używasz wielkich literset pastetoggle=<F6>
: lub inny preferowany klawisz, przełącza pomiędzy trybamipaste
inopaste
, koniecznością, jeśli skopiujesz i wkleisz coś ze stron internetowych takich jak ServerFault :-)set noerrorbells visualbell t_vb=
: pozbywaj się irytującego dzwonka lub dzwonka wizualnego za każdym razem, gdy coś robisz;)Funkcje, mapowania klawiatury
wklej swoją nazwę użytkownika i aktualną datę do pliku, przydatne, jeśli pracujesz w zespole, i dodawaj komentarze w plikach dotyczące tego, kto coś zmienił. Po prostu napisz
xxsig
i naciśnij spację, zostanie zmieniona na coś podobnegoharnir 20090531
. Aby działało to poprawnie z rootem (np. Wpisz swoją nazwę użytkownika zamiastroot
), musisz się zalogować używającsudo
.Wstaw komentarz „wiersze”, na przykład
# -- Some title -------------------{{{1
, o długości 78 znaków - naciśnij\com#
w trybie normalnym i gotowe. Nastąpi automatyczne przejście do trybu Zastąp, dzięki czemu możesz dodać tytuł:Można łatwo zmodyfikować go do innych systemów (komentarz
"
,//
etc.), lub po prostu sprawdzić swój plik konfiguracyjny.Końcowy dotyk
Jeśli masz pliki konfiguracyjne w systemie RCS, możesz czasami chcieć dołączyć opcje konfiguracji specyficzne dla określonego komputera. W tym celu dobrze jest mieć
~/.vimrc.local
plik dołączany automatycznie na końcu konfiguracji (jeśli jest obecny, oczywiście).źródło
Nie bardzo wiem, która część tego jest konkretnie związana z sysadminem, ale najważniejsze są:
Zawsze też zapewniam maszynie dostęp do pliku podświetlania składni nginx .
źródło
Jeśli zazwyczaj pracujesz u użytkownika, umożliwia to „potokowanie” pliku do sudo, aby można go było zapisać.
użyj polecenia:
wywołać sudo i zapisać plik.
źródło
tee
zamiastcat
?Możesz także spojrzeć na to SO pytanie: Co jest w twoim vimrc ?
źródło
Bezwstydna wtyczka. To nie jest tak naprawdę zmiana .vimrc, ale wtyczka VIM. Używam RCSVers na każdej zainstalowanej wersji VIM. Zasadniczo używa polecenia RCS, aby zapisać wersję dowolnego edytowanego pliku. Nie wiesz, ile razy spieprzyłem plik konfiguracyjny tylko po to, aby RCSVers uratowali mnie, pokazując mi wprowadzone zmiany.
http://www.vim.org/scripts/script.php?script_id=563
źródło
Nie używaj .vimrc, aby uniknąć nauki VIM
Ponieważ wiem, że wielu początkujących użytkowników VIM to przeczyta, najlepszą sugestią, jaką mam, jest: „Nie leniwy i nie umieszczaj wpisów na mapach w swoim .vimrc” Nauka niestandardowych sposobów robienia rzeczy w VIM sprawi, że poczujesz się jak totalny gimp, gdy jesteś bez swojego vimrc. Krzywa uczenia się dla vi jest stroma, ale nie robisz sobie przysług, nie decydując się na naukę.
źródło
Przynajmniej część mojej odpowiedzi jest taka sama jak moje programowanie .vimrc:
Jeśli przynajmniej niektóre pliki, które edytujesz, nie znajdują się w RCS, powinny być! :)
źródło
Wyłączanie wszystkich „inteligentnych” trybów wcięcia. Idealne do programowania, do diabła z plikiem konfiguracyjnym.
źródło
Często używam strace do śledzenia dziwnych problemów. W rezultacie próba podświetlenia składni niektórych wierszy może stać się śmieszna przy użyciu dużego ciągu znaków. W tym przypadku używam set synmaxcol = 2048, aby ograniczyć podświetlanie składni do 2048 kolumn.
Jestem również fanem wtyczki taglist, która wykorzystuje żywiołowe tagi. Do tej pory byłem w stanie przepchnąć skompilowane pliki binarne ctags i nie napotkałem żadnych problemów z biblioteką. To pozwala mi szybko przechodzić między kodami, z którymi pracuję. Są to na ogół Perl, Python lub C.
źródło