Geben Sie es zu: Jedes Mal, wenn Sie eine Person sehen, die Vim benutzt, denken Sie über die Möglichkeit nach, dass sie etwas weiß, was Sie nicht wissen. Warum sollten sie sonst einen Editor verwenden, der aus Ihrer Sicht Open Source-Müll ist? Überlegen Sie, was Sie sich wünschen, aber es gibt einen Grund, warum Top-Entwickler auf Vim schwören.
Erneut veröffentlichtes TutorialAlle paar Wochen besuchen wir einige der Lieblingsbeiträge unserer Leser aus der gesamten Geschichte der Website. Dieses Tutorial wurde erstmals im Februar 2011 veröffentlicht.
Bis Sie jeden Tag mindestens einen Monat mit dem Redakteur gearbeitet haben, werden Sie dies zweifellos hassen! Aus diesem Grund wird die Mehrheit der Neuankömmlinge einen Tag lang mit Vim herumspielen, angewidert sein und sie nie wieder anfassen. Unglücklicherweise ist, dass, wenn diese Entwickler die Fallstricke überwinden könnten, sie eine unglaubliche Geschwindigkeit und Flexibilität erfahren würden.
Es stimmt: Vim ist nicht Ihr Standard-Code-Editor (es ist besser). Der Übergang von beispielsweise TextMate zu Vim ist ein völlig anderer Prozess als der Wechsel von TextMate zu Espresso. Denken Sie immer daran, wenn Sie Ihre Haare zerreißen, weil Vim sich scheinbar weigert, Text einzugeben, wenn Sie tippen.
Obwohl es mehrere Modi in Vim gibt, konzentrieren wir uns auf die drei wichtigsten. Bevor Sie jedoch fortfahren, beachten Sie, dass jede Taste eine andere Funktion hat, abhängig davon, in welchem Modus Sie sich gerade befinden. Noch verwirrender - zunächst ein Großbuchstabe - löst eine andere Aktion aus als ein Kleinbuchstabe.
Im Befehlsmodus wird durch Drücken des Kleinbuchstaben "i" der "Einfügemodus" ausgelöst. Ein "I" in Großbuchstaben bewegt den Cursor an den Anfang der Zeile. Das hört sich vielleicht verwirrend an, bietet jedoch unglaubliche Kraft!
V
um in den visuellen Modus zu wechseln, und geben Sie dann ein 5j
zu wählen fünf Zeilen weiter. Zum Schluss würden Sie drücken d
, zum löschen. Ich weiß, das klingt zunächst unglaublich verwirrend. Sie denken vielleicht: "Diese ganze Arbeit, nur um fünf Zeilen zu löschen?" Die Wahrheit ist jedoch, dass diese Methode wesentlich schneller ist.
Warum sollten Sie Ihre Nase bei über drei Jahrzehnten Entwicklung auf den Kopf stellen??
Sie könnten hören, dass Ihre Freunde sagen: "Ist Vim nicht ein alter Code-Editor?" Nun, das könnte man sagen. Es ist seit über dreißig Jahren auf dem Markt. Wenn Sie ehrlich sind, warum sollten Sie bei über drei Jahrzehnten Entwicklung Ihre Nase aufdrehen? Das ist länger als ich am Leben war! Noch besser ist, dass sich Vim bis heute in aktiver Entwicklung befindet. Die neueste Version 7.3 wurde im August 2010 verfügbar gemacht.
Zweitens ist es wichtig zu wissen, dass Vim kein Vi ist. Wenn Sie nur mit Letzterem zu tun haben, nehmen Sie sich etwas Zeit, um die neueste Version herunterzuladen und mit den neuen Funktionen herumzuspielen. Sie werden angenehm überrascht sein!
Wenn Vim es nicht von Haus aus tun kann, können Sie darauf wetten, dass irgendwo ein Plugin verfügbar ist!
Sie werden schnell feststellen, dass, wenn Vim eine bestimmte Aufgabe nicht ausführen kann, wahrscheinlich ein Plugin entwickelt wurde, das diese Funktionalität bereitstellt. Betrachten Sie beispielsweise die hervorragende Funktion der Snippets von TextMate. Während Vim dies nicht nativ unterstützt, können Sie das snipMate-Plugin herunterladen. Dadurch sollte das Erlebnis praktisch identisch sein mit dem, was Sie gewohnt sind.
Je weniger Bewegung, desto besser.
Erstens stimmt das nicht. Bei Vi ist das vielleicht der Fall, aber Sie können Vim so nutzen, wie es Ihnen am angenehmsten erscheint. Verwenden Sie also die Pfeiltasten nach Herzenslust - bedenken Sie jedoch, dass die meisten Vim-Benutzer einen Grund dafür haben.
Das h, j, k, l
Die Tastenbelegung nach links, unten, oben und rechts dient zwei Zwecken:
Wenn alles gesagt und getan ist, Sie sind die Person, die den Editor verwendet. Wenn Sie sich zunächst mit den Pfeiltasten wohler fühlen, tun Sie dies auf jeden Fall!
Das ist okay! Vim ist nicht jedermanns Sache. Als Person, die zumindest von Zeit zu Zeit versucht, Design zu machen, kann ich voll und ganz bestätigen, dass Vim für Designer möglicherweise nicht die beste Wahl ist.
Entwickler sind keine Designer. Es ist nur natürlich, dass sich diese Tatsache in der Auswahl der Redakteure widerspiegelt.
Wenn Sie feststellen, dass der Großteil Ihrer Tage mit HTML und CSS zu tun hat, ist Vim vielleicht nicht das Richtige für Sie. Das heißt nicht, dass Sie es nicht versuchen sollten; Aber es ist sicherlich verständlich, sollten Sie sich für einen Designer-freundlichen Editor wie Coda entscheiden.
Einfach und einfach, das ist Müll. Natürlich hat jeder Redakteur seine Stärken, aber Sie werden feststellen, dass Vim unglaublich mächtig und vor allem flexibel ist. Es gibt hunderte von hunderten von Plugins (kostenlos), die praktisch jede Art von Funktionalität unterstützen, die Sie benötigen.
Viele Neuankömmlinge nennen den eingebauten Befehl "Change Inner" oft als großes Verkaufsargument. Es war auf jeden Fall für mich! Nehmen wir an, Sie haben den folgenden Code:
var joe = "Klempner";
Wenn Sie davon ausgehen, dass sich der Cursor am Anfang dieser Zeile befindet und Sie den Wert "Klempner" in "Schwarz" ändern möchten, können Sie den Text normalerweise mit den Pfeiltasten oder der Maus auswählen und ändern. Mit Vim wird der Prozess enorm vereinfacht. Einfach tippen: ci '
. Dies steht für "Innere Anführungszeichen ändern", oder suchen Sie die nächste Gruppe von Anführungszeichen und ändern Sie den Wert darin.
ul> li Mein Listenelementtext.
. Dies war ein anfänglicher Kritikpunkt, den ich auch mit Vim hatte. Wenn Sie zum ersten Mal MacVim starten, werden Sie in das Wolfsrudel geworfen! Keine Code-Hervorhebung, keine Formatierung, kein intelligentes Einrücken… kein Nichts! Insbesondere wenn Sie einen benutzerdefinierten Vim-Editor verwenden, sollte mindestens eine vimrc-Basisdatei vorhanden sein, um den Einstieg zu erleichtern. Es kann eine einschüchternde Erfahrung sein, wenn Sie herausfinden möchten, wie Sie Ihre benutzerdefinierten Einstellungen anwenden.
Für diejenigen, die mit einer vimrc-Datei nicht vertraut sind, ist es im Wesentlichen eine Datei, mit der Sie Ihre Editoreinstellungen festlegen können.
Verwenden Sie dies als Starter (Klicken Sie unten auf die Schaltfläche Erweitern):
".vimrc-Datei" Verwaltet von: Jeffrey Way "[email protected]" http://net.tutsplus.com "" Vergessen Sie die Kompatibilität mit Vi. Wen interessiert das. set nocompatible "Dateitypen für Dateityp aktivieren für Plugin für Dateityp bei Syntax einrücken ein" Schreibe die alte Datei aus, wenn zwischen Dateien gewechselt wird. set autowrite "Aktuelle Cursorposition in der rechten unteren Ecke anzeigen. Lineal festlegen" Soll ein anderer Kartenanführer als \ "gesetzt werden. mapleader =", ";" Haben Sie schon einmal eine leichte Verzögerung nach dem Eingeben der Anführertaste + des Befehls bemerkt? Dies verringert "das Zeitlimit. Set timeoutlen = 500". "Wechseln zwischen Puffern ohne zu speichern." Setzen Sie das Farbschema. Ändern Sie dies nach Ihren Wünschen. "Hier stehen 100 zur Auswahl: http://www.vim.org/scripts/script .php? script_id = 625 colorscheme twilight "Schrifttyp und -größe festlegen. Abhängig von der Auflösung. Größere Bildschirme bevorzugen h20 set guifont = Menlo: h14" Tab Stop set 3 = set shiftwidth = 3 set softtabstop = 3 set expandtab "Show Befehl im unteren rechten Bereich des Bildschirmsets showcmd "Zeilennummern anzeigen Nummer anzeigen" Relative Zeilennummerierung bevorzugen? "Relative Nummer setzen" "Einrücksets festlegen Smartindent Set Autoindent" Immer die Statuszeile anzeigen Laststatus = 2 "Eine etwas höhere Zeilenhöhe bevorzugen set linespace = 3 "Besserer Zeilenumbruch set wrapping set textwidth = 79 set formatoptions = qrn1" Inkrementelle Suche setzen "set incsearch" Suche markieren hlsearch "Groß- / Kleinschreibung wird nicht beachtet Suchset ignorecase set smartcase" MacVim-Symbolleiste standardmäßig setzen go- = T " Textabschnitte mit Textumbruch apq gqip "Code-Folding-Set foldenable aktivieren" Maus beim Eingeben von set mousehide verstecken "Abkürzung zum Falten von Tags mit einem Leader (normalerweise \) + ftnnoremap ft Vatzf "Erstellen Sie ein Wörterbuch für benutzerdefinierte Erweiterungen. set dictionary + = / Users / jeff_way / .vim / dict.txt" Öffnet eine vertikale Aufteilung und wechselt (\ v) nnororemap v v l "Fenster unter dem aktuellen Fenster aufteilen. splitbelow setzen" Sitzungseinstellungen setzen sessionoptions = Größe ändern, Winpos, Winize, Puffer, Registerkarten, Falze, curdir, help "HTML5-Vorlage für alle neuen HTML-Dateien einrichten" autocmd BufNewFile * silent! 0r $ VIMHOME / templates /%: e.tpl "Lädt den aktuellen Puffer in Firefox - Mac-spezifisch. Abbrev ff:! Open -a firefox.app%: p "Ordnen Sie dem Desktop ein Änderungsverzeichnis zu - Mac - spezifische nmap d: cd ~ / Desktop : e. Msgstr "Abkürzung für die Bearbeitung einer vimrc - Datei in einer neuen Registerkarte ev: tabedit $ MYVIMRC "Ändern Sie den Erweiterungsschlüssel für das Zen-Codierungs-Plugin in shift + e, und lassen Sie g: user_zen_expandabbr_key = ' '"Schnellere Verknüpfung zum Kommentieren. Erfordert eine Plugin-Map für T-Comment c Msgstr "Spart Zeit; ordnet die Leertaste in Colonnap : "Das aktuelle Verzeichnis automatisch in das der Datei im Puffer ändern. Autocmd BufEnter * cd%: p: h" Code-Vervollständigung auf, + tab imap "Weitere nützliche Befehlszeilenvervollständigungssätze setzen" Menü "Automatische Vervollständigung" "set wildmode = list: longest" http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE set completeopt = längste, menüeine Inoremap pumvisible ()? "\ ":" \ u \ "inoremap pumvisible ()? ' ': \' = pumvisible ()? "\ Runter> ":" " 'inoremap pumvisible ()? ' ': \' = pumvisible ()? "\ Runter> ":" " '"Map Escape-Taste zu jj - viel schneller imap jj "Löschen Sie alle Puffer (über Derek Wyatt) nmap ,da: exec "1". bufnr ('$'). "bd" "Blase einzelne Zeilen (tritt den Hintern)" http://vimcasts.org/episodes/bubbling-text/ nmap ddkP nmap ddp "Blase mehrere Zeilen vmap xkP '[V'] vmap xp '[V'] "Quelle der vimrc-Datei nach dem Speichern. Auf diese Weise müssen Sie Vim nicht neu laden, um die Änderungen zu sehen. if hat (" autocmd ") myvimrchooks au! autocmd bufwritepost .vimrc source ~ /. vimrc augroup END endif "einfachere Navigation in Fensternavigation h nmap j nmap k nmap l "------------------------" "NERDTREE PLUGIN-EINSTELLUNGEN" ------------------ ------ "" Abkürzung für NERDTreeToggle nmap nt: NERDTreeToggle "Versteckte Dateien in NerdTree anzeigen lassen NERDTreeShowHidden = 1" NERDTree automatisch öffnen und Cursor in neuem Dokument automatisch öffnen et dolore magna aliqua iab llorem Lorem ipsum dolor sitzen, sitzen und trainieren und lassen Sie sich vor dem Eingriff in den Laboratorium und in den Schlafbereich versetzen korrigiert. Nur zum Beispiel. Fügen Sie Ihre unten hinzu. iab teh the iab Teh The "Holen Sie sich leichter nach Hause" hm ist einfacher zu tippen als: cd ~ nmap hm: cd ~ / "CSS-Eigenschaften in der Datei alphabetisch sortieren mit: Befehl SortCSS: Befehl! SortCSS: g # \ (\ n \) \ @<=#.,//sort " Shortcut to opening a virtual split to right of current pane " Makes more sense than opening to the left nmap bv: bel vsp "Speichert die Datei, wenn das Vim-Fenster den Fokus verliert, und FocusLost *: wa" Backups set backupdir = ~ / .vim / tmp / backup // "backups set Verzeichnis = ~ / .vim / tmp / swap //" Auslagerungsdateien set backup "enable backup" Kein Dehnen mehr für das Navigieren von Dateien "noremap h;" noremap jh "noremap k gj" noremap l gk "noremap; l showmatch" Übereinstimmende Klammern anzeigen "wird leer gedruckt tag map! ; h 5hi
Ich auch nicht - zumindest nicht mehr als ich auch - es gibt eine Vielzahl von dedizierten Vim-Editoren, die eine mehr Windows / Mac-GUI-ähnliche Erfahrung bieten.
Diese Editoren bieten Unterstützung für die Arten von Tastatureingaben, die in Ihrem Körper verankert sind, z. B. "Befehl + F
"zu suchen oder"Befehl + W
"um das aktuelle Fenster zu schließen.
Erinnern Sie sich, wie der Schüler, der neben Ihnen saß, manchmal in der Lage war, Ihnen einige schwierige Konzepte besser zu erklären als den Lehrer? Der Grund dafür ist, dass es schwierig ist, sich daran zu erinnern, was Ihnen persönlich am meisten Schwierigkeiten bereitete, wenn Sie erst einmal ein Handwerk beherrschen. Von September bis Oktober begann ich eine vierwöchige Herausforderung, die ich "Venturing into Vim" nenne. Nachdem ich gehört hatte, dass unzählige extrem talentierte Entwickler diesen anscheinend zehn Jahre alten Code-Editor lobten, entschied ich, dass es einen Monat meiner Zeit wert war Finden Sie heraus, warum so viele Leute Vim für den besten Redakteur der Welt halten.
Natürlich können Sie dies zwar zugegebenermaßen nicht ganz so benutzerfreundlich wie etwa die Remote-Server-Funktion von Coda. Apropos Panic. Wenn Sie ein Transmit-Benutzer sind, können Sie das Transmit-FTP-Plugin installieren.
"Dieses Skript ermöglicht es Ihnen, die aktuelle Datei über Transmit direkt von Vim aus hochzuladen. Damit dies funktioniert, müssen Sie an einer Datei arbeiten, die an eine Transmit-Verbindung gebunden ist, und für diese Verbindung muss" DockSend "aktiviert sein."
Bei diesem Plugin müssen Sie beim Bearbeiten einer Datei, die über eine Transmit-Verbindung verfügt (Datei über Transmit öffnen), nur drücken Strg + U
um diese Updates auf den Remote-Server zurückzuschieben. Es ist ein Kinderspiel!
Um ehrlich zu sein, sollten Sie jedoch versuchen, einen besseren Build- / Bereitstellungsprozess zu übernehmen. Auf diese Weise können Sie, anstatt FTP zu verwenden, dies einfach tun git Push
.
Sicher - es gibt eine Handvoll Gründe, Vim nicht zu verwenden. Es hat eine steile Lernkurve und erfordert ein vollständiges Umdenken, wie ein Code-Editor funktionieren sollte. Das heißt, es gibt hunderte Gründe, warum Sie es tun sollte benutze Vim. Die Frage ist nur: Warum bist du nicht??