Sugestie dotyczące wpisów w sysadmins .vimrc

21

Przynajmniej zawsze odkomentuję „składnię” w / etc / vim / vimrc

Gareth
źródło
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 ...).
śleske

Odpowiedzi:

4

Nasz CTO ma dość wypełnioną funkcjami konfigurację Vima na GitHub .

Najważniejsze:

  • Podświetlanie składni, tabulator 2 spacji, tabulatory rozszerzone.
  • NERDtree, widok drzewa plików podobny do szuflady projektu TextMate.
  • FuzzyFileFinder , wtyczka do wykonywania funkcji cmd-T TextMate.
  • Wiele kolorowych motywów z ładnym domyślnym (zmierzch).

Uważam, że świetnie nadaje się do kodowania Ruby, ponieważ nasze narzędzia do administrowania systemem są napisane w języku Ruby.

jtimberman
źródło
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).

jeśli filereadable (rozwiń („~ / .vimrc.local”))
        source ~ / .vimrc.local
endif
drybjed
źródło
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

Zawsze też zapewniam maszynie dostęp do pliku podświetlania składni nginx .

Adam Gibbins
źródło
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ć.

cmap w!! %!sudo tee > /dev/null %

użyj polecenia:

:w!!

wywołać sudo i zapisać plik.

quentin
źródło
Ciekawy. Dlaczego używasz teezamiast cat?
David Schmitt
1
Ponieważ cat nie napisze niczego do pliku; po prostu zapisuje na standardowe wyjście.
Chris Jester-Young
cat ->% Działa tak samo dobrze.
olle
2

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

JD Frias
źródło
2

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ę.

Bruno Bronosky
źródło
1
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:

set hidden
map <TAB> :e#<CR>

map <F7> :set paste!<CR>
map <F8> :set hlsearch!<CR>
map <F9> :!co -l %<CR>:e<CR>
map <F10> :!rcsdiff %<CR>
map <F11> :!ci -u %<CR>:e<CR>

Jeśli przynajmniej niektóre pliki, które edytujesz, nie znajdują się w RCS, powinny być! :)

MikeyB
źródło
0

Wyłączanie wszystkich „inteligentnych” trybów wcięcia. Idealne do programowania, do diabła z plikiem konfiguracyjnym.

Alexandre Carmel-Veilleux
źródło
0

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.

jwp
źródło