1. ホーム
  2. vim

[解決済み] VimでAltキーをマッピングできますか?

2023-01-24 13:21:07

質問

.vimrcに以下の行を追加してマッピングしようとしたのですが、うまくいきません。.vimrcがVimに読み込まれていることは確認しました。

map <Alt-D> <C-D>

は、このマッピングに何かエラーがあるのでしょうか?

どのように解決するのですか?

Mac ユーザーへ: ALT+hjkl のマッピングには、生成された実際の文字を代わりに使用します (INSERT モードで組み合わせを使用してどの文字かを確認します)、たとえば、私のキーボードでは、次のようになります。

<ALT+j> ==> ª
<ALT+k> ==> º

といった具合になります。 解決策を発見 ここで をStackOverflowでご覧ください。

私はこれを.vimrcに使って、ALT+k\jで行を上下に動かしています。

nnoremap ª :m .+1<CR>==
nnoremap º :m .-2<CR>==

inoremap ª <Esc>:m .+1<CR>==gi
inoremap º <Esc>:m .-2<CR>==gi

vnoremap ª :m '>+1<CR>gv=gv
vnoremap º :m '<-2<CR>gv=gv

説明の通り ここで .

お役に立てれば幸いです。Vimを楽しんでください :)

ADDENDUM BY Dylan_Larkin (2019)。これが Mac で動作するためには、" Option をメタキーとして使用する を有効にする必要があります。 OFF ターミナル->環境設定->キーボード

更新日 2021年09月

最近 "ブリティッシュ" キーボードから "ABC - Extended" というキーボードがあり、この構成では期待通りに動作しないことに気づきました。 代替案として、私は <up><down> キーを使って同じ操作を行うことができます(これは、このまさに質問の他の回答で説明された複雑さのほとんどを解決していると思います)。

nnoremap <down> :m .+1<CR>==
nnoremap <up> :m .-2<CR>==

inoremap <down> <Esc>:m .+1<CR>==gi
inoremap <up> <Esc>:m .-2<CR>==gi

vnoremap <down> :m '>+1<CR>gv=gv
vnoremap <up> :m '<-2<CR>gv=gv

これは、初心者が矢印を使う癖を直し、代わりにもっと効率的なVimモーションでコードを移動する方法を学ぶのにも最適な方法です ;)

トランジションマッピングを完成させることができます <left><right> で素早くタブ間を移動することができます。

nnoremap <left> gT
nnoremap <right> gt

あるいは、あなたが好きなものなら何でも(残忍な <NOP> であっても、私の旅の始まりのように)。