メモ帳++でのEOL変換


113

何らかの理由で、WindowsマシンのUNIXサーバーからファイルを開くと、Macintosh EOLに変換されることがあり、それらを再度編集/保存すると、UNIXサーバーでは正しく機能しません。このUNIXサーバーからファイルを編集するためにメモ帳++のみを使用しているので、ファイルを開くたびにEOLをUnix形式に自動的に変換するマクロを作成する方法はありますか?



1
問題は、使用しているFTPプログラムにある可能性があります。たとえば、WinSCPを使用してUnixサーバーにリモート接続し、Notepad ++をデフォルトのエディターとして設定していますが、Binary行末を維持するためにWinSCPの設定に移動して転送モードをに設定する必要がありました。したがって、別の方法でファイルを転送するようにFTP / SCP / etcプログラムを再構成できる場合があります。
Slicktrick 2017

回答:


200

その機能はすでにNotepad ++に組み込まれています。「編集」メニューから「EOL変換」→「UNIX / OSXフォーマット」を選択します。

より迅速に検索するためのオプションのスクリーンショット(または異なる言語バージョン)

[設定]-> [設定]-> [新しいドキュメント/デフォルトディレクトリ]を選択し、[フォーマット]ボックスで[Unix / OSX]を選択して、notepad ++でデフォルトのEOLを設定することもできます。


7
編集メニューでの変換について知っています。あなたが言及した設定は、新しいドキュメントにのみ適用されます。開いたすべてのファイル(または保存したすべてのファイル)を自動的に変換したい
Jeff

問題は、既存のUnixファイルを開くと、「EOL変換」-> UNIX / OSX形式がグレー表示されることです。Notepad ++はUNIXファイルでの使用にイライラするので、Notetab Liteを使用すると、新しいファイルだけでなく、すべてのファイルをUNIXとして保存できます。
オフザゴールド

3
@OffTheGold UNIX EOLオプションは現在選択されているため、グレー表示されています。
blakeoft 2017

右に。2017年11月からGoogle経由でありがとうございます。
SDsolar

これは私にとってはうまくいきません。「EOL変換-> Unix」を選択し続けていますが、何も実行されません。メニューに戻って、Windowsがグレー表示されている(したがって選択されている)オプションであることを確認したので、もう一度[Unix]をクリックします。私は、テキストがすべて選択で機能する場合に備えて、最初にすべてのテキストを選択し、次にUnixをもう一度選択しようとしました。それでも何もしません。
Loduwijk

16

Notepad ++では、すべてを正規表現で置き換えます。これは、メニューの変換コマンドよりも優れており、各ファイルを開いたり、nドロップしたりせずにフォルダー全体を操作できます(数百のファイルでは著しく遅くなります)。さらに、ファイル名のワイルドカードフィルターを設定することもできます。

(\r?\n)|(\r\n?)

\n

これは、考えられるすべての行末パターン(単一の\ r、\ n、または\ r \ n)を\ nに一致させます。(または、Windowsスタイルに変換する場合は\ r \ n)

複数のファイルを操作するには、次のいずれかを実行します。

  • 「置換」タブの「開いているすべてのドキュメントのすべてを置換」を使用します。最初にすべてのファイルをNotepad ++にドラッグアンドドロップする必要があります。操作するファイルを制御できるのは良いことですが、数百または数千のファイルがある場合は遅くなる可能性があります。
  • 「ファイルの検索」タブの「ファイルの置換」、たとえば、指定した1つのディレクトリの下の* .cpp * .csなど、選択したファイルフィルター。

これにより、\ r \ n \ r \ nが単一の\ nに置き換えられるため、EOLが失われる可能性があります。おもう。
Sunspawn 2016年

Notepad ++ 6.9.1で動作することを確認します。前方を検索するため、後ろにあるものを再帰的に置き換えません。
Wappenull

「これにより、\ r \ n \ r \ nが単一の\ nに置き換えられるため、EOLが失われる可能性があります」>>使用しないため、| (または)2つの可能なグループ間の演算子。
Wappenull

3

WinSCPから「直接」ファイルを開き、Notepad ++でファイルを開きます。Linuxサーバーにphpファイルがあり、何をしてもMac形式で常に開いていました:-(

ファイルをダウンロードしてローカル(Windows)から開いた場合、Dos / Windows .... hmmmとして開いていました。

解決策は、ローカルファイルを「UNIX / OSX形式」にEOL変換し、保存してからアップロードすることでした。

サーバーから直接ファイルを開くと、「Dos / Windows」として開かれます:-)


1

プロジェクトによっては、EditorConfig(https://editorconfig.org/)の使用を検討してください。必須の行末として「lf」を指定できる.editorconfigをロードするNotepad ++プラグインがあります。

私はそれを使い始めたばかりですが、今のところ素晴らしいです。私が取り組んできたオープンソースプロジェクトには、何年も.editorconfigファイルが含まれています。「EOL変換」設定は変更されないため、少し混乱する可能性がありますが、「表示>シンボルを表示>行末を表示」を選択すると、「EOL変換」の場合でも、CRLFではなくLFが追加されていることがわかります。 "そして、下の隅は何か他のものを示します(例えばWindows(CR LF))。

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