1. 程式人生 > >編輯神器Vi介紹及常用命令

編輯神器Vi介紹及常用命令

1 vi 簡介


vi 編輯器是 Linux 和 Unix 上最基本的文字編輯器,工作在字元模式下。由於不需要圖
形介面,vi 是效率很高的文字編輯器。儘管在 Linux 上也有很多圖形介面的編輯器可用,
但 vi 在系統和伺服器管理中的功能是那些圖形編輯器所無法比擬的。
vi 編輯器通常被簡稱為 vi,而 vi 又是“Visual interface”的簡稱。它在 Linux 上的地
位就像 Edit 程式在 DOS 上一樣。它可以執行輸出、刪除、查詢、替換、塊操作等眾多文字
操作,而且使用者可以根據自己的需要對其進行定製,這是其他編輯程式所沒有的。
vi 編輯器並不是一個排版程式,它不像 Word 或 WPS 那樣可以對字型、格式、段落
等其他屬性進行編排,它只是一個文字編輯程式。沒有選單,只有命令,且命令繁多。vi
有 3 種基本工作模式:命令列模式、文字輸入模式和末行模式。
Vim 是 vi 的加強版,比 vi 更容易使用。vi 的命令幾乎全部都可以在 vim 上使用。


2 vi 工作模式


vi 有三種基本工作模式:命令模式、文字輸入模式、末行模式。
 
2.1 命令模式


任何時候,不管使用者處於何種模式,只要按一下 ESC 鍵,即可使 Vi 進入命令模式;我
們在 shell 環境(提示符為$)下輸入啟動 Vi 命令,進入編輯器時,也是處於該模式下。在該
模式下,使用者可以輸入各種合法的 Vi 命令,用於管理自己的文件。此時從鍵盤上輸入的任
何字元都被當做編輯命令來解釋,若輸入的字元是合法的 Vi 命令,則 Vi 在接受使用者命令之
後完成相應的動作。但需注意的是,所輸入的命令並不在螢幕上顯示出來。若輸入的字元不
是 Vi 的合法命令,Vi 會響鈴報警。


2.2 編輯模式
在命令模式下輸入插入命令 i、附加命令 a 、開啟命令 o、修改命令 c、取代命令 r 或
替換命令 s 都可以進入文字輸入模式。在該模式下,使用者輸入的任何字元都被 Vi 當做檔案
內容儲存起來,並將其顯示在螢幕上。在文字輸入過程中,若想回到命令模式下,按鍵 ESC
即可。


2.3 末行模式
在命令模式下,使用者按“:”鍵即可進入末行模式下,此時 Vi 會在顯示視窗的最後一
行(通常也是螢幕的最後一行)顯示一個“:”作為末行模式的提示符,等待使用者輸入命令。
多數檔案管理命令都是在此模式下執行的(如把編輯緩衝區的內容寫到檔案中等)。末行命
令執行完後,Vi 自動回到命令模式。例如 :sp newfile
則分出一個視窗編輯 newfile 檔案。如果要從命令模式轉換到編輯模式,可以鍵入命
令 a 或者 i;如果需要從文字模式返回,則按 Esc 鍵即可。在命令模式下輸入“:”即可切
換到末行模式,然後輸入命令。




vi 基本操縱


3.1 進入編輯模式


命令含義
i 和 Ii 在游標前插入,I 在行首插入
a 和 Aa 在游標後插入,A 在行末插入
o 和 Oo 在游標所在行下一行插入,O 在游標所在行上一行插入


3.2 移動游標
命令含義
h游標向左移動
j游標向下移動
k游標向上移動
l游標向右移動

H、M、L游標移動到到可見螢幕第一行(H)、中間行(M)、最後一行(L)
^和$^移動到行首,$移動到行末
G 和 ggG 文件最後一行,gg 文件第一行
ctrl+f、ctrl+b向前翻屏、向後翻屏
ctrl+d、ctrl+u向前半屛、向後半屛
{ 和 }{向上移動一段,}向後移動一段
w 和 b向前移動一個單詞,向後移動一個單詞




