Geliştirilmiş Terminal otomatik tamamlama işlevi (Matlab'lara benzer)


18

Herhangi biriniz Matlab kullandıysanız, o programdaki komut penceresi işlevini fark etmiş olabilirsiniz. Aynı işlevi Mac Terminalinde etkinleştirmenin mümkün olup olmadığını merak ediyorum.

Şöyle çalışır: varsayalım ki daha önce bu Terminal oturumunda iki komut kullandınız. Önce a cd ~ve sonra a kullandınız ls -la.

Mac'ler dahil her * nix terminalinde, tuşuna basarsanız, Up Arrowönce ls -lakomutu ve iki kez vurursanız cd ~komutu gösterir. Bu harika. Ancak, Matlab'da, önce harfi yazıp csonra vurursanız Up Arrow, size gösterilmez ls, bunun yerine doğrudan adresine gidin cd ~. Bu, büyük komutlara ve önceden kullanılan komutların uzun bir listesine sahip olduğunuzda çok zaman kazandırır.

Mümkün mü?

Yanıtlar:


27

Bash kabuğunda, geçmişte ters akıllı bir arama yapmak için Control+ Rtuşuna basabilirsiniz . Komutu yazmaya başlayın, kabuk daha önce girilen komutlarla otomatik olarak tamamlanacaktır.

Ardından Enter, komutu yeniden yürütmek için tuşuna basabilir , komutu düzenlemek için sol veya sağ ok tuşunu kullanabilir veya diğer olası tamamlamalar arasında geçiş yapmak için Control+ tuşuna basmaya devam edebilirsiniz R.

Ters akıllı arama


9

Bunu ~ / .inputrc olarak kaydedin:

# 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

Seçenek-up \e\e[Ave kontrol-p olacaktır \C-p. Control-v düğmesine basarak diğer tuş birleşimlerinin kaçış dizilerini görebilirsiniz.


1
Henüz sahip olmayan kullanıcılar ~/.inputrciçin bir tane oluşturun.
Sibbs Kumar

Kabul edilen cevap olmalı
ripper234 16:18

1
"\ e [A": komut bulunamadı
Louis

2

Yapabileceğiniz başka bir şey yazın !ve sonra ilk harf ve en son olanı bulacaktır. IE: cd ~ile erişilebilir!c


1

Bu kabuğun bir özelliğidir. Control-R tarif ettiğiniz şeyi yapacaktır, ancak daha modern bir kabuğa geçmek size çok daha fazlasını sağlayacaktır. Z kabuğuna (zsh) bir göz atın, biraz öğrenme eğrisi var, ama çok güçlü.


Bence Control-R demek istiyorsun.
jmk

1

zsh komutları aynen örneğinizdeki gibi tamamlayacaktır. Kabuğunuz için kullanmak dışında başka bir şey yapmanız bile gerekmez.


0

Bunları .cshrc'nize ekleyin (tcsh kullanıyorsanız) -

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

Ardından tam olarak açıkladığınız işlevselliği elde etmek için ~ / .cshrc kaynağını yapın.

.Profile eşdeğeri olup olmadığını bilmiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.