常用vim命令行-linux008

Vim 是一款功能强大的文本编辑器,广泛应用于编程、配置文件编辑以及日常文本处理。Vim 在其命令行模式下提供了丰富的操作命令,这些命令能够大幅提升编辑效率。以下是 Vim 中常用的命令及操作的总结,覆盖了 Vim 中的基本操作、查找、替换、文件操作、窗口管理、宏操作等多个方面。

一、Vim 模式

Vim 的操作方式基于多种模式,最常见的包括:

  • 普通模式(Normal Mode):用于浏览、删除、复制和粘贴等操作。

  • 插入模式(Insert Mode):用于文本的输入。

  • 命令模式(Command-line Mode):用于输入执行命令,如保存、退出等。

  • 可视模式(Visual Mode):用于文本选择和操作。

二、基本操作命令

1. 启动和退出

  • 启动 Vim:vim filenamevi filename

  • 退出 Vim:

    • :q:退出当前文件(如果文件已保存)。

    • :q!:强制退出当前文件,不保存更改。

    • :wqZZ:保存并退出。

    • :x:保存并退出(类似 :wq)。

    • :w filename:保存文件为新名称。

2. 模式切换

  • 从普通模式切换到插入模式:i(当前光标位置),I(行首),a(光标后),A(行尾)。

  • 从插入模式切换到普通模式:Esc

  • 从普通模式切换到可视模式:v(字符选择),V(行选择),Ctrl+v(块选择)。

3. 移动光标

1. 按字符、单词、行和页面移动
  • 左、右、上、下移动:hjkl

  • 移动单词:w(跳到下一个单词的开头),b(跳到上一个单词的开头),e(跳到单词的结尾)。

  • 移动到行首或行尾:0(行首),$(行尾)。

  • 移动到特定行:<number>G(跳转到第 number 行),gg(跳到文件开头),G(跳到文件末尾)。

2. 页面操作
  • 向上/向下滚动页面:Ctrl+u(向上),Ctrl+d(向下)。

  • 跳转到屏幕顶部/底部:H(顶部),M(中部),L(底部)。

4. 文本插入和删除

  • 删除单个字符:x(删除光标处字符)。

  • 删除单词:dw(删除光标所在单词),daw(删除光标所在单词及前后的空格)。

  • 删除行:dd(删除当前行)。

  • 删除直到行尾:D(删除光标到行尾的内容)。

  • 删除到指定字符:d<char>(删除到指定字符 <char> 为止)。

  • 删除到指定位置:d<number>G(删除到指定行)。

5. 剪切、复制和粘贴

  • 剪切:d + 移动命令(例如 dwdd)。

  • 复制:y(复制) + 移动命令(例如 ywyy)。

  • 粘贴:p(光标后粘贴),P(光标前粘贴)。

6. 撤销与重做

  • 撤销:u(撤销上一个操作),Ctrl+r(重做)。

三、查找和替换

1. 查找

  • 查找字符串:/pattern(查找下一个匹配 pattern 的字符串),?pattern(向上查找)。

  • 查找下一个:n(查找下一个匹配的字符串)。

  • 查找上一个:N(查找上一个匹配的字符串)。

2. 替换

  • 替换当前行的第一个匹配项::s/old/new/

  • 替换当前行所有匹配项::s/old/new/g

  • 替换全文件范围::%s/old/new/g

  • 在替换时确认::%s/old/new/gcc 表示每次替换时询问确认)。

3. 高级查找和替换

  • 使用正则表达式:/pattern:s/old/new/g 支持基本的正则表达式,可以使用如 \d\w 等。

  • 查找并替换区间::'<,'>s/old/new/g(区间替换)。

四、文件操作

1. 打开和切换文件

  • 打开新文件::e filename

  • 保存文件::w

  • 保存并退出::wq

  • 切换到最近编辑的文件::e #

  • 切换文件标签::bnext(下一个文件),:bprev(上一个文件)。

2. 文件浏览

  • 查看文件信息::ls(列出缓冲区中的所有文件),:file(显示当前文件的路径和状态)。

  • 切换文件::b <buffer number>(切换到指定编号的缓冲区)。

五、窗口和标签页管理

1. 分屏显示

  • 垂直分屏::vsp filename(垂直分屏打开文件)。

  • 水平分屏::sp filename(水平分屏打开文件)。

  • 切换分屏:Ctrl+w + h(左侧分屏),Ctrl+w + j(下侧分屏),Ctrl+w + k(上侧分屏),Ctrl+w + l(右侧分屏)。

  • 关闭分屏::q(关闭当前分屏)。

2. 标签页管理

  • 新建标签页::tabnew

  • 切换标签页::tabnext(下一个标签页),:tabprev(上一个标签页)。

  • 关闭标签页::tabclose

六、宏操作

1. 录制宏

  • 开始录制宏:q<char>(开始录制到寄存器 char)。

  • 执行宏:@char(执行寄存器 char 中的宏命令)。

  • 以指定次数重复执行宏:<number>@char

