Linux相关概念和易错知识点(4)(自举、vim)

【Linux】vim快捷键 + 配置 文章目录一、vim文本编辑器1. 打开/关闭vim2. vim常见模式二、vim常见命令1. 保存并退出2. 命令模式3. 文本操作4. 底行模式:5.模式切换三、vim配置 vs2019等都是集成开发环境,很多功能都已经帮我们弄好了 而linux里的编写代码、编译代码、调试代码、运行代码、代码关系维护 这些vs2019基本一步搞定的在linux当中却不行 一、vim文本编辑器 linux当中编写代码的过程在此完成 定位上和记事本没有区别 前身是vi 1. 打开/关闭vim vim test.c 阅读详情

目录

1.语言和编译器的发展

(1)汇编语言的出现

(2)自举

(3)C语言->可执行程序过程的理解

2.vim

(1)vim是什么?

(2)模式切换

(3)各个模式功能

①命令模式(默认模式)

②插入模式(命令模式->插入模式:a、i、o)、替换模式shift + r(大写R)

③底行模式(命令模式->底行模式:shift + ;(输入冒号))

④视图模式(命令模式->视图模式:ctrl + v(大写V))

(4)配置vim

①版本查看

②配置


1.语言和编译器的发展

(1)汇编语言的出现

计算机只能看懂二进制,但是用二进制实现一个功能就太难了,人们需要发明一种高效的语言。人们抽象出一套编程逻辑,定义了一系列操作,接下来就需要实现它。最初人们用二进制来实现操作到二进制之间的转换,这个过程非常困难,最后终于写出了第一代编译器,即汇编语言的编译器。此后,人们可以用这套更高效率的语言写代码,写的代码通过编译器来编译形成二进制可执行程序。我们需要注意编译器是可执行程序,是二进制的,但它的作用是翻译。

(2)自举

但是,第一代编译器极难理解和维护。于是人们在保证第一代编译器没有问题的情况下,用汇编语言写了一个新的汇编编译器,再用第一代的编译器编译形成可执行程序。这个新的编译器也是个二进制程序,但它的好处在于它本质是用汇编语言写的而不是二进制写的,后续维护或者功能拓展比较方便。之后我们就可以使用第二代编译器来编译汇编语言了。第二代的编译器源码是汇编语言,第一代编译器的源码是二进制。只要第一代编译器没有问题,我们可以对第二代编译器做各种功能上的拓展,最后用第一代编译器编译一下就可以了。这个过程称为自举。

很明显,我们的C语言就是建立在汇编语言上的,先用汇编写出第一代C语言编译器,再用C语言自举,写出第二代编译器,我们的第二代编译器可以实现更多的功能,只要第一代编译器没有问题,我们就能不断以较低成本维护和更新语法。

我们可以发现,第一代编译器是基础,它能保证这个语言的存在,之后我们;利用第一代编译器进行功能不断迭代保证语言发展,第二代、第三代......每一代都离不开首代编译器的支持,但只要保证首代编译器的正常,我们就能以较低的时间和精力来维护编译器。可见,一个语言的发展也是人类智慧的积淀。现在,第一代汇编编译器,第一代C语言编译器都足够完善,我们不需要在写汇编编译器时用二进制写编译器,我们写C语言编译器也无需用汇编语言写编译器。

我们无需担忧怎么用一门语言写自己的编译器,这是语言设计者应当考虑的,设计的语言逻辑必须完备且自洽,是能够对自己的词法语法进行处理的。

(3)C语言->可执行程序过程的理解

C语言->可执行程序就是逆发展的过程,先将C语言翻译成汇编,再将汇编翻译成二进制。对于C语言编译器来说,它只需要把C语言翻译成汇编就行,之后交给汇编的编译器。因为前人已经把汇编->二进制的坑都帮我们踩了,我们无需再走一遍同样的路。

2.vim

(1)vim是什么?

vim是一款多模式的编辑器(类似Windows里面的记事本,不是IDE)。我们可以使用vim写代码,退出之后自己编译运行。向文件里写东西有很多方式,如nano、echo等,它们都不如vim功能完备,并且vim有个很大的优势就是Linux自带这个工具,在作为辅助工具时是不错的选择。

(2)模式切换

vim模式较多,适当降低自己的学习成本,提高效率更重要。常用的模式有命令模式、插入模式、底行模式、替换模式、视图模式。

