zoukankan      html  css  js  c++  java
  • vim配置

    vim配置

    前言

    vim和emacs是linux环境下的文本编辑利器,关于vim和emacs谁更优秀的话题从来没有断过,我在这里就不再评判了,vim是linux下的默认编辑器,学好了vim将会一生受用,我之前学vim是在网上找的一些资料,读博客之类的,使用了几年vim始终感觉没有什么大的进步,后来在vim官网看到vim书籍推荐,其中一本就是《vim实用技巧》,后来果断在京东上买了一本,除了宏相关的没怎么看以外,其他的都看了,加上自己的实际操作,感觉vim技术又上了一个层次,《vim实用技巧》是教会vimer怎么使用vim,使用vim写代码时,给vim装上一些插件,将会如虎添翼,后来我在网上找一些插件来安装,或者在github上搜索别人的vimrc,看别人装了什么插件,自己选择性的安装了一些,使用一段时间后感觉使用vim编辑代码就是一件非常愉快的事情,再加上我最近买的忍者二代机械键盘那简直写代码很带感啊,我最开始自己家的电脑上给vim装了很多插件,后来在公司又要重新搭建vim开发环境,感觉有点麻烦,后来又想有没有什么一键安装、部署之类的小程序,就可以傻瓜式的把开发环境给搭建起来不是很爽吗,vimplus就运运而生了,如果喜欢的朋友请不要吝啬,给个star,废话不多说,直接上安装步骤(个人博客也发表了《超级强大的vim配置(vimplus)》)。

    安装

    git clone https://github.com/chxuan/vimplus.git
    cd ./vimplus
    sudo ./install.sh

    现在vimplus支持ubuntu14.04之后的所有ubuntu 64位系列以及centos7 64位,运行install.sh脚本,你就可以一边喝咖啡,一遍看着屏幕刷刷刷的打印就安装部署好了开发环境了,整个过程大约持续40分钟,其中下载编译ycm耗费了大半时间,我有下载好了的YouCompleteMe.tar.gz,省得在github上去下载,很慢的,你懂的,若想要手动安装ycm,需要修改vimplus目录下的.vimrc文件。

    Plugin 'Valloric/MatchTagAlways'
    #Plugin 'Valloric/YouCompleteMe'
    Plugin 'docunext/closetag.vim'

    将ycm插件那行注释掉,不然还会再去下载ycm,ycm可以最后等vimplus执行完成后再安装~~,接下来需要手动编译ycm。

    cd ~
    mv YouCompleteMe.tar.gz ~/.vim/bundle/
    cd ~/.vim/bundle/
    tar -xvf YouCompleteMe.tar.gz
    cd YouCompleteMe
    ./install.py --clang-completer

    vimplus将自动安装一些软件,比如说。

    • vim
    • g++
    • ctags
    • cmake
    • python2
    • python3

    安装的插件我也部分列出来。

    配置YouCompleteMe

    到这一步,安装已经完成,你会发现~目录有两个文件,一个是vim的配置文件.vimrc,一个是YouCompleteMe的配置文件[.ycm_extra_conf.py][25],一般来说建立一个main.cpp来写C、C++程序来说是没有问题的,都会有语法补全,当你需要写一些项目并涉及到第三方库时,就需要更改[.ycm_extra_conf.py][26]了,具体步骤如下。

    1. 将.ycm_extra_conf.py拷贝的项目的根目录。
    2. 更改.ycm_extra_conf.py里面的flags变量,添加三方库路径和工程子目录路径。

    使用vim-devicons

    桌面版linux使用vim-devicons插件会出现乱码,需要设置终端字体为Droid Sans Mono for Powerline Nerd Font Complete,使用xshell等工具连接服务器linux的用户就没有必要使用vim-devicons了,可以在插件目录将vim-devicons目录删除,不然会导致NerdTree的缩进有问题。

    快捷键

    vim的插件需要设置好了快捷键才会发挥它的威力,有些插件的快捷键可以查看各自官网,有些快捷键我自己改过的,下面罗列部分插件的快捷键。

    • 显示目录树 <F3>
    • 显示函数、变量、宏定义等 <F4>
    • 显示静态代码分析结果 <F5>
    • .h .cpp 文件快速切换 <F2>
    • 转到申明 <, + u>
    • 转到定义 <, + i>
    • 打开包含文件 <, + o>
    • Buffer切换 <Ctrl + P/Ctrl + N>
    • 光标位置切换 <Ctrl + O/Ctrl + I>
    • 模糊搜索文件 <Ctrl + f>
    • Surround <ys{motion or text-object}{char}/cs{orig_char}{dest_char}/ds{char}>
    • 注释 <gcc/gcap/gc/,ca/,cA>
    • DirDiff :DirDiff <dir1> <dir2>
    • 重复 .
    • 改变主题 <F10/F9>

    部分特性截图

    语法补全

    YouCompleteMe就不用多说了,它通过clang编译器提供语法快速补全。

    文件搜索

    ctrlp提供文件搜索,支持模糊查询。

    vim-airline

    vim-airline提供漂亮的状态栏支持。

    vim-surround

    vim-commentary

    auto-pairs

    incsearch.vim

    vim-devicons



    vim-coloresque

    vim-dirdiff

    vim-startify

    Change the colorscheme

    兴趣是最好的老师,我的github地址:https://github.com/chxuan
  • 相关阅读:
    spring读取配置文件内容并自动注入
    xshell免费下载安装使用
    cas sso原理
    sql两列相除,保留n位小数
    mysql 报zone什么的错误
    mysql union出错: "Every derived table must have its own alias"
    mysql jdbc操作
    sql 对某列取值进行if判断
    Python深入:02浅拷贝深拷贝
    Python基础:22__slots__类属性
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5988544.html
Copyright © 2011-2022 走看看