欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 【Vim Masterclass 笔记07】S05L19:Vim 剪切、复制、粘贴操作同步练习

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

2025/2/23 7:24:21 来源:https://blog.csdn.net/frgod/article/details/144926749  浏览:    关键词:【Vim Masterclass 笔记07】S05L19:Vim 剪切、复制、粘贴操作同步练习

文章目录

  • S05L19 Vim 剪切、复制、粘贴操作同步练习(Exercise 05 - Cut, Copy and Paste)
    • 1 训练目标
    • 2 操作指令
      • 2.1 打开 dyp.txt 文件
      • 2.2 交换文件的头两行
      • 2.3 将文件首行 put 到文件其他为止
      • 2.4 练习在光标位置的上方粘贴文本行
      • 2.5 通过交换字符顺序更正存在的笔误
      • 2.6 交换单词
      • 2.7 重复某一行
      • 2.8 重复某个单词
      • 2.9 使用数字寄存器(register)
      • 2.10 使用命名寄存器
      • 2.11 撤销与重做练习
    • 3 自由练习
    • 4 退出 Vim
  • S05L20 同步练习点评课(Exercises 05 - Cut, Copy and Paste - Walkthrough)

写在前面
本篇为第五章前两课内容(剪切复制粘贴+寄存器)的同步练习。全文已翻译成中文,方便快速回顾与练习。熟用 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


S05L20 同步练习点评课(Exercises 05 - Cut, Copy and Paste - Walkthrough)

没有值得提炼的补充知识点。多思多练,熟能生巧。

练习题使用文件:vimclass/dyp.txt


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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词