• 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)。

vi编辑器的启动与退出

  •   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) :x和ZZ(注意: ZZ前面没有“:”)

      功能与(2)等价。

      (4) :q!(或:quit)

      强行退出vi,使被更新的内容不写回文件中。仅键入命令:q时,如vi发现文本内容已被更改,将提示用户使用“:quit”命令退出。

vi编辑器常用命令

  •   1、在文件中移动光标

      h:向左移动一个字符

      l:向右移动一个字符

      j:向下移动一行

      k:向上移动一行

      ^(即Shift+6):移动到当前行的开头处

      $(即Shift+4):移动到当前行的结尾处

      H(大写):使光标移动到屏幕的顶部

      M(大写):使光标移动到屏幕的中间

      L(大写):使光标移动到屏幕的底部

      Ctrl+b:上滚一屏。

      Ctrl+f:下滚一屏。

      Ctrl+d:下滚半屏。

      Ctrl+u: 上滚半屏。

      2、插入文本

      (1)添加:

      ●输入a后,在光标的右边插入文本

      ●输入A,在一行的结尾处添加文本

      (2)插入:

      ●通过在命令模式下输入i,在光标的左边插入文本

      ●通过在命令模式下输入I,在行首插入文本

      (3)插入新行:

      ●输入o,在当前光标位置下面打开一行

      ●输入O,在当前光标位置上面打开一行

      3、撤消更改

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

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

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

      4、删除文本

      (1)删除一个字符:

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

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

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

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

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

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

      (4)删除多行:ndd

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

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

      5、复制和移动文本

      ●复制一行命令:yy

      ●粘贴命令:p

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

      ●复制指定文件的内容

      : r filename

      6、查找一个字符串

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

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

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

      7、替换一个字符串

      ●在一行内替换头一个字符串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

      8、设置vi

      ●显示行号

      :set number

      ●取消行号显示

      :set nonumber

      ●设置显示用户模式

      :set showmode

      ●设置文件只读

      :set readonly

vi编辑器的三种模式的更多相关文章

  1. 文本编辑器vim——三种模式、显示行号、插入命令、行快速定位、行内定位

    1.vim的三种工作模式: (1)利用vim命令新建文件: 点击entre键执行命令后,开始向文本中输入想要写入的内容: (2)命令行模式(ESC): 不管用户处于何种模式,只要单击Esc键,即可进入 ...

  2. LINUX中,Vi编辑器的几种模式及保存、退出等命令

    vi编辑器有三种模式: 命令模式,编辑模式,末行模式 打开vi后首先是命令模式,用i,o,a等进入编辑模式,按esc退出编辑模式,回到命令模式. 在命令模式下输入:wq表示保存退出,:wq!强制保存退 ...

  3. Linux之vi三种模式常用操作

    vi的三种模式:命令模式.编辑模式.尾行模式 一.命令模式 1.光标移动 a.字符级 左(h) 下(j) 上(k) 右(l) b.单词级 w word移动到下个单词首字母 b before上个单词首字 ...

  4. vi/vim 三种模式的操作

    来源:http://www.runoob.com/linux/linux-vim.html ps:刚刚进入vi/vim 是命令模式 一.命令模式 i 切换到输入模式,以输入字符. x 删除当前光标所在 ...

  5. vi三种模式的切换

    基础上vi/vim共分为三种模式,分别是命令模式,输入模式和底线命令模式. 一.命令模式 用户刚刚启动vi/vim,便进入了命令模式. 在此状态下敲击键盘动作会被vim识别为命令,而非输入字符.比如我 ...

  6. vim(vi)下的三种模式及其相关命令

    vim(vi)下的三种模式1.命令行模式 2.末行模式 3.插入模式 三种模式的联系及其相互转换 在我们输入vi命令进入编写程序的页面后,我们看到的是命令行模式,在我们输入“a”.“i”.“o”.“O ...

  7. linux中vim编辑器三种模式及常用命令的使用

    Linux命令经常使用才会烂熟于心 命令行模式: 移动光标: 向下左右箭头可以移动光标: 将光标移动到行尾:$; 将光标移动到行头:^: 将光标移动到页尾:shift+g; 将光标移动到页头:1+sh ...

  8. 辛星跟您玩转vim第一节之vim的下载与三种模式

    首先值得一提的是,我的vim教程pdf版本号已经写完了,大家能够去下载,这里是csdn的下载地址:点此下载 ,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http://d ...

  9. VIM 三种模式和常用命令

    引言 大数据开发工作中,周围的同事不是用 VIM 就是 Emacs,你要是用 UltraEdit 或 notepad++ 都不好意思跟人家打招呼...什么插件呀.语法高亮呀.拼写检查呀,能给它开的都给 ...

随机推荐

  1. IOS 高级开发 KVC(一)

    熟练使用KVC 可以再开发过程中可以给我们带来巨大的好处,尤其是在json 转模型的时候,KVC让程序员摆脱了繁琐无营养的代码堆积.减少代码量就是减少出错的概率.KVC 用起来很灵活,这种灵活的基础是 ...

  2. java中内部类的定义与访问规则

    java内部类总结 简单来说,内部类就是在我们所熟悉的类中的里面再定义一个类 为什么需要内部类? 当我们描述事物时,事物之中还有事物,我们就用内部类描述事物 因为内部事物在使用外部事物的内容 我举一个 ...

  3. C语言 goto, return等跳转

    C语言 goto, return等跳转 Please don't fall into the trap of believing that I am terribly dogmatical about ...

  4. KMP入门(匹配)

    Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M ...

  5. 07_例子讲解:rlCoachKin + rlCoachMdl

    RL提供了2个相当简单的基于socket的虚拟化机器人,是socket服务端. rlCoachKin是用于D-H运动链(在rlkin\*xml中定义的). rlCoachMdl相当于任意几何的工具链. ...

  6. 二叉搜索的各种bugs——重复递增序列

    int binary_search(int* A, int value, int p, int r); int main(int argc, char *argv[]){ , , , , , , , ...

  7. OpenJudge/Poj 1316 Self Numbers

    1.链接地址: http://poj.org/problem?id=1316 http://bailian.openjudge.cn/practice/1316 2.题目: 总时间限制: 1000ms ...

  8. Android-ViewPagerIndicator-master 、Android-PullToRefresh 学习篇

    最近在学习android,然后看到了很多有用的开源库.其中一个就是Android-ViewPagerIndicator :. 这是与ViewPager兼容的一个分页指示器库.分页指示器(Friends ...

  9. linux 客户端与linux服务器端连接与文件上传下载

    linux客户端连接linux服务器 用ssh 可以用 man ssh 查看用法 基本格式: ssh 用户名@主机名 如: ssh root@1.1.1.1 linux客户端上传文件到 linux 服 ...

  10. html5 meta头部设置

    <meta name="viewport" content="height=[pixel_value | device-height], width=[pixel_ ...