高效文本编辑与导航:Vim中的三种基本模式及粘滞位的深度解析
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。
我是Srlua小谢,在这里我会分享我的知识和经验。🎥
希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮
记得先点赞👍后阅读哦~ 👏👏
📘📚 所属专栏:Linux、运维
欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙
目录
粘滞位
粘滞位的使用
粘滞位的优点
适用场景
文本编辑器Vim三种模式
1. 命令模式(Normal Mode)
光标所在行
光标快速定位
2. 插入模式(Insert Mode)
3. 底行模式(Command-Line Mode)
总结
在此之前,为权限篇做一个补充:什么是粘滞位
粘滞位
在Linux中,"粘滞位"(Sticky Bit)是一种文件权限设置,主要用于目录,以确保只有文件的所有者或超级用户可以删除或重命名目录中的文件。它通常用于公共目录,如/tmp
,以防止用户删除或修改其他用户的文件。
粘滞位的使用
-
设置粘滞位: 可以使用
chmod
命令来设置粘滞位。例如:chmod +t /path/to/directory
-
查看粘滞位: 使用
ls -l
命令查看目录权限时,如果粘滞位被设置,会在权限字符串的最后一位显示为t
:drwxrwxrwt 9 root root 4096 Oct 25 12:00 /tmp
-
删除文件: 如果在一个有粘滞位的目录中,用户只能删除自己创建的文件或目录,其他用户无法删除。
粘滞位的优点
- 安全性:防止其他用户意外或恶意删除文件。
- 管理:在共享目录中,维护文件的完整性。
适用场景
/tmp
:临时文件存储,允许所有用户创建文件,但防止其他用户删除。- 任何需要共享但又不希望用户干扰彼此文件的目录。
文本编辑器Vim三种模式
在Linux中,特别是在使用文本编辑器Vim时,有三种主要的模式:命令模式、插入模式和底行模式。每种模式有不同的功能和用途。
1. 命令模式(Normal Mode)
光标所在行
- 进入方式:打开Vim时默认处于此模式。
- 功能:在命令模式下,你可以使用各种命令来操作文本,比如移动光标、删除行、复制粘贴等。
- 常用命令:
h
、j
、k
、l
:左右上下移动光标。x
:删除光标所在的字符。dd
:删除当前行。yy
:复制当前行。(n+yy)p
:粘贴。
在Vim中,n+yy
、n+dd
和n+p
是一些非常实用的命令,用于复制、删除和粘贴文本。以下是对它们的详细说明:
1. n+yy
:复制多行
- 功能:复制当前行及其下方的
n
行(包括当前行)。 - 用法:
- 在命令模式下,输入
n
(例如,3
)后紧接着输入yy
。 - 示例:
3yy
复制当前行及下方的两行(共三行)。
- 在命令模式下,输入
2. n+dd
:删除多行
- 功能:删除当前行及其下方的
n
行(包括当前行)。 - 用法:
- 在命令模式下,输入
n
后紧接着输入dd
。 - 示例:
2dd
删除当前行及下方的一行(共两行)。
- 在命令模式下,输入
3. n+p
:粘贴多行
- 功能:将之前复制或删除的内容粘贴到光标位置。
- 用法:
- 在命令模式下,直接输入
p
(在光标后粘贴)或P
(在光标前粘贴)。 - 如果之前使用
n+yy
或n+dd
进行了操作,使用p
会粘贴你刚刚复制或删除的内容。
- 在命令模式下,直接输入
示例
假设当前有以下文本:
1. 行一
2. 行二
3. 行三
4. 行四
5. 行五
- 执行
2yy
,则复制“行一”和“行二”。 - 执行
3dd
,则删除“行一”、“行二”和“行三”。 - 执行
p
,则将之前复制的“行一”和“行二”粘贴在光标所在位置。
光标快速定位
1. Shift + r
-
功能:在命令模式下,按
Shift + r
进入替换模式,可以替换光标所在位置的字符。你可以逐个字符地替换文本。
2. Shift + g
-
功能:跳转到文件的最后一行。可以快速查看文件的末尾内容。
3. gg
-
功能:跳转到文件的第一行。与
Shift + g
相对,方便快速返回文件开头。
4. n
+ Shift + g
-
功能:如果在搜索模式下,按
n
加Shift + g
,将跳转到下一个匹配的结果所在的行。
5. Shift + 4
= $
-
功能:移动光标到当前行的行尾。
$
是在命令模式下的常用命令。
6. Shift + 6
= ^
-
功能:移动光标到当前行的行首。
^
是在命令模式下的另一个常用命令。
7. 单词为单位,向后跳转
-
命令:使用
w
可以向前跳转到下一个单词的开头。
8. 单词为单位,向前跳
-
命令:使用
b
可以向后跳转到前一个单词的开头。
9. n + x
:光标位置向后按照字符进行删除
-
功能:删除光标所在位置的
n
个字符。比如,3x
会删除光标后面的三个字符。
10. Shift + x
= X
:光标位置向前删除
-
功能:删除光标前面的字符。
X
会删除光标前的一个字符,n + Shift + x
可以删除多个字符。
11. Shift + ~
-
功能:切换光标位置字符的大小写。例如,光标所在字符会从小写变为大写,反之亦然。
12. n + r
:替换字符
-
功能:在命令模式下,输入
n
(例如2
)后按r
,可以替换光标所在位置的字符。例如,2rX
会将光标位置的下一个字符替换为X
。
13. u
-
功能:撤销上一次的操作。多次按
u
可以撤销多次操作。
14. Ctrl + r
- 功能:重做撤销的操作。与
u
相反,可以恢复之前撤销的操作。
注释:ctrl + v hjkl (光标定位) shift + i(l) -> // -> esc
去注释:ctrl + v -> hjkl -> d
2. 插入模式(Insert Mode)
- 进入方式:从命令模式按
i
进入插入模式(在光标前插入),按a
(在光标后插入),或按o
(在当前行下新建一行并插入)。 - 功能:在插入模式下,可以直接输入文本。
- 退出方式:按
Esc
键返回命令模式。
3. 底行模式(Command-Line Mode)
- 进入方式:在命令模式下按
:
键。 - 功能:可以输入各种命令,比如保存、退出、搜索等。
- 常用命令:
:w
:保存文件。:q
:退出Vim。:wq
:保存并退出。:q!
:强制退出(不保存)。:set number
:显示行号。
总结
- 命令模式:进行导航和文本操作。
- 插入模式:输入文本。
- 底行模式:执行命令和设置。
希望对你有帮助!加油!
若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!
相关文章:

高效文本编辑与导航:Vim中的三种基本模式及粘滞位的深度解析
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...

w005基于Springboot学生心理咨询评估系统
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...

实战-任意文件下载
实战-任意文件下载 1、开局 开局一个弱口令,正常来讲我们一般是弱口令或者sql,或者未授权 那么这次运气比较好,直接弱口令进去了 直接访问看看有没有功能点,正常做测试我们一定要先找功能点 发现一个文件上传点,不…...
PG数据库之视图详解
1. 视图的基本定义 在PostgreSQL(简称pg)数据库中,视图(View)是一种虚拟表,其内容由SQL查询定义。视图并不实际存储数据,而是在每次查询时根据定义的查询语句动态生成结果。视图可以简化复杂的…...

时间序列预测(十五)——有关Python项目框架的实例分析
#1024程序员节|征文# 在之前的学习中,已经对时间序列预测的相关内容有了大致的了解。为了进一步加深理解,并能够将所学知识应用于实际中,我决定找一个完整的Python框架来进行深入学习。经过寻找,我终于找到了一篇非常具…...

ETL、ELT和反向ETL都有什么不同?怎么选择?
数据处理是现代企业中不可或缺的一部分。随着数据量的不断增长,如何高效地处理、转换和加载数据变得尤为重要。本文将介绍三种常见的数据处理方式:ETL、ELT和反向ETL,帮助读者更好地理解和选择适合自己业务需求的方式。 一、ETL 定义&#…...
linux 中文实用型手册 基于RHEL(红帽系)
硬件系统 Updated by wangjing on 2024-10-28 at 02:36:57 in Tongzhou District, Beijing. 硬件信息 机器型号 dmidecode | grep "Product Name"CPU型号 cat /proc/cpuinfo |grep "model name" | uniqWWWCPU详情 lscpuCPU个数 cat /proc/cpuinfo |grep &q…...

