Merge pull request #17923 from wxy/20200219-Basic-Vim-Commands-You-Need-to-Know-to-Work-in-Vim-Editor

PRF&PUB:20200219 Basic Vim Commands You Need to Know to Work in Vim Editor
This commit is contained in:
Xingyu.Wang 2020-03-30 12:22:33 +08:00 committed by GitHub
commit 59f30ffbd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,69 +1,52 @@
[#]: collector: (lujun9972)
[#]: translator: (mengxinayan)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12053-1.html)
[#]: subject: (Basic Vim Commands You Need to Know to Work in Vim Editor)
[#]: via: (https://www.2daygeek.com/basic-vim-commands-cheat-sheet-quick-start-guide/)
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
你需要知道的 Vim 编辑器中的基础命令
必知必会的 Vim 编辑器基础命令
======
如果你是一名系统管理员或者开发者,当你在终端工作时有时会需要编辑一个文件。
在 Linux 系统中有几种文件编辑器,你可以根据需求选择合适的文件编辑器
在这里,我想推荐 Vim 编辑器
如果你是一名系统管理员或者开发者,当你在终端工作时有时会需要编辑一个文件。在 Linux 系统中有几种文件编辑器,你可以根据需求选择合适的文件编辑器。在这里,我想推荐 Vim 编辑器。
### 为什么推荐 Vim 编辑器
和创建编写新文件相比,你会在编辑器中花费更多的时间用来修改已经存在的文件
相对于创建新文件你更多是修改已经存在的文件。在这种情况下Vim 快捷键可以有效地满足你的需求。
在这种情况下Vim 快捷键可以有效地满足你的需求。
文章下面的内容可以帮助你了解对文件和目录的操作。
[Linux 基础:对文件和目录进行操作的 Linux 和 Unix 命令][1]
[在 Linux 中查看不同文件格式的10种方法][2]
下列文章可以帮助你了解对文件和目录的操作。
- [Linux 基础:对文件和目录进行操作的 Linux 和 Unix 命令][1]
- [在 Linux 中查看不同文件格式的 10 种方法][2]
### 什么是 Vim
Vim 是被 Linux 管理员和开发者广泛使用的最流行和功能强大的编辑器之一。
它可以通过高度的自定义配置来提高文本编辑效率。它是在众多 Unix 默认安装的 Vi 编辑器的升级版。
Vim 通常被称为“程序员的编辑器”,但并不限于此,它也可用于编辑任何类型的文件。
它具有许多功能,例如:多次撤销,多窗口和缓冲区,语法高亮,命令行编辑,文件名补全,可视选择。
你可以使用 `:help` 命令来获取在线帮助
Vim 是被 Linux 管理员和开发者广泛使用的最流行和功能强大的编辑器之一。它可以通过高度的自定义配置来提高文本编辑效率。它是在众多 Unix 默认安装的 Vi 编辑器的升级版。
Vim 通常被称为“程序员的编辑器”,但并不限于此,它也可用于编辑任何类型的文件。它具有许多功能,例如:多次撤销、多窗口和缓冲区、语法高亮、命令行编辑、文件名补全、可视选择等等。你可以使用 `:help` 命令来获取在线帮助。
### 理解 Vim 的模式
Vim 有两种模式,详细介绍如下:
**命令模式:** 当启动 Vim 编辑器后,默认处在命令模式下。你可以在文件中移动并且修改内容,剪切复制和粘贴文件的一部分,同时发出命令执行更多操作(按 ESC 键进入命令模式)
**命令模式:** 当启动 Vim 编辑器后,默认处在命令模式下。你可以在文件中移动并且修改内容,剪切、复制和粘贴文件的一部分,同时发出命令执行更多操作(按 `ESC` 键进入命令模式)
**插入模式:** 插入模式用于在给定的文档位置插入文本(按 i 键进入插入模式)
**插入模式:** 插入模式用于在给定的文档位置插入文本(按 `i` 键进入插入模式)
### 我如何知道我正使用哪种 Vim 模式呢?
如果你正在使用插入模式,你会在编辑器的底部看到 `INSERT` 。如果编辑器底部没有显示任何内容,或者在编辑器底部显示了文件名,则处于 “命令模式”。
如果你正在使用插入模式,你会在编辑器的底部看到 `INSERT`。如果编辑器底部没有显示任何内容,或者在编辑器底部显示了文件名,则处于 “命令模式”。
### 正常模式下的光标移动
### Cursor Movement in Normal Mode
### 命令模式下的光标移动
Vim 快捷键允许你使用不同的方式来移动光标:
* `G` 跳转到文件最后一行
* `gg` 跳转到文件首行
* `$` 跳转到行末尾
* `0` (零) 跳转到行开头
* `0`(数字 0 跳转到行开头
* `w` 跳转到下一个单词的开始(单词的分隔符可以是空格或其他符号)
* `W` 跳转到下一个单词的开始(单词的分隔符只能是空格)
* `b` 跳转到下一个单词的末尾(单词的分隔符可以是空格或其他符号)
@ -74,10 +57,9 @@ Vim 快捷键允许你使用不同的方式来移动光标:
* `Ctrl+d` 向下移动半页
* `Ctrl+u` 向上移动半页
### 插入模式:插入文字
下面的 vim 快捷键允许你根据需要在光标的不同位置插入内容。
下面的 Vim 快捷键允许你根据需要在光标的不同位置插入内容。
* `i` 在光标之前插入
* `a` 在光标之后插入
@ -87,26 +69,22 @@ Vim 快捷键允许你使用不同的方式来移动光标:
* `O` 在光标所在行的上面插入新行
* `ea` 在单词的末尾插入
### 拷贝,粘贴和删除一行
### 拷贝、粘贴和删除一行
* `yy` 复制一行
* `p/P` 将内容粘贴到光标之后 / 将内容粘贴到光标之前
* `p` / `P` 将内容粘贴到光标之后 / 之前
* `dd` 删除一行
* `dw` 删除一个单词
### 在 Vim 中搜索和替换匹配的模式
### 在 Vim 中搜索和替换模式
* `/pattern` 向后搜索给定的模式
* `?pattern` 向前搜索给定的模式
* `/模式` 向后搜索给定的模式
* `?模式` 向前搜索给定的模式
* `n` 向后重复搜索之前给定的模式
* `N` 向前重复搜索之前给定的模式
* `:%s/old-pattern/new-pattern/g` 将文件中所有的旧模式替换为新模式
* `:s/old-pattern/new-pattern/g` 将当前行中所有的旧模式替换为新模式
* `:%s/old-pattern/new-pattern/gc` 逐个询问是否文件中的旧模式替换为新模式
* `:%s/旧模式/新模式/g` 将文件中所有的旧模式替换为新模式
* `:s/旧模式/新模式/g` 将当前行中所有的旧模式替换为新模式
* `:%s/旧模式/新模式/gc` 逐个询问是否文件中的旧模式替换为新模式
### 如何在 Vim 编辑器中跳转到特定行
@ -127,7 +105,7 @@ Vim 快捷键允许你使用不同的方式来移动光标:
如果你已经知道行号,请使用以下方法在打开文件时直接跳转到相应行。例如,如果在打开文件时直接跳转到 20 行,请输入下面的命令:
```
$ vim +20 [File_Name]
$ vim +20 [文件名]
```
### 撤销操作/恢复上一次操作/重复上一次操作
@ -136,14 +114,12 @@ $ vim +20 [File_Name]
* `Ctrl+r` 恢复更改
* `.` 重复上一条命令
### 保存和退出 Vim
* `:w` 保存更改但不退出 vim
* `:wq` 写并退出
* `:q!` 强制退出
--------------------------------------------------------------------------------
via: https://www.2daygeek.com/basic-vim-commands-cheat-sheet-quick-start-guide/
@ -151,7 +127,7 @@ via: https://www.2daygeek.com/basic-vim-commands-cheat-sheet-quick-start-guide/
作者:[Magesh Maruthamuthu][a]
选题:[lujun9972][b]
译者:[萌新阿岩](https://github.com/mengxinayan)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出