Ubuntu基础-vim编辑器

目录

前言:

一. 安装

二. 配置

三. 基本使用

1.使用 Vim 编辑文本文件

2.代码编辑

3.多窗口编辑

四. 总结


前言:

Vim 是从 VI 发展出来的一个文本编辑器,具有代码补充、错误跳转等功能,在程序员中被广泛使用。它的设计理念是命令的组合,通过各种文本间移动、跳转命令与其他普通模式的编辑命令灵活组合,可以更高效地进行文本编辑。

Vim 常见的模式有普通模式、插入模式、命令模式和可视模式。Vim 启动时进入普通模式,在其他模式下按下 Esc 键可回到普通模式。在普通模式下,按下 i、I、o、O、a、A、r、R 等键可进入插入模式,在插入模式下可进行文本编辑。在普通模式下,按下:键可进入命令模式,在命令模式下可执行查找、存盘、替换字符等操作。在普通模式下,按下 v 键可进入可视模式,可视模式相当于高亮选取文本后的普通模式,可视模式具有子模式,以行为单位进行选取的可视行模式,使用 V 键进入;和以块为单位进行选取的可视块模式,使用 Ctrl+v 键进入。

一. 安装

在 Ubuntu 系统中可以使用以下命令安装 Vim:

  1. 打开终端;
  2. 输入sudo apt install vim命令并按下回车键;
  3. 等待安装完成。

安装完成后,可以在终端中输入vim命令打开 Vim 编辑器。

输入vim,安装成功,会显示如下页面

二. 配置

" 设置显示行号
set nu" 设置缩进为 4 个空格
set tabstop=4
set shiftwidth=4
set expandtab" 开启语法高亮
syntax on" 显示状态栏
set laststatus=2" 开启自动缩进
set autoindent" 增强搜索匹配显示
set hlsearch" 不备份文件
set nobackup

没有的话 直接新建一个

vim ~/.vimrc

配置之后的效果展示

三. 基本使用

Vim 有多种工作模式,以下是一些基本使用方法:

  • 普通模式:打开 Vim 后默认进入普通模式,可使用方向键或hjkl键移动光标,使用x键删除字符,使用dd命令删除整行;
  • 插入模式:在普通模式下,按下iao等键可进入插入模式,此时可输入文本;
  • 命令模式:在普通模式下,输入:进入命令模式,可执行保存、退出、查找、替换等操作;
  • 可视化模式:在普通模式下,按下v键进入可视化模式,可选择文本进行复制、粘贴、删除等操作;
  • 替换模式:在普通模式下,按下R键进入替换模式,可替换文本。

1.使用 Vim 编辑文本文件

  • 打开终端,输入 vim 文件名 来打开指定的文本文件。如果文件不存在,Vim 会创建一个新的空文件。

        

  • 进入 Vim 后,默认处于普通模式。
  • 要进入插入模式来编辑文本,可以按 i(在当前光标位置前插入)、a(在当前光标位置后插入)、o(在当前行下一行插入新行并进入插入模式)等键。
  • 在插入模式下进行文本的输入、修改等操作。
  • 编辑完成后,按 Esc 键回到普通模式。
  • 在普通模式下,可以进行删除、复制、粘贴等操作,例如 dd 可删除当前行,yy 可复制当前行。
  • 若要保存文件,在普通模式下输入 :w 。
  • 若要退出 Vim ,输入 :q 。如果想保存并退出,输入 :wq 。如果有未保存的更改且不想保存直接退出,输入 :q! 。

2.代码编辑

以下是使用 Vim 进行代码编辑的一些常见操作和示例:

缩进和格式化

  • 可以使用 = 命令对选中的代码块进行自动缩进。

代码折叠

  • Vim 支持代码折叠,方便查看和管理大型代码块。

语法高亮

  • 不同编程语言会有相应的语法高亮显示,使代码结构更清晰。

快速移动

  • 比如使用 Ctrl+f 向前翻页, Ctrl+b 向后翻页。

查找和替换

  • 在命令模式下输入 /要查找的代码片段 进行查找。

在普通模式下使用=;

格式化

语法高亮

3.多窗口编辑

在 Vim 中,可以使用以下命令进行多窗口编辑:

  • :sp:split:水平分割窗口,在当前窗口下方打开一个新窗口,并显示相同的缓冲区内容。
  • :vs:vsplit:垂直分割窗口,在当前窗口右侧打开一个新窗口,并显示相同的缓冲区内容。
  • :new:打开一个新的窗口,并显示一个空的缓冲区。

