यहाँ पर दो लाइन संपादक हैं: कर्नेल (कैनोनिकल मोड ट्टी लाइन एडिटर) द्वारा प्रदान की गई बुनियादी लाइन संपादक, और बैश लाइन संपादक (रीडलाइन लाइब्रेरी के माध्यम से कार्यान्वित)। इन दोनों में इरेज़-टू-पिछला-वर्ड कमांड है, जो डिफ़ॉल्ट रूप से Ctrl+ के लिए बाध्य है W। कुंजी को विहित विधा के लिए कॉन्फ़िगर किया जा सकता है tty लाइन संपादक stty werase
; बैश कुंजी बंधन की नकल करता है जिसे वह तब तक सेटिंग में पाता है जब तक कि उसके अपने कॉन्फ़िगरेशन में ओवरराइड नहीं किया जाता है।
werase
Tty लाइन संपादक में कार्रवाई कॉन्फ़िगर नहीं किया जा सकता है। यह हमेशा (ASCII) व्हाट्सएप-सीमांकित शब्दों को मिटा देता है। यह tty लाइन संपादक के साथ बातचीत करने के लिए दुर्लभ है - जब आप cat
बिना किसी तर्क के टाइप करते हैं तो यह आपको मिलता है। यदि आप वहां फैंसी कुंजी बाइंडिंग चाहते हैं, तो आप कमांड को rlwrap जैसे टूल के तहत चला सकते हैं जो रीडलाइन का उपयोग करता है।
बैश पिछले शब्द को हटाने के लिए दो कमांड प्रदान करता है : unix-word-rubout
( Ctrl+ wया के माध्यम से सेट stty werase
), और backward-kill-word
( M-DEL
यानी, Esc Backspace) जो शब्द को वर्तमान स्थान में अल्फ़ान्यूमेरिक वर्णों के अनुक्रम के रूप में मानता है_
। यदि आप चाहते हैं Ctrl+ Backspaceअक्षरांकीय अक्षर के पिछले अनुक्रम को मिटाने के लिए, निर्धारित नहीं करते हैं stty werase
, बल्कि आपका में निम्नलिखित लाइन डाल .inputrc
:
"\C-h": backward-kill-word
नोट इस मानता है कि अपने टर्मिनल के लिए Ctrl + H चरित्र भेजता है Ctrl+ Backspace। दुर्भाग्य से यह बिना मानक बाइंडिंग वाली उन कुंजियों Backspaceमें से एक है (और विशेष रूप से ऐतिहासिक कारणों के लिए एक गड़बड़ है)।
एक सममित कमांड भी है kill-word
जो डिफ़ॉल्ट रूप से M-d
( Alt+ D) के लिए बाध्य है । इसे Ctrl+ से बाँधने के लिए Delete, आपको सबसे पहले यह पता लगाना होगा कि आपका टर्मिनल किस एस्केप सीक्वेंस को भेजता है, फिर अपने में एक संबंधित लाइन जोड़ें .inputrc
। टाइप Ctrl+ Vतब Ctrl+ Delete; यह कुछ ऐसा सम्मिलित करेगा ^[[3;5~
जहां प्रारंभिक ^[
भागने के चरित्र का एक दृश्य प्रतिनिधित्व है। फिर बंधन है
"\e[3;5~": kill-word
यदि आप किसी शब्द की परिभाषा से खुश नहीं हैं, तो आप अपना स्वयं का प्रदान कर सकते हैं: bash में emacs- शैली कीबाइंडिंग का भ्रामक व्यवहार देखें