وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

Vim برای توسعه پایتون

0 30
زمان لازم برای مطالعه: 6 دقیقه


Vim چیست؟

Vim یک ویرایشگر متن قدرتمند است که به یکی از اجزای پیش فرض تعلق دارد روی هر توزیع لینوکس، و همچنین Mac OS X. Vim از مفهوم استفاده خود پیروی می کند و باعث می شود که جامعه به حامیان قوی و مخالفان سرسخت تقسیم شود که طرفدار ویرایشگرهای دیگری مانند Emacs هستند. (به هر حال، این در زمستان بسیار خوب است تا دو تیم مشتاق را در حال مبارزه گسترده با گلوله برفی با هم ببینیم).

Vim را می توان با استفاده از افزونه های اضافی به منظور تنظیم ابزار با نیازهای خاص شما، فردی و توسعه داد. در این مقاله، مجموعه‌ای از برنامه‌های افزودنی را برجسته می‌کنیم و در مورد یک راه‌اندازی مفید برای بهبود توسعه نرم‌افزار با پایتون بحث می‌کنیم.

تکمیل خودکار

Vim قبلاً به ویژگی تکمیل خودکار مجهز شده است. این به خوبی کار می کند، اما محدود به کلماتی است که از قبل در بافر متن فعلی وجود دارند. در حالت درج، با استفاده از کلید ترکیبی CTRL+N کلمه بعدی را در بافر فعلی دریافت می کنید، و CTRL+P آخرین در هر صورت، منویی با کلمات ظاهر می‌شود که از میان آن، کلمه‌ای را انتخاب می‌کنید که در متن در موقعیت مکان‌نمای فعلی سند جای‌گذاری شود.

مجموعه ای از کلمات برای انتخاب

این در حال حاضر بسیار جالب است. خوشبختانه، همین ویژگی برای تمام خطوط متن وجود دارد. در حالت درج فشار دهید CTRL+X اول، به دنبال آن CTRL+L. منویی با خطوط مشابه ظاهر می‌شود که از میان آن خطی را که می‌خواهید در متن در موقعیت مکان‌نمای فعلی سند جای‌گذاری شود، انتخاب می‌کنید.

مجموعه ای از خطوط برای انتخاب

برای توسعه موثر در پایتون، Vim شامل یک ماژول استاندارد به نام است پایتون کامل (پایتون Omni Completion). برای فعال سازی این افزونه دو خط زیر را به فایل پیکربندی Vim خود اضافه کنید .vimrc:

filetype plugin روی
set omnifunc=syntaxcomplete#Complete

سپس، در پنجره ویرایشگر Vim، تکمیل بر اساس حالت درج کار می کند روی ترکیب کلید CTRL+X به دنبال CTRL+O. یک منوی فرعی ظاهر می شود که توابع و کلمات کلیدی پایتون را برای استفاده به شما ارائه می دهد. ورودی های منو بر اساس هستند روی توضیحات ماژول پایتون (“رشته اسناد”). مثال زیر نشان می دهد abs() عملکرد با کمک اضافی روی بالای صفحه ویرایشگر vim.

مجموعه ای از کلمات کلیدی برای انتخاب

افزونه بعدی که می خواهم در مورد آن صحبت کنم نام دارد جدی-ویم. Vim را با جدی کتابخانه تکمیل خودکار

با نصب بسته مطابقت روی دبیان شما GNU/سیستم لینوکس به یک مرحله اضافی برای کارکردن Jedi-Vim نیاز دارد. این افزونه باید با استفاده از مدیر پلاگین Vim به صورت زیر فعال شود:

$ vim-addons install python-jedi
Info: installing removed addon 'python-jedi' to /home/frank/.vim
Info: Rebuilding tags since documentation has been modified ...
Processing /home/frank/.vim/doc/
Info: done.

در مرحله بعد، وضعیت افزونه را بررسی کنید:

$ vim-addons status python-jedi

python-jedi                 installed     removed

اکنون افزونه فعال شده است و می توانید در حین برنامه نویسی از آن در Vim استفاده کنید. به محض اینکه یک نقطه را تایپ کردید یا فشار دهید CTRL+Space منو باز می شود و نام روش ها و اپراتورها را نشان می دهد که می توانند مناسب باشند. تصویر زیر ورودی های مطابق با آن را نشان می دهد csv مدول. به محض اینکه یک مورد را از منو انتخاب کنید، در کد منبع شما قرار می گیرد.

Jedi-Vim در عمل

یک افزونه تعاملی است تو کامل کن. خود را به عنوان “موتور تکمیل کد جستجوی فازی سریع، مطابق با نوع شما برای Vim” توصیف می کند. برای پایتون 2 و 3، تکمیل خودکار مبتنی است روی جدی هم همینطور در میان سایر زبان های برنامه نویسی، از C#، Go، Rust و Java نیز پشتیبانی می کند.