例如,要同时编辑两个文件,可以使用以下命令:

  • vim file1 file2:在启动 Vim 时同时打开两个文件,每个文件占用一个窗口。
  • :sp file2:在当前窗口中打开文件file2,并水平分割窗口。
  • :vs file2:在当前窗口中打开文件file2,并垂直分割窗口。

在多个窗口之间切换,可以使用以下快捷键:

  • Ctrl+w+方向键:按方向键切换到前/下/上/后一个窗口。
  • Ctrl+w+h/j/k/l:切换到左/下/上/右边的窗口。
  • Ctrl+ww:依次向后切换到下一个窗口。

要调整窗口大小,可以使用以下快捷键:

  • Ctrl+w+:增加当前窗口的高度。
  • Ctrl+w-:减少当前窗口的高度。
  • Ctrl+w+>:增加当前窗口的宽度。
  • Ctrl+w+<:减少当前窗口的宽度。

要关闭当前窗口,可以使用以下命令:

  • :q:关闭当前窗口。
  • :qa:关闭所有窗口。

四. 总结

Vim 是一款功能强大且高度可定制的文本编辑器,具有以下主要特点和优势:

主要特点

  • 多种操作模式:包括普通模式、插入模式、命令模式等,不同模式下有特定的操作和功能。
  • 高效的编辑:提供了众多快捷键和命令,可快速移动光标、编辑文本、删除、复制、粘贴等。
  • 强大的搜索和替换:能进行精确的文本搜索和复杂的替换操作。
  • 语法高亮:支持多种编程语言的语法高亮显示,增强代码可读性。
  • 代码折叠:方便管理大型代码块。

优势

  • 轻量级:占用资源少,启动速度快。
  • 跨平台:可在多种操作系统上运行。
  • 可深度定制:通过修改 .vimrc 文件可以根据个人需求配置各种功能和外观。
  • 高度灵活:适应不同用户的工作方式和习惯,从新手到专业用户都能找到适合的使用方式。

总之,Vim 虽然有一定的学习曲线,但熟练掌握后能极大地提高文本编辑效率。

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

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

相关文章

APS-SCM联动:开创生产调度与供应链管理新篇章

在当今激烈的市场产品竞争环境下&#xff0c;企业不仅需要灵活高效的内部生产流程&#xff0c;更需具备对外部环境快速响应的能力&#xff0c;从而保证产品保质保量的生产完成&#xff0c;快速占据更多的市场份额。正是在这样的背景下&#xff0c;APS&#xff08;Advanced Plan…

数据库、中台、报表平台之间的关系

我最近在接触报表平台和中台&#xff0c;发现他们跟我平常用的数据库不是一个东西。然后&#xff0c;我开始了摸索他们的过程&#xff0c;终于&#xff0c;我在理清他们的关系以后&#xff0c;简单写一个入门级的区分。 数据库&#xff1a; 定义&#xff1a; 数据库是被长期存…

主流电商平台API接口【京东商品详情按关键字搜索商品按图搜索京东商品(拍立淘)获得店铺的所有商品】

主流电商平台商品接口在电商企业中的应用可以帮助企业实现信息同步、库存管理、订单处理、数据分析和营销推广等多重功能&#xff0c;提升运营效率、优化用户体验&#xff0c;进而推动业务增长。 jd API 接入说明 API地址:申请调用KEY地址 调用示例&#xff1a; 参数说明 通用…

查询Kafka集群中消费组(group)信息和对应topic的消费情况

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

推动 AI/ML 创新:使用 MinIO 的高性能对象存储构建特征存储

MinIO 为全球 S3 和对象存储设定了标准&#xff0c;并已成为实现 AI 代理和功能存储集成的关键参与者。随着组织努力利用 AI 的力量来推动创新并获得竞争优势&#xff0c;高效数据管理的重要性以及将 AI 代理无缝集成到现有工作流程中的能力变得至关重要。在本文中&#xff0c;…

IntelliJ IDEA 2024.1安装_idea2024.1版本激 活 码分享

一&#xff1a;IDEA官方下载 ①如题&#xff0c;先到IDEA官方下载&#xff0c;简简单单 ②IDEA官方&#xff1a;IntelliJ IDEA – the Leading Java and Kotlin IDE 二&#xff1a;获取脚本 https://www.yuque.com/fengye-cyk1s/dxii3c/orbl5ruhvm7m3s4g &#x1f31f;获取完…

Web应用安全测试-权限缺失

Web应用安全测试-权限缺失 Flash跨域访问 漏洞描述&#xff1a;flash跨域通信&#xff0c;依据的是crossdomain.xml文件。该文件配置在服务端&#xff0c;一般为根目录下&#xff0c;限制了flash是否可以跨域获取数据以及允许从什么地方跨域获取数据。举个例子&#xff1a; 1、…

