Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vimrcの設定や利用プラグインを見直す

$
0
0

目的

年度が変わったので、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-gogoを書くのに必須。
自動で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つ。人の好み。
イメージは一番最後を参照。

参考

最後に

こんな感じになった。日々見直していきたい。
config/.vimrc at master · hirano00o/config
vimrc.png


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>