欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux中vim使用的三种命令模式

程序员文章站 2022-08-09 17:08:09
Vim在Linux中是一个简单却又强大的文本编辑器,可以用来创建、编辑和查看一个文本。本文只是简单介绍下,更多用法还得个人多使用练习才行。 Vim通常分为三种模式:命令模式:刚打开Vim时就默认进入命令模式,此时所有的键盘敲击都会被识别为命令而不是字符输入,而编辑器则处于等待用户输入命令的状态。输入 ......

转自:https://www.cnblogs.com/guyuyun/p/12695295.html

vim在linux中是一个简单却又强大的文本编辑器,可以用来创建、编辑和查看一个文本。本文只是简单介绍下,更多用法还得个人多使用练习才行。


vim通常分为三种模式:
命令模式:刚打开vim时就默认进入命令模式,此时所有的键盘敲击都会被识别为命令而不是字符输入,而编辑器则处于等待用户输入命令的状态。
输入模式:即插入模式,通常使用此模式来编辑文本,当按下esc键时自动退出输入模式,并进入命令模式。
底线命令模式:在命令模式中输入冒号:就可以进入底线命令模式了,输入命令后回车即可执行对应的命令并退出底线命令模式,当按下esc键时也会自动退出底线命令模式,并进入命令模式。

 

命令模式中常用的命令有:

  • a/a:a表示在光标所在字符后插入,a表示在光标所在行尾插入,此时进入输入模式。
  • i/i:i表示在光标所在字符前插入,i表示在光标所在行首插入,此时进入输入模式。
  • o/o:o表示在光标所在行下插入新行,o表示在光标所在行上插入新行,此时进入输入模式。
  • gg:定位到第一行。
  • g:定位到最后一行。
  • [n]g:表示定位到第n行,如先按下数字88(并不会在屏幕上显示出来你的按键),再按下g就会跳转到第88行,效果同底线命令模式的命令“:88”。
  • $:光标移动至行尾。
  • 0:光标移动至行首。
  • x:删除光标所在处的字符。
  • [n]x:删除光标所在处后的n个字符。
  • dd:删除(剪切)光标所在行。
  • [n]dd:删除(剪切)光标所在行及之后的共n行。
  • dg:删除光标所在行到文件末尾的所有内容。
  • d:删除光标所在处到文件末尾。
  • yy:复制当前行。
  • [n]yy:复制当前行及以下n行。
  • p/p:粘贴在光标所在行的下面或上面。
  • r:替代光标所在处的字符。
  • r:进入替换状态,从光标所在处开始替换字符,按esc结束。
  • u:取消上一步操作。
  • /[string]:搜索指定的字符串,然后回车,按n可以查看下一个搜索结果。但默认是区分大小写的,想要不区分大小写,需要执行一个底线命令模式的命令“:set ic”,反之,又想区分大小写了,执行“:set noic”。
  • zz:快捷键,保存修改并退出。

 

底线命令模式中常用的命令有(省略了冒号:):

  • set nu:设置行号。
  • set nonu:取消行号。
  • [n]:定位到第n行,如“:50”表示定位到50行。
  • [n1],[n2]d:删除n1到n2行的所有内容。
  • set [ic/noic]:不区分大小写和区分大小写。
  • %s/[old]/[new]/[g/c]:在全文中将old字符串替换为指定的new字符串,g表示执行时不询问,c表示执行时询问。
  • [n1],[n2]s/[old]/[new]/[g/c]:在指定范围n1到n2行之间将old字符串替换为指定的new字符串,g表示执行时不询问,c表示执行时询问。
  • w:保存修改。
  • w newfilename:另存为指定文件。
  • wq:保存修改并退出。
  • q!:不保存修改并退出。
  • wq!:保存修改并退出(文件所有者和root可使用),当修改了权限为只读的文件时,只使用:wq是不能保存的,这时候可以使用:wq!强行保存修改。

 

vim更多技巧

最前面的冒号表示底线命令模式:

  • :r [filename]:将其他文件的内容从光标所在处导入到本文件中。
  • :![命令]:在不退出vim的情况下执行命令。
  • :r ![命令]:将一个命令的执行结果导入从光标所在处导入到本文件中。
  • :[n1],[n2]s/^/#/g:连续多行注释(即将所有行的行首都替换为#,^表示行首,其他语言的注释同理替换即可)。
  • :[n1],[n2]s/^#//g:取消多行的行首注释(即将所有行的行首的#替换为空字符,^表示行首,其他语言的注释同理替换即可)。