整理常用的 vim 命令

整理常用的 vim 命令vim 是一款功能强大的文本编辑器 它是 Linux 下常用的编辑器之一 对于熟练掌握了 vim 的人来说 用它编辑文件 方便又快捷 能极大的提高工作效率 vim 功能强大 对应的命令也非常的多 对于初学者来说 看到这么多的命令容易打退堂鼓 想当

大家好,欢迎来到IT知识分享网。

整理常用的 vim 命令

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

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

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

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

vim 的模式

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

  • 正常模式

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

  • 插入模式

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

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

  • 命令模式

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

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

  • 可视模式

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

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

常用命令

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

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

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

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

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

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

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

  • 复制、粘贴、剪切
yy 或 Y #复制光标所在行 n yy 或 n Y #从光标行向下复制 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 或 shift p #大写的字母p, 再当前光标前粘贴 

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

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

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

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

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

  • 撤销、重做
u #撤销 ctrl r #重做 

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

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

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

  • 查找、替换
/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 命令

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

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

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

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

  • 批量处理

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

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

v #字符可视模式,以字符为单位选择 V 或 shift v #行可视模式,以行为单位选择 ctrl v #块可视模式,以块为单位选择 
整理常用的 vim 命令

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

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

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

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

小结

本文介绍了vim的一些常见用法,掌握这些常见用法足够满足工作的需要了,关于vim的命令非常多,远远不止本文介绍的内容,更多的用法请参考vim文档

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/164633.html

(0)
上一篇 2024-12-26 11:15
下一篇 2024-12-26 11:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信