Linux中Vim編輯器的使用

Linux中Vim編輯器的使用

Vim功能介紹

vim是一款功能豐富而強大的文本編輯器,支持語法高亮,支持多窗口編輯,是vi文本編輯器的增強版。如果在CentOS
7.2中如果是選擇最小化安裝,其默認是沒有安裝vim rpm包的,需要自行安裝,可以使用yum工具進行在線安裝。  
vim至今已經走過了25個春秋,現在8.0版的已經發布了。  本文介紹的vim,版本是7.4.160。
 vim是一款模式化的編輯器。
它的工作模式分為三種

  • 編輯模式
     編輯模式又稱為正常模式(Normal mode),其進入方式為:執行指令:vim /PATH/FROM/FILENAME,如果這一文件不存在,則會創建新文件,但如果編輯完成后不予保存則此文件不會保留。這一模式可以對文本內容完成諸如復制、粘貼、刪除這一類的編輯操作。

  • 輸入模式  
     其進入方式有多種,大多是在編輯模式通過按下特定的字符鍵進入。在這一模式中可以對文本內容完成修改添加刪除的操作。

  • 末行模式
     進入這一模式的方法是在編輯模式中輸入冒號。然后可以輸入很多指令完成對文本的編輯操作,功能十分強大。

vim編輯模式使用練習

vim自帶了一個練習程序,在bash shell中直接執行vimtutor即可以打開,如下所示:

Linux中Vim編輯器的使用  

使用h,j,k,l鍵移動光標

根據屏幕提示,使用h,j,k,l鍵分別實現將光標往前移動一格,往下移動一格,往上移動一條,往后移動一格,即h,j,k,l分別對應前,下,上,后。如下所示:

Linux中Vim編輯器的使用    

放棄對文本文件所有的修改操作

當使用vim對文本文件做了一些修改以后,但又不想保存這些修改,想將文件恢復至原樣,可以使用如下步驟進行操作。
1. 按下ESC鍵,確保已位于正常模式中
2. 輸入:q!,按下回車鍵,退出vim模式
3. 當看到shell提示符時,即表明已退出對之前文本文件的編輯
為便于練習繼續,在bash shell中再次執行vimtutor指令,進入vim的練習之中。

刪除文本的字符

在vim編輯模式中可以按下x鍵,將光標選中的字符刪除。操作步驟如下:
1. 進入vim編輯模式
2. 通過上面介紹過的h,j,k,l鍵將光標移動至想要刪除的字符處
3. 按下x鍵,將光標已選中的字符刪除
vimtutor中的操作示例及說明如下:

Linux中Vim編輯器的使用  

在光標所在處或者光標所在行的行首插入字符

在vim編輯模式中,將光標移動至想要插入新字符的位置,然后按下I鍵即輸入i(小寫),即可進入vim的輸入模式,此時vim編輯器左下角會出現“– INSERT –”提示符,即說明此時已處于vim輸入模式中,可以通過鍵盤輸入想要插入的字符。如果輸入"I"(大寫),可以實現光標所在行的行首直接進入輸入模式。
vimtutor中的操作示例及說明如下:

Linux中Vim編輯器的使用  

繼續結合上面的一些操作方法,將句子中的錯誤進行修正,結果應該是這樣的吧,英語不是很好.^_^

Linux中Vim編輯器的使用  

在光標所在行的行尾插入字符

在編輯文本文件時,如果想在某一行的行尾直接進入編輯,可以在vim編輯模式中將光標移動至目標行,不用在意光標在這一行的什么位置,此時按下A鍵方法為輸入大寫A的操作方法。然后進行編輯即可。
vimtutor中的操作示例及說明如下:

Linux中Vim編輯器的使用  

保存文本文件并退出vim編輯模式

當編輯完文本文件以后,在vim編輯模式中輸入:wq,然后回車,對文本文件進行保存,并退出vim的編輯模式,結束對文本文件的修改工作。
vimtutor中的說明及操作示例如下:

Linux中Vim編輯器的使用  

一次性刪除一個單詞

在Linux中一個單詞,并非各人類語言語法中的單詞,而是指一個連續且不包含空格的字符串。在vim編輯模式中,將光標移動至想要刪除的單詞的超始處,然后輸入dw即可直接將這一單詞及其后面的空白字符刪除,無需要通過先進入輸入模式,然后按回退鍵一個字符一個字符進行刪除。
vimtutor中的說明及示例如下:

Linux中Vim編輯器的使用  

一次性刪除一行中從光標處起始直至行尾的全部內容

