vi經常使用命令

插入:編程

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名上

相關文章
相關標籤/搜索