最近在学习C语言,顺便把vim当做编辑器使用,熟悉一些常用的操作和命令。要打开或创建新文件,请在命令提示符后输入:vim文件名。如果文件filename存在,vim将打开它。如果不存在,vim将创建一个新的filename文件。vim的三种模式通用模式当我们直接用vim打开一个文件什么都不做的时候,我们就进入了通用模式。在普通模式下可以对内容进行复制、删除、粘贴等操作,在文件编辑模式下可以快速跳转到不同行不同列当按A、a、I、i其中一个键时,O,o,R,r进入编辑模式,这时候就可以愉快的输入内容了。命令模式当您输入三个字符之一时/:?在普通模式下,会进入命令模式,可以进行一些搜索查询、替换、读入文件内容、保存文件内容、显示行号、执行命令行命令和保存文件、退出vim等操作。这三种模式之间的切换规则如下:用户只能从通用模式切换到编辑模式,或者从通用模式切换到命令模式,不能直接从编辑模式切换到命令模式。如果要从编辑模式切换到命令模式,只能按Esc键退出编辑模式,再按?/:这三个键进入命令模式。懒得画了,就偷了鸟哥的图。一般模式下常用的操作光标移动是比较常用的按钮hjkl或←↓↑→这四个按钮可以对光标进行左右移动。、向上和向右。h对应←,j对应↓,k对应↑,l对应→。而hjkl的四个键在键盘上是从左到右依次排列的。nj或nk表示从当前光标所在行向下或向上移动n行,同理nh或nl表示将光标向左或向右移动n个字符。n——表示将光标向下移动n行。0或home键表示将光标移至行首,$或end键表示将光标移至行尾n—n加空格表示将光标右移n个字符。H——表示光标移动到当前屏幕顶部的行首。注意是当前屏幕显示内容的第一行,不是文档的第一行。M——表示将光标移动到当前屏幕最中间行的行首。L——表示光标移动到当前屏幕底部的行首。nG——表示光标移动到当前文档的第n行。1G——表示光标移动到当前文档的第一行。G——将光标??移动到当前文档的最后一行。gg-还将光标移动到当前文档的第一行。ctrl+f(或PageDown)——屏幕向下移动一页ctrl+b(或PageUp)——屏幕向上移动一页delete,copyandpastedeletex,x-x表示向后删除文本,从当前光标开始的文本开始向后删除一个字符,连续键将向后连续删除。X正好相反,是向前删除一个文本。nx,nX表示从当前光标所在的字符开始向前或向后删除n个字符。dd——删除光标所在的当前行ndd——从光标所在的行开始删除n行(包括光标所在的行)d1G——删除光标所在的行之间的所有行dG——删除光标所在行到最后一行的所有行(同上)d0——删除该字符的所有字符wherecursoristothefirstcharacterd$——删除光标所在的字符到行尾Copyallcharactersbetween(和delete很相似,只是把d换成y)yy——复制where的行光标所在行nyy——从光标所在行开始复制n行(包括光标所在行)y1G——复制光标所在行到第一行(包括光标所在行)之间的所有行cursorisandfirstline)yG——复制光标所在行和最后一行之间的所有行(包括光标所在行和最后一行)y0——复制光标所在字符之间的所有字符andthefirstcharacteroftheliney$——复制光标所在字符到行尾字符之间的所有字符Pastep(小写)——将复制的数据粘贴到所在行的下一行光标为P(大写)-将复制的数据粘贴到光标所在行的上一行其他操作u-撤销上一个动作ctrl+r-重做上一个动作命令模式下的常用操作搜索替换/-在在普通模式下,按/键进入搜索模式,/word会从当前光标位置向后搜索关键词word?——在普通模式下,按?键进入搜索模式,?Word将从当前光标位置向前搜索关键字word。注意这里的正向搜索和后向搜索与n和N有很大的关系。当搜索关键词时,文档中所有匹配的关键词都会被高亮显示,不管你是向前搜索还是向后搜索。搜索完某个关键词后,按n继续之前的搜索动作,即如果是向后搜索(/),则按n继续向后搜索,光标会向后移动到该关键词。继续按则继续走,按N则向反方向搜索,即继续向前搜索,光标向前移动到达关键字。同样,向前搜索时,按n继续向前搜索,按N向后搜索。n和N用于在所有搜索的关键字之间移动光标。搜索时,所有匹配的关键词都会高亮显示。当您退出搜索模式或再次打开文件时,它仍会突出显示。我们可以通过`:nohlsearch`或`:setnohlsearch`主动关闭高亮来关闭高亮,但是它们之间有一些细微的区别,`:nohlsearch`会关闭这个高亮,下次搜索时,会继续突出显示关键字。而`:setnohlsearch`会彻底关闭高亮,以后再搜索时就没有高亮了。在这种情况下,您可以使用`:sethlsearch`来恢复突出显示。:n1,n2s/word1/word2/g——这是一个字符串替换命令,n1代表起始行号,n2代表结束行号,word1是要替换的关键字,word2是替换word的关键字,g表示全局替换,即将n1daon2之间匹配的所有word1替换为word2。这条指令的意思是在n1-n2行之间查找word1,并替换为word2。:1,$s/word1/word2/g-此命令从第一行搜索并替换到最后一行。$表示最后一行。:n1,n2s/word1/word2/gc——在末尾加c,可以让你在替换之前判断是否替换每个Word1,防止误删。没有g,只有第一个匹配的关键字被替换。读写文件并保存退出:w——保存当前写入的内容:w!——当文件为只读文件时,强制写入。能不能写取决于用户的权限:q——退出vim:q!-强制退出。如果文件被修改,不保存直接退出。wq——保存并退出ZZ——如果文件有修改,则保存退出,如果文件没有修改,则直接退出。wnewFileName——将文件保存为n1,n2wnewFileName——将文件n1-n2行之间的内容保存为新文件rnewFileName——读取文件newFilename的内容并将其添加到当前文件所在的行光标在后面!command——即在不退出vim的情况下执行Linux命令,命令输出内容下方会有提示,按回车或其他键返回vim界面。setnu——显示行号setnonu——不显示行号vim的临时文件.filename.swp当你使用vim创建文件或编辑文件时,系统会自动创建一个隐藏文件,.filename.swp(还有称为交换文件或临时文件),如果你正常退出vim,该文件将被自动删除。如果没有正常退出,正在进行的工作没有保存,文件将被保留,用于文件恢复。这个文件会保存用户对文件内容的操作,方便用户恢复。当文件没有正常保存时,再次打开会弹出如下画面:单独说一下:文字界面显示英文,我的系统语言是中文,以上图片在图片界面。是在终端截取的,所以用中文显示,下面统一用英文,意思是一样的。[O]penread-only:以只读模式打开,一般用于只想看文件内容而不想编辑的情况。这种情况对应的就是上图那个人在编辑文件,当你打开文件的时候会弹出这六个可选操作,此时你可以选择只读。[E]ditanyway:以普通模式打开文件进行编辑,这样就不会加载swp文件的内容。这样一来,两个人同时改文件,有些操作可能会保存不下来。[R]ecover:加载临时文件并恢复当前文件。文件恢复后,临时文件不会自动删除,需要用户手动删除,否则下次打开文件时仍会弹出这六个操作的界面。也可以选择【D】删除,在下次打开临时文件时将其删除。[D]elete:删除临时文件。如果您确定不需要该临时文件的内容,您可以选择该操作将其删除。[Q]uit:直接退出vim。[A]bort:与[Q]uit类似,也是退出vim。当文件多次编辑时异常关闭,会产生多个临时文件(如果你没有删除临时文件的话)。较新的文件仍以.swp结尾,下一个级别以.swo结尾,下一个级别以.swn结尾,依此类推。即文件后缀的最后一个字母按字母顺序出现,字母越小的临时文件越新,最新的是以p结尾的.swp文件。Vim高级操作块选择块选择也是普通模式下的操作。具体操作如下图:小写v,以字符为单位选择,可以使用上下左右键移动光标选择不同的形状和大小,起始位置和起始位置之间的所有字符光标的结束位置被选中。大写的V用于选择行的单位。默认选择当前行。您可以使用上下键移动光标来选择多行。选中的行将生成光标起始位置和光标结束位置之间的所有行。ctrl+v:选中光标起始位置和结束光标位置之间的矩形框。如果初始光标和结束光标不在同一列,则两个光标位置将位于矩形框的对角。将它们作为整个对角线矩形都选中了。如果起始光标和结束光标在同一列,则在两个光标之间的所有行上选择光标所在列的字符。效果如下:选中文本后,可以进行如下操作:小写y:复制选中的文本,复制后vim会自动回到普通模式。小写d:删除选中的文字,删除后自动返回普通模式。小写p:其实就是普通模式下的粘贴操作,必须在普通模式下进行。将复制的内容粘贴到光标所在行下方。顺便复习一下大P,就是把复制的内容粘贴到光标所在行的上方。多文件编辑就是vim中的多个文件名后面,可以同时打开多个文件。这将进入多文件编辑。多文件编辑常用键如下:*:files:显示当前打开的文件列表:n:切换到下一个文件:N:切换到上一个文件。许多文本编辑器都具有多窗口功能。当文件太大无法来回查看时,您可以在多个窗口中打开一个文件。每个窗口显示你想看的部分,省去了来回拖拽移动页面的麻烦。或者如果你想同时查看或编辑多个文件,你也可以使用多窗口功能来代替点击选项卡来切换文件。在windows中的效果如下。以vscode为例:在vim中,你还可以在多个窗口中显示文件。使用:sp命令分割窗口。使用:spfileName命令会在新窗口中打开文件fileName,从而实现多文件多窗口。打开了多个窗口,那么如何在多个窗口之间切换呢?常用命令如下:添加:ctrl+w+q离开当前光标所在的文件,即离开当前正在编辑的文件。此命令等同于:q。当您在命令行中直接输入:q以离开当前正在编辑的文件。补全功能许多编辑器都有命令补全功能。当你输入相应的关键字时,会关联出一个命令列表供读者选择,可以大大提高编码人员的编码效率。vim中也有相关的函数。根据文件扩展名完成相关命令。即vim会根据文件扩展名判断文件使用的语法,从而提示用户输入相应的关键字或命令。这个功能在可视化编辑器中很常见,就是会展示一个关键字列表供用户选择。使用的键位是ctrl+x->ctrl+o,即先按ctrl+x,再按ctrl+o调出关键字列表。我们以a.css文件为例:出现命令列表后,可以使用上下键选择命令,最后回车输入命令。根据文件内容完成相关命令。即如果在一个文件中多次输入同一个关键字,再次输入时,只需输入关键字的首字母,然后使用快捷键ctrl+x->ctrl+n补全关键字即可,无需Gone重复打字的痛苦。使用当前文件所在目录下的文件名作为关键字补全。按下快捷键ctrl+x->ctrl+f,会以当前文件所在目录的文件名作为关键字补全,对于一些文件操作更方便。第二张图片的描述是错误的。它应该是ctrl+x->ctrl+f而不是ctrl+x->ctrl+xvim。以上说明只是临时设置。如果想长期生效,可以创建自己的配置文件。vim的配置文件有两个,一个是系统配置文件/etc/vimrc,一个是用户自己的配置文件,放在home目录下,即~/.vimrc文件。默认情况下该文件不存在。请手动创建。配置文件语法示例如下:顺便说一下,vim中的用户操作记录在文件~/.viminfo中。至此,vim的常用功能介绍完毕。如果文章中有错误,希望大家多多指教。感谢您阅读。