1

Vim编辑器_51CTO博客_vim编辑器怎么打开

 1 month ago
source link: https://blog.51cto.com/u_15617580/10245355
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

这次浅聊一下 Vim编辑器,它是由 vi 发展演变过来的文本编辑器,是 Linux众多发行版的默认文本编辑器。内容如下。

Vim编辑器_运维

一、Vim编辑器

Vim文本编辑器,是由 vi 发展演变过来的文本编辑器,使用简单、功能强大、是 Linux众多发行版的默认文本编辑器。

1、相关概述

1.1 vi 概述

vi ( visual editor )编辑器通常被简称为vi,它是Linux和Unix系统上最基本的文本编辑器,类似于Windows系统下的notepad (记事本) 编辑器。

1.2 vim 编辑器

Vim (Vi improved)是 vi 编辑器的加强版,比 vi 更容易使用。vi 的命令几乎全部都可以在vim上使用。

1.3 vim编辑器的安装

1)已安装

Centos通常都已经默认安装好了 vi 或 Vim 文本编辑器。当命令行中输入“vim”显示如下所示的画面时,视为 Vim 安装成功。

Vim编辑器_编辑器_02

2)未安装

如果在命令行模式下输入“vim”,输出结果为“Command not found”,则表示此系统中未安装 Vim。

Vim编辑器_命令模式_03

错误信息:command not found… 含义:找不到这条命令,通常表示没有安装这条命令或者可能敲错了命令。如果没有安装,可通过以下命令进行安装(需要在 root超级管理员下执行该命令)。

yum install vim
Vim编辑器_命令模式_04
1.4 Vim编辑器四种模式

1)命令模式

使用Vim编辑器时,默认处于命令模式。在该模式下可以移动光标位置,可以通过快捷键对文件内容进行复制、粘贴、删除等操作。

2)编辑模式(输入/插入模式)

在命令模式下输入小写字母 a 或小写字母 i 即可进入编辑模式,在该模式下可以对文件的内容进行编辑。

3)末行模式(尾行模式)

在命令模式下输入冒号:即可进入末行模式,可以在末行输入命令来对文件进行查找、替换、保存、退出等操作。

4)可视化模式 (了解)

可以做一些列选操作(通过方向键选择某些列的内容)。

1.5 Vim四种模式的关系

四种模式的关系如图:

Vim编辑器_linux_05

2、Vim的使用

2.1 Vim打开文件
vim 文件名称
如果文件已存在,则直接打开
如果文件不存在,则vim编辑器会自动在内存中创建一个新文件
Vim编辑器_vim_06

案例:使用 vim命令打开readme.txt文件

vim readme.txt
2.2 Vim保存文件

在任何模式下,连续按两次Esc键,即可返回到命令模式。然后按冒号∶,进入到末行模式,输入wq,代表保存并退出。

Vim编辑器_命令模式_07
2.3 Vim强制退出(不保存)

在任何模式下,连续按两次Esc键,即可返回到命令模式。然后按冒号∶,进入到末行模式,输入q!,代表强制退出但不保存文件。

Vim编辑器_linux_08
2.4 命令模式下的相关操作(重点)

如何进入命令模式?

答:在Linux操作系统中,当我们使用 vim命令直接打开某个文件时,默认进入的就是命令模式。如果我们处于其他模式(编辑模式、可视化模式以及末行模式)可以连续按两次Esc键也可以返回命令模式。

命令模式下我们能做什么?

移动光标、复制粘贴、剪切粘贴删除、撤销与恢复。

1)移动光标到首行或末行(重点)

移动光标到首行 => gg
移动光标到末行 => G

2)翻屏

向上翻屏,按键: ctrl + b (before) 或 PgUp
向下翻屏,按键: ctrl + f (after) 或 PgDn
向上翻半屏,按键: ctrl + u (up)
向下翻半屏,按键: ctrl + d (down)

3)快速定位光标到指定行(重点)

行号 + G,如150G代表快速移动光标到第150行。(先键盘敲下要定位的行号数字,再按 shift+G,如果超过文件最大行,则输再大的数只都会定位到最大行即末行)

注:常用于错误定位。

4)复制/粘贴(重点)

(1)复制当前行(光标所在那一行) 按键:yy
粘贴︰在想要粘贴的地方按下 p键【将粘贴在光标所在行的下一行】 ,如果想粘贴在光标所在行之前,则使用P(shift+p)键
(2)从当前行开始复制指定的行数,如复制5行,5yy
粘贴︰在想要粘贴的地方按下p键【将粘贴在光标所在行的下一行】 ,如果想粘贴在光标所在行之前,则使用P键。

5)剪切/删除

在VIM编辑器中,剪切与删除都是dd。如果剪切了文件,但是没有使用 p进行粘贴,就是删除操作。如果剪切了文件,然后使用p进行粘贴,这就是剪切操作。
a、剪切/删除当前光标所在行
按键:dd(删除之后下一行上移)
粘贴:p

注:dd 严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。

b、剪切/删除多行 (从当前光标所在行开始计算)
按键:数字dd
粘贴:p

特殊用法:
c、剪切/删除光标所在的当前行(光标所在位置)之后的内容,但是删除之后下一行不上移
按键:D (删除之后当前行会变成空白行)

6)撤销/恢复(重点)
撤销:u(undo)
恢复:ctrl + r 恢复(取消)之前的撤销操作【重做,redo】

7)末行模式下相关操作(重点)

如何进入末行模式?
由命令模式进入,按下:或者 / (表示查找)即可进入末行模式
末行模式下能做什么?
文件保存、退出、查找与替换、显示行号、paste模式等等

(1)保存/退出

:w => 代表对当前文件进行保存操作,但是其保存完成后,并没有退出这个文件。
:q => 代表退出当前正在编辑的文件,但是一定要注意,文件必须先保存,然后才能退出。
:wq => 代表文件先保存后退出 (保存并退出)
:q! => 代表强制退出但是文件未保存 (不建议使用)

默认情况下,退出的时候需要对已经进行修改的文件进行保存 :w ,然后才能退出。

注意:如果一个文件在编辑时没有名字,则可以使用 :wq 文件名称,代表把当前正在编辑的文件保存到指定的名称中,然后退出。

备注:以后我们在更改系统配置文件时,很多时候不想保存之前的更改,甚至我们只想查看,没想更改。这时候一 律使用 q! 退出,可以保证我们的文件不被误更改。

(2)查找/搜索

输入: /关键词 ,再按下回车 【按下 /也是进入末行模式的方式之一】

Vim编辑器_linux_09

如果在一个文件中,存在多个满足条件的结果。在搜索结果中切换上/下一个结果: N/n (大写N代表上一个结果,小写n代表next )
如果需要取消高亮,则需要在末行模式中输入:noh 【no highlight】

(3)文件内容的替换(重点)

第一步:首先要进入末行模式(在命令模式下输入冒号: )
第二步:根据需求替换内容

①只替换光标所在这一行的第一个满足条件的结果 (只能替换1次)

:s/要替换的关键词/替换后的关键词 + 回车

案例:把 hello centos中的 centos替换为centos 7.6

切换光标到 hello centos 这一行
:s/centos/centos 7.6
Vim编辑器_vim_10
Vim编辑器_运维_11

②替换光标所在这一行中的所有满足条件的结果 (替换多次,只能替换一行)

:s/要替换的关键词/替换后的关键词/g		(g=global全局替换)

案例:把 hello centos中的所有 centos都替换为 centos7.6

切换光标到 hello centos这一行
:s/centos/centos7.6/g
Vim编辑器_运维_12

③针对整个文档中的所有行进行替换,只替换每一行中满足条件的第一个结果

:%s/要替换的关键词/替换后的关键词

案例:把每一行中的第一 个 hello关键词都替换为 hi

:%s/hello/hi

④针对整个文档中的所有关键词进行替换 (只要满足条件就进行替换操作 )

:%s/要替换的关键词/替换后的关键词/g

案例:替换整个文档中的 hello关键词为 hi

:%s/hello/hi/g

(4)显示行号
基本语法:

显示行号
:set nu
取消行号
:set nonu

nu = number,行号

Vim编辑器_vim_13
Vim编辑器_命令模式_14

(5)set paste模式(了解)

为什么要使用paste模式?

问题:在终端Vim中粘贴代码时,发现插入的代码会有多余的缩进,而且会逐行累加。原因是终端把粘贴的文本存入键盘缓存(Keyboard Buffer)中,Vim则把这些内容作为用户的键盘输入来处理。导致在遇到换行符的时候, 如果Vim开启了自动缩进,就会默认的把上一行缩进插入到下一行的开头,最终使代码变乱。

在粘贴数据之前,输入下面命令开启paste模式

:set paste

粘贴完毕后,输入下面命令关闭paste模式

:set nopaste

(6)总结

