配置统一环境,在不同平台得到一样的体验~
Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
Vim 模式
- 普通模式 在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。
- 插入模式 在这个模式中,大多数按键都会向文本缓冲区中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。 在插入模式中,可以按ESC键回到普通模式。
- 可视模式 这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的"文本对象"也能和移动命令一样用在这个模式中。
- 命令行模式 在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(":"键),搜索("/"和"?"键)或者过滤命令("!"键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
- 选择模式
- Ex 模式
vimrc 中 rc 含义
rc= RunCom =Run commands
"rc" 是取自 "runcom", 来自麻省理工学院在 1965 年发展的 CTSS系统。相关文献曾记载这一段话: '具有从档案中取出一系列命令来执行的功能;这称为 "run commands" 又称为 "runcom",而这种档案又称为一个 runcom (a runcom)。
不足之处
- 大文件读取速度很慢(可在vim.org下载并安装名为LargeFile的Script来优化)LargeFile
- 即使文件不大,如果有非常长的行的话,处理也会变慢(同上)
- vim自己的脚本语言处理速度不快,若是安插过多脚本包,引导速度会变慢。
- 存在类似Ctrl-1等不能被映射的键(限于某些字符终端的性能)
vim 配置信息都放在 .vimrc 中,包含基本信息、快捷键、插件、主题等信息,若有增删,可以直接编辑其文件内容。在新机器上的配置流程大致如下:
-
软链文件
ln -sf /path/to/.vimrc ~/.vimrc
-
安装插件管理工具
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
-
安装插件
vim ~/.vimrc :PlugInstall
插件会自动下载安装,直到提示 Finishing … Done 即完成安装。
-
删除插件
vim ~/.vimrc :PlugClean
将不需要的插件注释或者删除并执行删除命令即可。
在 .vimrc 配置文件中,配置了很多插件,但是有些插件还是需要单独配置。
vim-go
go 语言插件,安装后还需要很多 go 包才能正常工作。 这里需要提前配置好 GO PATH ,保证可用。
vim ~/.vimrc
:GoInstallBinaries
YouCompleteMe
用来自动完成,不需要手动做一些额外的配置。
-
安装依赖关系
apt install build-essential cmake python3-dev yum install gcc gcc-c++ make // equivalent of build-essential in CentOS.
-
编译
cd ~/.vim/plugged/YouCompleteMe # 编译,并加入 go 的支持 python3 install.py --go-completer
-
python3 not support error?
brew reinstall vim
-
YouCompleteMe unavailable: requires Vim compiled with Python (3.6+)
cd ~/.vim/plugged/youcompleteme sudo python3 ./install.py --all
git clone https://github.com/vim/vim.git
cd vim/src
./configure --prefix=/usr/local/vim-8.0
make && make install
./configure --prefix=/usr/local/vim-8.0 \
--enable-rubyinterp=yes \
--enable-python3interp=yes \
--with-python3-config-dir=/usr/lib/python3.6/ \
--enable-perlinterp=yes \
--enable-luainterp=yes \
--enable-gui=gtk2 \
--enable-cscope
mv /usr/bin/vim /usr/bin/vim7
mv /usr/bin/vi /usr/bin/vi7
# 添加新链接
ln -sf /usr/local/vim-8.0/bin/vim /usr/local/vim
ln -sf /usr/local/vim/bin/vim /usr/bin/vi
ln -sf /usr/local/vim/bin/vim /usr/bin/vim
# 添加环境变量