2024/10最新版
〇Windowsターミナルの色化けに対応
特にキーマップが秀逸です
〇(複数)選択行を上下に移動可能
〇挿入モード時にカーソル移動
〇コマンド服歴でカーソル移動
〇閉じカッコの自動入力
〇$で本当の行末に移動
.vimrcは通常$HOMEにあります
例
cd $HOME
■.vimrcの内容
"設定一覧 日本語ドキュメント "https://vim-jp.org/vimdoc-ja/vimindex.html "Windowsターミナルの色化け対応(WLSターミナルでは発生しない) if has("win32") || has("win64") set t_Co=256 "256色モード(他に2,8,16がある) endif "スワップファイル関連 "set swapfile "スワップファイルを作成する set noswapfile "スワップファイルを作成しない "バックアップファイル関連 "set backup "バックアップファイルを作成する set nobackup "バックアップファイルを作成しない "バックアップ・スワップファイルへの反映時間(デフォルトは4000) "set updatetime=250 "バックアップ・スワップファイルへのキーストローク数(デフォルトは200) "set updatecount=100 "Vi互換 "set compatible "Vi互換モード set nocompatible "Vi互換にしない(現状おまじない状態 なくても問題ないらしい) "ファイル形式の検出を有効化 filetype plugin indent on "ファイルタイプ検出ON プラグイン検出ON ファイルタイプ別自動インデントON "ファイルのエンコードタイプ指定 set encoding=utf-8 "set encoding=cp932 "日本語 (Windows only)、Shift-JIS拡張 "set encoding=sjis "日本語 (Unix only) "set encoding=japan "日本語: Unixではeuc-jp、MS-Windowsではcp932 "ファイルエンコード自動判定 "set fileencodings=ucs-bom,utf-8,default,latin1 set fileencodings=iso-2022-jp,ucs-bom,sjis,utf-8,euc-jp,cp932,default,latin1 "メニューの適用言語(gVimの設定) "set langmenu=none "set langmenu=ja_JP.utf-8 "シンタックスハイライト(構文強調) syntax on "デフォルトのカラースキームを使用 syntax enable "現在のカラースキームを変更せずにシンタックスハイライトを有効にする "テーマ色 "colorscheme darkblue colorscheme codedark "基本のテーマ色 "default desert elflord evening industry morning murphy pablo peachpuff ron shine slate torte zellner "他のテーマ色[vim91] "blue codedark darkblue default delek desert elflord evening habamax industry koehler "lunaperche morning murphy pablo peachpuff quiet retrobox ron shine slate "sorbet wildcharm zaibatsu zellner "文字の折り返し設定 "set wrap "文字の折り返し有効 set nowrap "文字の折り返し無効 "set linebreak "単語の途中で折り返さない "set showbreak=> "折り返し時の行頭文字列を設定(この場合は>,他に↪) "set textwidth=80 "指定文字数で自動改行 "set formatoptions+=t "自動改行を有効にする "set wrapmargin=2 "画面の右端からのマージンを指定して自動改行 "ウインドウの大きさ指定 "set columns=200 "規定値120 "set lines=50 "規定値30 "対応する括弧を表示する((),[],{}) set showmatch "括弧の対応関係を表示 "set matchtime=10 "括弧の強調表示の持続時間(デフォルトは5(0.5秒)) "検索パターン強調表示[ハイライトサーチ](強調表示を一時的に消すには:nohlコマンドを使う) set hlsearch "強調表示あり "set nohlsearch "強調表示なし(規定値) "検索リアルタイム表示 set incsearch "リアルタイム表示 "set noincsearch "リアルタイム表示なし(規定値) "検索時の大文字小文字区別 "set ignorecase "大文字と小文字を区別なしに検索する "set noignorecase "大文字と小文字を厳格に区別して検索する "set smartcase "検索文字に大文字が含まれる場合に厳格検索になる "set nosmartcase set ignorecase smartcase "コマンド服歴数 "set history=5000 "規定値50 "補完・補助表示 set ruler "カーソル位置を右下に表示 "set noruler "set number "行頭に行番号を表示 "set nonumber set relativenumber "相対行番号表示 "set norelativenumber "(set nornu) set list "制御文字の表示 "set nolist "set listchars=eol:$ "listcharsの規定値 listcharsはlistが有効時適用される set listchars=tab:»-,space:・,trail:・,nbsp:%,eol:↲,extends:»,precedes:« set wildmenu "コマンドラインで補完候補の表示[TAB](移動は更にTAB(/Shift+TAB)キーまたはCtrl+n(/p)) set showcmd "入力途中のコマンドを表示(rulerの左) set showmode "挿入モード、置換モードまたはビジュアルモードで最終行にメッセージを表示 "set noshowmode set cursorline "カーソルがある行を強調表示する set cursorcolumn "カーソルがある桁を強調表示する "矩形編集 "set virtualedit=block "行末を超えてカーソルを移動 "set virtualedit=insert "挿入モードで仮想編集を有効 "set virtualedit=all "すべてのモードで仮想編集を有効 "set virtualedit=onemore "行末の1文字先までカーソルを移動 "set virtualedit=none "矩形編集設定なし set virtualedit=block,insert "タブ・インデント関連関連 "sw=shiftwidth, sts=softtabstop, ts=tabstop, et=expandtabの略 set softtabstop=4 "Tabキー入力時のスペースの数 set tabstop=4 "Tabをスペースに置き換える数 set smarttab "Tabキー入力時インデント挿入 set expandtab "Tabを全てスペースに置き換える set shiftwidth=4 "自動インデント時のスペースの数 "set autoindent "インデント位置キープ(字下げしない) "set smartindent "簡易C言語文法基準インデント set cindent "C言語文法基準のインデント(switch文にも適用) "クリップボード set clipboard=unnamed "システムのクリップボード "set clipboard=unnamedplus "GUIアプリ連携可能クリップボード "set clipboard=autoselect "選択時に自動でクリップボードにコピー "set clipboard=autoselectplus "選択時に自動でGUIクリップボードにコピー "set clipboard=unnamed,autoselect "警告音関連 set visualbell "ベルを鳴らす代わりに画面点滅にする "set noerrorbells "エラー時ベルを鳴らさない "set errorbells "エラー時ベルを鳴らす "set belloff=all "警告動作しない "記号文字の2バイト(ワイド文字)化 "set ambiwidth=single set ambiwidth=double "行連結 "set joinspaces "行連結時にスペースを1つ挿入する set nojoinspaces "行連結時にスペースを挿入しない "マウスの位置指定や選択の有効可否 set mouse=a "マウス設定を有効 "set mouse= "マウス設定を無効化 "■■■■■キーマップ■■■■■■ "※マッピング指定では後ろにコメントを入れてはいけない "現在または複数選択行を上下に移動 "ビジュアルモードで(複数)行選択 "Ctrl+j 下に移動 "Ctrl+k 上に移動 nmap <expr> <C-k> $'<Cmd>move-1-{v:count1}<CR>=l' nmap <expr> <C-j> $'<Cmd>move+{v:count1}<CR>=l' xmap <silent><C-k> :move'<-2<CR>gv=gv xmap <silent><C-j> :move'>+1<CR>gv=gv "挿入モード時移動関連 "※<C-o>は一時的にノーマルモードにする "挿入モード時に行末に移動する Ctrl+e "imap <C-e> <C-o>A "挿入モード時に(インデント除く)行頭に移動する Ctrl+a "imap <C-a> <C-o>^ "挿入モード時に行頭に移動する Ctrl+q "imap <C-q> <C-o>0 "挿入モード時に下行に移動 Ctrl+j imap <C-j> <C-o><DOWN> "挿入モード時に上行に移動 Ctrl+k imap <C-k> <C-o><UP> "挿入モード時に一文字前に移動 Ctrl+h imap <C-h> <Left> "挿入モード時に一文字後ろに移動 Ctrl+l imap <C-l> <Right> "コマンドモード時の移動関連(コマンド履歴の表示はノーマルモードで[q:]/検索履歴の表示はノーマルモードで[q/]) "※BキーWキーでも移動可能だがより直感的にする "※コマンド履歴内でインサートモードにできることにも注意 "コマンドモード時に下行に移動 Ctrl+N cmap <C-N> <DOWN> "コマンドモード時に上行に移動 Ctrl+P cmap <C-P> <UP> "コマンドモード時に下行に移動 Ctrl+j cmap <C-j> <DOWN> "コマンドモード時に上行に移動 Ctrl+k cmap <C-k> <UP> "コマンドモード時に一文字前に移動 Ctrl+h cmap <C-h> <Left> "コマンドモード時に一文字後ろに移動 Ctrl+l cmap <C-l> <Right> "挿入モードで自動的に閉じ括弧を入力 imap { {}<LEFT> imap [ []<LEFT> imap ( ()<LEFT> imap < <><LEFT> "imap " ""<LEFT> "フリーズする "imap ' ''<LEFT> "フリーズする "ノーマルモードまたは挿入モードで上の行末に連結し挿入モード Ctrl+BS nmap <C-BS> ^v<UP>$gJi imap <C-BS> <ESC>^v<UP>$gJi "ノーマルモードまたは挿入モードで行末から下の行を連結し挿入モード Ctrl+DEL nmap <C-DEL> v<DOWN>gJi imap <C-DEL> <ESC>v<DOWN>gJi "2回ESCを押したら検索のハイライトを消す "nmap <Esc><Esc> :nohlsearch<CR><Esc>