Emacs之实现目录替换(一百四十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中...... 】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中...... 】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门实战课原创干货持续更新中......】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
更多原创,欢迎关注:Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

🌻1.前言

本篇目的:Emacs之实现目录替换

  • 需求
    1.将/home/test1/android/com/test.java替换为 /work/test1/com/
    2.将/home/test2/android/com/test.java替换为 /work/test1/com/

🌻2.Emacs介绍

  • Emacs是一种功能强大的文本编辑器,最初由Richard Stallman在1970年代开发。它是GNU项目的一部分,可以运行在不同的操作系统上,如Linux、Windows和Mac OS X。Emacs不仅仅是一个简单的文本编辑器,它还可以作为一个集成开发环境(IDE)、文件管理器、电子表格、邮件客户端和新闻阅读器等。
  • Emacs的用户界面非常独特,它使用了一系列的键绑定和命令来执行不同的操作。用户可以通过键入一系列的字符来执行命令,这些字符被称为键序列。Emacs还支持宏录制和播放,允许用户录制一系列的键操作,并在需要时重复执行这些操作。
  • Emacs的一个显著特点是它的可扩展性。用户可以通过编写Lisp代码来扩展Emacs的功能。Lisp是一种编程语言,它允许用户自定义Emacs的行为,添加新的命令和功能,甚至可以编写自己的插件来扩展Emacs的功能。Emacs社区非常活跃,有许多人贡献了自己的插件和扩展,使得Emacs的功能不断增强。
  • Emacs还支持多种编程语言的语法高亮和代码补全功能,这使得它成为一个非常适合编程的编辑器。用户可以通过安装相应的插件来支持不同的编程语言,如Python、C++、Java等。Emacs还支持版本控制系统的集成,如Git和SVN,使得用户可以在编辑器中直接进行版本控制操作。
  • 除了编程功能,Emacs还可以作为一个高效的文本编辑器使用。它支持多窗口编辑,允许用户同时打开多个文件并进行编辑。Emacs还支持正则表达式搜索和替换,以及强大的文本处理功能,如列编辑和宏录制。
  • Emacs还提供了一些其他有用的功能,如拼写检查、自动保存和撤销操作。用户可以通过安装插件来进一步增强这些功能,如语法检查、代码美化等。
  • Emacs是一个非常强大和灵活的文本编辑器,它具有丰富的功能和可扩展性,可以满足不同用户的需求。无论你是程序员、作家还是普通用户,Emacs都是一个值得尝试的文本编辑器。

🌻3.解决方案

🐓3.2 cond语法方案

cpp 复制代码
;;1.提取包含"android/"的字段
(defun extract-android-path (path)
  (when (string-match "android/" path)
    (substring path (match-beginning 0))))

(defun copy-current-dir-path ()
  "1.去掉目录的前缀
   2.去掉文件名
   3.将目录前缀替换为: /work/test1/com/
  (interactive)
  (setq full-dir (file-name-directory (buffer-file-name)))

;;/home/test1/android/
  (cond
   (
    (if (string-prefix-p "/home/test1/android/" buffer-file-name)
	(progn
	  ;;(kill-new del_prev_name)
	  (setq docker_path (concat " /work/test1/" (extract-android-path full-dir)))
	  (kill-new docker_path)
	  (message " ")
	  (message (propertize (format "Copied: %s " docker_path) 'face '(:foreground "#ff00ff" :weight bold)))
	  )
      )
    )

   ;;/home/test2/android/
   ((if (string-prefix-p "/home/test2/android/" buffer-file-name)
	(progn
	  (setq docker_path (concat "/work/test1/" (extract-android-path full-dir)))
	  (kill-new docker_path)
	  (message " ")
	  (message (propertize (format "Copied: %s " docker_path) 'face '(:foreground "#ff00ff" :weight bold)))
	  )
      )
    )

   ;;默认复制全路径
   ((progn
      (kill-new full-dir)
      (message " ")
      (message (propertize (format "Copied: %s " full-dir) 'face '(:foreground "#1e90ff" :weight bold)))
      )
    )
   )
  )
相关推荐
陈橘又青1 小时前
开创性的初创企业利用 Amazon SageMaker孵化器释放企业价值
人工智能·网络协议·学习·ai·编辑器
恶猫2 小时前
EditPlus v6.1 Build 780 烈火汉化版
windows·编辑器·文本编辑器·editplus
Crkylin2 小时前
使用vscode搭建cmake工程
ide·vscode·编辑器
Lovely Ruby2 小时前
Cursor 迁移到 Zed 编辑器
java·缓存·编辑器
云声风语2 小时前
buuCTF练习题misc大白记一次vim配合xxd使用
linux·编辑器·vim
猫头虎18 小时前
GoLand 2025.3 最新变化:值得更新吗?
ide·windows·macos·pycharm·编辑器·intellij-idea·idea
☆七年19 小时前
Beyond Compare 过滤干扰项设置_android项目文件过滤设置
编辑器
恶猫20 小时前
ImHex 十六进制编辑器 v1.38.0 多语便携版
编辑器·逆向·十六进制·模式匹配·imhex
啃火龙果的兔子20 小时前
Codeium如何在vscode中使用
ide·vscode·编辑器
恶猫1 天前
UltraEdit中文高级版
编辑器·ultraedit