अंतिम फ़ॉरवर्ड स्लैश में वापस इनपुट हटाना


16

मैं अक्सर एक सर्वर पर कई फ़ाइलों के बीच फ़्लिप कर रहा हूँ। मैं क्रम में निम्नलिखित उदाहरण कमांड चलाऊंगा:

nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc

एक nanoकमांड से दूसरे में जाने के लिए मैं वर्तमान में प्रेस करता हूं Upऔर Backspaceपथ के अंतिम खंड को बदलने के लिए। इसके साथ समस्या यह है कि मैं वास्तव में, वास्तव में आलसी हूं ।

क्या कोई कीबोर्ड शॉर्टकट (या बैशीवाद) है जो या तो:

  • उपयोग किए गए अंतिम पथ से प्रतिस्थापित करें (अंत में एक अतिरिक्त बिट के साथ)
  • वर्तमान पंक्ति में (जैसे दबाने के बाद Up) अंतिम पर वापस जाएं/

1
मुझे यकीन नहीं है कि आपका क्या मतलब है, लेकिन मुझे लगता है कि पहले भाग के लिए आप alt+ का उपयोग कर सकते हैं .?
स्पार्कहॉक

@ श्रावक Alt + .का उपयोग किसी और चीज के लिए किया जाता है
रादु राईडेनु

@ RaduRădeanu हाँ, शायद मैं इस प्रश्न को गलत समझ रहा हूँ। मैं "का इस्तेमाल किया (अंत पर एक अतिरिक्त बिट के साथ) पिछले पथ द्वारा प्रतिस्थापित हो जाओ" सोचा मतलब क्या alt+ .करता है।
स्पार्कहॉक

@ श्रावक फिर से, उन शॉर्टकटों में से एक जो महीने में एक बार वास्तव में उपयोगी होते हैं कि मैं सिर्फ स्मृति के लिए सक्षम नहीं हूं। ऑल-बैकस्पेस के साथ संयोजन में, विभिन्न कमांड के माध्यम से समान फ़ाइलों को चलाने के लिए यह बहुत आसान है।
ओली

@ मैं इसे एक उचित बिट का उपयोग करते हैं, लेकिन मैं हमेशा भूल जाते हैं कि कैसे दूसरे तरीके से आगे बढ़ना है !
स्पार्कहॉक

जवाबों:


21

मुझे लगता है कि आप Alt+ Backspaceशॉर्टकट की तलाश कर रहे हैं ।

Upइसे दबाने के बाद वापस पिछले /या spaceवर्ण में हटा देना चाहिए ।


7
अब मैं अस्थिर हूँ! (संपादित करें: मैं कसम खाता हूँ मैं जानने के लिए और इस शॉर्टकट कम से कम दस बार एक साल में भूल गया)
ओली

3
यह क्या करना चाहिए? मेरे टर्मिनल पर यह सादे से अलग कुछ भी नहीं लगता है backspace
बकुरीउ

1
@ बकुरीउ यह शॉर्टकट डिफॉल्ट वाला होना चाहिए। यदि आप यह पता लगाना चाहते हैं कि आपके सिस्टम रन के लिए क्या मैप किया गया हैbind -P | grep '^backward-kill-word'
सिल्वेन पिनेउ

1
@ बकुरीउ वही, मैं मैक पर हूँ।
laike9m

9

रीडलाइन बाइंडिंग का पता लगाने के लिए एक शब्द को पीछे से मारें जैसा कि आप चाहते हैं कि आप अपने टर्मिनल में निम्न कमांड का उपयोग कर सकते हैं:

bind -p | awk '/kill/ && /word/ && /backward/'

एक डिफ़ॉल्ट उबंटू स्थापना में, आउटपुट हो सकता है:

"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)

दूसरी पंक्ति इस बिंदु पर महत्व के बिना लगती है, इसलिए आइए यह देखने की कोशिश करें कि पहली पंक्ति का क्या अर्थ है। मैं जो समझता हूं, वह backward-kill-wordरीडलाइन फ़ंक्शन जो वास्तव में सभी वर्णों को हटाता है, पिछले विशेष चरित्र ( /और ;, ,आदि) को तब तक हटा देता है जब तक कि वह \e\C-hमुख्य अनुक्रम से जुड़ा न हो । अब, इस क्रम में कुंजी का \e प्रतिनिधित्व करता है Esc, \C- Ctrlकुंजी, और + \C-hके लिए खड़ा है जो कुंजी के साथ इस मामले में बराबर हैCtrlhBackspace

इसलिए, आप Esc+ Ctrl+h कीबोर्ड शॉर्टकट की खोज कर रहे हैं जो Esc+ केBackspace बराबर है और जो, xterm के व्यवहार के कारण है जो कि Altमेटा कैरेक्टर और मेटा कैरेक्टर के रूप में कार्य करने के लिए कुंजी बनाते हैं, दो कैरेक्टर के सीक्वेंस में परिवर्तित हो जाते हैं, जो कि कैरेक्टर से पहले होता है Esc(देखें) man xterm) , Alt+ केBackspace बराबर है ।

अब, अगर आप यह पसंद नहीं है और आप इसे भूल करने के लिए जारी है, तो आप निम्न आदेश एक नया शॉर्टकट बनाने के लिए, मान लीजिए उपयोग कर सकते हैं Esc+ wअपने उद्देश्य के लिए,:

bind '"\ew": backward-kill-word'

इस नए शॉर्टकट को सभी कमांड्स के लिए हर समय लगातार बनाए रखने के लिए, जो रीडलाइन का उपयोग करता है, अपनी ~/.inputrcफ़ाइल में निम्न पंक्ति लाइन जोड़ें :

"\ew": backward-kill-word

help -m bind | sensible-pagerअधिक जानकारी के लिए देखें ।


2
अच्छा उत्तर। अधिक सामान्यतः आप बाइंड कमांड के साथ सिंगल कोट्स में पूरी सेटिंग को संलग्न करेंगे; bind '"\ew": backward-kill-word', लेकिन यह नाइटपैकिंग है। और यह उल्लेख है कि आप भी डाल सकते हैं लायक हो सकता है "\ew": backward-kill-wordमें ~/.inputrc, जिस स्थिति अन्य आदेशों में उपयोग ReadLine भी है कि बाध्यकारी है, जैसे अगर आप अजगर इंटरैक्टिव खोल में ReadLine सक्षम है कि बाध्यकारी भी तभी लागू होंगे होगा।
जिरह

@geirha हाँ, मुझे पता है कि आपने क्या कहा था, लेकिन मैंने सोचा कि ओपी जानता है कि इसे कैसे प्रबंधित किया जाए। वैसे भी, अब मुझे एहसास है कि मेरा उत्तर ओपी के लिए इतना उपयोगी नहीं है (वह सिर्फ शॉर्टकट को याद रखना चाहता था), लेकिन मुझे इस साइट के अन्य उपयोगकर्ताओं के लिए उपयोगी होने की उम्मीद है और इसके लिए मैंने आपके अवलोकन को जोड़कर अपने उत्तर को संपादित किया। धन्यवाद।
रादु राएडेनु

0

एक अन्य महत्वपूर्ण संयोजन है:

Alt+ Bफिर Ctrl+K

Alt + B     Move cursor backward one word on the current line    
Ctrl + K    Clear the line after the cursor

Alt+ Bफिर Alt+D

यह शब्दों के बीच विशेष चार को हटाने के बिना अंतिम शब्द को हटा देता है।

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