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

VSCodeVimでインサートモードから抜ける時に日本語入力をオフにする

$
0
0

背景

  • VSCodeVimで日本語入力するとき、Escでインサートモードから抜けたときには日本語入力がオフになっていてほしい
  • 公式Gitではim-selectを使った方法が紹介されているが、これはIMEの切り替えであって日本語入力オフではない
  • 上記をなんとかするためあれこれやった

環境

OS: Windows10 Pro バージョン 1903
IME: Google IME

前提

IME設定とAutohotkeyが必要

IME設定で無変換をIMEオフに割り当てる

無変換を入力した場合にIMEがオフになる設定をする。

GoogleIMEを利用している場合は
「Google日本語入力 無変換 IMEオフ」とかで検索すれば設定方法がヒットするはず。
MS-IMEでも設定可能。

Autohotkeyで無変換を入力するだけのスクリプトを書く

最初にAutohotkeyというツールを公式サイトからダウンロードしてインストールする。

Autohotkeyは元々任意のキーマップを設定したりするためのツールだが、
スクリプトを単体で実行すると、単にキーを入力するだけの処理を実行できる。

これを利用して、無変換キーを入力するだけのスクリプトを作っておく。
名前は ImDisable.ahk とする。スクリプトの場所はどこでも良い。

ImDisable.ahk
Send,{vk1D}

VSCodeVim側の設定

  • Ctrl + , で出てくる設定画面から、更に右上のボタンをクリックすることで設定ファイルであるsettings.jsonを開く。バージョンによってボタンのUIが変わっていたりするのでちょっと分かりにくい。
  • settings.json に以下の記述を追加する
  • Autohotkey.exe と IMDisable.ahk のパスは適宜自分が配置した場所を記述する
  • defaultIMの設定内容は使わないので何でも良い。とりあえずjaにしてある。
  • switchIMCmd にある {im} は引数としてAutohotkey.exeに渡されるが利用しない。ないとVScodeVim側でエラーが出るのでとりあえず入れてある
{"vim.autoSwitchInputMethod.enable":true,"vim.autoSwitchInputMethod.defaultIM":"ja","vim.autoSwitchInputMethod.obtainIMCmd":"C:\\path\\to\\AutoHotkey.exe C:\\path\\to\\ImDisable.ahk","vim.autoSwitchInputMethod.switchIMCmd":"C:\\path\\to\\AutoHotkey.exe C:\\path\\to\\ImDisable.ahk {im}",}

おわり

ここまでの設定が完了すれば、インサートモードから抜けるときに日本語入力がオフになる。
Esc で抜けようが Ctrl+[ で抜けようがちゃんとオフになってくれるので地味に便利。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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