更好地设置 EDITOR 环境变量以使用 Sublime Text 2 作为系统编辑器?

更好地设置 EDITOR 环境变量以使用 Sublime Text 2 作为系统编辑器?

我想使用 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。对于启动编辑器的其他程序,我将它们配置为使用最合适的脚本。

相关内容