我有一堆文件,我一整天都在对它们进行小的编辑。
它们各自位于公共超级目录内的自己的目录中,例如:
test
├── foo
│ └── foo.tex
└── bar
└── bar.tex
是否可以创建一个快捷方式,例如Ctrl++ Alt,E这样如果输入该快捷方式,然后输入足够多的首字母,然后点击输入,则相应的文件(在同名目录中)会在终端的 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)])