我们需要遵循一个中心的原则,即命令模式是中心(初进入vim时就是命令模式),在任何模式任何状态下,按ESC都能回到命令模式(默认模式),在切换模式前我们需要先ESC回到默认模式再说。

命令模式->插入模式:a、i、o,这三个按键有细微区别,i是进入插入模式后什么都不做,a是如果后面有一个字符光标就会向后跳一位(不能创建空格,后面没有字符时什么都不做),o就是进入后光标换行(可创建空格,后面没有字符时也可以提行)。一般来说i就够用了,其余两个知道即可。

命令模式->底行模式:shift + ;(输入冒号)

命令模式->替换模式:shift + r(大写R)

命令模式->视图模式:ctrl + v(大写V)

(3)各个模式功能

注意任何模式下输入数字不能使用数字键盘,vim识别不了

①命令模式(默认模式)

删除:x从光标位置开始向后删1个,(num) x从光标位置开始向后删num个,shift + x(大写X)从光标位置开始向前删1个,(num) shift + x(大写X)从光标位置向前删n个

光标如果是一个方块,以左边为线,带入Windows操作经验理解

复制:yy复制光标所在行,(num) yy一次性复制num行

剪切:dd剪切光标所在行,(num) dd一次性剪切num行

粘贴:p在该光标所在行换行粘贴(新开一行,原来的下一行会被移至下下行),(num) p在该光标所在行换行开始粘贴,粘贴所选内容num次

撤销:u按照修改历史向前回溯,撤销本身不视作修改,注意理清修改的逻辑线 

重做:ctrl + r按照修改历史向后回溯,重做本身不视作修改,注意理清修改的逻辑线

替换:r + (要替换字符)替换光标开始向后1个字符,(num) r + (要替换字符)替换光标开始向后num个字符(num超出该行字符数就不做处理)

保存退出:shift + zz(连按两下大写Z)保存文件并退出

大小写切换:shift + ·(输入~)从光标位置开始向后切换1个字母的大小写,(num) shift + ·(输入~)从光标位置开始向后切换num个字母的大小写

定位行:gg光标回到第一行,shift + g(大写G)光标定位到最后一行,(num) shift + g(大写G)光标定位到第num行

锚点:shift + 4(输入$)定位到该行行尾,shift + 6(输入^)定位到该行行首

光标移动:h左,j下,k上,l右,在非视图模式下可用方向键代替

按单词前进或后退:w按单词前行,b按单词回退(判断是不是单词是根据有没有空格、有没有非字母来决定的,不是真正意义上的单词)

快速定位函数:Shift + #从光标处快速进入函数

②插入模式(命令模式->插入模式:a、i、o)、替换模式shift + r(大写R)

除了ESC所有输入都会当作字符处理,注意如果输入数字不能使用数字键盘,vim识别不了

替换模式下会从当前光标开始覆盖,但覆盖不是删除,删除覆盖字符时原来的字符会再显示出来

③底行模式(命令模式->底行模式:shift + ;(输入冒号))

行号显示与关闭:set nu行号显示,set nonu关闭行号显示

查找:/ + (查找内容)可查找含指定内容的行,输入n切换下一行,最后一行之后返回第一行 

保存和退出:w保存,q直接退出,wq保存并退出;w!强制写入,q!强制退出,wq!强制保存退出

强制修改退出在某些场景有必要,如root修改/etc/sudoers里面的内容时就只能使用wq!强制保存,普通用户则根本无法操作

不退出执行操作:! (指令)会在不退出vim的情况下在当前工作目录下执行指令,如!pwd,!ls -al。执行完指令后按任意键就可返回vim继续操作

多开窗口(最多3个):vs + (文件名)可同时打开并显示多个文件,光标只能在一个窗口,ctrl + ww可切换窗口


④视图模式(命令模式->视图模式:ctrl + v(大写V))

光标移动:h左,j下,k上,l右选中行,可使用插入模式的定位行来批量选中

批量编辑:光标选中后shift + i(大写I)进入编辑(此时显示插入模式),输入完毕后再按ESC,选中行都会在光标选中区域最前面(同样以最左侧为线,按照Windows操作逻辑理解)加上编辑内容

批量删除:光标选中后d删除光标选中所有内容

(4)配置vim

①版本查看

命令行输入vim查看vim的版本

②配置

