我使用C-x C-f
和C -X C-s
将文件保存到目录“test”,然后我无法用“tab”打开测试目录,它说“Dired(directory):〜/测试.....“。
我想知道在emacs中创建文件的错误和正确方法,谢谢!
答案 0 :(得分:3)
Emacs区分文件和缓冲区。您在缓冲区中进行所有编辑,这些缓冲区不一定必须与文件相关联(例如,参见*scratch*
缓冲区)。但是,您经常要编辑与文件关联的缓冲区。在这种情况下,你访问(Emacs lingo for“open”)说文件用 C-x C-f 。
假设您的主目录中有一个目录“test”,并且在该目录中有一个文件“foo.txt”。如果要编辑该文件的内容,请键入以下命令访问该文件:
C-x C-f~ / test / foo.txt RET
这很容易:现在你在Emacs中得到一个新缓冲区,它以你正在访问的文件(“foo.txt”)方便地命名。如果要将在缓冲区中所做的更改存储回关联文件,则键入 Cx Cs ,Emacs会将缓冲区的内容写入文件“〜/ test / foo”。 TXT”。
此机制也适用于开始编辑时不存在的文件!
如果您输入,请
C-x C-f~ / test / bar.txt RET
您在目录“〜/ test”中获得与(但不存在的)文件“bar.txt”相关联的缓冲区。同样,您可以根据自己的喜好编辑该缓冲区,然后使用 C-x C-s 保存缓冲区。第一次这样做时,会创建一个新文件。
如果要创建与任何文件无关的名为“baz”的缓冲区,请键入
C-x b baz RET
由于它尚未与文件关联,因此在该缓冲区中键入 C-x C-s 将提示您指定文件名。保存后,缓冲区将与您指定的文件相关联。
最后,如果你在一个与文件相关联的缓冲区中,但是你想将它保存到另一个文件中,你可以用 Cx Cw 来实现,这样就可以了与前一种情况相同的提示。同样,在使用您提供的文件保存后,缓冲区将被关联。
选项卡完成功能适用于要求您输入文件名的所有命令。如果您认为不存在,则可能是因为您认为应该完成的文件不存在(还要注意文件名中的大小写区别),或者因为具有相同前缀的另一个文件禁止进一步消除歧义。点击 TAB 两次应列出临时缓冲区中的可用完成次数,让您在完成之前继续指定路径名。
Dired模式与上述所有内容完全正交。它是“编辑”目录的模式,即进行文件系统操作。你可以输入 C-x d 来调用它,你可能会意外输入?!它非常强大,但也非常复杂。请参阅here了解其文档。