关键词:
👑作者主页:@进击的安度因
🏠学习社区:进击的安度因(个人社区)
📖专栏链接:Linux
文章目录
一、前言
今天 a n d u i n anduin anduin 将为大家讲解 Linux 下一款功能十分强大的编辑器 vim 。vim 十分好用,但是好用的前提是 熟练度 + 配置 两者都有的情况下才能得心应手。而新手对于 vim 是很难操作的,所以今天我们会讲解 vim 的基本使用,并且讲解 vim 相关的配置。帮助大家快速上手 vim 编辑器。
二、vim基本概念
vim 是一个功能非常强大的全屏幕文本编辑器,在 Linux 中,vim 编辑器被广泛使用。因为其功能丰富,尤其受程序员喜爱。
vim 也是一个类似于 vi 的著名的功能强大、高度可定制的 文本编辑器 ,在 vi 的基础上改进和增加了很多特性。
vim 和 vi 一样,是多模式编辑器,不同的是 vim
是 vi
的升级版本,它不仅兼容 vi 的所有指令,并且糅合了一些新的特性在 vim 中。例如语法高亮、可视化操作,这些不仅可以在终端运行,也可以也可以运行于 x window、 mac os、windows 。
区分编辑器和 I D E IDE IDE :
可能我们之前就是在 vs2022 、Devc++ 上写代码,在这类 I D E IDE IDE 中,一个软件就可以涵盖所有功能,包括编辑,编辑,调试等等;而我们的 vim 是编辑器,单纯是写代码的。如果要编译则需要用到 gcc,g++,调试需要用到 gdb 。工具之间互相独立,虽然 vim 可以对功能进行整合。但是还是要拎清概念:vim 是一款编辑器。
vim 拥有的模式一共有 12 12 12 种模式,但我们 真正常用的只有三种 :命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode) 。所以我们今天在将 vim 基本操作时,主要围绕这三种模式进行讲解:
先了解一下这三种模式:
- 正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode 。命令模式的功能很丰富,使操作便捷。
- 插入模式(Insert mode)
只有在Insert mode下,才可以做 文字输入 ,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
- 底行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。如果要查看你的所有模式方法为打开vim,底行模式直接输入
:help vim-modes
三、vim 基本操作
首先,我们先讲讲最基本的操作,不说原理,只看操作。
当我们在终端输入 vim 时,会弹出这个界面:
这个就是我们 vim 的界面,如果要退出,那么就需要按下 : q
,退出。
而 vim 另一个最基本的操作就是以 vim 方式打开文件,指令:vim file
,这里的 file
为文件名,如果文件不存在,当保存并退出 vim 时,会自动创建该文件。如果文件存在,则会直接打开文件。但是此刻,我们是不能进行输入操作的。
初识 vim 后,我们提出两个问题:
: q
为什么可以退出界面?是和模式有关吗?- 之前说到过模式,那么
vim file
进入的界面默认是什么模式?为什么不能输入?
大家先别着急,因为我们接下来讲解的就是三种模式的基本操作,而这两个问题在我讲完三种模式的操作时,大家自然也就明白了,所以我们接着往下看~
1、模式切换
vim 默认打开为 命令模式 ,命令模式下,是无法进行输入操作的。在命令模式下,可以实现对各种模式的切换,比如:
- 命令模式 切换至 插入模式 :按 i / a / o 进入插入模式,三种方法都具有不同的效果。
- 命令模式 切换至 底行模式 :
shift :
两个键同时按住进入模式。进入模式后,在 vim 左下角出现了:
,q
直接退出 ;wq
:w 保存,q 退出,保存退出。- 任意模式 切换至 命令模式 :按 E S C ESC ESC ,直接切换至命令模式。
对于上面的切换操作可以用一张图表示:
了解了这些,我们相当于已经学会了 vim
的最小集(能操作但不多),基于这些,我们尝试在 vim
下写一段代码:
2、命令模式
命令模式的目的就是让 vim 编辑更加高效
在命令模式下,我们可以使用 h
、j
、k
、l
进行 左、下、上、右 的光标移动。这种规定可以使得操作更加高效,集中。
下面,我们对常用命令做出一些整理(下面出现的 n
均代表数字) :
复制粘贴剪切 :
- yy / nyy :复制光标所在行或者复制包含当前行在内的 n 行
- p / np :粘贴一行或多行相同内容到当前光标所在行之下
- dd / ndd :对当前行或者当前行在内的 n 行的内容进行剪切,移动光标到目标行进行 p 粘贴(只剪切,不粘贴相当于就是删除)
撤销 :
- u :撤销上一步操作
- ctrl + r :对撤销进行撤销
撤销只能对于本次操作内,退出保存再次操作时,是无法撤销的。
光标定位:
对全局文档:
- shift g :将光标定位到文档结尾
- gg :将光标定位到文档开头
- n shift g : 将光标定位到文档指定行
对局部长文本行(例如若干行100字符长度,行内快速定位):
- shift $ :将光标定位到当前文档行的结尾
- shift ^ :将光标定位到当前文档行的开头
- w / b :按照单词为单位,进行后 / 前移动(单词定义:对于长串字符组成的非单词也认为是单词)
- nw / nb :默认单词数从 0 开始,进行后 / 前移动 n 个单词间距
文本编辑 :
- shift ~ :对文本行进行快速大小写切换,小写转大写,大写转小写。按住不动默认一直切换,直到文本行末尾
- r 字符 / nr 字符 :替换光标所在的字符或者对于 n 个字符文本行进行批量化替换;如果 n 超过文本行长度,则不会进行替换
- shift r :进入替换模式,该模式输入什么则对光标位置完成对等的替换,按退格键删除就是复原
- x / nx :对文本行内进行向后删除或者对光标开始 n 个字符进行向后删除,按住不动默认一直删除,简单概括:行内删除,左侧–>右侧
- shift x / shift nx :行内删除,右侧–>左侧
由于命令行模式指令较多,且部分指令单独演示起来效果不太好,所以我就完整演示一下 光标定位组 ,大家看一下效果即可:
3、插入模式
- 按 i 进入插入模式后,从光标当前位置开始输入
- 按 a 进入插入模式后,光标往后跳转一个字符,从跳转后位置开始输入
- 按 o 进入插入模式后,另起新的一行,从行首开始输入
4、底行模式
命令模式按 shift 进入底行模式。
调出 / 隐藏行号:
- set nu :显示行号
- set nonu :隐藏行号
搜索 :
: /关键字
:按照关键字搜索数据,并显示高亮
保存和退出 :
- w :保存
- q :退出
- wq :保存并退出
- w! :在写保护文件情况下无法保存,强制保存。 ! 代表强制
- q! :强制退出
- wq! :强制保存并退出
强制的前提是 有权限 ,没权限照样不能强制。 !
适用于强行修改写保护文件或配置文件等操作。
不退出 vim 执行 shell 命令 :
底行模式中,可以通过 !command
来完成不退出 vim ,执行 shell 指令,例如我们执行 ls -l
指令:
执行命令之后,会跳转到终端,这时按下 Enter
键返回。
批量替换数据:
%s///g
,可以对数据进行批量替换,g 代表全局,例如: %s/hello/HELLO/g
,是对全局中,将 hello 替换为 HELLO
分屏 :
在底行模式下使用vs file
:创建一个 file
文件,这样就可以分屏。
如果想要知道我们当前处于哪个屏幕,只要明确一点:在 vim 中,光标在哪里,我们就是在编写哪个文件
通过 ctrl + ww
我们就可以切换到不同界面,分屏可以支持多个,但是推荐一般分屏 2 - 3 个就够用了,如果对于退出文件还是常规操作,下面我们全部演示一下:
四、vim 的配置
我们上面演示操作的时候,可以发现当前使用的 vim 编辑器,没有智能化补全,没有缩进,连 tab 键都是八格,使用起来非常不方便。所以我们的 vim 通常需要配置。所谓配置,就是按照固定方法,让 vim 编辑器编写代码更加舒适,更加利于使用。
通常 vim 配置有两种方案:自定义配置 或 自动化配置 。
自定义配置:
自定义 配置,就是按照自己的喜好配置,但是配置的时候可能会遇到很多问题,所以接下来我们简单就讲一下原理。
vim 在启动时,会自动在当前用户的 家目录 下,寻找配置文件,如果没有,就是默认配置。
当前我们是没有配置文件的,所以需要手动创建一个:
[lx@VM-4-3-centos ~]$ touch .vimrc
现在 .vimrc
就是当前用户的配置文件。一个用户对应一个 vim 配置,如果只对当前用户进行配置,是不会影响其他用户的 。
使用 vim .vimrc
打开配置文件,进行相关配置,保存并关闭后,打开 vim ,这些配置会立马生效。
例如,我们随意进行一些配置:
set nu
syntax enable
set cursorline
set expandtab
set tabstop=4
set shiftwidth=4
set smarttab
set autoindent
set encoding=utf-8
set termencoding=utf-8
set smartindent
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap <ESC>i
inoremap < <><ESC>i
这些可以完成一些基本配置,但是还是有一些问题的,比如成对大括号出现无法智能缩进等…
如果想要自定义配置的好的话,可以去查找一下资料,研究一下,配置出自己心仪的 vim ,虽然过程可能比较繁琐,但是一切都是为了自己的写代码时的舒适度。
博主是比较懒惰,对于一些细节要求也不多,所以采用的是第二种配置方案。
自动化配置 :
这种就是博主使用的配置方案。
某神为了解决小白在配置 vim 时十分繁琐的问题,于是在 gitee 中上传了一份自动配置方案。唯一的缺点是:该配置当前只支持 centos 7
版本,而博主也十分幸运,恰巧就是这个版本。
首先打开 gitee
搜索 vimforcpp
,打开后往下划或者直接点击 [该链接] 直接跳转。
然后看到安装方法
复制框起来的指令,到 Linux 终端:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
然后敲击回车,输入 root 账号密码,即可开始安装,安装界面:
输入密码,等待安装成功后,根据提示输入:
source ~/.bashrc
就可以开始使用了~
该配置支持代码高亮,智能补齐、缩进,和语法提示等多种功能,不可谓不好用,接下来,就由我来演示一下:
版本正确的小伙伴们,还在等什么,赶紧使用起来!
五、结语
相信看到这里的小伙伴已经对 vim 的基本使用和配置有一定了解了。开头提出的问题大家应该可以轻松回答出来。
但是我们这里只是带大家上手,vim 还有很多操作,使用好 vim 可以让 Linux 环境下的开发事半功倍。
所以 a n d u i n anduin anduin 也为大家找来了陈皓大佬的 “vim 练级文章” ,有兴趣的小伙伴可以前去阅读:
那么到这里,本篇文章也就到此结束了,我们下期见~
linux|人生苦短,我用vim最受欢迎的编辑器(代码片段)
一探顶级编辑器——Vim一、初次见面,你好vim1、vim的基本概念2、IDE与编辑器的区别3、vim中的五种常见模式介绍二、初出茅庐,vim基本操作1、安装vim,进入vim2、vim中的模式切换📺三、初露锋芒,vim指令集1、&... 查看详情
linux中vim使用及用户管理(代码片段)
1、Vim编辑器1.1、什么是VimVim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说,vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步... 查看详情
vim的基本使用(代码片段)
vim的基本使用文章目录vim的基本使用配置vimvim常见的模式及如何切换命令模式插入模式底行模式替换模式vim遇到打开时的警告信息可视区块(Visualblock)批量注释vim是Linux操作系统上文本编译器,Linux上面的命令,... 查看详情
linux——vim常用操作命令
...操作光标跳转剪贴复制撤销修改3.底行模式操作4.配置vim编辑器使用文件配置快速配置1.vim的基本概念概念:vim重点解决代码编写的问题,本质文本编辑器,是具有多模式的编辑器vim中有很多种模式,目前掌握三种... 查看详情
linux——基础开发工具和vim编辑器的基本使用方法
目录Linux软件包管理器yumLinux编辑器-vim使用1.vim的基本概念 2.vim的基本操作3.vim正常模式命令集4.vim末行模式命令集如何配置vimLinux软件包管理器yumyum是Linux下的一个下载软件的软件对于yum,现阶段只需要会使用yum的三... 查看详情
vim文本编辑器的基本使用(代码片段)
Vim文本编辑器是Linux/Unix系统下最常用的工具之一,通过该工具可以很方便的建立、修改、编辑文档或者程序文件,其作用类似与windows系统下的记事本或者notepad++,因此熟练掌握该工具的使用对于使用linux系统是非常有必要的。... 查看详情
快速学会使用vim编辑器(代码片段)
...天的Vim,那么什么是Vim呢?Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器也就是说Vim是从Vi发展而来的,... 查看详情
vi/vim编辑器基本使用(代码片段)
VI编辑器是一个基于命令行的、功能强大的文本编辑器,最早为Unix系统开发,后来也被移植到许多的Unix和Linux发行版上。在Linux上还存在着另一个VI编辑器的高阶版本——VIM(也被称作VIIMproved)。VIM只是在VI已经很强的功能上添... 查看详情
linux编辑器——vim的使用
vim的基本概念vim是什么?vim是一款多模式的编辑器,是vi的升级版本,在兼容vi指令的同时,还带有一些新的特性在里面。通过本章学习,我们以后便可以在Linux下用vim来进行编写我们的源代码了。vim的安装与基本使用在一些云服... 查看详情
linux系列使用vi文本编辑器
目录 前言一.vi文本编辑器1.使用vi文本编辑器2.vi编辑器的工作模式3.命令模式中的基本操作(1)模式切换(2)移动光标(3)复制、粘贴和删除... 查看详情
linux环境基础开发工具使用(代码片段)
Linux环境基础开发工具使用Linux软件包管理器yumLinux编辑器-vim使用vim的基本模式vim的基本操作vim正常模式命令集vim末行模式命令集vim配置Linux编译器-gcc/g++使用Linux编译器-gcc使用预处理(进行宏替换)编译(生成汇编)... 查看详情
linux环境及工具(yum/vim/gcc/g++/gdb/make/makefile)(代码片段)
...零、前言本章主要将解学习软件包的概念和yum工具以及vim编辑器的使用操作一、Linux软件包管理器yum1、yum介绍概念:yum(YellowdogUpdater,Modified)是Linux下非常常用的一种包管理器Linux上如何安装软件:1.源代码安装(麻烦... 查看详情
vim详解(代码片段)
...么要学习vi/vim呢?为什么要使用vim?虽然在linux下的文本编辑器众多,这些工具都有各自的优点,但是有几点是其它编辑工具所不能比拟的1所有的类Unix系统都内建vi,其它的编辑工具则不一定,而vim相当于是vi的升级版2很多软件... 查看详情
linux目录结构,路径,系统目录作用及指令介绍,文件管理基本命令,查看文件内容命令,vim编辑器(代码片段)
linux系统的目录结构windows系统:多跟结构 C:\\a\\b\\c\\d.txt D:\\xxx\\yyy\\zzz\\1.txtlinux系统:单根结构 /a/b/c/d.txt /是根 一切文件和文件夹在/内创建绝对路径与相对路径从跟开始写的路径就是绝对路径,否则就是相对路径/a/b/c/1.txtcd/a/b(... 查看详情
vi/vim基本使用方法
...说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于xwindow、macos... 查看详情
vim常用配置及插件安装使用
在Linux中习惯了vim编辑器。找了一些资料后自己尝试配置起来了。下面是一些过程。 首先需要知道vim相关的配置都是写在~/.vimrc文件中。我下面的笔记只配置了一些我常用的功能,如果需要知道全部的... 查看详情
linux_开发工具vim的基本操作与配置
vi(vim)是上Linux非常常用的编辑器,其有很多模式可以在编辑文件时使用这里只总结其三种模式:1.命令模式2.底行模式3.插入模式1.命令模式:2.底行模式:3.插入模式当打开vim时默认打开的是命令模式文章目录1.命... 查看详情
正确使用vim编辑器的姿势(代码片段)
...视化接口(VisualInterface)vim:是vi的增强版(viiMprove)vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。它是我们使用Linux系统不能缺少的工具。Unix... 查看详情