1、命令模式(command mode)—执行命令  

在该模式中,可以输入命令来执行许多种功能。控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

2、输入模式(Insert mode)—输入文本 

vi被运行时,通常处在命令模式下,键入以下命令 可以使vi退出命令模式,进入输入模式:I(i)、A(a)、O(o)。 

3、末行模式(last line mode)—执行待定命令 

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。不过一般我们在使用时把vi简化成两个模式,就是将末行模式(last line mode)也算入命令行模式command mode)。

1. vi的启动

  输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。

  (1) vi

  进入vi的一个临时缓冲区,光标定位在该缓冲区第1行第1列的位置上。

  (2) vi file1

  如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在该缓冲区第1行第1列的位置上。

  (3) vi + file1

  如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件最后1行第1列的位置上。

  (4) vi +N file1(N:为数字)

  如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件第N行第1列的位置上。

  (5) vi +/string file1

  如果file1文件不存在将建立此文件;如该文件存在则将其拷贝到一个临时缓冲区。光标定位在文件中第一次出现字符串string的行首位置。

2. 退出vi(末行模式(last line mode))

  建议在退出vi前,先按ESC键,以确保当前vi的状态为命令方式,然后再键入“:”(冒号),输入下列命令,退出vi。

  (1) :w

  将编辑缓冲区的内容写入文件,则新的内容就替代了原始文件。这时并没有退出vi,必须进一步输入下述命令才能退出vi:

  :w filename(存入指定文件)

  :q

  (2) :wq

  即将上面的两步操作可以合成一步来完成,先执行w,后执行q。

3、在文件中移动光标 

  • h:向左移动一个字符 
  • l:向右移动一个字符  
  • j:向下移动一行 
  • k:向上移动一行 
  • ^(即Shift+6):移动到当前行的开头处 
  • $(即Shift+4):移动到当前行的结尾处  
  • H(大写):使光标移动到屏幕的顶部 
  • M(大写):使光标移动到屏幕的中间 
  • L(大写):使光标移动到屏幕的底部  
  • Ctrl+b:上滚一屏。  
  • Ctrl+f:下滚一屏。 
  • Ctrl+d:下滚半屏。 
  • Ctrl+u: 上滚半屏。

4、撤消更改 

(1)撤消前一个命令:在最后一个命令之后立即输入u来撤消该命令 

 (2)重复某个命令:“.” 

 (3)撤消对一行的更改:输入U来撤消你对一行所做的所有更改,这个命令只有在你没将光标移动到该行以外时才生效。

5、删除文本 

 (1)删除一个字符: 

 ●为删除一个字符,需将光标放置在要删除的字符上并输入x 

 ●为删除光标之前(其左边)的一个字符,需输入X  

(2)删除一个词或词的部分内容: 

 ●为删除一个词,需将光标放置到该词的开头并输入dw  

●为删除词的部分内容,需将光标放置到该词要保存部分的右边。输入dw来删除该词余下的部分  

(3)删除一行:将光标放置到该行的任意处并输入dd  

(4)删除多行:ndd  

(5)删除行的部分内容:将光标放置到该行要保存部分的右边,并输入D。为删除光标左边的所有内容,须将光标放置到该行要删除部分的右边,并输入d0(d-零)。 

 (6)删除到文件的结尾:为删除从当前行到文件结尾的所有内容,需输入dG

6、复制和移动文本 

 ●复制一行命令:yy 

 ●粘贴命令:p  

●移动文本:先将要移动的部分用删除命令删除,然后再粘贴就可以了 

 ●复制指定文件的内容  : r filename 

7、查找一个字符串 

 ●输入/,并在/后面输入要查找的串,然后按下回车  

●输入“n”跳转到该串的下一个出现处  

●输入“N”跳转到该串的上一个出现处  

8、替换一个字符串 

 ●在一行内替换头一个字符串old为新的字符串new   :s/old/new  

 ●在一行内替换所有的字符串old为新的字符串new   :s/old/new/g  

 ●在两行内替换所有的字符串old为新的字符串new   :#,#s/old/new/g

 ●在文件内替换所有的字符串old为新的字符串new   :%s/old/new/g  

 ●进行全文替换时询问用户确认每个替换需添加c选项   :%s/old/new/gc  

9、设置vi  

 ●显示行号   :set number   

●取消行号显示   :set nonumber   

●设置显示用户模式   :set showmode   

