19 vim編輯器

19 vim編輯器

一、雜項知識整理

1、vi +6 FILE:打開并且光標在第六行。

    vi +/pattern 打開文件后,光標處于第一個被pattern匹配到的行的行首

    vim + FILE 直接打開file,光標在最后一行

    vim -m file 只讀打開文件

    ex file 或vim -e 直接進入擴展命令行模式

2、命令模式下:100iwang [ESC] 粘貼wang100次

    

二、命令詳解及事例

1、三種主要模式:命令模式(默認):移動光標,剪切粘貼文本

    插入模式(編輯模式):修改文本

    擴展命令模式:保存,退出,替換等;

2、命令模式—》插入模式:

    i 在光標所在處輸入

    I 在當前光標所在行的行首輸入

    a 在光標所在處后面輸入

    A 在當前光標所在行的行尾輸入

    o 在當前光標所在行的下方打開一個新行

    O 在當前光標所在行的上方打開一個新行

3、擴展命令行模式:

    w 寫磁盤文件

    wq 寫入并退出

    x 寫入并瑞出

    r FILENAME 讀文件內容到當前文件中

    w FILENAMME 將當前文件內容寫入另一個文件

    !COMMAND 直接執行命令

    r!COMMAND 將命令的結果讀入vim文件中,追加的方式 

4、命令模式光標跳轉

    h 左 l 右 j 下 k 上

    #COMMAND跳轉由#指定的個數的字符

單詞間跳轉:w 下一個單詞的詞首

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

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

    #COMMAND 由#指定一次跳轉的單詞數

當前頁跳轉:H 頁首 M 頁中間行 L 頁底

行首行尾跳轉:^跳轉至行首的第一個非空白字符

    0 跳轉至行首 $ 跳轉至行尾

行間移動:G 最后一行 1G,gg第一行 

句間移動:) 下一句 (上一句 }下一段 { 上一段

翻屏操作:ctrl+f 向文件尾部翻一屏 ctrl+b 向文件首部翻一屏

    ctrl+d 向文件尾部翻半屏 ctrl+u 向文件首部翻半屏

字符編輯:x 刪除光標處的字符 #x 刪除光標處開始的#個字符

    xp 交換光標所在處的字符及其后面字符的位置 ~轉換大小寫

替換命令:r 替換光標所在處的字符 R 切換成REPLACE模式

刪除命令:d 刪除命令,可結合光標跳轉字符,實現范圍刪除

    d$ 刪除至行尾 d^刪除到非空行首 d0 刪除到行首 dw de db 刪除一個單詞

    #COMMAND 刪除#個命令中的字符 dd 刪除光標所在的行 D從光標位置一直刪除到行尾,留空行,等同于d$

復制命令:y復制,行為與d相似。

粘貼命令:p 緩沖區存的如果為整行,則粘貼當前光標所在行的下方;否則則粘貼至當前光標所在處的后面;

    P 緩沖區存的如果為整行,則粘貼當前光標所在行的上方,否則則粘貼至當前光標所在的前面

改變命令:c 修改后切換成插入模式,相當于刪除之后切換成插入模式

5、擴展模式:地址定界:# 具體第#行

    #,# 起始行到結尾行   #。+#  .當前行  $最后一行  .,$-1 當前行到倒數第二行

    % 全文,相當于1,$   /pattern1/,/pattern2/從第一次被模式匹配到的行開始,一直到第二個被匹配到的行結束。

    w FILE 將范圍內的行另存為指定文件中

    r FILE 在指定位置插入指定文件中的所有內容

查找:/pattern  從當前光標所在處向文件尾部查找

    ?pattern 從當前光標所在處想文件首部查找

    查找結果之后:n 與命令同方向查看   N與命令反方向

查找替換:s/查找的內容/替換為的內容/修飾符   與sed的查找替換模式基本相同

撤銷模式:u撤銷最近的更改 #u撤銷之前多次更改  U撤銷光標所在行的所有更改

    ctrl r 撤銷之前的撤銷操作 .重復前一個操作  n.重復前一個操作n次

6、vim的寄存器:有26個命名寄存器和一個無命名寄存器,常存放不同的剪切板內容,可以不同會話間共享。

    用a,b,…z表示,用"寄存器 表示,放在數字和命令之間,如:3"tyy表示復制3行到t寄存器中。"tp 表示將t寄存器內容粘貼。

    未指定,將使用無名寄存器;

    有10個數字寄存器,用0,1,2…9表示,0存放最近復制內容,1存放最近刪除內容。當新的文本變更和刪除時,1轉存到2,2轉存到3,以此類推。數字寄存器 不能在不同會話間共享。

7、編輯二進制文件: 

    以二進制方式打開文件:

    vim -b BINARYFILE 

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

    :%!xxd

    編輯二進制文件

    在擴展命令模式下,利用xxd命令轉換回二進制

    :%!xxd -r

    保存退出

8、可視化模式:

    允許選擇的文本塊

    v面向字符

    V面向行

    ctrl v 面向塊

可視化鍵可用于與移動鍵結合使用:

    w ) } 等

