VI常用命令集合
VI常用命令集合
轉載自:http://blog.chinaunix.net/uid-20769502-id-112737.html
1、移動及跳轉:
:n 跳轉到n行,n表示行號
nG 跳轉到n行,n表示行號
CTRL-] 跳轉到當前游標所在單詞對應的主題
CTRL-O 回到前一個位置
h 左
j 下
k 上
l 右
W 向前移動一個word
b 向後移動一個word
$ 命令將游標移動到當前行行尾
^ 命令將游標移動到當前行的第一個非空白字元上
0 命令則總是把游標移動到當前行的第一個字元上
fx 在當前行上查詢下一個字元x
% 跳轉到與之匹配的括號處
gf 命令方便地跳轉到游標下的檔名所代表的檔案中
`. 跳轉到最近修改過的位置
“ 跳轉到最近游標定位的位置
m{mark} 將當前游標下的位置名之為標記{mark},從a到z一共可以使用26個自定義的標記
`{mark} 跳轉到一個你定義的{mark}標記
50%mF 到檔案的半中間(”50%”)處設定一個名為F的全域性標記
G 游標定位到最後一行上
gg 游標定位到第一行上
50% 游標定位在檔案的中間
H 游標定位在螢幕的第一行
M 游標定位在螢幕的中間
L 游標定位在螢幕的最後一行
CTRL-U 命令會使文字向下滾動半屏
CTRL-D 命令將視窗向下移動半屏
CTRL-F 命令將向前滾動一整屏(實際上是整屏去兩行)
CTRL-B 命令將向後滾動一整屏(實際上是整屏去兩行)
zz 命令會把當前行置為螢幕正中央(z字取其象形意義模擬一張紙的摺疊及變形位置重置)
zt 命令會把當前行置於螢幕頂端(t意為top)
zb 命令會把當前行置於螢幕底端(b意為bottom)
:jumps 列出關於你曾經跳轉過的位置的列表,你最後一個跳轉的位置被特別以一個”>”號標記
:marks 列出自定義的標記,包含VIM內部自定義的標識
2、搜尋
/ 命令可用於搜尋一個字串,在鍵入的過程中還可以用箭頭鍵和刪除鍵進行移動和修改
? 命令與“/”的工作相同, 只是搜尋方向相反
n 繼續搜尋下一個字串
N 命令與“n”的工作相同, 只是搜尋方向相反
* 向下完整匹配游標下的單詞
# 向上完整匹配游標下的單詞
g 向下部分匹配游標下的單詞
Ctrl-P 向前搜尋可匹配的單詞並完成
Ctrl-N 向後搜尋可匹配的單詞並完成
:set ignorecase 設定忽略大小寫
:set hlsearch 高亮顯示搜尋結果
:set incsearch 鍵入目標字串的過程中Vim就同時開始了搜尋工作
:set nowrapscan 會使搜尋過程在檔案結束時就停止
3、編輯(新增、刪除、移動、複製)
x 代表dl(刪除當前游標下的字元)
X 代表dh(刪除當前游標左邊的字元)
D 代表d$(刪除到行尾的內容)
C 代表c$(修改到行尾的內容)
s 代表cl(修改一個字元)
S 代表cc(修改一整行)
diw 刪除當前游標所在的word(不包括空白字元),意為Delete Inner Word
daw 刪除當前游標所在的word(包括空白字元),意為Delete A Word
dG 刪除當前行至檔案尾的內容
dgg 刪除當前行至檔案頭的內容
cis 修改一整個句子,意為change Inner Sentence
R 讓Vim進入replace模式,在此模式下,每個鍵入的字元都會替換掉當前游標下的字元
p 取回被刪除的內容,可以使用命令記數(在Vim中這叫put)
P 與”p”一樣取回被刪除的內容, 不過它把被取回的內容置於游標之前
yw 複製一個word,同樣可以使用命令記數,c表示change而不是copy
yy 複製一整行
y$ 複製當前游標至行尾
~ 改變當前游標下字元的大小寫
3、在vi中替換字串:
:s/vivian/sky/ 替換當前行第一個vivian為sky
:s/vivian/sky/g 替換當前行所有vivian為sky,g表示global
:n,$s/vivian/sky/ 替換第n行開始到最後一行中每一行的第一個vivian為sky,n為數字
:n,$s/vivian/sky/g 替換第n行開始到最後一行中每一行所有vivian為sky
:.,$s/vivian/sky/g 替換當前行開始到最後一行中每一行所有vivian為sky
:%s/vivian/sky/(等同於 :g/vivian/s//sky/) 替換每一行的第一個 vivian 為 sky,%表示所有行
:%s/vivian/sky/g(等同於 :g/vivian/s//sky/g)替換每一行中所有 vivian 為 sky
:s#vivian/#sky/# 替換當前行第一個vivian/為sky/,可以使用#作為分隔符,此時中間出現的/不會作為分隔符
:3,$s/^/some string/ 在檔案的第一行至最後一行的行首前插入some string
:%s/$/some string/g 在整個檔案每一行的行尾新增some string
:%s/\s\+$// 去掉所有的行尾空格,“\s”表示空白字元(空格和製表符),“\+”對前面的字元匹配一次或多次(越多越好),“$”匹配行尾(使用“\$”表示單純的 “$”字元)
:%s/\(\s*\n\)\+/\r/ 去掉所有的空白行,“\(”和“\)”對錶達式進行分組,使其被視作一個不可分割的整體。
:%s!\s*//.*!! 去掉所有的“//”註釋
:%s!\s*/\*\_.\{-}\*/\s*!!g 去掉所有的“”註釋
3、檔案處理
:w /tmp/1 既然沒法存檔,不想放棄所做的所有修改,先臨時存到/tmp/1。
:20,59w /tmp/1 或者僅僅把第20到59行之間的內容存檔成檔案/tmp/1。
:X 檔案加密,會提示輸入密碼。
vim -x exam.txt 新編輯的檔案加密,會提示輸入密碼。
vim -R file 只讀方式開啟檔案。
vimdiff main.c~ main.c 顯示兩個檔案的不同之處
:args 顯示檔案列表
:n 切換到檔案2 (n=next)。
:N 切換回檔案1。
:scriptnames 顯示VIM載入的vimrc
VIM命令的固定模式: 操作符命令+位移命令
:version 顯示VIM版本資訊,包含特性、編譯方式及配置檔案目錄
:map 列出當前已定義的對映
ptions 開啟一個新視窗, 在該視窗的最開頭的註釋下面是一個選項列表
:help E37
5、常用快捷方式:
“.”:重複上次的修改命令
“Ctrl-X Ctrl-L”:搜尋可匹配的行並完成
“Ctrl-X Ctrl-F”:搜尋可匹配的檔名並完成
“Ctrl-G”:顯示檔名,當前游標所在行的行號,總的行數,以及當前行所在檔案中的百分比和當前游標所在的列的資訊
“ZQ”:無條件退出
“ZZ”:(存檔退出)
“ga”:顯示游標下的字元在當前使用的encoding下的內碼
“guw”:游標下的單詞變為小寫
“gUw”:游標下的單詞變為大寫
“xp”:左右交換游標處兩字元的位置
“ddp”:上下交換游標處兩行的位置,p命令把它取回來(在Vim中這叫put)
“J”:兩行合併為一行, 也就是說兩行之間的換行符被刪除了
“u”:撤消上一次命令
“Ctrl+R”:重做上一次命令
“o”:在當前行的下面另起一行, 並使當前模式轉為Insert模式
6、執行外部命令:
“:!命令”:可以在 Vim 中執行一個外部命令
“:r!”:命令可以在外部命令執行的結果插入到當前編輯的緩衝區中
“:%!nl”:要對包含空行的所有行進行編號
“:!echo $VIMRUNTIME” 顯示VIM的目錄(/usr/share/vim/vim63)
“vimtutor” 顯示VIM的30分鐘的教程
7、set選項:
:set list 檢視製表符,現在每個製表符都會以^I顯示. 同時每行行尾會有一個$字元。
:set key= 去掉檔案加密。
:syntax enable 開啟彩色
:set number? 顯示number的值
:set number& 恢復選項的預設值
:set autoindent 讓Vim在開始一個新行時對該行施以上一行的縮排方式
:set showcmd 在Vim視窗的右下角顯示一個完整的命令已經完成的部分
:set autowrite 設定自動存檔
:set backup 設定備份,生成的備份檔名將是原檔名後面附加一個~
:set backupext=.bak 設定備份檔名後輟
標籤
:tabnew 開啟新標籤頁.
:tabe
:tabnext, tabprev 切換標籤頁,Putty 下只能用這個.
檔案
:e
:enew 新檔案.
:w 儲存.
:wa 全部儲存.
:w
:wq 儲存並退出.
:x 儲存並退出.
:q 退出.
:qa 全部退出.
:q! 強制退出.
文字
esc 切換命令模式 (距離太遙遠了,用 Ctrl+C 代替吧).
i 插入模式.
I 在當前行開頭插入.
R 替換模式.
a 在游標後插入.
A 在當前行尾部插入.
v Visual 模式按字元選擇.
V Visual 模式按行選擇.
游標
h 左移游標.
j 下移游標.
k 上移游標.
l 右移游標.
gg 將游標移到檔案頭部.
G 將游標移到檔案尾部.
#G 移動游標到指定行#. 例如: 5G
u 撤銷.
. 重做.
dd 刪除當前行.
#dd 刪除幾行. 例如: 3dd
d^ 刪除到行首.
d$ 刪除到行尾.
:#,&d 刪除 # 到 & 行. 例如: 3,5d
yy 拷貝當前行到剪貼簿.
#yy 拷貝 # 行到剪貼簿.
y^ 從檔案頭開始拷貝.
y$ 拷貝到檔案尾部.
:#,&y 拷貝 # 到 & 行. 例如: 4,5y
p 在游標後貼上.
P 貼上到游標前.
>> 增大縮排.
<< 減少縮排.
== 自動縮排.
查詢替換
/# 查詢 #. 例如: /printf
?# 反向查詢 #.
n 查詢下一個.
N 反向查詢下一個.
:s/old/new/g 當前行無提示替換.
:%s/old/new/g 無提示替換.
:%s/old/new/gc 確認替換.
:#,&s/old/new/g 從 # 到 & 行無提示替換.
書籤跳轉
:marks 檢視所有書籤, 輸入 ":
m
`
:jumps 檢視所有跳轉記錄, 輸入 ":
Ctags
:! ctags -R . 生成 ctags 檔案.
shift + k 檢視函式 man 幫助資訊.
Code
gg=G 原始碼格式化
其他
!
:r
:r !
:cd
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25897606/viewspace-746787/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Vim和Vi的常用命令
- vi與vim的區別以及常用命令***
- vi與vim的區別以及常用命令
- Linux 常用命令集合Linux
- Mac 常用命令集合Mac
- CentOS7常用命令集合CentOS
- Aircrack-ng工具集常用命令集合AI
- vi 技巧
- Wifite工具常用命令集合大學霸IT達人WiFi
- Vi替換
- Fixed "There was a problem with the editor 'vi'"
- Linux系統中vi是什麼?vi模式有幾種?Linux模式
- 批次探測工具fpingping常用命令集合大學霸IT達人
- ARP監控工具ARPalert常用命令集合大學霸IT達人
- Linux vi替換字串Linux字串
- vi&vim命令列命令列
- 12 vi編輯器
- Vi 和 Vim 的使用
- vi命令詳解(轉)
- Bash 設定 vi mode
- vi/vim編輯器
- 常用的vi/vim命令
- linux下vi使用筆記Linux筆記
- ARP探測目標工具arping常用命令集合大學霸IT達人
- 土法神經網路 VI:TensorFlow神經網路
- vi 正規表示式替換
- vi和vim的編輯模式模式
- SSL_TLS快速掃描器SSLScan常用命令集合大學霸IT達人TLS
- Wifitap是一個WiFi注入工具集常用命令集合大學霸IT達人WiFi
- 無線密碼離線破解工具Pyrit常用命令集合大學霸IT達人密碼
- CentOS7 vi編輯命令【轉】CentOS
- linux命令之vi文字編輯器Linux
- VI高階命令集錦(zt)
- 基於ARP的網路掃描工具netdiscover常用命令集合大學霸IT達人
- 資料包構造分析工具Hping3常用命令集合大學霸IT達人
- 無線認證資訊抓包工具hcxdumptool常用命令集合大學霸IT達人
- 解決無法使用VI的問題
- Linux的VI (刪除貼上,複製)Linux
- FontLab VI for Mac字型設計製作工具Mac