OPENLOGI Advent Calendar 2019 の記事です。
昨年、完全に自分用に作ったプラグインですがなかなか便利なので紹介します。
理想のエディターを求めて
- ベースの環境としては VS Code を使いたい!
- カーソル操作は Vim キーバインドを使いたい!
- 文字入力時は Emacs キーバインドを使いたい!
というわがままな人のために VSCode Extension です。
Vimacs for VSCode
https://marketplace.visualstudio.com/items?itemName=migrs.vimacs
できること
- インサートモードで基本的な Emacs キーバインディングが使える
- カーソル移動以外ではリージョン操作系にも対応
- VS Code のコマンド入力やファイル選択のUIでも
Ctrl+N
,Ctrl+P
などのカーソル移動に対応
詳しくは
自分のブログの方で紹介してますのでそちらを参照してください
https://m.igrs.jp/blog/2019/12/14/vimacs-for-vscode/
暫定対処
上記記事内にも書いてますが、期待通りに動かないキーバインドがあります。
現在私の方では以下の Emacs の切り取り(Ctrl+W)が動かないので keybindings.json
で再度定義しています。
{
"key": "ctrl+w",
"command": "emacs.action.clipboardCutAction",
"when": "editorTextFocus && editorHasSelection && !editorReadonly && vim.mode == 'Insert'"
}
VSCode 拡張の開発について
久しぶりに触ってみたら忘れていた部分もあったので備忘録的に残しておきます。
VSCode の拡張開発には vsce というライブラリを利用します。
ビルドと検証と公開
ローカルパッケージの作成
vsce package
ローカルパッケージのインストール
code --install-extension vimacs-1.1.1.vsix
マーケットプレイスへの公開
vsce publish
基本的にはこれだけです。
アカウントの作成
ここらへん、以前と手順というか仕組みが異なった気がします。
基本的には Azure DevOps というところで、Organization と Project というものを用意して管理する必要があるようです。
https://dev.azure.com/[OrganizationID]
セキュリティートークンの場所もわかりにくくURL的には以下になります。
https://dev.azure.com/[OrganizationID]/_usersSettings/tokens
詳しくは公式のドキュメントをどうぞ
Publishing Extensions