Hash表算法
哈希表 理论知识(本文来自于代码随想录摘抄)什么是哈希常见的三种哈希结数组:set:map:其他常用方法或者技巧(自己总结的) 练习题和讲解有效的字母移位词349. 两个数组的交集1. 两数之和454. 四数相加 II15. 三数之和 总…...

MySQL企业常见架构与调优经验分享
文章目录 一、选择 PerconaServer、MariaDB 还是 MYSQL二、常用的 MYSQL 调优策略三、MYSOL 常见的应用架构分享四、MYSOL 经典应用架构 观看学习课程的笔记,分享于此~ 课程:MySQL企业常见架构与调优经验分享 mysql官方优化文档 调优MySQL参数 一、选择 …...

C++引用类型变量
引用变量的主要用途是用作函数的形参。这样函数将使用原始数据,而不是副本。除指针之外,引用也为处理大型结构提供了一种非常方便的途径。 再C中使用&符号标识引用。也就是说C给&符号赋予了另一个含义,将其用来声明引用。 引用的声…...
《C++23 新特性:现代软件开发的变革力量》
在软件开发的快速演进中,C作为一种强大且广泛应用的编程语言,不断推陈出新以适应日益复杂的开发需求。C23 的到来,为现代软件开发带来了诸多新的机遇和挑战。它的新特性不仅影响着开发者的编程习惯,也在代码效率、可维护性以及软件…...
Educational Codeforces Round 88 E. Modular Stability
题目链接 Educational Codeforces Round 88 E. Modular Stability 思路 对于任意的非负整数 x x x,我们要满足 x % a % b x % b % a x \% a \% b x \% b \% a x%a%bx%b%a。因为 a < b a < b a<b,所以只有 b b b为 a a a的倍数时才满足条件…...

Android中SurfaceView与GLSurfaceView 的关系
SurfaceView 与 GLSurfaceView 的关系 在 Android 开发中,SurfaceView 和 GLSurfaceView 是实现自定义渲染效果的关键组件。它们提供了不同的渲染方式,适用于不同的应用场景。我们将通过以下几个方面详细说明 SurfaceView 和 GLSurfaceView 的特点及实现…...

numpy——数学运算
一、标量——矢量 import numpy as npa 3.14 b np.array([[9, 5], [2, 7]])print(a) print(b)# ---------- 四则运算 ---------- print(a b) # np.add print(a - b) # np.subtract print(a * b) # np.multiply print(a / b) # np.divide 二、矢量——矢量 import nump…...

【工具】Charles对360浏览器抓包抓包
Charles 和 switchy sharp 配合,可以对 Chrome 进行抓包也可以配合对360安全浏览器抓包。 本文以Windows 电脑中的配置为例,介绍如何实现抓包。(Mac中操作基本一致) 1.安装Charles 可根据自己的电脑下载对应的版本:…...

【HarmonyOS】判断应用是否已安装
【HarmonyOS】判断应用是否已安装 前言 在鸿蒙中判断应用是否已安全,只是通过包名是无法判断应用安装与否。在鸿蒙里新增了一种判断应用安装的工具方法,即:canOpenLink。 使用该工具函数的前提是,本应用配置了查询标签querySch…...

Qt Designer客户端安装和插件集(pyqt5和pyside2)
GitHub - PyQt5/QtDesignerPlugins: Qt Designer PluginsQt Designer Plugins. Contribute to PyQt5/QtDesignerPlugins development by creating an account on GitHub.https://github.com/PyQt5/QtDesignerPlugins 一、下载客户端 https://github.com/PyQt5/QtDesigner/rel…...
基于边缘计算的智能门禁系统架构设计分析
案例 阅读以下关于 Web 系统架构设计的叙述,回答问题1至问题3。 【说明】 某公司拟开发一套基于边缘计算的智能门禁系统,用于如园区、新零售、工业现场等存在来访被访业务的场景。来访者在来访前,可以通过线上提前预约的方式将自己的个人信息…...
鸿蒙实现相机拍照及相册选择照片
前言: 1.如果你的应用不是存储类型或者相机拍照类型,你就需要用 kit.CameraKit Api 实现相机拍照和相册选择照片功能,如果你不用这个的话,你使用 picker.PhotoViewPicker ,你就需要申请权限,那你提交应用审…...

「C/C++」C++17 之 std::filesystem::recursive_directory_iterator 目录及子目录迭代器
✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...

STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...