• vi的三种编辑模式
  • 命令模式(Command mode)

    在此模式下可以控制光标的移动,可以删除字符,删除行,还可以对某个段落进行复制和移动

  • 输入模式(Insert mode)

    只有在此模式下,可以输入字符

  • 末行模式(Last line mode)

    在此模式下可以将文件保存或退出Vi,还可以设置编辑器环境,还可以查找字符串,列出行号

    备注:不过一般把vi看成两个两个模式,将末行模式也算入命令行模式

  • Vi 初体验

    在终端键入vi file.txt

    #vi file.txt

    如果不熟悉的人肯定是会直接开始,敲打键盘进行输入,发现没有效果,就开始干着急。。其实当你输入上面的命令时,此时是处于命令模式的。要先切换到输入模式才可以进行输入,只需要按下字母"i"进行,让后你就可以输入了,要切换到命令模式,只需按"ESC"键。

    保存文件

    在命令行模式下,按一下":"键进入末行模式,如:

    :w filename(以filename为文件名保存文件)

    :wq (存盘并推出vi)

    :q!(不存盘强制退出vi)

  • 命令模式功能键
  • 切换到输入模式

    按"i"进入输入模式后是从当前位置开始输入文件

    按"a"进入输入模式后,是从目前光标所在位置的下一个位置开始输入文字

    按"o"进入输入模式后,是插入新的一行,从行首开始输入文字

  • 从输入模式切换为命令模式

    按"ESC"键

  • 移动光标

    vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写字母h,j,k,l分别控制光标的左、下、上、右移一格

    按"ctrl" + "b":屏幕往"后"移动一页

    按"ctrl" + "f":屏幕往"前"移动一页

    按"ctrl" + "u":屏幕往"后"移动半页

    按"ctrl" + "d":屏幕往"前"移动半页

    按数字0:移动到文章的开头

    按G:移动到文章的最后

    按$:移动到光标所在行的行尾

    按^:移动到光标所在行的行首

    按#l:光标移到到该行的第#个位置,如5l

  • 删除文字

    按x:每按一次,删除光标所在位置的"后面"一个字符

    按#x:如6x表示删除光标所在位置的后面6个字符

    按X:大写的X,每按一次删除光标所在位置的前面一个字符

    按#X:删除光标前面的#个字符

    按dd:删除光标所在行

    按#dd:从光标所在行开始删除#行

  • 复制

    按yw:将光标所在之处到字尾的字符复制到缓冲区中

    按#yw:复制#个字到缓存区

    按yy:复制光标所在行到缓冲区

    按#yy:从光标所在的行起,往下数#行复制到缓冲区

    按p:将缓冲区的字符粘帖到光标所在位置,所有与"y"有关的命令,都必须与"p"配合才能完成复制与粘帖功能

  • 替换

    按r:替换光标所在处的字符

    按R:替换光标所在处的字符,知道按下ESC键为止

  • 撤销上一次操作

    按u:如果您误执行一个命令,可以马上按下"u",回到上一个操作。 按多次"u"可以执行多次。

  • 更改

    按"cw":更改光标所在处的字到字尾处

    按"c#w":例如,「c3w」表示更改3个字

  • 跳至指定的行

    按ctrl+g列出光标所在行的行号。

    按 #G:例如,「15G」,表示移动光标至文章的第 15行行首。

末行模式简介

在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于 「command mode」下后,再按「:」冒号即可迚入「last line mode」。

  • 列出行号

    「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

  • 跳到文件中的某一行

    「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳 到该行了,如输入数字 15,再回车,就会跳到文章的第 15行。

  • 查找字符

    「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键 字丌是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。

    「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键 字丌是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

  • 保存文件

    「w」:在冒号输入字母「w」就可以将文件保存起来。

  • 离开vi

    「q」:按「q」就是退出,如果无法离开 vi,可以在「q」后跟一个「!」强 制离开vi。

    「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以 保存文件。

