IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 05-Linux编辑器Vim的使用 -> 正文阅读

[开发工具]05-Linux编辑器Vim的使用

1. Vim基本概述

Vim: vi和Vim是Linux下的一个文本编辑工具. (可以理解为windows的记事本)
VI与Vim的区别: vi和Vim都是文本编辑器, 只不过Vim是vi的增强版, 比vi多了语法高亮显示, 其他编辑功能几乎无差,
所以使用vi还是Vim取决个人习惯. (相当于windows系统下的文本编辑软件“记事本”与”notepad++”的区别)  

PS:最小化安装CentOS系统, 默认情况下没有Vim命令, 但可以使用命令: yum install Vim -y 安装.
因为Linux系统一切皆为文件,  而我们工作最多的就是修改某个服务的配置(其实就是修改文件内容).
也就是说如果没有vi/Vim, 我们很多工作都无法完成.

PS: Vim是学习linux最重要的命令之一

2. Vim模式三种模式

在使用Vim之前, 需要先了解Vim的三种模式:
普通模式、编辑模式、命令模式, 每种模式分别支持多种不同的快捷键, 要想高效率地操作文本,
就必须先搞清这三种模式的操作区别以及模式之间的切换方法.

img

小结: Vim编辑打开文件整体流程如下:  
1.默认打开文件处于普通模式  
2.从普通模式切换至编辑模式需要使用a、i、o  
3.编辑模式修改完毕后需要先使用ECS返回普通模式  
4.在普通模式输入”:”或”/“进入命令模式, 可实现文件的保存与退出.
PS: 在Vim中, 无法直接从编辑模式切换到命令模式.

3. Vim基本模式使用

3.1 普通模式

普通模式: 主要是控制光标移动, 可对文本进行复制、粘贴、删除等工作.
使用Vim filename 编辑一个文件时, 一进入该文件就是普通模式了.
在这个模式下, 可以进行光标移动、复制、删除、粘贴操作.
1. 命令光标跳转
G               光标跳转至文本末端  
gg              光标跳转至文本顶端  
Ngg             光标跳转至当前文本内第N行  
$               光标跳转至当前光标所在行的尾部  
^或者0          光标跳转至当前光标所在行的首部    
2. 翻页
* 文件内容较多时使用
ctrl+b          往上翻页  
ctrl+f          往下翻页(行比较多)  
3. 复制粘贴
yy              复制当前光标所在的行  
5yy             复制当前光标以及光标向下4        
p(小写)         粘贴至当前光标下一行     
P(大写)         粘贴至当前光标上一行  
np(小写)        粘贴至当前光标下一行 n次
nP(大写)        粘贴至当前光标上一行 n次
4. 删除、剪贴、撤销
dd             删除当前光标所在的行(剪切不粘贴就等于删除)     
4dd            删除当前光标所在的行以及往下的3  
dG             删除当前光标以后的所有行  
D              删除当前光标及光标以后的内容    
x              删除当前光标标记往后的字符  
X              删除当前光标标记往前的字符  
dd & p         先剪贴dd(number dd),后粘贴p  
u              撤销上一次的操作  
5. 替换
r              替换当前光标标记的单个字符  
R              进入REPLACE模式,  连续替换, ESC结束  

3.2 编辑模式

编辑模式: 主要进行文本内容编辑和修改  
从普通模式进入编辑模式, 只需你按一个键即可(i,  I,  a,  A,  o,  O)  
当进入编辑模式时, 会在屏幕的最下一行会出现 “INSERT”标记  
从编辑模式回到普通模式只需要按键盘左上方的 ESC 键即可.
i              进入编辑模式,光标不做任何操作  
a              进入编辑模式,将当前光标往后一位  
o              进入编辑模式,并在当前光标下添加一行空白内容  

I              进入编辑模式,并且光标会跳转至本行的头部  
A              进入编辑模式,将光标移动至本行的尾部  
O              进入编辑模式,并在当前光标上添加一行空白内容  

3.3 末行/命令模式

末行模式(命令模式): 主要用于保存或退出文本.
在普通模式下, 输入 : 或者 / 即可进入命令模式.
在命令该模式下, 可进行的操作有, 显示行号、搜索、替换、保存、退出.

1. 文件保存与退出

:w             保存当前状态  
:w!            强制保存当前状态  
:q             退出当前文档(文档必须保存才能退出)  
:q!            强制退出文档不会修改当前内容  
:wq            先保存, 在退出  
:wq!           强制保存并退出  
:x             先保存, 在退出  
ZZ             保存退出,  shfit+zz  
:number        跳转至对应的行号  
:set nu        显示行号  
:set nonu      不显示行号  
2. 文件内容查找
/string        需要搜索的内容(查找)  
n              按搜索到的内容依次往下进行查找  
N              按搜索到的内容依次往上进行查找  
3. 文件内容替换
:1, 5s#sbin#test#g  替换1-5行中包含sbin的内容为test  
:1, 5s#sbin#test#   只替换1-5行中第一个包含sbin的内容为test  
:%s#sbin#test#g     替换整个文本文件中包含sbin的替换为test  
:%s#sbin#test#gc    替换内容时时提示是否需要替换  
4. 文件内容另存
:w /root/test.txt   将所有内容另存为/root/test.txt文件中  
5. 文件内容读入
:r  /etc/hosts      读入/etc/hosts文件至当前光标下面  
:5r /etc/hosts      指定插入/etc/hosts文件至当前文件的第五行下面  