2. 退出宏录制

  • 停止录制宏:q(停止录制并退出)。

七、文本操作和格式化

1. 缩进

  • 增加缩进:>>(增加当前行缩进),3>>(增加接下来的三行缩进)。

  • 减少缩进:<<(减少当前行缩进),3<<(减少接下来的三行缩进)。

2. 复制与移动

  • 复制到系统剪贴板:"+y(复制),"+p(粘贴)。

  • 剪切到系统剪贴板:"+d(剪切)。

  • 从剪贴板粘贴:"+p(粘贴内容)。

3. 自动缩进

  • 启用自动缩进::set autoindent:set smartindent:set tabstop=4(设置制表符宽度为4)。

  • 禁用自动缩进::set noautoindent

八、Vim 高级操作

1. 跳转和标记

  • 设置标记:m<char>(设置标记 char,例如 ma)。

  • 跳转到标记:'<char>(跳转到标记位置)。

2. 自定义快捷键

  • 映射快捷键::map(映射一个快捷键),nmap(普通模式映射),imap(插入模式映射)。

  • 示例::nmap <F5> :w<CR>(将 F5 键映射为保存文件)。

九、Vim 插件管理

1. 使用插件管理器

  • 使用 Vundle 安装插件:

    • 安装插件管理器:git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

    • 配置插件:在 .vimrc 文件中添加插件,例如:Plugin 'tpope/vim-fugitive'

    • 安装插件::PluginInstall

2. 使用其他插件管理器

  • vim-plugPlug 'junegunn/fzf.vim'

  • 安装插件:PlugInstall

总结

Vim 提供了非常丰富的命令和操作方式,掌握这些命令可以极大地提高编辑效率。对于日常的编辑任务,了解基本的移动、复制、粘贴、查找和替换命令是必不可少的;而对于高级用户,掌握窗口管理、宏录制以及插件管理等功能,将能更好地发挥 Vim 的强大功能。

当然也可传输到本地用typora或者其他txt工具

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

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

相关文章

黑马程序员Java项目实战《苍穹外卖》Day12

苍穹外卖-day12 课程内容 工作台Apache POI导出运营数据Excel报表 功能实现&#xff1a;工作台、数据导出 工作台效果图&#xff1a; 数据导出效果图&#xff1a; 在数据统计页面点击数据导出&#xff1a;生成Excel报表 1. 工作台 1.1 需求分析和设计 1.1.1 产品原…

【竞技宝】LOL:JDG官宣yagao离队

北京时间2024年12月13日,在英雄联盟S14全球总决赛结束之后,各大赛区都已经进入了休赛期,目前休赛期也快进入尾声,LPL大部分队伍都开始陆续官宣转会期的动向,其中JDG就在近期正式官宣中单选手yagao离队,而后者大概率将直接选择退役。 近日,JDG战队在官方微博上连续发布阵容变动消…

谷歌浏览器的多账户设置与管理

在数字化时代&#xff0c;我们常常需要在不同的网站和服务上使用多个账户。为了方便管理和保护隐私&#xff0c;谷歌浏览器提供了多账户设置功能。本文将详细介绍如何在Chrome中进行多账户设置与管理&#xff0c;并涵盖一些相关的安全配置和问题解决方法。&#xff08;本文由ht…

