Ubuntu18.04下VIM安装及配置_ubuntu安装vim-程序员宅基地

技术标签: 脚本  配置  插件  VIM  编程工具  

2020/07/02更新:
前不久发现网上已经有了一个很屌的vim项目。感觉对不起自己这篇文章的几万浏览量诶
github上的vimplus项目。运行安装脚本一键下载安装。
https://github.com/chxuan/vimplus
效果如下:
在这里插入图片描述
在这里插入图片描述


作者:陈浩 更新日期:2018-09-21
1.安装VIM

	$sudo apt-get install vim

我的vim 已经是最新版 (2:8.0.1453-1ubuntu1)。

2.VIM主题scheme设置

	$vim .vimrc

在vimrc文件里添加如下信息即可设置主题:

colorscheme 主题插件名
例如:
colorscheme desert

在/usr/share/vim/vim80/color文件夹里,vim已经自带了十几种主题插件,选择一种即可:

blue.vim      desert.vim    koehler.vim  peachpuff.vim  slate.vim
darkblue.vim  elflord.vim   morning.vim  README.txt     torte.vim
default.vim   evening.vim   murphy.vim   ron.vim        zellner.vim
delek.vim     industry.vim  pablo.vim    shine.vim

也可以去github网站搜索下载主题插件文件,文件可放在~/.vim/color目录下,便于管理。
如下,我用vim脚本编写了一个可以随时间自动变换主题的配置(每小时自动换一个主题):

"把当前秒数转换成小时数
let hour=(localtime()/60/60%24)
if hour == 1
	colorscheme blue
elseif hour == 2
	colorscheme desert
elseif hour == 3
	colorscheme koehler
elseif hour == 4
	colorscheme peachpuff
elseif hour == 5
	colorscheme slate
elseif hour == 6
	colorscheme darkblue
elseif hour == 7
	colorscheme elford
elseif hour == 8
	colorscheme morning
elseif hour == 9
	colorscheme torte
elseif hour == 10
	colorscheme default
elseif hour == 11
	colorscheme evening
elseif hour == 12
	colorscheme murphy
elseif hour == 13
	colorscheme ron
elseif hour == 14
	colorscheme zellner
elseif hour == 15
	colorscheme delek
elseif hour == 16
	colorscheme industry
elseif hour == 17
	colorscheme pablo
elseif hour == 18
	colorscheme shine
elseif hour == 19
	colorscheme desert
elseif hour == 20
	colorscheme desert
elseif hour == 21
	colorscheme desert
elseif hour == 22
	colorscheme desert
elseif hour == 23
	colorscheme desert
elseif hour == 24
	colorscheme desert
endif

3.安装vim-plug 一种方便简洁的插件管理插件

终端输入如下命令:

	$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

此时终端会显示如下界面,

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 74331  100 74331    0     0   2549      0  0:00:29  0:00:29 --:--:--  5294

静静等待vim-plug下载成功。
vim-plug下载成功后,打开~/.vimrc,

	$vim ~/.vimrc

在vim配置文件.vimrc下加入如下配置字段:

call plug#begin('~/.vim/plugged')                                                               
	Plug 'junegunn/vim-plug'                                                                       
	"此处可以添加其他插件
	"Plug 'github网站上的其他vimscript插件'                                                             
call plug#end() 

添加配置后保存退出,再次打开vim,输入:

	:PlugInstall

出现如下界面:
在这里插入图片描述
静静等待插件安装完成。

4.安装Nedrtree

打开~/.vimrc,在之前添加的vim-plug配置信息内添加nedrtree插件信息如下:

call plug#begin('~/.vim/plugged')                                                        
	Plug 'junegunn/vim-plug'                                                                                                                       
	Plug 'scrooloose/nerdtree'                                                               
	Plug 'vim-scripts/taglist.vim'                                              
call plug#end() 

保存,输入:PlugInstall命令下载安装插件。
然后在.vimrc内添加nedrtree的配置字段如下:

"->NERDTree目录树插件---配置选项=====================================================         
let g:NERDTreeDirArrowExpandable = '▸'  "目录图标                                                                
let g:NERDTreeDirArrowCollapsible = '▾'
"autocmd vimenter * NERDTree                "自动打开目录树
"vim【无文件】也显示目录树 
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
"vim打开目录文件也显示目录树?
autocmd StdinReadPre * let s:std_in=1 
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene     | endif
"CRTL+N开关目录树
map <C-n> :NERDTreeToggle<CR>
"关闭最后一个文件,同时关闭目录树
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
"<-NERDTree目录树插件---配置选项===============================================================

界面效果如下:
在这里插入图片描述
CTRL+N实现nedrtree的打开和关闭,CRTL+WW实现左右界面跳转。

5.安装ctags软件+Targlist插件

终端下输入如下命令:

$sudo apt-get install ctags

安装ctags成功,然后用vim-plug安装Targlist插件,
打开~/.vimrc配置文件,在之前的vim-plug配置处添加Taglist插件配置信息如下:

