Insertモードで編集している間にソースコードを貼付けたい時に、毎回’set paste’と’set nopaste’をやらないといけない、ちょっと面倒くさいです。
更に、’set paste’抜きで貼付けた場合、内容の長さによりvimが一時的にフリーズしちゃいますので大変です。
コマンドマッピングを導入しても、結局自分でコマンドを入れないといけないですね。
なので今日は移動的に’set paste’と’set nopaste’をしてくれる便利なプラグインを紹介します。
Installation
リポはこちらです。https://github.com/ConradIrwin/vim-bracketed-paste
バンドル管理ツール経由でインストールします。私の環境では
1
|
|
Make a step deeper
基本的なアイディアはシステムのbracketed paste挙動を探知して、コマンドマッピングを自動で実行されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Reference
- What is alternate screen? http://superuser.com/questions/321204/what-does-terminal-apps-show-alternate-screen-do-os-x
以下はプラグインのソースから抜きました。
- http://stackoverflow.com/questions/5585129/pasting-code-into-terminal-window-into-vim-on-mac-os-x
- https://coderwall.com/p/if9mda
- https://github.com/aaronjensen/vimfiles/blob/59a7019b1f2d08c70c28a41ef4e2612470ea0549/plugin/terminaltweaks.vim to fix the escape time problem with insert mode.
- Docs on bracketed paste mode. http://www.xfree86.org/current/ctlseqs.html
- Docs on mapping fast escape codes in vim. http://vim.wikia.com/wiki/Mapping_fast_keycodes_in_terminal_Vim