Vorschläge für Einträge in einem Sysadmins .vimrc


21

Zumindest entkommentiere ich immer "syntax on" in / etc / vim / vimrc


Achtung, die Syntax immer aktiviert zu haben, kann eine schlechte Idee sein, wenn Sie häufig große Dateien bearbeiten. Bei großen Dateien (Dutzende oder Hunderte von MB) kann das Hervorheben der Syntax dazu führen, dass vim für einige Sekunden nicht mehr reagiert, da es viel CPU verbraucht. Versuchen Sie einfach, eine riesige XML-Datei zu bearbeiten ... Natürlich können Sie immer Folgendes tun: syn off (sobald vim wiederhergestellt ist ...).
sleske

Antworten:


4

Unser CTO hat eine ziemlich funktionsreiche Vim-Konfiguration auf GitHub .

Höhepunkte:

  • Syntaxhervorhebung, Tabulator mit zwei Leerzeichen, erweiterte Tabulatoren.
  • NERDtree, eine Dateibaumansicht ähnlich der von TextMate.
  • FuzzyFileFinder , Plugin für die cmd-T-Funktionalität von TextMate.
  • Viele Farbthemen mit einem schönen Standard (Dämmerung).

Ich finde es großartig für die Ruby-Codierung, da unsere Systemadministrationstools in Ruby geschrieben sind.


Ich habe gerade mit ein paar davon gespielt und es gibt noch viel mehr zu untersuchen mit der von Ihnen aufgelisteten VIM-Konfiguration, aber es entspricht meiner Erwartung nach vernünftigen Vorgaben und nützlichen Funktionen. Ich bin nicht sicher, wie ich in einem Community-Wiki als "beantwortet" abstimmen kann, aber trotzdem. Vielen Dank!
Gareth

17

Erstens, wenn Sie mehr als ein paar Maschinen mit denen Sie arbeiten, sollten Sie Ihre setzen ~/.vim/, ~/.vimrcund andere nützliche Konfigurationsdateien ( screen, Shell, etc.) in einem Revisionskontrollsystem. Ich bevorzuge die Verwendung darcs- es ist billig auf Debian-Systemen (keine Notwendigkeit, den Haskell-Compiler zu installieren, nur das Paket direkt zu installieren), verteilt und hat großartige interaktive Modi. Wenn du weißt / magst git, kannst du auch dabei bleiben.

Meine aktuellen Konfigurationsdateien sind in meinem Darcs-Repository verfügbar http://repo.harnir.net/. Einige konkrete Beispiele aus meiner ~/.vimrcFolge. Entschuldigung, keine Links für Skripte usw., da ich ein neuer Benutzer bin, aber alle, die Sie auf finden können http://vim.org/.

Wichtige ViM-Skripte für Sysadmins

  • Ein Backup-Skript ist ein Muss, wenn Sie entfernte Dateien bearbeiten. Ich benutze das Skript cbackup.vim , das die letzten 10 Kopien jeder bearbeiteten Datei in einem zentralen Verzeichnis speichert und automatisch alte entfernt - einfach in Ihr ~/.vim/plugins/Verzeichnis einfügen und vergessen :-)

  • Tasklist können Sie schnell für die Suche FIXME, XXXund TODOTags in der aktuellen Datei aus , öffnen sie und mit nur einem Tastendruck mit dem Tag gehen. Wenn Sie diese Tags verwenden, sollten Sie diesen installieren

  • dbext ist für alle DBAs unverzichtbar, auch für Programmierer, die mit Datenbanken arbeiten, sehr nützlich. Lassen Sie uns Abfragen ausführen, die Struktur der Datenbanken überprüfen und so weiter. Es ist im Wesentlichen ein Frontend für Werkzeuge wie mysql, sqlite3, sqlplusund andere. Wenn Sie mit Datenbanken arbeiten, ist dies ein Muss!

Syntaxdateien

