假设我有两个具有以下文件路径的文件:
~/another/project/file1.txt
~/this/is/some/very/deep/project/file2.txt
正如您所看到的,file1.txt
和file2.txt
在文件系统中彼此相距“很远”。
现在假设我正在编辑,并且我想在一个窗口中file1.txt
打开。我选择打开的最快方法是file2.txt
vsplit
file2.txt
:vsplit ~/this/is/some/very/deep/project/file2.txt
即使有模糊完成,这显然效率不高。
有没有办法快速“加入书签”或“跳转到目录”以file2.txt
快速到达?
我最初的想法是从 shell 执行命令(在命令模式下,使用!
)以某种方式促进跳转。使用类似的东西跳可能有帮助,但我不知道如何。
答案1
您可以尝试使用全局标记,如此问题的答案中所述:
https://stackoverflow.com/questions/1581505/vim-create-marks-across-files
如果您使用大写字母(如)进行标记mA
,则可以通过使用 转至该标记来返回到该文件'A
。
.viminfo
如果您正确保存内容,这将适用于跨会话。
答案2
如果您经常使用相同的文件,则可以使用符号链接。
创建一个文件夹来保存您的链接。
mkdir ~/links/
链接您的文件。
ln ~/another/project/file1.txt ~/links/file1.txt
ln ~/this/is/some/very/deep/project/file2.txt ~/links/file2.txt
您还可以以不同的方式命名链接。如果您的文件是 somereallylongname.txt 您可以将其链接到 shname.txt
ln ~/this/is/some/very/deep/project/somereallylongname.txt ~/links/shname.txt
答案3
朋友向我提供的另一个答案是使用ctrlp插入。 ctrlp 插件可以轻松地同时在多个目录中搜索文件。
编辑:ctrlp 的默认设置实际上会从项目的根目录开始搜索;从技术上讲,必须以不同的方式设置根节点才能使其正常工作。