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

oeasy教您玩轉(zhuǎn)vim - 42 - # 剪切進(jìn)入
2021-09-09 09:47:46


show: step
version: 1.0
enable_checker: true

剪切進(jìn)入

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

  • 上次我們了解到了各種寄存器
  • :reg
    • 無名寄存器""
    • 數(shù)字寄存器"0-"9
    • 行內(nèi)刪除專用寄存器"-
    • 指定寄存器"a-"z"A-"Z
    • 3個只讀寄存器":".、"%
      • ". 里面存儲著上次插入的內(nèi)容
      • "% 里面存儲著當(dāng)前文件的名字
      • ": 里面存儲著剛剛執(zhí)行的命令
    • 輪換文件寄存器"#
    • 表達(dá)式寄存器"=
    • 選擇和拖拽寄存器"*、"+、"~
    • 黑洞寄存器"-
    • 搜索模式寄存器"/
  • 插入模式下<kbd>ctrl</kbd>+<kbd>r</kbd> 再加寄存器名稱
  • 可以粘貼指定寄存器中的內(nèi)容
  • <kbd>d</kbd>、<kbd>x</kbd>、<kbd>y</kbd>、<kbd>p</kbd>都在在正常模式
  • 刪除之后能否自動切換進(jìn)入插入模式呢?????
  • 翻幫助查到這個命令好像叫做 <kbd>s</kbd>

找到手冊????

  • 想要知道 <kbd>s</kbd> 的作用,就要查一查
  • 也可以用 :h s

圖片描述

  • 這個<kbd>s</kbd>和<kbd>x</kbd>有點(diǎn)像
    • 都是刪除當(dāng)前字符
    • 都是默認(rèn)放入無名寄存器""
    • 如果設(shè)定某個命名寄存器,就放入命名寄存器
    • 都可以通過[count]翻倍
  • 不同在于刪除之后的的模式
    • <kbd>x</kbd> 保持在 普通模式
    • <kbd>s</kbd>進(jìn)入到了 插入模式
  • 這其實(shí)很爽
  • 因為很多時候刪除了之后就是希望進(jìn)入插入模式的!??!

  • <kbd>S</kbd>是刪除當(dāng)前這一行,然后進(jìn)入插入模式
    • 相當(dāng)于<kbd>d</kbd><kbd>$</kbd><kbd>i</kbd>

有用的c

  • c 的意思是change
  • 這個<kbd>c</kbd>和<kbd>d</kbd>有點(diǎn)像
    • 都是刪除當(dāng)前內(nèi)容
    • 都是默認(rèn)放入無名寄存器""
    • 如果設(shè)定某個命名寄存器,就放入命名寄存器
    • 都可以通過[count]翻倍
    • 而且都支持motion
  • 不同之處就是就是完成工作后
    • <kbd>d</kbd> 保持在普通模式
    • <kbd>c</kbd>進(jìn)入到了插入模式

圖片描述

  • 比如我想把hello world!變成hello oeasy
  • 那么我需要
    • <kbd>d</kbd><kbd>w</kbd>刪除到當(dāng)前單詞word詞尾
    • <kbd>i</kbd>然后再進(jìn)入插入模式
    • 輸入oeasy
    • 然后<kbd>esc</kbd>完成
  • 現(xiàn)在我只需要
    • <kbd>c</kbd><kbd>w</kbd>刪除到當(dāng)前單詞word詞尾
    • 直接進(jìn)入插入模式
    • 輸入oeasy
    • 然后<kbd>esc</kbd>完成,一氣呵成
  • 如果要刪除的位置很遠(yuǎn)
  • 可以考慮<kbd>c</kbd><kbd>f</kbd><kbd>t</kbd>
  • 配合<kbd>.</kbd>來操作

配合重復(fù)

圖片描述

  • n是下一個
  • .是cwfive<kbd>esc</kbd>

    in操作

  • 這次我們的光標(biāo)位置在這個單詞中間

圖片描述

  • 我如果想要刪除world怎么辦?
    • 我需要先<kbd>b</kbd>回詞頭
    • <kbd>c</kbd><kbd>w</kbd>刪除到詞尾
    • 這還是有點(diǎn)麻煩
  • 現(xiàn)在只需要一句話
    • <kbd>c</kbd><kbd>i</kbd><kbd>w</kbd>就可以一氣呵成

圖片描述

