spf13-vim常用快捷鍵、功能
阿新 • • 發佈:2019-02-16
spf13-Vim
事實上只需在Vim裡:help plugin_name就可以檢視幫助內容。
順帶說一下,<Leader>
是自定義的一個快捷鍵。spf13-vim預設是逗號:,
在.vimrc裡面可以更改。
NERDCommenter註釋工具
快捷鍵 功能
,cc 註釋一行
,cu 取消註釋一行
,ca 在兩種註釋符之間切換,如/**/和//
,cm 以block的最簡方式註釋一段程式碼
,c<Space> 切換當前行或選中內容是否註釋,根據首行判斷
,ci 以獨立註釋單行的方式 註釋選中的每一行, 註釋模式取決<Leader>ca
,cs 有格式地註釋, 以block 的常規方式註釋一段程式碼
,cy 複製內容,然後註釋
,cA 在行尾巴追加註釋,註釋模式取決於<Leader>ca
,cl 在行首添加註釋符並進入insert mode
NERDTree檔案導航工具
快捷鍵 功能
Ctrl+e 開啟/關閉NERDTree
? 顯示快速幫助
o或Ctrl+R 開啟檔案、目錄和書籤
go 開啟選中檔案,不過游標仍在NERDTree中
t 在新tab中開啟選中節點/書籤
T 功能與t相同,不過焦點仍在當前tab
i 在新split開啟選中檔案
gi 與i相同,不過游標仍在NERDTree中
s 在新vsplit中開啟選中檔案
gs 與s相同,不過游標仍在NERDTree中
O 開啟選中目錄所有子目錄
x 關閉當前節點父節點
X 關閉當前節點所有子節點
D 刪除當前書籤
P 跳到根節點
p 跳到當前節點父節點
K 跳到本層級第一個節點
J 跳到本層級最後一個節點
C 設定選中目錄為根結點
u 根結點向上跳出一級
U 與u相同,只是老根結點保持開啟
r 重新整理當前目錄所有子目錄
R 重新整理當前根目錄所有子目錄
m 顯示NERDTree的選單
cd 將當前工作目錄改為選中節點
CD 將根結點改為當前工作目錄
f 切換是否開啟檔案過濾
F 切換是否顯示檔案
B 切換書籤列表是否顯示
A 最大最小化NERDTree視窗
ctrlp搜尋file/buf/mru/tag工具
mru是Most Recently Used。
快捷鍵 功能
Ctrl+p 開啟ctrlp並定位在file mode
? 檢視幫助
F5 重新整理當前目錄
Ctrl+f,Ctrl+d 在mode間左右切換
Ctrl+r 切換正則表示式mode
Ctrl+j,Ctrl+k 在搜尋結果間上下移動
Ctrl+t 在新tab開啟選中結果
Ctrl+v 在新vsplit開啟選中結果
Ctrl+x 在新split開啟選中結果
Ctrl+z then Ctrl+o 先標記多個檔案,然後一起開啟
… 向上跳一層級
:25 跳轉到檔案第25行
:/any\:\ string 跳轉到第一個any: string
:+setfiletype\ myfiletype|25 將檔案型別設為myfiletype並跳轉到第25行
:diffthis 對前4個用Ctrl+z標記的檔案比較不同
Surround處理所有”’{[()]}’”等
最適用於HTML/XML檔案。
快捷鍵 功能
ds. 刪除包圍結構。當游標在(Hello *world)中處於*位置時按ds)會得到結果Hello world!
cs. 改變包圍結構。當游標在(Hello *world)中處於*位置時按cs)]會得到結果[Hello world!]
ysiw. 包圍當前詞。當游標在Hello w*orld中處於*位置時按ysiw)會得到結果Hello (world)!
yss. 包圍當前行。當游標在Hello w*orld中處於*位置時按yss)會得到結果(Hello world!)
neocomplcache自動補全工具
快捷鍵 功能
Ctrl+u或Ctrl+n或Ctrl+p 在原始輸入與補全方案間切換
Fugitive整合git工具
快捷鍵 功能
,gs 檢視git狀態:Gstatus
,gd :Gdiff
,gc :Gcommit
,gb :Gblame
,gl :Glog
,gp :Git push
[Tabularize]對齊工具
[Tagbar]Tag工具
使用前要先安裝exuberant-ctags。執行命令sudo apt-get install exuberant-ctags。
在你的專案根目錄執行下面的命令:
ctags -R *
快捷鍵 功能
Ctrl+] 跳轉到定義處
Ctrl+t 返回
,tt 開啟關閉tagbar,顯示當前檔案函式列表,變數列表、屬性等
? 顯示幫助
p 跳轉到tag所在處,游標留在tagbar
P 在預覽視窗開啟tag
Space 顯示tag宣告
o 切換資料夾開啟關閉狀態,在摺疊與展開間切換
zj 跳轉到下一資料夾
zk 跳轉到上一資料夾
s 改變排序方式,一次s,則讓標籤按字典排序,再一次s,則按照檔案內出現順序排序
x 最大最小化視窗
q 關閉視窗
+ 展開標籤內容
- 摺疊標籤內容
* 展開所有標籤
= 摺疊所有標籤
x 是否展開tagbar標籤欄,x展開,再一次x,則縮小標籤欄
<F1> 切換快捷鍵幫助頁面,F1一次出現快捷鍵幫助頁面,在一次F1,快捷鍵幫助頁面隱藏。
EasyMotion跳轉工具
快捷鍵 功能
,,w 跳轉到當前游標前的位置(w)
,,b 跳轉到當前游標後的位置(b)
,,s 搜尋跳轉(s),雙向跳轉
,,j或,,k 行級跳轉(jk)
,,h或,,l 行內跳轉(hl)
順帶說一下,<Leader>
是自定義的一個快捷鍵。spf13-vim預設是逗號:,
在.vimrc裡面可以更改。
cscope
在你的專案根目錄執行下面的命令:
cscope -Rbq
下表中列出了cscope的常用選項:
-R: 在生成索引檔案時,搜尋子目錄樹中的程式碼
-b: 只生成索引檔案,不進入cscope的介面
-q: 生成cscope.in.out和cscope.po.out檔案,加快cscope的索引速度
-k: 在生成索引檔案時,不搜尋/usr/include目錄
-i: 如果儲存檔案列表的檔名不是cscope.files時,需要加此選項告訴cscope到哪兒去找原始檔列表。可以使用"-",表示由標準輸入獲得檔案列表。
-Idir: 在-I選項指出的目錄中查詢標頭檔案
-u: 掃描所有檔案,重新生成交叉索引檔案
-C: 在搜尋時忽略大小寫
-Ppath: 在以相對路徑表示的檔案前加上的path,這樣,你不用切換到你資料庫檔案所在的目錄也可以使用它了。
"cscope add"命令(或cs add)
使用方法:
:cs add {file|dir} [pre-path] [flags]
其中:
[pre-path] 就是以-p選項傳遞給cscope的檔案路徑,是以相對路徑表示的檔案前加上的path,這樣你不要切換到你資料庫檔案所在的目錄也可以使用它了。
[flags] 你想傳遞給cscope的額外旗標
例項:
:cscope add /project/vim/cscope.out
"cscope find"命令(或cs find)
使用方法:
:cs find {querytype} {name}
其中:
{querytype} 即相對應於實際的cscope行介面數字,同時也相對應於nvi命令:
0或s: 查詢符號(C語言符號,即查詢函式名、巨集、列舉值等出現的地方)
1或g: 查詢全域性定義(函式、巨集、列舉等定義的位置,類似ctags所提供的功能)
2或d: 查詢被這個函式呼叫的函式
3或c: 查詢呼叫這個函式的函式
4或t: 查詢指定的字串
6或e: 查詢egrep模式,相當於egrep功能,但查詢速度快多了
7或f: 查詢並開啟檔案,類似vim的find功能
例項:(#號後為註釋)
:cscope find c my_printf # 查詢所有呼叫這個函式的函式(們)
:cscope find 3 my_printf # 和上面結果一樣
其他命令
:cs help # 顯示一個簡短的摘要。
:cs kill {num|partial_name} # 殺掉一個cscope連結(或者殺掉所有的cscope連結)
:cs reset # 重新初始化所有的cscope連結。
:cs show # 顯示cscope的連結
cscope幫助命令列表
反覆按回車鍵(Enter),以移動到所需的輸入欄位, 輸入要搜尋的模式, 然後按回車鍵(Enter). 對於前四和最後兩個輸入欄位,模式可以是regcomp(3)正則表示式。
如果搜尋成功,您可以使用這些單字元命令:
0-9a-zA-Z 編輯包含顯示行的檔案。
space bar 顯示下一組匹配的行。
+ 顯示下一組匹配的行。
^V 顯示下一組匹配的行。
- 顯示先前的匹配行。
^E 編輯所有行。
> 把顯示的行列表,寫到一個檔案中。
>> 把顯示的行列表,增補到一個檔案中。
< 從檔案中讀行。
^ 通過shell命令過濾所有行。
| 將所有行輸送到shell命令。
在任何時候,您都可以使用這些單字元命令:(^表示Ctrl鍵)
TAB 在輸入和輸出區域之間交換位置。
RETURN 移動到下一個輸入欄位。
^N 移動到下一個輸入欄位。
^P 移動到上一個輸入欄位。
^Y / ^A 用最後的樣式型別搜尋
^B 退到以前的輸入欄位和搜尋模式。
^F 退到下一個輸入欄位和搜尋模式。
^C 在搜尋(使用)時切換忽略/使用字母大小寫。
^R 重建交叉引用,即重回到搜尋介面
! 啟動互動式shell (type ^D to return to cscope).
^L 螢幕重繪
? 顯示此命令列表。
^D 退出 cscope.
注意: 如果您想要搜尋匹配某個命令模式的第一個字元,首先鍵入一個“\”字元
注意: 一些ctrl鍵可能被終端配置佔用。
cscope file does not exist 錯誤解決
方法一:
在~/.bashrc中新增如下程式碼:(對於~/.cshrc檔案, 注意把等號=, 改成空格)
alias mkcscopefile='find `pwd` -name "*.[ch]" -o -name "*.cpp" > cscope.files'
alias mktag='ctags -R *; cscope -Rb'
方法二:
建立python檔案,名為gen_cscope_files.py
, 程式碼如下,該檔案放在哪裡都行。
比如我放在/home/code/gen_cscope_files.py
。
在要生成cscope.files的地方執行python ~/code/gen_cscope_files.py
即可,然後再執行cscope -Rb
。
python指令碼gen_cscope_files.py :
#!/bin/python
import os
save_file = open("cscope.files", 'w')
for root, dirs, list in os.walk("./"):
for i in list:
cur_path = os.path.abspath(root)
file_path = cur_path + '/' + i
save_file.write(file_path+'\n')
save_file.close()