Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

VSCodeのVimでVSCode本体のUndo/Redoを使う

$
0
0

はじめに

VSCodeVimのデフォルトのUndo/Redoは、拡張機能側の独自実装なので、本来のVSCodeのUndo/Redo機能とは挙動が多少異なることがある。

  • Undoで変更前の状態に戻しても変更されたファイルとして扱われる
  • 外部 (Git等) でファイルの内容が変更された場合、全く戻すことができない

大きな問題にはならないが、違和感を感じたので、ユーザ設定を変更しVSCodeVimでVSCode本体のUndo/Redoを呼ぶように変更する。具体的には、vim.otherModesKeyBindingsを変更する。

keybindings.jsonで変更することも考えたが、uが見つからなかったため断念した。
(Ctrl+Rはできる)

ユーザ設定

以下の内容を、ユーザ設定ファイルに追加する。

settings.json
{"vim.otherModesKeyBindingsNonRecursive":[{"before":["u"],"after":[],"commands":[{"command":"undo"}]},{"before":["<C-r>"],"after":[],"commands":[{"command":"redo"}]}]}

説明

vim.otherModesKeyBindingsは、挿入モード以外でのキーバインドを上書きするために用意されている設定である。上記ではuundoを、Ctrl+Rredoを実行させている。

まとめ

VSCodeVimのUndo/Redoに対する違和感が解消できた。他にも、vim.handleKeysで一部のキーを無効にしたり、vim.insertModeKeybindingsで挿入モード時のキーバインドを変更したりできる。詳細はVSCodeVimを参照のこと。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>