前言

简单整理一下vi和vim,主要介绍一下四种模式。

正文

四种模式分别是:

  1. 正常模式(normal-mode)

  2. 插入模式(insert-mode)

  3. 命令模式(command-mode)

  4. 可视模式(visual-model)

输入vi,可以看到

上面写道vim是vi的升级版。

正常模式

什么是正常模式呢?

利用vim text 这样就是进入了正常模式。

那么进入后,如何进行光标移动呢?

hzkl进行移动。h是左移动j是向下k是向上l是向右移动。

那么我们键盘不是有上下左右吗?这些不能移动吗?一般情况下是可以移动的,但是到了一些字符情况下,可能出现乱码。

那么如何进行复制呢?

使用yy就进行当前行的复制了。

这里就对第一行进行复制。

然后使用p进行贴贴。

那么如果我们要复制3行呢?

可以先输入3,然后输入yy进行复制。

左下角会出现复制3行的信息。

那么我在最后一行进行贴贴,按p:

那么如果我需要复制当前光标到光标结尾的信息。

比如说:

我需要复制4到6呢。可以使用y$,这样的字符。

然后我进行p贴贴,可以看到多了4到后面的信息。

那么下面来看一下剪贴命令吧。

dd 就是将当前进行剪切,d$就是剪切当前位置到行末尾的字符。同样要剪切多行的话,可以使用先输入一个数字,然后使用dd进行剪切。

这里就不演示了,可以自我尝试。

那么下面有一个非常关键的命令,可以使用u来撤销,如果撤销多步,那么可以使用多次u。

那么又有一个问题啊,当我们本来要撤销异步,但是不小心按了两个u,那么这个怎么破呢?

可以使用ctrl+r进行撤回刚才的撤销。

那么如何删除单个字符呢,按x,其实x不是删除是剪切。

那么要替换当前字符呢?可以使用r,然后再次输入字符进行替换。

如果我们要移动到指定的行呢?可以使用数字+G。

可以使用命令模式set nu查看行数:

如何想到达第一行呢?直接输入gg。

如果想到最后一行呢?可以使用G,可以直接到最后一行。

那么如何到一行的开头呢?可以^,如果到达该行的末尾呢?可以使用$。

插入模式

那么正常模式如何插入呢?

一般我输入i 键,然后会进入插入模式。insert 是进入替换模式。

会在当前光标的位置进行插入。

当使用shift+i的时候也就是大写的I的时候,那么光标会回到该行的最头部。

同样可以使用a进入插入模式,但是光标是在当前光标的下一位。

还可以使用A进入插入模式,那么光标就在改行的最后一位。

还可以使用o进入插入模式,那么光标会在下一行的头部,并另外创建一行。

还可以使用O进入插入模式,那么光标会在当前行创建一行。

命令模式

如果使用:,那么可以进入命令模式。

:/w 进行保存。:/q进行离开。:/q!强制离开。:x 如果修改了保存退出,如果没有修改直接退出。:X 为帮文件进行密码加密。

还有前文说的:set nu这样就显示了文件的行信息,如果不需要显示行信息可以使用:set nonu这样子就可以。

这里面还有一个非常强大的功能,可以使用:!这样可以使用我们的shell命令,比如说:!ifconfig.

命令模式如何查找呢?

可以使用:/进行查找,比如说:/123,那么就是查找123。

那么如果我们查找到多个,如果查看下一个呢?可以使用n。那么又想上一个呢?可以使用shift+n。

那么如何进行替换呢?可以使用:/s,比如:/s/123/456,这样就是将123替换成456了。那么这样只会当前行的第一个进行替换,而不是全部行的第一个进行替换。

如果需要全部行的第一个进行替换,可以使用:%s/123/456这样。

那么如果想要全部进行替换呢?可以使用%s/123/456/g,加了一个/g。

如果只想再某几行之间进行替换呢?比如说3到5行进行替换呢? 可以使用:/3,5s/123/456/g,这样。

:数字 (移动到指定的行)

可视模式

在普通模式下按v,就可以进入可视模式,这时候是字符为单位选择的。

进入可视模式后,可以按上下左右进行选择。

如果我们按shift+v,这个时候是行为单位选择模式。

如果我们按ctrl+v的模式,那么就是块为单位选择模式。

块选择比较常见。

比如说希望在选择的块前面进行插入123。

可以按shift+i,然后进行输入123,然后按shift。

同样可以选择指定的块进行删除。

比如说希望删除选择的块,可以按d键进行删除。

linux 树

下一节文件权限。

