.vimrc ファイルに次の行があります:
:map <F9> :exe ':!gdbset bp "%:'.line(".").'"'<CR><CR>
:map <F8> :exe ':!gdbset clear bp "%:'.line(".").'"'<CR><CR>
これらは、gdb でブレークポイントを追加および削除するのに非常に役立ちます。唯一の問題は (私が知っている限りでは)、何らかの理由で 80 番台の行番号が機能しないことです。カーソルを 85 行目に置いて F9 キーを押すと、85 行目にブレークポイントが設定されます。カーソルを 75 行目に置いて F9 キーを押すと、75 行目にブレークポイントが設定されます。
結果のブレークポイントは次のようになります。
b myfile.cc:5
b myfile.cc:75
85 行目は機能しませんでした。80 行目はテストしましたが、どれも機能しませんでした。他の行はすべて機能しているようです。なぜでしょうか? VIM の専門家なら説明できると思います。「:8」が他のコマンドか何かとして解釈されているようです。
答え1
%:8
有効ですファイル名修飾子なので、Vim ではコマンドの一部として解釈されます:!
。
使用できますexpand('%')
手動で展開し%
、適切に引用符で囲むshellescape(…,1)
:
:map <F9> :exe '!gdbset bp' shellescape(expand('%').':'.line('.'),1)<CR><CR>
:map <F8> :exe '!gdbset clear bp' shellescape(expand('%').':'.line('.'),1)<CR><CR>