Linux文本編輯器-vi/vim


  vi是Linux命令行界面下的文字編輯器,vim是vi的增強版(Vi IMproved),完全兼容

  可以理解成普通的txt文本與word文檔之間的差距。

  注:還有一款全屏編輯器是nano,可以了解下

 

【vim的三種模式】

  普通模式,編輯模式,命令模式

  

  1.普通模式

    使用vim命令打開文件,只能使用上下左右鍵移動光標,並且操作復制,粘貼,刪除等之類的工作

 

  2.編輯模式

    普通模式下不能對文件內容進行編輯,只有按下“i,I,o,O,a,A,r,R,s,S”,等字母,進入編輯模式之后才可以執行錄入文字

    編輯模式有一個插入的標記在屏幕的最下方

 

 

 

 

 

 

 

 

 

 

 

  3.命令模式

    在普通模式下,輸入“:/  ?”時,光標會自動定位在那一行,此模式中可以執行保存,退出,搜索,替換,顯示行號等相關操作

    

 

 

 

 

 


  vim [OPTION]...FILE...
  如果文件存在,則打開它,如果不存在,則打開一個新的文件,如果存盤則創建文件,不存盤則不創建文件

【vim打開文件進行快速定位】    

    +#:打開文件后,直接讓光標處魚第#行的行首
    +/PATTERN:打開文件后,直接讓光標處於第一個被PATTERN匹配當的行的行首
   

 vim +11 /etc/passwd

    -b:二進制方式打開文件
    -d:比較多個文件的差異
    -m:只讀打開文件
    ex file 或 vim -e:直接進入ex模式

【模式轉換】

  普通模式 ----> 插入模式
    i:insert,在光標所在處輸入
    I:在光標所在行的行首輸入
    a:在光標所在處的后一個字符輸入
    A:在光標所在行的行尾輸入
    o:在當前光標所在行的下一行新開一行 open
    O:在當前光標所在行的上一行新開一行

  字符間跳轉:
    h:左
    j:下
    k:上
    l:右 #[hljk]:指定一次跳轉多少的字符數

  單詞間跳轉:
    w:跳到下一個單詞的詞首
    e:當前或下一個單詞的詞尾
    b:當前或上一個單詞的詞首
  #[web]:指定一次跳轉多少個單詞數
  

  當前頁跳轉
    H:頁首
    M:頁中
    L:頁底

   翻屏:
    Ctrl+f:向文件尾部翻一屏
    Ctrl+b:向文件首部翻一屏
    Ctrl+d:向文件尾部翻半屏
    Ctrl+u:向文件首部翻半屏

  行首行尾跳轉:
    ^:調到行首非第一個非空白字符處
    0:調到行首
    $:跳轉至行尾

  行間移動:
    #G:跳到第#行
    G:最后一行   例如:1G或gg:第一行
    

  字符編輯:
    x:刪除光標處的字符
    #x:刪除光標處起始的#個字符
    xp:交換光標所在處及其后面字符的位置 原理是:先刪除光標所在位置,然后使用p粘貼
    ~:轉換大小寫

  替換命令:
    r:替換個光標所在處的字符 7rv 光標后7為替換成v
    R:切換成replace模式

  刪除命令:
    d:刪除命令,可結合光標跳轉命令實現范圍刪除
    d$:刪除光標至行尾的字符
    d^:刪除光標至行首非空白字符處
    d0:刪除光標至行首
    dw:刪除光標當標至下一個單詞的詞首
    de:刪除光標至當前或下一個單詞的詞尾
    db:刪除光標至上一個單詞的詞首
    dd:刪除光標所在行
    #dd:刪除#光標后的#行

  復制命令:
    y:復制
    y$:從光標所在處復制到行尾
    y0:從光標所在處復制到行首
    y^:從光標所在處復制到行首的非空白字符處
    ye:從光標所在處復制至當前或下一個單詞的詞尾
    yw:從光標所在處復制至下一個單詞的詞首
    yb:從光標所在處復制至上一個單詞的詞首
    yy:復制光標所在行
    #yy:復制多行
  

  粘貼命令:
    p:粘貼,如果緩沖區為整行,則粘貼在光標所在行的下一行,否則,粘貼在光標所在處的后面
    P:粘貼,如果緩沖區為整行,則粘貼在光標所在行的上一行,否則,粘貼在光標所在處的前面

  可視化模式:
    v 按字符選定
    V 按航選定,經常結合編輯命令,d,c,y
    撤銷此前的編輯
    u(undo)撤銷此前的操作
    #u 撤銷指定次數的操作
    撤銷此前的撤銷

 

vim中的末行模式:

    按“:”進入末行模式

(1)地址定界
  :start_pos,end_pos
  #     具體第#行,例如2表示第2行
  #,#     從左側#表示行起始,到右側#表示行結束
  #,+#     從左側#表示行起始,加上右側#表示的行數
  .       表示當前行
  $       表示最后一行
  %       全文,相當於1,$

  /part1/,/part2/
        從第一次被part1模式匹配到的行開始,一直到第一次被part2匹配到的行結束
    使用方式:
      后跟一個編輯命令
        d
        y
        w /PATH/TO/SOMEWHERE

:1,20w /tmp/.txt

        r filename:讀取文件內容到當前文件中

:r /etc/fstab

        q:退出
        q!:強制退出
        wq:保存並退出
        wall 保存所有
        x:保存並退出
        ZZ:保存退出
        ZQ:不保存退出
(2)查找
    /PATTERN 從當前光標所在處尾部查找
    ?PATTERN 從當前光標所在處首部查找
    n 與命令同方向
    N 與命令反方向
(3)替換
    s 在末行模式下完成查找替換操作
    s/要查找的內容/替換為的內容/修飾符
    替換的內容可以使用反向引用\1,\2,可以使用&引用前面查找時查到的內容
  

  修飾符號:
    i 忽略大小寫
    g 全局替換,默認情況下,每一行只替換第一次出現

 

【定制vim的工作特性】

  配置文件:永久有效
  全局 :/etc/vimrc
  個人:~/.vimrc 需要自己創建
  末行:當前vim進程有效

    (1)顯示行號:
      set nu 顯示;
      set nonu 取消顯示;

    (2)括號成對匹配:括號高亮
      set sm:設置;
      set nosm:取消;

    (3)自動縮進:
      set ai
      set noai

    (4)高亮搜索:
      set hlsearch high light search
      set nohlsearch nohls

    (5)語法高亮:
      syntax on
      syntax off

    (6)忽略字符的大小寫:
      set ic
      set noic


    (7)文本格式:
      set fileformat=dos :啟用windows格式;
      set fileformat=unix:啟用unix格式;

    (8)設置文本寬度:
      set textwidth=65 (vim only)
      set wrapmargin=16


    (9)設置tab鍵的縮進長度:
      set tabstop=4
      set softtabstop=4:設置一個退格鍵退回來的長度;
      set shiftwidth=#:設置每一級縮進的長度;
      set authindent:表示自動縮進;

      set noautoindent   取消自動縮進,使用方法:在粘貼數據之前使用,然后粘貼文件。如阿雲托管k8s集群需要的config文件

      set paste   粘貼文本文件

    (10)幫助信息:
      :help option-list
      :set or :set alal

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM