5.1  vim主要模式介绍,vim命令模式。

确保系统已经安装了VIM工具

[root@panda ~]# rpm -qf `which vim`

[root@panda ~]# rpm -qf `which vi`

扩展:

问:vi和vim是同一个软件包安装的吗?

答:NO,vim是vi的增加版,最明显的区别就是vim可以语法加亮,它完全兼容vi

首次进入文件    ---- 命令模式

出现 “Insert” ---- 编辑模式

输入:          ---- 命令行模式

A:从编辑模式到命令行模式怎样切换?        

       编辑模式->esc->命令模式->: ->命令行模式

B:字符操作(怎样进入编辑模式?)

进入编辑模式 a i o  A I O

说明:

i 当前字符之前插入 (光标前)

I 行首插入  (行首)

a 当前字符之后插入 (光标后)

A 行尾插入(行尾)

o下一行插入 (另起一行)

O上一行插入(上一行插入)

x 向后删除一个字符        等同于delete

X 向前删除一个字符           

u 撤销一步   每按一次就撤销一次

r 替换

5.1.2 在命令模式下做的操作:

光标定位

hjkl  左下上右

0 和 home键表示切换到行首, $和end键表示切换到行尾

gg 快速定位到文档的首行 ,  G定位到未行

3gg 或者 3G  快速定位到第3行

/string(字符串)   -----找到或定位你要找的单词或内容,如果相符内容比较多,我们可以通过N、n来进行向上向下查找,并且vi会对查找到的内容进行高亮显示,取消用 :noh

/^d  ----^意思表示以什么开头 ,,查找以字母d开头的内容

/t$   -----$意思表示以什么结尾,,查找以字母t结尾的内容

vim + a.txt  打开文件后,光标会自动位于文件的最后一行

如何对文本进行编辑

删除、复制、粘贴、撤销

y 复制(以字符为单位) :表示对单个字符进行复制,如果要复制整行,用yy(以行为单位)  

复制N行: Nyy  ,比如: 2yy ,表示复制2行

dd(删除,以行为单位,删除当前光标所在行)

删除N行: Ndd  ,比如: 2dd ,表示删除2行

p : P粘贴

剪切: dd

x 删除光标所在位置的字符

D 从光标处删除到行尾

撤销操作

ctrl+r  还原撤销过的操作,将做过的撤销操作再还原回去,也就是说撤销前是什么样,再还原成什么样

r 替换,或者说用来修改一个字符

 

总结:vim如何进入其它模式

a A  o O  i I 都是可以进行插入,编辑模式

: 进入命令行模式

v 进入可视模式

ctrl+v 进入可视块模式

V 进入可视行模式

R 擦除、改写,进入替换模式

你进入以上模式后,想要退出 ,按esc

扩展:插入模式中的操作

ctrl+p可以进行补全操作,所需要的内容必须是在当前打开的文件内存在的,它只针对当前文件

5.1..3 V模式(列)

进入v模式 移动光标选择区域、

编程的时候需要进行多行注释:
       1)、ctrl+v 进入列编辑模式

       2)、向下或向上移动光标,把需要注释、编辑的行的开头选中起来

       4)、然后按大写的I

       5)、再插入注释符或者你需要插入的符号,比如"#"

       6)、再按Esc,就会全部注释或添加了

 

删除:再按ctrl+v
进入列编辑模式;向下或向上移动光标 ;选中注释部分,然后按d,
就会删除注释符号。

5.1.4 命令行模式操作

:w 保存 save

:w! 强制保存

:q 没有进行任何修改,退出 quit

:q! 修改了,不保存,强制退出

:wq 保存并退出

:wq! 强制保存并退出

:x 保存退出

例: wq! 强制保存并退出

[root@xuegod63 ~]# ll /etc/shadow

----------. 1 root root 1179 9月  19 12:57 /etc/shadow

[root@xuegod63 ~]# vim /etc/shadow

调用外部文件或命令

假设:我想要写入我的网卡MAC地址,,我要查看一下,当前在vim编辑文档,照着写。这样好麻烦。

在命令行模式下操作:

:!ifconfig 调用系统命令

!+命令

读取其他文件。(把其他文件中的内容追加到当前文档中)

:r /etc/hosts

 

文本替换

格式 : 范围(其中%所有内容)   s分隔符 旧的内容 分隔符 新的内容  (分隔符可以自定义)

默认是每一行的第一个符合要求的词   (/g全部)

:1,3 s/bin/xuegod    替换第1到3行中出现的第一个bin进行替换为xuegod

:1,3 s/bin/xuegod/g  替换第1到3行中查找到所有的bin进行替换为xuegod

:3 s/xue/aaaaa     #只把第3行中内容替换了

:% s/do/xuegod/g      将文本中所有的do替换成xuegod

:% s/do/xuegod/gi      将文本中所有的do替换成xuegod, 并且忽略do的大小写

:% s@a@b@g          将文本中所有的a替换成b

5.1.5 自定义vim使用环境

临时设置

:set nu  设置行号

:set nonu 取消设置行号

:noh   取消高亮显示

永久设置环境

vim /etc/vimrc  设置后会影响到系统所有的用户

~/.vimrc   #在用户的家目录下,创建一个.vimrc。这样只影响到某一个用户,没有自己建一个

例:

[root@xuegod63 ~]# cat  /root/.vimrc 

set nu

[root@xuegod63 ~]# vim  /root/.vimrc

 

vim打开多个文件

方法1:以上下形势,打开两个文档

[root@xuegod63 ~]# vim -o /etc/passwd /etc/hosts

Linux高级运维 第五章 Vim编辑器和恢复ext4下误删除的文件-Xmanager工具的更多相关文章

  1. Linux高级运维 第四章 文件的基本管理和XFS文件系统备份恢复

    4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在windows系统中,查看文件先进入相应的盘符,然后进入文件目录 在windows中,它是多根  c:\    d:\   e ...

  2. Linux高级运维 第三章 Linux基本命令操作

    3.1  Linux终端介绍.Shell提示符.Bash基本语法 3.1.1  登录LINUX终端 两种终端仿真器:1.GNOME桌面的GHOME Terminal : 2.KDE桌面的Konsole ...

  3. Linux系统运维笔记(五),CentOS 6.4安装java程序

    Linux系统运维笔记(五),CentOS 6.4安装java程序 用eclipse编译通的java程序,现需要实施到服务器.实施步骤: 一,导出程序成jar包. 1,在主类编辑界面点右健,选  ru ...

  4. Linux高级运维 第八章 部署docker容器虚拟化平台

    8.1  Docker概述 实验环境: CENTOS7.4-63 64位 Dcoker概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到 ...

  5. Linux高级运维 第二章 Linux基本操作和自己动手组装服务器

    2.1  Linux网络相关概念和修改IP地址的方法 2.1.1  网卡的命名规则       Centos 6的网卡命名方式:它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连 ...

  6. Linux云自动化运维第五课

    Linux云自动化运维第五课 一.进程定义 进程就是cpu未完成的工作 二.ps命令 ps a ###关于当前环境的所有进程 x ###与当前环境无关的所有进程 f ###显示进程从属关系 e ### ...

  7. 线上Linux服务器运维安全策略经验分享

    线上Linux服务器运维安全策略经验分享 https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&a ...

  8. 【微学堂】线上Linux服务器运维安全策略经验分享

      技术转载:https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&sn=6d403ab4 ...

  9. Linux服务器运维安全策略经验分享

    http://jxtm.jzu.cn/?p=3692 大家好,我是南非蚂蚁,今天跟大家分享的主题是:线上Linux服务器运维安全策略经验.安全是IT行业一个老生常谈的话题了,从之前的“棱镜门”事件中折 ...

随机推荐

  1. Android之微信朋友圈UI实现--ExpandableListView+GridView

    PS:我们都知道微信,更是知道朋友圈,很多人在朋友圈里卖起了化妆品,打入广告等为自己做一下推广,里面会附带一写好看的图片,上面有标题,有描述,整体布局每场的美观,那么这是怎么实现的呢,有些人可能会单个 ...

  2. Vue.js-11:第十一章 - Vue 中 ref 的使用

    一.前言 在之前的前端开发中,为了实现我们的需求,通常采用的方案是通过 JS/Jquery 直接操纵页面的 DOM 元素,得益于 Jquery 对于 DOM 元素优异的操作能力,我们可以很轻易的对获取 ...

  3. entity cannot be tracked

    背景:EF Core项目中使用InMemory作为数据库提供程序,编写单元测试. 报错:“The instance of entity type 'Movie' cannot be tracked b ...

  4. 详解mybatis映射配置文件

    一  mybatis 映射文件结构 mybatis映射配置文件存在如下顶级元素,且这些元素按照如下顺序被定义. cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的 ...

  5. 5.App Inventor 2编程实例--指南针

    本视频来自:https://www.17coding.net 的  国庆特辑——指南针 共3个视频. 注意: 项目名字要使用英文. 项目完成后可以选择“打包APK”—“ 打包APK并下载到电脑”,然后 ...

  6. android消息处理源码分析

    一.简介消息处理机制主要涉及到这几个类:1.Looper2.MessageQueue3.Message4.Handler 二.源码分析 Looper.class的关键源码: //保存Looper对象, ...

  7. Oracle AWR报告详细分析--比较详细

    https://blog.csdn.net/demonson/article/details/79474133

  8. LOJ #6041. 「雅礼集训 2017 Day7」事情的相似度

    我可以大喊一声这就是个套路题吗? 首先看到LCP问题,那么套路的想到SAM(SA的做法也有) LCP的长度是它们在parent树上的LCA(众所周知),所以我们考虑同时统计多个点之间的LCA对 树上问 ...

  9. 两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一)

    背景: 上一篇:ASP.Net Core on Linux (CentOS7)共享第三方依赖库部署 已经交待了背景,这篇就省下背景了. 折腾的过程分两步: 第一步是:本机跑虚拟机部署试一下: 第二步是 ...

  10. 将HTML字符转换为DOM节点并动态添加到文档中

    将HTML字符转换为DOM节点并动态添加到文档中 将字符串动态转换为DOM节点,在开发中经常遇到,尤其在模板引擎中更是不可或缺的技术. 字符串转换为DOM节点本身并不难,本篇文章主要涉及两个主题: 1 ...