如果文本中某一行中有一個連接的段需要刪除,這時可以在vim編輯模式中,先將光標移動至要刪除部分的起始處,然后輸入d$即可一次性將光標所在位置至行尾的全部內容一次性刪除。
vimtutor中的說明及操作示例如下:

Linux中Vim編輯器的使用  

一次性刪除光標所在處至單詞的最后一個字符

在vim編輯模式中將光標移動至想要刪除的單詞的詞首,然后輸入de即可將這個單詞刪除。相較于dw的區別是,de不會刪除這一個單詞其后的空白字符。vimtutor中的說明如下:

Linux中Vim編輯器的使用  

一次性將光標移動一個單詞的方法

vim編輯模式中,一個字符一個字符地移動光標有時難免顯得低效,它提供了直接讓光標在單詞間跳轉的方法。
在編輯模式中:
按下E鍵(不區分大小寫),可實現將光標直接跳轉至行內本單詞或者下一個單詞的詞尾,如果光標正處在某單詞的中間位置按下E鍵,光標會跳至本單詞的詞尾。
按下W鍵(不區分大小寫),光標會跳至下一個單詞的詞首。
按下B鍵(不區分大小寫),光標會跳至本單詞或者前一個單詞的詞首。

一次性將光標移動N個單詞的方法

在vim編輯模式中,還可以使用#{E|W|B}這種方法,一次性將光標往前或往后移動#個單詞,#為數字,一個標點符號算作一個單詞,至于光標是位于單詞詞首還是詞尾取決于#后面所跟的是E還是W或者B。
vimtutor中的示例及說明:

Linux中Vim編輯器的使用  

一次性刪除指定個數的單詞

在vim編輯模式中,使用d#w,#代表要刪除的單詞數,可以一次性將指定個數的單詞及其后面的空白字符刪除。
vimtutor中的示例及說明:

Linux中Vim編輯器的使用  

一次性刪除一整行

在vim編輯模式中,將光標移動至想要刪除的那行上,不管光標處在這行什么位置都可以,然后輸入dd,即可將這一整行刪除;如果輸入#dd,將會刪除當前光標所在的行及其下#行(空白行也算一行),#號表示數字。
vimtutor中的說明及示例結果:

Linux中Vim編輯器的使用  

撤銷之前的操作

在vim編輯模式中,如果想撤銷之前的操作,只需要輸入u(小寫)即可撤銷上一步的操作,如果想撤銷上#步的操作,輸入#u即可。如果又后悔撤銷了剛才的撤銷操作,可以使用Ctrl+R組合鍵。如果后悔對這一整行所做的修改,可以輸入U(大寫)將對這一行所做的操作一次性撤銷。
vimtutor中的說明及操作示例:

Linux中Vim編輯器的使用  

對行進行剪切與復制

在vim編輯模式中,如果想要將某一行的位置進行移動,可以先將光標移動至這一行,輸入dd進行刪除,然后將光標移動至這一行新位置的上一行處,然后輸入p(小寫),剛才刪除的那一行即會被移動到新位置;而如果輸入P(大寫),則剛才刪除的一行,會直接復制到光標所在的這一行處,也相當于將光標放在一這一行新位置的下一行處。
vimtutor中的說明及操作示例:

Linux中Vim編輯器的使用  

對字符進行替換

如果想將某字符進行替換,在vim編輯模式中,可以先用光標將這一字符選中,然后輸入r(小寫)并緊接著輸入這一字符想要替換成的字符,這種方式一次只能替換一個字符。
vimtutor中的說明及操作結果:

Linux中Vim編輯器的使用  

修改行中的某一個單詞

如果想修改某單詞的部分字符或者整個單詞,在vim編輯模式中可以將光標移動至想要修改的地方的起始處,然后輸入ce(小寫),它會刪除光標所在處至這個單詞結尾的部分,然后進入輸入模式,這時在將正確的內容輸入即可完成對某單詞的修改。
vimtuor中的說明和操作結果示例:

Linux中Vim編輯器的使用  

修改一行中的多個單詞

如果想修改一行中的多個單詞,可能直至這一行的結尾。此時可以在vim編輯模式中使用c#w或者c$指令。如下示例中的需求即是需要刪除從“some”開始直至行結尾的部分,因此使用c$指令,然后在輸入模式中進行修改即可。

Linux中Vim編輯器的使用  

光標定位及迅速移動

