• 配置linux平台下基于vim的开发环境


     

    一、vim的基本配置

    1、配置文件的位置
    在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录($HOME)下,都可以自己建立私有的配置文件(仅对这个用户有效),命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。我就是在自己的$HOME目录下新建了了.vimrc文件来配置的。
    2、基本设置
    1) 打开.vimrc,添加以下语句来使得语法高亮显示:
    syntax on
    2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:
    export TERM=xterm-color
    3、设置C/C++自动缩进
    1)设置制表符宽度:
    set tabstop=8
    set softtabstop=8
    2)设置缩进的空格数为8
    set shiftwidth=8
    另外,“set expandtab”选项会将TAB展开(被替换)为对应个数的空格,我一般不推荐设置这个选项。
    3)设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
    set autoindent
    4)设置使用 C/C++ 语言的自动缩进方式:
    set cindent
    5)设置C/C++语言的具体缩进方式(如下设置,仅作参考):
    set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
    6)如果想在左侧显示文本的行号,可以用以下语句:
    set nu
    7)自动缩进两个选项”set autoindent” 与 “set cindent”的区别

    插入一个新行时,autoindent 会自动地将当前行的缩进拷贝到新行,也就是“自动对齐”,当然了,如果你在新行没有输入任何字符,那么这个缩进将自动删除。
    cindent 就不同了,它会按照 C 语言的语法,自动地调整缩进的长度,比如,当你输入了半条语句然后回车时,缩进会自动增加一个 TABSTOP 值,当你键入了一个右花括号时,会自动减少一个 TABSTOP 值。

    二、vim插件

    基于vim编辑器有很多代码补全的插件,常用的例如OmniCppComplete、Autocomplpop,code_complete,能够根据代码的上下文提供自动补全的功能。

    三、ctags

    1、ctags是什么

    ctags用来扫描指定的源文件,找出其中所包含的语法元素,并将找到的相关内容记录下来,生成ctags文件,供其他插件定位语法元素。

    2、怎么生成ctags

    例如命令:ctags -f systags -R --languages=c,c++ --c++-kinds=+px /usr/include /usr/local/include

    -f表示生成的tag文件为systags

    -R表示递归扫描目录及其子目录

    --languages表示扫描c或者c++文件

    /usr/include /usr/local/include表示扫描系统头文件目录

    3、设置ctags

    (1)若tag文件在当前目录,打开vim编辑器,在vim命令行中输入:set tags+=./systags,若要引用多个不同目录的tags文件,可以用逗号隔开。

    (2)设置vimrc,在etc/vim/vimrc中加入一行:set tags+=./systags,就不用每次手动设置。

    4、使用ctags

    (1)ctrl+]和ctrl+t命令:将光标移动到需要跳转的函数上,按ctrl+]和ctrl+t可以跳转和回溯。

    (2)在vim命令行上输入:tag/ta name,可以跳转到对应的函数或者变量

    (3)输入命令:tags,可以查看已经到过哪tag

    (4)当有很多同名tag的时候,可以通过命令:tselect tagname列出所有的tag,通过命令:tfirst、tprevious、tnext、tlast选择tag

  • 相关阅读:
    linux+apache+nginx实现,反向代理动静分离
    apache编译安装php后需要注意以下配置
    nginx的gzip压缩功能
    linux+nginx+mysql+php环境下,安装ecshop
    LeetCode 328:奇偶链表 Odd Even Linked List
    LeetCode 160: 相交链表 Intersection of Two Linked Lists
    LeetCode 203:移除链表元素 Remove LinkedList Elements
    LeetCode 142:环形链表 II Linked List Cycle II
    LeetCode 141:环形链表 Linked List Cycle
    围观微博网友发起的美胸比赛学习爬取微博评论内容
  • 原文地址:https://www.cnblogs.com/justkong/p/6265496.html
Copyright © 2020-2023  润新知