hua*_*uan 42
url-unhex-string
Run Code Online (Sandbox Code Playgroud)
db4*_*48x 24
就我而言,我需要以交互方式进行此操作.以前的答案给了我正确的调用函数,然后只需要将它包装一点就可以使它们具有交互性:
(defun func-region (start end func)
"run a function over the region between START and END in current buffer."
(save-excursion
(let ((text (delete-and-extract-region start end)))
(insert (funcall func text)))))
(defun hex-region (start end)
"urlencode the region between START and END in current buffer."
(interactive "r")
(func-region start end #'url-hexify-string))
(defun unhex-region (start end)
"de-urlencode the region between START and END in current buffer."
(interactive "r")
(func-region start end #'url-unhex-string))
Run Code Online (Sandbox Code Playgroud)
添加盐,我的意思是根据口味绑定键.
Tör*_*bor 11
Emacs附带了一个URL库,它提供了一堆URL解析功能 - 正如huaiyuan和Charlie Martin已经指出的那样.这是一个小例子,它可以让你知道如何使用它:
(let ((url "http://www.google.hu/search?q=elisp+decode+url&btnG=Google+keres%E9s&meta="))
;; Return list of arguments and values
(url-parse-query-string
;; Decode hexas
(url-unhex-string
;; Retrieve argument list
(url-filename
;; Parse URL, return a struct
(url-generic-parse-url url)))))
=> (("meta" "") ("btnG" "Google+keresés") ("/search?q" "elisp+decode+url"))
Run Code Online (Sandbox Code Playgroud)
我认为是更好地依靠它不是org-mode
因为它是解析URL它的主要目的.
org-link-unescape
为非常简单的情况做这项工作......w3m-url-decode-string
更好,但它不是内置的,而且我在本地拥有的版本不适用于 Emacs 23。