小编gue*_*tli的帖子

13
推荐指数
2
解决办法
7735
查看次数

挂钩进入linux关键事件处理

我想挂钩到linux桌面键事件处理.

按CapsLock应该输入某种命令行.

我想要实现的一些命令:

  • d/x:从当前光标位置删除直到字符x.(灵感来自vi)
  • a:转到行首,就像pos1一样.(受emacs启发).
  • k:删除直到行尾.(受emacs启发).
  • ...

这些命令应该适用于任何文本字段:浏览器,邮件客户端,gnome终端,...

AFAIK低级xmodmap在这里不会帮助我.

这样的事情可能吗?

我需要在哪里放钩?

目前的目标平台是Ubuntu> = 14.04

背景:我想把手指放在F和J上,然后在不看键盘的情况下使用电脑.几年以来一直适用于AZ,但是像Pos1/End这样的键不容易访问.

如果您不理解这个问题的一部分,请发表评论.谢谢.

更新

这个问题只是关于如何挂钩关键事件处理.其他东西(命令行)是一个不同的主题.你怎么能抓住这个例子CapsLock x

Update2 我发现没有简单直接的解决方案.如果你没有答案,但你知道我可以在哪里找到更多的帮助(比如在邮件列表FOO上询问),请告诉我.

Update3 由于有些人不明白我想要什么,我试着解释一下:如果我使用emacs或者bash,我觉得如果计算机控制它:它就像飞行一样,只有很少的动作我可以告诉计算机去做我想要的是.在webbrowser textarea,LibreOffice或使用thunderbird编辑文本会让这种感觉消失.光标移动很麻烦,感觉不像是飞行.我想控制桌面,而不仅仅是一个应用程序,并指着F和J键.

linux keyboard desktop

13
推荐指数
2
解决办法
7987
查看次数

vim:使用perl兼容的正则表达式进行交互式搜索和替换

根据此页面,您可以使用perl兼容的正则表达式

:perldo s/pattern/insert/g.

这很好用.

但是,如何在vim中进行交互式搜索并替换为PCRE语法?

由于这不适perldo用于我搜索不同的解决方案.

vim perl replace

13
推荐指数
1
解决办法
1532
查看次数

AngularJS中的生产者 - 消费者队列

几年前我就认识python和数据库了.

但我想提高我有限的JavaScript知识.对于我的玩具项目,我想在Web浏览器中使用异步队列并使用AngularJS.

在python中有一个很好的类叫做multiprocessing.Queue,我以前用过它.

现在我搜索这样的东西,但是在AngularJS中

异步队列-JS

  • 第1步:队列中的工作项(粉色圆圈).只是一个视图json字节.

  • 第2步:用户处理数据.

  • 步骤3:out-queue关心将结果发送到服务器.

为什么这个"复杂"的设置?因为我希望应用程序尽可能地响应.队列中应该预先加载一些数据,出队列应该处理响应通信.

另一个好处是,通过此设置,应用程序可以处理服务器或网络中断几分钟.

AngularJS的双向数据绑定立即更新用户编辑的数据并不适合我的问题.或者我错过了什么.我是AngularJS的新手.

图中的粉色圆圈表示JSON数据结构.我想通过一个请求将每个请求推送到浏览器.

例:

用户看到一个问题,然后他需要填写三个字段.例如:

  • 回答:输入文字
  • 喜欢这个问题:1..5的整数
  • 难度:1..5的整数

在使用了"提交"后,数据应该被放入队列中.他应该立即得到下一个问题.

题:

是否已经为AngularJS提供了生产者 - 消费者队列?如果没有,如何实施呢?

更新

从客户端发送数据可以使用普通的AJAX实现.预取数据的队列是更复杂的部分.虽然两者都可以使用相同的实现.客户端以超低延迟获取新数据非常重要.队列中每次最多应填充5个项目,以避免客户端等待数据.

在我的情况下,如果浏览器关闭并且队列中的项目丢失则无关紧要.填充队列在服务器部分是只读的.

我没有修复AngularJS.如果有充分的理由,我很乐意改变框架.

保留浏览器重新加载之间的队列可以使用localStorage(html5)完成

