Peningkatan fungsionalitas terminal autocomplete (mirip dengan Matlab)


18

Jika ada di antara Anda yang pernah menggunakan Matlab, Anda mungkin telah memperhatikan fungsionalitas jendela perintah dalam program itu. Saya bertanya-tanya apakah mungkin untuk mengaktifkan fungsi yang sama di Terminal Mac.

Ini berfungsi seperti ini: misalkan Anda telah menggunakan dua perintah sebelumnya di sesi Terminal ini. Pertama Anda menggunakan cd ~dan kemudian a ls -la.

Di setiap terminal * nix, termasuk Mac, jika Anda menekan Up Arrow, itu pertama akan menunjukkan ls -laperintah dan, jika Anda menekannya dua kali, cd ~perintah. Ini bagus. Tapi, di Matlab, jika Anda pertama kali mengetik surat itu cdan kemudian tekan Up Arrow, itu tidak akan menampilkan Anda ls, tetapi langsung pergi ke cd ~. Ini menghemat banyak waktu ketika Anda memiliki perintah besar dan daftar panjang perintah yang digunakan sebelumnya.

Apa itu mungkin?

Jawaban:


27

Di shell Bash, Anda bisa menekan Control+ Runtuk melakukan pencarian cerdas terbalik dalam sejarah. Mulai ketikkan perintah dan shell akan melengkapi otomatis dengan perintah yang dimasukkan sebelumnya.

Kemudian Anda dapat menekan Enteruntuk menjalankan perintah lagi, gunakan tombol panah kiri atau kanan untuk mengedit perintah, atau terus menekan Control+ Runtuk menggilir penyelesaian yang mungkin lainnya.

Membalikkan pencarian cerdas


9

Simpan ini sebagai ~ / .inputrc:

# make the up and down arrows cycle through commands that match the start of a line
"\e[A": history-search-backward
"\e[B": history-search-forward

Option-up akan menjadi \e\e[Adan control-p \C-p. Anda dapat melihat urutan keluar dari kombinasi tombol lain dengan menekan control-v.


1
Untuk pengguna yang belum memilikinya ~/.inputrc, buat saja.
Sibbs Gambling

Seharusnya jawaban yang diterima
ripper234

1
"\ e [A": perintah tidak ditemukan
Louis

2

Hal lain yang dapat Anda lakukan adalah mengetik !dan kemudian huruf pertama, dan itu akan menemukan yang terbaru. IE: cd ~dapat diakses dengan!c


1

Ini adalah fitur dari shell. Control-R akan melakukan apa yang Anda gambarkan, tetapi mengubah ke shell yang lebih modern akan membuat Anda jauh lebih banyak. Lihatlah Z-shell (zsh), ada sedikit kurva belajar, tetapi sangat kuat.


Saya pikir maksud Anda Control-R.
jmk

1

zsh akan menyelesaikan perintah persis seperti pada contoh Anda. Anda bahkan tidak perlu melakukan apa pun selain menggunakannya untuk shell Anda.


0

Tambahkan ini ke .cshrc Anda (jika Anda menggunakan tcsh) -

  bindkey -k up history-search-backward
  bindkey -k down history-search-forward

Kemudian lakukan source ~ / .cshrc untuk mendapatkan fungsionalitas yang Anda gambarkan dengan tepat.

Saya tidak tahu apakah ada yang setara. Profil.

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.