linux-vim编辑器

  • 前言
  • 一、命令模式
    • 1. 跳转功能
    • 2. 文本编辑
    • 3. 模式切换
  • 二、输入模式
    • 1. 进入输入模式
    • 2. 快捷键
  • 三、末行模式
    • 1. 进入末行模式
    • 2. 文件操作
    • 3. 查找与替换
    • 4. 行操作
  • 四、替换模式
  • 五、可视模式
    • 1. 进入可视模式
    • 2. 文本操作
  • 六、相关配置


前言

vim - Vi IMproved, a programmer’s text editor
vi的升级版,程序员文本编辑器(工具)

作用:

  1. 在linux里新建文本文件,修改配置文件
    配置文件:configure file =》config
    作用:给某个程序传递参数
    ssh 是一个提供远程登录远程控制的服务–》运行起来后的进程叫sshd ssh daemon

  2. 写程序: c,python,go,java,html等
    集成开发工具:功能比较多,语法检查,高亮,直接调用背后环境去运行程序,安装软件包等
    pycharm
    goland
    IDE

启动:vim 文件名 或 vi 文件名(若文件不存在则创建)

退出

  • q 退出(未修改时)
  • q! 强制退出,不保存修改
  • wq 或 x 保存并退出

一、命令模式

启动后的默认模式,也是 Vim 的核心操作模式。主要用于导航、编辑命令的执行和模式切换

1. 跳转功能

操作类型操作键功能
光标方向移动上下左右方向键或
h(左) j(下) k(上) l(右)
移动光标位置
翻页Page Down 或 Ctrl+F
Page Up 或Ctrl+B
向下翻动一整页内容
向上翻动一整页内容
行内快速跳转Home键或 “^” 或数字“0”
End键或“$”键
跳转至行首
跳转至行尾
行间快速跳转1G或者gg
G
#G
跳转到文件的行首
跳转到文件的末尾行
跳转到文件中的第#行
文件内容查找输入 /word
n 下一个
N 上一个
查找word

2. 文本编辑

  • 删除
    删除单个字符: x、delete

    删除行:dd
    3dd

    d^ 删除当前光标之前到行首的所有字符 ^:行首
    d$ 删除当前光标之前到行尾的所有字符 $:行尾
    dw 删除一个单词,以空格冒号等符号

  • 复制
    yy 复制一行
    2yy 复制两行

  • 粘贴
    p 往下粘贴
    P 往上粘贴

  • 撤销
    u -->undo

  • 恢复
    Ctrl+r --> redo

  • 保存
    ZZ 保存当前文件并退出


