Linux命令_vim的详细用法

简介

    vim是一款针对Linux和其他类Unix操作系统的文本编辑器。它是Vi编辑器的升级版本,具有丰富的功能和强大的扩展性。vim有三种基本模式:命令模式、插入模式和可视模式。

  • 命令模式:用户可以使用各种命令移动光标和进行编辑操作,如删除、复制、粘贴等。
  • 插入模式:用户可以在当前位置插入文本。
  • 可视模式:可以使得用户可以非常容易地选择文本块并进行处理。

        

文章目录如下

1. 参数介绍

2. 插入模式

3. 命令模式

3.1. 查看文件

3.2. 复制粘贴

3.3. 删除字符

3.4. 撤销恢复

3.5. 保存文件

4. 末行模式

4.1. 保存文件

4.1. 批量注释代码

4.2. 批量修改字符

4.3. 按关键字删除行

4.4. 搜索某个字符

4.5. 设置终端显示

5. 可视模式

5.1. 批量注释

5.2. 批量删除


        

1. 参数介绍

vim 一般直接对文件进行操作

vim 文件名

它本身也自带参数,常见用法如下:

-d:diff模式,对比两个文件的差异性      # vim -d file1 file2
-D:调试模式           # vim -D file
-P:打开多个标签       # vim -P file1 file2 file3
-O:打开多个文件窗口    # vim -O file1 file2 file3,使用末行模式进行文件间切换(:1n 切换下一个文件 或者 Ctrl + ww,:1N 切换上一个文件)
+ :启动后调到末行      # vim + file
+[n]:n 表示数字,直接进入n行# vim +3 file 启动后光标调到第3行-r:恢复上次异常退出时的编辑进度。
-o/-O:垂直/水平分割屏幕并打开多个文件。
-r:以只读模式打开文件。
-R:以只读模式打开文件,禁用自动保存和修改。
-g/-f:开启图形模式/禁用图形模式。

        

2. 插入模式

插入模式是指在编辑器中可以输入和编辑文本的模式。在插入模式下,可以通过键盘输入文本内容,并且编辑器会立即显示你输入的内容。

使用vim打开文件时属于可视模式,这个模式下是无法写入字符的

        

需要进入插入模式时,直接按 i 键即可在光标位置插入

进入插入模式后便不再有命令,所有输出的字符都将显示到文件中。

退出插入模式按 Esc 键。

        

除了使用 i 命令插入,还有一些其他常用命令

“i” 键:在当前光标处进入插入模式
“I” 键:在当前行的开头进入插入模式“a” 键:在当前光标后1个位置进入插入模式
“A” 键:在当前行的末尾进入插入模式“o” 键:在当前行的下一行插入新行,并进入插入模式
“O” 键:在当前行的上一行插入新行,并进入插入模式“s” 键:删除当前光标所在的单个字符,并进入插入模式
“S” 键:删除当前行的所有字符,并进入插入模式

        

3. 命令模式

命令模式就是在刚打开文件时,或按 Esc 键后的模式,在该模式下可以使用命令进行查看文件,删除文件,复制粘贴文件等。

3.1. 查看文件

翻页查看文件

Ctrl + f :向下翻页
Ctrl + b :向上翻页

        

移动光标到n行

gg:移动到文件最顶端
H :移动到当前页最顶端G :移动到文件最底端
L :移动到当前页最底端3G:移动到第3行,3可以设置为任意数字

        

移动光标在当前行的位置

^ :移动到当前行第1列
$ :移动到当前行最后1列w :移动到下一段字母开头
e :移动到下一段字母结尾

        

3.2. 复制粘贴

复制某行

yy :复制当前行
Y  :复制当前行y2y:向下复制2行
yG :复制当前行到最后1行ygg:复制当前行到第1行
y2g:复制当前行到第2行

        

粘贴某行

p :将复制的行粘贴到光标下面一行
P :将复制的行粘贴到光标上面一行

        

3.3. 删除字符

dd: 删除当前行
D : 删除当前行光标到末尾dG: 删除光标行到最后1行
dgg:删除光标行到第1行d↓: 删除光标行向下2行
d↑: 删除光标行向上2行d5↓:删除光标行向下5行
d5↑:删除光标行向上5行

        

3.4. 撤销恢复

u :撤销上一次命令
Ctrl + r:恢复上一次命令

        

3.5. 保存文件

