IntelliJでファイルの改行コードを指定する
たまたま改行コードがシステムデフォルトじゃ困るときがあって,設定場所を本気で忘れてたのでメモを残す。
改行コードを指定するのは,File->Settings->Code Style->Generalの「Line separator (for new files)」で行う。この場所がわかんなくて苦労したw
設定値は「System Dependent / Unix / Windows / Mac」の4種類。ファイルエンコード*1と違って,プロジェクト固有で,かつ新規ファイルを作ったときだけ効果がある(すでにできてるファイルの改行コードは変更できない)。
設定できてめでたし...と行きたいところだけど,残念な事にIntelliJって,今編集中のファイルの改行コードが何か知るすべが無いのよね。ファイルエンコードはステータスバー右側にあるけど,改行コードはどこ探しても見つけられない。仕方ないんで他のテキストエディタで確認してたけど,スマートとは言い難いなと。
モノは試しにプラグインを調べてみたけど,それっぽいのは見当たらず(File InfoとかFile status barとか惜しいのはあった)。仕方ないから,File status barにパッチ当てて自作した。:-)
ソースコードはGistに。バイナリはオレオレIdeaVIMんとこに置いといたので,使ってみたい物好きな方はどうぞ。
→ FileStatusBarPluginをカスタマイズして,使っている改行コードを表示するようにしたもの。 · GitHub
→ Downloads · masanobuimai/ideavim · GitHub
ちょっと悪ノリして改行コードを変換するコマンドも作ってみたけど,あんまりにもやっつけなので,こちらは非公開。改行コードの変換は,素直に普通のエディタでやろうと思う。
[おまけ] IntelliJから他のエディタを開く
外部ツールの設定(File->Settings->External Tools)をしておけば,IntelliJから任意のエディタでファイルを開くことができる。エディタの起動オプションで行番号指定ができるのであれば「Parameters」に「$LineNumber$」を指定する事をオススメしとく。
「Show In」の「Editor menu / Project views / Search results」のそれぞれにチェックを入れておくと,エディタ,プロジェクトウィンドウ,検索結果ウィンドウのコンテキストメニューから実行できて便利。あとはお好みでショートカットキーを設定するとか。
[おまけ] IntelliJでファイルのエンコードを変更して保存する
Fileメニューの「Reload 'XXX' file in another encoding」やステータスバー右側のエンコード名は「ファイルを読み込む時に使う」エンコードであって「そのエンコードでファイルを保存する」意味では無い。もちろん,指定したエンコードで開き直したファイルを保存すれば,そのエンコードで保存されるが,開き直した時にもれなく文字化けしてると思う。
#知ってると思うけど,ステータスバーのこれはクリックすると,どのエンコードで開き直すか指定できる。
自分はどうやって,IntelliJでファイルのエンコード変換をやってるかというと,わりとしょうも無くて...
- 今開いてるエディタの内容を丸ごとクリップボードにコピー(全選択→コピー)
- エンコードを指定して,ファイルをリロード(ここで文字化け。全選択は維持したまま)
- (全選択状態のまま)ペーストして保存(2で指定したエンコードで保存される)
ってな,やり方をしている。単純だけど,これで特に困ってない。:-P
*1:こっちは,File->Settings->File Encodingsで設定