लंबे कमांड को तेजी से कैसे नेविगेट करें?


136

जब मुझे लंबी कमांड दर्ज करनी होगी तो क्या लिनक्स सीएलआई नेविगेशन की गति बढ़ सकती है? मैं बस अभी तीर का उपयोग करता हूं, और - अगर मेरे पास एक लंबी कमान है, तो कमांड के शुरू होने से लेकर उसके बीच तक पहुंचने में कुछ समय लगता है।

क्या उदाहरण के लिए तीर के उपयोग के बिना कमांड के बीच में कूदने का एक तरीका है?

जवाबों:


174

रीडलाइन लाइब्रेरी द्वारा प्रदान की जाने वाली कुछ उपयोगी पंक्ति संपादन कुंजी बाइंडिंग :

  • Ctrl-A: लाइन की शुरुआत में जाएं
  • Ctrl-E: लाइन के अंत तक जाएं
  • Alt-B: एक शब्द को पीछे छोड़ें
  • Alt-F: एक शब्द आगे छोड़ें
  • Ctrl-U: लाइन की शुरुआत के लिए हटाएं
  • Ctrl-K: लाइन के अंत तक हटाएं
  • Alt-D: शब्द के अंत तक हटाएं

7
+1 क्योंकि यह तब भी काम करता है, जब कुछ कारणों से, ctrl-arrow काम नहीं करते हैं। screenउपयोगकर्ताओं के लिए ध्यान देने योग्य बात , Ctrl-A, Ctrl-A A. बन जाता है
enzotib 27:54

3
किसी विलोपन को हटाने के लिए (या इसे हटाकर पाठ को स्थानांतरित करें), Ctrl + Y का उपयोग करें
Lekensteyn

7
Ctrl + राइट एरो, Ctrl + लेफ्ट एरो उल्लेख के लायक।
मैक

3
Ubuntu पर Gnome और GnomeTerminal का उपयोग करते Alt-Aहुए कर्सर को स्थानांतरित करने के बजाय मेनू को खोलता है। आप Alt-Aसूक्ति के साथ कैसे उपयोग करते हैं ? मेरा मतलब है, गनोम डिफ़ॉल्ट है, इसलिए यह संभावना है कि यह पढ़ने वाला कोई भी व्यक्ति गनोम में एक टर्मिनल चला रहा होगा।
जेसन

1
यदि आप SSH पर OS X से उबंटू से जुड़ रहे हैं, तो आपको Ctrl eg, Esc-A, Esc-E वगैरह के बजाय "Esc" का उपयोग करना पड़ सकता है। यह iTerm और टर्मिनल के लिए सही है।
फ्रेड क्लॉसन

77

कुछ और शॉर्टकट यहाँ से

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

इस सीधी-सादी, चिट-चैट-कम सूची के लिए धन्यवाद।
neverMind9

14

यदि आप vi [m] और bash उपयोगकर्ता हैं, तो आपको set editing-mode viअपनी ~/.inputrcया /etc/inputrcफ़ाइलों में जोड़कर रीड-लाइन (bash द्वारा उपयोग) बनाने के लिए उपयोगी हो सकता है । या, आप बस बैश कमांड चलाकर बैश यू-स्टाइल एडिटिंग कर सकते हैं set -o vi~/.bashrcव्यवहार को स्थायी बनाने के लिए अपनी फ़ाइल में कमांड जोड़ें ।

यदि आप एक zsh उपयोगकर्ता हैं, तो vi- शैली संपादन के bindkey -vलिए अपनी .zshrcफ़ाइल में जोड़ें ।


8

मुझे कर्सर कुंजियों का उपयोग किए बिना विशेष रूप से मध्य में कूदने का एक तरीका नहीं पता है। हालाँकि, मैं CTRL + कर्सर कुंजी का उपयोग करके खाली से रिक्त (यानी, एक शब्द से दूसरे शब्द पर कूद) का उपयोग करने की सिफारिश कर सकता हूं।


1

अपने .bashrc में नीचे दिए गए कोड-स्निपेट को स्रोत करें। Ctrl- शुरू करने के लिए एक कूदता है और Ctrl-a को फिर से दबाकर बीच में कूदता है।

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'

या यदि आप Ctrl-समथिंग को सीधे मध्य में जाने के लिए उपयोग करना चाहते हैं, तो कोड को इसमें बदलें:

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

और इसे Ctrl-a से कुछ अलग करने के लिए बाध्य करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.