Vim

vim編輯器

        vim,可謂文本編輯界的大哥,功能強大無比,是進階版的vi, vim 不但可以用不同顏色顯示文字內容,還能夠進行諸如 shell script, C program等程序編輯功能。

vim是一種模式化的編輯器  (vim自帶教程,命令行中輸入vimtutor即可)

vim基本模式:

命令模式(默認模式)

     功能:移動光標,復制、輸入命令來完成等操作

     輸入命令時沒有可視信息,直到命令輸入完成后系統自動執行

輸入模式(編輯模式)

        功能:修改文本內容

擴展命令模式(內置命令行接口)

        功能:查找替換、保存退出等

blob.png

 

打開文件:

#vim [options] [file…]

+#:打開文件后光標自動跳轉到指定的行數
    [root@CentOS 7 test]# vim +10 passwd//進入文件光標自動在文件的第10行
+/PATTERN:打開文件后,光標直接處于第一個被PATTERN匹配到的行的行
    [root@CentOS 7 test]# vim +/^ftp passwd  
       //打開文件光標在第一次匹配到以ftp開頭的行的行首

關閉文件:(擴展命令模式下)

命令(默認)模式下:

    按shift+zz即可保存并退出,shift+zq即退出不保存。

擴展命令模式下:

q:退出不保存(未更改文件內容前)
q!:強制退出不保存(用于已修改文件后)
wq:保存并退出
x:保存并退出
//以上4個直接在擴展命令模式中的冒號輸入確認即可
w  /path/to/somefile:將文件另存為到指定文件
   編輯文件,在擴展命令模式下輸入保存地址即可,保存后可看到提示信息
 :w /test/passwd2   //保存的地址
"/test/passwd2" [New] 39L, 2026C written  
  //提示信息(新文件“/test/passwd2”寫入39行,2026個字節)
  
r  /path/form/some: 讀取指定文件內容到當前編輯文件
需要在正在編輯的文件中添加其他文件的內容,可在擴展命令模式下,輸入下面的命令即可導入
    :r /etc/issue   //在擴展命令行模式下導入/etc/issue文件內容到當前正在編輯的文件中

模式轉換:在進行模式轉換時的光標位置命令

命令模式——輸入模式   

i: insert 在光標所在處輸入
I:在當前光標所在行的行首輸入
a: append, 在光標所在處后面輸入
A:在當前光標所在行的行尾輸入
o 在當前光標所在行的下方打開一個新行
O:在當前光標所在行的上方打開一個新行

光標跳轉:(命令(默認)模式下進行)

    字符間跳轉:(在命令模式(默認)下直接輸入即可左右上下移動)

左(h)、右(l)、前(j)、后(k)

#(h/l/j/k):跳轉#個指定方向的字符  
     #10h  
 //向左移動10個字符(直接在默認模式下輸入即可,沒有可視的信息,命令輸入完之后會自動執行)

    

     單詞間跳轉: (命令(默認)模式下進行)

w:下一個單詞的詞首
e:當前或下一單詞的詞尾
b:當前或前一個單詞的詞首
# command:由#指定一次跳轉的單詞數
    #(w/e/b): 指定跳轉單詞數
        #5w  //跳轉到5個單詞的最后一個單詞詞首

       行首行尾跳轉:(命令(默認)模式下進行)

^:跳轉至行首的第一個非空字符
0:跳轉至行首,不識別空格直接到第一個字符
$:跳轉至行尾

        行間跳轉:(命令(默認)模式下進行)

#G:跳轉至由#指定的行
      #10G   //跳轉到第10行
1G/gg:跳轉至第一行

Vim編輯命令:(命令(默認)模式下進行)

      字符編輯:(命令(默認)模式下進行)

x:刪除光標所在處的字符
#x:刪除光標處起始指定的#個字符
xp:光標當前所在位置的字符與后面的字符轉換位置(兩個字符互換)

      替換命令:(命令(默認)模式下進行)

r:替換光標處的字符

      刪除命令:(命令(默認)模式下進行)

       d:刪除命令,可結合光標跳轉來實現刪除
       d $:刪除光標處向后的所有字符(行
       d^:刪除光標處向前的所有字符(行)
       dw:刪除向后指定的多少個單詞       如:d3w  //刪除3個單詞
       de:刪除向后的單詞
       db:刪除向前的單詞
       dd:刪除當前的一整行     //3dd,刪除3行

      復制命令:(命令(默認)模式下進行)

y:復制(復制,工作行為相當于d命令)
      y$,y^,yo,ye,yw,yb,#command
yy:復制一整行

       粘貼命令:(命令(默認)模式下進行)

p:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方,否則,則粘貼在當前光標所在處的后面
P:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方,否則,則粘貼在當前光標所在處的前面

可視化操作:(命令(默認)模式下進行)

v:按字符選定
V:按行選定


撤銷操作:(命令(默認)模式下進行)

u:撤銷此前的操作
#u:撤銷#次操作
      #4u:撤銷4次
ctrl+r:撤銷此前的撤銷操作
 .   :重復執行前一個編輯命令

擴展命令模式:

1.地址定界:

:start_pos,end_pos
#: 具體第#行,例如2表示第2行;
#,#: 從左側#表示行起始,到右側#表示行結尾
#,+#: 從左側#表示的行起始,加上右側#表示的行數
: 2,+3 表示2到5行
.: 當前行
$: 最后一行
.,$-1 當前行到倒數第二行
%:全文, 相當于1,$
/pat1/,/pat2/
從第一次被pat1模式匹配到的行開始,一直到第一次被
pat2匹配到的行結束
#,/pat/
/pat/,$
w file: 將范圍內的行另存至指定文件中
r file:在指定位置插入指定文件中的所有內容

查找

/PATTERN:從當前光標所在處向文件尾部查找
?PATTERN:從當前光標所在處向文件首部查找
n:與命令同方向
N:與命令反方向

查找替換

s: 在擴展模式下完成查找替換操作
格式: s/要查找的內容/替換為的內容/修飾符
要查找的內容:可使用模式
替換為的內容:不能使用模式,但可以使用\1, \2, ...
等后向引用符號;還可以使用“ &引用前面查找時查找到的整個內容
修飾符:
i: 忽略大小寫
g: 全局替換;默認情況下,每一行只替換第一次出現
gc:全局替換,每次替換前詢問
 查找替換中的分隔符/可替換為其它字符,例如
s@/etc@/var@g
s#/boot#/#i

vim的寄存器:

    有26個命名寄存器和1個無命名寄存器,常存放不同的剪貼版內容,可以不同會話間共享。

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

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

可視化模式:

允許選擇的文本塊
v 面向字符
V 面向行
ctrl-v 面向塊
可視化鍵可用于與移動鍵結合使用:
w, ) , } ,箭頭等
突出顯示的文字可以被刪除,復制,變更,過濾,搜索/替換

多文件模式:

vim FILE1 FILE2 FILE3 …

:next 下一個
:prev 前一個
:first 第一個
:last 最后一個
:wall 保存所有
:qall 退出所有
:wqall

使用多個窗口

多文件分割

vim -o|-O FILE1 FILE2 ...
-o: 水平分割
-O: 垂直分割
在窗口間切換: Ctrl+w, Arrow

單文件窗口分割:

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

定制vim工作特性

配置文件:永久有效

全局: /etc/vimrc
個人: ~/.vimrc

擴展模式下輸入:當前vim進程有效

(1) 行號
    顯示: set number, 簡寫為set nu
    取消顯示: set nonumber, 簡寫為set nonu
(2) 括號成對匹配
    匹配: set showmatch, 簡寫為set sm
    取消: set nosm
(3) 自動縮進
    啟用: set ai
    禁用: set noai
(4) 高亮搜索
    啟用: set hlsearch
    禁用: set nohlsearch
(5) 語法高亮
    啟用: syntax on
    禁用: syntax off
(6) 忽略字符的大小寫
    啟用: set ic
    不忽略: set noic
(7) 文件格式
    啟用: fileformat=unix
    不忽略: fileformat=dos
(8) 設置文本寬度
    :set textwidth=65 (vim only)
    :set wrapmargin=15
    :help option-list
    :set or :set all

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

(0)
LiiLii
上一篇 2016-08-09
下一篇 2016-08-09

相關推薦

  • 網絡配置——路由配置實驗

    一、實驗環境: 4臺虛擬主機,2臺CentOS6.8主機做了R1路由器和PC1主機,2臺CentOS7.2主機做了R2路由器和PC2主機,4臺主機工作在橋接模式下 實驗拓撲圖: 二、網絡配置: ·PC1的網卡配置; ·PC2的網卡配置; ·R1的網卡配置; ·R2的網卡配置; ·啟用路由      &nbsp…

    Linux干貨 2016-09-07
  • 馬哥教育網絡第21期-第1周課程練習

    第一周博客 1、描述計算機的組成及其功能。 計算機的組成:運算器、控制器、儲存器、輸入設備、輸出設備 運算器+控制器 = CPU 儲存器 = RAM(內存) I/O(輸入/輸出)設備 = 硬盤、打印機、鼠標、鍵盤、顯示器 CUP:運算和邏輯運算 儲存器:緩存和儲存數據 I/O設備:計算機與用戶交互的設備 2、按系列羅列Linux的發行版,并描述不同發行版之間…

    Linux干貨 2016-06-26
  • linux進程管理及計劃任務

    進程管理: 什么是進程?   在Linux系統當中:觸法任何一個事件時,系統都會將它定義成為一個進程,并且給予這個進程一個ID,稱為PID,同時依據觸發這個進程的用戶與相關屬性關系,給予這個PID一組有效的權限設置。 進程與程序: 程序(program):通常為二進制程序放置在存儲媒介中,以物理文件的形式存在。 進程(process):程序被觸發后…

    Linux干貨 2016-09-13
  • Linux文件管理與bash特性

    Linux上的文件管理命令 目錄管理命令: mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自動按需創建父目錄; -v: verbose,顯示詳細過程; -m MODE:直接給定權限; 注意:路徑基名方為命令的作用對象;基名之前的路徑必須得存在; r…

    Linux干貨 2017-04-01
  • hbase安裝配置(整合到hadoop)

    1.  快速單擊安裝 在單機安裝Hbase的方法。會引導你通過shell創建一個表,插入一行,然后刪除它,最后停止Hbase。只要10分鐘就可以完成以下的操作。 1.1下載解壓最新版本 選擇一個 Apache 下載鏡像:http://www.apache.org/dyn/closer.cgi/hbase/,下載 HBase Re…

    Linux干貨 2015-04-13
  • M20 – 1- 第三天:終端和基本命令

      今天學了一些初步的命令,能實現一些基礎功能。 chvt : change vitrual terminal 切換虛擬終端 使用方法 : chvt # <- 加終端號 注意:圖形界面不能隨意切換其他的終端,只有在字符行節目才能進行切換。 lsb_release:查看系統信息 使用方法:lsb_release -a tty:查看終端類型 使用…

    Linux干貨 2016-07-29

評論列表(1條)

  • wangnannan
    wangnannan 2016-08-12 20:00

    給個贊

欧美性久久久久