小编Agi*_*ilE的帖子

Vim pumvisible()调用随机文本

我正在为Vim使用spf13包.但是,每当我输入一些文本并按下escape时,会有一些奇怪的字符被附加到它上面.

例如,如果我键入此并按下escape,

hello
Run Code Online (Sandbox Code Playgroud)

我明白了:

hellopumvisible() ? "\" : "\
Run Code Online (Sandbox Code Playgroud)

我的.vimrc文件上有一个映射,看起来像这样,我认为可能是负责的:

" some convenient mappings
inoremap <expr> <Esc>      pumvisible() ? "\<C-e>" : "\<Esc>"
inoremap <expr> <CR>       pumvisible() ? "\<C-y>" : "\<CR>"
inoremap <expr> <Down>     pumvisible() ? "\<C-n>" : "\<Down>"
inoremap <expr> <Up>       pumvisible() ? "\<C-p>" : "\<Up>"
inoremap <expr> <C-d>      pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<C-d>"
inoremap <expr> <C-u>      pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<C-u>"
Run Code Online (Sandbox Code Playgroud)

我猜它来自http://vim.wikia.com/wiki/Improve_completion_popup_menu.但由于某种原因,这给了我奇怪的行为.有什么建议?

编辑: 这是输出:inoremap <esc>

i <Esc> *@pumvisible() ? '<C-E>' : '<C-R>=<SNR>32_FlushBuffer()<CR>pumvisible() ? "\<C-E>" : "\<Esc>"' …

vim

9
推荐指数
2
解决办法
4443
查看次数

在 Gtk3 中赋予窗口焦点

我在 Ubuntu 13.10 上使用 Python 2.7.4 和 Gtk3。

我正在使用 Keybinder 库通过热键隐藏和显示我的 Gtk 窗口。现在,当我的窗口确实使用热键显示时,它并不总是获得焦点。

相关代码如下:

def toggle(self, key, data):
    if self.hidden:
        self.hidden = False
        self.set_keep_above(True)
        self.set_accept_focus(True)
        self.present()
        self.enteredName.grab_focus()
    else:
        self.hidden = True
        self.hide()
Run Code Online (Sandbox Code Playgroud)

这里,self指的是 Gtk 窗口,self.enteredName是类型为 的小部件Gtk.Entry()

set_accept_focus()通常, 、 、的组合set_keep_above()后跟present()有效。如果没有set_keep_above,我的窗口就不会升到顶部。如果没有set_accept_focus,我的窗口就无法获得键盘焦点。

当我刚刚启动我的应用程序然后使用热键(隐藏和显示它)测试它时,上面的设置有效。我的窗口总是接收键盘焦点。然而,假设我打开了一个 GVim 窗口,并且我已将键盘焦点赋予它。按下热键时,我的窗口显示在顶部(甚至在 GVim 窗口的顶部),但键盘焦点仍然位于 GVim 窗口。

我尝试了几种组合(通过添加activate),并将焦点放在文本小部件上。但它没有按预期工作。

我这里缺少什么吗?

python gtk3

6
推荐指数
0
解决办法
1306
查看次数

为什么位图图像在 Retina 显示屏上看起来很模糊?

我没有视网膜设备,但我在网上看到了这个讨论。我读过有关为具有 Retina 显示屏的设备提供 2 倍图像尺寸的解决方案,以确保位图不会变得模糊。

但是,我不明白这是如何工作的。首先,正如我所读到的,我假设视网膜显示器的像素密度是四倍(二的平方)。因此,这意味着,普通显示器的每个像素在视网膜中被四个像素取代,而它们总体上占据相同的物理空间。

现在,我将参考 SmashingMagazine 的一篇文章(http://coding.smashingmagazine.com/2012/08/20/towards-retina-web/)。他们在这里使用图像来解释这个概念:http://media.smashingmagazine.com/wp-content/uploads/2012/07/css-device-bitmap-pixels.png

他们说,由于视网膜的像素密度是原来的四倍,因此它将位图的像素每个乘以四个像素,这使得图像丢失细节。

然而,在这两种情况下(4 像素或 1 像素),“彩色块”的物理尺寸仍然相同。那么,保真度的损失在哪里呢?位图像素仍然由相同的物理尺寸表示。

我现在就是这么看的。显然,我所做的某种假设不允许我理解这个概念。谁能澄清一下吗?

retina-display

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

RxJS将当前值推向后期订户

以下是我使用的HTML代码段作为示例:

<html>
<head>
    <script src="rx.all.js"></script>
</head>
<body>
    <script>
        var source = new Rx.BehaviorSubject(function() {return 2;});

        var stuff = source.scan([], function(val, operation) {
            return operation(val);
        });

        stuff.subscribe(function(v) {
            console.log("first subscriber");
            console.log(v);
        });

        source.onNext(function(val) {
            return val * 2;
        });

        stuff.subscribe(function(v) {
            console.log("second subscriber");
            console.log(v);
        });
    </script>
</body>
Run Code Online (Sandbox Code Playgroud)

JS控制台中的输出是:

first subscriber
2
first subscriber
4
second subscriber
0 
Run Code Online (Sandbox Code Playgroud)

现在,"东西"做了一些处理(主要适用于当前值的函数),我已经从TodoMVC例如用于ReactJs + RxJS采取的想法(https://github.com/fdecampredon/react-rxjs-todomvc) .

我想要实现的输出是让第二个用户在订阅时也看到"4".我正在将RxJS与ReactJS结合使用,因此组件在卸载时会取消订阅(由于路由更改),并在再次安装时再次订阅.

javascript reactive-programming rxjs

3
推荐指数
2
解决办法
1700
查看次数