04 .vimrc文件配置
Posted xlinxdu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了04 .vimrc文件配置相关的知识,希望对你有一定的参考价值。
虚拟机:VMware-workstation-full-14.0.0.24051
环 境:ubuntu 18.04.1
本文适合在linux环境下,进行verilog 代码开发时,对vim用户配置文件“.vimrc”进行编写,配置vim编辑器语法高亮、文件类型检测、显示行号、括号匹配、tab缩进和调用别名文件等,可提高设计开发的效率。
文章目录
- 一、vim配置文件 .vimrc
- 二、.vimrc文件编写
- 2.1 创建.vimrc文件
- 2.2 编辑.vimrc文件
- (1)设置配色
- (2)语法高亮
- (3)设置行号:在左边显示第几行
- (4)自动缩进:换行时,缩进量与上一行对齐
- (5)空格替代tab缩进[`重要`]
- (6)设置搜索\\行高亮
- (7)设置vim的字体大小
- (8)符号匹配
- (9)调用别名文件
- 三、编写别名文件
一、vim配置文件 .vimrc
.vimrc文件是配置vim编辑器功能开、关的配置文件。一般分为两类:系统配置和用户配置。
- 系统配置:系统配置文件存放在vim的安装路径内,默认路径:/usr/share/vim/vimrc
cyl@cyl-virtual-machine:~$ cd /usr/share/vim/
cyl@cyl-virtual-machine:/usr/share/vim$ ls -a
. .. addons gvimrc registry vim80 vimfiles vimrc vimrc.tiny
- 用户配置:用户配置文件.vimrc由用户自己创建,存放于用户根目录下。以我的为例:
二、.vimrc文件编写
2.1 创建.vimrc文件
在跟目录创建.vimrc文件,由于该文件是隐藏文件,所以需要使用ls -a才会显示出来。
cyl@cyl-virtual-machine:~$ cd ~
cyl@cyl-virtual-machine:~$ touch .vimrc
cyl@cyl-virtual-machine:~$ ls -a
.vimrc
2.2 编辑.vimrc文件
下面是我的.vimrc常用配置文件的全部内容,会逐条进行解释。
colorscheme desert
syntax on
filetype on
au BufRead,BufNewFile *.sv set filetype=systemverilog
au BufRead,BufNewFile *.v set filetype=verilog
set number
set autoindent
set ts=2
set expandtab
set shiftwidth=4
autocmd FileType make set noexpandtab
set hlsearch
set cursorline
set cursorcolumn
set guifont=Monospace\\ 16
inoremap ( ()<Esc>i
inoremap <Esc>i
inoremap [ []<Esc>i
inoremap " ""<Esc>i
source ~/.vim/user/alias.vim
- 打开.vimrc文件:在终端跟目录,输入gvim .vimrc,回车,弹出可视化界面
cyl@cyl-virtual-machine:~$ gvim .vimrc
(1)设置配色
博主使用的是desert配色,其他配色可以通过vim菜单栏Edit,Color Scheme 查看,点击具体配色可以立即查看,但是下一次重启之后就会恢复原来的配色,要想一直生效,则需要修改下面的配置项“desert”,替换成自己想要的即可,保存,重新打开即会生效。
colorscheme desert
(2)语法高亮
如果不设置,在编写RTL时,显示的文字都将是一个颜色。
syntax on
filetype on
au BufRead,BufNewFile *.sv set filetype=systemverilog
au BufRead,BufNewFile *.v set filetype=verilog
syntax on是语法高亮的意思;filetype on文件类型识别;au是autocmd的缩写,BufRead和BufNewFile是触发自动命令的事件。BufNewFile是创建一个新文件,BufRead是将文件读入一个新缓冲区时触发。如:au BufRead,BufNewFile *.sv set filetype=systemverilog的意思是,当检测到文件类型是.sv结尾的文件时,将符合systemverilog语法的地方将高亮显示。
(3)设置行号:在左边显示第几行
set number
(4)自动缩进:换行时,缩进量与上一行对齐
set autoindent
(5)空格替代tab缩进[重要
]
set ts=2
set expandtab
目的是为代码整齐美观,由于每个人设置的tab缩进量不同,所以当你的代码换到别人的设备中打开时,可能就没有对齐,比较乱。这个时候,就需要设置空格替代tab,因为空格大家都一样。set ts=2:ts是tabstop的缩写,按一次tab键显示的宽度;set expandtab:设置之后,会把一个 tab 字符替换成 tabstop 选项值对应的数值空格。上面就是把按一次tab键缩进两个空格。
(6)设置搜索\\行高亮
set hlsearch
set cursorline
set cursorcolumn
set hlsearch:在vim的一般模式下,搜索某字符,这个字符将在文中高亮显示;set cursorline:光标所在行高亮显示;set cursorcolumn:所在列高亮显示,这个设置很有用。
(7)设置vim的字体大小
set guifont=Monospace\\ 16
set guifont=Monospace\\ 16:其中Monospace为字体名,16为字号,注意\\和16之间有一个空格
(8)符号匹配
inoremap ( ()<Esc>i
inoremap <Esc>i
inoremap [ []<Esc>i
inoremap " ""<Esc>i
在i模式下,按下左边的符号,会自动输入左右两边的符号,很好用的设置。
(9)调用别名文件
source ~/.vim/user/alias.vim
【推荐】这个设置很有用,由于在设计过程中存在大量的重复工作,如果每次都输入一遍会很浪费时间,这时候如果提前设置好,按下快捷键就能调用相应的自定义块,可以节省大量时间,同时提高设计的效率。这个只是调用的别名文件(alias)的一个设置,详细见下一章内容。
三、编写别名文件
我的别名文件创建在 ~/.vim/user/alias.vim,下面先看看我平常设置的别名文件里的内容:
iab al_ <ESC>:r ~/.vim/user/always.v<cr>
iab mo_ <ESC>:r ~/.vim/user/module.v<cr>
iab an_ <ESC>:r ~/.vim/user/annotation.v<cr>
iab fs_ <ESC>:r ~/.vim/user/fsdb.v<cr>
iab tb_ <ESC>:r ~/.vim/user/tb.v<cr>
iab cyl_ <ESC>:r ~/.vim/user/cyl.v<cr>
iab cl_ <ESC>:r ~/.vim/user/clk.v<cr>
iab rs_ <ESC>:r ~/.vim/user/rst.v<cr>
"ab model
"iab edit model
"<cr> new line
"
以第一条为例:iab al_ :r ~/.vim/user/always.v,在vim编辑器edit 模式下,输入“al_”,再按下“ESC”键,路径~/.vim/user/下的always.v文件里的内容将会被调用,这就大大避免了重复的工作。
按“i”,进入编辑模式
输入“al_”
按下“ESC”,~/.vim/user/always.v的内容将调用出来
小结:因此提前设置好相关内容,就可大大提高设计开发效率,还有其他设置,自行摸索,如果有其他好用的设置,欢迎留言。
作者:xlinxdu
版权:本文版权归作者所有
转载:欢迎点赞、评论和转载,但未经作者同意,必须保留此段声明,必须在文章中给出原文连接。
如何配置vimrc
看了网上的很多现成的vimrc,感觉看不懂,各位有没有谁能给我份教程什么的能够教一个新手配置vimrc的?或者一个详细教程的网址链接也行。在此不胜感激涕零点乐队·····
vimrc的存放位置:系统 vimrc 文件: "$VIM/vimrc"
用户 vimrc 文件: "$HOME/.vimrc"
用户 exrc 文件: "$HOME/.exrc"
系统 gvimrc 文件: "$VIM/gvimrc"
用户 gvimrc 文件: "$HOME/.gvimrc"
系统菜单文件: "$VIMRUNTIME/menu.vim"
$VIM 预设值: "/usr/share/vim"
vimrc文件内容:
"是否兼容VI,compatible为兼容,nocompatible为不完全兼容
"如果设置为compatible,则tab将不会变成空格
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
"设置鼠标运行模式为WINDOWS模式
behave mswin
" Multi-encoding setting, MUST BE IN THE BEGINNING OF .vimrc!
"
if has("multi_byte")
" When 'fileencodings' starts with 'ucs-bom', don't do this manually
"set bomb
set fileencodings=ucs-bom,utf-8,chinese,taiwan,japan,korea,latin1
" CJK environment detection and corresponding setting
if v:lang =~ "^zh_CN"
" Simplified Chinese, on Unix euc-cn, on MS-Windows cp936
set encoding=chinese
set termencoding=chinese
if &fileencoding == ''
set fileencoding=chinese
endif
elseif v:lang =~ "^zh_TW"
" Traditional Chinese, on Unix euc-tw, on MS-Windows cp950
set encoding=taiwan
set termencoding=taiwan
if &fileencoding == ''
set fileencoding=taiwan
endif
elseif v:lang =~ "^ja_JP"
" Japanese, on Unix euc-jp, on MS-Windows cp932
set encoding=japan
set termencoding=japan
if &fileencoding == ''
set fileencoding=japan
endif
elseif v:lang =~ "^ko"
" Korean on Unix euc-kr, on MS-Windows cp949
set encoding=korea
set termencoding=korea
if &fileencoding == ''
set fileencoding=korea
endif
endif
" Detect UTF-8 locale, and override CJK setting if needed
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set encoding=utf-8
endif
else
echoerr 'Sorry, this version of (g)Vim was not compiled with "multi_byte"'
endif
"解决菜单乱码
set encoding=utf-8
"fileencodings需要注意顺序,前面的字符集应该比后面的字符集大
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set langmenu=zh_CN.utf-8
set imcmdline
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"解决consle输出乱码
language messages zh_CN.utf-8
"自动检测文件类型并加载相应的设置,snipMate插件需要打开这个配置选项
filetype plugin indent on
"语法高亮
syntax on
"自动缩进
set autoindent
"设置 Backspace 和 Delete 的灵活程度,backspace=2 则没有任何限制
"设置在哪些模式下使用鼠标功能,mouse=a 表示所有模式
set mouse=a
set backspace=2
"不自动换行
set nowrap
"设置超过100字符自动换行
"set textwidth=100
"设置超过100列的字符带下划线
"au BufWinEnter * let w:m2=matchadd('Underlined', '\%>100v.\+', -1)
"syn match out80 /\%80v./ containedin=ALL
"hi out80 guifg=white guibg=red
"智能对齐方式
set smartindent
"一个tab是4个字符
set tabstop=4
"按一次tab前进4个字符
set softtabstop=4
"用空格代替tab
set expandtab
"设置自动缩进
set ai!
"缩进的字符个数
set cindent shiftwidth=4
"set autoindent shiftwidth=2
"设置折叠模式
set foldcolumn=4
"光标遇到折叠,折叠就打开
"set foldopen=all
"移开折叠时自动关闭折叠
"set foldclose=all
"zf zo zc zd zr zm zR zM zn zi zN
"依缩进折叠
" manual 手工定义折叠
" indent 更多的缩进表示更高级别的折叠
" expr 用表达式来定义折叠
" syntax 用语法高亮来定义折叠
" diff 对没有更改的文本进行折叠
" marker 对文中的标志折叠
set foldmethod=syntax
"启动时不要自动折叠代码
set foldlevel=100
"依标记折叠
set foldmethod=marker
"显示行号
set number
"打开光标的行列位置显示功能
set ruler
"显示中文引号
set ambiwidth=double
"行高亮
set cursorline
"列高亮,与函数列表有冲突
set cursorcolumn
"设置命令行的高度
set cmdheight=2
"高亮搜索的关键字
set hlsearch
"搜索忽略大小写
set ignorecase
"设置命令历史行数
set history=100
"启动的时候不显示那个援助索马里儿童的提示
"set shortmess=atI
"不要闪烁
"set novisualbell
"显示TAB健
set list
set listchars=tab:>-,trail:-
"高亮字符,让其不受100列限制
":highlight OverLength ctermbg=red ctermfg=white guibg=grey guifg=white
":match OverLength '\%101v.*'
"设置VIM状态栏
set laststatus=2 "显示状态栏(默认值为1, 无法显示状态栏)
set statusline=
set statusline+=%2*%-3.3n%0*\ " buffer number
set statusline+=%f\ " file name
set statusline+=%h%1*%m%r%w%0* " flag
set statusline+=[
if v:version >= 600
set statusline+=%strlen(&ft)?&ft:'none', " filetype
set statusline+=%&fileencoding, " encoding
endif
set statusline+=%&fileformat] " file format
set statusline+=%= " right align
"set statusline+=%2*0x%-8B\ " current char
set statusline+=0x%-8B\ " current char
set statusline+=%-14.(%l,%c%V%)\ %<%P " offset
if filereadable(expand("$VIM/vimfiles/plugin/vimbuddy.vim"))
set statusline+=\ %VimBuddy() " vim buddy
endif
"状态行颜色
"highlight StatusLine guifg=SlateBlue guibg=Yellow
"highlight StatusLineNC guifg=Gray guibg=White
"设置路径,多个路径用逗号分隔
set path=.,"E:/Web/htdocs",,
"去掉有关vi一致性模式,避免以前版本的一些bug和局限
set nocp
"增强模式中的命令行自动完成操作
set wildmenu
"执行 Vim 缺省提供的 .vimrc 文件的示例,包含了打开语法加亮显示等最常用的功能
source $VIMRUNTIME/vimrc_example.vim
"缺省不产生备份文件
set nobackup
"在输入括号时光标会短暂地跳到与之相匹配的括号处,不影响输入
set showmatch
"正确地处理中文字符的折行和拼接
set formatoptions+=mM
"设定文件浏览器目录为当前目录
set bsdir=buffer
"自动切换当前目录为当前文件所在的目录
set autochdir
"自动重新加载外部修改内容
"set autoread
"使PHP识别EOT字符串
hi link phpheredoc string
"允许在有未保存的修改时切换缓冲区
set hidden
"选中一段文字并全文搜索这段文字
vmap <silent> ,/ y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR>
vmap <silent> ,? y?<C-R>=escape(@", '\\/.*$^~[]')<CR><CR>
"进入当前编辑的文件的目录
autocmd BufEnter * exec "cd %:p:h"
"保存文件的格式顺序
set fileformats=dos,unix
"配色
"colorscheme peacock_light
colorscheme peacock_desert 参考技术A 自己看一下吧 这是一个系列文章 ibm上的
http://www.ibm.com/developerworks/cn/linux/l-tip-vim1/index.html 参考技术B 根据你所进行的开发及各人偏好不同而不同 初学者可以参考别人的设置 直接覆盖就行
以上是关于04 .vimrc文件配置的主要内容,如果未能解决你的问题,请参考以下文章