目的
年度が変わったので、vimrcを全体的に見直します。
以前は、全くコメントを書いておらず、コマンドが何を意味しているか分からなくなりそうなので、全体的にコメントも記載しました。
以前のvimrc
何となく分かるけども、ぱっと見よくわかりません。使ってないのもあるし。。。
コメントは書いたほうがいいことがわかります。
以前のvimrc
set term=screen-256colorset fenc=utf-8set ambiwidth=double
set nobackup
setnoswapfileset autoread
set hidden
set showcmd
set cursorline
set cursorcolumn
set smartindent
set showmatch
set laststatus=2set cmdheight=2if!has('gui_running')set mouse=set ttimeoutlen=0if $COLORTERM =="truecolor"set termguicolors
endifendifset nofixendofline
set formatoptions+=mM
set tabstop=2set shiftwidth=2set expandtab
set ignorecase
set smartcase
set incsearch
set wrapscan
set hlsearch
set ruler
let&colorcolumn=join(range(121,999),",")hi ColorColumn ctermbg=235 guibg=#2c2d27
nmap <Esc><Esc>:nohlsearch<CR><Esc>
noremap!
call plug#begin('~/.vim/plugged')
Plug 'junegunn/vim-plug', \{'dir':'~/.vim/plugged/vim-plug/autoload'}
Plug 'fatih/vim-go'
Plug 'nsf/gocode',{'rtp':'vim','do':'~/.vim/plugged/gocode/vim/symlink.sh'}call plug#end()" vim-go設定auFileTypego nmap <leader>r<Plug>(go-run)auFileTypego nmap <leader>b<Plug>(go-build)auFileTypego nmap <leader>t<Plug>(go-test)auFileTypego nmap <leader>c<Plug>(go-coverage)auFileTypego nmap <Leader>i<Plug>(go-info)auFileTypego nmap <Leader>gd <Plug>(go-doc)auFileTypego nmap <Leader>gv <Plug>(go-doc-vertical)auFileTypego nmap <Leader>gb <Plug>(go-doc-browser)auFileTypego:highlight goErr cterm=bold ctermfg=214auFileTypego:match goErr /\<err\>/letg:go_highlight_functions=1letg:go_highlight_methods=1letg:go_highlight_structs=1letg:go_highlight_operators=1letg:go_highlight_build_constraints=1letg:go_fmt_fail_silently=1letg:go_fmt_autosave=1letg:go_fmt_command="goimports"
vimrc見直した
大体はコメント書きました。コメントがあるのと無いのでは、雲泥の差がありますねえ。
見直し後のvimrc
set term=term-256color " 256色で表示する
set encoding=utf-8 " エンコーディングをUTF-8にする
set fileencodings=utf-8,sjis,cp932 " 設定の順番の文字コードでファイルを開く
set fileformats=unix,dos,mac " 設定の順番で改行コードを開く
set nofixendofline " EOFを元のファイルと同じ状態にする
set ambiwidth=double " ○文字や□文字でもカーソル位置を保持する
set nobackup " バックアップファイルは作成しない
setnoswapfile " スワップファイルは作成しない
set autoread " 編集中のファイルが変更された場合、自動で読み直し
" set hidden " 未保存のファイルがあっても、別ファイルを開くset showcmd " 入力コマンドをステータスに表示する
set cursorline " 現行を強調表示する
set cursorcolumn " 現列を強調表示する
if!has('gui_running') " CUI使用時
set mouse= " マウス操作をOFFにする
set ttimeoutlen=0 " insertからnormalに戻るときの遅延を解消する
set t_Co=256endifset autoindent " 改行時に前行のインデントを保持する
set smartindent " 改行時に前行末尾に合わせて、インデントを増減する
set tabstop=4 " タブは設定文字数分で表示する
set shiftwidth=4 " 自動インデントは4文字
set expandtab " タブを空白文字にする
set showmatch " 対応する括弧を強調表示する
set wildmenu " TABでファイル名を補完する
set wildmode=full " TABを押すごとに次のファイル名を補完する
set ignorecase " 検索に大文字小文字を区別しない
set smartcase " 検索に大文字を使うと、大文字小文字を区別する
set incsearch " リアルタイム検索する
set wrapscan " 最後まで検索すると、最初に戻る
set hlsearch " 検索結果をハイライト表示する
set nowrap " テキストの折返しをしない
set ruler " ルーラーを表示する
" カラムラインを120列目に引くlet&colorcolumn=join(range(121,999),",")hi ColorColumn ctermbg=235 guibg=#2c2d27" Esc2回でハイライトを消す
nmap <Esc><Esc>:nohlsearch<CR><Esc>" Hで行頭へ移動する
map H ^
" Lで行末へ移動する
map L $
" undoを保存するif has('persistent_undo')set undodir=~/.vim/undo
set undofile
endif" grepした結果をquickfixに表示する
augroup grepwindow
autocmd!auQuickFixCmdPost *grep* cwindow
augroup END
if filereadable($HOME.'/.vim/autoload/plug.vim') " vim-plugを利用する
" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" :PlugInstallでインストールcall plug#begin()
Plug 'fatih/vim-go' " goの機能拡張
Plug 'SirVer/ultisnips' " スニペット
" goのスニペット -> https://github.com/fatih/vim-go/blob/master/gosnippets/UltiSnips/go.snippets
Plug 'bronson/vim-trailing-whitespace' " 行末のスペースをハイライト
Plug 'Yggdroot/indentLine' " インデントを見やすくする
Plug 'junegunn/fzf',{'dir':'~/.fzf','do':'./install --all'} " あいまい検索
Plug 'junegunn/fzf.vim'
Plug 'cohama/lexima.vim' " 括弧の補完
Plug 'itchyny/lightline.vim' " ステータスライン拡張
Plug 'morhetz/gruvbox' " カラースキーム
call plug#end()endif
syntax enable " シンタックスをONにする
set background=dark " 背景をダークモードにする
if filereadable($HOME.'/.vim/plugged/gruvbox/autoload/gruvbox.vim')colorscheme gruvbox
endifletg:lightline={ \'colorscheme':'wombat', \'active':{ \'left':[['mode','paste'], \['gitbranch','readonly','filename','modified']] \}, \'component_function':{ \'linetotal':'LightLineTotal', \'gitbranch':'fugitive#head' \}, \}letg:lightline.component ={ \'lineinfo':'[%3l/%3L]:%-2v' \}set noshowmode " vimのモードを非表示にする
set laststatus=2 " ステータスラインを常に表示する
set cmdheight=2 " ステータスライン下のメッセージ表示行数
" ペースト時に自動インデントを無効化するif&term =~"xterm"let&t_SI .="\e[?2004h"let&t_EI .="\e[?2004l"let&pastetoggle ="\e[201~"function XTermPasteBegin(ret)set paste
returna:retendfunction
inoremap <special><expr><Esc>[200~ XTermPasteBegin("")endif" vim-go設定let mapleader ="\<Space>" " <leader>を<Space>にする
auFileTypego nmap <leader>r<Plug>(go-run)auFileTypego nmap <leader>b<Plug>(go-build)auFileTypego nmap <leader>t<Plug>(go-test)auFileTypego nmap <leader>c<Plug>(go-coverage)auFileTypego nmap <Leader>i<Plug>(go-info)auFileTypego nmap <leader>s <Plug>(go-def-split)auFileTypego nmap <leader>v<Plug>(go-def-vertical)auFileTypego:highlight goErr cterm=bold ctermfg=214auFileTypego:match goErr /\<err\>/" ハイライト表示letg:go_highlight_functions=1letg:go_highlight_methods=1letg:go_highlight_structs=1letg:go_highlight_operators=1letg:go_highlight_build_constraints=1letg:go_metalinter_autosave=1 " 保存時にvet, lint errcheckを実行する
letg:go_fmt_autosave=1 " 保存時にfmtを実行する
letg:go_fmt_fail_silently=1letg:go_fmt_command="goimports" " 不要なimportを削除する
letg:go_def_mode='gopls'
以前は、コード書くときは横幅を80文字とかしていましたが、今は画面も広いので120文字にしています。
今何列目とかはステータスラインにデフォルトで出ますが、画面上で120文字目以降の範囲は色変えといたほうが分かりやすくて好きです。
" カラムラインを120列目に引くlet&colorcolumn=join(range(121,999),",")hi ColorColumn ctermbg=235 guibg=#2c2d27
プラグインも見直して、下記を利用するようにしました。
プラグイン | 概要 |
---|---|
fatih/vim-go | goを書くのに必須。 自動でgofmtとかgolintをかけてくれるし、様々なショートカットがある。 日本語のチュートリアルはこちら |
SirVer/ultisnips | 優秀なスニペット。vim-goと組み合わせて使う。 例えば、 fn[TAB] で、fmt.Println("") が出る。goで使えるデフォルトのスニペットはこちら |
bronson/vim-trailing-whitespace | 行末のスペースを赤くハイライトしてくれる。:FixWhitespace で自動で削除もできる。イメージは一番最後を参照。 |
Yggdroot/indentLine | インデントをわかりやすく表示してくれる。set list とかで自分でやるよりも、わかりやすい。イメージは一番最後を参照。 |
junegunn/fzf | あいまい検索ができる。:Commands とか:Files とかで便利。 |
cohama/lexima.vim | 自動で括弧を補完してくれる。便利。( を入力すると、自動で) が付いてくる。 |
itchyny/lightline.vim | ステータスラインを簡単に華やかにできる。 ファイルの総行数がデフォルトで無いのは残念。 イメージは一番最後を参照。 |
morhetz/gruvbox | 数あるカラースキームの1つ。人の好み。 イメージは一番最後を参照。 |
参考
- vim-goを使うなら使用したいコマンド集と設定 - Qiita
- lightline.vimでファイルの総行数が出るように設定した - the code to rock
- Vimメモ : GitHub Trendingで見かけるカラースキーム - もた日記
最後に
こんな感じになった。日々見直していきたい。
config/.vimrc at master · hirano00o/config