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

【VScode】vim拡張機能でノーマルモードに戻る時に合わせて英数入力に切り替える

$
0
0

VScodeのvimの拡張機能を追加した状態で日本語のテキストを入力した後、ノーマルモードに戻った時に明示的に英数入力に切り替える操作が面倒だったので、
自動でに切り替える方法がないか調べたらドキュメントに設定方法の記載が見つかりました。
以下はMac向けですが他OSの設定方法もドキュメントに記載があります。

im-selectの準備

ドキュメント記載の方法ではim-selectというコマンドラインツールを使います。

インストール

以下のコマンドでインストールを行います。

curl -Ls https://raw.githubusercontent.com/daipeihust/im-select/master/install_mac.sh | sh

インストール後コマンドが実行できる状態になっていればOKです。

$ curl -Ls https://raw.githubusercontent.com/daipeihust/im-select/master/install_mac.sh | sh
* Downloading im-select...
* im-select is installed!

$ which im-select
/usr/local/bin/im-select

im-selectの使い方、動作確認

現在の入力状態(imkey)の確認

インストール後im-selectコマンドを実行すると現在の入力状態を表すパラメータ(imkey)が取得できます。
自分のgoogle日本語入力を使っている環境では以下の値が表示されました。このパラメータは各自の環境で異なったものになると思います。

# 英数入力状態の実行結果
$ im-select
com.google.inputmethod.Japanese.Roman

# 日本語入力状態の実行結果
$ im-select
com.google.inputmethod.Japanese.base

指定のimkeyへの切り替え

先程のパラメータを以下のようにim-selectに指定してあげることで入力状態の切り替えを行うことができます。
先程取得したパラメータを指定して入力状態の切り替えができればim-select側の準備は完了です。

# 英数入力へ切り替え
im-select com.google.inputmethod.Japanese.Roman

# 日本語入力へ切り替え
im-select com.google.inputmethod.Japanese.base

vscode側の切り替え設定

vim拡張機能には入力切り替え用に以下の設定項目があります。
それぞれ設定してあげることでim-selectコマンドの切り替えが実行され、ノーマルモードに切り替えた際に合わせて英数入力へ切り替わるようになります。

設定値説明
vim.autoSwitchInputMethod.enableインサートモードを抜けた際のコマンド実行の有効/無効
vim.autoSwitchInputMethod.defaultIMデフォルト(ノーマルモード時)の入力状態を表すパラメータ
vim.autoSwitchInputMethod.obtainIMCmd現在の入力状態のパラメータを取得するコマンドのフルパス
vim.autoSwitchInputMethod.switchIMCmd入力状態の切り替えを行うコマンドのフルパス。 {im}部分には上記のデフォルト入力状態のパラメータが自動的に置換されて入力されます

今回の場合は以下のような設定値になります。

"vim.autoSwitchInputMethod.enable":true,"vim.autoSwitchInputMethod.defaultIM":"com.google.inputmethod.Japanese.Roman","vim.autoSwitchInputMethod.obtainIMCmd":"/usr/local/bin/im-select","vim.autoSwitchInputMethod.switchIMCmd":"/usr/local/bin/im-select {im}"

設定画面では以下のような感じになると思います。

vscode-vim-setting.png

この設定を反映後、vimのインサートモードからノーマルモードの切り替えのタイミングで入力状態も英数入力へ切り替わっていれば設定完了です。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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