windows下gvim终于搞得跟ubuntu下差不多了

由于工作原因,我很多事情不得不在windows下完成。我在ubuntu下用vim用上瘾了之后,在windows下也装了个gVim,这样我的很多习惯都能统一了。但是gVim有几个问题挺恶心的,我现在记下来以后或许用得着。

1、就是装了之后菜单栏的中文乱码。有一种方法是到安装目录里把中文的相关文件夹删了,只用英文菜单。后来我发现直接安装7.3.46这个版本,没有乱码的问题,用的挺好的。

2、一些小配置的问题,直接贴配置也不需要解释了。

1 set nu
2 set fileencodings=utf-8,GB2312
3 colorscheme desert
4 set shiftwidth=4
5 set tabstop=4

3、如何默认以tab的形式打开新文件而不是新窗口,并且可以用alt+n切换不同tab。这个搞定了就完全是ubuntu下的感觉了。

这个比较麻烦,容我细说:

要只以tab方式打开文件,其实就一个命令的问题:

gvim   --remote-tab-silent  filename 

这个在linux下很简单,在.bashrc下加上如下就不用每次敲了:

alias vim='gvim --remote-tab-silent' 
alias gvim='gvim --remote-tab-silent' 

但是在windows下就恶心很多了,你得去改注册表:

复制代码
windows 下要分2步:
 1) 双击时打开标签页 
             修改注册表:/HKEY_CLASSES_ROOT/Applications/gvim.exe/shell/edit/command的值 
             C:\Program Files\Vim\vim70\gvim.exe -p --remote-tab-silent "%1" 
    2)鼠标右键时打开标签页 
             打开注册表,添加以下项: 
            [HKEY_CLASSES_ROOT\*\]下添加Shell项      
            [HKEY_CLASSES_ROOT\*\Shell] 下添加Edit with &Vim项
            [HKEY_CLASSES_ROOT\*\Shell\Edit with &Vim] 添加command项
            [HKEY_CLASSES_ROOT\*\Shell\Edit with &Vim\command]修改默认值为"D:\Program Files\Vim\vim73\gvim.exe" -p --remote-tab-silent "%1"
复制代码

这样之后,就可以以tab方式打开新文件了。接下来需要实现alt+n切换标签。很简单,在.vimrc上加上以下函数:

复制代码
 1 " 关于标签页的标题修改 "
 2 " 使用了自定义函数  GuiTabLabel()
 3 set showtabline=2 " always show tabs in gvim, but not vim
 4 set guitablabel=%{GuiTabLabel()}"
 5 
 6 "
 7 " 修改标签页的标题
 8 " set up tab labels with tab number, buffer name, number of windows
 9 "
10 function! GuiTabLabel()"
11   let label = ''
12   let bufnrlist = tabpagebuflist(v:lnum)
13   " Add '+' if one of the buffers in the tab page is modified
14   for bufnr in bufnrlist
15     if getbufvar(bufnr, "&modified")
16       let label = '+'
17       break
18     endif
19   endfor
20   " Append the tab number
21   let label .= v:lnum.': '
22   " Append the buffer name
23   let name = bufname(bufnrlist[tabpagewinnr(v:lnum) - 1])
24   if name == ''
25     " give a name to no-name documents
26     if &buftype=='quickfix'
27       let name = '[Quickfix List]'
28     else
29       let name = '[No Name]'
30     endif
31   else
32     " get only the file name
33     let name = fnamemodify(name,":t")
34   endif
35   let label .= name
36   " Append the number of windows in the tab page
37   let wincount = tabpagewinnr(v:lnum, '$')
38   return label . '  [' . wincount . ']'
39 endfunction"
40 
41 " 让 gvim 支持 Alt+n 来切换标签页
42 function! BufPos_Initialize()
43     for a in range(1,9)
44         exe 'map <A-' . a . '> ' . a . 'gt'
45     endfor
46 endfunction
47 autocmd VimEnter * call BufPos_Initialize()
48 "
49 " alt+左右键来移动标签
50 "
51 nn <silent> <M-left> :if tabpagenr() == 1\|exe "tabm ".tabpagenr("$")\|el\|exe "tabm ".(tabpagenr()-2)\|en<CR>
52 nn <silent> <M-right> :if tabpagenr() == tabpagenr("$")\|tabm 0\|el\|exe "tabm ".tabpagenr()\|en<CR>
复制代码

这样就OK了。

(以上解决方案和代码都来自网络)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值