Linux之Vim常用命令

2024-06-22 17:32
文章标签 linux vim 常用命令

本文主要是介绍Linux之Vim常用命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1 普通模式
    • 1.1 进入命令模式命令
    • 1.2 移动光标
    • 1.3 复制
    • 1.4 剪切
    • 1.5 删除
    • 1.6 粘贴
    • 1.7 替换和撤销
    • 1.8 查找并替换
  • 2 命令模式
    • 2.1 退出编辑器
    • 2.2 调整文本
    • 2.3 查找字符串
  • 3 vim的3种模式的关系图
  • 4 vim时其他命令
    • 4.1 显示隐藏行号
    • 4.2 底行模式下命令

1 普通模式

以下命令请在普通模式执行

1.1 进入命令模式命令

  • vi filename : 打开或新建文件,并将光标置于第一行首
  • vi +n filename :打开文件,并将光标置于第n行
  • vi + filename :打开文件,并将光标置于最后一行首
  • vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
  • vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
  • vi filename....filename :打开多个文件,依次编辑

1.2 移动光标

  • j:向下
  • 20j: 向下移动 20 行
  • k:向上
  • h:向左
  • l:向右
  • 0:数字0,到行首
  • ^:到行首第一个字符,如果前面有空格的话
  • $:到行尾
  • n$:光标移至第n行尾
  • gg:快速到文件头
  • G:快速到文件尾
  • 50G:跳转到第 50 行
  • n+:光标下移n行
  • n-:光标上移n行
  • w:光标跳到下个字的开头
  • e:光标跳到下个字的字尾
  • b:光标回到上个字的开头
  • #l:光标移到该行的第#个位置,如:5l,56l。
  • ctrl+ b:屏幕往移动一页。
  • ctrl + f:屏幕往移动一页。
  • ctrl + u:屏幕往移动半页。
  • ctrl + d:屏幕往"前"移动半页。
  • ctrl + g列出光标所在行的行号
  • space:光标右移一个字符
  • Backspace:光标左移一个字符
  • ):光标移至句尾
  • ( :光标移至句首
  • }:光标移至段落开头
  • {:光标移至段落结尾
  • H :光标移至屏幕顶行
  • M :光标移至屏幕中间行
  • L :光标移至屏幕最后行

注意:请不要在插入模式进行光标移动,效率很低下

1.3 复制

  • yy:复制一行
  • #yy:例如,6yy表示拷贝从光标所在的该行往下数6行文字
  • 8yy:向下复制8行
  • yw:复制光标开始的一个单词
  • #yw:复制#个字到缓冲区
  • y$:复制光标到行尾
  • yfA:复制光标到第一个大写A中间的内容
  • y2fA:复制光标到第二个大写A中间的内容
  • n,my:指定n到m行复制

1.4 剪切

  • x:向后剪切一个一个字符,如果是在行尾,则为向前剪切
  • 4x:剪切4个
  • xp:非行尾交换两个字符,如从bs变成sb

1.5 删除

  • dd:删除一行
  • 100dd:删除100行
  • dw:删除一个单词
  • df":删除到出现的第一个双引号
  • d^:删除至行首
  • #dd:从光标所在行开始删除#行
  • x:每按一次,删除光标所在位置的后面一个字符。
  • #x:例如,6x表示删除光标所在位置的后面6个字符。
  • X:大写的X,每按一次,删除光标所在位置的前面一个字符。
  • #X:例如,20X表示删除光标所在位置的前面20个字符。
  • Ctrl+u:删除输入方式下所输入的文本

注意:删除的内容会放到剪贴板,按p即可粘贴到其他地方。

1.6 粘贴

  • p(小写):粘贴复制或剪切的内容,将缓冲区内的字符贴到光标所在位置。
    在光标下一行粘贴
    注意:所有与y有关的复制命令都必须与p配合才能完成复制与粘贴功能
  • 5p:将复制或剪切的内容粘贴5次
  • P(大写):在光标上一行粘贴(插入)

1.7 替换和撤销

  • r+<待替换字母>:将游标所在字母替换为指定字母
  • R:连续替换,直到按下Esc
  • cc:替换整行,即删除游标所在行,并进入插入模式
  • cw:替换一个单词,即删除一个单词,并进入插入模式
  • c#w:例如,c3w表示更改3个字
  • u{n}:撤销一次或n次操作
  • U(大写):撤销当前行的所有修改
  • Ctrl+r:redo,即撤销undo的操作

1.8 查找并替换

替换光标所在行第一个匹配的字符串:

# 语法
:s/旧字符串/新字符串
# 实例
:s/one/two

替换光标所在行所有旧字符串为新字符串:

# 语法
:s/旧字符串/新字符串/g

替换第几行到第几行中所有字符串:

# 语法
:n,m s/旧字符串/新字符串/g# 实例
:2,4 s/one/two/g

最常用的就是全文替换了:

# 语法
:%s/旧字符串/新字符串/g

2 命令模式

以下命令请在命令模式下执行
在普通模式下,输入:即可进入。

2.1 退出编辑器

  • wq:保存当前文件并退出或者x
  • wqa:保存所有文件并退出
  • q!: 不保存,强制退出
  • qa!: 有多个文件被打开,同时退出

2.2 调整文本

  • %s/$/sth/ :在行尾追加sth
  • %s/^M//g :替换掉dos换行符,\^M使用ctrl+v + Enter即可输入
  • :g/^\s$/d* :删除空行以及只有空格的行
  • %s/#.*//g :删除#之后的字符,没错,这里使用的是正则。
  • ce:使本行文本内容居中
  • ri:使本行文本内容靠右
  • le:使本行文本内容靠左

2.3 查找字符串

  • / 关键字:从光标开始处向文件尾搜索,先按/键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按n会往后寻找到要的关键字为止。
  • ? 关键字:从光标开始处向文件首搜索,先按?键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按n会往前寻找到要的关键字为止

在普通模式下,按下/直接进入查找,输入相应的字符串按确定即可

  • n:查找下一个匹配
  • N:查找上一个匹配
  • 2n:查找下面第二个匹配

3 vim的3种模式的关系图

在这里插入图片描述

  • 命令行模式command mode) :
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

  • 插入模式(Insert mode)
    只有在Insert mode下,才可以做文字输入,按ESC键可回到命令行模式
    i, I 进入输入模式 Insert modei从目前光标所在处输入I在目前所在行的第一个非空格符处开始输入
    a, A 进入输入模式 Insert modea从目前光标所在的下一个字符处开始输入A 从光标所在行的最后一个字符处开始输入
    o, O 进入输入模式 Insert modeo在目前光标所在的下一行处输入新的一行O在目前光标所在处的上一行输入新的一行

  • 底行模式(last line mode)
    将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等

