web-dev-qa-db-ja.com

キーボードレイアウトを切り替えるコマンド

Qwertyとは異なるレイアウトのキーボードを使用しています。これは、vimエディターを使用するときの痛みなので、vimを使用している場合にのみキーボードレイアウトをqwertyに変更することにしました。 Vimを起動/終了するときにレイアウトを変更するオートコマンドを使用するというアイデアを思いつきました。 (私はvimの初心者であり、vimについてあまり知らないので、それが考えられるすべてでした。)

私のUbuntuは18.04です。 「地域と言語」の「設定」で「ウィンドウごとに異なるソースを許可する」オプションキーをクリックしました。 setxkbmapコマンドは、キーボードレイアウトシステム全体を変更します。それをうまく機能させる方法や他の適切なコマンドを知っていますか?

また、vimの設定方法に関する提案もありがたいです(ただし、これはVimのコミュニティサイトに投稿する方が適切かもしれません)。

4
kazuki

この行を~/.vimrcに追加するだけで十分です:

set keymap=foo

ここで、fooはキーマップの名前です。たとえば、set keymap=greekでテストし、vimを開いたときにギリシャ語で入力していました(もちろん、終了できませんでしたが、それはvimです)。


何らかの理由でそれがうまくいかない場合は、代わりに試すことができるい、ハックなアプローチがあります。これを~/.bashrcに追加します:

vim(){
  setxkbmap XX ## change this to whatever keymap you use for vim
  command vim  ## launch the actual vim executable
  setxkbmap YY ## change to whatever your default layout is
}

次に、新しいターミナルを開き、vimを使用します。 vimセッションのキーボードレイアウトは自動的に変更され、vimを終了すると元に戻ります。

ただし、キーボードレイアウトはすべてのアプリケーションで変更されるため、これはあまり良い解決策ではありません。単純に自動的に行われ、終了すると元に戻りますが、vimだけでなく、他のすべてのウィンドウの新しいレイアウトが保持されます。最初のアプローチははるかに優れています。

3
terdon