Saya menempelkan nama file / etc ke Terminal sepanjang waktu, dan kadang-kadang isi clipboard bukan yang saya harapkan.
Seringkali hasilnya adalah beberapa ratus baris teks (misalnya, kode sumber) disisipkan ke command prompt, memicu dewa hanya tahu apa kekotoran.
Apakah ada cara untuk mencegah bash mengeksekusi secara membuta apa pun yang saya tempelkan? Saya berharap itu hanya akan menempelkan teks, dan biarkan saya memutuskan setelah jika saya ingin menjalankannya.
Ctrl
alih-alihCmd
. Juga, tanpa melakukanset -o emacs
itu sepertinya digunakan$EDITOR
. Terima kasih! ini sempurna.Solusi paling sederhana adalah dengan menggunakan editor teks sebagai penyangga di mana Anda dapat memeriksa ulang konten, kemudian menyalin dari editor teks ke Terminal. Jika Anda menggunakan TextEdit untuk ini, Anda mungkin ingin memastikan itu dalam mode teks biasa ( Format menu → Make Plain Text ; ⇧⌘T) untuk menghindari masalah seperti menempelkan tautan sebagai tautan, bukan URL.
Hal lain yang perlu diperhatikan adalah bahwa Bash akan mencoba untuk mengeksekusi semua yang mendahului karakter baris baru, jadi jika Anda menyalin blok teks, Anda mungkin ingin memastikan bahwa pilihan Anda berhenti setelah karakter terakhir, daripada memasukkan akhir dari baris.
Kamu mau ini:
Bukan ini:
Tentu saja, jika Anda menyalin hal-hal dengan baris baru dalam teks ( yaitu beberapa paragraf), maka Anda harus mengedit pilihan secara manual.
sumber
Saya mendapatkan ini juga!
Solusi saya adalah menempelkan menggunakan manajer clipboard Launchbar , dengan tombol pintas
Cmd+\
. Ini menampilkan daftar kliping baru-baru ini, memungkinkan saya untuk melihat pratinjau hasilnya sebelum menempel: jika saya tidak melihat konten yang saya harapkan, saya menekan escape sebelum melepaskan Cmd. Saya juga dapat menggunakan tombol panah untuk 'memasukkan' kliping teks, memungkinkan saya melihat konten baris demi baris.Saya percaya sebagian besar peluncur melakukan ini - Alfred (addon powerpack) & Quicksilver (gratis), misalnya.
sumber
Anda mungkin ingin melihat ke manajer clipboard. Saya menggunakan yang gratis, ringan yang disebut Jumpcut . Ini memungkinkan saya untuk menyimpan beberapa clipboard dan melihat apa yang tersimpan di dalamnya sebelum benar-benar menempelkan konten, semuanya dari keyboard.
Ada banyak manajer clipboard di luar sana, jadi jika Jumpcut tidak mengapungkan perahu Anda, mungkin yang lain akan lebih sesuai dengan kebutuhan Anda
sumber
Gunakan pasta yang dikurung .
Bracketed paste adalah fitur di mana terminal memberi tahu shell bahwa Anda menempelkan sesuatu alih-alih mengetiknya saja, sehingga shell tidak dapat menjalankan perintah sampai Anda menekan Enter.
Terminal.app mendukung ini, tetapi tidak semua terminal melakukannya.
Demikian juga, tidak semua cangkang mendukungnya. Versi bash yang datang dengan OS X tidak mendukung pasta braket (pada saat penulisan, ini v3.2.57).
Namun, zsh mendukung pasta yang dikurung:
Zsh sebagian besar kompatibel dengan bash (bahkan skrip mungkin akan berfungsi, kecuali jika Anda menggunakan semacam fitur yang tidak jelas), dan lebih baik dalam banyak hal — misalnya, ia bahkan memiliki pengeditan perintah multi-line!
sumber
Anda dapat menempatkan skrip Bash kecil ini di suatu tempat di
PATH
:Jika saya menaruh konten ini
/usr/local/pbexecute
sebagai contoh dan membuatnya dapat dieksekusi, saya dapat dengan aman mengeksekusipbexecute
dari baris perintah, yang akan meminta konfirmasi saya sebelum mengeksekusi isi clipboard.Pendekatan alternatif adalah meluncurkan editor teks dengan konten clipboard dari dalam shell dan secara otomatis menjalankan konten yang diedit saat keluar. Sebagai contoh:
sumber