4. 视图模式

(从普通模式进入视图模式), 主要进行批量操作
ctrl+v  进入可视块模式, 选中需要注释的行  
1.插入:按shift+i进入编辑模式, 输入#, 结束按ESC键  
2.删除:选中内容后, 按x或者d键删除  
3.替换:选中需要替换的内容,  按下r键, 然后输入替换后的内容  



shift+v 进入可视行模式,选中整行内容  
1.复制:选中行内容后按y键及可复制.
2.删除:选中行内容后按d键删除.

5. Vim扩展知识

5.1 环境变量临时生效

:set nu               显示行号  
:set ic               忽略大小写,  在搜索的时候有用  
:set ai               自动缩进  
:set list             显示制表符(空行、tab键)  
:set no[nu|ic|ai…]    取消临时设定的变量   

5.2 环境变量永久生效

~/.Vimrc 个人环境变量(优先级高) /etc/Vimrc 全局环境变量
Vim  ~/.Vimrc 
# 在文本中添加下列代码, 当下次再打开文件自动显示行号并忽略大小写  
set nu  
set ic  
如果个人Vim环境没有配置,  则使用全局Vim环境变量配置.
如果个人Vim环境和全局环境变量产生冲突,  优先使用个人Vim环境变量.

5.3 同时编辑多个文件

Vim -o file1 file2    水平分割  
Vim -O file1 file2    垂直分割  
ctrl+ww 文件间切换  

5.4 文件差异对比

相同文件之间差异对比, 通常用于对比修改前后差异
diff                文件对比     
Vimdiff             以Vim方式打开两个文件对比,高亮显示不同的内容  

5.5 Vim非正常退出

ctrl+z 挂起或强制退出终端没关闭Vim后
 
假设打开filename文件被以外关闭,需要删除同文件名的.swp文件即可解决  
rm -f .filename.swp  

6. Vim练习

6.1 基础练习

1. /etc/passwd 复制到/root/目录下, 并重命名为test.txt  
2. 用Vim打开test.txt并显示行号  
3. 分别向下、向右、向左、向右移动5个字符, 分别向下、向上翻两页  
4. 把光标移动到第10, 让光标移动到行末, 再移动到行首, 移动到test.txt文件的最后一行, 移动到文件的首行  
5. 搜索文件中出现的 root 并数一下一共出现多少个, 不区分大小写搜索  
6. 把从第一行到第三行出现的root 替换成–od–, 然后还原上一步操作  
8. 把整个文件中所有的root替换成–od–  
9. 把光标移动到20, 删除本行, 还原上一步操作  
10. 删除第19, 还原上一步操作  
11. 删除从5行到10行的所有内容, 还原上一步操作  
12. 复制2行并粘贴到11行下面, 还原上一步操作(按两次u)  
13. 复制从11行到15行的内容并粘贴到8行上面, 还原上一步操作(按两次u)  
14. 13行到18行的内容移动文件的尾部, 还原上一步操作(按两次u)  
15. 光标移动到首行, /sbin/nologin改成/bin/bash  
16. 在第一行下面插入新的一行, 并输入”# Hello!  
17. 保存文档并退出

6.2 示例练习

[root@www ~]# cat proxy.conf  
server {  
    Listen 8080;  
    Server_Name Vim.OldboyEDU.com;  
    location / {  
        proxy_pass http://127.0.0.1:8080;  
        proxy_set_header Host $http_host;  
        proxy_set_header X-Forward-for;  
        proxy_intercept_errors on;  
        proxy_next_upstream error timeout;  
        proxy_next_upstream_timeout 3s;  
        proxy_next_upstream_tries 2;  
        error_page 500 502 403 404 = /proxy_error.html;  
    }  
    location = /proxy_error.html {  
        root /code/proxy;  
    }  
}  
1. 使用Vim打开proxy.conf文件  
2. 修改Listen为listen小写, 并将8080修改为80  
3. 修改ServerName为server_name小写.
4. 修改Vim.OldboyEDU.com为Vim.oldboy.com  
5. 在server_name行下插入一行 root /code;  
5. 复制5-14行的内容, 然后将其粘贴到14行下面  
6. 删除与proxy_set_header相关的两行全部删除  
7. 如上操作完成后, 13-20行前面加上#  
8. 删除21-23的行, 然后保存当前文件

————————————————
文章的段落全是代码块包裹的, 留言是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言是为了避免文章提示质量低.
————————————————

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:32:17  更:2022-09-04 01:34:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 13:03:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码