<?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>Forem: AkashKumarYadav</title>
    <description>The latest articles on Forem by AkashKumarYadav (@akashkumaryadav).</description>
    <link>https://forem.com/akashkumaryadav</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%2F262530%2Fb3255653-7425-4460-8984-9869859644f2.png</url>
      <title>Forem: AkashKumarYadav</title>
      <link>https://forem.com/akashkumaryadav</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/akashkumaryadav"/>
    <language>en</language>
    <item>
      <title>5 Reasons to use SVG's in your next project</title>
      <dc:creator>AkashKumarYadav</dc:creator>
      <pubDate>Tue, 12 Jan 2021 00:25:01 +0000</pubDate>
      <link>https://forem.com/akashkumaryadav/5-reasons-to-use-svg-s-in-your-next-project-49j3</link>
      <guid>https://forem.com/akashkumaryadav/5-reasons-to-use-svg-s-in-your-next-project-49j3</guid>
      <description>&lt;h2&gt;
  
  
  What is SVG ?
&lt;/h2&gt;

&lt;p&gt;Let’s get technical for a second. SVG stands for “Scalable Vector Graphics” and is an XML based, vector image format.&lt;/p&gt;

&lt;p&gt;SVGs are predominantly found on the web, and while they have similar uses to JPEG, PNG and WebP image types, their DNA is extremely different.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;So why are they different?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Well, traditional image types like JPEG, PNG and GIF are bitmap-based, meaning they consist of a set amount of pixels. Typically, this means that as soon as you start to increase or decrease an image of this type, you are presented with jagged lines, blurry artifacts and a pixelated mess.&lt;/p&gt;

&lt;h2&gt;
  
  
  WHY ?
&lt;/h2&gt;




&lt;blockquote&gt;
&lt;h3&gt;
  
  
  1. Resolution
&lt;/h3&gt;
&lt;h3&gt;
  
  
  2. Animation
&lt;/h3&gt;
&lt;h3&gt;
  
  
  3. Accessibility and SEO
&lt;/h3&gt;
&lt;h3&gt;
  
  
  4. Speed
&lt;/h3&gt;
&lt;h3&gt;
  
  
  5. Practicality
&lt;/h3&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Resolution
&lt;/h2&gt;

&lt;p&gt;An SVG will scale indefinitely and will remain super sharp at any resolution.&lt;br&gt;
It doesn’t matter about your screen size, zoom level, resolution or whether or not you have a ‘retina’ display. SVG is vector based, paths, shapes and fills. This allows for infinite resolution, much like when creating artwork for print and using shapes, the same principles apply!&lt;/p&gt;




&lt;h2&gt;
  
  
  Animation
&lt;/h2&gt;

&lt;p&gt;SVGs can be animated and styled with CSS. Animations (transformation/transition) that you use on HTML elements can also be used on an SVG element. There are instances where you can’t use CSS to animate SVGs but these instances can usually be covered with JavaScript&lt;/p&gt;

&lt;p&gt;This opens up a whole world of creativity when it comes to the web&lt;/p&gt;




&lt;h2&gt;
  
  
  Accessibility and SEO
&lt;/h2&gt;

&lt;p&gt;Google index’s SVGs, which is good news. SVG content whether it is in a standalone file or embedded directly in HTML is indexed.&lt;/p&gt;




&lt;h2&gt;
  
  
  SPEED
&lt;/h2&gt;

&lt;p&gt;Due to the nature of vector graphics, the data that determines the file size are the layers, effects, masks, colors, and gradients used.&lt;/p&gt;

&lt;p&gt;In comparison, bitmap-based images record each and every pixel in the image as well as the number of colors used. Admittedly, it’s a little more complicated than that, but the thing to take away from this is that for the most part, a bitmap-based image will be more expensive than an SVG counterpart.&lt;/p&gt;

&lt;p&gt;On top of this, you can make your SVG files even smaller by compressing them with gzip. This means that fewer bytes need to be sent from the server or CDN if gzip compression is enabled.&lt;/p&gt;




&lt;h2&gt;
  
  
  Practicality
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Graphs&lt;/strong&gt;: Yes, graphs… SVGs are great at vector shapes, lending itself to things like infographics and graphs very well indeed.&lt;br&gt;
&lt;strong&gt;Logos&lt;/strong&gt;: Logos are usually vector based, and rightly so, The beauty here is, you could define an SVG document as your logo and then use it wherever you like without worrying about size, resolution or load times. The same factors apply for icons too.&lt;/p&gt;

