linux入门三:Linux 编辑器
一、轻量级编辑器:快速上手的首选
1.1 Leafpad:极简主义的轻量之选
核心特点
- 轻量快速:体积小、启动快,资源占用极低,适合低配设备或快速编辑简单文件。
- 无复杂功能:仅支持基础文本编辑,界面简洁,无多余插件或菜单。
- 纯文本友好:专注于纯文本编辑,不支持富文本格式,适合编写脚本、配置文件。
安装与使用
# 安装(适用于 Debian/Ubuntu 系列)sudo apt install leafpad# 启动leafpad 文件名.txt # 直接打开或创建文件
适用场景
- 临时编辑小文件(如 shell 脚本、简单配置)。
- 老旧电脑或资源有限的环境(如树莓派)。
1.2 gedit:GNOME 桌面的标配编辑器
核心特点
- 图形化界面:GNOME 桌面默认编辑器,支持语法高亮、查找替换、插件扩展。
- 功能均衡:比 Leafpad 强大,比 Vim 简单,适合日常文本编辑。
- 中文支持友好:内置中文输入法支持,界面本地化完善。
安装与使用
# 安装(通常系统已预装,未安装时执行)sudo apt install gedit# 启动gedit 文件名.txt # 图形化界面打开文件
特色功能
- 语法高亮:支持多种编程语言(Python、C、HTML 等)。
- 插件系统:可安装扩展(如代码折叠、拼写检查)。
- 版本控制:集成 Git 插件,方便查看文件修改历史。
适用场景
- 普通用户日常编辑(文档、代码、配置文件)。
- 需要图形化操作的场景(非命令行用户)。
二、终极编辑器 Vim:程序员的瑞士军刀
2.1 Vim 概述
- 起源与定位:Vim 是经典文本编辑器 Vi 的增强版,以高效、可定制、无图形界面著称,是程序员、系统管理员的必备工具。
- 学习曲线:初期上手较难(依赖命令而非鼠标),但熟练后编辑效率极高。
- 核心优势:支持键盘全操作、强大的文本处理能力、高度可定制化。
2.2 安装 Vim
# Debian/Ubuntu 系统sudo apt-get install vim# 验证安装vim --version # 显示版本信息
2.3 Vim 三大工作模式(核心!)
模式 1:命令模式(启动默认模式)
- 光标移动:
| 操作 | 效果 | 示例 |
| ↑↓←→ | 上下左右移动光标 | 直接按键 |
| gg | 跳转到文件首行 | 输入 gg |
| G | 跳转到文件末行 | 输入 G |
| 数字+G | 跳转到指定行(如 2G) | 输入 2G |
| Ctrl + b/f | 向上 / 向下翻页(同 PageUp/Down) | Ctrl + b 向上翻页 |
- 删除操作:
| 命令 | 效果 |
| x | 删除光标后一个字符(等效 Del) |
| X | 删除光标前一个字符(等效 Backspace) |
| dd | 删除当前行 |
| 数字+dd | 删除从当前行开始的 N 行(如 2dd) |
| ggdG | 删除文件所有内容 |
- 撤销与恢复:
-
- u:撤销上一步操作(可多次撤销)。
-
- Ctrl + r:反撤销(恢复撤销的操作)。
- 复制与粘贴:
| 命令 | 效果 |
| yy | 复制当前行 |
| 数字+yy | 复制 N 行(如 2yy) |
| p | 在光标下方粘贴(下一行) |
| P | 在光标上方粘贴(上一行) |
- 可视模式:
-
- 按 v 进入可视模式,通过方向键选择文本块,配合 d(删除)、y(复制)等命令操作。
- 查找功能:
-
- /{关键词}:从当前位置向下查找(如 /hello)。
-
- ?{关键词}:从当前位置向上查找(如 ?error)。
-
- n:下一个匹配项;N:上一个匹配项。
模式 2:编辑模式(从命令模式进入)
| 命令 | 效果 |
| i | 在光标前插入字符(最常用) |
| I | 在当前行首插入 |
| a | 在光标后追加字符 |
| A | 在当前行尾追加 |
| o | 在当前行下方新建一行并进入编辑 |
| O | 在当前行上方新建一行并进入编辑 |
| ESC | 退出编辑模式,返回命令模式 |
模式 3:末行模式(从命令模式输入 : 进入)
| 命令 | 效果 |
| :w | 保存文件 |
| :q | 退出(文件未修改时可用) |
| :wq | 保存并退出 |
| :q! | 强制退出(不保存修改) |
| :wq! | 强制保存并退出(需管理员权限) |
| :s/old/new | 替换当前行第一个 old 为 new |
| :%s/old/new/g | 替换文件中所有 old 为 new |
| :n1,n2s/old/new/g | 替换第 n1 到 n2 行的所有 old |
| :%s/^/xxx | 在每一行行首插入 xxx(^ 表示行首) |
| :%s/$/xxx | 在每一行行尾插入 xxx($ 表示行尾) |
2.4 Vim 配置文件:个性化你的编辑器
- 配置文件路径:~/.vimrc(用户级配置),系统级配置为 /etc/vim/vimrc(需管理员权限)。
- 常用配置示例:
set number " 显示行号set cursorline " 突出显示当前行set tabstop=4 " 设置制表符宽度为 4 个空格set shiftwidth=4 " 设置自动缩进宽度set mouse=a " 启用鼠标操作(可选)colorscheme desert " 设置配色方案(如 desert、monokai)
- 生效方式:修改后保存,重新打开 Vim 或执行 :source ~/.vimrc 立即生效。
2.5 Vim 进阶技巧
- 分屏操作:
-
- :split 文件名:水平分割窗口。
-
- :vsplit 文件名:垂直分割窗口。
-
- Ctrl + w + h/j/k/l:在分屏间切换光标(对应左 / 下 / 上 / 右)。
- 宏录制:
-
- 命令模式下按 q{寄存器名}(如 qa)开始录制。
-
- 执行需要重复的操作。
-
- 按 q 停止录制。
-
- 按 @a 回放宏,数字+@a 回放多次。
- 插件扩展:
-
- 使用插件管理器(如 Vundle、Pathogen、Plug)安装插件(如语法检查、代码补全、Git 集成)。
-
- 示例:安装代码补全插件 YouCompleteMe 提升编程效率。
三、编辑器对比与选择建议
| 编辑器 | 优势 | 适合人群 | 典型场景 |
| Leafpad | 轻量、快速 | 新手、临时编辑 | 小文件修改、低配设备 |
| gedit | 图形化、功能均衡 | 普通用户、日常编辑 | 文档处理、简单代码编写 |
| Vim | 高效、可定制、无图形界面 | 程序员、系统管理员 | 代码开发、大规模文本处理 |
四、总结:找到你的编辑利器
- 新手入门:从 gedit 或 Leafpad 开始,熟悉图形化操作,逐步过渡到 Vim 的基础命令(如文件打开、保存、简单编辑)。
- 进阶提升:深入学习 Vim 的命令模式,掌握光标移动、删除 / 复制 / 粘贴的组合操作,尝试使用末行模式的替换和查找功能。
- 高效定制:通过 .vimrc 配置个性化环境,安装插件提升编程体验(如语法高亮、自动补全)。
Vim 的强大在于其 “模式化” 和 “可组合性”,初期可能需要投入时间练习,但熟练后能大幅提升文本处理效率。记住:“Vim 不是编辑器,而是一种思维方式。” 坚持练习,你会逐渐体会到 “键盘即世界” 的高效与便捷。
相关文章:
linux入门三:Linux 编辑器
一、轻量级编辑器:快速上手的首选 1.1 Leafpad:极简主义的轻量之选 核心特点 轻量快速:体积小、启动快,资源占用极低,适合低配设备或快速编辑简单文件。 无复杂功能:仅支持基础文本编辑,界面…...
C++设计模式+异常处理
#include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory> #include <stdexcept> // 包含异常类using namespace std;// 该作业要求各位写一…...
HttpServletRequest是什么
HttpServletRequest 是 Java Servlet API 中的一个接口,表示 HTTP 请求对象。它封装了客户端(如浏览器)发送到服务器的请求信息,并提供了访问这些信息的方法。 1. 基本概念 作用: HttpServletRequest 提供了一种机制&…...
checkra1n越狱出现的USB error -10问题解决
使用checkra1n进行越狱是出现: 解决办法(使用命令行进行越狱): 1. cd /Applications/checkra1n.app/Contents/MacOS 2. ./checkra1n -cv 3. 先进入恢复模式 a .可使用爱思助手 b. 或者长按home,出现关机的滑条,同时按住home和电源键&#…...
golang-defer延迟机制
defer延迟机制 defer是什么 defer是go中一种延迟调用机制。 执行时机 defer后面的函数只有在当前函数执行完毕后才能执行。 执行顺序 将延迟的语句按defer的逆序进行执行,也就是说先被defer的语句最后被执行,最后被defer的语句,最先被执…...
【小沐学Web3D】three.js 加载三维模型(Angular)
文章目录 1、简介1.1 three.js1.2 angular.js 2、three.js Angular.js结语 1、简介 1.1 three.js Three.js 是一款 webGL(3D绘图标准)引擎,可以运行于所有支持 webGL 的浏览器。Three.js 封装了 webGL 底层的 API ,为我们提供了…...
一种替代DOORS在WORD中进行需求管理的方法 (二)
一、前景 参考: 一种替代DOORS在WORD中进行需求管理的方法(基于WORD插件的应用)_doors aspice-CSDN博客 二、界面和资源 WORD2013/WORD2016 插件 【已使用该工具通过第三方功能安全产品认证】: 1、 核心功能 1、需求编号和跟…...
一个基于ragflow的工业文档智能解析和问答系统
工业复杂文档解析系统 一个基于ragflow的工业文档智能解析和问答系统,支持多种文档格式的解析、知识库管理和智能问答功能。 系统功能 1. 文档管理 支持多种格式文档上传(PDF、Word、Excel、PPT、图片等)文档自动解析和分块处理实时处理进度显示文档解析结果预览批量文档…...
23种设计模式-行为型模式-访问者
文章目录 简介场景解决完整代码核心实现 总结 简介 访问者是一种行为设计模式,它能把算法跟他所作用的对象隔离开来。 场景 假如你的团队开发了一款能够使用图像里地理信息的应用程序。图像中的每个节点既能代表复杂实体(例如一座城市)&am…...
WebView2最低支持.NET frame4.5,win7系统
WebView2最低支持.NET frame什么版本 WebView2 对 .NET Framework 的最低版本要求 基础支持范围 WebView2 官方支持的 .NET Framework 最低版本为 4.5,同时兼容 .NET Core 3.0 及以上版本18。对于 WPF、WinForms 等桌面应用开发,需确…...
WHAT - React 组件的 props.children 属性
目录 一、什么是 children二、基本用法三、类型定义(TypeScript)四、一些高级用法1. 条件渲染 children2. 多个 children 插槽(命名插槽) 五、children 的优势总结 在 React 中,children 是一个非常重要且特殊的 内置属…...
组播网络构建:IGMP、PIM 原理及应用实践
IP组播基础 组播基本架构 组播IP地址 一个组播IP地址并不是表示具体的某台主机,而是一组主机的集合,主机声明加入某组播组即标识自己需要接收目的地址为该组播地址的数据IP组播常见模型分为ASM模型和SSM模型ASM:成员接收任意源组播数据&…...
建筑兔零基础自学记录69|爬虫Requests-2
Requests库初步尝试 #导入requests库 import requests #requests.get读取百度网页 rrequests.get(http://www.baidu.com) #输出读取网页状态 print(r.status_code) #输出网页源代码 print(r.text) HTTP 状态码是三位数字,用于表示 HTTP 请求的结果。常见的状态码有…...
NVIDIA PhysX 和 Flow 现已完全开源
NVIDIA PhysX SDK 在 3-Clause BSD 许可下开源已有六年半了,但其中并非所有内容都是开源的。直到最近,随着 GPU 模拟内核源代码在 GitHub 上的发布,这种情况才有所改变。以下是 NVIDIA 分享的消息,以及 Flow SDK 着色器实现的发布…...
QML面试笔记--UI设计篇01常用控件分类
1. QML常用控件深度解析:从入门到实战2. 控件分类全景图3. 核心控件详解 3.1. 布局控件(构建界面骨架) 3.1.1. ▶ ColumnLayout 3.2. 交互控件 3.2.1. ▶ 智能搜索框(组合控件) 3.3. 数据可视化控件 3.3.1. ▶ 动态仪表…...
电脑DNS出错无法打开网页
目录 解决步骤 打开“控制面板”--》“查看网络状态和任务” 打开“更改适配器设置” 对WLAN右键,打开属性 打开“使用下面的DNS服务器地址”--》高级 添加“114.114.114.114”,点击确定 今天晚上突然网页打不开了,一开始我以为是网络的…...
[Redis]redis-windows下载安装与使用
本篇记录windows redis下载安装与使用。 下载 官网下载方式(没windows版) https://redis.io/downloads/#stack 可以选择下载社区版Redis CE与增强版Redis Stack。 两者都不支持直接运行在windows上,需要Docker环境。 You can install Redis CE locally on your …...
Python-Django+vue宠物服务管理系统功能说明
❥(^_-) 上千个精美定制模板,各类成品Java、Python、PHP、Android毕设项目,欢迎咨询。 ❥(^_-) 程序开发、技术解答、代码讲解、文档,💖文末获取源码+数据库+文档💖 💖软件下载 | 实战案例 💖文章底部二维码,可以联系获取软件下载链接,及项目演示视频。 本项目…...
极氪汽车云原生架构落地实践
云原生架构落地实践的背景 随着极氪数字业务的飞速发展,背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验,并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。 为快速响应用户的需求,例如…...
2025年AI开发学习路线
目录 一、基础阶段(2-3个月) 1. 数学与编程基础 2. 机器学习入门 二、核心技能(3-4个月) 1. 深度学习与框架 2. 大模型开发(重点) 三、进阶方向(3-6个月) 1. 多模态与智能体…...
网络出故障时,四大表(MAC表、ARP表、路由表、转发表)怎么查?看看这套排查顺序
网络出故障时,四大表 (MAC表、ARP表、路由表、转发表) 怎么查 说正题之前,我们先来假设一个场景: 场景假设: 一台华为设备突然上不了网,或者访问某个 IP 不通。 你会怎么排查? 别慌,兄弟&a…...
数据结构与算法-图论-复习1(单源最短路,全源最短路,最小生成树)
1. 单源最短路 单一边权 BFS 原理:由于边权为单一值,可使用广度优先搜索(BFS)来求解最短路。BFS 会逐层扩展节点,由于边权相同,第一次到达某个节点时的路径长度就是最短路径长度。 用法:适用…...
oracle 动态性能视图
Oracle 数据库中的 V$SQLAREA 是一个动态性能视图(Dynamic Performance View),用于记录共享池(Shared Pool)中所有 SQL 语句的统计信息。每个 SQL 语句在共享池中存储为一个游标(Cursor)&#x…...
Vue3+Vite+TypeScript+Element Plus开发-10.多用户动态加载菜单
系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 Header响应式菜单缩展 Mockjs引用与Axios封装 登录设计 登录成功跳转主页 多用户动态加载菜单 Pinia持久化 动态路由-配置 文章目录 目录 系列文档目…...
前端用户列表与后端分页协同设计
分页实现方案 在现代Web应用中,用户列表展示与分页是一个常见的功能需求。前端与后端通过API协同工作,使用PageHelper等工具实现高效分页。 例如: 后端实现 (使用PageHelper) public PageResult DishPage(DishPageQueryDTO dishPageQuery…...
三月份面试感触
我毕业三年了,也在公司干了三年本来还以为很快的找到工作,没想到呀现在就业环境是真的差,那个boss和智联一堆的外包找你,找你要了简历然后就没下文了,我也去面了几家自研的公司,只能说这不是欺负老实人吗&a…...
C++使用WebView2控件,通过IPC通信与Javascript交互
引言 在现代桌面应用程序开发中,Web技术与原生应用的融合变得越来越普遍。Microsoft的WebView2控件为C开发者提供了一个强大的工具,使他们能够在桌面应用中嵌入基于Chromium的Web浏览器引擎。本文将详细介绍如何在C应用程序中使用WebView2控件ÿ…...
精准测试建设过程中遇到的一些问题
1.sqlite3 仅可以处理单个任务问题,多线程往往会面临数据库锁定 因为仅临时存储,后来在创建数据库时,给每个任务开了一个临时数据库,存储数据执行完毕后,删除db sql_insert_new:INSERT INTO analyze_api_resault_dynam…...
【Docker】Dockerfile 编写实践
👻创作者:丶重明 👻创作时间:2025年4月8日 👻擅长领域:运维 目录 1. Dockerfile编写原则1.1.选择合适的基础镜像1.2.镜像层优化1.3.多阶段构建1.4.安全增强 2. 关键指令与技巧2.1.COPY vs ADD2.2.ENTRYPOIN…...
Jakarta EE 11发布:云原生Java企业应用的新标准
📝 摘要 Jakarta EE 11于2023年正式发布,这是Java企业版技术栈的一次重要更新。本文将详细介绍Jakarta EE 11的核心特性、改进之处以及如何利用这些新功能构建现代化的云原生应用。我们将通过实际代码示例展示新特性的使用方法,并分析其对Ja…...
