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快捷鍵示意圖
原創文章,作者:SilencePavilion,如若轉載,請注明出處:http://www.www58058.com/31906