①如何进入末行模式,必须从命令模式中使用冒号:进行切换
②末行模式下能做什么?保存、退出、查找、替换、显示行号以及 paste模式
③保存 => :w
④退出 => :q ,先保存后退出。:wq	:wq 文件名称	:q!
⑤查找功能 => 命令模式输入/斜杠+关键词(高亮显示) => :noh
⑥替换功能
:s/要替换的关键词/替换后的关键词
:s/要替换的关键词/替拟后的关键洵/g
:%s/要替换的关键词/替换后的关键词
:%s/要替换的关键词/替换后的关键词/g
⑦显示行号 => :set nu	取消行号 => :set nonu
⑧paste模式 => 将来在粘贴代码的时候为了保存原格式 => 粘贴之前 => :set paste
2.5 编辑模式

1)作用
编辑模式的作用比较简单,主要是实现对文件的内容进行编辑。
2)如何进入
首先需要进入到命令模式,然后使用小写字母 a 或小写字母 i ,进入编辑模式。
命令模式 + i : insert 缩写 ,代表在光标之前插入内容。
命令模式 + a : append 缩写,代表在光标之后插入内容。
3)退出编辑模式
在编辑模式中,直接按Esc ,即可从编辑模式退出到命令模式。

2.6 可视化模式

1)如何进入可视化模式

在命令模式下,直接按 ctrl + v(可视块)或V(可视行)或v(可视),然后按下↑ ↓ ← →方向键来选中需要复制的区块,按下y 键进行复制(不要按下yy),最后按下p 键粘贴。 退出可视模式按下Esc。

2)可视化模式复制操作

第一步:在命令模式下,直接按小v ,进入可视化模式
第二步:使用方向键↑↓← →选择要复制的内容,然后按 y 键
第三步:移动光标,停在需要粘贴的位置,按 p 键进行粘贴操作

3)为配置文件添加多行注释 (重点!)

第一步: 按 Esc 退出到命令模式,按gg切换到第1行

第二步: 然后按 Ctrl+v 进入到可视化区块模式 (列模式)

Vim编辑器_命令模式_15

第三步: 在行首使用上下键选择需要注释的多行

Vim编辑器_运维_16

第四步: 按下键盘 (大写) “I” 键,进入插入模式( Shift+i)

Vim编辑器_vim_17

第五步: 输入 # 号注释符

Vim编辑器_命令模式_18

第六步: 输入完成后,连续按两次 Esc 即可完成添加多行注释的过程

Vim编辑器_运维_19

4)为配置文件去除 #多行注释 (重点!)

第一步: 按 Esc 退出到命令模式,按 gg 切换到第1行

第二步: 然后按 Ctrl+v 进入可视化区块模式 (列模式)

第三步: 使用键盘上的方向键的上下选中需要移除的 #号注释

第四步: 直接按 Delete键即可完成删除注释的操作

Vim编辑器_linux_20
2.7 Vim编辑器实用功能

1)代码着色
之前说过vim 是vi 的升级版本,其中比较典型的区别就是vim 更加适合coding,因为vim比vi 多一个代码着色的功能,这个功能主要是为程序员提供编程语言的语法显示效果,如下:

第一步:定义后缀名为网页文件的代码文件

vim index.php

第二步:编写对应的PHP代码

<?php
echo 'hello world';
?>
Vim编辑器_linux_21

syntax:语法,临时调整

在VIM编辑器中,我们可以通过 :syntax on 或 :syntax off 开启或关闭代码着色功能。

2)异常退出解决方案

什么是异常退出:在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的效果,这个情况称之为异常退出。

Vim编辑器_命令模式_22

温馨提示: 每个文件的异常文件都会有所不同,其命名规则一般为 .文件名称.swp

解决办法: 将交换文件(在编程过程中产生的临时文件)删除掉即可【在上述提示界面按下D键或者使用 rm指令删除交换文件】

rm .1.txt.swp

3)退出Vim编辑器

回顾:在vim中,退出正在编辑的文件可以使用 :q 或者 :wq

除了上面的这个语法之外,vim 还支持另外一个保存退出(针对内容)方法 :x

① :x 在文件没有修改的情况下,表示直接退出(等价于:q),在文件修改的情况下表示保存并退出(:wq)

② 如果文件没有被修改,但是使用 wq 进行退出的话,则文件的修改时间会被更新;但是如果文件没有被修改,使用 x进行退出的话,则文件修改时间不会被更新的;主要是会混淆用户对文件的修改时间的认定。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK