Linux01-Linux文本编辑器vim编辑器深入详解22
一、vim編輯器
? ?1、文本編輯器,字處理器;
? ?2、vi:Visual Interface;
? ?3、vim:VI iMproved,是vi的增強功能;
? ?4、全屏編輯器:vi、vim、nano;
? ?5、vim模式:
? ? ? ?編輯模式(命令模式);
? ? ? ?輸入模式;
? ? ? ?末行模式;
? ?6、模式轉換:
? ? ? ?a)編輯-->輸入:
? ? ? ? ? ?i:在當前光標所在字符的前面,轉換為輸入模式;
? ? ? ? ? ?a:在當前光標所在字符的后面,轉換為輸入模式;
? ? ? ? ? ?o:在當前光標所在行的下方,新建一行,并轉為輸入模式;
? ? ? ? ? ?I:在當前光標所在行的行首,轉換為輸入模式;
? ? ? ? ? ?A:在當前光標所在行的行尾,轉換為輸入模式;
? ? ? ? ? ?O:在當前光標所在行的上方,新建一行,并轉為輸入模式;
? ? ? ?b)輸入-->編輯:
? ? ? ? ? ?ESC:還原到編輯模式;
? ? ? ?c)編輯-->末行
? ? ? ? ? ?輸入:號;
? ? ? ?d)末行-->編輯:
? ? ? ? ? ?ESC,ESC;
二、vim的功能
? ?1、打開文件功能,使用格式:# vim /path/to/somefile:
? ? ? ?a)vim +n FILENAME:打開文件,并定位于第n行;
? ? ? ?b)vim + FILENAME:打開文件,定位至最后一行;
? ? ? ?c)vim +/PATTERN FILENAME:打開文件,定位至第一次被PATTERN匹配到的行的行首;
? ?2、關閉文件:
? ? ? ?a)末行模式下關閉文件:
? ? ? ? ? ?:q 退出不保存;
? ? ? ? ? ?:wq=:x 保存退出;
? ? ? ? ? ?:q! 不保存退出;
? ? ? ? ? ?:w 保存;
? ? ? ? ? ?:w! 強行保存;
? ? ? ?b)編輯模式下退出:
? ? ? ? ? ?ZZ 保存并退出;
? ?3、移動光標(編輯模式下):
? ? ? ?a)逐字符移動:
? ? ? ? ? ?h 向左
? ? ? ? ? ?l 向右
? ? ? ? ? ?j 向下
? ? ? ? ? ?k 向上
? ? ? ? ? ?#h 移動#個字符;
? ? ? ?b)按單詞為單位移動
? ? ? ? ? ?w 移至下一個單詞詞首;
? ? ? ? ? ?e 跳至當前或下一個單詞詞尾;
? ? ? ? ? ?b 跳至當前或前一個單詞詞首;
? ? ? ? ? ?#w 跳#個單詞;
? ? ? ?c)行內跳轉
? ? ? ? ? ?0 跳至行首,絕對行首;
? ? ? ? ? ?^ 跳至第一個非空白字符;
? ? ? ? ? ?$ 跳至行尾,絕對行尾;
? ? ? ?d)行間跳轉
? ? ? ? ? ?#G 跳轉至第#行;
? ? ? ? ? ?G 跳轉至最后一行;
? ? ? ? ? ?末行模式下,直接給出行號即可;
? ?4、翻屏
? ? ? ?a)Ctrl+f 向下翻一屏;
? ? ? ?b)Ctrl+b 向上翻一屏;
? ? ? ?c)Ctrl+d 向下翻半屏;
? ? ? ?d)Ctrl+u 向上翻半屏;
? ?5、刪除單個字符
? ? ? ?a)x :刪除光標所在處的單個字符;
? ? ? ?b)#x :刪除光標所在處及向后的共#個字符;
? ?6、刪除命令
? ? ? ?a)d命令跟跳轉命令組合使用;
? ? ? ?b)#dw,#de,#db
? ? ? ?c)dd :刪除當前光標所在行;
? ? ? ?d)#dd :刪除包括當前光標所在行內的#行;
? ? ? ?e)末行模式下,StartADD,EndADDd :表示刪除從StartADD到EndADD的行;
? ? ? ? ? ?. :表示當前行;
? ? ? ? ? ?$:最后一行;
? ? ? ? ? ?+#:向下的#行;
三、vim粘貼
? ?1、刪除的內容會被保存在緩沖區中,最后一次刪除的內容可以被粘貼;
? ?2、p:如果刪除或復制為整行內容,則粘貼至光標所在行的下方,如果復制或刪除的內容為非整行,則粘貼至光標所在字符的后面;
? ?3、P:如果刪除或復制為整行內容,則粘貼至光標所在行的上方,如果復制或刪除的內容為非整行,則粘貼至光標所在字符的前面;
四、復制命令y
? ?1、用法同d命令相同;
五、修改:先刪除內容,在轉換為輸入模式
? ?1、c:用法同d命令,如:c$;
六、替換
? ?1、r:替換單個或多個字符;
? ?2、R:替換模式;
七、撤消編輯操作
? ?1、u:撤消前一次的編輯操作,連續u命令可撤消此前的n次操作;
? ?2、#u:直接撤消最近#次編輯操作;
八、撤消最近一次的撤消
? ?1、Ctrl+r:撤消最近一次撤消的內容(還原);
九、重復前一次編輯操作
? ?1、. :重復前一次的編輯操作;
十、可視化模式
? ?1、v :按字符選取;
? ?2、V :按矩形選取;
十一、查找
? ?1、/PATTERN:從上往下查找;
? ?2、?PATTERN:從下往上查找;
十二、查找并替換
? ?1、在末行模式下使用s命令;
? ?2、ADDR1,ADDR2s@PATTERN@string@gi,如:(末行模式下):.,100s@he@HE@g;
? ? ? ?a)1,$=%:表示全文;
練習:
? ?將/etc/yum.repos.d/CentOS-Base.repo文件中的http://mirror.centos.org替換為http://172.16.0.1/yum;
參考答案:(末行模式):%s@mirror.centos.org@172.16.0.1/yum@g
十三、使用vim編輯多個文件
? ?1、vim FILE1 FILE2 FILE3
? ? ? ?a):next 切換至下一個文件
? ? ? ?b):prev 切換至前一個文件
? ? ? ?c):last 切換至最后一個文件
? ? ? ?d):first 切換至第一個文件
? ?2、退出
? ? ? ?a):q 退出單個文件
? ? ? ?b):qa 全部退出
十四、分屏顯示一個文件
? ?1、Ctrl+w-->s: 水平拆分窗口
? ?2、Ctrl+w-->v: 垂直拆分窗口
? ?3、在窗口間切換光標:
? ? ? ?a)Ctrl+w-->ARROW
? ? ? ?b):qa 關閉所有窗口
十五、分窗口編輯多個文件
? ?1、vim -o FileName1 FileName2 ...: 水平分割顯示
? ?2、vim -O FileName1 FILEName2 ...: 垂直分割顯示
十六、將當前文件中部分內容另存為另外一個文件
? ?1、末行模式下使用w命令
? ? ? ?a):w 保存文件
? ? ? ?b):ADDR1,ADDR2w /path/to/somewhere
十七、將另外一個文件的內容填充在當前文件中
? ?1、:r /path/to/somefile
十八、跟shell交互
? ?1、:! COMMAND
十九、高級話題
? ?1、顯示或取消顯示行號
? ? ? ?a):set number(簡寫,set nu),顯示行號
? ? ? ?b):set nonu,取消顯示行號
? ?2、顯示忽略或區分字符大小寫
? ? ? ?a):set ignorecase(簡寫,set ic),忽略大小寫
? ? ? ?b):set noic,取消忽略大小寫
? ?3、設定自動縮進
? ? ? ?a):set autoindent(簡寫,set ai),自動縮進
? ? ? ?b):set noai,取消自動縮進
? ?4、查找到的文本高亮顯示或取消
? ? ? ?a):set hlsearch,高亮顯示
? ? ? ?b):set nohlsearch,取消高亮顯示
? ?5、語法高亮
? ? ? ?a):syntax on,開啟語法高亮
? ? ? ?b):syntax off,關閉語法高亮
二十、配置文件
? ?以上十九的設定只在當前生效,但可以在配置文件中配置:
? ?1、/etc/vimrc,全局生效;
? ?2、~/.vimrc,只在自己家目錄下生效(如果沒有可創建此文件);
二十一、系統內的vim教程:vimtutor 。
轉載于:https://blog.51cto.com/zkhylt/1399893
總結
以上是生活随笔為你收集整理的Linux01-Linux文本编辑器vim编辑器深入详解22的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LVS+OSPF 架构
- 下一篇: javascript setinter