每當我從帶有 -d 選項的腳本啟動 perl 除錯器時,會話都會以 emacs 命令列編輯開始。然后我鍵入 ESC ctrl J 以啟用 vi 編輯。我想從一開始就啟用 vi。
我嘗試使用以下.perldb:
&parse_options("HistFile=.perlDebugHist");
sub afterinit { push @DB::typeahead, ("o inhibit_exit", chr(27).chr(10)) }
但是當會話開始時,它說
auto(-2) DB<62> o inhibit_exit
inhibit_exit = '1'
auto(-1) DB<63>
Unrecognized character \x1B; marked by <-- HERE after :db_stop;
<-- HERE near column 96 at (eval 9)[/usr/share/perl/5.22/perl5db.pl:737] line 2.
at (eval 9)[/usr/share/perl/5.22/perl5db.pl:737] line 2.
eval 'no strict; ($@, $!, $^E, $,, $/, $\\, $^W) = @DB::saved;package main; $^D = $^D | $DB::db_stop;
;
' called at /usr/share/perl/5.22/perl5db.pl line 737
DB::eval called at /usr/share/perl/5.22/perl5db.pl line 3110
DB::DB called at ~/bin/debug.pl line 61
uj5u.com熱心網友回復:
這是一個可能的解決方法,假設您使用 gnu readline 庫:
perldb_inputrc在當前目錄中創建一個名為的檔案,其內容為:
set editing-mode vi
然后將afterinit()子更改為:
sub afterinit {
if (!$DB::term) {
DB::setterm();
}
$DB::term->read_init_file('perldb_inputrc');
push @DB::typeahead, "o inhibit_exit";
}
有關詳細資訊,請參閱perldoc perl5db。
更新:
一個更簡單的方法是readline init 檔案。您只能通過設定環境變數來為當前除錯會話使用全域檔案~/.inputrc或使用本地檔案INPUTRC。例如,以上述perldb_inputrc檔案為例,您可以使用(在您的.perldbinit 檔案中):
sub afterinit { push @DB::typeahead, "o inhibit_exit" }
然后像這樣運行 Perl 腳本:
INPUTRC=./perldb_inputrc perl -d myscript.pl
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476986.html
上一篇:您可以在運行時在Codesys訊息視窗中顯示訊息嗎?如果有怎么辦?
下一篇:ftrace無法跟蹤某些內核函式
