Solve VsVim Issue with Visual Studio for Mac: ClosePair(')')
When use the VsVim plugin in Visual Studio for Mac and type the closing part of a parenthesis, you might see ClosePair(')') pop up with awkward sound. This might because you don't have the `vsvimrc` setting file, so just create one if you don't have with the following cmd:
vim ~/.vsvimrc
We can find some setting from the Github, like this one:
" Set global shortcut in Visual Studio options: " Window.ActivateDocumentWindow => Esc " External tool to open new Vim at current line: " gvim.exe $(ItemPath) +$(CurLine) " External tool to open in Vim server: " gvim.exe --servername vsvim --remote-silent $(ItemPath) " " nnoremap yx<bs> :vsc OtherContextMenus.FSIConsoleContext.ResetInteractiveSession<cr> " nnoremap !m :vsc OtherContextMenus.FSIConsoleContext.ResetInteractiveSession<bar>vsc Build.BuildSelection<cr> set ignorecase set smartcase set incsearch set tabstop=4 set shiftwidth=4 set backspace=eol,start,indent set nostartofline set hlsearch set autoindent set expandtab set ttimeout set ttimeoutlen=50 inoremap z, <c-o> inoremap z,p <c-r>" "horrible hack because VsVim refuses to fix this bug nnoremap g; u<c-r> nnoremap \ , nnoremap gj i<cr><esc>k$ nnoremap s / nnoremap S ? nnoremap zy zt5<c-y> nnoremap gwo :vsc FullScreen<cr> nnoremap gws :vsc Window.Split<cr> nnoremap gwc :vsc Window.Split<cr> nnoremap d<tab> :vsc Window.CloseDocumentWindow<cr> nnoremap gwC :vsc Window.CloseDocumentWindow<cr> nnoremap gwH :vsc Window.MovetoPreviousTabGroup<cr> nnoremap gwL :vsc Window.MovetoNextTabGroup<cr> nnoremap gwS :vsc Window.NewHorizontalTabGroup<cr> nnoremap gwv :vsc Window.NewVerticalTabGroup<cr> nnoremap gwT :vsc Window.Float<cr> nnoremap gwj :vsc Window.NextSplitPane<cr> nnoremap gwk :vsc Window.PreviousSplitPane<cr> nnoremap <c-d> <PageDown> nnoremap <c-u> <PageUp> nnoremap z. :w<cr> nnoremap vd "_d xnoremap x "_d nnoremap vD "_D xnoremap P "0p nnoremap =p o<esc>p== nnoremap =P O<esc>p== xnoremap Y "+y nnoremap <c-l> :nohlsearch<cr> xnoremap - $ nnoremap - $ nnoremap <c-n> n. nnoremap Q @@ nnoremap ]e :m+1<cr> nnoremap [e :m-2<cr>j xnoremap ]e :m'>+1<cr>gv xnoremap [e :m'<-2<cr>jgv nnoremap Y y$ nnoremap <c-o> :vsc View.NavigateBackward<cr> nnoremap <c-i> :vsc View.NavigateForward<cr> xnoremap gc :vsc Edit.CommentSelection<cr> nnoremap gcc V:vsc Edit.CommentSelection<cr> "version control nnoremap Ud :vsc Team.Git.CompareWithUnmodified<cr> nnoremap Us :vsc Team.Git.GoToGitChanges<cr> nnoremap ]c :vsc Diff.NextDifference<cr> nnoremap [c :vsc Diff.PreviousDifference<cr> " gs => expression manipulation " cr => refactor " g/ => navigation (search for files/symbols) " gk => inspection " g] => peek current symbol " ]I " ]d " debugging nnoremap gr :vsc Edit.FindAllReferences<cr> " go to the type of the current symbol nnoremap gD :vsc ReSharper.ReSharper_GotoTypeDeclaration<cr> nnoremap gI :vsc ReSharper.ReSharper_GotoImplementation<cr> nnoremap gI :vsc Edit.GoToImplementation<cr> " go to class member ("outline") nnoremap <M-o> :vsc ReSharper.ReSharper_GotoFileMember<cr> " go to file nnoremap <C-p> :vsc ReSharper.ReSharper_GotoFile<cr> " go to anything ("tags"/types/symbols/files) nnoremap g/t :vsc ReSharper.ReSharper_GotoType<cr> " grep everything nnoremap g// :vsc Edit.FindinFiles<cr> " find/replace in current buffer nnoremap g/r :vsc Edit.Replace<cr> nnoremap gl :vsc ReSharper.ReSharper_GotoRecentFiles<cr> nnoremap <C-t> :vsc ReSharper.ReSharper_TypeHierarchy_Browse<cr> nnoremap K :vsc Edit.QuickInfo<cr> nnoremap <C-k> :vsc ReSharper.ReSharper_InspectThis<cr> nnoremap gk :vsc Edit.PeekDefinition<cr> "show refactor menu nnoremap crr :vsc ReSharper.ReSharper_RefactorThis<cr> xnoremap <c-r><c-r> :vsc ReSharper.ReSharper_RefactorThis<cr> nnoremap crn :vsc Refactor.Rename<cr> nnoremap cri :vsc EditorContextMenus.CodeWindow.OrganizeUsings.RemoveAndSort<cr> "show quickfix menu nnoremap <bs> :vsc ReSharper_AltEnter<cr> xnoremap <bs> :vsc ReSharper_AltEnter<cr> " expression manipulation nnoremap gst :vsc Edit.WordTranspose<cr> nnoremap gsh :vsc ReSharper.ReSharper_MoveLeft<cr> nnoremap gsl :vsc ReSharper.ReSharper_MoveRight<cr> nnoremap gsk :vsc ReSharper.ReSharper_MoveUp<cr> nnoremap gsj :vsc ReSharper.ReSharper_MoveDown<cr> " evaluate F# xnoremap <enter> :vsc EditorContextMenus.CodeWindow.ExecuteInInteractive<cr> nnoremap yxx ggVG:vsc EditorContextMenus.CodeWindow.ExecuteInInteractive<cr> nnoremap <enter> :vsc EditorContextMenus.CodeWindow.ExecuteLineInInteractive<cr> nnoremap ]q :vsc Edit.GoToNextLocation<cr> nnoremap [q :vsc Edit.GoToPrevLocation<cr> nnoremap ]l :vsc Edit.NextHighlightedReference<cr> nnoremap [l :vsc Edit.PreviousHighlightedReference<cr> " 'omnibox' nnoremap <space> :vsc Window.QuickLaunch<cr> nnoremap <insert> :vsc Debug.ToggleBreakpoint<cr> nnoremap [o<insert> :vsc Debug.EnableAllBreakpoints<cr> nnoremap ]o<insert> :vsc Debug.DisableAllBreakpoints<cr> nnoremap da<insert> :vsc Debug.DeleteAllBreakpoints<cr> nnoremap @T :vsc TestExplorer.RepeatLastRun<cr> nnoremap q; :vsc View.C#Interactive<cr> nnoremap q: :vsc View.CommandWindow<cr> nnoremap q[ :vsc TestExplorer.ShowTestExplorer<cr> nnoremap q] :vsc View.ErrorList<cr> nnoremap gof :vsc File.OpenContainingFolder<cr> nnoremap got :vsc Tools.ExternalCommand2<cr> " toggle 'Track Active Item in Solution Explorer' option nnoremap cos :vsc View.TrackActivityinSolutionExplorer<cr> " highlight active file in Solution Explorer (VS 2012+) nnoremap ^ :vsc SolutionExplorer.SyncWithActiveDocument<cr> nnoremap cow :vsc Edit.ToggleWordWrap<cr>