一、Vim、Vi文本编辑器

1️⃣:vi: Visual Interface,文本编辑器

2️⃣:文本:ASCII, Unicode

3️⃣:VIM - Vi IMproved

二、Vim、vi的特点

1️⃣:vi/vim是一种纯文本编辑器,它不像word可以排版,可以调整字体大小,可以改变字体等等,vi/vim只是一个文本编辑工具,它只能对文本的内容进行操作,比如新增内容、修改内容、删除内容等等

2️⃣:vi是一个全屏幕的文本编辑器,在编辑文本时它将占据整个屏幕

三、Vim、Vi的三种编辑模式

1、基本模式

1️⃣:命令模式

2️⃣:编辑模式

3️⃣:末行模式(内置的命令行接口)

2、打开文件

vim [OPTION]... filename...
+#: 打开文件后,直接让光标处于第#行的行首
+/pattern:打开文件后,直接让光标处于第一个被pattern匹配到的行的行首

3、模式转换

命令模式 --> 编辑模式
i: insert, 在光标所在处输入;
a: append, 在光标所在处后面输入;
o: 在当前光标所在行的下方打开一个新行;
I:在当前光标所在行的行首输入;
A:在当前光标所在行的行尾输入;
O:在当前光标所在行的上方打开一个新行; 编辑模式 --> 命令模式
:按ESC键(键盘最左上角) 命令模式 --> 末行模式
:(Shift+:) 末行模式 --> 命令模式
:按ESC键(键盘最左上角的)

四、文件关闭

关闭文件:在末行模式下
:q 退出
:q! 强制退出,丢弃做出的修改;
:wq 保存退出
:x 保存退出
:w /PATH/TO/SOMEWHERE
:r /PATH/TO/SOMEWHERE

五、光标移动

光标跳转:在命令模式下
字符间跳转:h, j, k, l
h: 左
j:下
k:上
l:右 单词间跳转:
w:下一个单词的词首
e:当前或下一单词的词尾
b:当前或前一个单词的词首
#w:以当前光标为起点跳至第#个单词的词首
#e:以当前光标为起点跳至第#个单词的词尾
#b:以当前光标为起点跳至第#个单词的词首 行内跳转
^: 跳转至行首的第一个非空白字符
0: 跳转至行首
$: 跳转至行尾 行间跳转
gg:直接跳转到第一行的行首
G:直接跳转到最后一行的行尾
#gg:直接跳转到第#行(向行首跳转)
#G:直接跳转到第#行(向行尾跳转) 翻屏
ctrl+f:向下翻一屏
ctrl+b:向上翻一屏  

六、字符编辑  

1、命令模式下字符编辑

x: 删除光标处的字符
#x: 删除光标处起始的#个字符 xp: 交换光标所在处的字符及其后面字符的位置

2、删除命令(d)

d: 删除命令,可结合光标跳转字符,实现范围删除;
dd: 删除光标所在的行
#dd:删除包括当前光标所在行在内的#行(多行删除) d$: 删除到某一行的结尾
d^:删除到某一行的第一个字符位置(不包括空格或TAB字符)
d0:删除到某一行的开始位置 dw:删除当前光标所在单词的词首到该单词的结尾位置(删除某个单词,光标必须位于单词的词首)
db:删除当前光标所在单词的词尾该单词的词首位置 (删除某个单词,光标必须位于单词的词尾)
//在linux中单词是指一串字符,以空格隔开;另外有特殊字符也算是一个单词,例如:= dl:删除当前字符(与x命令功能相同) 末行模式下d命令的使用
语法:Startadd,Endadd(这里的StartADD与EndADD是指一个范围)
示例
1,5d:表示删除第1到第5行

3、复制、粘贴命令(y、p、P)

复制命令(y, yank)
yy:复制行
yw 复制一个单词
y$ 复制至行尾
y^ 复制至行首 #yy: 复制多行 粘贴命令(p、P\put, paste)
p:小写p
若删除或复制的为整行内容,则粘贴至光标所在行的下方
若删除或复制的为非整行,则粘贴至光标所在字符的后面
P:大写p
若删除或复制的为整行内容,则粘贴至光标所在行的上方
若删除或复制的为非整行,则粘贴至光标所在字符的前面

4、替换命令

替换命令:r
r#:将当前光标的字符替换为#,这里的#可以是任何字符
R:替换模式,替换多个字符

5、范围表示方法

.       光标所在当前行
$ 最后一行
+# 光标所在行往后#行
$-# 倒数第#行
% 全文

6、撤销编辑(u)

u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作
#u:直接撤销此前的#次编辑操作
ctrl+r:还原最近一次的撤销操作

7、可视化模式

可视化模式下可以对选取的内容进行编辑
v:按字符选取内容
V:按矩形块(行)选取内容

8、拓展

文本之间复制:在末行模式下
:1,5write >> /root/test.txt //将第1行至第5行复制到/root下的test.txt文件中
或者
先在file1文件的末行模式下复制:
:1,5yy (回车)
然后退出去到另个文件file2中,直接在命令模式下按:p && P

9、文本查找

/pattern:从上往下查找匹配的内容
?pattern:从下往上查找匹配的内容
n:从上往下查找匹配到的内容的下一条
N:从下往上查找匹配到的内容的下一条

10、查找并替换

s: 在末行模式下完成查找替换操作

语法:s/要查找的内容/替换为的内容/修饰符
修饰符
i: 忽略大小写
g: 全局替换;默认情况下,每一行只替换第一次出现 示例
1,5 s/abc/def/g:表示把第一行到第五行的所有abc替换为def

11、末行模式下显示或取消显示行号

set nu(number):显示行号
set nonu(number):取消显示行号

12、取消文本搜索关键字高亮显示

在末行模式下
:set nohlsearch (set nohlsearch :取消高亮显示、取消高亮搜索)
//这样取消关键字高亮显示之后,退出文本编辑,再次进入的话,之前最后一次搜索的关键字任然会高亮显示
//如果在不退出文本编辑的前提下,取消第一次关键字高亮显示,之后继续搜索其他关键字则不会高亮显示;退出文本之后,再次进入就会高亮显示 :nohlsearch && :noh(nohl)推荐使用这个命令
//这样输入取消高亮之后,退出文本之后,再次进入,之前搜索的关键词就不会高亮显示;
//但是在没有退出文本的前提下,取消第一次搜索关键词高亮显示,那么继续搜索其他的关键词还是会高亮显示

文本编辑_Vim&Vi的更多相关文章

  1. Ubuntu文本编辑时vi和nano命令的区别(建议使用nano)

    vi是Unix世界里极为普遍的全荧幕文书编辑器,几乎可以说任何一台Unix机器都会提供这套软体就像windows的记事本一样. 键入 vi /etc/hosts 进入vi界面,把光标移动到文件未尾.按 ...

  2. linux终端文本编辑神器vi的使用

    vi —— 终端中的编辑器 目标 vi 简介 打开和新建文件 三种工作模式 常用命令 分屏命令 常用命令速查图 01. vi 简介 1.1 学习 vi 的目的 在工作中,要对 服务器 上的文件进行 简 ...

  3. Ubuntu文本编辑(vi和nano)命令

    vi是Unix世界里极为普遍的全萤幕文书编辑器,几乎可以说任何一台Unix机器都会提供这套软体就像windows的记事本一样. 键入 vi /etc/hosts 进入vi界面,把光标移动到文件未尾.按 ...

  4. Linux学习笔记 -- 文本编辑器之 vi与vim

    vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),插入模式(Insert mode)和底线命令模式(Last line mode). 这三种模式的 ...

  5. linux常用命令之--文本编辑和文本内容查看命令

    linux的文本编辑和文本内容查看命令 1.文本编辑命令 vi:用于编辑文本文件,基本上可以分为三种模式,分别是一般模式.编辑模式.命令行模式. 一般模式:当编辑一个文件时,刚进入文件就是一般模式. ...

  6. vim 命令大全 / vi 命令大全

    vim 命令大全 光标控制命令: 命令 光标移动 h 向左移一个字符 j 向下移一行 k 向上移一行 l 向右移一个字符 G 移到文件的最后一行 w 移到下一个字的开头 W 移到下一个字的开头,忽略标 ...

  7. Linux学习之Vim/Vi使用(十三)

    Linux学习之Vim/Vi使用 Vim/Vi简介 Vim/Vi工作模式 Vim/Vi基本使用 Vim/Vi应用技巧 Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UN ...

  8. Linux的文本编辑和文本内容查看命令

    Linux的文本编辑和文本内容查看命令 1.文本编辑命令 vi:用于编辑文本文件,基本上可以分为三种模式,分别是一般模式.编辑模式.命令行模式.    一般模式:当编辑一个文件时,刚进入文件就是一般模 ...

  9. git 常用命令粗略总结

    本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!原文地址:http://www.cnblogs.com/cxun/p/5630190.html git的功能很强大,但是其实很简单,用来用去 ...

随机推荐

  1. Dynamics CRM实体系列之字段

    本节开始讲实体中的基础数据存储对象,也就是字段. Dynamics CRM目前总共有13种字段类型,分别为单行文本.选项集.多选选项集.两个选项.图像.整数.浮点数.十进制数.货币.多行文本.日期和时 ...

  2. OO第二章总结

    OO第二章总结 电梯作业终于结束了!!! 这三周作业用多线程模拟搭建电梯的运行,我从开始对多线程的一无所知到结束时的能够完成一些多线程任务的水平,进步还是蛮大的,尽管过程有点艰难. 一.复杂度与UML ...

  3. Linux就该这么学:重定向,管道符,通配符,转义符,环境变量

    第三章:重定向,管道符,环境变量 3.1 输入输出重定向 定义:输入重定向是指将文件导入命令中,输出重定向是指将原本显示到屏幕的信息输出问文件.相较于输入重定向,输出重定向使用的更多,下面重点介绍输出 ...

  4. .NET6 平台系列3 .NET CLR 详解

    系列目录     [已更新最新开发文章,点击查看详细] CLR 简介 运行时(Runtime Environment,简称Runtime ),是指那些支持在特定的平台上,用于运行特定编程语言编写的软件 ...

  5. .NET6 平台系列4 .NET开源之路

    系列目录     [已更新最新开发文章,点击查看详细] .NET平台是微软于2000年推出的Windows操作系统的应用软件开发框架,发展至今形成巨大的技术栈,涉及多语言(支持C#.F#.VB.NET ...

  6. KMP(梅开三度之数据结构详解版

    前言 KMP算法是一种字符串匹配算法,其重中之重是next数组的构建,其代码的简洁与神奇使其广受关注. 但不难发现,acm中学到的KMP和数据结构里面学到的KMP并不一样o(︶︿︶)o 之前我写过ac ...

  7. 一文读懂eBPF/XDP

    XDP概述 XDP是Linux网络路径上内核集成的数据包处理器,具有安全.可编程.高性能的特点.当网卡驱动程序收到数据包时,该处理器执行BPF程序.XDP可以在数据包进入协议栈之前就进行处理,因此具有 ...

  8. 关于sysmon.exe高cpu占用

    sysmon.exe是干嘛的? 这里面有介绍:https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon 是windows官方提供的监 ...

  9. Selenium3自动化测试【16】元素定位之Tag

    @ 目录 1. 通过tag name定位Bing案例 2. 通过tag name定位一组元素案例 3.[测试全系列视频课程]请点击我哦..... tag name方法是通过对HTML页面中tag na ...

  10. 《NO STRATEGY》《重塑战略》

    书名:<NO STRATEGY> <重塑战略> 作者: [美]吉姆·柯林斯/[韩]W·钱·金/[美]迈克尔·波特(注意这个是内容的整理者不是内容作者) HBR:(Harvard ...