vim笔记
操作tagstack的是ctrl-]与ctrl-t
:tags查看tagstack
操作jumplist的是ctrl-i与ctrl-o(in/out)
:jumps查看jumplist
cscope
构造cscope数据库: cscope -Rbq,R是递归,b是build后即退出,q是创建倒排表来加快查找。
:cscope find symbol xxx 列出所有这个symbol出现的地方,简写为:cs f s xxx
:cscope find calling xxx 列出所有call这个function的function,简写为:cs f c xxx
:cscope find called xxx 列出所有这个function要call的function,简写为:cs f d xxx
:cscope find grep xxx 按照这个正则式查找,简写为:cs f e xxx
:diffsplit vert main-modified.c
:f
:set ro/noro
vimgrep /{pattern}/[g][j] {file} ...
:cn, :cp
:cl
:cc [nr]
:cw, cwindow
when specifying {file}, use ** to denote recursive sub-directories. For example, **/*.c **/*.h denote all C source files in current directory (and all subdirectories).
我的vimrc
" Basics {
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
" }
" General {
"Set to auto read when a file is changed from the outside
set autoread
" always switch to the current file directory
set autochdir
" Backup
set backup
set backupdir=C:\Users\angelsmile\vim_backup
" How many commands to memorize
set history=50
" Encodings
set fileencodings=utf-8,gbk,gb2312
" Support all three, in this order.
set fileformats=unix,dos,mac
" Enable mouse
set mouse=a
" don't make noise
set noerrorbells
" Turn on cmdline completion wild style
set wildmenu
" ignore these list file extensions
set wildignore=*.o,*.obj,*.exe,*.pyc,*.jpg,*.gif,*.png,*.pdf
" }
" Vim UI {
colorscheme zellner
" Always show current position
set ruler
" Show line number
set number
" Show matching brackets
set showmatch
" Highlight search result
set hlsearch
" Inc search
set incsearch
" set cursorcolumn
set cursorline
" shortens messages
set shortmess=a
set showcmd
" line wrap
set wrap
" }
" Editing {
set backspace=indent,eol,start
" All about tabs
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set smarttab
" }
" I'm a C programmer {
syntax on
" Indent
set autoindent
set smartindent
set cindent " C-style indent
" Fold
set foldmethod=syntax
" tags
set tags=./tags,../tags,http://www.cnblogs.com/tags
" Vertical line at col 80, only after Vim 7.3
set colorcolumn=80
" }
" GUI Settings {
" GUI fonts
set guifont=Consolas:h10
"set guifont=YaHei\ Consolas\ Hybrid:h10
"set guifontwide=YaHei\ Consolas\ Hybrid:h10
" GUI widgets
set guioptions-=m " remove menubar
set guioptions-=T " remove toolbar
set guioptions-=r " remove right-hand scroll bar
" Columns
set columns=120
set lines=32
" }
" Keyboard mapping {
:imap <C-s> <Esc>:w<CR>a
" }