首页 > 其他分享 >【Vim Masterclass 笔记07】S05L19:Vim 剪切、复制、粘贴操作同步练习

【Vim Masterclass 笔记07】S05L19:Vim 剪切、复制、粘贴操作同步练习

时间:2025-01-04 11:32:55浏览次数:3  
标签:07 Masterclass 练习 Vim 粘贴 寄存器 line 光标

文章目录

写在前面
本篇为第五章前两课内容(剪切复制粘贴+寄存器)的同步练习。全文已翻译成中文,方便快速回顾与练习。熟用 Vim 的关键在于大量的刻意练习。

S05L19 Vim 剪切、复制、粘贴操作同步练习(Exercise 05 - Cut, Copy and Paste)

1 训练目标

练习 Vim 中的剪切、复制、粘贴;熟悉 register 寄存器。1

2 操作指令

2.1 打开 dyp.txt 文件

用 Vim 打开源码包内的练习文件 dyp.txt(默认解压到 Downloads 文件夹下):

cd Downloads
cd vimclass
vim dyp.txt

2.2 交换文件的头两行

首先,用 DD 删除文件首行。该行会进入默认寄存器。然后使用 p 命令将该行粘贴到新的这行下面。

操作前,这两行应该像这样:

This was originally the first line in the file.
This was originally the second line in the file.

操作后应该变为这样:

This was originally the second line in the file.
This was originally the first line in the file.

2.3 将文件首行 put 到文件其他为止

切记:默认寄存器的内容可以多次使用。将文件最初的首行放到这一行下面:

What was the first line in the file originally?  Place it below:

方法:先定位到这一行,然后按 P 执行 put 命令。

2.4 练习在光标位置的上方粘贴文本行

将最初的首行内容粘贴到这一行的上方:

What was the first line in the file originally?  Place it above:

方法:先定位到这一行,然后按下 Shift + P

2.5 通过交换字符顺序更正存在的笔误

光标定位到这一行的字母 e 上:

teh

交换 eh 的位置,让其变为 the。方法:输入 X 删除 e,然后输入 P 将其粘贴到紧挨当前光标后面的位置。

重复上述流程更正下面四行拼错或输错的内容:

psell = spell
vmi = vim
wrod = word
taht = that

2.6 交换单词

将如下这行由:

second, First, third.

变为:

First, second, third.

方法:光标移至行首位置、即单词 seconds 上;然后使用 dW 命令(注意 W 是大写形式)将该单词连同后面的逗号一并删除;再用 W 令光标移至单词 third 的开头位置;最后使用 Shift + P 在当前光标位置的前方粘贴默认寄存器内的文本内容。

2.7 重复某一行

重复下面这一行,并将其复制到它的下方:

Duplicate this line.

方法:光标定位到该行,使用 yy 将其 yank 到默认寄存器。接着使用 p 命令粘贴到该行的下方。

2.8 重复某个单词

重复下面这一行的单词 really, really,

I really, really, love vim!

方法:光标定位到第一个单词 really 的字母 r 上;再用 y2W 命令将这两个单词(包括标点)复制到默认寄存器;然后用 Shift + P 粘贴到当前光标的前方。此时这行文本应该变成这样:

I really, really, really, really, love vim!

2.9 使用数字寄存器(register)

将文本 TODO 粘贴到文件中所有以 Fix this 开头的文本行上方;同时,删除所有标注了 Delete this 的行;从光标当前位置开始,向下浏览文件,交替执行删除与粘贴操作。

方法:先用 yy 复制 TODO 那行文本;再用 2dd 删除两行标有 Delete this 的文本行;光标定位到含有 Fix this 的行,然后将 TODO 粘贴到它的上方。这一步需要用到 0 号寄存器中保存的上一次复制的文本,输入 "0P 即可。重复上述操作,直到所有以 Fix 开头的行上方都有一个 TODO、同时所有包含 Delete 的行都被删除。

2.10 使用命名寄存器

先将以下这行文本存到 "j 寄存器中:

Yank this line into the "j register.

方法:光标定位到该行任意位置,输入 "jyy

然后再将下面这行内容放入 "f 寄存器。

Yank this line into the "f register.

方法:光标定位到该行任意位置,输入 "fyy

然后使用命令 "jp,将 "j 寄存器中的内容粘贴到下面这行的下方:

Put the contents of the "j register below:

再用 "fp"f 寄存器中的文本内容粘贴到下面这一行的下方:

Put the contents of the "f register below:

将下面这行内容追加到 "j 寄存器内:

Append this line to the "j register.

方法:光标定位到该行任意位置,并输入命令 "Jyy(注意 J 为大写字母)。

再将下列一行文本追加到 "f 寄存器内:

Append this line to the "f register.

方法:光标定位到该行任意为止,输入命令 "Fyy(注意 F 为大写字母)。

使用 :reg + Enter 查看所有寄存器中的内容。例如查看 "j"f 寄存器,使用命令 :reg jf + Enter

然后使用 "jp 命令,将 "j 寄存器中的内容粘贴到下面这行文字的下方:

Put the contents of the "j register below:

接着,使用 "fp 命令,将 "f 寄存器中的内容粘贴到下面这行文字的下方:

Put the contents of the "f register below:

2.11 撤销与重做练习

删除以下三行内容:

ONE)
TWO)
THREE)

方法:光标定位到第一行,输入 3dd;使用 u 命令撤销删除;注意看三行内容是怎么还原的。

