let g:mapleader = "\" " sh,vim,help,c以外の多くのftでは不要 nnoremap K call nvim_create_autocmd('FileType', #{ \ pattern: ['bash', 'zsh', 'sh', 'vim', 'help', 'c', 'cpp', 'man'], \ group: 'VimRc', \ command: 'nnoremap K K', \ }) " 空行でインサートを開始するときにインデントする nnoremap a getline('.')->empty() ? '"_cc' : 'a' nnoremap i getline('.')->empty() ? '"_cc' : 'i' " Emacs-style key mappings (cmdline mode) cnoremap cnoremap " <[AC]-[fb]>は使わない " カーソルが一番左にあるときはgetcmdpos()は1を返す " 'hello'[:0] => 'h' なので、カーソルがh|elloにあるとき(getcmdpos() == 2)で0になるようにする " 1のときに -2 するとおかしいのでそこだけ対応する cnoremap call setcmdline(getcmdpos() == 1 ? '' : getcmdline()[:getcmdpos() - 2]) " Fuzzy Finder nmap ff (ff-files) nmap fc (ff-config_files) nmap fw (ff-grep) nmap fh (ff-help_tags) nmap fs (ff-lines) nmap fb (ff-buffers) nmap fn (ff-resume) " ファイルに紐付いているバッファならその親ディレクトリを指定する " そうでない場合はcwd nmap e execute 'edit' (!getbufinfo(0)->empty() && &l:buftype->empty() ? '%:h' : '.')