Shell——vi(vim)编辑器三种模式下的常用命令

vi(vim) 编辑器

是Linux上最常用的编辑器,vim是vi的增强版。

vi 编辑器一般分为三种模式,一般模式、编辑模式 和 命令模式。不同模式下可以进行不同的操作。

一般模式

一般模式下,可进行光标位置的移动,删除字符 以及 复制 字符等。

光标移动快捷键

操作快捷键说明
向下移动光标↓(向下方向键)、j键 或 space(空格)每按一次光标向下移动一行
向上移动光标↑(向上方向键)、k键 或 backspace每按一次光标向上移动一行
向左移动光标←(向上方向键)、h键每按一次光标向左移动一行
向右移动光标→(向上方向键)、k键 或 backspace每按一次光标向移动一行
移至下一行行首回车键每按一次光标移动到下一行行首
移至上一行行首-键每按一次光标移动到上一行行首
移至文件最后一行行首G键将光标移动到最后一行行首
移至文件第一行行首gg键将光标移动到第一行行首
移至文件指定行(n)行首ngg键 / nG / :n / vim +n filename (进入文件时)将光标移动到指定行行首

除了上述表中的光标移动的快捷键之外,还有部分快捷键是在命令模式下使用的→(后面细说)

文本操作快捷键

操作快捷键说明
右插入a在当前光标所处位置的右边插入文本
左插入i在当前光标所处位置的左边插入文本
行尾追加A在当前行的末尾追加文本
行首插入I在当前行的开始处插入文本
插入行O或oO键是在当前位置的上一行位置插入新行,o是在下一行
覆盖文本R覆盖当前光标所在位置以及后面的若干文本
合并行J将当前光标所在行与下面的一行合并为一行

在上述表中的快捷键中,除了J键,其他的快捷键都会让vi编译器从一般模式进入编辑模式。

进入编辑模式后 可以通过 Esc 键来退出编辑模式,再次进入一般模式

文本复制和粘贴快捷键

操作快捷键说明
复制行yy将当前行复制到缓冲区
复制多行nyy将当前行及以下的n行复制到缓冲区,其中n为一个整数。
复制单词yw复制从光标当前位置到当前单词词尾的字符
复制多个单词nyw从光标位置开始复制后面n个单词,n为一整数
复制光标到行首y^从光标当前位置开始,复制到行首
复制光标到行首y$从光标当前位置开始,复制到行尾
粘贴到光标后面的位置p将缓冲区中的字符串插入到当前光标的后面
粘贴到光标前面的位置P将缓冲区中的字符串插入到当前光标的前面

如果光标在单词中间,那么yw不能复制完整的单词。

删除文本快捷键

操作快捷键说明
删除当前字符x删除光标所在位置的字符
删除多个字符nx删除从光标所在位置开始,后面的n个字符
删除当前行dd删除光标所在位置的整行
删除多行ndd删除包含当前行在内的n行
撤销上一步操作u撤销刚刚执行的操作
撤销多个操作U撤销针对当前行的所有操作

多字符组成的快捷键,按的时候快一点

编辑模式

编辑模式下,和txt文本编辑器差不多

不能再用h、j、k、l,来移动光标了,也不能用x来删除了。他们就是他们自己。

命令模式

在命令模式下,用户主要完成文件的打开、保存、将光标跳转到某行,以及显示行号等操作。

在一般模式下, 按 “:” 之后,进入命令模式

常用的vi命令

操作快捷键说明
打开文件:e打开另外一个文件,将文件名作为参数
保存文件:w保存文件,即将文件的改动写入磁盘。如果将文件另存为其他文件名,则可以将新文件名作为参数
退出vi编辑器:q退出
直接退出编辑器q!不保存修改,直接退出vi编辑器
退出并保存:wq将文件保存后 再 退出vi 编辑器

感叹号 “ ! ” 在编辑器中表示跳过某些检查,强制执行某些操作。

例如:直接退出 :q! ,这样vi将不保存修改,直接退出,,类似的 还有 :e! ,也是不保存修改,直接跳到下一个文件。当然,:w! 也能强制修改 只读文件,可了不得!!!

常用的其他命令

操作快捷键说明
跳至指定行:n 、 :+n 或 : -n:n 表示跳到行号为n 的行,:+n 表示向下跳 n 行,:-n 表示向上跳n行
显示或隐藏行号:set nu 或 set nonu:set nu 表示在每行前面显示行号;set nonu 表示隐藏行号
替换字符串:s/old/new、:s/old/new/g (这个 “冒号” 应该是英文的,但是 :+s 会变成小表情 → 😒)、:n,m s/old/new/g 或 :%s/old/new/g:s/old/new 表示用字符串 new 替换 当前行中首次出现的字符串 old; :s/old/new/g 表示用字符串new 替换 当前行 所有的 old;:n,m s/old/new/g 表示用字符串new替换从 n 行到 m 行 所有的old;:%s/old/new/g 表示用字符串 new 替换当前文件中所有的字符串old
设置文件格式:set fileformat=linux将文件修改为 unix 格式,如win下面的文本文件在Linux下会出现^M。其中fileformat 可以取unix 或 dos 等值

到这,三个模式就大致说完了,,但。。
还有个 搜索 ,
搜索有点特殊,也比较常用,所以单独拿出来说,并且再介绍一种 非vi命令的 查找(grep)
搜索:Shell——文件内容的查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值