概要
Visual Studio 2019 でキーバインドの設定をしました。
VsVimが素直ですぐできました。
Jared Parsonsさんありがとうございます。
https://twitter.com/jaredpar
キーバインド変更
競合したキーは全て外した
キー | 動作 |
---|---|
Ctrl+Alt+S | ツール.オプション |
Ctrl+Shift+R | 編集.全てに移動 |
Ctrl+Shift+F,F | 編集.検索 |
Ctrl+Shift+F,R | 編集.置換 |
Ctrl+H | 編集.フォルダーを指定して検索 |
Ctrl+Shift+H | 編集.フォルダーを指定して置換 |
Ctrl+/ | 編集.行コメントの切り替え |
Ctrl+] | 編集.定義へ移動 |
Alt+1 | 表示.ソリューションエクスプローラー |
Alt+3 | 表示.検索結果1 |
Alt+左矢印 | 表示.戻る |
Alt+右矢印 | 表示.次に進む |
Ctrl+Alt+Space | 無し(補完候補をEnterで選択可否切替は不要) |
VsVimを優先
キー | vim .vsvimrc |
---|---|
Ctrl+A | 行の先頭へ |
Ctrl+B | ページアップ |
Ctrl+D | 半ページダウン |
Ctrl+E | 行の末尾へ |
Ctrl+F | ページダウン |
Ctrl+N | 下矢印 |
Ctrl+P | 上矢印 |
Ctrl+R | :redo |
Ctrl+U | 半ページアップ |
Ctrl+V | 短形選択 |
Ctrl+W | <C-W> |
Ctrl+PgDn | :tabnext |
Ctrl+PgUp | :tabprevious |
~/.vsvimrc
" 設定の再読み込み
nnoremap <Leader><Leader> :<C-u>source ~/.vsvimrc<CR>
" クリップボード
set clipboard=unnamed
" 検索時に一周しない
set nowrapscan
" 検索文字入力途中に候補へジャンプしない
set noincsearch
" 検索結果をハイライト
set hlsearch
" 検索時の大文字小文字の区別の設定
set smartcase
" コマンドモードに移る時にIMEをOFFにする
set iminsert=0
set imsearch=-1 "-1はiminsertの値に同じ
" 入力中のコマンド表示
set showcmd
" redo undo
nnoremap u uzz
nnoremap <C-r> <C-r>zz
" 直前の編集場所に移動する時は文の先頭
noremap `. '.
" カーソル位置の単語検索 検索前にエスケープを押す
nnoremap # <Esc>#
nnoremap * <Esc>*
" Emacs
nnoremap <C-a> ^
vnoremap <C-a> ^
nnoremap <C-e> $
vnoremap <C-e> $h
inoremap <C-a> <Home> "なぜ機能しない
inoremap <C-e> <End>
inoremap <C-b> <Left>
inoremap <C-f> <Right>
vnoremap <C-n> j^
vnoremap <C-p> k^
" 検索時にカーソル行が画面中央になるようスクロール
noremap n nzz
noremap N Nzz
" 段落移動時スクロール
noremap ( (zz
noremap ) )zz
" 一発で現在の階層の始まりの括弧へ移動
noremap { [{
noremap } ]}
" 検索結果のハイライトを消す
noremap <Esc><Esc> :<C-u>nohlsearch<CR>
" ページ移動時にカーソルを画面中央へ移動させる
noremap <C-f> <C-f>M
noremap <C-b> <C-b>M
noremap <C-d> <C-d>M
noremap <C-u> <C-u>M
" PageDown,PageUp
noremap <PageDown> <C-f>M
noremap <PageUp> <C-b>M
" tab移動
nnoremap <C-PageUp> :<C-u>tabprevious<CR>
nnoremap <C-PageDown> :<C-u>tabnext<CR>
" 選択中の文字列を検索
vnoremap / y/<C-r>*<CR>n
vnoremap ? y?<C-r>*<CR>n
" 選択中の単語を検索
vnoremap * y/<C-r>*<CR>n
vnoremap # y?<C-r>*<CR>n
" Error on line 118: Missing quote となるのでひとまず一番最後に
" <Leader>
let mapleader = '\'