首頁  >  問答  >  主體

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中設定停用滑鼠,所以滑鼠不起任何作用,那麼如何複製貼上時如何與剪切板互動?

巴扎黑巴扎黑2688 天前619

全部回覆(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
  • 取消回覆