Source : https://www.cs.colostate.edu/helpdocs/vi.html

What is vi?

The default editor that comes with the UNIX operating system is called vi (visual editor). [Alternate editors for UNIX environments include pico and emacs, a product of GNU.]
The UNIX vi editor is a full screen editor and has two modes of operation:
Command mode commands which cause action to be taken on the file, and
Insert mode in which entered text is inserted into the file.
In the command mode, every character typed is a command that does something to the text file being edited; a character typed in the command mode may even cause the vi editor to enter the insert mode. In the insert mode, every character typed is added to the text in the file; pressing the <Esc> (Escape) key turns off the Insert mode.
While there are a number of vi commands, just a handful of these is usually sufficient for beginning vi users. To assist such users, this Web page contains a sampling of basic vi commands. The most basic and useful commands are marked with an asterisk (* or star) in the tables below. With practice, these commands should become automatic.
NOTE: Both UNIX and vi are case-sensitive. Be sure not to use a capital letter in place of a lowercase letter; the results will not be what you expect.
To Get Into and Out Of vi

To Start vi

To use vi on a file, type in vi filename. If the file named filename exists, then the first page (or screen) of the file will be displayed; if the file does not exist, then an empty file and screen are created into which you may enter text.
*    vi filename    edit filename starting at line 1
     vi -r filename    recover filename that was being edited when system crashed
To Exit vi

Usually the new or modified file is saved when you leave vi. However, it is also possible to quit vi without saving the file.
Note: The cursor moves to bottom of screen whenever a colon (:) is typed. This type of command is completed by hitting the <Return> (or <Enter>) key.
*    :x<Return>    quit vi, writing out modified file to file named in original invocation
     :wq<Return>    quit vi, writing out modified file to file named in original invocation
     :q<Return>    quit (or exit) vi
*    :q!<Return>    quit vi even though latest changes have not been saved for this vi call
Moving the Cursor

Unlike many of the PC and MacIntosh editors, the mouse does not move the cursor within the vi editor screen (or window). You must use the the key commands listed below. On some UNIX platforms, the arrow keys may be used as well; however, since vi was designed with the Qwerty keyboard (containing no arrow keys) in mind, the arrow keys sometimes produce strange effects in vi and should be avoided.
If you go back and forth between a PC environment and a UNIX environment, you may find that this dissimilarity in methods for cursor movement is the most frustrating difference between the two.
In the table below, the symbol ^ before a letter means that the <Ctrl> key should be held down while the letter key is pressed.
*    j or <Return>
  [or down-arrow]    move cursor down one line
*    k [or up-arrow]    move cursor up one line
*    h or <Backspace>
  [or left-arrow]    move cursor left one character
*    l or <Space>
  [or right-arrow]    move cursor right one character
*    0 (zero)    move cursor to start of current line (the one with the cursor)
*    $    move cursor to end of current line
     w    move cursor to beginning of next word
     b    move cursor back to beginning of preceding word
     :0<Return> or 1G    move cursor to first line in file
     :n<Return> or nG    move cursor to line n
     :$<Return> or G    move cursor to last line in file
Screen Manipulation

The following commands allow the vi editor screen (or window) to move up or down several lines and to be refreshed.
     ^f    move forward one screen
     ^b    move backward one screen
     ^d    move down (forward) one half screen
     ^u    move up (back) one half screen
     ^l    redraws the screen
     ^r    redraws the screen, removing deleted lines
Adding, Changing, and Deleting Text

Unlike PC editors, you cannot replace or delete text by highlighting it with the mouse. Instead use the commands in the following tables.
Perhaps the most important command is the one that allows you to back up and undo your last action. Unfortunately, this command acts like a toggle, undoing and redoing your most recent action. You cannot go back more than one step.
*    u    UNDO WHATEVER YOU JUST DID; a simple toggle
The main purpose of an editor is to create, add, or modify text for a file.
Inserting or Adding Text

The following commands allow you to insert and add text. Each of these commands puts the vi editor into insert mode; thus, the <Esc> key must be pressed to terminate the entry of text and to put the vi editor back into command mode.
*    i    insert text before cursor, until <Esc> hit
     I    insert text at beginning of current line, until <Esc> hit
*    a    append text after cursor, until <Esc> hit
     A    append text to end of current line, until <Esc> hit
*    o    open and put text in a new line below current line, until <Esc> hit
*    O    open and put text in a new line above current line, until <Esc> hit
Changing Text

The following commands allow you to modify text.
*    r    replace single character under cursor (no <Esc> needed)
     R    replace characters, starting with current cursor position, until <Esc> hit
     cw    change the current word with new text,
starting with the character under cursor, until <Esc> hit
     cNw    change N words beginning with character under cursor, until <Esc> hit;
  e.g., c5w changes 5 words
     C    change (replace) the characters in the current line, until <Esc> hit
     cc    change (replace) the entire current line, stopping when <Esc> is hit
     Ncc or cNc    change (replace) the next N lines, starting with the current line,
stopping when <Esc> is hit
Deleting Text

The following commands allow you to delete text.
*    x    delete single character under cursor
     Nx    delete N characters, starting with character under cursor
     dw    delete the single word beginning with character under cursor
     dNw    delete N words beginning with character under cursor;
  e.g., d5w deletes 5 words
     D    delete the remainder of the line, starting with current cursor position
*    dd    delete entire current line
     Ndd or dNd    delete N lines, beginning with the current line;
  e.g., 5dd deletes 5 lines
