मैं टर्मिनल में करंट लाइन को कैसे साफ़ / हटा सकता हूँ?


794

यदि मैं टर्मिनल का उपयोग कर रहा हूं और कमांड के लिए टेक्स्ट की एक पंक्ति में टाइप कर रहा हूं, तो क्या कोई हॉटकी या उस लाइन को हटाने / हटाने का कोई तरीका है?

उदाहरण के लिए, यदि मेरी वर्तमान लाइन / कमांड वास्तव में कुछ लंबी है जैसे:

> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>

क्या ऊपर से जाने के लिए हॉटकी या कमांड है:

>

?

आमतौर पर मैं कुंजी को दबाऊंगा, और अगर मेरी वर्तमान लाइन इतिहास पर एक बिल्कुल नया है, तो यह स्पष्ट हो जाएगा। लेकिन अगर मैं कुंजी के माध्यम से अपने कमांड इतिहास के माध्यम से जा रहा हूं और उन आदेशों का संपादन या उपयोग करना शुरू कर दूंगा , तो केवल इतिहास में अगले नवीनतम कमांड के लिए प्रॉम्प्ट बदल जाएगा, इसलिए जब तक मैं कई बार दबाता हूं तब तक यह यहां काम नहीं करता है।




जवाबों:


1491

आप शुरुआत तक साफ़ करने के लिए Ctrl+ Uका उपयोग कर सकते हैं ।

आप सिर्फ एक शब्द को हटाने के लिए Ctrl+ Wका उपयोग कर सकते हैं ।

आप रद्द करने के लिए Ctrl+ Cका भी उपयोग कर सकते हैं ।

यदि आप इतिहास रखना चाहते हैं, तो आप इसे टिप्पणी करने के लिए Alt+ Shift+ #का उपयोग कर सकते हैं ।


बैश Emacs संपादन मोड धोखा शीट


231
Ctrl-U द्वारा हटाई गई लाइन Ctrl-Y के साथ भी वापस मंगाई जा सकती है।
केक्स

65
Wut? तो शांत धन्यवाद केक्स और केव, thanks + U को कर्सर से पहले हटा दिया जाता है, k + K को कर्सर के बाद सभी को हटा दिया जाता है, urs + A लाइन की शुरुआत में जाना है। तो तकनीकी रूप से
techn

3
Alt-Shift- # काम नहीं करता? दूसरों ने सोचा। Alt-Shift- # टर्मिनल पर एक> वर्ण प्रिंट करता है
tgkprog

49
<kbd>...</kbd>SO में कुंजियाँ दिखाने के लिए मुझे टैग सिखाने के लिए अपडाउन किया गया।
सामवेन

11
@ LưuV LnhPhúc ESCयह बैश में स्वयं की संशोधक कुंजी है। यह इतिहास नेविगेशन (रद्द जैसी चीजों के लिए प्रयोग किया जाता है CTRL+ r), या कर्सर (पीछे पिछले दो शब्द गमागमन ESC+ t)।
noobish

578

बस सभी उत्तरों को संक्षेप में प्रस्तुत करने के लिए:

  • लाइन को साफ करें: आप शुरुआत तक साफ करने के लिए Ctrl+ Uका उपयोग कर सकते हैं ।
  • टर्मिनल में वर्तमान लाइन को पोंछने के लिए लाइन: Ctrl+ E Ctrl+ Uको साफ करें
  • टर्मिनल में वर्तमान लाइन को पोंछने के लिए लाइन: Ctrl+ A Ctrl+ Kको साफ करें
  • वर्तमान कमांड / लाइन को रद्द करें: Ctrl+ C
  • हटाए गए आदेश को याद करें: Ctrl+ Y(तब Alt+ Y)
  • लाइन की शुरुआत में जाएं: Ctrl+A
  • पंक्ति के अंत में जाएं: Ctrl+E
  • उदाहरण के लिए आगे के शब्द निकालें, यदि आप कमांड के बीच में हैं: Ctrl+K
  • शब्द की शुरुआत तक, बाईं ओर वर्ण निकालें: Ctrl+W
  • अपने पूरे कमांड प्रॉम्प्ट को खाली करने के लिए: Ctrl+L
  • लाइन और वर्तमान कर्सर स्थिति की शुरुआत के बीच टॉगल करें: Ctrl+XX

