Linuxエディターがファイル拡張子なしでプログラミング言語に伝える方法はありますか?


1

Linuxでは、言語ファイル拡張子なしでいくつかのスクリプトを編集していますが、vinanogeditなどのエディターは、ファイル名が言語拡張子を使用しないため、構文の強調表示を適用していないようです。

渡されるパラメーターや、言語を認識できるようにする設定はありますか?

更新:

いくつかのグーグル検索の後、少なくとも一部の解析を行うか、上部のシバングをチェックして言語を決定する、bashにその能力があることがわかりました。デフォルトでは、Ubuntuは完全なvimパッケージをインストールしないため、インストール後にシェルファイルが認識されます。nanogeditについては知りませんが、viとそれに対応するグラフィカル版は対応します。


エディターが拡張可能な場合、を使用して何かを一緒にハッキングできますfile(1)
ダニエルベック

構文の強調表示は、拡張子の有無にかかわらず、両方の言語ファイルnanogeditすべての言語ファイルで正常に機能します。Arch64_bit / Gnome 3.詳細を指定しない限り、特定のセットアップに固有の何かだと思います。
-don_crissti

回答:


2

この質問は、すべてのテキストエディターに適用されるため、一般的には回答できません。

Vimはサフィックスによってファイルを認識します。これはデフォルトの起動スクリプトによって駆動され、でカスタム動作をハックできます.vimrc

例えば、私は自分自身と呼ばれるCプログラムを書いたautotabファイルの内容を見て判断しshiftwidthtabstopし、expandtabそのファイルをフォーマットする表示方法に基づいて、Vimのための設定を。

Vimでファイルをロードまたはリロードすると、このプログラムは内容を分析し、setコマンドに補間されて実行される上記のVimパラメーターを出力します。たとえば、ファイルが2スペースのインデントを使用しているが、明らかにスペースと8スペースのハードタブが混在している場合、プログラムはを出力しますtabstop=8 shiftwidth=2 noexpandtab

まったく同じアプローチを使用して、構文の強調表示を選択できます。ファイルのいくつかの行を調べ、タイプを推測してから:set syntax ...コマンドを生成するスクリプトを作成します。

このfileユーティリティは、スクリプトの基礎として使用できます。プログラムの「マジック」データベースには、いくつかのプログラミング言語を検出するためのヒューリスティックが含まれています。fileさまざまなファイルで実行してみて、出力を確認してください。内容がどれほどよく識別されるかに驚くかもしれません。そのため、戦略は次のとおりfileです。ファイルで実行し、出力をキャプチャし、さまざまなケースに分析して、適切なVim呪文を出力します。次に、それをフックし.vimrcます。

GITリポジトリautotabhttp : //www.kylheku.com/cgit/c-snippets/tree/autotab.c


Vimの質問はここで話題に均等にある
slhck

0

まず、Linux / Unixシステムでは、「マジックナンバー」によってファイルタイプが認識され、このファイルタイプ識別子は、16進編集機能を備えたエディターで、またはHex Editorで直接確認できます。残念ながら、プレーンテキストファイルはこの方法では認識できません。

このトピックの詳細:マジックナンバーの定義

プレーンテキストファイルの可能な解決策は、使用されているプログラミング言語を認識できるエディターを使用することです。

かもしれ GeanyまたはSciTEの。彼らはさまざまなファイルタイプをサポートしていますが、たとえばファイルが他のエディターによって作成された場合に認識できるかどうかは言えません...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.