# MyVimConfig **Repository Path**: xiexie1993/MyVimConfig ## Basic Information - **Project Name**: MyVimConfig - **Description**: 自己在Windows、Linux下的vim、Neovim定制化配置、和基于SpaceVim的自定义配置文件统一管理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-03-06 - **Last Updated**: 2022-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 我的Vim配置 ## 一、概述 ### 1、 目的阐述 + 为搭建Windows的Vim编辑器的依据与指导。 + 为搭建Windows的neoim编辑器的依据与指导。 + 为搭建Linux的Vim编辑器的依据与指导。 + 为搭建Linux的neovim编辑器的依据与指导。 ### 2、 读者对象 + 有意向使用Vim的读者; ### 3、 注意事项 + 该文档采用 markdown 编写规范,建议使用markdownPad查看和修改 ## 二、安装步骤 #### 1、 目录结构 ``` ./ ├── vimrc 自己定制化的适配window、Archlinux的vim、gvim、neovim配置文件 ├── MySpaceVim 基于SpaceVim自己的私人定制化vim与nevim的配置 ├── ideavim 自己定制化的适配WIndows下的IntelliJIDEA的vim插件的vim配置文件 ├── tools_bin windows需要的命令行工具(ctags、fzf、ripgrep) └── README.md 自述文件 ``` #### 2、 运行环境 + Windows7及以上 + Archlinux #### 3、 安装步骤 ##### Windows安装neovim + 资源 项目Github地址:https://github.com/neovim/neovim/wiki/Installing-Neovim github安装包地址(https://github.com/neovim/neovim/releases) + 安装 点击nvim-win64.zip,下载。 解压安装包,放入适合的文件中,比如 D:\Editor中。 双击 nvim-qt.exe。 + 后续操作 将neovim所在文件夹( 如D:\Editor\Neovim\bin)加入环境变量 在C:\Users\用户名\AppData\Local\nvim中创建init.vim文件,相当于vim中的vimrc文件。 如果你的neovim中有Python写的plugins,那么就要安装neovim Python module。 方法:控制台输入pip install neovim,在neovim的init.vim中加入 ``` let g:python3_host_prog='C:/Users/foo/Envs/neovim3/Scripts/python.exe' let g:python_host_prog='C:/Users/foo/Envs/neovim/Scripts/python.exe' ``` ### vim支持python3设置 + windows的neovim支持python3 安装python3 pip 并加入系统环境配置 安装pip install neovim pynvim > 注意:python 版本和nvim是32位或64位的两者需得一致,要么都是32位要么都是64位。 + 安装python + 安装pip ``` curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本 python get-pip.py # 运行安装脚本 ``` + 查看pip 安装模块 ``` pip list ``` + [windows下用怎样才能使vim支持python语言?](https://www.zhihu.com/question/282824381) ### Linux下vim不覆盖vim,nvim配置文件与SpaceVim共存方法 1. 手动安装SpaceVim(其实是手动下载SpaceVim的配置文件) ``` git clone https://github.com/SpaceVim/SpaceVim.git ~/.SpaceVim ``` 2. 使用打开vim或nvim命令时加特别参数 ``` vim -u ~/.SpaceVim/vimrc nvim -u ~/.SpaceVim/vimrc ``` 3. 建立命令名称别名,进行命令简化(在~/.bashrc) ``` alias svim='vim -u ~/.SpaceVim/vimrc' alias snvim='nvim -u ~/.SpaceVim/vimrc' ``` > 注:zsh 可使用函数写法(~/.zshrc 最后加入) ``` svim(){ vim -u ~/.SpaceVim/vimrc } snvim(){ nvim -u ~/.SpaceVim/vimrc } ``` > 重载配置文件, ``` source ~/.bashrc 或 ource ~/.zshrc ``` > 执行之后,即可使用svim 或 snvim 命令打开使用SpaceVim配置文件的Vim或Nvim > 参考资料 + [SpaceVim和Vim共存](https://www.jianshu.com/p/7c03fab61c4d) ### Window下Vim,gVim不覆盖原配置文件与SpaceVim共存方法 1. 手动安装SpaceVim(其实是手动下载SpaceVim的配置文件) ``` git clone https://github.com/SpaceVim/SpaceVim.git ~/.SpaceVim ``` 2. 使用打开vim命令时加特别参数 ``` vim -u ~/.SpaceVim/vimrc gvim -u ~/.SpaceVim/vimrc ``` > 注: nvim 也可用,但是nvim的gui是nvim-qt 没有-u操作无法使用此方法,需将vim,或gvim加入环境变量,如果你是直接解压可执行包运行时,没将其加入系统环境变量时请写绝对地址,如: D:\givim\gvim.exe -u ~/.SpaceVim/vimrc 3. 建立命令名称别名,进行命令简化(使用 bat脚本) ``` 建立 svim.bat内中内容如下 @echo off vim -u ~/.SpaceVim/vimrc 建立 sgvim.bat内中内容如下 @echo off gvim -u ~/.SpaceVim/vimrc 然后将其放置在一个文件夹内,并将其加入系统环境变量,即可在cmd 即终端中 输入 svim或sgvim打开 ``` ### Windows下源码编译gvim加特性 0. 查看是否有python3环境依赖 方式一:系统终端输入 gvim --version 方式二:gvim命令模式下输入:echo has('python3'),返回结果如果是1代表有,0代表没有 1. 编译环境 gcc++ 搜索“mingw gcc”,选择第一搜索结果,并点击下方红色方框内的蓝色字体内容“download/installer”,下载mingw;网页会跳转到下载链接,看下下载倒计时就说明已经在下载了。 点击下载好的MinGW文件“mingw-get-setup.exe”,安装完成后,打开安装的软件,在左侧选择Basic Setup,然后在右侧选择需安装的编译器,比如mingw32-gcc-g++,鼠标右键点击Mark for Installation,然后点击左上角的Installation按钮,选择Apply Changes,弹出对话框点击Apply,安装对应的编辑器 查看安装是否成功,在软件上点击刚才安装的编译器,在Installed Files栏有安装信息,说明安装成功。 配置gcc编译器,进入刚才安装MinGW的路径下,复制bin路径,我这里安装的是D:\MinGW\bin 查看系统属性,选择系统高级系统设置,并选择高级,点击环境变量,在系统变量下选择Path,编辑,添加刚才复制的内容,添加之前,在末尾需要输入英文分号“;”,点击确定,配置系统环境变量完成。 打开cmd,输入gcc -v,显示gcc的版本号,说明gcc配置成功。 2. 下载vim源码 git clone https://github.com/vim/vim.git > 注: github国内速度太慢,可以先用gitee拷贝github项目,再从gitee上下载 3. 编译源文件 打开 MinGW 命令窗口 (C:\MinGW\open_distro_window.bat),cd 到 vim 源代码的 src 目录,执行以下命令: ``` make -f Make_ming.mak GUI=yes FEATURES=HUGE MBYTE=yes IME=yes GIME=yes DYNAMIC_IME=yes OLE=yes PYTHON="C:\Python27" DYNAMIC_PYTHON=yes PYTHON_VER=27 CSCOPE=yes DEBUG=no LUA="C:\Lua" DYNAMIC_LUA=yes LUA_VER=52 USERNAME=keelii USERDOMAIN=keeliizhou@gmail.com ARCH=x86-64 gvim.exe ``` > 注意:系统安装 python 到哪里,根据自己的情况选择。其它编译语言也大同小异 如果编译成功的话不会有错误提示,并在当前目录生成 gvim.exe, 这个 exe 就是我们需要的带有 lua 支持的 vim 可执行文件,把这个文件和 C:\lua\lua.dll 复制到你的 vim runtime文件夹,这时候就可以把 runtime 重命名一个放到其它你想要的目录,点击 gvim.exe 就可以了 第一次执行 vim 需要先注册一下,出现弹窗口点确定就行了。 进入命令模式,输出 echo has("python3") 来验证下是否已开启支持,如果显示 1 就说明 OK 了 + 过程中遇到的问题 + 安装好MinGW后,发现没有在bin文件夹下没有make命令, 在MinGW中make是叫做mingw32-make.exe,但是发现bin文件夹中仍然没有。 原来mingw32-make.exe默认是没有安装的,所以需要我们自己安装,方法很简单: 打开MinGW Installation Manager,位置是在MinGW\libexec\mingw-get, 打开后就发现它列出了很多package, 在其中找到mingw32-make,然后点击左边的小框,这是会弹出菜单,选择“Mark for Installation”, 然后在点击左上角的Installation选择Apply Changes, 在弹出的对话框中点击“Apply”就可以进行安装了,完成后就会发现在bin文件夹中多了一个mingw32-make。 + 安装mingw发现bin目录下没有mingw32-make.exe怎么办? 到mingw根目录的bin下面去,然后在该路径下打开命令行,然后输入命令:“mingw-get install gcc g++ mingw32-make”。 然后进入mingw安装目录下的bin,将mingw32-make.exe 重命名为make.exe > 参考资料 + [windows环境下安装MinGW 配置gcc编译器](https://jingyan.baidu.com/article/90895e0f3cf92c64ec6b0b01.html) + [Windows 下使用 MinGW 编译安装 (g)vim 添加 lua 等编程语言支持](https://keelii.com/2016/06/14/compile-vim-on-windows-with-lua-support/) + [windows下编译vim(gvim)并加入python2.6和3.1支持](https://www.vimer.cn/2010/04/29/windowsxia-bian-yi-vim-gvim-bing-jia-ru-python2-6he-3-1zhi-chi/) + [MinGW图形安装界面里面没有mingw32 make.exe解决办法](https://blog.csdn.net/qq_35203425/article/details/102839390?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task) + [Windows下载mingw安装器安装gcc/make组件](https://blog.csdn.net/fuyanhuangyan/article/details/78671042?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task) ### Linux下源码编译安装vim + Archlinux ``` sudo pacman -Suy git clone https://github.com/vim/vim cd ./vim .configure sudo make install ``` + CentOS7.4 1. 更新源 ``` sudo yum update sudo yum upgrape ``` 2. 安装依赖 ``` yum install libXt-devel gtk2-devel yum -y install python-devel ruby ruby-devel perl perl-devel perl-ExtUtils-Embed yum install ncurses-devel yum install ctags ``` 3. 源码编译安装需要依赖python3 ``` wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgza 下载Python-3.7.3.tgz tar -zxv -f Python-3.7.3.tgz cd Python-3.7.3 ./configure --prefix=/usr/local/python3 --enable-shared make sudo make install sudo cp libpython3.7m.so.1.0 /usr/lib64 ``` 4. 源码编译安装vim ``` git clone https://github.com/vim/vim.git cd vim ./configure --disable-selinux --enable-perlinterp=yes --enable-python3interp=yes --with-python-config-dir=/usr/local/python3/lib/python3.7/config-3.7m-x86_64-linux-gnu --enable-rubyinterp=yes --enable-cscope --enable-gui=auto --with-features=huge --enable-multibyte --enable-xim --with-x --with-gnome --with-compiledby="Steven Zhang" --prefix=/usr/local/vim8 make sudo make install sudo ln -s /usr/local/vim8/bin/vim /usr/bin/vim ``` ``` 列举一些 ./configure 后面的配置选项 需要啥自己添加 --with-features=huge:支持最大特性 --enable-multibyte:打开多字节支持,可以在Vim中输入中文 --enable-rubyinterp:打开对ruby编写的插件的支持 --enable-pythoninterp:打开对python编写的插件的支持 --with-python-config-dir=/usr/lib64/python2.7/config 指定python路径(此处是腾讯云CentOS7.4的python2路径) --enable-python3interp:打开对python3编写的插件的支持 --with-python-config-dir=/usr/local/python3.7/lib/python3.7/config-3.7m-x86_64-linux-gnu 指定python3路径(此处是我指定位置安装python3后的路径,CentOS编译安装python3.7.0) --enable-perlinterp:打开对perl编写的插件的支持 --enable-luainterp:打开对lua编写的插件的支持 --enable-gui=gtk2:gtk2支持,也可以使用gnome,表示生成gvim --enable-cscope:打开对cscope的支持 --prefix=/usr/local/vim:指定将要安装到的路径(自行创建) ``` > 参考资料 + [Linux 下源码编译安装 vim 8.1](https://www.jianshu.com/p/48749100614d) + [vim8.1 安装与配置(CentOS7)](https://blog.csdn.net/zs376957686/article/details/77833953) + [linux下安装python3.7.3](https://www.cnblogs.com/chuang0104/p/11454194.html) + [python3.7: error while loading shared libraries: l-何全-51CTO博客](https://blog.51cto.com/hequan/2165075) + [CentOS7上安装升级Vim8 - enumx - 博客园](https://www.cnblogs.com/enumx/p/12306029.html) ### Windows下安装IntelliJIDEA的Vim插件 + 安装ideavim 安装的部分打开:文件/File->设置/Settings->插件/Plugins->浏览依赖->搜索vim安装,重启IDE即可。 ideavim插件的配置通常是~/.ideavimrc,所以将自己的配置脚本写在对应的文件中即可。当然如果你已经有了自己的vim配置文件在~/.vimrc下,那只需要在ideavim的配置文件中添加一行命令即可全部读取映射过来 > macOs或Linux的路径为:~/.ideavimrc > Windows的路径为:C:\Users\\_ideavimrc,如果配置文件不存在,只需在相应路径下手动创建即可。 ``` source ~/.vimrc ``` > 当然,只支持部分vimrc的参数,所以并不是所有的vimrc中的配置都会生效 > 快捷键冲突可以通过 "File | Settings | Vim Emulation", "File | Settings | Keymap" 或者通过配置 ~/.ideavimrc 进行安检映射进行解决。 + 使用逻辑 在idea中,任何目录选项上的点击操作,工具栏上的按钮都会被映射为一个action。即点击对应的按钮或者选项,执行相应的action。理解很简单,这就是MVC的思想,比如springmvc, 一个访问路径映射为一个控制器中的方法这样子。 明白action映射这一点很重要。因为ideavim的插件支持使用vim命令执行对应的action。所以,这个设计逻辑就打通了vim和idea的交互,使得我们可以在vim中完成所有和idea相关的操作。 + 常规操作 vim的定位是文本编辑。所以在idea中一般情况下vim快捷键和命令生效的基本条件就是当前窗口焦点在编辑区。这是最基础的条件,如果你当前的快键键在Project或者Run这些侧边栏中,按vim的命令肯定是不会生效的。 明白了基本条件,那我们要做的第一件事也是最重要的事情就是在idea中,如何快速的将焦点回到的编辑区。答案是:Esc键 这应该是使用vim的人最能接受的快捷键了。所以,到这里基本的操作思路就很明确,当前的焦点要么在编辑区外,要么在编辑区内。而返回编辑区的操作很简单,就是Esc。当焦点在编辑区的时候,就可以随心所欲的使用vim的指令和快捷键了。 + 在vim中执行idea的action 为了执行idea中的action,ideavim有两个额外的命令来支持这一操作。 ``` :actionlist [pattern] :action {actionName} ``` > 第一个命令actionlist是帮助查看idea中有哪些命令。 > 第二个命令是执行对应的action这样子。 > 有了这两个命令的帮助我们就可以在ideavim的配置文件中使用map命令来映射idea的action到vim的快捷键中。 > 参考资料 + [IdeaVim键盘流](https://blog.csdn.net/zxs9999/article/details/82757361) ## 参考资料 + [在 Vim 中使用 Git 的插件: Fugitive](http://www.gnailuy.com/linux/2014/12/13/using-git-in-vim-with-fugitive/) + [vim比较目录diff](https://blog.csdn.net/littlewhite1989/article/details/45312081) + [nerdtree-git-plugin插件](https://github.com/Xuyuanp/nerdtree-git-plugin) + [每日vim插件--显示git diff:GitGutter.vim](http://ju.outofmemory.cn/entry/72482) + [DirDiff](https://www.vim.org/scripts/script.php?script_id=102 ) + [will133/vim-dirdiff](https://github.com/will133/vim-dirdiff) + [如何 使用vim的 session和viminfo 恢复上一次工作的环境??](https://www.cnblogs.com/bkylee/p/6692152.html) + [Linux 桌面玩家指南:02. 以最简洁的方式打造实用的 Vim 环境](https://www.haowuliaoa.com/article/info/247103.html) + [VIM 配置](https://www.jianshu.com/p/9536ec0d59a3) + [Neovim 配置](https://www.jianshu.com/p/88dd20795263) + [IdeaVim 进阶配置](https://www.jianshu.com/p/ddd56ceeb83d) + [VsVim 配置](https://www.jianshu.com/p/805f598ddaf0)