科研绘图系列:R语言绘制网络图和密度分布图(network density plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载图1图2图3图4图5图6图7图8系统信息参考介绍 R语言绘制网络图和密度分布图(network & density plot) 加载R包 library(magrittr) library(dplyr) library(…

VRRP的知识点总结及实验

1、VRRP VRRP(Virtual Router Redundancy Protocol&#xff0c;虚拟路由器冗余协议)既能够实现网关的备份&#xff0c;又能解决多个网关之间互相冲突的问题&#xff0c;从而提高网络可靠性。 2、VRRP技术概述&#xff1a; 通过把几台路由设备联合组成一台虚拟的“路由设备”…

数智读书笔记系列002 埃隆·马斯克传

书名&#xff1a;埃隆马斯克传 作者&#xff1a;【美】沃尔特艾萨克森 译者&#xff1a;孙思远&#xff1b;刘家琦 出版社&#xff1a;中信出版集团 出版时间&#xff1a;2023年9月 ISBN&#xff1a;9787521758399 这本书是关于特斯拉CEO埃隆马斯克的传记&#xff0c;作者…

2024年12月13日Github流行趋势

项目名称&#xff1a;nexus-xyz / nexus-zkvm 项目维护者&#xff1a;govereau slumber danielmarinq sjudson yoichi-nexus项目介绍&#xff1a;Nexus zkVM 是一个零知识虚拟机。项目star数&#xff1a;1,948项目fork数&#xff1a;343 项目名称&#xff1a;soxoj / maigret …

016 在路由器上配置 DHCP

配置路由器端口IP地址 将路由器的端口地址配置好&#xff0c; 左边的网络地址是 192.168.1.0 右边的网络地址是 192.168.2.0 配置路由器的DHCP服务 打开命令窗口&#xff0c;进入特权模式 进入全局配置 conf t创建一个DHCP地址池&#xff1b; po1 是地址池的名称&#xf…

使用ElasticSearch实现全文检索

文章目录 全文检索任务描述技术难点任务目标实现过程1. java读取Json文件&#xff0c;并导入MySQL数据库中2. 利用Logstah完成MySQL到ES的数据同步3. 开始编写功能接口3.1 全文检索接口3.2 查询详情 4. 前端调用 全文检索 任务描述 在获取到数据之后如何在ES中进行数据建模&a…

常见软件漏洞修复

1. 3306 MYSQL 升级到最新版&#xff0c;下载地址为 MySQL :: Download MySQL Installer&#xff0c;这里注意&#xff0c;不要跨大版本升级&#xff0c;只升级小版本号&#xff0c;例如mysql5.7.22只需要升级到最新的5.7.44。注意只使用长期维护的稳定版本。设置mysql允许连接…

【C++算法】42.模拟_数青蛙

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a; 题目链接&#xff1a; 1419. 数青蛙 题目描述&#xff1a; 解法 模拟&#xff1a; 利用一个指针&#xff0c;从前往后遍历&#xff0c;遍历到r就看前面有没有c&#xff0c;遍历到o就看前面有没有…

Windows系统VSCode 搭建ESP-IDF环境

VS Code&#xff0c;安装ESP-IDF插件 快捷键CTRLSHIFTP&#xff0c;弹出显示所有命令的窗口&#xff0c;选择ESP-IDF的欢迎 使用第一个选项&#xff0c;要选择一个ESP-IDF版本&#xff0c;选最新的就行 点击Install,等待下载 提示安装成功&#xff0c;如果过程中出现python已存…

Verilog实现图像处理的行缓存Line Buffer

在图像处理中&#xff0c;难免会遇到对图像进行卷积或者模板的局部处理&#xff0c;例如ISP中的一些算法&#xff0c;很大部分都需要一个窗口&#xff0c;在实时视频处理中&#xff0c;可以利用行缓存Line buffer可以暂存几行数据&#xff0c;然后同时输出每行中的对应列的像素…

《庐山派从入门到...》开发板启动

《庐山派从入门到...》开发板启动 什么是固件安装固件 《庐山派从入门到...》开发板启动 什么是固件 **固件可以说是硬件设备的“神经系统”&#xff0c;**它包含了启动序列、设备管理系统和稳定性控制等功能&#xff0c;确保了硬件设备能够安全启动并维持稳定运行。 安装固件…

【PostgreSQL异常解决】PostgreSQL 异常错误: PG::Error 服务意外关闭连接

博主介绍:✌全网粉丝21W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。 感兴趣的可…

CSS学习记录12

CSS浮动 CSSfloat属性规定元素如何浮动 CSSclear属性规定哪些元素可以在清除的元素旁边以及在哪一侧浮动。 float属性 float属性用于定位和格式化内容&#xff0c;例如让图像向左浮动到容器的文本那里。 float属性可以设置以下值之一&#xff1a; left - 元素浮动到其容器…

从 CephFS 到 JuiceFS:同程旅游亿级文件存储平台构建之路

随着公司业务的快速发展&#xff0c;同程旅行的非结构化的数据突破 10 亿&#xff0c;在 2022 年&#xff0c;同程首先完成了对象存储服务的建设。当时&#xff0c;分布式文件系统方面&#xff0c;同程使用的是 CephFS&#xff0c;随着数据量的持续增长&#xff0c;CephFS 的高…

Ariba Procurement: Administration_Master data

采购主数据集成Procurement Master Data Integration 注意&#xff1a;并非所有元素都是必需的&#xff0c;数据元素的名称可能根据ERP的不同&#xff0c;有所不同。 Types of Master Data Accounting 在SAP Ariba中的各种会计元素字段中&#xff0c;填充有效值选择列表。建…

Hadoop一课一得

Hadoop作为大数据时代的奠基技术之一&#xff0c;自问世以来就深刻改变了海量数据存储与处理的方式。本文将带您深入了解Hadoop&#xff0c;从其起源、核心架构、关键组件&#xff0c;到典型应用场景&#xff0c;并结合代码示例和图示&#xff0c;帮助您更好地掌握Hadoop的实战…

#思科模拟器通过服务配置保障无线网络安全Radius

演示拓扑图&#xff1a; 搭建拓扑时要注意&#xff1a; 只能连接它的Ethernet接口&#xff0c;不然会不通 MAC地址绑定 要求 &#xff1a;通过配置MAC地址过滤禁止非内部员工连接WiFi 打开无线路由器GUI界面&#xff0c;点开下图页面&#xff0c;配置路由器无线网络MAC地址过…