华为全流程全要素研发项目管理实践

在当前竞争激烈的市场环境中&#xff0c;企业要想在技术研发和项目管理上取得突破&#xff0c;必须建立健全的管理体系。本文将深入探讨华为全流程全要素研发项目管理的实践&#xff0c;从项目管理的定义、目标管理到具体的执行过程&#xff0c;全面解析如何在研发项目中实现高…

在得物的小程序生态实践

一、前言 提起微信小程序&#xff0c;相信所有人都不陌生&#xff0c;下面这个典型使用场景你一定经历过&#xff1a; 餐馆落座——微信扫桌角小程序码——使用微信小程序点餐&#x1f354; 微信小程序&#xff08;下文简称&#xff1a;小程序&#xff09;作为一种在微信平台…

【前端取不到cookie的的原因】http-only

某条cookie有http-only属性时&#xff0c;下面两种方法都取不到&#xff0c;还是改需求吧&#xff0c;别取了 1、 npm install js-cookie --save import Cookies from js-cookie let cookieValue Cookies.get(name)2、document.cookie

IAST面面观 | IAST强化越权检测能力,提升系统安全性

什么是越权漏洞 越权漏洞是一种常见的逻辑安全漏洞。越权漏洞指的是攻击者利用系统中的漏洞&#xff0c;获得超过其正常权限的访问权限&#xff0c;执行未授权操作。 越权漏洞主要分为两种类型&#xff1a;水平越权&#xff08;横向越权&#xff09;和垂直越权&#xff08;纵…

刷代码随想录有感(107):动态规划——01背包/最后一块石头的重量||

题干&#xff1a; 代码&#xff1a; class Solution { public:int lastStoneWeightII(vector<int>& stones) {vector<int>dp(15001, 0);int sum 0;for(int i : stones){sum i;}int target sum / 2;for(int i 0; i < stones.size(); i){for(int j targ…

AI + 3D:用单个图像和文本提示创建可交互的3D世界

你是否曾经梦想过只需一张照片和一些简单的文字描述,就能立即进入一个生动的3D虚拟世界?今天,我们将介绍一个革命性的技术,它就像是一台神奇的3D场景制造机,能够根据你的想象快速构建出令人惊叹的虚拟空间。 一、技术概览 这项技术不仅仅是一个简单的图像到3D的转换工具…

【免费API推荐】:轻松集成,为您的应用增添更多价值(9)

开发者喜爱的免费API是他们在开发过程中最宝贵的伙伴。这些API提供了丰富的功能和数据&#xff0c;帮助开发者构建出令人惊叹的应用。无论是地图服务、社交媒体集成、数据分析还是人工智能&#xff0c;这些免费API为开发者提供了强大的工具和资源&#xff0c;让他们能够更轻松地…

Uni-App中的u-datetime-picker时间选择器Demo

目录 前言Demo 前言 对于网页端的推荐阅读&#xff1a;【ElementUI】详细分析DatePicker 日期选择器 事情起因是两个时间选择器同步了&#xff0c;本身是从后端慢慢步入全栈&#xff0c;对此将这个知识点从实战进行提炼 通过Demo进行总结 Demo 用于选择日期和时间的组件&a…

为什么选择住宅代理?IPXProxy住宅代理的优势

​在数字化时代&#xff0c;隐私和数据安全成为了每个互联网用户的关注焦点。住宅代理作为一种有效保护隐私的工具&#xff0c;因其独特的优势备受推崇。本文将从用户的角度&#xff0c;探讨选择住宅代理的诸多优势。 什么是住宅代理&#xff1f; 简单来说&#xff0c;住宅代理…

06眼动识别系统-改版

06眼动识别系统-改版 原先的模块组成示意图优缺点 新模块设计优缺点 软件方面结语其他以下是废话 试验&#xff0c;本身就是一个摸索的过程&#xff0c;在上一阶段的试验中&#xff0c;我们发现硬件的连接模式&#xff0c;给试验造成了很多麻烦&#xff0c;所以决定对硬件的连接…

leaflet室内地图\平面图点线面绘制

需求&#xff1a; 用户自定义上传一张平面图&#xff0c;然后可以在平面图内标点、绘制面、并且能够弹出相对应点、面的信息&#xff0c;信息可编辑&#xff0c;类似下图&#xff1a; 相关实现技术&#xff1a;leaflet 中文网&#xff1a;Leaflet - 一个交互式地图 JavaScript…

游戏运营与发行:从入门到实践

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…