首页 > 系统相关 >浅谈 Linux 下 vim 的使用

浅谈 Linux 下 vim 的使用

时间:2023-08-24 15:23:16浏览次数:64  
标签:字符 浅谈 删除 模式 Vim 命令 Linux vim 光标

Vim 是从 vi 发展出来的一个文本编辑器,其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

Vi 是老式的字处理器,功能虽然已经很齐全了,但还有可以进步的地方。Vim 可以说是程序开发者的一项很好用的工具。对于大多数用户来说,Vim 刚开始学习的时候可能会进展缓慢,但是一旦掌握一些基本操作之后,就能大幅度提高编辑效率。今天我们就来简单介绍下 Vim 及其基本操作。

Vim 的三种模式

从 vi 派生出来的 Vim 具有多种模式,这种独特的设计容易使初学者产生混淆。几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与 Vim 截然不同的方式:命令目录(鼠标或者键盘驱动),组合键(通常通过 ctrl 键和 alt 键组成)或者鼠标输入。Vim和vi一样,仅仅通过键盘来在这些模式之中切换。这就使得 Vim 可以不用进行菜单或者鼠标操作,并且最小化组合键的操作。对文字录入员或者程序员可以大大增强速度和效率。

基本上,Vim 可以分为命令模式、插入模式和底线模式三种模式,各模块的功能区分如下:

命令模式:

使用 vim 编辑文件时,默认处于命令模式。在此模式下可以使用上、下、左、右键或者k、j、h、l键进行光标的移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。

插入模式:

在该模式下可以对文件进行写的操作,类似于 windows 的文档操作。进入插入模式的方法是在命令模式下按 "i"或者"a"或者"o",编写完成后按 Esc 即可回到命令模式。

i:从光标目前所在位置插入所输入的字符

a:从目前光标所在位置的下一个字符处插入所输入的字符

o:插入新的一行从行首开始输入

底线模式:

如果要保存、查找或者替换一些内容等,就需要进入底线模式。底线模式的进入方法为:在命令模式下按":"键,Vim 窗口的左下方会出现一个":"符号,这时就可以输入相关的指令进行操作了。指令执行后会自动返回命令模式。

Vim 的基本操作

一、打开文件或者新建文件

统一命令: vim 文件名

例子:vim 11.txt

然后在页面的左下角可以看到文件的信息,行数和字符数,例如上图:3行、426个字符。

二、光标的移动

以字符为单位移动,在命令模式中使用 h、j、k、l 这 4 个字符控制方向,分别表示向左、向下、向上、向左

  • 按G:移动到文件最后
  • 按 gg: 移动到文件的开头
  • 按 0 或者^: 光标移动到所在行的行首
  • 按 $: 光标移动到所在行的行尾
  • 按 ctrl+f 往下翻一页
  • 按 ctrl+b 往上翻一页

三、插入模式

当处于插入模式,左下角的状态如下图所示:

当编辑完成,就可以按 Esc 退出插入模式,进入到命令模式。可以使用Shift+zz命令保存退出,其他保存和退出命令见下文。

四、底线模式

【保存和退出】

字母"w":保存不退出;

字母"q":不保存退出;

字符"!":强制性操作;

也可以 wq 这样直接保存退出

【显示行号】

显示行号: set nu

不显示:set nonu

直接到某行:在底线模式下直接输入数字就可以到想到的行,如果输入的数字比文档的行数多就会到最后一行。

【搜索】

想要搜索某个词可以直接在底线模式输入:/要搜索的词,或者在命令模式里直接 /搜索的词也可以,

可以按 n 到搜索的下一个词的地方,按 N 就是往上找。搜索到的词就会以高亮显示,如下图:

如果要忽略大小写,可以先在底线模式输入: set ic , 反之:set noic 。

这个高亮如果不取消显示会一直有,可以用这个命令取消,底线模式下输入:nohlsearch 。

【字符替换】

在底线模式下:输入 1,$s/string/replace/g 会将全文的 string 字符串替换为 replace 字符串。

1,$ 表示从第一行到最后一行
s 表示替换
g 表示每行全部替换

此时 /w 已经搜索不到了。(此处没有忽略大小写)

替换某一行中的:5s/string/replace/g 。

5 表示行数

【操作其它文件】

写入到其它文件:可以直接 w 文件名,这样就会直接创建一个新的文件,并把当前文件的内容拷贝一份到里面。

直接打开另外一个文件: edit 文件名,如果这个时候想看有没有切换成功,可以输入 file 就可以查看当前打开的文件。

五、命令模式下的常用快捷键

【删除】

x :根据光标的位置删除,一次只能删除一个,想要删除多个,可以先按下 想删除的数量 然后再按 x 。

例子:先按300 后按 x,就是删除 300 个字符:300x 。

注:这里可以直接在键盘上按对应的数字,是没有显示的,按完数字再按 x 即可删除。

dw : 删除光标所在处到词尾的内容。

