linux--vim

來源:互聯網
上載者:User

標籤:ar   使用   sp   strong   檔案   資料   on   問題   bs   

下面是最近學習vim的一些知識點總結

***部落格園--邦邦醬好***

 

1.介紹
  linux在文字介面下的文書編輯器有:emacs,pico,nano,joe與vim等。
  為何要學vim(vim是vi的進階版本)
  (1)幾乎所有的系統都會內建vi,其他的編輯器不一定存在
  (2)很多個別軟體的編輯器介面都會主動呼叫vi
  (3)vim具有程式編輯的能力,主動以字型顏色辨別文法的正確性
  (4)程式簡單,編輯速度相當快速
  (vi模式下編輯視窗右下角不會顯示行號。)

2.vi共分為三種模式:一般模式,編輯模式,指令列命令模式
  (1)vi開啟文檔,直接進入一般模式。
    在這個模式中你可以使用【上下左右】按鍵來移動游標,可以使用【刪除字元】或者【刪除整行】來處理文檔內容,也可以使用【複製粘貼】來處理你的檔案資料。
  (2)按下【i,I,o,O,a,A,r,R】後才從一般模式進入編輯模式。要回到一般模式時,必須按下【Esc】鍵才可退出編輯模式。
  (3)按下【:/?】三個中的任何一個按鈕,就可以將游標移動到最底下那一行,這時從一般模式進入指令列命令模式(編輯模式和指令列模式之間不可切換)。它可提供你搜尋資料,讀取,存檔,取代字元,離開vi,顯示行號等動作。

3.一般模式下移動游標的方法
  (1)h或向左方向鍵:向左移動一個字元
  (2)j或向下方向鍵:向下移動一個字元
  (3)k或向上方向鍵:向上移動一個字元
  (4)l或向右方向鍵:向右移動一個字元
  (5)向*移動N行:輸入N,再按下對應的動作
  (6)ctrl+f:向下移動一頁
  (7)ctrl+b:向上移動一頁
  (8)ctrl+d:向下移動半頁
  (9)ctrl+u:向上移動半頁
  (10)N<space>:輸入N,再按space空格鍵,游標會向右移動N個字元
  (11)0或者home鍵:移動到這一行的最前面字元處
  (12)$或End鍵:移動到這一行的最後面字元處

4.一般模式下搜尋與取代的方法
  (1)/word:在當前游標向下搜尋,word是想要搜尋的字串,輸入/word後,按下enter鍵即可。
  (2)?word:在當前游標向上搜尋,word是想要搜尋的字串,輸入?word後,按下enter鍵即可。
  (3):n1,n2s/word1/word2/g:在第n1和n2行之間尋找word1這個字串,並取代為word2
  (4):1,$ss/word1/word2/g:在第1行開始到最後一行尋找word1這個字串,並取代為word2
  (5):1,$ss/word1/word2/gc:在第1行開始到最後一行尋找word1這個字串,並取代為word2,並在取代前給予使用者確認

5.一般模式下的刪除,複製與粘貼
  (1)x,X:在一行字中,x向後刪除一個字元;X為向前刪除一個字元
  (2)Nx:向後連續刪除N個字元
  (3)dd:刪除游標所在的那一整行
  (4)Ndd:刪除游標所在的向下N行
  (5)d1G:刪除游標所在到第一行的所有資料
  (6)dG:刪除游標所在到最後一行的所有資料
  (7)d0:刪除游標到該行最前面的一個字元
  (8)d$:刪除游標到該行最後的一個字元
  (9)yy:複製游標所在的那一行
  (10)Nyy:複製游標所在的向下N行
  (11)y1G:複製游標所在到第一行的所有資料
  (12)yG:複製游標所在到最後一行的所有資料
  (13)y0:複製游標所在字元到該行行首的所有資料
  (14)y$:複製游標所在字元到該行行尾的所有資料
  (15)p,P:p為把複製的資料在游標的下一行進行粘貼;P為把複製的資料在游標的上一行進行粘貼
  (16)u:複原上一個動作
  (17)ctrl+r:重做上一個動作
  (18).:小數點,代表重複前一個動作


6.編輯模式下可用的按鍵
  (1)i,I:進入插入模式。i為從當前游標處插入;I為在當前所在行的第一個非空格符處開始插入。
  (2)a,A:進入插入模式。a為從當前游標所在的下一個字元處開始插入;A為在當前所在行的最後一個字元處開始插入。
  (3)o,O:進入插入模式。o為從當前游標所在的下一行插入新的一行;O為在當前所在行的上一行插入新的一行。
  (2)r,R:進入插入模式。r只取代游標所在的那一個字元一次;R會一直取代游標所在的文字,直到按下ESC鍵為止

