Linux vi常用指令使用案例汇总
生活随笔
收集整理的這篇文章主要介紹了
Linux vi常用指令使用案例汇总
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? Linux vi常見命令使用案例
聲明與簡介
本文的數據來自網絡,部分代碼也有所參照,這里做了注釋和延伸,旨在技術交流,如有冒犯之處請聯系博主及時處理。本文主要介紹Linux內置的編輯器vi的使用。
vi編輯器是所有Unix及Linux系統下標準的編輯器,它簡單實用且功能強大。因為我們工作的環境多為Linux,安裝配置各種軟件時多以命令行的形式,這時就難免會用到vi,所以熟練使用它是基本的必備技能。本文主要介紹常見的vi命令的使用。
注:本文會根據實際實踐更新。
vi使用模式
vi的使用模式有三種:一般模式、編輯模式、命令模式。
- 一般模式可以理解為在外部對文件內容進行修改(刪除)和光標的跳轉、復制、粘貼、替換、刪除等操作。詳細命令見一般模式相關章節。
- 編輯模式則輸入進入文件內部進行內容的維護(增、刪、改),這里是用戶的實際編輯操作,底部會顯示-- INSERT -- 字樣。通過鍵盤上最左腳的ESC鍵可以切換到一般模式。
- 命令模式則對文件的保存、格式設置、全局查找(替換)。一般模式下通過:和/或?可以切換到該模式。詳細命令見命令模式相關章節。
一般模式
光標控制
光標控制,應用在一般模式下,它主要是控制光標的位置,即切換光標。比如將光標切換到文件的首行、尾行,某一行的首、尾等場景。
# 1 這里的n是光標要跳轉的行號,比如4G則會跳轉到文件的第4行首。 # 注:1 該命令一般結合 :set nu一起使用,即先顯示行號,再跳轉。 # 2 文件行首可以通過1G實現。 nG# 2 光標跳轉的尾行的首位。這里G是大寫。 G# 3 光標跳轉到當前行的行首。這里是數字0 0# 4 光標跳轉到行尾。 # 比如通過3G命令跳轉到文件的第3行,這時再輸入$,則會到第3行的尾部。 $# 5 #光標局部單詞級光標移動:圍繞鍵盤的h、j、k、l定義的左、下、上、右光標局部跳轉(一次一個字符)鍵,當然也可以通過↑↓←→,即上下左右鍵達到同樣的效果。h、j、k、l ↑ ↓ ← →# 6 局部移動字級光標移動,這里w(右移一個單詞word)、W(右移動一個單詞word和標點),由于VI是主要面向英文環境,而英文的寫作環境默認是空格作為單詞間的空格,所以這里跳轉的依據是空格。 # 不同的是W會跳過標點,而w則不會。而b(左移一個單詞word)、W(左移一個單詞word和標點)。 w(W) b(B)# 7 句子段落跳轉( 控制句子的跳轉,跳到句子的開頭,)則跳到句子的結尾。{控制跳轉到段落的開頭,}則跳到段落的結尾。 ( ) { }# 8 針對文件內容較多的情況,可以通過翻頁命令控制。 # ctl b(PgUp)上翻,即往前(歷史)翻頁、 相當于back # ctl f(PgDn)下翻,即往后(正前)翻頁。相當于forward # ctl u上翻半頁,u相當于up # ctl d下翻半頁,d相當于down # H代表當前頁前部區域,H相當于head # M代表當前頁中部區域,M相當于Middle # L代表當前頁后部區域,L相當于Last ctl+b、PgUp ctl+f、PgDn ctl+u ctl+d H M L進入編輯模式
這種是由一般模式切換到編輯模式。
# 1 在當前光標前插入文本。這里i相當于insert i# 2 在當前行首插入文本,這里是大寫的I I# 3 在當前光標后插入文本。這里a相當于append a# 4 在當前行末插入文本。 A# 5 在當前行后面插入一空行 這里是字母0,不是數字0. o# 6 在當前行前面插入一空行 O文本編輯
該部分主要涵蓋在一般模式下對文本編輯的常見操作:如復制、粘貼、刪除、替換等。
命令模式
文件操作?
在進入一般模式后以”:”的方式進入。可執行文件的保存、關閉等。
# 1 保存退出,注意要大寫 ZZ # 2 保存文件filename :w filename # 3 保存退出 :wq # 4 寫入文件 :W # 5 寫入文件 :x # 6 不保存退出 :q! # 7 退出 :q匹配與替換?
主要在命令行模式完成模式查找、字符替換操作。
# 1 當前光標往后匹配要查找的單詞word或關鍵字。 # 注:如果匹配不到,則從頂部開始匹配。會出現如下警告:search hit BOTTOM, continuing at TOP /word# 2 當前光標往前匹配要查找的單詞word或關鍵字。 ?word# 3 重復執行之前查找命令,往后(下)查。 n →# 4 重復執行之前查找命令,往前(上)查 N →# 5 對n1和n2直接的行用word2替換word1,即用后面的替換前面的。 # 注:這里g是global的縮寫,即所有的都要替換 :n1,n2s/word1/word2/g# 6 效果同上,不過這里沒加g,如果一行里出現多個word1,那么只會替換首次出現的。 :n1,n2s/word1/word2# 7 替換效果同上,不過這里替換的是光標所在的行且不是全局替換。 :s/word1/word2# 8 對從n1開始用word2替換word1,即用后面的替換前面的。 #注:1 這里的$相當于文件的末尾的意思。 # 2 第二種方式的。(點)相當于文件的開頭。 :n1,$s/word1/word2/g :.,$s/word1/word2/g# 9 替換每一行里的首個word1為word2. # 注:1 這里的%相當于匹配每一行 # 2 第二種方式以g開頭,意思是每一個行。 :%s/word1/word2/ :g/vivian/s//sky/# 替換每一行里的word1為word2. # 注:1 作用同上 # 2 第二種方式的g是gloabal,即每行里都全部替換的意思。 :%s/word1/word2/g :g/vivian/s//sky/g替換示例
原文件內容 #將第9行到11行里的of全部替換為OF :9,11s/of/OF/g #如果只是替換某行里的第一個則不用加g參數,詳細見前文列表出介紹 全局替換后??
總結
以上是生活随笔為你收集整理的Linux vi常用指令使用案例汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信能贷款吗
- 下一篇: 学西点大概要多久需要多少钱 既好找工作还