该原子编辑器具有绑定到一个命令"CTRL-".这被称为键绑定解析器:
激活密钥解析器模式后,您随后按下的任何密钥都将告诉您在所有可能的上下文中绑定了哪些命令,并显示哪个命令/上下文"胜出".然后按ctrl-g关闭模式.
当您想知道密钥绑定是否空闲,或者密钥绑定没有按预期执行时,这非常有用.
这是一个示例输出,当我在编辑器上下文中按ctrl-n时,我可以看到emacs键绑定'next-line'优先:
Emacs也有类似的功能,它的ctrl-h k(帮助键)命令.
是的,我通常可以通过浏览默认键盘快捷键和keybindings.json来收集我需要的信息,但如果键绑定在很多不同的上下文中,这很难做到.
在VSCode中是否有类似的功能?
我使用angular2 CLI(ember cli)生成了一个打字稿项目.我正在使用Chromium Web Developer工具进行调试.我在开发者工具设置中选择了"启用javascript源地图".我看到源视图中列出的.js文件和.ts.但是,当我选择它们时,.ts(typescript)文件显示为空,即它无法找到它们.
屏幕打印显示情况:
如果我选择它们,我可以看到.js文件的文本.
.ts文件没有被复制到dist目录中,这对我来说似乎是一个问题,但我看到其他地方的例子显示了典型的angular2 cli dist结构,它们也没有.ts文件.
我的"tsconfig.json"的相关部分显示我启用了源映射:
 1   "compileOnSave": false,                                                                            
  2   "compilerOptions": {                                                                               
  3     "declaration": false,                                                                            
  4     "emitDecoratorMetadata": true,                                                                   
  5     "experimentalDecorators": true,                                                                  
  6     "mapRoot": "",                                                                                   
  7     "module": "system",                                                                              
  8     "moduleResolution": "node",                                                                      
  9     "noEmitOnError": true,                                                                           
 10     "noImplicitAny": false,                                                                          
 11     "outDir": "../dist/",                                                                            
 12     "rootDir": ".",                                                                                  
 13     "sourceMap": true,                                                                               
 14     "sourceRoot": "/",                                                                               
 15     "target": "es5"                                                                                  
 16   },                          
js.map文件的制作和驻留在DIST目录旁边的.js文件.
映射文件示例(部分):
{"version":3,"file":"app.js","sourceRoot":"/","sources":["app.ts"],"names":[],"mappings":";;;;;;;;;;;;;YAGA,mB
我试过:
1)将.ts文件从src复制到dist.
2)手动编辑app.js.map文件的各种尝试,例如sourceRoot和sources.  
目前还不十分清楚js.map文件中的"/"是什么:项目的src目录还是dist目录?如果我编辑.js.map文件,我是否必须刷新浏览器以获取它?
我认为基本问题是它在src目录中寻找ts文件,这超出了浏览器的范围(因为它位于"../src"). …
我想使用lodash 从对象(而不是数组)中获取前n个键/值对.我发现这个答案下划线,这表示使用使用第一(在lodash不存在),或者使用取(仅适用于数组).
尝试从对象获取'a:7'和'b:8'对的示例节点会话:
> var ld=require("lodash")
undefined
> var o={a:7, b:8, c:9}
undefined
> ld.keys(o)
[ 'a', 'b', 'c' ]
> ld.take(o, 2)
[]
> ld.first(o, 2)
undefined
> 
当然,使用lodash必须有一些简单的方法来做到这一点,但对于我的生活,我找不到任何东西.也许我不得不诉诸本地的js?
我在Visual Studio Code中创建了一个扩展,它创建了一个'quickPick'菜单,用户可以从中选择选项:
我可以使用向上和向下箭头滚动列表,但我希望能够将其绑定到更像home-row友好的东西,如ctrl-n和ctrl-p.我有ctrl-n和ctrl -p已经绑定在主命令菜单(ctrl-shift-p)上向上/向下滚动,我希望快速选择也属于这个规则.不幸的是,我的许多ctrl-n上下文绑定都没有生效.
我希望能添加到'keybindings.json'中的东西看起来像:
 {
        "key": "ctrl+n", 
        "command": "cursorDown", 
        "when": "quickPickFocus"
    }, 
