こんにちは。
締め切り15分前に書き始める系エンジニアのぐりです。
この記事は呉高専エンジニア勉強会 Advent Calendar 2017の11日目の記事です。
昨日の記事はether0x2caさんの学術論文のすゝめでした。
論文の種類、公開されているサイトとその紹介が書かれていて、論文読んでみようかなって思う記事でした。
Slackグループ作ったら是非参加したいですね。
さて、この記事は僕の.zshrc
と.vimrc
のお話です。
それぞれのイチオシの設定とプラグインを紹介していきます。
.zshrc
oh-my-zsh
# Path to your oh-my-zsh installation.exportZSH=/Users/username/.oh-my-zsh
zshの設定の管理にはoh-my-zshを使ってます。
あんまり使いこなしてはないので特にここがいいとは言えません。
お好みで導入して下しあ。
Powerlevel9k
ZSH_THEME="powerlevel9k/powerlevel9k"POWERLEVEL9K_MODE='nerdfont-complete'POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(time dir vcs)POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()POWERLEVEL9K_DISABLE_RPROMPT=truePOWERLEVEL9K_TIME_FORMAT="%D{%m\/%d %H:%M}"POWERLEVEL9K_TIME_FOREGROUND='white'POWERLEVEL9K_TIME_BACKGROUND='background'POWERLEVEL9K_PROMPT_ADD_NEWLINE=truePOWERLEVEL9K_PROMPT_ON_NEWLINE=truePOWERLEVEL9K_RPROMPT_ON_NEWLINE=falsePOWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=""POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="\u25B8 "POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR=''POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=''
見た目をちょっとイケてる感じにするのはpowerlevel9k。
インストールが若干めんどくさいのが玉に瑕ですが、公式のドキュメントが充実してるのでつまずくことはないと思います。
みんなの作例がまとめてあるのでそれを見るのも面白です。
ちなみに僕のはこんな感じです。色々試しましたが、結局シンプルなのに落ち着きました。ls
がきれいになってるのはcolorlsのおかげです。若干表示されるまで時間がかかりますがおすすめです。
alias
aliasv="nvim"aliasg="git"aliasgp="g push"aliasls="colorls -a -sd"aliasvz="v ~/.zshrc"aliasn="nim c -r"aliassoen="source ./env.sh"aliassozh="source /Users/username/.zshrc"aliasbe="bundle exec"aliasrub="rubocop"aliasruba="rubocop --auto-correct"aliasrid="rails ridgepole:dry"aliasrida="rails ridgepole:apply"aliasr="rails"
お次はエイリアス。
よく使うものは最初の一文字でエイリアスをかけてます。
.vimrc
dein
" dein settings {{{" dein自体の自動インストールlet s:cache_home = empty($XDG_CACHE_HOME) ? expand('~/.cache') : $XDG_CACHE_HOMElet s:dein_dir = s:cache_home . '/dein'let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'if!isdirectory(s:dein_repo_dir)call system('git clone https://github.com/Shougo/dein.vim ' . shellescape(s:dein_repo_dir))endiflet&runtimepath= s:dein_repo_dir .",". &runtimepath" プラグイン読み込み&キャッシュ作成let s:toml_file ='~/.dein.toml'let s:lazy_toml_file ='~/.dein_lazy.toml'if dein#load_state(s:dein_dir)call dein#begin(s:dein_dir)call dein#load_toml(s:toml_file)call dein#load_toml(s:lazy_toml_file, {'lazy': 1})call dein#end()call dein#save_state()endif" 不足プラグインの自動インストールif has('vim_starting')&& dein#check_install()call dein#install()endif
暗黒の力を与えられしプラグインマネージャー
その名もdein.vim
以下を参考(コピペ)にして設定しました。
別ファイルに読み込むプラグインをまとめて書いてます。
dein.vimによるプラグイン管理のマイベストプラクティス
NeoBundle から dein.vim に乗り換えたら爆速だった話
syntastic
" syntastic_mode_mapをactiveにするとバッファ保存時にsyntasticが走る" active_filetypesに、保存時にsyntasticを走らせるファイルタイプを指定するletg:syntastic_mode_map = { 'mode': 'passive','active_filetypes': ['ruby'] }letg:syntastic_ruby_checkers = ['rubocop']
rubyのスタイルガイドであるrubocopを、保存時に走らせる用に設定しました。
非同期なのでaleの方が良さげです。
参考
Rubocopをsyntasticを使ってVimから自動実行する
emmet-vmi
letg:user_emmet_settings = {
\ 'lang' : 'ja'
\}
HTMLが爆速でかけるemmetのvim用プラグイン
emmet-vim
vim-easymotion
letg:EasyMotion_do_mapping =0"Disable default mappings
nmap <Leader>s <Plug>(easymotion-overwin-f2)
画面内の移動がめちゃくちゃ早くなるめちゃくちゃオススメなプラグイン
vim-easymotion。おすすめです。
NERDTree
map <C-n> :NERDTreeToggle<CR>let NERDTreeShowHidden=1
皆さんご存知NERDTree
まあこれの紹介はいいでしょう。
カラースキーマ
" set color schemeletg:hybrid_custom_term_colors =1
キーバインド
inoremap<C-j><Down>inoremap<C-k><Up>inoremap<C-h><Left>inoremap<C-l><Right>inoremap<C-f><Delete>inoremap<C-d><BS>inoremap<C-e><C-o>$inoremap<C-a><C-o><C-0>nnoremap<SPACE><Nop>
map <SPACE><leader>nnoremap<C-s> :%s/nnoremapj gjnnoremapk gknnoremap gj jnnoremap gk knnoremap s <Nop>nnoremapsj<C-w>jnnoremap sk <C-w>knnoremapsl<C-w>lnnoremapsh<C-w>hnnoremap ; :nnoremap : ;nnoremap<S-h><C-0>nnoremap<S-l> $nnoremap<CR> A<CR><ESC>nnoremap== gg=Gnnoremap<Leader>w :w<CR>nnoremap<Leader>q :wq<CR>
インサートモードでも移動や削除ができるようにしてたり、ペイン間の移動を楽にしてたりしてます。
個人的に一番役に立ったのはこれです。
nnoremap ; :nnoremap : ;
よく使う:
をシフトキー無しで押せるようになってます。