linux Vim的安装和基本使用

Vim

什么是 Vim

  • Vim是一个高度可定制的文本编辑器,源自Unix系统的vi编辑器。它被广泛用于类Unix系统中,包括Linux、Mac OS和Windows平台。Vim特别受到程序员的青睐,因为它提供了丰富的编程功能,如代码补全、编译及错误跳转等。这些功能使得Vim不仅仅是一个简单的文本编辑器,而更像是一个专为程序开发设计的工具。

  • Vim的设计理念基于命令的组合。用户可以通过学习各种文本移动和编辑命令来提高编辑效率。Vim支持多种模式,包括命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。每种模式都有其特定的功能和操作方式,例如在命令模式下,用户输入的按键被视为命令,而在输入模式下,用户可以像使用普通文本编辑器一样输入文本。

Vim 的优势

  • 高效性:Vim的设计允许用户通过键盘快捷键快速执行复杂的文本编辑任务,减少了鼠标操作,提高了工作效率。

  • 可定制性:Vim支持大量的配置选项和插件,用户可以根据个人喜好和工作需求进行深度定制。

  • 跨平台:Vim可以在Unix、Linux、Windows、Mac OS等多种操作系统上运行,为用户提供了统一的编辑体验。

  • 轻量级:Vim占用系统资源少,即使在资源有限的远程服务器上也能流畅运行。

  • 强大的文本处理能力:Vim提供了强大的搜索、替换、宏录制等功能,非常适合处理大量文本。

Vim的安装

查看Vim是否安装

输入Vim查看是否安装Vim

系统安装的情况会进入以下界面
在这里插入图片描述

系统未安装Vim的情况会出现bash: vim: command not found

在这里插入图片描述

安装Vim

输入指令apt-get install vim安装Vim

apt-get install vim

如果出现E: Unable to locate package vim

root@754741ff94d6:/# apt-get install vim
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package vim

在这里插入图片描述

此时需要更新一下apt-get命令,然后再执行apt-get install vim命令

apt-get update

在这里插入图片描述

apt-get install vim

在这里插入图片描述

Vim 模式

主要的 4 种模式:

  • Normal 模式: 默认进⼊的模式, 也是最常⽤的模式

  • Insert 模式: 插⼊模式, 像正常的⽂本编辑器—样输⼊

  • Command 模式: 命令模式, 在底部输⼊命令

  • Visual 模式: 可视模式, 对⽂本进⾏选择

Normal 模式:基本移动

  • hjkl :上下左右

  • gg :跳到第⼀⾏(类似 Home 键)

  • G :跳到最后⼀⾏(类似 End 键)

  • / :往上翻半⻚/⼀⻚(类似 PageUp 键)

  • / :往下翻半⻚/⼀⻚(类似 PageDown 键)

  • {lineno}gg :跳到第 lineno ⾏

  • zz / zt / zb :光标⾏设置为 屏幕居中/屏幕第⼀⾏/屏幕最后⼀⾏

进⼊ Insert 模式

Normal 模式下通过特定命令进⼊ Insert 模式

  • i :代表¢insert£ ,当前光标之前开始输⼊

  • a :代表¢append£ ,当前光标之后开始输⼊

  • o :下⽅插⼊新的⼀⾏,然后开始输⼊

  • s :删除当前光标的字符,然后开始输⼊

  • I :在本⾏的开头开始输⼊

  • A :在本⾏的末尾开始输⼊

  • O :上⽅插⼊新的⼀⾏,然后开始输⼊

  • S :删除当前⾏,然后开始输⼊

  • 回到 Normal 模式

进⼊ Command 模式

Normal 模式下输⼊:进⼊ Command 模式

  • :w :保存当前⽂件

  • :q :退出

  • :q! :放弃当前更改,然后退出

  • :wq :保存当前更改,然后退出

  • :h {command} :显示关于命令的帮助

  • 回到 Normal 模式

进⼊ Visual 模式

* Normal 模式下按 v 进⼊可视模式

* 进⼊可视模式后可以⽤ Normal 模式下的移动命令选择⽂本

* 可视模式下 x / y :剪切/复制;回到 Normal 模式下 p :粘贴

* Normal 模式下按 V 进⼊⾏可视模式,⼀次选中⼀整⾏,在需要选中多⾏时很⽅便

*  回到 Normal 模式

移动与编辑

