说明
Vim是Mac随附的免费且功能强大的文本编辑器。在本教程中,我将向您展示此文本编辑器的基础知识。
Pycharm 开启vim编辑器后,tab功能不起作用,其实是用>
来缩进。
打开文件
您可以像任何命令行编辑器一样在Vim中打开文件。
如果要编辑的文件是life.md,请在“终端”窗口中键入:
vim life.md
Vim将在该终端中打开并加载该文件。Vim是终端程序,而不是图形系统程序。
Vim模式的基础
Vim有四种模式:Normal,Insert,Visual和Command。每种模式都在程序状态栏的左下方显示其名称。
当您启动Vim时,它处于正常模式。您可以使用所有命令键来浏览文件并开始编辑。当您退出任何其他模式时,Vim会返回到普通模式。
Vim使用a,A,i,I,o和O命令处于插入模式。进入插入模式后,编辑器将保持该模式,直到您按Esc键。每按一次其他键将直接插入文件中当前光标所在的位置。
当您在正常模式下使用v,V和Ctrl-v命令时,就会出现可视模式。在可视模式下,您可以选择文本。当您使用导航命令时,从可视模式的开始到退出可视模式的区域是选定的文本。
在正常模式下,只要使用:命令,就会进入命令模式。在命令模式下,您可以执行复杂的编辑功能,文件操作或外壳程序操作。命令模式是唯一一种在状态行上不显示任何内容的模式,但是输入的命令将放置在状态行下,并键入任何其他内容和光标。
保存文件并关闭Vim
在正常模式下,您可以键入ZZ保存所有内容并退出。您也可以使用:w!保存文件。。的:将你置于命令模式中,w ^将写入文件,以及!强制操作写没有问题。或者,您可以键入:wq或:wq!。该q退出编辑器。您也可以使用:q!退出而不保存。
基本光标运动
在普通模式下,您可以在文件中四处移动并对文件进行特定的编辑。该^ h键将光标移动到左边。该升键将光标移动到右侧。所述Ĵ键将光标向下移动一行,而ķ键将光标上移一行。要移至下一个单词,请使用w命令。上一个单词命令是b。
如果要一次移动多个空格,单词或行,请先键入数字,然后再输入方向键。光标将沿该方向移动该次数。例如,如果键入10j,光标将向下移动10行。
通过使用命令模式,您可以将行号切换为绝对或相对:
- 绝对编号模式是正常的:每行按顺序具有唯一编号。
- 相对编号模式显示当前编辑行以外的行数。
要使用绝对行编号,可以使用:set number命令。要不显示行号,请使用:set nonumber命令。
要设置相对编号,请输入:set relativenumber。要将其放回绝对编号,请输入:set norelativenumber。
通过使用:set number和:set relativenumber设置两种模式,Vim将显示当前行以外的所有行的相对编号。当前的编辑行将显示其绝对编号。
通过使用相对编号模式,您可以使用j或k命令快速查看要移动的行数。例如,要移至List所在的行,请按2j。
要移至行首,请使用0(即零)命令。要移至行尾,请使用$命令。的GG命令将所述光标移动到文件的开头,而ģ命令将移动到文件的末尾。
.vimrc文件
您可能希望始终使用相对行号,但是在启动Vim时总是很难设置它。这就是Vim配置文件有用的地方。在主目录的终端中,键入
vim .vimrc
该的.vimrc文件Vim的配置文件。您在命令模式下键入的任何命令都可以添加到该文件中。每次启动Vim都会运行它。在该文件中,使用i命令开始插入文本。现在添加这些行并保存:
set number
set relativenumber
set hlsearch
现在,每次打开Vim时,将设置混合的绝对行和相对行编号模式,同时突出显示所有搜索结果。突出显示的搜索在下一部分中很有用。您可以对.vimrc文件做更多的事情,但这必须等待另一个教程。
搜索和替换
您可以在普通模式下使用/命令进行搜索。通过输入/ This,您将看到所有突出显示的This单词,如下所示。
通过输入n,光标将移动到下一个搜索模式。通过使用N,您可以返回上一个出现的位置。/之后给出的模式可以是任何正则表达式。阅读文章高级搜索和用正则表达式替换以更好地了解正则表达式。
为了替换文本,您必须使用命令模式。在命令模式下,s命令用于在当前行中进行替换,%s用于在整个文件中进行替换,而, s用于从行号替换为行号。
格式为/ <搜索模式> / <替换模式> / gi,其中<搜索模式>和<替换模式>是标准正则表达式。在上面的示例中,我用That替换了This的所有存在。在我的后摹使得搜索不区分大小写。一个我将让搜索区分大小写。该摹使得替换该行全球。如果没有g,则每行执行一次替换。
编辑命令
要在当前光标位置的左侧插入文本,请使用i命令。的一个命令插入到当前光标位置的右侧。在我命令插入到该行的前面,而甲插入到行的结尾。
该Ø命令行光标在期权和看跌期权编辑成之后插入一个全新的行插入该行的开头模式。所述Ô不相同,但增加了在当前光标位置上方的行。
要删除字符,请使用d命令,然后使用方向删除该方向的字符,或使用空格键删除光标下方的字符。如果以数字为前缀,则Vim会沿指定方向删除该数字字符。该DD命令将删除当前行。的d命令将删除一切从当前光标位置到行的结尾。
该X命令将删除光标字符。的X命令光标之前删除。无论是X和X命令将采取一些前缀来执行该动作的次数。
复制,剪切和粘贴
在正常模式下按v时,视觉模式开始。所有光标移动都会导致从可视模式的开始进行选择。选择后,使用y命令来拉动或复制所选文本。移至新位置并使用p命令将其粘贴在光标之后,而P命令将其粘贴在光标之前。
选择后,x命令将删除选择。使用d命令将剪切该部分,以便您可以使用p命令进行粘贴。
为了选择文本块,请从 -v命令开始。的V命令启动的视觉由线和不是字符模式选择。
全选 select all - ggVGy(注意VG中间的大写)
TLDR:如果要将 Vim 中的文本复制到系统剪贴板,请键入ggVG"*y. 下面解释…
Vim 在终端中运行,并且取决于您如何使用它以及您正在运行的 Vim 类型,它并不是真正为您设计的用鼠标选择文本并以传统方式复制和粘贴。
如果要使用 Vim 选择所有文本,请使用ggVGy(注意VG中间的大写)。此命令将光标移动到文件顶部,进入可视模式,移动到文件底部(因此,选择所有文本),然后猛拉(复制)它。然后您可以使用p放置(粘贴)此代码,但仅限于 Vim 内部。
如果你想复制到剪贴板以在 Vim 之外的某个地方使用,那么试试这个:
首先,使用上面列出的命令选择所有内容,但没有最后的 y:( ggVG)。然后按"*y。这应该现在把它复制到操作系统的剪贴板中,你可以粘贴(Ctrl/ Cmd+ v)任何你想要外面的Vim。这取决于您对 Vim 的设置,但它应该可以工作。
所用命令的简要说明。gg转到文件的顶部。V按行进入可视模式。G转到文件末尾。y猛拉(复制)文本但不复制到剪贴板。p放置(粘贴)文本。
更高级(即酷)的东西:
"允许您访问寄存器。例如"a提供访问注册一个。
这*是系统剪贴板,因此"*提供对系统键盘的访问。因此,"*y猛拉到系统剪贴板。
实践使完美
现在,您已经知道Vim中使用的基本命令,您需要练习。Vim Adventure是练习Vim命令的好方法。这是一款冒险游戏,可让您练习各种Vim命令以探索冒险世界。
参考
https://computers.tutsplus.com/tutorials/vim-for-beginners–cms-21118
https://stackoverflow.com/questions/30838436/how-to-copy-all-the-text-from-vim-editor-using-vim-command-line