<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Adnane Kouna</title>
    <description>The latest articles on DEV Community by Adnane Kouna (@adnanekounaa).</description>
    <link>https://dev.to/adnanekounaa</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F785692%2F1982f7e7-e3b7-47af-be95-5769918db306.jpg</url>
      <title>DEV Community: Adnane Kouna</title>
      <link>https://dev.to/adnanekounaa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adnanekounaa"/>
    <language>en</language>
    <item>
      <title>How to create a Python virtual environment using virtualenv</title>
      <dc:creator>Adnane Kouna</dc:creator>
      <pubDate>Tue, 15 Mar 2022 22:44:35 +0000</pubDate>
      <link>https://dev.to/adnanekounaa/how-to-create-a-python-virtual-environment-using-virtualenv-32ji</link>
      <guid>https://dev.to/adnanekounaa/how-to-create-a-python-virtual-environment-using-virtualenv-32ji</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;h4&gt;
  
  
  What is a Python virtual environment?
&lt;/h4&gt;

&lt;p&gt;A &lt;a href="https://docs.python.org/3/tutorial/venv.html"&gt;Python virtual environment&lt;/a&gt; is an isolated development environment where the Python interpreter and all the libraries and scripts are isolated from other environments, which allows each project to have its own dependencies.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why should you use a virtual environment?
&lt;/h4&gt;

&lt;p&gt;If you don't find them useful yet, hear me out: Imagine you've been working on a super cool project using &lt;a href="https://www.djangoproject.com/"&gt;Django 3&lt;/a&gt; for months, and you now want to start another project but everybody is talking about how cool &lt;a href="https://www.djangoproject.com/"&gt;Django 4&lt;/a&gt; is. So what do you choose? Would you keep &lt;a href="https://www.djangoproject.com/"&gt;Django 3&lt;/a&gt; and sacrifice all the new features or would you submit to your shiny object syndrome and update the library even if it means breaking your previous project(s)?&lt;/p&gt;

&lt;p&gt;Luckily you don't have to choose between the two, thanks to virtual environments, you can install the libraries locally, hence you have the ability to install a specific version for each project.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why not just use venv?
&lt;/h4&gt;

&lt;p&gt;Ever since the release of Python 3.3.0 back in 2012, &lt;a href="https://docs.python.org/3/library/venv.html#venv-def"&gt;&lt;strong&gt;venv&lt;/strong&gt;&lt;/a&gt; has been the default module allowing developers to create and manage virtual environments. However, many Pythonistas still prefer using &lt;a href="https://virtualenv.pypa.io/en/latest/"&gt;&lt;strong&gt;virtualenv&lt;/strong&gt;&lt;/a&gt; for the reasons below:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;virtualenv&lt;/em&gt;&lt;/strong&gt; is way faster than &lt;strong&gt;&lt;em&gt;venv&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;venv&lt;/em&gt;&lt;/strong&gt; cannot create virtual environments for arbitrarily installed Python versions.&lt;/li&gt;
&lt;li&gt;You can't update &lt;strong&gt;&lt;em&gt;venv&lt;/em&gt;&lt;/strong&gt; via pip, instead, you have to wait for the next Python update.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;virtualenv&lt;/em&gt;&lt;/strong&gt; is available for both Python 2 and Python 3.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Requirements
&lt;/h4&gt;

&lt;p&gt;In this article, we're gonna show you how to install &lt;em&gt;virtualenv&lt;/em&gt; in addition to how to create, activate and deactivate a virtual environment in Python. And to achieve this goal, you simply need :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Terminal &lt;em&gt;(for Linux or Mac OS)&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft PowerShell&lt;/strong&gt; &lt;em&gt;(for Windows)&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.python.org/downloads/"&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pip.pypa.io/en/latest/installation/"&gt;&lt;strong&gt;pip&lt;/strong&gt; package manager&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to install virtualenv?
&lt;/h2&gt;

&lt;p&gt;To install &lt;em&gt;virtualenv&lt;/em&gt;, we must use the &lt;em&gt;pip package manager&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;First, open the terminal or the PowerShell (depending on your OS) then run the following command :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install virtualenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to create a Python virtual environment?
&lt;/h2&gt;

&lt;p&gt;To create a virtual environment for our new Python project, we must first open the project's directory in the terminal by running the following command :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /home/tech-demon/PythonProjects/CoolProject1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use your own project's directory instead of &lt;em&gt;'/home/.../CoolProject1'&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next, we execute the command below :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;virtualenv project-virtualenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Congratulations!&lt;/strong&gt; You just created your first virtual environment. Notice that a new folder has appeared in the project's directory.&lt;/p&gt;

&lt;p&gt;Note : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rather than &lt;em&gt;project-virtualenv&lt;/em&gt;, you can name your virtual environment whatever you want.&lt;/li&gt;
&lt;li&gt;If you use Git as your main version control system, then you should know that the virtual environment's directory is by default included in the .gitignore file.&lt;/li&gt;
&lt;li&gt;You can specify the version of Python you wanna work with using the -p flag i.e.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;virtualenv -p pythonx.x.x project-virtualenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to activate the Python virtual environment?
&lt;/h2&gt;

&lt;p&gt;In this step, we have to run the &lt;em&gt;activator script&lt;/em&gt; to activate the virtual environment.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For Linux or Mac OS:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source project-virtualenv/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;For Windows:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;project-virtualenv\Scripts\activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point, you should be able to see your virtual environment's name between parentheses on your terminal line e.g. (project-virtualenv), and from now on, all the executed Python commands and installed libraries will be inside the virtual environment until you deactivate it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to deactivate the Python virtual environment?
&lt;/h2&gt;

&lt;p&gt;To deactivate the virtual environment, you only need to run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;deactivate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;To sum up this article, you've just learned about Python virtual environments, their importance to the developers' workflow, as well as how to create, activate, and deactivate one using the &lt;a href="https://virtualenv.pypa.io/en/latest/"&gt;&lt;em&gt;virtualenv&lt;/em&gt;&lt;/a&gt; library.&lt;/p&gt;

&lt;p&gt;If you liked this article, don't forget to subscribe to my &lt;a href="https://techdemon.hashnode.dev/"&gt;blog&lt;/a&gt; and/or leave a comment. It would be much appreciated!&lt;/p&gt;

&lt;h4&gt;
  
  
  You might also enjoy
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://techdemon.hashnode.dev/10-vim-plugins-i-cant-live-without"&gt;10 Vim plugins I can’t live without (and how to install them?)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Sources &amp;amp; References
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://virtualenv.pypa.io/en/latest/user_guide.html"&gt;virtualenv's Documentation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://uoa-eresearch.github.io/eresearch-cookbook/recipe/2014/11/26/python-virtual-env/"&gt;eResearch cookbook's Article&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.python.org/3/library/venv.html"&gt;venv's Documentation&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>workflow</category>
      <category>virtualenv</category>
    </item>
    <item>
      <title>10 Vim plugins I can’t live without (and how to install them?)</title>
      <dc:creator>Adnane Kouna</dc:creator>
      <pubDate>Tue, 04 Jan 2022 08:59:27 +0000</pubDate>
      <link>https://dev.to/adnanekounaa/10-vim-plugins-i-cant-live-without-and-how-to-install-them-1cep</link>
      <guid>https://dev.to/adnanekounaa/10-vim-plugins-i-cant-live-without-and-how-to-install-them-1cep</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Vim (short for Vi IMproved) is a free and open-source text editor released in 1991 by &lt;a href="https://en.wikipedia.org/wiki/Bram_Moolenaar?oldformat=true"&gt;Bram Moolenaar&lt;/a&gt;. It’s one of the most popular text editors among developers, in fact it is the 5th most used IDE according to the 2021 Stack Overflow Developer Survey.&lt;br&gt;
Its rising popularity is mostly due to its minimalism, fast workflow and high customizability, since not only are there multiple shortcuts for literally everything, it also has thousands of plugins that you can install and customize in a couple of seconds (thanks to the amazing and creative community it has).&lt;br&gt;
And in this article, we’re going to give you 10 Vim plugins to make your workflow even faster and easier and turn your simple text editor into a fully working Integrated Development Environment.&lt;/p&gt;

