Vim 命令行效率详解

回忆上节课内容🤔

总结

列出历史

使用历史命令

  • 在输出命令时
    • 方向键⬅️️➡️️️可以控制左右移动
    • shift+⬅️️➡️️️按照word左右移动光标
    • ctrl+b 到开头begin
    • ctrl+e 到结尾end
    • ctrl+w 向前删除一个word
      • 这个要特别注意,有的浏览器关闭标签页
      • 我用火狐🦊一点问题没有
    • ctrl+u 删除到开头
  • 方向键↑️↓️️️可以翻阅历史命令
    • 也可以先输入:h s再按下↑️
    • 可以根据已经有的内容找出
      • :h scrolloff
      • :h shiftwidth
  • 想要列出所有命令历史怎么办?

命令历史

  • 我们可以列出所有执行过的命令:history

图片描述

  • :h his[tory]可以找到 commandline.txt
  • 可以按照类型查看历史
    • :his c:his : 命令类历史
    • :his s:his /:his ? 搜索类历史
    • :his e:his = 表达式寄存器类
    • :his i:his @ 输入行类
    • :his d:his > debug类
  • 可以加范围
    • :his 2,5 2-5行命令历史
    • :his / 3,9 查询类命令历史的3-9
    • his -5,-1 最新的5
  • 总共可以保存多少条命令呢?

命令数量

  • :set history&
    • 还原为默认历史命令
  • :set history?
    • 查看这数量是多少?
    • 50
  • 设置更多命令历史记录
    • :set history=1000

图片描述

直接修改命令

  • 命令行模式下 ctrl+f
  • 或者正常模式下
    • q: 列出历史命令
      • / 在历史命令中搜索

图片描述

新窗口

  • 这个窗口有历史的命令
    • 可以移动
    • 可以修改
  • 回车后执行光标所在行的命令
  • 执行后
    • 历史的命令不被修改
    • 新增一条最新的命令历史记录
  • 我能在命令行里复制粘贴么?

使用寄存器

  • 我能在命令行里复制粘贴么?
  • 可以查询手册:h c_ctrl-r
    • 查询命令模式下的ctrl+r
    • 这和插入模式下使用寄存器一致
    • 都是ctrl+r
    • 然后再指定寄存器
  • 这样我们就可以在命令行里面使用寄存器了

图片描述

  • 我们先看看寄存器里面有什么?
    • :reg

具体操作

图片描述

  • :进入命令行模式
    • 然后ctrl+r
    • 然后如果我们这个时候摁下"
    • 就把默认寄存器里面的内容放入了命令行中
  • 如果我们再:
    • 然后ctrl+r
    • 摁下%就把文件名放入了命令行中
    • 比如:!javac的时候可以用这种方法把当前文件名输入到命令行中
  • 不过还是直接最简单:!javac %

总结

  • 命令行的运行光标控制
    • 方向键⬅️️➡️️️可以控制左右移动
    • shift+⬅️️➡️️️按照word左右移动光标
    • ctrl+b 到开头begin
    • ctrl+e 到结尾end
    • ctrl+w 向前删除一个word
      • 小心关闭窗口!😱
    • ctrl+u 删除到开头
  • 历史命令的遍历
    • 方向键↑️↓️️️
  • 命令行的历史记录
    • :history
    • :his -5
    • :his s
  • 进入命令历史记录编辑
    • 命令行状态下 ctrl+f
    • 或者正常模式下 q:
    • 选择、编辑、回车
  • 使用寄存器
    • 命令行状态下 ctrl+r
    • 然后输入寄存器的名称就可以了
  • 命令模式可以读写文件吗?🤔
  • 下次再说 👋

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

技术教程推荐

技术领导力实战笔记 -〔TGO鲲鹏会〕

消息队列高手课 -〔李玥〕

.NET Core开发实战 -〔肖伟宇〕

玩转Vue 3全家桶 -〔大圣〕

超级访谈:对话张雪峰 -〔张雪峰〕

超级访谈:对话玉伯 -〔玉伯〕

现代C++20实战高手课 -〔卢誉声〕

AI大模型企业应用实战 -〔蔡超〕

云原生基础架构实战课 -〔潘野〕