強大的文本處理工具:vim編輯器

一:引言

系統管理員的重要工作就是修改與設置某些軟件的重要配置文件,而vim作為vi編輯器的升級版本,不僅能夠以不同顏色來顯示文字內容,還能夠進行諸如shell腳本、C等程序的編寫,所以,它還是一個程序編輯器,接下來,就讓我們一起來看看vim的有哪些好玩的用法和特征。

二:vim三種模式及其常見用法

強大的文本處理工具:vim編輯器

雖然vim有非常龐大甚至說它復雜也不為過的功能體系,但用結構圖的方式把它表現出來,就一目了然了,那么接下來就讓我們庖丁解牛,來更加詳細的了解vim命令的基本用法及其vim三種模式都有哪些重要功能

                                                  ※vim

options:

   -m filename   只讀打開文件(注意:當以只讀方式打開文件時,只有root與文件所屬者能夠強制修改保存并退出)

   -b filename    打開二進制文件

   -o file1 file2    同時打開多個文件

   -d  file1 file2   比較多個文件,結果會高亮顯示出不同內容所在的行及字符,效果如下:

    強大的文本處理工具:vim編輯器

                                     命令模式(默認模式)下的常見用法

  當處于命令模式下時,常見的用法大致有以下幾種:

  •   文本編輯(刪除d、復制y、粘貼p、修改c、撤銷與反撤銷)
  •   切換至visual模式,進行批量操作
  •   翻屏和行間跳轉

用法一:文本編輯:

 1.刪除(d):

   ①刪除字符
   x  刪除光標處字符
   #x 刪除以光標起始的#個字符
   ②刪除行
   d  刪除命令(常與w,e,b,^,0,$ 一起使用)   
   dd 刪除光標所在行
        #dd  多行刪除   
2.復制(y):
   y  復制命令(常與w,e,b,^,0,$ 一起使用)
  #y   多行復制
   yy 復制當前行
3.粘貼(p):
  p   若復制的為整行,則粘貼到下邊一行。否則,粘貼到當前光標后面
  P   若復制的為整行,則粘貼到上邊一行。否則,粘貼到當前光標前面
4.修改(c)
  含義:先刪除,后插入
  cc/C:刪除光標所在行后進入插入模式(=‘dd+i’)
          #cc 修改多行
5.撤銷:
  u 撤銷最近的更改
  ctrl+r  反撤銷
  #u撤銷之前多次更改
  . 重復前一個操作
 n.重復前一個操作n次
6.替換模式(R):同時完成多個字符的替換

用法二:visual模式:

 v   面向字符
 V   面向行

 ctrl+v  面向塊

優點:能夠自由的選擇多個字符或行來對文本內容進行批量的復制、粘貼、刪除等操作。

用法三:翻屏和行間跳轉:

ctrl +f 向下翻一屏
ctrl +b 向上翻一屏
ctrl +d 向下翻半屏
ctrl +u 向上翻半屏
G :   尾行

gg:首行

H:跳到當前頁的首行

L: 跳到當前頁的尾行
M: 跳到當前頁的中間行

                                       ※拓展命令模式常見用法

用法一:查找和替換

 1.查找:

    從當前光標處向尾行查找  :/要查找的內容

     從當前光標處向首行查找  :?要查找的內容

2.單個字符替換:r

   替換任意多個字符:R (進入替換模式)

3.查找并替換(重點)

格式: :內容定界符s/要查找的內容/要替換為的內容/修飾符

分隔符 除常用的 “/” 以外,還有@與#。

  相關例題:復制/etc/rc.d/init.d/functions文件至/tmp目錄,替換/tmp/functions文件中的/etc/sysconfig/init為/var/log

          正解:   :%s@/etc/sysconfig/init@/var/log@gi

  看到這里,相比大家已經知道@與#存在的意義了吧,那就是當替換內容中含有如 / 這些特殊字符時,為了簡化操作,減少轉譯,我們常用@或#來代替/分隔符。

③內容定界符:

    :%  全文查找    

    :m  查找m行   

    :m,n  m-n行    

    :$  只在最后一行中查找(注意啦強大的文本處理工具:vim編輯器強大的文本處理工具:vim編輯器愛舉一反三的小伙伴,并不存在^表示在首行中查找)

④要查找的內容:支持基本的正則表達式

