iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0

今天將介紹vim的各種快捷鍵與指令與它們的用途

再提醒一次: vim的快捷鍵有區分大小寫


快捷鍵

普通模式

  • 移動游標
    • h: 向左移動
    • j: 向下移動
    • k: 向上移動
    • l: 向右移動
  • 搜尋文字: /<pattern>
    • 預設為區分大小寫,若不想區分則可以在pattern前面加上\c(/\c<pattern>)
  • 執行指令: :<command>
  • 搜尋並取代: [range]s/regexp/dest/[flag]
    • 這個語法與sed的搜尋並取代部分類似
    • flag:
      • g: 處理每個符合該pattern的部分
      • c: 取代前提示是否取代
      • i: 無視大小寫
      • I: 強制區分大小寫
    • range:
      sed類似,以[m,[n]]表示範圍,未提供range時預設取目前游標所在行
      • 可用%表示文件中所有內容

      等價於1,s

指令

只能在一般模式與可視模式使用指令
語法: :s[y]n[ta]x
這樣的語法能縮寫為snx, synx, sntx...
這邊講幾個常用指令

  1. :h[elp] [command]: 顯示幫助頁面,後面可加想搜尋的指令,如:help help
  2. :se[t] option[(?|!|&vi[m])]...: 設定功能
  • !: 將目前option的值反轉(等價於inv{option})
  • ?: 顯示該option的目前值
  • &: 回復該option至vi(m)的預設值,需指定vi或vim
  1. e[dit] file: 開啟其他檔案
  2. sav[eas][!]:另存新檔
  • !: 強制寫入已存在檔案
  1. [range]ter[minal] [options] [command]
  2. map {lhs} {rhs}: 將{lhs}綁定成{rhs}的行為
  • [(i|n|v)]noremap: 使得{rhs}不能再綁定到其他動作以避免循環綁定
    E.G: inoremap jj <Esc>: 將jj綁定為Esc並禁止Esc綁定到其他行為
  1. [(i|c|!)]ab[breviate] {lhs} {rhs}: 將{lhs} 當成 {rhs}的縮寫(別名)
  • 與map的主要差別是ab不會遞迴綁定,也就是說同樣是$\text{a}\rightarrow\text{b}, \text{b}\rightarrow\text{c}$,在map你輸入a會得到c,但在ab你輸入a會得到b

REF

VimFandom: Search And Replace

大家來學VIM(一個歷久彌新的編輯器)[九]


上一篇
Day13: Vim介紹
下一篇
Day15: 配置Vim的config檔
系列文
I Use Linux BTW: 談Linux與其指令30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言