每个用户的家目录中都有一些隐藏文件,.vimrc就是其中之一。每个用户都可以单独有一份.vimrc,里面有一些vim基本的设置,我们可以在.vimrc里配置加命令,这些设置都只会影响单个用户,包括root都不会被影响。当打开vim时,它会先读取家目录下的配置文件.vimrc,vim就可以展示出默认状态没有的视觉效果和代码帮助。

每个人都能配置自己的vim,尽量在普通用户下安装自己的。root安装会使全局的vim默认设置改变,需要每个用户自己的.vimrc覆盖

Rerender A Video 技术浅析(四):跨帧约束 时间一致性是指在视频处理过程中,保持相邻帧之间内容、风格和运动的平滑过渡,避免出现视觉上的不连续性或伪影。时间一致性跨帧约束模块的主要目标是在视频增强、风格迁移等任务中,确保处理后的视频在时间维度上保持一致性和稳定性。该模块主要通过以下几种方式实现时间一致性:1.时序损失(Temporal Loss):最小化相邻帧之间的差异,确保帧间内容的平滑过渡。2.循环一致性损失(Cycle Consistency Loss):确保帧间转换的一致性,避免出现风格漂移。3. 阅读详情

相关推荐

2023 年全国网络安全行业职业技能大赛-电子数据取证分析师-决赛WP_2023网络安全行业赛取证

数据库取证工具里面可以恢复删除掉的数据带红叉的就说删除过的,game库下面announcement_detail表里面update_time字段使用sql语句时间戳最大为1513243355转换时间为2017-12-14 17:22:35。

2401_89791684的博客 2092

Linux相关概念和易错知识点(5)(权限的修改、时间属性)

4会减掉r,实际减掉r,所以这就是为什么54处理后没有区别,多出来的1本来就没有,会被抛弃。当合作时,由于拥有组和所属组只能由两个用户当,大部分人都会是other,要保证共享目录编辑还必须开放目录中other的w权限,这就会导致一些误删的情况出现。也就是说,002就是减掉other中和2对应的权限w,因此我们会发现最终权限表示中目录和文件的other都少了w权限。当我们使用chmod时,属性被修改了,但内容没有被修改,于是只有Change被修改, 而Modify不会被修改。在Linux中划分了三个组,

SGlow0708的博客 1084

104基于深度学习识别是AI生成还是真实图片

的可视化界面,通过点击左侧可以加载要识别的检测对象图片,点击中间的识别按钮,会识别出结果,识别结果在右侧显示,当前识别的图片是真实的图片,非假图片。有兴趣的小伙伴也可以自行扩充数据集,或训练自己的数据集。文本,分别存放了图片路径和对应的标签。文本里面的数据,并将训练好的模型也保存在本地。即可加载训练好的模型,真假图片进行识别。本期给大家介绍的是基于深度学习识别是。代码整体是非常简便的,总共三个。个文件夹分别是真图和。

xcvxvfgdfgfh的博客 2260

Linux相关概念和易错知识点(21)(软硬链接、动静态库)

理解两者的差异,搞清楚为什么要这么做很重要。

SGlow0708的博客 1313

技术面 - 手撕算法题整理

这篇博客整理了华为OD面试中涉及的算法题,包括LeetCode热门题目、OD原题和需要手写的算法,如二分查找、冒泡排序等。建议优先刷"hot100"的LeetCode题目,全刷OD原题,以及掌握手撕算法的基本原理。

m0_73659489的博客 1024

【Linux编辑神器:vim】

原来这就是vim? 重点介绍了Linux下编辑神器vim的使用,以及超快速vim配置方法。

m0_68872612的博客 5407

【YOLO11改进 - 检测头】Detect_LSCD检测头:量化的检测头,进一步提升模型的检测效率和精度

【YOLO11改进 - 检测头】Detect_LSCD检测头:量化的检测头,进一步提升模型的检测效率和精度

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 4094

【探索Linux】P.3(Linux开发工具 vim)

Vim是一款功能强大的文本编辑器,被广泛用于Linux系统和其他操作系统。本文从三个方面介绍了Vim:概念、特点以及相关指令。首先,文章解释了Vim的概念,包括它的起源和演变。然后,文章介绍了Vim的特点,包括跨平台、高度可定制和支持插件等。接下来,文章详细描述了Vim的三种模式及其相关指令:命令模式、插入模式和末行模式。最后,文章提及了简单的Vim配置,这使得用户可以根据自己的需求进行个性化设置。通过本文的介绍,读者将对Vim有一个全面的了解,从而能够更加高效地使用这款编辑器。

