一、vi/vim文本编辑器介绍

1.含义:

vi就是一个文本编辑器

2.为什么学习:

系统配置

编写脚本
vim就是vi的升级版 高级版

[root@jindada ~]#
[root@jindada ~]# yum install -y vim

3.区别:

vim有高亮显示 vi没有

视图模式 批量操作 vi没有vim的好

复制有格式的内容到文件中 使用vim格式会乱 vi不会

4.如何学习好vim

里面都是通过命令来执行,有三种模式:

1)命令模式

打开文件,默认进入的就是命令模式,可以从命令模式到编辑模式或者底行模式

光标移动 复制 粘贴 删除 简单的替换 撤销

2)编辑模式

编辑模式需要从命令模式输入编辑模式的命令才能进入,进入编辑模式之后,左下角会出现 INSERT字样 就可以使用键盘输入内容,输入完成之后 按Esc键回到命令模式

修改 删除 添加

3)底行模式

底行模式需要从命令模式输入:或者/进入底行模式,如果要退出底行模式,按Esc键 回到命令模式

保存文件 退出 显示行号 移动行号 搜索文件内容 导入文件内容 导出文件内容

4)视图模式 扩展

批量添加
批量删除
可视块
可视行

二、命令模式

#光标移动

[root@jindada ~]# cp /etc/services ./

G       #光标移动行尾 当前文件的最后一行

gg       #光标移动到第一行

1G       #光标移动到第一行

10G       #光标移动到第十行

10gg      #光标移动到第十行

ngg       #光标移动到指定的行

nG       #光标移动到指定的行

^       #光标移动到当前行行首

$       #光标移动到当前行的行尾

h       #向左 5h 向左移动5个字符

l       #向右 5l

j        #向下 5j

k       #向上 5k

w       #移动到下一个字符串的首字母 短跳 以空格或者特殊符号为分隔符

W        #移动到下一个字符串的首字母 长跳 以空白字符为分隔符

e        #移动到下一个字符串的尾字母 短跳 以空格或者特殊符号为分隔符

E        #移动到下一个字符串的尾字母 长跳 以空白字符为分隔符

b         #移动到上一个字符串的首字母 短跳 以空格或者特殊符号为分隔符

B         #移动到上一个字符串的首字母 长跳 以空白字符为分隔符

ctrl键 + f    #向下翻页

ctrl键 + b    #向上翻页

ctrl键 + u    #向上翻半页

ctrl键 + d    #向下翻半页

#复制 粘贴

yy    #复制当前行

nyy   #复制多行 包含当前行

p     #在当前行的下一行进行粘贴

P     #在当前行的上一行进行粘贴

np    #粘贴多次

nP     #粘贴多次

#删除==剪切 粘贴

dd      #删除当前行 剪切当前行

ndd      #删除多行 包含当前行

dG        #删除当前行到文件的结尾

delete    #从前往后删除一个字符

x       #从前往后删除一个字符

X       #从后往前删除一个字符

de/dw     #删除当前一组字符串 以特殊符号或者空白字符为分割

D       #删除当前光标所在字符及当前行向后的所有的内容

#撤销 简单替换

u      #撤销

ctrl键 + r #回滚你的撤销

r      #在当前光标上面进行替换 没有进入编辑模式

R      #连续替换

~      #把当前光标所在字符替换为大小写

>>      #将当前行向后进行缩进

<<       #将缩进取消

fi      #将光标快速移动到当前行的第一个i字符 ; 跳转到下一个

*      #高亮显示当前光标所在的字符串 向下跳转

#      #向上跳转

#保存退出

ZZ      #保存退出

三、编辑模式

# 编辑模式需要从命令模式进入

a      #在当前光标后进入编辑模式

i      #在当前光标前进入编辑模式

o      #在当前光标下另起一行,进入编辑模式

A      #在当前光标所在行的行尾进入编辑模式

I      #在当前光标所在行的行首进入编辑模式

O      #在当前光标所在行的上方另起一行,进入编辑模式

s      #删除当前光标所在的字符,并进入编辑模式

S      #删除当前行,并进入编辑模式

cc       #删除当前行,并进入编辑模式

C      #删除当前光标所在的字符及向后的所有内容,并进入编辑模式 针对当前行操作

ce      #删除当前所在的字符,并进入编辑模式

cw      #删除当前所在的字符,并进入编辑模式

四、末行模式(底行模式)

#只能从命令模式进入底行模式

#保存退出

:q      #退出

:q!     #强制退出

:w      #保存

:wq      #保存退出

:wq!     #强制保存退出

:x        #保存退出

#光标移动 移动的行 删除

:n      #n 数字 跳转到指定的行

:1d         #删除第一行

:1,10d      #删除多行

#替换 跟sed一样

:%s#old#new#g     #全局替换

:1s#admin#root#g   #替换指定的行

:1,5s#bin#oldboy#g  #替换多行

# 文件另存为

:w new1.txt      #将文件的内容另存为一个新文件

:1,10w new2.txt     #将文件的第一行到第十行内容另存为一个新文件

#导入其他文件内容进入这个文件

:$r /etc/hosts      #导入/etc/hosts文件中的内容到此文件的结尾

:0r /etc/hosts      #导入/etc/hosts文件中的内容到此文件的行首

#搜索

/root      #搜索root的字符串

n        #向下查找

N        #向上查找

/root\c     #搜索的时候,忽略大小写

:noh       #取消高亮

五、视图模式

1.用于批量操作

2.可视块

#添加内容

光标先移动到你要操作的行的 首行或者尾行 的具体某个字符

ctrl键 + v #进入可视块模式

通过移动光标将要操作的行选中

按shift键 + i键 进入insert模式

输入你要添加的内容

输入完成之后 按Esc就可以

#删除

光标先移动到要删除的行的首行或者尾行 到达具体某个字符

ctrl键 + v #进入可视块模式

通过光标选中你要删除的内容

按d删除

3.可视行

#添加 复制 粘贴

光标移动到要复制的行的首行或者尾行

按shift键 + v #进入可视行模式

选中你要复制的行 按y复制

光标移动到你要粘贴的位置 输入 p粘贴

#删除

光标移动到要删除的行的首行或者尾行

按shift键 + v #进入可视行模式

选中你要删除的行

按d删除

六、vim执行过程

1. vim打开一个文件进行编辑

2. 系统会生成一个临时文件 ,以点开头的临时文件 后缀名为.swp

3. 刚进入文件的模式的命令模式

4. 通过命令模式可以进入编辑模式,进行编辑文件

5. 编辑文件完成之后需要输入Esc键,退出编辑模式进入命令模式

6. 从命令模式进入底行模式,进行保存退出

7. 保存退出之后,系统会将临时文件的内容覆盖到源文件,之后删除临时文件

七、vim故障

E325: ATTENTION
Found a swap file by the name ".passwd.swp"
owned by: root dated: Thu Jul 16 20:14:27 2020
file name: ~root/passwd
modified: YES
user name: root host name: jindada
process ID: 81955
While opening file "passwd"
dated: Thu Jul 16 19:11:50 2020

(1) Another program may be editing the same file. If this is the case,
be careful not to end up with two different instances of the same
file when making changes. Quit, or continue with caution.
(2) An edit session for this file crashed.
If this is the case, use ":recover" or "vim -r passwd"
to recover the changes (see ":help recovery").
If you did this already, delete the swap file ".passwd.swp"
to avoid this message.

Swap file ".passwd.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

#故障

vim非正常退出导致的

按照提示 进行恢复 保存退出之后

在手动的删除这个文件

[root@jindada ~]# rm -f .passwd.swp

七、vim的变量 

:set nu     #显示行号

:set nonu     #取消行号

:set list     #给每一行的结尾加上制表符 $

:set nolist     #取消制表符的显示

:noh     #取消高亮显示

:set ic     #搜索的忽略大小写

vim环境变量的配置文件

~/.vimrc     #个人用户的配置文件 优先级高

/etc/vimrc      #全局环境变量配置文件

set nu      #写在文件中

[root@jindada ~]# cat ~/.vimrc
set ic

八、vim文件对比

[root@jindada ~]# diff passwd passwd.bak      #了解
2d1
< ROOT
13c12
< vfgbvgnftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
---
> ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

[root@jindada ~]# vimdiff passwd passwd.bak #把不同之处进行高亮显示

九、vim多开文件

#水平打开两个文件进行编辑 切换窗口使用 ctrl键 + ww

[root@jindada ~]# vim -o old.txt new.txt

#垂直分割两个文件

[root@jindada ~]# vim -O old.txt new.txt

#快速的到达指定的行

[root@jindada ~]# vim +10 passwd.bak

第十八章 vi/vim文本编辑器介绍的更多相关文章

  1. Linux系统 vi/vim文本编辑器

    Linux系统 vi/vim文本编辑器 (一)Vim/Vi简介 (二)Vim/Vi工作模式 (三)Vim/Vi基本使用 (四)Vim/Vi应用技巧 (一)Vim/Vi简介 Vim/Vi是一个功能强大的 ...

  2. linux vi vim文本编辑器

    vim是vi的加强版,建议使用vim. vim拥有三种模式: 命令模式(常规模式) vim启动后,默认进入命令模式,任何模式都可以通过esc键来回到命令模式.命令模式可以通过键入不同的命令来完成选择, ...

  3. 11 vim文本编辑器

    和sed相比,sed为字处理器(行编辑器),将文本逐行放入到模式空间(也就是内存)中进行处理,并显示在屏幕上.而vim.vi以及nano都是全屏文本编辑器,而vim则是vi的加强版本,相对于vi,vi ...

  4. Vim文本编辑器详细用法

    1 Vi.Vim文本编辑器 1.Vi.Vim Vi是Visual interface的简称. Vim是Vi的增强版,即Vi Improved.在后面的实例中将介绍Vim的使用. 为什么学vi? 1)所 ...

  5. (6.2)vim文本编辑器

    vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大. vim文本编辑器只有命令,没有菜单.

  6. Vim 文本编辑器的基本使用

    Vim文本编辑器是Linux/Unix系统下最常用的工具之一,通过该工具可以很方便的建立.修改.编辑文档或者程序文件,其作用类似与windows系统下的记事本或者notepad++,因此熟练掌握该工具 ...

  7. Linux命令行下的vim文本编辑器

    Linux命令行下的vim文本编辑器 下面这个网站的地址讲解的非成分清楚!!!! http://blog.csdn.net/niushuai666/article/details/7275406 学习 ...

  8. linux100day(day3)--常用文本处理命令和vim文本编辑器

    今天,来介绍几个常用文本处理命令和vim文本编辑器 day3--常用文本处理命令和vim文本编辑器 col,用于过滤控制字符,-b过滤掉所有控制字符,这个命令并不常用,但可以使用man 命令名| co ...

  9. linux/linux学习笔记-vim文本编辑器(mooc)

    vim文本编辑器 vim与vi的区别:( vim=vi +IMproved) VIM是一个Unix以及类unix文本编辑器 特点:功能强大,高度可定制 vim编辑器的三种模式:一般模式.编辑模式和命令 ...

随机推荐

  1. [LeetCode]11. 盛最多水的容器(双指针)

    题目 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找出其中的两 ...

  2. python文件的相关操作

    python 目录 python 1.python文件的介绍 使用文件的目的 Python文件的类型主要有两种:文本文件和二进制文件. 操作文件的流程主要有三步:打开-操作-关闭操作. 2.文件的打开 ...

  3. 217。数据中是否有重复元素(哈希表/set简法)

    给定一个整数数组,判断是否存在重复元素. 如果任意一值在数组中出现至少两次,函数返回 true .如果数组中每个元素都不相同,则返回 false . 示例 1: 输入: [1,2,3,1] 输出: t ...

  4. C# 9.0 新特性预览 - 顶级语句

    C# 9.0 新特性预览 - 顶级语句 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它们 ...

  5. java ThreadLocal理解和使用

    一.ThreadLoal的理解 ThreadLoal 变量,它的基本原理是,同一个 ThreadLocal 所包含的对象(对ThreadLocal< String >而言即为 String ...

  6. 利用Z.Expressions.Eval表达式求值

    Z.Expression.Eval是一个开源的(OpenSource),可扩展的(Extensible),超轻量级(Super lightweight)的公式化语言解析执行工具包. 使用方法:1.从n ...

  7. 关于人人开源renren-fast-vue 中npm install各种报错的解决方案

    首先吐槽一下,因为这个问题我整了好几天,把报错信息复制百度,试遍了各种方法,node.js我是卸载了安装,安装了卸载,甚至renren-fast-vue我也删了再下,然后再删,无限循环.然而没有什么软 ...

  8. Filecoin: 挖矿流程扫盲

    前言 IPFS以及FileCoin的白皮书知识量比较大,需要花费一些时间成本来学习. 下面先针对挖矿相关的知识进行研究,总结一下Filecoin中挖矿的流程以及相关概念. What is Fileco ...

  9. ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?

    为什么需要ARM架构下的OpenJDK8的Docker镜像? 对现有的Java应用,之前一直运行在x86处理器环境下,编译和运行都是JDK8,如今在树莓派的Docker环境运行(或者其他ARM架构电脑 ...

  10. Apache Shiro 1.3.2入门

    简介 Apache Shiro是一个功能强大且灵活的开放源代码安全框架,可以清楚地处理认证,授权,企业会话管理和加密.Apache Shiro的首要目标是易于使用和理解.有时候安全性可能非常复杂和痛苦 ...