<?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: hacking C++</title>
    <description>The latest articles on DEV Community by hacking C++ (@hackingcpp).</description>
    <link>https://dev.to/hackingcpp</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%2F621377%2F091786e5-6afe-4932-81c0-e01c25882071.png</url>
      <title>DEV Community: hacking C++</title>
      <link>https://dev.to/hackingcpp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hackingcpp"/>
    <language>en</language>
    <item>
      <title>Useful Command Line Tools in 2023</title>
      <dc:creator>hacking C++</dc:creator>
      <pubDate>Wed, 27 Jul 2022 12:11:00 +0000</pubDate>
      <link>https://dev.to/hackingcpp/useful-command-line-tools-in-2022-441n</link>
      <guid>https://dev.to/hackingcpp/useful-command-line-tools-in-2022-441n</guid>
      <description>&lt;p&gt;These are some of the tools that have made my life in the terminal so much easier over the last years. Also, all of them work inside WSL2 without any hassle.&lt;/p&gt;

&lt;p&gt;My other lists: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/hackingcpp/fantastic-and-lesser-known-vim-plugins-in-2022-12e6"&gt;Fantastic (and lesser known) VIM Plugins&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/hackingcpp/great-fonts-for-coding-in-2022-39if"&gt;Great Coding Fonts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/jarun/nnn" rel="noopener noreferrer"&gt;nnn&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A super fast, fully-featured terminal file manager with a minimalistic interface and less/VIM-like keybindings (navigation with &lt;code&gt;h&lt;/code&gt;&lt;code&gt;j&lt;/code&gt;&lt;code&gt;k&lt;/code&gt;&lt;code&gt;l&lt;/code&gt;, search with &lt;code&gt;/&lt;/code&gt;,...). Also offers some useful plugins like instant preview, "open with", "go to git main directory", etc. Can also be used as quick file system navigator (can change to last active dir on exit).&lt;br&gt;
As an alternative to the usually pretty outdated versions in OS packages you can just donwload one of the statically linked executables on the &lt;a href="https://github.com/jarun/nnn/releases" rel="noopener noreferrer"&gt;GitHub release page&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcyblsabnfg2z2z87ybpr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcyblsabnfg2z2z87ybpr.png" alt="nnn screenshot"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;a href="https://dystroy.org/broot/" rel="noopener noreferrer"&gt;broot&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Fast file browser and manager that displays a tree that is automatically partially collapsed so it fits the terminal height. By default the primary mode of navigation is a super-fast search, but one can also switch to a VIM-like modal interface. Broot offers working with multiple panes and a staging area for operations on multiple files. The instant preview pane can also diplay images right out of the box.&lt;br&gt;
Broot runs on Linux, Android, Windows 10+ and OSX. Binaries can be downloaded &lt;a href="https://dystroy.org/broot/install" rel="noopener noreferrer"&gt;from here&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cargo install --locked --path .
pkgin install broot 
emerge broot
apk install broot
port install broot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd1ahz42u3jj0nvuoriu9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd1ahz42u3jj0nvuoriu9.png" alt="broot screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://the.exa.website" rel="noopener noreferrer"&gt;exa&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;An improved file lister with more features and better defaults. It uses colors to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git. And it's small, fast, and just one single binary.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install exa 
dnf install exa
emerge sys-apps/exa
nix-env -i exa
pacman -S exa
zypper install exa
brew install exa 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fokp8zd73256rwtwhr6b8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fokp8zd73256rwtwhr6b8.png" alt="exa screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://dev.yorhel.nl/ncdu" rel="noopener noreferrer"&gt;ncdu&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular desktop systems. &lt;br&gt;
Packages are available for almost all operating systems.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkej5xgfibogseq3t4use.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkej5xgfibogseq3t4use.png" alt="ncdu screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/muesli/duf" rel="noopener noreferrer"&gt;duf&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;disk usage/free utility&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install duf
nix-env -iA nixpkgs.duf
pacman -S duf
pkg install duf
pkg_add duf
xbps-install -S duf
brew install duf
choco install duf
scoop install duf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ecqjh996eyfb5745fp9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ecqjh996eyfb5745fp9.png" alt="duf screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/clvv/fasd" rel="noopener noreferrer"&gt;fasd &lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A command-line productivity booster. Fasd offers quick access to files and directories for POSIX shells. It is inspired by tools like autojump, z and v. Fasd keeps track of files and directories you have accessed, so that you can quickly reference them in the command line.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install fasd
dnf install fasd
pacman -S fasd
brew install fasd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hiru3trtelcqhk6zex5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hiru3trtelcqhk6zex5.png" alt="fasd screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/sharkdp/fd" rel="noopener noreferrer"&gt;fd&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A simple, fast and user-friendly alternative to find.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install fd-find
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqquk0q1c3mt69j5175u8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqquk0q1c3mt69j5175u8.png" alt="fd screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/BurntSushi/ripgrep" rel="noopener noreferrer"&gt;ripgrep&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A line-oriented search tool that recursively searches the current directory for a regex pattern. Orders of magnitude faster than grep. By default, ripgrep will respect gitignore rules and automatically skip hidden files/directories and binary files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install ripgrep
dnf install ripgrep
emerge sys-apps/ripgrep
pacman -S ripgrep
pkg install ripgrep
brew install ripgrep
choco install ripgrep
scoop install ripgrep
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1mx8h42l47yegd93ith.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1mx8h42l47yegd93ith.png" alt="ripgrep screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/junegunn/fzf" rel="noopener noreferrer"&gt;fzf&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A general-purpose command-line fuzzy finder. It's an interactive Unix filter for the command-line that can be used with any list; files, command history, processes, hostnames, bookmarks, git commits, etc.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install fzf
apk add fzf
dnf install fzf
nix-env -iA nixpkgs.fzf
pacman -S fzf
pkg install fzf
pkg_add fzf
pkgin install fzf
xbps-install -S fzf
zypper install fzf
brew install fzf
choco install fzf
scoop install fzf
conda install -c conda-forge fzf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyn27azub5qvrfvzchj8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyn27azub5qvrfvzchj8w.png" alt="fzf screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/ayoisaiah/f2" rel="noopener noreferrer"&gt;f2&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A cross-platform command-line batch renaming tool. By default it does a "dry run" and previews the replacement. It supports regex, string case operations, indexing, special placeholder variables for path /  dates / EXIF fields / Exiftool fields / ID3 fields and much more. It can even undo the last batch operation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go install github.com/ayoisaiah/f2/cmd/f2@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnwbml5nhrkngsyhtdnla.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnwbml5nhrkngsyhtdnla.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/peco/peco" rel="noopener noreferrer"&gt;peco&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Simplistic interactive tool for on-the-fly filtering. Useful for filtering stuff like logs, process stats.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install peco
pacman -S peco
brew install peco
choco install peco
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8duznmtjb3yemqw7ziw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8duznmtjb3yemqw7ziw.png" alt="peco screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/sharkdp/bat" rel="noopener noreferrer"&gt;bat&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A 'cat' clone with syntax highlighting and Git integration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install bat
apk add bat
pacman -S bat
dnf install bat
emerge sys-apps/bat
pkg install bat
pkg_add bat
nix-env -i bat
zypper install bat
port install bat
choco install bat
scoop install bat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwzutyqamcvk9pordy5vr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwzutyqamcvk9pordy5vr.png" alt="bat screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://www.vanheusden.com/multitail" rel="noopener noreferrer"&gt;multitail&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Lets you view one or multiple files like 'tail'. The difference is that it creates multiple windows on your console (with ncurses). It can also monitor wildcards: if another file matching the wildcard has a more recent modification date, it will automatically switch to that file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install multitail
brew install multitail
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvm9ilolt7xyzc1v58jzr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvm9ilolt7xyzc1v58jzr.png" alt="multitail screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/joakim666/colortail" rel="noopener noreferrer"&gt;colortail&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Works like 'tail' but can optionally read one or more config files where it's specified which patterns results in which colors. Colortail uses regular expressions to determine which lines and parts of lines to print in which colors.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install colortail
brew install colortail
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;a href="https://www.colordiff.org" rel="noopener noreferrer"&gt;colordiff&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A wrapper for 'diff' that produces the same output but with pretty syntax highlighting. Colour schemes can be customized.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install colordiff
brew install colordiff
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gc67kf3d0jzueqtmbeu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gc67kf3d0jzueqtmbeu.png" alt="colortail screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/tmux/tmux/wiki" rel="noopener noreferrer"&gt;tmux&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install tmux 
dnf install tmux
pacman -S tmux
port install tmux
yum install tmux
zypper install tmux
brew install tmux 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9swp5053743qhfiol9g4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9swp5053743qhfiol9g4.png" alt="tmux screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://tldr.sh" rel="noopener noreferrer"&gt;tldr&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The tldr pages are a community effort to simplify the beloved man pages with practical examples. Support for multiple languages.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install tldr 
npm install -g tldr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Facaw93kuzqrutxaguxgy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Facaw93kuzqrutxaguxgy.png" alt="tldr screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/nvbn/thefuck" rel="noopener noreferrer"&gt;The Fuck&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Corrects errors in previous console commands.&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 thefuck
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1fdgcvompvv6mkf4g70k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1fdgcvompvv6mkf4g70k.png" alt="thefuck screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://jonas.github.io/tig" rel="noopener noreferrer"&gt;tig&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;An ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install tig
nix-env -i tig
pkg install tig
brew install tig
tig is part of [git for windows](https://gitforwindows.org/)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv77bl4t47mnn7od50kf5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv77bl4t47mnn7od50kf5.png" alt="tig screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://cgdb.github.io" rel="noopener noreferrer"&gt;cgdb&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A lightweight curses (terminal-based) interface to GDB. It provides a split screen view that displays the source code as it executes. The keyboard interface is modeled after VIM.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Filfdy34rgibtwo4zy4xa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Filfdy34rgibtwo4zy4xa.png" alt="cgdb screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/sharkdp/hyperfine" rel="noopener noreferrer"&gt;hyperfine&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Benchmarking of executables similar to the classic 'time' command but much more sophisticated.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;statistical analysis across multiple runs&lt;/li&gt;
&lt;li&gt;supports arbitrary shell commands&lt;/li&gt;
&lt;li&gt;constant feedback&lt;/li&gt;
&lt;li&gt;warmup run&lt;/li&gt;
&lt;li&gt;cache-clearing commands&lt;/li&gt;
&lt;li&gt;statistical outlier detection&lt;/li&gt;
&lt;li&gt;export results to various formats&lt;/li&gt;
&lt;li&gt;parameterized benchmarks&lt;/li&gt;
&lt;li&gt;cross-platform
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ubuntu: 
  wget https://github.com/sharkdp/hyperfine/releases/download/v1.14.0/hyperfine_1.14.0_amd64.deb
  sudo dpkg -i hyperfine_1.14.0_amd64.deb
Other:
  dnf install hyperfine 
  pacman -S hyperfine 
  apk add hyperfine 
  nix-env -i hyperfine 
  brew install hyperfine 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33f7d1gszt9gl4piy396.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33f7d1gszt9gl4piy396.png" alt="hyperfine screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/Syllo/nvtop" rel="noopener noreferrer"&gt;nvtop&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;htop-like performance monitor for GPUs&lt;br&gt;
Works for GPUs from&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NVIDIA (Kepler and newer)&lt;/li&gt;
&lt;li&gt;AMD (requires kernel &amp;gt;= 5.14) &lt;/li&gt;
&lt;li&gt;Intel (requires kernel &amp;gt;= 5.19)
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  apt install nvtop
  pacman -S nvtop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb7dcoo5enwnbb69stvt7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb7dcoo5enwnbb69stvt7.png" alt="nvtop screenshot"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;a href="https://github.com/mellowcandle/bitwise" rel="noopener noreferrer"&gt;bitwise&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A multi base calculator supporting dynamic base conversion and bit manipulation. Also offers an interactive mode navigation. A handy tool for low level hackers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install bitwise
snap install bitwise 
zypper install bitwise 
brew install bitwise 
port install bitwise 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5xhnrn77wohauverl6b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5xhnrn77wohauverl6b.png" alt="bitwise screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/antonmedv/fx" rel="noopener noreferrer"&gt;fx&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;JSON viewer with less/VIM-like key mappings and mouse support.&lt;br&gt;
Nice for browsing large JSON documents; key navigation, (recursive)&lt;br&gt;
folding/unfolding, searching, etc.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pkg install fx
snap install fx
brew install fx
scoop install fx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwr85b5ydru0wchch65c2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwr85b5ydru0wchch65c2.png" alt="fx screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/stedolan/jq" rel="noopener noreferrer"&gt;jq&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A lightweight and flexible command-line JSON processor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install jq
dnf install jq
pacman -S jq
pkg install jq
pkgutil -i jq
zypper install jq
brew install jq
port install jq
chocolatey install jq
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5rlalj1af50wk9gqkiu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5rlalj1af50wk9gqkiu.png" alt="jq screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/mikefarah/yq" rel="noopener noreferrer"&gt;yq&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A lightweight and portable command-line YAML, JSON and XML processor. yq uses jq like syntax but works with yaml files as well as json and xml. It doesn't yet support everything jq does - but it does support the most common operations and functions, and more is being added continuously.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;snap install fx
brew install fx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;a href="https://pandoc.org" rel="noopener noreferrer"&gt;pandoc&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Tool to convert between markup formats. Supports docx, epub, fb2, jira, latex, markdown, man, muse, odt, org, rtf, textile, asciidoc, html and more.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install pandoc
dnf install pandoc 
pacman -S pandoc
brew install pandoc 
choco install pandoc
winget install pandoc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;a href="http://aiksaurus.sourceforge.net" rel="noopener noreferrer"&gt;aiksaurus&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A command-line thesaurus (English only).&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq4b0uwx2wmsig0641hxx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq4b0uwx2wmsig0641hxx.png" alt="aiksaurus screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/joeyespo/grip" rel="noopener noreferrer"&gt;grip&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Previews GitHub flavored markdown files using GitHub's API. The styles and rendering come directly from GitHub, so you'll know exactly how it will appear. Changes you make to the file will be instantly reflected in the browser without requiring a page refresh.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;a href="https://github.com/dawbarton/pdf2svg" rel="noopener noreferrer"&gt;pdf2svg&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A simple PDF to SVG converter using the Poppler and Cairo libraries.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install pdf2svg
yum install pdf2svg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/jalios/pdf2svg-windows" rel="noopener noreferrer"&gt;Windows Binaries&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://imagemagick.org" rel="noopener noreferrer"&gt;imagemagick&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Tool to create, edit, compose, or convert digital images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, WebP, HEIC, SVG, PDF, DPX, EXR and TIFF. ImageMagick can resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install imagemagick
brew install imagemagick 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://imagemagick.org/script/download.php" rel="noopener noreferrer"&gt;Download Page&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/sharkdp/pastel" rel="noopener noreferrer"&gt;pastel&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A tool to generate, analyze, convert and manipulate colors. It supports many different color formats and color spaces like RGB (sRGB), HSL, CIELAB, CIELCh as well as ANSI 8-bit and 24-bit representations.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install pastel
pacman -S pastel 
brew install pastel 
scoop install pastel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhwjctgqa725kj0iwf7ix.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhwjctgqa725kj0iwf7ix.png" alt="pastel screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/nschloe/deadlink" rel="noopener noreferrer"&gt;deadlink&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Parses text files for HTTP URLs and checks if they are still valid.&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 deadlink
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;a href="https://asciinema.org" rel="noopener noreferrer"&gt;asciinema&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Lets you record terminal sessions and replay them in a terminal as well as in a web browser.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;a href="https://github.com/wustho/epy" rel="noopener noreferrer"&gt;epy&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A command line ebook reader. A fork of &lt;a href="https://github.com/wustho/epr" rel="noopener noreferrer"&gt;epr&lt;/a&gt; with more features: progress percentage, bookmarks, dictionary integration, bold/italic formatting. Supported formats: Epub, FictionBook (fb2), Mobi, AZW3.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatb9n5ndv27thlq72bis.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatb9n5ndv27thlq72bis.png" alt="epy screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>commandline</category>
      <category>tools</category>
      <category>terminal</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Binary Representations of Numeric Values</title>
      <dc:creator>hacking C++</dc:creator>
      <pubDate>Sun, 24 Jul 2022 11:09:53 +0000</pubDate>
      <link>https://dev.to/hackingcpp/binary-representations-of-numeric-values-3jch</link>
      <guid>https://dev.to/hackingcpp/binary-representations-of-numeric-values-3jch</guid>
      <description>&lt;p&gt;The following cheat sheet shows the most common representations of integers, unsigned integers and floating point values used by most hardware platforms and programming languages.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59gewcv4hemf9nanb1og.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59gewcv4hemf9nanb1og.png" alt="binary represenations of numeric values"&gt;&lt;/a&gt;Check out &lt;a href="http://evanw.github.io/float-toy" rel="noopener noreferrer"&gt;this tool&lt;/a&gt; for visualizing and experimenting with IEEE floating point bit representations.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Situation in C++
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;std::numeric_limits&amp;lt;Type&amp;gt;&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;provides numeric properties for all of C++'s fundamental types (&lt;code&gt;int&lt;/code&gt;, &lt;code&gt;float&lt;/code&gt;, &lt;code&gt;double&lt;/code&gt;, &lt;code&gt;unsigned int&lt;/code&gt;, etc.). The cheat sheet below shows how the return value of &lt;code&gt;std::numeric_limits&amp;lt;Type&amp;gt;&lt;/code&gt;&lt;strong&gt;&lt;code&gt;::member_function()&lt;/code&gt;&lt;/strong&gt; relate to the binary representation of numeric values for &lt;code&gt;Type&lt;/code&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftys74i5vodic8m0bmzzx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftys74i5vodic8m0bmzzx.png" alt="C++ std::numeric_limits cheat sheet"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Using &lt;code&gt;numeric_limits&lt;/code&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;limits&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="c1"&gt;// smallest negative value:&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;numeric_limits&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;double&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="n"&gt;lowest&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// float/double: smallest value &amp;gt; 0&lt;/span&gt;
&lt;span class="c1"&gt;// integers: smallest value&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;numeric_limits&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;double&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="n"&gt;min&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// largest positive value:&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;numeric_limits&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;double&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// smallest difference btw. 1 and next value:&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;numeric_limits&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;double&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="n"&gt;epsilon&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Bitwise Operations in C++
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flsx96unrj00v27pqzsui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flsx96unrj00v27pqzsui.png" alt="bitwise operations in C++"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Some examples for manipulating the bits of unsigned integers
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;cstdint&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;                             &lt;span class="c1"&gt;// value | memory bits&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;          &lt;span class="c1"&gt;//       | 0000 0110&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mb"&gt;0b00001011&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//       | 0000 1011&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;c1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   &lt;span class="c1"&gt;// 2     | 0000 0010&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;c2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   &lt;span class="c1"&gt;// 15    | 0000 1111&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;c3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;^&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   &lt;span class="c1"&gt;// 13    | 0000 1101&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;c4&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;        &lt;span class="c1"&gt;// 249   | 1111 1001&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;c5&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;        &lt;span class="c1"&gt;// 244   | 1111 0100       &lt;/span&gt;

&lt;span class="c1"&gt;// test if int is even/odd:  // result:&lt;/span&gt;
&lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;a_odd&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;         &lt;span class="c1"&gt;// 0 =&amp;gt; false&lt;/span&gt;
&lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;a_even&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;      &lt;span class="c1"&gt;// 1 =&amp;gt; true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;cstdint&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;                             &lt;span class="c1"&gt;//     | memory bits&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;          &lt;span class="c1"&gt;//     | 0000 0001&lt;/span&gt;
&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// 64              //     | 0100 0000&lt;/span&gt;
&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// 4               //     | 0000 0100&lt;/span&gt;

&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;b1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// 2   | 0000 0010&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;b2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// 4   | 0000 0100&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="kt"&gt;uint8_t&lt;/span&gt; &lt;span class="n"&gt;b3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// 16  | 0001 0000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Type Widths / Memory Sizes of Fundamental Types
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqx28nvoyiv69d7vn23zg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqx28nvoyiv69d7vn23zg.png" alt="memory sizes of fundamental types in C++"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;For more cool cheat sheets see my &lt;a href="//file:///C:/Users/admin/Sites/hcpp_debug/cpp/cheat_sheets.html"&gt;collection of C++ cheat sheets&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>computerscience</category>
      <category>cpp</category>
    </item>
    <item>
      <title>Fantastic (and lesser known) VIM Plugins in 2023</title>
      <dc:creator>hacking C++</dc:creator>
      <pubDate>Sat, 23 Jul 2022 22:42:00 +0000</pubDate>
      <link>https://dev.to/hackingcpp/fantastic-and-lesser-known-vim-plugins-in-2022-12e6</link>
      <guid>https://dev.to/hackingcpp/fantastic-and-lesser-known-vim-plugins-in-2022-12e6</guid>
      <description>&lt;p&gt;You won't find the "NERDTree", "ALE", "surround-vim" and all the other big names on this list - there's already a gazillion of VIM plugin lists with those around. &lt;br&gt;
While some of the following plugins might not have thousands of stars on Github they are nevertheless absolute gems and have been reliable and invaluable daily companions of mine.&lt;/p&gt;

&lt;p&gt;My other lists:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/hackingcpp/useful-command-line-tools-in-2022-441n"&gt;Useful Command Line Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/hackingcpp/great-fonts-for-coding-in-2022-39if"&gt;Great Coding Fonts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/stefandtw/quickfix-reflector.vim" rel="noopener noreferrer"&gt;Quickfix Reflector&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Super intuitive mass-editing within hundreds of files using VIM's quickfix list.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use grep or any other method to populate the quickfix list with file locations&lt;/li&gt;
&lt;li&gt;edit quickfix entries with all VIM tools (change, substitute, ...)&lt;/li&gt;
&lt;li&gt;or remove quickfix lines of files that you don't want to be affected by changes&lt;/li&gt;
&lt;li&gt;apply all changes to the actual target locations simply by saving the quickfix list&lt;/li&gt;
&lt;li&gt;do more edits, saves, ...
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ngsmhe9jur5lc3u5wwy.png" alt="Screenshot"&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/markonm/traces.vim" rel="noopener noreferrer"&gt;Traces&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Live highlight of patterns and range commands (substitute, global, …). Super useful when crafting complex regex searches and/or replacements.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsgcfjmztxpt50g0awjeb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsgcfjmztxpt50g0awjeb.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/bounceme/poppy.vim" rel="noopener noreferrer"&gt;Poppy&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Highlights different levels of matching delimiters (parentheses, braces, …) in different colors.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0009ekq6r4ochbzjokd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0009ekq6r4ochbzjokd.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5t3v75xuyabnnt8dtcqs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5t3v75xuyabnnt8dtcqs.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/itchyny/vim-cursorword" rel="noopener noreferrer"&gt;Cursorword&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Underlines all occurrences of the word under the cursor. Super fast and useful for spotting variable occurrences or spelling errors in code and redundancy in prose.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkaz3i02dx3ag4zs4eqgs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkaz3i02dx3ag4zs4eqgs.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/mg979/vim-visual-multi" rel="noopener noreferrer"&gt;vim-visual-multi&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Multiple Cursors for VIM. For the occasions when VIM's &lt;code&gt;gn&lt;/code&gt; motion isn't powerful enough or you need more visual feedback.&lt;br&gt;
Very nice plugin! Substantially faster, less buggy, better visual feedback and a lot more features than the old vim-multiple-cursors plugin. Actually the first incarnation of multiple cursors in VIM that I actually like and use every day.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk83ilg5eiw2xqo42vh8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk83ilg5eiw2xqo42vh8h.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/machakann/vim-highlightedyank" rel="noopener noreferrer"&gt;Highlighted Yank&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Flashes the text range that is selected by a yank command like &lt;code&gt;yip&lt;/code&gt;. Speed and color can be configured.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/liuchengxu/vim-clap" rel="noopener noreferrer"&gt;vim-clap&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Generic finder and dispatcher like vim-fzf. Lets you fuzzy find files, commands, help topics, etc. Still very young, but seems very promising and works smoothly. You should use it together with the insanely fast ripgrep (instead of grep) as file system crawler. I found it to be faster and more convenient than vim-fzf and also easier to extend.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fllc55ll636934a5lygez.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fllc55ll636934a5lygez.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/liuchengxu/vista.vim" rel="noopener noreferrer"&gt;Vista&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Provides a window for viewing and searching LSP symbols and/or tags. Similar, but faster and more feature rich than the classic tagbar plugin. Works really well with LSP clients like ALE and integrates with vim-clap.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/skywind3000/asynctasks.vim" rel="noopener noreferrer"&gt;asynctasks.vim&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Lets you manage and excute tasks asynchronously (build, clean, run, ...) based on simple task files. It’s also super easy to define different profiles for release, build, Linux, Windows, etc.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/kuznetsss/shswitch" rel="noopener noreferrer"&gt;SHSwitch&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Switch between C or C++ header and source file. Much better and more lightweight than the old 'a.vim' plugin.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/cpiger/NeoDebug" rel="noopener noreferrer"&gt;NeoDebug&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Debug with gdb/pdb/lldb in VIM. Shows current instruction and breakpoints in code; windows for debugger console, locals, registers, stacks, threads, breakpoints, disassembly, watch expressions. Similar to, but more user friendly and feature-rich than VIM's termdebug package. I found that it just works without any setup hassle.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/junegunn/vim-easy-align" rel="noopener noreferrer"&gt;EasyAlign&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Align text into columns; lots of neat options.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/vim-scripts/ReplaceWithRegister" rel="noopener noreferrer"&gt;Replace With Register&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Replace a motion/text object with the contents of the default register without changing the register content.&lt;br&gt;
Tip: In Vim 9 you can use upper case &lt;code&gt;P&lt;/code&gt; in visual mode to paste without affecting registers.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/zef/vim-cycle" rel="noopener noreferrer"&gt;Cycle&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Augments VIM’s built-in increment/decrement feature (&lt;code&gt;&amp;lt;C-a&amp;gt;&lt;/code&gt;/&lt;code&gt;&amp;lt;C-x&amp;gt;&lt;/code&gt;) so that you can also toggle between pairs of words or cycle through lists of related words like true/false, yes/no, weekdays, months, etc. You can also add your own word lists.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/Matt-A-Bennett/vim-surround-funk" rel="noopener noreferrer"&gt;Surround-Funk&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Commands &amp;amp; text objects for changing/deleting/yanking surrounding function names or function calls (name + arguments in parentheses).&lt;br&gt;
You should make sure that the mappings don't interfere with the classic Surround plugin (esp. &lt;code&gt;ys&lt;/code&gt;). You can simply deactivate the defaults and define mappings in the vimrc (just copy them from the readme and adapt them to your liking).&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/b4winckler/vim-angry" rel="noopener noreferrer"&gt;Angry Text Object&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Text objects for comma-separated regions; e.g., in function parameter lists.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/bkad/CamelCaseMotion" rel="noopener noreferrer"&gt;CamelCaseMotion&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Motions based on sub-words in CamelCase, snake_case, dash-case, etc.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/Julian/vim-textobj-variable-segment" rel="noopener noreferrer"&gt;Variable Segment Text Object&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Text objects that select sub-words in CamelCase, snake_case, dash-case, etc.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/michaeljsmith/vim-indent-object" rel="noopener noreferrer"&gt;Indent Text Object&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Text objects based on the current indent level. Great for indentation-based languages or markup (Python, HAML, etc.)&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/coderifous/textobj-word-column.vim" rel="noopener noreferrer"&gt;Word Column Text Object&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Text object for selecting whitespace-separated columns. Useful for working with tab-separated data.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/junegunn/vim-after-object" rel="noopener noreferrer"&gt;After Text Object&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Provides a text object to select text after designated characters. Example: &lt;code&gt;ca=&lt;/code&gt; for changing after &lt;code&gt;=&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/kana/vim-textobj-line" rel="noopener noreferrer"&gt;Line Text Object&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Provides a text object for selecting the content of the current line (without the whitespace before and after).&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/vim-utils/vim-space" rel="noopener noreferrer"&gt;Whitespace Text Object&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Provides a text object for quickly deleting/selecting contiguous regions of whitespace.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/anyakichi/vim-textobj-ifdef.git" rel="noopener noreferrer"&gt;#ifdef Text Object&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Text objects &lt;code&gt;i#&lt;/code&gt;/&lt;code&gt;a#&lt;/code&gt; (alternative &lt;code&gt;i3&lt;/code&gt;/&lt;code&gt;a3&lt;/code&gt;) for C preprocessor regions delimited by &lt;code&gt;#ifdef&lt;/code&gt;, &lt;code&gt;#ifndef&lt;/code&gt;, &lt;code&gt;#else&lt;/code&gt;, &lt;code&gt;#elif&lt;/code&gt;, &lt;code&gt;#endif&lt;/code&gt;, etc.;&lt;br&gt;
unfortunately not well documented, but it works flawlessly.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/mbbill/undotree" rel="noopener noreferrer"&gt;UndoTree&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Shows a per-file undo tree and let's you navigate it (switch between revisions).&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgqgdh0380cleha1q7zf3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgqgdh0380cleha1q7zf3.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/ap/vim-css-color" rel="noopener noreferrer"&gt;CssColor&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Live preview of colors for constants like &lt;code&gt;red&lt;/code&gt;, &lt;code&gt;#ffa&lt;/code&gt;, &lt;code&gt;rgb(0,0,255)&lt;/code&gt;, etc.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flyqnejgiv22pn6qsz3xi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flyqnejgiv22pn6qsz3xi.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/kshenoy/vim-signature" rel="noopener noreferrer"&gt;Signature&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Shows marks in the sign column. Lets you also define additional markers with &lt;code&gt;m1&lt;/code&gt;, &lt;code&gt;m2&lt;/code&gt;, etc. that can be on multiple lines at the same time (great for tagging lines that belong to one "topic").&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkvmdwj4t61wcvz6vvjij.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkvmdwj4t61wcvz6vvjij.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href=""&gt;nnn.vim&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Integration of the excellent command line file explorer &lt;a href=""&gt;nnn&lt;/a&gt; into vim. Offers commands for file picking and a file explorer window. Substantially faster than NERD Tree and a no-brainer if you already use nnn (which you should).&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/qpkorr/vim-renamer" rel="noopener noreferrer"&gt;File Renamer&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Lets you (mass) rename files in a directory using vim editing commands. Can be quite useful and way faster and a lot more usable than other renaming tools or shell scripts.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5rozvukan0nzl6l54ba2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5rozvukan0nzl6l54ba2.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/muellan/am-colors" rel="noopener noreferrer"&gt;AM Colors&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  amdark
&lt;/h3&gt;

&lt;p&gt;My personal color scheme(s). Dark scheme, light scheme and hight-contrast light scheme for presentations.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F234b1fq47ufvteye6a7b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F234b1fq47ufvteye6a7b.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  amlight
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmfwdb05rleqyi023jat.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmfwdb05rleqyi023jat.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ampresent - High Contrast Light Scheme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp23zhg40cq5qe2ky4w7h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp23zhg40cq5qe2ky4w7h.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://vimcolorschemes.com/" rel="noopener noreferrer"&gt;Vimcolorschemes&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;An aggregator site that lists colorschemes from GitHub. Shows preview images and let's you browse schemes by category (light, dark), recently updated, trending, top, etc.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuse2ddixwqx7k6qawo4t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuse2ddixwqx7k6qawo4t.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vim</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Great Coding Fonts in 2023</title>
      <dc:creator>hacking C++</dc:creator>
      <pubDate>Sat, 23 Jul 2022 19:59:00 +0000</pubDate>
      <link>https://dev.to/hackingcpp/great-fonts-for-coding-in-2022-39if</link>
      <guid>https://dev.to/hackingcpp/great-fonts-for-coding-in-2022-39if</guid>
      <description>&lt;p&gt;Monospace fonts for coding with a distinct "&lt;code&gt;0&lt;/code&gt;".&lt;/p&gt;

&lt;p&gt;My other lists: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/hackingcpp/useful-command-line-tools-in-2022-441n"&gt;Useful Command Line Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/hackingcpp/fantastic-and-lesser-known-vim-plugins-in-2022-12e6"&gt;Fantastic (and lesser known) VIM Plugins&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  JetBrains Mono
&lt;/h2&gt;

&lt;p&gt;A great font that also supports ligatures.&lt;br&gt;
&lt;a href="https://www.jetbrains.com/lp/mono" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt; / &lt;a href="https://www.jetbrains.com/lp/mono/#font-family" rel="noopener noreferrer"&gt;Specimen Page&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fff1sxh3amdzln34dy5nw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fff1sxh3amdzln34dy5nw.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Liberation Mono
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.fontsc.com/font/download/liberation-mono" rel="noopener noreferrer"&gt;Download1&lt;/a&gt; / &lt;a href="https://www.fontsquirrel.com/fonts/liberation-mono" rel="noopener noreferrer"&gt;Download2&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu7ywsi62htc11r5wwv48.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu7ywsi62htc11r5wwv48.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Cascadia Code
&lt;/h2&gt;

&lt;p&gt;My personal choice, also with coding ligature support.&lt;br&gt;
It comes bundled with the new Windows Terminal.&lt;br&gt;
&lt;a href="https://github.com/microsoft/cascadia-code" rel="noopener noreferrer"&gt;Repository&lt;/a&gt; / &lt;a href="https://docs.microsoft.com/en-us/windows/terminal/cascadia-code" rel="noopener noreferrer"&gt;Info Page&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fei17r1y4kgd52kv210ip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fei17r1y4kgd52kv210ip.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Hack
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://sourcefoundry.org/hack" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt; / &lt;a href="https://github.com/source-foundry/alt-hack" rel="noopener noreferrer"&gt;Repository&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnr98rv50h1aqxlh6xu1y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnr98rv50h1aqxlh6xu1y.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Cousine
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.fontsquirrel.com/fonts/download/cousine" rel="noopener noreferrer"&gt;Download&lt;/a&gt; /  &lt;a href="https://www.google.com/fonts/specimen/Cousine" rel="noopener noreferrer"&gt;Google Fonts&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flflit1nqduhrsq2xk4tb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flflit1nqduhrsq2xk4tb.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Fira Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/tonsky/FiraCode" rel="noopener noreferrer"&gt;Repository&lt;/a&gt; / &lt;a href="https://github.com/mozilla/Fira" rel="noopener noreferrer"&gt;Fira Font Family Repo&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faavt9ilcnewqil6oktax.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faavt9ilcnewqil6oktax.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Consolas
&lt;/h2&gt;

&lt;p&gt;Bundled with Windows 10/11&lt;br&gt;
My previous font of choice (before I switched to Cascadia) and still one of my favorites.&lt;br&gt;
&lt;a href="https://docs.microsoft.com/en-us/typography/font-list/consolas" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fridcjno8p7535aqot4wq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fridcjno8p7535aqot4wq.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  JuliaMono
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cormullion.github.io/pages/2020-07-26-JuliaMono" rel="noopener noreferrer"&gt;Repository&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyki21cba4cuhpv777oxm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyki21cba4cuhpv777oxm.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Source Code Pro
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/adobe-fonts/source-han-mono" rel="noopener noreferrer"&gt;Repository&lt;/a&gt; / &lt;a href="https://github.com/adobe-fonts" rel="noopener noreferrer"&gt;Adobe Fonts on GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvgebc2erpasx8us29r21.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvgebc2erpasx8us29r21.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Input Mono
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://input.djr.com" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhc9lxikpv0bfafcvcg99.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhc9lxikpv0bfafcvcg99.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Camingo Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.fontsquirrel.com/fonts/camingocode" rel="noopener noreferrer"&gt;Download&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq8i0jn58fys87rjtcm3i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq8i0jn58fys87rjtcm3i.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  IBM Plex Mono
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://fonts.google.com/specimen/IBM+Plex+Mono" rel="noopener noreferrer"&gt;Google Fonts Page&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6q44gv7sjxkc00lof2b6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6q44gv7sjxkc00lof2b6.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Iosevka
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://be5invis.github.io/Iosevka" rel="noopener noreferrer"&gt;Repository&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnibkrbnmc001qs0s5lfl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnibkrbnmc001qs0s5lfl.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Sometype Mono
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.1001fonts.com/download/sometype-mono.zip" rel="noopener noreferrer"&gt;Download&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnj9un2jmegdxlewb3al.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnj9un2jmegdxlewb3al.png" alt="Font specimen for "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  More...
&lt;/h2&gt;

&lt;p&gt;Here is my list of &lt;a href="https://hackingcpp.com/dev/coding_fonts.html" rel="noopener noreferrer"&gt;&lt;strong&gt;over 80 monospace coding fonts for coding&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
    </item>
    <item>
      <title>std::string C++20/23 Interface Novelties</title>
      <dc:creator>hacking C++</dc:creator>
      <pubDate>Sat, 02 Jul 2022 16:27:14 +0000</pubDate>
      <link>https://dev.to/hackingcpp/stdstring-c2023-interface-novelties-500e</link>
      <guid>https://dev.to/hackingcpp/stdstring-c2023-interface-novelties-500e</guid>
      <description>&lt;p&gt;Here's a small cheat sheet for 4 new member functions of std::string.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EqQzkp2P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/icr1ou665mc5ud60c0ea.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EqQzkp2P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/icr1ou665mc5ud60c0ea.png" alt="cheat sheet showing new member functions of std::string introduced with C++20 and C++23: starts_with, ends_with, containts and resize_and_overwrite" width="880" height="781"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hackingcpp.com/cpp/cheat_sheets.html"&gt;More Cheat Sheets&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;resize_and_overwrite&lt;/code&gt; avoids costly initialization of a string's memory buffer if you need to immediatly overwrite it with characters coming from e.g., a call to a C API.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// BEFORE:&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;resize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// costly initialization&lt;/span&gt;
&lt;span class="c1"&gt;// write characters to string:&lt;/span&gt;
&lt;span class="kt"&gt;size_t&lt;/span&gt; &lt;span class="n"&gt;sizeWritten&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;some_C_library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

&lt;span class="c1"&gt;// AFTER:&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;resize_and_overwrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[](&lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;size_t&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
  &lt;span class="kt"&gt;size_t&lt;/span&gt; &lt;span class="n"&gt;sizeWritten&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;some_C_library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;sizeWritten&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Function Signatures and Overloads
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="k"&gt;template&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;typename&lt;/span&gt; &lt;span class="nc"&gt;CharT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;typename&lt;/span&gt; &lt;span class="nc"&gt;Traits&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;typename&lt;/span&gt; &lt;span class="nc"&gt;Allocator&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;basic_string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;
  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;basic_string_view&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;CharT&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CharT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CharT&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;starts_with&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;basic_string_view&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;CharT&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;starts_with&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CharT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;starts_with&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CharT&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;ends_with&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;basic_string_view&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;CharT&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;ends_with&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CharT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;ends_with&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CharT&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;template&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;typename&lt;/span&gt; &lt;span class="nc"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="k"&gt;constexpr&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;resize_and_overwrite&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;size_type&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Operation&lt;/span&gt; &lt;span class="n"&gt;op&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;  &lt;span class="c1"&gt;// std&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>cpp</category>
      <category>programming</category>
    </item>
    <item>
      <title>C++ {fmt} Library Overview &amp; Cheat Sheets</title>
      <dc:creator>hacking C++</dc:creator>
      <pubDate>Wed, 01 Jun 2022 12:34:40 +0000</pubDate>
      <link>https://dev.to/hackingcpp/fmt-library-overview-cheat-sheets-53ap</link>
      <guid>https://dev.to/hackingcpp/fmt-library-overview-cheat-sheets-53ap</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/fmtlib/fmt" rel="noopener noreferrer"&gt;{fmt}&lt;/a&gt; is a fast(er) and safe(r) alternative to C stdio (printf,...) and C++ iostreams (std::cout,...) that uses a Pythonesque format string syntax and is the origin and inspiration of C++20's &lt;code&gt;std::format&lt;/code&gt; and C++23's upcoming &lt;code&gt;std::print&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hackingcpp.com/cpp/libs/fmt.html" rel="noopener noreferrer"&gt;&lt;strong&gt;This article&lt;/strong&gt;&lt;/a&gt; on hackingcpp.com offers a comprehensive and accessible overview of {fmt} with lots of runnable examples and visual aids: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to set it up&lt;/li&gt;
&lt;li&gt;quick overview of its interface and capabilities&lt;/li&gt;
&lt;li&gt;hierarchical, task-oriented "how-to print/format X" sections&lt;/li&gt;
&lt;li&gt;how to print custom types&lt;/li&gt;
&lt;li&gt;cheat sheets as quick reference for format specifications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgb0dttjwwmz0zt7ofzsa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgb0dttjwwmz0zt7ofzsa.png" alt="Quick overview cheat sheet of the C++ printing and formatting library "&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggg7trm1nowp5buqoyzz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggg7trm1nowp5buqoyzz.png" alt="Quick overview cheat sheet of the time and date formatting tokens used by C++ 20's std::format, std::strftime and the {fmt} library"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>programming</category>
    </item>
    <item>
      <title>An Organized List of Over 700 Educational C++ Videos</title>
      <dc:creator>hacking C++</dc:creator>
      <pubDate>Sat, 09 Apr 2022 15:45:19 +0000</pubDate>
      <link>https://dev.to/hackingcpp/an-organized-list-of-over-700-educational-c-videos-3dpa</link>
      <guid>https://dev.to/hackingcpp/an-organized-list-of-over-700-educational-c-videos-3dpa</guid>
      <description>&lt;p&gt;I've recently started a &lt;a href="https://hackingcpp.com/cpp/educational_videos.html"&gt;list of educational C++ videos&lt;/a&gt; like conference talks by world-renowned experts, video tutorials, and other explanatory videos related to C++. &lt;/p&gt;

&lt;p&gt;The list currently contains links to over 700 videos including almost all episodes of Jason Turner's "C++ Weekly" series.&lt;/p&gt;

&lt;p&gt;All videos are hierarchically organized by topic (using foldable sections) but one can also use the alphabetic index to quickly find a section by keyword.&lt;/p&gt;

&lt;p&gt;This is only the first version, there's already more than 300 additional videos in the queue and I also might add a "search by tag" feature in the future.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_ZQyPDr1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fgxfrpjejxzeqxcp46zp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_ZQyPDr1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fgxfrpjejxzeqxcp46zp.png" alt="Image description" width="880" height="1053"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>programming</category>
      <category>list</category>
    </item>
    <item>
      <title>A Growing Collection of C++ Cheat Sheets</title>
      <dc:creator>hacking C++</dc:creator>
      <pubDate>Sun, 09 Jan 2022 16:46:58 +0000</pubDate>
      <link>https://dev.to/hackingcpp/a-growing-collection-of-c-cheat-sheets-4amg</link>
      <guid>https://dev.to/hackingcpp/a-growing-collection-of-c-cheat-sheets-4amg</guid>
      <description>&lt;p&gt;Anyone that has ever learned or is currently learning C++ knows the feeling of being overwhelmed by this beast of a programming language that is as complex as it is powerful.&lt;/p&gt;

&lt;p&gt;To help learners along their journey I've created a &lt;a href="https://hackingcpp.com/cpp/cheat_sheets.html" rel="noopener noreferrer"&gt;collection of C++ cheat sheets&lt;/a&gt; that can be used to get a quick overview of a topic or to recap something one has already learned.&lt;/p&gt;

&lt;p&gt;Currently, there are graphical visualizations of the standard library algorithms (including the ones from C++20), interface overview sheets for containers, sequence views, and various others.&lt;/p&gt;

&lt;p&gt;Here are a few examples:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhs4fphh69638gjk2usi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhs4fphh69638gjk2usi.png" alt="C++ std::vector interface overview cheat sheet"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3pbze8u0gyo6nf3p8on.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3pbze8u0gyo6nf3p8on.png" alt="Cheat sheet explaining the most common binary representations of numeric values"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ya4mb5riib7w8255nqz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ya4mb5riib7w8255nqz.png" alt="C++ lambda expressions overview cheat sheet"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Falf63mfne8kf9b32k6k9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Falf63mfne8kf9b32k6k9.png" alt="C++ standard algorithms quick overview cheat sheet"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To see more cheat sheets visit &lt;a href="https://hackingcpp.com/cpp/cheat_sheets.html" rel="noopener noreferrer"&gt;https://hackingcpp.com/cpp/cheat_sheets.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow me on Twitter &lt;a href="https://twitter.com/hackingcpp" rel="noopener noreferrer"&gt;@hackingcpp&lt;/a&gt; if you want to get notified of new cheat sheets.&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
