浅谈 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 的常用命令,除了这些还有很多其它的命令,感兴趣的朋友可以更深入地去了解下。

相关推荐
朱小弟cs69 小时前
Orange的运维学习日记--41.Ansible基础入门
linux·运维·学习·ci/cd·自动化·ansible·devops
CIb0la9 小时前
kali linux 2025.2安装WPS并设置无报错的详细步骤
linux·运维·wps
醉方休10 小时前
Node.js 精选:50 款文件处理与开发环境工具库
linux·运维·node.js
代码老y11 小时前
从裸机到云原生:Linux 操作系统实战进阶的“四维跃迁”
linux·运维·云原生
CMCST12 小时前
CentOS 7.9 升级 GLibc 2.34
linux·运维·centos
xiep143833351012 小时前
Rocky Linux 10 部署 Kafka 集群
linux·运维·kafka
Hello.Reader14 小时前
Elasticsearch Node.js 客户端的安装
elasticsearch·node.js·vim
笨鸟要努力16 小时前
Ubuntu 全盘备份
linux·运维·ubuntu
ChironW16 小时前
Ubuntu 22.04 离线环境下完整安装 Anaconda、CUDA 12.1、NVIDIA 驱动及 cuDNN 8.9.3 教程
linux·运维·人工智能·深度学习·yolo·ubuntu
轻松Ai享生活17 小时前
linux 日志详解
linux