插入:編程
i 從光標當前位置開始插入vim
a 從光標當前位置的下一個字符開始插入ide
o 在光標位置的下行插入一個空行,再進行插入函數
O 在光標位置的上一行插入一個空行,再進行插入spa
I 從光標所在行的開頭開始插入正文插件
A 從光標所在行的末尾開始插入正文命令行
esc=(ctrl+[)開發
文件保存與退出:字符串
:w 保存文件原型
:w <filename> : 另存爲
:w! 強制保存文件
:q 退出
:q! 強制退出
:x = :wq
文件寫入與打開:
:w filename 保存文件爲給出的文件名
:w! filename 強制保存文件爲給出的文件名
:f filename 將當前文件重命名爲filename
:r filename 插入文件內容到光標指定的位置
:e filename 編輯新文件(打開另外一個文件進行編輯)
:e! 放棄對文件的修改,並加裁原始的文件內容
複製粘貼:
[n]x 刪除從光標開始的連續n個字符
[n]dd 刪除從光標開發的n行
[n]yy 複製從光標開始的n行
y$ 從光標位置複製在行尾
p 粘貼
gp 粘貼
u 撤消
U 撤消對一行的所有操做
ctrl+r 重作(反撤消)
. 重複上次操做
yw 複製一個word
dw 剪貼一個word
cw 修改一個word
D 剪貼光標到行尾
C 修改光標到行尾
選擇:
v 按字符選擇
V 按行選擇
ctrl+v 按塊選擇
光標跳轉:
h、j、k、l 左、下、上、右
H、M、L 屏幕最上邊、屏幕中間位置、屏幕最下邊
gg 跳到文件第一行
G 跳到文件最後一行
$ 跳到行末
0(數字0)跳到行首
[num]gg(或[n]G) 跳到文件第n行
[n]H 跳到屏幕第n行
fx 光標移動到本行以後第一此出現「x」的位置;如:fa ,移動到下一次a出現的位置
Fx 光標移動到本行以前一此出現「x」的位置;如:fa ,移動到上一次a出現的位置
% 在先後括號({}() )位置之間移動
:n 跳到第n行(同[n]G)
w 光標向右移動一個字
W 光標移動到下的個空格以後
b 光標向左移動一個字
B 光標移動到上一個空格以後
num% 跳到文件num%處 , 如50%
編輯模式下按v 進入可視狀態進行內容選擇
[n]shift + > 所選內容向右移動一個tab
[n]shift + < 所選內容向左移動一個tab
查找替換:
/string 查找字符串 ,配合n(next)使用
* 向後搜索光標所在位置的一個word
# 向前搜索光標所在位置的一個word
/\<xxx 查找以xxx開頭的字符串
/xxx\> 查找以xxx結尾的字符串
/\<xxx\> 徹底匹配查找
d/int main 從光標所在位置開始刪除,直到遇到int main
:s/str1/str2 用str2替換行中首次出現的字符串str1
:s/str1/str2/g 用str2替換行中全部的字符串str1
:%s/str1/str2/g 用str2替換全文中全部的字符串str1,不詢問,強制替換
:%s/str1/str2/gc 用str2替換全文中全部的字符串str1,詢問
fd 查找本行第一個d字符
; 下一個
, 上一個
vi:
打開或新建:
vi <filename> #命令行
:ed <filename> #最後一行模式
:fin[d] <path/file> #在路徑path中查找文件,而後編輯它
new <file> # 在新窗口中編輯文件
窗口操做:
:sp(或ctrl+w+s): 打開一個新窗口,編輯相同的內容。
:new(或ctrl+W+n): 打開一個空的北新窗口。
ctrl+w+w: 在多個窗口間切換
J 刪除行末的換行符,將下行與本行合併爲一行
滾屏:
ctrl+u[p] 向下滾半屏
ctrl+d[own] 向上滾半屏
ctrl+f[ront] 向下滾一屏
ctrl+b[ack] 向上滾一屏
ctrl+e 向下滾一行
ctrl+y 向上滾一行
zz 將光標所在的行放在屏幕中間
zt 將光標所在的行放在屏幕第一行 top
zb 將光標所在的行放在屏幕最後一行 botton
Go 跳到文件尾部去插入
標籤:
:tabe [file] 打開新標籤並在新標籤中編輯file所指的文件
:[num] gt 在不一樣的標籤之間切換 num指的是第幾個標籤
:tabo 關閉全部其它的標籤頁
:tabs 列出標籤頁和它們包含的窗口
:tabfir[st] 跳轉到第一個標籤
:tabl[ast] 跳轉到最後一個標籤
vim比較文件內容:
vimdiff main.c main2.c
vim設置:
set number
set nonumber
set ignorecase #忽略大小寫 (查找字符串時)
set noignorecase
set ruler #顯示當前光標所在位置
set nuruler
set hlsearch #高亮顯示 (查找字符串是,找到後高亮顯示)
set nohlsearch
set incsearch #在輸入字符串時就開發查找
set noincsearch
syn on #高亮顯示
set backspace=2 #backspace可用
編程編:
1. 打開include 的文件:
(1) 光標放在文件名上,按 ctrl+w f ,在一個水平分割的窗口中打開。
(2) 光標放在文件名上,按gf, 在同一個窗口中打開。
2. 經過find命令打開文件:
(1)先經過set path設置查找的目錄:
set path=.,./**,/usr/include 表示在當前目錄,當前目錄下的全部子目錄,和/usr/include目錄下進行查找
(2)設置好目錄後在vi下用:find filename便可查找並打開文件信盈達企鵝要妖氣嗚嗚吧久零就要。
3. ctags
(1).在項目目錄下用「ctags -R .」產生tags文件。 可將ctags命令寫入makefile文件中
(2).在vim中設置tags文件「set tags=tags」
(3).在vim中經過tag命令中轉到函數:tag main
:tag {ident} 「中轉到指定的標籤
:tags "顯示標籤
:Ctrl+] 「跳轉到當前光標下的標籤(函數聲明處)
:Ctrl+T 「跳轉到標籤棧中較早的標籤(函數調用處)
在taglist串口中將光標移動到某個tag上,按空格鍵會在狀態欄上顯示原型
4. taglist
:TlistOpen 打開taglisg
:p "預覽taglist窗口中光標所在位置的tag。
:o "在新窗口中打開光標所在位置的tag
:l "展開tag
:+ "展開tag
:= "展開全部tag
:- "摺疊tag(不用shift)
:* "摺疊全部tag
6. MiniBufExplorer
此插件會使窗口上顯示一個buff清單,能夠在該窗口上來選擇打開某個buf文件
<Tab> :跳到下一個buffer名上
<shift+Tab>:跳到上一個buffer名上