imap jkを無効にするには、set Pasteを使用してください。

imap jkを無効にするには、set Pasteを使用してください。

Escの代わりにjkを押すことができるように、~/.vimrcで次の行を使用します。

:imap jk <Esc>

貼り付けるには:setを追加するまでうまくいきました。

" Pressing jk is same as pressing Esc
:imap jk <Esc>

" Enable paste from system clipboard
" Bug? This disables imap jk <Esc>  
set paste 

なぜこれが起こるのか教えてくれる人がいますか?少なくとも次のシステムで発生します。

ホスト:Amazon Linux AMI Vimバージョン:7.4

ホスト:MacOS 10.14.5 Vimバージョン8.0.1283

ベストアンサー1

これは予想されます。

ポイントは'paste'無効な機能のリストからテキストと挿入モードのマッピングを貼り付けるときに「意図しない効果を防ぐ」ことです。

~から:help 'paste':

この'paste'オプションがオンの場合(すでにオンになっていても):

  • 挿入モードとコマンドラインモードでマッピングを無効にする
  • 略語が無効になっています。
  • [...]

さらに、インデントやテキストの折り返しに関連するオプションなど、Vimが貼り付けたテキストを変更する他のオプションも無効になります。

貼り付けモードで特殊キー入力(挿入モードを終了するために使用されるESCを除く)の唯一の例外は、次のように設定されたキー入力です。'pastetoggle'、設定されている場合。このキーは、貼り付けモードを無効にして(有効になっている場合)、通常の挿入モードに戻ることができます。

また'paste'、ほとんどの場合、モーダルは実際に開いてはいけません。 Vimが有効になると、多くのVim機能が無効になるため、通常は貼り付け中に1つの機能のみを使用してからすぐに無効にするだけです。


貼り付けモードに便利なキーバインディングがあるプラグインの推奨事項を確認したい場合は、tpopeをお勧めします。vimは破損していません、次の3つのマッピングを公開します(通常モードで):

  • [op:現在の行の前に貼り付ける
  • ]op:現在の行の後ろに貼り付ける
  • yop:現在行を貼り付けて置き換えます。

すべての場合、Vimはオープン中に挿入モードに入り、'paste'ESC'paste'を使用して挿入モードを終了するとすぐに閉じます。オプションがオンのときに貼り付け操作のみを実行するため、1 つのキー入力、実際の貼り付け、ESC 順序が 1 つの一貫した作業になるという概念です。

バラより:help pastingこのプラグインの場合詳細については。

おすすめ記事