Ich habe nicht viele nützliche Syntax in freier Wildbahn gesehen, die meisten Dateien, mit denen Sysadmins arbeiten, sind Konfigurationsdateien /etcund sie sind normalerweise ziemlich gut hervorgehoben. In meinem habe ~/.vim/syntax/ich momentan eine Syntax für CSS-Farben , was fantastisch ist (auch gut für Webentwickler), aber der Rest ist nicht sehr gut geschrieben, ich werde sie vielleicht in der Freizeit aktualisieren. Zusätzliche Syntaxdateien , die es wert sind, vorhanden zu sein, sind: dhcpd.conf , / etc / network / interfaces , nginx- Konfigurationsdateien und die local.cf von SpamAssassin .

Nützlicher Tipp zur Syntax: Wenn eine Konfigurationsdatei nicht erkannt wird (hat einen seltsamen Namen), /etc/apache2/sites-enabled/some.domain.comkönnen Sie entweder die richtige Erweiterung an den Namen anhängen (in diesem Fall .conf) oder eine ViM-Modeline am Ende hinzufügen:

# vim: filetype = apache

ViM-Konfigurationsoptionen

Die meisten Konfigurationsoptionen sind sehr beliebt, wie z set nocompatible ruler. B. usw. Sehr gute Optionen sind:

  • set gdefault: kehrt den gModus um in s///g- mit dieser Option /gwird standardmäßig verwendet, sodass Sie sie nicht jedes Mal hinzufügen müssen - fügen Sie sie einfach hinzu, um sie zu deaktivieren

  • set incsearch ignorecase smartcase hlsearch: für die Suche in Dateien unerlässlich - inkrementell, zeigt Übereinstimmungen in Echtzeit an, die Suche ignoriert die Groß- / Kleinschreibung, sofern Sie keine Großbuchstaben verwenden

  • set pastetoggle=<F6>: oder ein anderer Schlüssel, den Sie bevorzugen, wechselt zwischen pasteund nopasteModi, ein Muss, wenn Sie etwas von Webseiten wie ServerFault kopieren und einfügen :-)

  • set noerrorbells visualbell t_vb=: Lass die nervige Glocke oder die visuelle Glocke los, wenn du etwas tust;)

Funktionen, Tastaturbelegungen

  • Fügen Sie Ihren Benutzernamen und das aktuelle Datum in eine Datei ein. Dies ist nützlich, wenn Sie in einem Team arbeiten und in Dateien Kommentare dazu einfügen, wer wann etwas geändert hat. Schreiben Sie einfach xxsigund drücken Sie die Leertaste, es wird in etwas geändert harnir 20090531. Damit dies korrekt mit root funktioniert (dh, schreiben Sie stattdessen Ihren Benutzernamen root), müssen Sie sich mit anmelden sudo.

    iabbrev xxsig <Esc>: r! [-n "$ SUDO_USER"] && echo "$ SUDO_USER` Datum '+ \% Y \% m \% d'` "\ | \ | Echo "$ USER` date '+ \% Y \% m \% d'` "<CR> I <BS> <Esc> A
    
  • Fügen Sie einen Kommentar "Zeilen" mit einer # -- Some title -------------------{{{1Länge von 78 Zeichen ein - drücken Sie \com#im normalen Modus und schon ist es da. Sie befinden sich automatisch im Ersetzungsmodus, sodass Sie den Titel hinzufügen können:

    nmap \ com # O # <Esc> 72A- <Esc> 3A {<Esc> A1 <Esc> <Home> 4 <Right> R <Space>
    

