#روزی_یک_نکته با دلاتو
دستهبندی: #آموزشی #کاربردی #neovim
راجب ذخیره مکان cursor داخل نئوویم:
یه فیچری که دیفالت داخل ویم وجود داره اما نئوویم نه،
ذخیره کردن مکان cursor هست که اجازه میده بعد از خروج از فایل و ورود دوباره بهش مکان cursor به آخرین جایی که بوده برگرده.
داخل help نئوویم اگه سرچ کنید
برای همین از vim.cmd استفاده کردم تا بتونم مستقیم داخل init.lua قرارش بدم که نتیجه این شد:
https://github.com/neovim/neovim/issues/16339
یه بحثی هم راجب عملکرد و بهینه شدن این روش تو گروه شد آخرش به این نتیجه رسیدیم
روش دوم ایده پاکروح بود.
روش اول دلاتو
(پست ادیت شد)
🔅@LinFAQ
🔅@LinAcademy
دستهبندی: #آموزشی #کاربردی #neovim
راجب ذخیره مکان cursor داخل نئوویم:
یه فیچری که دیفالت داخل ویم وجود داره اما نئوویم نه،
ذخیره کردن مکان cursor هست که اجازه میده بعد از خروج از فایل و ورود دوباره بهش مکان cursor به آخرین جایی که بوده برگرده.
داخل help نئوویم اگه سرچ کنید
restore-cursor
یه دستور برای حلش گفته، اما با vimscript هست.برای همین از vim.cmd استفاده کردم تا بتونم مستقیم داخل init.lua قرارش بدم که نتیجه این شد:
-- :h restore-cursor: {{{
vim.cmd([[
autocmd BufRead * autocmd FileType <buffer> ++once
\ if &ft !~# 'commit\|rebase' && line("'\"") > 1 && line("'\"") <= line("$") | exe 'normal! g
"' | endif
]])
-- }}}
در مورد این که چرا این فیچر به صورت پیش فرض داخل نئوویم نیست و همینطور معادل هایی که به جای قرار دادن vimscript داخل vim.cmd، کامل از لوا استفاده کردن میتونید لینک زیر رو چک کنید:https://github.com/neovim/neovim/issues/16339
یه بحثی هم راجب عملکرد و بهینه شدن این روش تو گروه شد آخرش به این نتیجه رسیدیم
.
vim.api.nvim_create_autocmd({ "BufReadPost" }, {
pattern = { "*" },
callback = function()
vim.api.nvim_exec('silent! normal! g`"zv', false)
end,
})
روش دوم ایده پاکروح بود.
روش اول دلاتو
(پست ادیت شد)
🔅@LinFAQ
🔅@LinAcademy
GitHub
defaults: restore cursor position when opening a file · Issue #16339 · neovim/neovim
Feature already in Vim? Yes, Vim 7.4.2111 Feature description What it says on the tin. Vim uses an autocommand in defaults.vim for this: https://github.com/vim/vim/blob/728104da6cd561b8cb2c7142769f...
👍1
#داستان_های_FOSS
دستهبندی: #داستان #آموزشی
این قسمت نحوه آشنا شدن دلاتو با
#neovim
پارت 1:
سوییچ به ویم ):
این سری قراره یکم متفاوت باشه
و قضیه راجب وقتی هست که اومدم سراغ (نئو)ویم:
تا این که سراغ vscode رفتم رو میرم جلو، یعنی میرم زمانی که از netbeans به eclipse به intellij به vscode سوییچ کردم (دلیل سوییچم به vscode ساپورت از چندین زبان و سرعت بیشترش نسبت به intellij بود).
بعد از اون اومدم لینوکس، بعد وارد گروه لین اسک و لین چت شدم.
این تایمی که میگم manjaro xfce داشتم با vscode.
همه چیز با vscode اوکی بود، دیدم یه سری از دوستان یه ادیتور دارن که ظاهرش خیلی ساده هست و عجیب میزد برام (اون موقع کانفیگ های آماده ای مثل lunarvim یا اصلا init.lua و... نبود و ظاهر پلاگین ها خیلی ساده تر و ابتدایی تر بود)، میپرسیدم "چی هست؟" و میگفتن "vim".
خب از یه طرف کنجکاو شده بودم و از یه طرف فکر میکردم ممکنه ویم امکاناتی که میخوام رو نداشته باشه یا...
مرتب توی گروه نظر سنجی میذاشتم و ادیتور هارو میپرسیدم، ظاهری که ویم
داشت باعث میشد به این که برام مناسب باشه شک کنم، از طرفی یه سری از دوستان ازش استفاده میکردن و واقعا راجبش کنجکاو بودم.
طی یه سری سوال پرسش ها یه کانفیگ آماده (تنها کانفیگ آماده محبوب اون موقع بود فکر کنم) spacevim رو پیدا کردم و طبق مراحل پیش رفتم و روی توزیعم ردیفش کردم، یه فایل رو باهاش باز کردم و دیدم حتی نمیتونم درست تایپ کنم
ترمینال رو بستم و کلا بیخیالش شدم.
به مرور راجب mode ها از دوستان سوال کردم و یه چیزایی فهمیدم
اما بازم سراغ ویم نرفتم.
حدود 6 ماه بعد سوییچ به لینوکس سعی کردم distro hop کنم، اما آخرش دست از پا دراز تر برگشتم manjaro xfce
دیدم راحت ترین ابزاری که اینجا میشه باز کرد ترمیناله (super enter) که یه جورایی عادت ایجاد میکنه که ناخواسته مرتب ترمینال باز کنی، همین باعث شد بیشتر راجب ترمینال و ابزار های تحت ترمینال و در نتیجه vim فکر کنم، مخصوصا وقتی وارد مسیری میشدم و میخواستم فایلی رو برای ویرایش باز کنم (مخصوصا کانفیگ awesome) و vscode برای این کار واقعا رو مخ بود
در نتیجه کم کم برای ویرایش فایل ها به خصوص کانفیگ awesome شروع کردم به استفاده از ویم با کانفیگ دیفالتش...
🔅@LinAsk
🔅@LinAcademy
دستهبندی: #داستان #آموزشی
این قسمت نحوه آشنا شدن دلاتو با
#neovim
پارت 1:
سوییچ به ویم ):
این سری قراره یکم متفاوت باشه
(حدود 2 هفته ای هست که پدرم از دنیا رفته و وقت نکردم برم پشت سیستم و خب دارم یه چیزی مینویسم که کم کم برگردم سراغ نکات)
و قضیه راجب وقتی هست که اومدم سراغ (نئو)ویم:
تا این که سراغ vscode رفتم رو میرم جلو، یعنی میرم زمانی که از netbeans به eclipse به intellij به vscode سوییچ کردم (دلیل سوییچم به vscode ساپورت از چندین زبان و سرعت بیشترش نسبت به intellij بود).
بعد از اون اومدم لینوکس، بعد وارد گروه لین اسک و لین چت شدم.
این تایمی که میگم manjaro xfce داشتم با vscode.
همه چیز با vscode اوکی بود، دیدم یه سری از دوستان یه ادیتور دارن که ظاهرش خیلی ساده هست و عجیب میزد برام (اون موقع کانفیگ های آماده ای مثل lunarvim یا اصلا init.lua و... نبود و ظاهر پلاگین ها خیلی ساده تر و ابتدایی تر بود)، میپرسیدم "چی هست؟" و میگفتن "vim".
خب از یه طرف کنجکاو شده بودم و از یه طرف فکر میکردم ممکنه ویم امکاناتی که میخوام رو نداشته باشه یا...
(البته بگم این موقعی که میگم و حتی الان خیلی توی برنامه نویسی شاخ نبودم... کارم حتی الان هم با ابزاری به سادگی notepad راه میفته)
مرتب توی گروه نظر سنجی میذاشتم و ادیتور هارو میپرسیدم، ظاهری که ویم
(اون موقع رو نمیشه با الان در مورد ظاهر مقایسه کرد)
داشت باعث میشد به این که برام مناسب باشه شک کنم، از طرفی یه سری از دوستان ازش استفاده میکردن و واقعا راجبش کنجکاو بودم.
طی یه سری سوال پرسش ها یه کانفیگ آماده (تنها کانفیگ آماده محبوب اون موقع بود فکر کنم) spacevim رو پیدا کردم و طبق مراحل پیش رفتم و روی توزیعم ردیفش کردم، یه فایل رو باهاش باز کردم و دیدم حتی نمیتونم درست تایپ کنم
(قضیه normal mode و...)
ترمینال رو بستم و کلا بیخیالش شدم.
به مرور راجب mode ها از دوستان سوال کردم و یه چیزایی فهمیدم
(و سوییچ بین
hjkl
insert mode
و
normal mode
و نحوه سیو یا خروج از ادیتور)
اما بازم سراغ ویم نرفتم.
حدود 6 ماه بعد سوییچ به لینوکس سعی کردم distro hop کنم، اما آخرش دست از پا دراز تر برگشتم manjaro xfce
(میخواستم kde بزنم که قابلیت شخصی سازیش بالاست اما خب با سیستمم خیلی سازگاری نداشت. گفتم چون نتونستم سراغ قابل کانفیگ ترین دسکتاپ برم، میرم سراغ قابل کانفیگ ترین ویندو منیجر: awesome).
دیدم راحت ترین ابزاری که اینجا میشه باز کرد ترمیناله (super enter) که یه جورایی عادت ایجاد میکنه که ناخواسته مرتب ترمینال باز کنی، همین باعث شد بیشتر راجب ترمینال و ابزار های تحت ترمینال و در نتیجه vim فکر کنم، مخصوصا وقتی وارد مسیری میشدم و میخواستم فایلی رو برای ویرایش باز کنم (مخصوصا کانفیگ awesome) و vscode برای این کار واقعا رو مخ بود
(
loading time
و این که باید دستی مسیر رو عوض میکردم و این که اصلا رابطش و منو ها و... به ویندو منیجر نمیومد و...).
در نتیجه کم کم برای ویرایش فایل ها به خصوص کانفیگ awesome شروع کردم به استفاده از ویم با کانفیگ دیفالتش...
🔅@LinAsk
🔅@LinAcademy
❤2
LinFAQ
این قسمت نحوه آشنا شدن دلاتو با
#neovim
پارت 1:
#neovim
پارت 1:
#داستان_های_FOSS
دستهبندی: #داستان #آموزشی
پارت 2:
راجب آشناییم با (نئو)ویم و یادگیری نحوه کار با (نئو)ویم):
خب تو پارت 1 به اینجا رسیدیم که کم کم اومدم سراغ استفاده از ویم، ولی خیلی محدود بود و همونطور که قبل تر گفتم در حد hjkl و i/esc و wq میدونستم، ولی همین برای ویرایش متن کافی بود، هر وقت کی بایندی نیاز داشتم مثل undo یا redo میرفتم توی اینترنت سرچش میکردم، اما هنوز سراغ کانفیگش نیومدم، البته که یادگیریش اثر منفی ای نداشت، به 2 دلیل:
1- اون موقع فقط برای ویرایش فایل های کانفیگ ازش استفاده میکردم پس فیچر خاصی نیاز نداشتم و
2- کی بایند ها رو به مرور و با سرچ هر وقت که نیاز میشد یاد میگرفتم، در نتیجه زمان خاصی نمیبرد.
کم کم حس کردم که "اوکی، راحت میتونم از ویم استفاده کنم و با کی بایند هاش در حد نیاز راحت هستم، حالا میخوام برم سراغ کانفیگ کردنش"،
تقریبا همون موقع ها هومان (نمیدونم میشناسینش یا نه) راجب کانفیگ (نئو)ویم یه ویدئویی ردیف کرد و...
علاوه بر این، ویدئو how to configure vim like vscode از ben awad و ویدئو های chris@machine راجب کانفیگ (نئو)ویم خیلی محبوب شده بودن، با دیدن این منابع و یه سری سوال پرسش راجب فرق ویم و نئوویم، از ویم به نئوویم سوییچ کردم و شروع کردم به کانفیگش.
البته که حتی اون موقع هم هنوز کانفیگ آماده درست و حسابی ای نبود و منم تحت تاثیر اون ویدئو هایی که دیدم تا میشد پلاگین اضافه کردم و در نتیجه هم loading time ش در حد vscode بالا رفت و هم یه سری مسائل (مثل indent) رو هر کاری میکردم درست عمل نمیکرد
این موقع هم هنوز builtin lsp و حتی فکر کنم init.lua نیومده بودن.
یه مدت کانفیگم رو بررسی و تست کردم و هر جوری سعی کردم نتونستم با سرعت load و پیروی نکردن ادیتور از تنظیمات indent ام کنار بیام، در نتیجه کل کانفیگ رو فرستادم روی گیت هاب و شروع کردم به کانفیگ نئوویم از صفر بدون پلاگین...
🔅@LinAsk
🔅@LinAcademy
دستهبندی: #داستان #آموزشی
پارت 2:
راجب آشناییم با (نئو)ویم و یادگیری نحوه کار با (نئو)ویم):
خب تو پارت 1 به اینجا رسیدیم که کم کم اومدم سراغ استفاده از ویم، ولی خیلی محدود بود و همونطور که قبل تر گفتم در حد hjkl و i/esc و wq میدونستم، ولی همین برای ویرایش متن کافی بود، هر وقت کی بایندی نیاز داشتم مثل undo یا redo میرفتم توی اینترنت سرچش میکردم، اما هنوز سراغ کانفیگش نیومدم، البته که یادگیریش اثر منفی ای نداشت، به 2 دلیل:
1- اون موقع فقط برای ویرایش فایل های کانفیگ ازش استفاده میکردم پس فیچر خاصی نیاز نداشتم و
2- کی بایند ها رو به مرور و با سرچ هر وقت که نیاز میشد یاد میگرفتم، در نتیجه زمان خاصی نمیبرد.
کم کم حس کردم که "اوکی، راحت میتونم از ویم استفاده کنم و با کی بایند هاش در حد نیاز راحت هستم، حالا میخوام برم سراغ کانفیگ کردنش"،
تقریبا همون موقع ها هومان (نمیدونم میشناسینش یا نه) راجب کانفیگ (نئو)ویم یه ویدئویی ردیف کرد و...
(اون موقع نه init.lua بود و حتی کانفیگ با لوا هم رایج نبود، در نتیجه خیلی ویم و نئوویم از نظر کانفیگ فرق خاصی نداشتن و تقریبا کل کانفیگ یکیشون با کپی پیست رو اون یکی جواب بود)
علاوه بر این، ویدئو how to configure vim like vscode از ben awad و ویدئو های chris@machine راجب کانفیگ (نئو)ویم خیلی محبوب شده بودن، با دیدن این منابع و یه سری سوال پرسش راجب فرق ویم و نئوویم، از ویم به نئوویم سوییچ کردم و شروع کردم به کانفیگش.
البته که حتی اون موقع هم هنوز کانفیگ آماده درست و حسابی ای نبود و منم تحت تاثیر اون ویدئو هایی که دیدم تا میشد پلاگین اضافه کردم و در نتیجه هم loading time ش در حد vscode بالا رفت و هم یه سری مسائل (مثل indent) رو هر کاری میکردم درست عمل نمیکرد
(اما خب به لطف همون COC (منظورم clash of clans نیست P:) تونستم راحت چند تا پروژه مزخرف از تر مزخرف برای درس های دانشگاهم با cpp بزنم که خب یعنی مفید بود).
این موقع هم هنوز builtin lsp و حتی فکر کنم init.lua نیومده بودن.
یه مدت کانفیگم رو بررسی و تست کردم و هر جوری سعی کردم نتونستم با سرعت load و پیروی نکردن ادیتور از تنظیمات indent ام کنار بیام، در نتیجه کل کانفیگ رو فرستادم روی گیت هاب و شروع کردم به کانفیگ نئوویم از صفر بدون پلاگین...
🔅@LinAsk
🔅@LinAcademy
❤1
#روزی_یک_نکته با دلاتو
دستهبندی: #آموزشی #کاربردی #neovim
یه مطلبی بود که راجب یادگیری نئوویم نوشتم
اول ببین با کی بایند ها راحتی؟
میتونی توی فایل جا به جا شی و redo و undo کنی؟
بعد از یه مدت که دیگه نیاز نداشتی دستت رو ببری روی ماوس یا arrow keys، برو سراغ مباحث بعدی.
اگه هنوز با پیش فرض ها راحت نیستی، کی بایند ها رو یاد بگیر، ترمینال باز کن و بنویس vimtutor و باهاش پیش برو یا این که این ویدئو رو ببین.
بعد از یادگیری کی بایند ها در حد نیاز، چون با پایه ها راحتی ابزار رو گسترش میدی، پس باید بری سراغ کانفیگ جهت اضافه کردن قابلیت هایی که نیاز داری مثل suggestion بهتر یا... به نئوویم.
پیشنهاد میدم اول این ویدئو و این یکی رو ببینی تا متوجه شی نئوویم چه قابلیت هایی رو بدون پلاگین ارائه میده، بعد این ویدئو رو ببین تا یه کانفیگ پایه آماده با پلاگین بدست بیاری و یا این که برو سراغ nvpak که کانفیگ علی باشه.
در انتها مطالبی مثل macro میمونه که اگه بدونی خیلی کمکت میکنه.
جدای از این ها خیلی از قابلیت ها مثل کامند make هستن که کمک میکنه، اما توی جامعه خیلی کمتر میبینی و پیدا کردن مطالب براش به این راحتی نیست.
بعد از کل موارد بالا اگه به نقطه ای رسیدی که خواستی نئوویم رو از صفر کانفیگ کنی این منبع خیلی کمکت میکنه.
source
🔅@LinFAQ
🔅@LinAcademy
دستهبندی: #آموزشی #کاربردی #neovim
یه مطلبی بود که راجب یادگیری نئوویم نوشتم
اول ببین با کی بایند ها راحتی؟
میتونی توی فایل جا به جا شی و redo و undo کنی؟
بعد از یه مدت که دیگه نیاز نداشتی دستت رو ببری روی ماوس یا arrow keys، برو سراغ مباحث بعدی.
اگه هنوز با پیش فرض ها راحت نیستی، کی بایند ها رو یاد بگیر، ترمینال باز کن و بنویس vimtutor و باهاش پیش برو یا این که این ویدئو رو ببین.
خودم نحوه hjkl و esc و wq: رو یاد گرفتم و بعد هر چیزی نیازم شد مثل undo رو با یه سرچ ساده بدست آوردم.
تاکید میکنم، برای رفتن به نرمال مد به جای esc، اول alt رو نگه دار و بعد کاری که میخوای انجام بدی رو بزن. مثالش اینه که alt j میبرتت به نرمال مد و بعد کرسر رو یه خط پایین میبره.
بهتره توی این مرحله با visual mode آشنا بشی و نحوه جستجو داخل متن رو تا حد نیاز یاد بگیری.
بعد از یادگیری کی بایند ها در حد نیاز، چون با پایه ها راحتی ابزار رو گسترش میدی، پس باید بری سراغ کانفیگ جهت اضافه کردن قابلیت هایی که نیاز داری مثل suggestion بهتر یا... به نئوویم.
پیشنهاد میدم اول این ویدئو و این یکی رو ببینی تا متوجه شی نئوویم چه قابلیت هایی رو بدون پلاگین ارائه میده، بعد این ویدئو رو ببین تا یه کانفیگ پایه آماده با پلاگین بدست بیاری و یا این که برو سراغ nvpak که کانفیگ علی باشه.
در انتها مطالبی مثل macro میمونه که اگه بدونی خیلی کمکت میکنه.
جدای از این ها خیلی از قابلیت ها مثل کامند make هستن که کمک میکنه، اما توی جامعه خیلی کمتر میبینی و پیدا کردن مطالب براش به این راحتی نیست.
بعد از کل موارد بالا اگه به نقطه ای رسیدی که خواستی نئوویم رو از صفر کانفیگ کنی این منبع خیلی کمکت میکنه.
یه نکته ای رو داشت یادم میرفت، هر چیزی برات سوال شد داخل کامند مد h و بعد چیزی که میخوای راجبش بیشتر بدونی رو بزن.
source
🔅@LinFAQ
🔅@LinAcademy