कई फ़ाइलों में विस्मयकारी रूप से `rc.lua` कॉन्फ़िगरेशन को अलग कैसे करें?


14

मैंने अभी-अभी ओपनबॉक्स से विस्मयकारी WM में स्थानांतरित किया है। मुझे यह पसंद है कि यह बहुत ही विस्तृत, अनुकूलन योग्य है और मेरे पास विंडो लेआउट के बारे में बहुत बड़ा नियंत्रण है। मुझे संरचित और व्यवस्थित चीजें पसंद हैं और मैं उस विशाल .config/awesome/rc.luaकॉन्फ़िगरेशन को कई फाइलों में अलग करना चाहूंगा ।

जवाबों:


11

आप बस एक अलग फाइल में कोड रख सकते हैं और इसे शामिल कर सकते हैं

dofile("somefile.lua")

नोट: कार्यशील निर्देशिका है $HOME। आप के लिए एक फ़ाइल निर्दिष्ट करने के लिए rc.luaउपयोग कर सकते हैं

dofile(awful.util.getdir("config") .. "/" .. "somefile.lua")

यदि यह केवल कुछ कोड से अधिक है और इसका उपयोग दूसरों द्वारा भी किया जा सकता है, तो यह एक लुआ मॉड्यूल बनाने के लिए समझ में आता है जिसे इसके साथ शामिल किया जा सकता है

somemodule = require("somemodule")

यह 50% पर काम करता है, मुझे सापेक्ष पथ के बजाय पूर्ण पथ निर्दिष्ट करना होगा
krvemir

@ मिरो तय, अपडेट देखें
मार्को

उबंटू पर, .config / भयानक / में भयानक रूप से फ़ंक्शन की आवश्यकता स्वचालित रूप से दिखाई देती है, इसलिए आप वहां रखी किसी भी फ़ाइल की आवश्यकता बना सकते हैं।
वदेव

5

कोड को एक अलग फ़ाइल में ले जाने के लिए, आप एक मॉड्यूल बनाते हैं और rc.lua में मॉड्यूल की आवश्यकता होती है।

मॉड्यूल बनाने के लिए, आप बस module (name [, ···])उस स्क्रिप्ट को कॉल करते हैं जिसमें वह कोड होता है जिसे आपने मूल स्क्रिप्ट से बाहर निकाला था। लुआ संदर्भ - मॉड्यूल

आपके द्वारा बनाए गए मॉड्यूल का उपयोग करने के लिए, आप बस कॉल करें require (modname)लुआ संदर्भ - आवश्यकता है

लुआ विकी पर एक उत्कृष्ट ट्यूटोरियल है जो उदाहरणों के साथ यह बताता है। और अगर आप यह देखना चाहते हैं कि module()वास्तव में कैसे काम करता है, तो Play With Lua पर एक लेख है जो मॉड्यूल के कार्यान्वयन को लिखने से शुरू होता है ()।


1
ध्यान दें कि भयानक-3.5 के साथ शुरू होने वाला लुआ संस्करण 5.2 में अपडेट किया गया था, जहां module()फ़ंक्शन को हटा दिया गया है। इसलिए मॉड्यूल को एक चर को सौंपा जाना चाहिए, जैसेmodname = require ("modname")
crater2150
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.