背景
vimを使えるようになろうとおもってがんばっている。
やったこと
できたこと、できなかったこと
- Vim Awesomeはとてもおもしろい
- vimっぽいメモ作成のワークフロー作成を考えてたのしんでいる
- C++でゲームプログラミング-Vimで読んでおきたい Web の記事がめちゃくちゃ勉強になる
これからやりたいこと
- Vim自体
- insert modeでもうちょっとemacs likeに
- マーク機能を使えるようになりたい
- ファイラーを使えるようになりたい(fernが候補)
- vimっぽいメモのワークフローをつくりたい
- 月単位で
memo.md
をつくって - ファイル名および中身までをfzfで検索する
- スニペットで項目フォーマットを記入する
- みたいな感じを考えているが如何
- 月単位で
- dotfilesをGitHubで管理したい
ここまでの.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. " 1: basic settings {{{1 syntax on " シンタックスハイライトをオン set nocompatible " not compatible to Vi 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 showcmd " 入力中のコマンドを表示 set wildmenu " タブによる自動補完を有効化 set wildmode=list:longest,full " 最長マッチまで補完し自動補完メニューを開く " 編集オプション filetype plugin indent on " ファイルタイプに基づいたインデントを有効化 set tabstop=4 " タブ幅を4に set expandtab " タブをスペースに変換 set shiftwidth=4 " インデントに使われるスペースの数 set autoindent " 新しい行を始めるときに自動でインデント set smartindent " smart indent set ambiwidth=double set clipboard=unnamed,unnamedplus " Use system clipboard " 折りたたみオプション set foldmethod=indent " 折りたたみ設定 *1 p65/68 set foldlevel=99 " なるべく折りたたみを開く set nrformats-=octal " <C-a/x>で8進数とはみなさない set hidden set history=2000 " 履歴を2000件持つようにする set virtualedit=block " 2: plugin: using vim-plug {{{1 call plug#begin() Plug 'tpope/vim-unimpaired' " useful mappings 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 'fuenor/qfixgrep' " grep extension Plug 'glidenote/memolist.vim' " take memos quickly Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } Plug 'https://github.com/alok/notational-fzf-vim' " fzf and notational-fzf Plug 'fmoralesc/vim-pad' " quick note taking 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() " 3: user specific {{{1 " key remap {{{2 " disable arrow keys 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 Y y$ " YをDなどと同じ感じに noremap <Space>h ^ noremap <Space>l $ nnoremap <Esc><Esc> :noh<CR><Esc> " ハイライトを消す " insert mode / emacs lik " 補完が効かないことに注意e " 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 {{{2 " すべてのファイルで永続アンドゥ (*1 p39) set undofile set undodir=$HOME/.vim/undodir " current file directry {{{2 " move current file directory *4 augroup movecurrentdir autocmd! autocmd BufRead,BufEnter * if isdirectory(expand('%:p:h')) | lcd %:p:h | endif augroup END "" vimrc関係 *4 {{{2 " 現在のバッファが空っぽならば :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> " insert timestamp let g:ts_weeks = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ] let g:ts_wkday = strftime("%w") inoremap <expr> \ <Leader>ts strftime('[%Y-%m-%d ') . \ ts_weeks[ts_wkday] . \strftime(' %H:%M]') " 4: plugin specific {{{1 "" leader+gでGundoToggle noremap <Leader>gu :GundoToggle<cr> " 見た目の設定(カラースキーム含む) {{{2 set number " 行番号表示 set laststatus=2 " ステータス行を常に表示 set list " 不可視文字の表示 set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:% set scrolloff=5 " 最低でも表示する行数 set cursorline " Highlight cursor line set foldcolumn=3 " 折りたたみ状態表示カラム数 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 " memolist.vim {{{2 let g:memolist_path = expand('~/Dropbox/u/201100_memolist') let g:memolist_memo_suffix = 'md' " let g:memolist_fzf = 1 nnoremap <Leader>mn :MemoNew<CR> " nnoremap <Leader>ml :exe "CtrlP" g:memolist_path<CR><F5> nnoremap <Leader>ml :MemoList<CR> nnoremap <Leader>mg :MemoGrep<CR> " notational-fzf-vim {{{2 let g:nv_search_paths = [ \ '~/Documents/MyNotes/201100_nvmd', \ '~/Documents/MyNotes/201100_memolist', \ '~/Documents/MyNotes/200500_Org', \ ] let g:nv_create_note_window = 'tabedit' nnoremap <silent> <Leader>nv :NV<CR> " pad-vim {{{2 let g:pad#dir = expand('~/Dropbox/u/201100_memolist') " 9: 出典リスト {{{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: