# Vim Essentials

VIM HJKL

  • h 向左移動光標
  • j 向下移動光標
  • k 向上移動光標
  • l 向右移動光標
  • Ctrl + F 向下翻頁,其中 F 表示 foward
  • Ctrl + B 向上翻頁,其中 B 表示 backward
  • Ctrl + D 向下滾動半頁,其中 D 表示 down
  • Ctrl + U 向上滾動半頁,其中 U 表示 up
  • Z + Enter 將當前行翻動到適當位置

💡 文件最下方的那些波浪(tildes)符號

如果移動到文件的最下方,會看到有許多波浪符號,比如像是這樣:

Bottom Tildes

實際上,這些波浪符號並不存在於檔案中,而是告知我們已經到了檔案的底部。

  • w 移動到單字後方
  • W 移動到單字後方,根據空白作為單字邊界
  • b 移動到單字前方
  • B 移動到單字前方,根據空白作為單字邊界
  • 0 移動到行首
  • ^ 移動到行首的第一個有效字元
  • $ 移動到行尾
  • gg 移動到檔案開始行
  • G 移動到檔案結尾行
  • [num]gg[num]G 移動到第 [num]

💡 字元 ^ 和 $

如果接觸過正則表達式(Regular Expression)的話,字元 ^$ 也正好是代表匹配模式的開頭和結尾。

  • :[num] 移動到第 [num]
  • :$ 移動到檔案結尾行

# Information

# Show Information

  • Ctrl + G 顯示檔案名稱、檔案狀態和行數
  • g + Ctrl + G 顯示更多資訊

# The Ruler

  • :set ruler
  • :set noruler
  • :set ruler!

# Deleting Text

# Delete by Character

  • x 刪除當前游標位置上的一個字元
  • X 刪除當前游標位置前的一個字元

# Operation and Motion

在 Vim 中 d 代表「刪除」這個操作(operation),他可以搭配數字和我們前面所提到各種「移動」的動作(motion)來實現效果:

  • dw 向後刪除一個單字
  • dl 向右一個位置進行進行刪除操作(刪除當前游標位置上的一個字元),相當於 x
  • dh 向左一個位置進行進行刪除操作(刪除當前游標位置前的一個字元),相當於 X
  • dj 向下刪除行(包括當前行和他的下一行)
  • dj 向上刪除行(包括當前行和他的上一行)
  • d0 刪除當前游標之前的所有內容(使游標位置在刪除之後成為行首)
  • d$ 刪除當前游標之後的所有內容(使游標位置在刪除之後成為行尾),相當於 D
  • dd 刪除當前行
  • [num]dd 刪除 [num]

# Thinking in Vim

在 Vim 中,這些操作可以整理成以下形式:

[count]operation{motion}`
[count]operation[count]{motion}`

舉個例子:

  • 3w 執行移動單字三次
  • d3w 執行刪除操作,刪除的內容是三個移動單字動作
  • 2d3w 執行兩次刪除操作,刪除的內容是三個移動單字動作
Last Updated: 12/15/2020, 10:27:30 PM