&lt;p&gt;Note : &lt;em&gt;This tutorial is aimed directly towards Vim, but you can still apply it to NeoVim too.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How to install Vim Plugins?
&lt;/h2&gt;

&lt;p&gt;Like practically anything else in Vim, there is no one particular way to install plugins and to make it easy for you, here are the most popular options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://howchoo.com/vim/how-to-install-vim-plugins-without-a-plugin-manager"&gt;Manual Installation&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VundleVim/Vundle.vim"&gt;Vundle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tpope/vim-pathogen"&gt;Pathogen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/junegunn/vim-plug"&gt;Vim-Plug&lt;/a&gt;, and it's the method we are going to the use for the rest of this article.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  To install the plugins
&lt;/h3&gt;

&lt;p&gt;First, we need to execute the following commands to install Vim-Plug :&lt;/p&gt;

&lt;p&gt;&lt;em&gt;For Linux/Mac users :&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;For Windows users :&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
    ni $HOME/vimfiles/autoload/plug.vim -Force
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, you have to add a Vim-Plug section to your Vim Configuration File (aka .vimrc) :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;call plug#begin()
Plug ""
Plug ""
Plug ""
call plug#end()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note : &lt;em&gt;insert the link to a plugin repository between the quotations to add it to Vim-Plug.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After that, we only need to execute this command (in Vim) in order to completely install the added plugins :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:PlugInstall
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The plugins I can't live without
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/mhinz/vim-startify"&gt;Startify&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview :&lt;/strong&gt; Whenever you open vim without a file, it opens in a new file. Instead with Startify, you get this fancy looking start page with bookmarks, recently opened files and an advising cow on top.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FbqOVxBf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641043231582/GAUynv2_X.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FbqOVxBf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641043231582/GAUynv2_X.png" alt="image.png" width="842" height="967"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Installation :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug "mhinz/vim-startify"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;a href="https://github.com/preservim/nerdtree"&gt;NERDTree&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview :&lt;/strong&gt; To browse different folders and files, you don't have to exit anymore thanks to NERDTree that provides a file hierarchy explorer inside Vim like many other modern IDEs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bZ5ujJc2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641045929899/tq3nP4q0V.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bZ5ujJc2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641045929899/tq3nP4q0V.png" alt="image.png" width="880" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug "preservim/nerdtree"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;a href="https://github.com/itchyny/lightline.vim"&gt;Lightline&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview :&lt;/strong&gt; Instead of a plain text with the active mode, you can get a very cool and colorful status bar containing the active mode, the name of the file and the position of the cursor...etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7w7krGeJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641049326132/RwgaYztH5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7w7krGeJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641049326132/RwgaYztH5.png" alt="image.png" width="880" height="105"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug "itchyny/lightline.vim"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;a href="https://github.com/dbeniamine/cheat.sh-vim"&gt;Cheat.sh&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview :&lt;/strong&gt; How many times have you looked up how to invert an array or how to make a switch statement in JavaScript? If the answer is more than once, then you definitely need this plugin. Cheat.sh is a website that has tons of cheatsheets for every programming language, and thanks to this plugin you can access all these plugins directly from Vim.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bpvsYSmI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641222352748/jOdotjd0i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bpvsYSmI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641222352748/jOdotjd0i.png" alt="Screenshot_20220103_160121.png" width="880" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Fk0pCaY0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641222378868/fABcS3woh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Fk0pCaY0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641222378868/fABcS3woh.png" alt="Screenshot_20220103_160347.png" width="880" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug "dbeniamine/cheat.sh-vim"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Useful Commands :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;leader key&lt;/em&gt; + KK : to look up the selected text/line.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;leader key&lt;/em&gt; + KR : to replace the selected question by its answer.&lt;/li&gt;
&lt;li&gt;:Cheat + &lt;em&gt;question&lt;/em&gt; : to look up the question.&lt;/li&gt;
&lt;li&gt;:HowIn + &lt;em&gt;language or framework&lt;/em&gt; + &lt;em&gt;question&lt;/em&gt; : to look up the question in the specified language.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/tpope/vim-surround"&gt;Vim-Surround&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview :&lt;/strong&gt; More to the lazyness, ahem, I mean the time effectiveness of developers, now you don't even have to change the surrounding characters by yourself thanks to surround.vim. It is developed by the famous Vim plugin artist &lt;em&gt;&lt;a href="https://github.com/tpope"&gt;tpope&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug "tpope/vim-surround"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Useful Commands :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;:cs+&lt;em&gt;old-surrounding&lt;/em&gt;+&lt;em&gt;new-surrounding&lt;/em&gt; : changes surrounding characters (&lt;em&gt;e.g. :cs'" -&amp;gt; changes 'string' to "string"&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;:ds+&lt;em&gt;old-surrounding&lt;/em&gt; : deletes surrounding characters (&lt;em&gt;e.g. :ds' -&amp;gt; changes 'string' to string&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/sheerun/vim-polyglot"&gt;Vim-Polyglot&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview :&lt;/strong&gt; Can we all agree that one of the main reasons we fell in love with programming is the aesthetics? And because of that, you cannot have a popular IDE without some proper syntax highlighting and among the best plugins to provide this, there is Vim Polyglot, compatible with hundreds of programming languages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IDsH1D9R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641224253544/y53E8E575.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IDsH1D9R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641224253544/y53E8E575.png" alt="Screenshot_20220103_163621.png" width="880" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug "sheerun/vim-polyglot"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;a href="https://github.com/mattn/emmet-vim"&gt;Emmet-Vim&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview :&lt;/strong&gt; This plugin is one of two in this list that are specific to Web Development. If you have already heard of Emmet before, then this plugin is just the vim version of it. If not, Emmet is a set of plugins that speeds up coding in HTML and takes it to a whole another level of easability thanks to the tons of intuitive and easy to learn shortcuts and abbreviations it has.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug "mattn/emmet-vim"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Useful Commands :&lt;/strong&gt;&lt;br&gt;
You can find all the abbreviations and shortcuts in the &lt;a href="https://docs.emmet.io/abbreviations/syntax/"&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://github.com/airblade/vim-gitgutter"&gt;Vim-Gitgutter&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview :&lt;/strong&gt; If you're a coder or a developer, odds are you use Git on a semi-daily basis. If you do indeed use Git, then this next plugin is definitely for you. It shows, in the sign column, all the edits you have made since the last commit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kXcBtM6r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641225857793/5nD9VgUpY.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kXcBtM6r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641225857793/5nD9VgUpY.png" alt="image.png" width="880" height="695"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug "airblade/vim-gitgutter"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;a href="https://github.com/tpope/vim-commentary"&gt;Vim-Commentary&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview :&lt;/strong&gt; Instead of having to switch modes in order to comment out chunks of your code, you can do this in much less keystrokes thanks to this plugin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug "tpope/vim-commentary"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Useful Commands :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;gcc : comments out a line.&lt;/li&gt;
&lt;li&gt;gc : comments out the selected text.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/ap/vim-css-color"&gt;Vim-CSS-Color&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview :&lt;/strong&gt; This is the second Web-Dev specific plugin in our list, there's not much to explain here, it does exactly what it says : it previews the HEX colors in CSS files which makes it easier for you to remember which color is which while working on large projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xL-_vtdp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641226685032/Jd03up2CT.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xL-_vtdp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1641226685032/Jd03up2CT.png" alt="image.png" width="880" height="593"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug "ap/vim-css-color"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;These are 10 necessary Vim Plugins that extend the usability of Vim and turn it into a full integrated development environment. Don't forget to comment your favourite Vim plugin, I would love to discover some more.&lt;br&gt;
This is also my first blog ever, so I would love to get your opinions and constructive criticism in the comments below.&lt;/p&gt;

</description>
      <category>vim</category>
      <category>plugins</category>
      <category>ide</category>
      <category>top10</category>
    </item>
  </channel>
</rss>
