• [高清组图]环广西赛:参赛车队赛前适应训练 2018-08-31
  • [高清组图]特谢拉复出吴曦失单刀 苏宁0-0平斯威 2018-08-31
  • [高清组图]潜水偶遇座头鲸 亲密互动玩起“水中击掌” 2018-08-31
  • [高清组图]法拉利拍定妆照 维特尔KIMI准备好了 2018-08-31
  • [高清组图]毛剑卿伤退莫雷诺捅射 申花1-0一方 2018-08-31
  • [高清组图]比埃拉双响巴坎布建功 国安5-1富力 2018-08-31
  • [高清组图]武磊世界波胡尔克点射 上港2-0胜申花 2018-08-31
  • [高清组图]武磊2球吕文君建功 上港3-1富力 2018-08-31
  • [高清组图]欧超杯-科斯塔2球 皇马加时赛2-4马竞 2018-08-31
  • [高清组图]格里芬赤膊骑行 休赛期享受二人世界 2018-08-31
  • [视频]【深化改革 重在实效】精准扶贫 四川彝区要拔掉“穷根” 2018-08-31
  • [视频]【深化改革 重在实效】破藩篱促合力 体制创新粘合“两张皮” 2018-08-31
  • [视频]【深化改革 重在实效】激发活力 实现市场准入全程便利化 2018-08-31
  • [视频]【深化改革 重在实效】打通简政放权的“最后一公里” 2018-08-31
  • [视频]【深化改革 重在实效】广东:户籍改革为外来工打开一扇门 2018-08-31
  • 手机版
    你好,游客 登录 注册 搜索
    背景:
    阅读新闻

    Ubuntu 16.04 下 Vim安装及配置

    [日期:2017-01-15] 来源:Linux社区  作者:ace-wu [字体: ]

    Ubuntu 16.04 下安装Vim

    默认已经安装了VIM-tiny

    linuxidc@linuxidc:~$ locate vi | grep 'vi$' |xargs ls -al
    lrwxrwxrwx 1 root root   17 129 21:12 /etc/alternatives/vi -> /usr/bin/vim.tiny
    lrwxrwxrwx 1 root root   20 129 21:13 /usr/bin/vi -> /etc/alternatives/vi
    -rw-r--r-- 1 root root   59 1223  2015 /usr/lib/x86_64-linux-gnu/espeak-data/voices/asia/vi
    -rw-r--r-- 1 root root 1415 1111  2015 /usr/share/bash-completion/completions/ldapvi
    -rw-r--r-- 1 root root  475 421  2016 /var/lib/dpkg/alternatives/vi

    下面我们以Ubuntu14.04(Unity)安装完整版VIM(VIM-basic)为例:

    在终端输入以下命令,则会自动安装:

    sudo apt-get install vim

    自动安装完之后,可以使用以下命令进行查看:

    已经添加到系统

    update-alternatives --display vi

    查看版本

    vim --version

    VIM配置

    注:只对各个用户在自己的当前目录下的.vimrc修改的话,修改内容只对本用户有效,要想全部有效,可以修改/etc/vim/vimrc.

    在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。

    启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本,所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,即创建的命令为

    $vi ~/.vimrc

    设置完后 :x或者:x或者wq 进行保存退出即可。

    下面给出一个例子,其中列出了经常用到的设置,详细的设置信息请参照参考资料

    基本配置[1] [2]

    "开启语法高亮
    syntax on
    "依文件类型设置自动缩进
    filetype indent plugin on
     
    "显示当前的行号列号:
    set ruler
    "在状态栏显示正在输入的命令
    set showcmd
     
    "关闭/打开配对括号高亮
    "NoMatchParen
    DoMatchParen
    行号的显示与隐藏[3]:
    
    "显示行号:
    set number
    "为方便复制,用<F2>开启/关闭行号显示:
    nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR>

    启用Modeline(即允许被编辑的文件以注释的形式设置Vim选项,详见Vim Wiki: Modeline magic)[4]:

    set modeline

    如果终端使用的是深色背景:

    "为深色背景调整配色
    set background=dark

    插件管理

    下文的配置很多都依赖于第三方开发的 Vim 插件。为了方便地安装和维护这些插件,推荐先安装一种插件管理工具,目前较为流行的是 Vundle 和 pathogen。二者功能类似,但 Vundle 的配置更灵活, pathogen 则相对简洁。二者都能很好地与Git结合,安装插件十分方便。

    如果你使用 Git 管理你的配置文件,那么还可以将 Pathogen 或 Vundle 与 Git 的 Submodule 功能管理插件结合[5],使得在多台电脑间同步插件及在本地更新插件变得十分便捷。

    # 在存放配置文件的主文件夹下,添加一个 submodule
    git submodule add https://github.com/gmarik/vundle.git .vim/bundle/vundle
     
    # 用类似的办法添加多个插件后,以后升级插件只需:
    git submodule update
     
    # 如果其它电脑 checkout 出配置文件后,要先:
    git submodule init

    插件管理工具无需通过系统的包管理系统安装,只要将需要的文件放在 ~/.vim/目录中即可。这样,一套配置文件也可以方便地用在多个不同的系统环境中。

    代码补全

    Vim 7已经内置了代码补全功能[6],补全操作可分为两种:

    关键字补全

    即简单地补全到文档中已有的词,快捷键为 Ctrl-N 或 Ctrl-P。

    智能补全

    Vim 7中引入 Omni Complete,可根据语义补全,快捷键为 Ctrl-X Ctrl-O。
    Vim的补全菜单操作方式与一般IDE的方式不同,可加入如下设置[7]:

    "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
    set completeopt+=longest
     
    "离开插入模式后自动关闭预览窗口
    autocmd InsertLeave * if pumvisible() == 0|pclose|endif
     
    "回车即选中当前项
    inoremap <expr> <CR>       pumvisible() ? "\<C-y>" : "\<CR>"
     
    "上下左右键的行为
    inoremap <expr> <Down>     pumvisible() ? "\<C-n>" : "\<Down>"
    inoremap <expr> <Up>       pumvisible() ? "\<C-p>" : "\<Up>"
    inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>"
    inoremap <expr> <PageUp>   pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"

    如需自动补全,可安装AutoComplPop插件,安装后如需在补全是显示文档(预览),可加入设置:

    let g:acp_completeoptPreview = 1

    注释管理

    经常要将一段代码注释掉或取消注释,而尤其对于某些只支持单行注释的语言来说,逐行加注释很麻烦,这时快速注释(或取消注释)代码的插件就显得很有用了。

    常见的注释管理插件为The NERD Commenter,默认支持多种语言,使用方法也很简单:只需在可视(V)模式中选择一段代码,按下\cc加逐行注释,\cu取消注释,\cm添加块注释。

    如有其它需求,也可考虑comments、EnhCommentify等插件。

    缩进

    使用自动缩进可能需要设置,vim中对自动缩进的详细设置办法见Vim代码缩进设置。

    在不同的模式中调整缩进的方法不同:

    插入模式

    Ctrl-T增加缩进,Ctrl-D减小缩进。

    命令模式

    >> 右缩进, << 左缩进,注意n<< 或 n>>是缩进多行,如4>>

    可视模式

    < 、 > 用于左右缩进, n< 、 n> 可做多节缩进,如 2> 。
    另外,= 可对选中的部分进行自动缩进;]p可以实现p的粘贴功能,并自动缩进。

    代码浏览与跳转

    代码跳转类似于IDE中的Ctrl+点击功能。与代码补全类似,代码浏览工具亦可分为基于文本分析的和基于代码理解的两类。

    简单代码跳转

    在命令模式下可直接使用下述指令:[8]

    跳转到定义

    gd到局部变量的定义,gD到全局变量的定义

    搜索
    *, # 可对光标处的词向前/向后做全词搜索,g*, g# 做相对应的非全词匹配搜索
    代码块首尾

    [[, ]] 可跳到当前代码块起始或结束的大括号处。

    括号首尾

    % 可在配对的括号、块首尾之前跳转。

    位置历史

    Ctrl-O 在历史记录中后台,Ctrl-I 则为前进。

    基于代码理解的跳转

    该功能依赖于ctags工具。[9]安装好ctags后,在存放代码的文件夹运行

    ctags -R .

    即可生成一个描述代码结构的tags文件。

    提示: ctags的功能很强大,更详细的配置请参考其文档。

    建议在~/.vimrc中添加如下配置以使Vim在父目录中寻找tags文件[10]:

    set tags=tags;/

    设置好后,可在Vim中使用如下功能:Ctrl-]转至最佳匹配的相应Tag,Ctrl-T返回上一个匹配。如果有多个匹配,g Ctrl-]可显示所有备选的tags。如有需要,可互换Ctrl-]和g Ctrl-] [11]:

    "在普通和可视模式中,将<c-]>与g<c-]>互换
    nnoremap <c-]> g<c-]>
    vnoremap <c-]> g<c-]>
     
    nnoremap g<c-]> <c-]>
    vnoremap g<c-]> <c-]>

    就地编译和错误处理

    使用:make可调用make命令编译程序,配合Vim内置的QuickFix功能,可以像IDE一样打开一个窗口展示编译错误和警告,通过它还可以方便地跳转到各编译错误的产生位置。

    常用的命令有:cw[indow](如有错误打开quickfix窗口)、:cn(跳到下一个错误)、:cp(跳到前一个错误)等,具体可:help quickfix。

    如果想在有错时自动打开quickfix窗口[12]:

    " 编译后,如有错误则打开quickfix窗口。(光标仍停留在源码窗口)
    "
    " 注意:需要开启netsting autocmd
    autocmd QuickFixCmdPost [^l]* nested cwindow
    autocmd QuickFixCmdPost    l* nested lwindow

    默认情况下,:mak[e]会跳转到第一个错误,如果不想启用这个功能,请使用:make!。

    代码折叠

    代码较长时可启用代码折叠功能,如按语法高亮元素折叠:

    set foldmethod=syntax
    "默认情况下不折叠
    set foldlevel=99

    随后即可使用z系列命令管理代码折叠。如za会翻转当前位置的折叠状态,zA会递归翻转当前层所有代码的折叠状态等。当然也可以把功能键映射到za:

     奥门新萄京官方正版 www.arianalance.com map <F3> za

    查看文档

    K 键可用于查看当前函数的文档。

    其它插件

    近来仍被积极维护的代码托管在 GitHub 上的插件[13]:

    1. Fugitive 让 Vim 更好地与 Git 整合。
    2. Powerline 炫丽实用的状态
    3. Tagbar 比 taglist 更现代的代码结构浏览工具
    4. The NERD tree 以树形结构浏览文件夹中的文件
    5. Syntastic 语法检查
    6. surround.vim 快速删除/修改光标周围配对的括号
      其它常用插件[14]:

    Project
    方便管理工程中的文件

    snipmate.vim
    在编辑中实现模板展开

    a.vim
    在.cpp/.h等文件对中跳转

    matchit.zip
    增强%的功能

    winmanager
    将文件管理窗口和taglist堆叠起来。

    Vim 8.0 释出  http://www.arianalance.com/Linux/2016-09/135178.htm

    Linux下编译安装Vim8.0  http://www.arianalance.com/Linux/2017-01/139210.htm

    Vim学习指南 http://www.arianalance.com/Linux/2013-08/89096.htm

    Vim编辑器配置 http://www.arianalance.com/Linux/2016-09/135460.htm

    Vim编辑器使用 http://www.arianalance.com/Linux/2016-09/135043.htm

    快速学会 Vi编辑器 http://www.arianalance.com/Linux/2013-08/88586.htm

    强大的Vim 编辑器 http://www.arianalance.com/Linux/2013-07/87544.htm

    Linux文本编辑器Vim的一般用法  http://www.arianalance.com/Linux/2016-11/137263.htm

    把Vim打造成优秀的C++ IDE  http://www.arianalance.com/Linux/2016-06/132262.htm

    Ubuntu 14.04升级Vim7.4到8.0  http://www.arianalance.com/Linux/2016-11/136816.htm

    Vim安装youcompleteme自动补全插件  http://www.arianalance.com/Linux/2016-11/137665.htm

    Linux Vim编辑器使用简单讲解  http://www.arianalance.com/Linux/2016-12/138930.htm

    本文永久更新链接地址http://www.arianalance.com/Linux/2017-01/139564.htm

    linux
    相关资讯       Vim配置  vim安装 
    本文评论   查看全部评论 (0)
    表情: 表情 姓名: 字数

           

    评论声明
    • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
    • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
    • 本站管理人员有权保留或删除其管辖留言中的任意内容
    • 本站有权在网站内转载或引用您的评论
    • 参与本评论即表明您已经阅读并接受上述条款