●设置文件只读   :set readonly

(转载的)

vi编辑器:命令模式、输入模式、末行模式的更多相关文章

  1. 『学了就忘』vim编辑器基础 — 96、末行模式中的相关命令

    目录 1.在文档中显示行号 2.是否显示文档内容相关颜色 3.是否将查找的字符串高亮显示 4.是否显示右下角的状态栏 5.是否在左下角显示如"--INSERT--"之类的状态栏 6 ...

  2. 文本编辑器vim/vi——末行模式

    指令格式: #vim 文件路径作用:打开指定的文件. 进入方式:由命令模式进入,按下“:”或者“/(表示查找)”即可进入 退出方式: a. 按下esc b. 连按2次esc键 c. 删除末行全部输入字 ...

  3. 常用vi编辑器命令行

    游标控制: h 游标向左移 j 游标向下移 k 游标向上移 l(or spacebar) 游标向右移 w 向前移动一个单词 b 向后移动一个单词 e 向前移动一个单词,且游标指向单词的末尾 ( 移到当 ...

  4. vi 替换命令 以及“找不到模式”解决

    转自:https://www.cnblogs.com/zfyouxi/p/5181363.html 在linux vi编辑工具中使用替换命令操作时,会出现明明有匹配查找模式的数据.却报“找不到模式”问 ...

  5. vi 编辑器命令 (share)

    转自:http://man.ddvip.com/soft/vieditor/vi.html 一.Unix编辑器概述 编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件.Uni ...

  6. vi编辑器命令

    Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Windows 下的 word 有排版功能.v ...

  7. 常用vi编辑器命令

    对于VI的命令行,不需要特意的去记忆,写下来,让要用到的时候能找到就行 游标控制 h 游标向左移 j 游标向下移 k 游标向上移 l (or spacebar) 游标向右移 w 向前移动一个单词 b ...

  8. linux vi 编辑器命令

    游标控制 h 游标向左移 j 游标向下移 k 游标向上移 l (or spacebar) 游标向右移 w 向前移动一个单词 b 向后移动一个单词 e 向前移动一个单词,且游标指向单词的末尾 ( 移到当 ...

  9. 【Linux】vi编辑器命令

       1)进入vi的命令 vi filename :             打开或新建文件,并将光标置于第一行首 vi +n filename :          打开文件,并将光标置于第n行首 ...

随机推荐

  1. 004-Set 和 Map 数据结构

    原文地址:http://es6.ruanyifeng.com/#docs/set-map 1.Set ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set ...

  2. linux一路填坑...

    1.安装ubuntu 从ubuntu9.0开始,一路更新,越来越垃圾,更可恶的是工作上经常指定特定的版本,于是乎,我电脑里装了n个版本的ubuntu. Win7 + Ubuntu 15.10 1)装完 ...

  3. Python基础、判断、循环、列表、字典,day1

    一.Python 简介 1.介绍 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标 ...

  4. Django框架之ORM(数据库)操作

    一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录----------------->类实例 ...

  5. php 获取数组中的key值

    <?php $arr = array( 'book' => 1, 'data' => 'data', 'music' => 'music', 'img' => 'img' ...

  6. Python Tornado之四(Http层)

    HTTPRequest,HTTPServer与HTTPConnection 前面小节在分析 handler 时提到,handler 的读写实际是依靠 httprequest 来完成的.今天就分析 to ...

  7. PAT 天梯赛 L1-003. 个位数统计

    题目链接 https://www.patest.cn/contests/gplt/L1-003 题意 计算每个不同数字出现的次数 思路 可以用 MAP标记, 也可以直接用数字 存 AC代码 #incl ...

  8. POJ 1659 Frogs' Neighborhood (Havel定理构造图)

    题意:根据图的度数列构造图 分析:该题可根据Havel定理来构造图.Havel定理对可图化的判定: 把序列排成不增序,即d1>=d2>=……>=dn,则d可简单图化当且仅当d’={d ...

  9. Resharper 快捷键

    编辑   Ctrl + Space 代码完成 Ctrl + Shift + Space代码完成 Ctrl + Alt + Space代码完成 Ctrl + P 显示参数信息 Alt + Insert ...

  10. OpenCL 学习step by step (5) 使用二维NDRange workgroup

    http://www.cnblogs.com/mikewolf2002/archive/2012/09/07/2675634.html 在本教程中,我们使用二维NDRange来设置workgroup, ...