配置Vim为一个轻便的IDE

前言


关于IDE就不用对多说了,那么在Linux下怎么把vim配置成一个轻量级的“IDE”呢?今天就教大家方法。(⊙o⊙)…其实百度一下就可以出来了,不过我这里吧我在配置时遇到了些问题写出来,避免绕弯路。。。。
貌似还有一个比较NB的 YouCompleteMe 。。


下载插件


说白了,配置vim其实就是安装插件,也就是脚本。O(∩_∩)O~
先来看看我们要去下载那些插件??


(注意,我是用vim8)
  • Pathogen,这是一个用来管理插件的插件
    github: https://github.com/tpope/vim-pathogen
    git clone https://github.com/tpope/vim-pathogen.git

  • Syntastic,用来检测语法错误的
    github: https://github.com/vim-syntastic/syntastic
    git clone https://github.com/vim-syntastic/syntastic.git

  • Auto Pairs,自动补全括号,如()、{}
    github: https://github.com/jiangmiao/auto-pairs
    git clone https://github.com/jiangmiao/auto-pairs.git

  • NERD Commenter,代码注释作用
    github: https://github.com/scrooloose/nerdcommenter
    git clone https://github.com/scrooloose/nerdcommenter.git

用法(摘自互联网:
\cc 注释当前行和选中行
\cn 貌似和 \cc一样。。
\c<空格> 如果被选区域有部分被注释,则对被选区域执行取消注释操作,其它情况执行反转注释操作
\cm 对被选区域用一对注释符进行注释,前面的注释对每一行都会添加注释
\ci 执行反转注释操作,选中区域注释部分取消注释,非注释部分添加注释
\cs 添加性感的注释,代码开头介绍部分通常使用该注释
\cy 添加注释,并复制被添加注释的部分
\c$ 注释当前光标到改行结尾的内容
\cA 跳转到该行结尾添加注释,并进入编辑模式
\ca 转换注释的方式,比如: //和//
\cl \cb 左对齐和左右对其,左右对其主要针对/
/
\cu 取消注释

  • Snipmate,这玩意相当与补全吧
    git clone https://github.com/garbas/vim-snipmate.git

  • NERDTree 和 Taglist
    nerdtree: git clone https://github.com/scrooloose/nerdtree.git
    taglist 官网: http://www.vim.org/scripts/script.php?script_id=273 ,我下载的是 4.6 版本的

    NERDTree用法(摘自互联网:
    文件相关操作
    o : 在光标所在的上一个窗口打开文件,并将光标置于新打开的窗口
    go : 预览文件,光标停留在NERDTree窗口中
    t : 在新标签中打开文件并激活
    gt : 在新标签打开文件,光标留在NERDTree窗口中
    i : 水平分割打开文件
    gi : 水平分割预览
    s : 垂直分割打开文件
    gs : 垂直分割预览
    目录树相关操作
    o : 展开/关闭目录
    O : 递归展开目录。慎用,如果目录层级多,打开会很慢
    x : 关闭父目录
    C : 切换光标所在目录为根目录
    u : 切换目录树的根目录为上层目录
    U : 切换目录树的根目录为上层目录,并保持旧的目录树的状态
    r : 刷新当前目录
    R : 刷新当前根目录(这个在新加入文件后会用到)
    cd : 切换vim工作目录为光标所在目录(命令模式下:pwd可查看当前工作目录)
    快捷键
    ctrl + w + w 光标自动在左右窗口切换
    ctrl + w + l 光标 移动到右侧窗口
    ctrl + w + h 光标移动到左侧窗口
    ctrl + w + r 切换NERDTree窗口位置(左或右)

    ctrl+w+(↑ 、↓ 、← 、→)

  • OmniComplete,C++ 的补全功能,同时还要下载 cpp_src文件夹
    OmniComplete: http://www.vim.org/scripts/script.php?script_id=1520
    cpp_src: http://www.vim.org/scripts/script.php?script_id=2358

  • SuperTab(这货挺好的,按下tab键就可以补全变量名或函数名,不过却不能通过tab键输入制表符了(然后可以映射其他键输出制表符),所以我没用)
    github: https://github.com/ervandew/supertab
    git clone https://github.com/ervandew/supertab.git

  • 当然,还有一些像 MiniBufferExplorer、UndoTree、GDBMgr 大家可以百度百度。。。。。。(⊙﹏⊙)b,其实我也木有用到这几个

正文


把上面这些插件下载完成后,就可以开始配置了。。。
等等,在开始之前,请先安装这几个(debian)!!!!

apt-get install vim-addon-mw-utils
apt-get install vim-tlib
apt-get install ctags

假定我把这些插件放在 ~/vim_plugins 目录下
cd ~/vim_plugins

  • 先安装 pathogen
    1.把 pathogen/autoload 的文件夹复制到 ~/.vim/
    2.mkdir ~/.vim/bundle #以后只需把插件文件夹放到这个bundle文件夹

  • 接着 Syntastic

    cp -r syntastic/ ~/.vim/bundle/

  • Auto Pairs

    cp -r auto-pairs/ ~/.vim/bundle/

  • NERD Commenter

    cp -r nerdcommenter/ ~/.vim/bundle/

  • Snipmate

    cp -r snipMate/ ~/.vim/bundle/

  • NERDTree 和 Taglist

    cp -r nerdtree/ ~/.vim/bundle/
    cp -r taglist/ ~/.vim/bundle/

  • OmniComplete

    cp -r omnicppcomplete/ ~/.vim/bundle/
    这时别忘了那个解压下来的cpp_src文件夹,进入到cpp_src目录
    cd ~/vim_plugins/cpp_src
    执行如下命令
    ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
    生成 tags 文件,再把cpp_src文件夹复制到~/.vim/tags/下(tags直接新建)

最后,再来看下 .vimrc 文件

"设置 cpp_src/tags 文件的路径
set tags+=~/.vim/tags/cpp_src/tags
set modelines=0
"设置更好的删除
set backspace=2
syntax on "语法高亮
"用浅色高亮当前行
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul
set smartindent "智能对齐
set autoindent "自动对齐
set confirm "在处理未保存或只读文件的时候,弹出确认框
set tabstop=4 "tab键的宽度
set softtabstop=4
set shiftwidth=4 "统一缩进为4
set expandtab "不要用空格替代制表符
set number "显示行号
set history=50  "历史纪录数
set hlsearch
set incsearch "搜素高亮,搜索逐渐高亮
set gdefault "行内替换
set encoding=utf-8
set fileencodings=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-16,big5,euc-jp,latin1 "编码设置
set guifont=Menlo:h16:cANSI "设置字体
set langmenu=zn_CN.UTF-8
set helplang=cn  "语言设置
set ruler "在编辑过程中,在右下角显示光标位置的状态行
set laststatus=1  "总是显示状态行
set showcmd "在状态行显示目前所执行的命令,未完成的指令片段也会显示出来
set scrolloff=3 "光标移动到buffer的顶部和底部时保持3行的距离
set showmatch "高亮显示对应的括号
set matchtime=5 "对应括号高亮时间(单位是十分之一秒)
set autowrite "在切换buffer时自动保存当前文件
set wildmenu  "增强模式中的命令行自动完成操作
set linespace=2 "字符间插入的像素行数目
set whichwrap=b,s,<,>,[,] "开启normal 或visual模式下的backspace键空格键,左右方向键,insert或replace模式下的左方向键,右方向键的跳行功能
filetype plugin indent on "分为三部分命令:file on,file plugin on,file indent on 分别是自动识别文件类型, 用用文件类型脚本,使用缩进定义文件
set foldenable  "允许折叠
set cursorline "突出显示当前行
set magic  "设置魔术?神马东东
set ignorecase "搜索忽略大小写
filetype on "打开文件类型检测功能
set background=dark
set t_Co=256   "256色
set mouse=v  "允许鼠标
"===============================
execute pathogen#infect()
syntax on
filetype plugin indent on
filetype plugin on 
"启动vim显示nerdtree
autocmd VimEnter * NERDTree
" 按下 ctrl+b 显示/隐藏 NERDTree
 map   :NERDTreeToggle
" 将 NERDTree 的窗口设置在 vim 窗口的右侧(默认为左侧)
 let NERDTreeWinPos="left"
"设置 NERDTree 窗口宽度
 let NERDTreeWinSize=30
"这个设置 ctags 的路径,如果是 apt-get install 安装的,省略
" let Tlist_Ctags_Cmd = ...
let Tlist_Show_One_File=1    "只展示一个文件的taglist
let Tlist_Exit_OnlyWindow=1  " 当taglist是最后以个窗口时自动退出
let Tlist_Use_Right_Window=1 " 在右边显示taglist窗口
let Tlist_Sort_Type="name"   " tag按名字排序
let Tlist_Auto_Open=1  "自动打开 taglist
"让当前不被编辑的文件的方法列表自动折叠起来 
let Tlist_File_Fold_Auto_Close=1
"按Ctrl+M键显示/隐藏Taglist
map  :TlistToggle
autocmd VimEnter * TlistToggle
"只有安装了supertab插件才管用
"let g:SuperTabMappingBackward= ""
"let g:SuperTabMappingForward = "c-tab"
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1 
let OmniCpp_ShowPrototypeInAbbr = 1 " 显示函数参数列表 
let OmniCpp_MayCompleteDot = 1   " 输入 .  后自动补全
let OmniCpp_MayCompleteArrow = 1 " 输入 -> 后自动补全 
let OmniCpp_MayCompleteScope = 1 " 输入 :: 后自动补全 
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
set completeopt=menuone,menu,longest
"================================

I’m Frazer ! fantabulous!!!

你可能感兴趣的:(deep-learning)