Sie können es auch für andere Kommentar Systeme leicht modifizieren ( ", //usw.), oder einfach nur meine Config - Datei überprüfen.

Berührung beenden

Wenn Sie Ihre Konfigurationsdateien im RCS-System haben, möchten Sie möglicherweise manchmal Konfigurationsoptionen einschließen, die für einen bestimmten Computer spezifisch sind. Dafür ist es gut, eine ~/.vimrc.localDatei zu haben , die am Ende der Konfiguration automatisch eingefügt wird (sofern vorhanden, natürlich).

wenn filereadable (expand ("~ / .vimrc.local"))
        source ~ / .vimrc.local
endif

Der letzte Tipp - so gut er auch sein mag - funktioniert nicht, wenn Sie über über NFS-gemountete Home-Verzeichnisse verfügen: Unabhängig davon, auf welchem ​​Computer Sie sich befinden, ist Ihr Home-Verzeichnis dasselbe. Beachten Sie auch, dass dieser Tipp von der Definition von "~" abhängt - einige Shells unterstützen diese Abkürzung nicht.
Mei

Als Systemadministrator arbeiten Sie wahrscheinlich auf den Servern mit dem Konto "root", das lokal sein und nicht über NFS bereitgestellt werden sollte. In diesem Fall sollte /root/.vimrc.local einwandfrei funktionieren.
Drybjed

6

Ich bin mir nicht sicher, welcher Teil davon speziell mit Sysadmin zusammenhängt, aber meine wesentlichen Punkte sind:

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

Ich stelle auch immer sicher, dass der Computer Zugriff auf die Hervorhebungsdatei für die Nginx-Syntax hat .


Ich habe es nur so formuliert, um zu trennen, was speziell für eine .vimrc-Datei programmiert werden könnte. Soll ich die Frage Ihrer Meinung nach ändern?
Gareth

Nein, lass es wie es ist, ich bin sicher, dass einige Leute Sysadmin-ähnliche Sachen haben, nur ich nicht.
Adam Gibbins

Stimmen Sie dem im Allgemeinen zu ... Ein Tabulator besteht jedoch aus 8 Leerzeichen. Alles andere und es verhält sich in vim anders als in less / tail / cat. Könnte aber eines dieser religiösen Dinge sein.
Alexandre Carmel-Veilleux

4

Wenn Sie normalerweise bei einem Benutzer arbeiten, können Sie auf diese Weise eine Datei an sudo "leiten", damit sie gespeichert werden kann.

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

benutze den Befehl:

:w!!

um sudo aufzurufen und die Datei zu speichern.


Interessant. Warum benutzt du teestatt cat?
David Schmitt

1
Weil cat nichts in eine Datei schreibt; es schreibt nur zu stdout.
Chris Jester-Young

cat ->% Funktioniert genauso gut.
olle


2

Schamloser Stecker. Dies ist eigentlich keine .vimrc-Änderung, sondern ein VIM-Plugin. Ich verwende RCSVer auf jeder installierten Version von VIM. Grundsätzlich wird der RCS-Befehl verwendet, um eine Version einer von Ihnen bearbeiteten Datei abzuspeichern. Sie wissen nicht, wie oft ich eine Konfigurationsdatei nur vermasselt habe, damit RCSVer mich retten, indem sie mir die Änderungen zeigen, die ich vorgenommen habe.

http://www.vim.org/scripts/script.php?script_id=563


2

Verwenden Sie nicht .vimrc, um das Erlernen von VIM zu vermeiden

Da ich weiß, dass viele VIM-Neulinge dies lesen werden, ist der beste Vorschlag, den ich habe: "Werden Sie nicht faul und fügen Sie Karteneinträge in Ihre .vimrc-Datei ein" Ein absoluter Hingucker, wenn Sie nicht über Ihr Vimrc verfügen. Die Lernkurve für vi ist steil, aber Sie tun sich keinen Gefallen, wenn Sie sich dafür entscheiden, nicht zu lernen.


1
Vim hat schöne Funktionen. Warum nicht benutzen? Wenn Sie zu vi wechseln müssen, ist es vorübergehend. Wenn Sie der Meinung sind, dass Sie dort stark arbeiten müssen, wo vim nicht installiert ist, lohnt es sich, es zu installieren.
Luc M

0

Zumindest ein Teil meiner Antwort entspricht meiner Programmierung .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>

Wenn zumindest einige Dateien, die Sie bearbeiten, nicht in RCS sind, sollten sie es sein! :)



0

Ich benutze oft Strace, um seltsame Probleme aufzuspüren. Infolgedessen kann der Versuch, einige der Zeilen durch Syntaxhervorhebung hervorzuheben, mit einer großen Zeichenfolge lächerlich werden. In diesem Fall benutze ich set synmaxcol = 2048, um die Syntaxhervorhebung auf 2048 Spalten zu beschränken.

Ich bin auch ein ziemlicher Fan des Taglist-Plugins, das üppige Tags verwendet. Bisher konnte ich die kompilierten ctags-Binärdateien verschieben und bin auf keine Bibliotheksprobleme gestoßen. Auf diese Weise kann ich schnell zwischen den Codes wechseln, mit denen ich arbeite. Diese sind im Allgemeinen Perl, Python oder C.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.