vim 插件配置博客记录
本来打算自己写下各种经常使用vim的插件安装方法, 可是搜索了下, 发现别人都写过了, 在写一遍也没有意思, 特此记录.
- Vim 经常使用命令
命令 | 含义 |
---|---|
% | 跳转到配对的括号去{} |
[[ | 向前跳转到{代码块的开头处 |
]] | 向后跳转到}代码块的结尾处 |
gD | 跳转到局部变量的定义处 |
gg | 跳转到文件开头 |
G | 跳转到文件末尾 |
> | 添加缩进,”x>”表示添加以下x行的缩进 |
< | 降低缩进,”x<”表示降低以下x行的缩进 |
# | 查找光标所在单词(先前) |
* | 查找光标所在单词(向后) |
0 | 硬行首,纯粹行首第一个字符 |
^ | 软行首,忽略掉空格的行首 |
$ | 行尾 |
+ | 下一行行首,忽略掉空格的行首 |
- | 上一行行首,忽略掉空格的行首 |
/ | 向后查找 |
? | 向前查找 |
n | 查找下一个 |
N | 查找上一个 |
w | 光标移到下一个单词 |
b | 光标移到上一个单词 |
E 或e | 光标移动到词尾 |
” | 跳转到光标上次停靠的地方,是两个’, 而不是一个” |
- 基本配置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 显示相关
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示
"winpos 5 5 " 设定窗体位置
"set lines=40 columns=155 " 设定窗体大小
"set nu " 显示行号
set go= " 不要图形button
color dark " 设置背景主题
syntax on " 语法高亮
autocmd InsertLeave * se nocul " 用浅色高亮当前行
autocmd InsertEnter * se cul " 用浅色高亮当前行
"set ruler " 显示标尺
set showcmd " 输入的命令显示出来。看的清晰些
"set cmdheight=1 " 命令行(在状态行下)的高度,设置为1
"set whichwrap+=<,>,h,l " 同意backspace和光标键跨越行边界(不建议)
"set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离
set novisualbell " 不要闪烁(不明确)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容
set laststatus=1 " 启动显示状态行(1),总是显示状态行(2)
set foldenable " 同意折叠
set foldmethod=manual " 手动折叠
"set background=dark "背景使用黑色
set nocompatible "去掉讨厌的有关vi一致性模式,避免曾经版本号的一些bug和局限
" 显示中文帮助
if version >= 603
set helplang=cn
set encoding=utf-8
endif
" 设置配色方案
colorscheme desert
" 设置字体和字号
set guifont=Consolas\ 18
" 不要使用vi的键盘模式,而是vim自己的
set nocompatible
" 语法高亮
set syntax=on
" 去掉输入错误的提示声音
set noeb
" 在处理未保存或仅仅读文件的时候,弹出确认
set confirm
" 自己主动缩进
set autoindent
set cindent
" Tab键的宽度
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 不要用空格取代制表符
set noexpandtab
" 在行和段開始处使用制表符
set smarttab
" 显示行号
set number
" 历史记录数
set history=1000
"禁止生成暂时文件
set nobackup
set noswapfile
"搜索忽略大写和小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"行内替换
set gdefault
"编码设置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"语言设置
set langmenu=zh_CN.UTF-8
set helplang=cn
" 我的状态行显示的内容(包括文件类型和解码)
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
"set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
" 总是显示状态行
set laststatus=2
" 命令行(在状态行下)的高度。默觉得1,这里是2
set cmdheight=2
" 侦測文件类型
filetype on
" 加载文件类型插件
filetype plugin on
" 为特定文件类型加载相关缩进文件
filetype indent on
" 保存全局变量
set viminfo+=!
" 带有例如以下符号的单词不要被换行切割
set iskeyword+=_,$,@,%,#,-
" 字符间插入的像素行数目
set linespace=0
" 增强模式中的命令行自己主动完毕操作
set wildmenu
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2
" 同意backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" 能够在buffer的不论什么地方使用鼠标(相似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 通过使用: commands命令。告诉我们文件的哪一行被改变过
set report=0
" 在被切割的窗体间显示空白。便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之中的一个秒)
set matchtime=1
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
" 为C程序提供自己主动缩进
set smartindent
" 高亮显示普通txt文件(须要txt.vim脚本)
au BufRead,BufNewFile * setfiletype txt
- vim miniBufexplorer 打开的文件缓存浏览器
miniBufexplorer 为vim插件,直接解压复制到相关文件夹就可以,
下载官方地址:
http://www.vim.org/scripts/script.php?script_id=159
minibufexpl.vim
将minibufexpl.vim 复制到 $HOME/.vim/plugin文件夹下$HOME/.vimrc 中加入例如以下配置
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
解决FileExplorer窗体变小问题 须在$HOME/.vimrc中加入:
“解决FileExplorer窗体变小问题let g:bufExplorerMaxHeight=30
let g:miniBufExplorerMoreThanOne=0
- NertTree 文件文件夹树
http://www.cnblogs.com/feichexia/archive/2012/11/07/Vim_NerdTree.html
从 http://www.vim.org/scripts/script.php?script_id=1658 下载。然后解压,将解压得到的plugin和doc文件夹与HOME/.vim∗目录下的同名文件夹合并。然后往∗HOME/.vimrc文件里添加以下配置代码:
” 设置NerdTree
map <F3> :NERDTreeMirror<CR>
map <F3> :NERDTreeToggle<CR>
按F3就可以显示或隐藏NerdTree区域了。
假设你不喜欢文件夹树在左边, 能够加入
let NERDTreeWinPos = "right"
- TagBar 函数(变量)列表
tagbar是一个taglist的替代品,比taglist更适合c++使用,函数能够按类区分,支持按类折叠显示等。显示结果清晰简洁。强烈推荐。下载地址例如以下:
http://www.vim.org/scripts/script.php?
script_id=3465
安装方式 :
vim tagbar.vba
:so %
:q
快捷键打开/关闭
nnoremap <silent> <F3> :TagbarToggle<CR>
设置属性
let g:tagbar_width = 30
let g:tagbar_left = 1
加入你自己的tags文件
set tags+= xxx
在vim下运行 :
:!ctags -R *
然后就能够通过G来跳转到相应的定义处了。
cscope 跳转
一 下载安装
1. 检測是否
vim --version |grep cscope
+cryptv +cscope +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic
- 下载:cscope 源代码
http://cscope.sourceforge.net/
http://sourceforge.net/projects/cscope/files/cscope/ 安装:
如未安装flex,须要先安装flexyum install flex
./configure
make
make install
```
上述不行,使用以下命令:
make distclean
./configure --with-flex
make
二 生成cscope文件列表和数据库:
生成脚本:
#!/bin/bash
echo "Begin TO Generage cscope.files..."
find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files
ls -l cscope.files
echo "Begin TO Generage cscope.out"
cscope -Rbq -i cscope.files -I /usr/local/mysql/include
ls -l cscope.*
echo "Begin TO Generage tags"
ctags -R
ls -l tags
echo "Complete Successfully"
cscope 选项说明:-I选项将自己要包括的头文件加入进去。
-R: 在生成索引文件时。搜索子文件夹树中的代码
-b: 仅仅生成索引文件。不进入cscope的界面
-k: 在生成索引文件时。不搜索/usr/include文件夹
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-i: 假设保存文件列表的文件名称不是cscope.files时,须要加此选项告诉cscope到哪儿去找源文件列表。能够使用“-”。表示由标准输入获得文件列表。
-I dir: 在-I选项指出的文件夹中查找头文件
-u: 扫描全部文件,又一次生成交叉索引文件
-C: 在搜索时忽略大写和小写
-P path: 在以相对路径表示的文件前加上的path。这样,你不用切换到你数据库文件所在的文件夹也能够使用它了。
-I 选项很实用,用于将其它开发库头文件导入到cscope数据库,方便产看。开发;
三.cscope 与vim 集成设置:
须要在.vimrc中加入例如以下配置
""""""""""""""""""""""""""""""
" Cscope Config
""""""""""""""""""""""""""""""
nmap <S-F10> :!creat_cscope<CR>
nmap <S-F11> :cs add cscope.out<CR>
nmap <A-F> :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap csg :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap csc :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap cst :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap cse :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap csf :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap csi :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap csd :cs find d <C-R>=expand("<cword>")<CR><CR>
"-------------------------------- Cscope -------------------------------------------
" Using 'Control-\ + key' makes the vim window split vertically,
" with search result displayed in the window
" 's' symbol: find all references to the token under cursor
nnoremap <C-\>s :vert scs find s <C-R>=expand("<cword>")<CR><CR>
" 'g' global: find global definition(s) of the token under cursor
nnoremap <C-\>g :vert scs find g <C-R>=expand("<cword>")<CR><CR>
" 'c' calls: find all calls to the function name under cursor
nnoremap <C-\>c :vert scs find c <C-R>=expand("<cword>")<CR><CR>
" 't' text: find all instances of the text under cursor
nnoremap <C-\>t :vert scs find t <C-R>=expand("<cword>")<CR><CR>
" 'e' egrep: egrep search for the word under cursor
nnoremap <C-\>e :vert scs find e <C-R>=expand("<cword>")<CR><CR>
" 'f' file: open the filename under cursor
nnoremap <C-\>f :vert scs find f <C-R>=expand("<cfile>")<CR><CR>
" 'i' includes: find files that include the filename under cursor
nnoremap <C-\>i :vert scs find i <C-R>=expand("<cfile>")<CR><CR>
" 'd' called: find functions that function under cursor calls
nnoremap <C-\>d :vert scs find d <C-R>=expand("<cword>")<CR><CR>
" using 'alt+key' search result in a new buffer
" we cannot use <A-key> to map 'alt-key' directly in terminal
" because when press alt in terminal it will be translated to <Esc>
" I use set to combine the 'alt-key' to a virtual multi-byte character
" which first byte is <Esc> (like F1), and the benefit is ttimeoutlen
" affect it instead of timeoulen
if has("gui_running")
" disable alt key in gvim to make our mapping working
set guioptions-=m
else
set <M-f>=f
set <M-g>=g
set <M-t>=t
set <M-c>=c
set <M-e>=e
set <M-o>=o
set <M-i>=i
set <M-d>=d
endif
" I use alt-f to map 'find s' to keep my habit on windows
" then i must use alt-o not alt-f to map 'find f'
nnoremap <M-f> :cs find s <C-R>=expand("<cword>")<CR><CR>
nnoremap <M-g> :cs find g <C-R>=expand("<cword>")<CR><CR>
nnoremap <M-c> :cs find c <C-R>=expand("<cword>")<CR><CR>
nnoremap <M-t> :cs find t <C-R>=expand("<cword>")<CR><CR>
nnoremap <M-e> :cs find e <C-R>=expand("<cword>")<CR><CR>
nnoremap <M-o> :cs find f <C-R>=expand("<cfile>")<CR><CR>
nnoremap <M-i> :cs find i <C-R>=expand("<cfile>")<CR><CR>
nnoremap <M-d> :cs find d <C-R>=expand("<cword>")<CR><CR>
四.cscope 和 quickfix使用
:cs find 的选项
0或则S:查找本符号
1或则G:查找本定义
2或则D:查找本函数调用的函数
3或则C:查找调用本函数的函数
4或则T:查找本字符串
6或则E:查找本EGREP模式
7或则F:查找本文件
8或则I:查找包括本文件的文件
quickfix用法:
1.调出办法 :cw
2.关闭办法 再一次:cw 或者在激活状态下:q
3.显示列表移动
:cn // 切换到下一个结果
:cp // 切换到上一个结果
- Mark 单词高亮
下载
script_id=1238">http://www.vim.org/scripts/script.php?script_id=1238
高亮的用法:
Normal mode:
Vim的Normal mode中。
\m 用来使得光标处的单词着色
\n 使得原先着色的单词取消着色
\r 输入\r后再输入正則表達式。能够高亮匹配的相关单词
关闭swap 缓存! 这样多个vim打开同一个文件就没有警告了。
" ---- no swap file
set nobackup
set noswapfile
set nowritebackup
clewn 进行DEBUG 配置。
"-------------- clewn ------------
"------------------------------------ clewn ----------------------------------------
"add break point
nmap <silent> <C-B> :nbkey C-B<CR>
"clear break point
nmap <silent> <C-E> :nbkey C-E<CR>
"next source line, skipping all function calls
nmap <silent> <F10> :nbkey C-N<CR>
"step into
nmap <silent> <F11> :nbkey S-S<CR>
"step out
nmap <silent> <F12> :nbkey S-F<CR>
"continue
nmap <silent> <F5> :nbkey S-C<CR>
假设你看到这里 , 说明你对上面的东西不慎惬意 , 没关系 , 以下这个另一个博客
希望能满足你 .
vim 插件配置博客记录的更多相关文章
- Github pages + Minimal-Mistakes + Disqus建立个人博客记录
本文详细记录了利用Github pages建立个人博客的步骤. github pages官方推荐使用Jekyll生成静态网页,jekyll支持各种不同的主题,Minimal-Mistakes是一个功能 ...
- 借用Snippet插件美化博客中的代码
书写博客,难免要贴出代码.然而直接贴出代码,则不美观.于是,应运而生出现了很多代码美化的插件.其中比较有名的是Syntax Highlighting插件. 笔者在网上翻阅的时候发现了Snippet ...
- 「个人vim插件+配置」
2016.10.4 filetype indent on syntax on set nu ai ci si set sw= ts= set autochdir set backspace= colo ...
- Chrome 插件自定义博客编辑界面
总觉得博客园的编辑器太白了,特别是在晚上,太明亮了刺眼.在后台设置里面找不到任何可以修改UI的地方,考虑用浏览器插件自己改一下.要是做得好,可以给大家一起用. 新建目录 E:/cnblog.js,添加 ...
- DoxygenToolKit.vim 插件配置
如何才能既享受 Doxygen 的强大功能,同时又避免大量的重复性的注释内容? 解决思路: 让编辑器来替我们写那些格式和内容固定的部分,我们只负责写真正的有效内容. 所以,答案就是:Vim + Dox ...
- JS 简易控制台插件 [供 博客, 论坛 运行js用]
今天厚着脸皮来推荐下鄙人写的一个小插件吧.看过我博客的应该都熟悉这个插件了,其实就是这货. 这东西是我去年写的,当时水平也不怎么样,不过好歹还是实现了简单功能.我先简单介绍下这东西什么用吧. 因为在 ...
- 安装配置博客WordPress
1.下载并解压WordPress cd /usr/local/src wget https://cn.wordpress.org/wordpress-4.4.2-zh_CN.tar.gztar zcv ...
- vim插件配置
OS:kali linux tool:vim 上图: 0x00 需要用到的插件及其下载地址 左边的一栏显示文件目录结构的用到的插件为 NERDTree 下载地址:https://github.com/ ...
- hugo + nginx 搭建博客记录
作为一个萌新Gopher,经常逛网站能看到那种极简的博客,引入眼帘的不是花里胡哨的图片和样式,而是黑白搭配,简简单单的文章标题,这种风格很吸引我.正好看到煎鱼佬也在用这种风格的博客,于是卸载了我的wo ...
随机推荐
- Agri-Net(prim)
http://poj.org/problem?id=1258 #include<stdio.h> #include<string.h> ; <<; int map[ ...
- Asp.net MVC4 Step by Step (2)-参数数据的传递
首先创建一个表单,不同于WebForm,框架提供了一系列HMTL帮助方法来生成HTML标签. 下面创建一个Create.cshtml为文件名的视图. <h2> Create Auction ...
- Multipart/form-data POST文件上传
简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form method="post"action=&qu ...
- python特性小记(一)
一.关于构造函数和析构函数 1.python中有构造函数和析构函数,和其他语言是一样的.如果子类需要用到父类的构造函数,则需要在子类的构造函数中显式的调用,且如果子类有自己的构造函数,必然不会自动调用 ...
- 阶乘问题-----sum随变量改变而改变
- 对学Oracle数据库初学者的开场篇
前言:因为项目原因,近期开始学习Oracle数据库.Oracle是目前最流行的数据库之一,功能强大,性能卓越,相对的学习的难度还是不小.我打算将自己的学习过程记录下来,做个积累,方便自己和其他的学习者 ...
- Visual Studio UI Automation 学习(三)
昨天了解到UI Automation是微软的.Net Framework框架里的4个DLL文件,可以在Visual studio里写代码时引入引用和引用命名空间.然后去写自动化代码. 今天本来是跟着一 ...
- 蛮好用的局域网测试工具iperf
公司局域网总是莫名其妙的和一台机器网速很慢,虽然无法解决也无人解决,但是能有个有效的测试至少也会心里有数. 咱干不了网络硬件布线的活,就测测网速吧. 网上找了下,开始有文章介绍NetIQ Chario ...
- 08--C++拷贝构造函数详解
C++拷贝构造函数详解 一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: [c-sharp] view plain copy int a = 100; int b ...
- C#遍历/反射 属性/字段
public static string SortParam<T>(T t) { string tStr = string.Empty; if (t == null) { return s ...