GVIM コード文字化け問題の解決策
Vim には、文字エンコーディング方法に関連する 4 つのオプションがあります。つまり、encoding、fileencoding、fileencodings、termencoding (これらのオプションの可能な値については、Vim オンライン ヘルプ: help encoding-names を参照してください)それぞれの意味:
* エンコーディング: Vim のバッファー、メニュー テキスト、メッセージ テキストなどを含む、Vim によって内部的に使用される文字エンコーディング方法。ユーザーマニュアルでは、.vimrc 内の値のみを変更することを推奨しており、実際には .vimrc 内の値を変更することのみが意味があるようです。
* fileencoding: Vim で現在編集されているファイルの文字エンコーディング。Vim がファイルを保存するとき、(新しいファイルかどうかに関係なく) ファイルもこの文字エンコーディングで保存されます。
* fileencodings: Vim が起動すると、リストされている文字エンコーディングに従って、開かれるファイルの文字エンコーディングを 1 つずつ検出し、最後に検出された文字エンコーディングを fileencoding に設定します。したがって、Unicode エンコーディングをリストの先頭に置き、ラテン語エンコーディング latin1 をリストの最後に置くのが最善です。
* termencoding: Vim が動作するターミナル (または Windows のコンソール ウィンドウ) の文字エンコード方式。このオプションは、Windows で一般的に使用される GUI モードの gVim では無効です。コンソール モードの Vim の場合、これは Windows コンソールのコード ページであるため、通常は変更する必要はありません。
Unicode にはほぼすべての言語の文字を含めることができ、Unicode の UTF-8 エンコード方式は非常にコスト効率の高いエンコード方式であるため、エンコード値は utf-8 に設定されます。同時に、エンコーディングが utf-8 に設定されている場合、Vim はファイルのエンコーディング方式をより正確に自動的に検出します。中国語 Windows で編集されたファイルの場合、他のソフトウェアとの互換性を考慮して、ファイル エンコーディングを GB2312/GBK に設定することがより適切であるため、ファイル エンコーディングを中国語に設定することをお勧めします (中国語はエイリアスです。 Unix では gb2312、Windows では cp936 を意味します)。これは GBK のコード ページです)。
最後に、ファイルの文字化け、メニューの文字化け、右クリックメニューの文字化け、Conslseの出力文字化けの問題を解決するには、Vimエディターに対応する設定ファイル_vimrcを修正し、次の設定を追加します:
"上のツールバーを閉じる
set go -=T
"右のスクロールバーをオフにする
"set go-=r
"常にラベルを表示します。 0: 表示しない; 1: 複数ある場合に表示する
set showtabline=2
"行番号をオンにする
番号を設定する
" 自動インデントをオンにする、バージョン 7.3 以降は自動的にオンになります
"set autoindent
"インデントの幅は 4 文字です
set shftwidth=4
"タブの幅は 4 文字です
set tabstop =4
"編集時にすべてのタブをスペースに置き換えます
set et
"Backspace を 1 回押して 4 つのスペースを削除します
set Smarttab
"配色
コロ砂漠
"構文のハイライトをオンにします。バージョン 7.3 は自動的にオンになりました
"syntax on
"フォント設定
set guifont=courier_new:h10
"互換モードをオフにする
set nocompatibility
"次の 3 行は、Ctrl-C copy などの Windows 操作をシミュレートします
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
"バックアップ ファイルを生成しません。次の文を behave mswin の下に記述する必要があります。そうでない場合でもバックアップは生成されます。理由はわかりません~
set nobackup
"GVIM 内部エンコーディング
set encoding=utf-8
"現在編集中のファイル Encoding
set fileencoding=utf-8
"GVIM はオープン ファイル エンコーディングをサポートしています
set fileencodings=utf-8,gbk,gb2312,big5,latin1
"解決メニューと右-クリックメニュー文字化けコード
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"文字化けしたコンソール出力を解決します
言語メッセージ zh_CN.utf-8
"Linux ターミナルを GVIM 内部エンコーディングに設定しますが、設定しないでくださいWindows でそれを実行します
let &termencoding=&encoding
「五芒星などの特殊記号が通常に表示されないようにする Wait
set ambiwidth=double
set diffexpr=MyDiff()
function MyDiff()
let opt = '- --binary '
if &diffopt =~ 'icase' | let opt '-i ' | endif
if &diffopt =~ 'iwhite' | '-b ' | let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' 。 arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '
let eq = 'S else
let cmd = replace ($ vimruntime,' ',' "',' ').' Diff" '
Else
Let CMD = $ vimruntime. ecute '! ' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > FileType html setomnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml setomnifunc=xmlcomplete#CompleteTags
autocmd FileType php setomnifunc=phpcomplete#CompletePHP
autocmd FileType c setomnifunc=ccomplete#Complete
上記は VIM7.3 の設定 (Windows 用) を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。