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

oeasy教您玩轉(zhuǎn)vim - 37 - # 刪除字符
2021-09-04 10:53:15

刪除字符

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

  • 通過十進(jìn)制的 ascii 值輸入字符

    • 在輸入模式下
    • 輸入 <kbd>ctrl</kbd> + <kbd>v</kbd>
    • 然后再輸入 065
  • 通過十六進(jìn)制的 unicode

    • 在輸入模式下
    • 輸入 <kbd>ctrl</kbd> + <kbd>v</kbd>
    • 然后再輸入 u2642 就可以通過 uncode 編碼輸入字符
  • 通過二合字符的方式插入

    • 在輸入模式下
    • 輸入 <kbd>ctrl</kbd> + <kbd>k</kbd>
    • 輸入 Co 可以得到 ?
    • 輸入 13 可以得到 ?
    • :digraphs 查看二合字符列表
  • 寄存器計(jì)算

    • 在插入狀態(tài)下
    • 輸入 <kbd>ctrl</kbd> + <kbd>r</kbd>
    • 輸入 =3+3(注意要有 =
    • 得到結(jié)果 6
  • 我們掌握了在 vi 中插入字符的各種方法
  • 如何 vim 可以刪除字符嗎?????

刪除字符

  • 我們應(yīng)該如何刪除字符呢?
  • 如果是插入狀態(tài)下 <kbd>del</kbd> 、<kbd>BackSpace</kbd> 就可以刪除了
  • 那假如我不想切換到插入模式,我想在普通模式下就直接刪除呢?
  • :h delete 找到在 change.txt 里面有個(gè) delete
  • 從默認(rèn)的幫助位置,向上翻,翻到頭????

圖片描述

  • 這個(gè)命令叫做 x
  • 我理解就是 execute 處死當(dāng)前字符????
  • 我們先在終端里面 ls -lah &gt; 1.txt
  • 然后 vi 1.txt

刪除當(dāng)前 x

  • 在正常狀態(tài)下,使用 <kbd>x</kbd>,刪除當(dāng)前字符
  • 效果和 插入模式下 <kbd>BackSpace</kbd> 一樣
  • 盡量用<kbd>x</kbd> 而不用 <kbd>BackSpace</kbd>,因?yàn)椋?
      1. 正常模式移動迅速
      1. 用<kbd>x</kbd> 手指不離開鍵盤核心區(qū)
      1. 體會左右無名指,他會給你帶來藥師的靈感
  • 如果想要刪除多個(gè)字符的話
  • 就在前面加上數(shù)字
  • 比如 10x 就是刪除 10 個(gè)字符
  • 對應(yīng)幫助中的 [count]
  • 而且刪除了的字符,會放到寄存器 ""
  • 可以使用 :reg 查看寄存器

圖片描述

退格刪除 X

  • 幫助手冊里,在 x 后面還有個(gè) X
  • X 的意思是 向前退格
  • 使用 h X 查詢手冊

圖片描述

  • 最新刪除的字符仍然放在 "" 寄存器里面
  • 其實(shí)就像 <kbd>BackSpace</kbd> 效果一樣
  • 只不過在摁像 <kbd>x</kbd> 順手了之后,像 <kbd>Shift</kbd>+<kbd>x</kbd> 也很方便
  • 而且前后都能刪
  • 下面這個(gè)就更厲害了

退格刪詞

  • 搜索插入模式下的 <kbd>CTRL</kbd> + <kbd>w</kbd>
  • :h i_CTRL-w
    • :h是查詢幫助
    • 查詢誰的幫助呢?
    • i_CTRL-w
  • i_CTRL-w什么意思呢?
    • i代表insert插入模式
    • CTRL-w代表<kbd>CTRL</kbd>+<kbd>w</kbd>
  • 要注意小寫w

圖片描述

具體操作

  • 注意模式是插入模式

圖片描述

  • <kbd>CTRL</kbd>+<kbd>w</kbd>之后

圖片描述

  • 再<kbd>CTRL</kbd>+<kbd>w</kbd>之后

圖片描述

  • 再 <kbd>CTRL</kbd> + <kbd>w</kbd> 之后

圖片描述

  • 徹底刪到頭兒了
  • 可以切回到正常模式試試 db
  • <kbd>u</kbd>回來
  • 再試試 d^

兩行連在一起

圖片描述

  • 想要把兩行 Join 連接在一起?
    • 我們原來用的是插入模式下的<kbd>BackSpace</kbd>
  • 現(xiàn)在試試 <kbd>J</kbd>(大寫J)
  • 這是一個(gè)正常模式下的命令
    • 光標(biāo)在上一行的任何位置
    • 命令模式下按下<kbd>J</kbd>(大寫J)
    • 下一行和上一行連接在一起
    • 然后下一行的縮進(jìn)消失
    • 和上一行之間有個(gè)空格

總結(jié)

  • 以前知道可以在插入狀態(tài)下使用 <kbd>del</kbd> 、<kbd>BackSpace</kbd> 進(jìn)行刪除
  • 現(xiàn)在知道了默認(rèn)狀態(tài)下使用通過 x 刪除字符
    • 可以在 x 前面使用 [count] 進(jìn)行翻倍
    • 10x
    • 刪除的字符存儲在 "" 寄存器中
    • 可以用 :reg 查看寄存器狀態(tài)
  • 默認(rèn)狀態(tài)可以使用 X 退格
    • 刪除的字符也在 "" 寄存器中
  • 我們掌握了在 vi 中刪除字符的各種方法
  • 還有沒有更快速刪除字符的方法呢?????
  • 下次再說 ????

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

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

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