如何在 Vim 中剪切、复制和粘贴

图片

目录

前言

如何在 Vim 编辑器中复制文本

如何在 Vim 编辑器中剪切文本

如何在 Vim 编辑器中粘贴文本

如何通过选择文本来剪切和复制文本

通过选择文本复制

在 Vim 中选择文本来剪切文本


前言

在本篇 Vim 快速技巧中,你将学习到剪切和复制粘贴的相关知识。

剪切、复制和粘贴文本是文本编辑中最基本的任务之一,我们都知道 Vim 有不同的处理方式。

这意味着,在你掌握它之前,你会害怕它,一旦你掌握了它,它就只是一个兔子洞。

虽然我将详细介绍剪切、复制和粘贴,但这里是本教程的基本摘要,以帮助你开始使用:

< 如显示不全,请左右滑动 >

按键描述
yiw复制当前单词。
yy复制整行。
diw剪切当前单词。
dd剪掉整行。
p粘贴文本。

别担心,Vim 为你提供的选项比我上面提到的要多得多。

在本教程中,我将引导你完成以下内容:

◈ 如何在 Vim 中复制文本

◈ 如何在 Vim 中剪切文本

◈ 如何在 Vim 中粘贴文本

◈ 如何使用可视模式在 Vim 中剪切和复制文本

那么让我们从第一个开始。

如何在 Vim 编辑器中复制文本

虽然我们使用术语“复制”,但 Vim 有一个不同的术语,称为 “扽出(yank)”,因此从现在开始,我将使用“扽出”而不是“复制”。

正如我之前提到的,你可以使用多种方法在 Vim 中扽出文本,以下是一些有用的方法:

< 如显示不全,请左右滑动 >

命令描述
nyy 或 nY扽出(复制)当前行和接下来的 n-1 行。例如,3yy 复制当前行及其下面的两行。
yaw扽出(复制)光标所在的当前单词。
yy 或 Y扽出(复制)整个当前行。
y$扽出(复制)从光标到行尾的文本。
y^ 或 y0扽出(复制)从光标到行首的文本。

要在 Vim 中扽出,请执行以下 3 个简单步骤:

1. 按 Esc 键切换到正常模式

2. 移动到要复制的行或单词

3. 按上表中的相关命令,你的文本将被复制

想学习交互式复制行的方式吗?跳到本教程的最后一部分。

如何在 Vim 编辑器中剪切文本

在 Vim 中,你没有任何删除文本的选项。取而代之的是剪切文本,因此删除和剪切文本与 Vim 中的操作类似。

要在 Vim 中剪切文本,请按 d 命令。但你永远不会在没有任何选项的情况下使用 d 命令。你总是会添加一些东西来做更多操作。

因此,你可以使用以下一些实用方法使用 d 命令剪切文本:

< 如显示不全,请左右滑动 >

命令描述
dd剪切整个当前行。
d$将文本从光标剪切到行尾。
d^ 或 d0将文本从光标剪切到行首。
ndd 或 dN剪切当前行和接下来的 n-1 行。例如,3dd 剪切当前行及其下面的两行。
daw剪切光标所在的当前单词。

假设我想从文件中剪切前 4 行,然后我需要使用 4dd,我是这样做的:

图片

如何在 Vim 编辑器中粘贴文本

在 Vim 中复制或剪切文本后,只需按 p 键即可粘贴它。

你可以多次按 p 键多次粘贴文本,也可以使用 np,其中 n 是要粘贴文本的次数。

例如,在这里,我粘贴了之前复制了三遍的行:

图片

就是这么简单!

如何通过选择文本来剪切和复制文本

如果你使用过 GUI 文本编辑器,那么你肯定习惯于通过选择文本来复制和剪切文本。

让我们从如何通过在 Vim 中选择文本来复制开始。

通过选择文本复制

要在可视模式下复制文本,请执行以下 3 个简单步骤:

1. 移动到要开始选择的地方

2. 按 Ctrl + v 启用可视模式

3. 使用箭头键进行选择

4. 按 y 键复制所选文本

例如,在这里,我使用可视模式复制了 4 行:

图片

如果你注意到,当我按下 y 键,它就会显示有多少行被扽出(复制)。就我而言,有 4 行被复制。

在 Vim 中选择文本来剪切文本

要在 Vim 中以可视模式剪切文本,你所要做的就是遵循 4 个简单步骤:

1. 移动到要剪切的位置

2. 按 Ctrl + v 切换到可视模式

3. 使用箭头键选择要剪切的行

4. 按 d 键剪切选定的行

假设我想剪掉 4 行,那么我会这样做:

图片

挺容易。是吧?

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

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

相关文章

PgSQL技术内幕-Analyze做的那些事-pg_stat_all_tables

PgSQL技术内幕-Analyze做的那些事-pg_stat_all_tables pg_stat_all_tables视图中记录有analyze信息&#xff0c;比如何时做的analyze、表元组个数&#xff08;活元组、死元组&#xff09;等。重启后发现该视图中表的统计信息重置不见了&#xff0c;发生了什么&#xff1f; 1、p…

HarmonyOS开发者工具DevEco Studio-汉化

HarmonyOS DevEco Studio 简介 下载安装及汉化 打开开发者工具 安装语言包重启 然后设置页搜索“chinese”&#xff0c;选中中文语言包&#xff0c;点击后面的install&#xff1b; 或者 汉化按照IDEA的汉法风格&#xff0c;需要安装插件重启就可以汉化&#xff0c;步骤为&…

在云服务器上搭建个人版chatGPT及后端Spring Boot集成chat GPT

原创/朱季谦 本文分成两部分&#xff0c;包括【国内服务器上搭建chat GPT】和【后端Spring Boot集成chat GPT】。 无论是在【国内服务器上搭建chat GPT】和【后端Spring Boot集成chat GPT】&#xff0c;两个方式都需要魔法访问&#xff0c;否则是无法正常使用的&#xff0c;即…

Linux uname命令教程:如何打印linux操作系统名称和硬件的基本信息(附实例教程和注意事项)

Linux uname命令介绍 uname命令是一个在Linux中常用的命令行工具&#xff0c;用于打印有关操作系统名称和系统硬件的基本信息。uname这个名字来源于"UNIX name"。它最常用于确定处理器架构&#xff0c;系统主机名和系统上运行的内核版本。 Linux uname命令适用的Li…

基于SSM的企业订单跟踪管理系统(有报告)。Javaee项目

演示视频&#xff1a; 基于SSM的企业订单跟踪管理系统&#xff08;有报告&#xff09;。Javaee项目 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringM…

Python---函数的数据---拆包的应用案例(两个变量值互换,*args, **kwargs调用时传递参数用法)

案例&#xff1a; 使用至少3种方式交换两个变量的值 第一种方式&#xff1a;引入一个临时变量 c1 10 c2 2# 引入临时变量temp temp c2 c2 c1 c1 tempprint(c1, c2) 第二种方式&#xff1a;使用加法与减法运算交换两个变量的值&#xff08;不需要引入临时变量&#xff09…

python--获取每张切片的不同PEF区间值的百分比

在全直径数字岩心中&#xff0c;如何获取每张切片的不同PEF区间值的百分比&#xff1f; import os import datetime from PIL import Image import numpy as np import csv import easygui as gclass Table(object):def __init__(self, table_data_path):self.table_data_path…

ClickHouse中的物化视图

技术主题 技术原理 物化视图&#xff08;Materialized View&#xff09;是一种预先计算并缓存结果的视图&#xff0c;存储在磁盘上自动更新&#xff0c;空间换时间的思路。物化视图是一种优化技术&#xff0c;本质上就是为了加速查询操作&#xff0c;降低系统负载&#xff0c…

5、Qt:项目中包含多个子项目(.pro)/子模块(.pri)

一、说明&#xff1a; 在进行项目开发过程中&#xff0c;会涉及子项目/子模块的问题 Qt中使用TEMPLATE subdirs添加多个子项目&#xff1b;子项目可以单独编译生成可执行文件&#xff08;exe&#xff09;或者动态链接库&#xff08;dll&#xff09;等&#xff0c;供其他模块…

C#学习-9课时

