Wie kann ich erreichen, dass sich gVim unter Windows wie unter Linux verhält?

13

Ich bin ein häufiger Benutzer des Vim-Editors unter Linux und möchte ihn jetzt unter Windows verwenden.

Ich habe Vim für Windows heruntergeladen, was zufällig gVim ist. Einige Funktionen von Vim funktionieren in gVim 7.4 nicht, z. B. der visuelle Block, der rxBefehl und einige andere Tastenkombinationen.

Ich möchte, dass das gleiche / ursprüngliche Vim von Linux unter Windows verwendet wird. Ist diese Version auch für Windows verfügbar? Oder kann ich Einstellungen verwenden, die dem Unix-Format ähneln?

SibiCoder
quelle
2
Probieren Sie die Vim von tuxproject.de/projects/vim/x64
muru
6
Überprüfen Sie auch Ihre _vimrcDatei auf eine Zeile, in der etwas wie steht source $VIMRUNTIME/mswin.vim. Diese Datei ermöglicht es, dass viele Konfigurationssachen MSWindows-freundlich sind (einschließlich vieler Zuordnungen).
Roflo
7
Ich benutze gvim täglich unter Windows, sowohl die gvim-GUI als auch die nicht-grafische vim über die cmder-Konsole. Auch ich war frustriert, bis ich die Konfigurationsdatei mswin.vim ausschaltete und ein paar weitere Verbesserungen vornahm. Ich habe einfach die _vimrc-Datei gelöscht, die mit dem Programm installiert wurde, und habe meine Linux-.vimrc-Datei auf Windows kopiert und bin dann von dort aus gegangen.
Dan Jones
6
Andere Kommentatoren haben darauf hingewiesen, aber niemand hat es direkt gesagt: Die visuelle Blockierung funktioniert in Windows Vim einwandfrei. Sie müssen nur die "Windows-freundlichen" Tastenzuordnungen deaktivieren, die die ctrl-vTastenkombination mit einer Einfügezuordnung überschreiben . Es ist möglich (wahrscheinlich?), Dass Ihre anderen Probleme mit Windows Vim auf dasselbe Problem zurückzuführen sind, obwohl Sie nicht erwähnen, was sie alle sind, so dass es schwer ist, mit Sicherheit zu sagen.
Rich
4
OOTB gvim unter Windows funktioniert genauso wie unter Linux (modulo unterschiedliche Standardeinstellungen für einige Optionen). Sie müssen es anders konfiguriert haben.
Antony

Antworten:

14

Wenn ich unter Windows arbeiten muss (was häufiger der Fall ist, als ich möchte), verwende ich Cygwin, um ein Terminal zu erhalten, das ein wenig weniger beschissen ist als die ursprüngliche Windows-Befehlszeile. Cygwin bietet eine Umgebung, die versucht, mit Standard-Linux-Befehlen einer Bash-Konsole nahe zu kommen, und ist natürlich alles andere als fehlerfrei.

Siehe die Projektseite von Cygwin. Während der Installation wird ein Fenster geöffnet, in dem Sie auswählen können, welche Pakete Sie installieren möchten. Die Suchleiste erlaubt zu suchen Pakete unter anderen nützlichen Sachen zu installieren, (wie git, tmux, curl, wget, etc.) Sie können Typ - vimPakete wie und wählen Sie vim, vim-common, vim-doc, gvim. Dadurch wird ein Vim-Editor installiert, der in etwa dem entspricht, an den Sie unter Linux gewöhnt sind.

Sobald alles installiert ist (was manchmal etwas lang sein kann), können Sie Cygwin starten, das ein Terminal anzeigt, und Sie können Vim wie gewohnt starten und Ihr Linux .vimrcund Ihren üblichen Plugin-Manager verwenden. Der Hauptnachteil ist die Kompatibilität von Farben, die oft optimiert werden müssen und trotzdem beschissen aussehen.

Beachten Sie, dass ich Cygwin aus Gewohnheit benutze , aber andere Lösungen (wie zum Beispiel cmder ) existieren. Keiner von ihnen ist einwandfrei, daher sollten Sie mehrere ausprobieren und Ihren Favoriten finden.

Beachten Sie auch, dass Minze ein guter Weg ist, Cygwin ein wenig weniger beschissen zu machen.

statox
quelle
1
Es hat mehrere Probleme. Unicode-Zeichen werden nicht richtig angezeigt. Einige Mehrbyte-Zeichen sind ausgeblendet.
SibiCoder
1
Genau deshalb habe ich angegeben, dass "Keiner von ihnen ist makellos": Bisher sind Cygwin (und Äquivalente) nur ein Workaround. Ich bin kein Windows-Experte, aber vielleicht führt die neue Zusammenarbeit zwischen Canonical und Microsoft zu besseren Alternativen.
statox
Ich benutze Babun in diesen Tagen, obwohl ich denke, dass der zugrunde liegende Cygwin nicht so frisch ist wie eine Vanille-Installation.
Rolf
Seit Windows 10 und insbesondere seit den zusätzlichen Updates (Wellung, OpenSh, korrekter Textüberlauf, 24-Bit-Farbunterstützung) ist die direkte DOS-Eingabeaufforderung jetzt besser. Die Schriftwiedergabe in den DOS / Powershell-Eingabeaufforderungen ist normalerweise die beste, die ich für Windows-Terminal-Apps gesehen habe. Wenn Sie Git für Windows installieren, enthält das außerdem fast alle Linux-Befehlszeilentools, die Sie benötigen, die Sie C:\Program Files\Git\usr\binIhrem Pfad hinzufügen oder ähnliches.
ICC97
11

