Mac OS X: So öffnen Sie vim im Terminal, wenn Sie auf eine Datei doppelklicken
19
Ich habe meinen eigenen benutzerdefinierten vim-Dateityp mit Hervorhebung usw. definiert. Ich möchte ihn mit dem terminalbasierten vim öffnen, wenn ich darauf doppelklicke. Ich benutze Mac OS X. Gibt es Hinweise, wie Sie damit beginnen sollen?
Erstellen Sie eine Automator-Anwendung, um das folgende Applescript auszuführen:
on run {input}
set the_path to POSIX path of input
set cmd to "vim " & quoted form of the_path
tell application "System Events" to set terminalIsRunning to exists application process "Terminal"
tell application "Terminal"
activate
if terminalIsRunning is true then
do script with command cmd
else
do script with command cmd in window 1
end if
end tell
end run
Speichern Sie die Automator-Anwendung. (zB nenne es Vim Launcher )
Klicken Sie mit der rechten Maustaste (oder bei gedrückter Ctrl-Taste ) auf Ihre benutzerdefinierte vim-Datei (z. B. .vim als Erweiterung verwenden) und wählen Sie unter Öffnen mit… die untere Option Andere… und suchen Sie Ihre Automator-Anwendung (z. B. Vim Launcher ). Klick es.
Um in Automator zu erstellen, können Sie auf klicken New Documentund die ApplicationVorlage auswählen . Actions->LibraryKlicken Sie Utilitiesdann auf der Registerkarte auf Run AppleScript.
arbeitet für mich in Yosemite. Es gibt jedoch einen seltsamen Randfall
Ilias Karim
1
Dies scheint mit iTerm am 10.12.5
oarfish 20.06.17
1
In den ungefähr fünf Minuten, in denen ich damit gespielt habe, konnte ich keine eingebaute Option dafür finden.
Sie können jedoch wahrscheinlich ein einfaches Applescript schreiben, das den absoluten Pfad der Dateien übernimmt und dann vim {path}in einer Bash-Shell ausgeführt wird.
set the_path to POSIX path of input
set cmd to "vim " & quoted form of the_path & "; exit"
tell application "System Events" to set terminalIsRunning to exists application process "Terminal"
tell application "Terminal"
if terminalIsRunning is true then
do script with command cmd
else
do script with command cmd in window 1
end if
activate
end tell
end run
Ich benutze stattdessen dieses AppleScript. Es aktiviert Terminal.app nach (nicht vor!) Der Ausführung, um zu verhindern, dass Dinge bei der Verwendung von Leerzeichen seltsam wirken. Es schließt auch das Fenster, nachdem Vim beendet wurde. Stellen Sie einfach Terminal.app so ein, dass es nach sauberen Exits geschlossen wird.
Ich wollte der akzeptierten Antwort nur einen Kommentar mit den Codeänderungen hinzufügen, die erforderlich sind, damit sie in Yosemite funktioniert. Da ich jedoch keinen ausreichenden Ruf habe, konnte ich keinen Kommentar hinzufügen und daher versuchen, über eine Antwort zu antworten.
Das Skript "Open File in Terminal from Finder" funktionierte in Mavericks einwandfrei, funktionierte jedoch nach dem Upgrade auf Yosemite nicht mehr. In Yosemite würde der Code in der akzeptierten Antwort nur beim ersten Mal funktionieren - das heißt, wenn ich auf die erste Datei im Finder doppelklicke, wird sie problemlos geöffnet. Wenn ich jedoch auf die nachfolgenden Dateien klicke, werden nur leere neue Terminalfenster geöffnet (vim öffnet sich nicht) mit Eingabeaufforderung.
Nachdem Sie mehrere Websites durchgesehen haben, haben Sie eine Version zusammengeschustert, die einwandfrei funktioniert. Ich bin mir sicher, dass es einen besseren Weg gibt, aber ich habe keine Erfahrung mit Applescript und überlasse es anderen, Verbesserungen vorzuschlagen.
on run {input}
set the_path to POSIX path of input
-- set cmd to "vim " & quoted form of the_path
-- we can do a change directory to make NerdTree happy
set cmd to "clear;cd `dirname " & the_path & "`;vim " & quoted form of the_path & "; exit"
tell application "System Events" to set terminalIsRunning to exists application process "Terminal"
tell application "Terminal"
if terminalIsRunning is true then
-- CHANGED code starts --
set newWnd to do script with command cmd
do script with command cmd in newWnd
-- CHANGED code ends --
else
do script with command cmd in window 1
end if
activate
end tell
end run
In einem 2017 Macbook Pro mit Touchbar funktioniert die [akzeptierte Antwort] ( superuser.com/a/139949/44785 ) einwandfrei . Ich möchte jedoch weiterhin die Zeile "change directory" (cd) hinzufügen, um sicherzustellen, dass sich die Datei im pwd befindet. Dies hilft NerdTree, nur die Dateien aus dem Ordner der geöffneten Datei anzuzeigen.
New Document
und dieApplication
Vorlage auswählen .Actions->Library
Klicken SieUtilities
dann auf der Registerkarte aufRun AppleScript
.In den ungefähr fünf Minuten, in denen ich damit gespielt habe, konnte ich keine eingebaute Option dafür finden.
Sie können jedoch wahrscheinlich ein einfaches Applescript schreiben, das den absoluten Pfad der Dateien übernimmt und dann
vim {path}
in einer Bash-Shell ausgeführt wird.quelle
Ich benutze stattdessen dieses AppleScript. Es aktiviert Terminal.app nach (nicht vor!) Der Ausführung, um zu verhindern, dass Dinge bei der Verwendung von Leerzeichen seltsam wirken. Es schließt auch das Fenster, nachdem Vim beendet wurde. Stellen Sie einfach Terminal.app so ein, dass es nach sauberen Exits geschlossen wird.
quelle
Ich wollte der akzeptierten Antwort nur einen Kommentar mit den Codeänderungen hinzufügen, die erforderlich sind, damit sie in Yosemite funktioniert. Da ich jedoch keinen ausreichenden Ruf habe, konnte ich keinen Kommentar hinzufügen und daher versuchen, über eine Antwort zu antworten.
Das Skript "Open File in Terminal from Finder" funktionierte in Mavericks einwandfrei, funktionierte jedoch nach dem Upgrade auf Yosemite nicht mehr. In Yosemite würde der Code in der akzeptierten Antwort nur beim ersten Mal funktionieren - das heißt, wenn ich auf die erste Datei im Finder doppelklicke, wird sie problemlos geöffnet. Wenn ich jedoch auf die nachfolgenden Dateien klicke, werden nur leere neue Terminalfenster geöffnet (vim öffnet sich nicht) mit Eingabeaufforderung.
Nachdem Sie mehrere Websites durchgesehen haben, haben Sie eine Version zusammengeschustert, die einwandfrei funktioniert. Ich bin mir sicher, dass es einen besseren Weg gibt, aber ich habe keine Erfahrung mit Applescript und überlasse es anderen, Verbesserungen vorzuschlagen.
quelle