dd : 删除光标所在行, 3dd代表的意思就是删除光标所在位置向下的三行,包括光标所在的行(同 x 批量删除一样)。

【复制】

yy : 复制光标所在的行。

yw : 复制光标所在处到词尾的内容 。

p : 黏贴,此命令是在命令模式下,按照上面的命令复制后,然后光标移动到想要复制的位置,然后按 p 黏贴。

【取代替换】

r : 取代光标所在字符,按一下 r 再按 想要取代的字符。

R : 连续取代字符直到按 Esc 为止,按一下 R 然后依次按后面取代的字符,最后按 Esc 结束。

【撤销】

撤销键按:u 。

ctrl+r : 重做被撤销的操作,这个是如果你改好后不小心按了下 u ,再用这个命令就可以重新回到撤销前的界面。

本文只是简单介绍了下 vim 的常用命令,除了这些还有很多其它的命令,感兴趣的朋友可以更深入地去了解下。

标签:字符,浅谈,删除,模式,Vim,命令,Linux,vim,光标
From: https://www.cnblogs.com/upyun/p/17654204.html

相关文章

  • 浅谈视频汇聚平台EasyCVR中AI中台的应用功能
    AI中台是将人工智能技术如深度学习、计算机视觉、知识图谱、自然语言理解等模块化,集约硬件的计算能力、算法的训练能力、模型的部署能力、基础业务的展现能力等人工智能能力,结合中台的数据资源,封装成整体中台系统。在EasyCVR视频共享融合云平台中,AI中台是专门提供人工智能视频......
  • Linux基础命令:应付测试面试
    1.进入文件命令vi文件名(一定要知道是那个目录下的文件) 下图为进入该文件: 2.编辑文件:先按I进入编辑模式就可以随便写入了保存之前一定要先退出编辑模式:按ESC接下来就是保存:    :q 不保存直接退出    ......
  • CentOS 8 无痕升级到 Rocky Linux
    CentOS8无痕升级到RockyLinux1.升级当前系统dnfupgrade-y2.重启当前系统:reboot3.下载脚本:CentOS8到RockyLinux8https://github.com/rocky-linux/rocky-tools/blob/main/migrate2rocky/migrate2rocky.sh8至9curl-Ohttps://github.com/rocky-linux/rocky-to......
  • Linux su 与 su - 的区别
    问题描述linux是最稳定的系统,为了安全,一般会配置非root权限的用户进行工作,今天聊下linux系统中su和su-的区别主要区别su仅仅是切换了root身份。但Shell环境仍然是普通用户的Shell。su-连用户和Shell环境一起切换成root身份了 ......
  • Linux 内核音频数据传递主要流程 (下)
    来而不往非礼也。前面看到了用户空间应用程序和DMAbuffer之间交换数据,并更新runtime->control->appl_ptr指针的过程,这里看一下硬件设备驱动程序在完成DMAbuffer和硬件设备的数据交换之后,更新runtime->status->hw_ptr的过程。用户空间应用程序,在内核的__snd_pcm_lib_xf......
  • Linux:ls指令
    ls(List):列出某个路径下的所有文件(多个参数可以一起使用)1、用法ls[-option] [--color={never,auto,always}] [--full-time][-time={atime,ctime}] 路径ls[-option]路径1路径2……:列出指定的几个路径的信息常用的是 ls-lt2、参数(加粗项表示常用)参数说明......
  • Windows + Linux 双系统详细安装步骤
    对于新手来说,学习Linux系统有多种方式选择,可以选择虚拟机、可以选择直接安装Linux系统,下面主要和大家分享一下通过直接安装Linux系统的方法。 U盘启动盘的制作准备一个8G以上的U盘(其实4G就足够),备份资料,后面会对U盘进行格式化。然后去ubuntu的官网下载你想要安装......
  • linux服务器docker compose的使用步骤
    之前说了docker的安装,dockercompose的安装,还比较了dockerfile和dockercompose的区别,那么dockercompose的实际应用是怎么样呢?记录下我的实操步骤1、服务器上新建目录,目录情况如下,我的data目录是挂载到数据盘的/data/docker_config/nginx//存放nginx的配置文件/dat......
  • linux 磁盘管理
      这块电脑上有一块磁盘,sda,上面有3个物理分区,sda1,2,3如果想新建一个物理分区,用如下命令输入n新建分区       d删除分区    w保存    q退出   ......
  • Linux中PATH、 LIBRARY_PATH、 LD_LIBRARY_PATH的区别
    Linux中PATH、LIBRARY_PATH、LD_LIBRARY_PATH的区别_YOULDYGL的博客-CSDN博客PATH:放可执行命令所在路径;whichxxx也可以看见xxx命令所在路径LIBRARY_PATH:程序编译期间查找动态链接库时指定的查找共享库的路径LD_LIBRARY_PATH:在程序运行期间查找动态链接库时,指定除了系统默认......