通过 Ctrl + R 重复执行刚才的删除命令,此时这三行又被重新删除。

向文件插入一个新行:先使用 i 命令进入插入模式;然后在 Vim 中输入一些句子,例如下面这句话:

Vim is fun!

按下 Escape 键返回正常模式。使用 u 命令撤销刚才输入的文本。然后使用 Ctrl + R 重新插入刚才的文本内容。

3 自由练习

鼓励自行尝试一些组合练习。最好是有个现成的文件需要修改,然后用 Vim 打开,用学到的删除、复制、粘贴去操作文件内容。

4 退出 Vim

若要放弃文件变更以便下次重新练习,使用退出命令 :q! + Enter


  1. 本节练习另附精美排版 PDF 格式,阅读体验更佳,详见:vimclass/Exercise-05-CutCopyPaste.pdf ↩︎

标签:07,Masterclass,练习,Vim,粘贴,寄存器,line,光标
From: https://blog.csdn.net/frgod/article/details/144926749

相关文章

  • NLP 中文拼写检测纠正论文-07-NLPTEA-2020中文语法错误诊断共享任务概述
    拼写纠正系列NLP中文拼写检测实现思路NLP中文拼写检测纠正算法整理NLP英文拼写算法,如果提升100W倍的性能?NLP中文拼写检测纠正Paperjava实现中英文拼写检查和错误纠正?可我只会写CRUD啊!一个提升英文单词拼写检测性能1000倍的算法?单词拼写纠正-03-leetcodeedit-d......
  • NLP 中文拼写检测纠正论文-07-NLPTEA-2020中文语法错误诊断共享任务概述
    拼写纠正系列NLP中文拼写检测实现思路NLP中文拼写检测纠正算法整理NLP英文拼写算法,如果提升100W倍的性能?NLP中文拼写检测纠正Paperjava实现中英文拼写检查和错误纠正?可我只会写CRUD啊!一个提升英文单词拼写检测性能1000倍的算法?单词拼写纠正-03-leetcode......
  • 上市公司企业合作文化数据(2007-2023年)
    企业合作文化是指企业在与内部员工、外部合作伙伴以及整个社会的合作中,追求双方利益最大化,实现共赢的一种企业文化。上市公司企业合作文化是推动企业发展的重要力量。通过构建开放、包容、互利共赢、创新学习的合作文化,上市公司可以不断提升自身的市场竞争力和品牌影响力,实现......
  • 华为AC、AP配置(AC 6507S)
    很久没更新了,这段时间在忙着考试、笔试,虽然最后都没通过,但是生活还得继续1.网络需求使用一台AC,型号是华为的6507S,若干台AP(5762S-12)搭建无线办公网络无线业务:vlan130,网段:192.168.11.0/24、网关:192.168.11.254、管理vlan:vlanif140,IP地址:192.168.20.1/24、vlanif100,IP地址:172.16.......
  • vscode+vim配置小记
    引入在windows系统下使用vscode+vim编写代码时会遇到一个令人略有不爽的小麻烦。在vim的normal模式下,首先需要进入insert模式才能正常编写。这里一般是在英文输入法键入相应字母才能进入,比如“i”和“o”我们进入insert模式之后,在敲代码的过程中难免会需要增加些中文注释,这个时......
  • STLG_01_07_程序设计C语言 - 语句与控制流
    1.基本语句1.1表达式语句表达式语句由一个表达式加上分号组成。例如:x=5;、i++;1.2复合语句(块语句)复合语句是由一对大括号 {} 包围的一组语句。复合语句可以包含变量声明、表达式语句等。例如:{intx=5;x=x+1;}1.3空语句空语句只包含一个分号......
  • 咱们一起学 Java(107)
    咱们一起学Java(107)在之前的学习中,我们已经掌握了文本域和标签组件在Java图形程序中的使用,能够构建具有基本文本输入和标识功能的界面。今天,我们将继续深入学习文本输入相关的组件,包括密码域(JPasswordField)、文本区(JTextArea)以及滚动窗格(JScrollPane)。这些组件在处理密码输......
  • 用老爷机还能玩吃鸡游戏吗?加持ToDesk云电脑低配置丝滑秒变显卡4070
    随着当代人工作、生活压力的增大以及数码科技的发展进步,网络游戏、手机游戏,在年轻人常做的休闲事项中占据了越来越多、越来越重的位置。然而有些游戏,例如吃鸡、竞技类游戏是极为消耗设备配置的,虽然刺激,却也不是任何手机、电脑都能轻松带动并拥有满意的操作效果,如果卡顿、画面......
  • [Tricks-00007]AGC070C 什么才是真正的容斥
    呜呜。这题太难受了,还不知道以怎样的方式写能把其中的巧妙思维方式解释清楚。先把做法的表象讲讲吧:考虑翻折容斥。我以为这个做不了,实际是可以的啊!把\(+1,-1,0\)分别记作A,B,X。则要求相当于,固定A,B,X分别的个数(记为\(a,b,x\)),但要求不能出现连续的AA或者BB且前缀和非......
  • 【YashanDB知识库】YAS-02507 base incremental backup set does not exist
    本文内容来自YashanDB官网,原文内容请见https://www.yashandb.com/newsinfo/7849016.html?templateId=1718516【标题】错误码处理【问题分类】执行数据库备份命令时报错【关键字】YAS-02507【问题描述】执行BACKUPDATABASEINCREMENTALLEVEL1format'/data/yasdb_back/bac......