यह क्या है ("arg: 1)" टर्मिनल / टटी में दिखने के बाद जब मैंने चाबियों का संयोजन दबाया?


21

एक वर्चुअल टर्मिनल में मैंने (गलती से) Win+ दबाया 1और इसमें एक नई लाइन मिली

(arg: 1)

जब तक मैं Winदबाए रखता हूं , मेरे द्वारा दबाए गए सभी नंबर कोष्ठक, जैसे Winऔर 1+ 4पैदावार में संख्या में जुड़ जाते हैं (arg:14)

जब मैं (जारी करने के बाद Win) किसी भी कुंजी को दबाता हूं , तो वह वर्ण कई बार छपा होता है क्योंकि संख्या पढ़ी जाती है और (arg: ...)अभिव्यक्ति को मानक संकेत द्वारा बदल दिया जाता है।

क्या किसी को पता है कि यहां क्या होता है?

जवाबों:


24

यह एक डिजिट तर्क है , जिसे रीडलाइन लाइब्रेरी की एक सुविधा में बनाया गया है bash:

digit-argument (M-0, M-1, ..., M--)
    Add  this digit to the argument already accumulating, or start a
    new argument. M-- starts a negative argument.

यह सुविधा वर्तमान में संपादित कमांड लाइन में टेक्स्ट को जोड़ना या हटाना सरल बनाता है। मान लें कि आप लिखना चाहते हैं echo gggg:

  1. echoअंतरिक्ष द्वारा पीछा किया दर्ज करें
  2. मेटा कुंजी (जो हो सकता है Win, Altऔर / या Escआपके लिए) को दबाएं और टाइप करें4g

लेकिन आपको कितनी बार एक ही पत्र लिखने की आवश्यकता है कि यह आपको कितनी बार बचाएगा? फ़ीचर मुख्य रूप से रीडलाइन कमांड के लिए डिज़ाइन किया गया है , संदर्भ मैनुअल (“C” अर्थ के अध्याय 8.2.18.2.3 देखेंCtrl , "एम" अर्थ मेटा) के ।

आप मेटा और के साथ एक शब्द वापस ले जा सकते हैं B, लेकिन क्या होगा यदि आप एक साथ कई शब्दों को वापस लेना चाहते हैं? आप या तो कई बार पकड़ Altऔर दबा सकते हैं B, या अंक तर्क का उपयोग कर सकते हैं:

  1. आपकी कमांड लाइन पर पांच शब्दों के पीछे एक टाइपो है:

    $ echo one two tree four five six seven
  2. मेटा कुंजी दबाएं, मेटा टाइप करें 5और दबाएं B। Et violà:

    $ echo one two ree four five six seven
  3. टाइपो को ठीक करें और फिर से लाइन के अंत में जाने के लिए Enterशूट करें या Endया Ctrl+ दबाएं E

आप मेटा और दबाकर एक शब्द को हटा सकते हैं Backspace, लेकिन क्या होगा यदि आप एक ही बार में कई शब्द हटाना चाहते हैं?

  1. आप अपनी कमांड लाइन पर एक शब्द भूल गए:

    $ echo one two four five six seven
  2. मेटा कुंजी दबाएं, मेटा टाइप करें 4और दबाएं Backspace

    $ echo one two 
  3. द्वारा अंतरिक्ष और प्रेस का पालन लापता शब्द लिखें Ctrl+ Yपेस्ट करने के लिए क्या सिर्फ हटाया गया था। Et violà:

    $ echo one two three four five six seven

तुम सही हो, तुम भी वहाँ चले गए हो सकता है के रूप में बस कुछ भी हटाने के बिना समझाया गया है। हम लिनक्स पर हैं, हमेशा एक ही काम करने के कई तरीके हैं।

और "नकारात्मक तर्क" क्या है? यह वही करता है, लेकिन विपरीत दिशा में, इसलिए मेटा -2मेटा Backspaceकमांड लाइन के अगले दो शब्दों को हटा देता है। "लेकिन एक ही काम करने के लिए मेटा 1मेटा Dका उपयोग कर सकते हैं !" खुशी है कि आप मिल गया, अपने कमांड लाइन में आपका स्वागत है।

आगे की पढाई:


यह किस बैश संस्करण में सामने आया? वास्तव में उपयोगी लगता है। +1।
सर्गी कोलोडियाजनी

WSL पर यह हैEsc
αнsнιL

1
वाह! मुझे खुशी है कि आपने इतने शानदार उत्तर के लिए प्रेरित किया है !!
गुंटबर्ट

"स्वीकार" करने के लिए कुछ भी नहीं है, अक्सर जब हम उन चीजों के बारे में बात कर रहे हैं जिन्हें हम पहले से ही जानते हैं कि हम ('मैं') फिर से शोध नहीं करते हैं। आपका शोध इस उत्तर को इतना व्यापक बनाता है - सूत्रों सहित।
गुंटबर्ट

1
यह साफ है कि डिजिट-तर्क काम करता है, म्यूटैटस म्यूटेंडिस , vi- एडिटिंग मोड ( set -o vi) में भी।
गेरीमिया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.