call plug#begin('~/.vim/plugged')
Plug 'junegunn/vim-plug'
Plug 'scrooloose/nerdtree'
Plug 'vim-scripts/taglist.vim'
call plug#end()

保存,然后输入命令:PlugInstall。
等待Taglist安装完毕,继续在~/.vimrc文件内添加Taglist配置信息如下:

"->taglist浏览插件配置=========================================     
"taglist窗口显示在右侧,缺省为左侧     
let Tlist_Use_Right_Window=1    
"设置ctags路径"将taglist与ctags关联     
let Tlist_Ctags_Cmd = '/usr/bin/ctags'     
"启动vim后自动打开taglist窗口     
let Tlist_Auto_Open = 1     
"不同时显示多个文件的tag,只显示当前文件的     
"不同时显示多个文件的tag,仅显示一个     
let Tlist_Show_One_File = 1     
"taglist为最后一个窗口时,退出vim     
let Tlist_Exit_OnlyWindow = 1     
"let Tlist_Use_Right_Window =1     
"设置taglist窗口大小     
"let Tlist_WinHeight = 100     
"let Tlist_WinWidth = 40     
"设置taglist打开关闭的快捷键F8     
noremap <F8> :TlistToggle<CR>     
"更新ctags标签文件快捷键设置     
noremap <F6> :!ctags -R<CR>     
"<-taglist=========================================  

保存退出,再次用vim打开一个文件,界面效果如下:
在这里插入图片描述

2018/12/5 注:
上班后,办公都变成云端(CPU在远处集中管理,电脑只有显示屏)了。VIM也只有在远程登陆终端上使用了,=。=什么插件都用不了。
所以我放弃VIM了,文章以后也不更新了。现在使用的sourceinsight,自己下了个4.0.0.xx版本的,用起来真的爽的不要不要的—>强烈推荐
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42138566/article/details/82800451

智能推荐

前端开发之vue-grid-layout的使用和实例-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout

Power Apps-上传附件控件_powerapps点击按钮上传附件-程序员宅基地

文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件

C++ 面向对象(Object-Oriented)的特征 & 构造函数& 析构函数_"object(cnofd[\"ofdrender\"])十条"-程序员宅基地

文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"

修改node_modules源码,并保存,使用patch-package打补丁,git提交代码后,所有人可以用到修改后的_修改 node_modules-程序员宅基地

文章浏览阅读133次。删除node_modules,重新npm install看是否成功。在 package.json 文件中的 scripts 中加入。修改你的第三方库的bug等。然后目录会多出一个目录文件。_修改 node_modules

【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure-程序员宅基地

文章浏览阅读883次。【代码】【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure

整理5个优秀的微信小程序开源项目_微信小程序开源模板-程序员宅基地

文章浏览阅读1w次,点赞13次,收藏97次。整理5个优秀的微信小程序开源项目。收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。_微信小程序开源模板

随便推点

Centos7最简搭建NFS服务器_centos7 搭建nfs server-程序员宅基地

文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server

Springboot整合Mybatis-Plus使用总结(mybatis 坑补充)_mybaitis-plus ruledataobjectattributemapper' and '-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d

EECE 1080C / Programming for ECESummer 2022 Laboratory 4: Global Functions Practice_eece1080c-程序员宅基地

文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c

洛谷p4777 【模板】扩展中国剩余定理-程序员宅基地

文章浏览阅读53次。被同机房早就1年前就学过的东西我现在才学,wtcl。设要求的数为\(x\)。设当前处理到第\(k\)个同余式,设\(M = LCM ^ {k - 1} _ {i - 1}\) ,前\(k - 1\)个的通解就是\(x + i * M\)。那么其实第\(k\)个来说,其实就是求一个\(y\)使得\(x + y * M ≡ a_k(mod b_k)\)转化一下就是\(y * M ...

android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...-程序员宅基地

文章浏览阅读1.3k次。首先,问题是如何出现的?晚上复查代码,发现一个activity没有调用自己的ondestroy方法我表示非常的费解,于是我检查了下代码。发现再finish代码之后接了如下代码finish();System.exit(0);//这就是罪魁祸首为什么这样写会出现问题System.exit(0);////看一下函数的原型public static void exit (int code)//Added ..._android 手动杀死app,activity不执行ondestroy

SylixOS快问快答_select函数 导致堆栈溢出 sylixos-程序员宅基地

文章浏览阅读894次。Q: SylixOS 版权是什么形式, 是否分为<开发版税>和<运行时版税>.A: SylixOS 是开源并免费的操作系统, 支持 BSD/GPL 协议(GPL 版本暂未确定). 没有任何的运行时版税. 您可以用她来做任何 您喜欢做的项目. 也可以修改 SylixOS 的源代码, 不需要支付任何费用. 当然笔者希望您可以将使用 SylixOS 开发的项目 (不需要开源)或对 SylixOS 源码的修改及时告知笔者.需要指出: SylixOS 本身仅是笔者用来提升自己水平而开发的_select函数 导致堆栈溢出 sylixos

推荐文章

热门文章

相关标签