カーソルの下の変数をインクリメントするために、vimの下で<Ca>( CTRL+ )ショートカットを使用しようとしています。Aこれは、Linuxで実行されているvimで正常に機能します。ただし、ウィンドウの下のgvimでこれを実行しようとすると、「すべてを選択」します(つまり、現在のウィンドウのすべてのテキストを強調表示または視覚的に選択します)。この動作を変更するにはどうすればよいですか、あるいはインクリメント変数機能を回復するにはどうすればよいですか(たとえば、別のキーマッピングを使用して)?
5 に答える
これは、vimのインストール時に生成されるデフォルトの_vimrcによって供給されるmswin.vimが原因です。_vimrcを*nixで使用している.vimrcで上書きするか、mswin.vimを削除してください。
パーティーに遅れたことはわかっていますが、次のことを共有したいと思いました。
nnoremap <kPlus> <C-a>
nnoremap <kMinus> <C-x>
これにより、インクリメントが+テンキーのキーに、デクリメントがキーに再マッピングされ-ます。これは、Windows 上の自分の_vimrc
ファイルで使用したソリューションです。Windows 互換性を維持し、元のCtrl+ A/ Ctrl+よりも覚えやすくなっていXます。
Vim on Windowsには、ショートカットをより「windows-y」にするための特殊なキーマッピングがデフォルトで用意されています。これらは$VIMRUNTIME\ mswin.vimファイルで指定されており、無効にしない限り、vimrcを介してロードされます。mswin.vimファイルを編集できます(代わりにコピーを編集し、代わりに編集したコピーを使用するようにvimrcを変更することもできます)。
これがデフォルトのVimマッピングであるかどうかは完全にはわかりません。これは、ヘルプファイルのCtrl + Aで見つけられる唯一の参照がこれであり、参照していることを実行していないようです。
*c_CTRL-A*
CTRL-A All names that match the pattern in front of the cursor are
inserted.
そのため、Linuxボックスをチェックして、プラグインなどがキーマッピングを変更していないかどうかを確認することをお勧めします。(もちろん、Vimヘルプの適切な部分が見つからない可能性があります。)
gvimで提供されるmswin.vimの現在のバージョンでは、ファイルはskip_loading_mswin
;という名前のグローバルの値をチェックします。設定されている場合、ファイルの残りの部分はスキップされます。したがって、追加するだけで十分です
let skip_loading_mswin=1
と$HOME/_vimrc
通常のvimバインディングは、次にvimを起動したときに復元されます。
動作が気に入らないだけCtrlAで、VIM の他のウィンドウの動作 (CtrlZ元に戻すなど) に問題がない場合は、その特定の行を無効にするだけです。
- 上記のファイルを編集します(
c:\Program Files\Vim\vim73\mswin.vim
私にとって) - で始まる段落を見つける
CTRL-A is Select all
- その段落のすべての (6) 行の前に開き括弧 (
"
)を追加します。 - GVIM ウィンドウを再度開きます。
入力して「すべて選択」することもできますggVG
(カーソルを最初の行に置き、行全体を選択し、ドキュメントの最後の行まで選択します)。
ハッピーインクリメント!