mkdir -p ~/.vim/bundle/Vundle.vim

git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

####################################################.vimrc ####################################################

set nocompatible              " be iMproved, required
filetype off " required " set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim' Plugin 'taghighlight' Plugin 'majutsushi/tagbar'
nmap tb :TagbarToggle<CR>
let g:tagbar_ctags_bin='ctags' "ctags程序的路径
let g:tagbar_width=30 "窗口宽度的设置
"map <F3> :Tagbar<CR>
"autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen() "如果是c语言的程序的话,tagbar自动开启 Plugin 'scrooloose/nerdtree' "文件资源管理器
nmap fb :NERDTreeToggle<CR>
let NERDTreeWinPos='left'
let NERDTreeWinSize=30
"map <F2> :NERDTreeToggle<CR>
Plugin 'git://github.com/kien/ctrlp.vim.git' "NERDTree 下按Ctrl-p搜索文件名
Plugin 'bling/vim-airline' "状态栏
set laststatus=2 Plugin 'fholgado/minibufexpl.vim'
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
let g:miniBufExplMoreThanOne = 0
map <F11> :MBEbp<CR>
map <F12> :MBEbn<CR>
Plugin 'vim-scripts/DoxygenToolkit.vim'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
""Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
""Plugin 'file:///home/gmarik/path/to/plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
""Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'} " All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just:PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line set nu
set ts=4
set expandtab
set smartindent
set shiftwidth=4
set encoding=utf-8
set termencoding=utf-8
set fileencodings=utf-8,gbk,latin1
set hls
"hi comment ctermfg=6 func CFileTitle()
call setline(1, "/**")
call append(1, "* ".expand("%"))
call append(2, "* wangkaichao@skyworth.com ".strftime("%Y-%m-%d"))
call append(3, "*/")
endfunc map title :call CFileTitle()<CR> "inoremap { {}<LEFT>
"inoremap [ []<LEFT>
"inoremap ( ()<LEFT>
"inoremap " ""<LEFT>
"inoremap ' ''<LEFT>

#################################################### 基本应用 ####################################################

(1) 调出 vim 命令历史列表

<ESC>q:

(2) 查看 打开的文件缓冲区

<ESC>:ls

(2) 文件缓冲区 文件切换

方法1 <ESC>:bn # n是ls显示的id号

方法2 <Ctrl + 6> #顺序切换

方法3 <ESC>:e filename

(3) <ESC>:vs 垂直分割窗口

(4) <ESC>:sv 水平分割窗口

(5) <ESC><Ctrl + w> hjkl 在窗口之间切换

Ctrl-w H或键入:wincmd H水平布局到垂直布局。

Ctrl-w J或键入:wincmd J垂直布局到水平布局。

Ctrl-w r或键入:wincmd r交换两个缓冲区,但保持窗口布局相同。

Ctrl-w w或键入:wincmd w移动光标两个窗口/缓冲器之间。

(6) 不同窗口文件间复制粘贴

复制 <ESC>v(进块模式) 选择文件内容 +y 或者*y

粘贴 <ESC>+p 或者*p

(6.1)寄存器复制粘贴

复制 <ESC>v(进块模式) 选择文件内容

"[a-z]y

"[a-z]p

(7) 调整窗口大小

水平调整窗口的各种操作:
<ESC><Ctrl+w> 松手,n+     #窗口边界上移n
<ESC><Ctrl+w> 松手,n-      #窗口边界下移n
<ESC><Ctrl+w> _       #将当前窗口调到最大
<ESC><Ctrl+w> =       #平分窗口
 垂直调整窗口的各种操作:
<ESC><Ctrl+w> 松手,n<    #窗口边界左移n
<ESC><Ctrl+w> 松手,n>   #窗口边界右移n
<ESC><Ctrl+w> |       #将当前窗口调到最大
<ESC><Ctrl+w> =        #平分窗口,这个快捷键是通用的。

(8) 常用删除操作

