當(dāng)前位置:首頁 > IT技術(shù) > 系統(tǒng)服務(wù) > 正文

oeasy教您玩轉(zhuǎn)vim - 50 - # 命令行效率
2021-09-30 10:34:07

命令行效率

回憶上節(jié)課內(nèi)容??

總結(jié)

  • 我們上次研究的是范圍命令執(zhí)行方法
  • 批量控制縮進
    • :20,40>
  • 批量執(zhí)行普通模式下的命令
    • :4,10normal A;
  • 直接切換到全屏命令模式 ex-mode
    • Q
  • 執(zhí)行外部命令
    • !javac oeasy.java
  • 這個方式真的很爽!
    • vi 什么都干了!
  • 命令模式本身可以再提高效率嗎???

列出歷史

使用歷史命令

  • 在輸出命令時
    • 方向鍵<kbd>???</kbd><kbd>????</kbd>可以控制左右移動
    • <kbd>shift</kbd>+<kbd>???</kbd><kbd>????</kbd>按照word左右移動光標(biāo)
    • <kbd>ctrl</kbd>+<kbd>b</kbd> 到開頭begin
    • <kbd>ctrl</kbd>+<kbd>e</kbd> 到結(jié)尾end
    • <kbd>ctrl</kbd>+<kbd>w</kbd> 向前刪除一個word
      • 這個要特別注意,有的瀏覽器關(guān)閉標(biāo)簽頁
      • 我用火狐??一點問題沒有
    • <kbd>ctrl</kbd>+<kbd>u</kbd> 刪除到開頭
  • 方向鍵<kbd>↑?</kbd><kbd>↓???</kbd>可以翻閱歷史命令
    • 也可以先輸入:h s再按下<kbd>↑?</kbd>
    • 可以根據(jù)已經(jīng)有的內(nèi)容找出
      • :h scrolloff
      • :h shiftwidth
  • 想要列出所有命令歷史怎么辦?

命令歷史

  • 我們可以列出所有執(zhí)行過的命令:history

圖片描述

  • :h his[tory]可以找到 commandline.txt
  • 可以按照類型查看歷史
    • :his c:his : 命令類歷史
    • :his s:his /:his ? 搜索類歷史
    • :his e:his = 表達式寄存器類
    • :his i:his @ 輸入行類
    • :his d:his &gt; debug類
  • 可以加范圍
    • :his 2,5 2-5行命令歷史
    • :his / 3,9 查詢類命令歷史的3-9
    • his -5,-1 最新的5
  • 總共可以保存多少條命令呢?

命令數(shù)量

  • :set history&
    • 還原為默認(rèn)歷史命令
  • :set history?
    • 查看這數(shù)量是多少?
    • 50
  • 設(shè)置更多命令歷史記錄
    • :set history=1000

圖片描述

直接修改命令

  • 命令行模式下 <kbd>ctrl</kbd>+<kbd>f</kbd>
  • 或者正常模式下
    • <kbd>q</kbd><kbd>:</kbd> 查詢所有命令
    • <kbd>q</kbd><kbd>:</kbd> 查詢所有搜索命令

圖片描述

新窗口

  • 這個窗口有歷史的命令
    • 可以移動
    • 可以修改
  • 回車后執(zhí)行光標(biāo)所在行的命令
  • 執(zhí)行后
    • 歷史的命令不被修改
    • 新增一條最新的命令歷史記錄
  • 我能在命令行里復(fù)制粘貼么?

使用寄存器

  • 我能在命令行里復(fù)制粘貼么?
  • 可以查詢手冊:h c_ctrl-r
    • 查詢命令模式下的<kbd>ctrl</kbd>+<kbd>r</kbd>
    • 這和插入模式下使用寄存器一致
    • 都是<kbd>ctrl</kbd>+<kbd>r</kbd>
    • 然后再指定寄存器
  • 這樣我們就可以在命令行里面使用寄存器了

圖片描述

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

具體操作

圖片描述

  • :進入命令行模式
    • 然后<kbd>ctrl</kbd>+<kbd>r</kbd>
    • 然后如果我們這個時候摁下<kbd>"</kbd>
    • 就把默認(rèn)寄存器里面的內(nèi)容放入了命令行中
  • 如果我們再:
    • 然后<kbd>ctrl</kbd>+<kbd>r</kbd>
    • 摁下<kbd>%</kbd>就把文件名放入了命令行中
    • 比如:!javac的時候可以用這種方法把當(dāng)前文件名輸入到命令行中
  • 不過還是直接最簡單:!javac %

總結(jié)

  • 命令行的運行光標(biāo)控制
    • 方向鍵<kbd>???</kbd><kbd>????</kbd>可以控制左右移動
    • <kbd>shift</kbd>+<kbd>???</kbd><kbd>????</kbd>按照word左右移動光標(biāo)
    • <kbd>ctrl</kbd>+<kbd>b</kbd> 到開頭begin
    • <kbd>ctrl</kbd>+<kbd>e</kbd> 到結(jié)尾end
    • <kbd>ctrl</kbd>+<kbd>w</kbd> 向前刪除一個word
      • 小心關(guān)閉窗口!??
    • <kbd>ctrl</kbd>+<kbd>u</kbd> 刪除到開頭
  • 歷史命令的遍歷
    • 方向鍵<kbd>↑?</kbd><kbd>↓???</kbd>
  • 命令行的歷史記錄
    • :history
    • :his -5
    • :his s
  • 進入命令歷史記錄編輯
    • 命令行狀態(tài)下 <kbd>ctrl</kbd>+<kbd>f</kbd>
    • 或者正常模式下 <kbd>q</kbd><kbd>:</kbd>
    • 選擇、編輯、回車
  • 使用寄存器
    • 命令行狀態(tài)下 <kbd>ctrl</kbd>+<kbd>r</kbd>
    • 然后輸入寄存器的名稱就可以了
  • 命令模式可以讀寫文件嗎???
  • 下次再說 ??

[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[藍(lán)橋?qū)嶒灅?邀請碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)

本文摘自 :https://blog.51cto.com/u

開通會員,享受整站包年服務(wù)立即開通 >