在Xshell中使用vim亂碼解決方法

2021-07-11 03:07:15 字數 1038 閱讀 8200

在xshell中開啟html檔案出現亂碼,於是首先獲得了檔案的編碼方式,命令為:set fileencoding,獲知檔案編碼為euc-cn後使用:set termencoding=euc-cn進行設定則可以正常顯示。

這是因為中文windows預設編碼為cp936(euc-cn),在 linux本地x環境下,一般終端都認為其接收的資料的編碼型別和系統locale型別相符,因此不需關心此方面是否存在問題。但如果牽涉到遠端終端,例 如ssh登入伺服器,則問題就有可能出現了。例如從1臺locale為gb2310的系統(稱作客機)ssh到locale為utf-8的系統(稱作服 務器)並開啟vim編輯文件,在不加任何改動的情況下,伺服器返回的資料為utf-8的,但客戶機認為伺服器返回的資料是gb2312的,按照 gb2312來解釋資料,則肯定就是亂碼了。此問題更多出現在我們的 windows desktop機遠端ssh登入伺服器的情況下,這裡牽扯到不同系統的編碼轉換問題,所以又與windows本身以及ssh客戶端有很大相關性。

顯示正常後,又出現寫入時亂碼,修改了$vi ~/.vimrc配置檔案中set enconding=prc 為set enconding=utf-8後恢復正常。

vim編碼方面的基礎知識:

1,存在3個變數:

encoding—-該選項使用於緩衝的文字(你正在編輯的檔案),暫存器,vim 指令碼檔案等等。你可以把 『encoding』 選項當作是對 vim 內部執行機制的設定。

fileencoding—-該選項是vim寫入檔案時採用的編碼型別。

termencoding—-該選項代表輸出到客戶終端(term)採用的編碼型別。

2,此3個變數的預設值:

encoding—-與系統當前locale相同,所以編輯檔案的時候要考慮當前locale,否則要設定的東西就比較多了。

fileencoding—-vim開啟檔案時自動辨認其編碼,fileencoding就為辨認的值。為空則儲存檔案時採用encoding的編碼,如果沒有修改encoding,那值就是系統當前locale了。

termencoding—-預設空值,也就是輸出到終端不進行編碼轉換。

感謝:

在Vim中使用gtags

之前一直使用vim ctags cscope來弄c的 最近看同事使用gtags,覺得在搜尋方面要高階很多,網上大多都是emacs gtags的資料,而vim的則比較少,這裡搞通了之後,做個記錄。wget tar xzvf global 6.6.2.tar.gz cd global 6.6.2 con...

在visual studio中使用vim編輯程式

hehe,是我2002年寫的。只支援vc6 1.首先安裝乙個vim 2.到你的vim安裝目錄下,假設是e tools gvim cd e tools gvim cd vim61 visvim regsvr32 visvim.dll win95 98可以跳過這步 3.要是你還沒有注你的ole gvim...

linunx 在vim中使用系統剪下版

1.首先檢測vim中能否使用clipboard 剪下板 使用這條命令來檢查 vim version grep clipboard 2.如果clipboard的前面是減號,則clipboard不可用 3.使用下面的命令重新安裝這個vim影象版 sudo apt get install vim gnom...