কীভাবে একাধিক ফাইলে আশ্চর্যজনক `rc.lua` কনফিগারেশন আলাদা করবেন?


14

আমি সবেমাত্র ওপেনবক্স থেকে অসাধারণ ডাব্লুএম এ চলেছি। আমি এটি পছন্দ করি যে এটি খুব এক্সটেনসিবল, কাস্টমাইজযোগ্য এবং উইন্ডো লেআউট সম্পর্কে আমার বিশাল নিয়ন্ত্রণ রয়েছে। আমি কাঠামোগত এবং সংগঠিত জিনিস পছন্দ করি এবং আমি সেই বিশাল .config/awesome/rc.luaকনফিগারেশনটিকে একাধিক ফাইলে আলাদা করতে চাই ।

উত্তর:


11

আপনি কেবল একটি পৃথক ফাইলে কোড রাখতে পারেন এবং এর সাথে এটি অন্তর্ভুক্ত করতে পারেন

dofile("somefile.lua")

দ্রষ্টব্য: কার্যকারী ডিরেক্টরিটি হ'ল $HOME। আপনার সম্পর্কিত একটি ফাইল নির্দিষ্ট rc.luaকরতে ব্যবহার করতে পারেন

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

এটি যদি কিছু কোডের চেয়ে বেশি হয় এবং এটি অন্যরাও ব্যবহার করতে পারে তবে লুয়া মডিউলটি তৈরি করা বুদ্ধিমান হতে পারে যা এর সাথে অন্তর্ভুক্ত করা যেতে পারে

somemodule = require("somemodule")

এটি 50% এ কাজ করে, আমাকে আপেক্ষিক পাথের পরিবর্তে পুরো পথটি নির্দিষ্ট করতে হবে
kravemir

@ মিরো স্থির হয়ে গেছে, আপডেট দেখুন।
মার্কো

উবুন্টুতে, আশ্চর্যজনক প্রয়োজনীয় ফাংশনটি স্বয়ংক্রিয়ভাবে .config / ভয়ঙ্কর / এ দেখায়, যাতে আপনি সেখানে যে কোনও ফাইল লাগাতে পারেন।
wdev

5

কোডটিকে অন্য কোনও ফাইলে স্থানান্তরিত করতে, আপনি একটি মডিউল তৈরি করেন এবং আরসি.লুয়ায় মডিউলটি প্রয়োজন।

একটি মডিউল তৈরি করতে, আপনি কেবল module (name [, ···])সেই স্ক্রিপ্টে কল করেন যে কোডটি আপনার কাছে মূল স্ক্রিপ্ট থেকে বের করে এনেছে। লুয়া রেফারেন্স - মডিউল

আপনার তৈরি মডিউলটি ব্যবহার করতে, আপনি কেবল কল করুন require (modname)লুয়া রেফারেন্স - প্রয়োজন

লুয়া উইকিতে একটি দুর্দান্ত টিউটোরিয়াল রয়েছে যা এটি উদাহরণ সহ ব্যাখ্যা করে। এবং যদি আপনি কীভাবে module()সত্যিই কাজ করে তা দেখতে চান তবে প্লে উইথ লুয়াতে একটি নিবন্ধ রয়েছে যা মডিউল () প্রয়োগ করে লিখে শুরু হয়।


1
নোট করুন যে দুর্দান্ত -৩.৫ দিয়ে শুরু করে লুয়া সংস্করণটি 5.2-এ আপডেট করা হয়েছিল, যেখানে module()ফাংশনটি হ্রাস করা হয়েছে। সুতরাং মডিউলটি অবশ্যই একটি ভেরিয়েবলের জন্য বরাদ্দ করতে হবে, যেমনmodname = require ("modname")
ক্রেটার 2150
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.