最近有一款编辑器叫sublimeText 2比较流行,我也下载用了一下,确实很好看,自动完成,缩进功能什么的也比较齐全,插件也十分丰富。但用起来不是很顺手,最后还是回到了Gvim(Vim的GUI版本,除了一些GUI可以额外设置,颜色支持更多外基本与Vim没有区别)的怀抱,我并没有花很多时间去把玩ST2,没法评论那个更好,不过也许Gvim会更适合我。所以想写几篇博文记录下一路学习Gvim的过程。

  写在前面:

  (1)我用的是Gvim7.3_46,系统是win7

  (2)这一系列文章不会详细的介绍Vim的每一个命令的用法

  (3)我会尽量的配图,千言万语有时候真的没有一张图片来得直观

  (4)Gvim下载地址Gvim需要爬墙

  什么叫有感觉呢?最近看了很多相亲的帖子(没错,楼主也是大龄苦逼单身屌丝码农T-T)。经常某某会这样说:“我的要求不高,对方有感觉就好。”,这其实是一个很高的要求,类似于你希望微软为了让你写程序有感觉而推出一个量身打造的VS-For-You,当然你有足够的金钱也不是不可能的(这点和某些相亲情况类似)。话扯远了,我想说的是也许这辈子我们都无法找到一个真正有感觉的人,但这阵子我们完全就可以打造一个有感觉的Vim。

  顺眼的外表:

    按照上面的下载地址路安装完成之后,来看看我们素颜的Gvim姑娘

    

    而在Gvim安装的根目录下你可以看到一个这样的文件_vimrc,这个是Gvim的配置文件,未修改过的内容如下

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

  这是一些基本的配置和一个函数,暂时不用管这些。现在我们来看看Gvim外观的一些设置。

  首先是要说的是Gvim的设置大多是通过set [key]=[value]这个命令来实现。而Vim有三个基本的模式(正常模式,编辑模式,和底行模式)set命令需要在底行模式中执行,而进入底行命令需要在正常模式中按下:,这时候你就会在底部看见一个要求输入命令的行。

而正常模式是编辑模式和底行模式的转换层(编辑模式需要在正常模式中按下某些键,例如:i,I,a,A等等,进入),因为正常模式是Vim的默认模式,现在我们只需要按下:进入即可。

我们通过在底行模式下输入browse set可以看到当前的设置

此时当前窗口被分割成了两个部分,通过浏览上面窗口的内容我们可以知道当前Gvim的各个设置和每个设置控制的外观属性。

为了打造Gvim小姐,我们需要对以下几个设置进行更改。

guioptions:缩写是go 主要控制Gvim的图形外观,默认只是egmrLtT,每个字母的意义如下:
                e.(这个不知道)
                g.令Gvim的无法使用的菜单选项变为灰色
         m.显示菜单栏
         r.显示右边的下拉条L.当垂直分割窗口的时候显示左边的下拉条
t.(这个不知道)
T.显示工具栏

既然用Vim了那么我们可能基本上就不会再用到工具栏和菜单栏了,一切操作都应该以快捷键和命令完成,所以我们不需要这些设定。不需要菜单栏,不需要下拉条,不需要工具栏。只需要一个窗口就好。我们只需要简单的将go设置成空就行了,命令如下

:set go=

Gvim变成了下面这个样子

这个字体看起来不是很舒服,我们还需要对字体设定一下,这个选项是guifont,首先我们调出字体设置的页面,输入如下命令即可

:set guifont=*

命令成功执行后会弹出下面的对话框

我选择了如图所示的字体,点击确定后Gvim如下

 

我们还需要记录下当前字体的设置,然后将其写如配置文件中,这样就不用每次打开Gvim都要重新设定一下了。查看任意一个设置的当前值得命令为:set [key]?,所以查看当前字体设定的命令如下

:set guifont?

guifont的值会在当前输出

当编辑的时候我们不希望屏幕中间还有一个鼠标停在那里,只要如下设定即可达到目的

:set mousehide

这样当我们按下键盘的时候鼠标就会消失了

我们还需要设置一下Gvim的高和宽,最好是全屏,所以我们要设置一下Gvim的行数和列数

:set lines=150 columns=1000

这只是一个大概的设置,但是你应该设置一个超过当前行数和列数的值来保证Gvim窗口的最大化,因为之前我们已经设置了没有下拉条并且Gvim的默认设定会自动折行所以这样设置并没有问题,但你也可以使用下面这个命令来保证最大化到精切的行数和列数

au GUIEnter * simalt ~x

但是这个命令只能保存到配置文件中,因为这是一个响应Gvim打开的自动命令,就是在每次Gvim打开是模拟执行Windows最大化窗口的快捷键(Alt+空格+x)

下面来切换一下Gvim的主题,在Vim的根目录下有一个colors文件夹里面就存放了Vim的默认安装的主题,如下图

我们只需要输入:colo [ThemeName] 例如

:colo evening

此时Gvim的窗口如下

 

