from small one page howto to huge articles all in one place

search text in:




Other .linuxhowtos.org sites: www.linuxhowtos.org
toolsntoys.linuxhowtos.org



Last additions:
How to make X listen on port 6000

How to make X listen on port 6000

words:

34

views:

88043

userrating:

average rating: 1.2 (52 votes) (1=very good 6=terrible)


May, 25th 2007:
April, 26th 2007:
Apr, 10th. 2007:
Druckversion . pdf icon
You are here: Tutorials per portage category->app-editors->VI

2. Commands



Below you will find a cheat-sheet with vi commands. This cheat sheet will also come in handy in the next section of this document,
Practice Lesson #1.



vi cheat-sheet


a. cursor movements (items below are sometimes called objects):
h - left one character
l - right one character
j - down one line
k - up one line
w - right one word
b - back one word
$ - to the end of line
0 - to the beginning of the line
) - right one sentence
( - left one sentence
} - right one paragraph
{ - left one paragraph
Ctrl-F - forward one page
Ctrl-B - back one page
G - go to (without arguments, go to end of file)
b. deleting:
d - delete
then add one of the cursor movement symbols to
show what should be deleted, i.e.:
d$ - delete to end of line
d0 - delete to the beginning of the line
d} - delete to the end of paragraph
dd - delete delete (delete the whole line)
x - delete character cursor is on
c. other basic commands:
r - replace one character
ZZ - save and exit (hold down shift and press "z" twice)
y - yank (copy into temporary buffer)
then add cursor movement symbol to show what should be
copied, for example: y) - copy to the end of sentence
Y - yank line cursor is on
p - paste below cursor line (deleted or copied text)
P - paste above cursor line
u - undo last editing command
/sometext - search for "sometext"

d. any command can take numeric argument before the name of "object", i.e.:
5dd - delete 5 lines beginning with cursor line (or) d5d - same
2dw - delete two words (or) d2w - delete two words
c3w - change 3 words
3Ctrl-B - move up three pages
1G - go to the first line
e. external commands can be performed on the selected text (in lines)
if command is started with "!", i.e.:
!}fmt - reformat paragraph to 72 columns
f. command line (sometimes called "ex mode"):
:
g. from the command line a "set" command can be executed to
customize editing environment, i.e.:
:set all - will show the state of all options
:set number - will show on the screen numbers of all lines
:set autoindent // obvious
h. from the command line operations can be performed on the range of lines,
i.e.:
:18,24 del - delete from line 18 to line 24
:23,48 copy 17 - block from line 23 to 48 copy to line 17
:2,17 move 92 - block from line 2 to 17 move to line 92
i. from the command line any external UNIX command can be performed on
the range of lines if line range is superseded by "!":
:11,16! sed -e "s/^//*/" -e "s/$/*//"

(the command above wraps the block of text with
"C" style comments - /* text */. It can be done
easier, but this is an example)
:14,19! sort -r +3
(sort the table in reverse order by fourth column)
j. file manipulation from the command line:
:r somefile - read in "somefile"
:x - save and exit (if file is "Read Only", this command will
exit without saving)
:wq - write and quit (same as above)
:w - write (save) if the file permissions allow it
:w! - save file even if it is read-only as long as we own it
:w somefile - save this file as "somefile"
:q - quit without saving
:q! - quit without saving if changes were made
k. text input commands (all require "Esc" to terminate):
i - insert text before the character cursor is on
I - insert text at the beginning of the line
a - append (insert text after the character cursor is on)
A - append text to the end of the line
c - change (replace previous text with new one)
takes arguments just like the delete command - it is
a fast and powerful way of changing original text -
much more so than typical "overwrite"

R - start overwriting text
o - start entering text at the beginning of the new line
below the cursor
O - start entering text at the beginning of the new line
above the cursor
l. if in doubt, press "Esc"


/* The article above and any accompanying files are freely
* distributable, but please leave this notice and the text intact.
* Home for this document: http://www.infobound.com/vi.html
* Copyright (C) 1994, 1999 Tony Thomas
* Contact author through email:
tony@infobound.com
* Last revision Feb 23, 1999
* UNIX is a trademark of X/Open
*/

rate this article:
current rating: average rating: 1.2 (48 votes) (1=very good 6=terrible)
Your rating:
Very good (1) Good (2) ok (3) average (4) bad (5) terrible (6)

back



Support us on Content Nation

New Packages

- as rdf newsfeed
- as rss newsfeed
- as Atom newsfeed
2026-08-31
elixir - 1.16.3-r2
Ebuild name:

dev-lang/elixir-1.16.3-r2

Description

Elixir programming language

Added to portage

2026-08-31

elixir - 1.17.3-r2
Ebuild name:

dev-lang/elixir-1.17.3-r2

Description

Elixir programming language

Added to portage

2026-08-31

elixir - 1.18.5
Ebuild name:

dev-lang/elixir-1.18.5

Description

Elixir programming language

Added to portage

2026-08-31

elixir - 1.19.6
Ebuild name:

dev-lang/elixir-1.19.6

Description

Elixir programming language

Added to portage

2026-08-31

elixir - 1.20.4
Ebuild name:

dev-lang/elixir-1.20.4

Description

Elixir programming language

Added to portage

2026-08-31

gcc - 17.0.0_p20260830
Ebuild name:

sys-devel/gcc-17.0.0_p20260830

Description

The GNU Compiler Collection

Added to portage

2026-08-31

git-sources - 7.3_rc1
Ebuild name:

sys-kernel/git-sources-7.3_rc1

Description

The very latest -git version of the Linux kernel

Added to portage

2026-08-31

imlib2 - 1.12.7
Ebuild name:

media-libs/imlib2-1.12.7

Description

Version 2 of an advanced replacement library for libraries like libXpm

Added to portage

2026-08-31

imlib2_loaders - 1.12.7
Ebuild name:

media-plugins/imlib2_loaders-1.12.7

Description

Additional image loaders for Imlib2

Added to portage

2026-08-31

iosevka - 34.8.1
Ebuild name:

media-fonts/iosevka-34.8.1

Description

Slender typeface for code, from code

Added to portage

2026-08-31

lyskom-elisp-client - 0.48_p20200226
Ebuild name:

app-emacs/lyskom-elisp-client-0.48_p20200226

Description

Elisp client for the LysKOM conference system

Added to portage

2026-08-31

nzbget - 26.3
Ebuild name:

net-nntp/nzbget-26.3

Description

A command-line based binary newsgrabber supporting .nzb files

Added to portage

2026-08-31

teamviewer - 15.81.5
Ebuild name:

net-misc/teamviewer-15.81.5

Description

All-In-One Solution for Remote Access and Support over the Internet

Added to portage

2026-08-31

transformers - 5.16.1
Ebuild name:

sci-ml/transformers-5.16.1

Description

State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow

Added to portage

2026-08-31

zoxide - 0.10.0
Ebuild name:

app-shells/zoxide-0.10.0

Description

A smarter cd command for your terminal

Added to portage

2026-08-31

2026-08-30
ansi2html - 1.9.3
Ebuild name:

dev-python/ansi2html-1.9.3

Description

Convert text with ANSI color codes to HTML

Added to portage

2026-08-30

bcachefs-tools - 1.39.3
Ebuild name:

sys-fs/bcachefs-tools-1.39.3

Description

Tools for bcachefs

Added to portage

2026-08-30

bitwarden-desktop-bin - 2026.8.0
Ebuild name:

app-admin/bitwarden-desktop-bin-2026.8.0

Description

Bitwarden password manager desktop client

Added to portage

2026-08-30

boost - 1.92.0
Ebuild name:

dev-libs/boost-1.92.0

Description

Boost Libraries for C++

Added to portage

2026-08-30

bubblewrap - 0.12.0
Ebuild name:

sys-apps/bubblewrap-0.12.0

Description

Unprivileged sandboxing tool, namespaces-powered chroot-like solution

Added to portage

2026-08-30

doggo - 1.3.0
Ebuild name:

net-dns/doggo-1.3.0

Description

Command-line DNS Client for Humans

Added to portage

2026-08-30

dovecot - 2.4.5
Ebuild name:

net-mail/dovecot-2.4.5

Description

An IMAP and POP3 server written with security primarily in mind

Added to portage

2026-08-30

environs - 15.2.0
Ebuild name:

dev-python/environs-15.2.0

Description

Python library for simplified environment variable parsing

Added to portage

2026-08-30

feh - 3.12.4
Ebuild name:

media-gfx/feh-3.12.4

Description

A fast, lightweight imageviewer using imlib2

Added to portage

2026-08-30

filezilla - 3.71.1
Ebuild name:

net-ftp/filezilla-3.71.1

Description

FTP client with lots of useful features and an intuitive interface

Added to portage

2026-08-30

gcc - 13.4.1_p20260826
Ebuild name:

sys-devel/gcc-13.4.1_p20260826

Description

The GNU Compiler Collection

Added to portage

2026-08-30

gcc - 14.4.1_p20260827
Ebuild name:

sys-devel/gcc-14.4.1_p20260827

Description

The GNU Compiler Collection

Added to portage

2026-08-30

gcc - 15.3.1_p20260828
Ebuild name:

sys-devel/gcc-15.3.1_p20260828

Description

The GNU Compiler Collection

Added to portage

2026-08-30

gcc - 16.2.1_p20260829
Ebuild name:

sys-devel/gcc-16.2.1_p20260829

Description

The GNU Compiler Collection

Added to portage

2026-08-30

gentoolkit - 0.8.1
Ebuild name:

app-portage/gentoolkit-0.8.1

Description

Collection of administration scripts for Gentoo

Added to portage

2026-08-30

gitea - 1.27.3
Ebuild name:

www-apps/gitea-1.27.3

Description

A painless self-hosted Git service

Added to portage

2026-08-30

hypothesis - 6.166.0
Ebuild name:

dev-python/hypothesis-6.166.0

Description

A library for property based testing

Added to portage

2026-08-30

incus - 7.4
Ebuild name:

app-containers/incus-7.4

Description

Modern, secure and powerful system container and virtual machine manager

Added to portage

2026-08-30

joserfc - 1.7.5
Ebuild name:

dev-python/joserfc-1.7.5

Description

A Python library for JOSE RFCs JWS, JWE, JWK, JWA, JWT

Added to portage

2026-08-30

lego - 5.4.0
Ebuild name:

app-crypt/lego-5.4.0

Description

Let's Encrypt/ACME client (like certbot or acme.sh) and library written in Go

Added to portage

2026-08-30

linkify-it-py - 2.2.0
Ebuild name:

dev-python/linkify-it-py-2.2.0

Description

Links recognition library with full unicode support

Added to portage

2026-08-30

lmdb - 1.0.1-r3
Ebuild name:

dev-db/lmdb-1.0.1-r3

Description

An ultra-fast, ultra-compact key-value embedded data store

Added to portage

2026-08-30

luajit - 2.1.1787165859
Ebuild name:

dev-lang/luajit-2.1.1787165859

Description

Just-In-Time Compiler for the Lua programming language

Added to portage

2026-08-30

m-buffer - 0.16.1
Ebuild name:

app-emacs/m-buffer-0.16.1

Description

List Oriented Buffer Operations for Emacs

Added to portage

2026-08-30

micawber - 0.7.1
Ebuild name:

dev-python/micawber-0.7.1

Description

A small library for extracting rich content from urls

Added to portage

2026-08-30

patsy - 1.0.3
Ebuild name:

dev-python/patsy-1.0.3

Description

Python module to describe statistical models and design matrices

Added to portage

2026-08-30

pdm - 2.29.0
Ebuild name:

dev-python/pdm-2.29.0

Description

Python package and dependency manager supporting the latest PEP standards

Added to portage

2026-08-30

pkgcore - 0.12.41
Ebuild name:

sys-apps/pkgcore-0.12.41

Description

a framework for package management

Added to portage

2026-08-30

poetry - 2.4.2
Ebuild name:

dev-python/poetry-2.4.2

Description

A frontend for poetry - a python dependency management and packaging tool

Added to portage

2026-08-30

pylint - 4.0.8
Ebuild name:

dev-python/pylint-4.0.8

Description

Python code static checker

Added to portage

2026-08-30

pyzotero - 1.15.0
Ebuild name:

dev-python/pyzotero-1.15.0

Description

A Python client for the Zotero API

Added to portage

2026-08-30

quart - 0.23.1
Ebuild name:

dev-python/quart-0.23.1

Description

A Python ASGI web microframework with the same API as Flask

Added to portage

2026-08-30

quart-trio - 0.12.0-r1
Ebuild name:

dev-python/quart-trio-0.12.0-r1

Description

A Quart extension to provide trio support

Added to portage

2026-08-30

rust-parallel - 1.24.0
Ebuild name:

sys-process/rust-parallel-1.24.0

Description

Fast command line app to run commands in parallel

Added to portage

2026-08-30

skk-jisyo - 202605
Ebuild name:

app-i18n/skk-jisyo-202605

Description

Jisyo (dictionary) files for the SKK Japanese-input software

Added to portage

2026-08-30

tuned - 2.28.0
Ebuild name:

sys-apps/tuned-2.28.0

Description

Daemon for monitoring and adaptive tuning of system devices

Added to portage

2026-08-30

websocket-client - 1.9.1
Ebuild name:

dev-python/websocket-client-1.9.1

Description

WebSocket client for python with hybi13 support

Added to portage

2026-08-30

zeroconf - 0.151.2
Ebuild name:

dev-python/zeroconf-0.151.2

Description

Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi comp

Added to portage

2026-08-30

zotero-bin - 10.0.1
Ebuild name:

app-text/zotero-bin-10.0.1

Description

Helps you collect, organize, cite, and share your research sources

Added to portage

2026-08-30

rdf newsfeed | rss newsfeed | Atom newsfeed
Copyright 2004-2025 Sascha Nitsch Unternehmensberatung GmbH
- Copyright and legal notices -
Time to create this page: 98.9 ms