2023-11-01 09:23:09 +08:00
|
|
|
|
[#]: subject: "Cut, Copy and Paste in Vim"
|
|
|
|
|
[#]: via: "https://itsfoss.com/vim-cut-copy-paste/"
|
|
|
|
|
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
|
|
|
|
|
[#]: collector: "lujun9972/lctt-scripts-1693450080"
|
|
|
|
|
[#]: translator: "geekpi"
|
2023-11-07 17:25:16 +08:00
|
|
|
|
[#]: reviewer: "wxy"
|
|
|
|
|
[#]: publisher: "wxy"
|
|
|
|
|
[#]: url: "https://linux.cn/article-16357-1.html"
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
如何在 Vim 中剪切、复制和粘贴
|
2023-11-01 09:23:09 +08:00
|
|
|
|
======
|
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
![][0]
|
|
|
|
|
|
|
|
|
|
> 在本篇 Vim 快速技巧中,你将学习到剪切和复制粘贴的相关知识。
|
|
|
|
|
|
2023-11-01 09:23:09 +08:00
|
|
|
|
剪切、复制和粘贴文本是文本编辑中最基本的任务之一,我们都知道 Vim 有不同的处理方式。
|
|
|
|
|
|
|
|
|
|
这意味着,在你掌握它之前,你会害怕它,一旦你掌握了它,它就只是一个兔子洞。
|
|
|
|
|
|
|
|
|
|
虽然我将详细介绍剪切、复制和粘贴,但这里是本教程的基本摘要,以帮助你开始使用:
|
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
**按键** | **描述**
|
2023-11-01 09:23:09 +08:00
|
|
|
|
---|---
|
|
|
|
|
`yiw` | 复制当前单词。
|
|
|
|
|
`yy` | 复制整行。
|
|
|
|
|
`diw` | 剪切当前单词。
|
|
|
|
|
`dd` | 剪掉整行。
|
|
|
|
|
`p` | 粘贴文本。
|
|
|
|
|
|
|
|
|
|
别担心,Vim 为你提供的选项比我上面提到的要多得多。
|
|
|
|
|
|
|
|
|
|
在本教程中,我将引导你完成以下内容:
|
|
|
|
|
|
|
|
|
|
* 如何在 Vim 中复制文本
|
|
|
|
|
* 如何在 Vim 中剪切文本
|
|
|
|
|
* 如何在 Vim 中粘贴文本
|
|
|
|
|
* 如何使用可视模式在 Vim 中剪切和复制文本
|
|
|
|
|
|
|
|
|
|
那么让我们从第一个开始。
|
|
|
|
|
|
|
|
|
|
### 如何在 Vim 编辑器中复制文本
|
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
虽然我们使用术语“复制”,但 Vim 有一个不同的术语,称为 “<ruby>扽出<rt>yank</rt></ruby>”,因此从现在开始,我将使用“扽出”而不是“复制”。
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
正如我之前提到的,你可以使用多种方法在 Vim 中扽出文本,以下是一些有用的方法:
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
|
|
|
|
命令 | 描述
|
|
|
|
|
---|---
|
2023-11-07 17:25:16 +08:00
|
|
|
|
`nyy` 或 `nY` | 扽出(复制)当前行和接下来的 `n-1` 行。例如,`3yy` 复制当前行及其下面的两行。
|
|
|
|
|
`yaw` | 扽出(复制)光标所在的当前单词。
|
|
|
|
|
`yy` 或 `Y` | 扽出(复制)整个当前行。
|
|
|
|
|
`y$` | 扽出(复制)从光标到行尾的文本。
|
|
|
|
|
`y^` 或 `y0` | 扽出(复制)从光标到行首的文本。
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
要在 Vim 中扽出,请执行以下 3 个简单步骤:
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
|
|
|
|
1. 按 `Esc` 键切换到正常模式
|
|
|
|
|
2. 移动到要复制的行或单词
|
|
|
|
|
3. 按上表中的相关命令,你的文本将被复制
|
|
|
|
|
|
|
|
|
|
想学习交互式复制行的方式吗? 跳到本教程的最后一部分。
|
|
|
|
|
|
|
|
|
|
### 如何在 Vim 编辑器中剪切文本
|
|
|
|
|
|
|
|
|
|
在 Vim 中,你没有任何删除文本的选项。取而代之的是剪切文本,因此删除和剪切文本与 Vim 中的操作类似。
|
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
要在 Vim 中剪切文本,请按 `d` 命令。但你永远不会在没有任何选项的情况下使用 `d` 命令。你总是会添加一些东西来做更多操作。
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
因此,你可以使用以下一些实用方法使用 `d` 命令剪切文本:
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
|
|
|
|
命令 | 描述
|
|
|
|
|
---|---
|
|
|
|
|
`dd` | 剪切整个当前行。
|
|
|
|
|
`d$` | 将文本从光标剪切到行尾。
|
|
|
|
|
`d^` 或 `d0` | 将文本从光标剪切到行首。
|
|
|
|
|
`ndd` 或 `dN` | 剪切当前行和接下来的 `n-1` 行。例如,`3dd` 剪切当前行及其下面的两行。
|
|
|
|
|
`daw` | 剪切光标所在的当前单词。
|
|
|
|
|
|
|
|
|
|
假设我想从文件中剪切前 4 行,然后我需要使用 `4dd`,我是这样做的:
|
|
|
|
|
|
|
|
|
|
![][1]
|
|
|
|
|
|
|
|
|
|
### 如何在 Vim 编辑器中粘贴文本
|
|
|
|
|
|
|
|
|
|
在 Vim 中复制或剪切文本后,只需按 `p` 键即可粘贴它。
|
|
|
|
|
|
|
|
|
|
你可以多次按 `p` 键多次粘贴文本,也可以使用 `np`,其中 `n` 是要粘贴文本的次数。
|
|
|
|
|
|
|
|
|
|
例如,在这里,我粘贴了之前复制了三遍的行:
|
|
|
|
|
|
|
|
|
|
![][2]
|
|
|
|
|
|
|
|
|
|
就是这么简单!
|
|
|
|
|
|
|
|
|
|
### 如何通过选择文本来剪切和复制文本
|
|
|
|
|
|
|
|
|
|
如果你使用过 GUI 文本编辑器,那么你肯定习惯于通过选择文本来复制和剪切文本。
|
|
|
|
|
|
|
|
|
|
让我们从如何通过在 Vim 中选择文本来复制开始。
|
|
|
|
|
|
|
|
|
|
#### 通过选择文本复制
|
|
|
|
|
|
|
|
|
|
要在可视模式下复制文本,请执行以下 3 个简单步骤:
|
|
|
|
|
|
|
|
|
|
1. 移动到要开始选择的地方
|
|
|
|
|
2. 按 `Ctrl + v` 启用可视模式
|
|
|
|
|
3. 使用箭头键进行选择
|
|
|
|
|
4. 按 `y` 键复制所选文本
|
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
例如,在这里,我使用可视模式复制了 4 行:
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
|
|
|
|
![][3]
|
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
如果你注意到,当我按下 `y` 键,它就会显示有多少行被扽出(复制)。就我而言,有 4 行被复制。
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
|
|
|
|
#### 在 Vim 中选择文本来剪切文本
|
|
|
|
|
|
|
|
|
|
要在 Vim 中以可视模式剪切文本,你所要做的就是遵循 4 个简单步骤:
|
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
1. 移动到要剪切的位置
|
2023-11-01 09:23:09 +08:00
|
|
|
|
2. 按 `Ctrl + v` 切换到可视模式
|
|
|
|
|
3. 使用箭头键选择要剪切的行
|
|
|
|
|
4. 按 `d` 键剪切选定的行
|
|
|
|
|
|
|
|
|
|
假设我想剪掉 4 行,那么我会这样做:
|
|
|
|
|
|
|
|
|
|
![][4]
|
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
挺容易。是吧?
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
|
|
|
|
### 更多关于 Vim 的内容
|
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
你知道 Vim 有多种模式吗? [了解有关 Vim 中不同模式的更多信息][5]。
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
想提高你的 Vim 水平吗?请参阅 [成为 Vim 专业用户的提示和技巧][7]。
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
|
|
|
|
我希望本指南对你有所帮助。
|
|
|
|
|
|
2023-11-07 17:25:16 +08:00
|
|
|
|
*(题图:MJ/3555eed2-ab14-433d-920f-17b80b46ce74)*
|
|
|
|
|
|
2023-11-01 09:23:09 +08:00
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
via: https://itsfoss.com/vim-cut-copy-paste/
|
|
|
|
|
|
|
|
|
|
作者:[Sagar Sharma][a]
|
|
|
|
|
选题:[lujun9972][b]
|
|
|
|
|
译者:[geekpi](https://github.com/geekpi)
|
2023-11-07 17:25:16 +08:00
|
|
|
|
校对:[wxy](https://github.com/wxy)
|
2023-11-01 09:23:09 +08:00
|
|
|
|
|
|
|
|
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
|
|
|
|
|
|
|
|
|
[a]: https://itsfoss.com/author/sagar/
|
|
|
|
|
[b]: https://github.com/lujun9972
|
|
|
|
|
[1]: https://itsfoss.com/content/images/2023/10/Cut-multiple-lines-in-the-Vim-editor.gif
|
|
|
|
|
[2]: https://itsfoss.com/content/images/2023/10/paste-lines-in-Vim-editor.gif
|
|
|
|
|
[3]: https://itsfoss.com/content/images/2023/10/Copy-lines-in-vim-by-selecting-them.gif
|
|
|
|
|
[4]: https://itsfoss.com/content/images/2023/10/Cut-lines-in-Vim-by-selecting-them.gif
|
|
|
|
|
[5]: https://linuxhandbook.com/vim-modes/
|
|
|
|
|
[7]: https://linuxhandbook.com/pro-vim-tips/
|
2023-11-07 17:25:16 +08:00
|
|
|
|
[0]: https://img.linux.net.cn/data/attachment/album/202311/07/172330q49ttt4ee9r86u39.png
|