क्या 'set -o vi' सेट होने पर स्क्रीन साफ़ करने के लिए Ctrl + L को सक्षम करने का कोई तरीका है?


54

जब आप bash डिफ़ॉल्ट मोड में Ctrl+ दबाते हैं Lतो स्क्रीन साफ ​​हो जाती है। लेकिन जब मैं दौड़ता हूं set -o viऔर Ctrl+ दबाता हूं Lतो कीस्ट्रोक प्रिंट होता है ( ^L)। क्या इस व्यवहार को रखने का कोई तरीका है?

जवाबों:


61

Ctrl+ Lvi कमांड मोड में भी है, लेकिन इन्सर्ट मोड में नहीं। clear-screenडालने मोड में कोई डिफ़ॉल्ट बाइंडिंग नहीं है। Readline बाइंडिंग में निर्दिष्ट किया जाना चाहिए ~/.inputrc, जैसे:

set editing-mode vi
$if mode=vi

set keymap vi-command
# these are for vi-command mode
Control-l: clear-screen

set keymap vi-insert
# these are for vi-insert mode
Control-l: clear-screen 
$endif

यह बाँध होगा Ctrl+ Lदोनों सामान्य में स्क्रीन को साफ़ करें और मोड डालने के लिए। स्वाभाविक रूप से, यदि आप इसे केवल एक मोड में उपयोग करना पसंद करते हैं, तो प्रासंगिक विकल्प को हटा दें।

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


1
जिज्ञासा से बाहर, अगर यह पहले से ही मैप किया गया है तो vi- कमांड से क्यों परेशान हैं? सिर्फ पूर्णता के लिए, या कोई तकनीकी कारण है?
केन बेलोज़

2
@KenBellows स्पष्टता के लिए, टिप्पणियों के अनुसार (और मुझे विशुद्ध रूप से सौंदर्य कारणों के लिए vi- कमांड ब्लॉक में एक उदाहरण की आवश्यकता थी)।
जसोनव्रीयन

22

इस लाइन को अपने में रखें bashrc:

bind -m vi-insert "\C-l":clear-screen
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.