148 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			148 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | 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教程 |