Vim vim选项详解

从头开始

添加参数进行跳转

图片描述

  • 我们首先ls -lah > oeasy.txt
  • 然后vi +4 oeasy.txt
    • 光标会出现在第4
    • 比如某位置有个关键参数
    • 可以这样直接跳到那一行
    • 执行之后
      • 退出vim,回到终端
  • 运行vi +/shiyanlou
    • 进入后
    • 光标在搜索到的第一个shiyanlou
    • 执行之后
      • 回到终端
  • 命令行参数除了能快速跳转
  • 还能干什么呢?

执行命令

  • 运行命令
    • vi +%s/shiyanlou/oeasy/g oeasy.txt
      • 先用vim打开文件oeasy.txt
      • 再运行命令:%s/shiyanlou/oeasy/g
      • 这用的是 +{command} 的形式
      • %s/shiyanlou/oeasy/g 就是 +{command}
    • vi +%s/shiyanlou/oeasy/g +%s/4.0K/o2z/g oeasy.txt
      • 先用vim打开文件oeasy.txt
      • 再运行命令:%s/shiyanlou/oeasy/g
      • 再运行命令:%s/4.0K/o2z/g
      • 这样就可以执行两条命令
  • 也可以运行命令 -c
    • vi -c %s/shiyanlou/oeasy/g oeasy.txt
    • 相当于vi +%s/shiyanlou/oeasy/g oeasy.txt
    • 这用的是 -c {command}的形式
  • 动手试试

管道传入

  • vi -可以接受到stdin传过来的数据
    • 我们可以使用管道|
    • ls -lah | vi -

图片描述

ex-mode

  • vi -e oeasy.txt可以用ex模式打开oeasy.txt
    • 也可直接ex oeasy.txt
  • 进入ex-mode之后,可以执行命令行,不用再打冒号
    • :1
    • :%p
    • :2,9d
    • :1,$
    • :q退出

图片描述

  • 可以退回到正常模式
    • :visual
  • 还可以切换出ex-mode子窗口
    • Q

只读模式

  • 可以使用vi -R oeasy.txt
  • 也就是view oeasy.txt
  • 在这种模式下,只能查看不能修改

图片描述

  • 但是如果你强制写:w!
    • 还是可以写进去的
  • 如果你想要彻底不能写
    • 无论是否加叹号都不能写
    • 应该怎么办呢?

想要彻底不能写的话

  • 那你需要使用vi -M oeasy.txt
    • 这样你想要做任何写的操作
    • 都无法进行修改
    • 原因是E21

图片描述

设置可编辑

图片描述

  • :set modifiable
    • 设置当前文档可以修改
    • 然后可以对文件进行修改
    • 但是如果想要:w还是不行
    • :h E142

设置可写

图片描述

  • :set write
    • 把这个开关设置好之后
    • 就可以顺利w
    • 只要你有sudo的权限
    • 一切开关你都可以打开
  • 透过各种蓝布棉门帘
    • 就可以控制起整个面铺😋

常用mode

图片描述

  • ex 可以对应这vim -e
  • view 可以对应着vim -R
  • vimdiff 可以对应着 vim -d

总结

  • vi可以加各种选项
    • vi +4 oeasy.txt
    • vi +/shiyanlou
    • vi +%s/shiyanlou/oeasy/g oeasy.txt
  • vi可以接收stdin的参数
    • ls -lah | vi -
  • vi还有各种模式
    • 命令行模式ex oeasy.txt或者vi -e oeasy.txt
    • 只读模式vi -R oeasy.txt或者view oeasy.txt

图片描述

  • 如果加一个 -r 的参数可以么
  • 帮助手册说什么swap是什么意思?🤔
  • 下次再说 👋

教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!

技术教程推荐

苏杰的产品创新课 -〔苏杰〕

职场求生攻略 -〔臧萌〕

编译原理实战课 -〔宫文学〕

分布式系统案例课 -〔杨波〕

To B市场品牌实战课 -〔曹林〕

容器实战高手课 -〔李程远〕

体验设计案例课 -〔炒炒〕

程序员的测试课 -〔郑晔〕

编程高手必学的内存知识 -〔海纳〕