راه اندازی که در یک مخزن Git ارائه شده است، برای استفاده از آن به مراحل دیگری نیاز دارد. بسته روی دبیان GNU/لینوکس همراه با نسخه کامپایل شده و پس از نصب بسته از طریق apt-get را مراحل زیر اراده آن را کار کند. ابتدا بسته را با استفاده از Vim-addon-manager فعال کنید (vam) یا دستور vim-addons:

$ vim-addons install youcompleteme
Info: installing removed addon 'youcompleteme' to /home/frank/.vim
Info: Rebuilding tags since documentation has been modified ...
Processing /home/frank/.vim/doc/
Info: done.

در مرحله بعد، وضعیت افزونه را بررسی کنید. خروجی زیر به شما نشان می دهد که این افزونه با موفقیت برای شما به عنوان یک کاربر معمولی نصب شده است:

$ vim-addons status youcompleteme

youcompleteme              installed    removed

سوم، پیش فرض را کپی کنید ycm_extra_conf.py فایل از دایرکتوری نمونه ها به شما ~/.vim/ پوشه به صورت زیر

$ cp -v /usr/share/doc/vim-youcompleteme/examples/ycm_extra_conf.py .ycm_extra_conf.py
"/usr/share/doc/vim-youcompleteme/examples/ycm_extra_conf.py" -> ".ycm_extra_conf.py"

مرحله آخر این است که دو خط زیر را به خط خود اضافه کنید .vimrc فایل:

" youcompleteme
let g:ycm_global_ycm_extra_conf = "~/.vim/.ycm_extra_conf.py"

خط اول یک نظر است که می تواند حذف شود و خط دوم فایل پیکربندی را برای youcompleteme افزونه و voilà! – اکنون Vim تکمیل خودکار کد را می پذیرد. وقتی می بینید که یک رشته تکمیل مفید ارائه شده است، دکمه را فشار دهید TAB کلید پذیرش آن این رشته تکمیل را در موقعیت فعلی درج می کند. فشارهای مکرر از TAB چرخه کلید از طریق تکمیل های ارائه شده

افزونه ای که شما در عمل کامل می کنید

برجسته سازی نحو

Vim در حال حاضر با برجسته سازی نحو برای تعداد زیادی از زبان های برنامه نویسی از جمله Python ارائه شده است. سه پلاگین وجود دارد که به بهبود آن کمک می کند – یکی نام دارد python-نحو، دیگری است python-حالت، و سومی است python.vim.

در میان دیگران python-سایت پروژه syntax تعداد زیادی بهبود مانند برجسته کردن استثناها، doctestها، خطاها و ثابت ها را فهرست می کند. یک ویژگی خوب، سوئیچ بین برجسته سازی نحو برای پایتون 2 و 3 مبتنی بر آن است روی یک دستور اضافی Vim – :Python2Syntax و :Python3Syntax. این به شناسایی تغییرات احتمالی که برای اجرای اسکریپت شما با هر دو نسخه لازم است کمک می کند.

تغییر بین پایتون 2 و 3

ترکیب Vim با Revision Control System Git

کنترل بازبینی برای توسعه دهندگان کاملا ضروری است و Git احتمالا بهترین سیستم برای آن است. با کامپایل کردن کد پایتون، مفسر تعدادی فایل موقت مانند __pycache__ و *.pyc. تغییرات این فایل ها نیازی به ردیابی در Git ندارند. برای نادیده گرفتن آنها Git ویژگی به اصطلاح ارائه می دهد .gitignore فایل. این فایل را در شاخه توسعه مدیریت Git خود با محتوای زیر ایجاد کنید:

*.pyc
__pycache__

همچنین، یک را اضافه کنید README فایلی را برای پروژه خود به ثبت برسانید تا در مورد آن مستند کنید. مهم نیست که پروژه شما چقدر کوچک است، README فایل به شما (و سایرین) کمک می کند تا به خاطر بسپارید که کد برای انجام چه کاری قرار دارد. نوشتن این فایل با فرمت Markdown به ویژه در صورتی مفید است که کد پایتون خود را با مخزن خود همگام کنید. روی GitHub. این README فایل به طور خودکار به HTML ارائه می شود که به راحتی در مرورگر وب شما قابل مشاهده است.

Vim می تواند مستقیماً با استفاده از افزونه های ویژه با Git همکاری کند. در میان دیگران وجود دارد vim-fugitive، gv.vim و vimagit. همه آنها از GitHub و بیشتر به عنوان یک بسته برای Debian در دسترس هستند GNU/لینوکس.

دانلود vim-fugitive از طریق apt-get باید به روشی مشابه با سایر پلاگین ها فعال شود:

$ vim-addons install fugitive 
Info: installing removed addon 'fugitive' to /home/frank/.vim
Info: Rebuilding tags since documentation has been modified ...
Processing /home/frank/.vim/doc/
Info: done

