Vimspector
vimspector - A multi-language debugging system for Vim
.vimspector.json
Configuration
- console
- externalTerminal
- integratedTerminal
Examples
Python examples
debugpy를 사용한다.
{
"configurations": {
"Python Launch": {
"adapter": "debugpy",
"filetypes": ["python"],
"default": true,
"variables": {
"VERBOSE_FLAG": "--verbose"
},
"configuration": {
"request": "launch",
"type": "python",
"stopOnEntry": true,
"console": "externalTerminal",
"cwd": "${workspaceRoot}",
"python": "${workspaceRoot}/.venv/bin/python",
"program": "${workspaceRoot}/main.py",
"env": {
"PYTHONPATH": "${workspaceRoot}"
},
"args": [
"${VERBOSE_FLAG}"
]
},
"breakpoints": {
"exception": {
"raised": "N",
"uncaught": "Y",
"userUnhandled": "N"
}
}
}
}
}
Customize Layout
Predefined Variables
The following variables are provided:
-
${dollar}
- has the value $, can be used to enter a literal dollar -
$$
- a literal dollar -
${workspaceRoot}
- the path of the folder where .vimspector.json was found -
${workspaceFolder}
- the path of the folder where .vimspector.json was found -
${gadgetDir}
- path to the OS-specific gadget dir (<vimspector home>/gadgets/<OS>) -
${file}
- the current opened file -
${relativeFile}
- the current opened file relative to workspaceRoot -
${relativeFileDirname}
- path of opened file relative to workspaceRoot -
${fileBasename}
- the current opened file’s basename -
${fileBasenameNoExtension}
- the current opened file’s basename with no file extension -
${fileDirname}
- the current opened file’s dirname -
${fileExtname}
- the current opened file’s extension -
${cwd}
- the current working directory of the active window on launch -
${unusedLocalPort}
- an unused local TCP port
Exceptions
Python
- raised
- Break on Raised Exceptions
- 기본값 N
- uncaught
- Break on Uncaught Exceptions
- 기본값 Y
- userUnhandled
- Break on User Uncaught Exceptions
- 기본값 N
Troubleshooting
vim-gitgutter 와 sign column 충돌
pynvim.api.common.NvimError: Invalid option name 'winbar'
Error detected while processing function vimspector#Launch[4]..provider#python3#Call:
line 18:
Error invoking 'python_execute' on channel 8 (python3-script-host):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 71, in wrapper
return fct( self, *args, **kwargs )
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 477, in Start
self._StartWithConfiguration( configuration, adapter )
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 522, in _StartWithConfiguration
start()
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 501, in start
self._SetUpUI()
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 71, in wrapper
return fct( self, *args, **kwargs )
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 1213, in _SetUpUI
self._SetUpUIHorizontal()
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 1219, in _SetUpUIHorizontal
self._codeView = code.CodeView( self.session_id,
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/code.py", line 51, in __init__
self._RenderWinBar()
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/code.py", line 58, in _RenderWinBar
utils.SetWinBar(
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/utils.py", line 992, in SetWinBar
return SetWinBarOption( *args )
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/utils.py", line 981, in SetWinBarOption
window.options[ 'winbar' ] = ' '.join( winbar )
File "/home/yourid/.pyenv/versions/opy-yourid-3.9.17-default/lib/python3.9/site-packages/pynvim/api/common.py", line 147, in __setitem__
self._set(key, value)
File "/home/yourid/.pyenv/versions/opy-yourid-3.9.17-default/lib/python3.9/site-packages/pynvim/api/common.py", line 80, in request
return self._session.request(name, self, *args, **kwargs)
File "/home/yourid/.pyenv/versions/opy-yourid-3.9.17-default/lib/python3.9/site-packages/pynvim/api/nvim.py", line 199, in request
res = self._session.request(name, *args, **kwargs)
File "/home/yourid/.pyenv/versions/opy-yourid-3.9.17-default/lib/python3.9/site-packages/pynvim/msgpack_rpc/session.py", line 139, in request
raise self.error_wrapper(err)
pynvim.api.common.NvimError: Invalid option name 'winbar'
nvim 최신버전으로 설치해보자.
pynvim.api.common.NvimError: Vim:E117: Unknown function: win_execute
Error detected while processing function vimspector#Launch[4]..provider#python3#Call:
line 18:
Error invoking 'python_execute' on channel 5 (python3-script-host):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 71, in wrapper
return fct( self, *args, **kwargs )
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 477, in Start
self._StartWithConfiguration( configuration, adapter )
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 522, in _StartWithConfiguration
start()
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 501, in start
self._SetUpUI()
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 71, in wrapper
return fct( self, *args, **kwargs )
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 1213, in _SetUpUI
self._SetUpUIHorizontal()
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/debug_session.py", line 1275, in _SetUpUIHorizontal
vim.command( 'doautocmd User VimspectorUICreated' )
File "/home/yourid/.pyenv/versions/3.9.17/lib/python3.9/contextlib.py", line 126, in __exit__
next(self.gen)
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/utils.py", line 282, in RestoreCurrentBuffer
Call( 'win_execute', WindowID( window ), f'bu { old_buffer.number }' )
File "/home/yourid/.vim/bundle/vimspector/python3/vimspector/utils.py", line 842, in Call
return vim.eval( call )
File "/home/yourid/.pyenv/versions/opy-yourid-3.9.17-default/lib/python3.9/site-packages/pynvim/plugin/script_host.py", line 210, in eval
obj = self.request("vim_eval", expr)
File "/home/yourid/.pyenv/versions/opy-yourid-3.9.17-default/lib/python3.9/site-packages/pynvim/api/nvim.py", line 199, in request
res = self._session.request(name, *args, **kwargs)
File "/home/yourid/.pyenv/versions/opy-yourid-3.9.17-default/lib/python3.9/site-packages/pynvim/msgpack_rpc/session.py", line 139, in request
raise self.error_wrapper(err)
pynvim.api.common.NvimError: Vim:E117: Unknown function: win_execute
nvim 최신버전으로 설치해보자.