挿入モードに入らずに空白行を追加できるようにするために、ALT-o
およびALT-O
をo<ESC>
およびo<ESC>
にマッピングしようとしています
私は.vimrc
で次のことを試しました
map <M-o> o<ESC>
map <M-O> O<ESC>
そして
map <ALT-o> o<ESC>
map <ALT-O> O<ESC>
および(以下に推奨)
map <A-o> o<ESC>
map <A-O> O<ESC>
しかし、どれも機能しません。 ALT-o
が定義されていないかのように、通常の動作を提供します。
.vimrc
ファイルを変更するのはこれが初めてであり、ドキュメントにさまざまなキーの指定方法が記載されている場所がわかりません。しかし、以下を含めることで、.vimrc
ファイルが読み取られていることを確認できます。
map <Enter> ihello<ESC>
これは、<Enter>
をhello
の挿入に正常にマップし、コマンドモードに戻ります。
私はcygwinでvimを使用しています。
キーを押したときに端末が送信しているものを確認するには、挿入モードに切り替え、Ctrl+V
を押してからキーを押します。ほとんどの端末のほとんどのキーは、最初の文字だけが制御文字であるエスケープシーケンスを送信します。 Ctrl+V
は、次の文字を文字どおりに挿入するため、エスケープシーケンス全体をそのまま挿入できます。
端末によって、キーの組み合わせによって異なるエスケープシーケンスが送信されます。多くの端末は、^O
とCtrl+O
の両方に同じ文字(Ctrl+Shift+O
)を送信します。その場合、Vimはそれらを区別できません。
あなたはCygwinを使用していると述べました。 Vimを実行している端末が最も適切な情報です。ネイティブのWindowsコンソールを使用している場合は、より良い端末を入手してください。 X以外のWindowsの端末でCygwinテキストモードアプリケーションを実行する場合は MinTTY をお勧めしますが、CygwinのWindowsネイティブRXVTおよび PuTTYcyg も適しています。 (また Console2 Windowsコンソールアプリケーションを実行しますが、ここではトピックから外れています)。
Control+V
の後にALT-x
が続いて^[x
と表示される場合(ターミナルに入力)、この小さなスクリプトで vim.wikia.com から修正できます。
for i in range(97,122)
let c = nr2char(i)
exec "map \e".c." <M-".c.">"
exec "map! \e".c." <M-".c.">"
endfor
すべてのaltキーマッピングの.vimrcに追加します。
これは、Ubuntu 16.04 xfceターミナル(およびalacritty Rustターミナル)で動作します。
UltisnipスニペットトリガーをMeta-/
に設定します(emacsスニペットと同じように)
let g:UltiSnipsExpandTrigger="^[/"
ここで、vimに^[/
と入力します
挿入モードの場合Ctrl-V Alt-/
(Meta
は私のPCキーボードのAlt
キーです)