首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在emacs中调用(buffer-file-name)时转义空格

在Emacs中,调用(buffer-file-name)函数可以获取当前缓冲区所关联的文件名。当文件名中包含空格时,需要进行转义处理。

Emacs中的文件名转义规则如下:

  • 空格会被转义为\040
  • 反斜杠\会被转义为\\
  • 其他特殊字符如换行符、制表符等会被转义为\n\t等。

以下是一个示例代码,演示如何在Emacs中调用(buffer-file-name)并转义空格:

代码语言:elisp
复制
(let ((file-name (buffer-file-name)))
  (if file-name
      (setq file-name (replace-regexp-in-string " " "\\\\040" file-name))
    (message "Buffer is not visiting a file."))
  (message "Escaped file name: %s" file-name))

上述代码中,首先使用(buffer-file-name)获取当前缓冲区的文件名,然后使用replace-regexp-in-string函数将空格替换为\040,最后将转义后的文件名输出。

在Emacs中,可以通过使用shell-command-to-string函数来执行系统命令。如果你想在Emacs中调用外部命令来转义文件名,可以使用以下代码:

代码语言:elisp
复制
(let* ((file-name (buffer-file-name))
       (escaped-file-name (shell-command-to-string (format "printf %%q \"%s\"" file-name))))
  (message "Escaped file name: %s" escaped-file-name))

上述代码中,使用printf命令结合%q格式化选项来转义文件名,并通过shell-command-to-string函数执行该命令。最后将转义后的文件名输出。

