.cshrc .vimrc
来源:互联网 发布:android调用js方法 编辑:程序博客网 时间:2024/06/02 02:16
不同的公司有不同的setting,但是总体都是类似的。走过三家公司,环境脚本一家比一家复杂,第一家应届毕业时热心员工Ida为我设置的,就记得她把.vimrc.cshrc等一通拷贝到我的home目录,然后,然后就没有然后了,来不及研究我迅速投入到自己维护的正式模块中去了。第二家没有印象了,感觉设置也不困难,节奏比第一家慢多了,但是入职时候把好多时间精力放在研究各个模块Spec上。第三家就是现在,入职时候用心了一把,现把各个IC相关Setting记录如下:
1. .cshrc
2. VIM 相关设置 .vimrc
3. ctags相关设置
.cshrc 文件
.cshrc表示用户运行csh这个shell时的一些配置信息,每开一个terminal就会被执行一次。跟IC相关的是:
1.path Shell 的环境变量,最重要的就是PATH
通常path和PATH的区别是path内容通过空格隔开,而PATH是“:”隔开
set path = ($tmp_path /usr/bin)
set path = ( $tmp_path )
在 Shell 有所谓的环境变量,当我们在 shell 中执行指令时,这些环境变量可能会被该程序用来判断程序所要执行时的参数。例如,我们在执行 cal 这个指令时,我们不必打它的绝对路径 /usr/bin/cal,因为shell 会自动依照 PATH 这个环境变量所设定的路径去找我们所输入的指令。您可以使用下列指令来看目前PATH 这个变量的内容:
# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin
如果您使用 tcsh,您也可以打 setenv 来看目前所有的环境变量。以下为一些常用的环境变量:
变量名称
描述
USER
目前所使用的使用者名称。
PATH
执行指令所要搜寻的位置,以冒号隔开。
SHELL
目前所使用的 Shell。
TERM
目前所使用的终端机模式。
OSTYPE
操作系统名称。
MACHTYPE
系统所使用的 CPU 架构。
PAGER
当需要分页时,所要使用的分页软件,如 more 或 less。
EDITOR
预设所要使用的编辑器。
您也可以使用 setenv 来改变一个环境变量的值。例如,我们要将预设的文书编辑器改成ee,在 tcsh 中可以使用:
# setenv EDITOR ee
如果您使用的是 Bourne Shell:
# export EDITOR="ee"
注意IC各种tools的目录都要在哦,小到perlpathoy,matlab, 大到vcsVerdi DC ICC等等~
2. Set up C shell environment, especially prompt. 以前不明白prompt是个啥,原来意思就是你的terminal提示符,以前看人家的提示符超级酷和绚丽,现在咱也会弄了。看看下面例子是不是豁然开朗?
# Set up C shellenvironment:
if ( $?prompt ) then # shell is interactive.
stty erase ^H kill ^U intr ^C susp ^Z
set history=50 #previous commands to remember.
set savehist=50 # numberto save across sessions.
set system=`hostname` # name ofthis system.
unset autologout
alias setprompt 'set prompt="${system}:${cwd}[ \! ] --> "'
alias cd 'chdir \!* && setprompt' # reset prompt after change dir
setprompt #to set the initial prompt
endif
3.第三个最重要的是各种alias,下面是本人最常用的alias
alias g "gvim "
alias h "history"
alias ltr "ls -ltr \!*"
alias ls "ls -F"
alias proj9 "cd /vol/$USER/proj9/\!*"
alias out_rtl "cd out/linux_VCS/$PROJECT/tmp/src/rtl\!*"
这里牵扯到两个重要语法:
1. $USER $PROJECT是环境变量,前者表示用户名,后者表示工程名称(这个通常是每个公司都有一个通用的脚本产生各种EDAtool的路径和环境变量)这样写通用性好,同事直接都可以互相copy
2. \!*, 这个代表是说当前命令参数也被传递给当前的alias名称,例如你在terminal里面敲:out_rtl fifo/memory/
执行的结果是你进入了out/linux_VCS/project_name/tmp/src/rtl/fifo/memory,也就是说\!*(这里是fifo/memory/)也被传递到了aliasout_rtl里面
.gvimrc设置
下面是本人常用的设置,整个gvim打开后看起来赏心悦目 :-)
syntax on
set nu
set wrap
set incsearch
set ruler
set ignorecase
set autoindent
set showcmd
set bs=2
set history=50
colorscheme darkblue
augroup filetypedetect
au BufNewFile,BufRead *.sv setfverilog
au BufNewFile,BufRead *.svp setfverilog
au BufNewFile,BufRead *.svh setfverilog
augroup END
ctags 设置
这个设置是我最费劲的,以前安装同事的邮件一步步很容易。现换了一个环境,再重建就不容易了。后来还是问了老同事+找本公司资深员工才解决的。
我不会从安装ctags工具开始说的J,注意这几点:
1. Home目录下要设置.ctags文件(注意兼容systemverilog)
--langdef=systemverilog
--langmap=systemverilog:.svh.sv.svi.svp.inc.h
--language-force=systemverilog
--regex-systemverilog=/^[\t]*(virtual)?[ \t]*class[ \t]*([a-zA-Z_0-9]+)/\2/c,class/
--regex-systemverilog=/^[\t]*(virtual)?[ \t]*class[ \t]*`ext_class_name\(([a-zA-Z_0-9]+)\)/\2/c,class/
--regex-systemverilog=/^[\t]*module[ \t]*([a-zA-Z_0-9]+)/\1/m,module/
--regex-systemverilog=/^[\t]*program[ \t]*([a-zA-Z_0-9]+)/\1/p,program/
--regex-systemverilog=/^[\t]*interface[ \t]*([a-zA-Z_0-9]+)/\1/i,interface/
--regex-systemverilog=/^[\t]*(virtual)?[ \t]interface[ \t]*([a-zA-Z_0-9]+)[ \t]*([a-zA-Z_0-9]+)/\3/i,interface/
--regex-systemverilog=/^[\t]*typedef[ \t]+.*[ \t]+([a-zA-Z_0-9]+)[ \t]*;/\1/e,typedef/
--regex-systemverilog=/}(\w*_t);/\1/e,} /
--regex-systemverilog=/}(\w*_s);/\1/e,} /
--regex-systemverilog=/^[\t]*package[ \t]*([a-zA-Z_0-9]+)[ \t]*;/\1/i,} /
--regex-systemverilog=/^[\t]*(parameter|localparameter)[ \t]*([a-zA-Z_0-9]+)[ \t]*=[ \t]*.*;/\2/i,} /
--regex-systemverilog=/^[\t]*`define[ \t]*([a-zA-Z_0-9]+)/\1/d,vmm_defined_macro/
--regex-systemverilog=/^[\t]*constraint[ \t]*([a-zA-Z_0-9]+)/\1/s,constraint/
--regex-systemverilog=/^[\t]*(virtual)?(import[ \t]+.*)?[ \t]*function[\t]+(automatic|void|byte|shortint|int|longint|integer|time|bit|logic|reg|shortreal|real|realtime)?[\t]*(([a-zA-A_0-9]+)[ \t]+)?(([a-zA-Z_0-9]+)[ \t]*::[ \t]*)?([a-zA-Z_0-9]+)[\t]*(\(|;)/\8/f,function/
--regex-systemverilog=/^[\t]*(virtual)?(import[ \t]+\".*\"[ \t]*)?[ \t]*task[\t]+(automatic)?[ \t]*(([a-zA-Z_0-9]+)[ \t]*::)?[ \t]*([a-zA-Z_0-9]+)[\t]*(\(|;)/\6/t,task/
--regex-systemverilog=/^[\t]*(protected|local|static)?[ \t]*(rand)?[\t]*(byte|shortint|int|longint|integer|time|bit|logic|reg|shortreal|real|realtime|supply0|supply1|tri|triand|trior|trireg|tri0|tri1|uwire|wire|wand|wor){1}[\t]*(signed|unsigned)?[ \t]*(\[.*\])?[ \t]*([-a-zA-Z_0-9]+)[ \t]*(\[.*\]| *= *.*)?[\t]*;/\6/i,} /
--regex-systemverilog=/^[\t]*(protected|local|static)?[ \t]*(rand|event|randc)?[ \t]*([a-zA-Z_0-9]+)[\t]+(#\(.*\))?[ \t]*([a-zA-Z_0-9]+)(\[.*\]| *= *.*)?[ \t]*;/\5/i,} /
--regex-systemverilog=/^[\t]*([a-zA-Z_0-9]+)[ \t]*([a-zA-Z_0-9]+)[ \t]*\(.*\)[ \t]*;/\2/i,} /
--regex-systemverilog=/^[\t]*([a-zA-Z_0-9]+)[ \t]*:[ \t]*assert[ \t]*property.*/\1/i,} /
--systemverilog-kinds=+ctfmpievds
2. 到你的目标目录生成tags索引(这里核心一点是你的ctags工具版本要够新,高人指点用module load 才解决)
ctags -R
3. 在你的.vimrc中加入这样一句(这样你无论在哪个目录里看文件跳转都不会报找不到tags文件的错误了):
set tags+=./tags
set tags+=/proj/jack/verif/pc/tb/ovm_tb/tags
如何使用?
Ctrl+ ]跳到光标所在函数或者结构体的定义处
Ctrl+ T返回查找或跳转(结果我的要用Ctrl+ O)
为什么CTRL+t不行?我是怀疑自己的Ctrl+T可能被占用了,所以在.gvimrc中加了这么一句:
map
这样我就Ctrl+b也可以返回了。
- .cshrc .vimrc
- cshrc file
- 我的.cshrc
- vimrc
- .vimrc
- vimrc
- ~/.vimrc
- .vimrc
- .vimrc
- ~/.vimrc
- vimrc
- vimrc
- vimrc
- vimrc
- vimrc
- vimrc
- .vimrc
- vimrc
- matlab的legend用法
- redis笔记
- 为什么说Java匿名内部类是残缺的闭包
- Two Sum-- LeetCode
- tiny-cnn安装教程
- .cshrc .vimrc
- LeetCode
- Google笔试题(0与1的问题)
- 等腰梯形
- 循环_课后练习
- Android studio2.3.3配置JavaCV1.3.3
- 在客户端创建featurelayer
- Vue-Router笔记
- JavaWeb 练手好项目