⑤要替換為的內容:不支持正則表達式,但支持 后向引用 與  &

   注意:&表示引用之前模式匹配的整體,并不同于后向引用。

   相關例題刪除/tmp/functions文件中所有以#開頭,且#后面至少有一個空白字符的行的行首的#號

 正解: :%s/^#\([[:space:]]\+\)/\1/gc

  錯解: :%s/^#\([[:space:]]\+\)/$/gc

  錯誤原因:\1才代表\([[:space:]]\+\)這個整體,而$代表引用^#\([[:space:]]\+\)這個整體,所以此時#與其后的空格并沒有被替換

⑥修飾符: 

  g  全局替換(默認不加g時,只替換每行第一次出現)

  i   忽略字母的大小寫

  c   每次替換前詢問

查找替換相關例題:

 1.復制/etc/profile至/tmp/目錄,用查找替換命令刪除/tmp/profile文件中的行首的空白字符

   正解:   :%s/^[[:blank:]]\+//g

 2.復制/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令為/tmp/functions的每行開頭為空白字符的行的行首添加一個#號

   正解:   :%s/^[[:space:]]\+/#&/g      其中&匹配^[[:space:]]\+

                                      

用法二:多文件模式

vim -o file1 file2………..
 :next 切換到下一個文件
 :previous  切換到上一個文件
 :last  切換到最后一個文件
 :first  切換到第一個文件
 :wqall  保存所有文件并退出

用法三:定義窗口屬性

 設置全局窗口屬性:  /etc/vimrc
 設置用戶窗口屬性: ~/.vimrc
:set all  顯示當前文件所有set
:set nu/nonu 顯示行號
:set ai/noai 自動縮進
:set ic/noic 忽略字符大小寫

:set sm/nosm 括號匹配

:set tabstop=num   設置tab鍵為num個字符

  syntax on/off  語法高亮

:set hlsearch/nohlsearch  搜索高亮顯示(也可通過/kugkufguewgfuew搜索任意字符來取消高亮)

 相關例題在vim中設置tab縮進為4個字符

  編輯配置文件/root/etc/vimrc—->插入一行 set tabstop=4

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

(0)
yunyunyuyunyunyu
上一篇 2017-08-05
下一篇 2017-08-05

相關推薦

  • Linux的啟動流程

    Linux的啟動流程大致上如下圖. 現在詳細說明一下每個步驟: 第一階段 當系統啟動時,系統首先會加載BIOS。BIOS的首先會檢查各硬件設備,當檢查完畢沒有問題之后。BIOS會根據設定的BootSequence來尋找可以引導系統的設備。一般而言,Linux是通過磁盤上MBR來引導系統的。 第二階段 MBR是Master Boot Record,是位于磁盤第…

    Linux干貨 2016-02-28
  • Linux基礎知識之RAID

    1、什么是RAID?     多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供。2、RAID的優點?     提高IO 能力:         磁盤并行讀寫   &n…

    Linux干貨 2016-09-01
  • sed與vim相關練習

    sed 練習 以行為單位的新增/刪除功能 1將 /etc/passwd 的內容列出并且打印行號,同時,請將第 2~5 行刪除! 2在第二行后(亦即是加在第三行)加上“the is xing line?”字樣! 3在第二行前(亦即是加在第而行)加上“the is xing line?”字樣! 4在第二行后面加入兩行字,例如“the is xing line &…

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

    1、描述計算機的組成及其功能。 主要分為五個部分: 控制器:計算機的中樞神經,控制總線使用權限、尋址、管理各類資源的分配。 運算器:對數據進行各種算數運算和邏輯運算。 存儲器:通常指內存RAM,CPU需要運行的程序以及數據都存放在存儲器中供CPU調用處理。 (以上三者為計算機核心的三大部件,依靠這三大部件即可完成核心工作。) 輸入設備:比如鼠標、鍵盤,使用戶…

    Linux干貨 2016-11-02
  • linux下vim命令詳解

    如果沒有安裝vim就請使用:sudo apt-get install vim 一個完整的.vimrc配置信息如下所示: set nocompatible set nummber filetype on set history=1000 set background=dark syntax on set autoindent set mouse=a set s…

    Linux干貨 2016-08-12
  • 詳解“FTP文件傳輸服務”配置實例

            詳解“FTP文件傳輸服務”配置實例 目錄 簡介 ftp工作原理 常見的FTP服務 Vsftpd服務器的安裝 Vsftpd.conf配置文件詳解 配置FTP服務器實例 實例:配置匿名 實例:配置本地用戶登錄 實例:配置虛擬用戶登錄(MySQL認證) 實例:控制用戶登…

    Linux干貨 2016-10-18
欧美性久久久久