Skip to content

Instantly share code, notes, and snippets.

@butsugiri
Created August 3, 2022 04:05
Show Gist options
  • Save butsugiri/1d3dabec63994ea66628c9f40c734d3c to your computer and use it in GitHub Desktop.
Save butsugiri/1d3dabec63994ea66628c9f40c734d3c to your computer and use it in GitHub Desktop.
set nocompatible
filetype off
"---------------------------
"augroup&autocmd Settings.
"---------------------------
augroup MyVimrc
autocmd!
augroup END
call plug#begin('~/.vim/plugged')
Plug 'itchyny/lightline.vim'
" Plug 'morhetz/gruvbox'
" Plug 'cocopon/lightline-hybrid.vim'
Plug 'nathanaelkane/vim-indent-guides'
Plug 'rhysd/clever-f.vim'
" Plug 'shinchu/lightline-gruvbox.vim'
" Plug 'tpope/vim-surround'
" Plug 'kristijanhusak/vim-hybrid-material'
Plug 'tyru/caw.vim'
Plug 'ctrlpvim/ctrlp.vim'
Plug 'mattn/ctrlp-matchfuzzy'
Plug 'joshdick/onedark.vim'
Plug 'hallzy/lightline-onedark'
" Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
" Plug 'junegunn/fzf.vim'
call plug#end()
"-------------------------
"Vim-Indent Guides settings
"-------------------------
let g:indent_guides_enable_on_vim_startup=1
let g:indent_guides_guide_size=1
"-------------------------
"Ctrlp settings
"-------------------------
"ss to invoke search
nnoremap ss :<C-u>CtrlPMixed<CR>
let g:ctrlp_match_func = {'match': 'ctrlp_matchfuzzy#matcher'}
let g:ctrlp_working_path_mode = 'ra'
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn)$',
\ 'file': '\v\.(e|o)\d+$',
\ 'link': 'some_bad_symbolic_links',
\ }
"-------------------------
"Lightline.vim settings
"-------------------------
set laststatus=2
set t_Co=256
let g:lightline = {
\ 'colorscheme': 'onedark',
\ 'component': {
\ 'readonly': '%{&readonly?"⭤":""}',
\ },
\ 'separator': { 'left': '', 'right': '' },
\ 'subseparator': { 'left': '', 'right': '' }
\ }
"--------------------------
"Vim settings
"--------------------------
syntax on
set encoding=utf8
set fileencoding=utf-8
"スクロールするときに下が見えるようにする
set scrolloff =5
" .swapファイルを作らない
set noswapfile
" バックアップファイルを作らない
set nowritebackup
" バックアップをしない
set nobackup
" バックスペースで各種消せるようにする
set backspace=indent,eol,start
" ビープ音を消す
set visualbell t_vb=
" OSのクリップボードを使う
set clipboard+=unnamed
set clipboard=unnamed
" set clipboard+=autoselect
" 不可視文字を表示
set list
" 行番号を表示
set number
" 右下に表示される行・列の番号を表示する
set ruler
" compatibleオプションをオフにする
set nocompatible
" 移動コマンドを使ったとき、行頭に移動しない
set nostartofline
" 対応括弧に<と>のペアを追加
set matchpairs& matchpairs+=<:>
" 対応括弧をハイライト表示する
set showmatch
" 対応括弧の表示秒数を3秒にする
set matchtime=1
" ウィンドウの幅より長い行は折り返され、次の行に続けて表示される
set wrap
" 入力されているテキストの最大幅を無効にする
set textwidth=0
" 不可視文字を表示
set listchars=tab:»-,trail:-,extends:»,precedes:«,nbsp:%,eol:↲
" インデントをshiftwidthの倍数に丸める
set shiftround
" 補完の際の大文字小文字の区別しない
set infercase
" 小文字の検索でも大文字も見つかるようにする
set ignorecase
" ただし大文字も含めた検索の場合はその通りに検索する
set smartcase
" インクリメンタルサーチを行う
set incsearch
" 検索結果をハイライト表示
set hlsearch
" コマンド、検索パターンを10000個まで履歴に残す
set history=10000
" マウスモード有効
set mouse=a
" コマンドを画面最下部に表示する
set showcmd
" 新しく開く代わりにすでに開いてあるバッファを開く
set switchbuf=useopen
" バッファを閉じる代わりに隠す
set hidden
" 0埋めの文字でCtrl+aする際に10進数も認識させる
set nf=
" 画面に表示されるタブ幅
set tabstop=4
" タブをスペース展開
set expandtab
" インデント時のスペース数
set shiftwidth=4
" タブが押された場合にtabstopでなく、shiftwidthの数だけインデントする
set smarttab
" 自動インデント
set autoindent
" 右に分割
set splitright
"--------------------------
"Key Bindings
"--------------------------
" 入力モード中に素早くjjと入力した場合はESCとみなす
inoremap jj <Esc>
" ESCを二回押すことでハイライトを消す
nmap <silent> <Esc><Esc> :nohlsearch<CR>
" TABにて対応ペアにジャンプ
nnoremap <Tab> %
vnoremap <Tab> %
" 表示行単位で上下移動するように
nnoremap j gj
nnoremap k gk
nnoremap <Down> gj
nnoremap <Up> gk
" 逆に普通の行単位で移動したい時のために逆の map も設定しておく
nnoremap gj j
nnoremap gk k
" Ctrl + hjkl でウィンドウ間を移動
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
"--------------------------
"Python Settings
"--------------------------
augroup Python
autocmd!
autocmd FileType python setl autoindent
autocmd FileType python setl smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
autocmd FileType python setl tabstop=8 expandtab shiftwidth=4 softtabstop=4
autocmd BufNewFile *.py 0r $HOME/.vim/template/python.txt
augroup END
"--------------------------
"Appearance Settings
"--------------------------
set background=dark
set termguicolors
"colorscheme gruvbox
colorscheme onedark
let g:gruvbox_material_background = 'soft'
"colorscheme gruvbox-material
" let g:hybrid_use_Xresources = 1
" let g:hybrid_custom_term_colors = 1
" let g:hybrid_reduced_contrast = 1 " Remove this line if using the default palette.
" colorscheme hybrid
"
"
"--------------------------
"fzf Settings
"--------------------------
" imap <c-x><c-f> <plug>(fzf-complete-path)
let mapleader = "\<Space>"
nnoremap [Fzf] <Nop>
nmap <Leader>f [Fzf]
nnoremap [Fzf]f :<C-u>Files<CR>
nnoremap [Fzf]b :<C-u>Buffers<CR>
nnoremap [Fzf]h :<C-u>History<CR>
"--------------------------
"caw Settings
"--------------------------
nmap <C-K> <Plug>(caw:hatpos:toggle)
vmap <C-K> <Plug>(caw:hatpos:toggle)
command! -bang -nargs=? -complete=dir Files
\ call fzf#vim#files(<q-args>, {'options': ['--layout=reverse', '--info=inline', '--preview', '~/.vim/plugged/fzf.vim/bin/preview.sh {}']}, <bang>0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment