Uzun komutlarda daha hızlı gezinmek nasıl?


136

Uzun komutları girmem gerektiğinde Linux CLI gezinti hızını arttırmanın bir yolu var mı? Şu anda sadece okları kullanıyorum ve - eğer uzun bir komutum varsa, komutun başlangıcından ortasına kadar bir süre alabilmem biraz zaman alabilir.

Örneğin, okları kullanmadan komutun ortasına atlamanın bir yolu var mı?

Yanıtlar:


174

Readline kütüphanesi tarafından sağlanan bazı faydalı satır düzenleme anahtarı bağlantıları :

  • Ctrl-A: çizginin başına git
  • Ctrl-E: çizginin sonuna git
  • Alt-B: bir sözcüğü geriye doğru atla
  • Alt-F: bir kelime ileri atla
  • Ctrl-U: satırın başına kadar sil
  • Ctrl-K: satırın sonuna kadar sil
  • Alt-D: kelimenin sonuna kadar sil

7
+1 çünkü bu, bazı nedenlerden dolayı ctrl-okları çalışmadığında bile çalışır. screen
Unutmaya

3
Bir silme işlemi geri (ya da silme metin hareket) için, Ctrl + Y. kullanımı
Lekensteyn

7
Ctrl + Sağ ok, Ctrl + Sol ok söz edilmeye değer.
mac

3
Gnome ve GnomeTerminal kullanarak Ubuntu'da Alt-Aimleci hareket ettirmek yerine menüyü açar. Alt-AGnome ile nasıl kullanıyorsunuz ? Demek istediğim, Gnome varsayılandır, bu yüzden bunu okuyan herkesin Gnome'da bir terminal işletmesi muhtemeldir.
Jason

1
Eğer Ubuntu bağlanıyorsanız gelen SSH üzerinden OS X Eğer böyle devam "Esc" yerine Ctrl örneğin Esc-A, Esc-E ve kullanımı gerekebilir. Bu iTerm ve Terminal için geçerlidir.
Fred Clausen

77

Buradan biraz daha kısayol var

Ctrl + a  go to the start of the command line
Ctrl + e  go to the end of the command line
Ctrl + k  delete from cursor to the end of the command line
Ctrl + u  delete from cursor to the start of the command line
Ctrl + w  delete from cursor to start of word (i.e. delete backwards one word)
Ctrl + y  paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor
Ctrl + xx  move between start of command line and current cursor position (and back again)
Alt + b  move backward one word (or go to start of word the cursor is currently on)
Alt + f  move forward one word (or go to end of word the cursor is currently on)
Alt + d  delete to end of word starting at cursor (whole word if cursor is at the beginning of word)
Alt + c  capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word)
Alt + u  make uppercase from cursor to end of word
Alt + l  make lowercase from cursor to end of word
Alt + t  swap current word with previous
Ctrl + f  move forward one character
Ctrl + b  move backward one character
Ctrl + d  delete character under the cursor
Ctrl + h  delete character before the cursor
Ctrl + t  swap character under cursor with the previous one

Bu basit, sohbetsiz sohbet listesi için teşekkür ederim.
aslaMind9

14

Bir vi [m] ve bash kullanıcısıysanız, okuma satırının (bash tarafından kullanılır) set editing-mode vi, dosyalarınıza ~/.inputrcveya /etc/inputrcdosyalarınıza ekleyerek vi stili düzenlemeler yapmasını yararlı bulabilirsiniz . Veya, bash komutunu çalıştırarak bash'ın vi-tarzı düzenlemeyi kullanmasını sağlayabilirsiniz set -o vi. ~/.bashrcDavranışı kalıcı hale getirmek için komutu dosyanıza ekleyin .

Zsh kullanıcısıysanız, vi-tarzı düzenleme bindkey -viçin .zshrcdosyanızı ekleyin .


8

İmleç tuşlarını kullanmadan özellikle ortasına atlamanın bir yolunu bilmiyorum. Ancak, boşluktan boşluğa geçmek için CTRL + imleç tuşunu kullanmanızı önerebilirim (örneğin, bir sözcükten diğerine atlamak).


1

Aşağıdaki kod parçacığını .bashrc dosyasında kaynaklayın. Ctrl-a, başlangıca atlar ve Ctrl-a'ya tekrar basıldığında, orta tarafa atlar.

jump_mid() {
    if [ "$READLINE_POINT" -eq "0" ]; then
        LEN=${#READLINE_LINE}
        POS=$(($LEN / 2))
        READLINE_POINT=$POS
    else
        READLINE_POINT=0
    fi
}
bind -x '"\C-a" : jump_mid'

Veya doğrudan ortasına atlamak için Ctrl-Something'i kullanmak istiyorsanız, kodu şu şekilde değiştirin:

jump_mid() {
    LEN=${#READLINE_LINE}
    POS=$(($LEN / 2))
    READLINE_POINT=$POS
}

Ve onu Ctrl-a'dan farklı bir şeye bağlayın.

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.