uyarı: satır düzenleme etkin değil


21

bind -x '"\C-r"':resetTerminali temizlemek için bu yararlı komutu buldum ama basit bir bash betiği yapmak istedim:

#!/bin/bash
bind -x '"\C-r"':reset

çıktı:

alfred@alfred-laptop:~/bash$ ./bind 
./bind: line 2: bind: warning: line editing not enabled

Birisi açıklayabilir mi:

  1. Bunu nasıl düzeltebilirim?
  2. Ne anlama warning: line editing not enabledgeliyor?

Bunu superuser.com/questions/122911/bash-reset-and-clear-commands/…echo -e '\0033\0143' sayesinde zaten kullanarak düzelttim , ancak yine de bu hatanın ne anlama geldiğini ve nasıl düzeltileceğini bilmek istiyorum. Çok teşekkürler.
Alfred

@squircle iyi gelişmeler için teşekkürler. Sorumun cevabını da biliyor musunuz: P?
Alfred

4
Sadece kayıt için (bu gerçekten cevaplanmadığı için): "satır düzenleme etkin değil" elde edersiniz, çünkü senaryonuzu çağırdığınızda ortaya çıkan bash'da sadece etkinleştirilmez ve kendiniz yapmanız gerekir, .eg betiğinize bir set -o emacsveya ekleyerek (elbette, set -o viönce bind)
Elmar Zander

Yanıtlar:


10

Bu komut dosyasını kaynaklamanız gerekir. Do . ./bindveya source ./bindgeçerli oturum aktif bağlayıcı o anahtarı yapmak.

Normal olarak çalıştırıldığında, bir terminali yoktur, bu yüzden size bu hata mesajını verir. Ayrıca, eğer işe yarayacak olsaydı, sadece senaryo süresince aktif olurdu.

Bu tuş bağlantının kalıcı olmasını istiyorsanız, bu komutu bilgisayarınıza ekleyin ~/.bashrc.


1. Kalıcılığı biliyorum. 2. Örneğiniz işe yarıyor, ancak karmaşıklık çalışan komutu ekliyor (bence). Sanırım şimdi bunu biliyorum, ama bu olmadan çalıştırabileceğim basit bir bash dosyasına sahip olmak istiyorum source.
Alfred

2
@alfredwesterveld: Eğer istemiyorsanız size bir kabuk başlatmak, ancak kullanmak zorunda kalmadan bunu her zaman aktif hale getirmek mümkün istiyorum her zaman yüklenen bağlama sourceveya (dot ., senin için bir işlev ekleyin) ~/.bashrc: rbind () { bind -x '"\C-r"':reset; }o zaman girebilir rbindtarafından komut olarak bağlanır ve ciltleme etkinleştirilir.
sonraki duyuruya kadar duraklatıldı.

9

Ben benzer bir mesaj vardı ama benim bir interaktif (giriş) kabuk dışında çalıştırılan bir komut dosyası vardı; bir CGI betiği ile çalıştırılan bir kabuk betiğiydi. Mesajım:

/home/richard/.bash_profile: line 4: bind: warning: line editing not enabled

ve aslında 4. satırda olmamasına rağmen bind, bu dosyadaki tek şey:

bind 'set completion-ignore-case on'

tabii ki yalnızca satır düzenleme etkinse, yani etkileşimli bir kabuksa mantıklıdır.

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.