文档开发者中心
我的

谁说Vim不是IDE?(二)

关联阅读:谁说Vim不是IDE?(一)


环境配置


“如果你认为Vim只是一个文本编辑器,你就输了”——来自Vim老鸟


Vim以简洁的方式提供了丰富的配置功能,主要配置体系由一个文件和文件夹组成。在一台安装了Vim的OS X/Linux/Unix机器上,进入用户主目录,可以找到.vimrc文件和.vim文件夹,这就是Vim所有的配置信息。


(1).vimrc介绍


用户目录下的.vimrc文件就是Vim针对当前用户的主配置文件,该文件不是必备的,没有的话就创建它。文件位于当前用户的主目录下,可以用~/.vimrc找到,Vim启动时会自动运行文件中的每条命令。


通过.vimrc我们可以为Vim进行个性化配置,包括使用方式、显示风格、编写函数和运行插件等,.vimrc中所有的命令都可以在Vim运行时通过类似:comm args[=args1]的方式动态运行,即时生效。


以下是一个.vimrc的样例脚本,包含了一些常用配置,后面的注释是简要说明。


.vimrc的注释用双引号(')表示 ,样例中的大括号仅表示功能区,属于注释的一部分,无其他含义
.vimrc的配置非常丰富,可以定义各种宏、函数、插件和映射,我见过最长的.vimrc配置有1000多行,这里的示例比较简单,适合入门级用户


syn on '语法支持


'common conf {{ 通用配置

set ai '自动缩进

set bs=2 '在insert模式下用退格键删除

set showmatch '代码匹配

set laststatus=2 '总是显示状态行

set expandtab '以下三个配置配合使用,设置tab和缩进空格数

set shiftwidth=4

set tabstop=4

set cursorline '为光标所在行加下划线

set number '显示行号

set autoread '文件在Vim之外修改过,自动重新读入


set ignorecase '检索时忽略大小写

set fileencodings=uft-8,gbk '使用utf-8或gbk打开文件

set hls '检索时高亮显示匹配项

set helplang=cn '帮助系统设置为中文

set foldmethod=syntax '代码折叠

'}}


'conf for tabs, 为标签页进行的配置,通过ctrl h/l切换标签等

let mapleader = ','

nnoremap <C-l> gt

nnoremap <C-h> gT

nnoremap <leader>t : tabe<CR>


'conf for plugins {{ 插件相关的配置

'状态栏的配置

'powerline{

set guifont=PowerlineSymbols\ for\ Powerline

set nocompatible

set t_Co=256

let g:Powerline_symbols = 'fancy'

'}

'pathogen是Vim用来管理插件的插件

'pathogen{

call pathogen#infect()

'}


'}}



(2).vim文件夹


.vim是Vim的主配置文件夹,位于当前用户的主目录下,可以用cd ~/.vim进入。该文件夹一般用来放置插件和相关的帮助文档,常用的目录结构包括:


doc //帮助文档目录 autoload //Vim启动时自动加载的插件目录 plugin //插件目录,一般在使用Vim时通过命令呼出


当然,如果你已经安装了足够多插件,那么这个目录下就会变得五花八门,syntax、snippets、indent等文件夹都会冒出来了。一个插件所包含的文件往往会分布在多个文件夹下,管理起来比较麻烦,稍后我们会介绍一个管理插件的插件,让这个目录变得干净整洁,容易管理,这个插件的名字叫pathogen!


在Vim中输入命令:help,即可进入帮助页面,默认是英文帮助,如果你喜欢看中文,可以通过以下方式安装中文帮助内容:


  1. 下载中文帮助的文件压缩包


  2. 解压,把doc目录下的文件复制到~/.vim/doc下


  3. 确认在.vimrc中设置了set helplang=cn


  4. 输入命令:help即可进入中文帮助


基本概念


下面我们来介绍一下Vim中的几个基本概念:Buffer、Window和Tab-page。


  1. Buffer:使用Vim打开的文件都会被加载到内存中,在内存中我们使用Buffer来描述被编辑的文件,一个Buffer对应一个被编辑的文件副本。当我们在完成了一个Buffer的编辑后就可以保存该文件。Buffer不仅包含了文件的内容,也记录了该文件的编辑状态等配置信息,比如激活、隐藏、上次编辑行数等,具体可以查阅帮助文档。


    用Vim可以打开多个文件同时编辑,也可以把不需要的文件关掉,但这时文件副本依然保存在缓冲区中,我们可以通过 :ls或:buffers查看这些Buffer,还可以通过类似:buffer n的方式重新打开文件(n表示Buffer的序号)。当然,我们有更好的方式来处理这些Buffer,那就是CommandTBuffer,要想使用CommandTBuffer,先要安装CommandT插件,请大家记住这个插件的名字,稍后介绍。


  2. Window:是对应Buffer的一个展示窗口。一个Buffer可以对应多个窗口,比如我们可以通过:split filename或:vsplit filename命令在多个窗口打开一个文件,当修改某一个窗口的文件是,其他窗口都会同步更新。当然我们也可以在多个窗口打开多个文件,编辑后用:wq保存退出,但是记住,只要没有最终退出Vim进程,那么这些打开的文件Buffer依然保存在缓存区中,可以随时再次打开。


  3. Tab-page:Tab-page就比较容易理解,对应一组窗口,我们可以通过`:tabedit filename`在另一个标签页中打开一个文件,在这个标签页中又可以打开多个窗口。


理解了这三个概念和三者之间的关系,对我们用好Vim有非常大的帮助。


待续,下一篇是Vim的插件篇......


本文转自博客园,作者:池建强

原链接:

点赞
收藏
回复
4
分享
举报
浏览3846 发布于2019-10-11 02:51未知归属地
全部评论
最多点赞
最新发布
最早发布

哈哈哈哈就是啊,谁说vim不是ide呢

2楼回复于2019-10-16 01:24 未知归属地

文章很不错,期待后续的分享

1楼回复于2019-10-11 08:41 未知归属地
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。