技术标签: 日常使用技巧
安装ctags和cscope
sudo apt-get install ctags
sudo apt-get install cscope
在/home/username/下建立一个文件夹 .vim/plugins 或 .vim/plugin(vim的版本不同,目录不同,一般是在.vim/plugin下),注意:是在用户的home目录下进行创建,而且是隐藏文件夹。
在.vim/plugin目录下创建以下两个文件
"cs search word
func CS_Search_Word()
let w = expand("<cword>")
exe "cs f s" w
exe "copen"
endfunc
" find the define
func CS_Search_define()
let w = expand("<cword>")
exe "cs f g" w
exe "copen"
endfunc
" find call what funcs
func CS_Search_whatfunc()
let w = expand("<cword>")
exe "cs f d" w
endfunc
" find called func
func CS_Search_calledfunc()
let w = expand("<cword>")
exe "cs f c" w
endfunc
" find where file the func is
func CS_Search_funcfiles()
let w = expand("<cword>")
exe "cs f i" w
endfunc
"search word
func Search_Word()
let w = expand("<cword>")
exe "vimgrep" w "./**/*.c ./**/*.h"
exe "copen"
endfunc
在用户自己的home目录下创建自己的.vimrc文件。注意,以下文件是我的配置,你可以修改成你的配置,我在相关的映射上都加上了注释。该文件的内容如下:
set nu
set tabstop=4
set et
set fo-=r
set noautoindent
syntax on
" 把光标放到一个函数上,按f5就可以打开该函数的定义窗口
map <F5> <C-w>]
" 按f6关闭定义窗口
map <F6> <C-w>c
" 按f4可以查看括号的匹配
map <F4> <S-%>
" 在插入模式下输入zz,即可退出编辑状态
imap zz <Esc>
set sw=4
"map <F2> :s/$/\= strftime(" %Y-%m-%d %H:%M:%S")<Enter>
" 在光标所在行的末尾插入日期,这个可以按自己的需要去留
map <F2> :s/$/\= strftime(" %Y-%m-%d")<Enter>
" 在项目级别查找单词所在的地方,并弹出窗口
map <F9> :call Search_Word()<CR>
" 按<查看前一项内容
map < :cprevious<CR>
" 按>查看后一项内容
map > :cnext<CR>
" 只是查看函数被调用的地方,而不是字符串搜素
map <F7> :call CS_Search_Word()<CR>
" 关闭弹出窗口
map <F8> :cclose<CR>
if has("cscope")
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
" add any database in current directory
if filereadable("./cscope.out")
cs add ./cscope.out
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
"if $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb
endif
set cscopequickfix=e-,i-,s-,t-
" 查看函数被调用的地方
map <F11> :call CS_Search_calledfunc()<CR>
" 查看函数定义
map <F12> :call CS_Search_whatfunc()<CR>
hi Comment ctermfg=6
set nocompatible
"filetype indent on
"set autoindent
"set ic
set hls
"set lbr
colorscheme delek
脚本ctcs创建完成后,把脚本放到/usr/local/bin/下即可。
#!/bin/bash
#
# ctcs
star()
{
ctags -R *
if [ $? -eq 0 ]; then
echo "ctags successfully!"
fi
cscope -qbR
if [ $? -eq 0 ]; then
echo "cscope successfully!"
fi
}
del()
{
if [ -f tags -o -f cscope.out -o -f cscope.po.out -o -f cscope.in.out ]; then
rm -f tags && echo "clean tags ok!"
rm -f cscope.* && echo "clean cscope.* files ok!"
fi
}
case "$1" in
-r)
del
star
;;
-d)
del
;;
*)
echo "usage : ctcs -r|-d"
exit 1
esac
exit 0
安装GNU global
sudo apt-get install global
配置~/.vimrc
添加如下信息
"gtags 设置项
set cscopetag " 使用 cscope 作为 tags 命令
set cscopeprg='gtags-cscope' " 使用 gtags-cscope 代替 cscope
let GtagsCscope_Auto_Load = 1
let CtagsCscope_Auto_Map = 1
let GtagsCscope_Quiet = 1
let gtags_file=findfile("GTAGS", ";") "查找 gtags 文件
if !empty(gtags_file)
exe "cs add" gtags_file
endif
使用方法
在想要使用gtags的源码根目录执行
gtags
vim打开源码根目录下任意源码文件
Ctrl+} 跳转到函数定义处
Ctrl+t 跳转回来
有关本文的 Microsoft Visual Basic .NET 版本,请参阅 307021。 本任务的内容摘要 从数据集生成在 Excel 2002 或 Excel 2003 中使用的 XML 使用样式表格式化 XML 使用代码打开转换的 XML参考概要Excel 2002 引入了用扩展标记语言 (XML) 格式打开文件的功能。使用用户界面或代码可以
编程心得 2011年03月21日 转自:http://www.360doc.com/content/11/0321/11/3662330_1 03120320.shtml 编程4年-Win32编程-基础编程-界面编程-核心编程-网络编程-驱动编程 如果你对本人或者电子书或者某些乖僻(非深奥)的技术感兴趣,请来信。 联系方式: 手机:1361762100...
文章目录前言一、题目二、模块初始化以及功能分析1.模块的初始化2.模块功能分析三、函数实现1.void Display(void);总结前言为了减少篇幅,各模块的初始化均在模块配置中,可以随时去翻看博客,还有function里面的函数,将不再罗列出来,只是截图展示。一、题目基本要求1.1 使用 CT117E 嵌入式竞赛板,完成试题功能的程序设计与调试;1.2 设计与调试过程中,可参考组委会提供的“资源数据包”;1.3 Keil 工程文件以准考证号命名,完成设计后,提交完整、可编译的 Ke.
(CM)清除存储值(RM)取出存储值(M-)当前显示值与存储值相减并保存(M+)当前显示值与存储值相加并保存(0-9)按钮分别为输入数字0-9 0-9字符键(.)钮用来输入小数点(+/-)钮用来转换当前值的正负√求平方根%求百分比1/X求X分之一→提供退格键功能C按钮...相关例题题1:计算器中的MR.MC.M-.计算器里面有一个存储器,默认状态下是空的(即0).它能保存任意一个数值,也只能存一个...
平常我们使用WebSocket协议是这样的: var ws = new WebSocket("ws://echo.websocket.org"); ws.onopen = function (event) { console.log("Send Text WS was opened."); }; ws.onmessage = function (event) { c...
import cn.hutool.core.codec.Base64;import cn.hutool.core.util.CharsetUtil;import cn.hutool.crypto.Mode;import cn.hutool.crypto.Padding;import cn.hutool.crypto.symmetric.SM4;import cn.hutool.crypto.symmetric.SymmetricCrypto;/** * sm4加密算法工具类 * *...
Python进阶:Ubuntu系统下Python的venv轻量级虚拟环境搭建简介一、Python虚拟环境的作用及创建方法简介二、venv搭建虚拟环境2.1 venv虚拟环境创建最简单的例子2.2 熟悉而陌生的pip2.2.1 从PyPI上安装2.2.2 pip根据Requirements文件配置环境三、virtualenv搭建虚拟环境四、pipenv搭建虚拟环境4.1 pipenv简介4.2 pipenv的安装与使用方法一、Python虚拟环境的作用及创建方法简介Python虚拟环境的作用:针对不同项
File "C:\Users\huaixiao\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "C:\Users\huaixiao\AppData\Local\Programs\Python\Python37-32\lib\sit..
vue-property-decorator是由社区根据vue官方的vue-class-component开发的,现在vue-class-component更新了,原先引入的 Compenots 变成了现在的Options但是vue-property-decorator的源码并未同步更新,所以在用时就会报错解决提示报错后,在node_modules/vue-property-decorator/bin/index.js找到把前面几行代码改成这样就行...
原标题:教你从Cydia上取出SHSH并验证有效性!今天在第一篇内容中和大家说了如何让32位设备进行降级,但这其中有个很重要的问题就是如何提取出对应设备的SHSH,虽然说本篇内容并不是对所有人都有效,但至少多了一个可选择的余地。本篇中介绍的Savethemblobs工具 是一款能够抓取苹果上所有SHSH blob的脚本工具,如果过去你曾经有越狱过,在Cydia上就会自动替你保存好SHSH文件,因此...
点击上方“逆锋起笔”,关注领取学习资源☞ 程序员进阶必备资源免费送「各种技术!」 ☜程序员求职面试(微信号:CoderJob)整理近日,有网友在某社交平台发帖,简单讲了一下自己的字节的视...
/** *cppTest-6.6:this指针 * *this指针是隐含在对象成员函数内的一种指针。this也称为“指向本对象的指针”。 *与Java类似,不同之处在于引用成员时是this->*方式而不是this.*。 *author 炜sama */#includeclass ThisTest{private: int i;public: ThisTest(int i)