این افزونه فقط با فایل هایی کار می کند که با Git ردیابی می شوند. تعداد زیادی از دستورات اضافی Vim مانند :Gedit، :Gdiff، :Gstatus، :Ggrep و :Glog. همانطور که بیان شد روی وب سایت پروژه، این دستورات Vim با دستورات و اقدامات Git زیر مطابقت دارد:

  • :Gedit: فایلی را در ایندکس ویرایش کنید و روی آن بنویسید تا تغییرات را مرحله بندی کنید
  • :Gread (git checkout -- filename): محتوای فایل را در بافر فعلی بارگذاری کنید
  • :Gwrite (git add): فایل را به لیست فایل های ردیابی شده فعلی اضافه کنید
  • :Gdiff (git diff): نسخه مرحله‌ای فایل را در کنار نسخه درخت کار بیاورید و از قابلیت‌های مدیریت تفاوت Vim برای مرحله‌بندی زیرمجموعه‌ای از تغییرات فایل استفاده کنید.
  • :Gmove (git mv): یک فایل را به مکان جدید منتقل کنید
  • :Gstatus (git status): وضعیت فعلی دایرکتوری Git خود را نشان دهید
  • :Gcommit (git commit): تغییرات خود را متعهد کنید
  • :Ggrep (git grep): الگوی داده شده را در مخزن Git جستجو کنید
  • :Glog (git log): تمام ویرایش های قبلی یک فایل را در لیست رفع سریع بارگذاری می کند تا بتوانید روی آنها تکرار کنید و تکامل فایل را تماشا کنید!
  • :Gblame (git blame): نشان می دهد چه کسی آخرین تغییرات را در یک فایل انجام داده است

پیدا کردن اینکه چه کسی کدام خط کد را با استفاده از «:Gblame» تغییر داده است

کار با اسکلت

فایل‌های اسکلت (یا قالب‌ها) یکی از ویژگی‌های خوب Vim هستند که با افزودن متن پیش‌فرض به فایل هنگام ایجاد فایل جدید، بهره‌وری شما را بهبود می‌بخشد. به عنوان مثال، در بسیاری از فایل‌های پایتون شما باید a شبنگ، مجوز، رشته مستند و اطلاعات نویسنده در ابتدای فایل. تایپ کردن یا حتی کپی کردن این اطلاعات در هر فایل مشکل ساز خواهد بود. در عوض، می توانید از فایل های اسکلت برای اضافه کردن این متن پیش فرض برای خود استفاده کنید.

فرض کنید، برای مثال، می‌خواهید همه فایل‌های پایتون جدید با متن زیر شروع شوند:


"""
(Add module documentation here)

Author: Frank
Date: (Add date here)
"""

شما یک فایل با این محتوا ایجاد می کنید و آن را چیزی شبیه به آن می نامید skeleton.pyو سپس آن را به دایرکتوری منتقل کنید ~/.vim/skeleton.py. برای اینکه به Vim بگویید کدام فایل باید به عنوان فایل اسکلت پایتون استفاده شود، موارد زیر را به فایل خود اضافه کنید .vimrc فایل:

au BufNewFile *.py 0r ~/.vim/skeleton.py

این به Vim می‌گوید که از فایل اسکلت مشخص شده برای همه فایل‌های جدید مطابق با نام فایل استفاده کند *.py.

یادداشت روی استفاده از افزونه ها

معمولا Vim بسیار سریع است. هر چه افزونه های بیشتری را فعال کنید، مدت زمان بیشتری طول می کشد. شروع Vim به تعویق افتاده است و به طور قابل توجهی بیشتر از قبل طول می کشد. همچنین، معمول است که بسته‌های Debian/Ubuntu خارج از جعبه کار می‌کنند، و اسکریپت‌های نصب شامل تمام مراحل برای راه‌اندازی صحیح افزونه است. متوجه شدم که اینطور نیست و گاهی اوقات نیاز به اقدامات اضافی است.

منابع بیشتر

تعدادی دوره و پست وبلاگ وجود دارد که تنظیمات مختلف Vim را برای استفاده روزمره به عنوان توسعه‌دهنده پایتون پوشش می‌دهد، که من به شدت توصیه می‌کنم آنها را بررسی کنید.

هدف از دوره زیر برای شما تسلط بر Vim است روی هر سیستم عاملی، به شما کمک می کند تا سطحی از دانش و راحتی را با ویرایشگر به دست آورید که دستیابی به آن تنها با خواندن مقالات دشوار است:

بقیه منابع عالی از سراسر وب هستند که به نظر ما نیز بسیار مفید هستند:

این مقالات به گسترش دانش شما کمک می کند. لذت ببرید 🙂

سپاسگزاریها

نویسنده مایل است از Zoleka Hatitongwe برای کمک و نظرات انتقادی خود در هنگام تهیه مقاله تشکر کند.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-26 17:31:13

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید