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:

87889

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-23
ggml - 0.21.0-r1
Ebuild name:

sci-ml/ggml-0.21.0-r1

Description

Tensor library for machine learning

Added to portage

2026-08-23

2026-08-22
asteval - 1.0.10
Ebuild name:

dev-python/asteval-1.0.10

Description

Evaluator of Python expression using ast module

Added to portage

2026-08-22

boto3 - 1.43.78
Ebuild name:

dev-python/boto3-1.43.78

Description

The AWS SDK for Python

Added to portage

2026-08-22

botocore - 1.43.78
Ebuild name:

dev-python/botocore-1.43.78

Description

Low-level, data-driven core of boto 3

Added to portage

2026-08-22

brotlicffi - 1.2.0.2
Ebuild name:

dev-python/brotlicffi-1.2.0.2

Description

Python binding to the Brotli library

Added to portage

2026-08-22

cachelib - 0.16.1
Ebuild name:

dev-python/cachelib-0.16.1

Description

Collection of cache libraries in the same API interface. Extracted from

Added to portage

2026-08-22

cfg-update - 1.11.0
Ebuild name:

app-portage/cfg-update-1.11.0

Description

Easy to use GUI & CLI alternative for etc-update

Added to portage

2026-08-22

cgreen - 1.7.0
Ebuild name:

dev-libs/cgreen-1.7.0

Description

Unit test and mocking framework for C and C++

Added to portage

2026-08-22

charm - 6.10.2
Ebuild name:

sys-cluster/charm-6.10.2

Description

Message-passing parallel language and runtime system

Added to portage

2026-08-22

cjose - 0.6.2.8
Ebuild name:

dev-libs/cjose-0.6.2.8

Description

C library implementing the Javascript Object Signing and Encryption (JOSE)

Added to portage

2026-08-22

confuse - 3.4
Ebuild name:

dev-libs/confuse-3.4

Description

a configuration file parser library

Added to portage

2026-08-22

cramjam - 2.12.0
Ebuild name:

dev-python/cramjam-2.12.0

Description

Thin Python bindings to de/compression algorithms in Rust

Added to portage

2026-08-22

cython - 3.3.0
Ebuild name:

dev-python/cython-3.3.0

Description

A Python to C compiler

Added to portage

2026-08-22

dbutils - 3.2.0
Ebuild name:

dev-python/dbutils-3.2.0

Description

Database connections for multi-threaded environments

Added to portage

2026-08-22

dealii - 9.8.0
Ebuild name:

sci-libs/dealii-9.8.0

Description

Solving partial differential equations with the finite element method

Added to portage

2026-08-22

dependency-groups - 1.3.2
Ebuild name:

dev-python/dependency-groups-1.3.2

Description

A tool for resolving PEP 735 Dependency Group data

Added to portage

2026-08-22

faker - 40.37.0
Ebuild name:

dev-python/faker-40.37.0

Description

A Python package that generates fake data for you

Added to portage

2026-08-22

fwupd - 2.1.7
Ebuild name:

sys-apps/fwupd-2.1.7

Description

Aims to make updating firmware on Linux automatic, safe and reliable

Added to portage

2026-08-22

libcap-ng - 0.9.5-r1
Ebuild name:

sys-libs/libcap-ng-0.9.5-r1

Description

POSIX 1003.1e capabilities

Added to portage

2026-08-22

libplatform - 2.2.0
Ebuild name:

dev-libs/libplatform-2.2.0

Description

Platform support library used by libCEC and binary add-ons for Kodi

Added to portage

2026-08-22

libsecret - 0.21.7
Ebuild name:

app-crypt/libsecret-0.21.7

Description

GObject library for accessing the freedesktop.org Secret Service API

Added to portage

2026-08-22

libsecret - 0.21.7-r1
Ebuild name:

app-crypt/libsecret-0.21.7-r1

Description

GObject library for accessing the freedesktop.org Secret Service API

Added to portage

2026-08-22

libxmlb - 0.3.29
Ebuild name:

dev-libs/libxmlb-0.3.29

Description

Library to help create and query binary XML blobs

Added to portage

2026-08-22

mac - 13.26
Ebuild name:

media-sound/mac-13.26

Description

Monkey's Audio Codecs

Added to portage

2026-08-22

mesa - 26.2.1
Ebuild name:

media-libs/mesa-26.2.1

Description

OpenGL-like graphic library for Linux

Added to portage

2026-08-22

mesa_clc - 26.2.1
Ebuild name:

dev-util/mesa_clc-26.2.1

Description

mesa_clc tool used for building OpenCL C to SPIR-V

Added to portage

2026-08-22

nanobind - 3.0.0
Ebuild name:

dev-python/nanobind-3.0.0

Description

Tiny and efficient C++/Python bindings

Added to portage

2026-08-22

ncspot - 1.4.0
Ebuild name:

media-sound/ncspot-1.4.0

Description

ncurses Spotify client written in Rust using librespot

Added to portage

2026-08-22

nss - 3.127
Ebuild name:

dev-libs/nss-3.127

Description

Mozilla's Network Security Services library that implements PKI support

Added to portage

2026-08-22

openpgp-keys-zsh - 2026.07.12
Ebuild name:

sec-keys/openpgp-keys-zsh-2026.07.12

Description

PGP keys used to sign ZSH releases

Added to portage

2026-08-22

portage - 3.0.82
Ebuild name:

sys-apps/portage-3.0.82

Description

The package management and distribution system for Gentoo

Added to portage

2026-08-22

portalocker - 4.2.0
Ebuild name:

dev-python/portalocker-4.2.0

Description

A library for Python file locking

Added to portage

2026-08-22

powercap-utils - 0.6.0
Ebuild name:

sys-power/powercap-utils-0.6.0

Description

C bindings to the Linux Power Capping Framework in sysfs

Added to portage

2026-08-22

rss2email - 3.14-r4
Ebuild name:

net-mail/rss2email-3.14-r4

Description

A python script that converts RSS/Atom newsfeeds to email

Added to portage

2026-08-22

sabctools - 9.7.0
Ebuild name:

dev-python/sabctools-9.7.0

Description

Module providing raw yEnc encoding/decoding for SABnzbd

Added to portage

2026-08-22

scipy - 1.18.1
Ebuild name:

dev-python/scipy-1.18.1

Description

Scientific algorithms library for Python

Added to portage

2026-08-22

shadowsocks-libev - 3.3.6
Ebuild name:

net-proxy/shadowsocks-libev-3.3.6

Description

A lightweight secured SOCKS5 proxy for embedded devices and low e

Added to portage

2026-08-22

sphinx-argparse - 0.6.1
Ebuild name:

dev-python/sphinx-argparse-0.6.1

Description

Sphinx extension that automatically documents argparse commands an

Added to portage

2026-08-22

spidermonkey - 140.14.0
Ebuild name:

dev-lang/spidermonkey-140.14.0

Description

Mozilla's JavaScript engine written in C and C++

Added to portage

2026-08-22

spidermonkey - 153.1.0
Ebuild name:

dev-lang/spidermonkey-153.1.0

Description

Mozilla's JavaScript engine written in C and C++

Added to portage

2026-08-22

spirv-llvm-translator - 24.0.0_pre20260820
Ebuild name:

dev-util/spirv-llvm-translator-24.0.0_pre20260820

Description

Bi-directional translator between SPIR-V and LLVM

Added to portage

2026-08-22

symbols-nerd-font - 3.5.1
Ebuild name:

media-fonts/symbols-nerd-font-3.5.1

Description

Symbols-only font containing the Nerd Font icons

Added to portage

2026-08-22

tree-sitter-cmake - 0.7.4
Ebuild name:

dev-libs/tree-sitter-cmake-0.7.4

Description

CMake grammar for tree-sitter

Added to portage

2026-08-22

tree-sitter-ocaml - 0.25.0
Ebuild name:

dev-libs/tree-sitter-ocaml-0.25.0

Description

OCaml grammar for Tree-sitter

Added to portage

2026-08-22

tree-sitter-scala - 0.26.2
Ebuild name:

dev-libs/tree-sitter-scala-0.26.2

Description

Scala grammar for Tree-sitter

Added to portage

2026-08-22

wine-proton - 11.0.2
Ebuild name:

app-emulation/wine-proton-11.0.2

Description

Valve Software's fork of Wine

Added to portage

2026-08-22

wine-vanilla - 11.16
Ebuild name:

app-emulation/wine-vanilla-11.16

Description

Free implementation of Windows(tm) on Unix, without external patch

Added to portage

2026-08-22

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