小编Sha*_*rad的帖子

每帧缓冲区

在切换和显示缓冲区时,是否可以通过每个emacs帧获取相关缓冲区的子集

我的意思是

  • 专用于GNUS的帧将仅显示gnus缓冲区
  • 专用于ERC的帧将仅显示erc缓冲区
  • 专用于编辑的帧将仅显示所有其他缓冲区

irc emacs buffer gnus

10
推荐指数
1
解决办法
277
查看次数

寻找支持对齐属性,多个span或div元素,多列的OSD

请告诉我是否有用于Xorg/Linux平台的OSD 屏幕显示程序技术,它可以以比pango更丰富的方式呈现XML,至少支持align属性和多个span或div元素,因此它可以显示多个列.

例如chipmunkav osd

到目前为止我检查了什么:

  • gnome-osd-client呈现XML,但gnome-osd-client提供非常简单的XML pango

  • osd_cat但它不带任何XML.

  • navit有一些使用osd的OSM数据XML,但难以理解.

如果没有这样的osd程序,请告诉我

  • 具有不同后端支持的HTML渲染器可以编程为使用OSD显示.

  • 来自在后端使用osd的其他现有包(如navit)的相关源可用于呈现此类XML.

我的问题是我实际上使用了pango,但它不够灵活,无法满足我在多列中显示XML的需求.

user-interface gnome renderer pango xlib

10
推荐指数
0
解决办法
230
查看次数

运行程序后离开交互式shell使用

我想运行任何作为参数给出的程序,通过shell然后希望将shell保留为交互式shell以便稍后使用.

#!/bin/bash
bash -i <<EOF
$@
exec <> /dev/tty
EOF
Run Code Online (Sandbox Code Playgroud)

但它不适用于zsh

#!/bin/bash
zsh -i <<EOF
$@
exec <> /dev/tty
EOF
Run Code Online (Sandbox Code Playgroud)

如果有人知道更多改进的方法,请告诉我.

bash shell zsh exec

9
推荐指数
1
解决办法
2431
查看次数

在Lisp或Scheme中是否存在整个程序转换宏?

我已经看到一个答案:Lisp如何让你重新定义语言本身? Stack Overflow问题(由Noah Lavine回答):

宏并不是对语言的完全重新定义,至少据我所知(我实际上是一个Schemer;我可能是错的),因为有一个限制.宏只能占用代码的单个子树,并生成一个子树来替换它.因此,你不能编写整个程序转换宏,就像那样酷.

阅读本文之后,我很好奇是否在Lisp或Scheme(或其他语言)中存在"整个程序转换宏".

如果不是那么为什么?

  • 它没用,从不需要?
  • 通过其他方式可以实现同样的目的吗?
  • 即使在Lisp中也无法实现它?
  • 有可能,但没有尝试或实施过吗?

更新

一种用例,例如

在stumpwm代码中,这里的一些函数都在不同的lisp源文件中使用了一个动态/全局defvar变量*screen-list*,它在primitives.lisp中定义,但在screen.lisp,user.lisp,window.lisp中使用.(这里每个文件都有与一个方面或对象相关的函数,类,变量)

现在我想在闭包下定义这些函数,其中 *screen-list*变量可以通过let表单获得,它不应该是动态/全局变量,但是不要将这些函数移动到一个地方(因为我不希望这些函数丢失来自相关文件的位置)这样只有这些函数才能访问这个变量.

以上例如同样适用于标签和flet,因此我们可以进一步使它成为只需要变量,功能将可用于需要它的人.

注意一种方法可能是实现并使用一些宏defun_with_context进行defun,其中第一个参数是上下文,其中let,flet变量definend.但除此之外,Vatine和Gareth Rees回答说,它可以通过读者宏来实现.

lisp macros scheme transformation

6
推荐指数
2
解决办法
780
查看次数

Lisp和Scheme存在哪些POOP框架

Lisp和Scheme中存在所有不错的POOP(基于原型的面向对象编程)框架

我认识一个*Sheeple

但我没有找到任何其他的.

lisp scheme prototype object clos

4
推荐指数
2
解决办法
648
查看次数

xmlstarlet解析器错误:未定义实体'*'

在网页上使用xmlstarlet时,我大部分时间都面临实体引用错误.这使得它无法从网页中提取.

因为html页面不是很好的形成XML(还有一些处理html的选项吗?)我将它们转换为

tidy -asxhtml 
Run Code Online (Sandbox Code Playgroud)

到XHTML,其中整齐的声明

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)

然后用xmlstarlet处理它

curl http://www.xfree86.org/current/index.html |  tidy -asxhtml | \
  xmlstarlet sel --net -T   -t -m hr -v . -
Run Code Online (Sandbox Code Playgroud)

它总是抛出相同的错误

-:13: parser error : Entity 'reg' not defined
<h1>Documentation for XFree86&reg; version 4.8.0</h1>
Run Code Online (Sandbox Code Playgroud)

有人知道如何让xmlsttarlet知道实体引用文件.

xml dtd entity xmlstarlet

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

标签 统计

lisp ×2

scheme ×2

bash ×1

buffer ×1

clos ×1

dtd ×1

emacs ×1

entity ×1

exec ×1

gnome ×1

gnus ×1

irc ×1

macros ×1

object ×1

pango ×1

prototype ×1

renderer ×1

shell ×1

transformation ×1

user-interface ×1

xlib ×1

xml ×1

xmlstarlet ×1

zsh ×1