VIM下的跳轉練習

2021-05-25 00:50:03 字數 4850 閱讀 8719

在vim下可以使用常用的箭頭鍵

但是 還有其它鍵可以讓你更快的達到目標

hjkl 這是代替箭頭鍵功能的

h m l 跳到螢幕的頂上 中間 下方

w 跳到下乙個單詞的開始

e 跳到單詞的結束

b 向後跳

gg 跳到檔案的開始

g 跳到檔案的結束

10gg 或10g 跳到第10行

ta 跳到下乙個a 前面

fa 跳到下乙個a

大寫的意思相反

另外還有%(跳到檔案的%多少) 和|(跳到第幾列) 不過我很少用

上面的都可以加上數字字首 表示第幾個匹配

另外看檔案時 除了pageup pagedown外還有其它的快速鍵

如ctrl-f 向前一頁 ctrl-b 向後一頁

^ 行首

$行尾0 第乙個字元

另外上面也作為vim其它命令的定位符 如刪除d

dt)一直刪除到這行的)

另外 懂了跳轉鍵後 那刪除或是複製時就不再是以行為單位了 可以指定到某個條件

我覺得這是新手成長的必要方法

另外還有ctrl-t ctrl-i ctrl-]

如果已經使用了ctags 或是cscope建立索引檔案的話 那看**時很是方便

跳轉到函式、變數定義處:

