7

コマンドラインから Sublime Text 2 エディターにアクセスすることについて多くの質問があります。要約すると、応答は、適切な sublime_text コマンドを実行するためのシンボリック リンク、エイリアス、または単純なシェル スクリプトを作成することです。私はそれを行うことができます。私が望むのは、Linux バージョンを MacOS バージョンのように動作させることです。

MacOSでは、次のものがあります。

ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl ~/bin/subl

次に、.zshrc で:

alias subl="$HOME/bin/subl -n"
export EDITOR="$HOME/bin/subl -n -w"

これは 2 つのことを行います。sublコマンドラインで指定されたファイルを新しいウィンドウで開くコマンドが表示されます。コマンドはsubl端末をブロックしません。また、崇高なテキストを開いて引数を編集するようにエディターを設定しますが、今回はブロックします。特に、引数が閉じられる$EDITORまでブロックします。関連のない崇高なテキスト ウィンドウではブロックされません。

次のようにして、Linuxで同様の効果を得ることができます。

~/bin/subl:

#! /bin/zsh

$HOME/Sublime\ Text\ 2/sublime_text -n $@ &

そして ~/bin/subl_wait: ( mate_waitTextMate ユーザーの場合を考えてください)

#! /bin/zsh

exec $HOME/Sublime\ Text\ 2/sublime_text -n -w $@

その後、 に設定EDITORするsubl_waitと、ほとんど機能します。 sublファイルを編集用に開き、ブロックしません。 subl_wait編集用にファイルを開き、ブロックします。

問題は、引数だけでなく、開いているすべてのsubl_waitファイルが閉じられるまで待機していることです。

これを完全に機能させることは可能ですか?

4

3 に答える 3

8

問題が見つかったようです。(この投稿のおかげで: http://www.sublimetext.com/forum/viewtopic.php?f=2&t=7003 )

基本的なポイント: インスタンスがすでに実行されているかどうかによって、sublime の動作が異なります。

インスタンスがすでに実行されている場合、Linux の Sublime は MacOS と同様に動作します。インスタンスが実行されていない場合、Sublime を終了するまでターミナルがブロックされます。

それを念頭に置いて、sublime が確実に実行されるようにスクリプトを変更する必要があります。

~/bin/subl_start:

#! /bin/zsh

if [ ! "$(pidof sublime_text)" ] ; then
  # start sublime text main instance
  # echo "Starting Sublime Text 2"
  $HOME/Sublime\ Text\ 2/sublime_text &
  sleep 1 # needed to avoid a race condition
fi

~/bin/subl:

#! /bin/zsh

. $HOME/bin/subl_start

exec $HOME/Sublime\ Text\ 2/sublime_text -n $@

~/bin/subl_wait:

#! /bin/zsh

. $HOME/bin/subl_start

exec $HOME/Sublime\ Text\ 2/sublime_text -n -w $@

-nあらゆる場所でフラグを使用していることに注意してください。これはあなたの好みではないかもしれません。を使用している場合は-nclose_windows_when_empty設定も確認する必要があります。

于 2013-01-31T22:17:25.450 に答える
2

Ubuntu Gnu/Linux 13.04 64 ビットの場合:

私はほとんど常にsublを実行し続けています。したがって、私のgit構成には次のものがあります: core.editor=/usr/bin/subl -n -w

そして、それは私が必要とするすべてです。ctrl-s で git コミット ファイルを保存し、ctrl-w でウィンドウを閉じて完了です。しかし、その後、上隅にある X を押してウィンドウを本当に閉じる必要があります... 96% 完璧です。

于 2013-08-14T19:35:42.447 に答える