重新点亮linux 命令树————文本查看vi和vim[五]的更多相关文章

  1. 重新点亮linux 命令树————帮助命令[一]

    前言 重新整理一下linux的命令. 正文 这里首先介绍帮助命令. 帮助命令常用的有三个: man help info 那么就来看下这三个. man 第一个man,man不是男人的意思,而是manua ...

  2. linux命令之文本查看

    vi掌握练习: 英文文档,相同的单词复制粘贴光标移动编辑等操作: cat:显示文件所有内容,小文件查看时使用. 缺点:文件大时不方便查看,文件很大时,会抢占系统资源,会出现命令崩溃. [zyj@loc ...

  3. Linux 常用命令:文本查看篇

    前言 Linux常用命令中,除了cat还有很多其他用于文本查看的命令.本文将简单介绍一下这些文本查看的命令. 全文本显示--cat cat可能是常用的一个文本查看命令了,使用方法也很简单: cat f ...

  4. Linux命令lsb_release:查看当前系统的发行版信息

    Linux里的lsb_release命令用来查看当前系统的发行版信 息(prints certain LSB (Linux Standard Base) and Distribution inform ...

  5. Linux命令 — 设置或查看网络配置命令ifconfig

    ifconfig命令用于设置或查看网络配置,包括IP地址.网络掩码.广播地址等.它是linux系统中,使用频率最高的关于网络方面的命令. 1. 命令介绍 命令格式: ifconfig [interfa ...

  6. Linux命令之lsb_release - 查看当前系统的发行版信息

    用途说明 lsb_release命令用来查看当前系统的发行版信息(prints certain LSB (Linux Standard Base) and Distribution informati ...

  7. Linux命令之必杀绝技Vi文本编辑的使用

    vi  文本编辑器 语法:vi [参数] 文件 进入vi全屏幕编辑画面 按字母i进入[输入模式],按[ESC]转到命令行, 输入 :q可不保存退出vi :wq存盘退出vi :q!不存盘强制退出 :w ...

  8. Linux 笔记 - 第七章 Vi 和 Vim 编辑器

    博客地址:http://www.moonxy.com 一.前言 Vi 与 Vim 都是多模式编辑器,是 Linux 中必不可少的工具.不同的是 Vim 是 Vi 的升级版本,它不仅兼容 Vi 的所有命 ...

  9. Linux命令-文件文本操作grep

    文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...

  10. 【linux 命令】:查看系统开机,关机时间【转载】

    转载原文:http://www.cnblogs.com/kerrycode/p/3759395.html 看Linux开机关机时间的方法(非常全面) 1: who 命令查看 who -b 查看最后一次 ...

随机推荐

  1. 使用 ASP.NET Core MVC 创建 Web API 系列文章目录

    使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使用 ASP.NET Core MVC 创建 Web API(三 ...

  2. git 撤销本地 git提交的commit记录 (git reset --hard ID)

    git 撤销本地 git提交的commit记录 (git reset --hard ID) ID的获取方法 这个id,就是你要退回的那个id,我这里截图的时候已经回退了,正常是你提错了的下面那个git ...

  3. MYSQL 主从不一致的原因分析

    数据库作为存储数据的组件,数据的一致性一定是要保证的前提,今天给出两个场景来分析数据不一致的原因. binlog同步模式导致主从不一致 在MYSQL 中主库向从库同步数据是利用binlog记录修改操作 ...

  4. max30100心率血氧健康传感器调试总结备忘

    前记  在健康监测领域,心率血氧传感器是一个非常重要的前端采集设备.了解,研究并使用它,是一个方案商的基本素质.鉴于此,笔者花了一些时间在不同的硬件平台来使用它.中间遇到了一些问题值得总结和反思一下. ...

  5. Android resource DarkActionBar not found问题解决

    原文: Android resource DarkActionBar not found问题解决 | Stars-One的杂货小窝 几天没改过的代码,突然就无法打开项目了 报错信息如下 在全网都找不到 ...

  6. 掌握Python库的Bokeh,就能让你的交互炫目可视化

    本文分享自华为云社区<Bokeh图形魔法:掌握绘图基础与高级技巧,定制炫目可视化>,作者: 柠檬味拥抱. Bokeh是一个用于创建交互式可视化图形的强大Python库.它不仅易于使用,而且 ...

  7. C++保证线程安全的方式

    1.互斥量 可以确保同一时间只有一个线程访问临界区,防止出现竞态条件. 2.原子操作 std::atomic<int> mutex(1); 对原子变量的操作是线程安全的. 3.读写锁 st ...

  8. c初探:数据类型、数组、内存布局、指针

    c初探:数据类型.数组.内存布局.指针 目录 c初探:数据类型.数组.内存布局.指针 1.基本数据类型 2.格式化 include <stdio.h> 输出控制符 3.数组与内存布局 动态 ...

  9. HMAC算法:数据传输的保护神

    HMAC算法起源: HMAC(Hash-based Message Authentication Code)算法是由Mihir Bellare.Ran Canetti和Hugo Krawczyk于19 ...

  10. 【atcoder beginner 308E - MEX】

    前缀和 二分查找 打表枚举 代码如下 import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt ...