文件编辑 VIM /VI

  • vi和vim是Linux下的一个文本编辑工具。(可以理解为windows的记事本,或word文档)
  • VI/VIM
    • vim是增强的vi,通过yum install -y vim 安装
    • 区别
      • 1)vim有语法高亮
      • 2)vim有扩展功能
  • 为什么要用vi
    • 1)我们在工作接触的配置文件都是文本文件
    • 2)Linux最好用的字符文本编辑器是vi,也是默认就安装好的
    • 3) Linux系统一切皆为文件 vim是学习Linux最重要的命令之一
  • vi的特点
    • 1)纯键盘操作,效率高
    • 2)三种工作模式
  • vi的三种工作模式的名称及切换方式
    • 1)命令模式,默认模式,只能通过相应的指令来实现功能 (控制光标的移动,对文本进行复制、粘贴
    • 删除等操作)
    • 2)输入模式,insert模式,可以往文件中输入字符 (对文本内容编辑和修改)
    • 3)末行模式,:进入末行模式,通过相应的指令实现功能
  • 命令模式——>(aio)输入模式
  • <—— (ESC)
  • 命令模式 ——>(:) 末行模式
  • <——(ESC)
  • 练习命令模式进入输入模式的方式
    •  
      • a 光标后输入
      • i 光标前输入
      • o 光标所在行往下新建行输入
      • A 光标所在行尾输入
      • I 光标所在行首输入
      • O 光标所在行往上新建行输入
  • 复制 /etc/passwd/tmp 文件 然后编辑vim /tmp/passwd
  • cp /etc/passwd /tmp/
  • vim /tmp/passwd
  • 一个文本内容的操作
  • 1.光标的移动
  • 命令模式
    • 上下左右方向键 h左j下k上l右
    • 行内光标跳转
      • home或^ 行首
      • end或$ 行尾
      • w 跳转至下一个单词词首
    • 行间光标跳转
      • gg 首行
      • G 末行
      • ngg 跳转到第n行
  • 末行模式
    • 行间光标跳转
      • :n 跳转到第n行
      • :% 末行
  • 2.复制
  • 命令模式
    •  
      • yw 复制光标到单词词尾
    • yy 复制光标所在行
    • nyy 从光标所在行开始往下复制n行
  • 末行模式
    • :ny 复制第n行
    • :m,ny 复制第m到第n行
    • :%y 复制全文
  • 3.粘贴
  • 命令模式
    • p 在光标后粘贴
    • P 在光标前粘贴
  • 4.删除
  • 命令模式
    • x 删除光标所在字符
      • dw 删除光标到单词词尾
    • dd 删除光标所在行
    • ndd 从光标所在行开始往下删除n行
  • 末行模式
    • :nd 删除第n行
    • :m,nd 删除第m到第n行
    • :%d 删除全文
  • 5.剪切
    • 先删除
    • 再粘贴
  • 6.查找
  • 命令模式
    •  
      • /str 从上至下
    • ?str 从下至上
    • n 下一个,从上往下查
    • N 下一个,从下往上查
  • 7.替换
  • 命令模式
    • r 替换光标所在单个字符
      • R 进入替换模式,将输入的所有字符替换当前字符,ESC退出
  • 末行模式
    • :s/old/new/ 将光标所在行的第一个old替换成new
    • :s/old/new/g 将光标所在行所有的old替换成new
    • :ns/old/new/g
    • :m,ns/old/new/g
    • :%s/old/new/
  • 练习案例:
  • 将/etc/passwd里的所有的'/sbin'替换成cloud
  • 方法一:使用转义符
  • %s/\/sbin/cloud/g
  • 如果需要替换的是/sbin/nologin 替换成/bin/bash
  • %s/\/sbin\/nologin/\/bin\/bash/g
  • 方法二:换一种方法
  • %s#/sbin#cloud#g
  • 类似的还有@#$%等都可以成为分隔符
  • 8.撤销
  • 命令模式
    • u 撤销一步
    • U 撤销所有
  • 9.保存
  • 末行模式
    •  
      •  
        •  
          •  
            • :w 保存,前提示该文件有名字
          • :w 文件路径 另存至文件路径
  • 需求:
  • 新建一个文件hello.txt,内容为 "hello world",将该文件另存至/opt/test.txt
  • 方法一:
  • echo "hello world" >hello.txt
  • cp hello.txt /opt/test.txt
  • 方法二:
  • vi hello.txt
  • hello world
  • :w
  • :w /opt/test.txt
  • 10.退出
  • 末行模式
    •  
      •  
        •  
          • :q 正常退出,未修改该文件
        • :q! 强制退出,不保存修改
    • :x 保存退出
      •  
        • :wq 保存退出
    • :wq! 强制保存退出
    • 用户对该文件没有写权限,但是对该文件所属目录有写权限
  • 命令模式
    • ZZ 保存退出
  • 11.扩展
  • 1)设置变量
  • :set nu #显示行号
  • :set ic #忽略大小写, 在搜索的时候有用
  • :set ai #自动缩进
  • :set list #显示制表符(空行、tab键)
  • :set no[nu|ic|ai…] #取消临时设定的变量
  • 可以通过~/.vimrc来编写vim的个性化模板
  • 2)调用系统命令
  • :!cmd
  • 案例:在vi里查看当前路径
  • :!pwd
  • 案例:在vi里获取当前主机的主机名,并写入当前文件中第n+1行
  • :nr !hostname
  • 3)视图模式
  • 行视图
    • shift+v
    • 选中光标行,在通过行跳转指令,选中需要编辑的行,执行复制、删除、剪切操作
  • 块视图
    • ctrl+v
    • 修改块信息,比如批量缩进、注释
  • 案例1:
  • 将文件的第1-10行,批量注释
  • 方法一:块视图
  • 1.光标移动到1行
  • 2.ctrl+v
  • 3.10gg或用方向下键移动到10行
  • 4.shift+i
  • 5.输入#
  • 6.两次ESC
  • 方法二:用替换来实现
  • :1,10s/^/#/g
  • 案例2:将1-5行的注销符号#删除
  • 方法一:块视图
  • 1.光标移动到1行
  • 2.ctrl+v
  • 3.选中#,5gg或用方向下键移动到5行
  • 4.d或x
  • 方法二:使用替换来实现
  • :1,5s/^#//g
  • sublime的块编辑
  • shift+鼠标右键

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值