虎(牛)龍未酉2.1

記録帳|+n年後のジブンが思い出せますように……

作業ログ|vim (MacVim)-03

やったこと

できるようになりかけてること

うーむ

やりたいと思っていること

  • githubでのdotfiles管理
  • vimでメモを書く
  • vimでコードを動かす

ここまでの.vimrc

gvimrc:

" set guifont=Menlo:h18
set guifont=Inconsolata:h18
"set guifontwide=M+\ 2c\ thin:h18
" set guifontwide=ヒラギノ明朝\ ProN\ W3:h16
set guifontwide=ヒラギノ角ゴシック\ W2:h16
set lines=40
set columns=120

vimrc:

" URL: 
" Author: 
" Description: Personal .vimrc file
"
" All the plugins are managed via vim-plug, run :PlugInstall to install all
" the plugins from Github, :PlugUpdate to update. Leader key is the spacebar.


" vim-plugでプラグイン管理: {{{1

call plug#begin()

Plug 'Lokaltog/vim-easymotion'  " better move commands
Plug 'ctrlpvim/ctrlp.vim'       " あいまい検索
Plug 'itchyny/lightline.vim'    " custom statusline
Plug 'vim-jp/vimdoc-ja'         " help in Japanese
Plug 'sjl/gundo.vim'            " visualize the undo tree

Plug 'arcticicestudio/nord-vim' " color scheme
Plug 'micke/vim-hybrid'         " color scheme
Plug 'jacoborus/tender.vim'     " color scheme
Plug 'cocopon/iceberg.vim'      " color scheme

call plug#end()


" basic settings {{{1

syntax on                       " シンタックスハイライトをオン
set nocompatible                " 
set backspace=start,eol,indent  " 
set whichwrap=b,s,[,],<,>,~     " 
set mouse=
let mapleader = "\<space>"      " leaderキーをspaceに変更 *1 p122

" 検索オプション
set incsearch                   " インクリメンタルサーチ
set hlsearch                    " 検索時にハイライト
set ignorecase                  " 検索時大文字小文字を無視
set nowrapscan                  " ファイル末まで検索後、頭に戻らない

set wildmenu                    " タブによる自動補完を有効化
set wildmode=list:longest,full  " 最長マッチまで補完し自動補完メニューを開く

" 編集オプション
filetype plugin indent on       " ファイルタイプに基づいたインデントを有効化
set tabstop=4                   " タブ幅を4に
set expandtab                   " タブをスペースに変換
set shiftwidth=4                " インデントに使われるスペースの数
set autoindent                  " 新しい行を始めるときに自動でインデント
set smartindent
set ambiwidth=double
set clipboard=unnamed,unnamedplus   " Use system clipboard

" 折りたたみオプション
set foldmethod=indent           " 折りたたみ設定 *1 p65/68
" set nofoldenable              " Open all folds when entering Vim.
set foldlevel=99                " なるべく折りたたみを開く


set nrformats-=octal
set hidden
set history=2000               " 履歴を10000件持つようにする
set virtualedit=block



" key remap {{{1
" 矢印キーを押しても何もしない
noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>

" swap ; and : *4
nnoremap ; :
vnoremap ; :
nnoremap q; q:
vnoremap q; q:
nnoremap : ;
vnoremap : ;

noremap <Space>h ^
noremap <Space>l $

" insert mode / emacs like
" inoremap <C-n> <Down>         " doesn't work
" inoremap <C-p> <Up>           " doesn't work
inoremap <C-b> <Left>
inoremap <C-f> <Right>
inoremap <C-a> <C-o>^
inoremap <C-e> <C-o>$
inoremap <C-h> <BS>
inoremap <C-d> <Del>


" swapファイルをひとつのところにまとめる (*1 p31)
set directory=$HOME/.vim/swap//

" undo {{{1
" すべてのファイルで永続アンドゥ (*1 p39)
set undofile
set undodir=$HOME/.vim/undodir

" leader+gでGundoToggle
noremap <leader>gu :GundoToggle<cr>


" 見た目の設定(カラースキーム含む) {{{1

set number                      " 行番号表示
set laststatus=2                " ステータス行を常に表示
set list                        " 不可視文字の表示
set listchars=tab:»-,trail:-,eol:,extends:»,precedes:«,nbsp:%
set scrolloff=5                 " 最低でも表示する行数
set cursorline                  " Highlight cursor line

set t_Co=256
set termguicolors

" hybrid colorscheme {{{2
" let g:lightline = { 'colorscheme': 'hybrid' }
" set background=dark
" let g:hybrid_italic=0       " hybridでitalicをオフ
" colorscheme hybrid

" nord colorscheme {{{2
let g:lightline = { 'colorscheme': 'nord' }
let g:nord_cursor_line_number_background = 1
colorscheme nord


" vimrc関係 *3 {{{1
" 現在のバッファが空っぽならば :drop それ以外なら :tab drop になるコマンド
function! SmartDrop(tabedit_args)
  if expand('%') == "" && !&modified
    let drop_cmd = "drop "
  else
    let drop_cmd = "tab drop "
  endif
  silent execute drop_cmd . a:tabedit_args
endfunction
command! -nargs=* SmartDrop call SmartDrop(<q-args>)

nnoremap <silent> <Leader>v :<C-u>SmartDrop ~/.vim/vimrc<CR>
nnoremap <silent> <Leader>gv :<C-u>SmartDrop ~/.vim/gvimrc<CR>


" 出典リスト {{{1
" 1: マスタリングVim Ruslan Osipov
" 2: Vim & Emacsエキスパート活用術 SD別冊
" 3: https://github.com/cohama/.vim/blob/master/init.vim
" 4: https://github.com/deris/dotfiles/blob/master/.vimrc
"

" modeline(?) {{{1
" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker: