可能是 Windows 下最漂亮的 Gvim 配置了

原文:https://keelii.github.io/2016/06/13/awsome-window-vimrc/

一直以来被称为编辑器之神的 vim 在 Windows 下很难发挥其强大的功能,本文从实用的角度阐述如何调校出一个比较好用的 vim

不过仍然要说明下,在众多 vim 构建版本中 Mac OS 平台的 MacVim 是我认为最好用的一个版本。由于自己公司主力用 Windows,又因笔者是一枚对编辑器颜值体验有要求的前端工程师, 所以才有了下文 ^!^

先说明下开发环境:

  • ThinkPad T450 (公司标配)

  • Windows 7 SP1 64bit 企业版

  • 编程语言 Javascript, HTML, CSS, NodeJS, Python

前言

本文旨在配置和使用 vim,并不适合太初级的 vim 用户,本文作者也不是 vim 死忠粉,经常混用 Webstrom 和 vim

开始

开始之前我们先看一眼 Windows 上安装 Gvim 的默认界面,我们将从这里开始一步步的学习和配置

gvim-default

配置 _vimrc

由于 vimrc 里面会有很多的配置项,为了避免混乱,我大概按自己的使用习惯分成了几个小组:

  • Startup - 编辑器启动时需要添加的一些配置

  • General - 通用配置

  • Lang & Encoding - 语言和编码

  • GUI - 界面

  • Format - 基本的代码格式

  • Keymap - 通用的快捷键

  • Plugin - 插件相关(包括和当前插件相关的配置和快捷键等)

  • Function - vimrc 里面用到的常用方法

Startup

" Startup {{{
filetype indent plugin on


" vim 文件折叠方式为 marker
augroup ft_vim
    au!

    au FileType vim setlocal foldmethod=marker
augroup END
" }}}

设置 vim 相关文件打开后默认折叠方式为 marker,约定俗成的用三个花括号注释包裹起来,这样在你打开配置文件的时候 vim 就会帮你折叠起来,配置文件看起来就简洁多了,如图:

vim-fold-config

General

" General {{{
set nocompatible
set nobackup
set noswapfile
set history=1024
set autochdir
set whichwrap=b,s,<,>,[,]
set nobomb
set backspace=indent,eol,start whichwrap+=<,>,[,]
" Vim 的默认寄存器和系统剪贴板共享
set clipboard+=unnamed
" 设置 alt 键不映射到菜单栏
set winaltkeys=no
" }}}

基本上一眼就能看出来这是些啥玩意,不过后面两项目我个人感觉比较好用:

clipboard+=unnamed 比如你在其它地方 copy 了一段文字回到 vim 里面可以粘贴进来

winaltkeys=no 一般 windows 下应用程序的 alt 是用来定位菜单栏目的快捷键,我们需要禁用它,因为我们后面很多设置都需要使用 alt,需要使用 alt 来定位菜单的情况很少

Lang & Encoding

" Lang & Encoding {{{
set fileencodings=utf-8,gbk2312,gbk,gb18030,cp936
set encoding=utf-8
set langmenu=zh_CN
let $LANG = 'en_US.UTF-8'
"language messages zh_CN.UTF-8
" }}}

vim 里面设置编码的地方很多,上面这些配置可以保证不会出现乱码,像文件菜单、vim默认语言建议设置成 en_US

GUI

" GUI {{{
colorscheme Tomorrow-Night

source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set cursorline
set hlsearch
set number
" 窗口大小
set lines=35 columns=140
" 分割出来的窗口位于当前窗口下边/右边
set splitbelow
set splitright
"不显示工具/菜单栏
set guioptions-=T
set guioptions-=m
set guioptions-=L
set guioptions-=r
set guioptions-=b
" 使用内置 tab 样式而不是 gui
set guioptions-=e
set nolist
" set listchars=tab:▶\ ,eol:¬,trail:·,extends:>,precedes:<
set guifont=Inconsolata:h12:cANSI
" }}}

编辑器配色建议使用 Tomorrow-Night,下载文件 copy 到 colors 目录即可

从上面的设置可以看出来,为了得到一个简洁漂亮的界面,我们去掉了菜单栏、各种滚动条、使用 vim 内置 tab 而不是 gvim 系统的 tab 样式,注意很多开发者喜欢显示不可见字符,比如:tab 制表符、换行符号、尾空格等。

我自己并不喜欢这样,因为这样只会使界面看起来更零乱,尤其是某插件纵向标尺

字体方面个人推荐 Inconsolata 这个在我看来是 Windows 平台最漂亮的等宽字体了

此时你的编辑器应该好看了很多:

more-beauty-vim

Format

" Format {{{
set autoindent
set smartindent
set tabstop=4
set expandtab
set softtabstop=4
set foldmethod=indent
syntax on
" }}}

这个设置容易引起争议,我自己是这么个设置,大家按个人喜好就行了,反正我是不建议使用 tab 的,对代码格式有强迫症的人一般都会设置 foldmethod=indent

Keymap

可以说快捷键是每个编辑器必备的功能,科学的设置快捷键能很大程度的提高效率。快捷键的设置要遵循一个规则:尽量不要修改系统默认配置的快捷键,非要设置的话选择好相应的模式

" Keymap {{{
let mapleader=","

nmap s :source $VIM/_vimrc
nmap e :e $VIM/_vimrc

map tn :tabnew
map tc :tabclose
map th :tabp
map tl :tabn

" 移动分割窗口
nmap  j
nmap  k
nmap  h
nmap  l

" 正常模式下 alt+j,k,h,l 调整分割窗口大小
nnoremap  :resize +5
nnoremap  :resize -5
nnoremap  :vertical resize -5
nnoremap  :vertical resize +5

" 插入模式移动光标 alt + 方向键
inoremap  
inoremap  
inoremap  
inoremap  

" IDE like delete
inoremap  bdei

nnoremap vv ^vg_
" 转换当前行为大写
inoremap  mzgUiw`za
" 命令模式下的行首尾
cnoremap  
cnoremap  

nnoremap  :setlocal number!
nnoremap w :set wrap!

imap  "+gP
vmap  "+y
vnoremap  d
vnoremap  "+y
vnoremap  "+y
imap         "+gP
map         "+gP
cmap         +
cmap         +

exe 'inoremap 
                    
                    

你可能感兴趣的:(vim,gvim)