vim的簡單應用

vim的簡單應用

        之前我們學習過Linux的思想,其中有一條就是一切皆文本,所以在這里大部分配置文件都是文本模式存在的,那么使用簡單的文字編輯器就可以修改配置了,之前我們學習過nano文本編輯器,但是Vim會比nano使用的更為方便,也更強大

  • 基本現在所有的Linux系統都會內置vim,但是其他的文本編輯器就不一定會有了。

  • vim具有程序編輯的能力,還可以使用字體顏色標明語法,方便程序設計。

  • 程序簡單,如果上手了之后會更加快速的編輯文本。

  • 很多軟件的編輯接口都會主動調用vim。

        本編輯器分為很多種類

  • 行編輯器:sed

  • 全屏編輯器:nano , vi

  • gedit 圖形編輯器

  • gvim vim的圖形版本

        vi的基本概念 基本上vim可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和擴展模式(last line mode),各模式的功能區分如下:

  • 命令模式:默認的模式,控制光標的移動、字符、字或行的刪除/剪切/粘貼,或者進入插入模式和擴展模式,相當于一個中轉站,你無論進入那個模式都需要在命令模式里切換。

  • 插入或者編輯模式:在這個模式里可以進行編輯,修改文本,按ESC退出到命令模式,在命令模式按i進入到編輯模式(后面會講很多方法進入插入模式)。

  • 擴展命令模式:將文件保存或者退出,也可以設置編輯環境,比如輸入命令尋找字符串,列出行號等。

模式轉換

        命令模式切換至編輯模式

  1. i      進入編輯模式光標原地不動

  2. a     進入編輯模式光標向后移動一位

  3. o     進入編輯模式光標向下插入一行

  4. I     進入編輯模式光標跳至行首

  5. A     進入編輯模式光標跳至行尾

  6. O     進入編輯模式光標向上插入一行

        模式轉換

  • 編輯模式按(Esc)切換至命令模式

  • 命令模式按(:)切換至擴展命令模式

  • 擴展命令模式按(Esc,enter回車)切換至命令模式

  • 鎖定和解鎖:Ctrl+s,ctrl+q

        擴展模式如何退出:

  1. :q     退出

  2. :q!     強制退出,不保存退出。

  3. wq     保存退出

  4. x     保存退出

        命令模式如何退出:

  1. ZZ     保存退出

  2. ZQ     不保存退出

        擴展模式(Ex模式)

  • 按(:)進入編輯模式

  • 創建一個命令提示符(:)在屏幕底部顯示

  • 命令:

  1. r+文件名     讀文件內容到當前光標處

  2. w+文件名     將當前文件內容寫入到另一個文件(另存為)

  3. !+命令     執行命令

  4. r!+命令     將執行命令的輸出讀入進來

        命令模式

  • 字符間移動:
  1. h     向左移動(87鍵盤)     ←  (全鍵盤)

  2. l     向右移動(87鍵盤)     →   (全鍵盤)

  3. j     向下移動(87鍵盤)      ↓    (全鍵盤)

  4. k     向上移動(87鍵盤)     ↑    (全鍵盤)

  5. w     下一個單詞的詞首

  6. e     當前或下一個單詞的詞尾

  7. b     當前或前一個單詞的詞首

  8. H     頁首

  9. M     頁中間行

  10. L     頁底

  11. G     最后一行行首

  12. ^     跳至行首的第一個非空白字符

  13. 0     跳至行首

  14. $     跳至行尾

  15. gg     第一行行首

  16. Ctrl+f     向文件尾部翻一屏

  17. Ctrl+b     向文件首部翻一屏

  18. Ctrl+d     向文件尾部翻半屏

  19. Ctrl+u     向文件首部翻半屏

  • 刪除,替換:
  1. x     刪除光標處字符

  2. 3x     刪除光標處起始3個字符(數字可以隨意換)

  3. xp     交換光標所在處前后的字符位置

  4. ~     轉換大小寫

  5. J     刪除當前行后的換行符

  6. r     替換光標所在處的字符

  7. R     切換成REPLACE模式(替換模式)

  • 刪除,復制,粘貼:
  1. d$     刪除到行尾

  2. d^     刪除到非空白行

  3. d0     刪除到行首

  4. dw     刪除一個單詞

  5. dd     刪除一行 (刪除命令d可以結合其他命令一起使用,我就不全部寫下去了)

  6. D     從當前光標位置一直刪除到行尾,留空行(d$一樣)

  7. y     復制 (跟d一樣,可以結合其他命令一起使用,我就不全部寫了)

  8. yy     復制行

  9. p     粘貼

  • 撤銷
  1. u     撤銷最近的更改

  2. #u     撤銷之前多次更改 (#次)

  3. U     撤銷光標在這此行前后所有操作(光標不可離開這行,離開則無效)

  4. (.)     重復前一個動作

  5. n(.)     重復前一次操作n次

(注意在vim里面一定要注意大小寫,大小寫一定要分清楚)

沒事可以多看看圖片,當然自己多敲敲最好:

