日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Vim 上手指南【基础、中级】

發布時間:2024/9/30 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vim 上手指南【基础、中级】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

vi 編輯器是所有 Unix 及?Linux?系統下標準的編輯器,他相當于?windows?系統中的記事本,但遠比 Windows 下的記事本強大上百倍。是我們使用?Linux?系統不能缺少的工具。不過由于他是在終端界面中運行的(如下圖),所以讓很多習慣了GUI界面的新手初見甚是頭大。本文就的目的就是旨在讓一個新手能夠快速入門,達到中級水平,從而自由的使用 VI/VIM 進行快速基本的文件編輯。

1. 首先談一下 vi 與 vim 的區別

  • vi 是 Visual Interface 的縮寫,即可視化接口【是所有 Linux 自帶的,無需再安裝】
  • vim 是 vi iMprove 的縮寫,即 vi 的增強版(具有語法著色功能)【并非所有自帶,但各個 Linux 發行版軟件源中都有,可以使用對應發行版的包管理命令在線安裝】
  • vim可以當作vi的升級版本,他可以用多種顏色的方式來顯示一些特殊的信息。
  • vim會依據文件擴展名或者是文件內的開頭信息, 判斷該文件的內容而自動的執行該程序的語法判斷式,再以顏色來顯示程序代碼與一般信息。
  • vim里面加入了很多額外的功能,例如支持正則表達式的搜索、多文件編輯、塊復制等等。 這對于我們在Linux上進行一些配置文件的修改工作時是很棒的功能。
  • 2. vim 的三種工作模式及其切換

    PS:這三種模式必須搞明白,不然無法繼續下面的學習。

    2.1 三種模式

    命令模式(默認):剛進入vim的時候,默認就是 命令模式,可以復制行,刪除行等。
    輸入模式:可以輸入編輯文本內容。
    末行模式:在最下邊,除編輯模式,可以輸入諸多管理員命令

    2.2 模式轉換

    PS: 在正式使用 vim 前,需要提醒大家,除了在進入輸入模式之后,編輯文本的時候可以使用中文輸入法,其他模式下進行的各種操作操作都要切換成英文(及半角字符輸入),否則某些操作會失敗。

    #vim text.txt 進入命令模式【存在 text.txt 的話打開,不存在創建 text.txt】 命令模式 -> 輸入模式:【i/I:insert、a/A:append、o/O:open、r:replace】i:在當前光標所在字符的前面,轉為輸入模式 I:在當前光標所在行的行首轉換為輸入模式a:在當前光標所在字符的后面,轉為輸入模式A:在光標所在行的行尾,轉換為輸入模式o:在當前光標所在行的下方,新建一行,并轉為輸入模式O:在當前光標所在行的上方,新建一行,并轉為輸入模式s:刪除光標所在字符r:替換光標處字符輸入模式 -> 命令模式ESC鍵命令模 -> 末行模式輸入":" 即可 轉為末行模式在末行模式下10d:可刪除第10行10,20d:刪除10-20行set nu:顯示行號!命令:可以執行bash命令末行模式-操作末行模式 -> 命令模式ESC鍵

    3.使用 vim 如何打開文件?

    1) vim /path/to/somefile :vim后跟文件路徑及文件名 ,如果文件存在,則打開編輯文件窗口,如果文件不存在,則創建文件

    [root@sky ~]#?vim /etc/fstab

    2) vim + # :打開文件,并定位到第 # 行,#代表數

    root@sky ~]# vim +20 /etc/fstab # 打開后光標定位到第三行行首

    3) vim + :打開文件,定位到最后一行

    4)?vim +/PATTERN:打開文件,定位到第一次被 PATTERN [即正則表達式] 匹配到的行的行首

    root@sky:~$ vim +/swap /etc/fstab

    4.?關閉文件

    末行模式下:

    # w: write[寫入即保存], q: quit[退出] w:保存 q:退出 wq 或 x:保存退出,wq 和 x 都是保存退出 q!:強制退出 w!:強制保存,管理員才有權限

    命令模式下:

    ZZ:保存并退出

    5.移動光標

    ?1) 命令模式下:

    ①逐字符移動【在使用 vim 的時候還可以使用鍵盤的方向鍵移動,使用 vi 的時候是不可以用方向鍵的,有些版本的 Linux 默認使用了 alias 命令重新給 vim 起了 vi 的別名,使得直接使用 vi 打開的其實是 vim】h:向左l:向右j:向下k:向上#h:向左移動 # 個字符【最強大之處在這】 ②以單詞為單位移動w:移到下一個單詞的詞首 【word】e:跳至當前或下一個單詞的詞尾 [word end]b:跳至當前或上一個單詞的詞首 [word begin]#w:表示移動 # 個單詞 ③行內跳轉0:絕對行首^:行首第一個非空白字符 [這里記得使用英文輸入法,否則無效]$:絕對行尾 [這里記得使用英文輸入法,否則無效] ④行間跳轉#G:跳轉到第#行G:最后一行

    2) 末行模式下:

    ?直接輸入行號即可跳轉到指定行

    6.翻屏

    命令模式下:

    Ctrl+f:向下翻一屏 Ctrl+b:向上翻一屏Ctrl+d:向下翻半屏 Ctrl+u:向上翻半屏 

    7.刪除 d [其實應該叫 “剪切” 更合適點]

    PS: d 操作刪除處的內容其實保存在了剪切板,所以可以將刪除的刪除的內容,粘貼至別處。所以叫做剪切更加合適。

      命令模式下

        ①刪除單個字符:x:刪除光標所在處單個字符#x:刪除光標所在處及向后共#個字符②刪除命令:dd命令跟 跳轉命令組合使用 如:dw 表示刪除光標所在位置到下一個單詞詞首所有字符#dw,#de,#db :#dw表示 刪除當前光標所在處及向后第#個單詞詞首所有字符 dd:刪除當前光標所在行#dd:刪除包含當前光標所在行內往下的 # 行,

      末行模式下:

    末行模式下 位置符號StartADD, EndADDd.:表示當前行$:最后一行+#:向下的#行$-#:向上的#行 末行模式下,刪除命令d可以跟以上 位置符號 相結合使用   StartADD, EndADDd:刪除 StartADD 到 EndADDd 位置的所有行,例如:10, 15d:刪除 10 到 15 行所有內容d:刪除光標所在行,同dd?

    8. 粘貼命令 p

    ? 命令模式:

      p(小寫p):粘貼至光標所在字符的后面P(大寫P):粘貼至光標所在字符的前面

    9. 復制命令 y

    用法同d命令

    命令模式yy:復制當前行yw (y#w,ye,y#e,yb,y#b):復制光標當前位置到下個單詞詞首內容.#代表數字y#G:復制當前位置當#行處的所有內容末行模式StartADD,EndADDy:復制StartADD到EndADDd位置的所有行,例如:10,15y:復制10到15行所有內容+3y:復制當前位置向下3行

    10.視圖模式 v

    ?命令模式:

    v:按字符選取,鍵盤控制光標 劃過 的區域被選取     V:按矩形選取,鍵盤控制光標劃過的行被選取

    小操作:在命令模式下使用 v 命令進入視圖模式選取數據,之后直接使用 y 命令進行復制,然后再使用 p 命令粘貼到指定位置。

    11. 修改 c :

    命令模式:

    ? ?使用 c 會先刪除選中內容,再轉換為輸入模式

    12. 替換 r,后面有更強的全局替換

    命令模式:

    r:單字符替換,會替換光標選中字符 R:替換模式,可以做字符替換。

    13.?撤銷與恢復:u(undo)、Ctrl + z

    命令模式:

    u:撤銷前一次編輯操作 #u:直接撤銷#次操作 Ctrl+r:恢復上一步

    14.?重復前一次編輯操作 .

    命令模式:

    .:比如 上一次dd刪除了一行,現在輸入.就可以重復dd刪除行的操作

    15. 查找:

    末行模式:

    # PATTERN 表示正則表達式 /PATTERN:從當前位置向后查找 ?PATTERN:從當前位置向前查找 n:向下查找 N:向上查找

    找到后按回車,此時便可以使用 n/N 進行逐個定位,定位到指定位置之后,你可以使用“命令模式”下的命令進行編輯。

    16. 查找并替換

    在末行模式下使用 s 命令【s:表示 substitute 】:{作用范圍}s/{目標}/{替換}/{替換標志}ADDR1,ADDR2 表示地址;比如1,$表示全文 (%也表示全文)g:表示全局替換i:表示忽略大小寫 例如: :%s/dfg1/heihei/gi # 表示在全文范圍(%)內,查找(dfg1)并替換為(heihei), 所有查找到的都會被替換(g),且忽略大小寫(i)

    17. vim 打開多個文件

    vim FILE1 FILE2 FILE3末行模式下:next 切換到下一個文件:prev 切換到上一個文件:last 切換到最后一個文件:first 切換到第一個文件 退出多個文件qa:全部退出

    18.分屏顯示一個文件

    vim打開文件后Ctrl+w,s:水平拆分窗口 【先按 Ctrl+w , 之后松手再去按 s】Ctrl+w,v:垂直拆分窗口 【先按 Ctrl+w , 之后松手再去按 v】 在窗口間切換光標Ctrl+w,ARROW  【先按 Ctrl+w , 之后松手再去按 方向鍵】比如 Ctrl+w,→:(使用箭頭方向鍵)光標切換到右邊的窗口比如 Ctrl+w,h(左), j(下), k(上), l(右) 也可以切換窗口 在末行模式下:qa退出所有窗口

    19.分窗口編輯多個文件

    vim -o:水平分割顯示 vim -O:垂直分割顯示 例如:vim -o /etc/rc.sysinit /etc/inittab :水平分割顯示/etc/rc.sysinit和/etc/inittab 這2個文件

    其實也可以先一次打開多個文件(參考17),之后結合上面的命令整出多個窗口,大家可以自己思考去折騰。

    20.另存為(w + path),可以選擇指定內容

    末行模式下:

    w:表示保存當前文件 w /path/to/somewhere:將當前文件另存為到路徑指定的地方 ADDR1,ADDR2 w /path/to/somewhere:將ADDR1到ADDR2指定的地址文本 另存為到路徑指定的地方 例如::7,8 w ./heihei.mc # 將當前文件的7-8行寫到 heihei.mc 文件內,文件不存在則創建

    21.將另一個文件的內容填充在當前文件中( r 表示讀)

    末行模式下r: /path/to/somefile 例如:vim /etc/rc.sysinit 打開文件后,末行模式 輸入 :r /etc/inittab :會將 inittab文件的所有內容附加到rc.sysinit文件光標所在的位置

    22.跟shell交互(vim 末行模式執行shell)

    末行模式 ! command 即可 例如: ! ls /etc/:會列出/ect目錄下所有文件及目錄 按 enter 后回到 vim 編輯狀態

    23. 高級話題

    在末行模式下 ①顯示或取消行號set nu(set number):顯示行號set nonu:取消顯示行號 ②顯示忽略或區分字符大小寫set ic (set ignorecase):忽略大小寫set noignorecase:區分大小寫 ③設定自動縮進set ai(set autoindent):自動縮進set noai:取消自動縮進 ④查找到的文本高亮或取消高亮顯示set hlsearch:高亮顯示搜索到的文本set nohlsearch:取消高亮顯示搜索到的文本 ⑤語法高亮syntax on:打開語法高亮顯示syntax off:關閉語法高亮顯示

    24.vim配置文件

    全局vim配置文件:/etc/vimrc 個人vim配置文件:~/.vimrc [root@sky ~]# echo "set nu" >> /root/.vimrc # root用戶用vim打開文件時,顯示行號。

    參考自:https://www.cnblogs.com/libaoliang/articles/6961676.html

    PS:在原文的基礎上根據自己的理解,對一些點做了補充,力求更加能讓讀者明白。

    總結

    以上是生活随笔為你收集整理的Vim 上手指南【基础、中级】的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。