• 一些vim的插件和配置


    vim的一个之处在于广大vimmer所无私奉献的插件,令我等不懂vim脚本的小白受益无穷。在此介绍一些我所安装的插件和配置,都是针对写程序的,没有文本编辑的,也没有日历,也不能煮咖啡。

    1) A

          功能简单但很有用的一个插件,键入:A即可切换头文件和源文件。默认支持C,C++,但不支持objc,对此可修改a.vim,在 a.vim 中加入如下语句:

    call <SID>AddAlternateExtensionMapping('m',"h") "Objective-C file

    call <SID>AddAlternateExtensionMapping('mm',"h") "Objective-C++ file

    2) AutoComplPop

          vim中,按 <Ctrl - n> 可弹出自动补全菜单;这个插件则可在键入过程中自动弹出自动补全菜单,有时方便有时烦。

    3) C

          快捷地键入一些C,C++ 程序的代码片段,常用语句,以及快速注释。例如,在正常模式或插入模式下,键入 \sd 就可输入do while语句;又如键入 \cc 可将选中的文本块注释掉等。

          由于 \ 键距离较远,可在 ~/.vimrc 中加入:

    let g:C_MapLeader  = ','

          则将前缀键改为英文逗号。

          默认的文件类型也不够,如要支持 objc,则在 ~/.vimrc 中加入:

    let g:C_SourceCodeExtensions = 'c cc cp cxx cpp CPP c++ C i ii m mm'

          据说还能直接在vim中调用 GCC,没试过。

    3) Cocoa

          Cocoa是iOS开发的官方框架,这个插件则试图取代XCode的文本编辑功能。

          以我的使用经验,XCode的文本编辑功能是为Objc量身定做的,可定制性差,用来写 C++ 灰常悲剧,于是写Objective-C++也就悲剧了,于是就想在vim上写iOS应用,于是就有了这个插件。

          自动补全官方API——这是最重要的功能,因为iOS API的类名,方法名通常很长很长,很长很长……

          这个插件有个缺陷——有些功能不支持 .mm 文件,大约是vim觉得 .mm 文件不是objc文件,不知道怎么解决。

    4) echofunc

          C,C++的插件,当输入完函数名,再输 ( 时,会在状态栏给出函数定义,很有用。依赖于ctags。

    5) grep

          可在文件夹范围内搜索关键字。

    6) NerdTree

          树状的文件浏览窗口,还能设置书签,比默认的File Explorer要好用。像IDE一样组织文件视图。

          笔者在 ~/.vimrc 中的相关设置如下:

     

    let g:NERDTree_title="[NERDTree]" 

     

    function! NERDTree_Start()

        exec 'NERDTree'

    endfunction

     

    function! NERDTree_IsValid()

        return 1

    endfunction

     

     

     

    let NERDChristmasTree=0

    let NERDTreeShowBookmarks=1

    let NERDTreeShowFiles=1

    let NERDTreeShowLineNumbers=1

    let NERDTreeMinimalUI=1

    let NERDTreeChDirMode=2

     

    7) SnipMate

          类似TextMate的代码片断功能。

    8) SuperTab

          在自动补全菜单中,按 <Tab> 来替代 <Ctr - n>,切换。

    9) TagList

          生成C,C++函数的列表窗口。

          在 ~/.vimrc 中的设置如下:

     

    let Tlist_Ctags_Cmd="/usr/local/bin/ctags"

    let Tlist_Auto_Open=0

    let Tlist_Process_File_Always=1

    let Tlist_File_Fold_Auto_Close=1

    let Tlist_Sort_Type="name"

    let Tlist_WinWidth=30

    let Tlist_Compact_Format=1

    let Tlist_Enable_Fold_Column=0

    let Tlist_Display_Prototype=1

    let Tlist_Show_One_File=1

    let Tlist_Exit_OnlyWindow=1

    let Tlist_Use_Right_Window=1

    10) vimball

          用来安装vba格式的vim插件。

    11) objc_matchbracket

          这个也是Objc的插件。

          Objc的视觉特点是中括号套中括号,所以书写时容易搞错搞漏,很折磨人。Xcode的编辑器能自动补齐中括号,这个插件也可以。缺点依旧,不支持.mm文件。不知道怎么改。

    12) OmniCppComplete

          写C++的话,这个插件太有用了,像IDE一样提示成员函数,数据。依赖于ctags。可以在~/.vimrc中添加下句:

    map <F3> :!ctags -R --c++-kinds=+p --fields=+ialS --extra=+q .<CR>

          ——这样在vim中按 <F3> 就可以生成tags文件了。

          我的空间里有~/.vimrc文件的代码,怕弄丢了就悲剧了,留着。

    分类: 工具
  • 相关阅读:
    operator模块和functools模块
    函数注解
    用户定义的可调用类型、从定位参数到仅限关键字参数
    可调用对象
    nxos启动的初始化和https访问nx-api
    网络安全基础之网络协议与安全威胁
    华为AC中服务集命令解释配置
    转:图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)
    windows下python3 python2 共存下安装virtualenvwrapper
    关于网络安全学习的网站
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2486742.html
Copyright © 2020-2023  润新知