小记:一直以来熟悉了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