Bash içindeki önceki / sonraki sözcük kısayolunu nasıl değiştirebilirim?


20

Ctrl-Left ve Ctrl-Right'ı bash için önceki / sonraki sözcük kısayolları olarak nasıl yapılandırırım (şu anda alt-b ve alt-f)?


Aa, yok bu soruyu bir çan çalmak?
Gilles 'SO- kötü olmayı bırak'

@Gilles - Daha önce benzer bir şey sorduğumu sanıyordum, evet, üzgünüm. Orijinali dup olarak kapattı (çünkü burada Süper Kullanıcıdan daha fazla aittir).
ripper234

Yanıtlar:


26

Doğru cevap kullandığınız terminale bağlıdır.

Gnome Terminali veya xterm'in son sürümleri için, bunu ~ / .inputrc içine koyun:

"\e[1;5C": forward-word
"\e[1;5D": backward-word

PuTTY için, bunu ~ / .inputrc'nize koyun:

"\eOC": forward-word
"\eOD": backward-word

Rxvt için, bunu ~ / .inputrc'nize koyun:

"\eOc": forward-word
"\eOd": backward-word

Muhtemelen bunların hepsini ~ / .inputrc içinde bir araya getirerek kurtulabilirsiniz.

Her durumda, bunu ~ / .bashrc (veya ~ / .zshrc) içine de koymanız gerekir:

export INPUTRC=~/.inputrc

Bu işe yaramazsa veya farklı bir terminaliniz varsa terminalinize gidin ve Ctrl+ V Ctrl+ yazın ->. Ardından, yerine "\e[1;5C"veya "\eOC"üstünde kullanın. Ctrl+ İçin tekrarlayın <-.

Not Kullandığınız klavye çıkış sıralarını yazmak gerektiğini inputrc sözdizimi , örneğin

  • \C kontrol anlamına gelir
  • \ekaçış anlamına gelir ( ^[yukarıdaki Ctrl + V kullanarak yazarken görünür )

Ctrl + V, Ctrl -> "^ [[1; 5C" yazdırır ve gnome-terminal kullanıyorum.
ripper234

2
Bu yüzden deneyin "\e[1;5C": forward-word. Ve Ctrl+ Vşeylerini Ctrl+ için Left Arrowde yapın.
Mikel

Teşekkürler, bir cazibe gibi çalışır. Yavaş ama emin adımlarla, Linux'ta yüzmeyi öğreneceğim. Neden ilk etapta bu kadar sezgisel olmamak zorunda kalıyorlardı? (Ctrl-left, ctrl-right daha iyi seçimler olduğunu itiraf etmelisin)
ripper234

1
Linux'un başlangıçta sezgisel olmadığını düşünüyorsanız, varsayılan bir FreeBSD veya hatta Solaris yüklemesini deneyin. Başlangıç ​​kabuğunuz olarak bash yapmak bir rüyadır. Ayrıca, klavyelerde her zaman Ok tuşları, Emacs ve dolayısıyla bash destek kısayolları bulunmadığından. Bir süre Ctrl-b ve Ctrl-f kullanmayı deneyin.
penguin359

2
UNIX / Linux sistemlerinin güzelliği, ayarlarda gezinmek kolaydır. En sevdiğiniz programları istediğiniz gibi yapılandırdıktan sonra, kopyalayın. Aslında .inputrc, .bashrc, .vimrc gibi ana dizin dosyalarım için sürüm denetimi kullanıyorum. Bilgisayarlar arasında tüm ana dizin ayarlarımı klonlamak ve güncel tutmak için cıva kullanıyorum. Ayrıca bir noktada repo'yu yayınlamayı planlıyorum, böylece diğerleri tüm çalışmamı paylaşabiliyor.
penguin359

3

ZSH kullanıyorsanız, farklı bir yöntem kullanmanız gerekir, çünkü ArchLinux'un ZSH rehberinden ilgili parçaları alıntılamak :

Zsh, readline #like bash # kullanmaz, bunun yerine kendi ve daha güçlü bir zle kullanır.

/ Etc / inputrc veya ~ / .inputrc okumaz.

Bu kılavuzu okuduktan sonra, bunun nasıl yapılacağı hakkında genel bir fikir edinmek için ZSH'nin bir mod kaynağına ihtiyacım olduğunu düşündüm ve bu yüzden istediğim davranışı tanımlayan bu oh-my-zsh dosyasını buldum, ilgili parçaları kopyaladım benim ~ / .zshrc içine istedi:

bindkey -e #Use emacs mode, it's more sane for beginners
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
# Also, If you want to copy paste this into your zshrc,
# I'm pretty sure you would have to add this at the top : 
# setopt interactive_comments

ctrl + rightarrow çalışıyordum, ancak Mac'te bir kelime seyahat etmiyor
TomSawyer
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.