如何在 MacOS 启动时启动 Vim 并打开特定文件夹?

如何在 MacOS 启动时启动 Vim 并打开特定文件夹?

从 TextMate 切换到 Vim,我想在 MacOS 启动时启动 Vim 并打开特定文件夹?

我可以使用 手动从 shell 启动 Vim mvim someFolder。我使用 MacOS 10.6 和 NERDTree。

谢谢!

编辑

阅读并尝试应用提出的答案(顺便说一句,谢谢)我意识到我的问题可能不够清楚:

我希望 MacVim 在启动时自动启动,并打开我的特定文件夹。稍后在我的 MacOS 会话期间,如果出于任何原因我再次打开 MacVim,我不希望它打开这个特定文件夹,我希望 MacVim 具有默认行为。

我可以通过转到 MacOS 系统偏好设置、帐户、登录项并在此处添加我的 TextMate 项目文件来使用 TextMate 执行此操作。由于此项目文件与 TextMate 相关联,因此只需让 TextMate 在启动时自动启动并显示此项目文件列表即可。

有没有办法用 Vim 实现这个?

答案1

如果你希望 MacVim 每次都打开该文件夹,你不妨为你的文件夹添加一个别名,.profile或者.bashrc像这样:

alias vimm='mvim /path/to/some/folder'

这样,您仍然可以.profile使用常规mvim命令启动 MacVim 执行一些与文件夹内容无关的任务(例如编辑您的或某些配置文件)。

答案2

要打开 NERDTree 到特定目录,您可以将以下行添加到您的~/.gvimrc(或者~/.vimrc如果您希望它也在控制台中工作):

au VimEnter * NERDTreeToggle /path/to/your/folder/

答案3

为了在启动时完成此启动,您必须经历一些困难。

.vims创建使用以下扩展名的会话文件:

打开 MacVim 并打开您想要打开的任何/所有文件/选项卡/NERDTrees。使用扩展名将其保存到会话中.vims

mksession! ~/Desktop/project.vims

这可以放在您想要的任何目录中,我只是为了方便使用而使用桌面。

创建Automator应用程序:

打开 Automator 并创建一个新的自定义应用程序。将“运行 Shell 脚本”操作添加到您的工作流程中。将 Shell 更改为/usr/bin/ruby,并将“传递输入”更改为“作为参数”,然后将此代码粘贴到操作主体中:

file_name = ARGV[0].split(' ').join('\ ')
command = %Q!/usr/local/bin/mvim -S "#{file_name}"!
system(command)

mvim使用检查的位置which,并根据需要进行更新。保存工作流(我将其放在 中~/Desktop/SU)并将“文件格式”更改为“应用程序”。

将您的 Automator 应用程序与.vims文件关联。

右击~/Desktop/project.vims并选择“获取信息”。在“打开方式:”下,选择您的 Automator 应用程序,然后告诉它“更改全部...”。

放入您的登录项。

打开“系统偏好设置”、“帐户”、“您的用户”,然后选择“登录项”选项卡。将您的~/Desktop/project.vims文件拖到列表中。

完毕!

注销并重新登录,MacVim 应该会自动打开。

局限性。

由于某种原因,如果 VIM 处于活动状态,Automator 会在此会话期间继续运行。如果有人知道如何修复此问题,请告诉我。

答案4

我发现最有用的是使用 NERDTree 在选项卡中打开项目文件,然后创建会话文件:

mksession! project.vim

如果您向项目中添加新文件,感叹号将覆盖之前的 project.vim。然后,每当我想启动 vim 时,我只需调用:

vim -S project.vim

我想您可以直接在 vimrc 中获取 project.vim,以实现更自动化的方法。

相关内容