Emacs:确定文件中的位置

时间:2011-01-13 16:04:02

标签: emacs bookmarks

说我一直在浏览emacs中的源文件,我注意到了一些我想引起同事注意的事情。是否有一种简单的方法(即命令)来获取该点的文件名和位置,例如如果我在foo.cpp的第21行

c:\temp\foo.cpp:21

4 个答案:

答案 0 :(得分:5)

此功能可以满足您的需求。它将信息显示为消息,并将其添加到kill-ring(以便轻松粘贴)。

(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)))

答案 1 :(得分:1)

缓冲区名称通常与文件名相同,默认情况下,行号也在模式行上。

我不知道预先存在的命令会直接使用您描述的格式报告,但如果模式行不够,则编写自己的命令非常简单。

答案 2 :(得分:0)

我想到了几个功能:

它们都没有打印缓冲区底层文件的名称(如果有的话),但如果模式行显示不符合您的需要,您可以编写一个交互式函数。

答案 3 :(得分:0)

您还可以为该位置添加书签: C-x r m

这将为书签文件添加书签对象:变量bookmark-default-file的值,默认为"~/.emacs.bmk"

您可以将其复制并发送给您的同事,以便在他自己的书签文件中使用。

C-x r b 会直接转到书签。请参阅Emacs手册,节点Bookmarks