ターミナルコマンドを使用してSublime Textで.cファイルを開く

ターミナルコマンドを使用してSublime Textで.cファイルを開く

私が使用しているIDEは崇高な言葉三。

Sublime Text 端末でファイルを開くには、次のように入力する必要があります。

subl <file>.c

.cすべてのファイルがSublime Textで自動的に開くように.bashrcを編集したいと思います。どうすればいいですか?

例:

> test.c

test.cそれではSublime Textで開きましょう。

答え1

通常の状況では動作しません。私が考えることができる唯一の方法は、各コマンドをファイルに書き込んだ後(たとえば、変更されたscriptPS1を使用してすべてのコマンドでbashを再構築します)、このログファイルを各新しい行から解析して(たとえば、PS1の追加を変更するなど)で終わる正規表現を得ることです。 .c崇高なスタート。

時間をかける価値があるようではありません。タブ補完機能と組み合わせると、一部のalias s="subl "コンテンツが.bashrcあなたをより幸せにすることも簡単になります。

答え2

あなたの目標は(可能)入力を減らすには、エイリアスを定義するか、崇高な単純なシェルスクリプトを定義できます。

alias s='subl'
#or
alias sb='subl'

ssbまたは、 ""または ""(PATHに保存されている~/bin/)という名前のシェルスクリプトを使用することを想像することもできます。

#!/bin/bash
subl $*

どちらの結果もコマンドラインが短縮されます。

> s myfile.c

望むより長い(2文字)。

> myfile.c

あるいは、非常にクールにshbang(#!)行をすべてのファイルの最初の行として挿入して.cファイルを実行可能にし、上記の編集スクリプトを呼び出すこともできます。これは、コンパイル前に最初にshbang行を前処理するためにmakefileを再構築することを意味します。

「」として保存してくださいmyfile.cs

#!~/bin/subl myfile.cs
#include <stdio.h>
int main() { printf("hello, world\n"); }

これがどのように機能するかを示すために、次のファイル " stuff.cs"を保存します。

#!/usr/bin/vi stuff.sh
//this is a file
//that you can edit with sublime
int main() { printf("hello, world\n"); }

それから実行してみてください。

./fubar.cs

後者のソリューションは必要な操作を正確に実行しますが、より多くの入力と前処理のオーバーヘッドが必要です。

答え3

おそらくこれを行うべきではありませんが、人々はそのcommand_not_found_handle機能をサービスに統合する可能性があります。これにより、他の機能が破損したり、他のcommand_not_found_handle機能と組み合わせたりする必要があります。

-bash-4.2$ touch foo.c
-bash-4.2$ function command_not_found_handle() { [[ -f "$1" ]] && subl "$1"; }
-bash-4.2$ foo.c
...
-bash-4.2$ bar.c
-bash-4.2$ 

(これが悪い考えである理由の1つは、コマンドラインを変更することです。文法到着しましたcommand [args..]command-or-plainfilethatisrunsomehow [args..])

答え4

バリアントとして、次のようにreadlineバインディングを使用できます。

bind '"\e\C-m":"\C-asubl \C-m"'

その後、Alt+EnterまたはCtrl++Altの組み合わせを使用すると、MSublimeエディタですべてのファイルが開きます。つまり、Sublimeでファイルを開くには、ファイル名(test.c例:)を入力してAlt+を押しますEnter。必要に応じてキーの組み合わせを変更できます。

欠点 - bashオートコンプリートは、行の最初の単語のファイル名では機能しません。

関連情報