但浏览"默认键盘快捷键"时,我看不到这样的内容.
我可以为扩展程序创建自定义"何时"上下文?然后我可以指定类似的东西:
"when":"myExtensionIsActive && blah"
以下是我的keybindings.json中所有重写的ctrl-n键绑定:
    {
        "key": "ctrl+n", 
        "command": "cursorDown", 
        "when": "editorTextFocus"
    }, 
    {
        "key": "ctrl+n", 
        "command": "workbench.action.quickOpenNavigateNext", 
        "when": "inQuickOpen"
    }, 
   {
        "key": "ctrl+n", 
        "command": "showNextParameterHint", 
        "when": "editorTextFocus && parameterHintsVisible"
    }, 
   {
        "key": "ctrl+n", 
        "command": "selectNextQuickFix", 
        "when": "editorFocus && quickFixWidgetVisible"
    }, 
    {
        "key": "ctrl+n", 
        "command": "selectNextSuggestion", 
        "when": "editorTextFocus && …我正在努力学习purescript.  
我在某些HTML中有一个按钮,我正在尝试打印类名.我正在建设和browserifying使用pulp.   
我正在使用的函数是querySelector:
import Web.DOM.ParentNode (querySelector)
这会在两个"框"内返回我想要的项目Element:一个外部效果monad和一个嵌入的Maybe monad:
> :type querySelector
QuerySelector -> ParentNode -> Effect (Maybe Element)
我的效果monad看起来像:
getBtn ::  Effect Unit
getBtn = do
  doc <- map toParentNode (window >>= document)
  button <- querySelector (wrap "#btn") doc
  ... Need to extract class name from 'button' here
我知道我可以通过在外部效果monad上调用bind(>> =)来到内部.我的第一个攻击计划是使用可能的功能手动取消装箱.以下是如何为简单的Int执行此操作:
> maybe 0 (\x -> x) $  Just 7
7
对于一个可能的元素,我认为它看起来像:
unboxMaybeElement :: Maybe Element -> Element
unboxMaybeElement …在我的Component的 keydown事件处理程序中,我需要通过以下方式修改组件的属性this:
  canvasKeyHandler (event) {
    console.log('vrscene.canvasKeyHandler: event.keyCode=' + event.keyCode);
    console.log('vrscene.canvasKeyHandler: self.dolly' + this.dolly);
    CameraKeypressEvents.keyHandler(event, this.dolly) // <-- do something with this.dolly
但是this.dolly设置为undefined:
vrscene.canvasKeyHandler: self.dollyundefined
vrscene.html:
<div class="container" id ="canvas-container-2">
   <canvas id="vrruntime-view"
           class="camera-keypress-events"
           tabindex="1"
           (keydown)="canvasKeyHandler($event)"
           style="border: 1px solid black;"
           >
   </canvas>
           <!--camera-keypress-events [cubeScene]="cubeScene" -->
</div>
vrscene.ts:
import {Component} from 'angular2/core';
import {Injectable} from 'angular2/core';
import WebGLRenderer = THREE.WebGLRenderer;
import {VRRenderer} from '../vrrenderer/vrrenderer'
import {CameraKeypressEvents} from '../camera-keypress-events/camera-keypress-events'
import Object3D = THREE.Object3D;
import Scene = …我想将多个主题应用于原子会话。
下面是使用左侧面板的屏幕打印主题-人性化的语法和使用右侧面板主题SETI语法:
(有关我如何做到这一点,请参阅下面的注释 2)
我希望看到的一些用例:我可能希望一个窗口具有人性化的语法主题,而另一个窗口具有seti。或者我可能希望左侧拆分为浅色主题,右侧拆分为深色主题。更好的是为每个文件分配一个主题,例如文件-a一个主题,文件-b另一个,并让它们在弹出的任何地方保留该主题(例如,在另一个窗口中,在拆分的另一侧等)
当您有很多打开的文件时,这对于区分文件非常有用。
Emacs通过包color-theme-buffer-local长期以来一直具有这种能力。Atom 中有类似的东西吗?
从更技术的角度来看,有没有办法通过Developer Tools手动将 .css 文件应用于选项卡?毕竟,Atom 基本上是经过修改的 Chromium 网络浏览器,而且 Chromium 下的每个选项卡都可以有不同的 css,所以这应该也可以在 Atom 中实现(?)
注 1:大约一年前有人问过一个类似的问题——如何按文件类型设置主题,答案是你不能。我担心我更普遍的问题的答案仍然是NO,我将不得不调查编写我自己的包(对不起,我在打开我的问题后才找到这个链接)。
注 2:我在 Atom 中错误地看到了这一点。Atom 中似乎存在一个错误,当您从一个主题切换到下一个主题时,有时某些选项卡无法正确切换,并且您有混合主题。当您在缓冲区之间切换时,似乎根本没有性能损失。这就是我希望能够做到的,但要以受控的方式进行。
非常感谢。
原子 1.7.2 
Linux Mint 17.3
在 VS 2015 中滚动智能感知列表的键绑定(热键)是什么?
例如,在下面说我想向下滚动到“Ceil”:
我试过箭头键、pgup/pgdown、Alt-n/Alt-p、Tab、Numpad 上的箭头键,但没有成功。能够一次滚动一行,以及一次滚动一个“页面”会很好。
注意:我使用的是VsVim 扩展,所以这可能是问题所在?(虽然我尝试过像“j”、“k”、“ctrl-j”、“ctrl-k”这样的 vi-ish 按键没有效果)
如果这是一个明显的问题,我深表歉意,但我在任何地方都找不到有关它的任何信息,包括
Tools->Options->Environment->Keyboard.
鼠标当然可以工作,但由于我是 vi 用户,我真的不想把手从键盘上移开。
非常感谢。
我正在为vscode 1.12.2编写扩展,并且试图确定默认主题。Atom Editor有一个不错的API,用于访问配置值,例如:
atom.config.defaultSettings.core.themes[0]
"one-dark-ui"
atom.config.defaultSettings.core.themes[1]
"one-dark-syntax"
vscode中有与此类似的东西吗?
我可以在中看到值“ workbench.colorTheme” ~/AppData/Roaming/Code/User/settings.json:
   // "terminal.integrated.shell.windows": "/Program Files/Git/bin/bash.exe"
    "terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
    "terminal.integrated.shellArgs.windows": [
        "/k",
        "C:\\Program Files\\Git\\bin\\bash.exe"
    ],
    "workbench.colorTheme": "Default Light+" <-- here
但是,我宁愿不使用自定义解决方案,因为我直接将配置文件读取为JSON,特别是因为它允许非默认JSON值(例如注释),我大概必须预先解析它。
尽管此问题仅用于确定主题,但实际上适用于任何配置参数。我在vscode html API或浏览打字文件中没有看到任何内容/c/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/vscode.d.ts
尝试为罗马数字创建构造函数:
data RomanDigit a = M | D | C | L | V | I
newRomanDigit :: Int -> RomanDigit 
newRomanDigit 1000 = M 
newRomanDigit 500 = D
获取错误消息:
in module UserMod
at src\UserMod.purs line 81, column 1 - line 81, column 35
  Could not match kind
    Type
  with kind
    Type -> Type
while checking the kind of Int -> RomanDigit
in value declaration newRomanDigit
我究竟做错了什么?
angular ×2
purescript ×2
angular-cli ×1
atom-editor ×1
c# ×1
html ×1
javascript ×1
lodash ×1
typescript ×1
vsvim ×1