gpt4 book ai didi

VIM 和自定义标记

转载 作者:行者123 更新时间:2023-12-04 19:13:08 25 4
gpt4 key购买 nike

我在 Windows 中使用 vim 来编辑汇编代码。它是一种非标准语言,二进制文件的反汇编是由自定义脚本完成的,因此我自己定义了格式。我想使用标签来跳过子程序调用的代码。我已经搜索了很多,所有的道路似乎都导致使用 ctags 生成标签文件,但显然这在我的情况下不起作用,因为我没有处理 C 代码。如何创建自定义标记文件?这是代码的示例。首先,每个子程序都由关键字和十六进制偏移量(第一列)定义。

Subroutine e2b7

e2b7 2c c0 11 03 BBS [Branch if bits are '1'] #$03, $11c0, 00e2ce ($12)
e2bc a9 00 LDA [Load A with mem] #$00
. blah
. blah
. blah

并且在代码中的某个地方执行了一个到 sub 的跳转;
d9ad 20 b7 e2    JSR $e2b7

感谢您的任何帮助,您可以提供

最佳答案

将 ctags 与 taglist-plugin ( http://vim.sourceforge.net/scripts/script.php?script_id=273 ) 一起使用。
ctags 的源代码包包含文件 EXTENDING.html
描述如何定义扩展。我为几种语言做了这个。
这里有两个例子(make(1) 和 POD(perl 旧文档)):

%%%%%%%%%%  file '~/.ctags' %%%%%%%%%%%%%%%%%%%%

--langmap=perl:+.pod
--regex-perl=/^=head1[[:space:]]*(.+)/\1/o,pod/
--regex-perl=/^=head2[[:space:]]*(.+)$/. \1/o,pod/
--regex-perl=/^=head3[[:space:]]*(.+)$/.. \1/o,pod/
--regex-perl=/^=head4[[:space:]]*(.+)$/... \1/o,pod/
--regex-perl=/^=for[[:space:]]+([^:]+):(.*)$/*\1:\2/o,pod/
--regex-perl=/^__(DATA|END)__$/__\1__/l,labels/

--regex-make=/^([^:# \t]+)[ \t]*:($|[^=]+)/\1/t,targets/

要将它与 taglist 一起使用,您需要在 ~/.vimrc 中添加两行。
对于上面的例子:
%%%%%%%%%%  file '~/.vimrc' %%%%%%%%%%%%%%%%%%%%

let tlist_perl_settings = 'perl;c:constants;f:formats;l:labels;p:packages;s:subroutines;d:subroutines;o:POD'
let tlist_make_settings = 'make;m:makros;t:targets'

screenshot显示 taglist 导航窗口
带有额外的 POD 部分。

关于VIM 和自定义标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/979359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com