Linux系统 vi/vim文本编辑器

时间:2021-09-11 21:35:56

Linux系统 vi/vim文本编辑器

(一)Vim/Vi简介

(二)Vim/Vi工作模式

(三)Vim/Vi基本使用

(四)Vim/Vi应用技巧

(一)Vim/Vi简介

  Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。
vim或者vi文本编辑是Linux下最常用的编辑器。vi 和vim 编辑器的区别是vim是vi的改进版本,在vi 编辑器的基础上上扩展了很多实用的功能。 大多数的linux/unix 发行版本中都使用 vim 代替了原来的 vi 文本编辑器。 如果是centos或者redhat系统,当系统安装完毕后,vi/vim 文本编辑器默认情况下就已经被安装了。如果是debian/ubuntu系统下,默认情况下,vim编辑器是不会被安装的。你需要在ubuntu系统下手动安装vim编辑。
  vi/vim文本编辑器是我们在linux系统下工作可以说是必须会使用的一个工具,因为linux系统的设计理念是一切皆文件,也就是说,你在linux里的任何操作都是对文件的操作,所以会经常去操作文件,更改文件,保存文件,退出并保存文件。

(二)Vim/Vi工作模式

三种模式:

命令模式

插入模式

末行模式

三者模式的区别是什么呢?

命令模式:vi/vim 编辑器进入后的默认模式,从命令模式可以切换到插入和末行模式,如果当你进入另外的两种模式后,可以使用“ESC”键退回到命令模式,在命令模式下,可以输入一些文本编辑器特有的命令,比如说你想编辑文件,那么就需要输入“i”,让当前模式变为插入模式或者输入模式,这样你就可以编辑这个文本了。

插入模式:顾名思义就是要对本文做输入的操作,也就是说可以对文件做出更改操作。否则,你在命令模式下,vi/vim 文本编辑器是只读模式,你无法对文本做出更改。

末行模式:是命令模式下输入”:”,当你在输入模式下,对文件做了更改,那么需要先退回到命令命令,再进入末行模式,并输入”wq”后,即可保存并退出 vi/vim 文本编辑器。如果想不保存退出 vi/vim 文本编辑器,那么直接输入”q!”,即可。

(三)Vim/Vi基本使用

(1)进入vi/vim文本编辑器的命令

vi filename:打开或新建文件,并将光标置于第一行行首的位置
vi +n filename: 打开文件,并将光标置于第n行的位置
vi + filename: 打开文件,并将光标置于最后一行的位置
vi +/pattern filename: 打开文件,并将光标置于第一个与pattern匹配的行首
vi -r filename: 在上次征用vim 文本编辑器的时候发生系统奔溃后,恢复filename 文件
vi filename1…filenamen: linux vi/vim 文本编辑器可以通过打开多个文件,依次进行编辑

  

(2) Linux vi/vim 文本编辑器插入文本类命令

命令           作用
a		在光标后附加文本
A		在本行行末附加文本
i		在光标前插入文本
I		在本行开始插入文本
o		在光标下插入新行
O		在光标上插入新行

  

(3) linux vi/vim 文本编辑器下移动光标的命令

命令 		作用
h		左移一个字符
j		下移一行
k		上移一行
l		下移一个字符
$		移到行尾
0		移到行首
H		移至屏幕上端
M		移至屏幕*
L		移至屏幕下端

  

补充:

:set nu         设置行号
:set nonu     取消行号
gg        到第一行
G            到最后一行
nG          到第n行
:n            到第n行

  

(4)Linux vi/vim 文本编辑下删除命令

命令		作用
x		删除光标所在处字符
nx		删除光标所在处后n个字符
dd		删除光标所在行
ndd		删除光标往下n行
dG 		删除光标所在行末尾的内容
D		删除从光标所在处到行尾
:n1,n2d	删除指定范围的行

  

(5 Linux vi/vim 文本编辑器搜索及替换命令

命令		  作用
/string		  向前搜索指定字符串 开启搜索时忽略大小写 :set ic  关闭搜索时忽略大小写 :set noic
n		  搜索指定字符串的下一个出现位置
:%s/old/new/g	  全文替换指定字符串
:n1,n2s/old/new/g 在一定范围内替换指定字符串,后面g意思是在替换时是否确认,c为没有提示
r		  取代光标所在处字符
R		  从光标所在处开始替换字符,按Esc结束
u		  取消上一步操作

  

(6) Linux vi/vim 文本编辑器拷贝和粘贴命令

命令		作用
yy、Y		复制当前行
nyy、nY		复制当前行以下n行
dd		剪切当前行
ndd		剪切当前行以下n行
p、P		粘贴在当前光标所在行下或行上

  

(7) Linux vi/vim 编辑器保存和退出命令

命令		作用
:w		保存修改
:w new_filename	另存为指定文件
:wq		保存修改并退出
ZZ		快捷键,保存修改并退出
:q!		不保存修改退出
:wq!		保存修改并退出(文件所有者可忽略文件的只读属性)

注意:对文件可以强行保存退出的只可能是文件所有者或者是root用户

  

(四)Vim/Vi应用技巧

(1)
在Vi中执行命令:![命令]

我这里执行:!date

Linux系统 vi/vim文本编辑器

我们可以看到在末行模式里,可以执行系统命令,执行完以后也可以继续回到vi/vim编辑器界面

命令格式:

:![命令]

注意:一定要在末行模式才能使用

Linux系统 vi/vim文本编辑器

(2)

导入文件:r 文件名

这个功能就是可以导入别的文本的内容到现在编辑的文本上。

我们现在将/newdir1/newdir1的内容导入到/newdir/newdir中

注意:现在/newdir/newdir为空文本

Linux系统 vi/vim文本编辑器

Linux系统 vi/vim文本编辑器

Linux系统 vi/vim文本编辑器

补充:

刚才我们知道可以在末行模式执行系统命令,然后又回到vi/vim编辑器,如果我们想把执行命令的结果导入到文本中,应该怎么办,既然知道可以导入文本,那也可以导入命令执行的结果。

在Vi中导入执行命令的结果:r !date

Linux系统 vi/vim文本编辑器

Linux系统 vi/vim文本编辑器

(3)

定义快捷键:map 快捷键 触发命令

在linux中使用 ^符号

ctrl+v,后ctrl+[符号]

范例:
:map ^P I#<ESC>

这里我以下面举例, 0是光标移到行首,x是删除光标所在位置的字符
:map ^B 0x

Linux系统 vi/vim文本编辑器

我按一下ctrl+b就删除了第二行的#符

Linux系统 vi/vim文本编辑器

取消快捷键:

:unmap ^p 取消快捷键

(4)

连续行注释
:n1,n2s/^/#/g
:n1,n2s/^#//g
:n1,n2s/^/\/\//g

我们以:n1,n2s/^/#/g来解释,n1到n2行的行首都加上#。

下面是:4,8s/^/#/g

在4到8行行首加上#

Linux系统 vi/vim文本编辑器

Linux系统 vi/vim文本编辑器

(5)

替换快捷键

意思很明显,就是一个字符或字符串替换另一个字符或者字符串。

格式:

ab [被替换的内容]  [替换的内容]

例子:

定义ab替换快捷键:ab mymail lili@www.com
取消ab替换的定义:unab mymail

Linux系统 vi/vim文本编辑器

Linux系统 vi/vim文本编辑器

输入mymail后,按空格或者回车即可替换

Linux系统 vi/vim文本编辑器

Linux系统 vi/vim文本编辑器的更多相关文章

  1. Linux系统Vi&sol;Vim编辑器的简单介绍、安装&sol;卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  2. 第十八章 vi&sol;vim文本编辑器介绍

    一.vi/vim文本编辑器介绍 1.含义: vi就是一个文本编辑器 2.为什么学习: 系统配置 编写脚本 vim就是vi的升级版 高级版 [root@jindada ~]# [root@jindada ...

  3. linux&sol;linux学习笔记-vim文本编辑器&lpar;mooc&rpar;

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

  4. linux vi vim文本编辑器

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

  5. Linux下的Vim文本编辑器&lpar;入门&rpar;

    引言 vim filename:打开名为filename的文件,如果不存在就会创建一个filename文件 Vim的三种使用模式 1. 命令模式 启动Vim时,就进入了命令模式 在该模式下: i:切换 ...

  6. Vi (Unix及Linux系统下标准的编辑器)VIM (Unix及类Unix系统文本编辑器)

    Vi是Unix及Linux系统下标准的编辑器.学会它后,您将在Linux的世界里畅行无阻.基本上vi可以分为三种状态,分别是命令模式.插入模式,和底行模式. vi编辑器是所有Unix及Linux系统下 ...

  7. 【转】Linux上vi&lpar;vim&rpar;编辑器使用教程

    Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------ ...

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

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

  9. 【Linux】中默认文本编辑器 vim 的入门与进阶

    Linux 基本操作 vim 篇 vim 简介 vim 是 Linux 上最基本的文本编辑工具,其地位像是 Windows 自带的记事本工具,还要少数的 Linux 系统自带 leafpad 编辑器, ...

随机推荐

  1. tomcat 8&period;5&period;9&period;0 解决catalina&period;out过大的问题

    先吐嘈一下tomcat这个项目,日志切割这么常见的功能,tomcat这种知名开源项目默认居然不开启,生产环境跑不了几天,磁盘就满了,而且很多网上流传的方法,比如修改conf/logging.prope ...

  2. stm32通用定时器步骤

  3. Invalidate,Update与Refresh的区别

    在做Windows Forms开发的时候,免不了需要手动刷新窗口,以重绘所需更改的控件,或其它什么的.当出现这类需求时,你有三个选择,使用Invalidate,Update或者Refresh方法. I ...

  4. 日志插件 log4net 的使用

    文本格式说明 可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息). 文本参数说明 %m(message):输出的日志 ...

  5. LeetCode - 31&period; Next Permutation

    31. Next Permutation Problem's Link ---------------------------------------------------------------- ...

  6. iOS网络-03-NSURLSession与NSURLSessionTask

    简介 NSURLSession也能完成网络请求 NSURLConnection在iOS9中不推荐使用,NSURLSession是iOS9中推荐使用的网络请求方式 NSURLSession需要与NSUR ...

  7. iOS Mac系统下Ruby环境安装

    由EasyIOS引出的一系列问题:转载的上一篇CocoaPods安装和使用教程中说明了,为什么要使用cocoapods ,但是要安装cocoapods需要Ruby环境,安装Ruby环境首先需要安装Xc ...

  8. java之jvm学习笔记二&lpar;类装载器的体系结构&rpar;

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  9. Python入门 模块

    module 模块 atestmodule.py #!/usr/bin/env python3 # -*- coding: utf-8 -*- 'a test module' def addFunc( ...

  10. Java常用类(二)String类详解

    前言 在我们开发中经常会用到很多的常用的工具类,这里做一个总结.他们有很多的方法都是我们经常要用到的.所以我们一定要把它好好的掌握起来! 一.String简介 1.1.String(字符串常量)概述 ...