ZZ: 保存并退出文件
ZQ: 不保存并退出文件

        

4. 末行模式

末行模式允许执行各种命令、搜索文本、保存文件以及设置编辑器选项等操作。在末行模式下,可以在编辑器底部的命令行输入命令,并按回车键执行。

末行模式有3种命令

 :  模式:在该模式下执行命令

         

 / 模式:在该模式下向下搜索字符串

         

 ? 模式:在该模式上向下搜索字符串

        

4.1. 保存文件

:w # 保存文件
:q # 退出文件
:q!  # 强制退出文件(不保存)
:wq  # 保存并退出文件
:wq! # 强制保存并退出文件

        

4.1. 批量注释代码

【案例一】注释整个文件

:%s/^/#/
  • :   进入末行模式
  • % 表示全部行
  • s  表示替换某个字符
  • /   这个命令的分隔符
  • ^  表示行首
  • #  自定义的符号,shell 使用#注释

        

【案例二】仅注释1~3行

:1,3s/^/#/
  • 1 表示开始行
  • 3 表示结束行

        

【案例三】取消全部注释

:%s/^#//
  • 将全部以#开头的#替换为空

        

【案例四】取消10~20行注释

:10,20s/^#//
  • 将全部以#开头的#替换为空

        

4.2. 批量修改字符

【案例一】将所有b替换为BBB

:%s/b/BBB/g
  • :   进入末行模式
  • % 表示全部行
  • s  表示替换
  • /   表示这行命令的分割
  • b  表示被替换的字符
  • BBB 表示替换成该字符
  • g  表示全部,如果不用g则表示第1个

        

 【案例二】将所有行第1个b替换为BBB

:%s/b/BBB/

        

 【案例三】将第10~20行所有b替换为BBB

:10,20s/b/BBB/g

        

 【案例四】在所有行的行首添加字符BBB

:%s/^/BBB/

        

 【案例五】在所有行的行尾添加符号 ;

:%s/$/;/

        

注意:分隔符 / 是可修改的

将 /home/yt 修改为 /home/root

:%s#/home/yt#/home/root#g
  • 将 / 符号修改为 #,也可以修改成其他的,比如 @

        

4.3. 按关键字删除行

删除全部行

:%d

删除5~10行

:5,10d

删除包含 abc 的行

:g/abc/d

删除以abc开头的行

:g/^abc/d

 删除以abc结尾的行

:g/abc$/d

删除空行

:g/^\n/d

         

4.4. 搜索某个字符

【案例一】向下搜索ab字符

/ab

        

【案例二】向上搜索ab字符

?ab

        

【案例三】向下搜索ab和ac的字符

/ab\|ac
  • 向上搜索也是同理

        

【案例四】搜寻关键字

“n” 键 # 向下搜寻关键字
“N” 键 # 向上搜寻关键字

        

4.5. 设置终端显示

设置行号

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

设置关键字高亮

:set hls # 关键字显示高亮
:noh     # 关键字取消高亮

拼写检查

:set spell   # 开启拼写检查
:set nospell # 关闭拼写检查

设置文件格式

:set fileformat=unix  # 将文本格式设置为Linux格式 (windows 中编写的脚本在 Linux 执行时,可能出现换行符不匹配等问题,可以使用此设置)

设置缩进

:set expandtab tabstop=4   # 将制表符设置为4个空格
:set noexpandtab           # 禁止将制表符转换为空格。

设置对齐

set textwidth=80        # 设置文本宽度为80个字符,在达到该宽度时自动换行。
set formatoptions+=a    # 启用自动对齐,对齐方式取决于文件类型和格式选项。
set formatoptions-=cro  # 禁用换行操作符的自动换行。

        

5. 可视模式

可视模式可以选择一段连续的文本并对其进行复制、剪切、粘贴等操作,从而提供了更精确和灵活的文本编辑能力。

  • Ctrl + v 键进入块可视模式,键盘 "上" 、"下" 键选择

5.1. 批量注释

1、Ctrl + v 光标行进入可视块
2、使用上下键选中需要注释的行
3、按下命令 "I键",这时候进入编辑模式
4、按下命令 "#键"
5、按 "Esc键" 即可注释

第4步按下 #键,也可以是其他字符,可输入多个。比如第4步改为abc,那么在选中行哪里就会添加abc

        

5.2. 批量删除