7.指令列模式下可用的按鍵
  (1):w:將編輯的資料寫入文檔
  (2):w!:若檔案屬性為【唯讀】時,強制將編輯的資料寫入文檔。最後能否寫入跟系統賬戶許可權有關。
  (3):q:離開vi
  (4):q!:若修改過文檔,不想儲存,使用!為強制離開並且不儲存文檔
  (5)ZZ:若文檔沒修改,則離開;若文檔有修改,則儲存後離開
  (6):w[filename]:將編輯的資料存放區成另一個文檔
  (7):r[filename]:將另一個文檔的資料追加到游標當前所在的位置後面
  (8):n1,n2 w [filename]:將第n1到n2行的資料存放區成另一個文檔
  (9):!command:暫時離開vi到指令列模式下執行command的結果
  (10):set nu:顯示行號
  (11):set nonu:取消顯示行號

8.vim的暫存檔,救援恢複與開啟時的警告資訊
  (1)介紹
    當我們使用vim編輯filename文檔時,vim會在filename的目前的目錄下再建立一個名為.filename.swp的暫存檔。你對filename的動作都會記錄到這個暫存檔中。如果系統由於某些原因斷線了,導致編輯的文檔沒有儲存,這時候.filename.swp就能發揮救援恢複功能了。
  (2)類比系統斷線
    開啟文檔進行編輯後,在vim的一般模式下,按下ctrl+z鍵,vim就會被丟到背景去執行。接下來直接關閉終端面板。這就等於系統斷線,剛剛對文檔的操作沒有被儲存到。
  (3)開啟時的警告資訊
    在系統斷線後,再次開啟該文檔vim filename,就會出現警告資訊
      問題一:可能與其他人同時編輯這個檔案-->找到另一個人請他結束對文檔的操作。或者選擇開啟唯讀(O)模式
      問題二:系統不知名原因導致vim中斷-->如果之前的vim動作沒有儲存,可以按下R(ecover),這時vim會載入.filename.swp的內容來恢複文檔。
    注意:恢複文檔後,.filename.swp不會自動刪除,記得要手動刪除它,否則每次開啟filename都會有警告資訊。

9.區塊選擇
  (1)按鍵
    v:字元選擇,會將游標經過的地方反白選擇
    V:行選擇,會將游標經過的行反白選擇
    ctrl+v:區塊選擇,可以用長方形的方向選擇資料
    y:將反白的地方複製
    d:將反白的地方刪除掉
  (2)應用
    第一步:進入文檔,游標移動到某處,在一般模式下按下ctrl+v鍵,這時按下左右上下鍵進行區塊選擇
    第二步:按下y鍵進行複製,這時反白的區塊會消失
    第三步:移動游標到想要粘貼的地方,在一般模式下按下p鍵進行粘貼操作

10.多文檔編輯
  (1)難題:每個vim是獨立的,無法在vim1的文檔A中進行nyy操作,再去vim2的文檔B中進行p操作。
  (2)解決:使用指令在一個vim下同時開啟多個文檔進行編輯-->vim file1 file2
  (3)按鍵(一般模式下使用):
    :n:編輯下一個文檔
    :N:編輯上一個文檔
    :files:列出目前這個vim開啟的所有文檔

11.多視窗功能
  (1)難題:有一個文檔很大,需要對比前後的資料,如果使用下一頁ctrl+f,上一頁ctrl+b來跑前跑後查閱會非常不方便。
  (2)解決:在同一個vim中產生多個視窗
    第一步:開啟一個文檔vim file1,在一般模式下輸入“:sp”,就會產生另一個視窗,顯示的文檔也是file1
    第二步:還可以在一般模式下輸入“:sp file2”,就會產生另一個視窗,顯示的文檔也是file2
    第三步:可以使用ctrl+w+下上方向鍵(jk鍵)在多個視窗之間切換

12.環境預設
  (1)介紹:整體vim的設定值是放置在/etc/vimrc中,不過不建議修改它。但是可以修改~/.vimrc這個文檔,如果它不存在,可以建立它,再寫入想要的預設值。
  (2)常用的預設值:(可以在一般模式下輸入:set all來查閱)
    set nu -->顯示行號(不顯示是set nonu)
    set hlsearch -->高亮度搜尋(不顯示是set nohlsearch)
    set aotoindent -->自動縮排(不顯示是set noaotoindent)
    set ruler -->顯示右下角的狀態列
    set showmode -->顯示左下角的狀態列
    syntax on -->依據程式相關文法顯示不同顏色(不顯示是syntax off)
  (在~/.vimrc中批註資訊使用雙引號開頭:"批註:這裡是顯示行號)

13.中文編碼的亂碼問題
  一.中文編碼有big5和utf8兩種,如果出現亂碼,要考慮:
    (1)你的linux系統預設支援的語係數據:這與/etc/sysconfig/i18n有關
    (2)你的終端介面bash的語系:這與LANG這個參數有關
    (3)你的文檔原本的編碼
    (4)開啟終端機的軟體,比如GNOME下的視窗介面
  最重要的是第三四點,只要這兩點一致,基本不會有亂碼。
  二.轉換文檔的編碼
    iconv --list  -->列出iconv命令支援的語系
    iconv -f 原本編碼 -t 新編碼 filename [-o newfile]  (from A to B)
  查看文檔的編碼類別型:file filename

 

linux--vim

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.