Vi对于linux的重要性和受欢迎的程度在此一律不表。此刻互联网上不少介绍vi的文章和博客,相信写得比我好的也不在少数。然而为什么我依然写这样一篇文章呢?我对linux知识和了解也都来自于互联网,很难想象在没有互联网的情况下我能不能学会这些最基本的操作。其实用linux也有些年头了,但基本也就停留在小白的阶段。常常抱着够用就行的心态,因而学懂那几行常用的命令后也就再没有深入地了解了。常听人说起,写和讲是为了更好地学。由于各种原因,也有段时间没用vi了。当用起的时候常常会有个印象但又不确定,因而常常GG也就少不了了。与其GG,不如自己记录起来偶尔翻翻。与其说是一篇文章倒不如说是我的私人笔记,文章全然凭自己的理解,写得不明白或者有误的地方也请指出。在我对Vi没有彻底熟烂于心之前,这都是一篇尚未完成的文章。

vi 创建并编辑文件

vi test.txt
  • i 、a 、o 命令

按i、a或者o进入编辑模式

然后输入

this is a test file!

  • esc 退出编辑模式

按键盘又上角的“esc”键退出编辑模式

  • yy 复制和p粘贴

现在复制上面的行并粘贴,输入“yy”复制,然后输入“p”完成粘贴

this is a test file!
this is a test file!
this is a test file!
this is a test file!

  • set:number(set:num)显示行号和set:nonumber(set:nonum)取消行号:

1 this is a test file!
2 this is a test file!
3 this is a test file!
4 this is a test file!

  • :number,

将光标移到指定行号

  • 【 /需要查找的内容】 查找字符串,首次查找后输入“n”即可循环查找字符串

输入“/test”即可查找test这个字符串了,按“n”即可查找下一个想匹配的字符串

  • x 删除光标后的字符,X 删除光标前的字符(与 x 的用法一致), dd 删除行

x可删除光标后面的字符,5x表示删除光标后的5个字符。同理dd可删除光标所在行,5dd则是删除光标后的5行(包含光标所在行)

  • r 替换光标处的字符,R替换光标所到指出的字符,直到按下ESC键为止
  • u 撤销上一次编辑的内容

undo上一次改变。

  • U 撤销当前行编辑的内容

undo当前行所有的改变。

  • Ctrl + R  恢复撤销的内容

redo被undo了的改变。

  • ^ 将光标移到行首和 $ 将光标移到行尾
  • gg 回到文档开始的地方
  • Ctrl+f

向前翻屏

  • Ctrl+b

向后翻屏

  • Ctrl+d

向前翻半屏

  • Ctrl+u

向后翻半屏

  • 保存退出: :x 或 :wq 保存并退出,输入: :q! 不保存退出,:w filename 指定filename保存并退出。
  • 查看文件的十六进制: :%!xxd,与 od  -t x1 filename 的效果一致

批量替换内容

  :%s/原有内容/新内容/g

我常用的Vi命令的更多相关文章

  1. 【原创】一些常用的Vi命令,可帮助脱离鼠标

    使用Vi编写代码时,如果想脱离鼠标,需要使用一些命令快捷键,下面罗列了一些常用的并且容易记住的: 1. 命令模式下,移动光标或跳转 0到行首 ^到行首第一个非空字符 $到行尾非空字符 fx向后移动光标 ...

  2. 【转】一些常用的Vi命令,可帮助脱离鼠标

    使用Vi编写代码时,如果想脱离鼠标,需要使用一些命令快捷键,下面罗列了一些常用的并且容易记住的: 1. 命令模式下,移动光标或跳转 0到行首 ^到行首第一个非空字符 $到行尾非空字符 fx向后移动光标 ...

  3. 不常用的vi命令

    vi u 撤回ctrl+r 撤回的撤回 全文替换%s/old/new/g 指定行区间替换12,15s/old/new/g c替换前确认12,15s/old/new/gc 用#代替分隔符,用户关键字有/ ...

  4. linux:终端常用命令 + vi命令修改文件及保存 方法

    首先介绍一下Ubuntu下各个目录的一般作用: /  这就是根目录,一台电脑有且只有一个根目录,所有的文件都是从这里开始的.举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录 ...

  5. linux vi 命令大全

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

  6. linux下vi命令大全

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

  7. (转)linux下vi命令大全

    http://www.cnblogs.com/88999660/articles/1581524.html 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n ...

  8. linux下vi命令大全[转]

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

  9. linux下vi命令大全(转载)

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

随机推荐

  1. 使用Nancy.Host实现脱离iis的Web应用

    本篇将介绍如何使用Nancy.Host实现脱离iis的Web应用,在开源任务管理平台TaskManagerV2.0代码里面已经使用了Nancy.Host实现自宿主的Web应用.学习Nancy之前最好了 ...

  2. Android BLE 蓝牙编程(三)

    上节我们已经可以连接上蓝牙设备了. 本节我们就要获取手环的电池电量和计步啦. 在介绍这个之前我们需要先了解下什么是 服务 什么是 UUID 我们记得上节中我们item监听事件的回调的返回值是Bluet ...

  3. 使用Extjs组件实现Top-Left-Main布局并且增加事件响应

    每次在毕业答辩会上,看到同专业的同学只要是XXX管理系统,就是下图所示的界面,看来这中布局还是很受欢迎的(偷笑).接下来进入我们正题,在web项目无论是前端还是后台管理比较常见的布局就是Top-Lef ...

  4. JVM_垃圾回收串行、并行、并发算法(总结)

    一.串行 JDK1.5前的默认算法 缺点是只有一个线程,执行垃圾回收时程序停止的时间比较长 语法 -XX:+UseSerialGC 新生代.老年代使用串行回收 新生代复制算法 老年代标记-压缩 示例图 ...

  5. 线段树 poj 3667

    1-n线段 m个操作 1  a 是否可找到连续a个空位子 有输出最左边(然后使这一段被占)没有0 2 a ,b a~b区间变成未使用 #include<stdio.h> #include& ...

  6. 使用css3 filter 实现移入背景变色效果

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  7. MongoDB Node.js driver

    Node.js连接MongoDB的简单实例 安装Node.js driver npm install mongodb -save 连接 var MongodbClient = require('mon ...

  8. Flash调用麦克风

    import flash.events.ActivityEvent;import flash.media.Microphone;var deviceArray:Array = Microphone.n ...

  9. Effective java读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己 计在16年要看12本书,主要涉及java基础.Spring研究.java并发.J ...

  10. PL/SQL设置主键自增

    oracle没有设置主键auto increment的功能,需要自己编写序列和触发器实现主键自动递增. 示例: 创建表menu:   一.创建表 create table menu( menuId n ...