Linux学习笔记(4)-文本编辑器vi的使用的更多相关文章

  1. linux/linux学习笔记-vim文本编辑器(mooc)

    vim文本编辑器 vim与vi的区别:( vim=vi +IMproved) VIM是一个Unix以及类unix文本编辑器 特点:功能强大,高度可定制 vim编辑器的三种模式:一般模式.编辑模式和命令 ...

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

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

  3. Linux学习笔记之VIM编辑器

    此处根据需要,只罗列一些常用的指令和用法 五.VIM程序编辑器 Vi与vim Vi打开文件没有高亮注释,vim有,且vim是vi的高级版本 Vim默认打开文件为命令模式 i               ...

  4. Linux学习笔记—vim程序编辑器

    vi和vim vim是vi的升级版,支持vi的所有指令 vi的使用 vi分为三种模式:一般模式.编辑模式.命令行模式 一般模式 以vi打开一个文件就直接进入一般模式了,这个模式下可以使用上下左右按键来 ...

  5. Linux学习笔记8——VIM编辑器的使用

    在ubuntu中,敲入命令行:sudo apt-get install vim,然后输入系统密码,确认Y,即可下载vim 按下vim,在后面跟上文件的路径,即可进入文件到编辑模式,如果不存在该文件,将 ...

  6. Linux学习笔记之八————vim编辑器常用命令总结

    <1>从命令行模式到插入模式 i  :在光标前插入 a :在光标后插入 I  :在光标所处在的行的行首 A :在光标所处在的行的末尾 o  :在光标所处在的行的下一行 行首 O :在光标所 ...

  7. deepin linux 学习笔记(二)——文本编辑器

    目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...

  8. Linux学习笔记(四) vi编辑器

    一.vi 编辑器 vi 编辑器 (Visual Interface) 是所有 Unix 及 Linux 系统下标准的编辑器,相当于 Windows 系统中的记事本 它有三种模式,分别是: Comman ...

  9. Linux学习笔记之VI(VIM)编辑器

    百度关于vi的资料 http://baike.baidu.com/view/908054.htm 关于vi 和vim的介绍可以在上面的网址看到. 1   进入和退出vi 进入:在终端命令行输入 vi ...

  10. Linux学习笔记之七————Linux常用命令之编辑器、服务器

    <1>gedit编辑器 gedit是一个Linux环境下的文本编辑器,类似windows下的写字板程序,在不需要特别复杂的编程环境下,作为基本的文本编辑器比较合适.   <2> ...

随机推荐

  1. php 学习笔记

    //本文转自:http://www.cnblogs.com/ronghua/p/6002995.html //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. ...

  2. iOS 视频开发-AVPlayer

    如果我只是简单的播放一个视频,而不需要考虑播放器的界面.iOS9.0 之前使用 MPMoviePlayerController, 或者内部自带一个 view 的 MPMoviePlayerViewCo ...

  3. HDOJ2023求平均成绩

    求平均成绩 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  4. android doc 本地文档加载慢的解决办法

    从来都是FQ上谷歌官网查文档,但是有时没办法FQ,就得用sdk本地的doc文档了,由于文档内部的一些javascript,font等也需要访问Google来加载,导致了打开本地网页也巨慢无比,甚至转了 ...

  5. 【转】Android开发中Handler的使用

    在Android开发中,我们经常会遇到这样一种情况:在UI界面上进行某项操作后要执行一段很耗时的代码,比如我们在界面上点击了一个”下载“按钮,那么我们需要执行网络请求,这是一个耗时操作,因为不知道什么 ...

  6. cocos2dx-lua class语法糖要注意了

    cocos2dx-lua function.lua 定义了class方法,让lua实现继承像传统语言一样漂亮和方便 看定义 function class(classname, super) local ...

  7. @override

    目录 用处 作用 注意   用处: 继承抽象类,必须实现抽象方法,方法上要加@override 实现接口时,必须实现接口里定义的方法,方法上要加@override         作用: 可以检查方法 ...

  8. Libcurl笔记五_easy模式运行原理

    1, curl_easy_init内部调用Curl_open创建一个结构体SessionHandle(里面包含了所以curl使用的数据和指针)并初始化一些数据,然后返回将其作为给外侧使用的句柄CURL ...

  9. 使用spring手动控制事务

    http://kiral.iteye.com/blog/92742 使用spring手动控制事务 Spring事务配置的五种方式 (1) http://www.cnblogs.com/hellojav ...

  10. 源码编译安装LNMP环境及配置基于域名访问的多虚拟主机

    实验环境及软件版本: CentOS版本: 6.6(2.6.32.-504.el6.x86_64) nginx版本: nginx-1.6.2 mysql版本:  Mysql-5.6.23 php版本: ...