vimで記号が含まれたショートカットキーの入力が面倒なので改善したい
解決済
回答 2
投稿
- 評価
- クリップ 0
- VIEW 1,473
いつもお世話になっております。
vimでショートカットキーに記号を含んだ物があります。例えば「di"」や「"0p」など記号を含んだショートカットキーがありますが、利用する際にshiftキーをホールドしながら入力するのは面倒に感じます。
もしshiftキーのホールドがなければもっと気持ち良く入力出来るのに思いますが、vim側、またはPC側で設定する方法があれば教えて頂けないでしょうか?
私の環境ではテンキーがあるので数字入力をテンキーのみにするなどを出来ればと考えているので、調べても出て来ません。もしかしたら、それを設定することによって何か不具合が発生するのではないかと思うのですが、どうなのでしょうか。
環境
macOS sierra 10.12.2
キーボード mac純正 テンキーつき
IME Google日本語入力
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
現象から、CUIのVim(Terminal.appやiTerm2などの端末上で使うVim)を使っていると想定して書きます。
本題のメインキーの数字キーの動作を変える方法については thinca さんの設定例で行えるはずです。
以下は、テンキーの数字キーまで動作が変わってしまう原因についてです。
何も設定を行っていない標準の状態では、CUIのVimではテンキーは使えないはずです。テンキーを使えるようにする為に、何か設定を行いませんでしたか?
例えばTerminal.app上のVimでテンキーを使えるようにする為の設定として、
設定 - プロファイル - 詳細
にあるVT100アプリケーションのキーパッドモードを許可
のチェックを外す
というのが Google 検索で見つかりますが、この設定を行っていませんか?
上記設定は「テンキーの数字/記号キーとメインキーの数字/記号キーを区別するモードに変更するのを許可する」かを設定する為の物です。
この設定のチェックを外すとメインキーの数字キーとテンキーの数字キーを区別するモードに端末が変わらなくなる為、テンキーの数字キーがメインキーの数字キーと同じ動作になります。
その為、メインキーの数字キーの動作を変更すると、テンキーの数字キーも同じ動作に変わってしまいます。
メインキーの数字キーとテンキーの数字キーで別の動作をさせる為には、上記設定のチェックを入れたままにする必要があります。
上記設定を有効にしたままテンキーを使えるようにするには、以下の方法があります。
- Vim 8.1.0142 以降を使う
- Vim が正しくテンキーを認識できるようにする設定を行う
お勧めなのは Vim 8.1.0142 以降を使う方です。
Vim 8.1.0142 でテンキーを正しく認識する為のパッチが取り込まれた為、これ以降のバージョンのVimを使っている場合はなにも設定しなくてもテンキーが使えるはずです。
Vimのバージョンアップが行えない場合は、テンキーを正しく認識できるようにする設定を行う必要が有ります。この場合、以下の設定を .vimrc に追加して下さい。
if ((&term =~ "xterm" || &term =~ "vt100") && !has("patch-8.1.0142")) || &term =~ "screen"
if &term =~ "screen" || &term =~ "vt100"
" keypad + <kPlus>
exec "set t_K6=\eOk"
" keypad - <kMinus>
exec "set t_K7=\eOm"
" keypad / <kDivide>
exec "set t_K8=\eOo"
" keypad * <kMultiply>
exec "set t_K9=\eOj"
" keypad Enter <kEnter>
exec "set t_KA=\eOM"
" keypad . <kPoint>
exec "set t_KB=\eOn"
endif
" keypad 0 <k0>
exec "set t_KC=\eOp"
" keypad 1 <k1>
exec "set t_KD=\eOq"
" keypad 2 <k2>
exec "set t_KE=\eOr"
" keypad 3 <k3>
exec "set t_KF=\eOs"
" keypad 4 <k4>
exec "set t_KG=\eOt"
" keypad 5 <k5>
exec "set t_KH=\eOu"
" keypad 6 <k6>
exec "set t_KI=\eOv"
" keypad 7 <k7>
exec "set t_KJ=\eOw"
" keypad 8 <k8>
exec "set t_KK=\eOx"
" keypad 9 <k9>
exec "set t_KL=\eOy"
endif
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
私はテンキーを使っていないので動作は確認していないですが、以下のようにするとどうでしょうか?
noremap 1 !
noremap 2 "
noremap 3 #
" 以下同様
" 上記だけだとテンキーの数字も記号になってしまうかもしれない。もしそうなら以下を試してみる
noremap <k1> 1
noremap <k2> 2
noremap <k3> 3
" 以下同様
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.12%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる