所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。

但是目前我们使用比较多的是 vim 编辑器。

vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

Vi/VIM的三种模式:

  • 命令模式(Command mode)(一般模式)
  • 输入模式(Insert mode)(a,i,o进入)
  • 底线命令模式(Last line mode)(:)

进入VI:

  • vi file  打开/新建文件,光标置于第1行行首
  • vi file +n  打开文件,光标置于第n行行首
  • vi file +  打开文件,光标置于最后一行行首
  • vi file +/pattern   将表表置于第一个与pattern匹配的字符串处
  • vi -r file   在使用vi时发生系统崩溃,恢复
  • vi file ... file    打开多个文件,依次进行编辑

编辑模式:

  • i,I  插入光标前
  • a,A  插入光标后
  • o,O  插入新的一行
  • r,R   替换
  • r   会替换光标所指的那一个字符
  • R   会一直替换光标所指的文字,直到按下ESC为止

命令模式(一般模式)

一般模式(命令模式):切换行首行尾,第一行最后一行

  • 第一行:gg
  • 最后一行:shift+g
  • 行首:Home键,shift+^
  • 行尾: End键,shift+$
  • 切换到指定行:ngg,n为指定行号
  • (   光标移至句首
  • )   光标移至句尾
  • {   光标移至段落结尾
  • }   光标移至段落开头

一般模式:块选择

  • v  字符选择
  • V  行选择
  • ctrl+v   块选择
  • y   复制已选
  • d   删除已选

一般模式:删除

  • x 删除当前光标所在处的字符,向后删除
  • X 向光标前删除一个字符
  • dd 删除游标所在的那一整行(常用)
  • ndd  删除光标所在的向下n行
    • 3dd 向光标所在的向下3行(包含光标所在的行和下面2行)
  • d1G  删除当前行至第一行
  • dG   删除当前行至最后一行
  • d$    删除光标至行尾
  • d0    删除光标至行首

一般模式:移动到某行

  • ngg  切换到指定行,n为指定行号
  • n[Enter]    n为数字,向下移动n行
  • H   光标移到当前窗口最上方那一行
  • M   光标移到当前窗口中间的那一行
  • L    光标移到当前窗口最下方那一行

一般模式:复制粘贴

  • yy   复制当前行
  • nyy   复制当前行和向下n行(总共n行)
  • p   在下一行粘贴
  • P    在上一行粘贴

一般模式:撤销

  • u:撤销
  • Ctrl+r  重做上一次操作
  • .     重复前一个操作

底线命令模式

底线命令模式:行号

  • :set nu  显示行号
  • :set nonu   取消显示行号

底线命令模式:退出

  • :w  保存文件
  • :wq   保存并退出
  • :q   退出不保存
  • :q!   强制退出
  • :w [file]   另存为file
  • :r [file]   读取file插入
  • :n1,n2 w[file] 将n1至n2行的内容,另存为file
  • :! command  暂时离开vi,执行命令

底线命令模式:查找和替换

  • /word  向下搜索word,按n重复向下
  • ?word  向上搜索word,按N重复向下
  • :%s/A/B/g    把A全部替换为B
  • :n1,n2s/A/B/g[c]   在n1,n2之间搜索A并替换为B,c参数可以一个一个确认

【Linux常见命令】vi,vim命令的更多相关文章

  1. Linux环境下vi/vim编辑器常用命令

    使用vi文本编辑器 配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式.那么如何使用Linux字符操作界 ...

  2. Linux命令vi/vim 使用方法讲解

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

  3. -Git Linux vi/vim 命令 按键 MD

    目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...

  4. Linux vi/vim命令

    转自:http://www.runoob.com/linux/linux-vim.html Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一 ...

  5. 3、Linux基础--cp、mv、rm、alias、vi/vim命令

    笔记 1.考试 1.判断网络是否通畅的命令 ping 2.定义系统提示组成的变量 PS1 3.Linux中目录从什么开始 根(/) 4.系统中目录路径类型有哪些,解释一下 绝对路径:以根目录作为参照物 ...

  6. Linux学习---vi/vim命令

    Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 所以本文直接用Vim编辑器 基本上 vi/vim 共分为三种模式,分别是命令模式( ...

  7. Linux vi/vim命令高效助记图

    图片来源网上,如有侵权,请告知,我会删除掉,谢谢~ 常用编辑按键: 1 vi +[num] file 打开文件,并将光标置于第n行首 2 vi + file 打开文件,并将光标置于最后一行首 3 vi ...

  8. linux命令--vi,vim

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

  9. 新手必学linux文本文件编辑命令 vi vim.....

    作为一名Linux新手小白,今天就和大家简单地了解一下Linux的Vim文本编辑器的使用. Vim文本编辑器     vim编辑器的三大模式——命令模式.编辑模式和末行模式            命令 ...

  10. 【mark】自己整合的vi/vim命令

    又发现一篇很好的 http://blog.chinaunix.net/uid-16759545-id-4891666.html 又发现一个很好的系列:有空闲要精读一下: http://www.cnbl ...

随机推荐

  1. DOM--选取文档元素

    大多数的客户端JavaScript程序在运行时都是在操作一个或者多个文档元素,而为了操作文档中的元素我们就必须要通过某种途径或者方法获得或者选取这些引用文档元素的Element对象.DOM定义了许多种 ...

  2. Vue学习(1)---Vue介绍

    Vue是什么 官方定义:Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 ...

  3. HTTP Session例子

    HTTP协议是“一次性单向”协议.服务端不能主动连接客户端,只能被动等待并答复客户端请求.客户端连接服务端,发出一个HTTP Request,服务端处理请求,并且返回一个HTTP Response给客 ...

  4. Flask 入门(十二)

    Blueprint ,听说过么? 那必须的啊!但它是干嗒的?也不难理解! 如果你的项目是一个公司,Blueprint就是治理你的公司的 没有Blueprint,你的公司除了老板就是员公 有了Bluep ...

  5. 单线程IP扫描解析

    扫描代码: private void Button_Click(object sender, RoutedEventArgs e) { a5.Items.Clear(); string str = t ...

  6. MySQL中group_concat函数 --- 很有用的一个用来查询出所有group by 分组后所有 同组内的 内容

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: grou ...

  7. Git应用详解第八讲:Git标签、别名与Git gc

    前言 前情提要:Git应用详解第七讲:Git refspec与远程分支的重要操作 这一节主要介绍Git标签.别名与Git的垃圾回收机制. 一.Git标签(tag) 1.标签的实质 标签与分支十分相似, ...

  8. AJ学IOS 之微博项目实战(10)微博cell中图片的显示以及各种填充模式简介

    AJ分享,必须精品 :一效果 如果直接设置会有拉伸等等的状况,这里主要介绍图片显示的一些细节 二:代码 代码实现其实很简单,微博当中用了一个photos来存放九宫格这些图片,然后用了一个photo类来 ...

  9. 【Java】抽象类、接口

    什么是抽象类? 特点: - 抽象类几乎普通类一样,除了不能实例化 - 不能实例化不代表没有构造器,依然可以声明构造器,便于子类实例化调用 - 具有抽象方法的类,一定是抽象类 abstract 抽象的 ...

  10. 2019CCPC-江西省赛(重现赛)- 感谢南昌大学

    A题: 题意: 给你两棵树,然后用一条边将这两棵树连接起来,然后计算 每两点之间的距离,然后求和,问这个和的最小值. 思路:根据重心的性质,树上的所有点到重心的距离最短,因此我们找到两棵树的重心,然后 ...