6
नोट ctrl-k कर्सर और लाइन के अंत के बीच सब कुछ हटा देता है।
पीटर बर्ग

6
अगला शब्द निकालें:Alt + D
cnlevy

1
Alt+ D यही कारण है कि मैं इसे शामिल नहीं किया है काम नहीं करता है :(
J4cK

1
CTRL + Lस्क्रीन को साफ करता है लेकिन वर्तमान कमांड लाइन में टाइप किया गया है।
अज़ीराफेल

1
Ctrl + Alt + >इनपुट इतिहास के अंत तक ले जाता है जो तब सही होता है जब आप इतिहास को खोजना रद्द करना चाहते हैं।
अस्तासीक

165

मेरे पास पूरी शॉर्टकट सूची है:

  1. Ctrl+ a लाइन की शुरुआत के लिए कर्सर ले जाएँ
  2. Ctrl+ e कर्सर को लाइन के अंत में ले जाएं
  3. Ctrl+ b एक वर्ण वापस ले जाएँ
  4. Alt+ b एक शब्द वापस ले जाएँ
  5. Ctrl+ f एक वर्ण को आगे बढ़ाएं
  6. Alt+ f एक शब्द आगे बढ़ाओ
  7. Ctrl+ d वर्तमान वर्ण हटाएं
  8. Ctrl+ w आखिरी शब्द काटे
  9. Ctrl+ k कर्सर के बाद सब कुछ काटें
  10. Alt+ d कर्सर के बाद कट शब्द
  11. Alt+ w कर्सर से पहले शब्द काटें
  12. Ctrl+ y अंतिम हटाए गए आदेश को चिपकाएं
  13. Ctrl+ _ पूर्ववत करें
  14. Ctrl+ u कर्सर से पहले सब कुछ काटें
  15. Ctrl+ xxपहली और वर्तमान स्थिति के बीच टॉगल करें
  16. Ctrl+ l टर्मिनल साफ़ करें
  17. Ctrl+ c आदेश को रद्द करें
  18. Ctrl+ r इतिहास में खोज आदेश - खोज शब्द लिखें
  19. Ctrl+ j वर्तमान इतिहास प्रविष्टि पर खोज समाप्त करें
  20. Ctrl+ g खोज को रद्द करें और मूल पंक्ति को पुनर्स्थापित करें
  21. Ctrl+ n इतिहास से अगला आदेश
  22. Ctrlp इतिहास से + पिछले आदेश

5
क्षमा करें, लेकिन मैंने सभी उपयोगी शॉर्टकट कुंजियाँ प्रदान की हैं, जिसमें 7,8,9,10,11,14,16,17 स्पष्ट / कम कट कीज़ हैं, जिन्हें हम आवश्यकता के अनुसार उपयोग कर सकते हैं।
थारुनकुमार

2
यह उल्लेख किया जाना चाहिए कि CTRL+ L(16.) वर्तमान कमांड लाइन की सामग्री को संरक्षित करता है।
अज़ीराफले

खिड़कियों पर ऐसा लगता है कि आपको लाइन की शुरुआत में जाने के लिए Ctrl + Shift + A का उपयोग करने की आवश्यकता है
Gandalf458

3
यह गायब है Ctrl+ h: कर्सर से पहले वर्ण हटाएं
peflorencio

22

Ctrl+ A, Ctrl+ Kटर्मिनल में वर्तमान लाइन को पोंछने के लिए। फिर आप इसे ज़रूरत पड़ने पर Ctrl+ के साथ वापस बुला सकते हैं Y


16

या यदि आपके vi मोड का उपयोग Escकिया जाता है, तो उसके बाद मारा जाता हैcc

वापस पाने के लिए जो आपने अभी मिटाया, Escऔर फिर p:)


5
आप vi मोड को सक्षम कर सकते हैं echo 'set editing-mode vi' >> ~/.inputrc। अजगर इंटरप्रेटर प्रॉम्प्ट और कुछ एसक्यूएल क्लाइंट जैसे स्थानों पर भी काम करता है
dwurf

11

मुझे यकीन नहीं है कि अगर आप इसे प्यार करते हैं, लेकिन मैं Ctrl+ A(लाइन की शुरुआत करने के लिए) और Ctrl+ K(लाइन को हटाने के लिए) का उपयोग करता हूं तो मैं इन आदेशों से परिचित था, और उन्हें समझ से बाहर निकाल दिया।



