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:

89160

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-10-14
cramjam - 2.14.0
Ebuild name:

dev-python/cramjam-2.14.0

Description

Thin Python bindings to de/compression algorithms in Rust

Added to portage

2026-10-14

firefox - 153.5.0
Ebuild name:

www-client/firefox-153.5.0

Description

Firefox Web Browser

Added to portage

2026-10-14

firefox-bin - 153.5.0
Ebuild name:

www-client/firefox-bin-153.5.0

Description

Firefox Web Browser

Added to portage

2026-10-14

firefox-l10n - 153.5.0
Ebuild name:

www-client/firefox-l10n-153.5.0

Description

Firefox Web Browser's translation files

Added to portage

2026-10-14

incus - 7.5.1
Ebuild name:

app-containers/incus-7.5.1

Description

Modern, secure and powerful system container and virtual machine manager

Added to portage

2026-10-14

python-utils - 4.1.2
Ebuild name:

dev-python/python-utils-4.1.2

Description

Collection of small Python functions & classes

Added to portage

2026-10-14

sphinxcontrib-httpdomain - 2.2.0
Ebuild name:

dev-python/sphinxcontrib-httpdomain-2.2.0

Description

Sphinx domain for documenting HTTP APIs

Added to portage

2026-10-14

starlette - 1.8.0
Ebuild name:

dev-python/starlette-1.8.0

Description

The little ASGI framework that shines

Added to portage

2026-10-14

2026-10-13
aioquic - 1.6.1
Ebuild name:

dev-python/aioquic-1.6.1

Description

An implementation of QUIC and HTTP/3

Added to portage

2026-10-13

ast-serialize - 0.13.0
Ebuild name:

dev-python/ast-serialize-0.13.0

Description

Python bindings for mypy AST serialization

Added to portage

2026-10-13

async-lru - 2.4.0
Ebuild name:

dev-python/async-lru-2.4.0

Description

Simple lru_cache for asyncio

Added to portage

2026-10-13

atpublic - 9.0.0
Ebuild name:

dev-python/atpublic-9.0.0

Description

A decorator to populate __all__ and the module globals

Added to portage

2026-10-13

aws-sam-translator - 1.115.0
Ebuild name:

dev-python/aws-sam-translator-1.115.0

Description

A library that transform SAM templates into AWS CloudFormatio

Added to portage

2026-10-13

awscli - 2.37.13
Ebuild name:

app-admin/awscli-2.37.13

Description

Universal Command Line Environment for AWS

Added to portage

2026-10-13

bas - 2.7
Ebuild name:

dev-lang/bas-2.7

Description

An interpreter for the classic dialect of the programming language BASIC

Added to portage

2026-10-13

bitcoin-core - 32.0_rc4
Ebuild name:

net-p2p/bitcoin-core-32.0_rc4

Description

Reference implementation of the Bitcoin cryptocurrency

Added to portage

2026-10-13

bluetui - 0.8.2
Ebuild name:

net-wireless/bluetui-0.8.2

Description

TUI for managing bluetooth on Linux

Added to portage

2026-10-13

boto3 - 1.43.112
Ebuild name:

dev-python/boto3-1.43.112

Description

The AWS SDK for Python

Added to portage

2026-10-13

botocore - 1.43.112
Ebuild name:

dev-python/botocore-1.43.112

Description

Low-level, data-driven core of boto 3

Added to portage

2026-10-13

bpf-toolchain - 16.2.0_p1
Ebuild name:

sys-devel/bpf-toolchain-16.2.0_p1

Description

All-in-one bpf toolchain for building DTrace and systemd without

Added to portage

2026-10-13

cargo-nextest - 0.9.148
Ebuild name:

dev-util/cargo-nextest-0.9.148

Description

Next-generation test runner for Rust

Added to portage

2026-10-13

closure-compiler-bin - 20261005
Ebuild name:

dev-lang/closure-compiler-bin-20261005

Description

JavaScript optimizing compiler

Added to portage

2026-10-13

cmd2 - 4.3.0
Ebuild name:

dev-python/cmd2-4.3.0

Description

Extra features for standard library's cmd module

Added to portage

2026-10-13

cpp-httplib - 0.60.1
Ebuild name:

dev-cpp/cpp-httplib-0.60.1

Description

C++ HTTP/HTTPS server and client library

Added to portage

2026-10-13

easyeffects - 8.3.0
Ebuild name:

media-sound/easyeffects-8.3.0

Description

Limiter, auto volume and many other plugins for PipeWire applications

Added to portage

2026-10-13

exabgp - 5.0.14
Ebuild name:

net-misc/exabgp-5.0.14

Description

The BGP swiss army knife of networking

Added to portage

2026-10-13

firefox - 158.0
Ebuild name:

www-client/firefox-158.0

Description

Firefox Web Browser

Added to portage

2026-10-13

firefox-l10n - 158.0
Ebuild name:

www-client/firefox-l10n-158.0

Description

Firefox Web Browser's translation files

Added to portage

2026-10-13

flufl-lock - 10.0.0
Ebuild name:

dev-python/flufl-lock-10.0.0

Description

NFS-safe file locking with timeouts for POSIX systems

Added to portage

2026-10-13

freerdp - 3.32.2
Ebuild name:

net-misc/freerdp-3.32.2

Description

Free implementation of the Remote Desktop Protocol

Added to portage

2026-10-13

git-delete-merged-branches - 7.7.0
Ebuild name:

dev-vcs/git-delete-merged-branches-7.7.0

Description

Command-line tool to delete merged Git branches

Added to portage

2026-10-13

gobject-introspection - 1.86.0-r1
Ebuild name:

dev-libs/gobject-introspection-1.86.0-r1

Description

Introspection system for GObject-based libraries

Added to portage

