这与Emacs有关 :正则表达式替换为更改大小写
我的另一个问题是我需要编写搜索替换脚本,但"\,()"只有在交互使用时,解决方案才适用(对我而言)(emacs 24.2.1).在脚本内部,它给出错误:" \'替换文本中的无效使用".
我通常会在某些文件中写一个"执行替换",以便在需要时加载.类似于:(
执行 - 替换"<\\([^>]+\\)>" "<\\,(downcase \1)>"tt nil 1 nil(point-min)(point-max))
应该可以调用一个函数来生成替换(pg 741 of the emacs lisp manual),但我尝试了以下的许多变体而没有运气:
(defun myfun ()
(downcase (match-string 0)))
(perform-replace "..." (myfun . ()) t t nil)
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
像一个简单的文件
$ cat x.py
x = u'Gen\xe8ve'
print x
Run Code Online (Sandbox Code Playgroud)
跑步时会给我:
$ python x.py
Genève
Run Code Online (Sandbox Code Playgroud)
但是,当作为"命令替换"运行时,将给出:
$ echo $(python x.py)
...
UnicodeEncodeError: 'ascii' codec...
Run Code Online (Sandbox Code Playgroud)
我尝试过使用不同的终端模拟器(xterm,gnome-term)和ttyS上的控制台.用bash和sh.用python2.4和2.7.在运行python之前,我已经尝试将LC_ALL或LANG设置为某些utf-8语言环境.我检查了sys.getdefaultencoding().没有任何帮助.
当从另一个进程(如java)调用脚本时也会出现问题,但上面是我发现复制它的最简单方法.
我不明白这两个电话之间有什么区别.有人可以帮忙吗?