Emacs在缓冲区中打印javascript对象属性或对象轮廓
我有一个javascript对象,如下所示:Emacs在缓冲区中打印javascript对象属性或对象轮廓,javascript,emacs,editor,buffer,Javascript,Emacs,Editor,Buffer,我有一个javascript对象,如下所示: var myObj = { prop1 : 'abc', prop2: function(){ return true; }, prop3: function(){}, ... // and so on }; 在emacs中是否有办法查看myObj拥有的所有属性的列表?我可以点击这个属性,它会把我带到javascript文件中的事件。出现在M-x行上的某个内容,显示新
var myObj = {
prop1 : 'abc',
prop2: function(){
return true;
},
prop3: function(){},
... // and so on
};
在emacs中是否有办法查看myObj拥有的所有属性的列表?我可以点击这个属性,它会把我带到javascript文件中的事件。出现在M-x行上的某个内容
,显示新缓冲区中的“可单击”事件
我可以做
M-x list js props myObj
,它会打开前面提到的缓冲区。我不知道有什么东西能完全满足您的要求,但您可以尝试以下几点:
M-x speedbar
开始,然后单击“+”图标展开节点。单击函数名会将您带到缓冲区中匹配的事件
如果您使用的是Emacs的GUI版本,那么Speedbar工作得最好,因为它会启动一个新的框架。如果您在控制台中工作,请查看var myObj = {
foo = // Hrm, what do I want?
};
otherObj. // See completions of otherObj here, find the one you want,
// and complete.
完成另一个对象后,可以使用tern find definition
(默认情况下绑定到M-。
)转到属性的定义,并使用tern pop find definition
(默认情况下绑定到M-,
)返回
注意:几周前,我通过MELPA安装Tern时运气不太好。相反,我跟着在Ubuntu上的Emacs 24.3.50.1上,速度栏开箱即用地显示了我的JavaScript函数。您打算如何使用它?我能想到一些可能有用的东西,但没有一件能完全满足您的要求。一个用例可以是我正在编写一个方法,比如说“prop19”,它可以做一些事情,我记得这样一个功能在3周前已经在同一个对象“myObj”中编写。我想不起那个方法的名字了。因此,我可以使用它,然后查看列表,然后说,“啊!prop5”已经有了功能。让我看看这个功能”。有些编辑器,比如Eclipse,有“ctrl-click”组合,可以让您导航到方法/类中。我认为Emacs没有这个功能。事实上,Emacs确实有标准的键绑定(
M-。
查找对象的定义,M-,
返回到您所在的位置),但这些绑定通常依赖于外部的、特定于语言的工具来知道去哪里<代码>标签文件是一个常见选项;对于JavaScript,我建议使用Tern,如下所述。@fenderplayer TryM-x imenu RET TAB
。函数名不会按对象分组,但这将为您提供“文件中的主要定义(按名称)”。更多关于Imenu的信息。