P11 IF判断(上) P11 IF判断(中 ) bool→true or false&#xff1b; 为&#xff1a;变量赋值 为&#xff1a;等于(判断) !为&#xff1a;≠ 优先级&#xff1a;大于 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin…

论文笔记——FasterNet

为了设计快速神经网络,许多工作都集中在减少浮点运算(FLOPs)的数量上。然而,作者观察到FLOPs的这种减少不一定会带来延迟的类似程度的减少。这主要源于每秒低浮点运算(FLOPS)效率低下。 为了实现更快的网络,作者重新回顾了FLOPs的运算符,并证明了如此低的FLOPS主要是由…

路径规划之D*算法

系列文章目录 路径规划之Dijkstra算法 路径规划之Best-First Search算法 路径规划之A*算法 路径规划之D *算法 路径规划之D*算法 系列文章目录前言一、D*算法1.1 起源1.2 思想1.3 阶段1.4 个人理解1.5 应用 前言 之前说过A是目前应用最广泛的寻路算法&#xff0c;但是A算法存…

深度学习第2天:RNN循环神经网络

☁️主页 Nowl &#x1f525;专栏《机器学习实战》 《机器学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 文章目录 介绍 记忆功能对比展现 任务描述 导入库 处理数据 前馈神经网络 循环神经网络 编译与训练模型 模型预测 可能的问题 梯度消失 梯…

【古诗生成AI实战】之一——实战项目总览

[1] 总览 【古诗生成AI实战】系列共五篇文章&#xff1a; 【古诗生成AI实战】之一——实战项目总览   【古诗生成AI实战】之二——项目架构设计   【古诗生成AI实战】之三——任务加载器与预处理器   【古诗生成AI实战】之四——模型包装器与模型的训练   【古诗生成AI…

【双指针】三数之和

三数之和 在做这道题之前&#xff0c;建议建议先将两数之和做完再做&#xff0c;提升更大~ 文章目录 三数之和题目描述算法原理解法一解法二思路如下&#xff1a;处理细节问题&#xff1a; 代码编写Java代码编写C代码编写 15. 三数之和 - 力扣&#xff08;LeetCode&#xff0…

knife4j集合化postman

knife4j集合化postman 01 knife4j的介绍 基于 JavaMVC的集成框架swagger的进一步强化&#xff0c;在原有通过注释就能生成文档的前身swagger-bootstrap-ui之上&#xff0c;增加了postman的测试功能&#xff0c;优化了文档的UI界面&#xff0c;在测试api接口的方面有了极大的进…

香橙派5 RK3588 yolov5模型转换rknn及部署踩坑全记录 orangepi 5

零、写在前面 由于距离写这篇文章过去很久&#xff0c;有的部分&#xff0c;官方已更新&#xff0c;请多结合其他人的看&#xff0c;并多琢磨、讨论~ 另外打个小广告&#xff1a;博客 https://blog.vrxiaojie.top/ 欢迎大家前来做客玩耍&#xff0c;提出问题~~ 以后的文章都会…

笔记(三)maxflow push relabel与图像分割

笔记&#xff08;三&#xff09;maxflow push relabel与图像分割 1. Push-Relabel算法思想2.Push-Relabel算法原理示意图3.Push-Relabel算法具体实例4. push relabel与图割 1. Push-Relabel算法思想 对于一个网络流图: 该算法直观可以这样理解&#xff0c;先在源节点处加入充足…

【经验分享】开发问题记录总结(持续更新)

目录 工具开发 界面类继承某自定义界面类时&#xff0c;出现布局混乱或者所有控件集中在左上角&#xff1f; 在继承自定义界面之后&#xff0c;以诸如 on_xxx_clicked() 模式设计的槽函数失效了? 使用pugi接口取出文本数据后&#xff0c;为什么该变量无法进行字符串比较&…

Flask WTForms 表单插件的使用

在Web应用中&#xff0c;表单处理是一个基本而常见的任务。Python的WTForms库通过提供表单的结构、验证和渲染等功能&#xff0c;简化了表单的处理流程。与此同时&#xff0c;Flask的扩展Flask-WTF更进一步地整合了WTForms&#xff0c;为开发者提供了更便捷、灵活的表单处理方式…