1、Ctrl + v 光标行进入可视块
2、使用上下左右键选中需要删除的行、字符
3、按下命令 "d键",删除

同样的方法,我们可以选择被注释的行,选中首行的#符号,按 "d键" 删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/423475.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库用户映射报错用户、组或角色在当前数据库中已存在 错误15023

报错场景原因: 数据库恢复前用户已存在,恢复后不显示,现重新新建和之前一样的用户名时,对新建的用户名进行数据库权限分配就会出现以上报错错误15023问题。 解决方案: 示例如下> Use [数据库名] go sp_change_us…

移动开发行业——鸿蒙OS NEXT开出繁花

1月18日,华为宣布HarmonyOS NEXT开发者预览版开放申请,根据官方注解,这个版本的鸿蒙系统有个更通俗易懂的名字——“星河版”,也被称为“纯血”鸿蒙。 根据官方解释,之所以取名星河版,寓意鸿蒙OS NEXT就像…

Linux 快速构造大数据文件

文章目录如下 1. 如何生成数据文件 2. 使用 yes 命令构造数据 2.1. 基本用法 2.2. 构造数据文件 3. 使用 awk 命令构造数据 3.1. 基本用法 3.2. awk 循环输出 3.3. awk 指定分隔符 3.4. awk 随机数 3.5. awk 随机字符 3.6. awk 构造数据 4. 总结 1. 如何生成数据文…

开源项目CuteSqlite开发笔记(八):Windows 64位/32位使用GetWindowLongPtr钩子函数

需求描述 在开发CuteSqlite的时候, 有一个功能需要实现,鼠标移到WTL::CStatic上后,发送消息通知CToolTipCtrl弹出。 遇到问题 WTL::CStatic控件没有相应 WM_MOUSEMOVE 消息,需要返回一个HTCLIENT消息来让窗口处理函数执行 WM_MO…

Databend 开源周报第 129 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 支持标准流 标…

智慧工厂视频监控平台EasyCVR公网收流后内网设备无法播放是什么原因?

安防视频监控平台EasyCVR采用了开放式的网络结构,支持高清视频的接入和传输、分发,平台提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,此外&am…

如何在WordPress网站中添加多语言搜索(2种简单方法)

您想在WordPress网站中添加多语言搜索吗? 如果您有一个多语言 WordPress 网站,那么添加多语言搜索功能可以帮助用户通过使用自己的语言进行搜索来更快地找到信息。 在本文中,我们将向您展示如何在 WordPress 中轻松添加多语言搜索&#xff…

云风网(www.niech.cn)个人网站搭建(四)navicat 连接mongodb数据库

navicat安装破解 第一步,启动MongoDB服务 具体操作请移步:MongoDB安装配置教程 第二步:创建新连接,创建数据库 文件–新建连接–MongoDB 双击打开连接(也可右键打开连接),右键新建数据库&…

《移动通信原理与应用》实验一——QPSK调制与解调实验(实验箱)

目录 一、实验目的 二、实验主要内容及原理 2.1、主要内容 2.2、基本原理 三、实验器材 3.1、移动通信原理实验箱: 3.2、实验框图及电路说明 四、实验步骤 五、实验过程原始记录(数据、图表、计算等) 六、实验结果及分析 1、结果分析: 2、思…

【Java IO】设计模式 (装饰者模式)

Java I/O 使用了装饰者模式来实现。 装饰者模式 请参考装饰者模式详解 装饰者(Decorator)和具体组件(ConcreteComponent)都继承自组件(Component),具体组件的方法实现不需要依赖于其它对象,而装饰者组合了一个组件,这样它可以装饰其它装饰者…

如何通过系统命令排查账号安全?

如何通过系统命令排查账号安全 query user 查看当前登录账号 logoff id 注销用户id net user 查看用户 net user username 查看用户登录情况 lusrmgr.msc 查看隐藏账号 winR打开regedit注册表 找到计算机\HEKY_LOCAL_MACHINE\SAM\SAM\右键给与用户读写权限 刷新打开 HKEY…

工业搅拌机内流场仿真APP

工业用搅拌机主要是用于搅拌水泥、沙石、各类干粉砂浆等建筑材料。工业搅拌机内流场仿真APP展示的是针对双级折叶涡轮搅拌器,应用多重参考系模型模拟搅拌罐内旋转流动的过程及结果。用户可根据输入参数界面修改桨叶的尺寸、数量,流体物性以及运行工况等条…