【Linux】开始使用 vim 吧!!!

Linux

  • 1 what is vim ?
  • 2 vim基本概念
  • 3 vim的基本操作 !
    • 3.1 vim的快捷方式
      • 3.1.1 复制与粘贴
      • 3.1.2 撤销与剪切
      • 3.1.3 字符操作
    • 3.2 vim的光标操作
    • 3.3 vim的文件操作
  • 总结
  • Thanks♪(・ω・)ノ感谢阅读
  • 下一篇文章见!!!

1 what is vim ?

我们先来了解 vi ,
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 x window、 mac os、windows。

vim相当于是vi的升级版, vim具有程序编辑能力,可以主动以字体颜色标识语法的正确性,方便代码编写 ,程序简单,编辑速度非常快
综上所述 这是一个老式的文字处理工具,但是功能很齐全,不仅是文本处理工具,还是一个程序编辑工具

最重要的是 vim 生态丰富,使用起来十分方便。

2 vim基本概念

vim具有主要有三个模式(vim具有非常多的模式):
命令模式 底行模式 插入模式

1. 命令/正常模式 (Normal mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
2. 插入模式 (Insert mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是使用的最频繁的编辑模式。
3. 末行模式(last line mode)文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入


(我的vim配置过了,界面略有不同)

3 vim的基本操作 !

我们了解vim之后,下一步就要学习如何使用这个实用工具。
我们分两个部分来详细讲解,如同windos的鼠标与键盘快捷方式。

3.1 vim的快捷方式

3.1.1 复制与粘贴

vim中的复制粘贴操作:

yy 复制当前行
n + yy 连续复制 n 行
p 粘贴到光标下一行
n + p 粘贴 n 次

来看看具体操作效果:
(复制粘贴这里就不放动图了,图片挺直观)
在这里插入图片描述

效果比Ctrl c 、Ctrl v更强大!

3.1.2 撤销与剪切

vim 中的撤销剪切操作:
u 撤销操作
dd 剪切 / 删除 指定行
n + dd 剪切 / 删除 n 行

来看看操作效果:
撤销
在这里插入图片描述
剪切 / 删除
在这里插入图片描述
剪切/删除 n 行
在这里插入图片描述

3.1.3 字符操作

vim 中的字符操作:

shift + ` 切换大小写
n + x 删除 光标后 n 个字符 (一行内)
n + shift + x 删除 光标前 n 个字符 (一行内)
n + r 光标位置进行指定切换 一次可替换多个
shift + r 进入 替换模式 直接进行文本替换

来看看操作效果

切换大小写
在这里插入图片描述
删除字符
在这里插入图片描述
替换字符
在这里插入图片描述

3.2 vim的光标操作

这里如同鼠标一样灵活操作。
vim 中的光标操作:

shift + 4 = $ 光标移动到当前行的结尾
shift + 6 = ^ 光标移动到当前行的开头
gg 移动光标到文本开头
shift + g 移动光标到文本最后一行
n + shift + g 移动光标到文本第 n 行
h j k l 左 下 上 右 移动光标
w 以单词为单位向后移动光标
b 以单词为单位向前移动光标

来看看操作效果:

移动到行开头 / 结尾
在这里插入图片描述
移动到文本开头 / 结尾
在这里插入图片描述
上下左右移动光标
在这里插入图片描述
以单词为单位移动
在这里插入图片描述

3.3 vim的文件操作

文件操作是在底行模式下进行的保存,编译 ,强制等操作。
w 保存
q 退出
!强制进行操作
vs filename 多文件分屏操作
!command 不退出vim 进行 shell 指令操作

来看看操作效果:

保存退出

加粗样式
分屏操作
在这里插入图片描述

总结

vim 的操作我只介绍了一部分,还有许多等待大家探索!!!

Thanks♪(・ω・)ノ感谢阅读

下一篇文章见!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/651470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Power ModeII 插件的下载与使用-----idea

下载 Marketplace里面搜索下载即可 使用 下载后重启软件就可以用了 下面是一些关于Power ModeII ,我的个性化设置截图 以及相关设置解释 插件或扩展的设置面板【用于给代码编辑器或集成开发环境(IDE)添加视觉效果】 主要设置 ENTER POWE…

力扣0092——反转链表II

反转链表II 难度&#xff1a;中等 题目描述 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例1 输入&#xff1a; head [1,2,3,4,5], left 2,…

数学知识第三期 欧拉函数

前言 相信大家在高中的时候接触过欧拉函数&#xff0c;希望大家通过本篇文章能够进一步理解欧拉函数&#xff01;&#xff01;&#xff01; 一、什么是欧拉函数&#xff1f; 欧拉函数是一个在数论中用于描述特定正整数的互质数的概念。具体来说&#xff0c;对于一个正整数n&…

vue项目前端生成EXCEL模板并解析上传JSON

一&#xff0c;安装依赖 并引入 "file-saver": "^2.0.5", "xlsx": "^0.18.5" import { saveAs } from "file-saver"; 二&#xff0c;生成模板 button_23Click() {const self this;// 导入模板下载// const tableDa…

每日一题 力扣2861 最大合金数

2861. 最大合金数 题目描述&#xff1a; 假设你是一家合金制造公司的老板&#xff0c;你的公司使用多种金属来制造合金。现在共有 n 种不同类型的金属可以使用&#xff0c;并且你可以使用 k 台机器来制造合金。每台机器都需要特定数量的每种金属来创建合金。 对于第 i 台机器…

华为机考入门python3--(0)模拟题3-计算字符串重新排列数

分类&#xff1a;排列组合 知识点&#xff1a; 计算字符串中每个字符出现的次数 Counter(string) 计算列表中每个元素出现的次数 Counter(list) 阶乘 math.factorial(num) 排列去重 题目来自【华为招聘模拟考试】 先把每个字符当成唯一出现过一次&#xff0c;计算所有排列…

keepalived+nginx双主热备(有问题私信)

keepalivednginx双主热备 前言keepalivednginx双主热备keepalivednginx双主热备部署安装nginx安装keepalived修改master节点的keepalived配置文件 修改backup节点的keeepalived配置文件配置keepalived主备配置keepalived双主热备 前言 有关keepalived和nginx的一些工作原理&am…

【论文笔记】《Learning Deconvolution Network for Semantic Segmentation》

重要说明&#xff1a;严格来说&#xff0c;论文所指的反卷积并不是真正的 deconvolution network 。 关于 deconvolution network 的详细介绍&#xff0c;请参考另一篇博客&#xff1a;什么是Deconvolutional Network&#xff1f; 一、参考资料 Learning Deconvolution Netwo…

一步步安装Ruby攻略

在大多数操作系统上安装Ruby的步骤基本相同。以下是安装Ruby的详细步骤&#xff1a; 对于Ubuntu或其他基于Debian的系统&#xff1a; 打开终端。输入以下命令更新软件包列表&#xff1a; sql复制代码 sudo apt update 安装Ruby&#xff1a; 复制代码 sudo apt install rub…

ROS2常用命令工具

ROS2常用命令工具 包管理工具ros2 pkg ros2 pkg create ros2 pkg create --build-type ament_python pkg_name rclpy std_msgs sensor_msgs –build-type : C或者C ament_cmake &#xff0c;Python ament_python pkg_name &#xff1a;创建功能包的名字 rclpy std_msgs sens…

【Leetcode】2861. 最大合金数

文章目录 题目思路代码结果 题目 题目链接 假设你是一家合金制造公司的老板&#xff0c;你的公司使用多种金属来制造合金。现在共有 n 种不同类型的金属可以使用&#xff0c;并且你可以使用 k 台机器来制造合金。每台机器都需要特定数量的每种金属来创建合金。 对于第 i 台…

【word visio绘图】关闭visio两线交叉的跳线(跨线)

【visio绘图】关闭visio两线交叉的跳线&#xff08;跨线&#xff09; 1 如何在Visio绘图中关闭visio两线交叉的跳线&#xff08;跨线&#xff09;第一步&#xff1a;打开Visio并创建您的图形第二步&#xff1a;绘制您的连接线第三步&#xff1a;关闭跳线第四步&#xff1a;手动…

centos,rocky安装部署guacamole

安装部署guacamole 部署的环境是 Rocky9.3 版本,部署的 guacamole 的版本是 1.5.4 一、Rocky下载对应的工具 安装对应的开发环境建议一条一条命令执行 sudo yum install epel-release -y sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro sudo rpm -Uvh …

dnSpy调试工具二次开发2-输出日志到控制台

本文在上一篇文章的基础上继续操作&#xff1a; dnSpy调试工具二次开发1-新增菜单-CSDN博客 经过阅读dnSpy的源码&#xff0c;发现dnSpy使用到的依赖注入用了MEF框架&#xff0c;所以在源码中可以看到接口服务类的上面都打上了Export的特性或在构造方法上面打上ImportingConst…

C/C++ - 类的封装特性

目录 类的封装 语法格式 声明定义 分文件 访问权限 类作用域 对象模型 构造函数 默认构造函数 带参构造函数 拷贝构造函数 构造函数重载 委托构造函数 初始数据列表 构造默认参数 构造函数删除 析构函数 析构函数概念 析构函数特性 析构函数示例 析构调用…

坚持刷题 | 平衡二叉树

文章目录 题目考察点代码实现实现总结对实现进一步改进扩展提问 坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天继续二叉树&#xff1a;平衡二叉树 题目 110.平衡二叉树 考察点 递归能力&#xff1a; 能否使用递归来解决问题。树的基本操作&#xff1a;能否正确地访…

DS:带头双向循环链表的实现(超详细!!)

创作不易&#xff0c;友友们给个三连吧&#xff01;&#xff01;&#xff01; 博主的上篇文章介绍了链表&#xff0c;以及单链表的实现。 单链表的实现&#xff08;超详细&#xff01;&#xff01;&#xff09; 其实单链表的全称叫做不带头单向不循环链表&#xff0c;本文…

zabbix使用自动发现批量监控服务器

当有大量新增服务器需要监控时&#xff0c;为避免一台一台手动操作浪费人力&#xff0c;我们使用自动发现功能来进行操作&#xff1a; 以下以zabbix6.4.0版本为例 如下,点击自动发现&#xff0c;创建发现规则&#xff1a; 点击更新&#xff0c;保存&#xff0c;之后点告警---…

ubuntu 22.04 安装redis并设置远程连接

ubuntu 22.04 安装redis并设置远程连接 1、基础安装 更新包&#xff1a; sudo apt update安装redis&#xff1a; sudo apt install redis-server安装完毕后会自动启动&#xff0c;查看状态&#xff1a; sudo systemctl status redis-server注意&#xff1a;如果你的服务器上仅用…

在 React 组件中使用 JSON 数据文件,怎么去读取请求数据呢?

要在 React 组件中使用 JSON 数据&#xff0c;有多种方法。 常用的有以下几种方法&#xff1a; 1、直接将 JSON 数据作为一个变量或常量引入组件中。 import jsonData from ./data.json;function MyComponent() {return (<div><h1>{jsonData.title}</h1>&…