Emacs:确定文件中的位置
假设我一直在浏览emacs中的一个源文件,我注意到一些我想引起同事注意的事情。是否有一种简单的方法(即命令)获取点的文件名和位置,例如,如果我在foo.cpp的第21行Emacs:确定文件中的位置,emacs,bookmarks,Emacs,Bookmarks,假设我一直在浏览emacs中的一个源文件,我注意到一些我想引起同事注意的事情。是否有一种简单的方法(即命令)获取点的文件名和位置,例如,如果我在foo.cpp的第21行 c:\temp\foo.cpp:21 我想到了几个功能: ,通常不绑定到密钥 ,它通常绑定到C-x= 它们都不打印缓冲区基础文件的名称(如果有),但您可以编写一个交互式函数,如果模式行显示不符合您的需要,则可以这样做。此函数满足您的需要。它将信息显示为消息,并将其添加到压井环中(以便于粘贴) 缓冲区名称通常与文件名相同,默
c:\temp\foo.cpp:21
我想到了几个功能:
- ,通常不绑定到密钥
- ,它通常绑定到C-x=
它们都不打印缓冲区基础文件的名称(如果有),但您可以编写一个交互式函数,如果模式行显示不符合您的需要,则可以这样做。此函数满足您的需要。它将信息显示为消息,并将其添加到压井环中(以便于粘贴)
缓冲区名称通常与文件名相同,默认情况下,行号也在modeline上
我不知道有哪个预先存在的命令可以使用您描述的格式直接报告这两种情况,但是如果modeline不够,那么编写自己的命令就非常简单了。您还可以将位置标记为书签:C-x r m 这将向书签文件添加一个书签对象:变量
bookmark default file
的值,默认值为“~/.emacs.bmk”
您可以将其复制并发送给您的同事,以便在他自己的书签文件中使用
C-XRB将直接带您到书签。请参阅Emacs手册,node
Bookmarks
谢谢seh-这不完全是我想要的。正如JB提到的,所有这些(通常)都可以通过modeline获得。
(defun get-file-line ()
"show (and set kill-ring) current file and line"
(interactive)
(unless (buffer-file-name)
(error "No file for buffer %s" (buffer-name)))
(let ((msg (format "%s:%d"
(file-truename (buffer-file-name))
(line-number-at-pos))))
(kill-new msg)
(message msg)))