in

  • 不論光標(biāo)在單詞里面什么位置
  • 只要是這個 word 范圍內(nèi)的都可以刪除
  • 這個時候如果是 ciW 意味著不是 word 而是 WORD
  • 類似的還有·
    • <kbd>c</kbd><kbd>i</kbd><kbd>(</kbd>、<kbd>c</kbd><kbd>i</kbd><kbd>(</kbd>刪除小括號里面的

圖片描述

  • <kbd>c</kbd><kbd>i</kbd><kbd>[</kbd>、<kbd>c</kbd><kbd>i</kbd><kbd>]</kbd>刪除中括號里面的
  • <kbd>c</kbd><kbd>i</kbd><kbd>"</kbd>刪除雙引號里面的
  • <kbd>c</kbd><kbd>i</kbd><kbd>'</kbd>刪除單引號里面的
  • 這在編程時是非常實(shí)用的?。?!????

文字對象

  • <kbd>c</kbd><kbd>i</kbd><kbd>s</kbd>刪除當(dāng)前這句
  • <kbd>c</kbd><kbd>i</kbd><kbd>p</kbd>刪除當(dāng)前這段

圖片描述

tag塊標(biāo)簽

git clone http://github.com/overmind1980/vimtutorial.git
cd vimtutorial
vi oeasy.html
  • <kbd>c</kbd><kbd>i</kbd><kbd>t</kbd>
    • 刪除tag里面的內(nèi)容
  • <kbd>c</kbd><kbd>a</kbd><kbd>t</kbd>
    • 刪除包括標(biāo)簽本身
  • <kbd>c</kbd><kbd>2</kbd><kbd>i</kbd><kbd>t</kbd>刪除兩層標(biāo)簽里面的
    • 這個功能在htmlxml很有效率

圖片描述

block塊

  • <kbd>c</kbd><kbd>i</kbd><kbd>{</kbd>、<kbd>c</kbd><kbd>i</kbd><kbd>}</kbd>
    • 刪除大括號里面的
  • <kbd>c</kbd><kbd>i</kbd><kbd>B</kbd>
    • 也有同樣的效果
    • <kbd>c</kbd><kbd>2</kbd><kbd>i</kbd><kbd>{</kbd>、<kbd>c</kbd><kbd>2</kbd><kbd>i</kbd><kbd>}</kbd>刪除兩層大括號里面的
    • 這個功能也可以和 <kbd>d</kbd>、<kbd>y</kbd>配合,非常爽?。?/li>
    • 大規(guī)模程序塊控制

圖片描述

關(guān)于ia的整理

  • h aw可以看到相關(guān)資料
  • w word 小詞
  • W Word 大詞
  • s sentence 句子
  • p paragraph 段落
  • ( 、) 小括號
  • [ 、] 中括號
  • { 、} 大括號
  • t tag 標(biāo)簽
    • it 標(biāo)簽內(nèi)部 不包含標(biāo)簽
    • at 標(biāo)簽外部 包含標(biāo)簽
  • "、' 引號

細(xì)節(jié)

  • <kbd>s</kbd>

    • 相當(dāng)于<kbd>c</kbd><kbd>l</kbd>
    • 也相當(dāng)于<kbd>d</kbd><kbd>l</kbd>,再進(jìn)入插入模式
  • <kbd>S</kbd>

    • 刪除當(dāng)前行<kbd>d</kbd><kbd>$</kbd>
    • 再進(jìn)入插入模式
  • <kbd>C</kbd>

    • 相當(dāng)于<kbd>c</kbd><kbd>$</kbd>
    • 也相當(dāng)于<kbd>d</kbd><kbd>$</kbd>,再進(jìn)入插入模式
    • 也就是<kbd>D</kbd>,再進(jìn)入插入模式
  • <kbd>c</kbd><kbd>c</kbd>就是

    • 刪除當(dāng)前行并進(jìn)入插入模式
    • 等同于<kbd>S</kbd>
  • <kbd>2</kbd><kbd>C</kbd>
    • 相當(dāng)于刪除兩行,再進(jìn)入插入模式
    • 也就是<kbd>2</kbd><kbd>D</kbd>,再進(jìn)入插入模式

總結(jié)

  • 這次我們學(xué)到的最有用的就是<kbd>c</kbd>
    • 他和<kbd>d</kbd>的區(qū)別就是刪除之后進(jìn)入到插入模式
    • <kbd>c</kbd>可以配合motion
    • 可以用<kbd>c</kbd><kbd>i</kbd><kbd>w</kbd>來快速刪除當(dāng)前光標(biāo)所在的單詞
  • 可<kbd>i</kbd>和<kbd>a</kbd>的文字塊
    • w word 小詞
    • W Word 大詞
    • s sentence 句子
    • p paragraph 段落
    • ( 、) 小括號
    • [] 中括號
    • { 、} 大括號
    • t tag 標(biāo)簽
      • it 標(biāo)簽內(nèi)部 不包含標(biāo)簽
      • at 標(biāo)簽外部 包含標(biāo)簽
    • "、' 引號
  • 還有沒有更快速的辦法進(jìn)行編輯嗎?????
  • 下次再說 ????

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

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

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