javascript producer-consumer angularjs

13
推荐指数
1
解决办法
1672
查看次数

OError:[Errno 26]文本文件繁忙:'/...myvirtualenv/bin/python'

我尝试重新创建virtualenv:

foo_bar_d@aptguettler:~$ virtualenv --system-site-packages . 
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

foo_bar_d@aptguettler:~$ virtualenv --system-site-packages .
New python executable in /home/foo_bar_d/bin/python
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 711, in main
    symlink=options.symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 924, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1230, in install_python
    shutil.copyfile(executable, py_executable)
  File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 26] Text file busy: '/home/foo_bar_d/bin/python'
Run Code Online (Sandbox Code Playgroud)

有人知道为什么会发生这种异常吗?

python virtualenv ioerror

13
推荐指数
1
解决办法
1万
查看次数

如何避免在源代码中保留版本号?

到目前为止,我们将python源代码的版本号保留在setup.py中。

每次成功运行ci后,此版本都会增加。

这意味着中央库的版本每天都会增加几次。

由于版本号存储在git repo中的文件中,因此版本号的每次增加都是新的提交。

这意味着大约50%的提交不是由人做出的,而是由CI做出的。

我有一种感觉,我们走错了路。将版本号保留为ci可能不是一个好的解决方案。

我们如何避免仅增加版本号的“无用” CI提交?

如何避免在源代码中保留版本号?

更新资料

几年来,我们一直没有人工发布。我们没有像MAJOR.MINOR这样的版本控制方案。我们过去从未错过这一点。我知道这并不适用于所有环境。但这适用于我当前的环境。

我们有一个看起来像这样的版本号:YEAR.MONTH.X

这意味着每个通过CI的提交都是一个新版本。

阅读答案后,我意识到:我需要问自己:我是否有版本号?我想不是。我有一个内部编号。在这种情况下,不需要更多。

(感谢您的投票。在问这个问题之前,我已经确定这个问题将结束,因为人们会认为这是“不清楚”或“范围太广”)

python git continuous-integration

13
推荐指数
2
解决办法
612
查看次数

socket.getfqdn()不返回任何域,但是socket.gethostname()可以吗?

我不明白这个:

Python 2.7.3 (default, Apr 14 2012, 08:58:41) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> socket.getfqdn()
'SR-MW001'
>>> socket.gethostname()
'sr-mw001.foo-domain.de'
Run Code Online (Sandbox Code Playgroud)

怎么了

根据socket.getfqdn()的文档,应返回“完全合格的域名”。

更新资料

更多信息:

/ etc / hosts

sr-mw001:~ # grep -iP 'SR-MW001|localhost|foo-domain' /etc/hosts
127.0.0.1       localhost
::1             localhost ipv6-localhost ipv6-loopback
10.189.217.11   SR-MW001 foo-work
Run Code Online (Sandbox Code Playgroud)

知识产权

sr-mw001:~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host …
Run Code Online (Sandbox Code Playgroud)

python fqdn

13
推荐指数
1
解决办法
269
查看次数

使用utf8编码的文本到pdf(替代a2ps)

程序a2ps不支持utf-8.至少我的版本只支持latin-X编码:

a2ps --list=encoding
Run Code Online (Sandbox Code Playgroud)

版:

GNU a2ps 4.14
Run Code Online (Sandbox Code Playgroud)

如何将简单的utf-8文本转换为postscript或pdf?

printing pdf unicode ascii utf-8

12
推荐指数
2
解决办法
9161
查看次数

Django:一个视图的基本身份验证(避免使用中间件)

我需要提供http-basic-auth一个视图.

我想避免修改中间件设置.

背景:这是一个由远程应用程序填充的视图.

python authentication django http-authentication basic-authentication

12
推荐指数
3
解决办法
2528
查看次数

git:结帐时自动隐藏+弹出

如果我做git checkout my-super-branchgit 告诉我:

error: Your local changes to the following files would be overwritten by checkout:
    somedir/somefile.py
Please, commit your changes or stash them before you can switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以告诉 git 自动执行 stash+pop?

git git-stash

12
推荐指数
3
解决办法
3505
查看次数