3.3 刪除命令
命令含義
X 和 xx 刪除游標後一個字元,X 刪除游標前一個字元,包含游標位置字元
dd 和 n dddd 刪除所在行,5 dd 刪除指定行數
d0 和 Dd0 刪除游標前本行所有內容,D 刪除游標後本行所有內容,包含游標位置字元
dw刪除游標所在位置的字,包含光表所在位置字元




3.4 撤銷命令
命令含義
u一步一步撤銷
ctrl + r反撤銷




3.5 重複命令
命令含義
.重複執行上一次操作的命令




3.6 複製貼上
命令含義
yy 和n yy 和 y$y^yy 複製當前行,5 yy 複製 5 行
p在游標所在位置向下新開一行貼上




3.7 選擇文字
命令含義
v 和 Vv 選擇單個字元,V 選擇整行
<<和>>選擇文字之後,向左縮排,向右縮排




3.8 查詢替換
命令含義
命令模式下,r 和 Rr 替換當前字元,R 替換游標後的字元
末行模式下,/ + strn 查詢下一個,N 查詢前一個
末行模式下,%s/abc/123/g將檔案中所有 abc 替換為 123
末行模式下,1, 10s/abc/123/g將第一行至第 10 行之間的 abc 替換成 123


4.1 開打檔案分屏
命令含義
vim -On file1 file2 ...使用大寫 O 引數進行垂直分屏,n 為陣列,不得小於檔案數
vim -on file1 file2 ...使用小寫 o 引數進行水平分屏
ctrl+w c關閉當前視窗
ctrl+w q關閉當前視窗,如果只剩最後一個,則退出 vim

相關推薦

編輯神器Vi介紹常用命令

1 vi 簡介 vi 編輯器是 Linux 和 Unix 上最基本的文字編輯器,工作在字元模式下。由於不需要圖 形介面,vi 是效率很高的文字編輯器。儘管在 Linux 上也有很多圖形介面的編輯器可用, 但 vi 在系統和伺服器管理中的功能是那些圖形編輯器所無法比擬的。 v

終端編輯神器vi和vim常用方法

vi —— 終端中的編輯器 目標 vi 簡介 開啟和新建檔案 三種工作模式 常用命令 分屏命令 常用命令速查圖 01. vi 簡介 1.1 學習 vi 的目的 在工作中,要對 伺服器 上的檔案進行 簡單 的修改,可以使用

maven介紹常用命令

1、maven的用途   maven是主要服務基於java平臺的專案構建,依賴管理和專案資訊管理的一個工具。專案構建包括清理,編譯,測試到生成測試報告,再到打包和部署;依賴管理是maven藉助於座標來實現的。maven是跨平臺的,可以在windows,linu

docker-compose介紹常用命令

compose專案簡介 compose專案主要用於編排部署基於docker的應用。compose主要用於開發/測試場合。適合小規模應用的部署。compose以命令列方式執行,本身沒有daemon。只提供應用編排部署的能力。 相對於kubernetes來說功能比較簡單,相當於kubernetes的一個子集。

vi編輯器設定常用命令

ubuntu下vi退格鍵不能刪除字元         編輯/etc/vim/vimirc.tiny新增行 set backspace=2   ubuntu下vi設定tab縮排 se

linux安裝系統分區詳細介紹常用ls命令

自動分區 fff 英語基礎 沒有 擁有 inux 文件夾 swap user linux對於沒有基礎的初學者來說,最難的就是第一步,不為什麽因為萬事開頭難,第一步就是裝系統分區,而這裏面最難的我認為就是分區部分,如果是讓系統自動分區那就很簡單,但對於初學者一般都是要手動分區

Ubuntu(14.04LTS)安裝anaconda常用命令介紹

首先是選擇安裝的版本:https://www.anaconda.com/download/#linux,這裡提供兩個版本,預設安裝的Python分別是2.7和3.7(截至2018年11月27日10:49:33)。 考慮到以後需要用到TensorFlow,喵哥推薦使用anaconda2,即預

redis學習筆記01 — 基本介紹、安裝配置常用命令

redis——NoSQL的一種 為了解決高併發、高可用、高擴充套件、大資料儲存等一系列問題而產生的資料庫解決方案,就是NoSQL NoSQL,非關係型資料庫,全名:Not Only Sql,它不能代替關係型資料庫,只能作為關係型資料庫的一個良好補充。 redis 簡介 是使用

vi的安裝、配置常用命令

1. vi的安裝: $ sudo apt-get install vimvim-gnome vim-tiny vim-gtk vim-nox   2. 修改vi的配置檔案 // 我這裡修改的使用者主目錄下的.vimrc檔案,如果需要對系統所有使用者生效,需要修改系統級的配置

vi/vim工作模式常用命令

1、新建檔案vi 路徑 檔名就可以了 2、編輯檔案,有點麻煩了,開啟檔案後,輸入i開始編輯文字,回車是換行。:w是儲存檔案,如果退出編輯狀態後按w是退後一個單詞。。注意,如果在編輯狀態下,要先按ESC,退出然後再輸入:w回車,這是儲存。 2、:q是退出,當不存在任何沒有儲存的修改時它才會用 3、:q!是退出並

Git使用:安裝,使用常用命令整理

reset short 配置文件 res 命名 nbsp class 名詞 如果 對於程序猿而言,git是最常接觸的工具之一,因此需要熟練快速掌握其技巧。 git安裝: windwos: 【原創】Windows平臺下Git的安裝與配置 Ubuntu:git與github在

DAY-8 Linux基礎常用命令(4)

打開 ip地址 grep 軟件包 linux基礎 tro mks 官網 vim 一、制作swap分區(命令) swapon –s 查看當前激活狀態的swap分區 free –m 以m為單位查看分區 swapoff關閉分區 swapon打開分區 添加swap分區——mks

DAY-9 Linux基礎常用命令(5)

mod conf 自己的路 linux操作 解包 二進制安裝 netstat iptables usr 一、Samba(類似共享網盤) 1、功能:Linux操作系統給win用戶共享文件用 2、如何部署 》》準備環境:iptables –F(清除防火墻)、systemctl

展示C代碼覆蓋率的gcovr工具簡單介紹相關命令使用演示樣例

文件夾 mes repo 例如 oid else if dir total down (本人正在參加2015博客之星評選,誠邀你來投票,謝謝:username=zhouzxi">http://vote.blog.csdn.net/blogstar2015

【安全牛學習筆記】tcpdump簡介常用命令實例

信息安全 tcpdump security+ tcpdump簡介 tcpdump 是一個運行在命令行下的嗅探工具。它允許用戶攔截和顯示發送或收到過網絡連接到該 計算機的TCP/IP和其他數據包。tcpdump 是一個在BSD許可證下發布的自由軟件。

[轉]SpringMVC Controller介紹常用註解

印象 頭信息 out tex ade 縮小 打印 註解 gre 一、簡介 在SpringMVC 中,控制器Controller 負責處理由DispatcherServlet 分發的請求,它把用戶請求的數據經過業務處理層處理之後封裝成一個Model ,然後

Docker使用技巧常用命令

span server 登錄用戶 serve java 本地 oot ps 命令 用戶 安裝docker 檢查curl包是否安裝? which curl 如果curl沒有安裝的話,則先更新apt源,並安裝curl,如下: apt-get updateapt-get

redis配置文件全解常用命令

redisredis配置文件全解及常用命令1.基本配置daemonize no 是否以後臺進程啟動databases 16 創建database的數量(默認選中的是database 0)save 900 1 #刷新快照到硬盤中,必須滿足兩者要求才會觸發,即900秒之後至少1個關鍵字發生變化。save 3

Linux操作系統常用命令

命令1. 常用命令:1.1 ls命令:1.2 cd 命令: 1.3 cal命令 cal是calendar的意思1.4 echo 命令echo -necho -e "The year is 2018. \nToday is 8. "2. 命令類型:3. date:時間管理:Linux:

gulp介紹常用插件使用方法

extension 加載 lin 邏輯 了解 compile progress 瀏覽器 path gulp是前端開發過程中對代碼進行自動化構建的利器。它不僅能對資源進行優化,而且在開發過程中能夠通過配置自動完成很多重復的任務,讓我們可以專註於代碼,提高工作效率。 一、API