उद्धरणों के स्वचालित भागने को कैसे अक्षम करें - 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.