小编mbi*_*nov的帖子

在独立缓冲区内实时监控 vim 消息

我正在开发一个 vim 插件,作为其中的一部分,我正在测试各种东西,例如“自动组”和事件,我可以在其中一般性地挂钩一些东西。当事情正在运行时,我正在使用使用命令输出各种调试消息的函数echom。问题是,一旦我想查看输出,我需要键入:message,然后继续按某个键,直到出现消息末尾,这样我才能看到最后一条消息是什么。

有解决方法吗?例如,是否有一个插件可以帮助我在单独的缓冲区内实时查看消息流?

谢谢。(OSX、MacVim)

vim macvim

8
推荐指数
1
解决办法
1326
查看次数

创建具有不同开始和结束行为的CSS转换?

我想在HTML元素上进行简单的颜色转换.

我试图解决的问题是我需要让转换的第一部分发生得更快第二部分 更慢.

所以,我快速眨眼(淡入)和慢速恢复(淡出).

我通过以下解决方案实现了这一点,但对我来说看起来并不正确.在我最终使用嵌套事件处理程序并且代码过于复杂的意义上,它看起来并不正确.但是,它正好展示了我想要实现的目标.

有没有办法以variableCSSTransition更聪明的方式设置这种类型?

function updateCard (cardObj) {
    // Handle card color.
    let cardBlinkColor = 'rgb(11, 83, 69)';

    // Store current background.
    let cardIdleColor = cardObj.style.background;
    // Asign fade-in properties.
    cardObj.classList.add('fadeIn');
    cardObj.style.background = cardBlinkColor;
    cardObj.addEventListener('transitionend', function(event) {
        //console.log('(IN) Done!, propertyName:', event.propertyName, 'elapsedTime:', event.elapsedTime);
        cardObj.classList.remove('fadeIn');
        cardObj.classList.add('fadeOut');
        cardObj.style.background = cardIdleColor;
        cardObj.addEventListener('transitionend', function(event) {
            //console.log('(OUT) Done!, propertyName:', event.propertyName, 'elapsedTime:', event.elapsedTime);
            cardObj.classList.remove('fadeOut');
        }, true);
    }, true);
}

const z = document.getElementsByClassName('card-container');
const card = …
Run Code Online (Sandbox Code Playgroud)

html javascript css css-transitions

8
推荐指数
1
解决办法
78
查看次数

"htop"风格gui与python,怎么样?

我有兴趣构建一些基于文本的GUI,看起来像终端的东西,但具有选择行和执行操作等功能.

你知道,像htop和atop这样的东西,例如:

在顶上

HTOP

关于那的任何资源?

python user-interface text

7
推荐指数
1
解决办法
3910
查看次数

如何扩展logging.Logger类?

我想从一个继承自Python logging.Logger类的基本日志类开始.但是,我不确定如何构建我的类,以便我可以建立自定义继承记录器所需的基础知识.

这是我目前在我的logger.py文件中所拥有的:

import sys
import logging
from logging import DEBUG, INFO, ERROR

class MyLogger(object):
    def __init__(self, name, format="%(asctime)s | %(levelname)s | %(message)s", level=INFO):
        # Initial construct.
        self.format = format
        self.level = level
        self.name = name

        # Logger configuration.
        self.console_formatter = logging.Formatter(self.format)
        self.console_logger = logging.StreamHandler(sys.stdout)
        self.console_logger.setFormatter(self.console_formatter)

        # Complete logging config.
        self.logger = logging.getLogger("myApp")
        self.logger.setLevel(self.level)
        self.logger.addHandler(self.console_logger)

    def info(self, msg, extra=None):
        self.logger.info(msg, extra=extra)

    def error(self, msg, extra=None):
        self.logger.error(msg, extra=extra)

    def debug(self, msg, extra=None):
        self.logger.debug(msg, extra=extra)

    def warn(self, msg, extra=None): …
Run Code Online (Sandbox Code Playgroud)

python logging

6
推荐指数
1
解决办法
8909
查看次数

是否可以禁用 plotly.py 烛台图表上的缩放/平移窗口?

我正在使用 plotly.py 创建烛台图。我想进行水平拆分并将烛台数据放在顶部拆分中,将一些数据曲线放在底部拆分中。我不需要平移和缩放,并且带有缩放/平移控件的烛台图的下部妨碍了我。

在此处输入图片说明

python plotly

6
推荐指数
1
解决办法
4853
查看次数

如何在vim脚本中使用字符串设置选项

我正在尝试设置一个选项,但是使用变量时它不起作用。

这实际上是有效的:

set runtimepath+=~/.vim/bundle/foo/foo.vim/
Run Code Online (Sandbox Code Playgroud)

当我尝试此操作时,它不再起作用:

g:foo_path = '~/.vim/bundle/foo/foo.vim/'
set runtimepath+=g:foo_path
Run Code Online (Sandbox Code Playgroud)

我在这里看到了类似的主题,他们使用以下命令来设置带有变量的选项:

let &backupdir=s:vimetc.'backups/'
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这样做时:

 let &runtimepath+=g:foo_path
