oeasy教您玩轉vim – 56 – # 字元可視化模式

可視化編輯

回憶上節課內容🤔

  • 我們學習了關於模式匹配中使用參數
  • 單個參數

    • :%s/<h2>\(.*\)</h2>/ - \1/g
  • 多個參數

    • :%s/<img src=\"\(.*\)\" title=\"\(.*\)\" \/>/[!\2]\1
  • 非貪婪匹配

    • :%s/<a href=\"\(.\{-\})\">\(.\{-\}\)<\/a>/[\2]\1/g
  • 我們這回會遇到一種新的模式
  • 什麼模式呢?
  • 我們先回憶一下已經了解的模式

三種模式

  • 我們先回顧一下以前學過的模式

    • 正常模式
    • 插入模式
    • 替換模式
    • 命令行模式
  • 今天的新模式是可視化模式
  • 其實可視化對應三種可視化

    • 字元可視化 v
    • 行可視化 V
    • 塊可視化ctrl+v

圖片描述

字元可視模式

  • v進入

    • 還是可以用 {motion} 移動游標
    • 從開始位置到目前游標位置文本高亮顯示
    • 相當於把選擇範圍高亮顯示
  • 在左下角顯示可視

    • 意味著進入了可視-字元模式
  • 可以用o切換首尾

    • 控制選擇範圍

圖片描述

  • 為什麼要有可視化模式?

具體選擇

  • 為什麼要有可視化模式?

    • 因為很多時候移動工具不直觀

圖片描述

  • 可視化

    • 明確點兒可以叫做選擇範圍可視化
  • 像這樣很容易就知道自己所選擇的範圍

    • 然後就可以進行相關操作了
  • 做什麼操作呢?

相關操作

  • 在可視化模式也可以進行編輯操作

    • 相當於對於選好的內容進行操作
  • 選好了之後,

    • d

      • 刪除所選文本
    • c

      • 修改所選文本
      • 刪除選中的文本
      • 然後輸入想要的內容
    • r

      • 替換所選文本
      • 將選中的文本替換成單個字元
    • I

      • 在所選文本前插入
    • A

      • 在所選文本後插入
    • gu

      • 所選區域轉為小寫
    • gU

      • 所選區域轉為大寫
    • g~

      • 所選區域大小寫互調
    • >

      • 所選區域對應的行向右縮進一個 shiftwidth
    • <

      • 所選區域對應的行向左縮進一個 shiftwidth
    • 這個和我們常用的相似

操作細節

  • 大小寫不同

    • d只刪除選中的字元
    • 而D刪除選中字元所在行的所有字元,包含結尾的換行符號
    • c 和 C 、 y 和 Y 同理
  • 可以在前面添加 "a 指定 暫存器a

圖片描述

快速選擇文字塊

圖片描述

  • vaw可以進入字元可視模式,並選中單詞
  • vaW

    • a WORD (with white space)
    • 包含空格的一個WORD
  • iW

    • inner WORD
    • 不包含空格的WORD
  • as

    • a sentence (with white space)
    • 包含空格一個句子
  • is

    • inner sentence
    • 不包含空格一個句子
  • ap

    • a paragraph (with white space)
    • 包含空格一個段落
  • ip

    • inner paragraph
    • 一個段落

各種括弧引起的文字塊

  • ab

    -    a () block (with parenthesis)    
    -    一個小括弧包圍的塊,含括弧
  • ib

    -    inner () block    
    -    不包含括弧的一個塊
  • aB

    -    a {} block (with braces)
    -    一個大括弧包圍的塊,含括弧
  • iB

    -    inner {} block
    -    一個大括弧包圍的塊
  • at

    -    a <tag> </tag> block (with tags)
    -    一個標籤包圍的塊,含標籤
  • it

    -    inner <tag> </tag> block
    -    一個標籤包圍的塊,不含標籤
  • a<

    -    a <> block (with <>)    
    -    一個尖括弧包圍的標籤,含標籤
    -    相當於at    
  • i<

    -    inner <> block    
    -    一個尖括弧包圍的標籤,不含標籤
    -    相當於it
  • a[

    -    a [] block (with [])                
    -    中括弧包含的塊,含中括弧
  • i[

    -    inner [] block                    
    -    中括弧包含的塊,不含中括弧
    

還有各種引用文字塊

  • a”

    -    a double quoted string (with quotes)
    -    雙引號括弧包含的塊,含雙引號
  • i”

    -    inner double quoted string    
    -    雙引號括弧包含的塊,不含雙引號
  • a’

    -    a single quoted string (with quotes)
    -    單引號括弧包含的塊,含單引號
  • i’

    -    inner simple quoted string        
    -    單引號括弧包含的塊,不含單引號
  • a`

    -    a string in backticks (with backticks)
    -    反引號括弧包含的塊,不含反引號
  • i`

    -    inner string in backticks    
    -    反引號括弧包含的塊,不含反引號
    

用行命令操作選區

  • 選好選區後

    • :
  • 左下角會出現:'<,’>

    • 就是從選區開頭,到選區結尾
    • ‘< 選區開頭
    • ‘> 選區結尾
  • 然後我們摁下d回車

    • 就把選區範圍內都刪除了
  • 我們可以:h '< 查看相應手冊

圖片描述

總結

  • 今天我們了解到可視模式,其實可視化對應三種子模式

    • 字元可視模式 v
    • 行可視模式 V
    • 塊可視模式ctrl+v
  • 我們先來了解字元可視化模式

    • 快捷鍵 v
    • 可配合各種 motion
    • o切換首尾
    • 字元可視化就是把選擇範圍可視化
  • 快速操作

    • 選中了之後可以進行

      • d
      • c
      • y
    • 可以用”a使用指定暫存器
  • 可以用ia快速選擇範圍

    • w 小詞 W 大詞
    • ()[] {} 各種括弧
    • t 標籤,編寫網頁的時候很有用
    • s 句子 p 段落
    • b 小括弧,這個編寫程式的時候很有用
    • B 大括弧,編寫程式的時候也很有用
    • ” ‘ `引號內
  • 還可以在命令行下對選區範圍內字元進行操作

    • :'<,'>
  • 這次是字元可視化模式,那麼行可視化模式是什麼意思呢?🤔
  • 下次再說 👋

[Github地址] (GitHub – overmind1980/oeasyvim: 這是oeasy製作的的一套關於vim的教程 可以在 //www.lanqiao.cn/teacher/courses/2840 做實驗 邀請碼FJWYIMGB 本教程從0基礎開始,到精通vim配置,和高級命令。希望能讓vim是你的開發更高效。)
[Gitee地址] (overmind1980/oeasyvim)
[藍橋實驗樓 邀請碼FJWYIMGB] (oeasy 教您零基礎玩轉編輯神器 Vim_Linux – 藍橋雲課)


Tags: