小記:一直以來熟悉了linux下vim+cscope+ctags+taglist來進行的代碼的閱讀,但是由于工作的需要,無法在linux下工作,但是實在是不習慣windows下面的代碼閱讀工具。
曾經試圖努力去使用source insigt和gvim, 不過最終都不是很理相。
再一個讓我放棄source insight 和gvim的原因,是因為下班在家做開項目的時候,一直都是用linux,反複在winodws下和linux切換實在太麻煩。公司裡倒是也提供了cscope的在伺服器上看code, 不過上面并沒法使用ctags,這導緻在不同的代碼間的跳轉成為了奢望,無奈之下,出此下策,決定在windows下打造一個linux環境中的代碼閱讀。當然啦,如果你的機器足夠牛逼,你也可以選擇使用VM。
開始之前先上張圖讓大家欣賞一下:
廢話不多說~~~~~
一、準備工作
- 1. 安裝cygwin。安裝步驟就不多說了,放狗搜會有好多好多。不過在這裡我想強調的一點就是,以下常用軟體在cygwin中最好勾選上:
a. vim
b. python
c. cscope
d. git
e. ctags
- 2. 設定文法高亮,搜尋結果高亮,行号。
set
number #設定行号
set
hlsearch #設定搜尋高亮
set
fileencoding=utf-8
set
fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set
tabstop=4 #設定Tab鍵
set
shiftwidth=4
syntax
enable #文法高亮
set
nocompatible
set
backspace=indent,eol,start
- 3. 配置taglist
Taglist是以tags檔案為基礎,需要ctags生成tags檔案。
安裝ctags,Redhat和CentOS可以執行yum install ctags,Debian和Ubantu可以執行apt-get install ctags
下載下傳Taglist,位址是http://sourceforge.net/projects/vim-taglist/files/vim-taglist/
解壓taglist_45.zip,可以看到有兩個目錄doc和plugin,結構如下
taglist_45
|
|-------- doc
| \-------- taglist.txt
|
\-------- plugin
\-------- taglist.vim
執行下列shell指令,即安裝完成
cp doc/taglist.txt /usr/share/vim/vim72/doc/
cp plugin/taglist.vim /usr/share/vim/vim72/plugin/
Taglist的打開指令:TlistOpen
視窗間的切換:ctrl+ww
可能會遇到的問題:
1. 如果用cscope無法文法高亮。 可是能因為cscope預設調用了vi而不是vim,但是vi是沒有高亮功能的。解決辦法:在.bashrc中加入:export CSCOPE_EIDTOR=vim。
最後獻上我的.vimrc, .bashrc檔案以及test_scop檔案
.bashrc:
http://download.csdn.net/detail/gzhouc/8778913
.vimrc:
http://download.csdn.net/detail/gzhouc/8778927
或者上面的三個更新版
http://pan.baidu.com/s/1pLkthgv
test_scop:
http://download.csdn.net/detail/gzhouc/8778951
如果你不想麻煩,你可以按照下面簡單方法進行:如果cscope打開的檔案沒有高亮,可以運作:export CSCOPE_EDITOR=vim
上面的這個三個檔案是必須的。
簡單步驟:
1. 把test_scop放到相應的源代碼的根目錄下
2. 把.vimrc放到這個目錄下/home/jeffrey,其實它就是 cd ~
3. 執行test_scop
基本操作:
1. 進入源代碼的根目錄,執行 c,就可以啟動cscope
2. 出現搜尋結果後可以通過空格或是+來向後翻頁,-可以實作回翻頁
3. Tab可以重新搜尋, Ctrl+D可以退出cscope
4, 在打開發的vi中輸入 :TlistOpen可以打開taglist, Ctrl+w可以在list視窗和檔案視窗間來回切換。
5. %可以在大括号間來回跳轉
6. ]]可以在段間跳轉
7. ctrl+] 跳轉到定義處; ctrl+T退回前一個跳轉的位置
8. 光标移動到單詞的開始,*表示向後搜尋這個單詞,#表示向前搜尋這個單詞。
如果想全用NERDTree+ TagList這樣的方案的話,可以直接下載下傳下面的檔案,并把解壓出來的檔案放到$HOME目錄下面
http://pan.baidu.com/s/1qXI6KBq
http://pan.baidu.com/s/1hsDil6W(這個也可以,這個裡面配置相對簡單一些)
有圖有真相
其中左邊是NerdTree的效果,右面是Taglist的效果。
NerdTree:
i: 水準打開多個視窗
s:垂直打開多個視窗
Taglist:
o:水準打開多個視窗
p: 回到父目錄
有關上圖中的左邊的那個NERDTree如何快速打開呢?可以在.vimrc中添加下面這條指令
nnoremap <F2> :exe 'NERDTreeToggle'<CR>
</pre><pre code_snippet_id="1701132" snippet_file_name="blog_20160529_1_9810116" name="code" class="python">open/close Taglist
nnoremap <F3> :exe 'TlistToggle' <CR>
設定modifiable
nnoremap <F4> :exe 'set ma'<CR>
特别推薦:
下面這個是相當不錯的,取自己的同僚,謝謝!
https://share.weiyun.com/265a80e75b1ef589e2dd739112b9089c
http://pan.baidu.com/s/1i4WD3Dz
首先確定已安裝vim并且在.bashrc中的添加:alias vi='vim'
另外,可以選擇對git進行配置一下
[[email protected] test]# git config --list
user.name=Jeffrey Guan
[email protected]
[email protected]
gitreview.username=double12gzh
gitreview.username=double12gzh
color.status=auto
color.diff=auto
color.branch=auto
color.interactive=auto
core.editor=vim
常用快捷鍵:
ctrl+]: 跳轉到函數的實作(g+]可以跨目錄,當有多個定義時會提示,并使用數字标示,輸入數字後回車可跳轉到相應定義處)
ctrl+T:跳回原來的位置
ctrl+P: 調用ctrlp的功能。打開功能後,可以用ctrl+x水準打開視窗; ctrl+v豎直打開; ctrl+t新打開一個标簽頁。(快捷鍵:F4:CtrlPMixed F5:重新整理)
:tabn: 下一個tab.或者可以按逗号+句号
:tabp: 前一個tab。或者可以按逗号+逗号
i: 水準打開檔案
s: 垂直打開檔案
o: 直接打開檔案
]]: 段間跳轉,python中可以實作在不同的類間跳轉
F2:打開NerdTree
F3: 打開tagbar
F4: 打開檔案搜尋功能
跳轉相關的其它指令:
1. 當有多個同名方法時,跳轉到其它符合條件的tag去:
(ex command) :tnext
或者 (ex command) :tn
重複使用這個指令可以發現其餘的同名tag。
2. 如果實在太多,還可以用下面的指令從中直接選取一個:
(ex command) :tselect tagname
或者 (ex command) :ts
Vim會提供給你一個選擇清單,例如
3. 分隔視窗。假設你不僅要檢視新的函數定義,還要同時保留目前的上下文,可以用下面的指令
:stag tagname
.:tj x (可以看做上面#3、 #2兩個指令的合并,如果隻找到一個符号定義,那麼直接跳轉到符号定義處,如果有多個,則讓使用者自行選擇)
4. 看你目前的跳轉曆史記錄
:tags
5. 回到上次浏覽的位置(注意是要在normal模式下)
ctrl + o (後退)
ctrl + i (前進)
6. [+I Display all lines that contain the keyword under the cursor. Filenames and line numbers are displayed for the found lines. The search starts at the beginning of the file.
]+I like "[+I", but start at the current cursor position.
還是上圖吧:
另外,這裡還有一個比較牛逼的配置方案,可以參考一下:
https://github.com/double12gzh/vim/blob/master/setup.sh
設定vim代碼檢查:
vim的python代碼檢測工具
2018-12-28更新:
1. 增加新的vim.tar.gz包及使用方法
2. 增加快捷鍵說明
vim常用快捷鍵
https://www.jianshu.com/p/110b27f8361b
安裝
pip install pygments
sudo apt-get install vim
sudo apt-get install ctags
快捷鍵
鍵 | 功能 |
---|---|
F1 | 幫助 |
F2 | 打開NerdTree |
F3 | 打開TagList |
F4 | 打開ctrlp搜尋檔案 |
F5 | PreviewTag |
F6 | 打開Grepper搜尋關鍵字 |
F7 | Flake8 check |
F8 | 打開ALE |
F9 | signify |
1. Grepper
:Grepper 打開搜尋
:vnew filename 打開搜尋到的檔案
2. NerdTree
- F2 打開nerdtree
- i: 水準打開檔案
- s: 豎直打開檔案
3. Grepper
- F6 打開Grepper,進行關鍵字搜尋
4. ctrlp
- F4 打開ctrlp,進行檔案搜尋
- ctrl + d按檔案名搜尋
- ctrl + x 水準打開視窗
- ctrl + v豎直打開視窗
- ctrl + p/n曆史記錄
- ctrl + z标記檔案,ctrl +o對标記的檔案打開
- ctrl + t 打開新的tab頁
- tab頁切換: 向左: ,, 向右:,.
5. ]]不同的類間跳轉
6. F7
- pep8 check
7. ALE
- F8 打開ALE,進行動态代碼檢查
8. tag相關(未完)
- ctrl + W + } 預覽定義
- ctrl + ]跳轉檢視定義
- PreviewTag tagname 預覽tag
- PreviewFile filename預覽檔案
- F3 打開taglist
- g + ]列出所有的定義
- ctrl + t回到上次跳轉的位置
- ctrl + o後退
- ctrl + i前進
- [ + I 全文查找
- ] + I 光标處向下查找
- % 大括号間跳轉
9.vim-preview(未完)
- F5 當光标在所在的tag處時,按F5執行do preview
> 說明:這兩個指令在Grepper中嘗試過成功了,但是在g+]中沒有成功
- p打開預覽視窗
- P關閉預覽視窗
10. vim-signify(未完)
與git相關,通過與vim-fugitive聯合使用。
- F9 gitdiff
11. subline
标簽切換: :b1