vim保存退出命令vim命令大全图解vim 退出命令(保存、放弃保存




vim保存退出命令vim命令大全图解vim 退出命令(保存、放弃保存

2022-07-21 2:19:52 网络知识 官方管理员


vim是一款功能强大的文本编辑器,它是Linux下常用的编辑器之一,对于熟练掌握了vim的人来说,用它编辑文件,方便又快捷,能极大的提高工作效率

vim功能强大,对应的命令也非常的多,对于初学者来说,看到这么多的命令容易打退堂鼓,想当初,自己刚接触vim的时候,由于不熟悉vim,每一个命令都要上网查阅,真的是举步维艰

其实,工作中常用的vim命令也就那么些,只需学习这些常用的命令,勤加练习,假以时日定能熟练的掌握它们,进而就能解决大部分的编辑问题

本文结合我自己工作中使用vim的经验,整理了一些常用的vim命令

vim的模式

进入vim之后,会有多种不同的模式,模式之间的切换,让你只需要通过键盘,就能完成文本的编辑,这也是vim存在多种模式的原因,vim主要有以下几个模式

  • 正常模式

刚进入vim界面的时候是正常模式,复制、粘贴操作都是在这个模式下进行的

  • 插入模式

文本内容输入,修改是在这个模式下进行的

可以按i或者I进入到插入模式,在插入模式下,按esc会返回到正常模式

  • 命令模式

输入或者修改完之后,需要保存退出,这个时候vim就会进入到命令模式

按esc+:进入命令模式,再次按esc返回正常模式

  • 可视模式

可视模式是对文件进行大量重复操作的时候,可以一次性执行完成的功能

可通过v、V、ctrlv进入可视模式

常用命令

  • 打开、保存、另存为、退出
vimfile#打开文件vim#打开临时文件,保存的时候需要制定文件名:w#保存:wfile#另存为:q#退出:wq#保存并退出:x#保存并退出ZZ或shiftzz#保存并退出:q!#不保存退出,会丢失数据

例如:vima.txt命令打开a.txt文件,假如a.txt存在的话,打开已有的,不存在的话,则会打开一个新的文件

k、j#光标向上、向下移动一行h、l#光标向左、向右移动一个位置,l是字母L的小写^#光标移动到当前行首$#光标移动到当前行尾w#光标向前移动一个单词b#光标向后移动一个单词gg#光标移动到文件开头G或shiftg#光标移动到文件末尾nG#光标移动到指定行号的行首,n表示行号ctrlf#向下翻一页ctrlb#向上翻一页

分别按kjhl能实现光标上下左右移动,键盘上下左右箭头的按键也表示方向键,它跟kjhl有什么区别呢

如果是图形界面和远程终端都可以使用,如果是字符终端的时候,键盘上下左右箭头的按键有时会出现乱码,所以最好统一使用kjhl

  • 插入
i#光标前插入I#当前行首插入o#当前行后面插入一行,光标移动到插入行的行首,o是字母,不是数字0O#当前行前面插入一行,光标移动到插入行的行首,O是字母,不是数字0a#当前光标后插入A#当前行尾插入

小技巧:当前处于正常模式,输入数字10,按i进入插入模式,接着输入字母#,最后按esc键,此时,在光标所在行会出现10个#字符,相当于插入了10个#,当你想在文本中插入一行字符作为分割线的时候,就能应用到这个小技巧

  • 复制、粘贴、剪切
yy或Y#复制光标所在行nyy或nY#从光标行向下复制n行y$#复制从光标位置到行尾y^#复制从光标位置到行首yw#复制一个单词ynw#复制n个单词,n为单词个数yl#复制光标位置的一个字符,l是字母L的小写形式ynl#从光标位置向右边复制n个字符,光标位置也算一个字符yh#复制光标位置左边的一个字符,光标位置不计算在内ynh#从光标左边位置向左边复制n个字符,光标位置不计算在内dd#剪切(删除)光标所在行ndd#从光标行向下剪切(删除)n行d$或者D#从光标位置剪切(删除)到行尾d^#从光标前一个位置剪切(删除)到行首dl#剪切(删除)光标位置的字符dnl#从光标位置向行尾方向剪切(删除)n个字符dh#剪切(删除)光标坐标位置的一个字符dnh#从光标左边位置向行首方向剪切(删除)n个字符dw#剪切(删除)光标位置的一个单词dnw#从光标位置向行尾方向,剪切(删除)n个单词,光标位置的单词也算在内p#在当前光标后粘贴P或shiftp#大写的字母p,再当前光标前粘贴

如果是复制一行内容,再按小写字母p则是在当前光标下一行进行粘贴,而不是在当前光标后面粘贴,同样的,如果是按大写字母P则是在当前光标上一行粘贴

如果一个单词比较长,通过dw剪切一个单词时,剪切的是光标位置到光标位置单词的结尾字符串

比如,现有一个字符串9ssxphu7898%mn,假如光标位于字符h位置,按dw,此时剪切的字符串是hu7898%mn

  • 删除、替换字符
x#每次删除光标处的字符,删除之后,光标后面的字符串向光标方向移动一个位置X#每次删除光标前面一个字符,删除之后,光标以及后面的字符串会向行首方向移动一个位置r#替换光标位置的一个字符

替换字符的方法:光标移动到准备替换的字符位置,按r键,然后按替换之后的字符键,光标位置的字符就被目标字符替换了

  • 撤销、重做
u#撤销ctrlr#重做

在多行操作的时候,有时候会出现误操作,这时候可以按u键撤销误操作

可以多次进行撤销,当你每按一次u键的时候,之前做过的操作就会被撤销一次

如果发现撤销的时候进行了错误的撤销操作,希望把刚才做过的事情重做一次,可以按ctrlr键进行重做

  • 查找、替换
/string#查找指定字符串,按n向后查找下一个,按N向前查找下一个/string\c#查找指定字符串,不区分大小写,按n向后查找下一个,按N向前查找下一个/string\C#查找指定字符串,区分大小写,按n向后查找下一个,按N向前查找下一个:s/old/new#用new字符串替换当前行中第一次匹配达到的old字符串:s/old/new/g#用new字符串替换当前行中所有的old字符串:n,ms/old/new#第n行到第m行之间,用new字符串替换每一行中第一次匹配到的old字符串:n,m/s/old/new/g#第n行到第m行之间,用new字符串替换每一行中所有匹配到的old字符串:%s/old/new/g#用new字符串替换文件中所有匹配到的old字符串

如果想要像windows上记事本查找替换一样,每次替换之前有是否替换的确认,只需要在替换命令后面加一个c字符

vim保存退出命令(vim命令大全图解)(1)

上面的例子中,:%s/we/WE/gc命令是把文件中所有的we字符串全部替换成WE字符串,每次替换之前人工确认,如果把命令中的c字符去掉,就是自动全部替换功能了

  • 执行外部命令
:!cmd#执行cmd命令:r!cmd#执行cmd命令,把命令的结果插入光标后面一行

vim保存退出命令(vim命令大全图解)(2)

上面例子中,输入:!date是在vim中执行date命令,命令结果会显示在下面,再次按ENTER键回到了vim

当输入:r!date时,```date``命令的结果插入到光标后面一行

  • 批量处理

在可视模式下可以对文件进行批量的操作,比如:批量选中,批量修改

我们平常用的比较多的批量操作是块可视模式

v#字符可视模式,以字符为单位选择V或shiftv#行可视模式,以行为单位选择ctrlv#块可视模式,以块为单位选择

vim保存退出命令(vim命令大全图解)(3)

上面例子中,在vim中按ctrlv进入块可视模式,在屏幕的左下角有显示--可视块--字样

接着通过jkhl选中了第6行到第9行中,每一行的前三列这一块字符串

然后按shifti切换到插入模式,把前三列字符串修改为123,修改的时候只有第6行显示修改过,修改完之后连续按两次esc键,前三列就全部变成了123

紧接着,再次按ctrlv进入快可视模式,选中第6行到第9行前两列,然后按d键,就把前两列删除了

小结

本文介绍了vim的一些常见用法,掌握这些常见用法足够满足工作的需要了,。

发表评论:

最近发表
网站分类
标签列表