--- 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教程