小编Ado*_*obe的帖子

Emacs:如何编写一个对区域起作用的defun,但如果没有区域则作用于point?

我为一个区域写了一个简单的defun,即使没有区域我想要应用它 - 也就是说它根本没有选择.我以为我可以做以下事情:

(defun region-study (strt end)
  (interactive "r")
  (if (= strt end)
    (progn ....) ;; then
    (progn ....))) ;; else
Run Code Online (Sandbox Code Playgroud)

但它不起作用.事实证明,当您(interactive "r")在没有区域的情况下进行呼叫时,它不仅仅将边界设置为相等.试试这个:

(defun region-study (strt end)
  (interactive "r")
  (message "strt=%d; end=%d" strt end))
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:"如何编写一个对区域起作用的defun,但如果没有区域则会对点进行操作?"

编辑:

所以我想把选择放在括号中或只是插入括号和(backward-char 1).这是一个解决方案:

(defun put-in-lft-rit (lft rit)
  (interactive "k")
  (if (use-region-p) ;; act on region
    (progn 
      (setq pP (point)) 

      (setq strt (region-beginning))
      (setq end (region-end))

      (setq meat (buffer-substring-no-properties strt end))
      (setq news (concat lft meat rit))
      (delete-region strt end)
      (goto-char strt) …
Run Code Online (Sandbox Code Playgroud)

emacs elisp

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

Emacs:如何指定true-type字体在哪里?

我想在集群上的 emacs 中使用 DejaVu 字体,但我无权在系统范围内安装字体。我将字体(它们是免费的)放入~/.fonts. 我想利用DejaVuSansMono.ttf. 通常我只是输入 .emacs:

(custom-set-variables 
 '(default ((t (:inherit nil :stipple nil :background "#ffffb1" :foreground "#141312" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 173 :width normal :foundry "monotype" :family "DejaVu Sans Mono")))))
Run Code Online (Sandbox Code Playgroud)

但是现在emacs找不到字体了!

所以我的问题是 - 如何帮助 emacs 找到字体?如何指定字体的路径?

emacs fonts

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

CEDET:手动存储标签

我正在使用ECB和Cedet - 语义搜索引擎存储我在其缓存文件中访问的文件的标签.

我也在使用ECB的left-symboldef布局 - 它显示了光标所在标签的定义.为了做到这一点,语义打开了定义标记的文件.

问题是 - 语义几乎打开了我所有的python脚本 - 因为我已经parser在所有这些脚本中定义了 - 当我用argparse... 解析命令行参数时所以我宁愿停止语义缓存我的文件,并且这样做C-c , ,仅在我的libs上手动操作.

所以我的问题是 - 如何防止语义存储缓存?我仍然可以使用现有的数据库(我将手动收集).

emacs cedet emacs-ecb

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

如何在后台执行shell命令?

这是一个简单的defun来运行shell脚本:

(defun bk-konsoles ()
  "Calls: bk-konsoles.bash"
  (interactive)
  (shell-command (concat (expand-file-name "~/its/plts/goodies/bk-konsoles.bash ")
                         (if (buffer-file-name) 
                             (file-name-directory (buffer-file-name)))
                         " &") 
                  nil nil))
Run Code Online (Sandbox Code Playgroud)

如果我启动一个没有&符号的程序 - 它启动脚本,但阻止emacs直到我关闭程序,如果我没有输入&符号它会给出错误:

/home/boris/its/plts/goodies/bk-konsoles.bash /home/boris/scl/geekgeek/: exited abnormally with code 1.
Run Code Online (Sandbox Code Playgroud)

编辑:

所以现在我正在使用:

(defun bk-konsoles ()
  "Calls: bk-konsoles.bash"
  (interactive)
  (shell-command (concat (expand-file-name "~/its/plts/goodies/bk-konsoles.bash ") 
                         (if (buffer-file-name) 
                             (file-name-directory (buffer-file-name))) 
                         " & disown") 
                 nil nil)
  (kill-buffer "*Shell Command Output*"))
Run Code Online (Sandbox Code Playgroud)

编辑2:

不 - 不起作用:

(defun bk-konsoles ()
  "Calls: bk-konsoles.bash"
  (interactive)
  (let ((curDir default-directory))
    ;; (shell-command (concat "nohup " (expand-file-name "~/its/plts/goodies/bk-konsoles.bash ") curDir) …
Run Code Online (Sandbox Code Playgroud)

emacs elisp

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

如何使用Cx 8前缀设置密钥?

假设我想重新绑定C-x 8 x?。所以我做:

(global-set-key (kbd "C-x 8 x") (lambda () (interactive) (insert "?")))
Run Code Online (Sandbox Code Playgroud)

但它不起作用:它仍会插入默认的x符号。然后我都尝试了:

(global-unset-key (kbd "C-x 8 x"))
(global-set-key (kbd "C-x 8 x") nil)
Run Code Online (Sandbox Code Playgroud)

没有效果。

编辑

这是我现在用于希腊人的内容:

(define-key 'iso-transl-ctl-x-8-map "a" [??])
(define-key 'iso-transl-ctl-x-8-map "b" [??])
(define-key 'iso-transl-ctl-x-8-map "g" [??])
(define-key 'iso-transl-ctl-x-8-map "d" [??])
(define-key 'iso-transl-ctl-x-8-map "e" [??])
(define-key 'iso-transl-ctl-x-8-map "z" [??])
(define-key 'iso-transl-ctl-x-8-map "h" [??])
(define-key 'iso-transl-ctl-x-8-map "o" [??])
(define-key 'iso-transl-ctl-x-8-map "i" [??])
(define-key 'iso-transl-ctl-x-8-map "k" [??])
(define-key 'iso-transl-ctl-x-8-map "l" [??])
(define-key 'iso-transl-ctl-x-8-map "m" …
Run Code Online (Sandbox Code Playgroud)

emacs

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

我如何适应3D数据

我有一个3D点列表,我想要适应一个球体:

R^2 = (x-x0)^2 + (y-y0)^2 + (z-z0)^2
Run Code Online (Sandbox Code Playgroud)

所以我想,我会表达z,并使用4个参数(x0,y0,z0和R)拟合2D数据:

z = sqrt(R^2 - (x-x0)^2 - (y-y0)^2) + z0
Run Code Online (Sandbox Code Playgroud)

这是一个代码(它是大项目的一部分):

#!/usr/bin/python

from scipy import *
from scipy.optimize import leastsq

Coordinates = load("data.npy")

xyCoords = Coordinates[:, [0, 1]]
zCoords  = Coordinates[:, 2]

p0 = [149.33499, 148.95999, -218.84893225608857, 285.72893713890107]

fitfunc = lambda p, x: sqrt(p[3]**2 - (x[0] - p[0])**2 - (x[1] - p[1])**2) + x[2]
errfunc = lambda p, x, z: fitfunc(p, x) - z
p1, flag = leastsq(errfunc, p0, args=(xyCoords, zCoords))

print …
Run Code Online (Sandbox Code Playgroud)

numpy scipy

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

有条件地包括扩展?

有一个ifconfigsphinx扩展 - 它允许有条件地包含内容.我正在寻找一种有条件地包含扩展的方法.我最好的尝试只是提供一个扩展列表,其中包含以下-D选项sphinx-build:

sphinx-build -b singlehtml -d _build/doctrees -D html_theme=empty -D "extensions=['sphinx.ext.autodoc', 'sphinx.ext.viewcode', 'sphinx.ext.numfig', 'sphinx.ext.ifconfig', 'cloud_sptheme.ext.table_styling', 'sphinx.ext.htmlmath']" . _build/wkA
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

问题是有条件地包括sphinx.ext.htmlmathsphinxcontrib.mathml.

python python-sphinx

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

实例化Type时的关键字参数

假设我有以下类型:

type Foo
    a::Int64
    b::Int64
end
Run Code Online (Sandbox Code Playgroud)

我可以用它来实例化

bar = Foo(1,2)
Run Code Online (Sandbox Code Playgroud)

有没有办法在这里使用关键字,因为在上面我必须记住它a是第一个,并且b是第二个.像这样的东西:

bar = Foo(a=1, b=2)
Run Code Online (Sandbox Code Playgroud)

编辑:

如果从函数调用,spencerlyon2的解决方案不起作用:

#!/usr/bin/env julia

type Foo
    a::Float64
    b::Float64
end

function main()
    Foo(;a=1, b=2.0) = Foo(a,b)
    bar = Foo(a=1, b=2.0)
    println(bar.a)
end

main()
Run Code Online (Sandbox Code Playgroud)

为什么?有解决方法吗?

编辑2:

在函数内部不起作用:

#!/usr/bin/env julia

type Foo
    a::Int64
    b::Int64
end

function main()
    Foo(;a=1, b=2) = Foo(a,b)
    bar = Foo(a=1, b=2)
    println(bar.a)
end

main()
Run Code Online (Sandbox Code Playgroud)

但如果把它从功能中取出 - 它可以工作:

#!/usr/bin/env julia

type Foo
    a::Int64
    b::Int64
end

# function …
Run Code Online (Sandbox Code Playgroud)

julia

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

是否可以列出给定二级域的所有三级域?

例如,假设我想列出 google.com 的所有三级域。该列表应该看起来像

 translate.google.com
 plus.google.com
Run Code Online (Sandbox Code Playgroud)

等。是否有可能获得任意二级域的列表?

dns dig

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

使用sqlite在零件中拆分值

我正在努力转换

a | a1,a2,a3
b | b1,b3
c | c2,c1
Run Code Online (Sandbox Code Playgroud)

至:

a | a1
a | a2
a | a3
b | b1
b | b2
c | c2
c | c1
Run Code Online (Sandbox Code Playgroud)

以下是sql格式的数据:

CREATE TABLE data(
  "one"  TEXT,
  "many" TEXT
);
INSERT INTO "data" VALUES('a','a1,a2,a3');
INSERT INTO "data" VALUES('b','b1,b3');
INSERT INTO "data" VALUES('c','c2,c1');
Run Code Online (Sandbox Code Playgroud)

解决方案可能是递归的公共表表达式。




这是一个与单行相似的示例:

WITH RECURSIVE list( element, remainder ) AS (
    SELECT NULL AS element, '1,2,3,4,5' AS remainder
        UNION ALL
    SELECT
        CASE
            WHEN INSTR( remainder, ',' )>0 THEN …
Run Code Online (Sandbox Code Playgroud)

sqlite recursive-query common-table-expression

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