Quickfix同様、Vimのタグ関連のほぼ全てのコマンドはデフォルトでどのキーにもマップされていないので少々不便です。デフォルトで割り当てられているのは指定タグへの移動 (<C-]>→:tag {ident}等) とタグスタック間の移動 (<C-T>→:pop) のみで、特に前者はメインのキーが]で遠い位置にあるため使い辛い。という訳で試行錯誤した結果、次のように割り当てました:
" Tag-related hotkeys " Fallback " ``T'' is also disabled for consistency. noremap t <Nop> noremap T <Nop> " Alternatives for the original actions. noremap [Space]t t noremap [Space]T T " Basics nmap t<Space> tt vmap t<Space> tt nmap <C-m> tt vmap <C-m> tt nnoremap tt <C-]> vnoremap tt <C-]> nnoremap tj :tag<Return> nnoremap tk :pop<Return> nnoremap tl :tags<Return> nnoremap tn :tnext<Return> nnoremap tp :tprevious<Return> nnoremap tP :tfirst<Return> nnoremap tN :tlast<Return> " With preview window nmap t'<Space> t't vmap t'<Space> t't nnoremap t't <C-w>} vnoremap t't <C-w>} nnoremap t'n :ptnext<Return> nnoremap t'p :ptpevious<Return> nnoremap t'P :ptfirst<Return> nnoremap t'N :ptlast<Return> " although :pclose is not related to tag. nnoremap t'c :pclose<Return> " With :split nnoremap tst <C-w>] vnoremap tst <C-w>] nmap ts<Space> tst vmap ts<Space> tst nnoremap tsn :split \| tnext<Return> nnoremap tsp :split \| tpevious<Return> nnoremap tsP :split \| tfirst<Return> nnoremap tsN :split \| tlast<Return> " With :vertical split " to modify tag stacks as same as |<C-w>]|. nnoremap tvt <C-]>:vsplit<Return><C-w>p<C-t><C-w>p vnoremap tvt <C-]>:vsplit<Return><C-w>p<C-t><C-w>p nmap tv<Space> tvt vmap tv<Space> tvt nnoremap tvn :vsplit \| tnext<Return> nnoremap tvp :vsplit \| tpevious<Return> nnoremap tvP :vsplit \| tfirst<Return> nnoremap tvN :vsplit \| tlast<Return>
:split版と:vsplit版は要らない気がしなくもない。Vim: quickfix用key mappingの続き。qwを:cwindowに割り当てていましたが、:cwindowの動作が気に入らないことと、quickfix window自体あまり使わないことから削除しました。その代わりにlocation listの各種コマンドのプレフィックスにしました。
qwにしたのは覚え易さと押し易さを考えた結果です。……いや、押し易さに関しては少々無理があると思っているのですが、他に適切なキーが思いつきませんでしたし、location listも稀にしか使わないですし……
しかし何故「location list」という名前なんでしょうね? 役割はwindow-local quickfix listなのに全然それが連想できません。何か由来でもあるのかなぁ。
" Quickfix hotkeys " Fallback nnoremap q <Nop> " For quickfix list nnoremap qj :cnext<Return> nnoremap qk :cprevious<Return> nnoremap qr :crewind<Return> nnoremap qK :cfirst<Return> nnoremap qJ :clast<Return> nnoremap qfj :cnfile<Return> nnoremap qfk :cpfile<Return> nnoremap ql :clist<Return> nnoremap qq :cc<Return> nnoremap qo :copen<Return> nnoremap qc :cclose<Return> nnoremap qp :colder<Return> nnoremap qn :cnewer<Return> nnoremap qm :make<Return> nnoremap qM :make<Space> nnoremap qg :grep<Space> " For location list (mnemonic: Quickfix list for the current Window) nnoremap qwj :lnext<Return> nnoremap qwk :lprevious<Return> nnoremap qwr :lrewind<Return> nnoremap qwK :lfirst<Return> nnoremap qwJ :llast<Return> nnoremap qwfj :lnfile<Return> nnoremap qwfk :lpfile<Return> nnoremap qwl :llist<Return> nnoremap qwq :ll<Return> nnoremap qwo :lopen<Return> nnoremap qwc :lclose<Return> nnoremap qwp :lolder<Return> nnoremap qwn :lnewer<Return> nnoremap qwm :lmake<Return> nnoremap qwM :lmake<Space> nnoremap qwg :lgrep<Space>
Vimで複数の文字からなるkey mappingを入力した場合、途中経過が最下行に表示されるのですが、key mappingが<Space>で始まっていると途中経過の最初が見えず、入力したのかしてないのか判別できないので時折不便に感じます。という訳で<Space>を別のものにmapして解決しました。
map <Space> [Space] noremap [Space] <Nop> nnoremap [Space]/ :nohlsearch<Return> nnoremap [Space]e :setlocal encoding? termencoding? fenc? fencs?<Return> " ...
一応、<Space>を途中に含むkey mappingには使えないという欠点があるのですが、そんなkey mappingは使ってないのでこれで十分です。
Vimの:ppopの動作が意味不明です。ヘルプを見る限りだと、プレビューウィンドウ内で:popをするようなのですが、実際の動作は全然違うどころか意味不明です。
:tag {ident}してタグスタックに色々と積んだ後で:ppopすると、E73: tag stack emptyのエラーが発生するだけで何も起こりません。:tagsでタグスタックの内容を確認すると:ppopする前の状態が表示されるのですが、:tagや:popでタグスタック内の位置へ移動しようとしてもE73になります。:tag {ident}をすると何故かプレビューウィンドウ内で該当箇所が表示されます。その後は:tagも:popも通常通りの動作をします。:ppopをするとプレビューウィンドウではなくカレントウィンドウ内で該当箇所を表示します。その後:ppopをしても何も起こらなくなります。それに、:ptag {ident}や:ptnext等は用途 (例えばCursorHold-example) を考えると有用そうなのは分かるのですが、:ppopは全然有用とは思えません。うーん……
Vimで稀に'fileencoding'を指定してファイルを開くことがあるのですが、一々++enc=...を入力するのが面倒なので適当にコマンドを作成してみました。コマンドを作成していないエンコーディングはまだあるのですが、それらは今まで必要になったことがないので省略しています。
com! -nargs=? -complete=file -bang -bar Cp932 edit<bang> ++enc=cp932 <args> com! -nargs=? -complete=file -bang -bar Eucjp edit<bang> ++enc=euc-jp <args> com! -nargs=? -complete=file -bang -bar Iso2022jp Jis<bang> <args> com! -nargs=? -complete=file -bang -bar Jis edit<bang> ++enc=iso-2022-jp <args> com! -nargs=? -complete=file -bang -bar Sjis Cp932<bang> <args> com! -nargs=? -complete=file -bang -bar Utf8 edit<bang> ++enc=utf-8 <args>
先週稼動したbeatmaniaIIDX14 GOLDですが、今日になってようやく暇ができたので一通りプレイしてきました。以下、その感想:
SP五段合格 (達成率76%) ! 曲順は
でした。ここ一ヶ月ほど全然プレイできなかったので腕が鈍ってると思っていたのですが、意外とできたので驚きました。前作と同段位ですが、今回は片手的難曲のsyncありで合格したので嬉しいですね。とはいえ実際のところはかなりグダグダで、適当に鍵盤を押してゲージを残していたので、素直に喜べない部分もあります。でもまあこれはこれでいいかな。
また、Don't be afraid myselfが意外と難しくて驚きました。下手するとsyncよりも難しいかも知れない。syncは前半の一定区間が全然押せないのですが、Don't be afraid myselfは全体的に押し難く、ほとんどの場面で30%ゾーンすれすれになっていました。今回はLOVE SHINEが選ばれなかったので良かったものの、LOVE SHINEの後にDon't be afraid myselfかsyncが選ばれたら落ちてたかも知れません。
反省点としては、1曲目にJIVE INTO THE NIGHTが来たので後先考えずにハイテンションでプレイしてしまったこと。だってJIVEだし。体力使ってしまって残りが辛かった。
特に印象に残ったものは次の通り:
黒鍵でカテゴリークローズ、取得段位でSTANDARDの選曲制限緩和等、以前KONAMIに送ったことのある要望と同じものが追加されてて驚きました。どちらも需要ありそうでしたし、同じような声が多かったのでしょうか。まあ後者は選曲制限の基準が変わったというのもあるでしょうけれど。
前作までは選曲時にフォルダを開いた際の効果音が機械的な読み上げ音声だったのですが、今作ではテーマに合わせたのかやたらとハイテンションです。特にHAPPY SKYフォルダを開いたときは「ハッピーーーースカーイ!」と何故か溜めが長くて笑ってしまいます。他のフォルダを開いたときは「ツーディーエックスレーッド!」等と (ハイテンションだけど) 普通なのになぁ。