搜索

首页  >  问答  >  正文

Windows下Vim的两个问题

问题一: 乱码如何解决

在Windows8上面表现为2种乱码情况:
- 第一种为启动欢迎界面的时候乱码
- 第二种表现为(举个例子)进行某次搜索时,已经搜索到底了,Vim会在命令栏显示提示信息"已经到底",但是命令栏大部分时候表现为乱码.

另外我在.vimrc中关于文件编码的设置如下:完整的.vimrc配置

shellset nocp
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,big5,gb2312,latin1,cp936,gb18030
set ffs=unix,dos,mac
set mousehide
set showcmd

问题二: 与剪贴板复制粘贴

我在.vimrc中设置禁用鼠标,所以鼠标不起任何作用,那么如何复制粘贴时如何与剪切板互动?

巴扎黑巴扎黑2750 天前667

全部回复(4)我来回复

  • 漂亮男人

    漂亮男人2017-05-16 16:41:35

    我的这一段设置是

    vimrcif has("gui_running")
    set encoding=utf-8
    set fileencodings=utf-8,chinese,latin-1
    
    if has("win32")
    set fileencoding=chinese
    else
    set fileencoding=utf-8
    endif
    
    let &termencoding=&encoding
    
    "解决菜单乱码
    source $VIMRUNTIME/delmenu.vim
    source $VIMRUNTIME/menu.vim
    
    "解决consle输出乱码
    language messages zh_CN.utf-8
    endif
    

    在命令行下,或者gvim里面都是正常的。包括菜单,下面的提示等都能正确的显示中文,你可以试试。我用的是win8.1的系统。


    复制和粘贴,我用的是"+y"+p

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 16:41:35

    我怎么记得7.4以后不用特别设置就支持中文了
    和剪贴板互动,如果vimrc中启用了ms-win。可以用v进入选择模式,Ctrl-c v。 更vi的做法是在y或者p的时候,先用 "+ 或者 "* 选择系统寄存器,也就是剪贴板。

    回复
    0
  • 習慣沉默

    習慣沉默2017-05-16 16:41:35

    其他的配置不说, 单这一句, 肯定是有大问题的:

    set termencoding=utf-8
    

    这个设置的是界面的编码, 而WINDOWS绝对绝对不是UTF-8的, 你把这个设置去掉试试

    回复
    0
  • 怪我咯

    怪我咯2017-05-16 16:41:35

    CMD默认是GBK编码的,你把termencoding设置为utf-8不乱码才怪了,解决的办法 …… 改termencoding不太方便,干脆用gvim算了。

    另,与系统剪切板互通的问题,可以配置下clipboard,我的配置拷贝自 spf13-vim:

    vimlif has('clipboard')
        if has('unnamedplus')  " When possible use + register for copy-paste
            set clipboard=unnamed,unnamedplus
        else         " On mac and Windows, use * register for copy-paste
            set clipboard=unnamed
        endif
    endif
    

    详情可参考:http://vim.wikia.com/wiki/Accessing_the_system_clipboard

    回复
    0
  • 取消回复