Linux:文本编辑器 - vim

简介: Linux:文本编辑器 - vim

vim基本操作

Vim(Vi Improved)是一款功能强大的文本编辑器,是Unix/Linux系统中广泛使用的编辑器之一。它源于上世纪70年代开发的Vi编辑器,后来经过不断完善和扩展而发展成为Vim。

Vim的主要特点包括:

  • 高度可配置和扩展性:Vim支持大量插件和脚本,用户可以根据需求自定义Vim的行为。
  • 高效的编辑模式:Vim采用基于模式的编辑方式,用户可以通过键盘命令快速完成各种编辑操作。
  • 跨平台:Vim支持多种操作系统,包括Linux、macOS和Windows。
  • 丰富的功能:Vim提供了语法高亮、代码折叠、多缓冲区编辑等强大的编辑功能。

Vim是一款功能强大、高度可定制的文本编辑器,广泛应用于各种编程和文本编辑场景。它的发展历程也体现了开源软件不断创新和完善的过程。

使用vim前,如果你没有下载过,可以执行以下指令下载vim:

yum install -y vim

执行该指令需要root权限,要么加上sudo进行提权,要么以root身份执行。

下载好vim后,我们就可以用它来编辑文本了,vim既可以直接编辑现有文本,也可以直接创建一个不存在的文件

语法为:

vim 文件名

比如在此我要编辑一个test.c的文件,就输入vim test.c,打开后界面如下:

这个时候你还不能编辑,vim是有多种模式的,默认情况下处于普通模式。此时不能编辑文本,如果想要书写文本,要进入插入模式只需要按一下i,就可以从普通模式进入插入模式。此时你的左下角会有INSERT样式,说明你成功进入了插入模式。

现在你就可以正常编辑代码了,我这里写一个简单的C语言代码:

那么要如何退出保存呢?想要退出保存,就先进入底行模式,而当前的插入模式不能直接进入底行模式,要先按下Esc键回到普通模式。当你左下角的INSERT消失了,就说明你退出插入模式了,如果想从普通模式进入底行模式,按下shift + ;,其实也就是按下一个:,此时你会发现你的光标跳转到了底部,并且底部多出了一个冒号:。

说明你成功进入底行模式了,先教两个基本的命令:

w:保存当前修改

q:退出

一般来说,我们会选择保存并退出,此时只需要把两个字母一起输入即可wq

再摁下Enter键,表示执行该指令,此时我们就可以退出vim了。如果你这个文件原先就存在于目录中,你可以用cat试试有没有修改成功,如果你这个文件是直接通过vim创建的,那么你可以使用ls看看该文件有没有创建出来。

在我的目录下,已经有该文件,并且写入成功了:

我们简单讲解完了vim的三个模式:

Vim有以下几种主要的工作模式:

  1. 普通模式(Normal mode):
  • 这是Vim的默认模式。
  • 在这个模式下,键盘输入的字符被解释为命令,而不是插入文本。
  • 用户可以使用各种快捷键进行文本编辑、光标移动、文件操作等。
  1. 插入模式(Insert mode):
  • 在这个模式下,键盘输入的字符会被直接插入到文档中。
  • 用户可以输入新的文本,编辑现有文本。
  • 通过按下 iao 等命令可以进入插入模式。
  1. 底行模式(Command-line mode):
  • 在这个模式下,用户可以输入Vim的各种命令,如保存、退出、查找替换等。
  • 通过按下 :shift + ;)进入命令行模式。

接下来我就详细讲解各个模式下的操作。


普通模式

模式切换

vim有非常多种模式,而普通模式是所有模式的枢纽,不论进入任何一种模式,都要先回到普通模式。插入模式,底行模式等等各种模式想要切回普通模式,都是按Ecs

普通模式进入插入模式

i:从光标位置开始编辑文本

a:从光标位置的下一个位置开始编辑文本

o:在光标位置插入新的一行,并从行首开始编辑文本

普通模式进入底行模式

:,也就是shift + ;


移动光标

