前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vim定制化简介

Vim定制化简介

作者头像
双愚
发布2018-08-28 15:53:24
1.3K0
发布2018-08-28 15:53:24
举报
文章被收录于专栏:重庆的技术分享区

什么是Vim?

Vim是几乎所有Unix系统中都会存在的少数文本编辑器之一。虽然最初的学习曲线是不可避免的,但Vim的目标是成为一个高效的文本编辑器,并提供一个根据用户喜好可配置的插件系统。它还支持数百种编程语言和文件扩展名。

本指南详细介绍了Vim文本编辑器的配置,旨在帮助那些有兴趣根据个人喜好自己定制Vim的人。我将介绍一系列用于定制Vim执行某些任务和响应用户输入的方法,以及插件管理系统。

在完成本教程之后,您将对Vim编辑器进行微调,使其行为更加智能,并获得管理外部插件的机会。

开始之前

  1. 要完成本教程,必须基本了解如何在Vim环境中工作。读者应该熟悉使用Vim编辑文档的步骤。
  2. 完成本教程需要使用一个受限的用户帐户。如果您尚未创建一个服务器,请按照“ 安全服务器”指南中的步骤操作。

自定义您的Vim实例

可以基于每个用户自定义Vim,也可以设置配置以应用于系统范围。也可以集成这两个选项 - 在您希望某些设置应用于系统上的所有帐户,以及其他设置仅适用于您自己的用户帐户的情况下非常有用。

自定义全局vimrc文件

本节中的配置将应用于所有用户帐户的系统范围。

  1. 默认的Vim安装包将包含一个包含Vim核心全局设置的文件,名为vimrc。此文件将位于/etc/vim/vimrc或者etc/vimrc,取决于您的Linux发行版。 注意:在编辑未授予用户帐户读和/或写权限的文件时,必须在命令前加上前缀 sudo。
  2. 打开vimrc文件进行编辑。该文件在不同Linux发行版之间可能在语法上有所不同,但核心设置保持不变。在下面的文件中,显示了包含大量配置选项的段,可以自己进行配置。

/etc/vimrc文件

1 2 3 4 5 6 7 8

set showcmd› › " Show (partial) command in status line. set showmatch› › " Show matching brackets. set ignorecase›› " Do case insensitive matching set smartcase› › " Do smart case matching set incsearch› › " Incremental search set autowrite› › " Automatically save before commands like :next and :make set hidden›› " Hide buffers when they are abandoned set mouse=a› › " Enable mouse usage (all modes)

自定义本地.vimrc文件

本节中的配置仅适用于活动用户帐户。

创建.vimrc

  1. 在Vim的加载序列期间,它将自动检查当前用户的主目录中的.vimrc文件。此文件中指定的所有设置将覆盖任何先前加载的配置文件中明确矛盾的设置,在本例中是全局vimrc文件。

从Vim会话中,在主目录中创建.vimrc文件。以下内容包括大多数用户在任何情况下使用Vim时会发现有用的基本配置。您可以需要选择添加到个人.vimrc文件设置中。

〜/ .vimrc

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

" Set compatibility to Vim only. set nocompatible " Helps force plug-ins to load correctly when it is turned back on below. filetype off " Turn on syntax highlighting. syntax on " For plug-ins to load correctly. filetype plug-in indent on " Turn off modelines set modelines=0 " Automatically wrap text that extends beyond the screen length. set wrap " Vim's auto indentation feature does not work properly with text copied from outisde of Vim. Press the <F2> key to toggle paste mode on/off. nnoremap <F2> :set invpaste paste?<CR> imap <F2> <C-O>:set invpaste paste?<CR> set pastetoggle=<F2> " Uncomment below to set the max textwidth. Use a value corresponding to the width of your screen. " set textwidth=79 set formatoptions=tcqrn1 set tabstop=2 set shiftwidth=2 set softtabstop=2 set expandtab set noshiftround " Display 5 lines above/below the cursor when scrolling with a mouse. set scrolloff=5 " Fixes common backspace problems set backspace=indent,eol,start " Speed up scrolling in Vim set ttyfast " Status bar set laststatus=2 " Display options set showmode set showcmd " Highlight matching pairs of brackets. Use the '%' character to jump between them. set matchpairs+=<:> " Display different types of white spaces. set list set listchars=tab:›\ ,trail:•,extends:#,nbsp:. " Show line numbers set number " Set status line display set statusline=%F%m%r%h%w\ FORMAT=%{&ff}\ TYPE=%Y\ POS=%l,%v\ BUFFER=%n\ %{strftime('%c')} " Encoding set encoding=utf-8 " Highlight matching search patterns set hlsearch " Enable incremental search set incsearch " Include matching uppercase words with lowercase search term set ignorecase " Include only uppercase words with uppercase search term set smartcase " Store info from no more than 100 files at a time, 9999 lines of text, 100kb of data. Useful for copying large amounts of data between files. set viminfo='100,<9999,s100 " Map the <Space> key to toggle a selected fold opened/closed. nnoremap <silent> <Space> @=(foldlevel('.')?'za':"\<Space>")<CR> vnoremap <Space> zf " Automatically save and load folds autocmd BufWinLeave *.* mkview autocmd BufWinEnter *.* silent loadview"

集成插件

插件是一种定制Vim实例的强大方法; 他们可以授予您额外的功能,以帮助满足更具体的使用需求。

安装Vim-Plug插件管理器

安装和管理插件的最有效方法是使用插件管理工具。下面提供了安装Vim-Plug的说明。

1. 安装curl。

基于Fedora / RHEL

代码语言:txt
复制
sudo yum install curl

基于Debian

代码语言:txt
复制
sudo apt install curl

Arch Linux

sudo pacman -Syy curl

2. 创建安装目录,下载并从Github安装Vim-Plug

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

使用Vim-Plug 安装您的第一个插件

使用插件管理器可以自动安装和设置您选择添加的任何插件。

代码语言:txt
复制
1.创建一个单独的文件来管理您的插件,以及一个用于存储它们的新目录。

touch ~/.vimrc.plug mkdir ~/vimplug-plugins
代码语言:txt
复制
2. 在Vim编辑器中打开.vimrc并在底部添加以下文本以调用.vimrc.plug文件。

〜/ .vimrc
. . .  
" Call the .vimrc.plug file  
if filereadable(expand("~/.vimrc.plug"))      
  source ~/.vimrc.plug  
endif
代码语言:txt
复制
3. 现在,在Vim中打开.vimrc.plug文件。使用下面的内容填充文件以添加Fugitive Vim插件,即Github包装器。安装此插件后,您现在可以在Vim内运行Git终端!
注意需要在“plug#begin”和“plug#end”行之间添加要安装的任何其他插件。
〜/ .vimrc.plug
call plug#begin('~/.vim/plugged')  
"Fugitive Vim Github Wrapper 
Plug 'tpope/vim-fugitive'  

call plug#end()
注意
如果在此步骤之后您收到类似于E117 Unknown Function: plug#end检查用户权限的错误,
则~/.vim/可能需要chmod -R 0755
代码语言:txt
复制
4. 保存并关闭.vimrc.plug文件后,退出并重新启动Vim。最终安装过程是PlugInstall在命令模式下发出命令。这将在Vim中打开插件管理器并继续安装* vimrc.plug文件中列出的所有插件。安装的插件将在下次启动Vim时自动加载。

:PlugInstall
代码语言:txt
复制
5. 下面列出了通过Vim-Plug管理插件的附加命令。
代码语言:txt
复制
6. 上面列出的命令绝不是详尽无遗的。
大多数插件在安装时也提供支持文档,可以通过键入help命令模式和浏览
Local Additions部分来访问。

从哪里开始

其实存在许多其他的插件和工具来增强您的Vim体验。Vim官方网站和在线维基提供了自定义Vim以及完整记录其可用功能和命令的其他方法。如果需要创建.vimrc文件的可视化和交互式方法,Vim-Config网站将简化该过程并自动生成该文件。

搜索其他插件的最佳位置之一是在VimAwesome网站上。Vim可用的大多数插件都在一个组织良好且易于搜索的环境中,以及所有最流行的插件管理工具的安装说明。

最后,如果你想深入了解Vim-Plug,项目的Github页面是一个很好的起点。所有这些网站的链接都在“ 外部资源”部分中提供。

更多信息

有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部材料的准确性或及时性。

原文作者:Andrew Lescher

原文地址:https://www.linode.com/docs/tools-reference/tools/introduction-to-vim-customization/

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Vim?
  • 开始之前
  • 自定义您的Vim实例
    • 自定义全局vimrc文件
      • 自定义本地.vimrc文件
        • 创建.vimrc
      • 集成插件
        • 安装Vim-Plug插件管理器
        • 使用Vim-Plug 安装您的第一个插件
      • 从哪里开始
        • 更多信息
        相关产品与服务
        云服务器
        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档