बैश: कर्सर के आगे शब्द हटाएं


76

निम्नलिखित बैश कमांड लाइन पर विचार करें, जहां ^ कर्सर स्थान बताता है:

svn commit -m very/long/path/to/some/file "[bug 123456] Fix the pixel issue"
              ^

मैं एक ही संदेश के साथ एक अलग फ़ाइल करना चाहता हूं। मैं कर्सर के स्थान से अगले स्थान तक वर्तमान शब्द को कैसे हटा सकता हूं? क्या पिछड़े विलोपन के लिए एक शॉर्टकट भी है, कर्सर को पहले स्थान पर पीछे की ओर बनाएँ?

अद्यतन: ctrl + wपीछे की ओर मिटाता है, लेकिन कौन सा शॉर्टकट एक शब्द आगे मिटाता है?


2
Ctrl uकर्सर स्थान से शुरुआत तक मिटाने का एक विकल्प है ...
natty

23
कोशिश करो alt + d, कि उपयोगी हो सकता है, जब emacs संपादन मोड सेट है।

@Ik आप emacs मोड को कैसे सक्षम करते हैं?
एडम मटन

@AdamMatan set -o emacsइसे सक्षम करता है, लेकिन यह आमतौर पर डिफ़ॉल्ट है; यदि नहीं, तो आप उस लाइन को .bashrcया में डाल सकते हैं .bash_aliases, फिर फ़ाइल को सोर्स कर सकते हैं या टर्मिनल को फिर से लोड कर सकते हैं। हालाँकि, फिर आपके द्वारा vi मोड में उपयोग किए जा सकने वाले शॉर्टकट उपलब्ध नहीं होंगे, हालाँकि वे जैसे ctrl + c होंगे क्योंकि वे बैश शॉर्टकट नहीं हैं।

जवाबों:


56

मैंने unix.stackexchange.com पर इसी तरह के सवाल का जवाब दिया :

बैश में रीडलाइन कमांड हैं जो डिफ़ॉल्ट रूप से बाध्य नहीं हैं। आप उन्हें संदर्भ में पा सकते हैं: http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands

आप जिस कमांड की तलाश कर रहे हैं उसे "शेल-बैकवर्ड-किल-वर्ड" कहा जाता है। आपको पहले शॉर्टकट का चयन करना है। चलो Crtl + p का उपयोग करते हैं, क्योंकि यह "पिछले कमांड" है - तीर के समान।

bind '"\C-p": shell-backward-kill-word'

अंतर केवल इतना है कि आपको "शेल-किल-वर्ड" कमांड का उपयोग करना है, क्योंकि आप आगे हटाना चाहते हैं।

वहाँ भी एक "को मारने-शब्द" के साथ आदेश है Meta+ dशॉर्टकट (कोशिश Esc+ dयदि आप मेटा कुंजी नहीं है)। यह एक ही बार में पथ के केवल एक हिस्से को हटा देगा।


31
Alt-d मेरे लिए काम करता है
ricab

8
आम तौर पर, कीबोर्ड की दुनिया में जहां मेटा मौजूद नहीं है, Alt = मेटा।
नैट सीके

मैं दुनिया में जहां आपके पास कई अलग-अलग कीबोर्ड हैं, एक सुविधाजनक और काफी उपयोगी तथ्य यह है कि एस्क उपसर्ग के रूप में भी मेटा के रूप में कार्य करता है।
ट्रिपलए

1
संक्षेप में, उदाहरण के लिए इसे अपनी $ HOME / .inputrc फ़ाइल में जोड़ें: इससे "\ew": shell-kill-word Alt-w आगे एक शब्द डिलीट कर देगा, जैसे CTRL-w बैकवर्ड एक शब्द को डिलीट कर देता है (और Alt-d के विपरीत जो डिलीट को फॉरवर्ड कर देगा लेकिन उदा। उदा। a / या - और अन्य वर्ण)
user964970

7

OSX मावेरिक्स पर esc+ dऔर alt/ opt+ दोनों का परीक्षण किया dऔर वे वहां भी काम करते हैं।


12
Option + dOSX पर मुझे
इवान बालाशोव

4
-1 OSX उबंटू नहीं है। टिप्पणी जोड़ने के लिए स्वतंत्र महसूस करें, लेकिन यह उत्तर नहीं है।
वेजेंड्रिया

आपको टर्मिनल प्राथमिकताओं में पहले चेकबॉक्स "उपयोग विकल्प को मेटा कुंजी के रूप में" सक्षम करना होगा (प्रोफाइल -> कीबोर्ड टैब -> चेकबॉक्स)
पीटरसन

control + dमैक सिएरा पर
एमएफ

2
@ इवानबालाशोव अगर आप इटर्म का उपयोग कर रहे हैं तो एस्क + के रूप में अपनी लेट ऑप्ट कुंजी सेट करें। प्रोफाइल के तहत> चाबियाँ
tessie
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.