处于普通模式时,有很多快速移动光标的键位:

键位 功能
h 光标向左移动,相当于
j 光标向下移动,相当于
k 光标向上移动,相当于
l 光标向右移动,相当于
Gshift + g 光标移动到文本末尾
#G# + shift + g 光标移动到第#
$shift + 4 光标移动到当前行末尾
^shift + 6 光标移动到当前行开头
w 以单词为单位,光标移动到下一个单词开头
b 以单词为单位,光标移动到上一个单词开头
#l 光标移动到该行第#个位置
gg 光标移动到文本开始

复制粘贴

键位 功能
dd 剪切当前光标所在行
#dd 剪切当前光标开始的#
yw 把光标所处的单词,复制到缓冲区
#yw 把光标开始的#个单词,复制到缓冲区
yy 把光标所处的行,复制到缓冲区
#yy 把光标开始的#行,复制到缓冲区
p 将缓冲区的内容,复制到光标开始的位置
#p 将缓冲区的内容,复制到光标开始的位置,连续复制#

删除

键位 功能
x 删除光标所在的字符
#x 删除光标开始的#个字符
Xshift + x 删除光标前一个字符
#X# + shift + x 删除光标前#个字符

替换

键位 功能
r + xxx 将光标所处的字符替换为xxx
#r + xxx 将光标开始的#个字符替换为xxx

这里要介绍另外一个模式,替换模式,按下shift + r就可以进入替换模式。此时输入的所有内容都会直接覆盖原先的内容,同样的如果需要退出,按Esc即可回到普通模式。


撤销

键位 功能
u 撤销上一次操作


底行模式

进入底行模式,按下shift + 即可,然后在:后面输入指令。

行号

输入set nu:在文件的每一行前列出行号

输入set nonu:取消每一行前的行号

效果如下:



查找

/xxx:查找xxx字符串,如果不是当前在字符串,按n会跳到下一个该字符串

比如输入/hello


其就会高亮标注所有匹配的字符串,此时再按下n,光标就会跳转到下一个字符串。不过这个高亮是不会自己消除的,不论你后面进入什么模式,这个高亮都会一直存在。

此时就要输入以下指令:

noh:取消高亮

相关文章
|
23天前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
70 1
Linux系统之部署轻量级Markdown文本编辑器
|
3月前
|
Unix Linux 开发工具
在Linux中,有哪些基本的 Vim 命令?
在Linux中,有哪些基本的 Vim 命令?
|
27天前
|
存储 运维 搜索推荐
|
29天前
|
Java Unix Linux
Linux vi/vim
Linux vi/vim
19 5
|
29天前
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
54 1
|
17天前
|
Unix Linux 开发工具
Linux Vim的 命令大全
Linux Vim的 命令大全
16 0
|
2月前
|
存储 Linux Shell
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
这篇文章介绍了Vim编辑器的基本使用、常用命令和模式,以及Linux系统中用户和组的管理方法,包括用户和组相关文件如/etc/passwd、/etc/shadow和/etc/group的说明。
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
|
2月前
|
存储 Linux 编译器
linux中vim介绍以及常用命令大全
linux中vim介绍以及常用命令大全
73 8
|
3月前
|
搜索推荐 Linux 网络安全
Linux系统中的Vim编辑器
【8月更文挑战第21天】Vim是一款功能强大的文本编辑器,在Linux系统中广泛使用。它具有三种基本模式:命令模式,用于执行操作但不能编辑文本;插入模式,允许用户像常规编辑器那样输入文本;底线命令模式,用于保存、退出及查找替换等操作。Vim还支持多窗口编辑、宏录制及插件扩展等功能,并可通过配置文件个性化设置。因其高效性、良好的可移植性和远程编辑能力,Vim特别适用于开发者和系统管理员。
|
4月前
|
JSON Java Linux
linux 命令使用总结:vim,nohup,find,df,du,sudo,netstat,ll,curl,lastlog
linux 命令使用总结:vim,nohup,find,df,du,sudo,netstat,ll,curl,lastlog
65 5