Jestem przyzwyczajony do używania CTRL klawisza, aby poruszać się szybciej, używając klawiszy strzałek w lewo i w prawo (przechodzi na koniec słowa, zamiast po jednym znaku na raz).
Czy mogę to jakoś zrobić w bash?
Prawdopodobnie mógłbym to zakodować, ale zastanawiałem się, czy jest coś łatwiejszego / już zrobione.
^[OC
to samo co twoje. Wxterm
dostaję^[[1;5
to samo, co Thomas ”.~/.inputrc
zamiast tego$include /etc/inputrc
spowoduje również załadowanie systemowego pliku inputrc.Jak wyjaśnił Thomas, możesz dodać powiązania do
/etc/inputrc
.Inną alternatywą, która ładuje się za każdym razem, gdy się logujesz, jest umieszczanie ich w
~/.bashrc
następujący sposób:#use ctl keys to move forward and back in words bind '"\eOC":forward-word' bind '"\eOD":backward-word'
Dowiedziałem się, że możesz użyć
cat > /dev/null
do spojrzenia na znaki, które wysyła twoja klawiatura, np. CTRL + strzałka w prawo pokazuje:gdzie
^[
jest to samo co\e
tak, skąd pochodzi kod wbind
poleceniu.Możesz również wyszukać takie wiązania:
bind -p | grep forward-word
Wszystko to jest cholernie niesamowite i cieszę się, że odkryłem więcej mocy basha.
źródło
inputrc
rozwiązanie będzie dotyczyło również innych programów używających readline, np. Interpreter Pythona, większość innych powłok. Zauważ, że możesz również wstawić polecenia,~/.inputrc
jeśli nie masz roota lub nie chcesz, aby były stosowane do wszystkich użytkowników.I learned that you can use cat > /dev/null to look at the characters that your keyboard is sending
. #TILread
i nacisnąć Enter, aby osiągnąć ten sam efekt, cocat > /dev/null
. Jestem leniwy, więc lubię rozwiązania wymagające mniej pisania. :).Inputrc w twoim katalogu domowym spowoduje, że ctrl + left przestanie działać na Ubuntu (na przykład).
Aby wszystko działało, dodaj do ~ / .inputrc:
# Include system-wide inputrc, which is ignored by default when # a user has their own .inputrc file. $include /etc/inputrc
kredyt dla f.kowal
źródło