文本編輯器——VI/VIM


在Linux中,咱們知道,一切皆文件,那麼須要修改配置文本編輯器就是必不可少的,而vi/vim就是咱們Linux中很是強大編輯器。vim是vi的升級版。接下來咱們就一塊兒來看看吧!vim

vi/vim
編輯模式 做用
命令模式 用戶執行命令,例如複製行、粘貼行
輸入模式 用於輸入文本、修改文本等
末行模式 用於查找文本、保存修改等
末行模式 命令模式 輸入模式 按兩次Esc 按: 按i、I、a、A、o、O 按一次Esc 末行模式 命令模式 輸入模式

輸入模式沒法直接回到末行模式bash

命令模式—>輸入模式

按一下任意一個字母markdown

  • i insert,在當前光標所在字符的前面,轉爲輸入模式
  • I 大寫的i,在當前光標所在行的行首轉換爲輸入模式
  • a append,在當前光標所在字符的後面轉換爲輸入模式
  • A 在當前光標所在行的行尾轉換爲輸入模式
  • o open,在當前光標所在行的下方新建一行並轉爲輸入模式
  • O 大寫的o,不是數字0,在當前光標所在行的上方新建一行並轉換爲輸入模式

輸入模式—>命令模式

  • 按一次ESC

命令模式—>末行模式

  • 按一次:

末行模式—>命令模式

  • 按兩次Esc

文件打開後默認處於命令模式下app

  • vim [文件名] 打開文件
  • vim +n [文件名] 打開文件並定位到第n行
  • vim +/pattern [文件名] 打開文件並定位到第一次被/pattern匹配到的內容行首

末行模式

命令 意義
q! 不保存退出
wq! 強行保存並退出
x 強行保存並退出
q 退出
wq 保存並退出
w 保存但不退出
w! 強制保存

命令模式

  • 直接使用ZZ保存並退出
  • 在以前學習的時候,並非很經常使用這個方式,常常是用wq!來保存退出,可是後來發現仍是這個比較方便。但也有弊端,本來在字母小寫時直接Shift+Z,就是兩個大寫的ZZ。結果一不當心就按成了Ctrl+Z了。給終止了,結果就GG。
  • 若是不當心終止了vi、vim。那麼下次咱們再打開這個文件會有錯誤的提示,就像是你word沒有保存就關閉,下次打開會提示你要不要復原。咱們的文本編輯器同樣。Linux裏會在你打開的目錄中新建一個.文件名.swp的文件,不想在每次打開有提示,直接刪除這個文件就能夠了。
在命令模式下

以單詞爲單位移動

  • w 移動至下一個單詞的詞首
  • e 跳至當前或下一個單詞的詞尾
  • b 跳至當前或上一個單詞的詞首

逐字符移動

  • h 向左移動一個字符
  • l 向右移動一個字符
  • j 向下移動一個字符
  • k 向上移動一個字符
  • #h 向左移動#個字符
  • #l 向右移動#個字符
  • #j 向下移動#個字符
  • #k 向上移動#個字符

行內跳轉

  • 0 數字0,跳至絕對行首
  • ^ 跳至行首的第一個非空白字符
  • $ 跳至絕對行尾

行間跳轉

  • gg 跳轉至第一行
  • G 跳轉至最後一行
  • #gg 跳轉到第#行
  • #G 跳轉到第#行

句子間跳轉

  • ( 左小括號,跳轉到上一個句子
  • ) 右小括號,跳轉到下一個句子

段落間跳轉

  • { 左大括號,跳轉到上一個段落
  • } 右大括號,跳轉到下一個段落

翻屏

  • ctrl+f 向下翻一屏
  • ctrl+b 向上翻一屏
  • ctrl+d 向下翻半屏
  • ctrl+u 向上翻半屏

可視化模式

  • v 按字符選取內容
  • V 按行(矩形塊)選取內容

字符編輯

  • x 刪除光標所在處的單個字符
  • #x 刪除光標所在處及其向後共#個字符
  • xp 交換光標所在處的字符及其後面字符的位置

刪除

  • dG=d$ 刪除當前光標所在位置到行尾的內容
  • d^ 刪除當前光標所在位置到第一個行首非空白字符位置的內容
  • dgg=d0 刪除當前光標所在位置到絕對行首的內容
  • #d跳轉符刪除跳轉符範圍內的#個,例如:
    • dw 刪除一個單詞
  • dd 刪除當前光標所在行整行
  • #dd 刪除包括當前光標所在行在內的#行
  • D 刪除當前光標所在行的內容,保留空行

命令模式下d命令常與跳轉命令組合使用編輯器

複製、粘貼

  • yy 複製
  • p 粘貼
  • 小寫p
    • 在光標後面或者上一行粘貼
    • 刪除或複製的爲整行內容,則粘貼至光標所在行的下方
    • 刪除或複製的爲非整行,則粘貼至光標所在字符的後面
  • 大寫P
    • 在光標前面或者下一行粘貼
    • 刪除或複製的爲整行內容,則粘貼至光標所在行的上方
    • 刪除或複製的爲非整行,則粘貼至光標所在字符的前面

替換

  • R 替換模式,替換多個字符
  • r# 將當前光標的字符替換爲#,這裏的#能夠是任何字符

##撤銷編輯ide

  • u 撤銷前一次的編輯操做,鏈接u命令能夠撤銷此前的n次編輯操做
  • ctrl+r 還原最近一次的撤銷操做
  • . 重複前一次編輯操做
在末行模式下

刪除

  • 1,5d 刪除第1到第5行post

  • 範圍表示學習

表示方法 意義
. 光標所在行
$ 最後一行
+# 光標所在日後的#行
$-# 卻是第#+1行
% 表示全文

文本查找

  • /word 從上往下查找匹配的內容
  • ?word 從下往上查找匹配的內容
  • n 從上往下查找匹配到的內容的下一條
  • N 從下往上查找匹配到的內容的下一條

行號

  • set nu 顯示行號
  • set nonu 取消顯示行號

查找並替換

  • #,# s/word1/word2/g

例:.net

:1,5 s/wj/jay/g  //把第一行到第五行中的wj替換爲jay
以上內容均屬學習時整理,若有不詳或錯誤,敬請指出。
本文做者: 壞壞
相關文章
相關標籤/搜索