vimrc 映射行號

vimrc 映射行號

我的 .vimrc 檔案中有這些行:

:map <F9> :exe ':!gdbset bp "%:'.line(".").'"'<CR><CR>
:map <F8> :exe ':!gdbset clear bp "%:'.line(".").'"'<CR><CR>

它們非常適合在 gdb 中新增和刪除斷點!只有一個問題(據我所知)...由於某種原因,80 年代的行號不起作用。如果我將遊標放在第 85 行並按 F9,那麼它應該在第 85 行放置一個斷點。

產生的斷點如下圖所示:

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>

相關內容