使用快捷方式在 Vim 终端会话中打开文件

使用快捷方式在 Vim 终端会话中打开文件

我有一堆文件,我一整天都在对它们进行小的编辑。

它们各自位于公共超级目录内的自己的目录中,例如:

test
├── foo
│   └── foo.tex
└── bar
    └── bar.tex

是否可以创建一个快捷方式,例如Ctrl++ AltE这样如果输入该快捷方式,然后输入足够多的首字母,然后点击输入,则相应的文件(在同名目录中)会在终端的 vim 会话中打开?

如果没有,有没有类似的东西?为每个文件创建不同的快捷方式是可以接受的,但不是最佳选择,因为大约有 10 个文件,所以所有快捷方式都很难记住(而且它们会占用快捷方式空间)

答案1

我找到了一个解决方案。我将以下 Python 脚本存储在我的主目录中,并使用 compizconfig-settings-manager 创建了它的快捷方式。主目录(~/test在我的示例中)和要编辑的文件的文件结尾(.tex在我的示例中)可能会在脚本中更改。

ROOTDIR = '~/test'
FILEENDING = '.tex'
import subprocess
import re
import os
import tkinter
import tkinter.simpledialog
def string_dialog(title,label):
    root = tkinter.Tk()
    root.withdraw()
    return tkinter.simpledialog.askstring(title, label)
project = string_dialog('Quickedit','Enter filename')
regexp = re.compile(project+'.*',re.IGNORECASE)
choices = [path for path in os.listdir(ROOTDIR) if os.path.isdir(os.path.join(rootdir,path)) and path.lower().startswith(project.lower())]
projectdir = os.path.join(ROOTDIR,choices[0])
projectfile = [path for path in os.listdir(projectdir) if path.endswith(FILEENDING)][0]
subprocess.call(['gvim',os.path.join(projectdir,projectfile)])

相关内容