vim用法小結

vim使用:

使用vivim的三種主要模式 : 命令模式,插入模式,擴展模式 

 

擴展模式:

w:寫入磁盤文件

wq:寫入并退出

x:寫入并退出

q:退出

q!不存盤退出,即使更改都將丟失

r filename:讀文件內容到當前文件中

w filenane: 將當前文件內容寫入到另一個文件中

!command:在當前界面執行命令

r!command:讀取命令執行結果到文件中來。

 

移動光標,進入插入模式 v 

i:當前位置插入

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

a:在當前光標所在處后面輸入

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

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

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

光標在單詞間跳轉:

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

e:跳轉到當前單詞的詞尾或下一個單詞的詞尾

b:跳轉到當前單詞的詞首或前一個單詞的詞首

 

當前頁面跳轉:

H:頁首的行首

M:頁面中間行首

L:頁面尾部行首

 

當前行跳轉

0:跳轉至當前行的行首

^:跳轉至當前行的非空字符行首

$:跳轉至行尾

 

行間移動:

數字+G:跳轉至數字指定行

G:跳轉至最后一行的行首

1G或者gg:跳轉至第一行行首

 

句間移動:

):下一句

(:上一句

 

段落間移動:

}:下一段

{:上一段

 

翻屏:

ctrl f:向前翻一屏

ctrl+b:向之前翻一屏

crtl+d:向下翻半屏

ctrl+u:向上翻半屏

 

關閉文件:

ZZ:命令模式下下保存退出

ZQ:不保存退出

 

命令模式下的字符編輯:

x:刪除字符

#x:刪除光標所在處的#個字符,包括他本身

xp:交換光標所在處的字符及其后面字符的位置

~:在當前光標所在處轉換大小寫

 

替換字符:

r:替換光標所在處的字符

-R:進入替換模式,一個個的替換

 

刪除操作:

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

d$:刪除至行尾(不包括光標所在處的字母)

d^:刪除至非空行首(不包括光標所在處的字母)

d0:刪除至行首(不包括光標所在處的字母)

dw:刪除至下一個單詞的詞首(都包括光標所在位置的字母)

de:刪除至下一個單詞的詞尾

db:刪除至前一個單詞的詞首或者當前單詞的詞首

dd刪除光標所在行

D:從當前光標刪除至行尾。(不包括光標所在處的字母)

wq:保存退出

不保存退出

x:保存退出

 

復制文本 

y:復制,與命令d類似(都包括復制光標所在位置的字母)

y0:復制到行首(不包括光標所在處)

y^:復制到非空行首(不包括光標所在處的字母)

y$:復制到行尾(不包括光標所在處的行尾)

yy:復制當前行

yw:復制當前位置到下一個單詞詞首(復制包括光標當前所在處的字母)

ye:復制當前位置到下一個單詞詞尾 (復制包括光標當前所在處的字母)

yb:復制當前位置到當前單詞詞首或上一個單詞的詞首(復制包括光標當前所在處的字母)

 

粘貼:

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

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

 

cd的區別在于c可以刪除后立刻進入插入模式。

 

 

地址定界 :用于確定搜索范圍或者替換范圍

start_pos,end_pos #: 具體第#行,例如2表示第2行; 

#,#: 從左側#表示行起始,到右側#表示行結尾 

#,+#: 從左側#表示的行起始,加上右側#表示的行數 

2,+3  表示25行 

.: 當前行 

$: 最后一行 

.,$-1 當前行到倒數第二行 

%:全文相當于1,$

 

/pat1/,/pat2/ 從第一次被pat1模式匹配到的行開始,一直到第一次被 pat2匹配到的行結束 #,/pat/ /pat/,$ v 使用方式:后跟一個編輯命令

刪除

復制

w  file: 將范圍內的行另存至指定文件中 

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

例如:1,/^U/dv

 

撤銷改變 v

vu撤銷最近的更改 v

#u撤銷之前多次更改 v

撤消光標落在這行后所有此行的更改 v

 按Ctrl – r重做最后的“撤消”更改 v

重復前一個操作 v

n.重復前一個操作n次 

 

搜索文檔 

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

?PATTERN:從當前光標所在處向文件首部查找 

n:與命令同方向 

N:與命令反方向v

 

替換:

s: 在擴展模式下完成查找替換操作 

格式:

s/要查找的內容/替換為的內容/修飾符 要查找的內容:可使用模式 替換為的內容:不能使用模式,但可以使用\1, \2, … 等后向引用符號;還可以使用“&”引用前面查找時查找到的整個內容 

修飾符:

i: 忽略大小寫 

g: 全局替換;默認情況下,每一行只替換第一次出現 

gc:全局替換,每次替換前詢問 v 

查找替換中的分隔符/可替換為其它字符,例如 

%s@/etc@/var@g

%s#/boot#/#i 

第一步:定邊界

第二步:s功能替換

第三步:查找的內容用正則匹配,分隔符為@,#

第四步:替換的內容可以引用,不能用正則

第五步:參數,g或者i,c詢問是否覆蓋

 

 

vim寄存器 

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

     用ab,,z表示,用“寄存器表示,放在數字和命令之間 

如:

3"tyy 表示復制3行到t寄存器中

 "tp  表示將t寄存器內容粘貼 v 

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

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

 

可視化和多窗口 v

允許選擇的文本塊 

面向字符 

面向行 ctrl-v 面向塊 v 

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

w, ) , ,箭頭等 v 

突出顯示的文字可以被刪除,復制,變更,過濾,搜索/替換等。這就是可視化存在的最大意義。

 

vim FILE1 FILE2 FILE3 … 

:next 下一個 

:prev 前一個 

:first 第一個 

:last 最后一個 

:wall 保存所有 

:qall 退出所有 

:wqall

 

定制vim的工作特性:

 配置文件:永久有效 

全局:/etc/vimrc 

個人:~/.vimrc 

擴展模式:當前vim進程有效 v

(1) 行號 顯示:set number, 簡寫為set nu 取消顯示:set nonumber, 簡寫為set nonu v

(2) 括號成對匹配 匹配:set showmatch, 簡寫為set sm 取消:set nosm

(3) 自動縮進 啟用:set ai 禁用:set noai v

(4) 高亮搜索 啟用:set hlsearch 禁用:set nohlsearch v

(5) 語法高亮 啟用:syntax on 禁用:syntax off v

(6) 忽略字符的大小寫 啟用:set ic 不忽略:set noic

(7) 文件格式 啟用:fileformat=unix 不忽略: fileformat=dos v

(8) 設置文本寬度 :set textwidth=65 (vim only) :set wrapmargin=15 

 

 20160808作業:

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

在家目錄下創建~/vimrc文件,添加參數tabstop=4.

5、復制/etc/rc.d/init.d/functions文件至/tmp目錄;替換/tmp/functions文件中的/etc/sysconfig/init為/var/log;

cp -a /etc/rc.d/init.d/functions /tmp

vim /tmp/functions

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

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

vim /tmp/functions

:%s@^#\([[:space:]]\+\)@\1@


 

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

(0)
liuzhuoliuzhuo
上一篇 2016-08-12 09:01
下一篇 2016-08-12 09:01

相關推薦

  • 磁盤分區和文件系統管理

    磁盤分區 兩種分區方式:MBR,GPT  MBR: Master Boot Record,1982年,使用32位表示扇區 數,分區不超過2T  如何分區:按柱面      0磁道0扇區:512bytes      446bytes: boo…

    Linux干貨 2016-08-29
  • CentOS安裝本地 YUM源 產生的問題和解決過程

    本人剛剛踏入Linux的神秘殿堂就被如何安裝軟件這樣的問題難倒了,經過Google大神的指點,終于找到了如何配置YUM源的方法,其中也不是一帆風順,也產生了一些小問題,這些都是基礎知識,希望能夠幫到剛剛學習Linux的朋友。     由于VMware的終端不好用,所以想換成XShell,過程中又需要配置網絡屬性,橋接到…

    Linux干貨 2016-01-05
  • 初學linux遇到的問題

    1 su uername 顯示的是基本格式,不是類似于[root@Centos7 ~]#,看著不知道進入到哪個目錄。解決辦法:在家目錄下使用ls -a命令顯示隱藏文件,使用nano .bash_profile命令,在那里編輯PS1=”[\u@\h \W]\\$”保存退出就好了。 疑問:為什么不在/etc/bashrc下更改呢?自答:改…

    Linux干貨 2017-07-15
  • 8月4號作業

    正則表達式表示18位身份證號 egrep "\b[0-9]{17}(x|X|[0-9])\b" 正則表達式表示手機號 egrep "\b1[3,5,8,7][0-9]{9}\b" phone 正則表達式表示郵箱 grep -E "\b[[:alnum:]].*@[[:alnum:]]{2,3}.[[:alnu…

    Linux干貨 2016-08-08
  • bash中的算術運算及條件測試

    bash的算術運算 +, -, *, /, %取模(取余), **(乘方) 實現算術運算: (1) let var=算術表達式 (2) var=$[算術表達式] (3) var=$((算術表達式)) (4) var=$(expr arg1 arg2 arg3 …) (5) declare –i var = 數值 (6) echo ‘算術表達式’ …

    Linux干貨 2017-04-17
  • 文件系統權限管理

    文件系統權限管理 文件及目錄權限 文件系統上的權限是針對訪問者的 訪問者:     owner:屬主,u     group:屬組,g     other:其他,o 針對每個訪問者有三種權限 r:readable w:writeable x…

    Linux干貨 2016-11-05
欧美性久久久久