需要注意的是,Emacs本身并不提供专门处理云计算的功能,但可以通过插件和配置来实现与云计算相关的开发和操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Linux+Windows: 程序崩溃 C++ 代码,如何获取函数调用栈信息

    一、前言 二、Linux 平台 三、Windwos 平台 一、前言 程序执行过程 crash 是非常严重的问题,一般都应该在测试阶段排除掉这些问题,但是总会有漏网之鱼被带到 release 阶段。...因此,程序的日志系统需要侦测这种情况,代码崩溃的时候获取函数调用栈信息,为 debug 提供有效的信息。...这篇文章的理论知识很少,直接分享 2 段代码: Linux 和 Windows 这 2 个平台上,如何用 C++ 来捕获函数调用栈里的信息。 二、Linux 平台 1....} 三、Windwos 平台 Windows 平台下的代码实现,参考了国外某个老兄的代码,如下: 1....利用以上几个神器,基本上可以获取到程序崩溃的函数调用栈信息,定位问题,有如神助! ----

    5.8K20

    通过函数调用进行字符串替换

    Emacs ,有如下几种文本替换的函数: • replace-string 字面量替换 • replace-regexp[1] 正则表达式替换 静态替换是最常见的,比如将 foobar 替换成 FOObar...replace-regexp 就支持函数调用。...) 需要注意一点的写 Lisp 代码转义字符需要有两个反斜线,比如 [0-9]\\{3,\\} ,这时因为: 反斜线不仅在 regexp 是特殊字符, lisp 这门语言中,也是特殊字符。...比如, Lisp 需要用 "\\" 表示一个反斜线字面量,如果直接写 [0-9]\{3,\} 那么经过 lisp 的 parser 后, 得到的是 [0-9]{3} ,而这个正则并不是说匹配一个数字三次...这是 Lisp 写正则比较容易出错的一点,Manual 的相关资料: • Syntax for Strings (GNU Emacs Lisp Reference Manual)[2] • Regexps

    6910

    转-RobotFramework用户说明书稿第2.1节

    注意,纯文本文件,多个“Tab”字符会被当作一个分隔符,TSV格式却会被当作多个。 空格分隔格式 作为分隔符的空格个数可以不同,但至少要有两个空格,这样就能够很好地对齐数据。...当关键字有多个参数,或者是参数包含空格这个问题更加突出。这时候管道符和空格分隔的格式就凸显优点了,因为视觉上,他们能够清晰的划分单元格边界。...使用管道符合空格分隔格式的时候,没有必要转义空置单元格(除非是末尾的空置单元格)。...使用纯文本转义for loop(循环)使用的缩进。。 注意 这些转义规则只适用于关键字和设置的参数值。其他情况不能使用转意规则,例如,关键字和测试用例名。...注意 \n后可能存在为转义空格也会被忽略掉掉以便能够单行书写多行数据。这意味着two lines\nhere与two lines\n here是等价的。

    5.1K20

    Linux shell 程序设计2——bash的内置命令

    -e:让字符串的特殊字符起作用,即使字符串单引号。...执行结果:hello world printf "%q" "hello world \n" 执行结果:hello\ world\\n 无换行 %q这个选项我想了很久才弄明白它的含义: 将字符串或变量转义字符...于是,上面的例子空格变成了\空格,\变成了\,而且\n没有了换行的作用 printf详细用法请参考博客: http://bbs.chinaunix.net/thread-845520-1-1.html...或 source :现行shell执行shell程序 例子: 编辑脚本文件a_var.sh: #!/bin/bash a=31 保存退出后回到终端,修改a_var.sh的权限并输入命令: ..../a_var.sh 执行,然后终端执行: echo $a 输出结果为一个空行,意味着变量a的值为空,我们再以命令.空格a_var.sh 或source a_var.sh 执行,然后输入: echo

    1.4K60

    Linux内核源码规范解析

    3 大括号和空格的放置 C 语言风格另外一个常见问题是大括号的放置。...当编辑已经使用了某个类型集的已有代码,你应该遵循那些代码已经做出的选 择。 可以在用户空间安全使用的类型。...比如, add work 是一个命令,所以 add_work() 成功返回 0,失败返回 -EBUSY。...19 内联汇编 特定架构的代码,你可能需要内联汇编与 CPU 和平台相关功能连接。需要这么做 就不要犹豫。然而,当 C 可以完成工作,不要平白无故地使用内联汇编。...替代方案是,头文件中用预处理条件提供给那些 .c 文件 使用,再给 #else 提供一个空桩 (no-op stub) 版本,然后 .c 文件内无条件地调用 那些 (定义头文件内的) 函数。

    2.8K20

    Emacs 之光的成长历程

    本期节目请来了一位特殊嘉宾–付禹安,社区内一般称他为『Emacs 之光』。之所以这么称呼,是因为今年才刚刚大学毕业的他,就已经给 Emacs 贡献了多次代码。...与大多数用户不同,嘉宾接触 Emacs 不久即开始尝试攒写自己的配置,并陆陆续续发布了几个比较实用的包,比如 valign[1],嘉宾是如何做到的?...更令人好奇的是,嘉宾如何在短期内熟悉 Emacs 源码并为之贡献多个 patch,相信通过嘉宾的学习、贡献经历,可以给听众打开 Emacs 源码的神秘面纱,让更多用户参与到 Emacs 的贡献,一个多小时的分享...,句号后两个空格 • 注释用的是 C 风格的 /* */ ,而不是 C++ 的 // • 函数名后面跟一个空格,再是括号 •读 Emacs 源码技巧 • lisp.h[12] 里面有 C 如何调用 ELisp.../emacs/commits?

    40610

    shell 中使用 vi 模式

    今天我在这里会为你介绍 shell 的 vi 模式。 计算和操作系统的庞大生态系统中有很多 shell。...然而, Linux 世界,bash 已经成为事实上的标准,并在在撰写本文,它是所有主要 Linux 发行版上的默认 shell。因此,它就是我所说的 shell。...探索 shell ,首先要做的是在其中输入命令并得到输出,如下所示: 这是常见的练习,可能每个人都做过。...使用复杂的快捷键组合并记住可能看起来很愚蠢,但是使用较长的命令或从 shell 历史记录调用一个命令并想再次编辑执行时,它们可能会非常强大。...如果你喜欢在此风格下与 shell 交互,那么你可以主目录的 ~/.bashrc 文件底部添加下面的行来持久设置它。

    1.4K70

    PerlASIC的应用——高级篇(1):正则表达式

    从今天开始,我们介绍PerlASIC应用的高级篇。高级篇主要介绍正则表达式、module、package、面向对象、进程等。 正则表达式最常见的有两个应用,高级查找和替换。...定义规则的特殊字符称为元字符。元字符有以下这些(只列了常用的,基本够用了): 分类一:(转义) \ 反斜杠加接元字符表示转义,比如\+, \*, \?...\s 匹配空白字符,包括空格、制表符等 \S 非空白字符 \n 换行符,ASCII的0x0A \t 制表符 \x \x后接十六进制数,匹配这个数的ASCII符号 分类二...这种用法,我在编辑APR的IO坐标文件实际用过,比GVIM或者Emacs的列填充更强大。...#查找目录下的"tc_"开头所有的文件名,写仿真脚本时常用到 } } 4.

    1.8K20

    Emacs Verilog mode 简单使用指南

    Emacs执行 M-x package-install RET verilog-mode 即可安装Verilog mode。...可以通过修改.emacs的相关配置来调整,例如: (setq verilog-indent-level 4) ; 设置基本缩进宽度为4个空格 (setq verilog-indent-begin-after-if...当你的Verilog代码存在语法错误或警告,它能够自动高亮显示这些问题区域,这对于调试代码非常有帮助。不过,要注意的是,这种静态分析虽然强大,但并不能替代综合工具或仿真器的全面检查。...个性化配置与优化 随着时间的推移,你可能会发现有一些特定的配置或快捷键能够进一步提升你Emacs编写Verilog代码的体验。Emacs的灵活性允许你根据个人偏好进行深度定制。...这些集成不仅限于简单的命令调用,还包括结果解析、错误跳转等高级功能,让Emacs成为真正的Verilog开发一站式环境。 社区与插件 遇到特定问题或寻找更高级功能,不妨探索Emacs的丰富社区资源。

    32710

    如何使用 align-regexp 对齐 userscript 元信息

    REPEAT) •REGEXP 用以对齐的正则,至少包含一个 group 即 () ,通过修改这个 group 来达到对齐的效果 • @[a-z]+\(\s-*\) 这个正则表示用 @name 后的零或多个空格作为修改的...group • \s- 表示空格,具体语法可参考 Regexp-Backslash[2] • GROUP 标明正则式哪个 group 用做修改来达到对齐效果 • SPACING 不同列之间的空格数...• REPEAT 是否作用在这一整行上,本示例无所谓,因为最终只有两列 // ==UserScript== // @name Github Commented Issues // @namespace...http://pragmaticemacs.com/emacs/aligning-text/ [4] Aligning columns in Emacs: https://blog.lambda.cx/...posts/emacs-align-columns/ [5] Emacs: Align Text: http://ergoemacs.org/emacs/emacs_align_and_sort.html

    58110

    解决Python执行命令路径空格引发的困扰

    在编程实践,常常需要通过Python执行系统命令,这包括调用外部程序、脚本或是其他命令行工具。然而,一个看似简单却常被忽视的细节——文件路径空格,可能会导致程序意外崩溃或行为异常。...这是因为命令行解析器可能会将路径空格视为命令分隔符,从而导致命令无法正确执行。解决方案一:使用引号包裹路径最简单的解决方法是执行命令用双引号把含有空格的路径包裹起来。...解决方案二:转义空格字符另一个方法是空格前加上转义字符。...具体来说,将所有的外部命令调用都通过subprocess模块来实现,并确保所有路径都经过正确的转义和格式化处理。最佳实践:预防路径空格问题的建议尽可能避免文件路径包含空格。...当必须处理包含空格的路径,确保传递给外部命令之前对它们进行适当的转义或引用。熟悉并使用subprocess模块,它提供了比os.system更强大且灵活的命令执行能力。

    20010

    为什么要选择Vim编辑器

    set tabstop=4 "当前行之间交错使用4个空格 set shiftwidth=4 "设置匹配模式,输入左括号会出现右括号 set showmatch "编辑显示光标状态 set...VIM中使用cscope非常简单,首先调用“cscope add”命令添加一个cscope数据库,然后就可以调用“cscope find”命令进行查找了。...VIM支持8种cscope的查询功能,如下:例如,我们想在代码查找调用work()函数的函数,我们可以输入:“:cs find c work”,回车后发现没有找到匹配的功能,可能并没有函数调用work...Emacs说过自己是一个编辑器吗? ●正是因为Emacs的无敌的可扩展性,人们才分不清Emacs到底是不是一个编辑器了。但,就是有人喜欢这种All-in-One的哲学,喜欢Emacs完成每件事。...所以才会有人写《生活在Emacs》,所以, Emacs才会成为一种信仰。

    1.3K30

    终端文本编辑神器--Vim命令详解。如何配置Vim以及Vim插件?

    其代码补完、编译及错误跳转等方便编程的功能特别丰富,程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 Vim的第一个版本由布莱姆·米勒1991年发布。...命令模式 使用vim打开或创建文件,就是命令模式模式,比如: [命令模式] 这个时候,使用方向键,就是基础的上下行移动。...i, I 进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『目前所在行的第一个非空格符处开始输入...若文件属性为『只读』,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!...另外,“挖坑”Emacs,有机会填上~

    2.3K121
    领券