di( #删除括号内内容

di[

di{

daB #删除{内容包括{}

(9) vim 前后台切换

<ESC><Ctrl-z>  #进入后台

jobs  #查看当前后台的vim

fg n  #根据jobs列出的id,将该id切入前台

(10) vim 编辑目录

<ESC>:e pathanme

<ESC>:Exp[lore] pathname       # 浏览该目录
<ESC>:Sex[plore] .     #在水平分割窗口中浏览该目录
<ESC>:Vex[plore] .     #在垂直分割窗口中浏览该目录

(11) vim 使用文件标签tab

<ESC>:tabe filename

<ESC>:tabs     #显示已打开标签页的列表,并用“>”标识出当前页面,用“+”标识出已更改的页面。

<ESC>:tabc n  #关闭tabs 列出来的签页id=n,tabc不加参数,默认关闭 “>”,即当前标签页 。

<ESC>:tabo     #关闭所有的标签页。

<ESC>:tabn或<ESC>gt   #移动到下一个标签页。

<ESC>:tabp或<ESC>gT  #移动到上一个标签页。

#################################################### cscope ####################################################

#######################################cscope 貌似比ctags强大,存系统api的符号更好,不用更新

apt-get install cscope

find /opt/hisi-linux/x86-arm/arm-hisiv300-linux/arm-hisiv300-linux-uclibcgnueabi/include/c++/4.8.3 -name "*" > c++.files

cscope -bkq -i c++.files -f c++.out

find /opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/usr/include -name "*.[h|c]" > c.files

cscope -bkq -i c.files -f c.out

vim file

<ESC> cs add /path/c.out

注意在查找标识符之前,当前文件一定要<ESC>:w

<ESC> cs find g/s funcname

显示多个项,按空格,输入id,跳转到声明出,返回方法:ls + bn  或者<Ctrl+6>

#################################################### ctags ####################################################

####################################################比较灵活,多用来同步应用代码的标识,要更新

apt-get install ctags

ctags --c++-kinds=+p --fields=+iaS --extra=+q -R -f xxtags ./

# set tags+=xxtags

<Ctrl> + ] 跳转到的定义

<Ctrl> + o/t 返回

=========================================================================================================

set fenc                 查看现在文本的编码

:set fenc=编码       转换当前文本的编码为指定的编码

:set enc=编码        以指定的编码显示文本,但不保存到文件中。

:set ff?                   查看当前文本的模式类型,一般为dos,unix

:set ff=dos            转换为dos模式
:set ff=unix           转换为unix模式,等同于:%s/^M//g

Vim常用配置的更多相关文章

  1. Vim - 常用配置

    基本配置 不用任何插件的情况下,先按如下配置: set nu syntax on set hlsearch set tabstop=4 set shiftwidth=4 set expandtab s ...

  2. vim常用配置 vimrc文件

    自从接触vim,自己瞎鼓捣.vimrc也有一段时间了.收集记录一下好用的配置. 一.奇技淫巧 1.折叠代码 折叠代码常常用在代码块较长的情况下,比如一个文件里定义了很多个函数,或者注释.括号影响的阅读 ...

  3. Vim 常用配置及插件安装使用

    在 Linux 中习惯了 vim 编辑器. 找了一些资料后自己尝试配置起来了.下面是一些过程. 首先需要知道 vim 相关的配置都是写在 ~/.vimrc 文件中.我下面的笔记只配置了一些我常用的功能 ...

  4. Vim常用配置(~/.vimrc)(转载)

    原文地址:http://www.2cto.com/os/201309/246271.html " This must be first, beacuse it changes other o ...

  5. Vim常用命令及配置方案

    Vim常用命令及配置方案   几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用v ...

  6. vim+vundle配置

    Linux环境下写代码虽然没有IDE,但通过给vim配置几个插件也足够好用.一般常用的插件主要包括几类,查找文件,查找符号的定义或者声明(函数,变量等)以及自动补全功能.一般流程都是下载需要的工具,然 ...

  7. Vim 常用技巧:

    Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...

  8. VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装

    VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装在阿里云开源镜像地址下载镜像Index of /centos/7.2.1511/isos/x86_64/http://mirro ...

  9. Linux常用命令及vim的使用、vim常用插件(推荐)

    看了3篇文章,很好 vim中的区域拷贝 剪切,粘贴: 正常模式,移动光标到剪切的区域开始处,按v,进入可视模式,然后选择区域.按x键,剪切.到指定位置按p粘贴. 撤销按u 恢复按ctrl-r  简明 ...

随机推荐

  1. 6th week blog(1)

    1.CSS单位 px:px就是pixel的缩写,pixel即像素,为绝对单位,页面按精确像素展示 em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体 ...

  2. Wpf TemplateBinding

    TemplateBinding. ControlTemplate最终会被用到一个控件上,我们称这个控件为模板目标控件或者模板化控件,ControlTemplate里面的控件可以使用TemplateBi ...

  3. 让Entity Framework不再私闯sys.databases

    这里的“私闯sys.databases”是指Entity Framework默认发起的查询:SELECT Count(*) FROM sys.databases WHERE [name]=N'数据库名 ...

  4. ROS * 了解学习urdf的内容格式及编写

    <?xml version="1.0" ?> 声明文件使用xml描述 <robot name="robot_name">定义这是一个机器 ...

  5. sql sever 2012重装数据库时,出现cannot find one or more components, Please reinstall the application.解决方法

    错误原因: 由于我将SQL数据库做了删除,重装.在删除的过程中,不小心删除了某个SQL的插件,导致了这种问题的出现. 当我们去操作工具时,也会提示以上错误. 解决办法: 1)去控制面板--所有控制面板 ...

  6. creator rotationY的问题

    最近在做一个2D的小游戏,碰撞方面由于懒,就直接使用cocos自带的物理组件RigidBody了. 但是在父节点挂载RigidBody之后,会导致设置rotationY时失效,具体原因没有深查,估计是 ...

  7. asp.net 按钮执行前后台方法——前台弹出提示信息,确认后继续执行后台方法,取消则不执行后台方法

    我们做一个测试的web页面,只需要一个button+一个label就ok啦,通过button按钮的后台事件修改label的text属性值来测试是否执行了后台事件里的代码 前台 写一个js方法: < ...

  8. 本地复现Flash 0day漏洞(CVE-2018-4878)

    影响版本: Adobe Flash Player <= 28.0.0.137 EXP下载地址: 链接: https://pan.baidu.com/s/1_VVQfdx6gsJvEDJj51Jg ...

  9. Linux----------Openssh介绍以及用法

    一.OpenSSH介绍 OpenSSH这一术语指系统中使用的Secure Shell软件的软件实施.用于在远程系统上安全运行shell.如果您在可提供ssh服务的远程Linux系统中拥有用户帐户,则s ...

  10. 环境准备阶段--搭建oracle linux 6.5系统

    环境准备阶段--搭建oracle linux 6.5系统 选择9.x版本兼容性 分配6GB内存 再次重启可以进入桌面,提示如下,勾选然后close 配置主机名,网络.hosts [root@ocp-1 ...