基于单词的移动

  • w :代表“word” ,跳转到下⼀处单词的开头

  • b :代表“back” ,跳转到上⼀处单词的开头

  • e :代表“end” ,跳转到下⼀处单词的结尾

  • ge : e 的反向版本,跳转到上⼀处单词的结尾

  • ^ / $ :跳转到本⾏的开始/结尾

  • % :跳到匹配的配对符(括号等)处

基于搜索的移动

  • ⾏内搜索:

    • f{char} / t{char} :跳转到本⾏下⼀个 char 字符出现处/出现前

    • ; / , :快速向后/向前重复 ft 查找

    • F{char} / T{char} :往前搜索⽽⾮往后

  • ⽂件中搜索:

    • /{pattern} :跳转到本⽂件中下⼀个 pattern 出现的地⽅

    • ?{pattern} :跳转到本⽂件中上⼀个 pattern 出现的地⽅

    • pattern 可以是正则表达式

    • * :等价于 /{pattern} , pattern 是当前光标下的单词

    • nN :快速重复 / 查找

基于标记的移动

  • m{mark} :把当前位置标记为 mark(mark 是 a-z 的字符)
  • `{mark} :跳转到名为 mark 的标记位置
  • 内置标记:
    • `` :上次跳转前的位置
    • `. :上次修改的位置
    • `^ :上次插⼊的位置

Operator+Motion=⼀次编辑动作

  • c :代表“change” ,修改,删除内容并进⼊插⼊模式

  • d :代表“delete” ,删除

  • y :代表“yank” ,复制

  • v :代表“visual” ,选中⽂本,进⼊可视模式

  • ⼤部分操作符连续按两次( cc/dd/yy ):将其作⽤在这⼀⾏上

重复操作: . 命令

  • . :重复上⼀次修改

  • u :撤销上⼀次修改

  • :重做上⼀次修改

批量操作:数字+动作

  • count+action :重复 count 次 action 动作

  • 4j :向下移动 4 ⾏

  • 3dw :删除 3 个单词

  • 2yy :复制 2 ⾏

  • 4p :粘贴 4 次

  • . 命令可以直观地看到每⼀次的变化,在合适的时候停⽌

  • 数字+动作则需要预先知道动作的次数

开关行号

  • :set nu 开启行号

  • :set nonu 关闭行号

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

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

相关文章

Kubernetes 上安装 Jenkins

安装 Helm curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash添加 Jenkins Helm 仓库 首先添加 Jenkins Helm 仓库 helm repo add jenkins https://charts.jenkins.io helm repo update安装 Jenkins 使用 Helm 安装 Jenkins 的最新版本&…

产品经理角度分析:朋友圈点赞与评论仅共同好友可见

你有没有在刷朋友圈时,看到某位朋友发了条状态,下面一堆点赞和评论,然后他自己来个“统一回复下,感谢大家”? 这种现象就像是在朋友圈里开了个小型新闻发布会,大家在台下疯狂举手,结果发言人最后…

ip地址变化是什么意思?手机地址ip一直变化怎么办

IP地址作为互联网设备的唯一标识,‌其稳定性对于网络连接至关重要。‌然而,‌手机IP地址频繁变动可能带来一系列问题。‌本文将深入探讨IP地址变化的含义、‌IP地址频繁变动的原因,‌以及提供手机地址IP一直变化的有效应对策略。‌ 一、IP地址…

使用pgdump、pgrestore迁移数据表到docker部署的postgis

将本地数据同步到内网服务器,使用的postgis,表含空间字段 备份 本地使用pgadmin 4进行备份,pgrestore的命令参数找起来麻烦,这个可以界面操作,比较方便 说明 说明的截图来自pgadmin,点击这个打开 …

GitLab私有代码仓库搭建与使用

文章目录 一、安装GitLab1、下载安装2、修改配置3、启动gitlab4、登录 二、使用1、ssh-key 参考资料 一、安装GitLab 1、下载安装 gitlab-ce的rpm包清华源地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/?CN&OD 本次使用gitlab-ce-17.1.1-c…

论文精读:JACS —— Sb2Si2Te6与Sc2Si2Te6热电性能

摘要节选: 本文以层状Sb2Si2Te6和Sc2Si2Te6为模型体系,采用密度泛函理论结合半经典玻尔兹曼输运理论,全面研究和比较了它们的热电性能。 由于较低的散射率和更明显的带色散,Sb2Si2Te6与Sc2Si2Te6相比具有优越的导电性。 在将导带轨道特性从…

【微信小程序】SpringBoot集成微信小程序(多小程序集成)

SpringBoot集成微信小程序 前言一、前置工作1、获取appId和appSecret核心参数 二、SpringBoot集成微信小程序1、引入pom依赖2、yml配置3、java代码文件3.1、Properties 配置类3.2 Configuration 服务类 4、使用示例4.1、获取登录后的session信息:openId4.2、获取当前…

若依框架 MyBatis 改为 MyBatis-Plus 的实现步骤

本文只做了简单的实现,具体的细节需根据自己的需求进一步实现。如果实现中遇到问题欢迎留言讨论。 引入 MyBatis-Plus 引入相关依赖(pom.xml) 推荐先直接在顶级 pom.xml 中直接依赖,等调试通过之后,在去按需依赖&…

理解进程与线程

1.1理解分时技术 随着计算器处理能力的逐步提高,计算机处理多道程序成为了可能。 所谓分时技术,就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器给各程序使用。这样在时间线上表现为线性,但是在体感上感觉是一起执…

Java:时区的用法

文章目录 ZoneId常见用法 ZonedDateTime常见方法 代码 黑马学习笔记 ZoneId 常见用法 ZonedDateTime 常见方法 代码 package NewTime;import java.time.Clock; import java.time.ZoneId; import java.time.ZonedDateTime;/*** Author: ggdpzhk* CreateTime: 2024-08-31*/ pu…

后台框架-统一数据格式2

在上一篇中,当在Controller类中需要返回统一格式的数据时,需要实例化一个R,有时候觉得还是不够简洁,那有没有一种方法Controller中直接返回对象,但是返回的对象统一保存到如下格式的data中? ResponseBody…

YASKAWA机器人维修操作命令攻略-移动命令运用案例

移动命令 1. MOVJ 命令运用案例: MOVJ VJ50.00 PL2 NWAIT UNTIL IN(1)ON 含义:在这个点以关节坐标,按 50.00%的再现速度,定位精度为 2,同时执行下一条非移动 指令,判断输入信号 1 为 on 后,执行…

【Python机器学习】NLP词频背后的含义——距离和相似度

我们可以使用相似度评分(和距离),根据两篇文档的表示向量间的相似度(或距离)来判断文档间有多相似。 我们可以使用相似度评分(和举例)来查看LSA主题模型与高维TF-IDF模型之间的一致性。在去掉了…

Windows中pip换源

step1:检查是否安装 输入如下,出现版本号,就是安装好了 pip -V或pip --version pip3 -V pip3 --version step2:找到(创建)配置文件 对于 Windows 用户,配置文件在【%APPDATA%\pip\pip.ini】文…

C语言典型例题56

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 例题4.8 将范围为100~200的不能被3整除的数输出。 代码&#xff1a; //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //例题4.8 将范围为100~200的不能被3整除的数输出。//#include <stdio.h>…

【B端产品知识总结】系统消息提醒及消息推送设计思想

目录 前言 一、简述消息通知 1、第一步盘点消息推送渠道 2、第二步消息推送项盘点 3、第三步确定消息通知内容和操作反馈 二、系统消息项通知梳理 1、明确消息推送渠道 2、盘点产品业务消息项 3、撰写通知内容与操作反馈 三、如何设计消息中心 ⒈、设计消息中心入口&…

Java:路径计算与障碍物处理

Java 实现寻找字符串数组中的最长公共前缀及不同路径数量计算&#xff08;含障碍物&#xff09; 在计算机科学和软件开发中&#xff0c;经常需要解决一些基本但实用的问题。本文将介绍两种常见问题的解决方案&#xff1a;一是从一组字符串中找出最长公共前缀&#xff1b;二是计…

Unity SceneView 相机聚焦到指定位置

SceneView 相机聚焦到指定位置 SceneView.lastActiveSceneView.LookAt(pos);

vulhub xxe靶机通关教程

首先我们进行端口扫描 扫出来端口之后去尝试得出地址为183 发现robots.txt文件 由此我们就得到了两个目录 我们先进入xxe目录&#xff0c;并开始登录抓包 并进入重放器在xml里面构造语句 <!DOCTYPE r [ <!ELEMENT r ANY > <!ENTITY admin SYSTEM "php://filt…

!!学习整理知识模块——关于【如何本地搭建Whisper语音识别模型】/请按需收藏!!

成长路上不孤单&#x1f60a;【14后&#xff0c;C爱好者&#xff0c;持续分享所学&#xff0c;如有需要欢迎收藏转发&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#xff01;&#xff01;&#xff01;&#xff01;&#xff…