Mengatur iTerm2 sebagai terminal default (OSX Lion)

61

Saya ingin mengatur iTerm2 bukan terminal.app sebagai terminal default saya.

Go2Shell misalnya memungkinkan Anda membuka terminal ke direktori saat ini di Finder. Saya ingin dapat menggunakan iterm2 instad dari terminal.app.

Saya tidak menemukan jawaban pada dokumentasi resmi.

Terima kasih atas bantuan Anda.

Pembaruan: ShellTo adalah alternatif yang bagus untuk Go2Shell dan mendukung iTerm2

politicus
sumber
Terminal default untuk apa? Anda baru saja meluncurkan yang Anda inginkan dan meninggalkan yang lain sendirian ...? Tolong jelaskan lebih detail apa yang Anda minta.
Daniel Beck
1
Go2Shell uraian dari app store: Menambahkan dukungan iTerm, iTerm 2 dan bahkan xterm :) . Lihat saja preferensi-nya. Juga, setidaknya untuk Terminal.app, fitur ini telah menjadi bagian dari OS selama setengah tahun, lihat di sini (item terakhir).
Daniel Beck
Oh, aku tidak melihatnya. Salahku!
politicus

Jawaban:

58

Terminal.appmenyatakan dirinya sebagai penangan ssh, telnetdan x-man-pageskema URL.

Itu juga mendaftarkan ekstensi file .term(sesi), .terminal(pengaturan), .tooldan .command(skrip), dan itu sendiri sebagai editor / penampil untuk ini.

Selain itu, tidak ada terminal default di OS X. Ini hanya sebuah aplikasi yang dapat menangani skema URL dan jenis file.


iTerm mampu menangani semua ini kecuali Terminal.app khusus .term/ .terminal.

Untuk jenis file, cukup buka dialog Dapatkan Info dan kaitkan semua file seperti ini dengan iTerm. Untuk skema URL, Anda dapat mengunduh dan menginstal panel preferensi Aplikasi Default dan mengubah asosiasi di sana. Anda juga dapat menggunakannya sebagai metode alternatif untuk mengubah asosiasi tipe file.

masukkan deskripsi gambar di sini


Semua pengaturan ini khusus untuk pengguna dan disimpan di ~/Library/Preferences/com.apple.LaunchServices.plist. Tentu saja Anda dapat mengeditnya di editor yang sesuai. Cukup mudah. Cuplikan layar Xcode 4 yang menunjukkan hasil perubahan x-man-pagedi panel preferensi Aplikasi Default :

masukkan deskripsi gambar di sini


Terminal.app juga menyediakan Layanan berikut untuk aplikasi lain:

  • Terminal Baru di Folder
  • Tab Terminal Baru di Folder
  • Buka halaman manual di Terminal
  • Cari halaman manual di Terminal

Asosiasi dengan Terminal.app adalah kode-keras. Anda perlu membuat Layanan Anda sendiri misalnya menggunakan Automator dan / atau AppleScript untuk menggantikannya.


Jika Terminal digunakan melalui API AppleScript, tidak ada cara untuk hanya menggantinya dengan iTerm dalam semua kasus, karena API mereka sangat berbeda. Ini sering membutuhkan perubahan besar pada program atau skrip yang melakukan itu.

Daniel Beck
sumber
2
Terima kasih atas jawaban Anda yang luar biasa. Jelas, sangat informatif. Baru di OSX, saya tidak tahu Aplikasi Default.
politicus
Alat luar biasa. Senang itu masih berfungsi dengan baik di bawah El Capitan.
ifwdev
Ya ampun, ini sangat membantu. Saya tidak sengaja menghapus Terminal.app (atau mengacaukannya begitu buruk sehingga tidak mau terbuka) dan ini berfungsi untuk memperbaikinya, dan build React Native saya menggunakan iterm sejauh ini begitu baik, mengetuk kayu. THX: D
tidelake
64

Anda harus dapat membuat iTerm.appterminal default Anda dengan memilih "Jadikan Default" dari bilah menu.

Menu file drop down

Atau Anda dapat menggunakan pintasan keyboard.

+ + +\

setengah kubus
sumber
1
Tampaknya tidak berfungsi untuk sebagian besar tes saya. GitHub.app masih membuka Terminal dan begitu juga SublimeText.
fregante
5
@ bfred.it: Sayangnya, nama item menu itu menyesatkan: satu - satunya yang dilakukannya adalah menjalankan skrip shell yang dibuka dari Finder di iTerm2 daripada Terminal. Itu tidak akan secara ajaib menyebabkan aplikasi pihak ketiga seperti GoShell, GitHub, Alfred, ... untuk menggunakan iTerm2, seperti yang dijelaskan dalam jawaban Daniel Beck .
mklement0
Saya pikir ini adalah jawaban yang paling tepat saat ini ...
mecampbellsoup
7

Seperti disebutkan dalam komentar di atas, Go2Shell dapat dikatakan menggunakan iTerm2