可視化的文字可以被復制刪除變更過濾搜索替換等。

9、多文件模式:vim file1 file2 file3…

    :next 下一個

    :prev 前一個

    :last最后一個

    :wall 保存所有

    :qall 退出所有

    :wqall 保存退出所有

    :first 第一個

分割多個“窗口”

    vim -o|O file1 file2…

    -o 水平分割

    -O 垂直分割

    在窗口之間切換:ctrl+w 方向鍵

    單文件窗口分割:

        ctrl+w s 水平分割

        ctrl+w v 垂直分割

        ctrl+w q 取消相鄰窗口

        ctrl+w o 取消全部窗口

        :wqall 退出

三、作業及練習

1、如何設置tab縮進為4個字符

vim家目錄中或者是/etc下的.vimrc 添加一行set tabstop=4.

其他配置:

    set number 顯示行號 set nonumber

    set showmatch 括號成對匹配 set sm   set nosm

    set ai  自動縮進  set noai

    set hlsearch 搜索高亮 set nohlsearch

    syntax on 語法高亮 syntax off

    set ic 忽略字符大小寫 set noic

    fileformat=unix 文件格式啟用為unix

    fileformat=dos 文件格式啟用為dos模式

    set textwidth=65(vim only)設置文本寬度

    set wrapmargin=15 到頭自動換行行寬

    set nowrap 取消自動換行

2、復制/etc/rc.d/init.d/functions文件至/tmp目錄;替換/tmp/functions文件中的/etc/sysconfig/init為/var/log:地址定界編輯命令

:%s@/etc/sysconfig/init@/var/log@g

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

:%s@^#[[:space:]]@ @g

附:vim快捷鍵示意圖vim快捷鍵圖解.png

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

(0)
SilencePavilionSilencePavilion
上一篇 2016-08-10 10:15
下一篇 2016-08-10 10:22

相關推薦

  • 聊聊CentOS6的啟動過程

    前言:     作為一個合格的運維人員,系統的啟動過程我們需要牢記在心,此文不深入探討,只求大致理解CentOS6的啟動過程。 一張圖帶你了解CentOS6的啟動過程 注意:圖片放大查看效果更佳 上圖各階段詳解 POST:計算機開機時BIOS對其各硬件的簡單測試,測試各硬件的完整性 BootSqunce:加電自檢后根據…

    Linux干貨 2016-03-14
  • Docker 之初次體驗

    一、Docker 簡介  lxc linux container,openvz  容器中各虛擬機只有一個內核,而是多個用戶空間  在庫中完成虛擬化,比如wine 或者在windows中運行bash  在應用程序的運行級別提供虛擬化,比如jvm   pstree , pid 為1 的進程  …

    Linux干貨 2015-01-16
  • shell編程之變量,數值計算,字符比較,文件測試小記

     變量     變量:能儲存計算結果或能表示值抽象概念,其指向的內存空間中一段地址。        變量賦值:name=value    溢出:字符超過定義內存中間大小    變量類型:數據類型,存儲的格式,參與的運算   &nb…

    Linux干貨 2016-08-15
  • NoSQL之MongoDB

    分布式系統理論 1、 CAP: 分布式系統只能滿足其中兩個? Consistency :一致性 Availibility:可用性 Partitions Tolerance :分區容錯性 C,A : SQL 傳統的數據庫。 兩段機制。 C,P :悲觀枷鎖機制,分布式加鎖機制。加鎖機制與SQL不太一樣。 這里的C為最終一致性。 放棄C后的特例,既可以保證可用性,…

    2018-01-09
  • Linux命令基礎

    Linux命令基礎

    2018-03-25
  • Linux文件查找之find命令

    前言:        Linux文件種類繁多,難免在維護Linux中會忘記文件的路徑。所有在維護Linux中學好查找命令是非常必要的。     Linux查找命令有很多,比如 whereis,type,which,locate,find(重點)。  &nbsp…

    Linux干貨 2015-06-15
欧美性久久久久