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>

 

上一篇:2021-10-27


下一篇:Charles16--断点调试