指尖的诗篇:在Vim的世界里书写代码与梦想,Linux下vim编辑器的使用详解

指尖的诗篇:在Vim的世界里书写代码与梦想,Linux下vim编辑器的使用详解

文章目录

在这里插入图片描述

前言

在浩瀚的Linux世界中,Vim是一颗璀璨的明珠。它不仅仅是一个文本编辑器,更是无数开发者的心头好,是所有程序员与技术爱好者不可或缺的工具之一。Vim是一种专注且极具魅力的编辑器,它所赋予的力量,远远超出了一个简单的文本编辑任务。对于那些了解它的人来说,Vim不仅仅是一个工具,它是思想的延伸,是工作流的象征。今天,我们将细细探讨Vim编辑器在Linux环境中的使用,揭开它神秘的面纱。

一、Vim的起源与背景

Vim,原名Vi IMproved(Vi的增强版),是由布拉德·乔恩逊(Bram
Moolenaar)于1991年发布的。它基于UNIX系统中的Vi编辑器,Vi作为一个传统且强大的文本编辑器,已经陪伴了几代Linux用户的成长。而Vim则在此基础上进行扩展与优化,拥有了更多的功能,使得它在编辑工作中更为高效和便捷。

与Vi相比,Vim不仅仅有基本的编辑功能,还提供了丰富的插件扩展语法高亮自动完成等功能,这些都使得它成为了程序员、开发者和系统管理员必不可少的工具。

1.1 安装vim

在 Ubuntu 系统上,可以通过以下命令安装 Vim:

sudoapt update sudoaptinstallvim
在这里插入图片描述


要注意的是当我们以普通用户的身份去下载安装包的时候,是需要sudo提权的

二、Vim的模式设计:极简而深邃

  • 命令模式:Vim 启动后默认的模式,可以使用快捷键执行命令,此模式下用户的所有输入都会被当作命令,一般不会 给你作为文本输入
  • 插入模式:用于文本输入,按 i 进入插入模式,按 Esc 返回普通模式,此模式下可以进行代码编写
  • 底行模式:用于输入命令,按 : 进入命令行模式,此模式下可以进行退出保存等多种命令操作

三、vim的强大功能

3.1 打开和退出文件

首先我们先创建一个文件,之后用vim进入

touch filename vim filename 

进入之后默认是命令模式,我们可以通过按下 i进入插入模式,进行如下代码的编写
在完成输入后,按esc返回命令默认,之后shift ;同时按下,即可弹出左下角的冒号,此时可以输入以下命令进行保存退出。

:q 如果没有修改,直接退出
:q! 强制退出,不保存修改
:wq 保存修改并退出

快速按两下大写z也可以实现保存退出。

在这里插入图片描述

3.2 基本编辑操作

  • 进入插入模式:按 i(在光标前插入)或 a(在光标后插入)。
  • 删除字符:在普通模式下,按 x 删除光标下的字符。
  • 撤销操作:按 u 撤销操作,按 Ctrl + r 重做操作。

3.3 移动光标

需注意,在vim中鼠标无法直接参与光标的移动,需要通过键盘指令进行。

  • h:向左移动一个字符。
  • j:向下移动一行。
  • k:向上移动一行。
  • l:向右移动一个字符。
  • gg:移动到文件开头。
  • G:移动到文件结尾。
  • Ctrl + f:向下翻一页。
  • Ctrl + b:向上翻一页。

3.4 删除文字

其中,#代表数字

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

3.5 复制

需要注意这些命令都需要在命令模式进行,如果在插入模式下会被认为是输入的字符。

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

3.6 替换

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

3.7 更改

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

3.8 跳至指定的行

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

3.9 撤销上一次操作

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

3.10 查找和替换

查找文本:在命令模式下,输入 /text 查找 text,使用 n 移动到下一个匹配项。
替换文本:在底行模式下,输入:

:%s/old_text/new_text/g 

四、vim的强大功能

  1. 语法高亮
    在Vim中,语法高亮是其最基础的功能之一。通过启用语法高亮功能,Vim可以帮助开发者清晰地区分代码中的不同元素,如关键字、变量、函数等。对于编程语言的支持,可以通过插件进行扩展,Vim几乎支持所有主流编程语言的语法高亮。
  2. 多文件编辑
    Vim并不仅仅局限于一个文件。通过 :split 或 :vsplit 命令,你可以轻松地将屏幕分割成多个窗口,进行多文件编辑。这种功能极大提高了工作效率,尤其是在处理多个文件时,你不再需要频繁地切换窗口,所有操作都可以在同一界面内完成。
  3. 插件系统
    Vim强大的插件系统使得它可以根据用户需求进行定制和扩展。无论是代码自动补全、Git集成,还是Markdown预览、数据库操作,Vim几乎可以做到。最流行的插件管理器是Vundle和Pathogen,它们让你可以轻松安装和管理插件。
  4. 搜索与替换
    在Vim中,查找和替换功能不仅仅限于文本内容。你可以通过正则表达式进行复杂的搜索,甚至在整个项目中进行批量替换。命令如 😒/old/new/g 会将当前行的 old 替换为 new,而 :argdo 命令允许你在所有打开的文件中进行替换。
  5. 自动完成
    Vim不仅支持基本的代码补全,还能够根据你所输入的上下文自动提供更符合需求的补全项。你可以通过插件如 YouCompleteMe 或 Deoplete 来进一步增强代码自动补全功能,提高编码效率。
  6. 版本控制与Git集成
    Vim还拥有强大的Git集成功能。通过安装插件,如 fugitive.vim,你可以在Vim内执行Git操作,如查看版本历史、提交更改、解决冲突等,而无需离开编辑器。这种集成方式为程序员带来了极大的便利。

