linux中vim介绍以及常用命令大全

前言

在Linux系统中,Vim是一个功能强大的文本编辑器,它广泛应用于服务器管理、脚本编写和程序开发中。Vim拥有两种模式:命令模式和插入模式。了解和掌握常用的Vim命令对于提高文本编辑效率至关重要。本文将详细介绍Vim的常用命令,帮助你更高效地使用Vim。

Vim模式简介

命令模式:

启动Vim后,默认进入命令模式。
在命令模式下,按键用于执行操作,如移动光标、复制文本等。

插入模式:

在命令模式下按i键进入插入模式。
在插入模式下,按键用于输入文本。

常用Vim命令

基本移动命令

光标移动:

h:左移
j:下移
k:上移
l:右移

翻页:

Ctrl + f:向下翻页
Ctrl + b:向上翻页

跳转:

gg:跳转到文件开头
G:跳转到文件末尾
:n:跳转到第n行(n为行号)

文本编辑命令

插入文本:

i:在光标前插入
a:在光标后插入
o:在当前行下方新开一行并插入

删除文本:

x:删除光标所在位置的字符
dd:删除整行
dw:删除从光标所在位置到下一个单词的末尾

复制和粘贴:

yy:复制整行
p:粘贴复制的内容

撤销和重做:

u:撤销
Ctrl + r:重做

搜索和替换命令

搜索:

/word:向下搜索"word"
?word:向上搜索"word"

替换:

:%s/old/new/g:将文件中所有的"old"替换为"new"

保存和退出命令

保存:

:w:保存文件
:wq:保存并退出

退出:

:q:退出
:q!:不保存强制退出

Vim高级技巧

使用寄存器:

Vim允许使用多个寄存器来存储文本,例如使用"ayy复制到寄存器a。

使用正则表达式:

Vim的搜索和替换功能支持正则表达式,提供强大的文本处理能力。

使用Vim脚本:

Vim脚本可以自动化复杂的编辑任务,提高编辑效率。

多窗口编辑

Vim 允许在同一实例中打开多个窗口,这样可以同时查看和编辑多个文件。

水平分割:

:split 或简写为 :sp,创建一个水平分割的窗口。

垂直分割:

:vsplit 或简写为 :vsp,创建一个垂直分割的窗口。

切换窗口:

Ctrl + w 后跟方向键(左、右、上、下)可以在不同窗口间切换。

折叠

Vim 的折叠功能允许你将代码块折叠起来,以便于查看和编辑。

手动折叠:

za 打开或关闭当前代码块的折叠。

自动折叠:

在 .vimrc 文件中设置 foldmethod 和 foldlevel 来定义如何自动折叠代码。

宏录制

Vim 允许你录制一系列命令,然后重复执行这些命令。

开始录制:

q 开始录制宏到指定的寄存器。

停止录制:

q 停止录制。

执行宏:

@ 执行录制的宏。

会话和视角

Vim 允许保存和恢复编辑会话,以及在不同文件间快速切换。

保存会话:

:mksession 保存当前会话。

恢复会话:

:source <session_file> 恢复保存的会话。

快速切换:

:bn 和 :bp 在打开的文件间前后切换。

插件管理

Vim 插件可以极大地扩展其功能。使用插件管理器如 Vundle、Pathogen 或 Vim-plug 可以方便地安装和更新插件。

安装插件管理器:

将插件管理器的脚本添加到 .vimrc 文件并运行一次 Vim。

安装插件:

通过插件管理器的命令安装所需的插件。

定制 Vim

通过 .vimrc 文件,你可以定制 Vim 的外观、行为和键绑定。

定制键绑定:

在 .vimrc 中使用 map 命令定义新的快捷键。

定制颜色方案:

选择一个颜色方案,或创建自己的颜色方案来改变 Vim 的外观。

定制状态栏:

使用状态栏显示有用的信息,如文件名、行号、字符编码等。

与外部工具集成

Vim 可以与外部工具集成,如编译器、终端、文件浏览器等。

集成终端:

:terminal 在 Vim 中打开一个终端窗口。

