vim 脚本数据结构问题

Vim、Emacs配置和使用
回复
头像
自由建客
论坛版主
帖子: 13431
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

vim 脚本数据结构问题

#1

帖子 自由建客 » 2010-11-30 20:13

没有指针,没有结构体,怎么搞啊?
我要一个

代码: 全选

菜单 {
	名称
	父菜单指针
	项列表指针
}

菜单项 {
	名称
	标题
	热键
	状态表达式
	操作表达式
}

typedef struct {
    String Name;
    Menu* Parent;
    MenuItem[] Item;
} Menu;

typedef struct {
    String Name;
    String Title;
    Char Key;
    String Status;
    String Opt;
} MenuItem;

//当我访问的时候
for (i=0; i<Length(MenuCurrent.Item); ++i) {
    if (key==MenuCurrent.Item[i].Key) {
        if (MenuCurrent.Item[i].Status=="Enable") {
            exit_enable=true;
            exe(MenuCurrent.Item[i].Opt);
        }
        break;
    }
}
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: vim 脚本数据结构问题

#2

帖子 lilydjwg » 2010-11-30 20:40

有列表有字典你想怎么搞就怎么搞 :em02
头像
自由建客
论坛版主
帖子: 13431
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

Re: vim 脚本数据结构问题

#3

帖子 自由建客 » 2010-11-30 21:44

for 那行没能搞懂,怎么写?

代码: 全选

	for in s:MenuCurrent.Item
		if a:key==s:MenuCurrent.Item[i].Key
			if eval(s:MenuCurrent.Item[i].Status)
				let l:enexit=1
				exe s:MenuCurrent.Item[i].Opt
			endif
			break
		endif
	endfor
	if l:enexit
		call s:MenuExit(l:encls)
	endif
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45
送出感谢: 0
接收感谢: 9 次

Re: vim 脚本数据结构问题

#4

帖子 fanhe » 2010-12-01 0:07

那个.是字符串连接吧

多看看现成的plugin脚本就差不多了,我这两天为了把几个脚本搞兼容,折腾了好久
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

Re: vim 脚本数据结构问题

#5

帖子 xhy » 2010-12-01 0:35

弱类型语言要指针有什么用阿
目前负债150多万
头像
自由建客
论坛版主
帖子: 13431
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

Re: vim 脚本数据结构问题

#6

帖子 自由建客 » 2010-12-01 20:55

不喜欢弱类型语言 :em20
回复

回到 “Vim和Emacs”