Run Code Online (Sandbox Code Playgroud)

它仍然不起作用。我正进入(状态:

 E734: Wrong variable type for +=
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢。

vim

5
推荐指数
1
解决办法
954
查看次数

将字典转换为对象时的问题

我正在使用之前讨论过的一种技术,将字典转换为对象,以便我可以使用点 (.) 概念访问字典的元素,作为实例变量。

这就是我正在做的:

# Initial dictionary
myData = {'apple':'1', 'banana':'2', 'house':'3', 'car':'4', 'hippopotamus':'5'}

# Create the container class
class Struct:
    def __init__(self, **entries):
        self.__dict__.update(entries)

# Finally create the instance and bind the dictionary to it
k = Struct(**myData)
Run Code Online (Sandbox Code Playgroud)

所以现在,我可以这样做:

print k.apple
Run Code Online (Sandbox Code Playgroud)

结果是:

1
Run Code Online (Sandbox Code Playgroud)

这有效,但是如果我尝试向“Struct”类添加一些其他方法,问题就会开始。例如,假设我添加了一个仅创建变量的简单方法:

class Struct:
    def __init__(self, **entries):
        self.__dict__.update(entries)

    def testMe(self):
        self.myVariable = 67
Run Code Online (Sandbox Code Playgroud)

如果我做:

k.testMe()
Run Code Online (Sandbox Code Playgroud)

我的字典对象坏了,“myVariable”作为键插入,值为“67”。所以如果我这样做:

print k.__dict__
Run Code Online (Sandbox Code Playgroud)

我正进入(状态:

{'apple': '1', 'house': '3', 'myVariable': 67, 'car': '4', 'banana': '2', 'hippopotamus': '5'}
Run Code Online (Sandbox Code Playgroud)

有没有办法来解决这个问题?我有点明白发生了什么,但不确定是否需要完全改变我的方法并构建一个带有内部方法的类来处理字典对象,还是有更简单的方法来解决这个问题?

这是原始链接: Convert Python dict to …

python dictionary class

5
推荐指数
1
解决办法
2354
查看次数

查找组合键的十六进制代码序列

我试图了解为键盘组合键生成十六进制代码序列的方法.所以我可以使用它们通过iTerm2的"发送十六进制代码"功能将特定密钥发送到运行在iTerm2内部的tmux内的vim会话.然而,这变得非常混乱.

我从这篇文章开始:tmux的iTerm2键盘映射

因此,作为常量和起点我知道CTRL-b可以表示为十六进制代码0x02.

我测试了它,并且它有效,当我将它映射到iTerm2中的任何随机键时,我可以看到它被发送到tmux作为 CTRL-b

但是我怎么知道其他组合键的十六进制代码,例如SHIFT-F10的十六进制代码是什么?还是CTRL-F5?还是CTRL-m-Space?

我在这里提出了另一个与此问题相关的问题: 密钥转义序列不适用于tmux

vim hex tmux

5
推荐指数
1
解决办法
2858
查看次数

重试失败的异步/承诺功能?

我有这个异步块:

test().then(function(result){
    // Success: Do something.
    doSomething();
}).catch(function(error){
    // Error: Handle the error, retry!
    // How to re-run this whole block?
});
Run Code Online (Sandbox Code Playgroud)

我可以跟踪的successfailed成果。但是,test().then().catch()如果我们失败了,是否可以重试整个链?并继续重试直到条件解决?

javascript asynchronous node.js promise

5
推荐指数
2
解决办法
5745
查看次数

具有额外详细深度的 Python 日志级别

我想扩展现有的logging.LEVEL机制,以便我可以选择在不同的日志记录级别(例如 、 等)之间切换DEBUGINFO同时还为每个级别ERROR定义。depth

例如,假设日志记录级别设置为logging.DEBUG。所有log.DEBUG()呼叫都将可见。

log.debug('Limit event has occurred.')
Run Code Online (Sandbox Code Playgroud)

所以我得到:

[2016-10-08 10:07:29,807] <__main__> {myApp:test_condition_info:93} (DEBUG) Limit event has occurred.
Run Code Online (Sandbox Code Playgroud)

我所追求的是将额外的深度级别传递给调用log.debug(),以便我可以控制消息中打印的详细信息量DEBUG,而不是完全启用禁用调试级别,而是控制调试消息将携带多少信息。因此,在所有情况下,我们都会看到调试消息,但在某些情况下,它不太详细,并且在某些情况下包含更多信息。

例如:

log.debug('Limit event has occurred.', verbosity=1)
log.debug('The following user has caused the limit event: %s' % (user), verbosity=3)
log.debug('The following files have been affected: %s' % [list_of_files], verbosity=7)
Run Code Online (Sandbox Code Playgroud)

因此,当日志记录级别设置为DEBUG且全局详细程度设置为 时,GLOBAL_VERBOSITY=1我们将得到以下结果:

[2016-10-08 10:07:29,807] <__main__> {myApp:test_condition_info:93} …
Run Code Online (Sandbox Code Playgroud)

python logging

4
推荐指数
1
解决办法
1679
查看次数