你也可以访问100个顶级Vim主题下载(需爬墙)获得,下载完成后解压出.vim后缀的文件放到colors文件夹下进入Vim中用:colo设定即可

最后我们要将这些配以一起写到前文提到的_vimrc中,这样每次Gvim启动我们就不需要再次设置了。最后的_vimrc文件如下

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
"无菜单工具条
set go=
"设置Gvim字体
set guifont=Consolas:h11:cANSI
"Gvim打开即进入全屏
au GUIEnter * simalt ~x
"设置主题
colo evening
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

gvim设置使用的更多相关文章

  1. GVIM设置背景颜色

    首先找到GVim的安装目录,在安装目录下你可以发现一个_vimrc文件,使用文本编辑器打开后在里面添加两行代码即可:代码如下set gfn=Courier_New:h14colorscheme tor ...

  2. gvim设置成不备份文件

    打开gVim,进入“编辑”-“启动设定” 在“behave mswin”下行位置添加 set nobackup 语句 退出并保存配置文件 :wq

  3. gvim设置字体和隐藏菜单栏工具栏

    liunx下面设置字体 set guifont=Monaco\ 注意空格的位置,其他写法不认哦! Windows下面设置 set guifont=Monaco:h 隐藏菜单栏 set guioptio ...

  4. GVIM 设置 vimrc

    set expandtab set nobackup set nosmartindent set noautoindent set ruler au BufRead,BufNewFile *.sv s ...

  5. gVim编辑器 操作篇

    gVim是一款强大的编辑器,可以满足大部分语言的编程需要.尤其是其自带的模板定制功能对于Verilog来说非常受用.然而gVim有很多操作是不同于其他编辑器的,这让很多初学者望而却步,因此,本文将gV ...

  6. spf13配置问题

    git clone https://github.com/spf13/spf13-vim.git tab是黑的色 加入这样一行就可以了set nolist if下的黑边在~/.vimrc里面吧inde ...

  7. windows下的vimrc

    很奇怪的事...不会解释 建议编译位置第一次设置为 map <F9> :call CR()<CR>func! CR()exec "w"exec " ...

  8. Linux命令总结大全,包含所有linux命令

    使用说明:此文档包含所有的Linux命令,只有你想不到的没有你看不到的,此文档共计10万余字,有8400多行,预计阅读时间差不多需要3个小时左右,所以要给大家说一说如何阅读此文档 为了方便大家阅读,我 ...

  9. 设置ISE/vivado中默认文本编辑器为gvim

    ise windows版,添加方式 ISE下点击菜单Edit -> Preferences -> Editor. 在Editor选项框里选择Custom,在Command line syn ...

随机推荐

  1. Requests库:python实现的简单易用的http库

    1.get请求: get(url, params, headers) 2.json 解析 3.content 获取二进制内容 4.headers 添加 5.post请求:post(url,data,h ...

  2. Multiplication Puzzle ZOJ - 1602

    Multiplication Puzzle ZOJ - 1602 传送门 The multiplication puzzle is played with a row of cards, each c ...

  3. POJ 3977 折半枚举

    链接: http://poj.org/problem?id=3977 题意: 给你n个数,n最大35,让你从中选几个数,不能选0个,使它们和的绝对值最小,如果有一样的,取个数最小的 思路: 子集个数共 ...

  4. 010---Django的模型层(2)

    确定模型关系: ''' Publish ---- Book 多对一:一个出版社对应多本书,在多的那张表添加关联字段 Book ---- Author 多对多:一个书对应多个作者,多个作者对应一本书 会 ...

  5. Android Html处理器通用类 HtmlUtil

    1.整体分析 1.1.首先看一下源代码,可以直接Copy. public class HtmlUtil { /** * 获取 html 中的纯文本 */ public static String Ht ...

  6. 9.3centos7安装python3 以及tab补全功能

    1.安装python3 1.1下载python源码包 网址:https://www.python.org/downloads/release/python-362/ 下载地址:https://www. ...

  7. android 事件传递机制

    有三个方法: dispatchTouchEvent onInterceptTouchEvent onTouchEvent 首先:A的dispatchTouchEvent-A的onInterceptTo ...

  8. 《Cracking the Coding Interview》——第13章:C和C++——题目3

    2014-04-25 19:42 题目:C++中虚函数的工作原理? 解法:虚函数表?细节呢?要是懂汇编我就能钻的再深点了.我试着写了点测大小.打印指针地址之类的代码,能起点管中窥豹的作用,从编译器的外 ...

  9. DOS程序员手册(十三)

    744页 在DPMI 1.0下,系统会修改并重新装载所有含选择符的段寄存器,并且将所有 含有要释放的选择符的寄存器清空为0. 客户程序绝不能修改或释放该功能分配的任何描述符.Int 31h.功能010 ...

  10. Python全栈工程师(异常(基础))

    ParisGabriel                每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰     Python人工智能从入门到精通 补充:包的相对导入 只对后两种导入方式有用 ...