【VIM】vim 常用命令

文章目录

      • 插入模式
      • 光标移动
      • 拷贝/粘贴/删除/撤销
      • 块操作
      • 分屏
      • 代码缩进
      • 命令组合使用
      • 其他
      • PowerVim

前言:本文内容大部分摘抄自酷壳和博客园   –   CoolShell – 陈皓   博客园 – 易先讯

插入模式

  • a → 在光标后插入
  • o → 在当前行后插入一个新行
  • O → 在当前行前插入一个新行
  • cw → 替换从光标所在位置后到一个单词结尾的字符

光标移动

  • 0 → 数字零,到行头
  • $ → 到本行行尾
  • gg → 到第一行
  • G → 到最后一行
  • :N → 到第N行
  • w → 到下一个单词的开头
  • e → 到下一个单词的结尾
  • % : 匹配括号移动,包括 (, {, [ (实用)
  • *#: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个) (实用)
  • /pattern:向下查找匹配指定模式的文本,按 n 查找下一个匹配项,按 N 查找上一个匹配项 (实用)
  • fa → 到下一个为a的字符处,你也可以 fs 到下一个为 s 的字符

拷贝/粘贴/删除/撤销

  • dd → 删除当前行,并把删除的行存到剪贴板里

  • ndd:剪切从光标所在行开始的 n 行

  • d$:剪切从光标所在位置到行末的文本

  • dG:剪切从光标所在行到文件末尾的文本

  • v 进入可视模式,移动光标选择文本,然后按 d 剪切选中的文本 (实用)

    可视化选择是一个很有意思的命令,你可以先按v,然后移动光标,你就会看到文本被选择,然后,你可能d,也可y,也可以变大写等

  • yy → 拷贝当前行当行于 ddP

  • y 的其他操作通 dd

  • p → 粘贴剪贴板

  • x → 删当前光标所在的一个字符

  • u → 撤销操作

  • Ctrl+r → 撤销 “撤销操作”,相当于保持不变

块操作

块操作,典型的操作: 0 <C-v> <C-d> I-- [ESC]

  • 0 → 到行头
  • <C-v> → 开始块操作
  • <C-d> → 向下移动 (你也可以使用 hjkl 来移动光标,或是使用%,或是别的)
  • I-- [ESC]I 是插入,插入“--”,按ESC键来为每一行生效,可以在行内的任意位置生效。
  • A-- [ESC] → 在每一行的行后插入

分屏

  • :split → 创建分屏 (:vsplit创建垂直分屏)
  • <C-w><dir> : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。

代码缩进

  • ctrl+v 加入可视化操作,选择代码块,然后:
  • J → 把所有的行连接起来(变成一行)
  • <> → 左右缩进
  • = → 自动给缩进

命令组合使用

你一定要记住光标的移动,因为很多命令都可以和这些移动光标的命令连动。很多命令都可以如下来干:

例如 0y$ 命令意味着:

  • 0 → 先到行头
  • y → 从这里开始拷贝
  • $ → 拷贝到本行最后一个字符

你可可以输入 ye,从当前位置拷贝到本单词的最后一个字符。

你也可以输入 y2/foo 来拷贝2个 “foo” 之间的字符串。

其他

  • . → (小数点) 可以重复上一次的命令
  • N → 重复某个命令N次
  • gU (变大写)
  • gu (变小写)

PowerVim

原生的 vim 比较难用,我们需要对其进行配置,但 Vim 的配置项多且较为复杂,因此在这里我推荐代码随想录的 PowerVim,可以对 Vim 进行一键配置。

PowerVim – GitHub

PowerVim – Gitee

PowerVim 相关快捷键如下

正常模式下的快捷键(非插入模式)

  • ;n // 打开文件目录树显示在屏幕左侧
  • ;m // 打开当前函数和变量目录树显示在屏幕右侧
  • ;h // 光标移动到左窗口
  • ;l // 光标移动到右窗口
  • ;k // 光标移动到上窗口
  • ;j // 光标移动到下窗口 以上四个快捷键特别是打开多个窗口情况下。使用这个快捷键组合非常实用
  • ;w // 保存文件
  • ;u // 向上翻半屏
  • ;d // 向下翻半屏
  • ;1 // 光标快速移动到行首
  • ;2 // 光标快速移动到行末
  • ;a // 快速切换.h和cpp文件,写C++的时候很方便
  • ;e // 打开一个新文件
  • ;z // 切回shell交互命令,输入fg在切回vim,非常实用
  • ;s // 水平分屏,并打开文件目录选取想打开的文件,如果想新建文件,;e 就好
  • ;v // 竖直分屏,并打开文件目录选取想打开的文件,如果想新建文件,;e 就好
  • ;fw // 查找项目内关键字,前提是你的系统已经按照了ACK
  • ;ff // 查找项目内文件名
  • ;gt // 跳转到变量或者函数定义的地方,前提是安装ctags,并且在在PowerVim输入 ;tg命令 Jump to the definition of the keyword where the cursor is located, but make sure you have make ctags
  • ;gr // 跳回,对应着;gt
  • ;tg // 对当前目录打ctag
  • ;y // 保存当前选中的目录到系统剪切板,前提是vim支持系统剪切板的寄存器
  • ;gg // 按顺序光标跳转各个窗口
  • ;t // 在输入一个字符,则按照这个字符整体对齐

以下快捷键是不用;的,直接在 非插入模式 下输入

  • tb // 插入表格
  • e // 快速删除光标所在的词
  • tabc // 关闭当前tab,可以用:tabnew来打开一个新的tab Close tab, of course you should :tabnew a file first.
  • F1 // 编译并运行C++文件,自己写的C++例子的时候一键编译。前提手动在当前目录建一个bin文件夹,这是用来存放编译产生的执行文件
  • F1 // 编译Java文件
  • F2 // 运行Java编译的class文件,一般如果要编译并运行Java文件 按F1编译,在按F2运行
  • gc // 快速注释选中的块(是visual模式下选中的块)
  • gcc // 快速当前行
  • { // 光标向上移动一个代码块
  • } // 光标向下移动一个代码块
  • di( // 删除括号里的内容
  • di{ // 删除花括号里的内容

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

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

相关文章

polarctf-web-[简单rce]

考点&#xff1a; (1)RCE(eval函数) (2)执行函数(passthru函数) (3)/顶级(根)目录查看 (4)sort排序查看函数 题目来源&#xff1a;Polarctf-web-[简单rce] 解题&#xff1a; 代码审计 <?php/*​PolarD&N CTF​*/highlight_file(__FILE__);function no($txt){ # …

HarmonyOs开发之———使用HTTP访问网络资源

谢谢关注&#xff01;&#xff01; 前言&#xff1a;上一篇文章主要介绍HarmonyOs开发之———Video组件的使用:HarmonyOs开发之———Video组件的使用_华为 video标签查看-CSDN博客 HarmonyOS 网络开发入门&#xff1a;使用 HTTP 访问网络资源 HarmonyOS 作为新一代智能终端…

Vue 图片预览功能(含缩略图)

众所周知&#xff0c;常见的组件库如Element、Ant Design&#xff0c;自带的图片预览功能都没有缩略图&#xff0c;所以 需要单独封装一个图片预览的服务。 第三方库&#xff1a;v-viewer 安装&#xff1a; npm install v-viewer viewerjs 若使用报错&#xff0c;可安装指定…

手写tomcat:基本功能实现(4)

逻辑架构 HTTP 请求与 Socket&#xff1a; 左侧的 “HTTP 请求” 箭头指向 “socket”&#xff0c;表示客户端发送的 HTTP 请求通过 socket 传输到服务器。Socket 负责接收请求&#xff0c;并提取出其中的 请求路径&#xff08;如 /first&#xff09;和 请求方法&#xff08;如…

jvm安全点(一)openjdk17 c++源码垃圾回收安全点信号函数处理线程阻塞

1. 信号处理入口​​ ​​JVM_HANDLE_XXX_SIGNAL​​ 是 JVM 处理信号的统一入口&#xff0c;负责处理 SIGSEGV、SIGBUS 等信号。​​javaSignalHandler​​ 是实际注册到操作系统的信号处理函数&#xff0c;直接调用 JVM_HANDLE_XXX_SIGNAL。 ​​2. 安全点轮询页的识别​​ …

微信小程序:封装表格组件并引用

一、效果 封装表格组件,在父页面中展示表格组件并显示数据 二、表格组件 1、创建页面 创建一个components文件夹,专门用于存储组件的文件夹 创建Table表格组件 2、视图层 (1)表头数据 这里会从父组件中传递表头数据,这里为columns,后续会讲解数据由来 循环表头数组,…

【FMC216】基于 VITA57.1 的 2 路 TLK2711 发送、2 路 TLK2711 接收 FMC 子卡模块

产品概述 FMC216 是一款基于 VITA57.1 标准规范的 2 路 TLK2711 接收、2 路 TLK2711 发送 FMC 子卡模块。该板卡支持 2 路 TLK2711 数据的收发&#xff0c;支持线速率 1.6Gbps&#xff0c;经过 TLK2711 高速串行收发器&#xff0c;可以将 1.6Gbps 的高速串行数据解串为 16 位并…

K8S Gateway API 快速开始、胎教级教程

假设有如下三个节点的 K8S 集群&#xff1a; ​​ k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、Gateway 是什么 背景和目的 入口&#xff08;Ingress&#xff09;目前已停止更新。新的功能正在集成至网关 API 中。在 Kubernetes …

时序数据库IoTDB分布式架构解析与运维指南

一、IoTDB分布式架构概述 分布式系统由一组独立的计算机组成&#xff0c;通过网络通信&#xff0c;对外表现为一个统一的整体。IoTDB的原生分布式架构将服务分为两个核心部分&#xff1a; ‌ConfigNode&#xff08;CN&#xff09;‌&#xff1a;管理节点&#xff0c;负责管理…

Ubuntu 20.04 LTS 中部署 网页 + Node.js 应用 + Nginx 跨域配置 的详细步骤

Ubuntu 20.04 LTS 中部署 网页 Node.js 应用 Nginx 跨域配置 的详细步骤 一、准备工作1、连接服务器2、更新系统 二、安装 Node.js 环境1、安装 Node.js 官方 PPA&#xff08;用于获取最新稳定版&#xff09;&#xff1a;2、安装 Node.js 和 npm&#xff08;LTS 长期支持版本…

3DVR制作的工具或平台

3DVR&#xff08;三维虚拟现实&#xff09;是利用三维图像技术和虚拟现实技术&#xff0c;将真实场景进行三维扫描并转换成计算机可识别的三维模型&#xff0c;使用户能够在虚拟空间中自由漫游&#xff0c;体验身临其境的感觉。3DVR技术结合了全景拍摄和虚拟现实&#xff0c;提…

垂直智能体:企业AI落地的正确打开方式

在当前AI浪潮中&#xff0c;许多企业急于跟进&#xff0c;推出自己的AI智能体解决方案。然而&#xff0c;市场上大量出现的"万能型"智能体却鲜有真正解决实际问题的产品。本文将探讨为何企业应该专注于开发垂直领域智能体&#xff0c;而非追求表面上的全能&#xff0…

软件工程各种图总结

目录 1.数据流图 2.N-S盒图 3.程序流程图 4.UML图 UML用例图 UML状态图 UML时序图 5.E-R图 首先要先了解整个软件生命周期&#xff1a; 通常包含以下五个阶段&#xff1a;需求分析-》设计-》编码 -》测试-》运行和维护。 软件工程中应用到的图全部有&#xff1a;系统…

王者荣耀游戏测试场景题

如何测试一个新英雄&#xff1a;方法论与实践维度 测试一个新英雄不仅仅是“打打打”&#xff0c;而是一套完整的测试流程&#xff0c;包括设计文档验证、功能验证、数值验证、性能验证、交互验证等。可以从以下多个角度展开&#xff1a; &#x1f50d; 1. 方法论维度 ✅ 测试…

第四天的尝试

目录 一、每日一言 二、练习题 三、效果展示 四、下次题目 五、总结 一、每日一言 很抱歉的说一下&#xff0c;我昨天看白色巨塔电视剧&#xff0c;看的入迷了&#xff0c;同时也看出一些道理&#xff0c;学到东西&#xff1b; 但是把昨天的写事情给忘记了&#xff0c;今天…

多模态大语言模型arxiv论文略读(七十八)

AID: Adapting Image2Video Diffusion Models for Instruction-guided Video Prediction ➡️ 论文标题&#xff1a;AID: Adapting Image2Video Diffusion Models for Instruction-guided Video Prediction ➡️ 论文作者&#xff1a;Zhen Xing, Qi Dai, Zejia Weng, Zuxuan W…

优化 Spring Boot 应用启动性能的实践指南

1. 引言 Spring Boot 以其“开箱即用”的特性深受开发者喜爱,但随着项目复杂度的增加,应用的启动时间也可能会变得较长。对于云原生、Serverless 等场景而言,快速启动是一个非常关键的指标。 2. 分析启动过程 2.1 启动阶段概述 Spring Boot 的启动流程主要包括以下几个阶…

Ubuntu下配置VScode出现#include错误请更新includePath的解决方法

首先Ubuntu新手小白一定要先安装g&#xff0c;安装方法是&#xff1a; 在桌面右键打开终端&#xff0c;输入&#xff1a;sudo apt-get install g 安装好g之后&#xff0c;在vscode终端输入&#xff1a;g -v -E -x c - 输出这些路径&#xff0c;复制 如果还存在显示cout不存在的…

【背包dp】小结

背包问题总结 一、什么是背包问题&#xff1f; 定义&#xff1a;给定一个容量为 W 的背包和 n 件物品&#xff0c;每件物品有一个重量 w[i] 和价值 v[i]&#xff0c;要求选择若干物品放入背包&#xff0c;在不超过容量的前提下&#xff0c;使总价值最大。 背包问题本质是&am…

济南国网数字化培训班学习笔记-第三组-1-电力通信传输网认知

电力通信传输网认知 电力通信基本情况 传输介质 传输介质类型&#xff08;导引与非导引&#xff09; 导引传输介质&#xff0c;如电缆、光纤&#xff1b; 非导引传输介质&#xff0c;如无线电波&#xff1b; 传输介质的选择影响信号传输质量 信号传输模式&#xff08;单工…