6
  • Ctrl+ u: रिंग बफ़र के लिए अपनी लाइन की शुरुआत तक आगे बढ़ें
  • Ctrl+ k: ले जाने के एक अंगूठी बफर करने के लिए अपनी लाइन के अंत तक
  • Ctrl+ w: अपने कर्सर से रिंग बफ़र के लिए वर्ण और (एकाधिक) शब्द छोड़ें

  • Ctrl+ y: अपने रिंग बफर से अंतिम प्रविष्टि डालें और फिर आप अपने रिंग बफर के माध्यम से घूमने के लिए Alt+ yका उपयोग कर सकते हैं । रिंग बफर में "पिछली" प्रविष्टि जारी रखने के लिए कई बार दबाएं।


4

CTRL+ Rऔर इतिहास में पिछले आदेशों को खोजने के लिए टाइप करना शुरू करें। पूरी लाइनें दिखाएंगे।
CTRL+ Rफिर से साइकिल चलाने के लिए।



2

सूची में जोड़ें:

Emacs मोड में, हिट Esc, उसके बाद R, पूरी लाइन को हटा देगा।

मुझे पता नहीं क्यों, बस इसे खोजने के लिए होता है। हो सकता है कि इसे डिलीट लाइन के लिए इस्तेमाल न किया जाए लेकिन ऐसा ही होता है। अगर किसी को पता है, तो कृपया मुझे बताएं, धन्यवाद :)

बैश में काम करता है, लेकिन मछली में काम नहीं करेगा।


1
यह revert-lineरीडलाइन कमांड है: "इस लाइन में किए गए सभी परिवर्तनों को पूर्ववत करें"। यह बाध्य है, डिफ़ॉल्ट रूप से, M-r(मेटा-आर), जो Alt-R या Esc R दोनों हो सकता है। इसका मतलब यह है कि यह वास्तव में लाइन को डिलीट नहीं कर रहा है, केवल जब यह शुरू करने के लिए खाली था; यदि आप अपने कमांड इतिहास में वापस स्क्रॉल करते हैं और कमांड बदलते हैं, तो समस्या है revert-line, यह उस कमांड पर वापस बदल जाएगा जो मूल रूप से था और लाइन को हटा नहीं।
बेंजामिन डब्ल्यू।

2

पूरी पंक्ति को हटाने के लिए कोई फर्क नहीं पड़ता कि कर्सर कहाँ है, आप kill-whole-lineकमांड का उपयोग कर सकते हैं , लेकिन यह डिफ़ॉल्ट रूप से अनबाउंड है। इसे, उदाहरण के लिए, Ctrl+ Alt+ Kसम्मिलित करके बाध्य किया जा सकता है

"\e\C-k": kill-whole-line

अपने रीडलाइन इनिट फ़ाइल (पारंपरिक रूप से ~/.inputrc) में।

विभिन्न टिप्पणियाँ:

  • गलती से एक महत्वपूर्ण अनुक्रम को फिर से असाइन करने से बचने के लिए जो पहले से ही कुछ और के लिए उपयोग में है, आप अपने सभी बाइंडिंग की जांच कर सकते हैं bind -P। सुझाए गए बाइंडिंग के लिए जाँच करें

    bind -P | grep '\\e\\C-k'
  • Readline init फ़ाइल का नाम शेल वेरिएबल से लिया गया है INPUTRC। यदि यह परेशान है, तो डिफ़ॉल्ट है ~/.inputrc, या (यदि वह मौजूद नहीं है) /etc/inputrc। ध्यान दें कि यदि आपके पास है ~/.inputrc, तो /etc/inputrcनजरअंदाज कर दिया जाएगा।
  • अपनी Readline init फ़ाइल को पुनः लोड करने के लिए, आप Ctrl+ X Ctrl+ का उपयोग कर सकते हैं R
  • प्रासंगिक मैनुअल अनुभागों के लिंक:

2

पूरी लाइन को साफ करने के लिए (2 अलग-अलग तरीके):

  • Home, Ctrl+K
  • End, Ctrl+U

0

Alt+ #वर्तमान लाइन की टिप्पणी करता है। जरूरत पड़ने पर यह इतिहास में उपलब्ध होगा।

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