集成文件浏览器:

使用 :e 命令打开文件浏览器插件。

集成编译器:

使用 :make 命令运行编译器并查看错误。

总结

Vim是一个功能强大的文本编辑器,掌握其常用命令对于Linux系统管理员和开发者来说非常重要。通过熟练使用Vim,你可以更高效地进行文本编辑和文件管理。


good day!!!

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

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

相关文章

HCIP--<OSPF2>

目录 一&#xff0c;OSPF的不规则区域 1&#xff09;远离骨干区域的非骨干区域 2&#xff09;不连续骨干区域(和上面一样) 二&#xff0c;OSPF数据库表 三。优化OSPF的LSA&#xff08;缺少LSA的更新量&#xff09; [1]手工汇总&#xff1a;减少骨干区域的LSA [2]特殊区域&…

编程新纪元:AI如何成为你的编程伙伴

随着人工智能技术的不断进步&#xff0c;我们正步入一个编程的新纪元。在这个时代&#xff0c;AI不仅仅是一个工具&#xff0c;更是程序员的伙伴。它通过提供智能辅助、自动化编码和增强开发效率&#xff0c;正在改变我们编写和理解代码的方式。本文将探讨AI如何成为程序员的得…

【关爱多系统萎缩患者】必知!这些维生素是健康守护神

亲爱的朋友们&#xff0c;今天我们来聊聊一个需要更多社会关爱与理解的群体——多系统萎缩&#xff08;MSA&#xff09;患者。面对这一复杂而罕见的疾病&#xff0c;科学合理的饮食调整&#xff0c;尤其是维生素的补充&#xff0c;显得尤为重要。让我们一起成为他们健康路上的温…

深入CSS 布局——WEB开发系列29

CSS 页面布局技术允许我们拾取网页中的元素&#xff0c;并且控制它们相对正常布局流、周边元素、父容器或者主视口/窗口的位置。 一、正常布局流&#xff08;Normal Flow&#xff09; CSS的布局基础是“正常流”&#xff0c;也就是页面元素在没有特别指定布局方式时的默认排列…

P5734 【深基6.例6】文字处理软件

1. string的函数 #include <bits/stdc.h> using namespace std; int main() {int n,m; cin >> n;string s, a, b, c;cin >> s;for (int i 0; i < n; i) {cin >> m;if (m 1) {cin >> a;s a;cout << s << endl;}if (m 2) {int …

自然语言处理系列六十三》神经网络算法》LSTM长短期记忆神经网络算法

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列六十三神经网络算法》LSTM长短期记忆神经网络算…

使用 three.js 实现一个非常漂亮的围栏效果,在线预览 运行可使用此处地址

使用 three.js 实现一个非常漂亮的围栏效果&#xff0c;在线预览 运行可使用此处地址 https://threehub.cn/#/codeMirror?navigationThreeJS&classifyshader&idfenceWall import * as THREE from "three"; import { OrbitControls } from "three/addo…

Windows一键安装Mysql数据库|非官方复杂安装,解压即可,操作简单

我们都知道在官方安装mysql数据库极其复杂&#xff0c;还极大概率遇到各种问题&#xff0c;今天教大家只要解压就可安装完数据库&#xff0c;操作及其简单绿色。 版本包括了mysql8或mysql5&#xff0c;各位各取所需即可。 不管你之前是否安装过数据库&#xff0c;只要端口330…

Java代码审计篇 | ofcms系统审计思路讲解 - 篇3 | 文件上传漏洞审计

文章目录 0. 前言1. 文件上传代码审计【有1处】1.1 可疑点1【无漏洞】1.1.1 直接搜索upload关键字1.1.2 选择第一个&#xff0c;点进去分析一下1.1.3 分析this.getFile()方法1.1.4 分析new MultipartRequest(request, uploadPath)1.1.5 分析isSafeFile()方法1.1.6 分析request.…

一款rust语言AI神器cursor在ubuntu环境下的安装启动教程

