linux的vim最全教程

基础概念

  1. 模式:Vim有多种模式,主要为命令模式(Normal mode)、插入模式(Insert mode)、可视模式(Visual mode)、末行模式(Command-line mode)等。默认启动时处于命令模式。

  2. 进入与退出

    • 启动:在终端输入vim [filename]vi [filename]打开或创建文件。
    • 退出:命令模式下,:q!强制退出不保存,:wq保存并退出,:q退出(未修改时)。

基本操作

  • 切换模式

    • 插入模式:i在光标前插入,a在光标后插入,o在当前行下方插入新行,O在当前行上方插入新行。
    • 返回命令模式:按EscCtrl + [
    • 末行模式:按:
  • 移动光标

    • h左移,j下移,k上移,l右移。
    • 0跳到行首,$跳到行尾,gg跳到文件首,G跳到文件尾。
    • w跳到下一个单词首,e跳到单词尾,b跳到上一个单词首。
    • 数字+移动键,如3j向下移动3行。
  • 编辑文本

    • 删除:x删除光标下的字符,dd删除当前行,dw删除单词,d$删除到行尾。
    • 复制粘贴:yy复制一行,p粘贴到光标后,P粘贴到光标前。
    • 撤销与重做:u撤销,Ctrl + r重做。

进阶操作

  • 搜索与替换

    • /pattern搜索patternn跳到下一个,N跳到上一个。
    • :%s/old/new/g全文替换,g表示全局替换。
  • 视觉模式

    • v进入字符选择模式,V进入行选择模式,Ctrl + v进入块选择模式。
    • 选中后,可进行复制(y)、剪切(d)、粘贴等操作。
  • 窗口与标签页

    • :sp filename水平分割打开新文件,:vsp filename垂直分割。
    • Ctrl + ww在窗口间切换。
    • :tabnew新建标签页,:tabnext:tabprev切换标签页。
  • 宏与映射

    • qa开始录制宏到寄存器aq结束录制,@a播放宏。
    • :map key command映射快捷键,如:map <F2> :w<CR>将F2键映射为保存。
  • 插件与配置

    • .vimrc是个人配置文件,可自定义键绑定、颜色方案等。
    • 使用Vundle或Plug等插件管理器安装扩展插件。
  • 高效导航与操作

    • %跳转到配对的括号或引号。
    • .重复上一次的编辑操作。
    • Ctrl + d向下滚动半屏,Ctrl + u向上滚动半屏。
    • :help访问内置帮助文档。

练习与提高

  • 实践是学习Vim的关键。尝试在日常工作中使用Vim编辑各种文件。
  • 完成一些Vim教程和挑战,如Vim Adventures或Vim Tutor(通过在Vim中运行:vimtutor)。

Vim的学习曲线陡峭,但一旦掌握了它的快捷方式和工作流程,将极大地提升编辑效率。记住,Vim的学习是一个逐步积累的过程,不断地实践和探索新的命令和技巧是提升技能的最佳途径。

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

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

相关文章

LINUX centos 安装jenkins超超超超超超级详细步骤

Jenkins安装 配置jdkmavengit jenkins 拉取 配置 jdk 1.安装jdk8 yum install java-1.8.0-openjdk-devel2.检查版本 java -version出现如下图查看版本信息 3. 设置JAVA_HOME环境变量 vim /etc/profile最下方输入 export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk expor…

在 Vue 中调用方法传入值,并在方法执行期间修改传入的值,是否会影响方法内部的值,取决于传入值的类型

在 Vue 中调用方法传入值&#xff0c;并在方法执行期间修改传入的值&#xff0c;是否会影响方法内部的值&#xff0c;取决于传入值的类型 一、前言1. 传入基本类型值&#xff08;如数字、字符串&#xff09;2.传入引用类型值&#xff08;如对象、数组&#xff09; 一、前言 在…

Qt 实战(6)事件 | 6.2、事件过滤器

文章目录 一、事件过滤器1、什么是事件过滤器&#xff1f;2、如何实现事件过滤器&#xff1f;3、应用示例4、总结 前言&#xff1a; 在Qt的事件处理机制中&#xff0c;事件过滤器&#xff08;Event Filter&#xff09;是一种非常强大且灵活的工具&#xff0c;它允许开发者在一个…

判断对象是否为空的多种方式

判断对象是否为空 网上也有许多方法&#xff0c;这里来整理一下 一、Object.keys(obj) ES6 写法&#xff1a; const data {}; const arr Object.keys(data); console.log(arr.length); // 0二、JSON.stringify() const obj {}; const arr JSON.stringify(obj); console.…

4.整合第三方技术【整合JUnit】

目录 1.创建项目&#xff1a; 2.导入测试对应的starter 3.添加测试对象 3.1 添加Prodcut接口文件 3.2 添加ProdcutImpl文件 3.3 测试类添加测试文件&#xff0c;并开始测试 4.测试类文件解析 4.1.测试类使用SpringBootTest修饰 4.2使用自动装配的形式添加要测试的对象 1.…

【PromptCC】遥感图像变化字幕的解耦范式

摘要 以往的方法忽略了任务的显著特异性&#xff1a;对于不变和变化的图像对&#xff0c;RSICC难度是不同的&#xff0c;以一种耦合的方式处理未变化和变化的图像对&#xff0c;这通常会导致变化字幕的混淆。论文链接&#xff1a;https://ieeexplore.ieee.org/stamp/stamp.jsp…

Linux 在文件内读取时间段字符串并解析判断当前时间是否在时间段内 C语言

最近需要实现一个判断当前是否是上班时间段内,但是需要从文件中读取特定的格式时间时间段 格式: 00:00-12:34|13:56-15:00(不确定几个时间段,每个时间段以|分隔) 读取特定格式时间并转化不难但是挺麻烦的 //获得当前中国时区时间 void getNowTime(char* bufTime,int bufTime…

ubuntu bin目录

ubuntu bin目录 在Ubuntu以及其他Unix和Linux系统中&#xff0c;bin目录扮演着非常重要的角色。这个名字bin来自“binary”的缩写&#xff0c;意味着这些目录包含二进制可执行文件&#xff0c;即那些编译过的程序&#xff0c;用户和系统可以直接运行这些程序。 不同类型的bin…

Trip.com 如何从 Elasticsearch 迁移到 ClickHouse 并构建了 50PB 的日志解决方案

本文字数&#xff1a;8721&#xff1b;估计阅读时间&#xff1a;22 分钟 审校&#xff1a;庄晓东&#xff08;魏庄&#xff09; 本文在公众号【ClickHouseInc】首发 在 Trip.com&#xff0c;我们为用户提供广泛的数字产品&#xff0c;包括酒店和机票预订、景点、旅游套餐、商务…

java创建0byte的空文件

在Java中&#xff0c;使用File类创建一个文件通常不会自动创建一个0字节的文件&#xff0c;它只是用来表示文件系统中的一个文件或目录。如果你想要创建一个0字节的文件&#xff0c;你需要使用FileOutputStream来写入文件。以下是创建一个0字节文件的示例代码&#xff1a; imp…

专业英语词汇(计算机)

purpose 目的 phase 阶段 investigate 调查 satisfy 满足 delivering 提供 交付 collaboration 协作 architecture 结构 storage 存储 enterprise 企业 extreme 极端 feedback 反馈 courage 勇气 effort 努力 essential 基本上 crisply 清晰的 precise 精确的 critical 关键 ap…

电脑复制按哪个键?还不会操作的赶紧来看!

当我们提到“电脑复制按哪个键”时&#xff0c;实际上是在讨论电脑键盘上用于执行复制操作的快捷键。复制功能在日常的电脑操作中极为常用&#xff0c;无论是文本编辑、文件处理还是图片操作&#xff0c;都离不开复制这一基本功能。以下&#xff0c;我们将深入探讨电脑复制操作…

【环境搭建】windows下MySQL8与5共存

目录 一、安装MySQL81.官网下载2.初始化mysql文件夹中my.ini文件3.初始化data文件夹&#xff0c;并记录初始密码4.安装服务&#xff0c;指定服务名称5.启动服务6.测试登录并修改密码 二、安装MySQL51.mysql5文件夹中初始化my.ini文件2.初始化data文件夹&#xff0c;并记录初始密…

GraphQL:简介

GraphQL 图片来源&#xff1a; 我们将探索GraphQL 的基础知识&#xff0c;并学习如何使用Apollo将其与 React 和 React Native 等前端框架连接起来。这将帮助您了解如何使用 GraphQL、React、React Native 和 Apollo 构建现代、高效的应用程序。 什么是 GraphQL&#xff1f;…

春秋云境:CVE-2022-25411[漏洞复现]

根据题目提示和CNNVD优先寻找后台管理地址 靶机启动后&#xff0c;使用AWVS进行扫描查看网站结构 在这里可以看到后台管理的登录地址&#xff1a;/admin/&#xff0c;根据题目提示可知是弱口令 尝试admin、123456、admin666、admin123、admin888...等等常见弱口令 正确的账户…

Linux Vim最全面教程

Vim 是一款功能强大的文本编辑器&#xff0c;常用于 Linux 系统中。以下是一份 Vim 最全面教程&#xff1a; 三种模式&#xff1a; 命令模式&#xff1a;可以进行删除、复制、粘贴等快捷操作&#xff0c;按esc键可以返回到命令模式&#xff1b;编辑模式&#xff1a;可以编辑文件…

地理空间数据格式GeoJSON扫盲,在CesiumJS中如何加载。

Hi&#xff0c;我是贝格前端工场&#xff0c;GIS已经越来越多的应用在可视化大屏中了&#xff0c;开发GIS类应用就少不了地理空间数据&#xff0c;本文介绍一下数据GeoJSON数据格式。 一、什么是GeoJSON数据格式&#xff0c;在GIS开发中有什么作用 GeoJSON是一种基于JSON&…

【MySQL】数据库——备份与恢复,日志管理1

一、数据备份的重要性 1.备份的主要目的是灾难恢复 在生产环境中&#xff0c;数据的安全性至关重要 任何数据的丢失都可能产生严重的后果造成数据丢失的原因&#xff1a; 程序错误人为,操作错误运算错误磁盘故障灾难&#xff08;如火灾、地震&#xff09;和盗窃 2.数据库备份…

小窗口大魔力,实况窗服务实时掌控重要信息变化

移动互联网时代&#xff0c;各种以用户为中心的App如春笋般涌现&#xff0c;满足了用户在购物、导航、娱乐等不同场景下的需求&#xff0c;不同程度上丰富了用户的日常生活。然而&#xff0c;随着App种类的激增&#xff0c;用户在享受多样化服务的同时&#xff0c;也面临着多任…

26.4 Django 视图层

1. 视图函数 视图函数是Django框架中用于处理Web请求并返回Web响应的重要组件. 以下是对Django视图函数的详细解释: * 1. 视图函数与URL的映射.为了让Django能够知道哪个URL对应哪个视图函数, 需要在应用的urls.py文件中定义URL模式.使用path或re_path函数来定义URL模式, 并将…