3. 模式切换

  1. 进入命令模式
    vim 文件名    默认进入命令模式
    ESC键 或 Ctrl + [      从其他模式返回

  2. 进入输入模式
    a、i 、o 等键

  3. 进入末行模式
    : 键

  4. 进入可视模式
    v 键

  5. 进入替换模式
    R 键


二、输入模式

用于文本的直接输入,类似于常规编辑器的状态

1. 进入输入模式

i -> 在光标前插入 insert
a -> 在光标后插入
o -> 在光标所在行下新起一行并插入
O -> 在光标所在行上方新起一行并插入

I -> 在当前行的行首(第一个非空字符)插入
A -> 在当前行的行尾插入

s -> 删除当前字符并进入插入模式
S -> 删除整行并进入插入模式(等价于 cc)


2. 快捷键

Ctrl+h 删除前一个字符(等价于 Backspace)
Ctrl+w 删除前一个单词
Ctrl+u 删除至行首
Ctrl+n 自动补全下一个匹配项
Ctrl+p 自动补全上一个匹配项


三、末行模式

用于执行全局性命令的重要模式

1. 进入末行模式

在命令模式下按下 :(冒号)
-> 底部会显示 : 提示符


2. 文件操作

w -> 保存当前文件
w 新文件名 -> 另存为新文件
q -> 退出(仅当文件未修改时有效)
q! -> 强制退出,不保存修改
wq 或 x -> 保存并退出

e 文件名 -> 打开新文件(放弃当前修改)
e! -> 重新加载当前文件(丢弃所有修改)
r 文件路径 -> 导入文件
saveas 新文件名 另存为并继续编辑新文件


3. 查找与替换

:/sbin -> 向下查找sbin这个关键词并高亮显示
:?sbin -> 向上查找
n 显示下一个
N 显示上一个
取消高亮:查找一个不存在的word

: s /old/new/ 替换当前行第一个old为new
: s /old/new/g 整行替换
: 3,5s /old/new/ 替换3到5行
: %s /old/new/ 全部替换
: s /old//g 删除

: s /old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 confirm
替换为 (y/n/a/q/l/E/Y)?
y 替换
n 不替换
a 全部替换


4. 行操作

: 1 跳转到第1行
: 5 跳转到第5行
: $ 跳转到最后一行

set nu(number) -> 显示行号
set nonu -> 不显示行号


四、替换模式

用于直接替换现有文本而不是插入

R -> 进入替换模式(覆盖式输入),按ESC退出
r -> 替换单个字符后返回(如 ra 将当前字符替换为 a)


五、可视模式

用于选中文本块,以便进行复制、删除、替换等批量操作

1. 进入可视模式

v -> 可视模式 visual --》选择一部分
V -> 可视行模式 VISUAL line --》选择行
ctrl+v -> 可视块模式 VISUAL block

2. 文本操作

d 删除选中文本(剪切到寄存器)
y 复制选中文本到寄存器
c 删除选中文本并进入插入模式
~ 切换选中文本的大小写
p 用寄存器内容替换选中文本

在选区内按 :
vim 会自动添加 :‘<,’> 前缀,表示对选区执行命令,命令操作同末行模式


六、相关配置

/root/.vimrc 可以给vim传递参数

vim /root/.vimrc
set nu  # 显示行号
set cursorline  # 高亮当前行
set ts=4  # Tab宽度为4个空格

合理配置 .vimrc,可以将 vim 定制成适合自己的高效编辑器

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

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

相关文章

SQL关键字三分钟入门: 表结构管理与分区设计。(ALTER、MODIFY、CHANGE、DEFAULT、VALUES、LESS THAN、RANGE)

前面我们已经学习了如何查询数据&#xff08;SELECT&#xff09;、筛选数据&#xff08;WHERE&#xff09;等操作。现在我们要进入数据库的另一个重要领域 —— 表结构管理与分区设计。 本文带你快速认识以下关键字&#xff1a; ✅ ALTER✅ MODIFY✅ CHANGE✅ DEFAULT✅ VALU…

深度剖析:RTTI轻量框架实现原理与架构(C++ 17 高级编程)

&#x1f680; C RTTI反射系统深度设计文档 &#x1f30c; 核心架构图 #mermaid-svg-aWkaWoFklq1ylap6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-aWkaWoFklq1ylap6 .error-icon{fill:#552222;}#mermaid-svg-a…

03-D3.js SVG text标签​

Data Visualization D3.js • SuperHiLearn how to create interactive, engaging experiences using HTML, CSS, SVG and Javascript.https://www.superhi.com/catalog/data-visualization-with-d3 text - SVG&#xff1a;可缩放矢量图形 | MDNtext元素定义了一个由文字组成…

Python 使用Gitlab Api

代码 REST API 见自带帮助文档 python 安装python-gitlab pip install --upgrade python-gitlab使用API 参考&#xff1a;https://python-gitlab.readthedocs.io/en/stable/api-usage.html import gitlab# anonymous read-only access for public resources (GitLab.com…

中医体质识别:理论、方法与应用的简要综述

中医体质识别&#xff1a;理论、方法与应用的简要综述 摘要 中医体质识别是中医“治未病”及个性化诊疗的关键环节。本文系统阐述中医体质识别&#xff0c;涵盖理论基础、常见体质类型、识别方法、现代技术应用及临床实践。中医体质理论源远流长&#xff0c;《黄帝内经》奠定…

稀疏表原理及应用场景

1 概述 稀疏表&#xff08;Sparse Table&#xff0c;ST&#xff09;是一种用于高效解决 静态区间查询&#xff08;Range Query&#xff09; 问题的数据结构&#xff0c;主要用于 可重复贡献问题&#xff08;Idempotent Range Queries&#xff09;&#xff0c;例如区间最小值&a…

【深度学习与机器学习的区别】从本质到应用的全景对比

目录 前言 一、三者关系&#xff1a;深度学习是机器学习的子集 1.1 概念关系 1.2 类比理解&#xff1a;动物 vs 哺乳动物 1.3 举个例子更清楚 1.4 为什么“机器学习 ≠ 深度学习”&#xff1f; 1.5 最容易搞混的地方 二、核心区别总览&#xff08;对比表&#xff09; …

Masscan常用命令详解

一、工具介绍 Masscan是一款开源、高速的网络端口扫描工具&#xff0c;设计目标是实现最快的扫描速度。它能够在极短的时间内完成大规模的网络扫描&#xff0c;适用于互联网级别的扫描任务。它采用异步传输和自定义TCP/IP协议栈技术&#xff0c;最快可实现每秒160万数据包的扫…

STM32的内部RC与外部晶振电路

内部RC是“能用”&#xff0c;外部晶振是“用得准”。 一、STM32芯片内部的“晶振电路”是什么&#xff1f; STM32内部确实集成了两个RC&#xff08;电阻-电容&#xff09;振荡器&#xff1a; HSI&#xff08;高速内部振荡器&#xff09;&#xff1a;通常8MHz&#xff0c;精…

为OneCode 开发TRea 开发插件,从环境搭建到生态融合

作为 AI 原生开发环境&#xff0c;TRea 的插件体系支持开发者基于其核心能力&#xff08;如自然语言代码生成、AI 代码分析&#xff09;进行功能扩展。本文以开发一个 "OneCode 组件生成插件" 为例&#xff0c;详解如何通过 TRea 开放接口实现自定义功能&#xff0c;…

Spring JDBC配置与讲解

目录 一、Spring JDBC概述1、Spring JDBC需要配置的依赖2、Spring配置项文件配置 二、Spring JDBC的使用1、Spring JDBC的增加操作2、Spring JDBC的修改操作3、Spring JDBC的删除操作4、Spring JDBC的查询操作 三、Spring JDBC的事务1、xml的形式进行事务2、Transactional注解 …

【AI智能体】Spring AI MCP 服务常用开发模式实战详解

目录 一、前言 二、MCP 介绍 2.1 MCP是什么 2.2 MCP 核心特点 2.3 Spring AI MCP 介绍 2.3.1 Spring AI MCP架构 2.3.2 Spring AI MCP分层说明 2.4 两种模式介绍 三、本地开发SSE模式 3.1 搭建mcp-server 3.1.1 导入工程核心依赖 3.1.2 添加配置文件 3.1.3 提供两个…

OpenStack 入门与实践

一、云计算概述 1.1 云计算的定义与本质 云计算&#xff08;Cloud Computing&#xff09;是一种基于网络的超级计算模式&#xff0c;它能够根据用户的不同需求&#xff0c;动态提供所需的计算资源、存储资源和网络资源等。这种模式就像我们日常生活中使用水电煤气一样&#x…

AntV L7入门教程

以下教程将系统地介绍 AntV L7 的核心 Scene 类用法&#xff0c;涵盖实例化、地图配置、视图操作、图层管理、事件监听及资源销毁等常用 API&#xff0c;并为每个方法给出完整示例代码。所有示例均基于官方 API 文档 ([l7.antv.antgroup.com][1])。 一、安装与引入 # 安装 L7…

【边缘计算】场景

工业互联网 对现场采集的数据进行数据预处理&#xff0c;将现场有用的信息提取出来实时上传给平台&#xff0c;为平台大大减轻了处理的工作量。 汇聚现场数据统一接口上传数据到云端&#xff0c;大大提高系统多样部署的安全性&#xff0c;解决现场数据跨域访问的问题。制造企业…

【FPGA学习】DDS信号发生器设计

目录 一、设计原理与准备​ 1.1 DDS 原理​ 1.2 IP 核学习与准备​&#xff1a;FPGA开发中常用IP核——ROM/RAM/FIFO 2、ROM文件的设置 1.3 开发环境搭建​ 二、DDS 信号发生器设计实现 2.1 系统架构设计​ 2.2 代码编写与模块实现​ 三、测试结果与总结​ 参考文献&…

pyqt 简单条码系统

生产数据管理系统说明 系统概述 这是一个基于PyQt5和pyodbc开发的生产数据管理系统&#xff0c;主要用于管理生产过程中的物料绑定和查询操作。系统提供了上料绑定和下料查询功能&#xff0c;支持与SQL Server数据库交互&#xff0c;实现数据的插入、查询、更新和删除操作。界…

【unitrix】 4.1 类型级加一操作(Add1.rs)

一、原码 这段代码实现了一个类型级的加一操作(Add1 trait)&#xff0c;用于在Rust的类型系统中进行数值加一运算。 //! 加一操作特质实现 / Increment operation trait implementation //! //! 说明&#xff1a; //! 1. Z0、P1,、N1 1&#xff0c;常规计算 //! 2. …

git工作中常用

1.管理本地文件 git init//初始化生成一个本地仓库 git add * //添加到暂存区 git commit–m “message” //提交到本地仓库 2.删除本地分支 git branch -d local_branch_name3.隐藏及解除隐藏 git stashgit stash pop4.远程新建分支&#xff0c;在本地签出时候怎么看到 …

Golang 中接口嵌套的详细说明和使用示例

在 Go 语言中&#xff0c;接口嵌套&#xff08;也称为接口组合&#xff09;是一种强大的特性&#xff0c;它允许你通过组合现有接口来创建新的接口。这种方式遵循了 Go 的组合优于继承的设计哲学。 接口嵌套的基本概念 接口嵌套是指在一个接口中嵌入其他接口&#xff0c;从而…