虽然cursor目前只支持英文但是它强大的代码联想能力以及问答能力&#xff0c;可以高效的提高编码效率。 如下步骤所有的前提是你的ubuntu上面已经安装了rust以及其必须的extensions。 1 下载 到官网https://www.cursor.com下载指定版本的软件。 下载到本地以后会生成如下软件…

Spring Cloud之二 微服务注册

1&#xff1a;Intellij 新建服务 user-service 2&#xff1a;pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"…

nginx配置负载均衡的几种方式

1&#xff0c;轮询&#xff08;默认&#xff09; 每个请求按时间顺序逐一分配到不同的后端服务器&#xff0c;如果后端服务器 down掉&#xff0c;能自动剔除。 # 反向代理配置upstream server_list{# 这个是tomcat的访问路径server localhost:8080;server localhost:9999;}serv…

electron有关mac构建

针对 Mac M1/2/3 芯片的设备&#xff0c;proces.archarm64. 执行下面命令&#xff0c;检查下按照的 node.js 版本是不是 intel x64 指令集&#xff0c;如果是的话安装下 arm64 指令集的 node.js终端中执行以下命令&#xff1a;node -p process.arch 对应的node版本也是arm版 …

【一起学Rust | 进阶篇】使用Bon快速生成builder,提高代码质量

文章目录 前言一、安装Bon二、使用步骤1.为方法实现builder2.实现关联方法的builder3. 为结构体实现builder4. Option<T>字段成为可选项5. 实现Into转化 参考文档 前言 在 Rust 编程语言中&#xff0c;除了广为人知的单例模式之外&#xff0c;工厂模式也是极为容易见到的…

STM32的寄存器深度解析

目录 一、STM32 寄存器概述 二、寄存器的定义与作用 三、寄存器分类 1.内核寄存器 2.外设寄存器 四、重要寄存器详解 1.GPIO 相关寄存器 2.定时器相关寄存器 3.中断相关寄存器 4.RCC 相关寄存器 五、寄存器操作方法 1.直接操作寄存器 2.使用库函数操作寄存器 六…

C++_18_重载运算符

重载运算符 意义&#xff1a;使该类对象使用该运算符时 与 该运算符本意不同 就是 起别的作用了 范围 在 重载的那个类中起效 语法&#xff1a; 返回值类型 operator 运算符(形参列表) {函数体; }举例&#xff1a; 注意 &#xff1a; ​ 形参中 使用 & &#xff08;引用&…

JavaWeb中处理 Web 请求的方式总结

文章目录 JavaWeb中处理 Web 请求的方式总结1. 原始的 Servlet 方式1.1. 环境搭建**创建 Maven 或 Gradle 项目**&#xff1a;**添加 Servlet 依赖**&#xff1a;**创建 Servlet 类**&#xff1a;**配置项目**&#xff1a;**配置 Tomcat**&#xff1a; 1.2. 路由机制1.3. 示例代…

CPU调度算法之SJF(短作业优先)

摘要 CPU的短作业优先&#xff08;SJF, Shortest Job First&#xff09;任务调度算法是一种旨在提高系统响应速度和效率的调度策略。该算法通过优先执行预计运行时间最短的任务&#xff0c;从而减少平均等待时间&#xff0c;提高系统的整体吞吐量。虽然SJF算法在许多场景下表现…

Langchain开发笔记-扩展llm模块

系列文章为基于langchain开发应用时的备忘笔记&#xff0c;供遇到相似问题时翻阅&#xff0c;内容可能不够详细&#xff0c;若阅读过程中遇到困难&#xff0c;欢迎评论&私信交流 使用langchain开发项目过程中避免不了需要对接生态还不支持的大模型&#xff0c;langchian为我…

《垃圾回收的算法与实现》-算法-摘抄

本文是书籍《垃圾回收的算法与实现》的摘抄&#xff0c;不涉及算法源码及步骤讲解模块。 预备 对象由头(header)和域(field)构成。 头&#xff1a;对象中保存对象本身信息的部分&#xff0c;主要含有以下信息&#xff1a;对象的大小和种类。 域&#xff1a;对象使用者在对象…