2026-10-13

google-auth - 2.62.0
Ebuild name:

dev-python/google-auth-2.62.0

Description

Google Authentication Library

Added to portage

2026-10-13

haskell-mode - 17.4
Ebuild name:

app-emacs/haskell-mode-17.4

Description

Mode for editing (and running) Haskell programs in Emacs

Added to portage

2026-10-13

ijson - 3.6.0
Ebuild name:

dev-python/ijson-3.6.0

Description

Iterative JSON parser with a Pythonic interface

Added to portage

2026-10-13

installer - 1.1.0
Ebuild name:

dev-python/installer-1.1.0

Description

A library for installing Python wheels

Added to portage

2026-10-13

javacc - 8.1.0
Ebuild name:

dev-java/javacc-8.1.0

Description

Core module of JavaCC

Added to portage

2026-10-13

javacc-java - 8.1.0
Ebuild name:

dev-java/javacc-java-8.1.0

Description

Java code generator module of JavaCC

Added to portage

2026-10-13

jedi - 0.20.1
Ebuild name:

dev-python/jedi-0.20.1

Description

Autocompletion library for Python

Added to portage

2026-10-13

jemalloc - 5.4.0
Ebuild name:

dev-libs/jemalloc-5.4.0

Description

Jemalloc is a general-purpose scalable concurrent allocator

Added to portage

2026-10-13

jj - 0.46.0
Ebuild name:

dev-vcs/jj-0.46.0

Description

Jujutsu - an experimental version control system

Added to portage

2026-10-13

kup - 0.10.0
Ebuild name:

kde-plasma/kup-0.10.0

Description

Backup scheduler for the Plasma desktop

Added to portage

2026-10-13

lsp-plugins - 1.2.35
Ebuild name:

media-libs/lsp-plugins-1.2.35

Description

Linux Studio Plugins

Added to portage

2026-10-13

mycli - 2.29.4
Ebuild name:

dev-db/mycli-2.29.4

Description

CLI for MySQL Database with auto-completion and syntax highlighting

Added to portage

2026-10-13

nodejs - 26.11.1-r1
Ebuild name:

net-libs/nodejs-26.11.1-r1

Description

A JavaScript runtime built on Chrome's V8 JavaScript engine

Added to portage

2026-10-13

opal-utils - 7.1
Ebuild name:

sys-apps/opal-utils-7.1

Description

OPAL firmware utilities

Added to portage

2026-10-13

opentmux - 0.1
Ebuild name:

app-misc/opentmux-0.1

Description

Terminal multiplexer, slop-free fork of app-misc/tmux

Added to portage

2026-10-13

opentmux - 9999
Ebuild name:

app-misc/opentmux-9999

Description

Terminal multiplexer, slop-free fork of app-misc/tmux

Added to portage

2026-10-13

pekwm - 0.4.4
Ebuild name:

x11-wm/pekwm-0.4.4

Description

Lightweight window manager initially based on aewm++

Added to portage

2026-10-13

pkixssh - 20.0.1
Ebuild name:

net-misc/pkixssh-20.0.1

Description

OpenSSH fork with X.509 v3 certificate support

Added to portage

2026-10-13

pre-commit - 4.7.0
Ebuild name:

dev-vcs/pre-commit-4.7.0

Description

A framework for managing and maintaining multi-language Git pre-commit hoo

Added to portage

2026-10-13

pytest-check - 3.0.1
Ebuild name:

dev-python/pytest-check-3.0.1

Description

pytest plugin that allows multiple failures per test

Added to portage

2026-10-13

radicale - 3.8.3
Ebuild name:

www-apps/radicale-3.8.3

Description

A simple CalDAV calendar server

Added to portage

2026-10-13

ruff - 0.17.0
Ebuild name:

dev-util/ruff-0.17.0

Description

An extremely fast Python linter, written in Rust

Added to portage

2026-10-13

simdjson - 5.0.4
Ebuild name:

dev-libs/simdjson-5.0.4

Description

SIMD accelerated C++ JSON library

Added to portage

2026-10-13

tokenizers - 0.23.3
Ebuild name:

sci-ml/tokenizers-0.23.3

Description

Implementation of today's most used tokenizers

Added to portage

2026-10-13

tomcat - 10.1.61
Ebuild name:

www-servers/tomcat-10.1.61

Description

Tomcat Servlet-6.0/JSP-3.1/EL-5.0/WebSocket-2.1/JASPIC-3.0 Container

Added to portage

2026-10-13

tomcat - 11.0.27
Ebuild name:

www-servers/tomcat-11.0.27

Description

Tomcat Servlet-6.1/JSP-4.0/EL-6.0/WebSocket-2.2/JASPIC-3.1 Container

Added to portage

2026-10-13

tomcat - 9.0.123
Ebuild name:

www-servers/tomcat-9.0.123

Description

Tomcat Servlet-4.0/JSP-2.3/EL-3.0/WebSocket-1.1/JASPIC-1.1 Container

Added to portage

2026-10-13

tree-sitter-erlang - 0.21.0
Ebuild name:

dev-libs/tree-sitter-erlang-0.21.0

Description

Erlang programming language grammar for Tree-sitter

Added to portage

2026-10-13

truststore - 0.10.5
Ebuild name:

dev-python/truststore-0.10.5

Description

Verify certificates using native system trust stores

Added to portage

2026-10-13

wsjtx_improved - 3.2.0_p20260908
Ebuild name:

media-radio/wsjtx_improved-3.2.0_p20260908

Description

Weak signal ham radio communication with improvements

Added to portage

2026-10-13

yq - 4.4.5
Ebuild name:

app-misc/yq-4.4.5

Description

Command-line YAML processor - jq wrapper for YAML documents

Added to portage

2026-10-13

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