Untuk membuka jendela konfigurasi, ikuti langkah-langkah ini:

  1. Jalankan program terminal favorit Anda.
  2. Masukkan: buka -a Go2Shell --args config
  3. Tekan [kembali].

masukkan deskripsi gambar di sini

http://zipzapmac.com/Go2Shell

gef
sumber
6

Seperti yang ditemukan di blog ma.ttias.be , iTerm2 dapat mendaftarkan dirinya sebagai terminal default untuk beberapa skema URL umum: Anda hanya perlu memeriksa skema yang sesuai di bagian paling bawah tab General di Profil saat ini dari preferensi iTerm

iTerm> Préférences> Profiles> Général> Skema URL

loranger
sumber
Sebagian besar to the point menjawab IMO.
markus
5

Untuk memberikan ringkasan pragmatis dari jawaban yang ada :

  • macOS (OS X) TIDAK mendukung konsep terminal default .

    • Lihat jawaban Daniel Beck yang bermanfaat untuk informasi latar belakang.
    • iTerm2itu sendiri agak menyesatkan menawarkan item menu bernamaiTerm2 > Make iTerm2 Default Term (seperti yang disajikan dalam jawaban halfcube ), tetapi satu-satunya hal yang dilakukan adalah membuat skrip run Finder dibuka dari itu di iTerm2 (lebih khusus lagi, ia menugaskan shellperan UTI public.unix-executableke Finder) - yang merupakan bukan kasus penggunaan biasa.
  • Oleh karena itu, aplikasi harus dikonfigurasi secara INDIVIDUALLY untuk menggunakan iTerm2 daripada Terminal, JIKA mereka mendukung itu :

    • Sementara Go2Shellaplikasi yang meminta pertanyaan OP memang memiliki dialog konfigurasi yang mendukung iTerm2 ( open -a Go2Shell -- config, aplikasi tampaknya tidak berfungsi sama sekali pada OSX 10.11.6 (mengklik tombol bilah alat pada v2.23, satu-satunya hal yang pernah terjadi adalah dialog konfigurasi muncul, bahkan setelah diklik Install Go2Shell to Finder).
    • The dibayar alternatif yang disebutkan oleh OP - aplikasi ShellTo- juga mendukung iTerm2 pada prinsipnya , namun sampai tulisan ini tidak mendukung saat ini versi, v3 +.
mklement0
sumber
1

Apa yang diposting @gef sebagian adalah apa yang saya lakukan. Namun, inilah yang berhasil bagi saya.

Buka aplikasi terminal Anda:

open -a Go2Shell --args config

Kemudian pada opsi salin kode berikut, Anda mungkin harus mengklik kanan dan menempel karena perintah dibatasi:

cd %PATH%;clear;pwd;open -a iTerm.app .;killall Terminal;

Dan voila, aplikasi terminal harus terbuka memberikan parameter baru untuk iTerm, lalu tutup sendiri lagi.

Jan
sumber
0

Utas ini untuk OS X Lion, dan tampaknya ketinggalan zaman untuk El Capitan. Namun, karena saya menemukan halaman ini ketika mencari cara agar XCode meluncurkan iTerm daripada Terminal, saya pikir saya akan memposting solusi saya.

Sayangnya, ini tidak gratis, tetapi dapat dilakukan menggunakan aplikasi preferensi sistem Peluncuran Ajaib . Menggunakan alat itu, saya mengatur iTerm sebagai aplikasi default untuk .term, .terminaldan .commandekstensi. Itu melakukan trik untuk kebutuhan saya.

Semoga ini membantu!

Erik
sumber
Bisakah Anda memperluas cara kerja perangkat lunak ini? Silakan lihat Cara merekomendasikan perangkat lunak .
Burgi
Apakah Anda mengatakan jawaban saya tidak berfungsi lagi untuk El Capitan? Bisakah Anda mengklarifikasi?
Daniel Beck
0

Anda dapat menjalankan perintah apa pun setelah aplikasi terminal dijalankan sehingga untuk menjalankan iterm2 alih-alih aplikasi terminal, Anda dapat membuat skrip yang berjalan setiap kali terminal dibuka dan skrip ini harus membuka iterm dan mematikan aplikasi terminal

Langkah-langkah untuk membuat skrip

  • Vi /Applications/run_iterm.sh
  • Salin perintah berikut dan tempel di skrip

    #! /bin/bash
    open -a iTerm.app
    killall Terminal
    
  • Simpan file

  • Chmod 755 /Applications/run_iterm.sh

Sekarang skrip kami siap, langkah terakhir adalah menjalankannya setiap kali aplikasi terminal dibuka. Jalankan terminal. Pergi ke preferensi -> Umum -> shell terbuka dengan -> pilih perintah "path lengkap" dan rekatkan /Applications/./run_iterm. sh di dalam buku teks akhirnya tutup aplikasi terminal dan jalankan lagi masukkan deskripsi gambar di sini

Mohammed SA Kwaik
sumber
1
Wow; mengkonfigurasi program untuk secara otomatis membunuh dirinya sendiri kapan pun dimulai. Apa yang mungkin salah? :-( ⁠
Scott