Linux编辑器——vim的基础使用

文章目录

  • 1.vim的基本概念
  • 2.vim的基本操作
  • 3.vim命令模式命令集
    • 3.1移动光标
    • 3.2删除文字
    • 3.3复制
    • 3.4替换
    • 3.5撤销
    • 3.6更改
    • 3.7跳到指定的行

1.vim的基本概念

切换

本文将介绍vim的三种模式,分别位:命令模式、插入模式、低行模式。他们的功能区分如下:
正常/普通/命令模式
控制屏幕光标的移动、字符、字或行的删除、移动某区段及进入插入模式,或者到末行模式
插入模式
只有在插入模式才可以做文字输入,按【ESC】键可退回命令行模式。该模式是我们后面使用最为频繁的编辑模式
末行(底行)模式
文件保存或者退出,也可以进行文件的替换,找字符串,列出行号等操作。在命令模式下,【shift + ;】即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes
就会弹出这这个窗口:

Vim has six BASIC modes:

                                        Normal Normal-mode command-mode
Normal mode             In Normal mode you can enter all the normal editor
                        commands.  If you start the editor you are in this
                        mode (unless you have set the 'insertmode' option,
                        see below).  This is also known as command mode.

Visual mode             This is like Normal mode, but the movement commands
                        extend a highlighted area.  When a non-movement
                        command is used, it is executed for the highlighted
                        area.  See Visual-mode.
                        If the 'showmode' option is on "-- VISUAL --" is shown
                        at the bottom of the window.
Select mode             This looks most like the MS-Windows selection mode.
                        Typing a printable character deletes the selection
                        and starts Insert mode.  See Select-mode.
                        If the 'showmode' option is on "-- SELECT --" is shown
                        at the bottom of the window.

Insert mode             In Insert mode the text you type is inserted into the
                        buffer.  See Insert-mode.
                        If the 'showmode' option is on "-- INSERT --" is shown
                        at the bottom of the window.

Command-line mode       In Command-line mode (also called Cmdline mode) you
Cmdline mode            can enter one line of text at the bottom of the
                        window.  This is for the Ex commands, ":", the pattern
                        search commands, "?" and "/", and the filter command,
                        "!".  Cmdline-mode
Ex mode                 Like Command-line mode, but after entering a command
                        you remain in Ex mode.  Very limited editing of the
                        command line.  Ex-mode                       

2.vim的基本操作

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏编辑画面:
注意:刚进入vim中位命令模式,只有切换为插入模式才正常输入文字。
命令模式切换插入模式
输入:【a/i/o】
插入模式切换命令模式
【ESC】
命令模式切换底行模式
【shift+;】即【:】
退出vim及保存文件,在命令模式下,按【:】进入底行模式,输入
【w】保存当前文件
【wq】保存并退出
【q!】不保存强制退出,(!为强制符号,还可以和其他字符搭配)

3.vim命令模式命令集

模式切换插入模式:

按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字

3.1移动光标

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、
「l」,分别控制光标左、下、上、右移一格

按「G」:移动到文章的最后
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页 按「ctrl」+「d」:屏幕往“前”移动半页

注意:【】中的大写字母即【shift+相应小写字母】

3.2删除文字

按「x」:每按一次,删除光标所在位置的一个字符
按「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
按「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
按「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
按「dd」:删除光标所在行
按「#dd」:从光标所在行开始删除#行

3.3复制

按「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
按「#yw」:复制#个字到缓冲区
按「yy」:复制光标所在行到缓冲区。
按「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
按「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完 成复制与粘贴功能

3.4替换

按「r」:替换光标所在处的字符。
按「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

3.5撤销

按「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回 复。
按「ctrl + r」: 撤销的撤销

3.6更改

按「cw」:更改光标所在处的字到字尾处
按「c#w」:例如,「c3w」表示更改3个字

3.7跳到指定的行

按「ctrl」+「g」列出光标所在行的行号。
按「#G」:例如,「15G」,表示移动光标至文章的第15行行首

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2. 深度学习笔记--损失函数

在机器学习中,损失函数是代价函数的一部分,而代价函数则是目标函数的一种类型。 Loss function,即损失函数:用于定义单个训练样本与真实值之间的误差; Cost function,即代价函数:用于定义单个批…

学习和“劳动”相关的谚语,柯桥俄语培训

1. Бог труды́ лю́бит. 天道酬勤。 2. В ми́ре нет тру́дных дел, ну́жно лишь усе́рдие. 世上无难事,只怕有心人。 3. У́тро вечера мудренее. 一日之计在于晨。 4. Что посе́ешь,…

车载电子电器架构 —— 关于bus off汇总

车载电子电器架构 —— 关于bus off汇总 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

