目的
年度が変わったので、vimrcを全体的に見直します。
以前は、全くコメントを書いておらず、コマンドが何を意味しているか分からなくなりそうなので、全体的にコメントも記載しました。
以前のvimrc
何となく分かるけども、ぱっと見よくわかりません。使ってないのもあるし。。。
コメントは書いたほうがいいことがわかります。
以前のvimrc
set term=screen-256color
set fenc=utf-8
set ambiwidth=double
set nobackup
set noswapfile
set autoread
set hidden
set showcmd
set cursorline
set cursorcolumn
set smartindent
set showmatch
set laststatus=2
set cmdheight=2
if !has('gui_running')
set mouse=
set ttimeoutlen=0
if $COLORTERM == "truecolor"
set termguicolors
endif
endif
set nofixendofline
set formatoptions+=mM
set tabstop=2
set shiftwidth=2
set 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設定
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <leader>b <Plug>(go-build)
au FileType go nmap <leader>t <Plug>(go-test)
au FileType go nmap <leader>c <Plug>(go-coverage)
au FileType go nmap <Leader>i <Plug>(go-info)
au FileType go nmap <Leader>gd <Plug>(go-doc)
au FileType go nmap <Leader>gv <Plug>(go-doc-vertical)
au FileType go nmap <Leader>gb <Plug>(go-doc-browser)
au FileType go :highlight goErr cterm=bold ctermfg=214
au FileType go :match goErr /\<err\>/
let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_operators = 1
let g:go_highlight_build_constraints = 1
let g:go_fmt_fail_silently = 1
let g:go_fmt_autosave = 1
let g: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 " バックアップファイルは作成しない
set noswapfile " スワップファイルは作成しない
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=256
endif
set 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!
au QuickFixCmdPost *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
endif
let g:lightline = {
\ 'colorscheme': 'wombat',
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ],
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]
\ },
\ 'component_function': {
\ 'linetotal': 'LightLineTotal',
\ 'gitbranch': 'fugitive#head'
\ },
\ }
let g: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
return a:ret
endfunction
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin("")
endif
" vim-go設定
let mapleader = "\<Space>" " <leader>を<Space>にする
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <leader>b <Plug>(go-build)
au FileType go nmap <leader>t <Plug>(go-test)
au FileType go nmap <leader>c <Plug>(go-coverage)
au FileType go nmap <Leader>i <Plug>(go-info)
au FileType go nmap <leader>s <Plug>(go-def-split)
au FileType go nmap <leader>v <Plug>(go-def-vertical)
au FileType go :highlight goErr cterm=bold ctermfg=214
au FileType go :match goErr /\<err\>/
" ハイライト表示
let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_operators = 1
let g:go_highlight_build_constraints = 1
let g:go_metalinter_autosave = 1 " 保存時にvet, lint errcheckを実行する
let g:go_fmt_autosave = 1 " 保存時にfmtを実行する
let g:go_fmt_fail_silently = 1
let g:go_fmt_command = "goimports" " 不要なimportを削除する
let g: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