如果想將光標快速移動至文件的最后一行,在vim編輯模式中輸入G(大寫)即可;如果想將光標快速移動至文件的第一行,在vim編輯模式中輸入gg(小寫);在編輯模式中按下Ctrl+G組合鍵,可以在編輯模式的最下邊顯示出當前光標所在的行號,及文件總行數,文件名等信息。在編輯模式中輸入#G可以將光標跳轉至第#行行首,#為指定的行號。

Linux中Vim編輯器的使用  

vim編輯模式中的搜索方法

在vim編輯模式中如果要搜索某一字符或字符串,可以使用/字符(串)的方式進行,它會從光標所在處開始往下搜索,當要繼續往下搜索時,繼續輸入n(小寫),當要繼續往上搜索時,繼續輸入N(大寫)。
另一種搜索方式是在編輯模式中使用?字符(串)的方式進行,它會從光標所在處開始往上搜索,繼續往上搜索,就繼續輸入n(小寫),繼續往下搜索,就繼續輸入N(大寫)。
要將光標回退至上一次所在的位置,使用組合鍵Ctrl+O;要將光標往前移,使用組合鍵Ctrl+I。
vimtutor中的示例及說明:

Linux中Vim編輯器的使用  

vim編輯模式中檢查括號是否匹配

在vim中可以將光標移動至要檢查的括號處,然后輸入%,光標會自動跳轉至與之匹配的括號處,用此來檢查程序語句中括號是否完整。

Linux中Vim編輯器的使用  

vim末行模式

vim末行模式進入的方式:在編輯模式中,按下鍵盤輸入冒號:即可。需要注意的是:在末行模式中所有的指令要生效必須按回車鍵。

末行模式中查找并替換

vim末行模式中支持查找某字符串,然后在將文本中查找到的對象進行替換。在編輯模式中輸入:s/old/new,然后回車。old表示要查找的字符串,new表示替換后的最終字符串。它只替換查找到的第一個匹配的字符串。
如果要一次性將一行中所有匹配的字符串進行替換,需要在編輯模式中輸入:s/old/new/g然后回車。
如果要一次性將全文中所有匹配的字符串進行替換,需要在編輯模式中輸入:%s/old/new/g然后回車。
如果要在文本中一定范圍內查找指定的字符串并替換,需要在編輯模式中輸入:#,#s/old/new/g,然后回車。#,#表示從哪一行到哪一行,為行編號。
vimtutor中的示例及說明:

Linux中Vim編輯器的使用  

末行模式中執行外部命令

在vim末行模式中通過輸入!然后跟上任何可以shell中執行的指令,都可以在這里面執行,執行完以后按下回車鍵會回到之前的編輯模式狀態。
使用示例如下:

Linux中Vim編輯器的使用  

將正在編輯的文本全部另存為其它文件

在vim末行模式中通過輸入w /PATH/TO/FILENAME可以將文件另存為指定的新文件。

Linux中Vim編輯器的使用  

將正在編輯的文本中的部分另存為其它文件

在vim編輯模式中,首先將光標移動至需要另存為的內容的起始處,然后輸入v(小寫),vim末行出現"VISUAL"提示符,再然后結合光標操鍵h,j,k,l選定需要另存為的文本內容。選定以后,輸入:進入末行模式,此時vim末行會出現":'<,'>"提示符,然后緊挨著在其后面輸入w /PATH/TO/FILENAME 即可將選定的文本內容另存為指定的文件中,如果指定文件已經存在,需要使用在文件名后跟上!,進行強制覆蓋。
以下為vimtutor中的示例及說明:

Linux中Vim編輯器的使用  

合并其它文本內容至當前編輯中的文本中

vim末行模式中,將光標移動至想加入其它文本文件內容的超始處,然后輸入r /PATH/FROM/FILENAME即可將指定文本文件的內容添加至光標下方。
vimtutor中示例的效果:

Linux中Vim編輯器的使用  

**末行模式中還支持將其它shell指令的輸出內容直接添加至當前正在編輯中的文本文件中。操作方法為":r !cat /home/lantian/TEST","cat /home/lantian/TEST"為需要執行的shell指令。

在編輯模式中直接在光標所在行的下一行或者上一行進入輸入模式

在vim編輯模式中,如果想在光標所在行的下方直接進入輸入模式,可以直接輸入"o"(小寫);如果想在光標所在行的上方直接進入輸入模式,可以直接輸入"O"(大寫)。
vimtutor中的說明及示例如下所示:

Linux中Vim編輯器的使用  

在編輯模式中直接在光標所在處的后面或者行尾進入輸入模式

