一、vi的操作模式 
  vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。 
在输入模式下,按Esc键切换到指令模式下。 
在指令模式下,按输入指令(i、a、o等)进入输入模式。

二、进入vi 
  $ vi filename 
  直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。 
  如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。 
  $ view filename 
  以只读方式打开文件filename

三、指令模式 
  3.1 进入输入模式 
  a 在当前游标之后输入 
  A 在当前行之末输入 
  i 在当前游标之前输入 
  I 在当前行之首输入 
  o 在当前行之下新增一行,并在新增行输入 
  O 在当前行之上新增一行,并在新增行输入 
  输入结束后,按Esc键退出输入模式。

  3.2 游标移动 
  h 向左移动一个字元 
  l 向右移动一个字元 
  j 向下移动一个字元 
  k 向上移动一个字元 
  b 左移一个单词,至词首 
  w 右移一个单词,至词尾 
  0 移到当前行行首 
  $ 移到当前行行尾 
  + 移至下一行的行首 
  - 移至上一行的行首 
  H 移至视窗的第一行 
  M 移至视窗的中间一行 
  L 移至视窗的最后一行 
  G 移至该文件的最后一行 
  nG 移至该文档的第n行 
  n+ 下移n行 
  n- 上移n行

  3.3 视窗移动 
  <Ctrl> + f 视窗下卷一页 
  <Ctrl> + b 视窗上卷一页 
  <Ctrl> + d 视窗下卷半页 
  <Ctrl> + u 视窗上卷半页 
  <Ctrl> + e 视窗下卷一行 
  <Ctrl> + y 视窗上卷一行

  3.4 删除操作 
  x 删除游标所在字元 
  X 删除游标前一字元 
  dw 从游标当前位置开始向后删除一个单词 
  db 从游标当前位置开始向前删除一个单词 
  d0 从行首删除至当前游标位置 
  d$ 从游标当前位置删除至行尾 
  dd 删除游标所在行 
  D 同d$

  3.5 修改操作 
  s 修改游标所在字元,修改完成后按Esc键结束 
  S 修改整行内容,修改完成后按Esc键结束 
  r 替换当前游标所在字元 
  R 进入替换状态,直至按Esc键结束 
  cw 修改一个单词(从游标位置至词尾) 
  cb 修改一个单词(从词首至游标位置) 
  cc 修改整行内容,完成后按Esc键结束,同S 
  c0 修改行首至游标位置的内容 
  c$ 修改游标位置至行尾的内容 
  ~ 游标所在字元大小写切换

  3.6 指令重复 
  在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。常用的重复操作有: 
  nx 删除n个字元 
  ndd 删除n行 
  ns 修改n个字元

  3.7 取消前一动作(Undo) 
  u 撤消上一指令的结果

  3.8 查找字符串 
  /字符串 从当前游标向后查找该字符串 
  ?字符串 从当前游标向前查找该字符串 
  n 从当前游标向后查找下一个字符串 
  N 从当前游标向前查找下一个字符串

  3.9 查看编辑状况 
  <Ctrl> + g 显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改

四、保存与退出 
  :w 保存,但不退出 
  :wq 保存并退出 
  :x 同:wq 
  :q 退出,如果当前文件没有保存,禁止退出 
  :q! 不保存退出 
  :w file1 将内容保存至文件file1中,注意:此时编辑的仍为原文件 
  :w! file1 将内容覆盖保存至文件file1中,如文件file1存在,:w file1将禁止执行

五、环境设置 
  :set 显示已设置的环境状况 
  :set all 显示所有的环境设置选项 
  :set nu 显示行号 
  :set nonu 不显示行号 
  :set ts = n 设置Tab键的长度为n

六、执行指令 
  以下用具体的数字为例进行介绍,数字表示行数,游标所在行可用“.”代替,文件最后一行可用“$”代替。 
  : 10 , 20d 删除第10行至第20行的内容 
  :10d 删除第10行的内容 
  :%d 删除全部内容 
  : 10 , 20co30 将第10行至第20行的内容复制到第30行之后 
  : 10 , 20mo30 将第10行至第20行的内容移动到第30行之后 
  : 1 , $s/old/new 将第1行至最后一行中的old替换成new 
  : 1 , $s/^/new 将第1行至最后一行的内容前面插入new 
  : 10 将游标移至第10行

七、重复指令 
  . 重复上一条指令

八、切换到shell状态 
  :sh 切换到shell状态,exit返回

vi命令常用操作的更多相关文章

  1. Linux(Ubuntu)常用命令(五)—— vi/vim常用操作

    vi/vim常用命令 vim其实就是vi的升级版,vi里的所有命令vim里都可以用,一般使用来说几乎没什么差别. 注:本篇文章区分大小写! vi / vim三级模式的关系: 命令行模式 任何时候,不管 ...

  2. 想法子记忆Vi/Vim常用操作及指令

    本笔记有特殊目录,点击开启: 专有目录 在Linux系统中编辑文本总是离不开一位老帮手--Vi.而因为其诞生的年代有些久远,有些操作在现在看来可能有点"反直觉". 于是我决定写这样 ...

  3. top 命令常用操作

    1.显示进程参数 top -c 下面操作为top命令后操作 2.按cpu/mem排序 shift + p/m 3.高亮 排序列 按x键 4.高亮 变化进程行 按b键 5.显示cpu每核的运行状态 按1 ...

  4. vi编辑器常用操作

    vi的三种模式 1.命令模式 2.编辑模式 3.末行模式(命令模式下,按":"即可进入末行模式) 命令模式到编辑模式:插入命令i,附加命令a,打开命令o,修改命令c,取代命令r,替 ...

  5. Linux vi命令快操作汇总

    第一部份:一般指令模式可用的按钮說明,游标移动.复制粘贴.搜寻取代等 一.移动游标的方法h 或 向左方向鍵(←) 游标向左移动一个字节j 或 向下方向鍵(↓)   游标向下移动一个字节k 或 向上方向 ...

  6. vi/vim常用操作

    什么是vim? Vim是从 vi 发展出来的一个文本编辑器.代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器. vim的 ...

  7. git命令常用操作

    第一步:拉取git上的文件(git clone 远程仓库地址) 第二步:在主目录下运行git base here,执行git status 第三步:添加文件到本地仓库(git add 文件)之后,再次 ...

  8. linux下svn命令常用操作

    1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:s ...

  9. docker基础命令,常用操作

    docker基础命令 使用docker镜像 获取镜像 从docker registry获取镜像的命令是docker pull.命令格式是: docker pull [选项][docker regist ...

随机推荐

  1. ORACLE数据库字符集处理

    简介: ORACLE数据库字符集,即Oracle全球化支持(Globalization Support),或即国家语言支持(NLS)其作用是用本国语言和格式来存储.处理和检索数据.利用全球化支持,OR ...

  2. 洛谷 P2049 魔术棋子

    P2049 魔术棋子 题目描述 在一个M*N的魔术棋盘中,每个格子中均有一个整数,当棋子走进这个格子中,则此棋子上的数会被乘以此格子中的数.一个棋子从左上角走到右下角,只能向右或向下行动,请问此棋子走 ...

  3. 2.跟我学solr---在solr admin中加入索引

    这一章为大家介绍怎样在solr admin中.通过浏览器向solr加入索引 一.加入xml格式的文档 进入solr admin后,点击Documents.选择Documentation Type为xm ...

  4. 天津大学各种Latex模板共享链接

    多元统计课最后Ppt里说要共享一下模板.这里给出链接 https://www.github.com/6gbluewind 注:写本文时还未上传 ************* 下午终于有网了,于是上传了一 ...

  5. Servlet监听器及在线用户

    Servlet中的监听器分为三种类型Ⅰ 监听ServletContext.Request.Session作用域的创建和销毁 (1)ServletContextListener (2)HttpSessi ...

  6. 数据分页jdbc+mysql实现

    通过简单粗糙的功能不完善的客户管理案例体现jdbc+mysql的数据分页,与其说是管理系统,不如说就是一个jdbc数据分布的demo而已.但是话又说回来,麻雀虽小,五脏俱全.虽然是个小demo,但是其 ...

  7. Mac上vmware虚拟机Windows10安装Tomcat8.0及配置环境

    1.下载tomcat8.0或其他版本.下载地址:http://tomcat.apache.org/download-80.cgi 2.双击进行解压. 3.安装成功之后,右键我的电脑 --> 选择 ...

  8. Linux-TCP/IP, IPv4地址类别摘要

    TCP/IP分层:                 application layer                 transport layer                 internet ...

  9. Linux FTP客户端

    1.File Zilla File Zilla是一个开源的,跨平台的Linux FTP客户端.File Zilla有一个标签式的用户界面,允许用户查看正在传输的文件的所有细节.File Zilla是通 ...

  10. 使得nginx支持pathinfo访问模式

    原理:     任意创建一个 in.php 文件:             <?php                       echo '<pre>';             ...