質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

解決済

1回答

320閲覧

vimにて入力モードから抜けるに時間が掛かる。

yuki_90453

総合スコア326

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2019/05/27 08:12

いつもお世話になっております。

###抱えている問題
vimにて入力モードから抜けるに1~2秒掛かってしまいます。

具体的には、文字入力後、ESCキーを押し:wなどコマンドを入力すると、「:」が文字入力された後に入力モードから抜けてしまいます。
このようにESCキーの後に入力した文字やコマンドが、ESCより先に入力されてしまい困っています。

スペックは一般的なPCなので問題ないと思いますが、恐らく設定ファイルに問題があると思います。
怪しいぶぶんがあればご指摘頂けないでしょうか?

###設定ファイル

" dein settings {{{ " dein自体の自動インストール let s:cache_home = empty($XDG_CACHE_HOME) ? expand('~/.vim') : $XDG_CACHE_HOME let s:dein_dir = s:cache_home . '/dein' let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim' if !isdirectory(s:dein_repo_dir) call system('git clone https://github.com/Shougo/dein.vim ' . shellescape(s:dein_repo_dir)) endif let &runtimepath = s:dein_repo_dir .",". &runtimepath " プラグイン読み込み&キャッシュ作成 let s:toml_file = fnamemodify(expand('<sfile>'), ':h').'/.dein.toml' if dein#load_state(s:dein_dir) call dein#begin(s:dein_dir, [$MYVIMRC, s:toml_file]) call dein#load_toml(s:toml_file) call dein#end() call dein#save_state() endif " 不足プラグインの自動インストール if has('vim_starting') && dein#check_install() call dein#install() endif " }}} "----------------------------------------------------------------------- "Qfixhowm キーマップリーダー "----------------------------------------------------------------------- " let QFixHowm_Key = 'g' " " " howm_dirはファイルを保存したいディレクトリを設定 " let howm_dir = '~/Documents/memo' " let howm_filename = '%Y/%m/%Y-%m-%d-%H%M%S.txt' " let howm_fileencoding = 'utf-8' " let howm_fileformat = 'unix' " " " 個人的には以下を追加設定しておくのをおすすめします。 " " キーコードやマッピングされたキー列が完了するのを待つ時間(ミリ秒) " set timeout timeoutlen=3000 ttimeoutlen=100 " " プレビューや絞り込みをQuickFix/ロケーションリストの両方で有効化(デフォルト:2) " let QFixWin_EnableMode = 1 "----------------------------------------------------------------------- "複数カーソル "----------------------------------------------------------------------- " nnoremap <C-e> :MultipleCursorsFind "----------------------------------------------------------------------- " quickrun.vim "----------------------------------------------------------------------- nnoremap qr :QuickRun<CR> " <C-c> で実行を強制終了させる " quickrun.vim が実行していない場合には <C-c> を呼び出す nnoremap <expr><silent> <C-c> quickrun#is_running() ? quickrun#sweep_sessions() : "\<C-c>" let g:quickrun_config = { \ "_" : { \ "runner" : "job", \ "runner/vimproc/updatetime" : 60, \ "outputter/error/success" : "buffer", \ "outputter/buffer/split" : ":botright 8sp", \ "outputter/buffer/running_mark" : "バン(∩`・ω・)バンバンバンバン゙ン", \ "hook/time/enable" : 1, \ }, \} "----------------------------------------------------------------------- " NERDTreeを起動 "----------------------------------------------------------------------- " let file_name = expand('%') " if has('vim_starting') && file_name == '' " autocmd VimEnter * NERDTree ./ " endif " " サイドバー表示/非表示 " " nnoremap kb :NERDTreeToggle<CR> " "横幅 " let g:NERDTreeWinSize = 20 " クリップボード有効化 set clipboard+=unnamed set clipboard+=autoselect set vb t_vb= "音を出さないようにする " 行番号表示 set number syntax on " オートセーブ オン let g:auto_save = 1 let g:auto_save_in_insert_mode = 0 let g:auto_save_silent = 1 " アンドゥの永久化 set undodir=$HOME/Vim/dotfiles set backupdir=$HOME/Vim/dotfiles set undofile "折り返し set wrap set linebreak set breakindent "インデント set shiftwidth=22 " vimを立ち上げたときに、自動的にvim-indent-guidesをオンにする " let g:indent_guides_enable_on_vim_startup = 1 set list listchars=tab:\¦\ "----------------------------------------------------------------------- " インデント関係 "----------------------------------------------------------------------- " 改行時に前の行のインデントを継続する set autoindent " 改行時に入力された行の末尾に合わせて次の行のインデントを増減する set smartindent " タブ文字の表示幅 set tabstop=1 " Vimが挿入するインデントの幅 set shiftwidth=1 " 行頭の余白内で Tab を打ち込むと、'shiftwidth' の数だけインデントする set smarttab "----------------------------------------------------------------------- " vimgrep "----------------------------------------------------------------------- nnoremap [q :cprevious<CR> " 前へ nnoremap ]q :cnext<CR> " 次へ nnoremap [Q :<C-u>cfirst<CR> " 最初へ nnoremap ]Q :<C-u>clast<CR> " 最後へ " Anywhere SID. function! s:SID_PREFIX() return matchstr(expand('<sfile>'), '<SNR>\d+_\zeSID_PREFIX$') endfunction " Set tabline. function! s:my_tabline() "{{{ let s = '' for i in range(1, tabpagenr('$')) let bufnrs = tabpagebuflist(i) let bufnr = bufnrs[tabpagewinnr(i) - 1] " first window, first appears let no = i " display 0-origin tabpagenr. let mod = getbufvar(bufnr, '&modified') ? '!' : ' ' let title = fnamemodify(bufname(bufnr), ':t') let title = '[' . title . ']' let s .= '%'.i.'T' let s .= '%#' . (i == tabpagenr() ? 'TabLineSel' : 'TabLine') . '#' let s .= no . ':' . title let s .= mod let s .= '%#TabLineFill# ' endfor let s .= '%#TabLineFill#%T%=%#TabLine#' return s endfunction "}}} let &tabline = '%!'. s:SID_PREFIX() . 'my_tabline()' set showtabline=2 " 常にタブラインを表示 " The prefix key. nnoremap [Tag] <Nop> nmap t [Tag] " Tab jump for n in range(1, 9) execute 'nnoremap <silent> [Tag]'.n ':<C-u>tabnext'.n.'<CR>' endfor " t1 で1番左のタブ、t2 で1番左から2番目のタブにジャンプ map <silent> [Tag]c :tablast <bar> tabnew<CR> " tc 新しいタブを一番右に作る map <silent> [Tag]x :tabclose<CR> " tx タブを閉じる map <silent> [Tag]n :tabnext<CR> " tn 次のタブ map <silent> [Tag]p :tabprevious<CR> " tp 前のタブ if has('mac') if has('gui_running') let IM_CtrlMode = 4 else let IM_CtrlMode = 1 function! IMCtrl(cmd) let cmd = a:cmd if cmd == 'On' let res = system('osascript -e "tell application \"System Events\" to keystroke (key code {104})" > /dev/null 2>&1') elseif cmd == 'Off' let res = system('osascript -e "tell application \"System Events\" to keystroke (key code {102})" > /dev/null 2>&1') elseif cmd == 'Toggle' let res = system('osascript -e "tell application \"System Events\" to keystroke (key code {55, 49})" > /dev/null 2>&1') endif return '' endfunction endif " 「日本語入力固定モード」のMacVimKaoriya対策を無効化 let IM_CtrlMacVimKaoriya = 0 " ctrl+jで日本語入力固定モードをOnOff inoremap <silent> <C-j> <C-^><C-r>=IMState('FixMode')<CR> endif "Rubyのファイルを開いたら自動でファイルタイプの設定 au BufNewFile,BufRead *.rb set filetype=ruby "----------------------------------------------------------------------- " vim 見た目 "----------------------------------------------------------------------- " Emmet let g:user_emmet_leader_key = '<C-e>' set backspace=indent,eol,start

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ESCから始まるキーマップが入力モードで定義されているのでは?

投稿2019/05/27 14:48

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問