在vim編輯模式中,如果想在光標所在處的后面添加字符即直接進入輸入模式,可以直接輸入"a"(小寫);如果想在光標所在行的行尾直接進入輸入模式,可以直接輸入"A"(大寫)。
vimtutor中示例完成后的效果:

Linux中Vim編輯器的使用  

復制和粘貼文本

在vim編輯模式中,如果想復制粘貼某段內容,可以先將光標移動至想要復制的內容的起始處,然后輸入"v"(小寫)進入"VISTUAL"視圖,然后結合h,j,k,l鍵移動光標來選取想要復制的內容,被選中的文本會高亮顯示,再按下y(小寫)就完成了復制工作。然后將光標移動至復制的目標位置,按下p(小寫)就將之前復制的內容粘貼過來了。
vimtutor中的說明及示例如下:

Linux中Vim編輯器的使用  

配置vim工作環境

在vim末行模式中,可以使用豐富的set指令及選項來配置vim的工作環境。常用的有:

  • 行號
    顯示:set number,簡寫為set nu
    取消顯示:set number,簡寫為set nonu

  • 括號匹配高亮
    匹配:set showmatch,set sm
    取消:set noshowmatch,set nosm

  • 自動縮進功能
    啟用:set ai
    禁用:set noai

  • 高亮搜索
    啟用:set hisearch
    禁用:set nohlsearch

  • 語法高亮
    啟用:syntax on
    禁用:syntax off

  • 忽略字符大小寫
    啟用:set ic
    禁用:set noic

vim編輯長文本時的翻屏操作

在vim編輯模式中使用如下組合鍵,可以實現對應的效果。
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏  
Ctrl+d:向文件尾部翻一屏
Ctrl+u:向文件首部翻一屏
Enter:按行向后翻

vim編輯文本時實現句間或者段間跳轉操作

在vim編輯模式中使用如下標點符號,可以實現光標在句間或者段間快速跳轉。
句間跳轉
)
(
段間跳轉
{
}

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

(0)
N24_lantianN24_lantian
上一篇 2016-12-02
下一篇 2016-12-02

相關推薦

  • 內核相關

    內核兩大流派單內核微內核 grub分為三個階段:1階段 1.5階段 2階段 內核階段 通過/proc/cmdline找到根并掛載2階段內容是放在/boot/grub目錄下Centos6 實驗:丟失除grub.conf外所有文件沒有修復過的時候/boot/grub下文件是放在磁盤上某個位置的修復過一次后/boot/grub下文件就起作用了,一旦執行過grub-…

    Linux干貨 2018-01-03
  • yum——替你排憂解難的前端包安裝工具

    yum CentOS前端工具: yum, dnf 統一資源定位符:URL YUM: Yellowdog Update Modifier,rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,自動安裝軟件包,以及該軟件包的依賴包,up2date的替代工具 yum repository: yum repo (yum倉庫)  &nbsp…

    Linux干貨 2016-08-24
  • Btrfs文件系統

    btrfs文件系統特性: 1、多物理卷支持 Btrfs可由多個底層物理卷組成:支持raid,以聯機添加,移除,修改 2、寫時復制機制(cow) ????復制,更新及替換指針,而非就地更新。在文件進行修改的時候,首先將文件復制一份出來,在復制的文件中進行修改,修改完成后,將指向原有文件的指針指向到修改完成的文件上,若修改完成的文件出現錯誤,則我們可以通過源文件…

    2016-04-10
  • SElinux

    selinux  配置文件 修改   就要重啟 targeted:用來保護常見的網路服務,僅有限進程受到selinux控制,只監控容易被入侵的進程。 targeted  慢慢完善的法律 系統默認使用   targeted     CENTOS6 CENTOS7 ZAI &nbsp…

    Linux干貨 2016-09-14
  • Tomcat詳解

    Tomcat詳解 1、tomcat安裝 tomcat的組件:<Server> <Service> <connector/> <connector/> <Engine> <Host /> <Host> <Context/> … </Host> &lt…

    2017-04-27
  • N25-第六周作業

    第6周作業 — 請詳細總結vim編輯器的使用并完成以下練習題 vim是模式化的全屏文本編輯器。vim分為三種模式:分別是編輯模式;輸入模式;末行模式; 打開文件的方式有:vim +# FILE打開文件FILE并把光標定位到#行的行首;vim +/PATTERN FILE打開文件并讓光標處于第一個被PATTERN匹配到的行的行首。(支持正則表達式)…

    Linux干貨 2017-02-22

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-07 23:26

    學以致用,好棒,有圖有真相

欧美性久久久久