前言:大家好,我是群里的小满同学,我是通过中国大学MOOC上的《零基础学Linux操作系统》这门课程入门linux的世界的,学习和使用linux一年多,收获了很多。下面来分享一下linux下的vim编辑器的相关内容。
vim是一个很强大的编辑器,被称为编辑器之神,我第一次和vim结缘还是在一台ubuntu的物理机上面,那是我第一次使用这个编辑器,当然初次体验很糟糕😂,我甚至不知道如何退出vim,弄得满头大汗。但是随着自己命令行使用越来越多,自己开始逐渐习惯vim的操作方式,vim成了我每天必定会使用的一个软件,我用它写日记,写代码,做一些文本操作。
我觉得vim最大的魅力就在于它和linux的命令行结合带来的独一无二的流畅体验,没错,在绝大多数情况下甚至不需要去触摸鼠标,手甚至不需要离开主键盘区,就可以使用简洁的命令完成绝大多数的文本编辑工作。
下面,我将从vim的开箱开始,向大家分享如何简单的配置vim,以及如何将配置持久化。阅读本文大约花费3分钟。
登录centos7 虚拟机
相比linux的桌面,我更喜欢朴实无华的终端,在这里使用ssh的方式登录centos7虚拟机。
安装vim
这是一台最小化安装的centos7,里面提供了一个vi程序,但是这个程序使用起来不太完整,比如说,它不支持最基本的语法高亮,不支持文本对象等等,所以先安装一下完整的vim,使用命令
sudo yum install vim
稍等片刻,安装好了之后,输入vim,启动程序
没有经过任何配置的vim,进入后便会出现上图的提示,从中可以看到我们安装的vim的版本号是7.4.629。这个版本相对来说比较旧了,现在最新的vim是8.2+的版本,在vim8以后,vim加入了许多高级特性,比如异步特性,还实现了内置终端等等。
除了vim8,在vim的发展中,vim家族还增添了一个新的成员,neovim。neovim是基于vim开发的新一代vim,不仅重构了vim的代码,同样支持异步特性,还支持浮动窗口等更新颖的特性。
配置vim
我准备了一段文本,用于接下来的演示,使用cat查看一下,是一段c语言的Hello world
使用vim编辑该文件,在终端下输入以下命令便可以进入vim
vim test.c
可以看到,vim已经默认打开了语法高亮。在《零基础学Linux操作系统》的vi介绍中,我们学习了一些vim的配置,首先进入底行命令模式,进行相关的配置
set nu "打开行号
set mouse=a "设置响应鼠标
colorscheme pablo "设置配色为pablo
经过一番配置,我们的vim变成了如下所示的模样,并且可以响应鼠标的操作
于是我们心满意足的退出了vim,但是当再打开时,发现先前的配置荡然无存,又回到了原先的vim,这是为何呢?😮
其实这是配置没有持久化的问题,vim的配置需要写入配置文件中才能长久生效,原理是在vim启动的时候会一行行加载配置文件,按照配置的内容进行配置。好,既然找到了问题所在,那我们就将配置写入配置文件即可。
vim的配置文件
首先进入vim,输入:version查看vim的信息
输出的信息很多,我们只看我们现在需要的,即红框标出来的部分,分别是vim的全局配置文件和用户配置文件,并且告诉了我们它们的位置。这里选择配置用户级别的配置文件进行编辑,在底行使用如下的命令:
:e $HOME/.vimrc 或者 :e ~/.vimrc
配置文件一般不存在,需要我们自行创建,这里我们将先前的配置写入文件中,保存。
重启vim或者在底行输入以下命令,便可以使配置生效,实现配置的持久化。
:source ~/.vimrc
常用的配置
下面是日常使用中的一些通用的配置,大家觉得不错的可以拿过去使用,加入.vimrc中即可生效
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 通用设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set vb t_vb= "关闭闪烁和响铃
set wrap "打开自动折行
set formatoptions+=mM "设置中文折行
set mouse=a "打开鼠标响应
set rnu "开启相对行号
set nocompatible " 设置不兼容原始vi模式
filetype on " 设置开启文件类型侦测
filetype plugin on " 设置加载对应文件类型的插件
set noeb " 关闭错误的提示
syntax enable " 开启语法高亮功能
syntax on " 自动语法高亮
set cmdheight=1 " 设置命令行的高度
set showcmd " select模式下显示选中的行数
set ruler " 总是显示光标位置
set laststatus=2 " 总是显示状态栏
set number " 开启行号显示
set cursorline " 高亮显示当前行
set whichwrap+=<,>,h,l " 设置光标键跨行
set ttimeoutlen=0 " 设置<ESC>键响应时间
set virtualedit=block,onemore " 允许光标出现在最后一个字符的后面
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 代码缩进和排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set autoindent " 设置自动缩进
set cindent " 设置使用C/C++语言的自动缩进方式
set cinoptions=g0,:0,N-s,(0 " 设置C/C++语言的具体缩进方式
set smartindent " 智能的选择对其方式
filetype indent on " 自适应不同语言的智能缩进
set expandtab " 将制表符扩展为空格
set tabstop=4 " 设置编辑时制表符占用空格数
set shiftwidth=4 " 设置格式化时制表符占用空格数
set softtabstop=4 " 设置4个空格为制表符
set smarttab " 在行和段开始处使用制表符
set nowrap " 禁止折行
set backspace=2 " 使用回车键正常处理indent,eol,start等
set sidescroll=10 " 设置向右滚动字符数
set nofoldenable " 禁用折叠代码
set splitbelow " 新窗口出现在下面
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 代码补全
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set wildmenu " vim自身命名行模式智能补全
set completeopt-=preview " 补全时不显示窗口,只显示补全列表
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set hlsearch " 高亮显示搜索结果
set incsearch " 开启实时搜索功能
set ignorecase " 搜索时大小写不敏感
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 缓存设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nobackup " 设置不备份
set noswapfile " 禁止生成临时文件
set autoread " 文件在vim之外修改过,自动重新读入
set autowrite " 设置自动保存
set confirm " 在处理未保存或只读文件的时候,弹出确认
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 编码设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set langmenu=zh_CN.UTF-8
set helplang=cn
set termencoding=utf-8
set encoding=utf8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
utf-8
set encoding=utf8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""