点击查看代码
" For pathogen.vim: auto load all plugins in .vim/bundle
execute pathogen#infect()
"open syntax highlight
syntax enable
syntax on
"indent based on filetype
filetype plugin indent on
filetype on
set fileformat=unix
set winaltkeys=no
""""""""""airline""""""""""
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#show_buffers = 1
let g:airline#extensions#tabline#show_tabs = 1
let g:airline#extensions#tabline#buffer_nr_show = 1
let g:airline_theme='solarized'
""""""""""rainbow""""""""""""
let g:rainbow_active=1 "0 if you want to enable it later via :RainbowToggle
let g:rainbow_conf = {
\ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick'],
\ 'ctermfgs': ['lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'],
\ 'guis': [''],
\ 'cterms': [''],
\ 'operators': '_,_',
\ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'],
\ 'separately': {
\ '*': {},
\ 'markdown': {
\ 'parentheses_options': 'containedin=markdownCode contained',},
\ 'lisp': {
\ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick', 'darkorchid3'], },
\ 'haskell': {
\ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/\v\{\ze[^-]/ end=/}/ fold'], },
\ 'vim': {
\ 'parentheses_options': 'containedin=vimFuncBody', },
\ 'perl': {
\ 'syn_name_prefix': 'perlBlockFoldRainbow', },
\ 'stylus': {
\ 'parentheses': ['start=/{/ end=/}/ fold contains=@colorableGroup'], },
\ 'css': 0
\ }
\}
set t_Co=256
nmap <tab> :bn<cr> "设置tab键映射
let g:airline_powerline_fonts = 1
let g:airline_theme='bubblegum' "选择主题
let g:airline_left_sep = '▶'
let g:airline_left_alt_sep = '❯'
let g:airline_right_sep = '◀'
let g:airline_right_alt_sep = '❮'
nnoremap b :bp<cr>
nnoremap B :bn<cr>
""tagbar
let g:tagbar_ctags_bin='~/uctags/bin/ctags'
let g:tagbar_autofocus = 1
nmap <silent> <F4> :TagbarToggle<CR>
let g:tagbar_type_systemverilog = {
\ 'ctagstype' : 'SystemVerilog',
\ 'kinds' : [
\ 'b:blocks:1:1',
\ 'c:constants:1:0',
\ 'e:events:1:0',
\ 'f:functions:1:1',
\ 'm:modules:0:1',
\ 'n:nets:1:0',
\ 'p:ports:1:0',
\ 'r:registers:1:0',
\ 't:tasks:1:1',
\ 'A:assertions:1:1',
\ 'C:classes:0:1',
\ 'V:covergroups:0:1',
\ 'I:interfaces:0:1',
\ 'M:modport:0:1',
\ 'K:packages:0:1',
\ 'P:programs:0:1',
\ 'R:properties:0:1',
\ 'T:typedefs:0:1'
\ ],
\ 'sro' : '.',
\ 'kind2scope' : {
\ 'm' : 'module',
\ 'b' : 'block',
\ 't' : 'task',
\ 'f' : 'function',
\ 'C' : 'class',
\ 'V' : 'covergroup',
\ 'I' : 'interface',
\ 'K' : 'package',
\ 'P' : 'program',
\ 'R' : 'property'
\ },
\ }
""""""""""""""""""""""""<win_manager>""""""""""""""""""""""""""
let g:winManagerWindowLayout='FileExplorer'
nmap <F3> :WMToggle<cr>
"set cursorline
"vim self_cmd complete smartly
set wildmenu
set showcmd
"""""""""fold set""""""""""""""""
set foldmethod=syntax
set foldcolumn=2
highlight Folded guibg=grey guifg=blue
highlight FoldColumn guibg=black guifg=white
let g:SuperTabDefaultCompletionType = 'context'
""ctags"
set tags=tags;
"let g:airline_theme='angr'
set tags+=./tags
set tags+=/home/uvm-1.2/uvm_tags
set autochdir
source $VIMRUNTIME/macros/matchit.vim
set nocompatible
set ru
set nu
set nobackup
set noswapfile
set guioptions+=b
set guioptions+=c " 启用居中显示
"""""""""""""""""""""<search setting>"""""""""""""""""""""""
"Override the 'ignorecase' option if the search pattern contains upper
"case characters. Only used when the search pattern is typed and
"'ignorecase' option is on.
set incsearch
set hls
"set ignorecase
set ignorecase smartcase
"set infercase
""""""""""""""""""""<color scheme setting>""""""""""""""""""
""vim color scheme setting
if has("gui_running")
set background=dark
colorscheme desert
"colorscheme solarized
else
colorscheme molokai
endif
"""""""""""""""""""""""""set match pairs"""""""""""""""""""""""
set showmatch
"How many tenths of a second to blink
set matchtime=5
"set guicursor=n:block-blinkoff0
"""""""""""""<set for chinese support>""""""""""""""""""""""""""
":language ja_JP.eucJP
":let &termencoding = &encoding
":set termencoding=euc-jp
set fileencodings=utf-8,gbk,big5,euc-jp,gb2312
let g:airline_powerline_fonts = 1
let b:match_ignorecase=0
let b:match_words=
\ '\<begin\>:\<end\>,' .
\ '\<if\>:\<else\>,' .
\ '\<module\>:\<endmodule\>,' .
\ '\<class\>:\<endclass\>,' .
\ '\<program\>:\<endprogram\>,' .
\ '\<clocking\>:\<endclocking\>,' .
\ '\<property\>:\<endproperty\>,' .
\ '\<sequence\>:\<endsequence\>,' .
\ '\<package\>:\<endpackage\>,' .
\ '\<covergroup\>:\<endgroup\>,' .
\ '\<primitive\>:\<endprimitive\>,' .
\ '\<specify\>:\<endspecify\>,' .
\ '\<generate\>:\<endgenerate\>,' .
\ '\<interface\>:\<endinterface\>,' .
\ '\<function\>:\<endfunction\>,' .
\ '\<task\>:\<endtask\>,' .
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
\ '\<fork\>:\<join\>\|\<join_any\>\|\<join_none\>,' .
\ '`ifdef\>:`else\>:`endif\>,'
let mapleader="\<Space>"
nnoremap <leader>i :VerilogFollowInstance<CR>
nnoremap <leader>I :VerilogFollowPort<CR>
nnoremap <leader>u :VerilogGotoInstanceStart<CR>
let g:winManagerWindowLayout='FileExplorer'
nmap <F3> :WMToggle<cr>
set cscopetag
" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible
" allow backspacing over everything in insert mode
set backspace=indent,eol,start
set history=200 " keep 50 lines of command line history
set ruler " show the cursor position all the time
set showcmd " display incomplete commands
"set incsearch " do incremental searching
set wrap
set textwidth=80
" For indent
set shiftwidth=4
set expandtab
set smarttab
" Don't use Ex mode, use Q for formatting
" map Q gq
noremap Q @q
map gy gT
map gb gT
map <C-j> <C-w>j
map <C-k> <C-w>k
if &t_Co > 2 || has("gui_running")
" syntax on
set hlsearch
endif
" Only do this part when compiled with support for autocommands.
if has("autocmd")
" Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting.
filetype plugin indent on
" Put these in an autocmd group, so that we can delete them easily.
augroup vimrcEx
au!
" For all text files set 'textwidth' to 78 characters.
autocmd FileType text setlocal textwidth=78
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event handler
" (happens when dropping a file on gvim).
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
augroup END
" autocmd FileType make setlocal noexpandtab
" autocmd FileType perl setlocal shiftwidth=2
"Ack search results show a mix of relative and absolute paths, making them hard to read
"autocmd BufAdd * execute "cd" fnameescape(getcwd())
else
set autoindent " always set autoindenting on
endif " has("autocmd")
" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
""""""""""""""""""""""< Taglist setting >""""""""""""""""
let Tlist_Ctags_Cmd = '~/uctags/bin/ctags'
let Tlist_Show_One_File = 1
let Tlist_Use_Right_Window = 1
let Tlist_GainFocus_On_ToggleOpen = 1
let Tlist_Exit_OnlyWindow = 1
nnoremap <silent> <F8> :TlistToggle<CR>
""""""""""""""""""""""""< Quickfix Window>""""""""""""
function! GetBufferList()
redir =>buflist
silent! ls
redir END
return buflist
endfunction
function! ToggleList(bufname, pfx)
let buflist = GetBufferList()
for bufnum in map(filter(split(buflist, '\n'), 'v:val =~ "'.a:bufname.'"'), 'str2nr(matchstr(v:val, "\\d\\+"))')
if bufwinnr(bufnum) != -1
exec(a:pfx.'close')
return
endif
endfor
if a:pfx == 'l' && len(getloclist(0)) == 0
echohl ErrorMsg
echo "Location List is Empty."
return
endif
let winnr = winnr()
exec(a:pfx.'open')
if winnr() != winnr
wincmd p
endif
endfunction
nmap <silent> <leader>l :call ToggleList("Location List", 'l')<CR>
nmap <silent> <F7> :call ToggleList("Quickfix List", 'c')<CR>
"nnoremap <C-N> :cn<CR>
"nnoremap <C-P> :cp<CR>
" FuzzyFinder setting
"let g:fuf_modesDisable = []
"let g:fuf_mrufile_maxItem = 400
"let g:fuf_mrucmd_maxItem = 400
"nnoremap <silent> <F3> :FufBuffer<CR>
"nnoremap <silent> <S-F3> :FufFile<CR>
""""""""""""""""""< EasyGrep setting>""""""""""""""""""""""
let g:EasyGrepMode = 2
let g:EasyGrepRecursive = 1
let g:EasyGrepJumpToMatch = 0
" If external tool 'ag' or 'ack' is used
if executable('ag')
set grepprg=ag\ --vimgrep
set grepformat=%f:%l:%c:%m,%f:%l:%m
let g:EasyGrepCommand = 1
"let g:EasyGrepEnableLogging = 1
elseif executable('ack')
set grepprg=ack\ --nopager\ --nocolor\ --nogroup\ --column
set grepformat=%f:%l:%c:%m,%f:%l:%m
let g:EasyGrepCommand = 1
"let g:EasyGrepEnableLogging = 1
endif
""""""""""""""""""""<bufexplorer setting>""""""""""""""""
let g:bufExplorerSplitBelow = 1
" mark setting
"nmap <Leader>M <Plug>MarkToggle
"nmap <Leader>N <Plug>MarkAllClear
""""""""""""""""<Supertab setting>""""""""""""""""""""""""""
let g:SuperTabDefaultCompletionType = "context"
""""""""""""""""""""""<SnipMate setting>""""""""""""""""
"let g:snippets_dir = "~/.vim/snippets, ~/.vim/bundle/snipmate.vim/snippets"
""""""""""""""<For save fold information>""""""""""""""""""""""""""""""""
"au BufWinLeave * mkview
"au BufWinEnter * silent loadview
"""""""""""""<:Gr hello will find all hello,and vertical split window will have >"""""""""""""
command! -bang -nargs=+ Gr let @g=""|execute 'g/<args>/y G'|new|setlocal bt=nofile|put! g|redraw
nnoremap <silent> <Leader>ng :redir @g<CR>:silent g//<CR>:redir END<CR>:new<CR>:setlocal bt=nofile<CR>:put! g<CR>:redraw!<CR>
nnoremap <silent> <Leader>nn :redir @g<CR>:silent execute 'g/'.expand("<cword>").'/'<CR>:redir END<CR>:new<CR>:setlocal bt=nofile<CR>:put! g<CR>:redraw!<CR>
""""""""""""""<Set Foldexpr>""""""""""""""""""""""""""""
function! MyFoldLevel(lnum)
let m_fold = (getline(a:lnum)=~'^\x\+') ? 1 : 0
return m_fold
endfunction
function! ToggleFoldmethod()
if &foldmethod!='manual'
set foldmethod=manual
normal zE
else
set foldmethod=expr
set foldexpr=MyFoldLevel(v:lnum)
endif
endfunction
"command! -bang -nargs=0 Fe set foldmethod=expr|set foldexpr=MyFoldLevel(v:lnum)
nmap <silent> <F9> :call ToggleFoldmethod()<CR>
" Set window size
function! ToggleWinWidth()
if &columns=='100'
set columns=160
else
set columns=100
endif
endfunction
function! ToggleWinHeight()
if &lines!='40'
set lines=40
endif
endfunction
nmap <silent> <F12> :call ToggleWinWidth()<CR>
nmap <silent> <S-F12> :call ToggleWinHeight()<CR>
" Set CursorLine CoursorColumn
function! ToggleCursorLine()
if &cursorline||&cursorcolumn
set nocursorline
set nocursorcolumn
else
set cursorline
set cursorcolumn
endif
endfunction
nmap <silent> <F11> :call ToggleCursorLine()<CR>
nnoremap <silent> <Leader>sv :setfiletype svtb_log<CR>
" Set window font
let s:pattern = '^\(.* \)\([1-9][0-9]*\)$'
let s:minfontsize = 10
let s:maxfontsize = 16
function! AdjustFontSize(amount)
if has("gui_running") && has("gui_gtk2")
let fontname = substitute(&guifont, s:pattern, '\1', '')
let cursize = substitute(&guifont, s:pattern, '\2', '')
let newsize = cursize + a:amount
if (newsize >= s:minfontsize) && (newsize <= s:maxfontsize)
let newfont = fontname . newsize
let &guifont = newfont
endif
else
echoerr "You need to run the GTK2 version of Vim to use this function."
endif
endfunction
let s:FontSizeToggled = 0
function! ToggleWinFont()
if has("gui_running") && has("gui_gtk2")
if s:FontSizeToggled == 0
call AdjustFontSize(2)
let s:FontSizeToggled = 1
else
call AdjustFontSize(-2)
let s:FontSizeToggled = 0
endif
endif
endfunction
nmap <silent> <F10> :call ToggleWinFont()<CR>:redraw!<CR>
let s:ColorSchemeToggled = 0
function! ToggleColorScheme()
if has("gui_running") && has("gui_gtk2")
if s:ColorSchemeToggled == 0
"colorscheme nightfox
colorscheme space-vim-dark
let s:ColorSchemeToggled = 1
elseif s:ColorSchemeToggled == 1
colorscheme codedark
"colorscheme gruvbox
let s:ColorSchemeToggled = 2
else
colorscheme molokai
"colorscheme gruvbox
let s:ColorSchemeToggled = 0
endif
endif
endfunction
nmap <silent> <F6> :call ToggleColorScheme()<CR>:redraw!<CR>
""""""""""""""""""""""<gui_font_setting>""""""""""""""""""
set linespace=1
if has("gui_running")
if has("gui_gtk2")
":set guifont=Bitstream\ Vera\ Sans\ Mono\ 11
":set guifont=Courier\ 16,mendium\ 16
":set guifont=Courier\ 12,fixed\ 12,\ 7x13
:set guifont=Monospace\ 13
elseif has("x11")
"also for GTK 1
:set guifont=-Courier_10_Pitch-Medium-R-Normal--14-110-70-70-C-75-ISO8859-1
elseif has("gui_win32")
:set guifont=Luxi_mono:h12:cANSI
endif
endif
""""""""""""""""""""""""""""""""title""""""""""""""""""""""""""""""""
let g:uvm_email = "XXX@gmail.com"
map <F2> :call DefineDet()<cr>
function AddDefine()
let s:classname = expand("%:r")
let s:extension = expand("%:e")
if s:extension =~ 'cpp' || s:extension =~ 'h' || s:extension =~ 'c'
call append(14,"#ifndef " . "__" . toupper(s:classname . "_" . s:extension) ."__")
call append(15,"#define " . "__" . toupper(s:classname . "_" . s:extension) ."__")
call append(16,"")
call append(17,"")
let s:botline = line("$")
call append(s:botline,"")
let s:botline1 = s:botline+1
call append(s:botline1,"#endif")
let s:botline2 = s:botline+2
elseif s:extension =~ 'py'
call append(23,"#ifndef " . "__" . toupper(s:classname . "_" . s:extension) ."__")
call append(24,"#define " . "__" . toupper(s:classname . "_" . s:extension) ."__")
call append(25,"")
call append(26,"")
let s:botline = line("$")
call append(s:botline,"")
let s:botline1 = s:botline+1
call append(s:botline1,"#endif")
let s:botline2 = s:botline+2
else
call append(23,"`ifndef " . "__" . toupper(s:classname . "_" . s:extension) ."__")
call append(24,"`define " . "__" . toupper(s:classname . "_" . s:extension) ."__")
call append(25,"")
call append(26,"")
let s:botline = line("$")
call append(s:botline,"")
let s:botline1 = s:botline+1
call append(s:botline1,"`endif")
let s:botline2 = s:botline+2
endif
echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endf
function DefineDet()
let n=0
while n < 20
let line = getline(n)
if line =~ '^`ifndef.*$'
return
endif
let n = n + 1" Verilog HDL
au BufNewFile,BufRead *.v setf verilog
endwhile
call AddDefine()
endfunction
autocmd BufNewFile *.v,*.sv,*.c,*.py,*.pl,*.cpp exec ":call TitleDet()"
function AddTitle()
let s:extension = expand("%:e")
if s:extension =~ 'cpp' || s:extension =~ 'h' || s:extension =~ 'c'
call append(0,"// ***********************************************************************")
call append(1,"// Copyright XX_SEMI, 2023")
call append(2,"// ***********************************************************************")
call append(3,"// PROJECT : ".$project_name)
call append(4,"// FILENAME : ".expand("%:t"))
call append(5,"// Author : ".toupper($USER))
call append(6,"// Created : ".strftime("%Y-%m-%d %H:%M"))
call append(7,"// LAST MODIFIED : ".strftime("%Y-%m-%d %H:%M"))
call append(8,"// ***********************************************************************")
call append(9,"// DESCRIPTION :")
call append(10,"// ***********************************************************************")
call append(11,"// $Revision: $")
call append(12,"// $Id: $")
call append(13,"// ***********************************************************************")
""let s:botline = line("$")
""call append(s:botline,"// ***********************************************************************")
""let s:botline1 = s:botline+1
""call append(s:botline1,"// $Log: $")
""let s:botline2 = s:botline+2
elseif s:extension =~ 'py' || s:extension =~ 'pl'
if s:extension =~'py'
call append(0,"#!/anaconda3-2019.03/bin/python")
else
call append(0,"#!/usr/bin/perl")
endif
call append(1,"## ***********************************************************************")
call append(2,"## ***************** ")
call append(3,"## ***** *********** ")
call append(4,"## ***** ********* Copyright (c) ".strftime("%Y"). " XX_SEMI ")
call append(5,"## ***** ******* (BJ group) ")
call append(6,"## ***** ***** XXX_SEMI Confidential ")
call append(7,"## ***** ******* All rights reserved ")
call append(8,"## ***** ********* ")
call append(9,"## ***** *********** ")
call append(10,"## ***************** ")
call append(11,"## ***********************************************************************")
call append(12,"## PROJECT : ".$PROJECT_NAME)
call append(13,"## FILENAME : ".expand("%:t"))
call append(14,"## Author : ".toupper($USER)." [". g:uvm_email ."]")
call append(15,"## Created : ".strftime("%Y-%m-%d %H:%M"))
call append(16,"## LAST MODIFIED : ".strftime("%Y-%m-%d %H:%M"))
call append(17,"## ***********************************************************************")
call append(18,"## DESCRIPTION :")
call append(19,"## ***********************************************************************")
call append(20,"## $Revision: $")
call append(21,"## $Id: $")
call append(22,"## ***********************************************************************")
let s:botline = line("$")
call append(s:botline,"## ***********************************************************************")
let s:botline1 = s:botline+1
call append(s:botline1,"## $Log: $")
let s:botline2 = s:botline+2
call append(s:botline2,"## $Revision $")
autocmd VimEnter * normal 24G
else
call append(0,"// ***********************************************************************")
call append(1,"// ***************** ")
call append(2,"// ***** *********** ")
call append(3,"// ***** ********* Copyright (c) ".strftime("%Y"). " XX_SEMI ")
call append(4,"// ***** ******* (XX group) ")
call append(5,"// ***** ***** XX_SEMI Confidential ")
call append(6,"// ***** ******* All rights reserved ")
call append(7,"// ***** ********* ")
call append(8,"// ***** *********** ")
call append(9,"// ***************** ")
call append(10,"// ***********************************************************************")
call append(11,"// PROJECT : ".$PROJECT_NAME)
call append(12,"// FILENAME : ".expand("%:t"))
call append(13,"// Author : ".toupper($USER)." [". g:uvm_email ."]")
call append(14,"// Created : ".strftime("%Y-%m-%d %H:%M"))
call append(15,"// LAST MODIFIED : ".strftime("%Y-%m-%d %H:%M"))
call append(16,"// ***********************************************************************")
call append(17,"// DESCRIPTION :")
call append(18,"// ***********************************************************************")
call append(19,"// $Revision: $")
call append(20,"// $Id: $")
call append(21,"// ***********************************************************************")
let s:botline = line("$")
call append(s:botline,"// ***********************************************************************")
let s:botline1 = s:botline+1
call append(s:botline1,"// $Log: $")
let s:botline2 = s:botline+2
call append(s:botline2,"// $Revision $")
autocmd VimEnter * normal 23G
endif
echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endf
function TitleDet()
let save_cursor = getpos('.')
if search('LAST MODIFIED','c') !=0
let line = line('.')
let s:extension = expand("%:e")
if s:extension =~'py' || s:extension =~'pl'
call setline(line,"## LAST MODIFIED : ".strftime("%Y-%m-%d %H:%M"))
else
call setline(line,"// LAST MODIFIED : ".strftime("%Y-%m-%d %H:%M"))
endif
" return
else
if search('author','c')==0
call AddTitle()
endif
endif
call setpos('.', save_cursor)
echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
endfunction
"""""""""""""""""""""<status columbar>""""""""""""""""""""""""
set laststatus =2
"highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLine guifg=SlateBlue guibg=Gray
""""""""""""""""<auto sets the filetype SV for VHDL>""""""""""""""""""""""""""
" System Verilog and VHDL
au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl
au BufNewFile,BufRead *.sv,*.svh setf systemverilog
""""""""""""""""""""<color scheme setting>""""""""""""""""""
""vim color scheme setting
if has("gui_running")
set background=dark
colorscheme desert
"colorscheme solarized
else
colorscheme molokai
endif
""""""""""""""""""""""""""<multiple-cursors>""""""""""""""""""""""""""""
let g:multi_cursor_use_default_mapping=0
" Default mapping
let g:multi_cursor_start_word_key = '<C-n>'
let g:multi_cursor_select_all_word_key = '<A-n>'
let g:multi_cursor_start_key = 'g<C-n>'
let g:multi_cursor_select_all_key = 'g<A-n>'
let g:multi_cursor_next_key = '<C-n>'
let g:multi_cursor_prev_key = '<C-p>'
let g:multi_cursor_skip_key = '<C-x>'
let g:multi_cursor_quit_key = '<Esc>'
""""""""""""""""""""""""""<minibuf>""""""""""""""""""""""""""""
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1
""""""""""""""""""""""""""<EasyMotion>""""""""""""""""""""""""""""
let g:EasyMotion_smartcase = 1
"let g:EasyMotion_startofline = 0 " keep cursor colum when JK motion
map <Leader><leader>h <Plug>(easymotion-linebackward)
map <Leader><Leader>j <Plug>(easymotion-j)
map <Leader><Leader>k <Plug>(easymotion-k)
map <Leader><leader>l <Plug>(easymotion-lineforward)
map <Leader><leader>. <Plug>(easymotion-repeat)
"""""""""""""""""""<some common customization settings for GVim>"""""""""""
"exit vim
nmap <c-q> :q <CR>
"save file
nmap <c-s> :w <CR>
"other
cnoremap lc :lcd%:p:h
""""""""""""""""""""<Setting GVim to center in Linux >""""""""""""""""""""
function WindowCenterInScreen()
set lines=9999 columns=9999
let g:windowsSizeFixX = 58
let g:windowsSizeFixY = 118
let g:windowsScaleX = 7.75
let g:windowsScaleY = 17.0
let g:windowsPosOldX = getwinposx()
let g:windowsPosOldY = getwinposy()
let g:windowsScreenWidth = float2nr(winwidth(0) * g:windowsScaleX) + g:windowsPosOldX + g:windowsSizeFixX
let g:windowsScreenHeight = float2nr(winheight(0) * g:windowsScaleY) + g:windowsPosOldY + g:windowsSizeFixY
set lines=30 columns=108
let g:windowsSizeWidth = float2nr(winwidth(0) * g:windowsScaleX) + g:windowsSizeFixX
let g:windowsSizeHeight = float2nr(winheight(0) * g:windowsScaleY) + g:windowsSizeFixY
let g:windowsPosX = ((g:windowsScreenWidth - g:windowsSizeWidth) / 2)
let g:windowsPosY = ((g:windowsScreenHeight - g:windowsSizeHeight) / 2)
exec ':winpos ' . g:windowsPosX . ' ' . g:windowsPosY
endfunc
au GUIEnter * call WindowCenterInScreen()
"""""""""""""""""""""""""""""""""""""""<setting for vcs comp debug>"""""""""""""""""""""""""""
"comp
let &makeprg='vlogan +v2k -full64 +vcs+flush+all +lint=all -sverilog -ntb_opts uvm-1.2 -f xx.flist %'
"autocmd BufWritePost *.sv exec ":make"
"
let g:verilog_efm_uvm_lst = "all"
let g:verilog_efm_level = "error"