Yawesh的博客 2710

无迹卡尔曼滤波 (UKF, Unscented Kalman Filter) 算法详解及案例分析

无迹卡尔曼滤波是一种用于估计非线性系统状态的递归算法。其目标是通过结合系统模型和观测数据,估计系统的最优状态。

闲人编程的博客 2625

基于YOLOv26的护栏损坏检测系统原理讲解

本文介绍了一种基于YOLOv26深度学习的护栏损坏检测系统。该系统通过车载摄像头或固定监控采集道路护栏图像,利用改进的YOLOv26算法实现高效准确的损坏检测。系统采用分层架构设计,包含数据采集、检测处理、分析评估和应用服务四个层次,能够自动识别变形、断裂、缺失等五种常见损坏类型,并评估损坏严重程度。相比传统人工检测方法,该系统大幅提高了检测效率和准确性,降低了人工成本和安全风险。关键技术包括多尺度特征融合、注意力机制和自适应非极大值抑制等创新设计,使系统在复杂道路环境下仍能保持稳定的检测性能。

一键难忘的博客 327

【Linux探索学习】第七弹——Linux的工具(二):Linux下vim编辑器的使用详解

【Linux探索学习】第七弹——vim编辑器详解:学会如何使用vim编辑器,熟练应用Linux环境下代码编辑工具!!

2301_80220607的博客 2793

YOLOv8 道路病害检测全栈工程|22 类路面裂缝坑洞 VOC&YOLO 数据集、PyQt 精美 GUI、ONNX 量化、全套训练评估曲线落地

城市道路、国省道、高速公路路面长期受车辆碾压、雨水侵蚀,衍生纵向 / 横向裂纹、坑洼、车辙、接缝剥落等二十余种路面病害。传统人工道路巡检存在致命行业痛点:人工徒步 / 乘车目视巡检效率极低,单日有效巡查里程不足 20 公里;毫米级细微线性裂纹肉眼极易漏检,雨水冲刷后微小病害快速扩张为大坑槽,养护成本翻倍;强光暴晒、阴雨积水、路面油污场景人工分辨难度大;海量巡检图片人工分类统计病害台账耗时数天,养护决策缺乏量化数据支撑。传统阈值、边缘检测图像处理仅能识别大面积坑洞,无法区分二十余种细分裂纹类型,泛化能力极差。

getusushu的博客 120

Linux:vim的相关知识

在vim中,最为常见的有三种模式,分别是:命令模式(command mode)、插 入模式(Insert mode)和底行模式(last line mode)文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift+: 即可进入该模 式。在进入vim后,使用 i 进入插入模式,插入模式就是vim的编辑模式,可以在vim中进行内容的编辑和修改。vim的核心模式,使用vim进入文件编辑时的最初模式,在该模式中只能移动光标和使用命令对文件内容进行编辑。

2301_76445610的博客 1845

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Linux】vim编辑器

Vim是Linux中功能强大但上手较难的文本编辑器,是vi的升级版。它主要有三种基本模式:普通模式(命令操作)、插入模式(文本编辑)和底行模式(文件操作)。常用操作包括:i进入插入模式,Esc返回普通模式,:wq保存退出。普通模式下可使用yy复制、dd删除、u撤销等命令;底行模式支持查找替换、分屏等功能。此外,Ctrl+v进入视图模式可实现批量注释等操作。掌握Vim能显著提升Linux环境下的文本编辑效率。

记录学习与成长 2473

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【Linux】Linux知识点汇总

Linux知识点汇总Linux知识点汇总一、Linux文件,目录,磁盘格式1.文件颜色代表的意义2.Linux文件目录结构3.Linux文件基本属性4.Linux文件与目录管理4.1 绝对路径4.2 相对路径4.3 处理目录的常用命令4.4 Linux 文件内容查看4.5 文件与目录的默认权限与隐藏权限4.6 命令与文件的查找二、Vim与Shell三、Linux磁盘管理1.Linux 文件系统与磁盘的关系1.1 磁盘格式1.2 文件系统1.3 磁盘与目录的容量1.4 硬链接与符号链接(软连接)1.5 观察磁

Leoh的博客 6857

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

第五篇:linux之vim编辑器、用户相关