Ab Windows 10 Anniversary Update können Sie das Bash on Ubuntu-Terminal verwenden , um ein Linux-Subsystem auszuführen, auf dem Sie apt installalles tun können, was Sie in Ubuntu gewohnt sind. Ihr Windows-Dateisystem ist aktiviert, sodass Sie Vim in der Shell verwenden können, um Ihre Dateien zu bearbeiten.

Chad Gilbert
quelle
2
Denken Sie jedoch daran, dass Sie immer noch über die Windows-Konsole auf Vim zugreifen, die durch Hervorhebungen von Farben und Syntax stark eingeschränkt ist. Selbst mit dem Creators-Update, das 256 Farben auf die Konsole bringen soll, ist es mir nicht gelungen, die Syntax-Hervorhebung zu verbessern.
icc97
@ icc97 Ich erinnere mich nicht genau, was ich getan habe (ich verstehe Farben und Anschlüsse nicht so gut), aber ich konnte Farben erhalten, die auf vim gut aussehen, und das Problem mit dem blau-auf-schwarz-Text, der in erschien, beheben die Bash auf Ubuntu-Terminal-Ausgabe. Jetzt ist es ein bisschen bunt, aber es funktioniert gut. Auch mit Xming funktioniert gVim in Ubuntu unter Windows einwandfrei (Ich habe gerade die Benutzeroberfläche getestet und versucht, Dateien usw. zu speichern).
Formagella
@Formagella Ich bin ein bisschen ein Trottel mit meinen Farben. Ich habe stundenlang versucht, solarisierte Farben auf einen ähnlichen Standard wie Linux Vim zu bringen. Ich habe einige meiner Aktionen in dieser Ausgabe aufgeschrieben . GVim hat jedoch eine ziemlich perfekte Syntax-Hervorhebung (und fett / kursiv) in Windows, so dass ich aufgehört habe zu kämpfen und nur das verwendet habe. Da Sie sich in der DOS-Eingabeaufforderung befinden, ist die Hervorhebung der OK-Syntax großartig und sehr nützlich für SSH-Sitzungen, aber für die Vollzeitbearbeitung habe ich aufgegeben.
ICC97
1
Es gibt jetzt eine Version von Mintty , die als Terminal für Bash unter Ubuntu unter Windows fungiert, und eine Implementierung von Solarized, die für Mintty entwickelt wurde. Ich habe es gerade getan und es war eine relativ schmerzlose Erfahrung!
Amndeep7
@Formagella Ich habe endlich Farben, die in der Windows-Konsole einwandfrei funktionieren. In Vim wurde eine Korrektur durchgeführt . Ab Vim 8.1 + einem 24-Bit-Farbschema erhalten Sie jedoch schöne Farben in der einfachen DOS- und WSL-Eingabeaufforderung. Ich habe eine separate Antwort , die mit den verschiedenen Windows-Konsolen-Farbschemata experimentiert und ein paar zum Arbeiten bringt.
ICC97
4

Wie Roflo und Rich in ihren Kommentaren hier und hier erwähnt haben , liegt das Problem, dass Sie den visuellen Block nicht verwenden können (ich bin mir nicht sicher, welcher rxBefehl ist), darin, dass die systemweiten vimrc ( $VIM\_vimrc) -Quellen $VIMRUNTIME\mswin.vimWindows-ähnliche Zuordnungen wie Ctrl+ vfür definieren Einfügen, Ctrl+ czum Kopieren, Ctrl+ xzum Ausschneiden.

Der einfachste Weg , dies zu umgehen ist es, eine erstellen _vimrcDateien in Ihrem Home - Verzeichnis (Beachten Sie, dass Windows - Version von vim Anwendungen _vimrcstatt .vimrc). Wie Sie in sehen können :h vimrc, sucht vim an mehreren Stellen nach vimrc und verwendet nur den ersten, den es findet, während der Rest ignoriert wird. Der im Home-Verzeichnis wird immer zuerst gesucht / verwendet.

Minimale Schritte:

  • Öffne gvim oder vim
  • :e ~/_vimrc
  • :w
doubleDown
quelle
0

Ein weiteres recht kleines, aber nicht weniger umfangreiches Update wurde für Windows 10 für den Build 1803 durchgeführt. Sie fügten 24-Bit-Unterstützung für die Konsole hinzu (Eingabeaufforderung cmd / powershell). In Vim 8.1 ( https://www.vim.org//download.php/#pc ) sie zusätzliche Unterstützung für termguicolorswelche Mittel Sie die volle 24-Bit - Farbunterstützung innerhalb der Vim - Konsole erhalten. Ich habe kürzlich eine Antwort darauf gepostet , dass die Farbunterstützung funktioniert .

Dies bedeutet jedoch, dass die Ausführung von Vim in der DOS-Eingabeaufforderung ziemlich vollständig unterstützt wird. Sie müssen also kein Linux-Subsystem oder andere Abhängigkeiten außerhalb von Vim selbst installieren, um Vim zum Laufen zu bringen. Ich finde es immer noch etwas langsam, aber es ist toll, den Fortschritt zu sehen.

Bildbeschreibung hier eingeben

Funktionsweise der Vim-Konsole (in Windows 10 Build 1803+):

  • Fluggesellschaft mit Powerline-Schriftarten
  • 24-bit colortheme(zB vim-solarized8, tender)
  • So ziemlich jedes Plugin (zB jedes Tim Pope Plugin, FZF und Ripgrep)
  • vimdiff
  • Das Konsolenfenster rastet korrekt ein und der Text fließt korrekt - dies ist besser als bei GVim

Dinge die nicht funktionieren / Probleme:

  • Es ist langsamer als GVim
  • Fett / kursiv gedruckte Schriften
  • UTF-8-Zeichen sind begrenzt - z. B. werden einige der Standard-Airline-Symbole nicht angezeigt
icc97
quelle