4 vim时其他命令

4.1 显示隐藏行号

:set number 或者 :set nu 显示行号
:set nonumber 或者 :set nonu 隐藏行号
##号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行

4.2 底行模式下命令

选项设置

  • :set all:列出所有选项设置情况
  • :set term:设置终端类型
  • :set ignorance:在搜索中忽略大小写
  • :set list:显示制表位(Ctrl+I)和行尾标志($)
  • :set number:显示行号
  • :set report:显示由面向行的命令修改过的数目
  • :set terse:显示简短的警告信息
  • :set warn:在转到别的文件时若没保存当前文件则显示NO write信息
  • :set nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
  • :set nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
  • :set mesg:允许vi显示其他用户用write写到自己终端上的信息

这篇关于Linux之Vim常用命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084950

相关文章

linux生产者,消费者问题

pthread_cond_wait() :用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。 pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex。当其他线程通过pthread

Linux 安装、配置Tomcat 的HTTPS

Linux 安装 、配置Tomcat的HTTPS 安装Tomcat 这里选择的是 tomcat 10.X ,需要Java 11及更高版本 Binary Distributions ->Core->选择 tar.gz包 下载、上传到内网服务器 /opt 目录tar -xzf 解压将解压的根目录改名为 tomat-10 并移动到 /opt 下, 形成个人习惯的路径 /opt/tomcat-10

RedHat运维-Linux文本操作基础-AWK进阶

你不用整理,跟着敲一遍,有个印象,然后把它保存到本地,以后要用再去看,如果有了新东西,你自个再添加。这是我参考牛客上的shell编程专项题,只不过换成了问答的方式而已。不用背,就算是我自己亲自敲,我现在好多也记不住。 1. 输出nowcoder.txt文件第5行的内容 2. 输出nowcoder.txt文件第6行的内容 3. 输出nowcoder.txt文件第7行的内容 4. 输出nowcode

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。  从广义上说,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,并使计算机具有自己的特生。这里所说的其他软件包括系统实用程序(system utility)、应用程序、shell以及公用函数库等

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

Windows/macOS/Linux 安装 Redis 和 Redis Desktop Manager 可视化工具

本文所有安装都在macOS High Sierra 10.13.4进行,Windows安装相对容易些,Linux安装与macOS类似,文中会做区分讲解 1. Redis安装 1.下载Redis https://redis.io/download 把下载的源码更名为redis-4.0.9-source,我喜欢跟maven、Tomcat放在一起,就放到/Users/zhan/Documents

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了

Linux 下的Vim命令宝贝

vim 命令详解(转自:https://www.cnblogs.com/usergaojie/p/4583796.html) vi: Visual Interface 可视化接口 vim: VI iMproved VI增强版 全屏编辑器,模式化编辑器 vim模式: 编辑模式(命令模式)输入模式末行模式 模式转换: 编辑-->输入: i: 在当前光标所在字符的前面,转为输入模式

Linux和Mac分卷压缩

使用 zip 命令压缩文件 使用 zip 命令压缩文件,并结合 split 命令来分卷: zip - largefile | split -b 500k 举例: zip - ./tomcat.dmg |split -b 500k 上述命令将文件 largefile 压缩成 zip 包并分卷成不超过 500k 的文件,分解后文件名默认是 x* ,后缀为 2 位a-z 字母,如 aa、ab。

Linux文本三剑客sed

sed和awk grep就是查找文本当中的内容,最强大的功能就是使用扩展正则表达式 sed sed是一种流编辑器,一次处理一行内容。 如果只是展示,会放在缓冲区(模式空间),展示结束后,会从模式空间把结果删除 一行行处理,处理完当前行,才会处理下一行。直到文件的末尾。 sed的命令格式和操作选项: sed -e '操作符 ' -e '操作符' 文件1 文件2 -e表示可以跟多个操作