vi和vim是linux下的一个文本编辑器。用户指的是能够正常登录linux或windows系统。linux和windows用户的不同之处在于,linux支持多个用户同时登陆,且登录后之间操作并不影响。而windows虽可以创建多个用户,但不允许同一时间多个用户同时登陆。linux系统会将用户的信息存放在,记录用户的信息,但没有密码信息,密码被存放在中,也就是说这两个文件相当重要,不可轻易进行修改和删除。我们先打开进行查看。我们接着来看文件。我们接着了解一下相关的约定。用户UID系统中约定的含义0。

shanshui521的博客 873

Linux中 vim 实现代码补全

Linux中 vim 实现代码补全vim 中代码补全步骤1:判断步骤2:安装 `OmniCppComplete`步骤3:步骤4:些许其他操作结果利用 Tab 键进行补全 vim 中代码补全 此部分内容主要是介绍如何实现在vim中进行代码补全,其可分为以下几个步骤: 步骤1:判断 判断当前系统中是否具有补全功能,即随便创建一个文件,比如 test.c, 在其命令行模式中输入 :set omnifunc? 若结果呈现 omnifunc=ccomplete#Complete 即 则说明此时可利用 Ctrl+

m0_51961114的博客 1万+

【Linux从入门到放弃】Linux编辑器——vim的使用

当我们学习 Linux 开始编程时,就需要一个开发工具,对于刚开始学习 Linux 的我们最适合使用 vim 编辑器。vim 文本编辑器,是由 vi 发展演变过来的文本编辑器,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。比如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 x windows、mac os 、windows。

@情话 2094

【Linux】编辑器vim详解

本文主要讲述了vim编辑器的概念和常见模式下的一些操作。

weixin_60371270的博客 7106

Linux下的编辑器 —— vim

在Windows下,我们通常使用 Visual Studio 、devC++、codeblocks这样的软件,这些软件其实是集成开发环境,意思就是,这些软件同时具有编辑、编译、调试代码,这些软件将这些功能集中于一体,这就是集成开发环境。在Linux中,将这些功能独立出来形成一个程序软件,用于编辑代码的就是vim。vim就是Linux下一款编辑器。你可能还听说过vi,vim其实是vi的升级版,它不仅兼容vi的所有指令,而且还有一些新的特性在里面,例如语法加亮……

知其然 知其所以然 3736

Linux基础05: Vim编辑器 + 网络相关指令 + 进程相关指令 + 磁盘相关指令 + 挂载与卸载 + Linux共享环境搭建

Linux中的根目录以外的文件想要被访问,就需要将其关联Linux系统中的某个目录来实现,我们将这种关联操作称之为“挂载”,这个目录就是“挂载点”,Linux专门提供了一个用于挂载外设的目录,叫做“/mnt”。解除此关联关系的过程称之为“卸载“。

m0_74147998的博客 1346

【Linux】Vim

Vim的基本概念和相关操作 批量化注释和去注释 普通用户的sudo提权 vim的配置问题

有趣的中国人的博客 1390

【实战】 Linux 后门系列 Vim 后门

Vim(Vi IMproved)是一款强大的文本编辑器。它支持多种编辑模式,具有丰富的编辑功能和高度可定制性。Vim 提供了代码折叠、语法高亮、自动补全等功能,适用于程序员和文本编辑爱好者。通过个性化配置和插件系统,用户可以定制快捷键、颜色方案等。Vim 还可以作为图形化编辑器,在不同操作系统上运行,并与版本控制系统集成。总之,Vim 是一款高效、灵活的编辑器,为用户提供优秀的编辑体验。0x00 简介0x01 Vim 配置加载过程1. vim 配置说明2. 确定已加载的配置。

jijisaq的博客 1644

【Linux学习】Linux编辑器-vim使用

Linux编辑器vim的使用

2301_77509762的博客 1883

linux虚拟机怎么使用vim,Linux虚拟机中vim的配置

第一步:Vim安装:首先将命令窗口切换成超用户,然后在命令窗口输入yum install vim命令进入vim相关软件的下载在命令窗口输入# rpm -qa |grep vim查看vim相关软件包是否已安装需安装的vim相关软件:vim-enhanced-7.2.411-1.4.el6.x86_64vim-common-7.2.411-1.4.el6.x86_64vim-minimal-7.2.4...

weixin_36044132的博客 6481
上一篇: Linux相关概念和易错知识点(3)(yum、gcc、动静态库)
下一篇: Linux相关概念和易错知识点(5)(权限的修改、时间属性)
-SGlow-
博客等级 码龄3年 1513粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值