vim的簡單應用

        擴展命令模式

  • 按(:)進入擴展命令模式

  • 位置定界

  1. #     具體第#行,如果是3就是第3行。

  2. #,#     從左側#表示起始行,到右側#表示結尾行

  3. #,+#     從左側#表示起始行,加上右側#表示結尾行,如果2,+3就是2到5行

  4. (.)     當前行

  5. $     最后一行

  6. %     全文

  7. /PATTERN     從當前光標所在處向文件尾部查找

(例如:/^a 搜索a開頭)

vim的簡單應用

  1. ?PATTERN     從當前光標所在處向文件首部查找
  • s 在擴展模式下完成查找替換的操作

  • :%s /文件1/文件2/修飾符/ 搜索文件1替換為文件2

  • 修飾符

  1. i     忽略大小寫

  2. g    全局替換;默認情況下,每一行只替換第一次出現的

  3. gc     全局替換,替換時會詢問

        編輯二進制文件

  • 以二進制方式打開文件:vim -b 文件

  • 擴展命令模式下,利用xxd命令轉換為易讀的十六進制:%!xxd

  • 編輯二進制文件

  • 擴展命令模式下,利用xxd轉換回二進制:%!xxd -r

  • 保存退出

        vim 可以同時打開多個文件,簡稱多文件模式

  • vim 文件1 文件2 文件3
  1. :next     下一個

  2. :prev     前一個

  3. :first     第一個

  4. :last     最后一個

  5. :wall    保存所有

  6. :qall     退出所有

  7. wqall     保存退出所有

        vim 可以使用多個窗口

  • 多文件分割
  1. vim -o     水平分割

  2. vim -O    垂直分割

  3. 在窗口里面切換:Ctrl+w,Arrow

  • 單文件窗口分割
  1. Ctrl+w,s:split     水平分割

  2. Ctrl+w,v:vertical     垂直分割

  3. Ctrl+w,q     取消相鄰窗口

  4. Ctrl+w,o     取消全部窗口

  5. wqall 退出

        寄存器

  • 寄存器就是粘貼,復制的意思,在Linux里一共有26個寄存器和一個無名寄存器,意思就可以復制26個不同的內容,然后進行粘貼,相當方便。

  • 從a-z,一共26個字符,就相當于26個寄存器,它的時候方法是:

  • 復制粘貼的時候加上a,就是復制到a的寄存器中

  1. “ayy”     復制 (a可以隨時更改一共26個字符,可以存26個)

  2. “ap”       粘貼 (a可以隨時更改一共26個字符,可以存26個)

        vim的功能相當強大,這些都只是其中的一部分,這么多功能還要你自己去熟練運用,當你熟悉之后,你可以查看幫助了解更多。

  • type vim 查看是內部或外部命令

  • help 查看內部命令幫助

  • man 查看外部命令幫助

原創文章,作者:Az2h1丶,如若轉載,請注明出處:http://www.www58058.com/78154

(0)
Az2h1丶Az2h1丶
上一篇 2017-06-17 16:47
下一篇 2017-06-17 17:17

相關推薦

  • N25-第16周博客作業

    1、源碼編譯安裝LNMP架構環境;     安裝nginx:      1)安裝依賴包 ]# yum groupinstall “Development Tools” “Development Libraries” -y ]# yum install wget openssl-devel ncurses-de…

    2017-05-21
  • SSH端口轉發

    ? SSH 會自動加密和解密所有SSH 客戶端與服務端之間的網絡數據。但是,SSH 還能夠將其他TCP 端口的網絡數據通過SSH 鏈接來轉發,并且自動提供了相應的加密及解密服務。這一過程也被叫做“隧道”(tunneling),這是因為SSH 為其他TCP 鏈接提供了一個安全的通道來進行傳輸而得名。例如,Telnet,SMTP,LDAP 這些TCP 應用均能夠…

    2017-09-10
  • 第二周作業

    linux 文件管理命令 rm、mv、cp rm rm命令:remove rm [OPTION]… FILE… 常用選項: -i:interactive (默認rm是‘rm -i’的別名) -f:force -r: recursive        &nb…

    Linux干貨 2016-12-08
  • 第一周作業

    一、計算機的組成及功能 計算機是由硬件和軟件組成, 1、硬件主要分為五個部分: 1) 控制器(Control)  CPU 2) 運算器(Datapath)   3) 存儲器(Memory)  內存 4) 輸入(Input system)  鍵盤、鼠標 5) 輸出(Out…

    Linux干貨 2017-07-11
  • NoSQL理論基礎及安裝、基本操作

    30分鐘開始 分布式系統理論: CAP: 一致性 可用性 分區容錯性     MongoDB: 安裝 crud 索引 副本集 分片   NoSQL:非關系型、分布式、不提供ACID功能 技術特點: 1、簡單數據模型 2、元數據和應用數據分離(分不同服務器存儲) 3、弱一致性   優勢: 1、避免不必要的復雜性 2、高吞…

    2016-11-27
欧美性久久久久