我为一个区域写了一个简单的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 中使用 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 找到字体?如何指定字体的路径?
我正在使用ECB和Cedet - 语义搜索引擎存储我在其缓存文件中访问的文件的标签.
我也在使用ECB的left-symboldef布局 - 它显示了光标所在标签的定义.为了做到这一点,语义打开了定义标记的文件.
问题是 - 语义几乎打开了我所有的python脚本 - 因为我已经parser在所有这些脚本中定义了 - 当我用argparse... 解析命令行参数时所以我宁愿停止语义缓存我的文件,并且这样做C-c , ,仅在我的libs上手动操作.
所以我的问题是 - 如何防止语义存储缓存?我仍然可以使用现有的数据库(我将手动收集).
这是一个简单的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) 假设我想重新绑定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) 我有一个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) 有一个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.htmlmath或sphinxcontrib.mathml.
假设我有以下类型:
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) 例如,假设我想列出 google.com 的所有三级域。该列表应该看起来像
translate.google.com
plus.google.com
Run Code Online (Sandbox Code Playgroud)
等。是否有可能获得任意二级域的列表?
我正在努力转换
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)