الحد الأدنى من تكوين Neovim مكتوب بلغة lua
جدول المحتويات
يعد Neovim خليفة رائعًا لـ Vim، حيث يركز على التوافق مع إضافة وظائف المكونات الإضافية غير المتزامنة ومحاولة تنظيف قاعدة التعليمات البرمجية. بعد أن سئمت في أوقات مختلفة من كل من Sublime Text (2 و 3) وAtom، وبعد أن أدركت مقدار التطوير الذي أقوم به عبر SSH، بدا من المعقول التحقق من استخدام vim (أو nvim، في هذه الحالة) باعتباره IDE الخاص بي. تتلخص المزايا بشكل أساسي في:
لذلك قررت إنشاء هذا المستودع. هناك عدة إصدارات، الخروج سجل التغيير.
المقصود من هذا التكوين هو أن يكون نقطة بداية، وهو يناسب احتياجاتي فقط. إذا كنت تريد تخصيصه، فانتقل إلى 6. التخصيص.
mv ~ /.config/nvim ~ /.config/nvim.bak
نظام التشغيل | طريق |
---|---|
لينكس، ماك | $XDG_CONFIG_HOME/nvim , ~/.config/nvim |
ويندوز (كمد) | %localappdata%nvim |
ويندوز (بوويرشيل) | $env:LOCALAPPDATAnvim |
ملاحظة: سيكون عنوان URL الخاص بالشوكة كما يلي:
https://github.com/<your_github_username>/neovim-config.git
ملاحظة: إذا اتبعت الخطوة الموصى بها أعلاه (على سبيل المثال، تعديل الريبو)، فاستبدل
ntk148v
بـ<your_github_username>
في الأوامر أدناه
git clone https://github.com/ntk148v/neovim-config.git " ${XDG_CONFIG_HOME :- $HOME / .config} " /nvim
إذا كنت تستخدم cmd.exe
:
git clone https://github.com/ntk148v/neovim-config.git " %localappdata%nvim "
إذا كنت تستخدم powershell.exe
git clone https://github.com/ntk148v/neovim-config.git " ${env : LOCALAPPDATA} nvim "
nvim
git pull
. سيتم تحميل الملفات ضمن التكوين تلقائيًا في الوقت المناسب، لذلك لا تحتاج إلى طلب هذه الملفات يدويًا.
tree ~ /.config/nvim
├── init.lua
├── lazy-lock.json
└── lua
├── autocmds.lua
├── custom.lua
├── mappings.lua
├── options.lua
├── plugins
│ ├── configs
│ │ ├── cmp.lua
│ │ ├── gitsigns.lua
│ │ ├── lspconfig.lua
│ │ ├── lualine.lua
│ │ ├── luasnip.lua
│ │ ├── mason.lua
│ │ ├── null-ls.lua
│ │ ├── telescope.lua
│ │ ├── tree.lua
│ │ └── treesitter.lua
│ └── init.lua
└── sample_custom.lua
البرنامج المساعد | وصف |
---|---|
lazy.nvim | مدير البرنامج المساعد الحديث لNeovim |
mason.nvim | مدير الحزم المحمول لـ Neovim الذي يعمل في كل مكان تديره Neovim. قم بتثبيت وإدارة خوادم LSP وخوادم DAP واللينترات والمنسقات بسهولة. |
nvim-lspconfig | مجموعة من التكوينات الشائعة لعميل خادم اللغة المدمج في Neovim |
gitsigns | تم تنفيذ زخارف git فائقة السرعة باللون الأزرق/الأزرق فقط |
nvim-treesitter | تكوينات Nvim Treesitter وطبقة التجريد |
nvim-cmp | البرنامج المساعد للإكمال التلقائي |
LuaSnip | محرك مقتطف لـ Neovim مكتوب بلغة Lua |
نفيم تري. لوا - | مستكشف الملفات المكتوب بلغة Lua |
nvim-autopairs | إصلاحات تلقائية قوية جدًا لـ Neovim |
nvim-web-devicons | fork Lua لـ vim-web-devicons لـ neovim |
lualine.nvim | برنامج إضافي سريع وسهل لتكوين البرنامج المساعد لخط الحالة neovim مكتوب بلغة Lua النقية. |
norcalli/nvim-colorizer.lua | أسرع أداة تلوين من شركة نيوفيم. |
nvim-telescope/telescope.nvim | بحث، تصفية، معاينة، اختيار. كل لوا، في كل وقت. |
الصنوبر الوردي | مشاعر سوهو لـ Neovim |
nvimtools/none-ls.nvim | تم إعادة تحميل null-ls.nvim / استخدم Neovim كخادم لغة لإدخال تشخيصات LSP وإجراءات التعليمات البرمجية والمزيد عبر Lua. |
folke/what-key.nvim | قم بإنشاء روابط مفاتيح تلتصق. يساعدك WhatKey على تذكر خرائط مفاتيح Neovim الخاصة بك، من خلال إظهار روابط المفاتيح المتاحة في نافذة منبثقة أثناء الكتابة. |
افتراضيًا، يتم تثبيت وتكوين خوادم LSP التالية:
علاوة على ذلك، فهو يتكامل مع nvim-treesitter لتوفير إبراز بناء الجملة الغني وسحر تحليل اللغة الآخر.
إذا كانت لغتك غير مدعومة، يرجى اتباع ما يلي:
:LspInstall ` <your_language_server> `
:TSInstall ` <language_to_install> `
يمكنك إضافة المزيد من خوادم LSP وإبراز بناء جملة اللغة عن طريق تحرير الملف المخصص.
هذه هي خرائط المفاتيح الافتراضية، في الاختصارات التالية، تم إعداد مفتاح <leader>
+` على حرف `` (مسافة)، تحقق من: keymaps.lua.
الاختصار | وضع | وصف |
---|---|---|
ك | إدراج | خروج مع kk |
<leader> + ر | طبيعي | إعادة تحميل ملف التكوين |
<leader> + س | طبيعي | احفظ الملف |
<leader> + س | طبيعي | احفظ (أغلق جميع النوافذ) واخرج من Neovim |
<leader> + ن | طبيعي | افتح نفيمتري |
<leader> + رقم | طبيعي | قم بتحديث NvimTree |
<leader> + نف | طبيعي | ابحث عن الملف في NvimTree |
<leader> + وما يليها | طبيعي | افتح التلسكوب للعثور على الملفات |
<leader> + اف | طبيعي | افتح التلسكوب لإجراء grep المباشر |
<leader> + أف ب | طبيعي | افتح التلسكوب لسرد المخازن المؤقتة |
<leader> + ف | طبيعي | افتح التلسكوب لإظهار المساعدة |
<leader> + فو | طبيعي | افتح التلسكوب لإظهار الملفات المفتوحة مؤخرًا |
<leader> + سم | طبيعي | افتح Telescope لسرد التزامات git |
<leader> + wh/j/k/l | طبيعي | التحرك حول الانقسامات |
مم | طبيعي | سطر التعليق/إلغاء التعليق |
هناك العديد من خرائط المفاتيح الافتراضية، يمكنك التحقق منها باستخدام الأمر :map
. هناك أيضًا متغيرات أخرى:
:nmap
لتعيينات الوضع العادي:vmap
لتعيينات الوضع المرئي:imap
لتعيينات وضع الإدراج القائمة أعلاه ليست كاملة. الكتابة :help map
في Vim ستمنحك المزيد من المعلومات.
يمكنك تخصيص هذا التكوين عن طريق إنشاء الوحدة النمطية custom
. يمكنك اختيار إحدى الطريقتين:
${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom.lua
.${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom/
إذا كان التكوين المخصص الخاص بك طويلًا جدًا، وتريد فصله إلى ملفات متعددة.قم بالخروج من نموذج الملف المخصص لنقطة البداية. المنطق مأخوذ من CyberNvim. هناك عدد من الأقسام المحددة في التكوين:
M.setup_sources
لإضافة مصادر إضافية للاتصال بـ Null-ls - يمكنك العثور على قائمة بالمصادر هنا. المعلمة b هي مجرد اختصار لـ null_ls.builtins.M.ensure_installed
لإضافة أداة تمييز Treesitter إضافية.M.plugins
هو المكان الذي ستضيف فيه تعريفات المكونات الإضافية الخاصة بك.M.configs
هو القسم الأكثر أهمية في التكوين الخاص بك. هذا هو المكان الذي يمكنك فيه تحديد أي أوامر تلقائية، أو طلب أي ملفات، أو نقل التكوين الحالي بالكامل.M.formatting_servers
لإعداد قواعد التنسيق التلقائي. تحتاج إلى تحديد خادم اللغة الذي سيوفر إمكانيات التنسيق التلقائي لا تتردد في تقديم مشكلة أو فتح طلب سحب. على الرحب والسعة!