为方便阅读Linux kernel代码修改exVim,用颜色标注的为添加的代码
来源:互联网 发布:游戏编程入门书籍 编辑:程序博客网 时间:2024/05/18 01:34
1 make ARCH=arm CROSS_COMPILE=arm-linux- cscope
生成Linux内核只包含当前架构源文件,头文件列表。
2 将生成的cscope.files 改名为kernel.files(避免exVim调用cscope时将此文件覆盖)mv cscope.files kernel.files
3修改~/.toolkit/quickgen/bash/quick_gen_project.sh
核心思路是:将kernel.files拷贝到.vimfile中,避免重新扫描
这里的修改和cscope,ctags功能相关,但是和现实的工程目录没有关系,即修改这步后没有编入linux kernel的文件依然会在工程目录中显示出来。
if [ -f "kernel.files" ]; then
cp "./kernel.files" "./${vimfiles_path}/filenamelist_vimfiles"
sed -i "s/^/\.\.\//g" "./${vimfiles_path}/filenamelist_vimfiles"
else
# create filenamelist_cwd
echo " |- generate _filenamelist_cwd"
if test "${dir_filter}" != ""; then
# NOTE: if we have dir filter, we still need get files in root directory
find ${force_posix_regex_1} . -maxdepth 1 ${force_posix_regex_2} -regex ".*\.("${file_filter}")" > "./${vimfiles_path}/_filenamelist_cwd"
find ${force_posix_regex_1} ${dir_filter} ${force_posix_regex_2} -regex ".*\.("${file_filter}")" >> "./${vimfiles_path}/_filenamelist_cwd"
else
find ${force_posix_regex_1} . ${force_posix_regex_2} -regex ".*\.("${file_filter}")" > "./${vimfiles_path}/_filenamelist_cwd"
fi
if [ -f "./${vimfiles_path}/_filenamelist_cwd" ]; then
echo " |- rename _filenamelist_cwd to filenamelist_cwd"
cp "./${vimfiles_path}/_filenamelist_cwd" "./${vimfiles_path}/test_cwd"
mv -f "./${vimfiles_path}/_filenamelist_cwd" "./${vimfiles_path}/filenamelist_cwd"
fi
else
# create filenamelist_cwd
echo " |- generate _filenamelist_cwd"
if test "${dir_filter}" != ""; then
# NOTE: if we have dir filter, we still need get files in root directory
find ${force_posix_regex_1} . -maxdepth 1 ${force_posix_regex_2} -regex ".*\.("${file_filter}")" > "./${vimfiles_path}/_filenamelist_cwd"
find ${force_posix_regex_1} ${dir_filter} ${force_posix_regex_2} -regex ".*\.("${file_filter}")" >> "./${vimfiles_path}/_filenamelist_cwd"
else
find ${force_posix_regex_1} . ${force_posix_regex_2} -regex ".*\.("${file_filter}")" > "./${vimfiles_path}/_filenamelist_cwd"
fi
if [ -f "./${vimfiles_path}/_filenamelist_cwd" ]; then
echo " |- rename _filenamelist_cwd to filenamelist_cwd"
cp "./${vimfiles_path}/_filenamelist_cwd" "./${vimfiles_path}/test_cwd"
mv -f "./${vimfiles_path}/_filenamelist_cwd" "./${vimfiles_path}/filenamelist_cwd"
fi
# create filenamelist_vimfiles
echo " |- generate _filenamelist_vimfiles"
sed "s,\(.*\),.\1,g" "./${vimfiles_path}/filenamelist_cwd" >> "./${vimfiles_path}/_filenamelist_vimfiles"
if [ -f "./${vimfiles_path}/_filenamelist_vimfiles" ]; then
echo " |- rename _filenamelist_vimfiles to filenamelist_vimfiles"
mv -f "./${vimfiles_path}/_filenamelist_vimfiles" "./${vimfiles_path}/filenamelist_vimfiles"
fi
fi
4 在工程目录中只显示编译linux kernel用到的头文件和源文件
a)修改/home/pc/.vim/plugin/exProject.vim
在为工程目录扫描时读入kernel.files,在两次调用call exUtility#Browse时添加同样的代码:
let g:linuxkernellistpath = g:exES_CWD . '/kernel.files'
if filereadable(g:linuxkernellistpath )
let g:linuxkernelfilelist = readfile(g:linuxkernellistpath,'',)
endif
call exUtility#Browse( entry_dir, exUtility#GetFileFilterPattern(project_file_filter), exUtility#GetDirFilterPattern(project_dir_filter), filename_list )
b)修改/home/pc/.vim/autoload/exUtility.vim
在为工程目录显示时都会注意判断扫描到的文件是否出现在kernel.files
如果没有出现则不显示,这样会去除其他架构的代码,便于查看和阅读。
在Browse函数中,只有出现在kernel.files中的文件才在工程目录中显示。
if filereadable(g:linuxkernellistpath)
if(index(g:linuxkernelfilelist,file[(len(g:exES_CWD)+1):]) >=0)
silent call add(file_list, file)
endif
else
silent call add(file_list, file)
endif
echo " |- generate _filenamelist_vimfiles"
sed "s,\(.*\),.\1,g" "./${vimfiles_path}/filenamelist_cwd" >> "./${vimfiles_path}/_filenamelist_vimfiles"
if [ -f "./${vimfiles_path}/_filenamelist_vimfiles" ]; then
echo " |- rename _filenamelist_vimfiles to filenamelist_vimfiles"
mv -f "./${vimfiles_path}/_filenamelist_vimfiles" "./${vimfiles_path}/filenamelist_vimfiles"
fi
fi
4 在工程目录中只显示编译linux kernel用到的头文件和源文件
a)修改/home/pc/.vim/plugin/exProject.vim
在为工程目录扫描时读入kernel.files,在两次调用call exUtility#Browse时添加同样的代码:
let g:linuxkernellistpath = g:exES_CWD . '/kernel.files'
if filereadable(g:linuxkernellistpath )
let g:linuxkernelfilelist = readfile(g:linuxkernellistpath,'',)
endif
call exUtility#Browse( entry_dir, exUtility#GetFileFilterPattern(project_file_filter), exUtility#GetDirFilterPattern(project_dir_filter), filename_list )
b)修改/home/pc/.vim/autoload/exUtility.vim
在为工程目录显示时都会注意判断扫描到的文件是否出现在kernel.files
如果没有出现则不显示,这样会去除其他架构的代码,便于查看和阅读。
在Browse函数中,只有出现在kernel.files中的文件才在工程目录中显示。
if filereadable(g:linuxkernellistpath)
if(index(g:linuxkernelfilelist,file[(len(g:exES_CWD)+1):]) >=0)
silent call add(file_list, file)
endif
else
silent call add(file_list, file)
endif
0 0
- 为方便阅读Linux kernel代码修改exVim,用颜色标注的为添加的代码
- 一个窗口模式的文件属性修改器LXA 0.56,为以后扩展方便,可复用的代码比较多
- Linux Kernel 2.6内核进程调度复杂度为O(1)的代码分析
- 【代码学习】角色添加权限的方法,先删除,再添加。而不是用修改,这样很方便。
- 代码修改Shader的颜色
- 修改eclipse的代码颜色
- Android 在代码中为textview设置自定义的颜色
- 使用代码为Button设置drawableTop和修改文字颜色
- 使用Python的paramiko模块代码端为Linux添加系统用户并设置密码
- Code Fragment-通过整齐的格式方便读者代码阅读
- 如何格式化被压缩的JS代码方便阅读
- vim下方便代码阅读的工具ctags
- 为你的UML模型添加颜色
- 为CEDIT添加有颜色的边框
- 为你的ALV列添加颜色
- 思考:重复性的代码流程应该导出为模板也方便规范
- 修改状态栏的颜色为白色
- 使用storyboard添加控件,用代码为控件添加约束时,出现NSIBPrototypingLayoutConstraint冲突的解决办法
- Intent的属性-Component属性
- Gold Coins
- Python在Snow Leopard中切换版本的命令
- We Love MOE Girls
- 弹出一个自定义窗口
- 为方便阅读Linux kernel代码修改exVim,用颜色标注的为添加的代码
- vb.net 的 openFileDialog 控件文件筛选器使用
- ubuntu12.04 安装tftp
- Confluence 扩展(Expand)宏
- Python 2.6 安装wxPython后提示"64.....32"错误解决办法
- 在Selenium中如何处理单选框
- 解决方法:SQL2008 链接服务器 访问接口 "SQLNCLI10" 的架构行集 出错的问题!
- 修改 excel 文件中的日期格式为 yyyy-mm-dd
- 新闻网站