Wie kann ich vim als externen Editor in FarManager einstellen und vollständige Pfadnamen übergeben?

5148
Justin Dearing

Ich versuche, VIM als meinen externen Editor im Dateimanager far zu konfigurieren . Ich möchte in der Lage sein, mehrere Elemente in einem Ordner auszuwählen, von denen einige Verzeichnisse sind, und ihre vollständigen Pfade an die vim-Befehlszeile übergeben werden.

Update: Um genau zu klären, was ich tun möchte. Ich möchte in der Lage sein, mehrere Dateien wie folgt auszuwählen:

Far Manager Screen Capture

und habe vim so geöffnet:

"C:\Program Files\Vim\vim73\vim.exe" c:\src\TalkMaterials "c:\src\abba 1.txt" "c:\src\abba 3.txt" 

Dadurch werden alle Dateien in verschiedenen Puffern geöffnet.

7
Nur um sicher zu gehen: Was versuchen Sie zu tun: Öffnen Sie eine einzelne Datei oder mehrere ausgewählte Dateien? Bei `! @AFQ!` Handelt es sich um mehrere ausgewählte Dateien, deren Namen in eine temporäre Datei X geschrieben werden. Name X wird in der Befehlszeile an Vim gesendet. Datei X enthält ausgewählte Dateinamen, Anführungszeichen (!). Ich habe das gerade überprüft. Alles sieht gut aus. Was ist in Ihrem Fall also falsch? Roman Kuzmin vor 14 Jahren 0
Geben Sie mindestens ein Beispiel für eine korrekte Befehlszeile (was Sie erhalten möchten) und sagen Sie, was Sie tatsächlich von Far erhalten. Roman Kuzmin vor 14 Jahren 1
Vielleicht sollte es mit dem vorhandenen Tag "far-manager" versehen werden. Roman Kuzmin vor 14 Jahren 1
Hier finden Sie eine Reihe von Lösungen, die Batch-Dateien verwenden: http://forum.farmanager.com/viewtopic.php?f=36&t=5851 Roman Kuzmin vor 13 Jahren 0

2 Antworten auf die Frage

2
Justin Dearing

Das nächste, was ich kann, ist vim! & Dies erzeugt die folgende Befehlszeile

"C:\Program Files\Vim\vim73\vim.exe" TalkMaterials "abba 1.txt" "abba 3.txt" 

Das scheint gut zu funktionieren, aber ich würde trotzdem gerne vollständige Pfade an vim übergeben. Bevor ich meine eigene Antwort akzeptiere, würde ich gerne wissen, ob es einen Weg gibt, alle Pfade an vim zu übergeben.

Vielleicht sollten Sie Ihre eigene Antwort akzeptieren. Laut der Far-Hilfe gibt es kein derartiges Merkmal von "speziellen Symbolen" als Liste vollständiger Pfade. Versuchen Sie diese Frage im Fernforum zu stellen, ich könnte etwas vermissen. Fragen Sie genau nach einer Liste der vollständigen Pfade mehrerer ausgewählter Dateien. Roman Kuzmin vor 14 Jahren 0
Ich habe dies in Mantis http://bugs.farmanager.com/view.php?id=1585 beantragt und auch im Forum nachgefragt. http://forum.farmanager.com/viewtopic.php?f=36&t=5851&p=71719#p71719 Justin Dearing vor 14 Jahren 0
2
Roman Kuzmin

Ich habe die Lösung gefunden, die genau das tut, wonach Sie fragen. Dafür ist das Plug-in FarNet und sein Modul PowerShellFar erforderlich:

http://code.google.com/p/farnet/

Sie benötigen außerdem .NET 2.0+ und Windows PowerShell 2.0, die installiert sind. Dies ist bereits unter Windows 7 der Fall, frühere Windows-Versionen sind jedoch nicht so glücklich. Außerdem ist PowerShell 2.0 nur für Windows XP SP 3 und höher (nicht einmal SP 2).

Wenn Sie noch keine Angst haben, ist hier der Trick. Im externen Editor-Befehl rufen wir PowerShellFar über das Befehlszeilenpräfix ">:" auf.

>: & vim @(Get-FarPath -Selected) # 

Das ist es. Es funktioniert, ich habe es ausprobiert (nicht bei vim, aber ich habe keine). Es ist schnell und startet nicht jedes Mal PowerShell. Der Kern wird einmal geladen, wenn Far startet.

Hinweis: Das letzte '#' im Befehl ist eine kleine PowerShellFar-Konvention: Nicht zu den persistenten Befehlsverlaufsbefehlen mit '#' am Ende. Dieser Befehl dient zum Öffnen des externen Editors. Er wird einmal geschrieben und wir möchten nicht, dass er den Verlauf anderer manuell eingegebenen Befehle verschmutzt.

PS: Ich bin der Autor von FarNet und PowerShellFar, nur für den Fall. Sie sind Open Source, ausgereift und robust. Ich würde sie auf jeden Fall empfehlen, sofern Sie Far Manager verwenden und Windows in letzter Zeit alle Voraussetzungen für diese Tools hat.

Das ist wirklich nützlich. Es funktioniert auf meinem Windows 2008-Server nicht, da es nicht R2 ist, aber es funktioniert auf allen meinen Workstations. Justin Dearing vor 14 Jahren 0