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 ...).
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).
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 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.
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.
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.
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:
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.
Antworten:
Unser CTO hat eine ziemlich funktionsreiche Vim-Konfiguration auf GitHub .
Höhepunkte:
Ich finde es großartig für die Ruby-Codierung, da unsere Systemadministrationstools in Ruby geschrieben sind.
quelle
Erstens, wenn Sie mehr als ein paar Maschinen mit denen Sie arbeiten, sollten Sie Ihre setzen
~/.vim/
,~/.vimrc
und andere nützliche Konfigurationsdateien (screen
, Shell, etc.) in einem Revisionskontrollsystem. Ich bevorzuge die Verwendungdarcs
- 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 / magstgit
, kannst du auch dabei bleiben.Meine aktuellen Konfigurationsdateien sind in meinem Darcs-Repository verfügbar
http://repo.harnir.net/
. Einige konkrete Beispiele aus meiner~/.vimrc
Folge. Entschuldigung, keine Links für Skripte usw., da ich ein neuer Benutzer bin, aber alle, die Sie auf finden könnenhttp://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
,XXX
undTODO
Tags in der aktuellen Datei aus , öffnen sie und mit nur einem Tastendruck mit dem Tag gehen. Wenn Sie diese Tags verwenden, sollten Sie diesen installierendbext 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
,sqlplus
und 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
/etc
und 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.com
können Sie entweder die richtige Erweiterung an den Namen anhängen (in diesem Fall.conf
) oder eine ViM-Modeline am Ende hinzufügen:ViM-Konfigurationsoptionen
Die meisten Konfigurationsoptionen sind sehr beliebt, wie z
set nocompatible ruler
. B. usw. Sehr gute Optionen sind:set gdefault
: kehrt deng
Modus um ins///g
- mit dieser Option/g
wird standardmäßig verwendet, sodass Sie sie nicht jedes Mal hinzufügen müssen - fügen Sie sie einfach hinzu, um sie zu deaktivierenset 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 verwendenset pastetoggle=<F6>
: oder ein anderer Schlüssel, den Sie bevorzugen, wechselt zwischenpaste
undnopaste
Modi, 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
xxsig
und drücken Sie die Leertaste, es wird in etwas geändertharnir 20090531
. Damit dies korrekt mit root funktioniert (dh, schreiben Sie stattdessen Ihren Benutzernamenroot
), müssen Sie sich mit anmeldensudo
.Fügen Sie einen Kommentar "Zeilen" mit einer
# -- Some title -------------------{{{1
Lä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: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.local
Datei zu haben , die am Ende der Konfiguration automatisch eingefügt wird (sofern vorhanden, natürlich).quelle
Ich bin mir nicht sicher, welcher Teil davon speziell mit Sysadmin zusammenhängt, aber meine wesentlichen Punkte sind:
Ich stelle auch immer sicher, dass der Computer Zugriff auf die Hervorhebungsdatei für die Nginx-Syntax hat .
quelle
Wenn Sie normalerweise bei einem Benutzer arbeiten, können Sie auf diese Weise eine Datei an sudo "leiten", damit sie gespeichert werden kann.
benutze den Befehl:
um sudo aufzurufen und die Datei zu speichern.
quelle
tee
stattcat
?Sie können sich auch diese SO-Frage ansehen: Was ist in Ihrem vimrc ?
quelle
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
quelle
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.
quelle
Zumindest ein Teil meiner Antwort entspricht meiner Programmierung .vimrc:
Wenn zumindest einige Dateien, die Sie bearbeiten, nicht in RCS sind, sollten sie es sein! :)
quelle
Deaktivieren aller "intelligenten" Einrückungsmodi. Großartig für die Programmierung, verdammt für die Konfigurationsdatei.
quelle
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.
quelle