Ⅰ. 插件描述
Vim script internal debugger (output in separate window, tab, or remote vim)Ⅱ. 基本信息
|
Ⅲ. 安装方法
使用Vundle管理器安装
在你的.vimrc下添加:Plugin '/decho'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall
对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。
使用NeoBundle管理器安装
在你的.vimrc下添加:NeoBundle '/decho'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall
使用VimPlug管理器安装
在你的.vimrc下添加:Plug '/decho'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall
使用Pathogen管理器安装
在终端中运行以下命令:cd ~/.vim/bundle
git clone https://github.com/vim-scripts/Decho
Ⅳ. 文档说明
The Decho.vim plugin provides debugging messages in a separate window. One puts
Decho "some message here"
-or-
call Decho("another message")
and Decho will split the screen with a five line debugging window on the bottom of the display where the messages will appear. Allows one to inspect multiple error messages with the usual vim editing commands!
To better support the debugging of scripts, Decho.vim also provides:
call Dfunc("YourFunctionName([arg1<".a:arg1."> arg2<".a:arg2.">])")
call Dret("YourFunctionName [returnvalue]")
These two functions use Decho(), but also provide function tracking. The .vim/syntax/Decho.vim provides special highlighting for the DBG buffer, too. See the example below!
One may redirect the output of arbitrary vim commands to the DBG buffer with the following function:
call Dredir("command")
For example, consider
call Dredir("ls")
Decho.vim makes it easy to turn debugging on and off in your scripts:
Turning Debugging On:
vim yourscript.vim
:DechoOn
:wq
Turning Debugging Off:
vim yourscript.vim
:DechoOff
:wq
Some plugins use events such as WinEnter and others attempt to control window layout. Decho supports these plugins with four methods to avoid disturbing the display:
DechoMsgOn -- subsequent debugging output uses :echomsg
DechoRemOn -- subsequent debugging output goes to a remote gvim which DechoRemOn will set up itselfDechoTabOn -- subsequent debugging output goes to a separate debugging tab/window
DechoVarOn -- subsequent debugging output goes to a variable (default value: g:dechovar)
With any of these enabled, subsequent Dfunc, Dret, Decho, and Dredir output will be directed as indicated.
---------------------------------------------------------------------
Example:
LocalBrowse(dirname<.>) {
|NetGetcwd() {
||return NetGetcwd /home/cec/.vim/VIMSCRIPT/ }
|dirname</home>
|Perform directory listing...
|bufnr(dirname</home>)=1
|dirnamenr=1 dirname</home> pre-exists
|changed directory to</home>
|buffer already exists, but needs listing (buf#1)
|Setting up local browser maps
|NetGetcwd() {
||return NetGetcwd /home/cec/.vim/VIMSCRIPT/ }
|NetGetcwd() {
||return NetGetcwd /home/cec/.vim/VIMSCRIPT/ }
|NetGetcwd() {
||return NetGetcwd /home/cec/.vim/VIMSCRIPT/ }
|NetGetcwd() {
||return NetGetcwd /home/cec/.vim/VIMSCRIPT/ }
|NetGetcwd() {
||return NetGetcwd /home/cec/.vim/VIMSCRIPT/ }
|NetGetcwd() {
||return NetGetcwd /home/cec/.vim/VIMSCRIPT/ }
|set up banner
|directories will be sorted by name
|LocalBrowseList(dirname</home>) {
|(elided for brevity)
||return LocalBrowseList }
|SetSort() bannercnt=8 {
|(elided for brevity)
||return SetSort }
|NetSort() {
||return NetSort }
|return LocalBrowse : file</home> }
(alpha/beta version available at http://mysite.verizon.net/astronaut/vim/index.html#DECHO)