分屏操作

  • 水平分屏
:split 文件名
  • 垂直分屏
:vsplit 文件名
在这里插入图片描述


其中,

  • vim +文件名,wq之后若该文件原先不存在,则会自动创建
  • 命令行输入vs 文件名,可以实现分屏操作
  • ctrl按住不动,快速按两下w,可以实现光标在分屏幕之间的切换。
  • 光标在哪个分屏幕,代表正在对该区域进行操作。
  • wq!中的!表示强制,意为强制保存并退出

四、Vim的学习曲线:一段与自我对话的旅程

Vim被认为有较陡的学习曲线,这无疑是事实。刚开始使用时,你可能会感到困惑和不适应。特别是与传统的图形化编辑器相比,Vim没有鼠标操作,所有功能都需要通过键盘快捷键来完成。但这恰恰是Vim的精髓所在,它并非让用户去适应,而是引导用户从内心开始改变与计算机交互的方式。

然而,Vim的难学并非毫无意义。每一段痛苦的经历,都会带来极大的回报。习惯了Vim的操作,你将获得一种与计算机对话的流畅感。它让你摆脱了鼠标的束缚,极大地提高了工作效率,并让你的思维变得更加简洁和专注。

小结

在这个信息化时代,Vim不仅是Linux用户的必备工具,更是一种技术精神的象征。它提醒我们,真正的高手并非追求繁琐和浮华,而是在简约中找到最深的力量。在Vim的世界里,每一次按键,都是通向更加高效和自由的道路。

愿每一个使用Vim的你,都能享受到那份属于文本的极致之美。

本篇关于vim编辑器的介绍就暂告段落啦,希望能对大家的学习产生帮助,欢迎各位佬前来支持斧正!!!

在这里插入图片描述

Read more

02-mcp-server案例分享-Excel 表格秒变可视化图表 HTML 报告,就这么简单

02-mcp-server案例分享-Excel 表格秒变可视化图表 HTML 报告,就这么简单

1.前言 MCP Server(模型上下文协议服务器)是一种基于模型上下文协议(Model Context Protocol,简称MCP)构建的轻量级服务程序,旨在实现大型语言模型(LLM)与外部资源之间的高效、安全连接。MCP协议由Anthropic公司于2024年11月开源,其核心目标是解决AI应用中数据分散、接口不统一等问题,为开发者提供标准化的接口,使AI模型能够灵活访问本地资源和远程服务,从而提升AI助手的响应质量和工作效率。 MCP Server 的架构与工作原理 MCP Server 采用客户端-服务器(Client-Server)架构,其中客户端(MCP Client)负责与服务器建立连接,发起请求,而服务器端则处理请求并返回响应。这种架构确保了数据交互的高效性与安全性。例如,客户端可以向服务器发送请求,如“查询数据库中的某个记录”或“调用某个API”,而服务器则根据请求类型,调用相应的资源或工具,完成任务并返回结果。 MCP Server 支持动态发现和实时更新机制。例如,当新的资源或工具被添加到服务器时,

By Ne0inhk
将现有 REST API 转换为 MCP Server工具 -higress

将现有 REST API 转换为 MCP Server工具 -higress

Higress 是一款云原生 API 网关,集成了流量网关、微服务网关、安全网关和 AI 网关的功能。 它基于 Istio 和 Envoy 开发,支持使用 Go/Rust/JS 等语言编写 Wasm 插件。 提供了数十个通用插件和开箱即用的控制台。 Higress AI 网关支持多种 AI 服务提供商,如 OpenAI、DeepSeek、通义千问等,并具备令牌限流、消费者鉴权、WAF 防护、语义缓存等功能。 MCP Server 插件配置 higress 功能说明 * mcp-server 插件基于 Model Context Protocol (MCP),专为 AI 助手设计,

By Ne0inhk
MCP 工具速成:npx vs. uvx 全流程安装指南

MCP 工具速成:npx vs. uvx 全流程安装指南

在现代 AI 开发中,Model Context Protocol(MCP)允许通过外部进程扩展模型能力,而 npx(Node.js 生态)和 uvx(Python 生态)则是两种即装即用的客户端工具,帮助你快速下载并运行 MCP 服务器或工具包,无需全局安装。本文将从原理和对比入手,提供面向 Windows、macOS、Linux 的详细安装、验证及使用示例,确保你能在本地或 CI/CD 流程中无缝集成 MCP 服务器。 1. 工具简介 1.1 npx(Node.js/npm) npx 是 npm CLI(≥v5.2.0)

By Ne0inhk
解锁Dify与MySQL的深度融合:MCP魔法开启数据新旅程

解锁Dify与MySQL的深度融合:MCP魔法开启数据新旅程

文章目录 * 解锁Dify与MySQL的深度融合:MCP魔法开启数据新旅程 * 引言:技术融合的奇妙开篇 * 认识主角:Dify、MCP 与 MySQL * (一)Dify:大语言模型应用开发利器 * (二)MCP:连接的桥梁 * (三)MySQL:经典数据库 * 准备工作:搭建融合舞台 * (一)环境搭建 * (二)安装与配置 Dify * (三)安装与配置 MySQL * 关键步骤:Dify 与 MySQL 的牵手过程 * (一)安装必要插件 * (二)配置 MCP SSE * (三)创建 Dify 工作流 * (四)配置 Agent 策略 * (五)搭建MCP

By Ne0inhk