我想使用 Sublime Text 2 编辑 Git 提交消息。目前我的 bash rc 文件中有以下内容:
export EDITOR="sublime -nw"
如果 Sublime 已在运行,此方法可行。但如果未运行,Sublime 会启动2窗口不止一个:一个用于显示我的 Git 提交消息,另一个用于显示我最近正在处理的项目。在 Git 停止等待我完成编辑之前,我必须关闭两个都那些窗户。
有没有更好的方法来EDITOR
解决此问题?
答案1
大约一年前在 StackOverflow 上发布了这个问题之后(并被告知该问题属于超级用户),我想出了一个非常有效的设置:
〜/.bin/start_sublime:
#!/bin/bash # this script ensures that Sublime Text is running if [ ! "$(pidof sublime_text)" ] ; then # start up an instance of Sublime "/home/alex/Downloads/programs/Sublime Text 2/sublime_text" & sleep 1 # avoid race condition fi
〜/.bin/sub_new_block
这将打开一个新窗口,等待您关闭只有那扇窗户,而不是您可能打开的任何其他 Sublime 窗口。这使得它非常适合编辑补丁或在 git 中提交消息等:
#!/bin/bash
/home/alex/.bin/start_sublime
"/home/alex/Downloads/programs/Sublime Text 2/sublime_text" -nw $FILE
- 〜/.bin/sub_existing_noblock:
如果存在现有窗口,则此方法将使用它,并且 shell 不会等待您关闭该窗口:
#!/bin/bash
"/home/alex/Downloads/programs/Sublime Text 2/sublime_text" $FILE &
- 〜/.bin/sub_new_noblock:
这总是打开一个新窗口,并且 shell 不会等待您关闭窗口:
#!/bin/bash
"/home/alex/Downloads/programs/Sublime Text 2/sublime_text" -n $FILE &
对于常规编辑,sub_new_noblock
似乎是最有用的变体,因此我将其别名为sub
。对于 git,我使用以下配置:git config --global core.editor sub_new_block
。对于启动编辑器的其他程序,我将它们配置为使用最合适的脚本。