問題タブ [eol]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
svn - TortoiseSVN に EOL (行末) をそのまま残す方法はありますか?
Linux スタイルの行末 (LF 文字のみ) を持つファイルをチェックアウトしています。Windows で TortoiseSVN を使用してファイルをチェックアウトすると、行末が Windows スタイル (CR+LF) に変換されます。Subversion 構成ファイルに行を追加して、LF を強制的に使用するようにしました。はい、enable-auto-props = yes を設定しました。これは機能しません。機能したとしても、TSVN が単にファイルに触れないようにしたいので、私が望んでいるものとはまったく異なります。そのままコピーするだけです。
python - テキストの「\n」ではなく、実際のEOL文字のみに影響を与える方法
私はこれに似た文字列を持っています:
Lorem ipsum'\ n'ipsum lorem
そして、これは新しい段落です。
EOL文字とこれらの2つの段落を削除して1行にします。しかし、私は'\ n'に影響を与えたくありません-この場合、これは文字通り使用されます(改行インジケーターとしてではありません)。
私が作るだけなら:
これは次のように影響します:
"Lorem ipsum''ipsumloremそしてこれは新しい段落です。"
そして私はそれをしたい:
"Lorem ipsum'\n'ipsumloremそしてこれは新しい段落です。"
git - EOL の変更を無視して git cherry-pick とマージ
最近、すべてのリポジトリで、すべてのリポジトリに git 属性ファイルを追加しました。アイデアは、すべてのファイルで Unix EoL char を強制的に使用することでした。これにより、新しいブランチにチェックアウトした初日に大きな問題が発生し、ファイル全体に変更が表示され始めました。私たちは単にそれをコミットしました。
さて、問題は、あるブランチから別のブランチにマージする場合 (頻繁に行います)、またはチェリー ピック (より多く行う場合) にマージすると、すべてのファイルで再び競合が発生することです。
git が設定によって行末や空白の変更を無視できれば理想的です。git にこのようなものが含まれているかどうか、または回避策があるかどうかは誰にもわかりませんか?
windows - Vim(7.3.3 Windows 64ビット):何もない場合は行末に^ Mを追加します(ff = unix)
部分的にマングルされたデータを含む100,000以上のファイル、混合テキスト+バイナリファイル(httpヘッダーを含むjpg画像データの単一ファイル)があり、一部のヘッダーフィールドにはdosスタイル^ M ^ Jの行末があり、一部はunixスタイル^Jのみです。 。vimがこのようなファイルを開くと、unix形式として扱われます。したがって、^ Mがないすべてのヘッダー行は、1つ追加する必要があります。しかし、これは非常に難しいことが証明されています。
:1,11s/Cache-Control:.*\zs^M\{0,}$/^M/
動作しません。置換文字列として\=printf( "%s"、 "^ M")を使用しても、そのバリエーションをすべて試しました。ただし、結果は常にファイル内の新しい空の行になります。
コマンドで^Mを追加できる唯一の方法は、
:exe "normal A\<c-q>\<c-m>\<Esc>"
さて、1つの方法は、最初に既存の^ Mを削除してから、前に追加することです。しかし、よりエレガントな1つのコマンドソリューションはありますか?
(誤解がないように、このようなファイルの簡単な例を次に示します。
)。
編集/解決策:100,000以上のファイルに関して、^ Mが欠落している場合にのみ一致するバージョン(キャッシュ制御ラインでのみ^ Mが欠落していることに関して)は次のとおりです(すべてのファイルがマングルされているわけではないため、これにより「アップデート!"):
:1,11s/^Cache-Control:.\{-}\zs\(^M*$\)\(^M\)\@<!/\^M/i
git - このような git-svn および svn CRLF の問題を回避するにはどうすればよいですか?
私は git svn を使用していますが、今日はトラブルに遭遇しました。
私はgit svn clone
自分のプロジェクトにしばらく取り組みました。数日後、自分の作業を svn リモート ( git svn dcommit
) にプッシュしました。次に、TortoiseSVN を使用してプロジェクトをチェックアウトし、すべてが正しいかどうかを確認しようとしました。残念ながら、すべてが Unix の行末に変換され、VC6 はプロジェクトを開くことができませんでした。
つまり、私の git 作業コピーは CRLF でしたが、svn 作業コピーは LF でした。私はgitがそれを中に変換したと仮定していますgit commit
またはgit svn dcommit
.
core.autocrlf = false
git 作業コピーを設定すれば、この問題をすべて回避できると思い込むのは正しいでしょうか? これにより、git は改行をそのままにしておくようになりますか? 同僚に問題を起こさずに git svn を使いやすくするために必要なことは他にありますか?
(以前、同じマシンで git svn を設定に触れずに使用したことがあり、このようなことが起こったのはこれが初めてだったことを言及することも興味深いかもしれません。)
sublimetext2 - Sublime Text 2 では、キャリッジ リターンとライン フィードを表示する方法を教えてください。
notepad++ には、EOL 文字、つまりキャリッジ リターンとライン フィードの表示のオン/オフを切り替えるツールバー ボタンがあります。
Sublime Text 2 でも同様のことができますか?
svn - Subversionを介したWindowsLinux上の^M
シェルスクリプトを使用して、データファイルで提供された^M文字を置き換えるパッチを作成しました。
しかし、subversion
シェルスクリプトのソース管理に使用していて、すでにeol-style:native
プロパティを指定しているためです。UNIXボックスを使用すると、これ^M
は新しい行に置き換えられ、svn update
より良い方法として、これを次のように置き換えることをお勧めしsed
ますdos2unix
これにより^M
文字が削除されましたが、副作用として、変換されるべきではないsource_fileで使用可能ないくつかの意味のあるデータも置き換えられました。
では、シェルスクリプトを介してデータファイルから^ M文字を削除し、Subversionを介してWindowsおよびLinuxマシンに移植できるようにする方法が必要ですか?
そのような問題を取り除くためのベストプラクティスは何ですか?
svn - ^ Mをsvn:eolスタイルのネイティブからエスケープする方法
eol-style:native
シェルスクリプトのSubversionリポジトリにプロパティを指定しました。これにより^M
、ファイルがWindowsで編集され、UNIXボックスで実行されるときに含まれる文字が削除されます。
しかし最近、問題が発生しました。
1つのシェルスクリプトには、次のステートメントが記述されていました。
データファイルの^M文字を置き換えます。しかし、スクリプトがsubversionでチェックインされ、UNIXボックスで更新されると、ステートメントは次のようになります。
本当の質問
eol-style:native
プロパティがすでに存在するサブバージョンのシェルスクリプトに^M文字を配置する方法が必要です。この特定の^M文字がトランジションで失われることを望んでいません。出来ますか?
regex - マルチプラットフォームスクリプトperlまたはawk
次の形式でレコードを照合しようとしています。
awkまたはperlのいずれかを使用する必要があります。私はcygwinを使用しており、上記の両方のエントリで機能し、一致する次のコードを記述しました。
しかし、この正規表現をより具体的に変更しようとすると、出力は何もありません。
1番目:レコードを一致させ、最後に円記号を一致させ、次に改行を一致させます。
2番目:バックスラッシュなしでレコードの直後に新しい行を一致させます:
そこで、perlがバックスラッシュと行末記号を処理できることを期待して、スクリプトをperlに書き直すことにしました。この目的のために、私は次のようにa2pを使用しました。
この生成されたperlスクリプトも両方のエントリに一致しますが、このスクリプトをより具体的に変更しようとすると、次のエラーが発生します。
1位:
2番目:
3位:
私が間違っていることは何ですか?私の質問は、誰かが複数のプラットフォーム(aix、solaris、linux)でスクリプトを使用する必要がある場合、perlを使用するよりも、(非)GNU utilsやさまざまな(g | n)awkバージョンなどを処理するよりも優れたアプローチである必要があるという事実も指摘しています。よろしく
java - Java Socket .readLine()で1つまたは複数の単語を処理する
サーバーとクライアントが相互に通信するアプリケーションを構築しています-telnet経由。(ソケット経由)。サーバープログラムは、いくつかのガスのタンクを監視しており、受け入れられたクライアントにソケットを介して温度レベルと事前保証レベルを送信します。
telnetで何かを書くときに、クライアントとサーバーが相互に通信 できるようになりましたが、送信するデータを処理するために助けが必要です。
ユーザーが有効なユーザーであるかどうかを判断するために、ログインスクリプトを作成しました。したがって、「myname」、「space」、「mypassword」のような2つの単語を書くことができ、緑色のライトが表示され、有効なユーザーが返されます。しかし、1つの単語だけを書き込んで、 Enterキーを押すと、次のようになります。スレッド内の例外... java.lang.Array.IndexOutOfBoundsExeption exitまたはlogoutを書き込むときのEXEPT!
(テストで使いやすいように、すべてのユーザーがスクリプトにハードコーディングされています(ログインスクリプトはそれ自体で正常に機能し、何か間違ったことを書くと有効なuser = falseを返します)。これが私のコードです。何をすべきか100%確信が持てない...;)
クライアントアプリケーションには、次のような各コマンドのボタンがあります。
「n番目ごとにデータを送信する」または「n番目ごとにデータのバッチを送信する。コマンドがexitに等しい場合、またはログアウト->操作を中断する...。
今少し混乱しているかもしれませんが、すべてのデータを配列に入れて確認する必要があると思います
と...
ヘルプやヒントをありがとう!:)