उद्धरणों के स्वचालित भागने को कैसे अक्षम करें - BASH


2

मेरी बैश फाइल में यह टेस्ट कोड है:

gtest() {
    echo 'hello'
}

bind '"\C-g\C-x": "$(gtest)\e\C-e"'

जब मैं कुछ टाइप करना शुरू करता हूं vim ", और फिर प्रेस करता C-g C-xहूं, तो मुझे vim helloइसके बजाय मिलता है vim "hello।

यदि मैं टाइप करता हूं vim """sometextऔर फिर प्रेस करता C-g C-xहूं, तो मैं vim sometexthelloइसके बजाय मिलता हूं vim """sometexthello।

क्या उद्धरणों को बनाए रखने का कोई तरीका है?

जवाबों:


3
bind '"\C-g\C-x": "\C-u$(gtest)\e\C-e\C-a\C-y\C-e"'

समस्या यह थी कि \e\C-eरेखा का मूल्यांकन करता है। यह निष्पादन के लिए अच्छा है $(gtest), फिर भी यह स्पष्ट रूप से "वर्णों के साथ खिलवाड़ कर सकता है ।

चाल के साथ लाइन को बचाने के लिए है C-u, केवल मूल्यांकन करें $(gtest), शुरुआत में कर्सर रखें ( C-a), सहेजे गए लाइन ( C-y) को पुनर्स्थापित करें और अंत में कर्सर को अंत में रखें ( C-e)।


+1 OMG, बहुत बहुत धन्यवाद, मैं सामान का एक गुच्छा की कोशिश कर रहा हूँ .. :) फिर से, धन्यवाद दोस्त।
— व्हिटसिरोई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.