Vim 使用入門

什麼是VIm

  • vim 是跨平臺的一看輕量級編輯器
  • vim 能夠是其餘編輯器中的一款插件

vim 能作什麼

  • 命令行 編輯文件內容
  • 在編輯器中編輯文件內容

vim 模式

  • 插入模式(正常模式,能夠正常輸入)
  • 編輯模式(可使用vim快捷鍵的模式)
  • 命令模式(也叫末行模式,可使用一些vim命令, 在移植的編輯器插件中, 有的可能用不了)
  • 視圖模式(也叫選擇模式, 能夠移動選中)

模式切換

  • 插入模式 切換到 編輯模式ESC
  • 命令模式 切換到 編輯模式ESC
  • 視圖模式 切換到 編輯模式ESC
  • 編輯模式 切換到 命令模式: (使用英文狀態下的冒號)
  • 編輯模式 切換到 視圖模式v
  • 編輯模式 切換到 插入模式
    • 光標當前位置前 並切換到插入模式: i
    • 光標當前位置後 並切換到插入模式: a
    • 刪除光標當前位置 並切換到插入模式: s
    • 光標當前行的下一行 切換到插入模式: o
    • 光標當前行的上一行 切換到插入模式:O
    • 光標的當前行的行首 切換到插入模式:I
    • 光標的當前行的行尾 切換到插入模式:A
    • 刪除當前行內容 並 切換到插入模式:cc

注意區別大小寫的問題html

編輯模式下的經常使用命令

移動光標linux

光標 向左移動 一個位置 :h
光標 向下移動 一行:j
光標 向上移動 一行:k
光標 向右移動 一個位置:l
光標 向右移動 一個 英文單詞 的距離: weE
光標 向左移動 一個 英文單詞 的距離:bgegE
跳轉到 文件的第一行gg
跳轉到 文件的最後一行G
跳轉到指定行: ngg 或者 nGweb

光標移動到行首(不切換模式):^ 或者數字 0
光標移動到行尾(不切換模式):$vim

把光標移動到 光標所在行 的下一個 字符(任意字符) 位置: fa 移動到同一行下一個a字符的位置
把光標移動到 光標所在行 的上一個 字符(任意字符) 位置: Fa 移動到同一行上一個a字符的位置
重複執行 f 命令:; 使用英文狀態下的分號windows

n:表明任意一個數字 number
移動一個單詞的距離, 各類方式之間有細微的差異,可是…差異不大編輯器

移動視圖svg

將光標所在行 移動到 屏幕的中間zz
將光標所在行 移動到 屏幕頂端zt
將光標所在行 移動到 屏幕底端zb學習

把光標移到屏幕最頂端一行:H
把光標移到屏幕中間一行: M
把光標移到屏幕最底端一行:Lui

windows或者其餘編輯器插件可能計算的不許確HML 會移動光標編碼

編輯內容

複製 光標所在行:yy
複製 光標所在行一下 n行nyy
從 光標當前位置 複製 到 行首位置: y^
從 光標當前位置 複製 到 行首位置: y$
從 光標當前位置 複製 到 文件第一行: ygg
從 光標當前位置 複製 到 文件最後一行: yG

剪切 光標所在行:dd
剪切 光標所在行一下 n行ndd
從光標當前位置 剪切 到 行首位置: d^
從光標當前位置 剪切 到 行首位置: d$
從 光標當前位置 剪切 到 文件第一行: dgg
從 光標當前位置 剪切 到 文件最後一行: dG

刪除 光標當前位置後的 一個字符x
刪除 光標當前位置後的 多個字符nx
刪除 光標當前位置後的 一個字符(會進入插入模式): s
刪除 光標當前位置後的 多個字符(會進入插入模式): ns
刪除 當前行的內容(會進入插入模式): cc 或者 S
刪除 當前行後的n行的內容(會進入插入模式): ncc 或者 nS
刪除 當前光標所在位置的後一個字符(會進入插入模式):cl
刪除 當前光標所在位置的後n個字符(會進入插入模式):cnl
刪除 當前光標所在位置的後一個單詞(會進入插入模式):cw
刪除 當前光標所在位置的後n個單詞(會進入插入模式):cnwncw
從光標當前位置 刪除 到 行首位置(會進入插入模式): c^
從光標當前位置 刪除 到 行首位置(會進入插入模式): c$

cnw dnw ynw 這些帶操做次數的命令,均可以數字開頭形式操做ncw ndw nyw

刪除與剪切不一樣, 刪除的內容不能用 p 來粘貼

粘貼 在光標所在位置粘貼 一次p
粘貼 在光標所在位置粘貼 n次np

整行復制、剪切會帶有換行符, 因此粘貼的內容會在光標當前位置的下一行

替換 當前光標所在位置的 一個字符r 輸入替換的 字符
替換 當前光標所在位置的 一個字符r 輸入替換的 字符
先按 r 而後在輸入替換的字符

撤銷 上一次操做(等於:ctrl + z):u
撤銷 屢次操做:nu
恢復 上一次操做(等於:ctrl + y): ctrl + r

若是是在windows中,或者是編輯器的插件,使用ctrl鍵的可能會與其餘快捷鍵衝突

合併 當前行和下一行的內容:J
合併 當前行和下n行的內容:nJ

合併的若是是空行會刪除空行

排版

向左縮進>>
向右縮進<<

末行模式的經常使用操做

查找內容

查找內容: 在編輯模式下輸入/
上一個查找到的內容:N
下一個查找到的內容:n
忽略大小寫:/test\c

替換內容
替換內容:在編輯模式下輸入: 英文狀態下的冒號
替換語法:[替換範圍]s/查找內容/替換內容/[額外參數]

:3,5s/findContent/replaceContent/ig

這篇文章有詳細說明

多文件編輯(切換標籤)

上一個標籤::prev
下一個標籤::next 能夠縮寫爲 n1
最近編輯過的文件: gt

保存 && 退出編輯器

保存並退出: :wq:x
強制保存並退出: :wq!:x!
不保存退出::q
不保存強制退出::q!
這篇文章有詳細說明

最後

  • 看似不少命令,可是都有規律
  • 記住一些經常使用的就能夠了,能夠漸進式學習使用
  • vim是把雙刃劍,鋒利無比可是須要時間掌控

linux 終端 經常使用.vimrc 配置選項

" 顯示行號
set nu

" 當前行顯示一個下劃線
set cul

「 設置 tab 爲 4個空格
set ts=4

" 設置文件編碼
set encoding=utf8
set fileencoding=utf8

」 高亮當前行
set cursorline
	hi CursorLine cterm=NONE ctermbg=red ctermfg=white guibg=NONE guifg=NONE
相關文章
相關標籤/搜索