[+ctrl+i 跳轉到函式、變數和#define

[+ctrl+d 跳轉到#define處

ctrl+i 向前跳到前幾次游標位置

ctrl+o 向後跳到後幾次游標位置

函式體跳**

[]][{}

2009-07-07 17:31 補充

如何選中括號中的內容 進行:

將游標移至括號內,按shift+v進入行選模式,然後

i{ - 選小括號中內容,不包括小括號

a{ - 選小括號中內容,包括小括號

ib - 選中括號中內容,不包括括號

ab - 選中括號中內容,包括括號

i{ - 選大括號中內容,不包括大括號

a{ - 選大括號中內容,包括大括號

:h text-objects

下面還有些相關的tips,未全部驗證:

vi中間的內容,不包括{}

va中間內容,包括{}

vi( 選中()中間內容

vi< 選中<>中間內容

vi[ 選中中間內容

vit 選中中間的內容

vi」 選中」"中間內容

vi』 選中」中間的內容

vis 選中乙個句子

vib 選中乙個block

viw選中乙個單詞

vip 選中乙個段落

在normal模式下游標停在某個字元上ga可以檢視該字元的ascii碼

#複製刪除貼上的操作:按v(shift+v),進入可視模式,jk上下選擇需要的行,然後按

y 複製

d 刪除

x 剪下

p 貼上

可視模式很好用,例如想把兩行的所有單詞變成小寫,按v然後按j或k選中這兩行,按gu即可

#跳到行首按0,但實際更好用的是^, 跳到行首非空白字元

#折行前空出4字元顯示折行標識

set foldcolumn=4

#摺疊或展開(在摺疊的那一行左右移動游標也可展開摺疊)

za#刪除游標所在行所處的範圍的摺疊

zd#當在:set foldmethod=marker後,折行會把}}之間的內容摺疊

#不在單詞中間斷行。 設定了這個選項後, 如果一行文字非常長, 無法在一行內顯示完的話,

它會在單詞與單詞間的空白處斷開, 盡量不會把乙個單詞分成兩截放在兩個不同的行裡。

set lbr

#sw是shiftwidth的縮寫,表縮排列數

fx把游標移動到該行的下個x字元上,這個x也可以是乙個漢字,;重複fx操作。fx把游標移動到該行的上乙個x字元上。

gg游標定位到第一行開頭,g定位到最後一行開頭

h游標跳到當前視窗顯示文字的第一行

m游標跳到當前視窗顯示文字的中間一行

l游標跳到當前視窗顯示文字的最後一行

g*查詢包含當前單詞的所有單詞(*只查詢與當前單詞精確匹配的單詞),

-d游標下跳半屏,文字上滾半屏

-u游標上跳半屏,文字下滾半屏

-e文字向上滾動一行

zz螢幕滾動使得當前行成為螢幕的中間一行

normal模式下按j刪除此行末尾的換行符,從而合併兩行

:e!重新讀進上次儲存的此檔案內容

:ab myname william_djj

以後再編輯時鍵入myname,然後空格或回車myname串就會被william_djj代替

:r !date

在當前位置插入系統時間(linux下的date命令),同理當前位置插入某檔案的內容就是

:r filename

:set ignorecase

查詢時取消case sensitive

:set noignorecase

查詢時case sensitive

############ 使用tags ###################

以下命令遞迴當前目錄下的所有檔案建立tags檔案

ctags -r .

vim開啟當前目錄下的任意一檔案,命令模式下鍵入下面語句以指定剛才建立的tags的位置,以後就可以在不同檔案間查閱函式

set tags=../tags

#分割視窗顯示當前函式的定義

-w ]

##########################################

如果外掛程式目錄下有echofunc.vim,用以下命令生成tags,以後編輯**函式名後打「(「時有引數提示。

$ ctags -r –fields=+ls .

:tlist開啟左邊乙個taglist的視窗,顯示symbols。要注意的是在windows下如果tags檔案路徑中有空格或中文會報找不到tags檔案的錯誤,

+w+w 或者+w+left/right 視窗切換

+] 進入游標所指的symbol的定義(如果用滑鼠也是+滑鼠左鍵,跟si的用法一樣)

+t 返回第乙個用+t 跳轉位置,注意+o是跳回上乙個檢視,而+t是跳回上一次按+]的位置

#以下命令**出乙個視窗顯示定義處

ptag 函式名

#以下命令關閉剛才開啟的**視窗

pclose

#垂直**視窗開啟一檔案

vsplit 檔名

#水平**視窗開啟一檔案

split 檔名

變數名寫成/name表示匹配模式

停在某個括號上按%,跳到匹配的括號處,#if跳到匹配的#else或#endif處

set fdm=syntax摺疊函式體

雙擊]往後逐個函式跳讀,雙擊[往前逐個函式跳讀

#解決亂碼

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

#在vim下對比兩個檔案,原來開啟了fnpro.c,現在和fnpro.c.bak對比

#垂直分割

:vert diffsplit fnpro.c.bak

#水平分割

:diffsplit fnpro.c.bak

#跳到下乙個不同之處

:]c#跳到上乙個不同之處

:[c#展開摺疊:zo

#摺疊:zc

#不論何種情況下-o都可以上一次跳轉的地方

#檢視變數和函式的申明

[i#以下為檢視vim環境引數makeprg的值的例子:

:set makeprg?

#重新對檔案**進行縮排

gg=g

跳 轉 到函式 、變數定義處:

[+ctrl+i 跳 轉 到函式 、變數和#define

[+ctrl+d 跳 轉 到#define處

ctrl+i 向前跳 到前幾次游標位置

ctrl+o 向後跳 到後幾次游標位置

函式 體跳 轉 :

[]][{}

2009-07-07 17:31 補充

如何選中括號中的內容 進行:

將游標移至括號內,按shift+v進入行選模式,然後

i{ - 選小括號中內容,不包括小括號

a{ - 選小括號中內容,包括小括號

ib - 選中括號中內容,不包括括號

ab - 選中括號中內容,包括括號

i{ - 選大括號中內容,不包括大括號

a{ - 選大括號中內容,包括大括號

:h text-objects

下面還有些相關的tips,未全部驗證:

vi中間的內容,不包括{}

va中間內容,包括{}

vi( 選中()中間內容

vi< 選中<>中間內容

vi[ 選中中間內容

vit 選中中間的內容

vi」 選中」"中間內容

vi』 選中」中間的內容

vis 選中乙個句子

vib 選中乙個block

viw選中乙個單詞

vip 選中乙個段落

vim檔案跳轉

如果使用vim 開啟了多個檔案 ,如vim file1 file2 ... filen

可以通過

:n 或 :prev來跳轉 到前乙個或者後乙個檔案

還可以通過

:first或:last來跳轉到第乙個和最後乙個檔案

如果你只開啟乙個檔案,如vim file1

然後在使用過程中,通過

:e file2編輯了第二個檔案,這時, :prev是不起作用的

可以用:e#返回上乙個編輯的檔案

無論哪兩種方式都可以用

:bn跳轉到開啟的第n個檔案

如:b1跳轉到第乙個開啟的檔案

vim跳轉命令

ta 跳到下乙個a 前面 fa 跳到下乙個a 大寫的意思相反 另外還有 跳到檔案的 多少 和 跳到第幾列 不過我很少用 上面的都可以加上數字字首 表示第幾個匹配 另外看檔案時 除了pageup pagedown外還有其它的快速鍵 如ctrl f 向前一頁 ctrl b 向後一頁 上面不是重要的 ct...

vim函式跳轉技巧

hjkl 這是代替箭頭鍵功能的 h m l 跳到螢幕的頂上 中間 下方 w 跳到下乙個單詞的開始 e 跳到單詞的結束 b 向後跳 gg 跳到檔案的開始 g 跳到檔案的結束 10gg 或10g 跳到第10行 ta 跳到下乙個a 前面 fa 跳到下乙個a 大寫的意思相反 另外還有 跳到檔案的 多少 和 ...

vim游標移動 跳轉

vim的三個模式 命令列模式 插入模式 底行模式 從命令模式到插入模式 a 游標後輸入 a 行尾輸入 i 游標前輸入 i 行首輸入 o 上一行輸入 o 下一行輸入 c 刪除到行尾的全部字元,然後進入插入 移動游標 hjkl 行首 0 行尾 翻頁 上ctrl f 下ctrl b 可以讓游標從它當前所在...