当前位置: 首页 > article >正文

从0开始linux(5)——vim

欢迎来到博主的专栏:从0开始linux
博主ID:代码小豪

文章目录

    • vim的多种模式
      • 底行模式命令
      • 命令模式
      • 视块模式(visual block)
    • vim的配置

vim是linux系统的文本编辑器。就像windows的记事本一样。

使用vim指令可以使用vim打开一个文本文件。
vim [文件名]

比如,我们可以使用lysb666(普通用户)在/home/lysb666下创建一个code.c文件

touch code.c
vim code.c

此时,我们将code.c文件以vim打开。
在这里插入图片描述

vim的多种模式

vim本身有多种模式,但是常用的模式主要有三种,掌握这三种模式就可以基础使用vim编辑器了。如果有用上其他模式的场景,博主再进行补充。

当我们刚打开code.c时,并不能对该文件进行文本编写。这是由于vim有三种模式。

  • 在默认情况下,vim处于命令模式,此时我们只能使用命令对vim进行操作
  • 在命令模式下,输入i可以进入插入模式。在插入模式中,我们可以对文件进行文本编辑。
  • 在命令模式下,输入:(shirt+;),可以进入底行模式,在底行模式当中可以输入指令让vim编辑器进行打开其他文件,保存并退出,等操作。
  • 当我们处于插入模式或底行模式时,按下esc可以回退到命令模式。

在这里插入图片描述
现在我们在命令模式下输入i进入插入模式,并且写上一个简单的代码。
在这里插入图片描述
在插入模式下,可以使用vim进行文本编辑,因此插入模式的功能很简单,现在我们按下esc回退到命令模式,然后shirt+;进入底行模式。

底行模式命令

进入底行模式后,光标会来到最底行,我们就可以在底行输入命令让vim进行对应操作。
在这里插入图片描述
比如:
[w]:保存文件
[q]:退出vim
[wq]:w和q的组合命令,保存并退出vim
[set number]:让文本显示行号,输入简写[set nu]也是同样的操作。
在这里插入图片描述

[no number]:让文本不显示行号,输入[no nu]也行
[n]输入一个数字n,让光标跳转到第n行。比如输入5,就会跳转到第5行
在这里插入图片描述
[/ string]输入/,并在后面写上一个字符串,会跳转到第一个重复的字符串,并且将其余相同的字符串高亮显示,为了演示这个操作,博主将printf(“hello world”)复制粘贴了十行,如果在底行中输入/hello,那么文本当中将hello字符串显示高亮,按下[n]键光标会跳转到下一个hello上。
在这里插入图片描述
[? string]输入?,并且写上一个字符串,会跳转搭配第一个重复的字符串,相同的字符也会高亮,但是按下[n]键,光标会跳转到上一个相同的字符串上。

多窗口模式
有时候需要同时对两个文件进行操作(比如将一个文件的部分内容,复制到另外一个文件当中)。如果我们要频繁的关闭,打开其他文件,还是非常不舒服的,如果能像我们使用windows打开浏览器的时候一样,可以多个窗口,那样不就方便许多了吗?
[vs]vs+文件名可以在多窗口的情况下对两个文件进行操作,比如博主这里创建一个空的文件名为text.txt。

在底行模式中输入vs text.txt,可以多窗口的打开text。txt和code.c文件。
在这里插入图片描述
由于窗口有多个。而光标只有一个,有时候我们需要让光标跳转到其他文件当中进行操作
[ctrl+w+w]:光标跳转到下一个文件

此时,我们可以尝试将code.c的内容复制粘贴到text.txt文件当中。
在这里插入图片描述
命令操作

命令模式

在插入模式当中,除了esc键,其余按键都会被当做数据输入,而在底行模式当中,除了esc键,其余按键都会当成指令。因此,只有命令模式才能用按键作为命令进行操作。

光标移动按键
[h]:向左移动一个字符,相当于(←)键
[j]:向下移动一个字符,相当于(↓)键
[k]:向上移动一个字符,相当于(↑)键
[L]:向右移动一个字符,相当于(→)键

一个一个字符移动还是很麻烦的,我们可以在这些按键之前加上数字,比如输入20j,即光标向下移动20个字符
[shift+h]:光标移动到第一行的第一个字符
[shift+g]:光标移动到最后一行的第一个字符
[n+gg]:光标移动到第n行,比如3gg就移动到第三行,而gg则相当于1gg,即移动到第一行
[shift+4]:光标移动到行尾
[shift+6]:光标移动到行首

修改操作
如果修改文本只会在插入模式当中一个一个字符操作,那么肯定会很痛苦的,我们可以在命令模式下进行一些批量的修改操作
[x]:删除当前光标的字符(相当于delete键)n+x则可以批量的删除字符,比如10x,相当于delete10次
[shift+x]删除光标以前的字符(相当于bacjspace键)也可以n+shift+x,同理。
[dd]:剪切光标指向的一行,n+dd则将光标以下的n行进行剪切,比如20dd则是剪切光标以下20行的数据
[yy]:复制光标指向的一整行,可以n+yy批量复制,同上。
[p]将剪切或复制的内容粘贴到当前光标指向的下一行,可以n+p,即将复制的内容连续粘贴20次。
[shift+p]:将剪切或复制的内容粘贴到当前光标指向的上一行,可以n+shift+p,同上
[u]撤销上一次的操作。类似于word当中的ctrl+z。
[ctrl+r]回到上一次的操作。

视块模式(visual block)

在命令模式下,对于文本的操作都是以行为单位的操作,如果想要像windows一样对块进行操作,就要用上vim的视块模式。
在这里插入图片描述
按下[v]进入视图模式,按下[ecs]回到命令模式。

在视图模式下,输入不同的命令会有不同的功能:
[v]:将光标经过的字符进行旋转:类似于上面的操作
[shift+v]:将光标经过的行进行选择,如下:
在这里插入图片描述
这些变色处理的字符就是选中的文字。
[ctrl+v]:块选择,如下:
在这里插入图片描述

[y]将选中的字符进行复制
[d]:剪切选中字符
[p]:粘贴刚刚复制或剪切的字符

批量修改文本
如果我们想要注释掉一整段代码,如果一行一行输入是不是有点太慢了。我们在视块模式下,[ctrl+v]进入块选择模式,选中我们要加上注释的位置,然后[shift+i]进入插入模式,写上//,然后按两次esc,批量注释就搞定了。
在这里插入图片描述

注意左下角的状态变化

vim的配置

如果我们熟悉了用vs2022这种集成开发环境,那么使用vim这种比较原始的工具肯定不太适应的,不过好在在网上可以找到vim的插件。

比如自动缩进,自动补齐,以及文本高亮之类的功能,能让我们在使用vim编程的时候更有效率。比如博主的vim配置就是这样的:
在这里插入图片描述

关于vim的配置方案,大家在网上根据自己的需求寻找就行。


http://www.kler.cn/news/321529.html

相关文章:

  • 微信小程序-canvas
  • go语言网络编程
  • 【Linux 从基础到进阶】Kafka消息队列配置与管理
  • C/C++中的内存管理
  • c语言200例 063 信息查询
  • 数据结构 ——— 移除元素(快慢指针)
  • io流(学习笔记03)字符集
  • 大数据时代的PDF解析:技术与挑战
  • Python:百度贴吧实现自动化签到
  • Spring是什么
  • 有源蜂鸣器(5V STM32)
  • 无人机之虚拟云台技术篇
  • LeetCode 137. 只出现一次的数字 II
  • Linux安装vim超详细教程
  • MySQL重点,面试题
  • 深入Android UI开发:从自定义View到高级布局技巧的全面学习资料
  • RestSharp简介
  • 通信工程学习:什么是SDN软件定义网络
  • 电脑如何设置代理IP:详细步骤指南
  • STM32 入门教程(江科大教材)#笔记4
  • 01.前端面试题之ts:说说如何在Vue项目中应用TypeScript?
  • 趣笔阁爬虫实验
  • Hadoop FileSystem Shell 常用操作命令
  • GO Message Bus
  • 【Python报错已解决】AttributeError: ‘tuple‘ object has no attribute ‘log_softmax‘
  • 华为为什么要做三折叠屏手机?
  • (已解决)torch.load的时候发生错误ModuleNotFoundError: No module named ‘models‘
  • kafka分区和副本的关系?
  • 深度学习:ResNet残差神经网络
  • 【OpenSSL】OpenSSL 教程