Mac OS X: cara membuka vim di terminal ketika klik dua kali pada file
19
Saya telah menetapkan jenis file vim kustom saya sendiri dengan highlighting dll. Saya ingin membukanya menggunakan vim berbasis terminal ketika saya mengklik dua kali di atasnya. Saya menggunakan mac os x. Adakah petunjuk tentang bagaimana memulainya?
Buat Aplikasi Automator untuk menjalankan applescript berikut:
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
Simpan aplikasi automator. (mis. beri nama Vim Launcher )
Klik kanan (atau kontrol-klik) pada file jenis vim khusus Anda (mis. Gunakan .vim sebagai ekstensi) dan di bawah Buka Dengan ... pilih opsi bawah Lainnya ... dan temukan Aplikasi Automator Anda (mis. Vim Launcher ), double- klik itu.
bekerja untuk saya di Yosemite. ada satu kasus tepi yang aneh, meskipun
Ilias Karim
1
Ini sepertinya tidak bekerja dengan iTerm pada 10.12.5
oarfish
1
Dari lima atau lebih menit saya menghabiskan waktu bermain dengannya untuk melihat apakah itu akan saya tidak dapat menemukan opsi built-in untuk melakukannya.
Namun, Anda mungkin dapat menulis Applescript sederhana yang akan mengambil path absolut file dan kemudian dijalankan vim {path}dalam bash shell.
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
Saya menggunakan AppleScript ini sebagai gantinya. Ini mengaktifkan Terminal.app setelah (bukan sebelum!) Eksekusi untuk menghentikan hal-hal dari bertindak aneh ketika menggunakan Spaces. Itu juga menutup jendela setelah Vim keluar. Cukup atur Terminal.app untuk ditutup setelah keluar bersih.
Saya hanya ingin menambahkan komentar ke jawaban yang diterima dengan perubahan kode yang diperlukan untuk membuatnya berfungsi di Yosemite, tetapi karena saya tidak memiliki reputasi yang cukup tidak dapat menambahkan komentar, dan karenanya berusaha membalas melalui jawaban.
Skrip "Buka File di Terminal dari Finder" berfungsi dengan baik di Mavericks, tetapi berhenti berfungsi setelah peningkatan ke Yosemite. Di Yosemite, kode dalam jawaban yang diterima hanya akan berfungsi pertama kali - artinya ketika saya mengklik dua kali file pertama di Finder, kode itu terbuka dengan baik, tetapi ketika saya mengklik file-file berikutnya, mereka hanya akan membuka jendela terminal baru yang kosong (vim tidak akan terbuka) dengan command prompt.
Setelah melalui beberapa situs, membuat versi yang berfungsi baik. Saya yakin ada cara yang lebih baik untuk melakukannya, tetapi saya tidak memiliki pengalaman dengan Applescript dan karenanya akan menyerahkannya kepada orang lain untuk menyarankan perbaikan.
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
Dalam Macbook Pro 2017 dengan Touchbar, saya menemukan bahwa [jawaban yang diterima] ( superuser.com/a/139949/44785 ) berfungsi dengan baik. Tapi saya ingin tetap menambahkan baris "direktori perubahan" (cd) untuk memastikan pwd di mana file tersebut berada. Ini membantu NerdTree untuk hanya menampilkan file dari folder file yang dibuka.
New Document
, pilihApplication
templat. DiActions->Library
tab, klikUtilities
, laluRun AppleScript
.Dari lima atau lebih menit saya menghabiskan waktu bermain dengannya untuk melihat apakah itu akan saya tidak dapat menemukan opsi built-in untuk melakukannya.
Namun, Anda mungkin dapat menulis Applescript sederhana yang akan mengambil path absolut file dan kemudian dijalankan
vim {path}
dalam bash shell.sumber
Saya menggunakan AppleScript ini sebagai gantinya. Ini mengaktifkan Terminal.app setelah (bukan sebelum!) Eksekusi untuk menghentikan hal-hal dari bertindak aneh ketika menggunakan Spaces. Itu juga menutup jendela setelah Vim keluar. Cukup atur Terminal.app untuk ditutup setelah keluar bersih.
sumber
Saya hanya ingin menambahkan komentar ke jawaban yang diterima dengan perubahan kode yang diperlukan untuk membuatnya berfungsi di Yosemite, tetapi karena saya tidak memiliki reputasi yang cukup tidak dapat menambahkan komentar, dan karenanya berusaha membalas melalui jawaban.
Skrip "Buka File di Terminal dari Finder" berfungsi dengan baik di Mavericks, tetapi berhenti berfungsi setelah peningkatan ke Yosemite. Di Yosemite, kode dalam jawaban yang diterima hanya akan berfungsi pertama kali - artinya ketika saya mengklik dua kali file pertama di Finder, kode itu terbuka dengan baik, tetapi ketika saya mengklik file-file berikutnya, mereka hanya akan membuka jendela terminal baru yang kosong (vim tidak akan terbuka) dengan command prompt.
Setelah melalui beberapa situs, membuat versi yang berfungsi baik. Saya yakin ada cara yang lebih baik untuk melakukannya, tetapi saya tidak memiliki pengalaman dengan Applescript dan karenanya akan menyerahkannya kepada orang lain untuk menyarankan perbaikan.
sumber