Cutting and Pasting Text

The following commands allow you to copy and paste text.
     yy    copy (yank, cut) the current line into the buffer
     Nyy or yNy    copy (yank, cut) the next N lines, including the current line, into the buffer
     p    put (paste) the line(s) in the buffer into the text after the current line
Other Commands

Searching Text

A common occurrence in text editing is to replace one word or phase by another. To locate instances of particular sets of characters (or strings), use the following commands.
     /string    search forward for occurrence of string in text
     ?string    search backward for occurrence of string in text
     n    move to next occurrence of search string
     N    move to next occurrence of search string in opposite direction
Determining Line Numbers

Being able to determine the line number of the current line or the total number of lines in the file being edited is sometimes useful.
     :.=    returns line number of current line at bottom of screen
     :=    returns the total number of lines at bottom of screen
     ^g    provides the current line number, along with the total number of lines,
in the file at the bottom of the screen
Saving and Reading Files

These commands permit you to input and output files other than the named file with which you are currently working.

:r filename<Return>    read file named filename and insert after current line
(the line with cursor)
     :w<Return>    write current contents to file named in original vi call
     :w newfile<Return>    write current contents to a new file named newfile
     :12,35w smallfile<Return>    write the contents of the lines numbered 12 through 35 to a new file named smallfile
     :w! prevfile<Return>    write current contents over a pre-existing file named prevfile

[Linux-vi] The simple set of vi command的更多相关文章

  1. Linux学习笔记 (三)Vi文本编辑器

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...

  2. linux基础知识汇总(二)-vi/vim

    转:http://blog.csdn.net/sky04/article/details/5662582 vi与vim一样都是编辑器,不同的是vim更高级一些,可以理解是vi的高级版本.vi就像Win ...

  3. 每天一个linux命令(61):vi命令 /企业常用的linux命令清单

    vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是一般模式.编辑模式与指令列命令模式. 这三种模式的作用分别是: 一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式) ...

  4. Day 6 Linux基础之正文处理、vi编辑和系统初始化和服务

    Linux基础之正文处理.vi编辑和系统化服务 一.正文处理命令及tar命令 1.归档 定义:归档(archiving)就是将许多文件(或目录)打包成一个文件. 目的:归档的目的就是方便备份.还原及文 ...

  5. Linux / UNIX create soft link with ln command

    How to: Linux / UNIX create soft link with ln command by NIXCRAFT on SEPTEMBER 25, 2007 · 42 COMMENT ...

  6. 【Linux高频命令专题(19)】vi/vim

    概述 其实在Linux中一切命令或者软件都是文件,所以把vi/vim作为高频命令专题之一,也没什么不妥.虽然大家都称之为编辑器~~ vim是vi的高级版本,比如有代码高亮,也就是说可以把vim定位为程 ...

  7. Linux学习之CentOS(二十)------vi/vim 按键说明

    vi/vim 按键说明 除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用. 第一部份:一般模式可用的光标移动.复制粘贴.搜索替换等 移动光标的方法 h 或 向左 ...

  8. Linux入门学习笔记1:VI常用命令

    常用命令 yy 复制 p 黏贴 shift+v 多行选中 shift+ctrl+< 左移 shift+ctrl+> 右移 ndd 删除光标所在行及其后n-1行 i 进入编辑状态 esc 退 ...

  9. linux ----> centos 网络、tomcat、vi、等等的配置和使用

    网络/配置 环境: centos6.8-mini-version virtualbox 工具: FileZilla client  SecureCRT 静态ip地址 每一台计算机分配有一个固定的IP地 ...

随机推荐

  1. Eclipse出现错误:The selection cannot be launched,and there are no recent launches

    刚装了eclipse,想写个Java程序测试一下能不能用,结果一run就出现错误,Debug也是同样的错误,错误内容为:the selection cannot be launched,and the ...

  2. MYSQL 备份及还原数据库

    二.还原 1.NEW DB

  3. 基于Woodstox的StAX 2 (Streaming API for XML)解析XML

    StAX (Streaming API for XML)面向流的拉式解析XML,速度快.占用资源少,非常合适处理大数据量的xml文件. 详细教程和说明可以参见以下几篇文章: 使用 StAX 解析 XM ...

  4. keras—多层感知器识别手写数字算法程序

    #coding=utf-8 #1.数据预处理 import numpy as np #导入模块,numpy是扩展链接库 import pandas as pd import tensorflow im ...

  5. actionBar_Tab导航

    actionBar配合碎片使用  初始化actionBar要注意设置actionbar的导航模式 package com.qf.actionbar04_tab; import java.io.File ...

  6. discuz回贴通知插件实现-配置邮件服务器

    添加smtp服务器,填写相应的smtp服务器,发信人地址,用户名和密码.   填写发件人地址和收件人地址来测试邮件是否发送成功.

  7. spring框架之依赖注入(DI)

    1. IOC和DI的概念 * IOC -- Inverse of Control,控制反转,将对象的创建权反转给Spring!! * DI -- Dependency Injection,依赖注入,在 ...

  8. css样式优先级和权重问题

    内联样式: <div style="font-size: 12px;">姓名</div> 外部样式: <link rel="styleshe ...

  9. Linux sar

    一.简介 sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调 ...

  10. [Selenium]验证点了某个Button之后无反应

    期望:点了某个Button,无反应 问题:怎么去验证无反应 WebElement webElement = page.getICORemove(); SeleniumUtil.hover(page.g ...