" memo " - を使うと、コマンドラインにコマンドが出力されないようになる。 " e.g " - nnoremap sb :b# " →一番下のラインには何も表示されない。 " - nnoremap sb :b# " →一番下のラインには :b# が表示されない。 " "文字コードをUFT-8に設定 set encoding=utf-8 scriptencoding utf-8 " let s:script_path = expand(':p') " echom '[debug]enter ' . s:script_path " にする let mapleader = "\" " Don't use Ex mode, use Q for formatting noremap Q gq " CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, " so that you can undo CTRL-U after inserting a line break. inoremap u " 折り返し時に表示行単位での移動できるようにする nnoremap k gk nnoremap j gj vnoremap k gk vnoremap j gj nnoremap gk k nnoremap gj j vnoremap gk k " にハイライト消去・ファイル変更適用効果を追加 nnoremap :nohlsearch:checktime nnoremap :nohlsearch " 検索で使う規定の正規表現を Very Magic にする nmap / /\v " jj で insert mode を抜ける inoremap jj " WSLかどうかを判定する " cf.https://moyapro.com/2018/03/21/detect-wsl/ function! s:isWsl() return filereadable('/proc/sys/fs/binfmt_misc/WSLInterop') endfunction " insert mode を抜けるときIMEをオフにする " cf.https://moyapro.com/2018/04/02/disable-ime-on-wsl-vim/ if s:isWsl() && executable('AutoHotkeyU64.exe') augroup insertLeave autocmd! autocmd InsertLeave * :call system('AutoHotkeyU64.exe "C:/linux_home/git/dotfiles/nvim/userautoload/init/ImDisable.ahk"') augroup END endif " 誤動作すると困るキーを無効にする nnoremap ZZ nnoremap ZQ " 矢印キーを無効にする noremap noremap noremap noremap inoremap inoremap inoremap inoremap " 行を移動 nnoremap :m-2== nnoremap :m+== " 複数行を移動 xnoremap :m-2gv=gv xnoremap :m'>+gv=gvk " Yでカーソル位置から行末までヤンクする nnoremap Y y$ " x,Xでカーソル文字を削除する際レジスタを汚さない nnoremap x "_x vnoremap x "_x nnoremap X "_X vnoremap X "_X " s,Sでカーソル文字を削除する際レジスタを汚さない設定 nnoremap s "_s vnoremap s "_s nnoremap S "_S vnoremap S "_S " c.f. http://vimblog.hatenablog.com/entry/vimrc_key_mapping_examples " ビジュアルモードで < > キーによるインデント後にビジュアルモードが解除されないようにする vnoremap < >gv " n, N キーで「次の(前の)検索候補」を画面の中心に表示する nnoremap n nzz nnoremap N Nzz " 数字のインクリメント/デクリメント nnoremap + nnoremap - "押しにくい$及び^をリマッピング nmap H ^ nmap L $ vmap H ^ vmap L $ " vp doesn't replace paste buffer " cf. http://deris.hatenablog.jp/entry/2013/05/02/192415 function! RestoreRegister() let @" = s:restore_reg return '' endfunction function! s:Repl() let s:restore_reg = @" return "p@=RestoreRegister()\" endfunction nmap p Repl() " ウィンドウ関連 " c.f. https://qiita.com/tekkoc/items/98adcadfa4bdc8b5a6ca " c.f. http://ivxi.hatenablog.com/entry/2013/05/23/163825 nnoremap s nnoremap s= = nnoremap sh h nnoremap sj j nnoremap sk k nnoremap sl l nnoremap sp :bprevious nnoremap sn :bnext nnoremap sr r nnoremap sw w nnoremap sH H nnoremap sJ J nnoremap sK K nnoremap sL L nnoremap so _| nnoremap sO = nnoremap sd :bd nnoremap ss :sp nnoremap sv :vs nnoremap st :tabnew nnoremap sx :tabclose nnoremap gt nnoremap gT " function key 関連 " cf. " 相対行番号表示の切り替え nnoremap :set relativenumber! " コマンドラインモードで %% を入力すると現在編集中のファイルのフォルダのパスが展開されるようにする cnoremap %% =expand('%:p:h').'/' " コマンドライン補完の選択キー set wildcharm= cnoremap pumvisible() ? "\" : "\" cnoremap pumvisible() ? "\" : "\" " terminal の設定 " 新しいタブでターミナルを起動 nnoremap @t :tabe:terminal " Ctrl + q でターミナルを終了 tnoremap :q " ESC or jj でターミナルモードからノーマルモードへ tnoremap tnoremap jj vnoremap gj j " オートコンパイルする " augroup setAutoCompile " autocmd! " autocmd BufWritePost *.tex | :!latexmk -lualatex % " " autocmd BufWritePost *.c | :!gcc %:p " " autocmd BufWritePost *.R | :!R -f %:p " augroup END