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:

87362

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-03
cpp-httplib - 0.51.0
Ebuild name:

dev-cpp/cpp-httplib-0.51.0

Description

C++ HTTP/HTTPS server and client library

Added to portage

2026-08-03

curl - 8.21.0-r1
Ebuild name:

net-misc/curl-8.21.0-r1

Description

A Client that groks URLs

Added to portage

2026-08-03

gentoo-retirement-scripts - 3
Ebuild name:

app-admin/gentoo-retirement-scripts-3

Description

Scripts to help retiring Gentoo developers

Added to portage

2026-08-03

ideep - 3.12
Ebuild name:

sci-ml/ideep-3.12

Description

Intel Optimization for Chainer

Added to portage

2026-08-03

indilib - 2.2.4.1
Ebuild name:

sci-libs/indilib-2.2.4.1

Description

INDI Astronomical Control Protocol library

Added to portage

2026-08-03

krita - 6.0.3-r1
Ebuild name:

media-gfx/krita-6.0.3-r1

Description

Free digital painting application. Digital Painting, Creative Freedom

Added to portage

2026-08-03

matlab - 8.2.0
Ebuild name:

app-emacs/matlab-8.2.0

Description

Major modes for MATLAB .m and .tlc files

Added to portage

2026-08-03

oneDNN - 3.12
Ebuild name:

sci-ml/oneDNN-3.12

Description

oneAPI Deep Neural Network Library

Added to portage

2026-08-03

plasma-bigscreen - 6.7.3-r1
Ebuild name:

kde-plasma/plasma-bigscreen-6.7.3-r1

Description

Plasma shell for TVs

Added to portage

2026-08-03

pyqt6-sip - 13.12.0
Ebuild name:

dev-python/pyqt6-sip-13.12.0

Description

sip module support for PyQt6

Added to portage

2026-08-03

sip - 6.16.0
Ebuild name:

dev-python/sip-6.16.0

Description

Python bindings generator for C/C++ libraries

Added to portage

2026-08-03

2026-08-02
cachetools - 7.1.7
Ebuild name:

dev-python/cachetools-7.1.7

Description

Extensible memoizing collections and decorators

Added to portage

2026-08-02

cbor2 - 6.1.4
Ebuild name:

dev-python/cbor2-6.1.4

Description

CBOR (de)serializer with extensive tag support

Added to portage

2026-08-02

cli11 - 2.7.2
Ebuild name:

dev-cpp/cli11-2.7.2

Description

Command line parser for C++11

Added to portage

2026-08-02

cloudflared - 2026.7.3
Ebuild name:

net-vpn/cloudflared-2026.7.3

Description

A command-line client and tunneling daemon for Cloudflare Tunnel

Added to portage

2026-08-02

cpuinfo - 2026.04.13
Ebuild name:

dev-libs/cpuinfo-2026.04.13

Description

CPU INFOrmation library

Added to portage

2026-08-02

django-polymorphic - 4.11.7
Ebuild name:

dev-python/django-polymorphic-4.11.7

Description

Seamless Polymorphic Inheritance for Django Models

Added to portage

2026-08-02

glibc - 2.44.9999
Ebuild name:

sys-libs/glibc-2.44.9999

Description

GNU libc C library

Added to portage

2026-08-02

hypothesis - 6.165.0
Ebuild name:

dev-python/hypothesis-6.165.0

Description

A library for property based testing

Added to portage

2026-08-02

mame - 0.289-r1
Ebuild name:

games-emulation/mame-0.289-r1

Description

Multiple Arcade Machine Emulator

Added to portage

2026-08-02

mirrorselect - 2.7.0
Ebuild name:

app-portage/mirrorselect-2.7.0

Description

Tool to help select distfiles mirrors for Gentoo

Added to portage

2026-08-02

netpbm - 11.2.27
Ebuild name:

media-libs/netpbm-11.2.27

Description

A set of utilities for converting to/from the netpbm (and related) format

Added to portage

2026-08-02

netselect - 0.4-r3
Ebuild name:

net-analyzer/netselect-0.4-r3

Description

Ultrafast implementation of ping

Added to portage

2026-08-02

openpgp-keys-gentoo-developers - 20260727
Ebuild name:

sec-keys/openpgp-keys-gentoo-developers-20260727

Description

Gentoo Authority Keys (GLEP 79)

Added to portage

2026-08-02

openpgp-keys-gentoo-infrastructure - 20260727
Ebuild name:

sec-keys/openpgp-keys-gentoo-infrastructure-20260727

Description

Gentoo Authority Keys (GLEP 79)

Added to portage

2026-08-02

pax-utils - 1.3.11
Ebuild name:

app-misc/pax-utils-1.3.11

Description

ELF utils that can check files for security relevant properties

Added to portage

2026-08-02

phonenumbers - 9.0.36
Ebuild name:

dev-python/phonenumbers-9.0.36

Description

Python port of Google's libphonenumber

Added to portage

2026-08-02

pkgconf - 3.0.5
Ebuild name:

dev-util/pkgconf-3.0.5

Description

pkg-config compatible replacement with no dependencies other than C99

Added to portage

2026-08-02

portalocker - 4.0.0
Ebuild name:

dev-python/portalocker-4.0.0

Description

A library for Python file locking

Added to portage

2026-08-02

py - 1.11.0-r2
Ebuild name:

dev-python/py-1.11.0-r2

Description

library with cross-python path, ini-parsing, io, code, log facilities

Added to portage

2026-08-02

pyopenssl - 26.4.0
Ebuild name:

dev-python/pyopenssl-26.4.0

Description

Python interface to the OpenSSL library

Added to portage

2026-08-02

pytest-check - 2.9.1
Ebuild name:

dev-python/pytest-check-2.9.1

Description

pytest plugin that allows multiple failures per test

Added to portage

2026-08-02

svglib - 2.1.0
Ebuild name:

dev-python/svglib-2.1.0

Description

Pure-Python library for reading and converting SVG

Added to portage

2026-08-02

telegram-desktop-bin - 7.0.7
Ebuild name:

net-im/telegram-desktop-bin-7.0.7

Description

Official desktop client for Telegram (binary package)

Added to portage

2026-08-02

uvicorn - 0.52.1
Ebuild name:

dev-python/uvicorn-0.52.1

Description

Lightning-fast ASGI server implementation

Added to portage

2026-08-02

xdg-utils - 1.2.1-r11
Ebuild name:

x11-misc/xdg-utils-1.2.1-r11

Description

Portland utils for cross-platform/cross-toolkit/cross-desktop interope

Added to portage

2026-08-02

xwaylandvideobridge - 0.5.1
Ebuild name:

gui-apps/xwaylandvideobridge-0.5.1

Description

Screenshare Wayland windows to XWayland apps

Added to portage

2026-08-02

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