Linux命令_vim的详细用法

news2024/11/15 20:04:24

简介

    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.coloradmin.cn/o/1404234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安裝火狐和穀歌流覽器插件FoxyProxy管理海外動態IP代理

代理生態系統擁有大量有用的實用程式,使海外代理IP代理設置的使用變得簡單起來。其中一種類型叫做代理管理工具,像FoxyProxy就是該工具集比較受歡迎的。 本文將全面解析FoxyProxy擴展的功能和特性、Foxyproxy怎麼下載、以及如何在穀歌流覽器和火狐流覽器…

数据分析的理念、流程、方法、工具(上)

一、数据的价值 1、数据驱动企业运营 从电商平台的「猜你喜欢」到音乐平台的「心动模式」,大数据已经渗透到了我们生活的每一个场景。不论是互联网行业,还是零售业、制造业等,各行各业都在依托互联网大数据(数据采集、数据存储、…

AutoDL——终端训练神经网络模型(忽略本地问题)

前言: 本人之前分享过一篇文章:使用pycharm连接远程GPU训练神经网络模型(超详细!),其中详细介绍了如何利用pycharm连接AutoDL算力云平台租用的GPU服务器训练网络模型。但有些小伙伴可能会因为一些原因而导…

清越 peropure·AI 国内版ChatGP新功能介绍

当OpenAI发布ChatGPT的时候,没有人会意识到,新一代人工智能浪潮将给人类社会带来一场眩晕式变革。其中以ChatGPT为代表的AIGC技术加速成为AI领域的热门发展方向,推动着AI时代的前行发展。面对技术浪潮,清越科技(PeroPure)立足多样化生活场景、精准把握用户实际需求,持续精确Fin…

【爬虫、数据可视化实战】以“人口”话题为例爬取实时微博数据并进行舆情分析

前言: 近期在weibo上讨论的比较热的话题无非就是“人口”了。TaoTao也看了一些大家发的内容。但是感觉单纯的看文字内容不能很直观的反应出来大家的关切。索性就使用爬虫对数据进行爬取,同时结合着数据可视化的方式让数据自己开口说话。那么接下来就让我…

浮点数详解

目录 1.概述 2.浮点数的编码方式 2.1.float类型的IEEE编码 2.2.double类型的IEEE编码 2.3.现场问题 2.4.总结 1.概述 计算机也需要运算和存储数学中的实数。在计算机的发展过程中,曾产生过多种存储实数的方式,有的现在已经很少使用了。不管如何存储…

OpenCV书签 #差值哈希算法的原理与相似图片搜索实验

1. 介绍 差值哈希算法(Difference Hash Algorithm,简称dHash) 是哈希算法的一种,主要可以用来做以图搜索/相似图片的搜索工作。 2. 原理 差值哈希算法通过计算相邻像素的差异来生成哈希,即通过缩小图像的每个像素与平…

macbookpro怎么恢复出厂设置2024最新恢复方法汇总

可能你的MacBook曾经是高性能的代表,但是现在它正慢慢地逝去了自己的光芒?随着逐年的使用以及文件的添加和程序的安装,你的MacBook可能会开始变得迟缓卡顿,或者失却了以往的光彩。如果你发现你的Mac开始出现这些严重问题&#xff…

c#中使用UTF-8编码处理多语言文本的有效策略

使用UTF-8编码处理多语言文本的有效策略 在当今的全球化时代,软件开发者常常需要处理包含多种语言的文本。这不仅涉及英文和其他西方语言,还包括中文、日文、韩文等多字节字符系统。在这篇博客中,我将探讨如何有效地使用UTF-8编码来处理混合语…

基于SpringBoot Vue二手闲置物品交易系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

unity shaderGraph实例-武器特效(纹理遮罩,纹理动画,纹理变形)

文章目录 效果展示所需素材整体结构各区域内容区域1区域2区域3区域4区域4-1区域4-2区域4-3区域4-4 区域5区域6 后处理工程下载 效果展示 所需素材 除了剑的模型外,主要是这五张贴图,其中swordmask和swordmask1中白色的区域是剑身的位置,sword…

Visual Studio2022实用使用技巧集

前言 对于.NET开发者而言Visual Studio是我们日常工作中比较常用的开发工具,掌握一些Visual Studio实用的搜索、查找、替换技巧可以帮助我们大大提高工作效率从而避免996。 Visual Studio更多实用技巧 https://github.com/YSGStudyHards/DotNetGuide 代码和功能搜…

上门回收小程序,打造回收新模式

近年来,我国一直秉持着环保绿色的发展理念,为了减少资源浪费,旧物回收成为了人们处理废弃物品的方式。目前,我国回收市场规模大约能达到3.58亿元,在我国经济的稳定增长和环保意识的提高下,回收市场规模还将…

【Java】--网络编程:基于TCP协议的网络通信

【Java】–网络编程:基于TCP协议的网络通信 文章目录 【Java】--网络编程:基于TCP协议的网络通信一、TCP协议1.1 概念1.2 三次握手1.2.1 文字描述1.2.2 画图演示 1.3 四次挥手1.3.1 文字描述1.3.2 画图演示 二、基于TCP的Socket网络编程2.1 概念2.2 服务…

Android 通过adb命令查看应用流量

一. 获取应用pid号 通过adb shell ps -A | grep 包名 来获取app的 pid号 二. 查看应用流量情况 使用adb shell cat /proc/#pid#/net/dev 命令 来获取流量数据 备注: Recevice: 表示收包 Transmit: 表示发包 bytes: 表示收发的字节数 packets: 表示收发正确的…

thinkphp+vue+mysql旅游推荐攻略分享网站p0667

基于php语言设计并实现了旅游分享网站。该系统基于B/S即所谓浏览器/服务器模式,应用thinkphp框架,选择MySQL作为后台数据库。系统主要包括用户、景点信息、攻略分类、旅游攻略、门票购买、留言反馈、论坛管理、系统管理等功能模块。运行环境:phpstudy/wa…

实现纯Web语音视频聊天和桌面分享(附源码,PC端+移动端)

在网页里实现文字聊天是比较容易的,但若要实现视频聊天,就比较麻烦了。本文将实现一个纯Web版的视频聊天和桌面分享的Demo,可直接在浏览器中运行,不需要安装任何插件。 一. 主要功能及支持平台 1.本Demo的主要功能有 &#xff…

第10次修改了可删除可持久保存的前端html备忘录

第10次修改了可删除可持久保存的前端html备忘录 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

03_list

文章目录 list接口list的APIlistIterator方法subList方法 ArrayListArrayList的源码阅读 LinkedListVectorStack list接口 特点&#xff1a; List是Collection的子接口&#xff0c;是描述数据存储的接口数据结构表现为线性表&#xff0c;可以通过下标来操作存储数据有序可以存…

x-cmd pkg | frp - 内网穿透工具

简介 frp&#xff08;Fast Reverse Proxy&#xff09;是一个专注于内网穿透的高性能反向代理应用&#xff0c;可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 它采用 C/S 模式&#xff0c;将服务端部署在具有公网 IP 的机器上&#xff0c;客户端部…