Frage Vorschläge für Einträge in einem Systemadministrator .vimrc


Zumindest entscheide ich immer "Syntax an" in / etc / vim / vimrc


21
2018-05-07 06:51


Ursprung


Vorsicht, immer Syntax zu haben kann ein sein Schlecht Idee, wenn Sie oft große Dateien bearbeiten. Bei großen Dateien (Dutzende oder Hunderte von MB) kann die Syntaxhervorhebung dazu führen, dass vim für einige Sekunden nicht mehr verantwortlich ist, da es viel CPU verbraucht. Versuchen Sie einfach eine riesige XML-Datei zu bearbeiten ... Natürlich können Sie immer tun: syn aus (sobald vim wiederhergestellt hat ...). - sleske


Antworten:


Unser CTO hat eine schöne Funktion Vim-Konfiguration auf GitHub.

Höhepunkte:

  • Syntaxhervorhebung, Tabulator mit 2 Leerzeichen, erweiterte Tabs.
  • NERDtree, eine Dateistrukturansicht, die der Projektschublade von TextMate ähnelt.
  • FuzzyFileFinderPlugin für die Cmd-T-Funktionalität von TextMate.
  • Viele Farbthemen mit einem schönen (Zwielicht) Standard.

Ich finde es großartig für Ruby-Programmierung, da unsere Systemverwaltungstools in Ruby geschrieben sind.


4



Ich habe gerade mit einer Reihe von diesen gespielt und es gibt viel mehr zu untersuchen mit der Vim-Konfiguration, die Sie aufgelistet haben, aber es entspricht meiner Erwartung von vernünftigen Standardeinstellungen und nützlichen Funktionen. Nicht sicher, wie ein Community-Wiki mich als "beantwortet" wählen lässt, aber egal. Vielen Dank! - Gareth


Erstens, wenn Sie mehr als ein paar Maschinen haben, mit denen Sie arbeiten, ziehen Sie in Betracht, Ihre ~/.vim/, ~/.vimrc und andere nützliche Konfigurationsdateien (screen, Ihre Shell usw.) in einem Revisionskontrollsystem. Ich bevorzuge es zu benutzen darcs - Es ist billig auf Debian-Systemen (keine Installation des Haskell-Compilers nötig, einfach das Paket direkt installieren), verteilt und hat tolle interaktive Modi. Wenn Sie wissen / mögen gitDu kannst auch dabei bleiben.

Meine aktuellen Konfigurationsdateien sind in meinem Darcs-Repository verfügbar. http://repo.harnir.net/. Einige spezifische Beispiele von meinem ~/.vimrc Folgen. Sorry, keine Links für Skripte usw., weil ich ein neuer Benutzer bin, aber alle, auf denen Sie finden können http://vim.org/.

Wesentliche ViM-Skripte für Systemadministratoren

  • Ein Backup-Skript ist ein Muss, wenn Sie Remote-Dateien bearbeiten. ich benutze cbackup.vim Skript, das die letzten 10 Kopien jeder editierten Datei in einem zentralen Verzeichnis speichert und automatisch alte entfernt - einfach in Ihre ~/.vim/plugins/ Verzeichnis und vergiss es :-)

  • Aufgabenliste können Sie schnell suchen FIXME, XXX und TODO Tags in der aktuellen Datei, zeigen sie an und gehen mit nur einem Tastendruck zum Tag. Wenn Sie diese Tags verwenden, sollten Sie diese installieren

  • dbext ist für alle DBA essentiell, auch sehr nützlich für Programmierer, die mit Datenbanken arbeiten. Lassen Sie uns Abfragen ausführen, überprüfen Sie die Struktur der Datenbanken und was nicht. Es ist im Wesentlichen ein Frontend für Werkzeuge wie mysql, sqlite3, sqlplus und andere. Wenn Sie mit Datenbanken arbeiten, ist es ein Muss!

Syntaxdateien

Ich habe nicht viele nützliche Syntax in der Wildnis gesehen, die meisten Dateien, mit denen Systemadministratoren arbeiten, sind in /etc und sie sind normalerweise ziemlich gut hervorgehoben. In meinem ~/.vim/syntax/ Ich habe derzeit Syntax für CSS-FarbenDas ist genial (auch gut für Webentwickler), aber der Rest ist nicht sehr gut geschrieben, ich werde sie vielleicht in der Freizeit updaten. Weitere nützliche Syntaxdateien für: dhcpd.conf, / etc / Netzwerk /Schnittstellen, nginx Konfigurationsdateien und SpamAssassin's local.cf.

Nützlicher Tipp mit Syntax: wenn eine Konfigurationsdatei nicht erkannt wird (hat einen seltsamen Namen, wie /etc/apache2/sites-enabled/some.domain.comSie können entweder die korrekte Erweiterung an den Namen anhängen (in diesem Fall) .conf) oder füge am Ende eine ViM-Modelllinie hinzu:

# vim: Dateityp = Apache

ViM Konfigurationsoptionen

Die meisten Konfigurationsoptionen sind sehr beliebt, wie set nocompatible ruler usw. Sehr gute Möglichkeiten zu haben sind:

  • set gdefault: invertiert die g Modus ein s///g - Mit dieser Option /g wird standardmäßig verwendet, sodass Sie es nicht jedes Mal hinzufügen müssen - fügen Sie es einfach hinzu, um es zu deaktivieren

  • set incsearch ignorecase smartcase hlsearch: wichtig für das Durchsuchen von Dateien - inkrementell, zeigt Übereinstimmungen in Echtzeit an, die Suche ignoriert Groß- / Kleinschreibung, es sei denn, Sie verwenden Großbuchstaben

  • set pastetoggle=<F6>: oder eine andere Taste, die Sie bevorzugen, wechselt zwischen paste und nopaste Modi, ein Muss, wenn Sie etwas von einer Webseite wie ServerFault kopieren :-)

  • set noerrorbells visualbell t_vb=: Entferne die lästige Glocke oder visuelle Glocke jedes Mal, wenn du etwas tust;)

Funktionen, Tastaturzuordnungen

  • Fügen Sie Ihren Benutzernamen und das aktuelle Datum in eine Datei ein. Dies ist nützlich, wenn Sie in einem Team arbeiten und Kommentare in Dateien hinzufügen, die anzeigen, wer wann etwas geändert hat. Einfach schreiben xxsig und drücken Sie die Leertaste, es wird zu etwas wie geändert werden harnir 20090531. Damit dies korrekt mit root funktioniert (dh, schreiben Sie Ihren Benutzernamen statt root), müssen Sie sich mit einloggen sudo.

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

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

Sie können es leicht für andere Kommentar-Systeme ändern (", //usw.), oder überprüfe einfach meine Konfigurationsdatei.

Ende berühren

Wenn Sie Ihre Konfigurationsdateien im RCS-System haben, möchten Sie vielleicht manchmal Konfigurationsoptionen für einen bestimmten Rechner hinzufügen. Dafür ist es gut zu haben ~/.vimrc.local Datei, automatisch am Ende der Konfiguration enthalten (wenn es natürlich vorhanden ist).

wenn fileReadable (expandieren ("~ / .vimrc.local"))
        Quelle ~ / .vimrc.local
endif

17



Der letzte Tipp - so gut er auch sein mag - funktioniert nicht, wenn Sie NFS-gemountete Home-Verzeichnisse haben: Egal, auf welchem ​​Rechner Sie sich befinden, Ihr Home-Verzeichnis ist dasselbe. Beachten Sie auch, dass diese Spitze von der Definition von "~" abhängt - einige Shells unterstützen diese Kurzschrift nicht. - Mei
Als Systemadministrator arbeiten Sie wahrscheinlich auf den Servern im Stammkonto, das lokal und nicht über NFS gemountet sein sollte. In diesem Fall sollte /root/.vimrc.local gut funktionieren. - drybjed


Nicht wirklich sicher, welcher Teil davon speziell mit Systemadministrator verwandt ist, aber meine wesentlichen 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 die Maschine Zugriff auf die Nginx-Syntax-Hervorhebungsdatei.


6



Ich habe es nur so formuliert, um etwas zu trennen, was speziell für eine .vimrc "Programmierung" bedeutet. Sollte ich die Frage ändern, denkst du? - Gareth
Nein, lass es so, wie es ist, ich bin mir sicher, dass einige Leute Sysadmin-bezogene Sachen haben, nur ich nicht. - Adam Gibbins
Im Allgemeinen stimme ich damit überein ... Aber ein Tab ist 8 Leerzeichen. Sonst noch etwas und es verhält sich anders in vim als in weniger / tail / cat. Könnte aber eines dieser religiösen Dinge sein. - Alexandre Carmel-Veilleux


Wenn Sie normalerweise an einem Benutzer arbeiten, dann ist es möglich, eine Datei an Sudo zu "pipen", damit sie gespeichert werden kann.

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

benutze den Befehl:

:w!!

um sudo zu erreichen und die Datei zu speichern.


4



Interessant. Warum benutzt du? tee anstatt cat ? - David Schmitt
Weil cat nichts in eine Datei schreibt; es schreibt nur auf stdout. - Chris Jester-Young
Katze ->% Funktioniert genauso gut. - olle


Sie können sich auch diese SO-Frage ansehen: Was ist in deinem vimrc??


3





Schamloser Stecker. Dies ist nicht wirklich eine .vimrc-Änderung, sondern ein VIM-Plugin. Ich verwende RCSVers auf jeder installierten Version von VIM. Im Grunde verwendet es den RCS-Befehl, um eine Version jeder Datei zu speichern, die Sie bearbeiten. Sie wissen nicht, wie oft ich eine Konfigurationsdatei vermasselt habe, nur damit RCSVers mich retten, indem sie mir die Änderungen zeigen, die ich gemacht habe.

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


2





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

Da ich weiß, dass viele VIM-Neulinge dies lesen werden, ist der beste Vorschlag, den ich habe: "Mach keine Faulheit und lege Karteneinträge in deine .vimrc". Wenn du nicht standardmäßige Vorgehensweisen in VIM anwendest, wirst du dich fühlen eine totale Gimme, wenn du ohne deinen vimrc bist. Die Lernkurve für vi ist steil, aber Sie tun sich keinen Gefallen, indem Sie sich entscheiden, nicht zu lernen.


2



Vim hat nette Eigenschaften. Warum nicht benutzen? Wenn Sie zu vi wechseln müssen, ist es vorübergehend. Wenn Sie denken, dass Sie schwer arbeiten müssen, wo vim nicht installiert ist, lohnt es sich, es zu installieren. - Luc M


Zumindest ein Teil meiner Antwort ist die gleiche wie meine 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 mindestens einige Dateien, die Sie bearbeiten, nicht in RCS enthalten sind, sollten sie das sein! :)


0