文本编辑器--vi/vim

文本编辑器vi/vim

vi编辑器时Linux和Unix上最常用的文本编辑工具,能够对内容进行创建、查找、删除、替换、复制粘贴、块操作等文本操作,且用户可以根据自己的习惯需求对vi编辑器进行定制。

vim是vi的增强版,且功能强大,具有程序编辑能力,可以显示字体颜色方便辨别语法的正确性。

vi/vim的三种模式

命令模式
输入模式
末行模式

vim filename        #打开文件
vim +n filename     #打开文件时光标定位到第n行
vim +/pattern filename      #打开文件并定位到第一次被/pattern匹配到的内容行首

[root@zyq ~]# vi /etc/yum.repos.d/zzz.repo
...

命令模式

命令模式----->输入模式
命令在命令模式下转为输入模式
iinsert,在当前光标所在字符的前面,转为输入模式
I大写的i,在当前光标所在行的行首转换为输入模式
aappend,在当前光标所在字符的后面转换为输入模式
A在当前光标所在行的行尾转换为输入模式
oopen,在当前光标所在行的下方新建一行并转为输入模式
O大写的o,不是数字0,在当前光标所在行的上方新建一行并转换为输入模式

关闭文件方式

末行模式下关闭文件
命令意义
q!不保存退出
wq!强制保存并推出
x强制保存并退出
命令模式下关闭文件
  • ZZ

移动光标

移动方式指令效果
逐字符移动h l j k #h #l #j #k向左移动一个字符 向右移动一个字符 向下移动一个字符 向上移动一个字符 向左移动#个字符 向右移动#个字符 向下移动#个字符 向上移动#个字符
以单词为单位移动w e b #w #e #b移动到下一个单词的词首 跳至当前或下一个单词的词尾 跳至当前或上一个单词的词首 以当前光标为起点跳至第#个单词的词首 以当前光标为起点跳至第#个单词的词尾 以当前光标为起点跳至第#个单词的词首
行内跳转0 ^ $数字0,跳转到绝对行首 跳转到行首的第一个非空白字符 跳转到绝对行尾
行间跳转gg G #gg #G跳转到第一行 跳转到最后一行 跳转到第#行 跳转到第#行
翻屏ctrl+f ctrl+b向下翻一屏 向上翻一屏

字符编辑

编辑命令意义
x删除光标所在处的单个字符
#x删除光标所在处及其向后共#个字符
xp交换光标所在处的字符及其后面字符的位

删除命令

命令模式下d命令常与跳转命令组合使用
命令意义
d$表示删除当前光标所在位置到行尾的内容
d^表示删除当前光标所在位置到第一个行首非空白字符位置的内容
d0表示删除当前光标所在位置到绝对行首的内容
#d删除跳转符指定范围内的#个
dd删除当前光标所在行整行
#dd删除包括当前光标所在行在内的#行
D删除包括当前光标所在行在内的#行
末行模式下d命令的使用

语法::StartADD,EndADDd
这里的StartADD与EndADD是指一个范围,例如:

  • 1,5d:表示删除第1到第5行

    范围表示方法:
    表示方法意义
    .光标所在当前行
    $最后一行
    +#光标所在行往后#行
    $-#倒数第#行
    %全文
    复制命令:yy
    粘贴命令:p
    • p:小写p
      • 若删除或复制的为整行内容,则粘贴至光标所在行的下方
      • 若删除或复制的为非整行,则粘贴至光标所在字符的后面
    • P:大写p
      • 若删除或复制的为整行内容,则粘贴至光标所在行的上方
      • 若删除或复制的为非整行,则粘贴至光标所在字符的前面
    替换:r
    • R:替换模式,替换多个字符
    • r#:将当前光标的字符替换为#,这里的#可以是任何字符
    撤销编辑:u
    • u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作
    • #u:直接撤销此前的#次编辑操作
    • ctrl+r:还原最近一次的撤销操作
    重复前一次编辑操作:.
    可视化模式:

    可视化模式下可以对选取的内容进行前面讲的所有编辑操作

    • v:按字符选取内容
    • V:按矩形块(行)选取内容
    文本查找:
    • /pattern:从上往下查找匹配的内容
    • ?pattern:从下往上查找匹配的内容
    • n:从上往下查找匹配到的内容的下一条
    • N:从下往上查找匹配到的内容的下一条
    查找并替换:s

    s命令只能在末行模式下使用
    语法:ADDR1,ADDR2 s/pattern/string/gi

    • 1,5 s/abc/def/g:表示把第一行到第五行的所有abc替换为def
    末行模式下显示或取消显示行号
    • set nu:显示行号
    • set nonu:取消显示行号
  • 25
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值