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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

vim 文本编辑器

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vim 文本编辑器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

4.2 vim文本編輯器

4.2.1 簡介

vim是vi的升級版,最常見的區別是能用多種顏色顯示顯示系統文件的一些特殊信息。

  • vi: Visual Interface 文本編輯器,可視化接口
  • vim:vi iMproved的縮寫,即vi的增強版
    vim編輯器分為三種主要模式:
  • 命令模式(編輯模式):默認模式,移動光標,剪切/粘貼文本(界面表現:左下角顯示文件名或為空)
  • 插入模式(輸入模式):修改文本(界面表現:左下角顯示—INSERT–)插入模式下,按ESC按鍵返回命令模式
  • 末行模式(擴展模式):保存、退出等(界面表現:左下角顯示—VISUAL–)末行模式下連續按兩次ESC按鍵返回末行模式
    • Esc建:退出當前模式
    • Esc建Esc建:總是返回到命令模式

    4.2.2 語法

    vim [options] [file …]
    vim [options] -
    vim [options] -t tag
    vim [options] -q [errorfile]
    ex
    view
    gvim gview evim eview
    rvim rview rgvim rgview

    • 用vim打開文件用法:
      例如:【vim abc.txt】打開abc.txt文件
      例如:【vim +# abc.txt】打開abc.txt文件,光標定位在abc.txt文件的第#行
      例如:【vim + abc.txt】打開abc.txt文件,光標定位在最后一行
      例如:【vim +/PATTERN abc.txt】打開abc.txt文件,定位第一次被PATTERN(模式)匹配到的行的行首

    • 模式之間的切換
      注意:vim打開文件后,默認進入的模式為:命令模式:
      命令模式下進入插入模式(輸入模式)輸入:【i】或者【o】或者【a】等
      命令模式下進入末行模式(擴展模式)輸入:【:】
      使用vim編輯多個文件
      【vim FILE1 FILE2 FILE3】可以同時編輯FILE1 FILE2 FILE3這三個文件
      【:next】切換至下一個文件
      【:prev】切換至前一個文件
      【:last】切換至最后一個文件
      【:first】切換至第一個文件

    4.2.3 vim的命令模式(編輯模式)常用快捷鍵

    1) 模式轉換
    ?????????a) 【i】:在當前光標所在字符的前面,轉為輸入模式
    ?????????b) 【a】:在當前光標所在字符的后面,轉換為輸入模式
    ?????????c) 【o】:在當前光標所在行的下方,新建一行,并轉換為輸入模式:
    ?????????d) 【I】:在當前光標所在行的行首,轉換為輸入模式
    ?????????e) 【A】:在當前光標所在行的行尾,轉換為輸入模式
    ?????????f) 【O】:在當前光標所在行的上方,新建一行,并轉換為輸入模式;
    ?????????g) 【cc】刪除當前行并輸入新內容,相當于S。擴展【#cc】
    ?????????h) 【C】刪除當前光標到行尾,并切換成插入模式

    • 改變命令
      【c】修改后切換成插入模式
    • 命令模式–>插入模式
      【c^】刪除光標處到行首的字符,并進入插入模式
      【c$】刪除光標處到行尾的字符,并進入插入模式
      【c0】(c零)刪除光標處到當前行首的第一非空字符,并進入插入模式
      【cb】刪除當前第一個單詞,并進入插入模式
      【ce】刪除下一個單詞,并進入插入模式
      【cw】刪除光標處到單詞詞尾,并進入插入模式

    2) 逐字符移動
    ?????????a) 【h】向左
    ?????????b) 【l】向右(小寫的L)
    ?????????c) 【j】向上
    ?????????d) 【k】向下
    ?????????e) 【#COMMAND】移動#個字符
    ?????????例如: 【#h】向左移動#個字符
    ????????? 【#l】向右移動#個字符
    ????????? 【#j】向上移動#個字符(相當于向上移動#行)
    ????????? 【#k】向下移動#個字符(相當于向下移動#行)
    3) 當前頁跳轉
    ?????????a) 【H】:當前頁的頁首
    ?????????b) 【M】:當前頁的中間行
    ?????????c) 【L】當前頁的頁底

    4) 以單詞為單位移動
    ?????????a) 【w】移動至下一個單詞的詞首
    ?????????b) 【e】跳至當前或下一個單詞的詞尾
    ?????????c) 【b】跳至當前或前一個單詞的詞首
    ?????????d) 【#COMMAND】跳到第#個單詞
    ?????????例如: 【#w】跳轉到第#個單詞的詞首
    ????????? 【#e】向下跳轉到第#個單詞的詞尾
    ????????? 【#b】向上跳轉到第#個單詞的詞首
    5) 行內跳轉
    ?????????a) 【0】(零) :絕對行首,光標移動到當前行的行首
    ?????????b) 【^】光標移動到當前行首的第一個非空白字符
    ?????????c) 【&】光標移動到當前行的行尾
    6) 行間跳轉(相當于上下跳轉)
    ?????????a) 【G】跳轉到最后一行(整個文檔的最后一行)
    ?????????b) 【gg或者1G】跳轉到文檔的第一行
    ?????????c) 【#G】跳轉到第#行(文檔最上為第一行)
    ?????????注意:想要跳轉到最后一行可以輸入【0G】也是最后一行
    7) 句間移動
    ?????????a) 【)】下一句
    ?????????b) 【(】上一句
    8) 段落間移動
    ?????????a) 【}】下一段
    ?????????b) 【{】上一段
    9) 常用快捷鍵滾動
    ?????????a) 【Ctrl + e】向下滾動一行
    ?????????b) 【Ctrl + y】向上滾動一行
    ?????????c) 【Ctrl + d】向下滾動半屏
    ?????????d) 【Ctrl + u】向上滾動半屏
    ?????????e) 【Ctrl + f】向下滾動一屏
    ?????????f) 【Ctrl + b】向上滾動一屏
    10) 字符編輯

    • 【x】刪除光標處的字符
    • 【#x】刪除從光標處開始向后#個字符
    • 【xp】光標所在處的字符和光標后面的字符對調位置
    • 【~】轉換大小寫
    • 【J】刪除當前行后的換行符

    11) 替換命令(r,replace)

    • 【r】替換光標所在字符
    • 【R】切換成REPLACE模式

    12) 刪除命令(剪切命令)
    注意:d命令刪除的字符會默認復制到剪貼板
    ?????????a) 【d】刪除命令,可以結合光標跳轉字符,實現范圍刪除
    ?????????b) 【d$】刪除到行尾
    ?????????c) 【d^】刪除到非空行首
    ?????????d) 【d0】刪除到行首
    ?????????e) 【dd】刪除光標所在行
    ?????????f) 【#dd】多行刪除
    ?????????g) 【D】從當前光標位置一直刪除到行尾,留空行,等同于【d$】
    ?????????h) 【de】
    ?????????i) 【dw】
    ?????????j) 【db】
    ?????????k) 【#COMMAND】
    ?????????l) 【Shift + j】刪除兩行質檢的空行,實際上是合并兩行
    插入模式(輸入模式下的剪切)
    ????正常模式(默認模式)下按v(逐字)或V(逐行)進入可視模式,然后用【j】【k】【l】【h】命令移動即可選擇某些行或字符,再按d即可剪切

    13) 復制命令(y,yank)
    ?????????a) 【y】復制,可以結合光標跳轉字符,實現范圍復制(行為與d有類似之處)
    ?????????b) 【y$】復制到行尾
    ?????????c) 【y^】復制到非空行首
    ?????????d) 【y0】復制到行首
    ?????????e) 【yy】復制當前行
    ?????????f) 【#yy】復制多行
    ?????????g) 【Y】整行復制
    ?????????h) 【ye】
    ?????????i) 【yw】
    ?????????j) 【yb】
    ?????????k) 【#COMMAND】

    14) 粘貼命令(p,paste)
    ?????????a) 【p】緩沖區存的如果為整行,則粘貼當前光標所在行的下方,否則粘貼至當前光標所在處的后面
    ?????????b) 【P】緩沖區存的如果為整行,則粘貼當前光標所在行的上方,否則粘貼至當前光標所在處的前面
    15) 撤銷更改
    ?????????a) 【u】撤銷最近的更改
    ?????????b) 【#u】撤銷之前多次更改
    ?????????c) 【U】撤銷光標落在這行后所有此行的更改
    ?????????d) 【按Ctrl + r】重做最后的“撤銷”更改(相當于取消撤銷)
    ?????????e) 【.】重做前一個操作
    ?????????f) 【#】重復前一個操作#次

    4.2.4 vim的末行模式(擴展模式)

    命令模式下進入末行模式(擴展模式)輸入:【:】

    4.2.4.1 退出命令
    ?????????【:q】退出
    ?????????【:x】保存退出
    ?????????【:wq】保存并退出
    ?????????【:q!】強制退出并或略所有更改
    ?????????【:e!】放棄所有修改,并打開源文件
    注意:在默認模式的退出方法
    ?????????【ZZ】保存并退出
    ?????????【ZQ】不保存退出
    附加:
    【:!COMMAND】執行COMMAND命令,和shell交互
    【r!COMMAND】讀入命令的輸出
    【r filename】讀取filename文件內容到當前文件中
    【w filename】將當前文件內容下入filename文件中

    4.2.4.2 地址定界(可以用于查找和替換等)
    語法:【:start_pos,end_pos】
    例如:
    ?????????【:#】具體第#行,例如2表示第2行
    ?????????【#,#】從左側#表示起始行,到右側#表示結尾行
    ?????????【#,+#】從左側#表示的起始行,加上右側#表示的行數
    例如【:2,+3】表示2到5行
    ?????????【.】表示當前行
    ?????????【$】最后一行
    ?????????【%】全文,相當于【1,$】
    例如:【:.,$-1】表示當前行到倒數第二行

    • 擴展命令模式:地址定界
      注意:地址界定默認是從光標位置開始(即在默認模式進入命令模式時的光標位置)向下搜索匹配(如果查到到文件結尾,依舊沒找到,會從頭開始查找)
      【:/pat1/,/pat2/】從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結束
      【:#,/pat/】從第#行開始,一直到第一次被pat匹配到的行結束
      【:/pat/,$】從第一次被pat匹配到的行開始,一直到最后一行
    • 地址界定后面可跟隨的編輯命令
      【d】例如:【:/pat1/,/pat2/d】
      ????表示,從光標位置開始向下匹配,第一次匹配到“pat1”的位置開始到第一次匹配到pat2結束是的末行,刪除末行。(注意:如果匹配結果是多行,只會刪除最后一行)
      【y】例如:【:/pat1/,/pat2/y】
      ????表示,從光標位置開始向下匹配,第一次匹配到“pat1”的位置到第一次匹配到“pat2”的位置直接,復制內容到剪貼板。
      【w file】將范圍內的行另存至指定文件中。
      例如:【:/pat1/,/pat2/w ./abc.txt】
      ????表示從光標位置開始向下匹配,第一次匹配到pat1的位置到第一次匹配到pat2的位置內容寫到當前目錄下的abc.txt文件中。
      【r file】在指定位置插入指定文件中的所有內容。
      例如:【:/pat1/,/pat2/r ./abc.txt】
      ????????表示從光標位置開始向下匹配,第一次匹配到“pat1”的位置到第一次匹配到“pat2”的位置的行末插入abc.txt文件內容

    4.2.4.3 查找并替換

    • 【:/PATTERN】從當前光標所在處向文件尾部查找匹配“PATTERN”相同的內容。

    • 【:?PATTERN】從當前光標所在處向文件首部查找匹配“PATTERN”相同內容

    • 【n】與命令同方向

    • 【N】與命令反方向
      擴展命令模型:查找并替換

    • 【s】在擴展模式下完成查找替換操作
      格式:【s/要查找的內容/替換為的內容/修飾符】

      • 要查找的內容:可以使用模式
      • 替換為的內容:不能使用模式,單可以使用\1,\2等后向引用符號;還可以使用“&”引用前面查找時查找的整個內容
      • 修飾符:
        • 【i】忽略大小寫
        • 【g】管局替換;默認情況下,每行只替換第一次出現
        • 【gc】全局替換,每次替換前詢問

      注意:查找替換中的分隔符【/】可用其他符號替代,例如【@】【#】等

    例子:【s/a/Good/g】或者【s@a@Good@g】查找當前光標所在行的“a”字符,全部替換成“Good”字符

    替換后:

    例如:【s#/boot#/#i】將光標所在行的【/boot】替換成【/】,默認只會替換一個,匹配時會忽略大小寫
    例如:【4s@^.*\(你好\).*@\1@ig】
    ????????在4行查找匹配“^.*\(你好\).*”這個正則表達式 能匹配到的內容,替換成“你好”
    替換前:

    替換后:

    如果需要對全文替換可以使用如下命令
    【:1,$s/^.*\(你好\).*/\1/ig】其中【1,$】為地址界定。

    4.2.4.4 地址定界與查找替換擴展模式結合使用
    【:4,8s/^.*\(你好\).*/\1/ig】這種為只替換第4行到第8行之間的內容,其中【4,8】表示4行到8行之間的內容
    【:/par1/,/par2/s/^.*\(你好\).*/\1/ig】這種為從第一次匹配到par1到第一次匹配par2之間的內容中間,
    按照【s/^.*\(你好\).*/\1/ig】命令進行匹配替換

    4.2.4.5 幫助命令

    • 【:help or F1】顯示整個幫助
    • 【:help xxx】顯示xxx的幫助,比如:【:help I】【:help CTRL-[】即Ctrl+[的幫助
    • 【:help ‘number’】Vim選項的幫助用單引號刮起
    • 【:help 】特殊建的幫助用<>擴起
    • 【:help –t】Vim啟動參數的幫助用-
    • 【:help –i_】插入模式下Esc的幫助,某個模式下的幫助用(模式_主題)的模式

    幫助文件中位于||之間的內容是超鏈接,可以用Ctrl+]進入鏈接,Ctrl+o(Ctrl + t)返回

    4.2.4.6 其他非編輯命令

    • 【:.】重復前一次命令

    • 【:set ruler?】查看是否設置了ruler,在.vimrc中,使用set命令設置的選項都可以通過這個命令查看

    • 【:scriptnames】查看vim腳本文件的位置,比如.vimrc文件,語法文件及plugin等

    • 顯示非打印字符
      ????【:set list】顯示非打印字符,比如tab,空格,行尾等。如果tab無法顯示,請確定用set lcs=tab:>-命令設置了.vimrc文件,并確保你的文件中的確有tab,如果開啟了expendtab,那么tab將被擴展為空格。
      ????【:set nolist】關閉非打印字符

    • 行號:
      【:set number】顯示行號或者【:set nu】
      【:set nu】關閉行號顯示

    • 大小寫
      【:set ignorecase】忽略區分大小寫或者【:set ic】
      【:set noignorecase】不忽略大小寫或者【:set noic】

    • 設置自動縮進
      【:set autoindent】設置自動縮進或者【:set ai】
      【:set noai】取消制動縮進

    • 查找文本高亮顯示或取消
      【:set hlsearch】設置高亮顯示
      【:set nohlsearch】取消高亮顯示

    • 語法高亮顯示
      【:syntax on】開啟語法高亮顯示
      【:synatx off】關閉語法高亮顯示

    • 輔助保留格式
      【:set paste】啟用復制保留格式
      【:set noPaste】關閉復制保留格式

    • 文件格式
      【:set fileforma=doc】啟用windows格式。或者【:set ff=doc】
      【:set fileforma=unix】啟用unix格式。或者【:set ff=nuix】

    • 設置文本寬度
      【:set textwidth=65】啟用
      【:set wrapmargin=15】禁用

    • 設置光標所在行的標識線
      【:set cursorline】或者【:set cul】啟用標識線
      【:set no cursorline】或者【:set not cul】禁用標識線

    • 【:set or】查看set幫助或者【:set all】

    4.2.5 vim可視化模式

    默認模式下輸入:

    • 【v】按照字符選取,或者【ctrl + v】
    • 【V】按矩形快選取

    可視化建可用于與移動建結合使用
    【w】【)】【}】箭頭燈
    突出顯示的文字可被刪除,復制,變更,過濾,搜索,替換等

    4.2.6 vim多窗口

    語法:【vim –o|-O FILE1 FILE2 …】
    ???????????【-o】水平分割顯示
    ???????????【-O】垂直分割顯示
    命令模式下輸入【:qa】關閉所有窗口
    窗口間切換:Ctrl+w,Arrow

    • 單文件窗口分割:
      • 【Ctrl+w,s】split,水平分割
      • 【Ctrl+w,v】vertical,垂直分割
      • 【Ctrl+w,q】取消相鄰窗口
      • 【Ctrl+w,o】取消全部窗口
      • 【:wqall】退出

    4.2.7 vim配置文件

    【/etc/vimrc】vim的全局配置文件
    【~/.vimrc】用戶的vim配置文件

    4.2.8 相關編輯器

    文本:ASCII,Unicode

    • 文本編輯器種類:
      行編輯器:sed
      全屏編輯器:nano,vi
      vim-Vi Improved
      其他編輯器:
      gedit 一個簡單的圖形編輯器
      gvim 一個Vim編輯器的圖形版本

    4.2.9 幫助(vim --help)

    [root@gdy103 ~]# vim --help VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr 5 2012 10:17:30)用法: vim [參數] [文件 ..] 編輯指定的文件或: vim [參數] - 從標準輸入(stdin)讀取文本或: vim [參數] -t tag 編輯 tag 定義處的文件或: vim [參數] -q [errorfile] 編輯第一個出錯處的文件參數:-- 在這以后只有文件名-v Vi 模式 (同 "vi")-e Ex 模式 (同 "ex")-s 安靜(批處理)模式 (只能與 "ex" 一起使用)-d Diff 模式 (同 "vimdiff")-y 容易模式 (同 "evim",無模式)-R 只讀模式 (同 "view")-Z 限制模式 (同 "rvim")-m 不可修改(寫入文件)-M 文本不可修改-b 二進制模式-l Lisp 模式-C 兼容傳統的 Vi: 'compatible'-N 不完全兼容傳統的 Vi: 'nocompatible'-V[N][fname] Be verbose [level N] [log messages to fname]-D 調試模式-n 不使用交換文件,只使用內存-r 列出交換文件并退出-r (跟文件名) 恢復崩潰的會話-L 同 -r-A 以 Arabic 模式啟動-H 以 Hebrew 模式啟動-F 以 Farsi 模式啟動-T <terminal> 設定終端類型為 <terminal>-u <vimrc> 使用 <vimrc> 替代任何 .vimrc--noplugin 不加載 plugin 腳本-P[N] 打開 N 個標簽頁 (默認值: 每個文件一個)-o[N] 打開 N 個窗口 (默認值: 每個文件一個)-O[N] 同 -o 但垂直分割+ 啟動后跳到文件末尾+<lnum> 啟動后跳到第 <lnum> 行--cmd <command> 加載任何 vimrc 文件前執行 <command>-c <command> 加載第一個文件后執行 <command>-S <session> 加載第一個文件后執行文件 <session>-s <scriptin> 從文件 <scriptin> 讀入正常模式的命令-w <scriptout> 將所有輸入的命令追加到文件 <scriptout>-W <scriptout> 將所有輸入的命令寫入到文件 <scriptout>-x 編輯加密的文件--startuptime <file> Write startup timing messages to <file>-i <viminfo> 使用 <viminfo> 取代 .viminfo-h 或 --help 打印幫助(本信息)并退出--version 打印版本信息并退出 [root@gdy103 ~]#

    總結

    以上是生活随笔為你收集整理的vim 文本编辑器的全部內容,希望文章能夠幫你解決所遇到的問題。

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