日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vim 编程常用的指令和快捷键

發布時間:2023/12/3 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vim 编程常用的指令和快捷键 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 移動光標
  • 修改、剪切或復制配對符之間的內容
  • ctags
  • cscope
  • gtags
  • 編譯
  • 快速修改窗口
  • 自動補全
  • 多行縮進縮出
  • 折疊

移動光標

命令說明
gd跳轉到局部變量的定義處
gD跳轉到全局變量的定義處,從當前文件開頭開始搜索
g;上一個修改過的地方
g,下一個修改過的地方
[[跳轉到上一個函數塊開始,需要有單獨一行的 {
]]跳轉到下一個函數塊開始,需要有單獨一行的 {
[]跳轉到上一個函數塊結束,需要有單獨一行的 }
][跳轉到下一個函數塊結束,需要有單獨一行的 }
[{跳轉到當前塊開始處
]}跳轉到當前塊結束處
[/跳轉到當前注釋塊開始處
]/跳轉到當前注釋塊結束處
%不僅能移動到匹配的 (),{} 或 [] 上,而且能在 #if,#else, #endif 之間跳躍

注:上述命令是在普通命令模式輸入

修改、剪切或復制配對符之間的內容

命令說明
ci'、di'、yi'修改、剪切或復制 ' 之間的內容。
ca'、da'、ya'修改、剪切或復制 ' 之間的內容,包含 '。
ci"、di"、yi"修改、剪切或復制 " 之間的內容。
ca"、da"、ya"修改、剪切或復制 " 之間的內容,包含 "。
ci(、di(、yi(修改、剪切或復制 () 之間的內容。
ca(、da(、ya(修改、剪切或復制 () 之間的內容,包含 ()。
ci[、di[、yi[修改、剪切或復制 [] 之間的內容。
ca[、da[、ya[修改、剪切或復制 [] 之間的內容,包含 []。
ci{、di{、yi{修改、剪切或復制 {} 之間的內容。
ca{、da{、ya{修改、剪切或復制 {} 之間的內容,包含 {}。
ci<、di<、yi<修改、剪切或復制 <> 之間的內容。
ca<、da<、ya<修改、剪切或復制 <> 之間的內容,包含 <>。

注:上述命令是在普通命令模式輸入

ctags

命令說明
ctags -R這不是 ex 命令,而是 shell 命令,生成 tag 文件,-R 表示也為子目錄中的文件生成 tags
命令說明
set tags=path/tags告訴 ctags 使用哪個 tag 文件
tag xyz跳到xyz 的定義處,或者將光標放在 xyz 上按 C-],返回用 C-t
stag xyz用分割的窗口顯示 xyz 的定義,或者 C-w ], 如果用 C-w n ],就會打開一個 n 行高的窗口
ptag xyz在預覽窗口中打開 xyz 的定義,熱鍵是 C-w }
pclose關閉預覽窗口。熱鍵是 C-w z
pedit abc.h在預覽窗口中編輯 abc.h
psearch abc搜索當前文件和當前文件 include 的文件,顯示包含 abc 的行

注:以上命令是在底行命令模式下輸入。

有時一個 tag 可能有多個匹配,如函數重載,一個函數名就會有多個匹配。 這種情況會先跳轉到第一個匹配處。

命令說明
[n]tnext下一 [n] 個匹配
[n]tprev上一 [n] 個匹配
tfirst第一個匹配
tlast最后一個匹配
tselect tagname打開選擇列表

注:以上命令是在底行命令模式下輸入。

tab 鍵補齊:

命令說明
tag xyz<tab>補齊以 xyz 開頭的 tag 名,繼續按 tab 鍵,會顯示其他的。
tag /xyz<tab>會用名字中含有 xyz 的 tag 名補全。

注:以上命令是在底行命令模式下輸入。

cscope

命令說明
cscope -Rbq此命令不是 ex 命令,而是 shell 指令。生成 cscope.out 文件
命令說明
cs add /path/to/cscope.out /your/work/dir
cs find c func查找 func 在哪些地方被調用
cw打開 quickfix 窗口查看結果

注:以上命令是在底行命令模式下輸入。

gtags

Gtags 綜合了 ctags 和 cscope 的功能。 使用 Gtags 之前,你需要安裝 GNU Gtags。 然后在工程目錄運行 gtags 。

命令說明
Gtags funcname定位到 funcname 的定義處
Gtags -r funcname查詢 funcname被引用的地方
Gtags -s symbol定位 symbol 出現的地方
Gtags -g string Goto string出現的地方。
Gtags -gi string忽略大小寫
Gtags -f filename顯示 filename 中的函數列表。
Gtags -f %顯示當前文件
Gtags -P pattern顯示路徑中包含特定模式的文件。 如 Gtags -P .h$ 顯示所有頭文件,Gtags -P /vm/ 顯示 vm 目錄下的文件

注:以上命令是在底行命令模式下輸入。

編譯

vim 提供了 make 來編譯程序,默認調用的是 make, 如果你當前目錄下有 makefile,在底行命令模式直接輸入 make 即可。

如果你沒有 make 程序,你可以通過配置 makeprg 選項來更改 make 調用的程序。 如果你只有一個 abc.java 文件,你可以在底行命令模式下輸入以下命令:

set makeprg=javac\ abc.java

然后在底行命令模式下輸入 make 即可。如果程序有錯,可以通過 quickfix 窗口查看錯誤。 不過如果要正確定位錯誤,需要設置好errorformat,讓 vim 識別錯誤信息。 在底行命令模式下輸入:

setl efm=%A%f:%l:\ %m、%-Z%p^、%-C%.%#

%f 表示文件名,%l 表示行號, %m 表示錯誤信息,其它的還不能理解。 請在底行命令模式下輸入 help errorformat 查看幫助文檔。

快速修改窗口

其實是 quickfix 插件提供的功能, 對編譯調試程序非常有用。

命令說明
copen打開快速修改窗口
cclose關閉快速修改窗口

注:上述命令是在底行命令模式下輸入。

快速修改窗口在 make 程序時非常有用,當 make 之后:

命令說明
cl在快速修改窗口中列出錯誤
cn定位到下一個錯誤
cp定位到上一個錯誤
cr定位到第一個錯誤

注:上述命令是在底行命令模式下輸入。

自動補全

命令說明
C-x C-s拼寫建議。
C-x C-v補全vim選項和命令。
C-x C-l整行補全。
C-x C-f自動補全文件路徑。彈出菜單后,按C-f循環選擇,當然也可以按 C-n和C-p。
C-x C-p 和C-x C-n用文檔中出現過的單詞補全當前的詞。 直接按C-p和C-n也可以。
C-x C-o編程時可以補全關鍵字和函數名啊。
C-x C-i根據頭文件內關鍵字補全。
C-x C-d補全宏定義。
C-x C-n按緩沖區中出現過的關鍵字補全。 直接按C-n或C-p即可。

當彈出補全菜單后:

命令說明
C-p向前切換成員
C-n向后切換成員
C-e退出下拉菜單,并退回到原來錄入的文字
C-y退出下拉菜單,并接受當前選項

多行縮進縮出

命令說明
>>將光標所在行右移 8 個空格。如果在 >> 命令之前給出一個數字 n,例如 4,則表示光標當前行及其下面的 3 行(共 4 行)都右移 8 個空格
<<其使用與>>命令相同,只是移動方向相反

注:以上命令在普通命令模式下輸入。

命令說明
>被選中的行向右移動 8 個空格,并返回到“普通命令模式”下
<被選中的行向左移動 8 個空格,并返回到“普通命令模式”下
=如果在編輯代碼文件,選擇要調整的代碼塊,按 =,代碼會按書寫規則縮排好。或者 n =,調整 n 行代碼的縮排

注:以上命令在可視模式下輸入。

折疊

命令說明
zf創建折疊的命令,可以在一個可視區域上使用該命令
zd刪除當前行的折疊
zD刪除當前行的折疊
zfap折疊光標所在的段
zo打開折疊的文本
zc收起折疊
za打開/關閉當前折疊
zr打開嵌套的折行
zm收起嵌套的折行
zR (zO)打開所有折行
zM (zC)收起所有折行
zj跳到下一個折疊處
zk跳到上一個折疊處
zienable/disable fold

注:以上命令在“普通命令模式”下輸入。

總結

以上是生活随笔為你收集整理的vim 编程常用的指令和快捷键的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。