vimrc
map/imap/inoremap/nmap
map:在命令模式下有效
imap:在插入模式有效
inoremap:在插入模式有效,nore表示不递归no recursion:例如:inoremap Y y
和inoremap y Y
并不会出现无限循环
nmap:命令模式下生效,normal map。
命令映射
mapu 用ctrl+z的快捷键表示u,都可以用于回退
imapu i 在插入模式下使用ctrl-z也可以表示u的功能
map
imapi 撤销撤回
mapy
imapy i ctrl+c表示复制
map:w!
imap:w! i ctrl+s保存
nmap sc :source ~/.vimrc不需要输入“:”就可以使命令生效,直接在视图状态下就输入sc就相当于source了vimrc
nmapggvG 全选
inoremapggvG i
自动补全
inoremap英文单词自动补全
inoremap ( ()i 补全括号,不推荐使用
inoremap )=ClosePair(')') 补全括号
inoremap { {}i 补全括号
inoremap }=ClosePair('}') 补全括号
注释
nmap0i// :w! shift+insert注释一行
nmap0xx shift+delet去除一行的注释
vmapI// 在行选择模式下shift+insert注释多行
vmapxx
去空格
nnoremap:g/^\s*$/d
列出当前目录
map:tabnew .
nmap:NERDTreeToggle 这个需要安装插件
键表 |key-notation|
set expandtab //tab转换成空格
set number //文件显示行数
set ruler //Vim窗口的右下角显示光标的行列信息
set showcmd //Vim窗口的右下角显示一个完整的命令已经完成的部分
set autoindent //自动缩进
set hlsearch //高亮显示
set syntax on //显示语法
set ignorecase //在搜索时忽略大小写
set backspace=indent,eol,start //在Insert模式,支持backspace键
:set pastetoggle=
:set mouse=v "鼠标选择 运用系统粘贴版
:set virtualedit=onemore "允许光标移动到刚刚超过行尾的位置
:set tabstop=4 "设定制表符宽度
:set shiftwidth=4 "设置缩进宽度
set ai " 自动缩进
syntax on " 自动语法高亮
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set nobackup " 覆盖文件时不备份
set autochdir " 自动切换当前目录为当前文件所在的目录
set backupcopy=yes " 设置备份时的行为为覆盖
set showmatch " 插入括号时,短暂地跳转到匹配的对应括号
set matchtime=2 " 短暂跳转到匹配括号的时间
set magic " 设置魔术
set hidden " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏
set smartindent " 开启新行时使用智能自动缩进
set backspace=indent,eol,start
" 不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\ " 设置在状态行显示的信息
set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set nu
tab相关
set expendtab # 用空格替代tab,也可以用:set extab set tabstop = 4 # 设置tab包含几个字符,也可以使用:set ts = 4
set shiftwidth = 4 # 设置智能缩进的缩进数 set autoindent # 自动缩进 :set ai set smartindent # 智能缩进 : set si,对齐整数个tab来缩进
set et # 与set expendtab,set extab一样用空格代替tab
set et! # 取消用空格代替tab,在写makefile文件的时候需要这个设置。
设置语法高亮
syntax on au BufNewFile,BufRead *.{c,h,cpp} setf c au BufNewFile,BufRead *.sv set filetype=systemverilog
搜索高亮设置
set hlsearch # 开启搜索高亮,set nohlsearch可以关闭 hi Search term=standout ctermfg=0 ctermbg=3 # 设置高亮的颜色 命令模式输入hi 可以查看有哪些可以设置。
设置leader键
let maplead = "," let g:mapleader = "," 这样就可以与其他字母组成命令,比如nmap ab xxxx
快速插入一段代码
iab al:read ~/v_demo/always.v i 将~/v_demo/always.v文件中的内容插入
设置界面颜色
let g:solarized_bold=0 let g:solarized_italic=0 let g:solarized_termcolors=256 let g:solarized_contrast="high" let g:solarized_visibility="high" let g:solarized_hitrail=1 syntax enable set background=dark colorscheme solarized
参考链接
设置不区分大小写
:set ignorease
滑动条
:set guioptions+=b //显示下边的滑动条
:set guioptions-=r //关闭右侧的滑动条
跳来跳去的ctags
1、安装 sudo apt-get install ctags 2、使用 2.1将安装的ctags的路径添加到bashrc的path中,安装完应该默认就加入了 2.2产生需要跳转文件的索引文件:ctag -f filename -R dir,filename是要产生索引文件的名字,dir是要去检索的文件夹,-R选项就会递归检索。 2.3将产生的索引文件加入到vimrc的tags变量中:set tags+=索引文件路径 2.4ctrl+]跳转到要查找变量的定义位置,ctrl+6跳回来。
minibufexplorer
下载地址 [http://www.vim.org/scripts/script.php?script_id=159] 版本 6.3.2 安装 将下载的 minibufexpl.vim文件丢到 \~/.vim/plugin 文件夹中即可 手册 在minibufexpl.vim 文件的头部
参考链接
设置gvim打开窗口的大小和在屏幕中的位置
set lines = 62 " 设置列数
set columns = 192 " 设置行数
winpos 160 0 " 设置在窗口中的位置。
1 set number 2 set ts=4 3 map:w! 4 imap :w! i 5 map y 6 imap y i 7 map u 8 imap u i 9 map 10 imap i 11 nmap ggvG 12 inoremap ggvG i 13 14 set cursorline 15 hi cursorline guibg=#0080E6 16 set cursorcolumn 17 let g:solarized_bold=0 18 let g:solarized_italic=0 19 let g:solarized_termcolors=256 20 let g:solarized_contrast="high" 21 let g:solarized_visibility="high" 22 let g:solarized_hitrail=1 23 syntax enable 24 set background=dark 25 colorscheme industry 26 set guioptions-=T 27 set guioptions-=m 28 set smartindent 29 set cursorline 30 :set shiftwidth=4 31 set ai 32 set softtabstop=4