
正文
Ubuntu 18.04中的Vim编辑器的高级配置
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VIM (Unix及类Unix系统文本编辑器)
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是开源软件。
Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。
前言:
系统原生的Vim文本编辑器功能单一,作者介绍一种K-vim高级配置,具有代码补全等多项功能。本文是在原作者的基础上进行二次改进,原文地址:https://github.com/wklken/k-vim。
正文:

安装步骤注意:有些系统需要执行:sudo apt-get install vim #安装Vim编辑器后才能进行安装
1. clone 到本地
注意:有些系统需要执行:sudo apt-get install vim #安装Vim编辑器后才能进行安装
git clone https://github.com/wklken/k-vim.git
注意:如果未安装git,需要执行:sudo apt-get install git #安装git后才能进行安装,下载目录就是当前目录。
2. 安装依赖包
2.1 系统依赖 # ctags, ag(the_silver_searcher)
# ubuntu
sudo apt-get install ctags
sudo apt-get install build-essential cmake python-dev #编译YCM自动补全插件依赖
sudo apt-get install silversearcher-ag# centos
sudo yum install python-devel.x86_64
sudo yum groupinstall 'Development Tools'
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install the_silver_searcher
sudo yum install cmake# mac
brew install ctags
brew install the_silver_searcher
2.2 使用Python
sudo pip install flake8 yapf
注意:执行上面命令需要提前安装pip支持:
sudo apt-get update
sudo apt-get upgrade
# 安装Pip
sudo apt-get install python-pip
# 检查 pip 是否安装成功
pip -V
2.3 如果使用Javascript(不需要的跳过)
# 安装jshint和jslint,用于javascript语法检查
# 需要nodejs支持,各个系统安装见文档 https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager# ubuntu
sudo apt-get install nodejs npm
sudo npm install -g jslint
sudo npm install jshint -g
sudo npm install -g eslint eslint-plugin-standard eslint-plugin-promise eslint-config-standard eslint-plugin-import eslint-plugin-node eslint-plugin-html babel-eslint# mac
brew install node
npm install jshint -g
npm install jslint -g
npm install -g eslint eslint-plugin-standard eslint-plugin-promise eslint-config-standard eslint-plugin-import eslint-plugin-node eslint-plugin-html babel-eslint
3. 安装
进入目录, 执行安装
# 注意原先装过的童鞋, 重装时,不要到~/.vim下执行(这是软连接指向k-vim真是目录),必须到k-vim原生目录执行
# 会进入安装插件的列表,一安装是从github clone的,完全取决于网速, 之后会自动编译 YCM, 编译失败的话需要手动编译, 有问题见YCM文档
# 如果发现有插件安装失败 可以进入vim, 执行`:PlugInstall'cd k-vim/
sh -x install.sh
注意:执行安装时,如果已经将官方源换为国内源,需要改回官方源才能正常安装,否则会卡住不动,导致安装失败。
移除安装
执行命令:cd ~ && rm -rf .vim .vimrc .vimrc.bundles && cd -
检验安装
执行:vi hello.c
按“i”进入编辑模式,输入#include等函数将会出现自动补齐选项,按回车键选中。
注意:如果没有设定文件名,例如XX.c,将不会出现文件补齐,很容易理解。
插件
选择安装插件集合
编辑vimrc.bundles中
" more options: ['json', 'nginx', 'golang', 'ruby', 'less', 'json', ]
let g:bundle_groups=['python', 'javascript', 'markdown', 'html', 'css', 'tmux', 'beta']
选定集合后, 使用插件管理工具进行安装/更新
插件管理
使用 vim-plug 管理插件
vim-plug 常见问题: vim-plug faq / YCM timeout /YCM 国人在国内做的镜像
管理插件的命令
:PlugInstall install 安装插件
:PlugUpdate install or update 更新插件
:PlugClean remove plugin not in list 删除本地无用插件
:PlugUpgrade Upgrade vim-plug itself 升级本身
:PlugStatus Check the status of plugins 查看插件状态
插件列表
说明/演示/自定义快捷键等, 待处理
自定义快捷键
注意, 以下 ',' 代表<leader>
1. 可以自己修改vimrc中配置,决定是否开启鼠标set mouse-=a " 鼠标暂不启用, 键盘党....
set mouse=a " 开启鼠标2. 退出vim后,内容显示在终端屏幕, 可以用于查看和复制, 如果不需要可以关掉
好处:误删什么的,如果以前屏幕打开,可以找回....惨痛的经历set t_ti= t_te=3. 可以自己修改vimrc决定是否使用方向键进行上下左右移动,默认关闭,强迫自己用 hjkl,可以注解
hjkl 上下左右map <Left> <Nop>
map <Right> <Nop>
map <Up> <Nop>
map <Down> <Nop>4. 上排F功能键F1 废弃这个键,防止调出系统帮助
F2 set nu/nonu,行号开关,用于鼠标复制代码用
F3 set list/nolist,显示可打印字符开关
F4 set wrap/nowrap,换行开关
F5 set paste/nopaste,粘贴模式paste_mode开关,用于有格式的代码粘贴
F6 syntax on/off,语法开关,关闭语法可以加快大文件的展示F9 tagbar
F10 运行当前文件(quickrun)5. 分屏移动ctrl + j/k/h/l 进行上下左右窗口跳转,不需要ctrl+w+jkhl6. 搜索
<space> 空格,进入搜索状态
/ 同上
,/ 去除匹配高亮(交换了#/* 号键功能, 更符合直觉, 其实是离左手更近)
# 正向查找光标下的词
* 反向查找光标下的词优化搜索保证结果在屏幕中间7. tab操作
ctrl+t 新建一个tab(hjkl)
,th 切第1个tab
,tl 切最后一个tab
,tj 下一个tab
,tk 前一个tab,tn 下一个tab(next)
,tp 前一个tab(previous),td 关闭tab
,te tabedit
,tm tabm,1 切第1个tab
,2 切第2个tab
...
,9 切第9个tab
,0 切最后一个tab,tt 最近使用两个tab之间切换
(可修改配置位 ctrl+o, 但是ctrl+o/i为系统光标相关快捷键, 故不采用)8. buffer操作(不建议, 建议使用ctrlspace插件来操作)
[b 前一个buffer
]b 后一个buffer
<- 前一个buffer
-> 后一个buffer9. 按键修改
Y =y$ 复制到行尾
U =Ctrl-r
,sa select all,全选
gv 选中并高亮最后一次插入的内容
,v 选中段落
kj 代替<Esc>,不用到角落去按esc了,q :q,退出vim
,w :w, 保存当前文件ctrl+n 相对/绝对行号切换
<enter> normal模式下回车选中当前项更多细节优化:
1. j/k 对于换行展示移动更友好
2. HL 修改成 ^$, 更方便在同行移动
3. ; 修改成 : ,一键进入命令行模式,不需要按shift
4. 命令行模式 ctrl+a/e 到开始结尾
5. <和> 代码缩进后自动再次选中, 方便连续多次缩进, esc退出
6. 对py文件,保存自动去行尾空白,打开自动加行首代码
7. 'w!!'强制保存, 即使readonly
8. 去掉错误输入提示
9. 交换\`和', '能跳转到准确行列位置
10. python/ruby 等, 保存时自动去行尾空白
11. 统一所有分屏打开的操作位v/s[nerdtree/ctrlspace] (特殊ctrlp ctrl+v/x)
12. ',zz' 代码折叠toggle
13. python使用"""添加docstring会自动补全三引号
14. Python使用#进行注释时, 自动缩进








