0%

'打造自己ide-vim'

0x00 前言

入vim的坑已经许久,(不知道为什么这么钟爱vim)最近才发现我的工作效率远比sublime要低很多,所以,自己系统学一下vim,编写属于自己的配置文件

0x01 编译vim

参考:

1
2
3
4
git clone https://github.com/vim/vim.git
./configure --with-features=huge --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-perlinterp --with-python-config-dir=/usr/lib/python2.7/config/ --enable-gui=gtk2 --enable-cscope --prefix=/usr
make
make install

中,–enable-pythoninterp、–enable-rubyinterp、–enable-perlinterp、–enable-luainterp 等分别表示支持 ruby、python、perl、lua 编写的插件,–enable-gui=gtk2 表示生成采用 GNOME2 风格的 gvim,–enable-cscope 支持 cscope,–with-python-config-dir=/usr/lib/python2.7/config/ 指定 python 路径(先自行安装 python 的头文件 python-devel),这几个特性非常重要,影响后面各类插件的使用。注意,你得预先安装相关依赖库的头文件,python-devel、python3-devel、ruby-devel、lua-devel、libX11-devel、gtk-devel、gtk2-devel、gtk3-devel、ncurses-devel,如果缺失,源码构建过程虽不会报错,但最终生成的 vim 很可能缺失某些功能。构建完成后在 vim 中执行

1
:echo has('python')

若输出 1 则表示构建出的 vim 已支持 python,反之,0 则不支持

0x01 set用法

set可以设置一些选项

  • number 显示行号
  • numberwidth 行号的列宽
  • hlsearch 高亮查找
  • syntax enable 颜色激活
  • autowrite 自动保存
  • fileformat 设置文件格式(unix,dos)
  • autoindent 自动缩进
  • softtabstop tab缩进量
  • botright 控制分屏的行为

    0x02 特殊按键

0x02 按键映射

参考文章:

这是vim最高效的用法之一,可以自由的定义快捷键,下面记录几种映射方式:

  • 基本映射
  • 精准映射

    0x01 使用在插入模式使用精准映射

  • ctrl+q 退出

    1
    inoremap <c-q> <esc>:q
  • ctrl+s 保存

    1
    inoremap <c-s> <esc>:wi
  • ctrl+z 撤销

    1
    icoremap <c-z> <esc>:ui
  • ctrl+f 查找

    1
    icoremap <c-f> <esc>/
  • ctrl+k 向下交换一行

    1
    icoremap <c-j> <esc>ddpi
  • ctrl+i 向上交换一行

    1
    icoremap <c-k> <esc>kddpi
  • ctrl+j 光标移动到行首

    1
    icoremap <c-h> <esc>^i
  • ctrl+l 光标移动到行尾

    1
    icoremap <c-l> <esc>$i
  • ctrl 转到命令模式

    1
    icoremap <c> <esc>:
  • ctrl+- 缩小字体

  • ctrl++ 放大字体
  • f5 一键执行代码
    1.

    1
    icoremap <f5> <esc>:w!gnome-terminal --command="python %"<cr><cr>i

    2.

    1
    icoremap <F5>  <esc>:w<cr>:!echo "python "% > ~/.bash_history<cr><cr>:vertical botright term<cr><c-p><cr>
  • c-t 打开终端

    1
    noremap <c-t> vertical botright term

错误

  1. Indexer error: Exuberant Ctags not found in PATH.
    sudo apt-get install exuberant-ctags
  2. Cannot find color scheme ‘solarized’
    Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.
    cp ~/.vim/bundle/vim-colors-solarized/colors/solarized.vim ~/.vim/colors/
  3. Vim”UltiSnips requires py >= 2.7 or py3”
    sudo apt install python-dev
  4. The ycmd server SHUT DOWN (restart wit…the instructions in the documentation.
    ./install.py
    5.
    CMake Error in CMakeLists.txt:
    No CMAKE_CXX_COMPILER could be found.Tell CMake where to find the compiler by setting either the environment variable “CXX” or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH.
    参考博客:https://blog.csdn.net/ssj901217/article/details/80046204
    安装gcc、g++

    杂记

  • :echo和:echom的区别

    :echo命令 会打印输出,但是一旦你的脚本运行完毕,那些输出信息就会消失。使用:echom打印的信息 会保存下来,你可以执行:messages命令再次查看那些信息。

  • 注释用