---
title: Useful Commands
localeTitle: 有用的命令
---
# 有用的命令

## 基本功能

最有可能你会发现自己在“正常”模式，它可以让您通过按冒号输入命令`:`关键。 要从其他模式到达此处，您可以键入`ctrl + c`或`escape` 。

要编辑文本并以熟悉的方式移动，请按`i` ，进入“插入”模式。尝试使用“插入”模式中的箭头键移动 - 有关详细信息，请参阅下面的“导航”部分。

根据配置，您可以通过键入并输入命令来输入文件浏览器`:e .`在“正常”模式下。 'e'代表编辑，以及文件或目录的句点。

## 导航

*   光标移动：您可以使用箭头键或`h` ， `j` ， `k` ， `l` （左，下，上，右）
*   `gg`带您到文件的开头
*   `G`将您带到文件的末尾
*   `:(num)`将您带到文件中的特定行（例如：42将您带到第42行）

## 保存

1.  按`Escape`确保您处于`normal mode` ;
2.  输入`:w` （“w”代表“写”）;
3.  按`Enter` 。

## 保存（到新文件）

1.  按`Escape`确保您处于`normal mode` 。
2.  键入`:w newfilename` （newfilename是要保存到的新文件的文件名）。
3.  按`Enter` 。

## 退出Vi，Vim，Nvim，Gvim

1.  按“退出”可以进入“正常”模式
2.  `:q`将软退出vim
3.  `:q!`将迫使退出vim
4.  `:qa`这将关闭所有打开的文件
5.  `:qa!`放弃更改时关闭所有文件
6.  `:q`保存并关闭当前文件

（注意：命令`:q!`将强制Vim退出而不保存。请确保先键入命令先保存`:w`如果您不想丢失所做的任何更改。）

**要么**

*   输入ZZ（保存并退出）
*   键入`:wq` / `:x` （保存并退出但使用常用的“w”和“q”命令）

## 剪切，复制和粘贴

*   `dd`删除（剪切）一行
*   `yy`猛拉（复制）一行
*   您可以使用`yy`和`dd` `13dd`的数字来剪切或复制多行（ex- `13dd`将剪切13行）
*   `p`粘贴粘贴缓冲区中的所有内容

## 粘贴代码块

通常，您会发现自己正在寻找问题的解决方案，并且发现有人编写了一个代码块，可以完全满足您的需求。 如果您尝试将代码直接复制并粘贴到Vim中，您可能会发现代码格式错误或未正确粘贴。 这是因为Vim读取了一个接一个地粘贴的每个字符，这意味着任何激活Vim快捷键的键组合都将被执行，Vim将尝试（并且失败）自动缩进粘贴的代码。

要解决此问题，您可以使用Vim的**粘贴模式** ，您可以通过进入正常模式激活（按`escape`或`crtl + c` ）并键入`:set paste` ，然后按ENTER键。 您现在处于_粘贴_模式。 然后，您可以使用`i`输入插入模式并粘贴文本/代码块而不会出现任何问题！ 要在没有粘贴模式的情况下返回常规Vim，您可以进入正常模式（ `escape`或`crtl + c` ）并输入`:set nopaste` ，然后按ENTER键。

## 设置行号

1.  按“退出”可以进入“正常”模式
2.  输入`:set number` ，按回车键

要默认设置行号：

1.  使用`vim ~/.vimrc`打开/创建vim配置文件
2.  添加行`set number` ，按Enter键

## 在VIM中打开文件

在VIM中，您可以通过将光标设置在路径上并键入`gf`在同一窗口中打开文件。这将告诉VIM光标所在的当前文本是您要打开的文件。该文件将在VIM终端内打开，因此如果要返回上一个窗口，只需键入`ctrl+o` 。这将告诉VIM转到上一个屏幕。

## 如何拆分窗户

您可以拆分vim窗口并同时编辑2个或更多文件。

*   `:split` - >拆分窗口（水平）
*   `:vsplit` - >拆分窗口（垂直）
*   `:vertical` new - >在新窗口中打开一个新文件

要在窗口之间移动，您可以使用以下命令：

*   `CTRL-W h` - 移动到左侧的窗口
*   `CTRL-W j` - 移动到下面的窗口
*   `CTRL-W k` - 移动到上面的窗口
*   `CTRL-W l` - 移动到右侧的窗口
*   `CTRL-W t` - 移动到顶部窗口
*   `CTRL-W b` - 移动到底部窗口

## 撤销重做

应在**正常模式下**执行这些操作。

**撤消** ：按`u`或输入`:undo` ，然后按`Enter` 。

**重做** ：按`U` （ `Shift` + `u` ）或输入`:redo`并按`Enter` 。

## 在特定行中打开文件

*   vi filename + n，其中n是行号

## 打开搜索单词/术语的文件

*   vi filename + / word，其中word是你要找的。光标将定位在单词的第一个出现位置。

## 在Vim中搜索文件

在正常模式下（按`escape`键确认），您可以通过键入`/` ，然后按您要查找的术语搜索文档中的任何术语，然后按`enter` 。例如，键入`/hello`并按`enter`键以在当前文件中搜索单词“hello”。

您可以按`n`跳过搜索词的下一个匹配项，或按`N`跳过上一个匹配项。 `*`搜索光标下方的单词。

如果要突出显示所有搜索匹配类型`:set hlsearch`或使用缩写命令`:set hls` 。使用`:set noh`关闭突出显示直到下一次搜索。

## 编译项目

Vim与`make` build自动化工具紧密集成。如果您的项目使用Makefile，则可以在Vim命令行键入`:make`以运行系统的`make`工具。 Vim将在屏幕上打印`make`的输出， `make`在`make`命令完成时将您带到第一个错误（如果有）。然后，您可以分别使用`:cn`和`:cp`命令跳转项目代码中的编译错误和警告，分别用于下一个和上一个问题。

## 查找和替换

1.  按`Escape`确保您处于`normal mode` ;
2.  输入`:`您将切换到`command mode` ）;
3.  输入`%s,word_to_be_replaced,new_word,g` ;
4.  按`ENTER` 。

重要提示：如果要替换单词的第一个出现，请删除末尾的`g` 。

## 我想学习Vim！

对于初学者来说，Vim附带内置教程！您可以通过从终端运行`vimtutor`来访问它，这将启动一个关于_如何开始使用Vim_的交互式教程（大约需要15分钟才能完成）。

如果你不为自信的英语，你可以lanch `vimtutor`在您所选择的语言。例如`vimtutor fr`将用法语启动教程！

## 其他有用的命令

*   `gg=G`修复了整个文件的缩进
*   如果要了解有关特定命令的更多信息，请键入`:help`后跟命令名称（ex-：help：w）

阅读其余的Vim指南，以便更好地理解这个强大的编辑器。

## 其他资源

*   [Vim高尔夫](https://vimgolf.com/) - 从vim挑战中学习以获得最低击键次数的好方法。如果您无法解决挑战，您可以看到其他人提交的解决方案。
*   [Vim Adventures](https://vim-adventures.com/) - 一种有趣和游戏化的方法来学习Vim，你可以在游戏中的每个新关卡中获得不同的击键。
*   [Open Vim](http://www.openvim.com/) - 一个教授基本命令的交互式vim教程