Vim Cheat Sheet Printable



LibriVox is a hope, an experiment, and a question: can the net harness a bunch of volunteers to help bring books in the public domain to life through podcasting?

Introduction

This cheat sheet is intended to be a quick reminder for the main concepts involved in using the command line program Vim (or vi) and assumes you already understand its usage. It does not cover every command in Vim, only the ones we consider to be useful for most people for the majority of. Python Community Interview With Moshe Zadka. This week, we're joined by Moshe Zadka, a senior site reliability engineer at SurveyMonkey. Moshe is a core developer for the Twisted framework, and we discuss Python for DevOps, writing Python books, and tai chi.

Best Vim Cheat Sheet

Vim is the editor of choice for many developers and power users. It’s a “modal” text editor based on the vi editor written by Bill Joy in the 1970s for a version of UNIX. It inherits the key bindings of vi, but also adds a great deal of functionality and extensibility that are missing from the original vi.

What the heck do we mean by modal? When you’re using most word processors and text editors, the alphanumeric keys (i.e., a through z, 1 through 9) are only used to input those characters unless they’re modified by a control key. In Vim, the mode that the editor is in determines whether the alphanumeric keys will input those characters or move the cursor through the document.

For more read this introduction to vim guide

Disclaimer: This cheatsheet is summarized from personal experience and other online tutorials. It should not be considered as an official advice. You can check,

Content

Global

Command Structure

Operators that needs motions or text objects or other commands

Text Objects

Motions

  • Cursor Movements
  • Word Movements
  • Line Movements
  • Block Movements
  • Other Movements
  • Marker Movement
  • Undo
  • Charactors

Python Mapping

  • Example

Page Scrolls

Macro

Vim Cheat Sheet Printable Free

Vim

Insert mode - inserting/appending text

Editing

Cut and paste

Marking text (visual mode)

Visual commands

Visual Block mode only

For all visual selections

Search and replace

Search in multiple files

Exiting

Working with multiple files

  • Commands
  • Splitting and Movements
  • Change window size

Tabs

Tips

Why ESC?

The Vi editor was originally written on an ADM-3A terminal, which had the Escape key positioned where the Tab key occurs on most modern keyboards.(ref)

This is a reference card of useful commands for administrating Gentoo systems. Newcomers and grey beards alike are encouraged to add their helpful tips below.

Package management

Sync methods

Sync all repositories that are set to auto-sync including the Gentoo ebuild repository:

Sync the Gentoo ebuild repository using the mirrors by obtaining a snapshot that is (at most) a day old:

Sync custom package repository and the Gentoo ebuild repository using eix:

If there are overlays created by app-portage/layman, to sync them:

app-portage/layman can be installed by issuing:

app-portage/eix can be installed by issuing:

Gather more information on eix by reading its manual:

Package listings

qlist is provided by app-portage/portage-utils

List installed packages with version number and name of used overlay:

To view the list of packages in the world set along with their available versions it is possible to use app-portage/eix

You can keep color in the output by calling it with the 'color' switch:

Package installation

In the following examples the www-client/firefox package will be used, but users can replace it with their package of interest.

List what packages would be installed without installing them:

Install a specific version of a package (Use '='(backslash and equal sign) if the current shell attaches special meaning to '=' in a command):

Install a package without adding it to the world file:

or

Package removal

Recommended method

The recommended way to remove a package is by using deselect. This removes it from the @world set (i.e. says the package is no longer wanted). To clean up the system afterwards, run depclean as given below.

And then depclean afterwards (the -p should be removed if after running, it shows will not remove any needed packages):

Separately, to remove a package that no other packages depend on:

root #emerge --ask --verbose --depclean www-client/firefox

As a safety measure, depclean will not remove any packages unless all required dependencies have been resolved. As a consequence of this, it often becomes necessary to run:

root #emerge --update --newuse --deep --quiet @world

Avoid unnecessary rebuilds when USE flags only get added to or dropped from the repository and use the --quiet flag for quicker execution:

root #emerge --update --changed-use --deep --quiet @world

Unclean removal (ignoring dependencies)

Remove a package even if it is needed by other packages:

Warning
Use with caution. The -C option can break software. Best if used to temporarily remove to satisfy a hard block.

Package upgrades

Upgrade all installed packages, dependencies, and deep dependencies that are outdated or have USE flag changes (avoiding unnecessary rebuilds when USE changes have no impact):

root #emerge --ask --verbose --update --deep --changed-use @world

Package troubleshooting

Check for and rebuild missing libraries (not normally needed):

equery is part of app-portage/gentoolkit. You can obtain it by issuing this command:

Tell which installed package provides a command using equery:

Tell which (not) installed package provides a command using e-file:

Install e-file with:

Tell which packages depend on a specific package (cat/pkg in the example) using equery:

Get information about a package using eix:

Warning
Do not unemerge sys-libs/glibc. It is needed by nearly every other package. If you inadvertedly remove it you may need a rescue stick/disk. You can fetch glibc after setting PORTAGE_BINHOST='http://packages.gentooexperimental.org/packages/amd64-stable/' in /etc/portage/make.conf.

Portage enhancements

Manage configuration changes after an emerge completes:

Or alternatively:

After installations or updates

After updating perl-core packages:

or if previous didn't help:

For haskell packages:

USE flags

Obtain descriptions and usage of the USE flag X using euse:

Gather more information on euse by reading its manual page:

Show what packages have the mysql USE flag:

Show what packages are currently built with the mysql USE flag:

Show what USE flags are available for a specific package:

Quickly add a required USE flag for a package install:

root #echo 'dev-util/cmake -qt5' >> /etc/portage/package.use

Important Portage files[i 1]

  • /etc/portage/make.conf - Global settings (USE flags, compiler options).
  • /etc/portage/package.use - USE flags of individual packages. Can also be a folder containing multiple files.
  • /etc/portage/package.accept_keywords - Keyword individual packages; e.g. ~amd64, ~x86, or ∼arm.
  • /etc/portage/package.license - Accepted licenses
  • /var/lib/portage/world - List of explicitly installed package atoms.
  • /var/db/pkg - Contains information for every installed package a set of files about the installation.

Log management

genlop

genlop is a Portage log processor, also estimating build times when emerging packages.

Install genlop by issuing:

You can gather more information on app-portage/genlop by reading its manual page:

View the last 10 emerges (installs):

View how long emerging LibreOffice took:

Estimate how long emerge -uND --with-bdeps=y @world will take:

Printable

Watch the latest merging ebuild during system upgrades:

Overlays

eselect repository

app-eselect/eselect-repository can be installed by issuing:

List all existing overlays:

List all installed overlays:

See also Eselect/Repository

Layman

app-portage/layman can be installed by issuing:

List all existing overlays:

List all installed overlays:

See also Layman

Services

Obtain root shell (if the current user is listed in the sudoers list):

OpenRC

Start the ssh daemon in the default runlevel at boot:

Start the sshd service now:

Check if the sshd service is running:

systemd

Start the ssh daemon at boot:

Start the sshd service now:

Check if the sshd service is running:

Gentoo Monthly Newsletter (GMN)

Search packages in Portage by regular expressions:

Overlays vary from very small to very large in size. As a result they slow down the majority of Portage operations. That happens because overlays do not contain metadata caches. The cache is used to speed up searches and the building of dependency trees. A neat trick is to generate local metadata cache after syncing overlays.

This trick also works in conjunction with eix. eix-update can use metadata cache generated by emerge --regen to speed up things. To enable this, add the following variable to /etc/eixrc/00-eixrc:

FILE/etc/eixrc/00-eixrc

qcheck

Use qcheck to verify installed packages:

qcheck comes with app-portage/portage-utils and can be installed by running this command:

Learn more about qcheck by reading its manual page:

See also

External resources

References

Retrieved from 'https://wiki.gentoo.org/index.php?title=Gentoo_Cheat_Sheet&oldid=926673'