Neovim Lua API
जानें कि प्लगइन कैसे जुड़ते हैं।
Neovim Lua API, CoddyKit पर Lua Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Lua Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
नियोविम में लुआ क्यों
नियोविम में लुआJIT रनटाइम अंतर्निहित है, जिससे विमस्क्रिप्ट के साथ-साथ लुआ भी मूल स्क्रिप्टिंग भाषा बन जाती है। प्लगइन लेखक इसकी गति, वास्तविक डेटा संरचनाओं और सुव्यवस्थित मॉड्यूल प्रणाली के कारण लुआ को पसंद करते हैं।
वैश्विक vim तालिका हर सुविधा का प्रवेशद्वार है: संपादक की स्थिति, एपीआई, विकल्प और मानक लाइब्रेरी सहायक। इसमें निपुण होना आधुनिक प्लगइन विकास की नींव है।
print(vim.inspect(vim.version()))vim.api परत
vim.api निम्न-स्तरीय दूरस्थ एपीआई उपलब्ध कराता है: nvim_ से शुरू होने वाला हर फ़ंक्शन। बाहरी क्लाइंट RPC के माध्यम से इन्हीं कॉल का उपयोग करते हैं, लेकिन उसी प्रक्रिया में ये तुरंत चलते हैं।
nvim_get_current_buf, nvim_buf_set_lines और nvim_command जैसे फ़ंक्शन सटीक नियंत्रण देते हैं। ये स्थिर और अच्छे दस्तावेज़ों वाले हैं तथा गंभीर प्लगइनों की रीढ़ हैं।
local buf = vim.api.nvim_get_current_buf()
local name = vim.api.nvim_buf_get_name(buf)
print(name)vim.fn — विमस्क्रिप्ट फ़ंक्शन कॉल करना
vim.fn विमस्क्रिप्ट के अंतर्निहित फ़ंक्शनों से जोड़ता है। विमस्क्रिप्ट में कॉल किए जा सकने वाले किसी भी फ़ंक्शन, जैसे expand() या fnamemodify(), को vim.fn.expand(...) के रूप में उपयोग किया जा सकता है।
जब कोई मूल एपीआई उपलब्ध न हो, तब यह बेहद उपयोगी है। तर्क और वापसी मान लुआ और विमस्क्रिप्ट प्रकारों के बीच अपने-आप बदले जाते हैं।
local path = vim.fn.expand('%:p')
local tail = vim.fn.fnamemodify(path, ':t')
print(tail)विकल्प: vim.o, vim.bo, vim.wo
विकल्प मेटा-तालिकाओं के माध्यम से निर्धारित किए जाते हैं। vim.o वैश्विक विकल्पों को, vim.bo बफ़र-स्थानीय विकल्पों को और vim.wo विंडो-स्थानीय विकल्पों को लक्ष्य बनाता है।
मान निर्दिष्ट करना किसी फ़ील्ड में लिखने जितना सरल है। यह विस्तृत nvim_set_option कॉल की जगह लेता है और विन्यास कोड में स्वाभाविक लगता है।
vim.o.number = true
vim.bo.shiftwidth = 2
vim.wo.wrap = falsevim.g और वैश्विक चर
vim.g वैश्विक विम चरों को पढ़ता और लिखता है। प्लगइन अक्सर यहाँ विन्यास स्विच उपलब्ध कराते हैं, जैसे vim.g.myplugin_enabled।
किसी ऐसे चर को पढ़ने पर जो निर्धारित नहीं है, nil मिलता है, इसलिए डिफ़ॉल्ट मानों के साथ जाँच करें। बफ़र और विंडो के दायरे वाले रूप vim.b और vim.w के रूप में उपलब्ध हैं।
vim.g.mapleader = ' '
local enabled = vim.g.myplugin_enabled or false
print(enabled)सूचनाएँ और संदेश-प्रदर्शन
उपयोगकर्ता तक संदेश पहुँचाने के लिए vim.notify का उपयोग करें। यह एक संदेश-पाठ और vim.log.levels से लिया गया वैकल्पिक लॉग स्तर स्वीकार करता है।
नोइस या नोटिफ़ाइ जैसे प्लगइन प्रबंधक इन्हें बेहतर उपयोगकर्ता इंटरफ़ेस के लिए बीच में पकड़ सकते हैं। उपयोगकर्ता को दिखने वाले आउटपुट के लिए सीधे print की अपेक्षा vim.notify को प्राथमिकता दें।
vim.notify('Plugin loaded', vim.log.levels.INFO)
vim.notify('Missing config', vim.log.levels.WARN)vim.schedule के साथ समय-निर्धारण
कुछ एपीआई कॉल तीव्र घटना संदर्भों में निषिद्ध होते हैं, जैसे कुछ कॉलबैक के भीतर। vim.schedule किसी फ़ंक्शन को मुख्य लूप के लिए स्थगित करता है, जहाँ पूरा एपीआई सुरक्षित रूप से उपलब्ध होता है।
इससे अतुल्यकालिक या स्वचालित-आदेश संदर्भों से बफ़र बदलते समय आने वाली भयावह "E5560" त्रुटियों से बचा जा सकता है।
vim.schedule(function()
vim.api.nvim_buf_set_lines(0, 0, 0, false, {'Hello'})
end)लुआ में स्वचालित आदेश
nvim_create_autocmd घटना संचालकों को पंजीकृत करता है। उन्हें nvim_create_augroup के साथ समूहित करें और पुनः लोड करने पर दोहराव से बचने के लिए clear = true निर्धारित करें।
कॉलबैक को buf और match जैसे फ़ील्ड वाली एक घटना तालिका मिलती है, जिससे आपके संचालक के लिए सटीक संदर्भ उपलब्ध होता है।
local grp = vim.api.nvim_create_augroup('MyGrp', { clear = true })
vim.api.nvim_create_autocmd('BufWritePost', {
group = grp,
pattern = '*.lua',
callback = function(ev) print('saved ' .. ev.file) end,
})vim.tbl और पाठ सहायक
नियोविम एक समृद्ध मानक लाइब्रेरी के साथ आता है। vim.tbl_extend, vim.tbl_keys और vim.split सामान्य तालिका और पाठ संबंधी काम के लिए पर्याप्त हैं।
vim.tbl_deep_extend('force', defaults, opts) उपयोगकर्ता के विन्यास को प्लगइन के डिफ़ॉल्ट मानों पर मिलाने का मानक तरीका है।
local defaults = { width = 40, border = 'single' }
local opts = { width = 60 }
local cfg = vim.tbl_deep_extend('force', defaults, opts)
print(cfg.width, cfg.border)डीबगिंग के लिए vim.inspect
vim.inspect किसी भी लुआ मान को, जिसमें नेस्टेड तालिकाएँ भी शामिल हैं, पढ़ने योग्य पाठ में क्रमबद्ध करता है। एपीआई से लौटने वाले मानों के ढाँचे को समझने का यह सबसे तेज़ तरीका है।
विकास के दौरान तुरंत निरीक्षण करने के लिए इसे :lua print(vim.inspect(...)) या हाल के नियोविम संस्करणों में :lua= expr के साथ उपयोग करें।
local info = vim.api.nvim_get_mode()
print(vim.inspect(info))एपीआई और विमस्क्रिप्ट के बीच चयन
स्थिर और संरचित कार्यों के लिए vim.api को प्राथमिकता दें। जब कोई मूल फ़ंक्शन उपलब्ध न हो, तब vim.fn या vim.cmd का वैकल्पिक रूप से उपयोग करें।
vim.cmd एक्स-कमांड को पाठ के रूप में चलाता है और vim.cmd('highlight ...') जैसे एकबारगी कामों के लिए उपयोगी है, लेकिन टाइप किए गए एपीआई कॉल की तुलना में इसका निरीक्षण करना कठिन है।
vim.cmd('syntax on')
vim.cmd.colorscheme('habamax')त्वरित जाँच
नियोविम लुआ एपीआई के विस्तार के बारे में अपनी समझ का परीक्षण कीजिए।
पुनरावलोकन: लुआ एपीआई
अब आप मुख्य सतहों से परिचित हैं: टाइप किए गए मूल एपीआई के लिए vim.api, विमस्क्रिप्ट फ़ंक्शनों के लिए vim.fn और एक्स-कमांड के लिए vim.cmd।
विकल्प vim.o/bo/wo के माध्यम से, चर vim.g/b/w के माध्यम से प्रवाहित होते हैं और vim.tbl_deep_extend, vim.notify तथा vim.schedule जैसे सहायक प्लगइन लेखक के उपकरणों को पूरा करते हैं।
एआई शिक्षक के साथ Lua सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 40
- पाठ
- 159
अक्सर पूछे जाने वाले प्रश्न
क्या “Neovim Lua API” पाठ निःशुल्क है?
हाँ — Lua Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Neovim Lua API” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Neovim Lua API” में मैं क्या सीखूँगा?
जानें कि प्लगइन कैसे जुड़ते हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Lua Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Lua Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Lua Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Neovim Lua API” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Lua Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Lua Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Neovim Lua API
- Commands और Keymaps
- Buffers और Windows
- प्लगइन पैकेज करना