Dimaksudkan menggunakan ctrl + T di bash?


47

Saya perhatikan bash memiliki jalan pintas untuk ctrl+ Tyang menukar dua karakter terakhir sebelum kursor.

Saya bertanya-tanya mengapa para insinyur memutuskan untuk memasukkan ini.

  • Apakah itu diwarisi dari konvensi sebelumnya?
  • Atau adakah tujuan praktis yang biasa digunakan untuk ini?

13
Bukan jawaban, tapi ini bukan bash, karena itu, tetapi readline(yang digunakan bash untuk input saat diminta). Bash Anda menggunakan emacsikatan-kunci; Anda dapat mengubah ke vi-binding kunci jika partisan Editor Wars Anda;) sanctum.geek.nz/arabesque/vi-mode-in-bash Ada beberapa "cheat-sheet" untuk di readlinesini: readline.kablamo.org/emacs .html dan readline.kablamo.org/vi.html .
John N

13
Secara historis, gaya Emacs baris perintah mengedit fitur pada awalnya dikembangkan di Bash, dan kemudian berubah menjadi perpustakaan yang terpisah - tapi itu terjadi sebelum rilis pertama pada tahun 1989. pertama masuk dalam satureadline ChangeLog petunjuk di ini. Jadi awalnya pintasan ditangani di Bash sendiri, meskipun sebentar, sebelum ditarik keluar readline- tetapi pintasan datang ke Bash dari Emacs (saya tidak tahu apakah itu diciptakan di Emacs atau berasal dari tempat lain).
Stephen Kitt

Jawaban:



63

Sangat berguna untuk memperbaiki kesalahan ketik dengan cepat:

sl

menjadi

ls

dengan satu CtrlT.

Anda dapat menggunakan AltTuntuk bertukar kata juga ( misalnya saat beralih di antara servicedan systemctl...)

Secara historis, CtrlTfitur tersebut datang ke Bash dari Emacs dengan segala kemungkinan. Mungkin disalin ke Emacs dari beberapa editor lain; itu hadir dalam editor Stanford E (lihat Essential E halaman 13) pada tahun 1980, dan E memiliki dampak yang kuat pada Richard Stallman (seperti yang dijelaskan dalam Free as in Freedom ). Itu diimplementasikan dalam versi yang sangat awal dari Bash, sebelum rilis pertama pada tahun 1989, ketika itu ditarik keluar ke readlineperpustakaan di mana ia tinggal hari ini (entri pertama dalam readline ChangeLogpetunjuk ini).


2
Bertukar kata adalah sesuatu yang baru & sangat membantu
Mongrel

Memberikan argumen numerik ke Alt + T mentransposisi kata pada (atau sebelum) kursor dengan kata ke- n sebelum kata itu. misal: Alt + 2 Alt + T akan dimodifikasi word1 word2 word3menjadi word3 word2 word1jika dilakukan pada word3.
crw

@ Cm itu bagus tapi alt + T tidak bertukar kata-kata di terminal saya. Saya hanya membuka item menu 'set title'.
Philip Kirkbride

@ PhilipKirkbride itu memalukan, emulator terminal Anda merampas Anda dari jalan pintas yang sangat berguna ...
Stephen Kitt

@ PhilipKirkbride harus ada opsi emulator terminal untuk menonaktifkan tombol akses menu
Joril

15

Kombinasi tombol ini, sebuah ikatan yang diwarisi dari emacseditor, menyebabkan 2 karakter terakhir yang diketik akan ditukar pada akhir baris, digunakan di tengah-tengah baris, itu menukar karakter di sebelah kiri kursor dan yang di bawah kursor

Tampaknya sia-sia memiliki pengikatan untuk fitur yang jarang digunakan seperti itu yang mudah dicapai dengan beberapa stroke kunci lagi. Penghitung waktu lama seperti saya cukup sering menggunakannya dan digunakan untuk menghemat waktu transmisi pada masa 300 modem baud, pada akhir 70-an, terutama di tengah garis panjang.

Perintah serupa dan lebih bermanfaat, terikat ke Alt+ T, mentransposisi kata-kata di sebelah kiri dan di kanan kursor.

Tdipilih karena merupakan huruf awal transpose . Binding lainnya dengan asal yang serupa meliputi:

  • Ctrl+ B, untuk mundur , gerakkan kursor ke kiri satu posisi,
    • Alt+ Bmemindahkan kursor ke kiri satu kata,
  • Ctrl+ F, untuk maju , menggerakkan kursor ke kanan satu posisi,
    • Alt+ Fmemindahkan kursor ke kanan satu kata,
  • Ctrl+ A, untuk Anfang atau taruhan , memindahkan kursor ke awal baris,
  • Ctrl+ E, untuk akhir , memindahkan kursor ke ujung garis,
  • Ctrl+ N, untuk selanjutnya , mengambil baris berikutnya,
  • Ctrl+ P, untuk sebelumnya , mengambil baris berikutnya,
  • Ctrl+ D, untuk menghapus , menghapus karakter di bawah kursor,
    • Alt+ Dmenghapus kata di bawah kursor,
  • Ctrl+ K, untuk membunuh , memotong ujung garis,
  • Ctrl+ Y, untuk yank , tempelkan isi clipboard,

Binding ini, diimplementasikan dalam paket readline GNU, karena itu tersedia di semua program yang menggunakannya untuk input pengguna, seperti bash , tetapi juga gdb , bc , ...

Beberapa di antaranya juga tersedia di lingkungan lain: Baris input URL Firefox, bidang input teks pada antarmuka grafis OS / X, dan banyak window manager berbasis X.

pengguna vim dapat memilih binding yang sesuai melalui variabel lingkungan.


Ya, itu bagus untuk orang-orang seperti kita yang kadang-kadang lupa kita mengetik ke terminal daripada Emacs; Saya masih ketahuan ketika menggunakan widget textarea Firefox (seperti ini sekarang), yang tidak memiliki binding yang penting ini. :-(
Toby Speight

Apakah ada cara Anda bisa memasangkan versi karakter dan kata dari perintah terkait dalam deskripsi Anda? Ini benar-benar membantu memori ketika Anda mengenali bahwa Altdan Ctrlversi penekanan tombol terkait secara konsisten.
Toby Speight

@TobySpeight GTK + mendukung tema penguncian kunci gaya Emacs alternatif sehingga Anda dapat menggunakan beberapa ikatan kunci ini di Firefox. C-tNamun sepertinya tidak melakukan apa-apa. wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindings
Candy Gumdrop

@TobySpeight pernahkah Anda mencoba Ini Semua Teks! ? Ini memungkinkan Anda untuk mengedit konten textas di editor pilihan Anda.
Stephen Kitt

Terima kasih @Stephen - Saya pernah mendengarnya, tetapi belum mencobanya. Saya akan menindaklanjutinya ...
Toby Speight

10

Ini bisa digunakan untuk memperbaiki torkos smiple wehre yuo haev secara tidak sengaja ditransfer piars of lettres.

(Memiliki RSI parah di kedua pergelangan tangan, saya akhirnya menggunakan ini banyak, secara pribadi ...)


2
Mata saya berdarah
Dasar

4

Sangat cepat memperbaiki kesalahan ketik. efek 2 blok korektor langsung sebelum courser.

Jika Anda mengetik ls-dan ingin spasi antara ls& tanda hubung maka Anda dapat menggunakan Ctrl+T

Ini berfungsi jika Anda memiliki spasi setelah tanda hubung & kemudian lakukan Ctrl+T

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.