[Java EE] 多线程(六):线程池与定时器

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (90平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

语义分割——铁路轨道数据集

引言 亲爱的读者们,您是否在寻找某个特定数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 重…

NASA数据集——NOAA 气溶胶和海洋科学考察数据(AEROSE)

Saharan Dust AERosols and Ocean Science Expeditions 简介 NOAA 气溶胶和海洋科学考察(AEROSE)是一种基于测量的综合方法,用于了解热带海洋上空气溶胶长程飘移的影响(Morris 等人,2006 年;Nalli 等人&a…

直流屏整流模块HG07A220R电源模块HG10A220R

直流屏整流模块HG07A220R电源模块HG10A220R 其他同类型监控模块PM09T电源模块HG22005/S,HG22010/S,HG11010/S,HG11020/S,HG10A220Z,HG10A220F,HG05A220Z,HG07A220Z,HG10A110Z&#x…

Electron 对 SQLite 进行加密

上一篇讲了如何在 Electron使用 SQLite,如果 SQLite 中存有敏感数据,客户端采用明文存储风险很高,为了保护客户数据,就需要对数据进行加密,由于 electron 对代码并不加密,所以这里排除通过逆向工程进行数据…

从论文中看AI绘画

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 主要看是看Diffusion Models,CLIP,ControlNet,IP-Adapter这种经典论文,尝试总结论文写作的一些方式以及图像生成模型的一些内在思想. 对于其中的数学原理和代码不过深究. DDPM 使用扩散模型得到高质量图像,证明了这…

三、Linux基础命令

章节目标 了解Linux系统注意事项掌握Linux基础命令知道vmware tools的作用 一、Linux系统使用注意 1. Linux严格区分大小写 Linux 和Windows不同,Linux严格区分大小写的,包括文件名和目录名、命令、命令选项、配置文件设置选项等。例如,在…

5.3 调制与解调

信号的调制与解调是通信系统中一对基本的概念,涉及将信息(语音、视频、数据等)在发送之前进行处理以便在传输介质(如无线电波、电话线等)上有效传输,以及在接收端恢复这些信息的过程。 一、调制&#xff0…

Leetcode—289. 生命游戏【中等】

2024每日刷题&#xff08;126&#xff09; Leetcode—289. 生命游戏 算法思想 实现代码 class Solution { public:void gameOfLife(vector<vector<int>>& board) {int rows board.size();int cols board[0].size();int neighbors[3] {0, 1, -1};vector<…

spring框架学习记录(2)

文章目录 注解开发bean相关注解开发定义bean纯注解开发纯注解开发中bean的管理 依赖注入相关依赖注入第三方bean管理第三方bean依赖注入 AOP(Aspect Oriented Programming)面向切面编程AOP简介AOP核心概念AOP工作流程AOP切入点表达式通知类型AOP通知获取数据 注解开发 bean相关…

Day19 代码随想录打卡|字符串篇---反转字符串II

题目&#xff08;leecode T541&#xff09;&#xff1a; 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。如果剩余字符小…

OceanBase 轻量级数仓关键技术解读

码到三十五 &#xff1a; 个人主页 为了更好地聚合和治理跨域数据&#xff0c;帮助企业用较低的成本快速聚合分析&#xff0c;快速决策&#xff0c;不断的让企业积累的数据产生价值&#xff0c;从全域海量数据抓取&#xff0c;高性能流批处理&#xff0c;元数据血缘治理等等方面…

数据分析从入门到精通 1.numpy 剑客修炼

会在某一瞬间突然明白&#xff0c;有些牢笼是自己给自己的 —— 24.5.5 一、数据分析秘笈介绍 1.什么是数据分析 是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来&#xff0c;总结出所研究对象的内在规律。使得数据的价值最大化 案例&#xff1a; 分析用户的消…

Kotlin: Expecting a ‘>‘

数组值为任意类型&#xff0c;声明报错: Kotlin: Expecting a > var anyArr1: Array<Any?> arrayOf("a", "b", "c", true, 34)原因是&#xff1a; // var anyArr1: Array<Any?> arrayOf("a", "b", "c…

概念解析 | 威胁建模与DREAD评估:构建安全的系统防线

注1:本文系"概念解析"系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:威胁建模和DREAD模型 概念解析 | 威胁建模与DREAD评估:构建安全的系统防线 What Is Threat Modeling? Definition, Process, Examples, and Best Practices - Spic…

蓝桥杯-路径之谜

题目描述 小明冒充X星球的骑士&#xff0c;进入了一个奇怪的城堡。城堡里面什么都没有&#xff0c;只有方形石头铺成的地面。 假设城堡的地面时n*n个方格。如下图所示。 按习俗&#xff0c;骑士要从西北角走到东南角。可以横向或者纵向移动&#xff0c;但是不能斜着走&#x…

SpringBoot自定义定时任务

通常&#xff0c;在我们的项目中需要定时给前台发送一些提示性消息或者我们想要的定时信息&#xff0c;这个时候就需要使用定时任务来实现这一功能&#xff0c;实现也很简单&#xff0c;接下来具体来看看吧~ 简单定时任务 首先&#xff0c;你需要在你的启动类上加上开启定时任…