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.