</description>
      <category>svg</category>
      <category>ux</category>
      <category>logo</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Vim Cheat Sheet</title>
      <dc:creator>AkashKumarYadav</dc:creator>
      <pubDate>Sun, 10 Jan 2021 23:45:07 +0000</pubDate>
      <link>https://forem.com/akashkumaryadav/vim-cheat-sheet-1n4o</link>
      <guid>https://forem.com/akashkumaryadav/vim-cheat-sheet-1n4o</guid>
      <description>&lt;h3&gt;
  
  
  Global
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;:&lt;strong&gt;h[elp]&lt;/strong&gt; keyword - open help for keyword&lt;br&gt;
&lt;strong&gt;:sav[eas]&lt;/strong&gt; file - save file as&lt;br&gt;
&lt;strong&gt;:clo[se]&lt;/strong&gt; - close current pane&lt;br&gt;
&lt;strong&gt;:ter[minal]&lt;/strong&gt; - open a terminal window&lt;br&gt;
_&lt;em&gt;K _&lt;/em&gt;- open man page for word under the cursor&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;em&gt;Tip Run vimtutor in a terminal to learn the first Vim commands.&lt;/em&gt;
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Cursor movement
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;h&lt;/strong&gt; - move cursor left&lt;br&gt;
&lt;strong&gt;j&lt;/strong&gt; - move cursor down&lt;br&gt;
&lt;strong&gt;k&lt;/strong&gt; - move cursor up&lt;br&gt;
&lt;strong&gt;l&lt;/strong&gt; - move cursor right&lt;br&gt;
&lt;strong&gt;H&lt;/strong&gt; - move to top of screen&lt;br&gt;
&lt;strong&gt;M&lt;/strong&gt; - move to middle of screen&lt;br&gt;
&lt;strong&gt;L&lt;/strong&gt; - move to bottom of screen&lt;br&gt;
&lt;strong&gt;w&lt;/strong&gt; - jump forwards to the start of a word&lt;br&gt;
&lt;strong&gt;W&lt;/strong&gt; - jump forwards to the start of a word (words can contain punctuation)&lt;br&gt;
&lt;strong&gt;e&lt;/strong&gt; - jump forwards to the end of a word&lt;br&gt;
&lt;strong&gt;E&lt;/strong&gt; - jump forwards to the end of a word (words can contain punctuation)&lt;br&gt;
&lt;strong&gt;b&lt;/strong&gt; - jump backwards to the start of a word&lt;br&gt;
&lt;strong&gt;B&lt;/strong&gt; - jump backwards to the start of a word (words can contain punctuation)&lt;br&gt;
&lt;strong&gt;%&lt;/strong&gt; - move to matching character (default supported pairs: '()', '{}', '[]' &lt;br&gt;
&lt;strong&gt;- use :h&lt;/strong&gt; matchpairs in vim for more info)&lt;br&gt;
&lt;strong&gt;0&lt;/strong&gt; - jump to the start of the line&lt;br&gt;
&lt;strong&gt;^&lt;/strong&gt; - jump to the first non-blank character of the line&lt;br&gt;
&lt;strong&gt;$&lt;/strong&gt; - jump to the end of the line&lt;br&gt;
&lt;strong&gt;g&lt;/strong&gt;_ - jump to the last non-blank character of the line&lt;br&gt;
&lt;strong&gt;gg&lt;/strong&gt; - go to the first line of the document&lt;br&gt;
&lt;strong&gt;G&lt;/strong&gt; - go to the last line of the document&lt;br&gt;
&lt;strong&gt;5gg or 5G __- go to line 5&lt;br&gt;
__fx&lt;/strong&gt; - jump to next occurrence of character x&lt;br&gt;
&lt;strong&gt;tx&lt;/strong&gt; - jump to before next occurrence of character x&lt;br&gt;
&lt;strong&gt;Fx&lt;/strong&gt; - jump to previous occurence of character x&lt;br&gt;
&lt;strong&gt;Tx&lt;/strong&gt; - jump to after previous occurence of character x&lt;br&gt;
&lt;strong&gt;;&lt;/strong&gt; - repeat previous f, t, F or T movement&lt;br&gt;
&lt;strong&gt;,&lt;/strong&gt; - repeat previous f, t, F or T movement, backwards&lt;br&gt;
&lt;strong&gt;}&lt;/strong&gt; - jump to next paragraph (or function/block, when editing code)&lt;br&gt;
&lt;strong&gt;{ __- jump to previous paragraph (or function/block, when editing code)&lt;br&gt;
__zz&lt;/strong&gt; - center cursor on screen&lt;br&gt;
&lt;strong&gt;Ctrl + e __- move screen down one line (without moving cursor)&lt;br&gt;
__Ctrl + y&lt;/strong&gt; - move screen up one line (without moving cursor)&lt;br&gt;
&lt;strong&gt;Ctrl + b&lt;/strong&gt; - move back one full screen&lt;br&gt;
&lt;strong&gt;Ctrl + f&lt;/strong&gt; - move forward one full screen&lt;br&gt;
&lt;strong&gt;Ctrl + d&lt;/strong&gt; - move forward 1/2 a screen&lt;br&gt;
&lt;strong&gt;Ctrl + u&lt;/strong&gt; - move back 1/2 a screen&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Tip Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines.
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Insert mode - inserting/appending text&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;i&lt;/strong&gt; - insert before the cursor&lt;br&gt;
&lt;strong&gt;I _&lt;em&gt;- insert at the beginning of the line&lt;br&gt;
__a _&lt;/em&gt;- insert (append) after the cursor&lt;br&gt;
__A&lt;/strong&gt; - insert (append) at the end of the line&lt;br&gt;
&lt;strong&gt;o&lt;/strong&gt; - append (open) a new line below the current line&lt;br&gt;
&lt;strong&gt;O&lt;/strong&gt; - append (open) a new line above the current line&lt;br&gt;
&lt;strong&gt;ea&lt;/strong&gt; - insert (append) at the end of the word&lt;br&gt;
&lt;strong&gt;Ctrl + h&lt;/strong&gt; - delete the character before the cursor during insert mode&lt;br&gt;
&lt;strong&gt;Ctrl + w&lt;/strong&gt; - delete word before the cursor during insert mode&lt;br&gt;
&lt;strong&gt;Ctrl + j&lt;/strong&gt; - begin new line during insert mode&lt;br&gt;
&lt;strong&gt;Ctrl + t&lt;/strong&gt; - indent (move right) line one shiftwidth during insert mode&lt;br&gt;
&lt;strong&gt;Ctrl + d&lt;/strong&gt; - de-indent (move left) line one shiftwidth during insert mode&lt;br&gt;
&lt;strong&gt;Ctrl + n&lt;/strong&gt; - insert (auto-complete) next match before the cursor during insert mode&lt;br&gt;
&lt;strong&gt;Ctrl + p __ - insert (auto-complete) previous match before the cursor during insert mode&lt;br&gt;
__Esc&lt;/strong&gt; - exit insert mode&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Editing
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;r&lt;/strong&gt; - replace a single character&lt;br&gt;
&lt;strong&gt;J&lt;/strong&gt; - join line below to the current one with one space in between&lt;br&gt;
&lt;strong&gt;gJ&lt;/strong&gt; - join line below to the current one without space in between&lt;br&gt;
&lt;strong&gt;gwip&lt;/strong&gt; - reflow paragraph&lt;br&gt;
&lt;strong&gt;g~&lt;/strong&gt; - switch case up to motion&lt;br&gt;
&lt;strong&gt;gu&lt;/strong&gt; - change to lowercase up to motion&lt;br&gt;
&lt;strong&gt;gU&lt;/strong&gt; - change to uppercase up to motion&lt;br&gt;
&lt;strong&gt;cc&lt;/strong&gt; - change (replace) entire line&lt;br&gt;
&lt;strong&gt;C&lt;/strong&gt; - change (replace) to the end of the line&lt;br&gt;
&lt;strong&gt;c$&lt;/strong&gt; - change (replace) to the end of the line&lt;br&gt;
&lt;strong&gt;ciw&lt;/strong&gt; - change (replace) entire word&lt;br&gt;
&lt;strong&gt;cw&lt;/strong&gt; - change (replace) to the end of the word&lt;br&gt;
&lt;strong&gt;s&lt;/strong&gt; - delete character and substitute text&lt;br&gt;
&lt;strong&gt;S&lt;/strong&gt; - delete line and substitute text (same as cc)&lt;br&gt;
&lt;strong&gt;xp&lt;/strong&gt; - transpose two letters (delete and paste)&lt;br&gt;
&lt;strong&gt;u&lt;/strong&gt; - undo&lt;br&gt;
&lt;strong&gt;U&lt;/strong&gt; - restore (undo) last changed line&lt;br&gt;
&lt;strong&gt;Ctrl + r _&lt;em&gt;- redo&lt;br&gt;
_&lt;/em&gt;.&lt;/strong&gt; - repeat last command&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Marking text (visual mode)
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;v&lt;/strong&gt; - start visual mode, mark lines, then do a command (like y-yank)&lt;br&gt;
&lt;strong&gt;V&lt;/strong&gt; - start linewise visual mode&lt;br&gt;
&lt;strong&gt;o&lt;/strong&gt; - move to other end of marked area&lt;br&gt;
&lt;strong&gt;Ctrl + v&lt;/strong&gt; - start visual block mode&lt;br&gt;
&lt;strong&gt;O&lt;/strong&gt; - move to other corner of block&lt;br&gt;
&lt;strong&gt;aw&lt;/strong&gt; - mark a word&lt;br&gt;
&lt;strong&gt;ab&lt;/strong&gt; - a block with ()&lt;br&gt;
&lt;strong&gt;aB&lt;/strong&gt; - a block with {}&lt;br&gt;
&lt;strong&gt;at&lt;/strong&gt; - a block with "&amp;lt;" "&amp;gt;" tags&lt;br&gt;
&lt;strong&gt;ib&lt;/strong&gt; - inner block with ()&lt;br&gt;
&lt;strong&gt;iB&lt;/strong&gt; - inner block with {}&lt;br&gt;
&lt;strong&gt;it&lt;/strong&gt; - inner block with "&amp;lt;" "&amp;gt;" tags&lt;br&gt;
&lt;strong&gt;Esc&lt;/strong&gt; - exit visual mode&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Tip Instead of b or B one can also use ( or { respectively.
&lt;/h3&gt;

&lt;h1&gt;
  
  
  Visual commands
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&amp;gt; _&lt;em&gt;- shift text right&lt;br&gt;
_&lt;/em&gt;&amp;lt;&lt;/strong&gt; - shift text left&lt;br&gt;
&lt;strong&gt;y&lt;/strong&gt; - yank (copy) marked text&lt;br&gt;
&lt;strong&gt;d&lt;/strong&gt; - delete marked text&lt;br&gt;
&lt;strong&gt;~&lt;/strong&gt; - switch case&lt;br&gt;
&lt;strong&gt;u&lt;/strong&gt; - change marked text to lowercase&lt;br&gt;
&lt;strong&gt;U&lt;/strong&gt; - change marked text to uppercase&lt;br&gt;
Registers&lt;br&gt;
&lt;strong&gt;:reg[isters]&lt;/strong&gt; - show registers content&lt;br&gt;
&lt;strong&gt;"xy&lt;/strong&gt; - yank into register x&lt;br&gt;
&lt;strong&gt;"xp&lt;/strong&gt; - paste contents of register x&lt;br&gt;
&lt;strong&gt;"+y&lt;/strong&gt; - yank into the system clipboard register&lt;br&gt;
&lt;strong&gt;"+p&lt;/strong&gt; - paste from the system clipboard register&lt;br&gt;
&lt;strong&gt;Tip Registers are being stored in ~/.viminfo, and will be loaded again on next restart of vim.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Tip Special registers:&lt;/strong&gt;&lt;br&gt;
 &lt;strong&gt;0&lt;/strong&gt; - last yank&lt;br&gt;
&lt;strong&gt; "&lt;/strong&gt; - unnamed register, last delete or yank&lt;br&gt;
&lt;strong&gt; %&lt;/strong&gt; - current file name&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
   alternate file name
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;* _&lt;em&gt;- clipboard contents (X11 primary)&lt;br&gt;
_&lt;/em&gt; +&lt;/strong&gt; - clipboard contents (X11 clipboard)&lt;br&gt;
&lt;strong&gt; /&lt;/strong&gt; - last search pattern&lt;br&gt;
 &lt;strong&gt;:&lt;/strong&gt; - last command-line&lt;br&gt;
&lt;strong&gt; .&lt;/strong&gt; - last inserted text&lt;br&gt;
_&lt;em&gt; - _&lt;/em&gt;- last small (less than a line) delete&lt;br&gt;
_&lt;em&gt; = _&lt;/em&gt;- expression register&lt;br&gt;
_&lt;em&gt; &lt;/em&gt; __- black hole register&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Marks and positions
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;:marks&lt;/strong&gt; - list of marks&lt;br&gt;
&lt;strong&gt;ma&lt;/strong&gt; - set current position for mark A&lt;br&gt;
&lt;strong&gt;`a&lt;/strong&gt; - jump to position of mark A&lt;br&gt;
&lt;strong&gt;y`a&lt;/strong&gt; - yank text to position of mark A&lt;br&gt;
&lt;strong&gt;`0&lt;/strong&gt; - go to the position where Vim was previously exited&lt;br&gt;
&lt;strong&gt;`"&lt;/strong&gt; - go to the position when last editing this file&lt;br&gt;
&lt;strong&gt;`.&lt;/strong&gt; - go to the position of the last change in this file&lt;br&gt;
&lt;strong&gt;&lt;code&gt;&lt;/code&gt;&lt;/strong&gt; - go to the position before the last jump&lt;br&gt;
&lt;strong&gt;:ju[mps]&lt;/strong&gt; - list of jumps&lt;br&gt;
&lt;strong&gt;Ctrl + i&lt;/strong&gt; - go to newer position in jump list&lt;br&gt;
&lt;strong&gt;Ctrl + o&lt;/strong&gt; - go to older position in jump list&lt;br&gt;
&lt;strong&gt;:changes&lt;/strong&gt; - list of changes&lt;br&gt;
&lt;strong&gt;g,&lt;/strong&gt; - go to newer position in change list&lt;br&gt;
&lt;strong&gt;g;&lt;/strong&gt; - go to older position in change list&lt;br&gt;
&lt;strong&gt;Ctrl + ]&lt;/strong&gt; - jump to the tag under cursor&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Tip To jump to a mark you can either use a backtick (`) or an apostrophe ('). Using an apostrophe jumps to the beginning (first non-black) of the line holding the mark.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Macros&lt;/strong&gt;__
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;__ qa__ - record macro a&lt;br&gt;
&lt;strong&gt;q&lt;/strong&gt; - stop recording macro&lt;br&gt;
&lt;strong&gt;@a _&lt;em&gt;- run macro a&lt;br&gt;
_&lt;/em&gt;@@&lt;/strong&gt; - rerun last run macro&lt;br&gt;
&lt;strong&gt;Cut and paste&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;yy&lt;/strong&gt; - yank (copy) a line&lt;br&gt;
&lt;strong&gt;2yy&lt;/strong&gt; - yank (copy) 2 lines&lt;br&gt;
&lt;strong&gt;yw&lt;/strong&gt; - yank (copy) the characters of the word from the cursor position to the start of the next word&lt;br&gt;
&lt;strong&gt;y$&lt;/strong&gt; - yank (copy) to end of line&lt;br&gt;
&lt;strong&gt;p&lt;/strong&gt; - put (paste) the clipboard after cursor&lt;br&gt;
&lt;strong&gt;P&lt;/strong&gt; - put (paste) before cursor&lt;br&gt;
&lt;strong&gt;dd&lt;/strong&gt; - delete (cut) a line&lt;br&gt;
&lt;strong&gt;2dd&lt;/strong&gt; - delete (cut) 2 lines&lt;br&gt;
&lt;strong&gt;dw&lt;/strong&gt; - delete (cut) the characters of the word from the cursor position to the start of the next word&lt;br&gt;
&lt;strong&gt;D&lt;/strong&gt; - delete (cut) to the end of the line&lt;br&gt;
&lt;strong&gt;d$&lt;/strong&gt; - delete (cut) to the end of the line&lt;br&gt;
&lt;strong&gt;x&lt;/strong&gt; - delete (cut) character&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Tabs
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;:tabnew&lt;/strong&gt; or :tabnew {page.words.file} - open a file in a new tab&lt;br&gt;
&lt;strong&gt;Ctrl + wT&lt;/strong&gt; - move the current split window into its own tab&lt;br&gt;
&lt;strong&gt;gt or :tabn[ext]&lt;/strong&gt; - move to the next tab&lt;br&gt;
&lt;strong&gt;gT or :tabp[revious]&lt;/strong&gt; - move to the previous tab&lt;br&gt;
&lt;strong&gt;#gt _&lt;em&gt;- move to tab number #&lt;br&gt;
_&lt;/em&gt;:tabm[ove] #&lt;/strong&gt; - move current tab to the #th position (indexed from 0)&lt;br&gt;
&lt;strong&gt;:tabc[lose] _&lt;em&gt;- close the current tab and all its windows&lt;br&gt;
_&lt;/em&gt;:tabo[nly] _&lt;em&gt;- close all tabs except for the current one&lt;br&gt;
_&lt;/em&gt;:tabdo command&lt;/strong&gt; - run the command on all tabs (e.g. :tabdo q - closes all opened tabs)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Working with multiple files&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;:e[dit]&lt;/strong&gt; file - edit a file in a new buffer&lt;br&gt;
&lt;strong&gt;:bn[ext]&lt;/strong&gt; or :bn - go to the next buffer&lt;br&gt;
&lt;strong&gt;:bp[revious]&lt;/strong&gt; or :bp - go to the previous buffer&lt;br&gt;
&lt;strong&gt;:bd[elete]&lt;/strong&gt; - delete a buffer (close a file)&lt;br&gt;
&lt;strong&gt;:b#&lt;/strong&gt; - go to a buffer by #&lt;br&gt;
&lt;strong&gt;:b file&lt;/strong&gt; - go to a buffer by file&lt;br&gt;
&lt;strong&gt;:ls _&lt;em&gt;- list all open buffers&lt;br&gt;
_&lt;/em&gt;:sp[lit] file&lt;/strong&gt; - open a file in a new buffer and split window&lt;br&gt;
&lt;strong&gt;:vs[plit] file&lt;/strong&gt; - open a file in a new buffer and vertically split window&lt;br&gt;
&lt;strong&gt;:vert[ical] ba[ll]&lt;/strong&gt; - edit all buffers as vertical windows&lt;br&gt;
&lt;strong&gt;:tab ba[ll]&lt;/strong&gt; - edit all buffers as tabs&lt;br&gt;
&lt;strong&gt;Ctrl + ws&lt;/strong&gt; - split window&lt;br&gt;
&lt;strong&gt;Ctrl + wv&lt;/strong&gt; - split window vertically&lt;br&gt;
&lt;strong&gt;Ctrl + ww __ - switch windows&lt;br&gt;
__Ctrl + wq&lt;/strong&gt; - quit a window&lt;br&gt;
&lt;strong&gt;Ctrl + wx&lt;/strong&gt; - exchange current window with next one&lt;br&gt;
&lt;strong&gt;Ctrl + w=&lt;/strong&gt; - make all windows equal height &amp;amp; width&lt;br&gt;
_&lt;em&gt;Ctrl + wh _&lt;/em&gt;- move cursor to the left window (vertical split)&lt;br&gt;
_&lt;em&gt;Ctrl + wl _&lt;/em&gt;- move cursor to the right window (vertical split)&lt;br&gt;
_&lt;em&gt;Ctrl + wj _&lt;/em&gt;- move cursor to the window below (horizontal split)&lt;br&gt;
_&lt;em&gt;Ctrl + wk _&lt;/em&gt;- move cursor to the window above (horizontal split)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Diff
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;zf&lt;/strong&gt; - manually define a fold up to motion&lt;br&gt;
&lt;strong&gt;zd __- delete fold under the cursor&lt;br&gt;
__za&lt;/strong&gt; - toggle fold under the cursor&lt;br&gt;
&lt;strong&gt;zo&lt;/strong&gt; - open fold under the cursor&lt;br&gt;
&lt;strong&gt;zc&lt;/strong&gt; - close fold under the cursor&lt;br&gt;
&lt;strong&gt;zr&lt;/strong&gt; - reduce (open) all folds by one level&lt;br&gt;
&lt;strong&gt;zm&lt;/strong&gt; - fold more (close) all folds by one level&lt;br&gt;
&lt;strong&gt;zi&lt;/strong&gt; - toggle folding functionality&lt;br&gt;
&lt;strong&gt;]c&lt;/strong&gt; - jump to start of next change&lt;br&gt;
&lt;strong&gt;[c __ - jump to start of previous change&lt;br&gt;
__do or :diffg[et]&lt;/strong&gt; - obtain (get) difference (from other buffer)&lt;br&gt;
&lt;strong&gt;dp or :diffpu[t]&lt;/strong&gt; - put difference (to other buffer)&lt;br&gt;
&lt;strong&gt;:diffthis&lt;/strong&gt; - make current window part of diff&lt;br&gt;
&lt;strong&gt;:dif[fupdate]&lt;/strong&gt; - update differences&lt;br&gt;
&lt;strong&gt;:diffo[ff]&lt;/strong&gt; - switch off diff mode for current window&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Tip The commands for folding (e.g. za) operate on one level. To operate on all levels, use uppercase letters (e.g. zA).&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Tip To view the differences of files, one can directly start Vim in diff mode by running vimdiff in a terminal. One can even set this as git difftool.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ThankYou 😊
&lt;/h2&gt;

</description>
      <category>vim</category>
      <category>development</category>
      <category>terminal</category>
      <category>cheetsheet</category>
    </item>
    <item>
      <title>Top 5 vs CODE extensions for web developers</title>
      <dc:creator>AkashKumarYadav</dc:creator>
      <pubDate>Sat, 29 Aug 2020 19:52:45 +0000</pubDate>
      <link>https://forem.com/akashkumaryadav/top-5-vs-code-extensions-for-web-developers-3hn5</link>
      <guid>https://forem.com/akashkumaryadav/top-5-vs-code-extensions-for-web-developers-3hn5</guid>
      <description>&lt;p&gt;A list of essential Visual Studio Code extensions to help you become a more efficient web developer.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Live Server
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LhkksTlR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--9j5ZH-3---/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/3wYswsNh/vscode-liveserverlogo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LhkksTlR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--9j5ZH-3---/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/3wYswsNh/vscode-liveserverlogo.png" alt="vscode.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A must-have for any developer creating webpages using HTML and CSS. Once installed all you have to do is open your project, look for the Go Live button on the status bar at the bottom, or use the command Alt+L Alt+O in order to launch a quick development live server so you can view your current project live on any browser.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. GitLens
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hgJyKpFE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--sXUdheVv--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/kGPJfjwg/vscode-gitlenslogo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hgJyKpFE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--sXUdheVv--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/kGPJfjwg/vscode-gitlenslogo.png" alt="vscode-gitlenslogo.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you know and work with git, you will want this extension. This customizable extension lets you better understand your code by easily allowing you to view when, why, and by whom the code was added/edited.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XJTkQ9_z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--2ZR2V-8o--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/WbqXc527/vscode-gitlens.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XJTkQ9_z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--2ZR2V-8o--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/WbqXc527/vscode-gitlens.png" alt="gitlens"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. IntelliSense for CSS class names in HTML
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BvJV-e9_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--F3fZSAFQ--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/3RRSz7SL/vscode-intellicss.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BvJV-e9_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--F3fZSAFQ--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/3RRSz7SL/vscode-intellicss.png" alt="vscode-intellicss.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You don’t need to remember all the CSS class names while you are working on your HTML file. This extension will provide you with a completion list for the HTML class attribute based on your workspace or external files referenced beforehand.&lt;/p&gt;

&lt;p&gt;Alternative: HTML CSS Support&lt;br&gt;
Complementary: CSS Peek&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Visual Studio IntelliCode
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jqRbbHtR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--Xpgs8iYh--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/GtXfHtBn/vscode-intellicode.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jqRbbHtR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--Xpgs8iYh--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/GtXfHtBn/vscode-intellicode.png" alt="vscode-intellicode.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This extension uses AI technology to help Python, TypeScript/JavaScript, and Java developers. As you code, it will show a recommended completion items list sorted by context, rather than alphabetically or by most recent.&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Rainbow Brackets
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--maoSVhVM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--XfEmxVcS--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/5NjN4FGg/vscode-rainbow-Brackets.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--maoSVhVM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--XfEmxVcS--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://i.postimg.cc/5NjN4FGg/vscode-rainbow-Brackets.png" alt="vscode-rainbow-Brackets.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visual help for those programmers that need to worry about closures, like javascript programmers. It does this by providing different colors for round brackets, square brackets, and squiggly brackets.&lt;/p&gt;

&lt;p&gt;Alternative: &lt;a href="https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2"&gt;Bracket Pair Colorizer 2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is no shame in using tools to help you. Quite the contrary, a smart developer is one that will use these to make their lives easier and become more efficient in the process!&lt;/p&gt;

&lt;h2&gt;
  
  
  Good Luck ! 😊
&lt;/h2&gt;

</description>
    </item>
  </channel>
</rss>
