![如何在 MacOS 启动时启动 Vim 并打开特定文件夹?](https://linux22.com/image/1270402/%E5%A6%82%E4%BD%95%E5%9C%A8%20MacOS%20%E5%90%AF%E5%8A%A8%E6%97%B6%E5%90%AF%E5%8A%A8%20Vim%20%E5%B9%B6%E6%89%93%E5%BC%80%E7%89%B9%E5%AE%9A%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
从 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,以实现更自动化的方法。